dexie-cloud-addon 4.2.0-alpha.6 → 4.2.0-alpha.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("dexie"),require("rxjs"),require("rxjs/operators")):"function"==typeof define&&define.amd?define(["dexie","rxjs","rxjs/operators"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Dexie,e.rxjs,e.rxjs.operators)}(this,(function(e,t,n){"use strict";function r(e,t,n,r){return new(n||(n=Promise))((function(s,i){function o(e){try{c(r.next(e))}catch(e){i(e)}}function l(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,l)}c((r=r.apply(e,t||[])).next())}))}function s(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function i(e){return this instanceof i?(this.v=e,this):new i(e)}function o(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,s=n.apply(e,t||[]),o=[];return r={},l("next"),l("throw"),l("return"),r[Symbol.asyncIterator]=function(){return this},r;function l(e){s[e]&&(r[e]=function(t){return new Promise((function(n,r){o.push([e,t,n,r])>1||c(e,t)}))})}function c(e,t){try{!function(e){e.value instanceof i?Promise.resolve(e.value.v).then(a,u):d(o[0][2],e)}(s[e](t))}catch(e){d(o[0][3],e)}}function a(e){c("next",e)}function u(e){c("throw",e)}function d(e,t){e(t),o.shift(),o.length&&c(o[0][0],o[0][1])}}function l(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=s(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise((function(r,s){(function(e,t,n,r){Promise.resolve(r).then((function(t){e({value:t,done:n})}),t)})(r,s,(t=e[n](t)).done,t.value)}))}}}const c={userId:"unauthorized",name:"Unauthorized",claims:{sub:"unauthorized"},lastLogin:new Date(0)};try{Object.freeze(c),Object.freeze(c.claims)}catch(e){}const a={},u="undefined"!=typeof self&&self.document&&"undefined"!=typeof navigator&&navigator.serviceWorker;u&&u.ready.then((e=>a.registration=e)),"undefined"!=typeof self&&"clients"in self&&!self.document&&addEventListener("message",(e=>{var t,n;(null===(n=null===(t=e.data)||void 0===t?void 0:t.type)||void 0===n?void 0:n.startsWith("sw-broadcast-"))&&[...self.clients.matchAll({includeUncontrolled:!0})].forEach((t=>{var n;return t.id!==(null===(n=e.source)||void 0===n?void 0:n.id)&&t.postMessage(e.data)}))}));class d{constructor(e){this.name=e}subscribe(e){if(!u)return()=>{};const t=t=>{var n;(null===(n=t.data)||void 0===n?void 0:n.type)===`sw-broadcast-${this.name}`&&e(t.data.message)};return u.addEventListener("message",t),()=>u.removeEventListener("message",t)}postMessage(e){var t;"object"==typeof self.clients?[...self.clients.matchAll({includeUncontrolled:!0})].forEach((t=>t.postMessage({type:`sw-broadcast-${this.name}`,message:e}))):a.registration&&(null===(t=a.registration.active)||void 0===t||t.postMessage({type:`sw-broadcast-${this.name}`,message:e}))}}const h=globalThis["lbc-events"]||(globalThis["lbc-events"]=new Map);class f extends t.Observable{constructor(e){const t="undefined"==typeof BroadcastChannel?new d(e):new BroadcastChannel(e);super((n=>{function r(e){n.next(e.detail)}function s(e){n.next(e.data)}let i;!function(e,t){h.has(e)?h.get(e).push(t):h.set(e,[t])}(`lbc-${e}`,r);try{t instanceof d?i=t.subscribe((e=>n.next(e))):t.addEventListener("message",s)}catch(e){}return()=>{!function(e,t){const n=h.get(e);if(n){const e=n.indexOf(t);-1!==e&&n.splice(e,1)}}(`lbc-${e}`,r),t instanceof d?i():t.removeEventListener("message",s)}})),this.name=e,this.bc=t}next(e){this.bc.postMessage(e);!function(e){const t=h.get(e.type);t&&t.forEach((t=>{try{t(e)}catch(e){}}))}(new CustomEvent(`lbc-${this.name}`,{detail:e}))}}let p=!1;function g(e,t){return r(this,void 0,void 0,(function*(){try{const n=yield navigator.serviceWorker.ready;if("push"===t&&n.sync&&(yield n.sync.register(`dexie-cloud:${e.name}`)),!n.active)throw new Error("Failed to trigger sync - there's no active service worker");return void n.active.postMessage({type:"dexie-cloud-sync",dbName:e.name,purpose:t})}catch(e){p||(p=!0)}}))}function y(e,t){e.cloud.usingServiceWorker?g(e,t):e.localSyncEvent.next({purpose:t})}const m="fromBase64"in Uint8Array,v="toBase64"in Uint8Array.prototype,b="undefined"!=typeof Buffer?e=>Buffer.from(e,"base64"):m?e=>Uint8Array.fromBase64(e):e=>{const t=atob(e),n=t.length,r=new Uint8Array(n);for(var s=0;s<n;s++)r[s]=t.charCodeAt(s);return r},w="undefined"!=typeof Buffer?e=>ArrayBuffer.isView(e)?Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("base64"):Buffer.from(e).toString("base64"):v?e=>(ArrayBuffer.isView(e)?e:new Uint8Array(e)).toBase64():e=>{const t=ArrayBuffer.isView(e)?e:new Uint8Array(e),n=[];for(let e=0,r=t.length;e<r;e+=4096){const r=t.subarray(e,e+4096);n.push(String.fromCharCode.apply(null,r))}return btoa(n.join(""))};function _(e){return r(this,arguments,void 0,(function*({realms:e,inviteRealms:t}){const n=JSON.stringify([...e.map((e=>({realmId:e,accepted:!0}))),...t.map((e=>({realmId:e,accepted:!1})))].sort(((e,t)=>e.realmId<t.realmId?-1:e.realmId>t.realmId?1:0))),r=(new TextEncoder).encode(n),s=yield crypto.subtle.digest("SHA-1",r);return w(s)}))}function k(e){return Object.entries(e.cloud.schema||{}).filter((([,{markedForSync:e}])=>e)).map((([t])=>e.tables.filter((({name:e})=>e===t))[0])).filter((e=>e))}function S(e){return`$${e}_mutations`}function E(e){var t;const n=null===(t=/^\$(.*)_mutations$/.exec(e))||void 0===t?void 0:t[1];if(!n)throw new Error(`Given mutationTable ${e} is not correct`);return n}const x=[].concat;function C(e){return x.apply([],e)}function I(e,t){return r(this,arguments,void 0,(function*(e,t,{since:n={},limit:s=1/0}={}){const i=C(yield Promise.all(e.map((e=>r(this,void 0,void 0,(function*(){const t=E(e.name),r=n[t];let i=r?e.where("rev").above(r):e;s<1/0&&(i=i.limit(s));return(yield i.toArray()).map((e=>({table:t,mut:e})))})))))).sort(((e,t)=>e.mut.txid===t.mut.txid?e.mut.opNo-t.mut.opNo:e.mut.ts-t.mut.ts)),o=[];let l=null,c=null;for(const{table:e,mut:t}of i)l&&l.table===e&&c===t.txid?l.muts.push(t):(l={table:e,muts:[t]},c=t.txid,o.push(l));return o}))}function A(e){const t=new Uint8Array(e);if("undefined"!=typeof crypto)crypto.getRandomValues(t);else for(let n=0;n<e;n++)t[n]=Math.floor(256*Math.random());if("undefined"!=typeof Buffer&&Buffer.from)return Buffer.from(t).toString("base64");if("undefined"!=typeof btoa)return btoa(String.fromCharCode.apply(null,t));throw new Error("No btoa or Buffer available")}const D={}.hasOwnProperty;function O(e,t,n){if(e&&void 0!==t&&(!("isFrozen"in Object)||!Object.isFrozen(e)))if("string"!=typeof t&&"length"in t){!function(e){if(!e)throw new Error("Assertion Failed")}("string"!=typeof n&&"length"in n);for(var r=0,s=t.length;r<s;++r)O(e,t[r],n[r])}else{var i=t.indexOf(".");if(-1!==i){var o=t.substr(0,i),l=t.substr(i+1);if(""===l)void 0===n?Array.isArray(e)?isNaN(parseInt(o))||e.splice(parseInt(o),1):delete e[o]:e[o]=n;else{var c=e[o];c&&function(e,t){return D.call(e,t)}(e,o)||(c=e[o]={}),O(c,l,n)}}else void 0===n?Array.isArray(e)&&!isNaN(parseInt(t))?e.splice(t,1):delete e[t]:e[t]=n}}const U="undefined"!=typeof self&&"undefined"!=typeof crypto?(e,t=crypto.getRandomValues.bind(crypto))=>{const n=new Uint8Array(e);return t(n),self.btoa(String.fromCharCode.apply(null,n))}:"undefined"!=typeof Buffer?(e,t=T)=>{const n=Buffer.alloc(e);return t(n),n.toString("base64")}:()=>{throw new Error("No implementation of randomString was found")};function T(e){for(let t=0;t<e.length;++t)e[t]=Math.floor(256*Math.random())}function L(e){return"string"==typeof e||!!(Array.isArray(e)&&e.some((e=>L(e)))&&e.every(j))}function j(e){return"string"==typeof e||"number"==typeof e||Array.isArray(e)&&e.every(j)}function P(e,t,n){const r=e[t]||(e[t]={}),s=n.keys.map((e=>"string"==typeof e?e:JSON.stringify(e)));switch(n.type){case"insert":case"upsert":s.forEach(((e,t)=>{r[e]={type:"ups",val:n.values[t]}}));break;case"update":case"modify":s.forEach(((e,t)=>{const s="update"===n.type?n.changeSpecs[t]:n.changeSpec,i=r[e];if(i)switch(i.type){case"ups":for(const[e,t]of Object.entries(s))O(i.val,e,t);break;case"del":break;case"upd":Object.assign(i.mod,s)}else r[e]={type:"upd",mod:s}}));break;case"delete":s.forEach((e=>{r[e]={type:"del"}}))}return e}function R(e,t){for(const{table:n,muts:r}of t)for(const t of r)P(e,n,t)}const M=Math.floor,N=Math.abs,$=(e,t)=>e>t?e:t,B=128,F=127,W=Number.MAX_SAFE_INTEGER,V=Number.isInteger||(e=>"number"==typeof e&&isFinite(e)&&M(e)===e),K=Array.isArray,H="undefined"!=typeof TextEncoder?new TextEncoder:null,J=H?e=>H.encode(e):e=>{const t=unescape(encodeURIComponent(e)),n=t.length,r=new Uint8Array(n);for(let e=0;e<n;e++)r[e]=t.codePointAt(e);return r};let z="undefined"==typeof TextDecoder?null:new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});z&&1===z.decode(new Uint8Array).length&&(z=null);let q=class{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}};const Y=(e,t)=>{const n=e.cbuf.length;e.cpos===n&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(2*n),e.cpos=0),e.cbuf[e.cpos++]=t},G=(e,t)=>{for(;t>F;)Y(e,B|F&t),t=M(t/128);Y(e,F&t)},Q=new Uint8Array(3e4),X=Q.length/3,Z=H&&H.encodeInto?(e,t)=>{if(t.length<X){const n=H.encodeInto(t,Q).written||0;G(e,n);for(let t=0;t<n;t++)Y(e,Q[t])}else ee(e,J(t))}:(e,t)=>{const n=unescape(encodeURIComponent(t)),r=n.length;G(e,r);for(let t=0;t<r;t++)Y(e,n.codePointAt(t))},ee=(e,t)=>{G(e,t.byteLength),((e,t)=>{const n=e.cbuf.length,r=e.cpos,s=((e,t)=>e<t?e:t)(n-r,t.length),i=t.length-s;e.cbuf.set(t.subarray(0,s),r),e.cpos+=s,i>0&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array($(2*n,i)),e.cbuf.set(t.subarray(s)),e.cpos=i)})(e,t)},te=(e,t)=>{((e,t)=>{const n=e.cbuf.length;n-e.cpos<t&&(e.bufs.push(new Uint8Array(e.cbuf.buffer,0,e.cpos)),e.cbuf=new Uint8Array(2*$(n,t)),e.cpos=0)})(e,t);const n=new DataView(e.cbuf.buffer,e.cpos,t);return e.cpos+=t,n},ne=(e,t)=>te(e,8).setBigUint64(0,t,!1),re=new DataView(new ArrayBuffer(4)),se=(e,t)=>{switch(typeof t){case"string":Y(e,119),Z(e,t);break;case"number":V(t)&&N(t)<=2147483647?(Y(e,125),((e,t)=>{const n=(e=>0!==e?e<0:1/e<0)(t);for(n&&(t=-t),Y(e,(t>63?B:0)|(n?64:0)|63&t),t=M(t/64);t>0;)Y(e,(t>F?B:0)|F&t),t=M(t/128)})(e,t)):(n=t,re.setFloat32(0,n),re.getFloat32(0)===n?(Y(e,124),((e,t)=>{te(e,4).setFloat32(0,t,!1)})(e,t)):(Y(e,123),((e,t)=>{te(e,8).setFloat64(0,t,!1)})(e,t)));break;case"bigint":Y(e,122),((e,t)=>{te(e,8).setBigInt64(0,t,!1)})(e,t);break;case"object":if(null===t)Y(e,126);else if(K(t)){Y(e,117),G(e,t.length);for(let n=0;n<t.length;n++)se(e,t[n])}else if(t instanceof Uint8Array)Y(e,116),ee(e,t);else{Y(e,118);const n=Object.keys(t);G(e,n.length);for(let r=0;r<n.length;r++){const s=n[r];Z(e,s),se(e,t[s])}}break;case"boolean":Y(e,t?120:121);break;default:Y(e,127)}var n};function ie(e){const t=new q;switch(Z(t,e.type),"table"in e&&Z(t,e.table),"prop"in e&&Z(t,e.prop),e.type){case"u-ack":case"u-reject":ne(t,BigInt(e.i));break;case"outdated-server-rev":break;case"y-complete-sync-done":Z(t,e.yServerRev);break;default:switch(se(t,e.k),e.type){case"aware":ee(t,e.u);break;case"doc-open":se(t,e.serverRev),se(t,e.sv);break;case"doc-close":break;case"sv":ee(t,e.sv);break;case"u-c":ee(t,e.u),ne(t,BigInt(e.i));break;case"u-s":ee(t,e.u),Z(t,e.r||"")}}return(e=>{const t=new Uint8Array((e=>{let t=e.cpos;for(let n=0;n<e.bufs.length;n++)t+=e.bufs[n].length;return t})(e));let n=0;for(let r=0;r<e.bufs.length;r++){const s=e.bufs[r];t.set(s,n),n+=s.length}return t.set(new Uint8Array(e.cbuf.buffer,0,e.cpos),n),t})(t)}const oe=e=>new Error(e),le=oe("Unexpected end of array"),ce=oe("Integer out of Range");let ae=class{constructor(e){this.arr=e,this.pos=0}};const ue=e=>e.pos!==e.arr.length,de=e=>((e,t)=>{const n=new Uint8Array(e.arr.buffer,e.pos+e.arr.byteOffset,t);return e.pos+=t,n})(e,fe(e)),he=e=>e.arr[e.pos++],fe=e=>{let t=0,n=1;const r=e.arr.length;for(;e.pos<r;){const r=e.arr[e.pos++];if(t+=(r&F)*n,n*=128,r<B)return t;if(t>W)throw ce}throw le},pe=z?e=>z.decode(de(e)):e=>{let t=fe(e);if(0===t)return"";{let n=String.fromCodePoint(he(e));if(--t<100)for(;t--;)n+=String.fromCodePoint(he(e));else for(;t>0;){const r=t<1e4?t:1e4,s=e.arr.subarray(e.pos,e.pos+r);e.pos+=r,n+=String.fromCodePoint.apply(null,s),t-=r}return decodeURIComponent(escape(n))}},ge=(e,t)=>{const n=new DataView(e.arr.buffer,e.arr.byteOffset+e.pos,t);return e.pos+=t,n},ye=e=>ge(e,8).getBigUint64(0,!1),me=[e=>{},e=>null,e=>{let t=e.arr[e.pos++],n=63&t,r=64;const s=(64&t)>0?-1:1;if(0==(t&B))return s*n;const i=e.arr.length;for(;e.pos<i;){if(t=e.arr[e.pos++],n+=(t&F)*r,r*=128,t<B)return s*n;if(n>W)throw ce}throw le},e=>ge(e,4).getFloat32(0,!1),e=>ge(e,8).getFloat64(0,!1),e=>ge(e,8).getBigInt64(0,!1),e=>!1,e=>!0,pe,e=>{const t=fe(e),n={};for(let r=0;r<t;r++){n[pe(e)]=ve(e)}return n},e=>{const t=fe(e),n=[];for(let r=0;r<t;r++)n.push(ve(e));return n},de],ve=e=>me[127-he(e)](e);function be(e){return o(this,arguments,(function*(){var t,n,r,s;let o=0,c=new Uint8Array(4),a=0,u=[],d=0;try{for(var h,f=!0,p=l(e);!(t=(h=yield i(p.next())).done);f=!0){s=h.value,f=!1;const e=s,t=new DataView(e.buffer,e.byteOffset,e.byteLength);let n=0;for(;n<e.byteLength;)switch(o){case 0:if(n+4>e.byteLength){for(const t of e.slice(n)){if(4===a)break;c[a++]=t,++n}if(a<4)break}else if(a>0&&a<4)for(const t of e.slice(n,n+4-a))c[a++]=t,++n;case 1:d=4===a?new DataView(c.buffer,0,4).getUint32(0,!1):t.getUint32(n,!1),a?a=0:n+=4;case 2:if(n>=e.byteLength){o=2;break}if(n+d>e.byteLength)u.push(e.slice(n)),d-=e.byteLength-n,o=2,n=e.byteLength;else{if(u.length>0){const t=new Uint8Array(u.reduce(((e,t)=>e+t.byteLength),d));let r=0;for(const e of u)t.set(e,r),r+=e.byteLength;t.set(e.slice(n,n+d),r),u=[],yield yield i(t)}else yield yield i(e.slice(n,n+d));n+=d,o=0}}}}catch(e){n={error:e}}finally{try{f||t||!(r=p.return)||(yield i(r.call(p)))}finally{if(n)throw n.error}}}))}class we extends Error{constructor({title:e,message:t,messageCode:n,messageParams:r}){super(t),this.name="TokenErrorResponseError",this.title=e,this.messageCode=n,this.messageParams=r}}function _e(t,n){return new Promise(((r,s)=>{const i=Object.assign(Object.assign({submitLabel:"Submit",cancelLabel:"Cancel"},n),{onSubmit:e=>{t.next(void 0),r(e)},onCancel:()=>{t.next(void 0),s(new e.AbortError("User cancelled"))}});t.next(i)}))}function ke(e,t,...n){return _e(e,{type:"message-alert",title:t,alerts:n,fields:{},submitLabel:"OK",cancelLabel:null})}function Se(e,t,n){return r(this,void 0,void 0,(function*(){let r=n||"";for(;!r||!/^[\w-+.]+@([\w-]+\.)+[\w-]{2,10}(\sas\s[\w-+.]+@([\w-]+\.)+[\w-]{2,10})?$/.test(r);)r=(yield _e(e,{type:"email",title:t,alerts:r?[{type:"error",messageCode:"INVALID_EMAIL",message:"Please enter a valid email address",messageParams:{}}]:[],fields:{email:{type:"email",placeholder:"you@somedomain.com"}}})).email;return r}))}function Ee(e,t,n){return r(this,void 0,void 0,(function*(){const r=[{type:"info",messageCode:"OTP_SENT",message:"A One-Time password has been sent to {email}",messageParams:{email:t}}];n&&r.push(n);const{otp:s}=yield _e(e,{type:"otp",title:"Enter OTP",alerts:r,fields:{otp:{type:"otp",label:"OTP",placeholder:"Paste OTP here"}}});return s}))}function xe(e){return r(this,void 0,void 0,(function*(){var t,n,r;const s=yield e.getCurrentUser(),{accessToken:i,accessTokenExpiration:o,refreshToken:l,refreshTokenExpiration:c,claims:a}=s;if(!i)return null;if((null!==(t=null==o?void 0:o.getTime())&&void 0!==t?t:1/0)>Date.now()&&"ok"===((null===(n=s.license)||void 0===n?void 0:n.status)||"ok"))return s;if(!l)throw new Error("Refresh token missing");if((null!==(r=null==c?void 0:c.getTime())&&void 0!==r?r:1/0)<=Date.now())throw new Error("Refresh token has expired");const u=yield Ie(e.cloud.options.databaseUrl,s);return yield e.table("$logins").update(a.sub,{accessToken:u.accessToken,accessTokenExpiration:u.accessTokenExpiration,claims:u.claims,license:u.license,data:u.data}),u}))}function Ce(t,n,s,i,o){return r(this,void 0,void 0,(function*(){return n.accessToken&&n.accessTokenExpiration.getTime()>Date.now()?n:n.refreshToken&&(!n.refreshTokenExpiration||n.refreshTokenExpiration.getTime()>Date.now())?yield Ie(t,n):yield function(t,n,s,i){return r(this,void 0,void 0,(function*(){if(!crypto.subtle)throw"undefined"!=typeof location&&"http:"===location.protocol?new Error("Dexie Cloud Addon needs to use WebCrypto, but your browser has disabled it due to being served from an insecure location. Please serve it from https or http://localhost:<port> (See https://stackoverflow.com/questions/46670556/how-to-enable-crypto-subtle-for-unsecure-origins-in-chrome/46671627#46671627)"):new Error("This browser does not support WebCrypto.");const{privateKey:r,publicKey:o}=yield crypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:2048,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!1,["sign","verify"]);if(!r||!o)throw new Error("Could not generate RSA keypair");t.nonExportablePrivateKey=r;const l=function(e){const t=w(e);return function(e){let t="-----BEGIN PUBLIC KEY-----\n";for(;e.length>0;)t+=e.substring(0,64)+"\n",e=e.substring(64);return t+="-----END PUBLIC KEY-----",t}(t)}(yield crypto.subtle.exportKey("spki",o));t.publicKey=o;try{const e=yield n({public_key:l,hints:i});if("error"===e.type)throw new we(e);if("tokens"!==e.type)throw new Error(`Unexpected response type from token endpoint: ${e.type}`);return t.accessToken=e.accessToken,t.accessTokenExpiration=new Date(e.accessTokenExpiration),t.refreshToken=e.refreshToken,e.refreshTokenExpiration&&(t.refreshTokenExpiration=new Date(e.refreshTokenExpiration)),t.userId=e.claims.sub,t.email=e.claims.email,t.name=e.claims.name,t.claims=e.claims,t.license={type:e.userType,status:e.claims.license||"ok"},t.data=e.data,null!=e.evalDaysLeft&&(t.license.evalDaysLeft=e.evalDaysLeft),null!=e.userValidUntil&&(t.license.validUntil=new Date(e.userValidUntil)),e.alerts&&e.alerts.length>0&&(yield _e(s,{type:"message-alert",title:"Authentication Alert",fields:{},alerts:e.alerts})),t}catch(t){if(t instanceof we)throw yield ke(s,t.title,{type:"error",messageCode:t.messageCode,message:t.message,messageParams:{}}),t;let n="We're having a problem authenticating right now.";if(t instanceof TypeError){n=void 0!==typeof navigator&&!navigator.onLine?"You seem to be offline. Please connect to the internet and try again.":e.debug||"undefined"!=typeof location&&("localhost"===location.hostname||"127.0.0.1"===location.hostname)?`Could not connect to server. Please verify that your origin '${location.origin}' is whitelisted using \`npx dexie-cloud whitelist\``:"Could not connect to server. Please verify the connection.",yield ke(s,"Authentication Failed",{type:"error",messageCode:"GENERIC_ERROR",message:n,messageParams:{}}).catch((()=>{}))}throw t}}))}(n,s,i,o)}))}function Ie(e,t){return r(this,void 0,void 0,(function*(){if(!t.refreshToken)throw new Error("Cannot refresh token - refresh token is missing.");if(!t.nonExportablePrivateKey)throw new Error("login.nonExportablePrivateKey is missing - cannot sign refresh token without a private key.");const n=Date.now(),r="RSASSA-PKCS1-v1_5",s=(new TextEncoder).encode(t.refreshToken+n),i=yield crypto.subtle.sign(r,t.nonExportablePrivateKey,s),o=w(i),l={grant_type:"refresh_token",refresh_token:t.refreshToken,scopes:["ACCESS_DB"],signature:o,signing_algorithm:r,time_stamp:n},c=yield fetch(`${e}/token`,{body:JSON.stringify(l),method:"post",headers:{"Content-Type":"application/json"},mode:"cors"});if(200!==c.status)throw new Error(`RefreshToken: Status ${c.status} from ${e}/token`);const a=yield c.json();if("error"===a.type)throw new we(a);return t.accessToken=a.accessToken,t.accessTokenExpiration=a.accessTokenExpiration?new Date(a.accessTokenExpiration):void 0,t.claims=a.claims,t.license={type:a.userType,status:a.claims.license||"ok"},null!=a.evalDaysLeft&&(t.license.evalDaysLeft=a.evalDaysLeft),null!=a.userValidUntil&&(t.license.validUntil=new Date(a.userValidUntil)),a.data&&(t.data=a.data),t}))}const{toString:Ae}={};const De={replace:function(e){const t=Object.keys(e);let n=null;for(let e=0,r=t.length;e<r;++e)"$"===t[e][0]&&(n=n||[],n.push(t[e]));if(!n)return e;const r={...e};for(const e of n)delete r[e];for(const t of n)r["$"+t]=e[t];return r}};function Oe(...e){const t=e.reduce(((e,t)=>({...e,...t})),e.reduce(((e,t)=>({...t,...e})),{})),n=new WeakMap;return{stringify(e,r,s){const i=JSON.stringify(e,(function(e){const s=this[e],i=function(e){const r=typeof e;switch(typeof e){case"object":case"function":{if(null===e)return null;const r=Object.getPrototypeOf(e);if(!r)return De;let i=n.get(r);if(void 0!==i)return i;const o=(s=e,Ae.call(s).slice(8,-1)),l=Object.entries(t).find((([t,n])=>{var r,s;return null!==(s=null===(r=null==n?void 0:n.test)||void 0===r?void 0:r.call(n,e,o))&&void 0!==s?s:t===o}));return i=null==l?void 0:l[1],i||(i=Array.isArray(e)?null:"function"==typeof e?t.function||null:De),n.set(r,i),i}default:return t[r]}var s}(s);return i?i.replace(s,r,t):s}),s);return i},parse(e,n){const r=[];return JSON.parse(e,(function(e,s){const i=null==s?void 0:s.$t;if(i){const e=t[i];s=e?e.revive(s,n,t):s}let o=r[r.length-1];if(o&&o[0]===s){s={...s};for(const e of o[1])delete s[e];for(const[e,t]of Object.entries(o[2]))s[e]=t;r.pop()}if(void 0===s||"$"===e[0]&&"$t"!==e){let t,n;o=r[r.length-1],o&&o[0]===this?(t=o[1],n=o[2]):r.push([this,t=[],n={}]),"$"===e[0]&&"$t"!==e?(t.push(e),n[e.substr(1)]=s):n[e]=void 0}return s}))}}}const Ue={Blob:{test:(e,t)=>"Blob"===t,replace:(e,t)=>{const n=t.length;return t.push(e),{$t:"Blob",mimeType:e.type,i:n}},revive:({i:e,mimeType:t},n)=>new Blob([n[e]],{type:t})}};var Te={number:{replace:e=>{switch(!0){case isNaN(e):return{$t:"number",v:"NaN"};case e===1/0:return{$t:"number",v:"Infinity"};case e===-1/0:return{$t:"number",v:"-Infinity"};default:return e}},revive:({v:e})=>Number(e)}};const Le={bigint:{replace:e=>({$t:"bigint",v:""+e}),revive:e=>BigInt(e.v)}};var je={Date:{replace:e=>({$t:"Date",v:isNaN(e.getTime())?"NaN":e.toISOString()}),revive:({v:e})=>new Date("NaN"===e?NaN:Date.parse(e))}},Pe={Set:{replace:e=>({$t:"Set",v:Array.from(e.entries())}),revive:({v:e})=>new Set(e)}},Re={Map:{replace:e=>({$t:"Map",v:Array.from(e.entries())}),revive:({v:e})=>new Map(e)}};const Me="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof global?global:void 0;var Ne=["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","DataView","BigInt64Array","BigUint64Array"].reduce(((e,t)=>({...e,[t]:{replace:(e,n,r)=>({$t:t,v:r.ArrayBuffer.replace(0===e.byteOffset&&e.byteLength===e.buffer.byteLength?e.buffer:e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength),n,r).v}),revive:({v:e},n,r)=>{const s=Me[t];return s&&new s(r.ArrayBuffer.revive({v:e},n,r))}}})),{});function $e(e){return function(e){for(var t="",n=0,r=e.length;n<r;n++)t+=We[e[n]];return t}(w(e))}function Be(e){return b(function(e){if("string"!=typeof e)throw new Error("invalid decoder input: "+e);for(var t="",n=0,r=e.length;n<r;n++)t+=Fe[e[n]];return t}(e))}const Fe={"-":"=",0:"A",1:"B",2:"C",3:"D",4:"E",5:"F",6:"G",7:"H",8:"I",9:"J",A:"K",B:"L",C:"M",D:"N",E:"O",F:"P",G:"Q",H:"R",I:"S",J:"T",K:"U",L:"V",M:"W",N:"X",O:"Y",P:"Z",Q:"a",R:"b",S:"c",T:"d",U:"e",V:"f",W:"g",X:"h",Y:"i",Z:"j",_:"k",a:"l",b:"m",c:"n",d:"o",e:"p",f:"q",g:"r",h:"s",i:"t",j:"u",k:"v",l:"w",m:"x",n:"y",o:"z",p:"0",q:"1",r:"2",s:"3",t:"4",u:"5",v:"6",w:"7",x:"8",y:"9",z:"+","|":"/"},We={};for(const e of Object.keys(Fe))We[Fe[e]]=e;var Ve={ArrayBuffer:{replace:e=>({$t:"ArrayBuffer",v:$e(e)}),revive:({v:e})=>{const t=Be(e);return t.buffer.byteLength===t.byteLength?t.buffer:t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}}};class Ke{constructor(e,t){this.buf=e,this.type=t}}function He(e){const t=new XMLHttpRequest;if(t.overrideMimeType("text/plain; charset=x-user-defined"),t.open("GET",URL.createObjectURL(e),!1),t.send(),200!==t.status&&0!==t.status)throw new Error("Bad Blob access: "+t.status);return t.responseText}function Je(e){const t=new Uint8Array(e.length);for(let n=0;n<e.length;++n)t[n]=e.charCodeAt(n);return t.buffer}var ze={Blob:{test:(e,t)=>"Blob"===t||e instanceof Ke,replace:e=>({$t:"Blob",v:w(e instanceof Ke?e.buf:Je(He(e))),type:e.type}),revive:({type:e,v:t})=>{const n=b(t);return void 0!==typeof Blob?new Blob([n]):new Ke(n.buffer,e)}}};const qe={...Te,...Le,...je,...Pe,...Re,...Ne,...Ve,...ze};function Ye(e){return new Promise(((t,n)=>{const r=new FileReader;r.onabort=e=>n(new Error("file read aborted")),r.onerror=e=>n(e.target.error),r.onload=e=>t(e.target.result),r.readAsArrayBuffer(e)}))}var Ge={undefined:{replace:()=>({$t:"undefined"}),revive:()=>{}}},Qe={File:{test:(e,t)=>"File"===t,replace:e=>({$t:"File",v:w(Je(He(e))),type:e.type,name:e.name,lastModified:new Date(e.lastModified).toISOString()}),revive:({type:e,v:t,name:n,lastModified:r})=>{const s=b(t);return new File([s],n,{type:e,lastModified:new Date(r).getTime()})}}};const Xe="function"==typeof BigInt&&"bigint"==typeof BigInt(0);class Ze{toString(){return this.v}constructor(e){this.v=e}}const et=Xe?{}:{bigint:{test:e=>e instanceof Ze,replace:e=>Object.assign({$t:"bigint"},e),revive:({v:e})=>new Ze(e)}},tt=Object.assign(Object.assign(Object.assign(Object.assign({},Ge),et),Qe),{PropModification:{test:t=>t instanceof e.PropModification,replace:e=>Object.assign({$t:"PropModification"},e["@@propmod"]),revive:t=>{var n=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var s=0;for(r=Object.getOwnPropertySymbols(e);s<r.length;s++)t.indexOf(r[s])<0&&Object.prototype.propertyIsEnumerable.call(e,r[s])&&(n[r[s]]=e[r[s]])}return n}(t,["$t"]);return new e.PropModification(n)}}}),nt=Oe(qe,tt),rt=function(...e){const t=Oe(qe,Ue,...e);return{toBinary(e){const[t,n]=this.stringify(e),r=new ArrayBuffer(4);return new DataView(r).setUint32(0,t.size),new Blob([r,t,n])},stringify(e){const n=[],r=t.stringify(e,n),s=new Blob(n.map((e=>{const t=new ArrayBuffer(4);return new DataView(t).setUint32(0,"byteLength"in e?e.byteLength:e.size),new Blob([t,e])})));return[s,r]},async parse(e,n){let r=0;const s=[],i=await Ye(n),o=new DataView(i);for(;r<i.byteLength;){const e=o.getUint32(r);r+=4;const t=i.slice(r,r+e);r+=e,s.push(t)}return t.parse(e,s)},async fromBinary(e){const t=new DataView(await Ye(e.slice(0,4))).getUint32(0),n=e.slice(4,t+4),r=await function(e){return new Promise(((t,n)=>{const r=new FileReader;r.onabort=e=>n(new Error("file read aborted")),r.onerror=e=>n(e.target.error),r.onload=e=>t(e.target.result),r.readAsText(e)}))}(e.slice(t+4));return await this.parse(r,n)}}}(tt);class st extends Error{constructor(e,t){super(t||`${e.status} ${e.statusText}`),this.httpStatus=e.status}get name(){return"HttpError"}}function it(t,n,r){const s=[];for(let i of r){const{table:r,muts:o}=i,l=t.tables.find((e=>e.name===r));if(!l)throw new Error(`Internal error: table ${r} not found in DBCore schema`);const{primaryKey:c}=l;let a=i;o.forEach(((t,r)=>{const s=!c.outbound&&("upsert"===t.type||"insert"===t.type);t.keys.forEach(((t,o)=>{if(Array.isArray(t)){a===i&&(a=ot(i,s));const e=a.muts[r],n=JSON.stringify(t);e.keys[o]=n}else if("#"===t[0]){a===i&&(a=ot(i,s));const l=a.muts[r];if(!n.isLoggedIn)throw new Error("Internal error: Cannot sync private IDs before authenticated");const u=`${t}:${n.userId}`;l.keys[o]=u,s&&e.setByKeyPath(l.values[o],c.keyPath,u)}}))})),s.push(a)}return s}function ot(e,t){return Object.assign(Object.assign({},e),{muts:t?e.muts.map((e=>"insert"!==e.type&&"upsert"!==e.type||!e.values?Object.assign(Object.assign({},e),{keys:e.keys.slice()}):Object.assign(Object.assign({},e),{keys:e.keys.slice(),values:e.values.slice()}))):e.muts.map((e=>Object.assign(Object.assign({},e),{keys:e.keys.slice()})))})}let lt=new WeakMap;function ct(e){return r(this,void 0,void 0,(function*(){var t,n;const r=(null!==(n=null===(t=lt.get(e))||void 0===t?void 0:t.getTime())&&void 0!==n?n:0)-Date.now();r>0&&(yield new Promise((e=>setTimeout(e,r))))}))}function at(e,t,n,s,i,o,l,c,a){return r(this,void 0,void 0,(function*(){const r={Accept:"application/json, application/x-bison, application/x-bison-stream","Content-Type":"application/tson"},u=yield xe(i),d=null==u?void 0:u.accessToken;d&&(r.Authorization=`Bearer ${d}`);const h={v:2,dbID:null==n?void 0:n.remoteDbId,clientIdentity:c,schema:l||{},lastPull:n?{serverRevision:n.serverRevision,yServerRevision:n.yServerRevision,realms:n.realms,inviteRealms:n.inviteRealms}:void 0,baseRevs:s,changes:it(i.dx.core.schema,a,e),y:t,dxcv:i.cloud.version};i.syncStateChangedEvent.next({phase:"pushing"});const f=nt.stringify(h),p=yield fetch(`${o}/sync`,{method:"post",headers:r,credentials:"include",body:f});if(i.syncStateChangedEvent.next({phase:"pulling"}),function(e,t){const n=t.headers.get("Ratelimit-Limit"),r=t.headers.get("Ratelimit-Remaining"),s=t.headers.get("Ratelimit-Reset");if(n&&r&&s){const t=Number(n),i=Math.max(0,Number(r)),o=Number(s);if(i<t/2){const t=Math.ceil(o/(i+1));lt.set(e,new Date(Date.now()+1e3*t))}else lt.delete(e)}}(i,p),!p.ok)throw new st(p);if("application/x-bison"===p.headers.get("content-type"))return rt.fromBinary(yield p.blob());{const e=yield p.text();return nt.parse(e)}}))}function ut(t){if(null==t?void 0:t.cancelled)throw new e.AbortError("Operation was cancelled")}let dt=!1;function ht(e,t,n,s){return r(this,void 0,void 0,(function*(){yield e.$baseRevs.bulkPut(Object.keys(t).filter((e=>t[e].markedForSync)).map((e=>({tableName:e,clientRev:(n[e]||0)+1,serverRev:s})))),yield e.$baseRevs.where("tableName").noneOf(Object.keys(t).filter((e=>t[e].markedForSync))).delete()}))}function ft(e,t={}){for(const{table:n,muts:r}of e){const e=r.length>0?r[r.length-1].rev:null;t[n]=e||t[n]||0}return t}function pt(t,n,s){return r(this,void 0,void 0,(function*(){const r=yield t.bulkGet(n),i=[],o=[];n.forEach(((n,l)=>{const c=r[l];if(c){for(const[r,i]of Object.entries(s[l]))if(r===t.schema.primKey.keyPath){if(0!==e.cmp(i,n))throw new Error("Cannot change primary key")}else e.setByKeyPath(c,r,i);i.push(n),o.push(c)}})),yield null==t.schema.primKey.keyPath?t.bulkPut(o,i):t.bulkPut(o)}))}function gt(t,n){return r(this,void 0,void 0,(function*(){for(const{table:r,muts:s}of t){if(!n.dx._allTables[r])continue;const t=n.table(r),{primaryKey:i}=t.core.schema,o=e=>{switch(e[0]){case"[":if(e.endsWith("]"))try{return JSON.parse(e)}catch(e){}return e;case"#":return e.endsWith(":"+n.cloud.currentUserId)?e.substr(0,e.length-n.cloud.currentUserId.length-1):e;default:return e}};for(const n of s){const r=n.keys.map(o);switch(n.type){case"insert":i.outbound?yield t.bulkAdd(n.values,r):(r.forEach(((t,r)=>{e.setByKeyPath(n.values[r],i.keyPath,t)})),yield t.bulkAdd(n.values));break;case"upsert":i.outbound?yield t.bulkPut(n.values,r):(r.forEach(((t,r)=>{e.setByKeyPath(n.values[r],i.keyPath,t)})),yield t.bulkPut(n.values));break;case"modify":1===r.length?yield t.update(r[0],n.changeSpec):yield t.where(":id").anyOf(r).modify(n.changeSpec);break;case"update":yield pt(t,r,n.changeSpecs);break;case"delete":yield t.bulkDelete(r)}}}}))}"undefined"!=typeof self&&"undefined"!=typeof navigator&&(dt=navigator.onLine,self.addEventListener("online",(()=>dt=!0)),self.addEventListener("offline",(()=>dt=!1)));const yt="dexie-cloud-syncer";function mt(e,t){return e.where("i").between(t,1/0,!0).toArray()}const vt=()=>new Map,bt=e=>{const t=vt();return e.forEach(((e,n)=>{t.set(n,e)})),t},wt=(e,t,n)=>{let r=e.get(t);return void 0===r&&e.set(t,r=n()),r},_t=()=>new Set,kt=e=>e[e.length-1],St=(e,t)=>{for(let n=0;n<t.length;n++)e.push(t[n])},Et=Array.from,xt=Array.isArray;class Ct{constructor(){this._observers=vt()}on(e,t){return wt(this._observers,e,_t).add(t),t}once(e,t){const n=(...r)=>{this.off(e,n),t(...r)};this.on(e,n)}off(e,t){const n=this._observers.get(e);void 0!==n&&(n.delete(t),0===n.size&&this._observers.delete(e))}emit(e,t){return Et((this._observers.get(e)||vt()).values()).forEach((e=>e(...t)))}destroy(){this._observers=vt()}}class It{constructor(){this._observers=vt()}on(e,t){wt(this._observers,e,_t).add(t)}once(e,t){const n=(...r)=>{this.off(e,n),t(...r)};this.on(e,n)}off(e,t){const n=this._observers.get(e);void 0!==n&&(n.delete(t),0===n.size&&this._observers.delete(e))}emit(e,t){return Et((this._observers.get(e)||vt()).values()).forEach((e=>e(...t)))}destroy(){this._observers=vt()}}const At=Math.floor,Dt=Math.abs,Ot=(e,t)=>e<t?e:t,Ut=(e,t)=>e>t?e:t,Tt=e=>0!==e?e<0:1/e<0,Lt=64,jt=128,Pt=127,Rt=Number.MAX_SAFE_INTEGER,Mt=Number.isInteger||(e=>"number"==typeof e&&isFinite(e)&&At(e)===e),Nt=/^\s*/g,$t=/([A-Z])/g,Bt=(e,t)=>(e=>e.replace(Nt,""))(e.replace($t,(e=>`${t}${(e=>e.toLowerCase())(e)}`))),Ft="undefined"!=typeof TextEncoder?new TextEncoder:null,Wt=Ft?e=>Ft.encode(e):e=>{const t=unescape(encodeURIComponent(e)),n=t.length,r=new Uint8Array(n);for(let e=0;e<n;e++)r[e]=t.codePointAt(e);return r};let Vt="undefined"==typeof TextDecoder?null:new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});Vt&&1===Vt.decode(new Uint8Array).length&&(Vt=null);class Kt{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}}const Ht=()=>new Kt,Jt=e=>{const t=new Uint8Array((e=>{let t=e.cpos;for(let n=0;n<e.bufs.length;n++)t+=e.bufs[n].length;return t})(e));let n=0;for(let r=0;r<e.bufs.length;r++){const s=e.bufs[r];t.set(s,n),n+=s.length}return t.set(new Uint8Array(e.cbuf.buffer,0,e.cpos),n),t},zt=(e,t)=>{const n=e.cbuf.length;e.cpos===n&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(2*n),e.cpos=0),e.cbuf[e.cpos++]=t},qt=zt,Yt=(e,t)=>{for(;t>Pt;)zt(e,jt|Pt&t),t=At(t/128);zt(e,Pt&t)},Gt=(e,t)=>{const n=Tt(t);for(n&&(t=-t),zt(e,(t>63?jt:0)|(n?Lt:0)|63&t),t=At(t/64);t>0;)zt(e,(t>Pt?jt:0)|Pt&t),t=At(t/128)},Qt=new Uint8Array(3e4),Xt=Qt.length/3,Zt=Ft&&Ft.encodeInto?(e,t)=>{if(t.length<Xt){const n=Ft.encodeInto(t,Qt).written||0;Yt(e,n);for(let t=0;t<n;t++)zt(e,Qt[t])}else tn(e,Wt(t))}:(e,t)=>{const n=unescape(encodeURIComponent(t)),r=n.length;Yt(e,r);for(let t=0;t<r;t++)zt(e,n.codePointAt(t))},en=(e,t)=>{const n=e.cbuf.length,r=e.cpos,s=Ot(n-r,t.length),i=t.length-s;e.cbuf.set(t.subarray(0,s),r),e.cpos+=s,i>0&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(Ut(2*n,i)),e.cbuf.set(t.subarray(s)),e.cpos=i)},tn=(e,t)=>{Yt(e,t.byteLength),en(e,t)},nn=(e,t)=>{((e,t)=>{const n=e.cbuf.length;n-e.cpos<t&&(e.bufs.push(new Uint8Array(e.cbuf.buffer,0,e.cpos)),e.cbuf=new Uint8Array(2*Ut(n,t)),e.cpos=0)})(e,t);const n=new DataView(e.cbuf.buffer,e.cpos,t);return e.cpos+=t,n},rn=new DataView(new ArrayBuffer(4)),sn=(e,t)=>{switch(typeof t){case"string":zt(e,119),Zt(e,t);break;case"number":Mt(t)&&Dt(t)<=2147483647?(zt(e,125),Gt(e,t)):(n=t,rn.setFloat32(0,n),rn.getFloat32(0)===n?(zt(e,124),((e,t)=>{nn(e,4).setFloat32(0,t,!1)})(e,t)):(zt(e,123),((e,t)=>{nn(e,8).setFloat64(0,t,!1)})(e,t)));break;case"bigint":zt(e,122),((e,t)=>{nn(e,8).setBigInt64(0,t,!1)})(e,t);break;case"object":if(null===t)zt(e,126);else if(xt(t)){zt(e,117),Yt(e,t.length);for(let n=0;n<t.length;n++)sn(e,t[n])}else if(t instanceof Uint8Array)zt(e,116),tn(e,t);else{zt(e,118);const n=Object.keys(t);Yt(e,n.length);for(let r=0;r<n.length;r++){const s=n[r];Zt(e,s),sn(e,t[s])}}break;case"boolean":zt(e,t?120:121);break;default:zt(e,127)}var n};class on extends Kt{constructor(e){super(),this.w=e,this.s=null,this.count=0}write(e){this.s===e?this.count++:(this.count>0&&Yt(this,this.count-1),this.count=1,this.w(this,e),this.s=e)}}const ln=e=>{e.count>0&&(Gt(e.encoder,1===e.count?e.s:-e.s),e.count>1&&Yt(e.encoder,e.count-2))};class cn{constructor(){this.encoder=new Kt,this.s=0,this.count=0}write(e){this.s===e?this.count++:(ln(this),this.count=1,this.s=e)}toUint8Array(){return ln(this),Jt(this.encoder)}}const an=e=>{if(e.count>0){const t=2*e.diff+(1===e.count?0:1);Gt(e.encoder,t),e.count>1&&Yt(e.encoder,e.count-2)}};class un{constructor(){this.encoder=new Kt,this.s=0,this.count=0,this.diff=0}write(e){this.diff===e-this.s?(this.s=e,this.count++):(an(this),this.count=1,this.diff=e-this.s,this.s=e)}toUint8Array(){return an(this),Jt(this.encoder)}}class dn{constructor(){this.sarr=[],this.s="",this.lensE=new cn}write(e){this.s+=e,this.s.length>19&&(this.sarr.push(this.s),this.s=""),this.lensE.write(e.length)}toUint8Array(){const e=new Kt;return this.sarr.push(this.s),this.s="",Zt(e,this.sarr.join("")),en(e,this.lensE.toUint8Array()),Jt(e)}}const hn=e=>new Error(e),fn=()=>{throw hn("Method unimplemented")},pn=()=>{throw hn("Unexpected case")},gn=hn("Unexpected end of array"),yn=hn("Integer out of Range");class mn{constructor(e){this.arr=e,this.pos=0}}const vn=e=>new mn(e),bn=e=>((e,t)=>{const n=new Uint8Array(e.arr.buffer,e.pos+e.arr.byteOffset,t);return e.pos+=t,n})(e,_n(e)),wn=e=>e.arr[e.pos++],_n=e=>{let t=0,n=1;const r=e.arr.length;for(;e.pos<r;){const r=e.arr[e.pos++];if(t+=(r&Pt)*n,n*=128,r<jt)return t;if(t>Rt)throw yn}throw gn},kn=e=>{let t=e.arr[e.pos++],n=63&t,r=64;const s=(t&Lt)>0?-1:1;if(0==(t&jt))return s*n;const i=e.arr.length;for(;e.pos<i;){if(t=e.arr[e.pos++],n+=(t&Pt)*r,r*=128,t<jt)return s*n;if(n>Rt)throw yn}throw gn},Sn=Vt?e=>Vt.decode(bn(e)):e=>{let t=_n(e);if(0===t)return"";{let n=String.fromCodePoint(wn(e));if(--t<100)for(;t--;)n+=String.fromCodePoint(wn(e));else for(;t>0;){const r=t<1e4?t:1e4,s=e.arr.subarray(e.pos,e.pos+r);e.pos+=r,n+=String.fromCodePoint.apply(null,s),t-=r}return decodeURIComponent(escape(n))}},En=(e,t)=>{const n=new DataView(e.arr.buffer,e.arr.byteOffset+e.pos,t);return e.pos+=t,n},xn=[e=>{},e=>null,kn,e=>En(e,4).getFloat32(0,!1),e=>En(e,8).getFloat64(0,!1),e=>En(e,8).getBigInt64(0,!1),e=>!1,e=>!0,Sn,e=>{const t=_n(e),n={};for(let r=0;r<t;r++){n[Sn(e)]=Cn(e)}return n},e=>{const t=_n(e),n=[];for(let r=0;r<t;r++)n.push(Cn(e));return n},bn],Cn=e=>xn[127-wn(e)](e);class In extends mn{constructor(e,t){super(e),this.reader=t,this.s=null,this.count=0}read(){var e;return 0===this.count&&(this.s=this.reader(this),(e=this).pos!==e.arr.length?this.count=_n(this)+1:this.count=-1),this.count--,this.s}}class An extends mn{constructor(e){super(e),this.s=0,this.count=0}read(){if(0===this.count){this.s=kn(this);const e=Tt(this.s);this.count=1,e&&(this.s=-this.s,this.count=_n(this)+2)}return this.count--,this.s}}class Dn extends mn{constructor(e){super(e),this.s=0,this.count=0,this.diff=0}read(){if(0===this.count){const e=kn(this),t=1&e;this.diff=At(e/2),this.count=1,t&&(this.count=_n(this)+2)}return this.s+=this.diff,this.count--,this.s}}class On{constructor(e){this.decoder=new An(e),this.str=Sn(this.decoder),this.spos=0}read(){const e=this.spos+this.decoder.read(),t=this.str.slice(this.spos,e);return this.spos=e,t}}const Un=crypto.getRandomValues.bind(crypto),Tn=()=>Un(new Uint32Array(1))[0],Ln=[1e7]+-1e3+-4e3+-8e3+-1e11,jn=()=>Ln.replace(/[018]/g,(e=>(e^Tn()&15>>e/4).toString(16))),Pn=Date.now,Rn=e=>new Promise(e);Promise.all.bind(Promise);const Mn=e=>void 0===e?null:e;let Nn=new class{constructor(){this.map=new Map}setItem(e,t){this.map.set(e,t)}getItem(e){return this.map.get(e)}},$n=!0;try{"undefined"!=typeof localStorage&&localStorage&&(Nn=localStorage,$n=!1)}catch(sc){}const Bn=Nn,Fn=Object.assign,Wn=Object.keys,Vn=e=>Wn(e).length,Kn=e=>Wn(e).length,Hn=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),Jn=Object.freeze,zn=e=>{for(const t in e){const n=e[t];"object"!=typeof n&&"function"!=typeof n||zn(e[t])}return Jn(e)},qn=(e,t,n=0)=>{try{for(;n<e.length;n++)e[n](...t)}finally{n<e.length&&qn(e,t,n+1)}},Yn=(e,t)=>{if(null==e||null==t)return((e,t)=>e===t)(e,t);if(e.constructor!==t.constructor)return!1;if(e===t)return!0;switch(e.constructor){case ArrayBuffer:e=new Uint8Array(e),t=new Uint8Array(t);case Uint8Array:if(e.byteLength!==t.byteLength)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;break;case Set:if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;break;case Map:if(e.size!==t.size)return!1;for(const n of e.keys())if(!t.has(n)||!Yn(e.get(n),t.get(n)))return!1;break;case Object:if(Vn(e)!==Vn(t))return!1;for(const n in e)if(!Hn(e,n)||!Yn(e[n],t[n]))return!1;break;case Array:if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(!Yn(e[n],t[n]))return!1;break;default:return!1}return!0},Gn="undefined"!=typeof process&&process.release&&/node|io\.js/.test(process.release.name)&&"[object process]"===Object.prototype.toString.call("undefined"!=typeof process?process:0);let Qn;const Xn=e=>(()=>{if(void 0===Qn)if(Gn){Qn=vt();const e=process.argv;let t=null;for(let n=0;n<e.length;n++){const r=e[n];"-"===r[0]?(null!==t&&Qn.set(t,""),t=r):null!==t&&(Qn.set(t,r),t=null)}null!==t&&Qn.set(t,"")}else"object"==typeof location?(Qn=vt(),(location.search||"?").slice(1).split("&").forEach((e=>{if(0!==e.length){const[t,n]=e.split("=");Qn.set(`--${Bt(t,"-")}`,n),Qn.set(`-${Bt(t,"-")}`,n)}}))):Qn=vt();return Qn})().has(e),Zn=e=>Mn(Gn?process.env[e.toUpperCase().replaceAll("-","_")]:Bn.getItem(e)),er=e=>Xn("--"+e)||null!==Zn(e);er("production");var tr;Gn&&(tr=process.env.FORCE_COLOR,["true","1","2"].includes(tr))||!Xn("--no-colors")&&!er("no-color")&&(!Gn||process.stdout.isTTY)&&(!Gn||Xn("--color")||null!==Zn("COLORTERM")||(Zn("TERM")||"").includes("color"));class nr{constructor(e,t){this.left=e,this.right=t}}const rr=(e,t)=>new nr(e,t);"undefined"!=typeof DOMParser&&new DOMParser;const sr=Symbol,ir=sr(),or=sr(),lr=sr(),cr=sr(),ar=sr(),ur=sr(),dr=sr(),hr=sr(),fr=sr(),pr=(rr("font-weight","bold"),rr("font-weight","normal"),rr("color","blue"),rr("color","green"),rr("color","grey"),rr("color","red"),rr("color","purple"),rr("color","orange"),rr("color","black"),_t()),gr=e=>({[Symbol.iterator](){return this},next:e}),yr=(e,t)=>gr((()=>{const{done:n,value:r}=e.next();return{done:n,value:n?void 0:t(r)}}));class mr{constructor(e,t){this.clock=e,this.len=t}}class vr{constructor(){this.clients=new Map}}const br=(e,t,n)=>t.clients.forEach(((t,r)=>{const s=e.doc.store.clients.get(r);if(null!=s){const r=s[s.length-1],i=r.id.clock+r.length;for(let r=0,o=t[r];r<t.length&&o.clock<i;o=t[++r])ts(e,s,o.clock,o.len,n)}})),wr=(e,t)=>{const n=e.clients.get(t.client);return void 0!==n&&null!==((e,t)=>{let n=0,r=e.length-1;for(;n<=r;){const s=At((n+r)/2),i=e[s],o=i.clock;if(o<=t){if(t<o+i.len)return s;n=s+1}else r=s-1}return null})(n,t.clock)},_r=e=>{e.clients.forEach((e=>{let t,n;for(e.sort(((e,t)=>e.clock-t.clock)),t=1,n=1;t<e.length;t++){const r=e[n-1],s=e[t];r.clock+r.len>=s.clock?r.len=Ut(r.len,s.clock+s.len-r.clock):(n<t&&(e[n]=s),n++)}e.length=n}))},kr=(e,t,n,r)=>{wt(e.clients,t,(()=>[])).push(new mr(n,r))},Sr=(e,t)=>{Yt(e.restEncoder,t.clients.size),Et(t.clients.entries()).sort(((e,t)=>t[0]-e[0])).forEach((([t,n])=>{e.resetDsCurVal(),Yt(e.restEncoder,t);const r=n.length;Yt(e.restEncoder,r);for(let t=0;t<r;t++){const r=n[t];e.writeDsClock(r.clock),e.writeDsLen(r.len)}}))},Er=(e,t,n)=>{const r=new vr,s=_n(e.restDecoder);for(let i=0;i<s;i++){e.resetDsCurVal();const s=_n(e.restDecoder),i=_n(e.restDecoder),o=n.clients.get(s)||[],l=qr(n,s);for(let n=0;n<i;n++){const n=e.readDsClock(),i=n+e.readDsLen();if(n<l){l<i&&kr(r,s,l,i-l);let e=Gr(o,n),c=o[e];for(!c.deleted&&c.id.clock<n&&(o.splice(e+1,0,Ri(t,c,n-c.id.clock)),e++);e<o.length&&(c=o[e++],c.id.clock<i);)c.deleted||(i<c.id.clock+c.length&&o.splice(e,0,Ri(t,c,i-c.id.clock)),c.delete(t))}else kr(r,s,n,i-n)}}if(r.clients.size>0){const e=new Tr;return Yt(e.restEncoder,0),Sr(e,r),e.toUint8Array()}return null},xr=Tn;class Cr extends Ct{constructor({guid:e=jn(),collectionid:t=null,gc:n=!0,gcFilter:r=(()=>!0),meta:s=null,autoLoad:i=!1,shouldLoad:o=!0}={}){super(),this.gc=n,this.gcFilter=r,this.clientID=xr(),this.guid=e,this.collectionid=t,this.share=new Map,this.store=new Jr,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=Rn((e=>{this.on("load",(()=>{this.isLoaded=!0,e(this)}))}));const l=()=>Rn((e=>{const t=n=>{void 0!==n&&!0!==n||(this.off("sync",t),e())};this.on("sync",t)}));this.on("sync",(e=>{!1===e&&this.isSynced&&(this.whenSynced=l()),this.isSynced=void 0===e||!0===e,this.isSynced&&!this.isLoaded&&this.emit("load",[this])})),this.whenSynced=l()}load(){const e=this._item;null===e||this.shouldLoad||ls(e.parent.doc,(e=>{e.subdocsLoaded.add(this)}),null,!0),this.shouldLoad=!0}getSubdocs(){return this.subdocs}getSubdocGuids(){return new Set(Et(this.subdocs).map((e=>e.guid)))}transact(e,t=null){return ls(this,e,t)}get(e,t=Cs){const n=wt(this.share,e,(()=>{const e=new t;return e._integrate(this,null),e})),r=n.constructor;if(t!==Cs&&r!==t){if(r===Cs){const r=new t;r._map=n._map,n._map.forEach((e=>{for(;null!==e;e=e.left)e.parent=r})),r._start=n._start;for(let e=r._start;null!==e;e=e.right)e.parent=r;return r._length=n._length,this.share.set(e,r),r._integrate(this,null),r}throw new Error(`Type with the name ${e} has already been defined with a different constructor`)}return n}getArray(e=""){return this.get(e,Ks)}getText(e=""){return this.get(e,ci)}getMap(e=""){return this.get(e,Js)}getXmlElement(e=""){return this.get(e,di)}getXmlFragment(e=""){return this.get(e,ui)}toJSON(){const e={};return this.share.forEach(((t,n)=>{e[n]=t.toJSON()})),e}destroy(){this.isDestroyed=!0,Et(this.subdocs).forEach((e=>e.destroy()));const e=this._item;if(null!==e){this._item=null;const t=e.content;t.doc=new Cr({guid:this.guid,...t.opts,shouldLoad:!1}),t.doc._item=e,ls(e.parent.doc,(n=>{const r=t.doc;e.deleted||n.subdocsAdded.add(r),n.subdocsRemoved.add(this)}),null,!0)}this.emit("destroyed",[!0]),this.emit("destroy",[this]),super.destroy()}}class Ir{constructor(e){this.dsCurrVal=0,this.restDecoder=e}resetDsCurVal(){this.dsCurrVal=0}readDsClock(){return this.dsCurrVal+=_n(this.restDecoder),this.dsCurrVal}readDsLen(){const e=_n(this.restDecoder)+1;return this.dsCurrVal+=e,e}}class Ar extends Ir{constructor(e){super(e),this.keys=[],_n(e),this.keyClockDecoder=new Dn(bn(e)),this.clientDecoder=new An(bn(e)),this.leftClockDecoder=new Dn(bn(e)),this.rightClockDecoder=new Dn(bn(e)),this.infoDecoder=new In(bn(e),wn),this.stringDecoder=new On(bn(e)),this.parentInfoDecoder=new In(bn(e),wn),this.typeRefDecoder=new An(bn(e)),this.lenDecoder=new An(bn(e))}readLeftID(){return new Fr(this.clientDecoder.read(),this.leftClockDecoder.read())}readRightID(){return new Fr(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 Cn(this.restDecoder)}readBuf(){return bn(this.restDecoder)}readJSON(){return Cn(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 Dr{constructor(){this.restEncoder=Ht()}toUint8Array(){return Jt(this.restEncoder)}resetDsCurVal(){}writeDsClock(e){Yt(this.restEncoder,e)}writeDsLen(e){Yt(this.restEncoder,e)}}class Or extends Dr{writeLeftID(e){Yt(this.restEncoder,e.client),Yt(this.restEncoder,e.clock)}writeRightID(e){Yt(this.restEncoder,e.client),Yt(this.restEncoder,e.clock)}writeClient(e){Yt(this.restEncoder,e)}writeInfo(e){qt(this.restEncoder,e)}writeString(e){Zt(this.restEncoder,e)}writeParentInfo(e){Yt(this.restEncoder,e?1:0)}writeTypeRef(e){Yt(this.restEncoder,e)}writeLen(e){Yt(this.restEncoder,e)}writeAny(e){sn(this.restEncoder,e)}writeBuf(e){tn(this.restEncoder,e)}writeJSON(e){Zt(this.restEncoder,JSON.stringify(e))}writeKey(e){Zt(this.restEncoder,e)}}class Ur{constructor(){this.restEncoder=Ht(),this.dsCurrVal=0}toUint8Array(){return Jt(this.restEncoder)}resetDsCurVal(){this.dsCurrVal=0}writeDsClock(e){const t=e-this.dsCurrVal;this.dsCurrVal=e,Yt(this.restEncoder,t)}writeDsLen(e){0===e&&pn(),Yt(this.restEncoder,e-1),this.dsCurrVal+=e}}class Tr extends Ur{constructor(){super(),this.keyMap=new Map,this.keyClock=0,this.keyClockEncoder=new un,this.clientEncoder=new cn,this.leftClockEncoder=new un,this.rightClockEncoder=new un,this.infoEncoder=new on(qt),this.stringEncoder=new dn,this.parentInfoEncoder=new on(qt),this.typeRefEncoder=new cn,this.lenEncoder=new cn}toUint8Array(){const e=Ht();return Yt(e,0),tn(e,this.keyClockEncoder.toUint8Array()),tn(e,this.clientEncoder.toUint8Array()),tn(e,this.leftClockEncoder.toUint8Array()),tn(e,this.rightClockEncoder.toUint8Array()),tn(e,Jt(this.infoEncoder)),tn(e,this.stringEncoder.toUint8Array()),tn(e,Jt(this.parentInfoEncoder)),tn(e,this.typeRefEncoder.toUint8Array()),tn(e,this.lenEncoder.toUint8Array()),en(e,Jt(this.restEncoder)),Jt(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){sn(this.restEncoder,e)}writeBuf(e){tn(this.restEncoder,e)}writeJSON(e){sn(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 Lr=(e,t,n)=>{const r=new Map;n.forEach(((e,n)=>{qr(t,n)>e&&r.set(n,e)})),zr(t).forEach(((e,t)=>{n.has(t)||r.set(t,0)})),Yt(e.restEncoder,r.size),Et(r.entries()).sort(((e,t)=>t[0]-e[0])).forEach((([n,r])=>{((e,t,n,r)=>{r=Ut(r,t[0].id.clock);const s=Gr(t,r);Yt(e.restEncoder,t.length-s),e.writeClient(n),Yt(e.restEncoder,r);const i=t[s];i.write(e,r-i.id.clock);for(let n=s+1;n<t.length;n++)t[n].write(e,0)})(e,t.clients.get(n),n,r)}))},jr=(e,t,n,r=new Ar(e))=>ls(t,(e=>{e.local=!1;let t=!1;const n=e.doc,s=n.store,i=((e,t)=>{const n=vt(),r=_n(e.restDecoder);for(let s=0;s<r;s++){const r=_n(e.restDecoder),s=new Array(r),i=e.readClient();let o=_n(e.restDecoder);n.set(i,{i:0,refs:s});for(let n=0;n<r;n++){const r=e.readInfo();switch(31&r){case 0:{const t=e.readLen();s[n]=new yi(Vr(i,o),t),o+=t;break}case 10:{const t=_n(e.restDecoder);s[n]=new Bi(Vr(i,o),t),o+=t;break}default:{const l=0==(192&r),c=new Mi(Vr(i,o),null,(r&jt)===jt?e.readLeftID():null,null,(r&Lt)===Lt?e.readRightID():null,l?e.readParentInfo()?t.get(e.readString()):e.readLeftID():null,l&&32==(32&r)?e.readString():null,Ni(e,r));s[n]=c,o+=c.length}}}}return n})(r,n),o=((e,t,n)=>{const r=[];let s=Et(n.keys()).sort(((e,t)=>e-t));if(0===s.length)return null;const i=()=>{if(0===s.length)return null;let e=n.get(s[s.length-1]);for(;e.refs.length===e.i;){if(s.pop(),!(s.length>0))return null;e=n.get(s[s.length-1])}return e};let o=i();if(null===o)return null;const l=new Jr,c=new Map,a=(e,t)=>{const n=c.get(e);(null==n||n>t)&&c.set(e,t)};let u=o.refs[o.i++];const d=new Map,h=()=>{for(const e of r){const t=e.id.client,r=n.get(t);r?(r.i--,l.clients.set(t,r.refs.slice(r.i)),n.delete(t),r.i=0,r.refs=[]):l.clients.set(t,[e]),s=s.filter((e=>e!==t))}r.length=0};for(;;){if(u.constructor!==Bi){const s=wt(d,u.id.client,(()=>qr(t,u.id.client)))-u.id.clock;if(s<0)r.push(u),a(u.id.client,u.id.clock-1),h();else{const i=u.getMissing(e,t);if(null!==i){r.push(u);const e=n.get(i)||{refs:[],i:0};if(e.refs.length!==e.i){u=e.refs[e.i++];continue}a(i,qr(t,i)),h()}else(0===s||s<u.length)&&(u.integrate(e,s),d.set(u.id.client,u.id.clock+u.length))}}if(r.length>0)u=r.pop();else if(null!==o&&o.i<o.refs.length)u=o.refs[o.i++];else{if(o=i(),null===o)break;u=o.refs[o.i++]}}if(l.clients.size>0){const e=new Tr;return Lr(e,l,new Map),Yt(e.restEncoder,0),{missing:c,update:e.toUint8Array()}}return null})(e,s,i),l=s.pendingStructs;if(l){for(const[e,n]of l.missing)if(n<qr(s,e)){t=!0;break}if(o){for(const[e,t]of o.missing){const n=l.missing.get(e);(null==n||n>t)&&l.missing.set(e,t)}l.update=hs([l.update,o.update])}}else s.pendingStructs=o;const c=Er(r,e,s);if(s.pendingDs){const t=new Ar(vn(s.pendingDs));_n(t.restDecoder);const n=Er(t,e,s);s.pendingDs=c&&n?hs([c,n]):c||n}else s.pendingDs=c;if(t){const t=s.pendingStructs.update;s.pendingStructs=null,Pr(e.doc,t)}}),n,!1),Pr=(e,t,n,r=Ar)=>{const s=vn(t);jr(s,e,n,new r(s))};class Rr{constructor(){this.l=[]}}const Mr=()=>new Rr,Nr=(e,t)=>e.l.push(t),$r=(e,t)=>{const n=e.l;n.length;e.l=n.filter((e=>t!==e)),e.l.length},Br=(e,t,n)=>qn(e.l,[t,n]);class Fr{constructor(e,t){this.client=e,this.clock=t}}const Wr=(e,t)=>e===t||null!==e&&null!==t&&e.client===t.client&&e.clock===t.clock,Vr=(e,t)=>new Fr(e,t),Kr=(e,t)=>void 0===t?!e.deleted:t.sv.has(e.id.client)&&(t.sv.get(e.id.client)||0)>e.id.clock&&!wr(t.ds,e.id),Hr=(e,t)=>{const n=wt(e.meta,Hr,_t),r=e.doc.store;n.has(t)||(t.sv.forEach(((t,n)=>{t<qr(r,n)&&Zr(e,Vr(n,t))})),br(e,t.ds,(e=>{})),n.add(t))};class Jr{constructor(){this.clients=new Map,this.pendingStructs=null,this.pendingDs=null}}const zr=e=>{const t=new Map;return e.clients.forEach(((e,n)=>{const r=e[e.length-1];t.set(n,r.id.clock+r.length)})),t},qr=(e,t)=>{const n=e.clients.get(t);if(void 0===n)return 0;const r=n[n.length-1];return r.id.clock+r.length},Yr=(e,t)=>{let n=e.clients.get(t.id.client);if(void 0===n)n=[],e.clients.set(t.id.client,n);else{const e=n[n.length-1];if(e.id.clock+e.length!==t.id.clock)throw pn()}n.push(t)},Gr=(e,t)=>{let n=0,r=e.length-1,s=e[r],i=s.id.clock;if(i===t)return r;let o=At(t/(i+s.length-1)*r);for(;n<=r;){if(s=e[o],i=s.id.clock,i<=t){if(t<i+s.length)return o;n=o+1}else r=o-1;o=At((n+r)/2)}throw pn()},Qr=(e,t)=>{const n=e.clients.get(t.client);return n[Gr(n,t.clock)]},Xr=(e,t,n)=>{const r=Gr(t,n),s=t[r];return s.id.clock<n&&s instanceof Mi?(t.splice(r+1,0,Ri(e,s,n-s.id.clock)),r+1):r},Zr=(e,t)=>{const n=e.doc.store.clients.get(t.client);return n[Xr(e,n,t.clock)]},es=(e,t,n)=>{const r=t.clients.get(n.client),s=Gr(r,n.clock),i=r[s];return n.clock!==i.id.clock+i.length-1&&i.constructor!==yi&&r.splice(s+1,0,Ri(e,i,n.clock-i.id.clock+1)),i},ts=(e,t,n,r,s)=>{if(0===r)return;const i=n+r;let o,l=Xr(e,t,n);do{o=t[l++],i<o.id.clock+o.length&&Xr(e,t,i),s(o)}while(l<t.length&&t[l].id.clock<i)};class ns{constructor(e,t,n){this.doc=e,this.deleteSet=new vr,this.beforeState=zr(e.store),this.afterState=new Map,this.changed=new Map,this.changedParentTypes=new Map,this._mergeStructs=[],this.origin=t,this.meta=new Map,this.local=n,this.subdocsAdded=new Set,this.subdocsRemoved=new Set,this.subdocsLoaded=new Set,this._needFormattingCleanup=!1}}const rs=(e,t)=>!(0===t.deleteSet.clients.size&&!((e,t)=>{for(const[n,r]of e)if(t(r,n))return!0;return!1})(t.afterState,((e,n)=>t.beforeState.get(n)!==e)))&&(_r(t.deleteSet),((e,t)=>{Lr(e,t.doc.store,t.beforeState)})(e,t),Sr(e,t.deleteSet),!0),ss=(e,t,n)=>{const r=t._item;(null===r||r.id.clock<(e.beforeState.get(r.id.client)||0)&&!r.deleted)&&wt(e.changed,t,_t).add(n)},is=(e,t)=>{let n=e[t],r=e[t-1],s=t;for(;s>0&&(r.deleted===n.deleted&&r.constructor===n.constructor&&r.mergeWith(n));n=r,r=e[--s-1])n instanceof Mi&&null!==n.parentSub&&n.parent._map.get(n.parentSub)===n&&n.parent._map.set(n.parentSub,r);const i=t-s;return i&&e.splice(t+1-i,i),i},os=(e,t)=>{if(t<e.length){const n=e[t],r=n.doc,s=r.store,i=n.deleteSet,o=n._mergeStructs;try{_r(i),n.afterState=zr(n.doc.store),r.emit("beforeObserverCalls",[n,r]);const e=[];n.changed.forEach(((t,r)=>e.push((()=>{null!==r._item&&r._item.deleted||r._callObserver(n,t)})))),e.push((()=>{n.changedParentTypes.forEach(((e,t)=>{t._dEH.l.length>0&&(null===t._item||!t._item.deleted)&&((e=e.filter((e=>null===e.target._item||!e.target._item.deleted))).forEach((e=>{e.currentTarget=t,e._path=null})),e.sort(((e,t)=>e.path.length-t.path.length)),Br(t._dEH,e,n))}))})),e.push((()=>r.emit("afterTransaction",[n,r]))),qn(e,[]),n._needFormattingCleanup&&ii(n)}finally{r.gc&&((e,t,n)=>{for(const[r,s]of e.clients.entries()){const e=t.clients.get(r);for(let r=s.length-1;r>=0;r--){const i=s[r],o=i.clock+i.len;for(let r=Gr(e,i.clock),s=e[r];r<e.length&&s.id.clock<o;s=e[++r]){const s=e[r];if(i.clock+i.len<=s.id.clock)break;s instanceof Mi&&s.deleted&&!s.keep&&n(s)&&s.gc(t,!1)}}}})(i,s,r.gcFilter),((e,t)=>{e.clients.forEach(((e,n)=>{const r=t.clients.get(n);for(let t=e.length-1;t>=0;t--){const n=e[t];for(let e=Ot(r.length-1,1+Gr(r,n.clock+n.len-1)),t=r[e];e>0&&t.id.clock>=n.clock;t=r[e])e-=1+is(r,e)}}))})(i,s),n.afterState.forEach(((e,t)=>{const r=n.beforeState.get(t)||0;if(r!==e){const e=s.clients.get(t),n=Ut(Gr(e,r),1);for(let t=e.length-1;t>=n;)t-=1+is(e,t)}}));for(let e=o.length-1;e>=0;e--){const{client:t,clock:n}=o[e].id,r=s.clients.get(t),i=Gr(r,n);i+1<r.length&&is(r,i+1)>1||i>0&&is(r,i)}if(n.local||n.afterState.get(r.clientID)===n.beforeState.get(r.clientID)||(((...e)=>{pr.forEach((t=>t.print(e)))})(hr,ir,"[yjs] ",or,ur,"Changed the client-id because another client seems to be using it."),r.clientID=xr()),r.emit("afterTransactionCleanup",[n,r]),r._observers.has("update")){const e=new Or;rs(e,n)&&r.emit("update",[e.toUint8Array(),n.origin,r,n])}if(r._observers.has("updateV2")){const e=new Tr;rs(e,n)&&r.emit("updateV2",[e.toUint8Array(),n.origin,r,n])}const{subdocsAdded:l,subdocsLoaded:c,subdocsRemoved:a}=n;(l.size>0||a.size>0||c.size>0)&&(l.forEach((e=>{e.clientID=r.clientID,null==e.collectionid&&(e.collectionid=r.collectionid),r.subdocs.add(e)})),a.forEach((e=>r.subdocs.delete(e))),r.emit("subdocs",[{loaded:c,added:l,removed:a},r,n]),a.forEach((e=>e.destroy()))),e.length<=t+1?(r._transactionCleanups=[],r.emit("afterAllTransactions",[r,e])):os(e,t+1)}}},ls=(e,t,n=null,r=!0)=>{const s=e._transactionCleanups;let i=!1,o=null;null===e._transaction&&(i=!0,e._transaction=new ns(e,n,r),s.push(e._transaction),1===s.length&&e.emit("beforeAllTransactions",[e]),e.emit("beforeTransaction",[e._transaction,e]));try{o=t(e._transaction)}finally{if(i){const t=e._transaction===s[0];e._transaction=null,t&&os(s,0)}}return o};class cs{constructor(e,t){this.gen=function*(e){const t=_n(e.restDecoder);for(let n=0;n<t;n++){const t=_n(e.restDecoder),n=e.readClient();let r=_n(e.restDecoder);for(let s=0;s<t;s++){const t=e.readInfo();if(10===t){const t=_n(e.restDecoder);yield new Bi(Vr(n,r),t),r+=t}else if(0!=(31&t)){const s=0==(192&t),i=new Mi(Vr(n,r),null,(t&jt)===jt?e.readLeftID():null,null,(t&Lt)===Lt?e.readRightID():null,s?e.readParentInfo()?e.readString():e.readLeftID():null,s&&32==(32&t)?e.readString():null,Ni(e,t));yield i,r+=i.length}else{const t=e.readLen();yield new yi(Vr(n,r),t),r+=t}}}}(e),this.curr=null,this.done=!1,this.filterSkips=t,this.next()}next(){do{this.curr=this.gen.next().value||null}while(this.filterSkips&&null!==this.curr&&this.curr.constructor===Bi);return this.curr}}class as{constructor(e){this.currClient=0,this.startClock=0,this.written=0,this.encoder=e,this.clientStructs=[]}}const us=(e,t=Ur,n=Ar)=>{const r=new t,s=new cs(new n(vn(e)),!1);let i=s.curr;if(null!==i){let e=0,t=i.id.client,n=0!==i.id.clock,o=n?0:i.id.clock+i.length;for(;null!==i;i=s.next())t!==i.id.client&&(0!==o&&(e++,Yt(r.restEncoder,t),Yt(r.restEncoder,o)),t=i.id.client,o=0,n=0!==i.id.clock),i.constructor===Bi&&(n=!0),n||(o=i.id.clock+i.length);0!==o&&(e++,Yt(r.restEncoder,t),Yt(r.restEncoder,o));const l=Ht();return Yt(l,e),((e,t)=>{en(e,Jt(t))})(l,r.restEncoder),r.restEncoder=l,r.toUint8Array()}return Yt(r.restEncoder,0),r.toUint8Array()},ds=(e,t)=>{if(e.constructor===yi){const{client:n,clock:r}=e.id;return new yi(Vr(n,r+t),e.length-t)}if(e.constructor===Bi){const{client:n,clock:r}=e.id;return new Bi(Vr(n,r+t),e.length-t)}{const n=e,{client:r,clock:s}=n.id;return new Mi(Vr(r,s+t),null,Vr(r,s+t-1),null,n.rightOrigin,n.parent,n.parentSub,n.content.splice(t))}},hs=(e,t=Ar,n=Tr)=>{if(1===e.length)return e[0];const r=e.map((e=>new t(vn(e))));let s=r.map((e=>new cs(e,!0))),i=null;const o=new n,l=new as(o);for(;s=s.filter((e=>null!==e.curr)),s.sort(((e,t)=>{if(e.curr.id.client===t.curr.id.client){const n=e.curr.id.clock-t.curr.id.clock;return 0===n?e.curr.constructor===t.curr.constructor?0:e.curr.constructor===Bi?1:-1:n}return t.curr.id.client-e.curr.id.client})),0!==s.length;){const e=s[0],t=e.curr.id.client;if(null!==i){let n=e.curr,r=!1;for(;null!==n&&n.id.clock+n.length<=i.struct.id.clock+i.struct.length&&n.id.client>=i.struct.id.client;)n=e.next(),r=!0;if(null===n||n.id.client!==t||r&&n.id.clock>i.struct.id.clock+i.struct.length)continue;if(t!==i.struct.id.client)ps(l,i.struct,i.offset),i={struct:n,offset:0},e.next();else if(i.struct.id.clock+i.struct.length<n.id.clock)if(i.struct.constructor===Bi)i.struct.length=n.id.clock+n.length-i.struct.id.clock;else{ps(l,i.struct,i.offset);const e=n.id.clock-i.struct.id.clock-i.struct.length;i={struct:new Bi(Vr(t,i.struct.id.clock+i.struct.length),e),offset:0}}else{const t=i.struct.id.clock+i.struct.length-n.id.clock;t>0&&(i.struct.constructor===Bi?i.struct.length-=t:n=ds(n,t)),i.struct.mergeWith(n)||(ps(l,i.struct,i.offset),i={struct:n,offset:0},e.next())}}else i={struct:e.curr,offset:0},e.next();for(let n=e.curr;null!==n&&n.id.client===t&&n.id.clock===i.struct.id.clock+i.struct.length&&n.constructor!==Bi;n=e.next())ps(l,i.struct,i.offset),i={struct:n,offset:0}}null!==i&&(ps(l,i.struct,i.offset),i=null),gs(l);const c=r.map((e=>(e=>{const t=new vr,n=_n(e.restDecoder);for(let r=0;r<n;r++){e.resetDsCurVal();const n=_n(e.restDecoder),r=_n(e.restDecoder);if(r>0){const s=wt(t.clients,n,(()=>[]));for(let t=0;t<r;t++)s.push(new mr(e.readDsClock(),e.readDsLen()))}}return t})(e))),a=(e=>{const t=new vr;for(let n=0;n<e.length;n++)e[n].clients.forEach(((r,s)=>{if(!t.clients.has(s)){const i=r.slice();for(let t=n+1;t<e.length;t++)St(i,e[t].clients.get(s)||[]);t.clients.set(s,i)}}));return _r(t),t})(c);return Sr(o,a),o.toUint8Array()},fs=e=>{e.written>0&&(e.clientStructs.push({written:e.written,restEncoder:Jt(e.encoder.restEncoder)}),e.encoder.restEncoder=Ht(),e.written=0)},ps=(e,t,n)=>{e.written>0&&e.currClient!==t.id.client&&fs(e),0===e.written&&(e.currClient=t.id.client,e.encoder.writeClient(t.id.client),Yt(e.encoder.restEncoder,t.id.clock+n)),t.write(e.encoder,n),e.written++},gs=e=>{fs(e);const t=e.encoder.restEncoder;Yt(t,e.clientStructs.length);for(let n=0;n<e.clientStructs.length;n++){const r=e.clientStructs[n];Yt(t,r.written),en(t,r.restEncoder)}},ys="You must not compute changes after the event-handler fired.";class ms{constructor(e,t){this.target=e,this.currentTarget=e,this.transaction=t,this._changes=null,this._keys=null,this._delta=null,this._path=null}get path(){return this._path||(this._path=vs(this.currentTarget,this.target))}deletes(e){return wr(this.transaction.deleteSet,e.id)}get keys(){if(null===this._keys){if(0===this.transaction.doc._transactionCleanups.length)throw hn(ys);const e=new Map,t=this.target;this.transaction.changed.get(t).forEach((n=>{if(null!==n){const r=t._map.get(n);let s,i;if(this.adds(r)){let e=r.left;for(;null!==e&&this.adds(e);)e=e.left;if(this.deletes(r)){if(null===e||!this.deletes(e))return;s="delete",i=kt(e.content.getContent())}else null!==e&&this.deletes(e)?(s="update",i=kt(e.content.getContent())):(s="add",i=void 0)}else{if(!this.deletes(r))return;s="delete",i=kt(r.content.getContent())}e.set(n,{action:s,oldValue:i})}})),this._keys=e}return this._keys}get delta(){return this.changes.delta}adds(e){return e.id.clock>=(this.transaction.beforeState.get(e.id.client)||0)}get changes(){let e=this._changes;if(null===e){if(0===this.transaction.doc._transactionCleanups.length)throw hn(ys);const t=this.target,n=_t(),r=_t(),s=[];e={added:n,deleted:r,delta:s,keys:this.keys};if(this.transaction.changed.get(t).has(null)){let e=null;const i=()=>{e&&s.push(e)};for(let s=t._start;null!==s;s=s.right)s.deleted?this.deletes(s)&&!this.adds(s)&&(null!==e&&void 0!==e.delete||(i(),e={delete:0}),e.delete+=s.length,r.add(s)):this.adds(s)?(null!==e&&void 0!==e.insert||(i(),e={insert:[]}),e.insert=e.insert.concat(s.content.getContent()),n.add(s)):(null!==e&&void 0!==e.retain||(i(),e={retain:0}),e.retain+=s.length);null!==e&&void 0===e.retain&&i()}this._changes=e}return e}}const vs=(e,t)=>{const n=[];for(;null!==t._item&&t!==e;){if(null!==t._item.parentSub)n.unshift(t._item.parentSub);else{let e=0,r=t._item.parent._start;for(;r!==t._item&&null!==r;)!r.deleted&&r.countable&&(e+=r.length),r=r.right;n.unshift(e)}t=t._item.parent}return n},bs=()=>{((...e)=>{e.unshift(hr),pr.forEach((t=>t.print(e)))})("Invalid access: Add Yjs type to a document before reading data.")};let ws=0;class _s{constructor(e,t){e.marker=!0,this.p=e,this.index=t,this.timestamp=ws++}}const ks=(e,t,n)=>{e.p.marker=!1,e.p=t,t.marker=!0,e.index=n,e.timestamp=ws++},Ss=(e,t)=>{if(null===e._start||0===t||null===e._searchMarker)return null;const n=0===e._searchMarker.length?null:e._searchMarker.reduce(((e,n)=>Dt(t-e.index)<Dt(t-n.index)?e:n));let r=e._start,s=0;for(null!==n&&(r=n.p,s=n.index,(e=>{e.timestamp=ws++})(n));null!==r.right&&s<t;){if(!r.deleted&&r.countable){if(t<s+r.length)break;s+=r.length}r=r.right}for(;null!==r.left&&s>t;)r=r.left,!r.deleted&&r.countable&&(s-=r.length);for(;null!==r.left&&r.left.id.client===r.id.client&&r.left.id.clock+r.left.length===r.id.clock;)r=r.left,!r.deleted&&r.countable&&(s-=r.length);return null!==n&&Dt(n.index-s)<r.parent.length/80?(ks(n,r,s),n):((e,t,n)=>{if(e.length>=80){const r=e.reduce(((e,t)=>e.timestamp<t.timestamp?e:t));return ks(r,t,n),r}{const r=new _s(t,n);return e.push(r),r}})(e._searchMarker,r,s)},Es=(e,t,n)=>{for(let r=e.length-1;r>=0;r--){const s=e[r];if(n>0){let t=s.p;for(t.marker=!1;t&&(t.deleted||!t.countable);)t=t.left,t&&!t.deleted&&t.countable&&(s.index-=t.length);if(null===t||!0===t.marker){e.splice(r,1);continue}s.p=t,t.marker=!0}(t<s.index||n>0&&t===s.index)&&(s.index=Ut(t,s.index+n))}},xs=(e,t,n)=>{const r=e,s=t.changedParentTypes;for(;wt(s,e,(()=>[])).push(n),null!==e._item;)e=e._item.parent;Br(r._eH,n,t)};class Cs{constructor(){this._item=null,this._map=new Map,this._start=null,this.doc=null,this._length=0,this._eH=Mr(),this._dEH=Mr(),this._searchMarker=null}get parent(){return this._item?this._item.parent:null}_integrate(e,t){this.doc=e,this._item=t}_copy(){throw fn()}clone(){throw fn()}_write(e){}get _first(){let e=this._start;for(;null!==e&&e.deleted;)e=e.right;return e}_callObserver(e,t){!e.local&&this._searchMarker&&(this._searchMarker.length=0)}observe(e){Nr(this._eH,e)}observeDeep(e){Nr(this._dEH,e)}unobserve(e){$r(this._eH,e)}unobserveDeep(e){$r(this._dEH,e)}toJSON(){}}const Is=(e,t,n)=>{e.doc??bs(),t<0&&(t=e._length+t),n<0&&(n=e._length+n);let r=n-t;const s=[];let i=e._start;for(;null!==i&&r>0;){if(i.countable&&!i.deleted){const e=i.content.getContent();if(e.length<=t)t-=e.length;else{for(let n=t;n<e.length&&r>0;n++)s.push(e[n]),r--;t=0}}i=i.right}return s},As=e=>{e.doc??bs();const t=[];let n=e._start;for(;null!==n;){if(n.countable&&!n.deleted){const e=n.content.getContent();for(let n=0;n<e.length;n++)t.push(e[n])}n=n.right}return t},Ds=(e,t)=>{let n=0,r=e._start;for(e.doc??bs();null!==r;){if(r.countable&&!r.deleted){const s=r.content.getContent();for(let r=0;r<s.length;r++)t(s[r],n++,e)}r=r.right}},Os=(e,t)=>{const n=[];return Ds(e,((r,s)=>{n.push(t(r,s,e))})),n},Us=e=>{let t=e._start,n=null,r=0;return{[Symbol.iterator](){return this},next:()=>{if(null===n){for(;null!==t&&t.deleted;)t=t.right;if(null===t)return{done:!0,value:void 0};n=t.content.getContent(),r=0,t=t.right}const e=n[r++];return n.length<=r&&(n=null),{done:!1,value:e}}}},Ts=(e,t)=>{e.doc??bs();const n=Ss(e,t);let r=e._start;for(null!==n&&(r=n.p,t-=n.index);null!==r;r=r.right)if(!r.deleted&&r.countable){if(t<r.length)return r.content.getContent()[t];t-=r.length}},Ls=(e,t,n,r)=>{let s=n;const i=e.doc,o=i.clientID,l=i.store,c=null===n?t._start:n.right;let a=[];const u=()=>{a.length>0&&(s=new Mi(Vr(o,qr(l,o)),s,s&&s.lastId,c,c&&c.id,t,null,new xi(a)),s.integrate(e,0),a=[])};r.forEach((n=>{if(null===n)a.push(n);else switch(n.constructor){case Number:case Object:case Boolean:case Array:case String:a.push(n);break;default:switch(u(),n.constructor){case Uint8Array:case ArrayBuffer:s=new Mi(Vr(o,qr(l,o)),s,s&&s.lastId,c,c&&c.id,t,null,new mi(new Uint8Array(n))),s.integrate(e,0);break;case Cr:s=new Mi(Vr(o,qr(l,o)),s,s&&s.lastId,c,c&&c.id,t,null,new wi(n)),s.integrate(e,0);break;default:if(!(n instanceof Cs))throw new Error("Unexpected content type in insert operation");s=new Mi(Vr(o,qr(l,o)),s,s&&s.lastId,c,c&&c.id,t,null,new Pi(n)),s.integrate(e,0)}}})),u()},js=()=>hn("Length exceeded!"),Ps=(e,t,n,r)=>{if(n>t._length)throw js();if(0===n)return t._searchMarker&&Es(t._searchMarker,n,r.length),Ls(e,t,null,r);const s=n,i=Ss(t,n);let o=t._start;for(null!==i&&(o=i.p,0===(n-=i.index)&&(o=o.prev,n+=o&&o.countable&&!o.deleted?o.length:0));null!==o;o=o.right)if(!o.deleted&&o.countable){if(n<=o.length){n<o.length&&Zr(e,Vr(o.id.client,o.id.clock+n));break}n-=o.length}return t._searchMarker&&Es(t._searchMarker,s,r.length),Ls(e,t,o,r)},Rs=(e,t,n,r)=>{if(0===r)return;const s=n,i=r,o=Ss(t,n);let l=t._start;for(null!==o&&(l=o.p,n-=o.index);null!==l&&n>0;l=l.right)!l.deleted&&l.countable&&(n<l.length&&Zr(e,Vr(l.id.client,l.id.clock+n)),n-=l.length);for(;r>0&&null!==l;)l.deleted||(r<l.length&&Zr(e,Vr(l.id.client,l.id.clock+r)),l.delete(e),r-=l.length),l=l.right;if(r>0)throw js();t._searchMarker&&Es(t._searchMarker,s,-i+r)},Ms=(e,t,n)=>{const r=t._map.get(n);void 0!==r&&r.delete(e)},Ns=(e,t,n,r)=>{const s=t._map.get(n)||null,i=e.doc,o=i.clientID;let l;if(null==r)l=new xi([r]);else switch(r.constructor){case Number:case Object:case Boolean:case Array:case String:case Date:case BigInt:l=new xi([r]);break;case Uint8Array:l=new mi(r);break;case Cr:l=new wi(r);break;default:if(!(r instanceof Cs))throw new Error("Unexpected content type");l=new Pi(r)}new Mi(Vr(o,qr(i.store,o)),s,s&&s.lastId,null,null,t,n,l).integrate(e,0)},$s=(e,t)=>{e.doc??bs();const n=e._map.get(t);return void 0===n||n.deleted?void 0:n.content.getContent()[n.length-1]},Bs=e=>{const t={};return e.doc??bs(),e._map.forEach(((e,n)=>{e.deleted||(t[n]=e.content.getContent()[e.length-1])})),t},Fs=(e,t)=>{e.doc??bs();const n=e._map.get(t);return void 0!==n&&!n.deleted},Ws=e=>{return e.doc??bs(),t=e._map.entries(),n=e=>!e[1].deleted,gr((()=>{let e;do{e=t.next()}while(!e.done&&!n(e.value));return e}));var t,n};class Vs extends ms{}class Ks extends Cs{constructor(){super(),this._prelimContent=[],this._searchMarker=[]}static from(e){const t=new Ks;return t.push(e),t}_integrate(e,t){super._integrate(e,t),this.insert(0,this._prelimContent),this._prelimContent=null}_copy(){return new Ks}clone(){const e=new Ks;return e.insert(0,this.toArray().map((e=>e instanceof Cs?e.clone():e))),e}get length(){return this.doc??bs(),this._length}_callObserver(e,t){super._callObserver(e,t),xs(this,e,new Vs(this,e))}insert(e,t){null!==this.doc?ls(this.doc,(n=>{Ps(n,this,e,t)})):this._prelimContent.splice(e,0,...t)}push(e){null!==this.doc?ls(this.doc,(t=>{((e,t,n)=>{let r=(t._searchMarker||[]).reduce(((e,t)=>t.index>e.index?t:e),{index:0,p:t._start}).p;if(r)for(;r.right;)r=r.right;Ls(e,t,r,n)})(t,this,e)})):this._prelimContent.push(...e)}unshift(e){this.insert(0,e)}delete(e,t=1){null!==this.doc?ls(this.doc,(n=>{Rs(n,this,e,t)})):this._prelimContent.splice(e,t)}get(e){return Ts(this,e)}toArray(){return As(this)}slice(e=0,t=this.length){return Is(this,e,t)}toJSON(){return this.map((e=>e instanceof Cs?e.toJSON():e))}map(e){return Os(this,e)}forEach(e){Ds(this,e)}[Symbol.iterator](){return Us(this)}_write(e){e.writeTypeRef(Ai)}}class Hs extends ms{constructor(e,t,n){super(e,t),this.keysChanged=n}}class Js extends Cs{constructor(e){super(),this._prelimContent=null,this._prelimContent=void 0===e?new Map:new Map(e)}_integrate(e,t){super._integrate(e,t),this._prelimContent.forEach(((e,t)=>{this.set(t,e)})),this._prelimContent=null}_copy(){return new Js}clone(){const e=new Js;return this.forEach(((t,n)=>{e.set(n,t instanceof Cs?t.clone():t)})),e}_callObserver(e,t){xs(this,e,new Hs(this,e,t))}toJSON(){this.doc??bs();const e={};return this._map.forEach(((t,n)=>{if(!t.deleted){const r=t.content.getContent()[t.length-1];e[n]=r instanceof Cs?r.toJSON():r}})),e}get size(){return[...Ws(this)].length}keys(){return yr(Ws(this),(e=>e[0]))}values(){return yr(Ws(this),(e=>e[1].content.getContent()[e[1].length-1]))}entries(){return yr(Ws(this),(e=>[e[0],e[1].content.getContent()[e[1].length-1]]))}forEach(e){this.doc??bs(),this._map.forEach(((t,n)=>{t.deleted||e(t.content.getContent()[t.length-1],n,this)}))}[Symbol.iterator](){return this.entries()}delete(e){null!==this.doc?ls(this.doc,(t=>{Ms(t,this,e)})):this._prelimContent.delete(e)}set(e,t){return null!==this.doc?ls(this.doc,(n=>{Ns(n,this,e,t)})):this._prelimContent.set(e,t),t}get(e){return $s(this,e)}has(e){return Fs(this,e)}clear(){null!==this.doc?ls(this.doc,(e=>{this.forEach((function(t,n,r){Ms(e,r,n)}))})):this._prelimContent.clear()}_write(e){e.writeTypeRef(Di)}}const zs=(e,t)=>e===t||"object"==typeof e&&"object"==typeof t&&e&&t&&((e,t)=>e===t||Kn(e)===Kn(t)&&((e,t)=>{for(const n in e)if(!t(e[n],n))return!1;return!0})(e,((e,n)=>(void 0!==e||Hn(t,n))&&t[n]===e)))(e,t);class qs{constructor(e,t,n,r){this.left=e,this.right=t,this.index=n,this.currentAttributes=r}forward(){if(null===this.right&&pn(),this.right.content.constructor===ki)this.right.deleted||Xs(this.currentAttributes,this.right.content);else this.right.deleted||(this.index+=this.right.length);this.left=this.right,this.right=this.right.right}}const Ys=(e,t,n)=>{for(;null!==t.right&&n>0;){if(t.right.content.constructor===ki)t.right.deleted||Xs(t.currentAttributes,t.right.content);else t.right.deleted||(n<t.right.length&&Zr(e,Vr(t.right.id.client,t.right.id.clock+n)),t.index+=t.right.length,n-=t.right.length);t.left=t.right,t.right=t.right.right}return t},Gs=(e,t,n,r)=>{const s=new Map,i=r?Ss(t,n):null;if(i){const t=new qs(i.p.left,i.p,i.index,s);return Ys(e,t,n-i.index)}{const r=new qs(null,t._start,0,s);return Ys(e,r,n)}},Qs=(e,t,n,r)=>{for(;null!==n.right&&(!0===n.right.deleted||n.right.content.constructor===ki&&zs(r.get(n.right.content.key),n.right.content.value));)n.right.deleted||r.delete(n.right.content.key),n.forward();const s=e.doc,i=s.clientID;r.forEach(((r,o)=>{const l=n.left,c=n.right,a=new Mi(Vr(i,qr(s.store,i)),l,l&&l.lastId,c,c&&c.id,t,null,new ki(o,r));a.integrate(e,0),n.right=a,n.forward()}))},Xs=(e,t)=>{const{key:n,value:r}=t;null===r?e.delete(n):e.set(n,r)},Zs=(e,t)=>{for(;null!==e.right&&(e.right.deleted||e.right.content.constructor===ki&&zs(t[e.right.content.key]??null,e.right.content.value));)e.forward()},ei=(e,t,n,r)=>{const s=e.doc,i=s.clientID,o=new Map;for(const l in r){const c=r[l],a=n.currentAttributes.get(l)??null;if(!zs(a,c)){o.set(l,a);const{left:r,right:u}=n;n.right=new Mi(Vr(i,qr(s.store,i)),r,r&&r.lastId,u,u&&u.id,t,null,new ki(l,c)),n.right.integrate(e,0),n.forward()}}return o},ti=(e,t,n,r,s)=>{n.currentAttributes.forEach(((e,t)=>{void 0===s[t]&&(s[t]=null)}));const i=e.doc,o=i.clientID;Zs(n,s);const l=ei(e,t,n,s),c=r.constructor===String?new Ci(r):r instanceof Cs?new Pi(r):new _i(r);let{left:a,right:u,index:d}=n;t._searchMarker&&Es(t._searchMarker,n.index,c.getLength()),u=new Mi(Vr(o,qr(i.store,o)),a,a&&a.lastId,u,u&&u.id,t,null,c),u.integrate(e,0),n.right=u,n.index=d,n.forward(),Qs(e,t,n,l)},ni=(e,t,n,r,s)=>{const i=e.doc,o=i.clientID;Zs(n,s);const l=ei(e,t,n,s);e:for(;null!==n.right&&(r>0||l.size>0&&(n.right.deleted||n.right.content.constructor===ki));){if(!n.right.deleted)switch(n.right.content.constructor){case ki:{const{key:t,value:i}=n.right.content,o=s[t];if(void 0!==o){if(zs(o,i))l.delete(t);else{if(0===r)break e;l.set(t,i)}n.right.delete(e)}else n.currentAttributes.set(t,i);break}default:r<n.right.length&&Zr(e,Vr(n.right.id.client,n.right.id.clock+r)),r-=n.right.length}n.forward()}if(r>0){let s="";for(;r>0;r--)s+="\n";n.right=new Mi(Vr(o,qr(i.store,o)),n.left,n.left&&n.left.lastId,n.right,n.right&&n.right.id,t,null,new Ci(s)),n.right.integrate(e,0),n.forward()}Qs(e,t,n,l)},ri=(e,t,n,r,s)=>{let i=t;const o=vt();for(;i&&(!i.countable||i.deleted);){if(!i.deleted&&i.content.constructor===ki){const e=i.content;o.set(e.key,e)}i=i.right}let l=0,c=!1;for(;t!==i;){if(n===t&&(c=!0),!t.deleted){const n=t.content;switch(n.constructor){case ki:{const{key:i,value:a}=n,u=r.get(i)??null;o.get(i)===n&&u!==a||(t.delete(e),l++,c||(s.get(i)??null)!==a||u===a||(null===u?s.delete(i):s.set(i,u))),c||t.deleted||Xs(s,n);break}}}t=t.right}return l},si=e=>{let t=0;return ls(e.doc,(n=>{let r=e._start,s=e._start,i=vt();const o=bt(i);for(;s;){if(!1===s.deleted)if(s.content.constructor===ki)Xs(o,s.content);else t+=ri(n,r,s,i,o),i=bt(o),r=s;s=s.right}})),t},ii=e=>{const t=new Set,n=e.doc;for(const[r,s]of e.afterState.entries()){const i=e.beforeState.get(r)||0;s!==i&&ts(e,n.store.clients.get(r),i,s,(e=>{e.deleted||e.content.constructor!==ki||e.constructor===yi||t.add(e.parent)}))}ls(n,(n=>{br(e,e.deleteSet,(e=>{if(e instanceof yi||!e.parent._hasFormatting||t.has(e.parent))return;const r=e.parent;e.content.constructor===ki?t.add(r):((e,t)=>{for(;t&&t.right&&(t.right.deleted||!t.right.countable);)t=t.right;const n=new Set;for(;t&&(t.deleted||!t.countable);){if(!t.deleted&&t.content.constructor===ki){const r=t.content.key;n.has(r)?t.delete(e):n.add(r)}t=t.left}})(n,e)}));for(const e of t)si(e)}))},oi=(e,t,n)=>{const r=n,s=bt(t.currentAttributes),i=t.right;for(;n>0&&null!==t.right;){if(!1===t.right.deleted)switch(t.right.content.constructor){case Pi:case _i:case Ci:n<t.right.length&&Zr(e,Vr(t.right.id.client,t.right.id.clock+n)),n-=t.right.length,t.right.delete(e)}t.forward()}i&&ri(e,i,t.right,s,t.currentAttributes);const o=(t.left||t.right).parent;return o._searchMarker&&Es(o._searchMarker,t.index,-r+n),t};class li extends ms{constructor(e,t,n){super(e,t),this.childListChanged=!1,this.keysChanged=new Set,n.forEach((e=>{null===e?this.childListChanged=!0:this.keysChanged.add(e)}))}get changes(){if(null===this._changes){const e={keys:this.keys,delta:this.delta,added:new Set,deleted:new Set};this._changes=e}return this._changes}get delta(){if(null===this._delta){const e=this.target.doc,t=[];ls(e,(e=>{const n=new Map,r=new Map;let s=this.target._start,i=null;const o={};let l="",c=0,a=0;const u=()=>{if(null!==i){let e=null;switch(i){case"delete":a>0&&(e={delete:a}),a=0;break;case"insert":("object"==typeof l||l.length>0)&&(e={insert:l},n.size>0&&(e.attributes={},n.forEach(((t,n)=>{null!==t&&(e.attributes[n]=t)})))),l="";break;case"retain":c>0&&(e={retain:c},(e=>{for(const t in e)return!1;return!0})(o)||(e.attributes=Fn({},o))),c=0}e&&t.push(e),i=null}};for(;null!==s;){switch(s.content.constructor){case Pi:case _i:this.adds(s)?this.deletes(s)||(u(),i="insert",l=s.content.getContent()[0],u()):this.deletes(s)?("delete"!==i&&(u(),i="delete"),a+=1):s.deleted||("retain"!==i&&(u(),i="retain"),c+=1);break;case Ci:this.adds(s)?this.deletes(s)||("insert"!==i&&(u(),i="insert"),l+=s.content.str):this.deletes(s)?("delete"!==i&&(u(),i="delete"),a+=s.length):s.deleted||("retain"!==i&&(u(),i="retain"),c+=s.length);break;case ki:{const{key:t,value:l}=s.content;if(this.adds(s)){if(!this.deletes(s)){const c=n.get(t)??null;zs(c,l)?null!==l&&s.delete(e):("retain"===i&&u(),zs(l,r.get(t)??null)?delete o[t]:o[t]=l)}}else if(this.deletes(s)){r.set(t,l);const e=n.get(t)??null;zs(e,l)||("retain"===i&&u(),o[t]=e)}else if(!s.deleted){r.set(t,l);const n=o[t];void 0!==n&&(zs(n,l)?null!==n&&s.delete(e):("retain"===i&&u(),null===l?delete o[t]:o[t]=l))}s.deleted||("insert"===i&&u(),Xs(n,s.content));break}}s=s.right}for(u();t.length>0;){const e=t[t.length-1];if(void 0===e.retain||void 0!==e.attributes)break;t.pop()}})),this._delta=t}return this._delta}}class ci extends Cs{constructor(e){super(),this._pending=void 0!==e?[()=>this.insert(0,e)]:[],this._searchMarker=[],this._hasFormatting=!1}get length(){return this.doc??bs(),this._length}_integrate(e,t){super._integrate(e,t);try{this._pending.forEach((e=>e()))}catch(e){}this._pending=null}_copy(){return new ci}clone(){const e=new ci;return e.applyDelta(this.toDelta()),e}_callObserver(e,t){super._callObserver(e,t);const n=new li(this,e,t);xs(this,e,n),!e.local&&this._hasFormatting&&(e._needFormattingCleanup=!0)}toString(){this.doc??bs();let e="",t=this._start;for(;null!==t;)!t.deleted&&t.countable&&t.content.constructor===Ci&&(e+=t.content.str),t=t.right;return e}toJSON(){return this.toString()}applyDelta(e,{sanitize:t=!0}={}){null!==this.doc?ls(this.doc,(n=>{const r=new qs(null,this._start,0,new Map);for(let s=0;s<e.length;s++){const i=e[s];if(void 0!==i.insert){const o=t||"string"!=typeof i.insert||s!==e.length-1||null!==r.right||"\n"!==i.insert.slice(-1)?i.insert:i.insert.slice(0,-1);("string"!=typeof o||o.length>0)&&ti(n,this,r,o,i.attributes||{})}else void 0!==i.retain?ni(n,this,r,i.retain,i.attributes||{}):void 0!==i.delete&&oi(n,r,i.delete)}})):this._pending.push((()=>this.applyDelta(e)))}toDelta(e,t,n){this.doc??bs();const r=[],s=new Map,i=this.doc;let o="",l=this._start;function c(){if(o.length>0){const e={};let t=!1;s.forEach(((n,r)=>{t=!0,e[r]=n}));const n={insert:o};t&&(n.attributes=e),r.push(n),o=""}}const a=()=>{for(;null!==l;){if(Kr(l,e)||void 0!==t&&Kr(l,t))switch(l.content.constructor){case Ci:{const r=s.get("ychange");void 0===e||Kr(l,e)?void 0===t||Kr(l,t)?void 0!==r&&(c(),s.delete("ychange")):void 0!==r&&r.user===l.id.client&&"added"===r.type||(c(),s.set("ychange",n?n("added",l.id):{type:"added"})):void 0!==r&&r.user===l.id.client&&"removed"===r.type||(c(),s.set("ychange",n?n("removed",l.id):{type:"removed"})),o+=l.content.str;break}case Pi:case _i:{c();const e={insert:l.content.getContent()[0]};if(s.size>0){const t={};e.attributes=t,s.forEach(((e,n)=>{t[n]=e}))}r.push(e);break}case ki:Kr(l,e)&&(c(),Xs(s,l.content))}l=l.right}c()};return e||t?ls(i,(n=>{e&&Hr(n,e),t&&Hr(n,t),a()}),"cleanup"):a(),r}insert(e,t,n){if(t.length<=0)return;const r=this.doc;null!==r?ls(r,(r=>{const s=Gs(r,this,e,!n);n||(n={},s.currentAttributes.forEach(((e,t)=>{n[t]=e}))),ti(r,this,s,t,n)})):this._pending.push((()=>this.insert(e,t,n)))}insertEmbed(e,t,n){const r=this.doc;null!==r?ls(r,(r=>{const s=Gs(r,this,e,!n);ti(r,this,s,t,n||{})})):this._pending.push((()=>this.insertEmbed(e,t,n||{})))}delete(e,t){if(0===t)return;const n=this.doc;null!==n?ls(n,(n=>{oi(n,Gs(n,this,e,!0),t)})):this._pending.push((()=>this.delete(e,t)))}format(e,t,n){if(0===t)return;const r=this.doc;null!==r?ls(r,(r=>{const s=Gs(r,this,e,!1);null!==s.right&&ni(r,this,s,t,n)})):this._pending.push((()=>this.format(e,t,n)))}removeAttribute(e){null!==this.doc?ls(this.doc,(t=>{Ms(t,this,e)})):this._pending.push((()=>this.removeAttribute(e)))}setAttribute(e,t){null!==this.doc?ls(this.doc,(n=>{Ns(n,this,e,t)})):this._pending.push((()=>this.setAttribute(e,t)))}getAttribute(e){return $s(this,e)}getAttributes(){return Bs(this)}_write(e){e.writeTypeRef(Oi)}}class ai{constructor(e,t=(()=>!0)){this._filter=t,this._root=e,this._currentNode=e._start,this._firstCall=!0,e.doc??bs()}[Symbol.iterator](){return this}next(){let e=this._currentNode,t=e&&e.content&&e.content.type;if(null!==e&&(!this._firstCall||e.deleted||!this._filter(t)))do{if(t=e.content.type,e.deleted||t.constructor!==di&&t.constructor!==ui||null===t._start)for(;null!==e;){const t=e.next;if(null!==t){e=t;break}e=e.parent===this._root?null:e.parent._item}else e=t._start}while(null!==e&&(e.deleted||!this._filter(e.content.type)));return this._firstCall=!1,null===e?{value:void 0,done:!0}:(this._currentNode=e,{value:e.content.type,done:!1})}}class ui extends Cs{constructor(){super(),this._prelimContent=[]}get firstChild(){const e=this._first;return e?e.content.getContent()[0]:null}_integrate(e,t){super._integrate(e,t),this.insert(0,this._prelimContent),this._prelimContent=null}_copy(){return new ui}clone(){const e=new ui;return e.insert(0,this.toArray().map((e=>e instanceof Cs?e.clone():e))),e}get length(){return this.doc??bs(),null===this._prelimContent?this._length:this._prelimContent.length}createTreeWalker(e){return new ai(this,e)}querySelector(e){e=e.toUpperCase();const t=new ai(this,(t=>t.nodeName&&t.nodeName.toUpperCase()===e)).next();return t.done?null:t.value}querySelectorAll(e){return e=e.toUpperCase(),Et(new ai(this,(t=>t.nodeName&&t.nodeName.toUpperCase()===e)))}_callObserver(e,t){xs(this,e,new hi(this,t,e))}toString(){return Os(this,(e=>e.toString())).join("")}toJSON(){return this.toString()}toDOM(e=document,t={},n){const r=e.createDocumentFragment();return void 0!==n&&n._createAssociation(r,this),Ds(this,(s=>{r.insertBefore(s.toDOM(e,t,n),null)})),r}insert(e,t){null!==this.doc?ls(this.doc,(n=>{Ps(n,this,e,t)})):this._prelimContent.splice(e,0,...t)}insertAfter(e,t){if(null!==this.doc)ls(this.doc,(n=>{const r=e&&e instanceof Cs?e._item:e;Ls(n,this,r,t)}));else{const n=this._prelimContent,r=null===e?0:n.findIndex((t=>t===e))+1;if(0===r&&null!==e)throw hn("Reference item not found");n.splice(r,0,...t)}}delete(e,t=1){null!==this.doc?ls(this.doc,(n=>{Rs(n,this,e,t)})):this._prelimContent.splice(e,t)}toArray(){return As(this)}push(e){this.insert(this.length,e)}unshift(e){this.insert(0,e)}get(e){return Ts(this,e)}slice(e=0,t=this.length){return Is(this,e,t)}forEach(e){Ds(this,e)}_write(e){e.writeTypeRef(Ti)}}class di extends ui{constructor(e="UNDEFINED"){super(),this.nodeName=e,this._prelimAttrs=new Map}get nextSibling(){const e=this._item?this._item.next:null;return e?e.content.type:null}get prevSibling(){const e=this._item?this._item.prev:null;return e?e.content.type:null}_integrate(e,t){super._integrate(e,t),this._prelimAttrs.forEach(((e,t)=>{this.setAttribute(t,e)})),this._prelimAttrs=null}_copy(){return new di(this.nodeName)}clone(){const e=new di(this.nodeName);return((e,t)=>{for(const n in e)t(e[n],n)})(this.getAttributes(),((t,n)=>{"string"==typeof t&&e.setAttribute(n,t)})),e.insert(0,this.toArray().map((e=>e instanceof Cs?e.clone():e))),e}toString(){const e=this.getAttributes(),t=[],n=[];for(const t in e)n.push(t);n.sort();const r=n.length;for(let s=0;s<r;s++){const r=n[s];t.push(r+'="'+e[r]+'"')}const s=this.nodeName.toLocaleLowerCase();return`<${s}${t.length>0?" "+t.join(" "):""}>${super.toString()}</${s}>`}removeAttribute(e){null!==this.doc?ls(this.doc,(t=>{Ms(t,this,e)})):this._prelimAttrs.delete(e)}setAttribute(e,t){null!==this.doc?ls(this.doc,(n=>{Ns(n,this,e,t)})):this._prelimAttrs.set(e,t)}getAttribute(e){return $s(this,e)}hasAttribute(e){return Fs(this,e)}getAttributes(e){return e?((e,t)=>{const n={};return e._map.forEach(((e,r)=>{let s=e;for(;null!==s&&(!t.sv.has(s.id.client)||s.id.clock>=(t.sv.get(s.id.client)||0));)s=s.left;null!==s&&Kr(s,t)&&(n[r]=s.content.getContent()[s.length-1])})),n})(this,e):Bs(this)}toDOM(e=document,t={},n){const r=e.createElement(this.nodeName),s=this.getAttributes();for(const e in s){const t=s[e];"string"==typeof t&&r.setAttribute(e,t)}return Ds(this,(s=>{r.appendChild(s.toDOM(e,t,n))})),void 0!==n&&n._createAssociation(r,this),r}_write(e){e.writeTypeRef(Ui),e.writeKey(this.nodeName)}}class hi extends ms{constructor(e,t,n){super(e,n),this.childListChanged=!1,this.attributesChanged=new Set,t.forEach((e=>{null===e?this.childListChanged=!0:this.attributesChanged.add(e)}))}}class fi extends Js{constructor(e){super(),this.hookName=e}_copy(){return new fi(this.hookName)}clone(){const e=new fi(this.hookName);return this.forEach(((t,n)=>{e.set(n,t)})),e}toDOM(e=document,t={},n){const r=t[this.hookName];let s;return s=void 0!==r?r.createDom(this):document.createElement(this.hookName),s.setAttribute("data-yjs-hook",this.hookName),void 0!==n&&n._createAssociation(s,this),s}_write(e){e.writeTypeRef(Li),e.writeKey(this.hookName)}}class pi extends ci{get nextSibling(){const e=this._item?this._item.next:null;return e?e.content.type:null}get prevSibling(){const e=this._item?this._item.prev:null;return e?e.content.type:null}_copy(){return new pi}clone(){const e=new pi;return e.applyDelta(this.toDelta()),e}toDOM(e=document,t,n){const r=e.createTextNode(this.toString());return void 0!==n&&n._createAssociation(r,this),r}toString(){return this.toDelta().map((e=>{const t=[];for(const n in e.attributes){const r=[];for(const t in e.attributes[n])r.push({key:t,value:e.attributes[n][t]});r.sort(((e,t)=>e.key<t.key?-1:1)),t.push({nodeName:n,attrs:r})}t.sort(((e,t)=>e.nodeName<t.nodeName?-1:1));let n="";for(let e=0;e<t.length;e++){const r=t[e];n+=`<${r.nodeName}`;for(let e=0;e<r.attrs.length;e++){const t=r.attrs[e];n+=` ${t.key}="${t.value}"`}n+=">"}n+=e.insert;for(let e=t.length-1;e>=0;e--)n+=`</${t[e].nodeName}>`;return n})).join("")}toJSON(){return this.toString()}_write(e){e.writeTypeRef(ji)}}class gi{constructor(e,t){this.id=e,this.length=t}get deleted(){throw fn()}mergeWith(e){return!1}write(e,t,n){throw fn()}integrate(e,t){throw fn()}}class yi extends gi{get deleted(){return!0}delete(){}mergeWith(e){return this.constructor===e.constructor&&(this.length+=e.length,!0)}integrate(e,t){t>0&&(this.id.clock+=t,this.length-=t),Yr(e.doc.store,this)}write(e,t){e.writeInfo(0),e.writeLen(this.length-t)}getMissing(e,t){return null}}class mi{constructor(e){this.content=e}getLength(){return 1}getContent(){return[this.content]}isCountable(){return!0}copy(){return new mi(this.content)}splice(e){throw fn()}mergeWith(e){return!1}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeBuf(this.content)}getRef(){return 3}}class vi{constructor(e){this.len=e}getLength(){return this.len}getContent(){return[]}isCountable(){return!1}copy(){return new vi(this.len)}splice(e){const t=new vi(this.len-e);return this.len=e,t}mergeWith(e){return this.len+=e.len,!0}integrate(e,t){kr(e.deleteSet,t.id.client,t.id.clock,this.len),t.markDeleted()}delete(e){}gc(e){}write(e,t){e.writeLen(this.len-t)}getRef(){return 1}}const bi=(e,t)=>new Cr({guid:e,...t,shouldLoad:t.shouldLoad||t.autoLoad||!1});class wi{constructor(e){e._item,this.doc=e;const t={};this.opts=t,e.gc||(t.gc=!1),e.autoLoad&&(t.autoLoad=!0),null!==e.meta&&(t.meta=e.meta)}getLength(){return 1}getContent(){return[this.doc]}isCountable(){return!0}copy(){return new wi(bi(this.doc.guid,this.opts))}splice(e){throw fn()}mergeWith(e){return!1}integrate(e,t){this.doc._item=t,e.subdocsAdded.add(this.doc),this.doc.shouldLoad&&e.subdocsLoaded.add(this.doc)}delete(e){e.subdocsAdded.has(this.doc)?e.subdocsAdded.delete(this.doc):e.subdocsRemoved.add(this.doc)}gc(e){}write(e,t){e.writeString(this.doc.guid),e.writeAny(this.opts)}getRef(){return 9}}class _i{constructor(e){this.embed=e}getLength(){return 1}getContent(){return[this.embed]}isCountable(){return!0}copy(){return new _i(this.embed)}splice(e){throw fn()}mergeWith(e){return!1}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeJSON(this.embed)}getRef(){return 5}}class ki{constructor(e,t){this.key=e,this.value=t}getLength(){return 1}getContent(){return[]}isCountable(){return!1}copy(){return new ki(this.key,this.value)}splice(e){throw fn()}mergeWith(e){return!1}integrate(e,t){const n=t.parent;n._searchMarker=null,n._hasFormatting=!0}delete(e){}gc(e){}write(e,t){e.writeKey(this.key),e.writeJSON(this.value)}getRef(){return 6}}class Si{constructor(e){this.arr=e}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new Si(this.arr)}splice(e){const t=new Si(this.arr.slice(e));return this.arr=this.arr.slice(0,e),t}mergeWith(e){return this.arr=this.arr.concat(e.arr),!0}integrate(e,t){}delete(e){}gc(e){}write(e,t){const n=this.arr.length;e.writeLen(n-t);for(let r=t;r<n;r++){const t=this.arr[r];e.writeString(void 0===t?"undefined":JSON.stringify(t))}}getRef(){return 2}}const Ei="development"===Zn("node_env");class xi{constructor(e){this.arr=e,Ei&&zn(e)}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new xi(this.arr)}splice(e){const t=new xi(this.arr.slice(e));return this.arr=this.arr.slice(0,e),t}mergeWith(e){return this.arr=this.arr.concat(e.arr),!0}integrate(e,t){}delete(e){}gc(e){}write(e,t){const n=this.arr.length;e.writeLen(n-t);for(let r=t;r<n;r++){const t=this.arr[r];e.writeAny(t)}}getRef(){return 8}}class Ci{constructor(e){this.str=e}getLength(){return this.str.length}getContent(){return this.str.split("")}isCountable(){return!0}copy(){return new Ci(this.str)}splice(e){const t=new Ci(this.str.slice(e));this.str=this.str.slice(0,e);const n=this.str.charCodeAt(e-1);return n>=55296&&n<=56319&&(this.str=this.str.slice(0,e-1)+"�",t.str="�"+t.str.slice(1)),t}mergeWith(e){return this.str+=e.str,!0}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeString(0===t?this.str:this.str.slice(t))}getRef(){return 4}}const Ii=[e=>new Ks,e=>new Js,e=>new ci,e=>new di(e.readKey()),e=>new ui,e=>new fi(e.readKey()),e=>new pi],Ai=0,Di=1,Oi=2,Ui=3,Ti=4,Li=5,ji=6;class Pi{constructor(e){this.type=e}getLength(){return 1}getContent(){return[this.type]}isCountable(){return!0}copy(){return new Pi(this.type._copy())}splice(e){throw fn()}mergeWith(e){return!1}integrate(e,t){this.type._integrate(e.doc,t)}delete(e){let t=this.type._start;for(;null!==t;)t.deleted?t.id.clock<(e.beforeState.get(t.id.client)||0)&&e._mergeStructs.push(t):t.delete(e),t=t.right;this.type._map.forEach((t=>{t.deleted?t.id.clock<(e.beforeState.get(t.id.client)||0)&&e._mergeStructs.push(t):t.delete(e)})),e.changed.delete(this.type)}gc(e){let t=this.type._start;for(;null!==t;)t.gc(e,!0),t=t.right;this.type._start=null,this.type._map.forEach((t=>{for(;null!==t;)t.gc(e,!0),t=t.left})),this.type._map=new Map}write(e,t){this.type._write(e)}getRef(){return 7}}const Ri=(e,t,n)=>{const{client:r,clock:s}=t.id,i=new Mi(Vr(r,s+n),t,Vr(r,s+n-1),t.right,t.rightOrigin,t.parent,t.parentSub,t.content.splice(n));return t.deleted&&i.markDeleted(),t.keep&&(i.keep=!0),null!==t.redone&&(i.redone=Vr(t.redone.client,t.redone.clock+n)),t.right=i,null!==i.right&&(i.right.left=i),e._mergeStructs.push(i),null!==i.parentSub&&null===i.right&&i.parent._map.set(i.parentSub,i),t.length=n,i};class Mi extends gi{constructor(e,t,n,r,s,i,o,l){super(e,l.getLength()),this.origin=n,this.left=t,this.right=r,this.rightOrigin=s,this.parent=i,this.parentSub=o,this.redone=null,this.content=l,this.info=this.content.isCountable()?2:0}set marker(e){(8&this.info)>0!==e&&(this.info^=8)}get marker(){return(8&this.info)>0}get keep(){return(1&this.info)>0}set keep(e){this.keep!==e&&(this.info^=1)}get countable(){return(2&this.info)>0}get deleted(){return(4&this.info)>0}set deleted(e){this.deleted!==e&&(this.info^=4)}markDeleted(){this.info|=4}getMissing(e,t){if(this.origin&&this.origin.client!==this.id.client&&this.origin.clock>=qr(t,this.origin.client))return this.origin.client;if(this.rightOrigin&&this.rightOrigin.client!==this.id.client&&this.rightOrigin.clock>=qr(t,this.rightOrigin.client))return this.rightOrigin.client;if(this.parent&&this.parent.constructor===Fr&&this.id.client!==this.parent.client&&this.parent.clock>=qr(t,this.parent.client))return this.parent.client;if(this.origin&&(this.left=es(e,t,this.origin),this.origin=this.left.lastId),this.rightOrigin&&(this.right=Zr(e,this.rightOrigin),this.rightOrigin=this.right.id),this.left&&this.left.constructor===yi||this.right&&this.right.constructor===yi)this.parent=null;else if(this.parent){if(this.parent.constructor===Fr){const e=Qr(t,this.parent);e.constructor===yi?this.parent=null:this.parent=e.content.type}}else this.left&&this.left.constructor===Mi?(this.parent=this.left.parent,this.parentSub=this.left.parentSub):this.right&&this.right.constructor===Mi&&(this.parent=this.right.parent,this.parentSub=this.right.parentSub);return null}integrate(e,t){if(t>0&&(this.id.clock+=t,this.left=es(e,e.doc.store,Vr(this.id.client,this.id.clock-1)),this.origin=this.left.lastId,this.content=this.content.splice(t),this.length-=t),this.parent){if(!this.left&&(!this.right||null!==this.right.left)||this.left&&this.left.right!==this.right){let t,n=this.left;if(null!==n)t=n.right;else if(null!==this.parentSub)for(t=this.parent._map.get(this.parentSub)||null;null!==t&&null!==t.left;)t=t.left;else t=this.parent._start;const r=new Set,s=new Set;for(;null!==t&&t!==this.right;){if(s.add(t),r.add(t),Wr(this.origin,t.origin)){if(t.id.client<this.id.client)n=t,r.clear();else if(Wr(this.rightOrigin,t.rightOrigin))break}else{if(null===t.origin||!s.has(Qr(e.doc.store,t.origin)))break;r.has(Qr(e.doc.store,t.origin))||(n=t,r.clear())}t=t.right}this.left=n}if(null!==this.left){const e=this.left.right;this.right=e,this.left.right=this}else{let e;if(null!==this.parentSub)for(e=this.parent._map.get(this.parentSub)||null;null!==e&&null!==e.left;)e=e.left;else e=this.parent._start,this.parent._start=this;this.right=e}null!==this.right?this.right.left=this:null!==this.parentSub&&(this.parent._map.set(this.parentSub,this),null!==this.left&&this.left.delete(e)),null===this.parentSub&&this.countable&&!this.deleted&&(this.parent._length+=this.length),Yr(e.doc.store,this),this.content.integrate(e,this),ss(e,this.parent,this.parentSub),(null!==this.parent._item&&this.parent._item.deleted||null!==this.parentSub&&null!==this.right)&&this.delete(e)}else new yi(this.id,this.length).integrate(e,0)}get next(){let e=this.right;for(;null!==e&&e.deleted;)e=e.right;return e}get prev(){let e=this.left;for(;null!==e&&e.deleted;)e=e.left;return e}get lastId(){return 1===this.length?this.id:Vr(this.id.client,this.id.clock+this.length-1)}mergeWith(e){if(this.constructor===e.constructor&&Wr(e.origin,this.lastId)&&this.right===e&&Wr(this.rightOrigin,e.rightOrigin)&&this.id.client===e.id.client&&this.id.clock+this.length===e.id.clock&&this.deleted===e.deleted&&null===this.redone&&null===e.redone&&this.content.constructor===e.content.constructor&&this.content.mergeWith(e.content)){const t=this.parent._searchMarker;return t&&t.forEach((t=>{t.p===e&&(t.p=this,!this.deleted&&this.countable&&(t.index-=this.length))})),e.keep&&(this.keep=!0),this.right=e.right,null!==this.right&&(this.right.left=this),this.length+=e.length,!0}return!1}delete(e){if(!this.deleted){const t=this.parent;this.countable&&null===this.parentSub&&(t._length-=this.length),this.markDeleted(),kr(e.deleteSet,this.id.client,this.id.clock,this.length),ss(e,t,this.parentSub),this.content.delete(e)}}gc(e,t){if(!this.deleted)throw pn();this.content.gc(e),t?((e,t,n)=>{const r=e.clients.get(t.id.client);r[Gr(r,t.id.clock)]=n})(e,this,new yi(this.id,this.length)):this.content=new vi(this.length)}write(e,t){const n=t>0?Vr(this.id.client,this.id.clock+t-1):this.origin,r=this.rightOrigin,s=this.parentSub,i=31&this.content.getRef()|(null===n?0:jt)|(null===r?0:Lt)|(null===s?0:32);if(e.writeInfo(i),null!==n&&e.writeLeftID(n),null!==r&&e.writeRightID(r),null===n&&null===r){const t=this.parent;if(void 0!==t._item){const n=t._item;if(null===n){const n=(e=>{for(const[t,n]of e.doc.share.entries())if(n===e)return t;throw pn()})(t);e.writeParentInfo(!0),e.writeString(n)}else e.writeParentInfo(!1),e.writeLeftID(n.id)}else t.constructor===String?(e.writeParentInfo(!0),e.writeString(t)):t.constructor===Fr?(e.writeParentInfo(!1),e.writeLeftID(t)):pn();null!==s&&e.writeString(s)}this.content.write(e,t)}}const Ni=(e,t)=>$i[31&t](e),$i=[()=>{pn()},e=>new vi(e.readLen()),e=>{const t=e.readLen(),n=[];for(let r=0;r<t;r++){const t=e.readString();"undefined"===t?n.push(void 0):n.push(JSON.parse(t))}return new Si(n)},e=>new mi(e.readBuf()),e=>new Ci(e.readString()),e=>new _i(e.readJSON()),e=>new ki(e.readKey(),e.readJSON()),e=>new Pi(Ii[e.readTypeRef()](e)),e=>{const t=e.readLen(),n=[];for(let r=0;r<t;r++)n.push(e.readAny());return new xi(n)},e=>new wi(bi(e.readString(),e.readAny())),()=>{pn()}];class Bi extends gi{get deleted(){return!0}delete(){}mergeWith(e){return this.constructor===e.constructor&&(this.length+=e.length,!0)}integrate(e,t){pn()}write(e,t){e.writeInfo(10),Yt(e.restEncoder,this.length-t)}getMissing(e,t){return null}}const Fi="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},Wi="__ $YJS$ __";function Vi(e,t,n){var r,s,i;if(!e.dx._allTables[t])return;const o=null===(i=null===(s=null===(r=e.table(t))||void 0===r?void 0:r.schema.yProps)||void 0===s?void 0:s.find((e=>e.prop===n)))||void 0===i?void 0:i.updatesTable;return o&&e.dx._allTables[o]?e.table(o):void 0}Fi[Wi],Fi[Wi]=!0;const Ki=new FinalizationRegistry((({cache:e,key:t})=>{delete e[t]}));function Hi(e){var t,n;return null!==(t=(n=e._novip)._docCache)&&void 0!==t?t:n._docCache={cache:{},get size(){return Object.keys(this.cache).length},find(e,t,n){const r=qi(e,t,n),s=this.cache[r];return s?s.deref():void 0},add(e){var t;const{parentTable:n,parentId:r,parentProp:s}=e.meta;if(!n||!s||null==r)throw new Error("Missing Dexie-related metadata in Y.Doc");const i=qi(n,r,s),o=null===(t=this.cache[i])||void 0===t?void 0:t.deref();o&&Ki.unregister(o),this.cache[i]=new WeakRef(e),Ki.register(e,{cache:this.cache,key:i},e)},delete(e){Ki.unregister(e);const t=qi(e.meta.parentTable,e.meta.parentId,e.meta.parentProp),n=this.cache[t];(null==n?void 0:n.deref())===e&&delete this.cache[t]}}}const Ji=new WeakSet;function zi(e){if(Ji.has(e))throw new Error(`Y.Doc ${e.meta.parentId} has been destroyed`)}function qi(e,t,n){return`${e}[${t}].${n}`}let Yi=null;function Gi(e){Yi=e}function Qi(){}const Xi=new WeakMap;function Zi(){return e.Dexie.Events(null,"load","sync","error")}class eo{static getOrCreateDocument(e,t,n,r){var s,i;const o=Hi(e),l=null===(i=null===(s=e.table(t).schema.yProps)||void 0===s?void 0:s.find((e=>e.prop===n)))||void 0===i?void 0:i.updatesTable;if(!l)throw new Error(`Updates table for ${t}.${n} not found`);return function(e,t,n,r,s,i){let o=t.find(n,i,r);return o||(o=new Cr({meta:{db:e,updatesTable:s,parentProp:r,parentTable:n,parentId:i}}),t.add(o),o.on("destroy",(()=>{Ji.add(o),t.delete(o)})),o)}(e,o,t,n,l,r)}static load(e,t){var n;let r=Xi.get(e);return r?(++r.refCount,null!=(null==t?void 0:t.gracePeriod)&&r.graceTimeout<t.gracePeriod&&(r.graceTimeout=t.gracePeriod),r.graceTimer&&(clearTimeout(r.graceTimer),r.graceTimer=null)):(r=new eo(e),r.graceTimeout=null!==(n=null==t?void 0:t.gracePeriod)&&void 0!==n?n:-1,Xi.set(e,r)),r}static release(e){if(!e||Ji.has(e))return;const t=Xi.get(e);t?--t.refCount<=0&&(t.graceTimeout<0?t._release():t.graceTimer||(t.graceTimer=setTimeout((()=>{t.graceTimer=null,0===t.refCount&&t._release()}),t.graceTimeout))):e.destroy()}_release(){this.doc&&Promise.resolve(eo.on("beforeunload").fire(this)).finally((()=>{var e;0===this.refCount&&(null===(e=this.doc)||void 0===e||e.destroy())}))}static for(e){return Xi.get(e)}static get currentUpdateRow(){return Yi}get whenLoaded(){return this._whenLoaded||(this._whenLoaded=new Promise(((t,n)=>{this.doc?this.doc.isLoaded?t():this._error?n(this._error):Ji.has(this.doc)?n(new e.Dexie.AbortError("Document was destroyed before loaded")):(this.on("load",t),this.on("error",n),this.doc.on("destroy",(()=>n(new e.Dexie.AbortError("Document was destroyed before loaded"))))):n(new Error("No Y.Doc associated with this provider"))}))),this._whenLoaded}get whenSynced(){return this._whenSynced||(this._whenSynced=new Promise(((t,n)=>{this.doc?this.doc.isSynced?t():this._error?n(this._error):Ji.has(this.doc)?n(new e.Dexie.AbortError("Document was destroyed before synced")):(this.on("sync",t),this.on("error",n),this.doc.on("destroy",(()=>n(new e.Dexie.AbortError("Document was destroyed before synced"))))):n(new Error("No Y.Doc associated with this provider"))}))),this._whenSynced}constructor(t){this.refCount=1,this.cleanupHandlers=[],this.graceTimeout=-1,this.doc=null,this.destroyed=!1,this.on=Zi(),this.doc=t,this.off=(e,t)=>{var n;return null===(n=this.on[e])||void 0===n?void 0:n.unsubscribe(t)},"dispose"in Symbol&&(this[Symbol.dispose]=()=>eo.release(t)),t.on("load",(()=>this.on("load").fire())),t.on("sync",(e=>!1!==e&&this.on("sync").fire())),t.on("destroy",this.destroy.bind(this)),this.on("error",(e=>{this._error=e}));const{db:n,parentTable:r,parentId:s,updatesTable:i}=t.meta||{};if(!n||!r||!i)throw new Error("Missing Dexie-related metadata in Y.Doc. Documents need to be obtained through Y.Doc properties from dexie queries.");if(!n.table(r)||!n.table(i))throw new Error(`Table ${r} or ${i} not found in db`);zi(t),this.stopObserving=function(t,n,r,s,i,o){let l=0,c=!0;const a=e.liveQuery((()=>{zi(n);const t=r.table(i);return Promise.all([(l>0?t.where("i").between(l,1/0,!1).toArray().then((t=>t.filter((t=>0===e.cmp(t.k,o))))):t.where({k:o}).toArray()).then((e=>e)),r.table(s).where(":id").equals(o).toArray()])})).subscribe((([e,r])=>{e.length>0&&(l=e[e.length-1].i),0!==r.length?(zi(n),e.length>0&&ls(n,(()=>{e.forEach((e=>{try{Gi(e),Pr(n,e.u)}finally{Gi(null)}}))}),t,!1),c&&(c=!1,n.emit("load",[n]))):n.destroy()}),(e=>{t.on("error").fire(e)})),u=(e,n)=>{n!==t&&r.table(i).add({k:o,u:e,f:1}).then((e=>{e===l-1&&++l})).catch((e=>{t.on("error").fire(e)}))},d=()=>{a.unsubscribe(),n.off("updateV2",u),n.off("destroy",d)};return n.on("updateV2",u),n.on("destroy",d),d}(this,t,n,r,i,s),eo.on("new").fire(this)}destroy(){var e;Xi.delete(this.doc),this.doc=null,this.destroyed=!0,this.refCount=0,null===(e=this.stopObserving)||void 0===e||e.call(this),this.on=Zi(),this.cleanupHandlers.forEach((e=>e()))}addCleanupHandler(e){this.cleanupHandlers.push("function"==typeof e?e:()=>e.unsubscribe())}}function to(t,n){return r(this,void 0,void 0,(function*(){var s;const i={};let o,l=!1;for(const c of t)try{switch(c.type){case"u-s":{const e=Vi(n,c.table,c.prop);if(e){const t={k:c.k,u:c.u};c.r&&(t.r=c.r,o=c.r),i[e.name]=yield e.add(t)}break}case"u-ack":{const e=Vi(n,c.table,c.prop);e&&(yield n.transaction("rw",e,(t=>r(this,void 0,void 0,(function*(){let n=yield t.table(e.name).get(yt);yield t.table(e.name).put(Object.assign(Object.assign({},n||{i:yt}),{unsentFrom:Math.max((null==n?void 0:n.unsentFrom)||1,c.i+1)}))})))));break}case"u-reject":{const t=Vi(n,c.table,c.prop);if(!t)break;const r=null===(s=yield t.get(c.i))||void 0===s?void 0:s.k;if(null!=r){yield n.transaction("rw",t,(n=>(n.idbtrans._rejecting_y_ypdate=!0,t.where("i").aboveOrEqual(c.i).filter((t=>0===e.cmp(t.k,r)&&1==(1&(t.f||0)))).delete())));const s=eo.getDocCache(n.dx).find(c.table,r,c.prop);s&&s.destroy()}break}case"in-sync":{const e=eo.getDocCache(n.dx).find(c.table,c.k,c.prop);e&&!e.isSynced&&e.emit("sync",[!0,e]);break}case"y-complete-sync-done":o=c.yServerRev;break;case"outdated-server-rev":l=!0}}catch(e){}return{receivedUntils:i,resyncNeeded:l,yServerRevision:o}}))}eo.on=e.Dexie.Events(null,{new:[function(e,t){return e===Qi?t:function(){e.apply(this,arguments),t.apply(this,arguments)}}],beforeunload:[function(e,t){return e===Qi?t:function(){var n=e.apply(this,arguments);if(n&&"function"==typeof n.then){for(var r=this,s=arguments.length,i=new Array(s);s--;)i[s]=arguments[s];return n.then((function(){return t.apply(r,i)}))}return t.apply(this,arguments)}}]}),eo.getDocCache=Hi,e.Dexie.DexieYProvider?eo=e.Dexie.DexieYProvider||eo:e.Dexie.DexieYProvider=eo;const no=1,ro=2,so=3;function io(t,n,s){return r(this,arguments,void 0,(function*(t,n,{yDownloadedRealms:s,realms:c}){if(s&&c&&c.every((e=>"*"===s[e])))return;const a=yield xe(t),u={"Content-Type":"application/json",Accept:"application/octet-stream"};a&&(u.Authorization=`Bearer ${a.accessToken}`);const d=yield fetch(`${n}/y/download`,{body:nt.stringify({downloadedRealms:s||{}}),method:"POST",headers:u,credentials:"include"});if(!d.ok)throw new Error(`Failed to download Yjs documents from server. Status: ${d.status}`);yield async function(e,...t){var n,r,s;let i=e();for(let e=0;e<t.length;e++)i=t[e](i);try{for(var o,c=!0,a=l(i);!(n=(o=await a.next()).done);c=!0)o.value,c=!1}catch(e){r={error:e}}finally{try{c||n||!(s=a.return)||await s.call(a)}finally{if(r)throw r.error}}}(function(e){return function(){return o(this,arguments,(function*(){if(!e.body)throw new Error("Response body is not readable");const t=e.body.getReader();try{for(;;){const{done:e,value:n}=yield i(t.read());if(e)return yield i(void 0);yield yield i(n)}}finally{t.releaseLock()}}))}}(d),be,(function(s){return o(this,arguments,(function*(){var o,c,a,u;let d=null,h=null,f=null,p=[];function g(e){return r(this,void 0,void 0,(function*(){const r=p[p.length-1];if(p.length>0){if(!d||!h||!f)throw new Error(`Protocol error from ${n}/y/download`);const e=Vi(t,h,f);e&&(yield e.bulkAdd(p)),p=[]}d&&(h&&f&&r||e)&&(yield t.$syncState.update("syncState",(t=>{const n=t.yDownloadedRealms||{};n[d]=e?"*":{tbl:h,prop:f,key:r.k},t.yDownloadedRealms=n})))}))}try{try{for(var y,m=!0,v=l(s);!(o=(y=yield i(v.next())).done);m=!0){u=y.value,m=!1;const e=new ae(u);for(;ue(e);)switch(he(e)){case no:yield i(g(!0)),d=pe(e);break;case ro:yield i(g(!1)),h=pe(e),f=pe(e);break;case so:{const t=ve(e),n=de(e);p.push({k:t,u:n});break}}yield i(g(!1))}}catch(e){c={error:e}}finally{try{m||o||!(a=v.return)||(yield i(a.call(v)))}finally{if(c)throw c.error}}yield i(g(!0))}catch(t){throw t instanceof e.DexieError||(yield i(g(!1))),t}}))}))}))}const oo="currentSyncWorker";function lo(e,t,n,s){return co(e,t,n,s).then((t=>((null==s?void 0:s.justCheckIfNeeded)||e.syncStateChangedEvent.next({phase:"in-sync"}),t))).catch((i=>r(this,void 0,void 0,(function*(){return(null==s?void 0:s.justCheckIfNeeded)?Promise.reject(i):dt&&(null==s?void 0:s.retryImmediatelyOnFetchError)&&"TypeError"===(null==i?void 0:i.name)&&/fetch/.test(null==i?void 0:i.message)?(e.syncStateChangedEvent.next({phase:"error",error:i}),yield new Promise((e=>setTimeout(e,500))),yield lo(e,t,n,Object.assign(Object.assign({},s),{retryImmediatelyOnFetchError:!1}))):(yield e.$syncState.update("syncState",{timestamp:new Date,error:""+i}),e.syncStateChangedEvent.next({phase:dt?"error":"offline",error:new Error(""+(null==i?void 0:i.message)||i)}),Promise.reject(i))}))))}function co(e,t,n){return r(this,arguments,void 0,(function*(e,t,n,{isInitialSync:s,cancelToken:i,justCheckIfNeeded:o,purpose:l}={isInitialSync:!1}){var a;if(!(null===(a=e.cloud.options)||void 0===a?void 0:a.databaseUrl))throw new Error("Internal error: sync must not be called when no databaseUrl is configured");const{databaseUrl:u}=t,d=yield e.getCurrentUser(),h=d.isLoggedIn?k(e):[],f=h.map((t=>e.table(S(t.name)))),p=yield e.getPersistedSyncState(),g=d.isLoggedIn,y=g?function(e,t){const n=(null==t?void 0:t.syncedTables)||[];return k(e).filter((e=>!n.includes(e.name)))}(e,p):[];ut(i);const m=y.length>0;if(m){if(o)return!0;yield e.transaction("rw",y,(e=>r(this,void 0,void 0,(function*(){e.idbtrans.disableChangeTracking=!0,e.idbtrans.disableAccessControl=!0,yield function(e,t,n){return r(this,void 0,void 0,(function*(){const r=new Set(n||[]);for(const n of e)"members"===n.name?yield n.toCollection().modify((e=>{r.has(e.realmId)||e.userId&&e.userId!==c.userId||(e.userId=t.userId)})):"roles"===n.name||("realms"===n.name?yield n.toCollection().modify((e=>{r.has(e.realmId)||void 0!==e.owner&&e.owner!==c.userId||(e.owner=t.userId)})):yield n.toCollection().modify((e=>{e.realmId&&r.has(e.realmId)||(e.owner&&e.owner!==c.userId||(e.owner=t.userId),e.realmId&&e.realmId!==c.userId||(e.realmId=t.userId))})))}))}(y,d,null==p?void 0:p.realms)})))),ut(i)}const[v,b,w,{yMessages:_,lastUpdateIds:x}]=yield e.transaction("r",e.tables,(()=>r(this,void 0,void 0,(function*(){const t=yield e.getPersistedSyncState();let s=yield e.$baseRevs.toArray();s=s.filter((e=>h.some((t=>t.name===e.tableName))));let o=yield I(f,e);const l=yield function(e,t){return r(this,void 0,void 0,(function*(){const n=[],r={};for(const s of t)if(s.schema.yProps)for(const t of s.schema.yProps){const i=e.table(t.updatesTable),o=yield i.get(yt),l=(null==o?void 0:o.unsentFrom)||1,c=(null==o?void 0:o.receivedUntil)||0,a=Math.min(l,c+1),u=yield mt(i,a);u.length>0&&(r[i.name]=u[u.length-1].i);const d={};for(const e of u){const t=1==(1&(e.f||0));if(t&&e.i<l)continue;const n=JSON.stringify(e.k)+"/"+t;let r=d[n];r?(r.u.push(e.u),r.i=Math.max(e.i,r.i)):(d[n]=r={i:e.i,k:e.k,isLocal:t,u:[]},r.u.push(e.u))}for(const{k:e,isLocal:r,u:i,i:o}of Object.values(d)){const l=1===i.length?i[0]:hs(i);if(r)n.push({type:"u-c",table:s.name,prop:t.prop,k:e,u:l,i:o});else{const r=us(l);n.push({type:"sv",table:s.name,prop:t.prop,k:e,sv:r})}}}return{yMessages:n,lastUpdateIds:r}}))}(e,h);if(ut(i),m){const e=[...(null==p?void 0:p.realms)||[],...(null==p?void 0:p.inviteRealms)||[]],c=yield function(e,t,n,s){return r(this,void 0,void 0,(function*(){const i=`upload-${A(8)}`;if(t.isLoggedIn&&e.length>0){const o=new Set(s||[]);return(yield Promise.all(e.map((e=>r(this,void 0,void 0,(function*(){const{extractKey:r}=e.core.schema.primaryKey;if(!r)return{table:e.name,muts:[]};const s=n[e.name],l=(null==s?void 0:s.generatedGlobalId)?e.filter((e=>{return r(e),!o.has(e.realmId||"")&&(t=r(e),!(n=null==s?void 0:s.idPrefix)||"string"==typeof t&&t.startsWith(n));var t,n})):e.filter((e=>{const t=r(e);return!o.has(e.realmId||"")&&L(t)})),c=yield l.toArray();if(c.length>0){const n={type:"upsert",values:c,keys:c.map(r),userId:t.userId,txid:i};return{table:e.name,muts:[n]}}return{table:e.name,muts:[]}})))))).filter((e=>e.muts.length>0))}return[]}))}(y,d,n,e);return ut(i),o=o.concat(c),[o,t,s,l]}return[o,t,s,l]})))),C=v.some((e=>e.muts.some((e=>e.keys.length>0))))||_.some((e=>"u-c"===e.type));if(o)return C;if("push"===l&&!C)return!1;const D=ft(v,null==b?void 0:b.latestRevisions),O=(null==b?void 0:b.clientIdentity)||U(16);ut(i);const T=yield at(v,_,b,w,e,u,n,O,d),{done:j,newSyncState:P}=yield e.transaction("rw",e.tables,(t=>r(this,void 0,void 0,(function*(){t.idbtrans.disableChangeTracking=!0,t.idbtrans.disableAccessControl=!0;for(const e of Object.keys(n))T.schema[e]&&(n[e]=T.schema[e]);yield e.$syncState.put(n,"schema");const s=yield I(f,e,{since:D});for(const t of f){const n=E(t.name);if(s.some((e=>e.table===n&&e.muts.length>0))){if(D[n]){const r=D[n]||0;yield Promise.all([t.where("rev").belowOrEqual(r).delete(),e.$baseRevs.where(":id").between([n,-1/0],[n,r+1],!0,!0).reverse().offset(1).delete()])}}else yield Promise.all([t.clear(),e.$baseRevs.where({tableName:n}).delete()])}ft(s,D),yield ht(e,n,D,T.serverRevision);const i=yield e.getPersistedSyncState();yield function(e,t,n){return r(this,void 0,void 0,(function*(){const r=new Set,s=new Set,i=n?n.realms:[],o=n?n.inviteRealms:[],l=new Set(t.realms),c=new Set(t.realms.concat(t.inviteRealms));for(const e of i)l.has(e)||(s.add(e),c.has(e)||r.add(e));for(const e of o.concat(i))c.has(e)||r.add(e);if(r.size>0||s.size>0){const t=k(e);for(const e of t){let t=["realms","members","roles"].includes(e.name)?r:s;0!==t.size&&(e.schema.indexes.some((e=>"realmId"===e.keyPath||Array.isArray(e.keyPath)&&"realmId"===e.keyPath[0]))?yield e.where("realmId").anyOf([...t]).delete():yield e.filter((e=>!!(null==e?void 0:e.realmId)&&t.has(e.realmId))).delete())}}if(s.size>0&&(null==n?void 0:n.yDownloadedRealms))for(const e of s)delete n.yDownloadedRealms[e]}))}(e,T,i);const o=i||{syncedTables:[],latestRevisions:{},realms:[],inviteRealms:[],clientIdentity:O};g&&(o.syncedTables=h.map((e=>e.name)).concat(y.map((e=>e.name)))),o.latestRevisions=D,o.remoteDbId=T.dbId,o.initiallySynced=!0,o.realms=T.realms,o.inviteRealms=T.inviteRealms,o.serverRevision=T.serverRevision,o.yServerRevision=T.serverRevision,o.timestamp=new Date,delete o.error;const l=ao(T.changes,s);if(yield gt(l,e),T.yMessages){const{receivedUntils:t,resyncNeeded:n,yServerRevision:s}=yield to(T.yMessages,e);s&&(o.yServerRevision=s),yield function(e,t,n){return r(this,void 0,void 0,(function*(){var s,i,o,l,c;const a={};for(const[t,n]of Object.entries(e))null!==(s=a[t])&&void 0!==s||(a[t]={}),a[t].unsentFrom=n+1;for(const[e,n]of Object.entries(t))null!==(i=a[e])&&void 0!==i||(a[e]={}),a[e].receivedUntil=n;const u=Object.values(n.dx._dbSchema).filter((e=>e.yProps)).map((e=>e.yProps.map((e=>e.updatesTable)))).flat();for(const e of u){const t=a[e],s=null!==(o=null==t?void 0:t.unsentFrom)&&void 0!==o?o:1,i=null!==(c=null!==(l=null==t?void 0:t.receivedUntil)&&void 0!==l?l:(yield n.table(e).where("i").between(1,1/0).reverse().limit(1).primaryKeys())[0])&&void 0!==c?c:0;yield n.transaction("rw",e,(()=>r(this,void 0,void 0,(function*(){const t=yield n.table(e).get(yt);t?(t.unsentFrom=Math.max(s,t.unsentFrom||1),t.receivedUntil=Math.max(i,t.receivedUntil||0),yield n.table(e).put(t)):yield n.table(e).add({i:yt,unsentFrom:s,receivedUntil:i})}))))}}))}(x,t,e),n&&(o.yDownloadedRealms={})}return e.$syncState.put(o,"syncState"),{done:0===s.length,newSyncState:o}}))));if(!j)return yield ct(e),yield co(e,t,n,{isInitialSync:s,cancelToken:i});const R=Object.values(n).some((e=>{var t;return null===(t=e.yProps)||void 0===t?void 0:t.length})),M=!!T.yMessages;if(R&&M)try{yield io(e,u,P)}catch(e){}return e.syncCompleteEvent.next(),!1}))}function ao(e,t){const n={};R(n,e);const r={};return R(r,t),function(e,t){var n,r,s;for(const[i,o]of Object.entries(t))for(const[t,l]of Object.entries(o))switch(l.type){case"ups":{const r=null===(n=e[i])||void 0===n?void 0:n[t];if(r)switch(r.type){case"ups":case"upd":delete e[i][t]}}break;case"del":null===(r=e[i])||void 0===r||delete r[t];break;case"upd":{const n=null===(s=e[i])||void 0===s?void 0:s[t];if(n)switch(n.type){case"ups":for(const[e,t]of Object.entries(l.mod))O(n.val,e,t);break;case"del":break;case"upd":for(const e of Object.keys(l.mod))delete n.mod[e]}break}}}(n,r),function(e,t=""){t||(t=U(16));const n={};for(const[t,r]of Object.entries(e))for(const[e,s]of Object.entries(r)){const r=n[t]||(n[t]={});(r[s.type]||(r[s.type]=[])).push(Object.assign({key:e},s))}const r=[];for(const[e,s]of Object.entries(n)){const n={table:e,muts:[]};for(const[e,r]of Object.entries(s))switch(e){case"ups":{const e={type:"upsert",keys:r.map((e=>e.key)),values:r.map((e=>e.val)),txid:t};n.muts.push(e);break}case"upd":{const e={type:"update",keys:r.map((e=>e.key)),changeSpecs:r.map((e=>e.mod)),txid:t};n.muts.push(e);break}case"del":{const e={type:"delete",keys:r.map((e=>e.key)),txid:t};n.muts.push(e);break}}r.push(n)}return r}(n)}const uo=10,ho=1e4,fo=1e3;function po(s){const i=[],o=new t.BehaviorSubject(!0),l=new t.BehaviorSubject(null);let c=!1,a=new Array(uo).fill(0);return l.subscribe((()=>r(this,void 0,void 0,(function*(){if(!c&&i.length>0){c=!0,a.shift(),a.push(Date.now()),o.next(!1);try{yield function(){return r(this,void 0,void 0,(function*(){for(var o,l,c,a,u,d;i.length>0;){const h=i.shift();try{yield t.firstValueFrom(s.cloud.syncState.pipe(n.filter((({phase:e})=>"in-sync"===e||"error"===e))));const i=s.cloud.persistedSyncState.value;if(!h)continue;switch(h.type){case"token-expired":const t=s.cloud.currentUser.value,n=yield Ie(s.cloud.options.databaseUrl,t);yield s.table("$logins").update(t.userId,{accessToken:n.accessToken,accessTokenExpiration:n.accessTokenExpiration,claims:n.claims,license:n.license,data:n.data});break;case"realm-added":(null===(o=null==i?void 0:i.realms)||void 0===o?void 0:o.includes(h.realm))||(null===(l=null==i?void 0:i.inviteRealms)||void 0===l?void 0:l.includes(h.realm))||(yield s.cloud.sync({purpose:"pull",wait:!0}));break;case"realm-accepted":(null===(c=null==i?void 0:i.realms)||void 0===c?void 0:c.includes(h.realm))||(yield s.cloud.sync({purpose:"pull",wait:!0}));break;case"realm-removed":((null===(a=null==i?void 0:i.realms)||void 0===a?void 0:a.includes(h.realm))||(null===(u=null==i?void 0:i.inviteRealms)||void 0===u?void 0:u.includes(h.realm)))&&(yield s.cloud.sync({purpose:"pull",wait:!0}));break;case"realms-changed":yield s.cloud.sync({purpose:"pull",wait:!0});break;case"changes":if("error"===(null===(d=s.cloud.syncState.value)||void 0===d?void 0:d.phase)){y(s,"pull");break}yield s.transaction("rw",s.dx.tables,(t=>r(this,void 0,void 0,(function*(){t.idbtrans.disableChangeTracking=!0,t.idbtrans.disableAccessControl=!0;const[n,r,i]=yield Promise.all([s.getSchema(),s.getPersistedSyncState(),s.getCurrentUser()]);if(!r||!n||!i)return;if(h.baseRev!==r.serverRevision)return void("string"!=typeof h.baseRev||"bigint"!=typeof r.serverRevision&&"object"!=typeof r.serverRevision||y(s,"pull"));if((yield e.waitFor(_(r)))!==h.realmSetHash)return void y(s,"pull");let o=[];if(i.isLoggedIn){const e=k(s).map((e=>s.table(S(e.name))));o=yield I(e,s)}if(h.changes.length>0){const e=ao(h.changes,o);yield gt(e,s)}r.latestRevisions=ft(o,r.latestRevisions),r.serverRevision=h.newRev,yield ht(s,n,r.latestRevisions,h.newRev),yield s.$syncState.put(r,"syncState")}))))}}catch(e){}}}))}()}finally{a[a.length-1]-a[0]<ho&&(yield new Promise((e=>setTimeout(e,fo)))),c=!1,o.next(!0)}}})))),{enqueue:function(e){i.push(e),l.next(null)},readyToServe:o}}const go=new WeakMap,yo={members:"@id, [userId+realmId], [email+realmId], realmId",roles:"[realmId+name]",realms:"@realmId",$jobs:"",$syncState:"",$baseRevs:"[tableName+clientRev]",$logins:"claims.sub, lastLogin"};let mo=0;function vo(e){"vip"in e&&(e=e.vip);let n=go.get(e.cloud);if(!n){const r=new t.Subject;let s=new f(`syncstatechanged-${e.name}`),i=new f(`synccomplete-${e.name}`);r.id=++mo;let o=!1;n={get name(){return e.name},close:()=>e.close(),transaction:e.transaction.bind(e),table:e.table.bind(e),get tables(){return e.tables},cloud:e.cloud,get $jobs(){return e.table("$jobs")},get $syncState(){return e.table("$syncState")},get $baseRevs(){return e.table("$baseRevs")},get $logins(){return e.table("$logins")},get realms(){return e.realms},get members(){return e.members},get roles(){return e.roles},get initiallySynced(){return o},localSyncEvent:r,get syncStateChangedEvent(){return s},get syncCompleteEvent(){return i},dx:e};const l={getCurrentUser:()=>n.$logins.toArray().then((e=>e.find((e=>e.isLoggedIn))||c)),getPersistedSyncState:()=>n.$syncState.get("syncState"),getSchema:()=>n.$syncState.get("schema").then((e=>{if(e)for(const r of n.tables)r.schema.primKey&&r.schema.primKey.keyPath&&e[r.name]&&(e[r.name].primaryKey="string"==typeof(t=r.schema.primKey.keyPath)?t:t?"["+[].join.call(t,"+")+"]":"");var t;return e})),getOptions:()=>n.$syncState.get("options"),setInitiallySynced(e){o=e},reconfigure(){s=new f(`syncstatechanged-${e.name}`),i=new f(`synccomplete-${e.name}`)}};Object.assign(n,l),n.messageConsumer=po(n),n.messageProducer=new t.Subject,go.set(e.cloud,n)}return n}const bo=new WeakMap;class wo{constructor(e,t){bo.set(this,e),Object.assign(this,t)}static load(e,t){return e.table("$logins").get(t).then((n=>new wo(e,n||{userId:t,claims:{sub:t},lastLogin:new Date(0)})))}save(){return r(this,void 0,void 0,(function*(){bo.get(this).table("$logins").put(this)}))}}function _o(e,n){return t.firstValueFrom(t.from(e).pipe(t.filter(n)))}function ko(e){return r(this,void 0,void 0,(function*(){const t=yield So(e);if(t){if(!(yield function(e,t,n){return r(this,void 0,void 0,(function*(){const r=[{type:"warning",messageCode:"LOGOUT_CONFIRMATION",message:"{numUnsyncedChanges} unsynced changes will get lost!\n Logout anyway?",messageParams:{currentUserId:t,numUnsyncedChanges:n.toString()}}];return yield _e(e,{type:"logout-confirmation",title:"Confirm Logout",alerts:r,fields:{},submitLabel:"Confirm logout",cancelLabel:"Cancel"}).then((()=>!0)).catch((()=>!1))}))}(e.cloud.userInteraction,e.cloud.currentUserId,t)))throw new Error("User cancelled logout due to unsynced changes");yield So(e,{deleteUnsyncedData:!0})}}))}function So(e){return r(this,arguments,void 0,(function*(e,{deleteUnsyncedData:t=!1}={}){const[n,s]=yield e.dx.transaction("rw",e.dx.tables,(n=>r(this,void 0,void 0,(function*(){const r=n.idbtrans;r.disableChangeTracking=!0,r.disableAccessControl=!0;const s=n.storeNames.filter((e=>e.endsWith("_mutations"))),i=(yield Promise.all(s.map((e=>n.table(e).count())))).reduce(((e,t)=>e+t),0);if(i>0&&!t)return[i,!1];e.$syncState.delete("syncState");for(const t of e.dx.tables)"$jobs"!==t.name&&"$syncState"!==t.name&&t.clear();return[i,!0]}))));return s&&(yield _o(e.cloud.currentUser,(e=>e.userId===c.userId)),yield e.cloud.sync({purpose:"pull",wait:!0})),n}))}function Eo(e,...t){globalThis.console[e](...t)}function xo(e,t){return r(this,void 0,void 0,(function*(){var n;const s=yield e.getCurrentUser(),i=s.userId;if(s.isLoggedIn&&(!t||!t.email&&!t.userId)){if("ok"===((null===(n=s.license)||void 0===n?void 0:n.status)||"ok")&&s.accessToken&&(!s.accessTokenExpiration||s.accessTokenExpiration.getTime()>Date.now()))return!1;if(s.refreshToken&&(!s.refreshTokenExpiration||s.refreshTokenExpiration.getTime()>Date.now()))return yield xe(e),!1}const o=new wo(e,{claims:{},lastLogin:new Date(0)});return yield Ce(e.cloud.options.databaseUrl,o,e.cloud.options.fetchTokens||function(e){const{userInteraction:t}=e.cloud;return function(n){return r(this,arguments,void 0,(function*({public_key:n,hints:r}){var s;let i;const o=null===(s=e.cloud.options)||void 0===s?void 0:s.databaseUrl;if(!o)throw new Error("No database URL given.");if("demo"===(null==r?void 0:r.grant_type))i={demo_user:yield Se(t,"Enter a demo user email",(null==r?void 0:r.email)||(null==r?void 0:r.userId)),grant_type:"demo",scopes:["ACCESS_DB"],public_key:n};else if((null==r?void 0:r.otpId)&&r.otp)i={grant_type:"otp",otp_id:r.otpId,otp:r.otp,scopes:["ACCESS_DB"],public_key:n};else{const e=yield Se(t,"Enter email address",null==r?void 0:r.email);i=/@demo.local$/.test(e)?{demo_user:e,grant_type:"demo",scopes:["ACCESS_DB"],public_key:n}:{email:e,grant_type:"otp",scopes:["ACCESS_DB"]}}const l=yield fetch(`${o}/token`,{body:JSON.stringify(i),method:"post",headers:{"Content-Type":"application/json",mode:"cors"}});if(200!==l.status){const e=yield l.text();throw yield ke(t,"Token request failed",{type:"error",messageCode:"GENERIC_ERROR",message:e,messageParams:{}}).catch((()=>{})),new st(l,e)}const c=yield l.json();if("tokens"===c.type||"error"===c.type)return c;if("otp"===i.grant_type&&"email"in i){if("otp-sent"!==c.type)throw new Error(`Unexpected response from ${o}/token`);const e=yield Ee(t,i.email),r=Object.assign(Object.assign({},i),{otp:e||"",otp_id:c.otp_id,public_key:n});let s=yield fetch(`${o}/token`,{body:JSON.stringify(r),method:"post",headers:{"Content-Type":"application/json"},mode:"cors"});for(;401===s.status;){const e=yield s.text();r.otp=yield Ee(t,i.email,{type:"error",messageCode:"INVALID_OTP",message:e,messageParams:{}}),s=yield fetch(`${o}/token`,{body:JSON.stringify(r),method:"post",headers:{"Content-Type":"application/json"},mode:"cors"})}if(200!==s.status){const e=yield s.text();throw new st(s,e)}return yield s.json()}throw new Error(`Unexpected response from ${o}/token`)}))}}(e),e.cloud.userInteraction,t),i!==c.userId&&o.userId!==i&&(yield ko(e)),yield function(e,t){return r(this,void 0,void 0,(function*(){const n=e.table("$logins");yield e.transaction("rw",n,(e=>r(this,void 0,void 0,(function*(){const e=yield n.toArray();yield Promise.all(e.filter((e=>e.userId!==t.userId&&e.isLoggedIn)).map((e=>(e.isLoggedIn=!1,n.put(e))))),t.isLoggedIn=!0,t.lastLogin=new Date;try{yield t.save()}catch(e){try{"DataCloneError"===e.name&&(Eo("debug","Login context property names:",Object.keys(t)),Eo("debug","Login context property names:",Object.keys(t)),Eo("debug","Login context:",t),Eo("debug","Login context JSON:",JSON.stringify(t)))}catch(e){}throw e}})))),yield _o(e.cloud.currentUser,(e=>e.userId===t.userId))}))}(e,o),y(e,"pull"),o.userId!==i}))}const Co="undefined"!=typeof InstallTrigger,Io="undefined"!=typeof navigator&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\/|Edge\//.test(navigator.userAgent),Ao=Io?[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]:NaN,Do=Io&&Ao<=605||Co,Oo="undefined"!=typeof self&&"clients"in self&&!self.document;const{toString:Uo}={};function To(e){return Uo.call(e).slice(8,-1)}function Lo(e,t){var n;return"delete"===t.type?t.keys:(null===(n=t.keys)||void 0===n?void 0:n.slice())||t.values.map(e.extractKey)}const jo=/b|c|d|f|g|h|j|k|l|m|n|p|q|r|s|t|v|x|y|z/i;let Po=0;function Ro(e,t){const n=new Uint8Array(18),r=new Uint8Array(n.buffer,0,6),s=Date.now();Po>=s?++Po:Po=s,r[0]=Po/1099511627776,r[1]=Po/4294967296,r[2]=Po/16777216,r[3]=Po/65536,r[4]=Po/256,r[5]=Po;const i=new Uint8Array(n.buffer,6);crypto.getRandomValues(i);return e+$e(new Uint8Array(n.buffer))+(t||"")}function Mo(t){return{stack:"dbcore",name:"idGenerationMiddleware",level:1,create:n=>Object.assign(Object.assign({},n),{table:r=>{const s=n.table(r);return Object.assign(Object.assign({},s),{mutate:n=>{var i,o;const l=n.trans;if("versionchange"===l.mode&&(l.disableChangeTracking=!0,l.disableAccessControl=!0),l.disableChangeTracking)return s.mutate(n);if("add"===n.type||"put"===n.type){const l=null===(i=t.cloud.schema)||void 0===i?void 0:i[r];if(null==l?void 0:l.generatedGlobalId){if((null===(o=t.cloud.options)||void 0===o?void 0:o.databaseUrl)&&!t.initiallySynced){const e=Lo(s.schema.primaryKey,n);return s.getMany({keys:e,trans:n.trans,cache:"immutable"}).then((t=>{if(t.length<e.length)throw new Error("Unable to create new objects without an initial sync having been performed.");return s.mutate(n)}))}return function(n,i){let o=null;const l=Lo(s.schema.primaryKey,n);return l.forEach(((c,a)=>{if(void 0===c){const r=n.values[a].realmId||t.cloud.currentUserId,c=r.substr(r.length-3);l[a]=Ro(i,c),s.schema.primaryKey.outbound||(o||(o=n.values.slice()),o[a]=e.deepClone(o[a]),e.setByKeyPath(o[a],s.schema.primaryKey.keyPath,l[a]))}else if("string"!=typeof c||!c.startsWith(i)&&!c.startsWith("#"+i))throw new e.ConstraintError(`The ID "${c}" is not valid for table "${r}". Primary '@' keys requires the key to be prefixed with "${i}" (or "#${i}).\nIf you want to generate IDs programmatically, remove '@' from the schema to get rid of this constraint. Dexie Cloud supports custom IDs as long as they are random and globally unique.`)})),s.mutate(Object.assign(Object.assign({},n),{keys:l,values:o||n.values}))}(n,l.idPrefix)}if(null==l?void 0:l.markedForSync){Lo(s.schema.primaryKey,n).forEach(((t,n)=>{if(!L(t)){const n=Array.isArray(t)?t.map(To).join(","):To(t);throw new e.ConstraintError(`Invalid primary key type ${n} for table ${r}. Tables marked for sync has primary keys of type string or Array of string (and optional numbers)`)}}))}}return s.mutate(n)}})}})}}let No=0;function $o(e,t){return function(n){const{readers:r,writers:s}=n.trans[t]||(n.trans[t]={writers:[],readers:[]}),i=s.length,o=(i>0?s[i-1].then((()=>e(n)),(()=>e(n))):e(n)).finally((()=>{r.splice(r.indexOf(o))}));return r.push(o),o}}function Bo(e,t){return function(n){const{readers:r,writers:s}=n.trans[t]||(n.trans[t]={writers:[],readers:[]});let i=(s.length>0?s[s.length-1].then((()=>e(n)),(()=>e(n))):r.length>0?(o=r,new Promise((e=>{0===o.length&&e([]);let t=o.length;const n=new Array(t);o.forEach(((r,s)=>Promise.resolve(r).then((e=>n[s]={status:"fulfilled",value:e}),(e=>n[s]={status:"rejected",reason:e})).then((()=>--t||e(n)))))}))).then((()=>e(n))):e(n)).finally((()=>{s.shift()}));var o;return s.push(i),i}}const Fo=new t.BehaviorSubject(new Set);function Wo(e){var t,n,r,s;return(null===(t=e.cloud.options)||void 0===t?void 0:t.disableEagerSync)||"ok"!==(null===(r=null===(n=e.cloud.currentUser.value)||void 0===n?void 0:n.license)||void 0===r?void 0:r.status)||!(null===(s=e.cloud.options)||void 0===s?void 0:s.databaseUrl)}function Vo({currentUserObservable:t,db:n}){return{stack:"dbcore",name:"MutationTrackingMiddleware",level:1,create:r=>{const s=new Set(r.schema.tables.map((e=>e.name))),i=r.schema.tables.filter((e=>!/^\$/.test(e.name))),o=new Map;for(const e of i){const t=`$${e.name}_mutations`;s.has(t)&&o.set(e.name,r.table(t))}return Object.assign(Object.assign({},r),{transaction:(e,s)=>{let i;if("readwrite"===s){const t=e.filter((e=>{var t,r;return null===(r=null===(t=n.cloud.schema)||void 0===t?void 0:t[e])||void 0===r?void 0:r.markedForSync})).map((e=>S(e)));i=r.transaction([...e,...t],s)}else i=r.transaction(e,s);if("readwrite"===s){i.txid=A(16),i.opCount=0,i.currentUser=t.value,Fo.value.add(i),Fo.next(Fo.value);const e=()=>{i.removeEventListener("complete",r),i.removeEventListener("error",e),i.removeEventListener("abort",e),Fo.value.delete(i),Fo.next(Fo.value)},r=()=>{i.mutationsAdded&&!Wo(n)&&y(n,"push"),e()};i.addEventListener("complete",r),i.addEventListener("error",e),i.addEventListener("abort",e)}return i},table:t=>{const s=r.table(t);if(/^\$/.test(t))return t.endsWith("_mutations")?Object.assign(Object.assign({},s),{mutate:e=>("add"!==e.type&&"put"!==e.type||(e.trans.mutationsAdded=!0),s.mutate(e))}):"$logins"===t?Object.assign(Object.assign({},s),{mutate:e=>s.mutate(e).then((t=>(e.trans.mutationsAdded=!0,t))).catch((e=>Promise.reject(e)))}):s;const{schema:i}=s,l=o.get(t);return l?function(e){const t="$lock"+ ++No;return Object.assign(Object.assign({},e),{count:$o(e.count,t),get:$o(e.get,t),getMany:$o(e.getMany,t),openCursor:$o(e.openCursor,t),query:$o(e.query,t),mutate:Bo(e.mutate,t)})}(Object.assign(Object.assign({},s),{mutate:e=>{var r,o,l;const a=e.trans;return a.txid?a.disableChangeTracking?s.mutate(e):(null===(o=null===(r=n.cloud.schema)||void 0===r?void 0:r[t])||void 0===o?void 0:o.markedForSync)&&(null===(l=a.currentUser)||void 0===l?void 0:l.isLoggedIn)?"deleteRange"===e.type?s.query({query:{range:e.range,index:i.primaryKey},trans:e.trans,values:!1}).then((t=>c({type:"delete",keys:t.result,trans:e.trans,criteria:{index:null,range:e.range}}))):c(e):s.mutate(e):s.mutate(e)}})):s;function c(r){var o,c;const a=r.trans,u=null===(c=null===(o=n.cloud.options)||void 0===o?void 0:o.unsyncedProperties)||void 0===c?void 0:c[t],{txid:d,currentUser:{userId:h}}=a,{type:f}=r,p=++a.opCount;function g(e){if(!u)return e;let t=e;for(const n of Object.keys(e))u.some((e=>n===e||n.startsWith(e+".")))&&(t===e&&(t=Object.assign({},e)),delete t[n]);return t}return s.mutate(r).then((t=>{var n;const{numFailures:s,failures:o}=t;let c="delete"===f?r.keys:t.results,y="values"in r?r.values:[],m="changeSpec"in r?r.changeSpec:void 0,v="updates"in r?r.updates:void 0;if(s&&(c=c.filter(((e,t)=>!o[t])),y=y.filter(((e,t)=>!o[t]))),u){if(y=y.map((e=>{const t=Object.assign({},e);for(const e of u)delete t[e];return t})),m&&(m=g(m),0===Object.keys(m).length))return t;if(v){let t=v.changeSpecs.map(g),n={keys:[],changeSpecs:[]};const r=new e.RangeSet;let s=!1;for(let e=0,i=t.length;e<i;++e)Object.keys(t[e]).length>0?(n.keys.push(v.keys[e]),n.changeSpecs.push(t[e]),r.addKey(v.keys[e])):s=!0;if(v=n,s){let e=[],t=[];for(let n=0,s=c.length;n<s;++n)r.hasKey(c[n])&&(e.push(c[n]),t.push(y[n]));c=e,y=t}}}const b=Date.now();let w="criteria"in r&&r.criteria?Object.assign(Object.assign({},r.criteria),{index:r.criteria.index===i.primaryKey.keyPath?null:r.criteria.index}):void 0;if(u&&(null==w?void 0:w.index)){const e=null===(n=i.indexes.find((e=>e.name===w.index)))||void 0===n?void 0:n.keyPath;(e?"string"==typeof e?[e]:e:[]).some((e=>null==u?void 0:u.includes(e)))&&(w=void 0)}const _="delete"===r.type?{type:"delete",ts:b,opNo:p,keys:c,criteria:w,txid:d,userId:h}:"add"===r.type?{type:"insert",ts:b,opNo:p,keys:c,txid:d,userId:h,values:y}:w&&m?{type:"modify",ts:b,opNo:p,keys:c,criteria:w,changeSpec:m,txid:d,userId:h}:m?{type:"update",ts:b,opNo:p,keys:c,changeSpecs:c.map((()=>m)),txid:d,userId:h}:v?{type:"update",ts:b,opNo:p,keys:v.keys,changeSpecs:v.changeSpecs,txid:d,userId:h}:{type:"upsert",ts:b,opNo:p,keys:c,values:y,txid:d,userId:h};return"isAdditionalChunk"in r&&r.isAdditionalChunk&&(_.isAdditionalChunk=!0),c.length>0||w?l.mutate({type:"add",trans:a,values:[_]}).then((()=>(a.mutationsAdded=!0,t))):t}))}}})}}}function Ko(e,t){return function(n,r){var s;const i=Object.assign(Object.assign({},yo),n);Object.keys(yo).forEach((e=>{const t=i[e];if(null==t)throw new Error(`Cannot delete table ${e} as it is needed for access control of Dexie Cloud`);if(!n[e])return;const r=t.split(",").map((e=>e.trim())),s=yo[e].split(",").map((e=>e.trim())),o=new Set(r.map((e=>e.replace(/([&*]|\+\+)/g,""))));if(r[0]!==s[0])throw new Error(`Cannot override primary key of table ${e}. Please declare it as {${e}: ${JSON.stringify(yo[e])}`);for(let t=1;t<s.length;++t){const n=s[t];o.has(n.replace(/([&*]|\+\+)/g,""))||(i[e]+=`,${n}`)}}));const o=t.cloud.schema||(t.cloud.schema={}),l=new Set;Object.keys(i).forEach((e=>{const t=i[e],n=o[e]||(o[e]={});null!=t?(/^\@/.test(t)&&(i[e]=i[e].substr(1),n.generatedGlobalId=!0,n.idPrefix=function(e,t){let n=e[0].toLocaleLowerCase();for(let t=1,s=e.length;t<s&&n.length<3;++t)(jo.test(e[t])||(r=e[t])>="A"&&r<="Z")&&(n+=e[t].toLowerCase());for(var r,s,i;t.has(n);){if(/\d/g.test(n)){if(n=n.substr(0,n.length-1)+(n[n.length-1]+1),!(n.length>3))continue;n=n.substr(0,3)}else if(n.length<3){n+="2";continue}let e=1,r=n;for(;t.has(r)&&e<8;)s=n,r=(1&(i=e)?s[0].toUpperCase():s[0].toLowerCase())+(2&i?s[1].toUpperCase():s[1].toLowerCase())+(4&i?s[2].toUpperCase():s[2].toLowerCase()),++e;if(e<8)n=r;else{let e=n.charCodeAt(2)+1&127;n=n.substr(0,2)+String.fromCharCode(e)}}return n}(e,l),l.add(n.idPrefix)),/^\$/.test(e)||(i[`$${e}_mutations`]="++rev",n.markedForSync=!0),n.deleted&&(n.deleted=!1)):(n.deleted=!0,n.markedForSync=!1,i[`$${e}_mutations`]=null)}));const c=e.call(this,i,r);for(const[e,t]of Object.entries(r))if(null===(s=t.yProps)||void 0===s?void 0:s.length){const n=o[e];n&&(n.yProps=t.yProps.map((e=>e.prop)))}return c}}function Ho(e,t,n){return"undefined"!=typeof navigator&&navigator.locks?navigator.locks.request(e.name+"|"+t,(()=>n())):n()}const Jo=new t.BehaviorSubject(!0),zo=new t.BehaviorSubject(!0);Jo.pipe(n.switchMap((e=>e?t.of(!0):t.of(!1).pipe(n.delay(2e4)))),n.distinctUntilChanged()).subscribe(zo);const qo="undefined"!=typeof document?t.fromEvent(document,"visibilitychange"):t.of({}),Yo=qo.pipe(n.filter((()=>"hidden"===document.visibilityState))),Go=qo.pipe(n.filter((()=>"visible"===document.visibilityState))),Qo="undefined"!=typeof window?t.merge(Go,t.fromEvent(window,"mousedown"),t.fromEvent(window,"mousemove"),t.fromEvent(window,"keydown"),t.fromEvent(window,"wheel"),t.fromEvent(window,"touchmove")):t.of({});"undefined"!=typeof document&&t.merge(t.of(!0),Yo,Qo).pipe(n.map((()=>"visible"===document.visibilityState)),n.tap((e=>{Jo.value!==e&&Jo.next(e)})),n.switchMap((e=>e?t.of(0).pipe(n.delay(16e4),n.tap((()=>Jo.next(!1)))):t.of(0)))).subscribe((()=>{}));class Xo extends Error{constructor(){super(...arguments),this.name="TokenExpiredError"}}const Zo=new WeakMap,el=3e4;class tl extends It{constructor(e){super(),this.doc=e,this.clientID=e.clientID,this.states=new Map,this.meta=new Map,this._checkInterval=setInterval((()=>{const e=Pn();null!==this.getLocalState()&&15e3<=e-this.meta.get(this.clientID).lastUpdated&&this.setLocalState(this.getLocalState());const t=[];this.meta.forEach(((n,r)=>{r!==this.clientID&&el<=e-n.lastUpdated&&this.states.has(r)&&t.push(r)})),t.length>0&&nl(this,t,"timeout")}),At(3e3)),e.on("destroy",(()=>{this.destroy()})),this.setLocalState({})}destroy(){this.emit("destroy",[this]),this.setLocalState(null),super.destroy(),clearInterval(this._checkInterval)}getLocalState(){return this.states.get(this.clientID)||null}setLocalState(e){const t=this.clientID,n=this.meta.get(t),r=void 0===n?0:n.clock+1,s=this.states.get(t);null===e?this.states.delete(t):this.states.set(t,e),this.meta.set(t,{clock:r,lastUpdated:Pn()});const i=[],o=[],l=[],c=[];null===e?c.push(t):null==s?null!=e&&i.push(t):(o.push(t),Yn(s,e)||l.push(t)),(i.length>0||l.length>0||c.length>0)&&this.emit("change",[{added:i,updated:l,removed:c},"local"]),this.emit("update",[{added:i,updated:o,removed:c},"local"])}setLocalStateField(e,t){const n=this.getLocalState();null!==n&&this.setLocalState({...n,[e]:t})}getStates(){return this.states}}const nl=(e,t,n)=>{const r=[];for(let n=0;n<t.length;n++){const s=t[n];if(e.states.has(s)){if(e.states.delete(s),s===e.clientID){const t=e.meta.get(s);e.meta.set(s,{clock:t.clock+1,lastUpdated:Pn()})}r.push(s)}}r.length>0&&(e.emit("change",[{added:[],updated:[],removed:r},n]),e.emit("update",[{added:[],updated:[],removed:r},n]))},rl=(e,t,n=e.states)=>{const r=t.length,s=Ht();Yt(s,r);for(let i=0;i<r;i++){const r=t[i],o=n.get(r)||null,l=e.meta.get(r).clock;Yt(s,r),Yt(s,l),Zt(s,JSON.stringify(o))}return Jt(s)},sl=new WeakMap;function il(e){let n=sl.get(e);return n||(n=new t.Subject,sl.set(e,n)),n}class ol extends t.Observable{constructor(e,t,n,r,s,i,o,l){super((c=>new cl(e,t,n,r,s,l,c,i,o)))}}let ll=0;class cl extends t.Subscription{constructor(e,t,n,r,s,i,o,l,c){super((()=>this.teardown())),this.id=++ll,this.subscriptions=new Set,this.reconnecting=!1,this.db=e,this.databaseUrl=e.cloud.options.databaseUrl,this.rev=t,this.yrev=n,this.realmSetHash=r,this.clientIdentity=s,this.user=i,this.subscriber=o,this.lastUserActivity=new Date,this.messageProducer=l,this.webSocketStatus=c,this.connect()}teardown(){this.disconnect()}disconnect(){if(this.webSocketStatus.next("disconnected"),this.pinger&&(clearInterval(this.pinger),this.pinger=null),this.ws)try{this.ws.close()}catch(e){}this.ws=null;for(const e of this.subscriptions)e.unsubscribe();this.subscriptions.clear()}reconnect(){if(!this.reconnecting){this.reconnecting=!0;try{this.disconnect()}catch(e){}this.connect().catch((()=>{})).then((()=>this.reconnecting=!1))}}connect(){return r(this,void 0,void 0,(function*(){if(this.lastServerActivity=new Date,this.pauseUntil&&this.pauseUntil>new Date)return;if(this.ws)throw new Error("Called connect() when a connection is already open");if(!this.databaseUrl)throw new Error("Cannot connect without a database URL");if(this.closed)return;const n=this.user.accessTokenExpiration;if(n&&n<new Date)return void this.subscriber.error(new Xo);this.webSocketStatus.next("connecting"),this.pinger=setInterval((()=>r(this,void 0,void 0,(function*(){if(this.closed)this.teardown();else if(this.ws)try{this.ws.send(JSON.stringify({type:"ping"})),setTimeout((()=>{this.pinger&&(this.closed?this.teardown():this.lastServerActivity<new Date(Date.now()-2e4)&&this.reconnect())}),2e4)}catch(e){this.reconnect()}else this.reconnect()}))),3e4);const s=new URL(this.databaseUrl);s.protocol="http:"===s.protocol?"ws":"wss";const i=new URLSearchParams;if(this.subscriber.closed)return;i.set("v","2"),this.rev&&i.set("rev",this.rev),this.yrev&&i.set("yrev",this.yrev),i.set("realmsHash",this.realmSetHash),i.set("clientId",this.clientIdentity),i.set("dxcv",this.db.cloud.version),this.user.accessToken&&i.set("token",this.user.accessToken);const o=this.ws=new WebSocket(`${s}/changes?${i}`);o.binaryType="arraybuffer",o.onclose=e=>{this.pinger&&this.reconnect()},o.onmessage=e=>{if(this.pinger){this.lastServerActivity=new Date;try{const t="string"==typeof e.data?nt.parse(e.data):function(e){const t=new ae(e),n=pe(t);if("outdated-server-rev"===n)return{type:n};if("y-complete-sync-done"===n)return{type:n,yServerRev:pe(t)};const r=pe(t),s=pe(t);switch(n){case"u-ack":case"u-reject":return{type:n,table:r,prop:s,i:Number(ye(t))};default:{const e=ve(t);switch(n){case"in-sync":case"doc-close":return{type:n,table:r,prop:s,k:e};case"aware":return{type:n,table:r,prop:s,k:e,u:de(t)};case"doc-open":return{type:n,table:r,prop:s,k:e,serverRev:ve(t),sv:ve(t)};case"sv":return{type:n,table:r,prop:s,k:e,sv:de(t)};case"u-c":return{type:n,table:r,prop:s,k:e,u:de(t),i:Number(ye(t))};case"u-s":return{type:n,table:r,prop:s,k:e,u:de(t),r:t.pos<t.arr.length&&pe(t)||void 0};default:throw new TypeError(`Unknown message type: ${n}`)}}}}(new Uint8Array(e.data));if("error"===t.type)throw new Error(`Error message from dexie-cloud: ${t.error}`);if("aware"===t.type){const e=eo.getDocCache(this.db.dx).find(t.table,t.k,t.prop);if(e){const n=(e=>Zo.get(e))(e);n&&((e,t,n)=>{const r=vn(t),s=Pn(),i=[],o=[],l=[],c=[],a=_n(r);for(let t=0;t<a;t++){const t=_n(r);let n=_n(r);const a=JSON.parse(Sn(r)),u=e.meta.get(t),d=e.states.get(t),h=void 0===u?0:u.clock;(h<n||h===n&&null===a&&e.states.has(t))&&(null===a?t===e.clientID&&null!=e.getLocalState()?n++:e.states.delete(t):e.states.set(t,a),e.meta.set(t,{clock:n,lastUpdated:s}),void 0===u&&null!==a?i.push(t):void 0!==u&&null===a?c.push(t):null!==a&&(Yn(a,d)||l.push(t),o.push(t)))}(i.length>0||l.length>0||c.length>0)&&e.emit("change",[{added:i,updated:l,removed:c},n]),(i.length>0||o.length>0||c.length>0)&&e.emit("update",[{added:i,updated:o,removed:c},n])})(n,t.u,"server")}}else if("pong"===t.type);else if("doc-open"===t.type){const e=eo.getDocCache(this.db.dx).find(t.table,t.k,t.prop);e&&il(e).next()}else"u-ack"===t.type||"u-reject"===t.type||"u-s"===t.type||"in-sync"===t.type||"outdated-server-rev"===t.type||"y-complete-sync-done"===t.type?to([t],this.db).then((e=>r(this,[e],void 0,(function*({resyncNeeded:e,yServerRevision:n,receivedUntils:r}){if(n&&(yield this.db.$syncState.update("syncState",{yServerRevision:n})),"u-s"===t.type&&r){const e=Vi(this.db,t.table,t.prop);if(e){const t=r[e.name];t&&(yield e.update(yt,{receivedUntil:t}))}}e&&(yield this.db.cloud.sync({purpose:"pull",wait:!0}))})))):this.subscriber.next(t)}catch(e){this.subscriber.error(e)}}};try{let n=!1;yield new Promise(((e,t)=>{o.onopen=t=>{n=!0,e(null)},o.onerror=e=>{if(n)this.reconnect();else{const n=e.error||new Error("WebSocket Error");this.subscriber.error(n),this.webSocketStatus.next("error"),t(n)}}})),this.subscriptions.add(this.messageProducer.subscribe((e=>{var t,n;this.closed||("ready"===e.type&&"connected"!==this.webSocketStatus.value&&this.webSocketStatus.next("connected"),"ready"===e.type?(this.rev=e.rev,null===(t=this.ws)||void 0===t||t.send(nt.stringify(e))):null===(n=this.ws)||void 0===n||n.send(ie(e)))}))),this.user.isLoggedIn&&!Wo(this.db)&&this.subscriptions.add(function(n){const s=C(n.tables.filter((e=>{var t,r;return(null===(r=null===(t=n.cloud.schema)||void 0===t?void 0:t[e.name])||void 0===r?void 0:r.markedForSync)&&e.schema.yProps})).map((e=>e.schema.yProps.map((t=>({table:e.name,ydocProp:t.prop,updatesTable:t.updatesTable}))))));return t.merge(...s.map((({table:s,ydocProp:i,updatesTable:o})=>{const l=n.table(o);return t.from(l.get(yt)).pipe(t.switchMap((n=>{let o=(null==n?void 0:n.unsentFrom)||1;return t.from(e.liveQuery((()=>r(this,void 0,void 0,(function*(){return(yield mt(l,o)).filter((e=>e.f&&1&e.f)).map((e=>({type:"u-c",table:s,prop:i,k:e.k,u:e.u,i:e.i})))}))))).pipe(t.tap((e=>{e.length>0&&(o=e.at(-1).i+1)})))})))}))).pipe(t.mergeMap((e=>e)))}(this.db).subscribe(this.db.messageProducer))}catch(e){this.pauseUntil=new Date(Date.now()+6e4)}}))}}class al extends Error{constructor(e){super("expired"===e?"License expired":"deactivated"===e?"User deactivated":"Invalid license"),this.name="InvalidLicenseError",e&&(this.license=e)}}function ul(e){return r(this,void 0,void 0,(function*(){var e;yield(e=3e3,new Promise((t=>setTimeout(t,e)))),yield t.firstValueFrom(Qo)}))}function dl(e){return r(this,void 0,void 0,(function*(){var t;return!(!(null===(t=e.cloud.options)||void 0===t?void 0:t.databaseUrl)||!e.cloud.schema)&&(yield lo(e,e.cloud.options,e.cloud.schema,{justCheckIfNeeded:!0}))}))}const hl=new WeakMap;function fl(e,t,n,s){const i=hl.get(e);if(i){if(i.pull||"push"===(null==s?void 0:s.purpose))return i.promise;{let r=!1;const o=e.cloud.syncState.subscribe((e=>{"pulling"===e.phase&&(r=!0)}));return i.promise.then((()=>{o.unsubscribe()})).catch((e=>(o.unsubscribe(),Promise.reject(e)))).then((()=>{if(!r)return fl(e,t,n,s)}))}}const o=function(){return r(this,void 0,void 0,(function*(){try{yield ct(e),yield Ho(e,oo,(()=>lo(e,t,n,s))),hl.delete(e)}catch(t){throw hl.delete(e),t}}))}();return hl.set(e,{promise:o,pull:"push"!==(null==s?void 0:s.purpose)}),o}const pl=1e3;function gl(e,t,n){let r=null,s={cancelled:!1},i=0,o=0;function l(r=1){setTimeout((()=>{const d=c?"pull":"push";o=Date.now(),fl(e,t,n,{cancelToken:s,retryImmediatelyOnFetchError:!0,purpose:d}).then((()=>{if(s.cancelled)h();else if(c||a)return c=!1,a=!1,l();u=!1,i=0,o=0})).catch((e=>{if(s.cancelled)h(),u=!1,i=0,o=0;else if(r<5){const e=[0,20,40,300,900][r]*pl;i=Date.now()+e,o=0,setTimeout((()=>l(r+1)),e)}else u=!1,i=0,o=0}))}),0)}let c=!1,a=!1,u=!1;const d=e=>{s.cancelled||("pull"===e&&(c=!0),"push"===e&&(a=!0),u?i||o>0&&Date.now():(u=!0,l()))},h=()=>{s.cancelled=!0,r&&r.unsubscribe()};return{start:()=>{r=e.localSyncEvent.subscribe((({purpose:e})=>{d(e||"pull")}))},stop:h}}function yl(e,t){if(e&&t&&t.unsyncedTables)for(const n of t.unsyncedTables)e[n]&&(e[n].markedForSync=!1)}var ml,vl,bl,wl,_l,kl={},Sl=[],El=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function xl(e,t){for(var n in t)e[n]=t[n];return e}function Cl(e){var t=e.parentNode;t&&t.removeChild(e)}function Il(e,t,n){var r,s,i,o={};for(i in t)"key"==i?r=t[i]:"ref"==i?s=t[i]:o[i]=t[i];if(arguments.length>2&&(o.children=arguments.length>3?ml.call(arguments,2):n),"function"==typeof e&&null!=e.defaultProps)for(i in e.defaultProps)void 0===o[i]&&(o[i]=e.defaultProps[i]);return Al(e,o,r,s,null)}function Al(e,t,n,r,s){var i={type:e,props:t,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==s?++bl:s};return null==s&&null!=vl.vnode&&vl.vnode(i),i}function Dl(e){return e.children}function Ol(e,t){this.props=e,this.context=t}function Ul(e,t){if(null==t)return e.__?Ul(e.__,e.__.__k.indexOf(e)+1):null;for(var n;t<e.__k.length;t++)if(null!=(n=e.__k[t])&&null!=n.__e)return n.__e;return"function"==typeof e.type?Ul(e):null}function Tl(e){var t,n;if(null!=(e=e.__)&&null!=e.__c){for(e.__e=e.__c.base=null,t=0;t<e.__k.length;t++)if(null!=(n=e.__k[t])&&null!=n.__e){e.__e=e.__c.base=n.__e;break}return Tl(e)}}function Ll(e){(!e.__d&&(e.__d=!0)&&wl.push(e)&&!jl.__r++||_l!==vl.debounceRendering)&&((_l=vl.debounceRendering)||setTimeout)(jl)}function jl(){for(var e;jl.__r=wl.length;)e=wl.sort((function(e,t){return e.__v.__b-t.__v.__b})),wl=[],e.some((function(e){var t,n,r,s,i,o;e.__d&&(i=(s=(t=e).__v).__e,(o=t.__P)&&(n=[],(r=xl({},s)).__v=s.__v+1,Wl(o,s,r,t.__n,void 0!==o.ownerSVGElement,null!=s.__h?[i]:null,n,null==i?Ul(s):i,s.__h),Vl(n,s),s.__e!=i&&Tl(s)))}))}function Pl(e,t,n,r,s,i,o,l,c,a){var u,d,h,f,p,g,y,m=r&&r.__k||Sl,v=m.length;for(n.__k=[],u=0;u<t.length;u++)if(null!=(f=n.__k[u]=null==(f=t[u])||"boolean"==typeof f?null:"string"==typeof f||"number"==typeof f||"bigint"==typeof f?Al(null,f,null,null,f):Array.isArray(f)?Al(Dl,{children:f},null,null,null):f.__b>0?Al(f.type,f.props,f.key,null,f.__v):f)){if(f.__=n,f.__b=n.__b+1,null===(h=m[u])||h&&f.key==h.key&&f.type===h.type)m[u]=void 0;else for(d=0;d<v;d++){if((h=m[d])&&f.key==h.key&&f.type===h.type){m[d]=void 0;break}h=null}Wl(e,f,h=h||kl,s,i,o,l,c,a),p=f.__e,(d=f.ref)&&h.ref!=d&&(y||(y=[]),h.ref&&y.push(h.ref,null,f),y.push(d,f.__c||p,f)),null!=p?(null==g&&(g=p),"function"==typeof f.type&&f.__k===h.__k?f.__d=c=Rl(f,c,e):c=Ml(e,f,h,m,p,c),"function"==typeof n.type&&(n.__d=c)):c&&h.__e==c&&c.parentNode!=e&&(c=Ul(h))}for(n.__e=g,u=v;u--;)null!=m[u]&&("function"==typeof n.type&&null!=m[u].__e&&m[u].__e==n.__d&&(n.__d=Ul(r,u+1)),Jl(m[u],m[u]));if(y)for(u=0;u<y.length;u++)Hl(y[u],y[++u],y[++u])}function Rl(e,t,n){for(var r,s=e.__k,i=0;s&&i<s.length;i++)(r=s[i])&&(r.__=e,t="function"==typeof r.type?Rl(r,t,n):Ml(n,r,r,s,r.__e,t));return t}function Ml(e,t,n,r,s,i){var o,l,c;if(void 0!==t.__d)o=t.__d,t.__d=void 0;else if(null==n||s!=i||null==s.parentNode)e:if(null==i||i.parentNode!==e)e.appendChild(s),o=null;else{for(l=i,c=0;(l=l.nextSibling)&&c<r.length;c+=2)if(l==s)break e;e.insertBefore(s,i),o=i}return void 0!==o?o:s.nextSibling}function Nl(e,t,n){"-"===t[0]?e.setProperty(t,n):e[t]=null==n?"":"number"!=typeof n||El.test(t)?n:n+"px"}function $l(e,t,n,r,s){var i;e:if("style"===t)if("string"==typeof n)e.style.cssText=n;else{if("string"==typeof r&&(e.style.cssText=r=""),r)for(t in r)n&&t in n||Nl(e.style,t,"");if(n)for(t in n)r&&n[t]===r[t]||Nl(e.style,t,n[t])}else if("o"===t[0]&&"n"===t[1])i=t!==(t=t.replace(/Capture$/,"")),t=t.toLowerCase()in e?t.toLowerCase().slice(2):t.slice(2),e.l||(e.l={}),e.l[t+i]=n,n?r||e.addEventListener(t,i?Fl:Bl,i):e.removeEventListener(t,i?Fl:Bl,i);else if("dangerouslySetInnerHTML"!==t){if(s)t=t.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if("href"!==t&&"list"!==t&&"form"!==t&&"tabIndex"!==t&&"download"!==t&&t in e)try{e[t]=null==n?"":n;break e}catch(e){}"function"==typeof n||(null!=n&&(!1!==n||"a"===t[0]&&"r"===t[1])?e.setAttribute(t,n):e.removeAttribute(t))}}function Bl(e){this.l[e.type+!1](vl.event?vl.event(e):e)}function Fl(e){this.l[e.type+!0](vl.event?vl.event(e):e)}function Wl(e,t,n,r,s,i,o,l,c){var a,u,d,h,f,p,g,y,m,v,b,w,_,k=t.type;if(void 0!==t.constructor)return null;null!=n.__h&&(c=n.__h,l=t.__e=n.__e,t.__h=null,i=[l]),(a=vl.__b)&&a(t);try{e:if("function"==typeof k){if(y=t.props,m=(a=k.contextType)&&r[a.__c],v=a?m?m.props.value:a.__:r,n.__c?g=(u=t.__c=n.__c).__=u.__E:("prototype"in k&&k.prototype.render?t.__c=u=new k(y,v):(t.__c=u=new Ol(y,v),u.constructor=k,u.render=zl),m&&m.sub(u),u.props=y,u.state||(u.state={}),u.context=v,u.__n=r,d=u.__d=!0,u.__h=[]),null==u.__s&&(u.__s=u.state),null!=k.getDerivedStateFromProps&&(u.__s==u.state&&(u.__s=xl({},u.__s)),xl(u.__s,k.getDerivedStateFromProps(y,u.__s))),h=u.props,f=u.state,d)null==k.getDerivedStateFromProps&&null!=u.componentWillMount&&u.componentWillMount(),null!=u.componentDidMount&&u.__h.push(u.componentDidMount);else{if(null==k.getDerivedStateFromProps&&y!==h&&null!=u.componentWillReceiveProps&&u.componentWillReceiveProps(y,v),!u.__e&&null!=u.shouldComponentUpdate&&!1===u.shouldComponentUpdate(y,u.__s,v)||t.__v===n.__v){u.props=y,u.state=u.__s,t.__v!==n.__v&&(u.__d=!1),u.__v=t,t.__e=n.__e,t.__k=n.__k,t.__k.forEach((function(e){e&&(e.__=t)})),u.__h.length&&o.push(u);break e}null!=u.componentWillUpdate&&u.componentWillUpdate(y,u.__s,v),null!=u.componentDidUpdate&&u.__h.push((function(){u.componentDidUpdate(h,f,p)}))}if(u.context=v,u.props=y,u.__v=t,u.__P=e,b=vl.__r,w=0,"prototype"in k&&k.prototype.render)u.state=u.__s,u.__d=!1,b&&b(t),a=u.render(u.props,u.state,u.context);else do{u.__d=!1,b&&b(t),a=u.render(u.props,u.state,u.context),u.state=u.__s}while(u.__d&&++w<25);u.state=u.__s,null!=u.getChildContext&&(r=xl(xl({},r),u.getChildContext())),d||null==u.getSnapshotBeforeUpdate||(p=u.getSnapshotBeforeUpdate(h,f)),_=null!=a&&a.type===Dl&&null==a.key?a.props.children:a,Pl(e,Array.isArray(_)?_:[_],t,n,r,s,i,o,l,c),u.base=t.__e,t.__h=null,u.__h.length&&o.push(u),g&&(u.__E=u.__=null),u.__e=!1}else null==i&&t.__v===n.__v?(t.__k=n.__k,t.__e=n.__e):t.__e=Kl(n.__e,t,n,r,s,i,o,c);(a=vl.diffed)&&a(t)}catch(e){t.__v=null,(c||null!=i)&&(t.__e=l,t.__h=!!c,i[i.indexOf(l)]=null),vl.__e(e,t,n)}}function Vl(e,t){vl.__c&&vl.__c(t,e),e.some((function(t){try{e=t.__h,t.__h=[],e.some((function(e){e.call(t)}))}catch(e){vl.__e(e,t.__v)}}))}function Kl(e,t,n,r,s,i,o,l){var c,a,u,d=n.props,h=t.props,f=t.type,p=0;if("svg"===f&&(s=!0),null!=i)for(;p<i.length;p++)if((c=i[p])&&"setAttribute"in c==!!f&&(f?c.localName===f:3===c.nodeType)){e=c,i[p]=null;break}if(null==e){if(null===f)return document.createTextNode(h);e=s?document.createElementNS("http://www.w3.org/2000/svg",f):document.createElement(f,h.is&&h),i=null,l=!1}if(null===f)d===h||l&&e.data===h||(e.data=h);else{if(i=i&&ml.call(e.childNodes),a=(d=n.props||kl).dangerouslySetInnerHTML,u=h.dangerouslySetInnerHTML,!l){if(null!=i)for(d={},p=0;p<e.attributes.length;p++)d[e.attributes[p].name]=e.attributes[p].value;(u||a)&&(u&&(a&&u.__html==a.__html||u.__html===e.innerHTML)||(e.innerHTML=u&&u.__html||""))}if(function(e,t,n,r,s){var i;for(i in n)"children"===i||"key"===i||i in t||$l(e,i,null,n[i],r);for(i in t)s&&"function"!=typeof t[i]||"children"===i||"key"===i||"value"===i||"checked"===i||n[i]===t[i]||$l(e,i,t[i],n[i],r)}(e,h,d,s,l),u)t.__k=[];else if(p=t.props.children,Pl(e,Array.isArray(p)?p:[p],t,n,r,s&&"foreignObject"!==f,i,o,i?i[0]:n.__k&&Ul(n,0),l),null!=i)for(p=i.length;p--;)null!=i[p]&&Cl(i[p]);l||("value"in h&&void 0!==(p=h.value)&&(p!==e.value||"progress"===f&&!p||"option"===f&&p!==d.value)&&$l(e,"value",p,d.value,!1),"checked"in h&&void 0!==(p=h.checked)&&p!==e.checked&&$l(e,"checked",p,d.checked,!1))}return e}function Hl(e,t,n){try{"function"==typeof e?e(t):e.current=t}catch(e){vl.__e(e,n)}}function Jl(e,t,n){var r,s;if(vl.unmount&&vl.unmount(e),(r=e.ref)&&(r.current&&r.current!==e.__e||Hl(r,null,t)),null!=(r=e.__c)){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(e){vl.__e(e,t)}r.base=r.__P=null}if(r=e.__k)for(s=0;s<r.length;s++)r[s]&&Jl(r[s],t,"function"!=typeof e.type);n||null==e.__e||Cl(e.__e),e.__e=e.__d=void 0}function zl(e,t,n){return this.constructor(e,n)}function ql(e,t,n){var r,s,i;vl.__&&vl.__(e,t),s=(r="function"==typeof n)?null:n&&n.__k||t.__k,i=[],Wl(t,e=(!r&&n||t).__k=Il(Dl,null,[e]),s||kl,kl,void 0!==t.ownerSVGElement,!r&&n?[n]:s?null:t.firstChild?ml.call(t.childNodes):null,i,!r&&n?n:s?s.__e:t.firstChild,r),Vl(i,e)}ml=Sl.slice,vl={__e:function(e,t,n,r){for(var s,i,o;t=t.__;)if((s=t.__c)&&!s.__)try{if((i=s.constructor)&&null!=i.getDerivedStateFromError&&(s.setState(i.getDerivedStateFromError(e)),o=s.__d),null!=s.componentDidCatch&&(s.componentDidCatch(e,r||{}),o=s.__d),o)return s.__E=s}catch(t){e=t}throw e}},bl=0,Ol.prototype.setState=function(e,t){var n;n=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=xl({},this.state),"function"==typeof e&&(e=e(xl({},n),this.props)),e&&xl(n,e),null!=e&&this.__v&&(t&&this.__h.push(t),Ll(this))},Ol.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),Ll(this))},Ol.prototype.render=Dl,wl=[],jl.__r=0;const Yl={Error:{color:"red"},Alert:{error:{color:"red",fontWeight:"bold"},warning:{color:"#f80",fontWeight:"bold"},info:{color:"black"}},Darken:{position:"fixed",top:0,left:0,opacity:.5,backgroundColor:"#000",width:"100vw",height:"100vh",zIndex:150,webkitBackdropFilter:"blur(2px)",backdropFilter:"blur(2px)"},DialogOuter:{position:"fixed",top:0,left:0,width:"100vw",height:"100vh",zIndex:150,alignItems:"center",display:"flex",justifyContent:"center"},DialogInner:{position:"relative",color:"#222",backgroundColor:"#fff",padding:"30px",marginBottom:"2em",maxWidth:"90%",maxHeight:"90%",overflowY:"auto",border:"3px solid #3d3d5d",borderRadius:"8px",boxShadow:"0 0 80px 10px #666",width:"auto",fontFamily:"sans-serif"},Input:{height:"35px",width:"17em",borderColor:"#ccf4",outline:"none",fontSize:"17pt",padding:"8px"}};function Gl({children:e,className:t}){return Il("div",{className:t},Il("div",{style:Yl.Darken}),Il("div",{style:Yl.DialogOuter},Il("div",{style:Yl.DialogInner},e)))}var Ql,Xl,Zl,ec,tc=0,nc=[],rc=[],sc=vl.__b,ic=vl.__r,oc=vl.diffed,lc=vl.__c,cc=vl.unmount;function ac(e,t){vl.__h&&vl.__h(Xl,e,tc||t),tc=0;var n=Xl.__H||(Xl.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({__V:rc}),n.__[e]}function uc(e){return tc=1,function(e,t,n){var r=ac(Ql++,2);if(r.t=e,!r.__c&&(r.__=[n?n(t):mc(void 0,t),function(e){var t=r.__N?r.__N[0]:r.__[0],n=r.t(t,e);t!==n&&(r.__N=[n,r.__[1]],r.__c.setState({}))}],r.__c=Xl,!Xl.u)){Xl.u=!0;var s=Xl.shouldComponentUpdate;Xl.shouldComponentUpdate=function(e,t,n){if(!r.__c.__H)return!0;var i=r.__c.__H.__.filter((function(e){return e.__c}));if(i.every((function(e){return!e.__N})))return!s||s.call(this,e,t,n);var o=!1;return i.forEach((function(e){if(e.__N){var t=e.__[0];e.__=e.__N,e.__N=void 0,t!==e.__[0]&&(o=!0)}})),!!o&&(!s||s.call(this,e,t,n))}}return r.__N||r.__}(mc,e)}function dc(e){return tc=5,function(e,t){var n=ac(Ql++,7);return yc(n.__H,t)?(n.__V=e(),n.i=t,n.__h=e,n.__V):n.__}((function(){return{current:e}}),[])}function hc(){for(var e;e=nc.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(pc),e.__H.__h.forEach(gc),e.__H.__h=[]}catch(t){e.__H.__h=[],vl.__e(t,e.__v)}}vl.__b=function(e){Xl=null,sc&&sc(e)},vl.__r=function(e){ic&&ic(e),Ql=0;var t=(Xl=e.__c).__H;t&&(Zl===Xl?(t.__h=[],Xl.__h=[],t.__.forEach((function(e){e.__N&&(e.__=e.__N),e.__V=rc,e.__N=e.i=void 0}))):(t.__h.forEach(pc),t.__h.forEach(gc),t.__h=[])),Zl=Xl},vl.diffed=function(e){oc&&oc(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(1!==nc.push(t)&&ec===vl.requestAnimationFrame||((ec=vl.requestAnimationFrame)||function(e){var t,n=function(){clearTimeout(r),fc&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,100);fc&&(t=requestAnimationFrame(n))})(hc)),t.__H.__.forEach((function(e){e.i&&(e.__H=e.i),e.__V!==rc&&(e.__=e.__V),e.i=void 0,e.__V=rc}))),Zl=Xl=null},vl.__c=function(e,t){t.some((function(e){try{e.__h.forEach(pc),e.__h=e.__h.filter((function(e){return!e.__||gc(e)}))}catch(n){t.some((function(e){e.__h&&(e.__h=[])})),t=[],vl.__e(n,e.__v)}})),lc&&lc(e,t)},vl.unmount=function(e){cc&&cc(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.forEach((function(e){try{pc(e)}catch(e){t=e}})),t&&vl.__e(t,n.__v))};var fc="function"==typeof requestAnimationFrame;function pc(e){var t=Xl,n=e.__c;"function"==typeof n&&(e.__c=void 0,n()),Xl=t}function gc(e){var t=Xl;e.__c=e.__(),Xl=t}function yc(e,t){return!e||e.length!==t.length||t.some((function(t,n){return t!==e[n]}))}function mc(e,t){return"function"==typeof t?t(e):t}function vc({title:e,type:t,alerts:n,fields:r,submitLabel:s,cancelLabel:i,onCancel:o,onSubmit:l}){const[c,a]=uc({}),u=dc(null);return function(e,t){var n=ac(Ql++,4);!vl.__s&&yc(n.__H,t)&&(n.__=e,n.i=t,Xl.__h.push(n))}((()=>{var e;return null===(e=u.current)||void 0===e?void 0:e.focus()}),[]),Il(Gl,{className:"dxc-login-dlg"},Il(Dl,null,Il("h3",{style:Yl.WindowHeader},e),n.map((e=>Il("p",{style:Yl.Alert[e.type]},function({message:e,messageCode:t,messageParams:n}){return e.replace(/\{\w+\}/gi,(e=>n[e.substring(1,e.length-1)]))}(e)))),Il("form",{onSubmit:e=>{e.preventDefault(),l(c)}},Object.entries(r).map((([e,{type:t,label:n,placeholder:r}],s)=>Il("label",{style:Yl.Label,key:s},n?`${n}: `:"",Il("input",{ref:0===s?u:void 0,type:t,name:e,autoComplete:"on",style:Yl.Input,autoFocus:!0,placeholder:r,value:c[e]||"",onInput:n=>{var r;const s=function(e,t){switch(e){case"email":return t.toLowerCase();case"otp":return t.toUpperCase();default:return t}}(t,null===(r=n.target)||void 0===r?void 0:r.value);let i=Object.assign(Object.assign({},c),{[e]:s});a(i),"otp"===t&&8===(null==s?void 0:s.trim().length)&&l(i)}})))))),Il("div",{style:Yl.ButtonsDiv},Il(Dl,null,Il("button",{type:"submit",style:Yl.Button,onClick:()=>l(c)},s),i&&Il("button",{style:Yl.Button,onClick:o},i))))}class bc extends Ol{constructor(e){super(e),this.observer=e=>this.setState({userInteraction:e}),this.state={userInteraction:void 0}}componentDidMount(){this.subscription=t.from(this.props.db.cloud.userInteraction).subscribe(this.observer)}componentWillUnmount(){this.subscription&&(this.subscription.unsubscribe(),delete this.subscription)}render(e,{userInteraction:t}){return t?Il(vc,Object.assign({},t)):null}}function wc(e){const t=new WeakMap;return n=>{let r=t.get(n);return r||(r=e(n),t.set(n,r)),r}}const _c=wc((e=>new t.BehaviorSubject(c)));function kc(e,n){let r=n,s=t.from(e).pipe(t.map((e=>r=e)),t.share({resetOnRefCountZero:()=>t.timer(1e3)}));const i=new t.Observable((e=>{let t=!1;const n=s.subscribe({next(n){t=!0,e.next(n)},error(t){e.error(t)},complete(){e.complete()}});return t||n.closed||e.next(r),n}));return i.getValue=()=>r,i}const Sc=wc((t=>kc(e.liveQuery((()=>t.roles.where({realmId:"rlm-public"}).toArray().then((e=>{const t={};for(const n of e.slice().sort(((e,t)=>(e.sortOrder||0)-(t.sortOrder||0))))t[n.name]=n;return t})))),{}))),Ec=wc((t=>kc(_c(t._novip).pipe(n.switchMap((n=>e.liveQuery((()=>t.transaction("r","realms","members",(()=>Promise.all([t.members.where({userId:n.userId}).toArray(),t.realms.toArray(),n.userId]).then((([e,t,n])=>({selfMembers:e,realms:t,userId:n})))))))))),{selfMembers:[],realms:[],get userId(){return t.cloud.currentUserId}})));function xc(...e){if(0===e.length)return{};const t=e.reduce(((e,t)=>{const n=Object.assign({},e);for(const[e,r]of Object.entries(t))if(e in n&&n[e]){if("*"===n[e])continue;if("*"===r)n[e]="*";else if(Array.isArray(r)&&Array.isArray(n[e])){const t=n,s=t[e];t[e]=[...new Set([...s,...r])]}else if("object"==typeof r&&r&&"object"==typeof n[e]){const t=n[e];for(const[e,n]of Object.entries(r))"*"!==t[e]&&("*"===n?t[e]="*":Array.isArray(t[e])&&Array.isArray(n)&&(t[e]=[...new Set([...t[e],...n])]))}}else n[e]=t[e];return n}));return t}const Cc=wc((e=>function(e,n){let r;const s=e.pipe(t.map((e=>r=n(e))));return s.getValue=()=>void 0!==r?r:r=n(e.getValue()),s}(kc(t.combineLatest([Ec(e._novip),Sc(e._novip)]).pipe(n.map((([{selfMembers:e,realms:t,userId:n},r])=>({selfMembers:e,realms:t,userId:n,globalRoles:r})))),{selfMembers:[],realms:[],userId:c.userId,globalRoles:{}}),(({selfMembers:e,realms:t,userId:n,globalRoles:r})=>{const s=t.map((t=>{const s=e.filter((e=>e.realmId===t.realmId)),i=s.map((e=>e.permissions)).filter((e=>e)),o=C(s.map((e=>e.roles)).filter((e=>e))).map((e=>r[e])).filter((e=>e)).map((e=>e.permissions));return Object.assign(Object.assign({},t),{permissions:t.owner===n?{manage:"*"}:xc(...i,...o)})})).reduce(((e,t)=>Object.assign(Object.assign({},e),{[t.realmId]:t})),{[n]:{realmId:n,owner:n,name:n,permissions:{manage:"*"}}});return s}))));class Ic{constructor(e,t,n){this.permissions=e||{},this.tableName=t,this.isOwner=n}add(...e){var t;return"*"===this.permissions.manage||(!!(null===(t=this.permissions.manage)||void 0===t?void 0:t.includes(this.tableName))||("*"===this.permissions.add||!!e.every((e=>{var t;return null===(t=this.permissions.add)||void 0===t?void 0:t.includes(e)}))))}update(...e){var t,n;if(this.isOwner||"*"===this.permissions.manage)return!0;if(null===(t=this.permissions.manage)||void 0===t?void 0:t.includes(this.tableName))return!0;if("*"===this.permissions.update)return e.every((e=>"owner"!==e));const r=null===(n=this.permissions.update)||void 0===n?void 0:n[this.tableName];return"*"===r?e.every((e=>"owner"!==e)):e.every((e=>null==r?void 0:r.some((t=>t===e||"*"===t&&"owner"!==e))))}delete(){var e;return!(!this.isOwner&&"*"!==this.permissions.manage)||!!(null===(e=this.permissions.manage)||void 0===e?void 0:e.includes(this.tableName))}}const Ac=wc((s=>{const i=_c(s._novip).pipe(n.switchMap((t=>e.liveQuery((()=>s.members.where({email:t.email||""}).toArray()))))),o=Cc(s._novip),l=Ec(s._novip);return kc(t.combineLatest([i,l,o]).pipe(n.map((([e,t,n])=>{const i=(e,t)=>Object.assign(Object.assign({},e),{[t.id]:Object.assign(Object.assign({},t),{realm:n[t.realmId]})}),o=e.reduce(i,{}),l=t.selfMembers.reduce(i,o);return Object.values(l).filter((e=>!e.accepted)).map((e=>Object.assign(Object.assign({},e),{accept(){return r(this,void 0,void 0,(function*(){yield s.members.update(e.id,{accepted:new Date})}))},reject(){return r(this,void 0,void 0,(function*(){yield s.members.update(e.id,{rejected:new Date})}))}})))}))),[])}));function Dc(n){return s=>{var i;const o=s.doc;if(!o)throw new Error("Internal error: DexieYProvider.createYHandler called without a doc. This is unexpected.");const{parentTable:l}=o.meta||{};if(!(null===(i=n.cloud.schema)||void 0===i?void 0:i[l].markedForSync))return;let c;Object.defineProperty(s,"awareness",{get:()=>c||(c=function(n,s,i){const{parentTable:o,parentId:l,parentProp:c,updatesTable:a}=s.meta,u=new tl(s),d=il(s);return u.on("update",(({added:e,updated:t,removed:r},l)=>{const a=e.concat(t).concat(r),d=n.cloud.currentUser.value;if("server"!==l&&d.isLoggedIn&&!Wo(n)){const e=rl(u,a);n.messageProducer.next({type:"aware",table:o,prop:c,k:s.meta.parentId,u:e}),i.destroyed&&n.messageProducer.next({type:"doc-close",table:o,prop:c,k:s.meta.parentId})}})),u.on("destroy",(()=>{nl(u,[s.clientID],"provider destroyed")})),(()=>{r(this,void 0,void 0,(function*(){if(i.destroyed)return;let s=!1,u=1;const h=t.combineLatest([n.cloud.webSocketStatus,d.pipe(t.startWith(null))]).subscribe((([e])=>{if(i.destroyed)return;s="connected"===e;const t=n.cloud.currentUser.value;"connected"===e&&t.isLoggedIn&&!Wo(n)&&(++u,f().catch((e=>{})))}));function f(){return r(this,void 0,void 0,(function*(){const t=u,d=n.table(a),h=n.$syncState,[f,p]=yield n.transaction("r",h,d,(()=>r(this,void 0,void 0,(function*(){const e=yield d.get(yt),t=yield h.get("syncState");return[(null==e?void 0:e.receivedUntil)||0,(null==t?void 0:t.yServerRevision)||(null==t?void 0:t.serverRevision)]}))));if(i.destroyed||u!==t||!s)return;const g={type:"doc-open",table:o,prop:c,k:l,serverRev:p},y=yield d.where("i").between(f,1/0,!1).filter((t=>0===e.cmp(t.k,l)&&0==(1&(t.f||0)))).toArray();if(!i.destroyed&&u===t&&s){if(y.length>0){const e=hs(y.map((e=>e.u))),t=us(e);g.sv=t}n.messageProducer.next(g)}}))}i.addCleanupHandler(h)}))})(),u}(n,o,s),Zo.set(o,c),c)})}}const Oc={nameSuffix:!0};function Uc(s){const i=s.name,o=_c(s),l=[];let a=!1,u=null;s.on("ready",(s=>r(this,void 0,void 0,(function*(){try{yield function(s){return r(this,void 0,void 0,(function*(){var i,c,p,m,v,b,w;d=!1;const k=vo(s);"undefined"!=typeof window&&"undefined"!=typeof document&&((null===(i=k.cloud.options)||void 0===i?void 0:i.customLoginGui)||l.push(function(e){let t=!1;const n=document.createElement("div");return document.body?(document.body.appendChild(n),ql(Il(bc,{db:e.vip}),n)):addEventListener("DOMContentLoaded",(()=>{t||(document.body.appendChild(n),ql(Il(bc,{db:e.vip}),n))})),{unsubscribe(){try{n.remove()}catch(e){}t=!0},get closed(){return t}}}(s))),k.cloud.isServiceWorkerDB||l.push(function(e){let r=e.cloud.webSocketStatus.value;const s=e.cloud.webSocketStatus.pipe(n.switchMap((e=>{const s=r;r=e;const i=t.of(e);switch(e){case"disconnected":return Jo.value?i.pipe(n.debounceTime(500)):i;case"connecting":return"not-started"===s||"error"===s?i:i.pipe(n.debounceTime(4e3));default:return i}})));return t.combineLatest([s,e.syncStateChangedEvent.pipe(n.startWith({phase:"initial"})),_c(e.dx._novip),zo]).pipe(n.map((([t,n,r,s])=>{var i;if((null===(i=r.license)||void 0===i?void 0:i.status)&&"ok"!==r.license.status)return{phase:"offline",status:"offline",license:r.license.status};let{phase:o,error:l,progress:c}=n,a=t;return"error"===o&&(a="error"),"not-started"===t&&("pushing"!==o&&"pulling"!==o||(a="connecting")),"error"!==e.cloud.syncState.value.phase||"pushing"!==n.phase&&"pulling"!==n.phase||(a="connecting"),s||(a="disconnected"),{phase:o,error:l,progress:c,status:dt?a:"offline",license:"ok"}})))}(k).subscribe(s.cloud.syncState)),l.push(k.syncCompleteEvent.subscribe(f)),k.tables.every((e=>e.core))||function(){throw new e.SchemaError("Version increment needed to allow dexie-cloud change tracking")}();const S="serviceWorker"in navigator?yield navigator.serviceWorker.getRegistrations():[],[E,x]=yield k.transaction("rw",k.$syncState,(()=>r(this,void 0,void 0,(function*(){var e,t;const{options:n,schema:r}=k.cloud,[s,i,o]=yield Promise.all([k.getOptions(),k.getSchema(),k.getPersistedSyncState()]);if(a){if(!s||JSON.stringify(s)!==JSON.stringify(n)){if(!n)throw new Error("Internal error");const e=Object.assign({},n);delete e.fetchTokens,delete e.awarenessProtocol,yield k.$syncState.put(e,"options")}}else k.cloud.options=s||null;if((null===(e=k.cloud.options)||void 0===e?void 0:e.tryUseServiceWorker)&&"serviceWorker"in navigator&&S.length>0&&!Do?k.cloud.usingServiceWorker=!0:((null===(t=k.cloud.options)||void 0===t?void 0:t.tryUseServiceWorker)&&k.cloud.isServiceWorkerDB,k.cloud.usingServiceWorker=!1),yl(r,k.cloud.options),yl(i,k.cloud.options),r){if(!i||JSON.stringify(i)!==JSON.stringify(r)){const e=i||{};for(const[t,n]of Object.entries(r)){const r=e[t];r?(r.markedForSync=n.markedForSync,n.deleted=r.deleted,r.generatedGlobalId=n.generatedGlobalId):e[t]=Object.assign({},n)}yield k.$syncState.put(e,"schema"),Object.assign(r,e)}}else k.cloud.schema=i||null;return[null==o?void 0:o.initiallySynced,null==o?void 0:o.realms]}))));if(E&&k.setInitiallySynced(!0),function(t){var n,r;for(const s of t.tables)if(null===(r=null===(n=t.cloud.schema)||void 0===n?void 0:n[s.name])||void 0===r?void 0:r.markedForSync){if(s.schema.primKey.auto)throw new e.SchemaError(`Table ${s.name} is both autoIncremented and synced. Use db.cloud.configure({unsyncedTables: [${JSON.stringify(s.name)}]}) to blacklist it from sync`);if(!s.schema.primKey.keyPath)throw new e.SchemaError(`Table ${s.name} cannot be both synced and outbound. Use db.cloud.configure({unsyncedTables: [${JSON.stringify(s.name)}]}) to blacklist it from sync`)}}(k),h(),!k.cloud.isServiceWorkerDB){l.push(e.liveQuery((()=>k.getCurrentUser())).subscribe(o)),l.push(e.liveQuery((()=>k.getPersistedSyncState())).subscribe(k.cloud.persistedSyncState)),yield t.firstValueFrom(t.combineLatest([o.pipe(n.skip(1),n.take(1)),k.cloud.persistedSyncState.pipe(n.skip(1),n.take(1))]));const r=Dc(k);eo.on.new.subscribe(r),k.dx.once("close",(()=>{eo.on.new.unsubscribe(r)}))}let C=!1;const I=yield k.getCurrentUser(),A=null===(c=k.cloud.options)||void 0===c?void 0:c.requireAuth;A&&(k.cloud.isServiceWorkerDB?yield t.firstValueFrom(o.pipe(n.filter((e=>!!e.isLoggedIn)),n.take(1))):"object"==typeof A?(!I.isLoggedIn||A.userId&&I.userId!==A.userId||A.email&&I.email!==A.email)&&(C=yield xo(k,A)):I.isLoggedIn||(C=yield xo(k))),!I.isLoggedIn||x&&x.includes(I.userId)||(C=!0),u&&u.stop(),u=null,h();const D=(null===(p=k.cloud.options)||void 0===p?void 0:p.databaseUrl)&&(!E||C);D&&(yield function(e,t,n){return r(this,void 0,void 0,(function*(){yield Ho(e,oo,(()=>lo(e,t,n,{isInitialSync:!0})))}))}(k,k.cloud.options,k.cloud.schema),k.setInitiallySynced(!0)),h(),k.cloud.usingServiceWorker&&(null===(m=k.cloud.options)||void 0===m?void 0:m.databaseUrl)?(D||g(k,"push").catch((()=>{})),function(e){return r(this,void 0,void 0,(function*(){var t;try{const{periodicSync:n}=yield navigator.serviceWorker.ready;if(n)try{yield n.register(`dexie-cloud:${e.name}`,null===(t=e.cloud.options)||void 0===t?void 0:t.periodicSync)}catch(e){}}catch(e){}}))}(k).catch((()=>{}))):(null===(v=k.cloud.options)||void 0===v?void 0:v.databaseUrl)&&k.cloud.schema&&!k.cloud.isServiceWorkerDB&&(u=gl(k,k.cloud.options,k.cloud.schema),u.start(),D||y(k,"push")),h(),k.cloud.isServiceWorkerDB||l.push(t.fromEvent(self,"online").subscribe((()=>{k.syncStateChangedEvent.next({phase:"not-in-sync"}),Wo(k)||y(k,"push")})),t.fromEvent(self,"offline").subscribe((()=>{k.syncStateChangedEvent.next({phase:"offline"})}))),!(null===(b=k.cloud.options)||void 0===b?void 0:b.databaseUrl)||(null===(w=k.cloud.options)||void 0===w?void 0:w.disableWebSocket)||Oo||l.push(function(e){var s;if(!(null===(s=e.cloud.options)||void 0===s?void 0:s.databaseUrl))throw new Error("No database URL to connect WebSocket to");const i=e.messageConsumer.readyToServe.pipe(n.filter((e=>e)),n.switchMap((()=>e.getPersistedSyncState())),n.filter((e=>e&&e.serverRevision)),n.switchMap((e=>r(this,void 0,void 0,(function*(){return{type:"ready",rev:e.serverRevision,realmSetHash:yield _(e)}}))))),o=t.merge(i,e.messageProducer);return function s(){return e.cloud.persistedSyncState.pipe(n.filter((e=>null==e?void 0:e.serverRevision)),n.take(1),n.switchMap((t=>e.cloud.currentUser.pipe(n.map((e=>[e,t]))))),n.switchMap((([e,t])=>zo.pipe(n.map((n=>[n?e:null,t]))))),n.switchMap((([r,s])=>(null==r?void 0:r.isLoggedIn)&&!(null==s?void 0:s.realms.includes(r.userId))?e.cloud.persistedSyncState.pipe(n.filter((e=>(null==e?void 0:e.realms.includes(r.userId))||!1)),n.take(1),n.map((e=>[r,e]))):new t.BehaviorSubject([r,s]))),n.switchMap((e=>r(this,[e],void 0,(function*([e,t]){return[e,yield _(t)]})))),n.distinctUntilChanged((([e,t],[n,r])=>e===n&&t===r)),n.switchMap((([n,r])=>{var i;return(null===(i=e.cloud.persistedSyncState)||void 0===i?void 0:i.value)?n?new ol(e,e.cloud.persistedSyncState.value.serverRevision,e.cloud.persistedSyncState.value.yServerRevision,r,e.cloud.persistedSyncState.value.clientIdentity,o,e.cloud.webSocketStatus,n):t.from([]):s()})),n.catchError((i=>"TokenExpiredError"===(null==i?void 0:i.name)?t.of(!0).pipe(n.switchMap((()=>r(this,void 0,void 0,(function*(){const t=yield e.getCurrentUser(),n=yield Ie(e.cloud.options.databaseUrl,t);yield e.table("$logins").update(t.userId,{accessToken:n.accessToken,accessTokenExpiration:n.accessTokenExpiration,claims:n.claims,license:n.license,data:n.data})})))),n.switchMap((()=>s()))):t.throwError((()=>i)))),n.catchError((r=>(e.cloud.webSocketStatus.next("error"),r instanceof al?t.throwError((()=>r)):t.from(ul()).pipe(n.switchMap((()=>s())))))))}().subscribe({next:t=>{t&&e.messageConsumer.enqueue(t)},error:e=>{},complete:()=>{}})}(k))}))}(s)}catch(e){}}))),!0);let d=!1;function h(){if(d)throw new e.DatabaseClosedError}s.once("close",(()=>{l.forEach((e=>e.unsubscribe())),l.splice(0,l.length),d=!0,u&&u.stop(),u=null,o.next(c)}));const f=new t.Subject;var p;s.cloud={version:"4.2.0-alpha.6",options:Object.assign({},Oc),schema:null,get currentUserId(){return o.value.userId||c.userId},currentUser:o,syncState:new t.BehaviorSubject({phase:"initial",status:"not-started"}),events:{syncComplete:f},persistedSyncState:new t.BehaviorSubject(void 0),userInteraction:new t.BehaviorSubject(void 0),webSocketStatus:new t.BehaviorSubject("not-started"),login(e){return r(this,void 0,void 0,(function*(){const t=vo(s);yield t.cloud.sync(),yield xo(t,e)}))},invites:Ac(s),roles:Sc(s),configure(e){e=s.cloud.options=Object.assign(Object.assign({},s.cloud.options),e),a=!0,e.databaseUrl&&e.nameSuffix&&(s.name=`${i}-${function(e){const t=new URL(e);return"/"===t.pathname?t.hostname.split(".")[0]:t.pathname.split("/")[1]}(e.databaseUrl)}`,vo(s).reconfigure()),yl(s.cloud.schema,s.cloud.options)},logout(){return r(this,arguments,void 0,(function*({force:e}={}){e?yield So(vo(s),{deleteUnsyncedData:!0}):yield ko(vo(s))}))},sync(){return r(this,arguments,void 0,(function*({wait:i,purpose:o}={wait:!0,purpose:"push"}){var l;void 0===i&&(i=!0);const c=vo(s);if("ok"!==((null===(l=c.cloud.currentUser.value.license)||void 0===l?void 0:l.status)||"ok")&&(yield xe(c)),"pull"===o){const e=c.cloud.persistedSyncState.value;if(y(c,o),i){const r=yield t.firstValueFrom(c.cloud.persistedSyncState.pipe(n.filter((t=>null!=(null==t?void 0:t.timestamp)&&(!e||t.timestamp>e.timestamp)))));if(null==r?void 0:r.error)throw new Error("Sync error: "+r.error)}}else if(yield dl(c)){const s=c.cloud.persistedSyncState.value;y(c,o),i&&(yield t.firstValueFrom(t.from(e.liveQuery((()=>r(this,void 0,void 0,(function*(){const e=yield dl(c),t=yield c.getPersistedSyncState();if((null==t?void 0:t.timestamp)!==(null==s?void 0:s.timestamp)&&(null==t?void 0:t.error))throw new Error("Sync error: "+t.error);return e}))))).pipe(n.filter((e=>!e)))))}}))},permissions:(e,t)=>function(e,t,r){if(!t)throw new TypeError("Cannot check permissions of undefined or null. A Dexie Cloud object with realmId and owner expected.");const{owner:s,realmId:i}=t;if(!r){if("function"!=typeof t.table)throw new TypeError("Missing 'table' argument to permissions and table could not be extracted from entity");r=t.table()}const o=Cc(e),l=t=>{const n=t[i||e.cloud.currentUserId];return n?new Ic(n.permissions,r,void 0===i||i===e.cloud.currentUserId||s===e.cloud.currentUserId):new Ic({},r,!s||s===e.cloud.currentUserId)},c=o.pipe(n.map(l));return c.getValue=()=>l(o.getValue()),c}(s._novip,e,t)},s.Version.prototype._parseStoresSpec=e.override(s.Version.prototype._parseStoresSpec,(e=>Ko(e,s))),s.Table.prototype.newId=function({colocateWith:e}={}){const t=e&&e.substr(e.length-3);return Ro(s.cloud.schema[this.name].idPrefix||"",t)},s.Table.prototype.idPrefix=function(){var e,t;return(null===(t=null===(e=this.db.cloud.schema)||void 0===e?void 0:e[this.name])||void 0===t?void 0:t.idPrefix)||""},s.use(Vo({currentUserObservable:s.cloud.currentUser,db:vo(s)})),s.use((p=vo(s),{stack:"dbcore",name:"implicitPropSetterMiddleware",level:1,create:e=>Object.assign(Object.assign({},e),{table:t=>{const n=e.table(t);return Object.assign(Object.assign({},n),{mutate:e=>{var r,s,i,o,l,a;const u=e.trans;if(u.disableChangeTracking)return n.mutate(e);const d=null!==(s=null===(r=u.currentUser)||void 0===r?void 0:r.userId)&&void 0!==s?s:c.userId;if((null===(o=null===(i=p.cloud.schema)||void 0===i?void 0:i[t])||void 0===o?void 0:o.markedForSync)&&("add"===e.type||"put"===e.type)){if("members"===t)for(const t of e.values)"string"==typeof t.email&&(t.email=t.email.trim().toLowerCase());for(const t of e.values){t.owner||(t.owner=d),t.realmId||(t.realmId=d);const r=null===(a=(l=n.schema.primaryKey).extractKey)||void 0===a?void 0:a.call(l,t);"string"==typeof r&&"#"===r[0]&&"put"===e.type&&(delete e.criteria,delete e.changeSpec,delete e.updates,t.$ts=Date.now())}}return n.mutate(e)}})}})})),s.use(Mo(vo(s)))}Uc.version="4.2.0-alpha.6",e.Cloud=Uc;const Tc=new Map;function Lc(e){return e.startsWith("dexie-cloud:")&&e.split(":")[1]}const jc=new Map;function Pc(t,n){let s=jc.get(t+"/"+n);return s||(s=function t(n,s){return r(this,void 0,void 0,(function*(){var r;let i=Tc.get(n);if(!i){const r=new e(n,{addons:[Uc]});if(i=vo(r),i.cloud.isServiceWorkerDB=!0,r.on("versionchange",o),yield i.dx.open(),Tc.get(n))return i.close(),yield t(n,s);Tc.set(n,i)}if((null===(r=i.cloud.options)||void 0===r?void 0:r.databaseUrl)&&i.cloud.schema)try{yield fl(i,i.cloud.options,i.cloud.schema,{retryImmediatelyOnFetchError:!0,purpose:s})}catch(t){if(o(),t.name!==e.errnames.NoSuchDatabase)throw t}function o(){return i.dx.on.versionchange.unsubscribe(o),Tc.get(i.name)===i&&Tc.delete(i.name),i.dx.close(),!1}}))}(t,n).then((()=>{jc.delete(t+"/"+n)})).catch((e=>(jc.delete(t+"/"+n),Promise.reject(e)))),jc.set(t+"/"+n,s)),s}Do||(self.addEventListener("sync",(e=>{const t=Lc(e.tag);t&&e.waitUntil(Pc(t,"push"))})),self.addEventListener("periodicsync",(e=>{const t=Lc(e.tag);t&&e.waitUntil(Pc(t,"pull"))})),self.addEventListener("message",(e=>{if("dexie-cloud-sync"===e.data.type){const{dbName:t}=e.data,n=(s=1)=>Pc(t,e.data.purpose||"pull").catch((e=>r(void 0,void 0,void 0,(function*(){if(3===s)throw e;var t;yield(t=6e4,new Promise((e=>setTimeout(e,t)))),n(s+1)}))));"waitUntil"in e?e.waitUntil(n().catch((e=>{}))):n().catch((e=>{}))}})))}));
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("dexie"),require("rxjs"),require("rxjs/operators")):"function"==typeof define&&define.amd?define(["dexie","rxjs","rxjs/operators"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Dexie,e.rxjs,e.rxjs.operators)}(this,(function(e,t,n){"use strict";function r(e,t,n,r){return new(n||(n=Promise))((function(s,i){function o(e){try{c(r.next(e))}catch(e){i(e)}}function l(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,l)}c((r=r.apply(e,t||[])).next())}))}function s(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function i(e){return this instanceof i?(this.v=e,this):new i(e)}function o(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,s=n.apply(e,t||[]),o=[];return r={},l("next"),l("throw"),l("return"),r[Symbol.asyncIterator]=function(){return this},r;function l(e){s[e]&&(r[e]=function(t){return new Promise((function(n,r){o.push([e,t,n,r])>1||c(e,t)}))})}function c(e,t){try{!function(e){e.value instanceof i?Promise.resolve(e.value.v).then(a,u):d(o[0][2],e)}(s[e](t))}catch(e){d(o[0][3],e)}}function a(e){c("next",e)}function u(e){c("throw",e)}function d(e,t){e(t),o.shift(),o.length&&c(o[0][0],o[0][1])}}function l(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=s(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise((function(r,s){(function(e,t,n,r){Promise.resolve(r).then((function(t){e({value:t,done:n})}),t)})(r,s,(t=e[n](t)).done,t.value)}))}}}const c={userId:"unauthorized",name:"Unauthorized",claims:{sub:"unauthorized"},lastLogin:new Date(0)};try{Object.freeze(c),Object.freeze(c.claims)}catch(e){}const a={},u="undefined"!=typeof self&&self.document&&"undefined"!=typeof navigator&&navigator.serviceWorker;u&&u.ready.then((e=>a.registration=e)),"undefined"!=typeof self&&"clients"in self&&!self.document&&addEventListener("message",(e=>{var t,n;(null===(n=null===(t=e.data)||void 0===t?void 0:t.type)||void 0===n?void 0:n.startsWith("sw-broadcast-"))&&[...self.clients.matchAll({includeUncontrolled:!0})].forEach((t=>{var n;return t.id!==(null===(n=e.source)||void 0===n?void 0:n.id)&&t.postMessage(e.data)}))}));class d{constructor(e){this.name=e}subscribe(e){if(!u)return()=>{};const t=t=>{var n;(null===(n=t.data)||void 0===n?void 0:n.type)===`sw-broadcast-${this.name}`&&e(t.data.message)};return u.addEventListener("message",t),()=>u.removeEventListener("message",t)}postMessage(e){var t;"object"==typeof self.clients?[...self.clients.matchAll({includeUncontrolled:!0})].forEach((t=>t.postMessage({type:`sw-broadcast-${this.name}`,message:e}))):a.registration&&(null===(t=a.registration.active)||void 0===t||t.postMessage({type:`sw-broadcast-${this.name}`,message:e}))}}const h=globalThis["lbc-events"]||(globalThis["lbc-events"]=new Map);class f extends t.Observable{constructor(e){const t="undefined"==typeof BroadcastChannel?new d(e):new BroadcastChannel(e);super((n=>{function r(e){n.next(e.detail)}function s(e){n.next(e.data)}let i;!function(e,t){h.has(e)?h.get(e).push(t):h.set(e,[t])}(`lbc-${e}`,r);try{t instanceof d?i=t.subscribe((e=>n.next(e))):t.addEventListener("message",s)}catch(e){}return()=>{!function(e,t){const n=h.get(e);if(n){const e=n.indexOf(t);-1!==e&&n.splice(e,1)}}(`lbc-${e}`,r),t instanceof d?i():t.removeEventListener("message",s)}})),this.name=e,this.bc=t}next(e){this.bc.postMessage(e);!function(e){const t=h.get(e.type);t&&t.forEach((t=>{try{t(e)}catch(e){}}))}(new CustomEvent(`lbc-${this.name}`,{detail:e}))}}let p=!1;function g(e,t){return r(this,void 0,void 0,(function*(){try{const n=yield navigator.serviceWorker.ready;if("push"===t&&n.sync&&(yield n.sync.register(`dexie-cloud:${e.name}`)),!n.active)throw new Error("Failed to trigger sync - there's no active service worker");return void n.active.postMessage({type:"dexie-cloud-sync",dbName:e.name,purpose:t})}catch(e){p||(p=!0)}}))}function y(e,t){e.cloud.usingServiceWorker?g(e,t):e.localSyncEvent.next({purpose:t})}const m="fromBase64"in Uint8Array,v="toBase64"in Uint8Array.prototype,b="undefined"!=typeof Buffer?e=>Buffer.from(e,"base64"):m?e=>Uint8Array.fromBase64(e):e=>{const t=atob(e),n=t.length,r=new Uint8Array(n);for(var s=0;s<n;s++)r[s]=t.charCodeAt(s);return r},w="undefined"!=typeof Buffer?e=>ArrayBuffer.isView(e)?Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("base64"):Buffer.from(e).toString("base64"):v?e=>(ArrayBuffer.isView(e)?e:new Uint8Array(e)).toBase64():e=>{const t=ArrayBuffer.isView(e)?e:new Uint8Array(e),n=[];for(let e=0,r=t.length;e<r;e+=4096){const r=t.subarray(e,e+4096);n.push(String.fromCharCode.apply(null,r))}return btoa(n.join(""))};function _(e){return r(this,arguments,void 0,(function*({realms:e,inviteRealms:t}){const n=JSON.stringify([...e.map((e=>({realmId:e,accepted:!0}))),...t.map((e=>({realmId:e,accepted:!1})))].sort(((e,t)=>e.realmId<t.realmId?-1:e.realmId>t.realmId?1:0))),r=(new TextEncoder).encode(n),s=yield crypto.subtle.digest("SHA-1",r);return w(s)}))}function k(e){return Object.entries(e.cloud.schema||{}).filter((([,{markedForSync:e}])=>e)).map((([t])=>e.tables.filter((({name:e})=>e===t))[0])).filter((e=>e))}function S(e){return`$${e}_mutations`}function E(e){var t;const n=null===(t=/^\$(.*)_mutations$/.exec(e))||void 0===t?void 0:t[1];if(!n)throw new Error(`Given mutationTable ${e} is not correct`);return n}const x=[].concat;function C(e){return x.apply([],e)}function I(e,t){return r(this,arguments,void 0,(function*(e,t,{since:n={},limit:s=1/0}={}){const i=C(yield Promise.all(e.map((e=>r(this,void 0,void 0,(function*(){const t=E(e.name),r=n[t];let i=r?e.where("rev").above(r):e;s<1/0&&(i=i.limit(s));return(yield i.toArray()).map((e=>({table:t,mut:e})))})))))).sort(((e,t)=>e.mut.txid===t.mut.txid?e.mut.opNo-t.mut.opNo:e.mut.ts-t.mut.ts)),o=[];let l=null,c=null;for(const{table:e,mut:t}of i)l&&l.table===e&&c===t.txid?l.muts.push(t):(l={table:e,muts:[t]},c=t.txid,o.push(l));return o}))}function A(e){const t=new Uint8Array(e);if("undefined"!=typeof crypto)crypto.getRandomValues(t);else for(let n=0;n<e;n++)t[n]=Math.floor(256*Math.random());if("undefined"!=typeof Buffer&&Buffer.from)return Buffer.from(t).toString("base64");if("undefined"!=typeof btoa)return btoa(String.fromCharCode.apply(null,t));throw new Error("No btoa or Buffer available")}const D={}.hasOwnProperty;function O(e,t,n){if(e&&void 0!==t&&(!("isFrozen"in Object)||!Object.isFrozen(e)))if("string"!=typeof t&&"length"in t){!function(e){if(!e)throw new Error("Assertion Failed")}("string"!=typeof n&&"length"in n);for(var r=0,s=t.length;r<s;++r)O(e,t[r],n[r])}else{var i=t.indexOf(".");if(-1!==i){var o=t.substr(0,i),l=t.substr(i+1);if(""===l)void 0===n?Array.isArray(e)?isNaN(parseInt(o))||e.splice(parseInt(o),1):delete e[o]:e[o]=n;else{var c=e[o];c&&function(e,t){return D.call(e,t)}(e,o)||(c=e[o]={}),O(c,l,n)}}else void 0===n?Array.isArray(e)&&!isNaN(parseInt(t))?e.splice(t,1):delete e[t]:e[t]=n}}const U="undefined"!=typeof self&&"undefined"!=typeof crypto?(e,t=crypto.getRandomValues.bind(crypto))=>{const n=new Uint8Array(e);return t(n),self.btoa(String.fromCharCode.apply(null,n))}:"undefined"!=typeof Buffer?(e,t=T)=>{const n=Buffer.alloc(e);return t(n),n.toString("base64")}:()=>{throw new Error("No implementation of randomString was found")};function T(e){for(let t=0;t<e.length;++t)e[t]=Math.floor(256*Math.random())}function L(e){return"string"==typeof e||!!(Array.isArray(e)&&e.some((e=>L(e)))&&e.every(j))}function j(e){return"string"==typeof e||"number"==typeof e||Array.isArray(e)&&e.every(j)}function P(e,t,n){const r=e[t]||(e[t]={}),s=n.keys.map((e=>"string"==typeof e?e:JSON.stringify(e)));switch(n.type){case"insert":case"upsert":s.forEach(((e,t)=>{r[e]={type:"ups",val:n.values[t]}}));break;case"update":case"modify":s.forEach(((e,t)=>{const s="update"===n.type?n.changeSpecs[t]:n.changeSpec,i=r[e];if(i)switch(i.type){case"ups":for(const[e,t]of Object.entries(s))O(i.val,e,t);break;case"del":break;case"upd":Object.assign(i.mod,s)}else r[e]={type:"upd",mod:s}}));break;case"delete":s.forEach((e=>{r[e]={type:"del"}}))}return e}function R(e,t){for(const{table:n,muts:r}of t)for(const t of r)P(e,n,t)}const M=Math.floor,N=Math.abs,$=(e,t)=>e>t?e:t,B=128,F=127,W=Number.MAX_SAFE_INTEGER,V=Number.isInteger||(e=>"number"==typeof e&&isFinite(e)&&M(e)===e),K=Array.isArray,H="undefined"!=typeof TextEncoder?new TextEncoder:null,J=H?e=>H.encode(e):e=>{const t=unescape(encodeURIComponent(e)),n=t.length,r=new Uint8Array(n);for(let e=0;e<n;e++)r[e]=t.codePointAt(e);return r};let z="undefined"==typeof TextDecoder?null:new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});z&&1===z.decode(new Uint8Array).length&&(z=null);let q=class{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}};const Y=(e,t)=>{const n=e.cbuf.length;e.cpos===n&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(2*n),e.cpos=0),e.cbuf[e.cpos++]=t},G=(e,t)=>{for(;t>F;)Y(e,B|F&t),t=M(t/128);Y(e,F&t)},Q=new Uint8Array(3e4),X=Q.length/3,Z=H&&H.encodeInto?(e,t)=>{if(t.length<X){const n=H.encodeInto(t,Q).written||0;G(e,n);for(let t=0;t<n;t++)Y(e,Q[t])}else ee(e,J(t))}:(e,t)=>{const n=unescape(encodeURIComponent(t)),r=n.length;G(e,r);for(let t=0;t<r;t++)Y(e,n.codePointAt(t))},ee=(e,t)=>{G(e,t.byteLength),((e,t)=>{const n=e.cbuf.length,r=e.cpos,s=((e,t)=>e<t?e:t)(n-r,t.length),i=t.length-s;e.cbuf.set(t.subarray(0,s),r),e.cpos+=s,i>0&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array($(2*n,i)),e.cbuf.set(t.subarray(s)),e.cpos=i)})(e,t)},te=(e,t)=>{((e,t)=>{const n=e.cbuf.length;n-e.cpos<t&&(e.bufs.push(new Uint8Array(e.cbuf.buffer,0,e.cpos)),e.cbuf=new Uint8Array(2*$(n,t)),e.cpos=0)})(e,t);const n=new DataView(e.cbuf.buffer,e.cpos,t);return e.cpos+=t,n},ne=(e,t)=>te(e,8).setBigUint64(0,t,!1),re=new DataView(new ArrayBuffer(4)),se=(e,t)=>{switch(typeof t){case"string":Y(e,119),Z(e,t);break;case"number":V(t)&&N(t)<=2147483647?(Y(e,125),((e,t)=>{const n=(e=>0!==e?e<0:1/e<0)(t);for(n&&(t=-t),Y(e,(t>63?B:0)|(n?64:0)|63&t),t=M(t/64);t>0;)Y(e,(t>F?B:0)|F&t),t=M(t/128)})(e,t)):(n=t,re.setFloat32(0,n),re.getFloat32(0)===n?(Y(e,124),((e,t)=>{te(e,4).setFloat32(0,t,!1)})(e,t)):(Y(e,123),((e,t)=>{te(e,8).setFloat64(0,t,!1)})(e,t)));break;case"bigint":Y(e,122),((e,t)=>{te(e,8).setBigInt64(0,t,!1)})(e,t);break;case"object":if(null===t)Y(e,126);else if(K(t)){Y(e,117),G(e,t.length);for(let n=0;n<t.length;n++)se(e,t[n])}else if(t instanceof Uint8Array)Y(e,116),ee(e,t);else{Y(e,118);const n=Object.keys(t);G(e,n.length);for(let r=0;r<n.length;r++){const s=n[r];Z(e,s),se(e,t[s])}}break;case"boolean":Y(e,t?120:121);break;default:Y(e,127)}var n};function ie(e){const t=new q;switch(Z(t,e.type),"table"in e&&Z(t,e.table),"prop"in e&&Z(t,e.prop),e.type){case"u-ack":case"u-reject":ne(t,BigInt(e.i));break;case"outdated-server-rev":break;case"y-complete-sync-done":Z(t,e.yServerRev);break;default:switch(se(t,e.k),e.type){case"aware":ee(t,e.u);break;case"doc-open":se(t,e.serverRev),se(t,e.sv);break;case"doc-close":break;case"sv":ee(t,e.sv);break;case"u-c":ee(t,e.u),ne(t,BigInt(e.i));break;case"u-s":ee(t,e.u),Z(t,e.r||"")}}return(e=>{const t=new Uint8Array((e=>{let t=e.cpos;for(let n=0;n<e.bufs.length;n++)t+=e.bufs[n].length;return t})(e));let n=0;for(let r=0;r<e.bufs.length;r++){const s=e.bufs[r];t.set(s,n),n+=s.length}return t.set(new Uint8Array(e.cbuf.buffer,0,e.cpos),n),t})(t)}const oe=e=>new Error(e),le=oe("Unexpected end of array"),ce=oe("Integer out of Range");let ae=class{constructor(e){this.arr=e,this.pos=0}};const ue=e=>e.pos!==e.arr.length,de=e=>((e,t)=>{const n=new Uint8Array(e.arr.buffer,e.pos+e.arr.byteOffset,t);return e.pos+=t,n})(e,fe(e)),he=e=>e.arr[e.pos++],fe=e=>{let t=0,n=1;const r=e.arr.length;for(;e.pos<r;){const r=e.arr[e.pos++];if(t+=(r&F)*n,n*=128,r<B)return t;if(t>W)throw ce}throw le},pe=z?e=>z.decode(de(e)):e=>{let t=fe(e);if(0===t)return"";{let n=String.fromCodePoint(he(e));if(--t<100)for(;t--;)n+=String.fromCodePoint(he(e));else for(;t>0;){const r=t<1e4?t:1e4,s=e.arr.subarray(e.pos,e.pos+r);e.pos+=r,n+=String.fromCodePoint.apply(null,s),t-=r}return decodeURIComponent(escape(n))}},ge=(e,t)=>{const n=new DataView(e.arr.buffer,e.arr.byteOffset+e.pos,t);return e.pos+=t,n},ye=e=>ge(e,8).getBigUint64(0,!1),me=[e=>{},e=>null,e=>{let t=e.arr[e.pos++],n=63&t,r=64;const s=(64&t)>0?-1:1;if(0==(t&B))return s*n;const i=e.arr.length;for(;e.pos<i;){if(t=e.arr[e.pos++],n+=(t&F)*r,r*=128,t<B)return s*n;if(n>W)throw ce}throw le},e=>ge(e,4).getFloat32(0,!1),e=>ge(e,8).getFloat64(0,!1),e=>ge(e,8).getBigInt64(0,!1),e=>!1,e=>!0,pe,e=>{const t=fe(e),n={};for(let r=0;r<t;r++){n[pe(e)]=ve(e)}return n},e=>{const t=fe(e),n=[];for(let r=0;r<t;r++)n.push(ve(e));return n},de],ve=e=>me[127-he(e)](e);function be(e){return o(this,arguments,(function*(){var t,n,r,s;let o=0,c=new Uint8Array(4),a=0,u=[],d=0;try{for(var h,f=!0,p=l(e);!(t=(h=yield i(p.next())).done);f=!0){s=h.value,f=!1;const e=s,t=new DataView(e.buffer,e.byteOffset,e.byteLength);let n=0;for(;n<e.byteLength;)switch(o){case 0:if(n+4>e.byteLength){for(const t of e.slice(n)){if(4===a)break;c[a++]=t,++n}if(a<4)break}else if(a>0&&a<4)for(const t of e.slice(n,n+4-a))c[a++]=t,++n;case 1:d=4===a?new DataView(c.buffer,0,4).getUint32(0,!1):t.getUint32(n,!1),a?a=0:n+=4;case 2:if(n>=e.byteLength){o=2;break}if(n+d>e.byteLength)u.push(e.slice(n)),d-=e.byteLength-n,o=2,n=e.byteLength;else{if(u.length>0){const t=new Uint8Array(u.reduce(((e,t)=>e+t.byteLength),d));let r=0;for(const e of u)t.set(e,r),r+=e.byteLength;t.set(e.slice(n,n+d),r),u=[],yield yield i(t)}else yield yield i(e.slice(n,n+d));n+=d,o=0}}}}catch(e){n={error:e}}finally{try{f||t||!(r=p.return)||(yield i(r.call(p)))}finally{if(n)throw n.error}}}))}class we extends Error{constructor({title:e,message:t,messageCode:n,messageParams:r}){super(t),this.name="TokenErrorResponseError",this.title=e,this.messageCode=n,this.messageParams=r}}function _e(t,n){return new Promise(((r,s)=>{const i=Object.assign(Object.assign({submitLabel:"Submit",cancelLabel:"Cancel"},n),{onSubmit:e=>{t.next(void 0),r(e)},onCancel:()=>{t.next(void 0),s(new e.AbortError("User cancelled"))}});t.next(i)}))}function ke(e,t,...n){return _e(e,{type:"message-alert",title:t,alerts:n,fields:{},submitLabel:"OK",cancelLabel:null})}function Se(e,t,n){return r(this,void 0,void 0,(function*(){let r=n||"";for(;!r||!/^[\w-+.]+@([\w-]+\.)+[\w-]{2,10}(\sas\s[\w-+.]+@([\w-]+\.)+[\w-]{2,10})?$/.test(r);)r=(yield _e(e,{type:"email",title:t,alerts:r?[{type:"error",messageCode:"INVALID_EMAIL",message:"Please enter a valid email address",messageParams:{}}]:[],fields:{email:{type:"email",placeholder:"you@somedomain.com"}}})).email;return r}))}function Ee(e,t,n){return r(this,void 0,void 0,(function*(){const r=[{type:"info",messageCode:"OTP_SENT",message:"A One-Time password has been sent to {email}",messageParams:{email:t}}];n&&r.push(n);const{otp:s}=yield _e(e,{type:"otp",title:"Enter OTP",alerts:r,fields:{otp:{type:"otp",label:"OTP",placeholder:"Paste OTP here"}}});return s}))}function xe(e){return r(this,void 0,void 0,(function*(){var t,n,r;const s=yield e.getCurrentUser(),{accessToken:i,accessTokenExpiration:o,refreshToken:l,refreshTokenExpiration:c,claims:a}=s;if(!i)return null;if((null!==(t=null==o?void 0:o.getTime())&&void 0!==t?t:1/0)>Date.now()&&"ok"===((null===(n=s.license)||void 0===n?void 0:n.status)||"ok"))return s;if(!l)throw new Error("Refresh token missing");if((null!==(r=null==c?void 0:c.getTime())&&void 0!==r?r:1/0)<=Date.now())throw new Error("Refresh token has expired");const u=yield Ie(e.cloud.options.databaseUrl,s);return yield e.table("$logins").update(a.sub,{accessToken:u.accessToken,accessTokenExpiration:u.accessTokenExpiration,claims:u.claims,license:u.license,data:u.data}),u}))}function Ce(t,n,s,i,o){return r(this,void 0,void 0,(function*(){return n.accessToken&&n.accessTokenExpiration.getTime()>Date.now()?n:n.refreshToken&&(!n.refreshTokenExpiration||n.refreshTokenExpiration.getTime()>Date.now())?yield Ie(t,n):yield function(t,n,s,i){return r(this,void 0,void 0,(function*(){if(!crypto.subtle)throw"undefined"!=typeof location&&"http:"===location.protocol?new Error("Dexie Cloud Addon needs to use WebCrypto, but your browser has disabled it due to being served from an insecure location. Please serve it from https or http://localhost:<port> (See https://stackoverflow.com/questions/46670556/how-to-enable-crypto-subtle-for-unsecure-origins-in-chrome/46671627#46671627)"):new Error("This browser does not support WebCrypto.");const{privateKey:r,publicKey:o}=yield crypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:2048,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!1,["sign","verify"]);if(!r||!o)throw new Error("Could not generate RSA keypair");t.nonExportablePrivateKey=r;const l=function(e){const t=w(e);return function(e){let t="-----BEGIN PUBLIC KEY-----\n";for(;e.length>0;)t+=e.substring(0,64)+"\n",e=e.substring(64);return t+="-----END PUBLIC KEY-----",t}(t)}(yield crypto.subtle.exportKey("spki",o));t.publicKey=o;try{const e=yield n({public_key:l,hints:i});if("error"===e.type)throw new we(e);if("tokens"!==e.type)throw new Error(`Unexpected response type from token endpoint: ${e.type}`);return t.accessToken=e.accessToken,t.accessTokenExpiration=new Date(e.accessTokenExpiration),t.refreshToken=e.refreshToken,e.refreshTokenExpiration&&(t.refreshTokenExpiration=new Date(e.refreshTokenExpiration)),t.userId=e.claims.sub,t.email=e.claims.email,t.name=e.claims.name,t.claims=e.claims,t.license={type:e.userType,status:e.claims.license||"ok"},t.data=e.data,null!=e.evalDaysLeft&&(t.license.evalDaysLeft=e.evalDaysLeft),null!=e.userValidUntil&&(t.license.validUntil=new Date(e.userValidUntil)),e.alerts&&e.alerts.length>0&&(yield _e(s,{type:"message-alert",title:"Authentication Alert",fields:{},alerts:e.alerts})),t}catch(t){if(t instanceof we)throw yield ke(s,t.title,{type:"error",messageCode:t.messageCode,message:t.message,messageParams:{}}),t;let n="We're having a problem authenticating right now.";if(t instanceof TypeError){n=void 0!==typeof navigator&&!navigator.onLine?"You seem to be offline. Please connect to the internet and try again.":e.debug||"undefined"!=typeof location&&("localhost"===location.hostname||"127.0.0.1"===location.hostname)?`Could not connect to server. Please verify that your origin '${location.origin}' is whitelisted using \`npx dexie-cloud whitelist\``:"Could not connect to server. Please verify the connection.",yield ke(s,"Authentication Failed",{type:"error",messageCode:"GENERIC_ERROR",message:n,messageParams:{}}).catch((()=>{}))}throw t}}))}(n,s,i,o)}))}function Ie(e,t){return r(this,void 0,void 0,(function*(){if(!t.refreshToken)throw new Error("Cannot refresh token - refresh token is missing.");if(!t.nonExportablePrivateKey)throw new Error("login.nonExportablePrivateKey is missing - cannot sign refresh token without a private key.");const n=Date.now(),r="RSASSA-PKCS1-v1_5",s=(new TextEncoder).encode(t.refreshToken+n),i=yield crypto.subtle.sign(r,t.nonExportablePrivateKey,s),o=w(i),l={grant_type:"refresh_token",refresh_token:t.refreshToken,scopes:["ACCESS_DB"],signature:o,signing_algorithm:r,time_stamp:n},c=yield fetch(`${e}/token`,{body:JSON.stringify(l),method:"post",headers:{"Content-Type":"application/json"},mode:"cors"});if(200!==c.status)throw new Error(`RefreshToken: Status ${c.status} from ${e}/token`);const a=yield c.json();if("error"===a.type)throw new we(a);return t.accessToken=a.accessToken,t.accessTokenExpiration=a.accessTokenExpiration?new Date(a.accessTokenExpiration):void 0,t.claims=a.claims,t.license={type:a.userType,status:a.claims.license||"ok"},null!=a.evalDaysLeft&&(t.license.evalDaysLeft=a.evalDaysLeft),null!=a.userValidUntil&&(t.license.validUntil=new Date(a.userValidUntil)),a.data&&(t.data=a.data),t}))}const{toString:Ae}={};const De={replace:function(e){const t=Object.keys(e);let n=null;for(let e=0,r=t.length;e<r;++e)"$"===t[e][0]&&(n=n||[],n.push(t[e]));if(!n)return e;const r={...e};for(const e of n)delete r[e];for(const t of n)r["$"+t]=e[t];return r}};function Oe(...e){const t=e.reduce(((e,t)=>({...e,...t})),e.reduce(((e,t)=>({...t,...e})),{})),n=new WeakMap;return{stringify(e,r,s){const i=JSON.stringify(e,(function(e){const s=this[e],i=function(e){const r=typeof e;switch(typeof e){case"object":case"function":{if(null===e)return null;const r=Object.getPrototypeOf(e);if(!r)return De;let i=n.get(r);if(void 0!==i)return i;const o=(s=e,Ae.call(s).slice(8,-1)),l=Object.entries(t).find((([t,n])=>{var r,s;return null!==(s=null===(r=null==n?void 0:n.test)||void 0===r?void 0:r.call(n,e,o))&&void 0!==s?s:t===o}));return i=null==l?void 0:l[1],i||(i=Array.isArray(e)?null:"function"==typeof e?t.function||null:De),n.set(r,i),i}default:return t[r]}var s}(s);return i?i.replace(s,r,t):s}),s);return i},parse(e,n){const r=[];return JSON.parse(e,(function(e,s){const i=null==s?void 0:s.$t;if(i){const e=t[i];s=e?e.revive(s,n,t):s}let o=r[r.length-1];if(o&&o[0]===s){s={...s};for(const e of o[1])delete s[e];for(const[e,t]of Object.entries(o[2]))s[e]=t;r.pop()}if(void 0===s||"$"===e[0]&&"$t"!==e){let t,n;o=r[r.length-1],o&&o[0]===this?(t=o[1],n=o[2]):r.push([this,t=[],n={}]),"$"===e[0]&&"$t"!==e?(t.push(e),n[e.substr(1)]=s):n[e]=void 0}return s}))}}}const Ue={Blob:{test:(e,t)=>"Blob"===t,replace:(e,t)=>{const n=t.length;return t.push(e),{$t:"Blob",mimeType:e.type,i:n}},revive:({i:e,mimeType:t},n)=>new Blob([n[e]],{type:t})}};var Te={number:{replace:e=>{switch(!0){case isNaN(e):return{$t:"number",v:"NaN"};case e===1/0:return{$t:"number",v:"Infinity"};case e===-1/0:return{$t:"number",v:"-Infinity"};default:return e}},revive:({v:e})=>Number(e)}};const Le={bigint:{replace:e=>({$t:"bigint",v:""+e}),revive:e=>BigInt(e.v)}};var je={Date:{replace:e=>({$t:"Date",v:isNaN(e.getTime())?"NaN":e.toISOString()}),revive:({v:e})=>new Date("NaN"===e?NaN:Date.parse(e))}},Pe={Set:{replace:e=>({$t:"Set",v:Array.from(e.entries())}),revive:({v:e})=>new Set(e)}},Re={Map:{replace:e=>({$t:"Map",v:Array.from(e.entries())}),revive:({v:e})=>new Map(e)}};const Me="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof global?global:void 0;var Ne=["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","DataView","BigInt64Array","BigUint64Array"].reduce(((e,t)=>({...e,[t]:{replace:(e,n,r)=>({$t:t,v:r.ArrayBuffer.replace(0===e.byteOffset&&e.byteLength===e.buffer.byteLength?e.buffer:e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength),n,r).v}),revive:({v:e},n,r)=>{const s=Me[t];return s&&new s(r.ArrayBuffer.revive({v:e},n,r))}}})),{});function $e(e){return function(e){for(var t="",n=0,r=e.length;n<r;n++)t+=We[e[n]];return t}(w(e))}function Be(e){return b(function(e){if("string"!=typeof e)throw new Error("invalid decoder input: "+e);for(var t="",n=0,r=e.length;n<r;n++)t+=Fe[e[n]];return t}(e))}const Fe={"-":"=",0:"A",1:"B",2:"C",3:"D",4:"E",5:"F",6:"G",7:"H",8:"I",9:"J",A:"K",B:"L",C:"M",D:"N",E:"O",F:"P",G:"Q",H:"R",I:"S",J:"T",K:"U",L:"V",M:"W",N:"X",O:"Y",P:"Z",Q:"a",R:"b",S:"c",T:"d",U:"e",V:"f",W:"g",X:"h",Y:"i",Z:"j",_:"k",a:"l",b:"m",c:"n",d:"o",e:"p",f:"q",g:"r",h:"s",i:"t",j:"u",k:"v",l:"w",m:"x",n:"y",o:"z",p:"0",q:"1",r:"2",s:"3",t:"4",u:"5",v:"6",w:"7",x:"8",y:"9",z:"+","|":"/"},We={};for(const e of Object.keys(Fe))We[Fe[e]]=e;var Ve={ArrayBuffer:{replace:e=>({$t:"ArrayBuffer",v:$e(e)}),revive:({v:e})=>{const t=Be(e);return t.buffer.byteLength===t.byteLength?t.buffer:t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}}};class Ke{constructor(e,t){this.buf=e,this.type=t}}function He(e){const t=new XMLHttpRequest;if(t.overrideMimeType("text/plain; charset=x-user-defined"),t.open("GET",URL.createObjectURL(e),!1),t.send(),200!==t.status&&0!==t.status)throw new Error("Bad Blob access: "+t.status);return t.responseText}function Je(e){const t=new Uint8Array(e.length);for(let n=0;n<e.length;++n)t[n]=e.charCodeAt(n);return t.buffer}var ze={Blob:{test:(e,t)=>"Blob"===t||e instanceof Ke,replace:e=>({$t:"Blob",v:w(e instanceof Ke?e.buf:Je(He(e))),type:e.type}),revive:({type:e,v:t})=>{const n=b(t);return void 0!==typeof Blob?new Blob([n]):new Ke(n.buffer,e)}}};const qe={...Te,...Le,...je,...Pe,...Re,...Ne,...Ve,...ze};function Ye(e){return new Promise(((t,n)=>{const r=new FileReader;r.onabort=e=>n(new Error("file read aborted")),r.onerror=e=>n(e.target.error),r.onload=e=>t(e.target.result),r.readAsArrayBuffer(e)}))}var Ge={undefined:{replace:()=>({$t:"undefined"}),revive:()=>{}}},Qe={File:{test:(e,t)=>"File"===t,replace:e=>({$t:"File",v:w(Je(He(e))),type:e.type,name:e.name,lastModified:new Date(e.lastModified).toISOString()}),revive:({type:e,v:t,name:n,lastModified:r})=>{const s=b(t);return new File([s],n,{type:e,lastModified:new Date(r).getTime()})}}};const Xe="function"==typeof BigInt&&"bigint"==typeof BigInt(0);class Ze{toString(){return this.v}constructor(e){this.v=e}}const et=Xe?{}:{bigint:{test:e=>e instanceof Ze,replace:e=>Object.assign({$t:"bigint"},e),revive:({v:e})=>new Ze(e)}},tt=Object.assign(Object.assign(Object.assign(Object.assign({},Ge),et),Qe),{PropModification:{test:t=>t instanceof e.PropModification,replace:e=>Object.assign({$t:"PropModification"},e["@@propmod"]),revive:t=>{var n=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var s=0;for(r=Object.getOwnPropertySymbols(e);s<r.length;s++)t.indexOf(r[s])<0&&Object.prototype.propertyIsEnumerable.call(e,r[s])&&(n[r[s]]=e[r[s]])}return n}(t,["$t"]);return new e.PropModification(n)}}}),nt=Oe(qe,tt),rt=function(...e){const t=Oe(qe,Ue,...e);return{toBinary(e){const[t,n]=this.stringify(e),r=new ArrayBuffer(4);return new DataView(r).setUint32(0,t.size),new Blob([r,t,n])},stringify(e){const n=[],r=t.stringify(e,n),s=new Blob(n.map((e=>{const t=new ArrayBuffer(4);return new DataView(t).setUint32(0,"byteLength"in e?e.byteLength:e.size),new Blob([t,e])})));return[s,r]},async parse(e,n){let r=0;const s=[],i=await Ye(n),o=new DataView(i);for(;r<i.byteLength;){const e=o.getUint32(r);r+=4;const t=i.slice(r,r+e);r+=e,s.push(t)}return t.parse(e,s)},async fromBinary(e){const t=new DataView(await Ye(e.slice(0,4))).getUint32(0),n=e.slice(4,t+4),r=await function(e){return new Promise(((t,n)=>{const r=new FileReader;r.onabort=e=>n(new Error("file read aborted")),r.onerror=e=>n(e.target.error),r.onload=e=>t(e.target.result),r.readAsText(e)}))}(e.slice(t+4));return await this.parse(r,n)}}}(tt);class st extends Error{constructor(e,t){super(t||`${e.status} ${e.statusText}`),this.httpStatus=e.status}get name(){return"HttpError"}}function it(t,n,r){const s=[];for(let i of r){const{table:r,muts:o}=i,l=t.tables.find((e=>e.name===r));if(!l)throw new Error(`Internal error: table ${r} not found in DBCore schema`);const{primaryKey:c}=l;let a=i;o.forEach(((t,r)=>{const s=!c.outbound&&("upsert"===t.type||"insert"===t.type);t.keys.forEach(((t,o)=>{if(Array.isArray(t)){a===i&&(a=ot(i,s));const e=a.muts[r],n=JSON.stringify(t);e.keys[o]=n}else if("#"===t[0]){a===i&&(a=ot(i,s));const l=a.muts[r];if(!n.isLoggedIn)throw new Error("Internal error: Cannot sync private IDs before authenticated");const u=`${t}:${n.userId}`;l.keys[o]=u,s&&e.setByKeyPath(l.values[o],c.keyPath,u)}}))})),s.push(a)}return s}function ot(e,t){return Object.assign(Object.assign({},e),{muts:t?e.muts.map((e=>"insert"!==e.type&&"upsert"!==e.type||!e.values?Object.assign(Object.assign({},e),{keys:e.keys.slice()}):Object.assign(Object.assign({},e),{keys:e.keys.slice(),values:e.values.slice()}))):e.muts.map((e=>Object.assign(Object.assign({},e),{keys:e.keys.slice()})))})}let lt=new WeakMap;function ct(e){return r(this,void 0,void 0,(function*(){var t,n;const r=(null!==(n=null===(t=lt.get(e))||void 0===t?void 0:t.getTime())&&void 0!==n?n:0)-Date.now();r>0&&(yield new Promise((e=>setTimeout(e,r))))}))}function at(e,t,n,s,i,o,l,c,a){return r(this,void 0,void 0,(function*(){const r={Accept:"application/json, application/x-bison, application/x-bison-stream","Content-Type":"application/tson"},u=yield xe(i),d=null==u?void 0:u.accessToken;d&&(r.Authorization=`Bearer ${d}`);const h={v:2,dbID:null==n?void 0:n.remoteDbId,clientIdentity:c,schema:l||{},lastPull:n?{serverRevision:n.serverRevision,yServerRevision:n.yServerRevision,realms:n.realms,inviteRealms:n.inviteRealms}:void 0,baseRevs:s,changes:it(i.dx.core.schema,a,e),y:t,dxcv:i.cloud.version};i.syncStateChangedEvent.next({phase:"pushing"});const f=nt.stringify(h),p=yield fetch(`${o}/sync`,{method:"post",headers:r,credentials:"include",body:f});if(i.syncStateChangedEvent.next({phase:"pulling"}),function(e,t){const n=t.headers.get("Ratelimit-Limit"),r=t.headers.get("Ratelimit-Remaining"),s=t.headers.get("Ratelimit-Reset");if(n&&r&&s){const t=Number(n),i=Math.max(0,Number(r)),o=Number(s);if(i<t/2){const t=Math.ceil(o/(i+1));lt.set(e,new Date(Date.now()+1e3*t))}else lt.delete(e)}}(i,p),!p.ok)throw new st(p);if("application/x-bison"===p.headers.get("content-type"))return rt.fromBinary(yield p.blob());{const e=yield p.text();return nt.parse(e)}}))}function ut(t){if(null==t?void 0:t.cancelled)throw new e.AbortError("Operation was cancelled")}let dt=!1;function ht(e,t,n,s){return r(this,void 0,void 0,(function*(){yield e.$baseRevs.bulkPut(Object.keys(t).filter((e=>t[e].markedForSync)).map((e=>({tableName:e,clientRev:(n[e]||0)+1,serverRev:s})))),yield e.$baseRevs.where("tableName").noneOf(Object.keys(t).filter((e=>t[e].markedForSync))).delete()}))}function ft(e,t={}){for(const{table:n,muts:r}of e){const e=r.length>0?r[r.length-1].rev:null;t[n]=e||t[n]||0}return t}function pt(t,n,s){return r(this,void 0,void 0,(function*(){const r=yield t.bulkGet(n),i=[],o=[];n.forEach(((n,l)=>{const c=r[l];if(c){for(const[r,i]of Object.entries(s[l]))if(r===t.schema.primKey.keyPath){if(0!==e.cmp(i,n))throw new Error("Cannot change primary key")}else e.setByKeyPath(c,r,i);i.push(n),o.push(c)}})),yield null==t.schema.primKey.keyPath?t.bulkPut(o,i):t.bulkPut(o)}))}function gt(t,n){return r(this,void 0,void 0,(function*(){for(const{table:r,muts:s}of t){if(!n.dx._allTables[r])continue;const t=n.table(r),{primaryKey:i}=t.core.schema,o=e=>{switch(e[0]){case"[":if(e.endsWith("]"))try{return JSON.parse(e)}catch(e){}return e;case"#":return e.endsWith(":"+n.cloud.currentUserId)?e.substr(0,e.length-n.cloud.currentUserId.length-1):e;default:return e}};for(const n of s){const r=n.keys.map(o);switch(n.type){case"insert":i.outbound?yield t.bulkAdd(n.values,r):(r.forEach(((t,r)=>{e.setByKeyPath(n.values[r],i.keyPath,t)})),yield t.bulkAdd(n.values));break;case"upsert":i.outbound?yield t.bulkPut(n.values,r):(r.forEach(((t,r)=>{e.setByKeyPath(n.values[r],i.keyPath,t)})),yield t.bulkPut(n.values));break;case"modify":1===r.length?yield t.update(r[0],n.changeSpec):yield t.where(":id").anyOf(r).modify(n.changeSpec);break;case"update":yield pt(t,r,n.changeSpecs);break;case"delete":yield t.bulkDelete(r)}}}}))}"undefined"!=typeof self&&"undefined"!=typeof navigator&&(dt=navigator.onLine,self.addEventListener("online",(()=>dt=!0)),self.addEventListener("offline",(()=>dt=!1)));const yt="dexie-cloud-syncer";function mt(e,t){return e.where("i").between(t,1/0,!0).toArray()}const vt=()=>new Map,bt=e=>{const t=vt();return e.forEach(((e,n)=>{t.set(n,e)})),t},wt=(e,t,n)=>{let r=e.get(t);return void 0===r&&e.set(t,r=n()),r},_t=()=>new Set,kt=e=>e[e.length-1],St=(e,t)=>{for(let n=0;n<t.length;n++)e.push(t[n])},Et=Array.from,xt=Array.isArray;class Ct{constructor(){this._observers=vt()}on(e,t){return wt(this._observers,e,_t).add(t),t}once(e,t){const n=(...r)=>{this.off(e,n),t(...r)};this.on(e,n)}off(e,t){const n=this._observers.get(e);void 0!==n&&(n.delete(t),0===n.size&&this._observers.delete(e))}emit(e,t){return Et((this._observers.get(e)||vt()).values()).forEach((e=>e(...t)))}destroy(){this._observers=vt()}}class It{constructor(){this._observers=vt()}on(e,t){wt(this._observers,e,_t).add(t)}once(e,t){const n=(...r)=>{this.off(e,n),t(...r)};this.on(e,n)}off(e,t){const n=this._observers.get(e);void 0!==n&&(n.delete(t),0===n.size&&this._observers.delete(e))}emit(e,t){return Et((this._observers.get(e)||vt()).values()).forEach((e=>e(...t)))}destroy(){this._observers=vt()}}const At=Math.floor,Dt=Math.abs,Ot=(e,t)=>e<t?e:t,Ut=(e,t)=>e>t?e:t,Tt=e=>0!==e?e<0:1/e<0,Lt=64,jt=128,Pt=127,Rt=Number.MAX_SAFE_INTEGER,Mt=Number.isInteger||(e=>"number"==typeof e&&isFinite(e)&&At(e)===e),Nt=/^\s*/g,$t=/([A-Z])/g,Bt=(e,t)=>(e=>e.replace(Nt,""))(e.replace($t,(e=>`${t}${(e=>e.toLowerCase())(e)}`))),Ft="undefined"!=typeof TextEncoder?new TextEncoder:null,Wt=Ft?e=>Ft.encode(e):e=>{const t=unescape(encodeURIComponent(e)),n=t.length,r=new Uint8Array(n);for(let e=0;e<n;e++)r[e]=t.codePointAt(e);return r};let Vt="undefined"==typeof TextDecoder?null:new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});Vt&&1===Vt.decode(new Uint8Array).length&&(Vt=null);class Kt{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}}const Ht=()=>new Kt,Jt=e=>{const t=new Uint8Array((e=>{let t=e.cpos;for(let n=0;n<e.bufs.length;n++)t+=e.bufs[n].length;return t})(e));let n=0;for(let r=0;r<e.bufs.length;r++){const s=e.bufs[r];t.set(s,n),n+=s.length}return t.set(new Uint8Array(e.cbuf.buffer,0,e.cpos),n),t},zt=(e,t)=>{const n=e.cbuf.length;e.cpos===n&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(2*n),e.cpos=0),e.cbuf[e.cpos++]=t},qt=zt,Yt=(e,t)=>{for(;t>Pt;)zt(e,jt|Pt&t),t=At(t/128);zt(e,Pt&t)},Gt=(e,t)=>{const n=Tt(t);for(n&&(t=-t),zt(e,(t>63?jt:0)|(n?Lt:0)|63&t),t=At(t/64);t>0;)zt(e,(t>Pt?jt:0)|Pt&t),t=At(t/128)},Qt=new Uint8Array(3e4),Xt=Qt.length/3,Zt=Ft&&Ft.encodeInto?(e,t)=>{if(t.length<Xt){const n=Ft.encodeInto(t,Qt).written||0;Yt(e,n);for(let t=0;t<n;t++)zt(e,Qt[t])}else tn(e,Wt(t))}:(e,t)=>{const n=unescape(encodeURIComponent(t)),r=n.length;Yt(e,r);for(let t=0;t<r;t++)zt(e,n.codePointAt(t))},en=(e,t)=>{const n=e.cbuf.length,r=e.cpos,s=Ot(n-r,t.length),i=t.length-s;e.cbuf.set(t.subarray(0,s),r),e.cpos+=s,i>0&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(Ut(2*n,i)),e.cbuf.set(t.subarray(s)),e.cpos=i)},tn=(e,t)=>{Yt(e,t.byteLength),en(e,t)},nn=(e,t)=>{((e,t)=>{const n=e.cbuf.length;n-e.cpos<t&&(e.bufs.push(new Uint8Array(e.cbuf.buffer,0,e.cpos)),e.cbuf=new Uint8Array(2*Ut(n,t)),e.cpos=0)})(e,t);const n=new DataView(e.cbuf.buffer,e.cpos,t);return e.cpos+=t,n},rn=new DataView(new ArrayBuffer(4)),sn=(e,t)=>{switch(typeof t){case"string":zt(e,119),Zt(e,t);break;case"number":Mt(t)&&Dt(t)<=2147483647?(zt(e,125),Gt(e,t)):(n=t,rn.setFloat32(0,n),rn.getFloat32(0)===n?(zt(e,124),((e,t)=>{nn(e,4).setFloat32(0,t,!1)})(e,t)):(zt(e,123),((e,t)=>{nn(e,8).setFloat64(0,t,!1)})(e,t)));break;case"bigint":zt(e,122),((e,t)=>{nn(e,8).setBigInt64(0,t,!1)})(e,t);break;case"object":if(null===t)zt(e,126);else if(xt(t)){zt(e,117),Yt(e,t.length);for(let n=0;n<t.length;n++)sn(e,t[n])}else if(t instanceof Uint8Array)zt(e,116),tn(e,t);else{zt(e,118);const n=Object.keys(t);Yt(e,n.length);for(let r=0;r<n.length;r++){const s=n[r];Zt(e,s),sn(e,t[s])}}break;case"boolean":zt(e,t?120:121);break;default:zt(e,127)}var n};class on extends Kt{constructor(e){super(),this.w=e,this.s=null,this.count=0}write(e){this.s===e?this.count++:(this.count>0&&Yt(this,this.count-1),this.count=1,this.w(this,e),this.s=e)}}const ln=e=>{e.count>0&&(Gt(e.encoder,1===e.count?e.s:-e.s),e.count>1&&Yt(e.encoder,e.count-2))};class cn{constructor(){this.encoder=new Kt,this.s=0,this.count=0}write(e){this.s===e?this.count++:(ln(this),this.count=1,this.s=e)}toUint8Array(){return ln(this),Jt(this.encoder)}}const an=e=>{if(e.count>0){const t=2*e.diff+(1===e.count?0:1);Gt(e.encoder,t),e.count>1&&Yt(e.encoder,e.count-2)}};class un{constructor(){this.encoder=new Kt,this.s=0,this.count=0,this.diff=0}write(e){this.diff===e-this.s?(this.s=e,this.count++):(an(this),this.count=1,this.diff=e-this.s,this.s=e)}toUint8Array(){return an(this),Jt(this.encoder)}}class dn{constructor(){this.sarr=[],this.s="",this.lensE=new cn}write(e){this.s+=e,this.s.length>19&&(this.sarr.push(this.s),this.s=""),this.lensE.write(e.length)}toUint8Array(){const e=new Kt;return this.sarr.push(this.s),this.s="",Zt(e,this.sarr.join("")),en(e,this.lensE.toUint8Array()),Jt(e)}}const hn=e=>new Error(e),fn=()=>{throw hn("Method unimplemented")},pn=()=>{throw hn("Unexpected case")},gn=hn("Unexpected end of array"),yn=hn("Integer out of Range");class mn{constructor(e){this.arr=e,this.pos=0}}const vn=e=>new mn(e),bn=e=>((e,t)=>{const n=new Uint8Array(e.arr.buffer,e.pos+e.arr.byteOffset,t);return e.pos+=t,n})(e,_n(e)),wn=e=>e.arr[e.pos++],_n=e=>{let t=0,n=1;const r=e.arr.length;for(;e.pos<r;){const r=e.arr[e.pos++];if(t+=(r&Pt)*n,n*=128,r<jt)return t;if(t>Rt)throw yn}throw gn},kn=e=>{let t=e.arr[e.pos++],n=63&t,r=64;const s=(t&Lt)>0?-1:1;if(0==(t&jt))return s*n;const i=e.arr.length;for(;e.pos<i;){if(t=e.arr[e.pos++],n+=(t&Pt)*r,r*=128,t<jt)return s*n;if(n>Rt)throw yn}throw gn},Sn=Vt?e=>Vt.decode(bn(e)):e=>{let t=_n(e);if(0===t)return"";{let n=String.fromCodePoint(wn(e));if(--t<100)for(;t--;)n+=String.fromCodePoint(wn(e));else for(;t>0;){const r=t<1e4?t:1e4,s=e.arr.subarray(e.pos,e.pos+r);e.pos+=r,n+=String.fromCodePoint.apply(null,s),t-=r}return decodeURIComponent(escape(n))}},En=(e,t)=>{const n=new DataView(e.arr.buffer,e.arr.byteOffset+e.pos,t);return e.pos+=t,n},xn=[e=>{},e=>null,kn,e=>En(e,4).getFloat32(0,!1),e=>En(e,8).getFloat64(0,!1),e=>En(e,8).getBigInt64(0,!1),e=>!1,e=>!0,Sn,e=>{const t=_n(e),n={};for(let r=0;r<t;r++){n[Sn(e)]=Cn(e)}return n},e=>{const t=_n(e),n=[];for(let r=0;r<t;r++)n.push(Cn(e));return n},bn],Cn=e=>xn[127-wn(e)](e);class In extends mn{constructor(e,t){super(e),this.reader=t,this.s=null,this.count=0}read(){var e;return 0===this.count&&(this.s=this.reader(this),(e=this).pos!==e.arr.length?this.count=_n(this)+1:this.count=-1),this.count--,this.s}}class An extends mn{constructor(e){super(e),this.s=0,this.count=0}read(){if(0===this.count){this.s=kn(this);const e=Tt(this.s);this.count=1,e&&(this.s=-this.s,this.count=_n(this)+2)}return this.count--,this.s}}class Dn extends mn{constructor(e){super(e),this.s=0,this.count=0,this.diff=0}read(){if(0===this.count){const e=kn(this),t=1&e;this.diff=At(e/2),this.count=1,t&&(this.count=_n(this)+2)}return this.s+=this.diff,this.count--,this.s}}class On{constructor(e){this.decoder=new An(e),this.str=Sn(this.decoder),this.spos=0}read(){const e=this.spos+this.decoder.read(),t=this.str.slice(this.spos,e);return this.spos=e,t}}const Un=crypto.getRandomValues.bind(crypto),Tn=()=>Un(new Uint32Array(1))[0],Ln=[1e7]+-1e3+-4e3+-8e3+-1e11,jn=()=>Ln.replace(/[018]/g,(e=>(e^Tn()&15>>e/4).toString(16))),Pn=Date.now,Rn=e=>new Promise(e);Promise.all.bind(Promise);const Mn=e=>void 0===e?null:e;let Nn=new class{constructor(){this.map=new Map}setItem(e,t){this.map.set(e,t)}getItem(e){return this.map.get(e)}},$n=!0;try{"undefined"!=typeof localStorage&&localStorage&&(Nn=localStorage,$n=!1)}catch(sc){}const Bn=Nn,Fn=Object.assign,Wn=Object.keys,Vn=e=>Wn(e).length,Kn=e=>Wn(e).length,Hn=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),Jn=Object.freeze,zn=e=>{for(const t in e){const n=e[t];"object"!=typeof n&&"function"!=typeof n||zn(e[t])}return Jn(e)},qn=(e,t,n=0)=>{try{for(;n<e.length;n++)e[n](...t)}finally{n<e.length&&qn(e,t,n+1)}},Yn=(e,t)=>{if(null==e||null==t)return((e,t)=>e===t)(e,t);if(e.constructor!==t.constructor)return!1;if(e===t)return!0;switch(e.constructor){case ArrayBuffer:e=new Uint8Array(e),t=new Uint8Array(t);case Uint8Array:if(e.byteLength!==t.byteLength)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;break;case Set:if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;break;case Map:if(e.size!==t.size)return!1;for(const n of e.keys())if(!t.has(n)||!Yn(e.get(n),t.get(n)))return!1;break;case Object:if(Vn(e)!==Vn(t))return!1;for(const n in e)if(!Hn(e,n)||!Yn(e[n],t[n]))return!1;break;case Array:if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(!Yn(e[n],t[n]))return!1;break;default:return!1}return!0},Gn="undefined"!=typeof process&&process.release&&/node|io\.js/.test(process.release.name)&&"[object process]"===Object.prototype.toString.call("undefined"!=typeof process?process:0);let Qn;const Xn=e=>(()=>{if(void 0===Qn)if(Gn){Qn=vt();const e=process.argv;let t=null;for(let n=0;n<e.length;n++){const r=e[n];"-"===r[0]?(null!==t&&Qn.set(t,""),t=r):null!==t&&(Qn.set(t,r),t=null)}null!==t&&Qn.set(t,"")}else"object"==typeof location?(Qn=vt(),(location.search||"?").slice(1).split("&").forEach((e=>{if(0!==e.length){const[t,n]=e.split("=");Qn.set(`--${Bt(t,"-")}`,n),Qn.set(`-${Bt(t,"-")}`,n)}}))):Qn=vt();return Qn})().has(e),Zn=e=>Mn(Gn?process.env[e.toUpperCase().replaceAll("-","_")]:Bn.getItem(e)),er=e=>Xn("--"+e)||null!==Zn(e);er("production");var tr;Gn&&(tr=process.env.FORCE_COLOR,["true","1","2"].includes(tr))||!Xn("--no-colors")&&!er("no-color")&&(!Gn||process.stdout.isTTY)&&(!Gn||Xn("--color")||null!==Zn("COLORTERM")||(Zn("TERM")||"").includes("color"));class nr{constructor(e,t){this.left=e,this.right=t}}const rr=(e,t)=>new nr(e,t);"undefined"!=typeof DOMParser&&new DOMParser;const sr=Symbol,ir=sr(),or=sr(),lr=sr(),cr=sr(),ar=sr(),ur=sr(),dr=sr(),hr=sr(),fr=sr(),pr=(rr("font-weight","bold"),rr("font-weight","normal"),rr("color","blue"),rr("color","green"),rr("color","grey"),rr("color","red"),rr("color","purple"),rr("color","orange"),rr("color","black"),_t()),gr=e=>({[Symbol.iterator](){return this},next:e}),yr=(e,t)=>gr((()=>{const{done:n,value:r}=e.next();return{done:n,value:n?void 0:t(r)}}));class mr{constructor(e,t){this.clock=e,this.len=t}}class vr{constructor(){this.clients=new Map}}const br=(e,t,n)=>t.clients.forEach(((t,r)=>{const s=e.doc.store.clients.get(r);if(null!=s){const r=s[s.length-1],i=r.id.clock+r.length;for(let r=0,o=t[r];r<t.length&&o.clock<i;o=t[++r])ts(e,s,o.clock,o.len,n)}})),wr=(e,t)=>{const n=e.clients.get(t.client);return void 0!==n&&null!==((e,t)=>{let n=0,r=e.length-1;for(;n<=r;){const s=At((n+r)/2),i=e[s],o=i.clock;if(o<=t){if(t<o+i.len)return s;n=s+1}else r=s-1}return null})(n,t.clock)},_r=e=>{e.clients.forEach((e=>{let t,n;for(e.sort(((e,t)=>e.clock-t.clock)),t=1,n=1;t<e.length;t++){const r=e[n-1],s=e[t];r.clock+r.len>=s.clock?r.len=Ut(r.len,s.clock+s.len-r.clock):(n<t&&(e[n]=s),n++)}e.length=n}))},kr=(e,t,n,r)=>{wt(e.clients,t,(()=>[])).push(new mr(n,r))},Sr=(e,t)=>{Yt(e.restEncoder,t.clients.size),Et(t.clients.entries()).sort(((e,t)=>t[0]-e[0])).forEach((([t,n])=>{e.resetDsCurVal(),Yt(e.restEncoder,t);const r=n.length;Yt(e.restEncoder,r);for(let t=0;t<r;t++){const r=n[t];e.writeDsClock(r.clock),e.writeDsLen(r.len)}}))},Er=(e,t,n)=>{const r=new vr,s=_n(e.restDecoder);for(let i=0;i<s;i++){e.resetDsCurVal();const s=_n(e.restDecoder),i=_n(e.restDecoder),o=n.clients.get(s)||[],l=qr(n,s);for(let n=0;n<i;n++){const n=e.readDsClock(),i=n+e.readDsLen();if(n<l){l<i&&kr(r,s,l,i-l);let e=Gr(o,n),c=o[e];for(!c.deleted&&c.id.clock<n&&(o.splice(e+1,0,Ri(t,c,n-c.id.clock)),e++);e<o.length&&(c=o[e++],c.id.clock<i);)c.deleted||(i<c.id.clock+c.length&&o.splice(e,0,Ri(t,c,i-c.id.clock)),c.delete(t))}else kr(r,s,n,i-n)}}if(r.clients.size>0){const e=new Tr;return Yt(e.restEncoder,0),Sr(e,r),e.toUint8Array()}return null},xr=Tn;class Cr extends Ct{constructor({guid:e=jn(),collectionid:t=null,gc:n=!0,gcFilter:r=(()=>!0),meta:s=null,autoLoad:i=!1,shouldLoad:o=!0}={}){super(),this.gc=n,this.gcFilter=r,this.clientID=xr(),this.guid=e,this.collectionid=t,this.share=new Map,this.store=new Jr,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=Rn((e=>{this.on("load",(()=>{this.isLoaded=!0,e(this)}))}));const l=()=>Rn((e=>{const t=n=>{void 0!==n&&!0!==n||(this.off("sync",t),e())};this.on("sync",t)}));this.on("sync",(e=>{!1===e&&this.isSynced&&(this.whenSynced=l()),this.isSynced=void 0===e||!0===e,this.isSynced&&!this.isLoaded&&this.emit("load",[this])})),this.whenSynced=l()}load(){const e=this._item;null===e||this.shouldLoad||ls(e.parent.doc,(e=>{e.subdocsLoaded.add(this)}),null,!0),this.shouldLoad=!0}getSubdocs(){return this.subdocs}getSubdocGuids(){return new Set(Et(this.subdocs).map((e=>e.guid)))}transact(e,t=null){return ls(this,e,t)}get(e,t=Cs){const n=wt(this.share,e,(()=>{const e=new t;return e._integrate(this,null),e})),r=n.constructor;if(t!==Cs&&r!==t){if(r===Cs){const r=new t;r._map=n._map,n._map.forEach((e=>{for(;null!==e;e=e.left)e.parent=r})),r._start=n._start;for(let e=r._start;null!==e;e=e.right)e.parent=r;return r._length=n._length,this.share.set(e,r),r._integrate(this,null),r}throw new Error(`Type with the name ${e} has already been defined with a different constructor`)}return n}getArray(e=""){return this.get(e,Ks)}getText(e=""){return this.get(e,ci)}getMap(e=""){return this.get(e,Js)}getXmlElement(e=""){return this.get(e,di)}getXmlFragment(e=""){return this.get(e,ui)}toJSON(){const e={};return this.share.forEach(((t,n)=>{e[n]=t.toJSON()})),e}destroy(){this.isDestroyed=!0,Et(this.subdocs).forEach((e=>e.destroy()));const e=this._item;if(null!==e){this._item=null;const t=e.content;t.doc=new Cr({guid:this.guid,...t.opts,shouldLoad:!1}),t.doc._item=e,ls(e.parent.doc,(n=>{const r=t.doc;e.deleted||n.subdocsAdded.add(r),n.subdocsRemoved.add(this)}),null,!0)}this.emit("destroyed",[!0]),this.emit("destroy",[this]),super.destroy()}}class Ir{constructor(e){this.dsCurrVal=0,this.restDecoder=e}resetDsCurVal(){this.dsCurrVal=0}readDsClock(){return this.dsCurrVal+=_n(this.restDecoder),this.dsCurrVal}readDsLen(){const e=_n(this.restDecoder)+1;return this.dsCurrVal+=e,e}}class Ar extends Ir{constructor(e){super(e),this.keys=[],_n(e),this.keyClockDecoder=new Dn(bn(e)),this.clientDecoder=new An(bn(e)),this.leftClockDecoder=new Dn(bn(e)),this.rightClockDecoder=new Dn(bn(e)),this.infoDecoder=new In(bn(e),wn),this.stringDecoder=new On(bn(e)),this.parentInfoDecoder=new In(bn(e),wn),this.typeRefDecoder=new An(bn(e)),this.lenDecoder=new An(bn(e))}readLeftID(){return new Fr(this.clientDecoder.read(),this.leftClockDecoder.read())}readRightID(){return new Fr(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 Cn(this.restDecoder)}readBuf(){return bn(this.restDecoder)}readJSON(){return Cn(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 Dr{constructor(){this.restEncoder=Ht()}toUint8Array(){return Jt(this.restEncoder)}resetDsCurVal(){}writeDsClock(e){Yt(this.restEncoder,e)}writeDsLen(e){Yt(this.restEncoder,e)}}class Or extends Dr{writeLeftID(e){Yt(this.restEncoder,e.client),Yt(this.restEncoder,e.clock)}writeRightID(e){Yt(this.restEncoder,e.client),Yt(this.restEncoder,e.clock)}writeClient(e){Yt(this.restEncoder,e)}writeInfo(e){qt(this.restEncoder,e)}writeString(e){Zt(this.restEncoder,e)}writeParentInfo(e){Yt(this.restEncoder,e?1:0)}writeTypeRef(e){Yt(this.restEncoder,e)}writeLen(e){Yt(this.restEncoder,e)}writeAny(e){sn(this.restEncoder,e)}writeBuf(e){tn(this.restEncoder,e)}writeJSON(e){Zt(this.restEncoder,JSON.stringify(e))}writeKey(e){Zt(this.restEncoder,e)}}class Ur{constructor(){this.restEncoder=Ht(),this.dsCurrVal=0}toUint8Array(){return Jt(this.restEncoder)}resetDsCurVal(){this.dsCurrVal=0}writeDsClock(e){const t=e-this.dsCurrVal;this.dsCurrVal=e,Yt(this.restEncoder,t)}writeDsLen(e){0===e&&pn(),Yt(this.restEncoder,e-1),this.dsCurrVal+=e}}class Tr extends Ur{constructor(){super(),this.keyMap=new Map,this.keyClock=0,this.keyClockEncoder=new un,this.clientEncoder=new cn,this.leftClockEncoder=new un,this.rightClockEncoder=new un,this.infoEncoder=new on(qt),this.stringEncoder=new dn,this.parentInfoEncoder=new on(qt),this.typeRefEncoder=new cn,this.lenEncoder=new cn}toUint8Array(){const e=Ht();return Yt(e,0),tn(e,this.keyClockEncoder.toUint8Array()),tn(e,this.clientEncoder.toUint8Array()),tn(e,this.leftClockEncoder.toUint8Array()),tn(e,this.rightClockEncoder.toUint8Array()),tn(e,Jt(this.infoEncoder)),tn(e,this.stringEncoder.toUint8Array()),tn(e,Jt(this.parentInfoEncoder)),tn(e,this.typeRefEncoder.toUint8Array()),tn(e,this.lenEncoder.toUint8Array()),en(e,Jt(this.restEncoder)),Jt(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){sn(this.restEncoder,e)}writeBuf(e){tn(this.restEncoder,e)}writeJSON(e){sn(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 Lr=(e,t,n)=>{const r=new Map;n.forEach(((e,n)=>{qr(t,n)>e&&r.set(n,e)})),zr(t).forEach(((e,t)=>{n.has(t)||r.set(t,0)})),Yt(e.restEncoder,r.size),Et(r.entries()).sort(((e,t)=>t[0]-e[0])).forEach((([n,r])=>{((e,t,n,r)=>{r=Ut(r,t[0].id.clock);const s=Gr(t,r);Yt(e.restEncoder,t.length-s),e.writeClient(n),Yt(e.restEncoder,r);const i=t[s];i.write(e,r-i.id.clock);for(let n=s+1;n<t.length;n++)t[n].write(e,0)})(e,t.clients.get(n),n,r)}))},jr=(e,t,n,r=new Ar(e))=>ls(t,(e=>{e.local=!1;let t=!1;const n=e.doc,s=n.store,i=((e,t)=>{const n=vt(),r=_n(e.restDecoder);for(let s=0;s<r;s++){const r=_n(e.restDecoder),s=new Array(r),i=e.readClient();let o=_n(e.restDecoder);n.set(i,{i:0,refs:s});for(let n=0;n<r;n++){const r=e.readInfo();switch(31&r){case 0:{const t=e.readLen();s[n]=new yi(Vr(i,o),t),o+=t;break}case 10:{const t=_n(e.restDecoder);s[n]=new Bi(Vr(i,o),t),o+=t;break}default:{const l=0==(192&r),c=new Mi(Vr(i,o),null,(r&jt)===jt?e.readLeftID():null,null,(r&Lt)===Lt?e.readRightID():null,l?e.readParentInfo()?t.get(e.readString()):e.readLeftID():null,l&&32==(32&r)?e.readString():null,Ni(e,r));s[n]=c,o+=c.length}}}}return n})(r,n),o=((e,t,n)=>{const r=[];let s=Et(n.keys()).sort(((e,t)=>e-t));if(0===s.length)return null;const i=()=>{if(0===s.length)return null;let e=n.get(s[s.length-1]);for(;e.refs.length===e.i;){if(s.pop(),!(s.length>0))return null;e=n.get(s[s.length-1])}return e};let o=i();if(null===o)return null;const l=new Jr,c=new Map,a=(e,t)=>{const n=c.get(e);(null==n||n>t)&&c.set(e,t)};let u=o.refs[o.i++];const d=new Map,h=()=>{for(const e of r){const t=e.id.client,r=n.get(t);r?(r.i--,l.clients.set(t,r.refs.slice(r.i)),n.delete(t),r.i=0,r.refs=[]):l.clients.set(t,[e]),s=s.filter((e=>e!==t))}r.length=0};for(;;){if(u.constructor!==Bi){const s=wt(d,u.id.client,(()=>qr(t,u.id.client)))-u.id.clock;if(s<0)r.push(u),a(u.id.client,u.id.clock-1),h();else{const i=u.getMissing(e,t);if(null!==i){r.push(u);const e=n.get(i)||{refs:[],i:0};if(e.refs.length!==e.i){u=e.refs[e.i++];continue}a(i,qr(t,i)),h()}else(0===s||s<u.length)&&(u.integrate(e,s),d.set(u.id.client,u.id.clock+u.length))}}if(r.length>0)u=r.pop();else if(null!==o&&o.i<o.refs.length)u=o.refs[o.i++];else{if(o=i(),null===o)break;u=o.refs[o.i++]}}if(l.clients.size>0){const e=new Tr;return Lr(e,l,new Map),Yt(e.restEncoder,0),{missing:c,update:e.toUint8Array()}}return null})(e,s,i),l=s.pendingStructs;if(l){for(const[e,n]of l.missing)if(n<qr(s,e)){t=!0;break}if(o){for(const[e,t]of o.missing){const n=l.missing.get(e);(null==n||n>t)&&l.missing.set(e,t)}l.update=hs([l.update,o.update])}}else s.pendingStructs=o;const c=Er(r,e,s);if(s.pendingDs){const t=new Ar(vn(s.pendingDs));_n(t.restDecoder);const n=Er(t,e,s);s.pendingDs=c&&n?hs([c,n]):c||n}else s.pendingDs=c;if(t){const t=s.pendingStructs.update;s.pendingStructs=null,Pr(e.doc,t)}}),n,!1),Pr=(e,t,n,r=Ar)=>{const s=vn(t);jr(s,e,n,new r(s))};class Rr{constructor(){this.l=[]}}const Mr=()=>new Rr,Nr=(e,t)=>e.l.push(t),$r=(e,t)=>{const n=e.l;n.length;e.l=n.filter((e=>t!==e)),e.l.length},Br=(e,t,n)=>qn(e.l,[t,n]);class Fr{constructor(e,t){this.client=e,this.clock=t}}const Wr=(e,t)=>e===t||null!==e&&null!==t&&e.client===t.client&&e.clock===t.clock,Vr=(e,t)=>new Fr(e,t),Kr=(e,t)=>void 0===t?!e.deleted:t.sv.has(e.id.client)&&(t.sv.get(e.id.client)||0)>e.id.clock&&!wr(t.ds,e.id),Hr=(e,t)=>{const n=wt(e.meta,Hr,_t),r=e.doc.store;n.has(t)||(t.sv.forEach(((t,n)=>{t<qr(r,n)&&Zr(e,Vr(n,t))})),br(e,t.ds,(e=>{})),n.add(t))};class Jr{constructor(){this.clients=new Map,this.pendingStructs=null,this.pendingDs=null}}const zr=e=>{const t=new Map;return e.clients.forEach(((e,n)=>{const r=e[e.length-1];t.set(n,r.id.clock+r.length)})),t},qr=(e,t)=>{const n=e.clients.get(t);if(void 0===n)return 0;const r=n[n.length-1];return r.id.clock+r.length},Yr=(e,t)=>{let n=e.clients.get(t.id.client);if(void 0===n)n=[],e.clients.set(t.id.client,n);else{const e=n[n.length-1];if(e.id.clock+e.length!==t.id.clock)throw pn()}n.push(t)},Gr=(e,t)=>{let n=0,r=e.length-1,s=e[r],i=s.id.clock;if(i===t)return r;let o=At(t/(i+s.length-1)*r);for(;n<=r;){if(s=e[o],i=s.id.clock,i<=t){if(t<i+s.length)return o;n=o+1}else r=o-1;o=At((n+r)/2)}throw pn()},Qr=(e,t)=>{const n=e.clients.get(t.client);return n[Gr(n,t.clock)]},Xr=(e,t,n)=>{const r=Gr(t,n),s=t[r];return s.id.clock<n&&s instanceof Mi?(t.splice(r+1,0,Ri(e,s,n-s.id.clock)),r+1):r},Zr=(e,t)=>{const n=e.doc.store.clients.get(t.client);return n[Xr(e,n,t.clock)]},es=(e,t,n)=>{const r=t.clients.get(n.client),s=Gr(r,n.clock),i=r[s];return n.clock!==i.id.clock+i.length-1&&i.constructor!==yi&&r.splice(s+1,0,Ri(e,i,n.clock-i.id.clock+1)),i},ts=(e,t,n,r,s)=>{if(0===r)return;const i=n+r;let o,l=Xr(e,t,n);do{o=t[l++],i<o.id.clock+o.length&&Xr(e,t,i),s(o)}while(l<t.length&&t[l].id.clock<i)};class ns{constructor(e,t,n){this.doc=e,this.deleteSet=new vr,this.beforeState=zr(e.store),this.afterState=new Map,this.changed=new Map,this.changedParentTypes=new Map,this._mergeStructs=[],this.origin=t,this.meta=new Map,this.local=n,this.subdocsAdded=new Set,this.subdocsRemoved=new Set,this.subdocsLoaded=new Set,this._needFormattingCleanup=!1}}const rs=(e,t)=>!(0===t.deleteSet.clients.size&&!((e,t)=>{for(const[n,r]of e)if(t(r,n))return!0;return!1})(t.afterState,((e,n)=>t.beforeState.get(n)!==e)))&&(_r(t.deleteSet),((e,t)=>{Lr(e,t.doc.store,t.beforeState)})(e,t),Sr(e,t.deleteSet),!0),ss=(e,t,n)=>{const r=t._item;(null===r||r.id.clock<(e.beforeState.get(r.id.client)||0)&&!r.deleted)&&wt(e.changed,t,_t).add(n)},is=(e,t)=>{let n=e[t],r=e[t-1],s=t;for(;s>0&&(r.deleted===n.deleted&&r.constructor===n.constructor&&r.mergeWith(n));n=r,r=e[--s-1])n instanceof Mi&&null!==n.parentSub&&n.parent._map.get(n.parentSub)===n&&n.parent._map.set(n.parentSub,r);const i=t-s;return i&&e.splice(t+1-i,i),i},os=(e,t)=>{if(t<e.length){const n=e[t],r=n.doc,s=r.store,i=n.deleteSet,o=n._mergeStructs;try{_r(i),n.afterState=zr(n.doc.store),r.emit("beforeObserverCalls",[n,r]);const e=[];n.changed.forEach(((t,r)=>e.push((()=>{null!==r._item&&r._item.deleted||r._callObserver(n,t)})))),e.push((()=>{n.changedParentTypes.forEach(((e,t)=>{t._dEH.l.length>0&&(null===t._item||!t._item.deleted)&&((e=e.filter((e=>null===e.target._item||!e.target._item.deleted))).forEach((e=>{e.currentTarget=t,e._path=null})),e.sort(((e,t)=>e.path.length-t.path.length)),Br(t._dEH,e,n))}))})),e.push((()=>r.emit("afterTransaction",[n,r]))),qn(e,[]),n._needFormattingCleanup&&ii(n)}finally{r.gc&&((e,t,n)=>{for(const[r,s]of e.clients.entries()){const e=t.clients.get(r);for(let r=s.length-1;r>=0;r--){const i=s[r],o=i.clock+i.len;for(let r=Gr(e,i.clock),s=e[r];r<e.length&&s.id.clock<o;s=e[++r]){const s=e[r];if(i.clock+i.len<=s.id.clock)break;s instanceof Mi&&s.deleted&&!s.keep&&n(s)&&s.gc(t,!1)}}}})(i,s,r.gcFilter),((e,t)=>{e.clients.forEach(((e,n)=>{const r=t.clients.get(n);for(let t=e.length-1;t>=0;t--){const n=e[t];for(let e=Ot(r.length-1,1+Gr(r,n.clock+n.len-1)),t=r[e];e>0&&t.id.clock>=n.clock;t=r[e])e-=1+is(r,e)}}))})(i,s),n.afterState.forEach(((e,t)=>{const r=n.beforeState.get(t)||0;if(r!==e){const e=s.clients.get(t),n=Ut(Gr(e,r),1);for(let t=e.length-1;t>=n;)t-=1+is(e,t)}}));for(let e=o.length-1;e>=0;e--){const{client:t,clock:n}=o[e].id,r=s.clients.get(t),i=Gr(r,n);i+1<r.length&&is(r,i+1)>1||i>0&&is(r,i)}if(n.local||n.afterState.get(r.clientID)===n.beforeState.get(r.clientID)||(((...e)=>{pr.forEach((t=>t.print(e)))})(hr,ir,"[yjs] ",or,ur,"Changed the client-id because another client seems to be using it."),r.clientID=xr()),r.emit("afterTransactionCleanup",[n,r]),r._observers.has("update")){const e=new Or;rs(e,n)&&r.emit("update",[e.toUint8Array(),n.origin,r,n])}if(r._observers.has("updateV2")){const e=new Tr;rs(e,n)&&r.emit("updateV2",[e.toUint8Array(),n.origin,r,n])}const{subdocsAdded:l,subdocsLoaded:c,subdocsRemoved:a}=n;(l.size>0||a.size>0||c.size>0)&&(l.forEach((e=>{e.clientID=r.clientID,null==e.collectionid&&(e.collectionid=r.collectionid),r.subdocs.add(e)})),a.forEach((e=>r.subdocs.delete(e))),r.emit("subdocs",[{loaded:c,added:l,removed:a},r,n]),a.forEach((e=>e.destroy()))),e.length<=t+1?(r._transactionCleanups=[],r.emit("afterAllTransactions",[r,e])):os(e,t+1)}}},ls=(e,t,n=null,r=!0)=>{const s=e._transactionCleanups;let i=!1,o=null;null===e._transaction&&(i=!0,e._transaction=new ns(e,n,r),s.push(e._transaction),1===s.length&&e.emit("beforeAllTransactions",[e]),e.emit("beforeTransaction",[e._transaction,e]));try{o=t(e._transaction)}finally{if(i){const t=e._transaction===s[0];e._transaction=null,t&&os(s,0)}}return o};class cs{constructor(e,t){this.gen=function*(e){const t=_n(e.restDecoder);for(let n=0;n<t;n++){const t=_n(e.restDecoder),n=e.readClient();let r=_n(e.restDecoder);for(let s=0;s<t;s++){const t=e.readInfo();if(10===t){const t=_n(e.restDecoder);yield new Bi(Vr(n,r),t),r+=t}else if(0!=(31&t)){const s=0==(192&t),i=new Mi(Vr(n,r),null,(t&jt)===jt?e.readLeftID():null,null,(t&Lt)===Lt?e.readRightID():null,s?e.readParentInfo()?e.readString():e.readLeftID():null,s&&32==(32&t)?e.readString():null,Ni(e,t));yield i,r+=i.length}else{const t=e.readLen();yield new yi(Vr(n,r),t),r+=t}}}}(e),this.curr=null,this.done=!1,this.filterSkips=t,this.next()}next(){do{this.curr=this.gen.next().value||null}while(this.filterSkips&&null!==this.curr&&this.curr.constructor===Bi);return this.curr}}class as{constructor(e){this.currClient=0,this.startClock=0,this.written=0,this.encoder=e,this.clientStructs=[]}}const us=(e,t=Ur,n=Ar)=>{const r=new t,s=new cs(new n(vn(e)),!1);let i=s.curr;if(null!==i){let e=0,t=i.id.client,n=0!==i.id.clock,o=n?0:i.id.clock+i.length;for(;null!==i;i=s.next())t!==i.id.client&&(0!==o&&(e++,Yt(r.restEncoder,t),Yt(r.restEncoder,o)),t=i.id.client,o=0,n=0!==i.id.clock),i.constructor===Bi&&(n=!0),n||(o=i.id.clock+i.length);0!==o&&(e++,Yt(r.restEncoder,t),Yt(r.restEncoder,o));const l=Ht();return Yt(l,e),((e,t)=>{en(e,Jt(t))})(l,r.restEncoder),r.restEncoder=l,r.toUint8Array()}return Yt(r.restEncoder,0),r.toUint8Array()},ds=(e,t)=>{if(e.constructor===yi){const{client:n,clock:r}=e.id;return new yi(Vr(n,r+t),e.length-t)}if(e.constructor===Bi){const{client:n,clock:r}=e.id;return new Bi(Vr(n,r+t),e.length-t)}{const n=e,{client:r,clock:s}=n.id;return new Mi(Vr(r,s+t),null,Vr(r,s+t-1),null,n.rightOrigin,n.parent,n.parentSub,n.content.splice(t))}},hs=(e,t=Ar,n=Tr)=>{if(1===e.length)return e[0];const r=e.map((e=>new t(vn(e))));let s=r.map((e=>new cs(e,!0))),i=null;const o=new n,l=new as(o);for(;s=s.filter((e=>null!==e.curr)),s.sort(((e,t)=>{if(e.curr.id.client===t.curr.id.client){const n=e.curr.id.clock-t.curr.id.clock;return 0===n?e.curr.constructor===t.curr.constructor?0:e.curr.constructor===Bi?1:-1:n}return t.curr.id.client-e.curr.id.client})),0!==s.length;){const e=s[0],t=e.curr.id.client;if(null!==i){let n=e.curr,r=!1;for(;null!==n&&n.id.clock+n.length<=i.struct.id.clock+i.struct.length&&n.id.client>=i.struct.id.client;)n=e.next(),r=!0;if(null===n||n.id.client!==t||r&&n.id.clock>i.struct.id.clock+i.struct.length)continue;if(t!==i.struct.id.client)ps(l,i.struct,i.offset),i={struct:n,offset:0},e.next();else if(i.struct.id.clock+i.struct.length<n.id.clock)if(i.struct.constructor===Bi)i.struct.length=n.id.clock+n.length-i.struct.id.clock;else{ps(l,i.struct,i.offset);const e=n.id.clock-i.struct.id.clock-i.struct.length;i={struct:new Bi(Vr(t,i.struct.id.clock+i.struct.length),e),offset:0}}else{const t=i.struct.id.clock+i.struct.length-n.id.clock;t>0&&(i.struct.constructor===Bi?i.struct.length-=t:n=ds(n,t)),i.struct.mergeWith(n)||(ps(l,i.struct,i.offset),i={struct:n,offset:0},e.next())}}else i={struct:e.curr,offset:0},e.next();for(let n=e.curr;null!==n&&n.id.client===t&&n.id.clock===i.struct.id.clock+i.struct.length&&n.constructor!==Bi;n=e.next())ps(l,i.struct,i.offset),i={struct:n,offset:0}}null!==i&&(ps(l,i.struct,i.offset),i=null),gs(l);const c=r.map((e=>(e=>{const t=new vr,n=_n(e.restDecoder);for(let r=0;r<n;r++){e.resetDsCurVal();const n=_n(e.restDecoder),r=_n(e.restDecoder);if(r>0){const s=wt(t.clients,n,(()=>[]));for(let t=0;t<r;t++)s.push(new mr(e.readDsClock(),e.readDsLen()))}}return t})(e))),a=(e=>{const t=new vr;for(let n=0;n<e.length;n++)e[n].clients.forEach(((r,s)=>{if(!t.clients.has(s)){const i=r.slice();for(let t=n+1;t<e.length;t++)St(i,e[t].clients.get(s)||[]);t.clients.set(s,i)}}));return _r(t),t})(c);return Sr(o,a),o.toUint8Array()},fs=e=>{e.written>0&&(e.clientStructs.push({written:e.written,restEncoder:Jt(e.encoder.restEncoder)}),e.encoder.restEncoder=Ht(),e.written=0)},ps=(e,t,n)=>{e.written>0&&e.currClient!==t.id.client&&fs(e),0===e.written&&(e.currClient=t.id.client,e.encoder.writeClient(t.id.client),Yt(e.encoder.restEncoder,t.id.clock+n)),t.write(e.encoder,n),e.written++},gs=e=>{fs(e);const t=e.encoder.restEncoder;Yt(t,e.clientStructs.length);for(let n=0;n<e.clientStructs.length;n++){const r=e.clientStructs[n];Yt(t,r.written),en(t,r.restEncoder)}},ys="You must not compute changes after the event-handler fired.";class ms{constructor(e,t){this.target=e,this.currentTarget=e,this.transaction=t,this._changes=null,this._keys=null,this._delta=null,this._path=null}get path(){return this._path||(this._path=vs(this.currentTarget,this.target))}deletes(e){return wr(this.transaction.deleteSet,e.id)}get keys(){if(null===this._keys){if(0===this.transaction.doc._transactionCleanups.length)throw hn(ys);const e=new Map,t=this.target;this.transaction.changed.get(t).forEach((n=>{if(null!==n){const r=t._map.get(n);let s,i;if(this.adds(r)){let e=r.left;for(;null!==e&&this.adds(e);)e=e.left;if(this.deletes(r)){if(null===e||!this.deletes(e))return;s="delete",i=kt(e.content.getContent())}else null!==e&&this.deletes(e)?(s="update",i=kt(e.content.getContent())):(s="add",i=void 0)}else{if(!this.deletes(r))return;s="delete",i=kt(r.content.getContent())}e.set(n,{action:s,oldValue:i})}})),this._keys=e}return this._keys}get delta(){return this.changes.delta}adds(e){return e.id.clock>=(this.transaction.beforeState.get(e.id.client)||0)}get changes(){let e=this._changes;if(null===e){if(0===this.transaction.doc._transactionCleanups.length)throw hn(ys);const t=this.target,n=_t(),r=_t(),s=[];e={added:n,deleted:r,delta:s,keys:this.keys};if(this.transaction.changed.get(t).has(null)){let e=null;const i=()=>{e&&s.push(e)};for(let s=t._start;null!==s;s=s.right)s.deleted?this.deletes(s)&&!this.adds(s)&&(null!==e&&void 0!==e.delete||(i(),e={delete:0}),e.delete+=s.length,r.add(s)):this.adds(s)?(null!==e&&void 0!==e.insert||(i(),e={insert:[]}),e.insert=e.insert.concat(s.content.getContent()),n.add(s)):(null!==e&&void 0!==e.retain||(i(),e={retain:0}),e.retain+=s.length);null!==e&&void 0===e.retain&&i()}this._changes=e}return e}}const vs=(e,t)=>{const n=[];for(;null!==t._item&&t!==e;){if(null!==t._item.parentSub)n.unshift(t._item.parentSub);else{let e=0,r=t._item.parent._start;for(;r!==t._item&&null!==r;)!r.deleted&&r.countable&&(e+=r.length),r=r.right;n.unshift(e)}t=t._item.parent}return n},bs=()=>{((...e)=>{e.unshift(hr),pr.forEach((t=>t.print(e)))})("Invalid access: Add Yjs type to a document before reading data.")};let ws=0;class _s{constructor(e,t){e.marker=!0,this.p=e,this.index=t,this.timestamp=ws++}}const ks=(e,t,n)=>{e.p.marker=!1,e.p=t,t.marker=!0,e.index=n,e.timestamp=ws++},Ss=(e,t)=>{if(null===e._start||0===t||null===e._searchMarker)return null;const n=0===e._searchMarker.length?null:e._searchMarker.reduce(((e,n)=>Dt(t-e.index)<Dt(t-n.index)?e:n));let r=e._start,s=0;for(null!==n&&(r=n.p,s=n.index,(e=>{e.timestamp=ws++})(n));null!==r.right&&s<t;){if(!r.deleted&&r.countable){if(t<s+r.length)break;s+=r.length}r=r.right}for(;null!==r.left&&s>t;)r=r.left,!r.deleted&&r.countable&&(s-=r.length);for(;null!==r.left&&r.left.id.client===r.id.client&&r.left.id.clock+r.left.length===r.id.clock;)r=r.left,!r.deleted&&r.countable&&(s-=r.length);return null!==n&&Dt(n.index-s)<r.parent.length/80?(ks(n,r,s),n):((e,t,n)=>{if(e.length>=80){const r=e.reduce(((e,t)=>e.timestamp<t.timestamp?e:t));return ks(r,t,n),r}{const r=new _s(t,n);return e.push(r),r}})(e._searchMarker,r,s)},Es=(e,t,n)=>{for(let r=e.length-1;r>=0;r--){const s=e[r];if(n>0){let t=s.p;for(t.marker=!1;t&&(t.deleted||!t.countable);)t=t.left,t&&!t.deleted&&t.countable&&(s.index-=t.length);if(null===t||!0===t.marker){e.splice(r,1);continue}s.p=t,t.marker=!0}(t<s.index||n>0&&t===s.index)&&(s.index=Ut(t,s.index+n))}},xs=(e,t,n)=>{const r=e,s=t.changedParentTypes;for(;wt(s,e,(()=>[])).push(n),null!==e._item;)e=e._item.parent;Br(r._eH,n,t)};class Cs{constructor(){this._item=null,this._map=new Map,this._start=null,this.doc=null,this._length=0,this._eH=Mr(),this._dEH=Mr(),this._searchMarker=null}get parent(){return this._item?this._item.parent:null}_integrate(e,t){this.doc=e,this._item=t}_copy(){throw fn()}clone(){throw fn()}_write(e){}get _first(){let e=this._start;for(;null!==e&&e.deleted;)e=e.right;return e}_callObserver(e,t){!e.local&&this._searchMarker&&(this._searchMarker.length=0)}observe(e){Nr(this._eH,e)}observeDeep(e){Nr(this._dEH,e)}unobserve(e){$r(this._eH,e)}unobserveDeep(e){$r(this._dEH,e)}toJSON(){}}const Is=(e,t,n)=>{e.doc??bs(),t<0&&(t=e._length+t),n<0&&(n=e._length+n);let r=n-t;const s=[];let i=e._start;for(;null!==i&&r>0;){if(i.countable&&!i.deleted){const e=i.content.getContent();if(e.length<=t)t-=e.length;else{for(let n=t;n<e.length&&r>0;n++)s.push(e[n]),r--;t=0}}i=i.right}return s},As=e=>{e.doc??bs();const t=[];let n=e._start;for(;null!==n;){if(n.countable&&!n.deleted){const e=n.content.getContent();for(let n=0;n<e.length;n++)t.push(e[n])}n=n.right}return t},Ds=(e,t)=>{let n=0,r=e._start;for(e.doc??bs();null!==r;){if(r.countable&&!r.deleted){const s=r.content.getContent();for(let r=0;r<s.length;r++)t(s[r],n++,e)}r=r.right}},Os=(e,t)=>{const n=[];return Ds(e,((r,s)=>{n.push(t(r,s,e))})),n},Us=e=>{let t=e._start,n=null,r=0;return{[Symbol.iterator](){return this},next:()=>{if(null===n){for(;null!==t&&t.deleted;)t=t.right;if(null===t)return{done:!0,value:void 0};n=t.content.getContent(),r=0,t=t.right}const e=n[r++];return n.length<=r&&(n=null),{done:!1,value:e}}}},Ts=(e,t)=>{e.doc??bs();const n=Ss(e,t);let r=e._start;for(null!==n&&(r=n.p,t-=n.index);null!==r;r=r.right)if(!r.deleted&&r.countable){if(t<r.length)return r.content.getContent()[t];t-=r.length}},Ls=(e,t,n,r)=>{let s=n;const i=e.doc,o=i.clientID,l=i.store,c=null===n?t._start:n.right;let a=[];const u=()=>{a.length>0&&(s=new Mi(Vr(o,qr(l,o)),s,s&&s.lastId,c,c&&c.id,t,null,new xi(a)),s.integrate(e,0),a=[])};r.forEach((n=>{if(null===n)a.push(n);else switch(n.constructor){case Number:case Object:case Boolean:case Array:case String:a.push(n);break;default:switch(u(),n.constructor){case Uint8Array:case ArrayBuffer:s=new Mi(Vr(o,qr(l,o)),s,s&&s.lastId,c,c&&c.id,t,null,new mi(new Uint8Array(n))),s.integrate(e,0);break;case Cr:s=new Mi(Vr(o,qr(l,o)),s,s&&s.lastId,c,c&&c.id,t,null,new wi(n)),s.integrate(e,0);break;default:if(!(n instanceof Cs))throw new Error("Unexpected content type in insert operation");s=new Mi(Vr(o,qr(l,o)),s,s&&s.lastId,c,c&&c.id,t,null,new Pi(n)),s.integrate(e,0)}}})),u()},js=()=>hn("Length exceeded!"),Ps=(e,t,n,r)=>{if(n>t._length)throw js();if(0===n)return t._searchMarker&&Es(t._searchMarker,n,r.length),Ls(e,t,null,r);const s=n,i=Ss(t,n);let o=t._start;for(null!==i&&(o=i.p,0===(n-=i.index)&&(o=o.prev,n+=o&&o.countable&&!o.deleted?o.length:0));null!==o;o=o.right)if(!o.deleted&&o.countable){if(n<=o.length){n<o.length&&Zr(e,Vr(o.id.client,o.id.clock+n));break}n-=o.length}return t._searchMarker&&Es(t._searchMarker,s,r.length),Ls(e,t,o,r)},Rs=(e,t,n,r)=>{if(0===r)return;const s=n,i=r,o=Ss(t,n);let l=t._start;for(null!==o&&(l=o.p,n-=o.index);null!==l&&n>0;l=l.right)!l.deleted&&l.countable&&(n<l.length&&Zr(e,Vr(l.id.client,l.id.clock+n)),n-=l.length);for(;r>0&&null!==l;)l.deleted||(r<l.length&&Zr(e,Vr(l.id.client,l.id.clock+r)),l.delete(e),r-=l.length),l=l.right;if(r>0)throw js();t._searchMarker&&Es(t._searchMarker,s,-i+r)},Ms=(e,t,n)=>{const r=t._map.get(n);void 0!==r&&r.delete(e)},Ns=(e,t,n,r)=>{const s=t._map.get(n)||null,i=e.doc,o=i.clientID;let l;if(null==r)l=new xi([r]);else switch(r.constructor){case Number:case Object:case Boolean:case Array:case String:case Date:case BigInt:l=new xi([r]);break;case Uint8Array:l=new mi(r);break;case Cr:l=new wi(r);break;default:if(!(r instanceof Cs))throw new Error("Unexpected content type");l=new Pi(r)}new Mi(Vr(o,qr(i.store,o)),s,s&&s.lastId,null,null,t,n,l).integrate(e,0)},$s=(e,t)=>{e.doc??bs();const n=e._map.get(t);return void 0===n||n.deleted?void 0:n.content.getContent()[n.length-1]},Bs=e=>{const t={};return e.doc??bs(),e._map.forEach(((e,n)=>{e.deleted||(t[n]=e.content.getContent()[e.length-1])})),t},Fs=(e,t)=>{e.doc??bs();const n=e._map.get(t);return void 0!==n&&!n.deleted},Ws=e=>{return e.doc??bs(),t=e._map.entries(),n=e=>!e[1].deleted,gr((()=>{let e;do{e=t.next()}while(!e.done&&!n(e.value));return e}));var t,n};class Vs extends ms{}class Ks extends Cs{constructor(){super(),this._prelimContent=[],this._searchMarker=[]}static from(e){const t=new Ks;return t.push(e),t}_integrate(e,t){super._integrate(e,t),this.insert(0,this._prelimContent),this._prelimContent=null}_copy(){return new Ks}clone(){const e=new Ks;return e.insert(0,this.toArray().map((e=>e instanceof Cs?e.clone():e))),e}get length(){return this.doc??bs(),this._length}_callObserver(e,t){super._callObserver(e,t),xs(this,e,new Vs(this,e))}insert(e,t){null!==this.doc?ls(this.doc,(n=>{Ps(n,this,e,t)})):this._prelimContent.splice(e,0,...t)}push(e){null!==this.doc?ls(this.doc,(t=>{((e,t,n)=>{let r=(t._searchMarker||[]).reduce(((e,t)=>t.index>e.index?t:e),{index:0,p:t._start}).p;if(r)for(;r.right;)r=r.right;Ls(e,t,r,n)})(t,this,e)})):this._prelimContent.push(...e)}unshift(e){this.insert(0,e)}delete(e,t=1){null!==this.doc?ls(this.doc,(n=>{Rs(n,this,e,t)})):this._prelimContent.splice(e,t)}get(e){return Ts(this,e)}toArray(){return As(this)}slice(e=0,t=this.length){return Is(this,e,t)}toJSON(){return this.map((e=>e instanceof Cs?e.toJSON():e))}map(e){return Os(this,e)}forEach(e){Ds(this,e)}[Symbol.iterator](){return Us(this)}_write(e){e.writeTypeRef(Ai)}}class Hs extends ms{constructor(e,t,n){super(e,t),this.keysChanged=n}}class Js extends Cs{constructor(e){super(),this._prelimContent=null,this._prelimContent=void 0===e?new Map:new Map(e)}_integrate(e,t){super._integrate(e,t),this._prelimContent.forEach(((e,t)=>{this.set(t,e)})),this._prelimContent=null}_copy(){return new Js}clone(){const e=new Js;return this.forEach(((t,n)=>{e.set(n,t instanceof Cs?t.clone():t)})),e}_callObserver(e,t){xs(this,e,new Hs(this,e,t))}toJSON(){this.doc??bs();const e={};return this._map.forEach(((t,n)=>{if(!t.deleted){const r=t.content.getContent()[t.length-1];e[n]=r instanceof Cs?r.toJSON():r}})),e}get size(){return[...Ws(this)].length}keys(){return yr(Ws(this),(e=>e[0]))}values(){return yr(Ws(this),(e=>e[1].content.getContent()[e[1].length-1]))}entries(){return yr(Ws(this),(e=>[e[0],e[1].content.getContent()[e[1].length-1]]))}forEach(e){this.doc??bs(),this._map.forEach(((t,n)=>{t.deleted||e(t.content.getContent()[t.length-1],n,this)}))}[Symbol.iterator](){return this.entries()}delete(e){null!==this.doc?ls(this.doc,(t=>{Ms(t,this,e)})):this._prelimContent.delete(e)}set(e,t){return null!==this.doc?ls(this.doc,(n=>{Ns(n,this,e,t)})):this._prelimContent.set(e,t),t}get(e){return $s(this,e)}has(e){return Fs(this,e)}clear(){null!==this.doc?ls(this.doc,(e=>{this.forEach((function(t,n,r){Ms(e,r,n)}))})):this._prelimContent.clear()}_write(e){e.writeTypeRef(Di)}}const zs=(e,t)=>e===t||"object"==typeof e&&"object"==typeof t&&e&&t&&((e,t)=>e===t||Kn(e)===Kn(t)&&((e,t)=>{for(const n in e)if(!t(e[n],n))return!1;return!0})(e,((e,n)=>(void 0!==e||Hn(t,n))&&t[n]===e)))(e,t);class qs{constructor(e,t,n,r){this.left=e,this.right=t,this.index=n,this.currentAttributes=r}forward(){if(null===this.right&&pn(),this.right.content.constructor===ki)this.right.deleted||Xs(this.currentAttributes,this.right.content);else this.right.deleted||(this.index+=this.right.length);this.left=this.right,this.right=this.right.right}}const Ys=(e,t,n)=>{for(;null!==t.right&&n>0;){if(t.right.content.constructor===ki)t.right.deleted||Xs(t.currentAttributes,t.right.content);else t.right.deleted||(n<t.right.length&&Zr(e,Vr(t.right.id.client,t.right.id.clock+n)),t.index+=t.right.length,n-=t.right.length);t.left=t.right,t.right=t.right.right}return t},Gs=(e,t,n,r)=>{const s=new Map,i=r?Ss(t,n):null;if(i){const t=new qs(i.p.left,i.p,i.index,s);return Ys(e,t,n-i.index)}{const r=new qs(null,t._start,0,s);return Ys(e,r,n)}},Qs=(e,t,n,r)=>{for(;null!==n.right&&(!0===n.right.deleted||n.right.content.constructor===ki&&zs(r.get(n.right.content.key),n.right.content.value));)n.right.deleted||r.delete(n.right.content.key),n.forward();const s=e.doc,i=s.clientID;r.forEach(((r,o)=>{const l=n.left,c=n.right,a=new Mi(Vr(i,qr(s.store,i)),l,l&&l.lastId,c,c&&c.id,t,null,new ki(o,r));a.integrate(e,0),n.right=a,n.forward()}))},Xs=(e,t)=>{const{key:n,value:r}=t;null===r?e.delete(n):e.set(n,r)},Zs=(e,t)=>{for(;null!==e.right&&(e.right.deleted||e.right.content.constructor===ki&&zs(t[e.right.content.key]??null,e.right.content.value));)e.forward()},ei=(e,t,n,r)=>{const s=e.doc,i=s.clientID,o=new Map;for(const l in r){const c=r[l],a=n.currentAttributes.get(l)??null;if(!zs(a,c)){o.set(l,a);const{left:r,right:u}=n;n.right=new Mi(Vr(i,qr(s.store,i)),r,r&&r.lastId,u,u&&u.id,t,null,new ki(l,c)),n.right.integrate(e,0),n.forward()}}return o},ti=(e,t,n,r,s)=>{n.currentAttributes.forEach(((e,t)=>{void 0===s[t]&&(s[t]=null)}));const i=e.doc,o=i.clientID;Zs(n,s);const l=ei(e,t,n,s),c=r.constructor===String?new Ci(r):r instanceof Cs?new Pi(r):new _i(r);let{left:a,right:u,index:d}=n;t._searchMarker&&Es(t._searchMarker,n.index,c.getLength()),u=new Mi(Vr(o,qr(i.store,o)),a,a&&a.lastId,u,u&&u.id,t,null,c),u.integrate(e,0),n.right=u,n.index=d,n.forward(),Qs(e,t,n,l)},ni=(e,t,n,r,s)=>{const i=e.doc,o=i.clientID;Zs(n,s);const l=ei(e,t,n,s);e:for(;null!==n.right&&(r>0||l.size>0&&(n.right.deleted||n.right.content.constructor===ki));){if(!n.right.deleted)switch(n.right.content.constructor){case ki:{const{key:t,value:i}=n.right.content,o=s[t];if(void 0!==o){if(zs(o,i))l.delete(t);else{if(0===r)break e;l.set(t,i)}n.right.delete(e)}else n.currentAttributes.set(t,i);break}default:r<n.right.length&&Zr(e,Vr(n.right.id.client,n.right.id.clock+r)),r-=n.right.length}n.forward()}if(r>0){let s="";for(;r>0;r--)s+="\n";n.right=new Mi(Vr(o,qr(i.store,o)),n.left,n.left&&n.left.lastId,n.right,n.right&&n.right.id,t,null,new Ci(s)),n.right.integrate(e,0),n.forward()}Qs(e,t,n,l)},ri=(e,t,n,r,s)=>{let i=t;const o=vt();for(;i&&(!i.countable||i.deleted);){if(!i.deleted&&i.content.constructor===ki){const e=i.content;o.set(e.key,e)}i=i.right}let l=0,c=!1;for(;t!==i;){if(n===t&&(c=!0),!t.deleted){const n=t.content;switch(n.constructor){case ki:{const{key:i,value:a}=n,u=r.get(i)??null;o.get(i)===n&&u!==a||(t.delete(e),l++,c||(s.get(i)??null)!==a||u===a||(null===u?s.delete(i):s.set(i,u))),c||t.deleted||Xs(s,n);break}}}t=t.right}return l},si=e=>{let t=0;return ls(e.doc,(n=>{let r=e._start,s=e._start,i=vt();const o=bt(i);for(;s;){if(!1===s.deleted)if(s.content.constructor===ki)Xs(o,s.content);else t+=ri(n,r,s,i,o),i=bt(o),r=s;s=s.right}})),t},ii=e=>{const t=new Set,n=e.doc;for(const[r,s]of e.afterState.entries()){const i=e.beforeState.get(r)||0;s!==i&&ts(e,n.store.clients.get(r),i,s,(e=>{e.deleted||e.content.constructor!==ki||e.constructor===yi||t.add(e.parent)}))}ls(n,(n=>{br(e,e.deleteSet,(e=>{if(e instanceof yi||!e.parent._hasFormatting||t.has(e.parent))return;const r=e.parent;e.content.constructor===ki?t.add(r):((e,t)=>{for(;t&&t.right&&(t.right.deleted||!t.right.countable);)t=t.right;const n=new Set;for(;t&&(t.deleted||!t.countable);){if(!t.deleted&&t.content.constructor===ki){const r=t.content.key;n.has(r)?t.delete(e):n.add(r)}t=t.left}})(n,e)}));for(const e of t)si(e)}))},oi=(e,t,n)=>{const r=n,s=bt(t.currentAttributes),i=t.right;for(;n>0&&null!==t.right;){if(!1===t.right.deleted)switch(t.right.content.constructor){case Pi:case _i:case Ci:n<t.right.length&&Zr(e,Vr(t.right.id.client,t.right.id.clock+n)),n-=t.right.length,t.right.delete(e)}t.forward()}i&&ri(e,i,t.right,s,t.currentAttributes);const o=(t.left||t.right).parent;return o._searchMarker&&Es(o._searchMarker,t.index,-r+n),t};class li extends ms{constructor(e,t,n){super(e,t),this.childListChanged=!1,this.keysChanged=new Set,n.forEach((e=>{null===e?this.childListChanged=!0:this.keysChanged.add(e)}))}get changes(){if(null===this._changes){const e={keys:this.keys,delta:this.delta,added:new Set,deleted:new Set};this._changes=e}return this._changes}get delta(){if(null===this._delta){const e=this.target.doc,t=[];ls(e,(e=>{const n=new Map,r=new Map;let s=this.target._start,i=null;const o={};let l="",c=0,a=0;const u=()=>{if(null!==i){let e=null;switch(i){case"delete":a>0&&(e={delete:a}),a=0;break;case"insert":("object"==typeof l||l.length>0)&&(e={insert:l},n.size>0&&(e.attributes={},n.forEach(((t,n)=>{null!==t&&(e.attributes[n]=t)})))),l="";break;case"retain":c>0&&(e={retain:c},(e=>{for(const t in e)return!1;return!0})(o)||(e.attributes=Fn({},o))),c=0}e&&t.push(e),i=null}};for(;null!==s;){switch(s.content.constructor){case Pi:case _i:this.adds(s)?this.deletes(s)||(u(),i="insert",l=s.content.getContent()[0],u()):this.deletes(s)?("delete"!==i&&(u(),i="delete"),a+=1):s.deleted||("retain"!==i&&(u(),i="retain"),c+=1);break;case Ci:this.adds(s)?this.deletes(s)||("insert"!==i&&(u(),i="insert"),l+=s.content.str):this.deletes(s)?("delete"!==i&&(u(),i="delete"),a+=s.length):s.deleted||("retain"!==i&&(u(),i="retain"),c+=s.length);break;case ki:{const{key:t,value:l}=s.content;if(this.adds(s)){if(!this.deletes(s)){const c=n.get(t)??null;zs(c,l)?null!==l&&s.delete(e):("retain"===i&&u(),zs(l,r.get(t)??null)?delete o[t]:o[t]=l)}}else if(this.deletes(s)){r.set(t,l);const e=n.get(t)??null;zs(e,l)||("retain"===i&&u(),o[t]=e)}else if(!s.deleted){r.set(t,l);const n=o[t];void 0!==n&&(zs(n,l)?null!==n&&s.delete(e):("retain"===i&&u(),null===l?delete o[t]:o[t]=l))}s.deleted||("insert"===i&&u(),Xs(n,s.content));break}}s=s.right}for(u();t.length>0;){const e=t[t.length-1];if(void 0===e.retain||void 0!==e.attributes)break;t.pop()}})),this._delta=t}return this._delta}}class ci extends Cs{constructor(e){super(),this._pending=void 0!==e?[()=>this.insert(0,e)]:[],this._searchMarker=[],this._hasFormatting=!1}get length(){return this.doc??bs(),this._length}_integrate(e,t){super._integrate(e,t);try{this._pending.forEach((e=>e()))}catch(e){}this._pending=null}_copy(){return new ci}clone(){const e=new ci;return e.applyDelta(this.toDelta()),e}_callObserver(e,t){super._callObserver(e,t);const n=new li(this,e,t);xs(this,e,n),!e.local&&this._hasFormatting&&(e._needFormattingCleanup=!0)}toString(){this.doc??bs();let e="",t=this._start;for(;null!==t;)!t.deleted&&t.countable&&t.content.constructor===Ci&&(e+=t.content.str),t=t.right;return e}toJSON(){return this.toString()}applyDelta(e,{sanitize:t=!0}={}){null!==this.doc?ls(this.doc,(n=>{const r=new qs(null,this._start,0,new Map);for(let s=0;s<e.length;s++){const i=e[s];if(void 0!==i.insert){const o=t||"string"!=typeof i.insert||s!==e.length-1||null!==r.right||"\n"!==i.insert.slice(-1)?i.insert:i.insert.slice(0,-1);("string"!=typeof o||o.length>0)&&ti(n,this,r,o,i.attributes||{})}else void 0!==i.retain?ni(n,this,r,i.retain,i.attributes||{}):void 0!==i.delete&&oi(n,r,i.delete)}})):this._pending.push((()=>this.applyDelta(e)))}toDelta(e,t,n){this.doc??bs();const r=[],s=new Map,i=this.doc;let o="",l=this._start;function c(){if(o.length>0){const e={};let t=!1;s.forEach(((n,r)=>{t=!0,e[r]=n}));const n={insert:o};t&&(n.attributes=e),r.push(n),o=""}}const a=()=>{for(;null!==l;){if(Kr(l,e)||void 0!==t&&Kr(l,t))switch(l.content.constructor){case Ci:{const r=s.get("ychange");void 0===e||Kr(l,e)?void 0===t||Kr(l,t)?void 0!==r&&(c(),s.delete("ychange")):void 0!==r&&r.user===l.id.client&&"added"===r.type||(c(),s.set("ychange",n?n("added",l.id):{type:"added"})):void 0!==r&&r.user===l.id.client&&"removed"===r.type||(c(),s.set("ychange",n?n("removed",l.id):{type:"removed"})),o+=l.content.str;break}case Pi:case _i:{c();const e={insert:l.content.getContent()[0]};if(s.size>0){const t={};e.attributes=t,s.forEach(((e,n)=>{t[n]=e}))}r.push(e);break}case ki:Kr(l,e)&&(c(),Xs(s,l.content))}l=l.right}c()};return e||t?ls(i,(n=>{e&&Hr(n,e),t&&Hr(n,t),a()}),"cleanup"):a(),r}insert(e,t,n){if(t.length<=0)return;const r=this.doc;null!==r?ls(r,(r=>{const s=Gs(r,this,e,!n);n||(n={},s.currentAttributes.forEach(((e,t)=>{n[t]=e}))),ti(r,this,s,t,n)})):this._pending.push((()=>this.insert(e,t,n)))}insertEmbed(e,t,n){const r=this.doc;null!==r?ls(r,(r=>{const s=Gs(r,this,e,!n);ti(r,this,s,t,n||{})})):this._pending.push((()=>this.insertEmbed(e,t,n||{})))}delete(e,t){if(0===t)return;const n=this.doc;null!==n?ls(n,(n=>{oi(n,Gs(n,this,e,!0),t)})):this._pending.push((()=>this.delete(e,t)))}format(e,t,n){if(0===t)return;const r=this.doc;null!==r?ls(r,(r=>{const s=Gs(r,this,e,!1);null!==s.right&&ni(r,this,s,t,n)})):this._pending.push((()=>this.format(e,t,n)))}removeAttribute(e){null!==this.doc?ls(this.doc,(t=>{Ms(t,this,e)})):this._pending.push((()=>this.removeAttribute(e)))}setAttribute(e,t){null!==this.doc?ls(this.doc,(n=>{Ns(n,this,e,t)})):this._pending.push((()=>this.setAttribute(e,t)))}getAttribute(e){return $s(this,e)}getAttributes(){return Bs(this)}_write(e){e.writeTypeRef(Oi)}}class ai{constructor(e,t=(()=>!0)){this._filter=t,this._root=e,this._currentNode=e._start,this._firstCall=!0,e.doc??bs()}[Symbol.iterator](){return this}next(){let e=this._currentNode,t=e&&e.content&&e.content.type;if(null!==e&&(!this._firstCall||e.deleted||!this._filter(t)))do{if(t=e.content.type,e.deleted||t.constructor!==di&&t.constructor!==ui||null===t._start)for(;null!==e;){const t=e.next;if(null!==t){e=t;break}e=e.parent===this._root?null:e.parent._item}else e=t._start}while(null!==e&&(e.deleted||!this._filter(e.content.type)));return this._firstCall=!1,null===e?{value:void 0,done:!0}:(this._currentNode=e,{value:e.content.type,done:!1})}}class ui extends Cs{constructor(){super(),this._prelimContent=[]}get firstChild(){const e=this._first;return e?e.content.getContent()[0]:null}_integrate(e,t){super._integrate(e,t),this.insert(0,this._prelimContent),this._prelimContent=null}_copy(){return new ui}clone(){const e=new ui;return e.insert(0,this.toArray().map((e=>e instanceof Cs?e.clone():e))),e}get length(){return this.doc??bs(),null===this._prelimContent?this._length:this._prelimContent.length}createTreeWalker(e){return new ai(this,e)}querySelector(e){e=e.toUpperCase();const t=new ai(this,(t=>t.nodeName&&t.nodeName.toUpperCase()===e)).next();return t.done?null:t.value}querySelectorAll(e){return e=e.toUpperCase(),Et(new ai(this,(t=>t.nodeName&&t.nodeName.toUpperCase()===e)))}_callObserver(e,t){xs(this,e,new hi(this,t,e))}toString(){return Os(this,(e=>e.toString())).join("")}toJSON(){return this.toString()}toDOM(e=document,t={},n){const r=e.createDocumentFragment();return void 0!==n&&n._createAssociation(r,this),Ds(this,(s=>{r.insertBefore(s.toDOM(e,t,n),null)})),r}insert(e,t){null!==this.doc?ls(this.doc,(n=>{Ps(n,this,e,t)})):this._prelimContent.splice(e,0,...t)}insertAfter(e,t){if(null!==this.doc)ls(this.doc,(n=>{const r=e&&e instanceof Cs?e._item:e;Ls(n,this,r,t)}));else{const n=this._prelimContent,r=null===e?0:n.findIndex((t=>t===e))+1;if(0===r&&null!==e)throw hn("Reference item not found");n.splice(r,0,...t)}}delete(e,t=1){null!==this.doc?ls(this.doc,(n=>{Rs(n,this,e,t)})):this._prelimContent.splice(e,t)}toArray(){return As(this)}push(e){this.insert(this.length,e)}unshift(e){this.insert(0,e)}get(e){return Ts(this,e)}slice(e=0,t=this.length){return Is(this,e,t)}forEach(e){Ds(this,e)}_write(e){e.writeTypeRef(Ti)}}class di extends ui{constructor(e="UNDEFINED"){super(),this.nodeName=e,this._prelimAttrs=new Map}get nextSibling(){const e=this._item?this._item.next:null;return e?e.content.type:null}get prevSibling(){const e=this._item?this._item.prev:null;return e?e.content.type:null}_integrate(e,t){super._integrate(e,t),this._prelimAttrs.forEach(((e,t)=>{this.setAttribute(t,e)})),this._prelimAttrs=null}_copy(){return new di(this.nodeName)}clone(){const e=new di(this.nodeName);return((e,t)=>{for(const n in e)t(e[n],n)})(this.getAttributes(),((t,n)=>{"string"==typeof t&&e.setAttribute(n,t)})),e.insert(0,this.toArray().map((e=>e instanceof Cs?e.clone():e))),e}toString(){const e=this.getAttributes(),t=[],n=[];for(const t in e)n.push(t);n.sort();const r=n.length;for(let s=0;s<r;s++){const r=n[s];t.push(r+'="'+e[r]+'"')}const s=this.nodeName.toLocaleLowerCase();return`<${s}${t.length>0?" "+t.join(" "):""}>${super.toString()}</${s}>`}removeAttribute(e){null!==this.doc?ls(this.doc,(t=>{Ms(t,this,e)})):this._prelimAttrs.delete(e)}setAttribute(e,t){null!==this.doc?ls(this.doc,(n=>{Ns(n,this,e,t)})):this._prelimAttrs.set(e,t)}getAttribute(e){return $s(this,e)}hasAttribute(e){return Fs(this,e)}getAttributes(e){return e?((e,t)=>{const n={};return e._map.forEach(((e,r)=>{let s=e;for(;null!==s&&(!t.sv.has(s.id.client)||s.id.clock>=(t.sv.get(s.id.client)||0));)s=s.left;null!==s&&Kr(s,t)&&(n[r]=s.content.getContent()[s.length-1])})),n})(this,e):Bs(this)}toDOM(e=document,t={},n){const r=e.createElement(this.nodeName),s=this.getAttributes();for(const e in s){const t=s[e];"string"==typeof t&&r.setAttribute(e,t)}return Ds(this,(s=>{r.appendChild(s.toDOM(e,t,n))})),void 0!==n&&n._createAssociation(r,this),r}_write(e){e.writeTypeRef(Ui),e.writeKey(this.nodeName)}}class hi extends ms{constructor(e,t,n){super(e,n),this.childListChanged=!1,this.attributesChanged=new Set,t.forEach((e=>{null===e?this.childListChanged=!0:this.attributesChanged.add(e)}))}}class fi extends Js{constructor(e){super(),this.hookName=e}_copy(){return new fi(this.hookName)}clone(){const e=new fi(this.hookName);return this.forEach(((t,n)=>{e.set(n,t)})),e}toDOM(e=document,t={},n){const r=t[this.hookName];let s;return s=void 0!==r?r.createDom(this):document.createElement(this.hookName),s.setAttribute("data-yjs-hook",this.hookName),void 0!==n&&n._createAssociation(s,this),s}_write(e){e.writeTypeRef(Li),e.writeKey(this.hookName)}}class pi extends ci{get nextSibling(){const e=this._item?this._item.next:null;return e?e.content.type:null}get prevSibling(){const e=this._item?this._item.prev:null;return e?e.content.type:null}_copy(){return new pi}clone(){const e=new pi;return e.applyDelta(this.toDelta()),e}toDOM(e=document,t,n){const r=e.createTextNode(this.toString());return void 0!==n&&n._createAssociation(r,this),r}toString(){return this.toDelta().map((e=>{const t=[];for(const n in e.attributes){const r=[];for(const t in e.attributes[n])r.push({key:t,value:e.attributes[n][t]});r.sort(((e,t)=>e.key<t.key?-1:1)),t.push({nodeName:n,attrs:r})}t.sort(((e,t)=>e.nodeName<t.nodeName?-1:1));let n="";for(let e=0;e<t.length;e++){const r=t[e];n+=`<${r.nodeName}`;for(let e=0;e<r.attrs.length;e++){const t=r.attrs[e];n+=` ${t.key}="${t.value}"`}n+=">"}n+=e.insert;for(let e=t.length-1;e>=0;e--)n+=`</${t[e].nodeName}>`;return n})).join("")}toJSON(){return this.toString()}_write(e){e.writeTypeRef(ji)}}class gi{constructor(e,t){this.id=e,this.length=t}get deleted(){throw fn()}mergeWith(e){return!1}write(e,t,n){throw fn()}integrate(e,t){throw fn()}}class yi extends gi{get deleted(){return!0}delete(){}mergeWith(e){return this.constructor===e.constructor&&(this.length+=e.length,!0)}integrate(e,t){t>0&&(this.id.clock+=t,this.length-=t),Yr(e.doc.store,this)}write(e,t){e.writeInfo(0),e.writeLen(this.length-t)}getMissing(e,t){return null}}class mi{constructor(e){this.content=e}getLength(){return 1}getContent(){return[this.content]}isCountable(){return!0}copy(){return new mi(this.content)}splice(e){throw fn()}mergeWith(e){return!1}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeBuf(this.content)}getRef(){return 3}}class vi{constructor(e){this.len=e}getLength(){return this.len}getContent(){return[]}isCountable(){return!1}copy(){return new vi(this.len)}splice(e){const t=new vi(this.len-e);return this.len=e,t}mergeWith(e){return this.len+=e.len,!0}integrate(e,t){kr(e.deleteSet,t.id.client,t.id.clock,this.len),t.markDeleted()}delete(e){}gc(e){}write(e,t){e.writeLen(this.len-t)}getRef(){return 1}}const bi=(e,t)=>new Cr({guid:e,...t,shouldLoad:t.shouldLoad||t.autoLoad||!1});class wi{constructor(e){e._item,this.doc=e;const t={};this.opts=t,e.gc||(t.gc=!1),e.autoLoad&&(t.autoLoad=!0),null!==e.meta&&(t.meta=e.meta)}getLength(){return 1}getContent(){return[this.doc]}isCountable(){return!0}copy(){return new wi(bi(this.doc.guid,this.opts))}splice(e){throw fn()}mergeWith(e){return!1}integrate(e,t){this.doc._item=t,e.subdocsAdded.add(this.doc),this.doc.shouldLoad&&e.subdocsLoaded.add(this.doc)}delete(e){e.subdocsAdded.has(this.doc)?e.subdocsAdded.delete(this.doc):e.subdocsRemoved.add(this.doc)}gc(e){}write(e,t){e.writeString(this.doc.guid),e.writeAny(this.opts)}getRef(){return 9}}class _i{constructor(e){this.embed=e}getLength(){return 1}getContent(){return[this.embed]}isCountable(){return!0}copy(){return new _i(this.embed)}splice(e){throw fn()}mergeWith(e){return!1}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeJSON(this.embed)}getRef(){return 5}}class ki{constructor(e,t){this.key=e,this.value=t}getLength(){return 1}getContent(){return[]}isCountable(){return!1}copy(){return new ki(this.key,this.value)}splice(e){throw fn()}mergeWith(e){return!1}integrate(e,t){const n=t.parent;n._searchMarker=null,n._hasFormatting=!0}delete(e){}gc(e){}write(e,t){e.writeKey(this.key),e.writeJSON(this.value)}getRef(){return 6}}class Si{constructor(e){this.arr=e}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new Si(this.arr)}splice(e){const t=new Si(this.arr.slice(e));return this.arr=this.arr.slice(0,e),t}mergeWith(e){return this.arr=this.arr.concat(e.arr),!0}integrate(e,t){}delete(e){}gc(e){}write(e,t){const n=this.arr.length;e.writeLen(n-t);for(let r=t;r<n;r++){const t=this.arr[r];e.writeString(void 0===t?"undefined":JSON.stringify(t))}}getRef(){return 2}}const Ei="development"===Zn("node_env");class xi{constructor(e){this.arr=e,Ei&&zn(e)}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new xi(this.arr)}splice(e){const t=new xi(this.arr.slice(e));return this.arr=this.arr.slice(0,e),t}mergeWith(e){return this.arr=this.arr.concat(e.arr),!0}integrate(e,t){}delete(e){}gc(e){}write(e,t){const n=this.arr.length;e.writeLen(n-t);for(let r=t;r<n;r++){const t=this.arr[r];e.writeAny(t)}}getRef(){return 8}}class Ci{constructor(e){this.str=e}getLength(){return this.str.length}getContent(){return this.str.split("")}isCountable(){return!0}copy(){return new Ci(this.str)}splice(e){const t=new Ci(this.str.slice(e));this.str=this.str.slice(0,e);const n=this.str.charCodeAt(e-1);return n>=55296&&n<=56319&&(this.str=this.str.slice(0,e-1)+"�",t.str="�"+t.str.slice(1)),t}mergeWith(e){return this.str+=e.str,!0}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeString(0===t?this.str:this.str.slice(t))}getRef(){return 4}}const Ii=[e=>new Ks,e=>new Js,e=>new ci,e=>new di(e.readKey()),e=>new ui,e=>new fi(e.readKey()),e=>new pi],Ai=0,Di=1,Oi=2,Ui=3,Ti=4,Li=5,ji=6;class Pi{constructor(e){this.type=e}getLength(){return 1}getContent(){return[this.type]}isCountable(){return!0}copy(){return new Pi(this.type._copy())}splice(e){throw fn()}mergeWith(e){return!1}integrate(e,t){this.type._integrate(e.doc,t)}delete(e){let t=this.type._start;for(;null!==t;)t.deleted?t.id.clock<(e.beforeState.get(t.id.client)||0)&&e._mergeStructs.push(t):t.delete(e),t=t.right;this.type._map.forEach((t=>{t.deleted?t.id.clock<(e.beforeState.get(t.id.client)||0)&&e._mergeStructs.push(t):t.delete(e)})),e.changed.delete(this.type)}gc(e){let t=this.type._start;for(;null!==t;)t.gc(e,!0),t=t.right;this.type._start=null,this.type._map.forEach((t=>{for(;null!==t;)t.gc(e,!0),t=t.left})),this.type._map=new Map}write(e,t){this.type._write(e)}getRef(){return 7}}const Ri=(e,t,n)=>{const{client:r,clock:s}=t.id,i=new Mi(Vr(r,s+n),t,Vr(r,s+n-1),t.right,t.rightOrigin,t.parent,t.parentSub,t.content.splice(n));return t.deleted&&i.markDeleted(),t.keep&&(i.keep=!0),null!==t.redone&&(i.redone=Vr(t.redone.client,t.redone.clock+n)),t.right=i,null!==i.right&&(i.right.left=i),e._mergeStructs.push(i),null!==i.parentSub&&null===i.right&&i.parent._map.set(i.parentSub,i),t.length=n,i};class Mi extends gi{constructor(e,t,n,r,s,i,o,l){super(e,l.getLength()),this.origin=n,this.left=t,this.right=r,this.rightOrigin=s,this.parent=i,this.parentSub=o,this.redone=null,this.content=l,this.info=this.content.isCountable()?2:0}set marker(e){(8&this.info)>0!==e&&(this.info^=8)}get marker(){return(8&this.info)>0}get keep(){return(1&this.info)>0}set keep(e){this.keep!==e&&(this.info^=1)}get countable(){return(2&this.info)>0}get deleted(){return(4&this.info)>0}set deleted(e){this.deleted!==e&&(this.info^=4)}markDeleted(){this.info|=4}getMissing(e,t){if(this.origin&&this.origin.client!==this.id.client&&this.origin.clock>=qr(t,this.origin.client))return this.origin.client;if(this.rightOrigin&&this.rightOrigin.client!==this.id.client&&this.rightOrigin.clock>=qr(t,this.rightOrigin.client))return this.rightOrigin.client;if(this.parent&&this.parent.constructor===Fr&&this.id.client!==this.parent.client&&this.parent.clock>=qr(t,this.parent.client))return this.parent.client;if(this.origin&&(this.left=es(e,t,this.origin),this.origin=this.left.lastId),this.rightOrigin&&(this.right=Zr(e,this.rightOrigin),this.rightOrigin=this.right.id),this.left&&this.left.constructor===yi||this.right&&this.right.constructor===yi)this.parent=null;else if(this.parent){if(this.parent.constructor===Fr){const e=Qr(t,this.parent);e.constructor===yi?this.parent=null:this.parent=e.content.type}}else this.left&&this.left.constructor===Mi?(this.parent=this.left.parent,this.parentSub=this.left.parentSub):this.right&&this.right.constructor===Mi&&(this.parent=this.right.parent,this.parentSub=this.right.parentSub);return null}integrate(e,t){if(t>0&&(this.id.clock+=t,this.left=es(e,e.doc.store,Vr(this.id.client,this.id.clock-1)),this.origin=this.left.lastId,this.content=this.content.splice(t),this.length-=t),this.parent){if(!this.left&&(!this.right||null!==this.right.left)||this.left&&this.left.right!==this.right){let t,n=this.left;if(null!==n)t=n.right;else if(null!==this.parentSub)for(t=this.parent._map.get(this.parentSub)||null;null!==t&&null!==t.left;)t=t.left;else t=this.parent._start;const r=new Set,s=new Set;for(;null!==t&&t!==this.right;){if(s.add(t),r.add(t),Wr(this.origin,t.origin)){if(t.id.client<this.id.client)n=t,r.clear();else if(Wr(this.rightOrigin,t.rightOrigin))break}else{if(null===t.origin||!s.has(Qr(e.doc.store,t.origin)))break;r.has(Qr(e.doc.store,t.origin))||(n=t,r.clear())}t=t.right}this.left=n}if(null!==this.left){const e=this.left.right;this.right=e,this.left.right=this}else{let e;if(null!==this.parentSub)for(e=this.parent._map.get(this.parentSub)||null;null!==e&&null!==e.left;)e=e.left;else e=this.parent._start,this.parent._start=this;this.right=e}null!==this.right?this.right.left=this:null!==this.parentSub&&(this.parent._map.set(this.parentSub,this),null!==this.left&&this.left.delete(e)),null===this.parentSub&&this.countable&&!this.deleted&&(this.parent._length+=this.length),Yr(e.doc.store,this),this.content.integrate(e,this),ss(e,this.parent,this.parentSub),(null!==this.parent._item&&this.parent._item.deleted||null!==this.parentSub&&null!==this.right)&&this.delete(e)}else new yi(this.id,this.length).integrate(e,0)}get next(){let e=this.right;for(;null!==e&&e.deleted;)e=e.right;return e}get prev(){let e=this.left;for(;null!==e&&e.deleted;)e=e.left;return e}get lastId(){return 1===this.length?this.id:Vr(this.id.client,this.id.clock+this.length-1)}mergeWith(e){if(this.constructor===e.constructor&&Wr(e.origin,this.lastId)&&this.right===e&&Wr(this.rightOrigin,e.rightOrigin)&&this.id.client===e.id.client&&this.id.clock+this.length===e.id.clock&&this.deleted===e.deleted&&null===this.redone&&null===e.redone&&this.content.constructor===e.content.constructor&&this.content.mergeWith(e.content)){const t=this.parent._searchMarker;return t&&t.forEach((t=>{t.p===e&&(t.p=this,!this.deleted&&this.countable&&(t.index-=this.length))})),e.keep&&(this.keep=!0),this.right=e.right,null!==this.right&&(this.right.left=this),this.length+=e.length,!0}return!1}delete(e){if(!this.deleted){const t=this.parent;this.countable&&null===this.parentSub&&(t._length-=this.length),this.markDeleted(),kr(e.deleteSet,this.id.client,this.id.clock,this.length),ss(e,t,this.parentSub),this.content.delete(e)}}gc(e,t){if(!this.deleted)throw pn();this.content.gc(e),t?((e,t,n)=>{const r=e.clients.get(t.id.client);r[Gr(r,t.id.clock)]=n})(e,this,new yi(this.id,this.length)):this.content=new vi(this.length)}write(e,t){const n=t>0?Vr(this.id.client,this.id.clock+t-1):this.origin,r=this.rightOrigin,s=this.parentSub,i=31&this.content.getRef()|(null===n?0:jt)|(null===r?0:Lt)|(null===s?0:32);if(e.writeInfo(i),null!==n&&e.writeLeftID(n),null!==r&&e.writeRightID(r),null===n&&null===r){const t=this.parent;if(void 0!==t._item){const n=t._item;if(null===n){const n=(e=>{for(const[t,n]of e.doc.share.entries())if(n===e)return t;throw pn()})(t);e.writeParentInfo(!0),e.writeString(n)}else e.writeParentInfo(!1),e.writeLeftID(n.id)}else t.constructor===String?(e.writeParentInfo(!0),e.writeString(t)):t.constructor===Fr?(e.writeParentInfo(!1),e.writeLeftID(t)):pn();null!==s&&e.writeString(s)}this.content.write(e,t)}}const Ni=(e,t)=>$i[31&t](e),$i=[()=>{pn()},e=>new vi(e.readLen()),e=>{const t=e.readLen(),n=[];for(let r=0;r<t;r++){const t=e.readString();"undefined"===t?n.push(void 0):n.push(JSON.parse(t))}return new Si(n)},e=>new mi(e.readBuf()),e=>new Ci(e.readString()),e=>new _i(e.readJSON()),e=>new ki(e.readKey(),e.readJSON()),e=>new Pi(Ii[e.readTypeRef()](e)),e=>{const t=e.readLen(),n=[];for(let r=0;r<t;r++)n.push(e.readAny());return new xi(n)},e=>new wi(bi(e.readString(),e.readAny())),()=>{pn()}];class Bi extends gi{get deleted(){return!0}delete(){}mergeWith(e){return this.constructor===e.constructor&&(this.length+=e.length,!0)}integrate(e,t){pn()}write(e,t){e.writeInfo(10),Yt(e.restEncoder,this.length-t)}getMissing(e,t){return null}}const Fi="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},Wi="__ $YJS$ __";function Vi(e,t,n){var r,s,i;if(!e.dx._allTables[t])return;const o=null===(i=null===(s=null===(r=e.table(t))||void 0===r?void 0:r.schema.yProps)||void 0===s?void 0:s.find((e=>e.prop===n)))||void 0===i?void 0:i.updatesTable;return o&&e.dx._allTables[o]?e.table(o):void 0}Fi[Wi],Fi[Wi]=!0;const Ki=new FinalizationRegistry((({cache:e,key:t})=>{delete e[t]}));function Hi(e){var t,n;return null!==(t=(n=e._novip)._docCache)&&void 0!==t?t:n._docCache={cache:{},get size(){return Object.keys(this.cache).length},find(e,t,n){const r=qi(e,t,n),s=this.cache[r];return s?s.deref():void 0},add(e){var t;const{parentTable:n,parentId:r,parentProp:s}=e.meta;if(!n||!s||null==r)throw new Error("Missing Dexie-related metadata in Y.Doc");const i=qi(n,r,s),o=null===(t=this.cache[i])||void 0===t?void 0:t.deref();o&&Ki.unregister(o),this.cache[i]=new WeakRef(e),Ki.register(e,{cache:this.cache,key:i},e)},delete(e){Ki.unregister(e);const t=qi(e.meta.parentTable,e.meta.parentId,e.meta.parentProp),n=this.cache[t];(null==n?void 0:n.deref())===e&&delete this.cache[t]}}}const Ji=new WeakSet;function zi(e){if(Ji.has(e))throw new Error(`Y.Doc ${e.meta.parentId} has been destroyed`)}function qi(e,t,n){return`${e}[${t}].${n}`}let Yi=null;function Gi(e){Yi=e}function Qi(){}const Xi=new WeakMap;function Zi(){return e.Dexie.Events(null,"load","sync","error")}class eo{static getOrCreateDocument(e,t,n,r){var s,i;const o=Hi(e),l=null===(i=null===(s=e.table(t).schema.yProps)||void 0===s?void 0:s.find((e=>e.prop===n)))||void 0===i?void 0:i.updatesTable;if(!l)throw new Error(`Updates table for ${t}.${n} not found`);return function(e,t,n,r,s,i){let o=t.find(n,i,r);return o||(o=new Cr({meta:{db:e,updatesTable:s,parentProp:r,parentTable:n,parentId:i}}),t.add(o),o.on("destroy",(()=>{Ji.add(o),t.delete(o)})),o)}(e,o,t,n,l,r)}static load(e,t){var n;let r=Xi.get(e);return r?(++r.refCount,null!=(null==t?void 0:t.gracePeriod)&&r.graceTimeout<t.gracePeriod&&(r.graceTimeout=t.gracePeriod),r.graceTimer&&(clearTimeout(r.graceTimer),r.graceTimer=null)):(r=new eo(e),r.graceTimeout=null!==(n=null==t?void 0:t.gracePeriod)&&void 0!==n?n:-1,Xi.set(e,r)),r}static release(e){if(!e||Ji.has(e))return;const t=Xi.get(e);t?--t.refCount<=0&&(t.graceTimeout<0?t._release():t.graceTimer||(t.graceTimer=setTimeout((()=>{t.graceTimer=null,0===t.refCount&&t._release()}),t.graceTimeout))):e.destroy()}_release(){this.doc&&Promise.resolve(eo.on("beforeunload").fire(this)).finally((()=>{var e;0===this.refCount&&(null===(e=this.doc)||void 0===e||e.destroy())}))}static for(e){return Xi.get(e)}static get currentUpdateRow(){return Yi}get whenLoaded(){return this._whenLoaded||(this._whenLoaded=new Promise(((t,n)=>{this.doc?this.doc.isLoaded?t():this._error?n(this._error):Ji.has(this.doc)?n(new e.Dexie.AbortError("Document was destroyed before loaded")):(this.on("load",t),this.on("error",n),this.doc.on("destroy",(()=>n(new e.Dexie.AbortError("Document was destroyed before loaded"))))):n(new Error("No Y.Doc associated with this provider"))}))),this._whenLoaded}get whenSynced(){return this._whenSynced||(this._whenSynced=new Promise(((t,n)=>{this.doc?this.doc.isSynced?t():this._error?n(this._error):Ji.has(this.doc)?n(new e.Dexie.AbortError("Document was destroyed before synced")):(this.on("sync",t),this.on("error",n),this.doc.on("destroy",(()=>n(new e.Dexie.AbortError("Document was destroyed before synced"))))):n(new Error("No Y.Doc associated with this provider"))}))),this._whenSynced}constructor(t){this.refCount=1,this.cleanupHandlers=[],this.graceTimeout=-1,this.doc=null,this.destroyed=!1,this.on=Zi(),this.doc=t,this.off=(e,t)=>{var n;return null===(n=this.on[e])||void 0===n?void 0:n.unsubscribe(t)},"dispose"in Symbol&&(this[Symbol.dispose]=()=>eo.release(t)),t.on("load",(()=>this.on("load").fire())),t.on("sync",(e=>!1!==e&&this.on("sync").fire())),t.on("destroy",this.destroy.bind(this)),this.on("error",(e=>{this._error=e}));const{db:n,parentTable:r,parentId:s,updatesTable:i}=t.meta||{};if(!n||!r||!i)throw new Error("Missing Dexie-related metadata in Y.Doc. Documents need to be obtained through Y.Doc properties from dexie queries.");if(!n.table(r)||!n.table(i))throw new Error(`Table ${r} or ${i} not found in db`);zi(t),this.stopObserving=function(t,n,r,s,i,o){let l=0,c=!0;const a=e.liveQuery((()=>{zi(n);const t=r.table(i);return Promise.all([(l>0?t.where("i").between(l,1/0,!1).toArray().then((t=>t.filter((t=>0===e.cmp(t.k,o))))):t.where({k:o}).toArray()).then((e=>e)),r.table(s).where(":id").equals(o).toArray()])})).subscribe((([e,r])=>{e.length>0&&(l=e[e.length-1].i),0!==r.length?(zi(n),e.length>0&&ls(n,(()=>{e.forEach((e=>{try{Gi(e),Pr(n,e.u)}finally{Gi(null)}}))}),t,!1),c&&(c=!1,n.emit("load",[n]))):n.destroy()}),(e=>{t.on("error").fire(e)})),u=(e,n)=>{n!==t&&r.table(i).add({k:o,u:e,f:1}).then((e=>{e===l-1&&++l})).catch((e=>{t.on("error").fire(e)}))},d=()=>{a.unsubscribe(),n.off("updateV2",u),n.off("destroy",d)};return n.on("updateV2",u),n.on("destroy",d),d}(this,t,n,r,i,s),eo.on("new").fire(this)}destroy(){var e;Xi.delete(this.doc),this.doc=null,this.destroyed=!0,this.refCount=0,null===(e=this.stopObserving)||void 0===e||e.call(this),this.on=Zi(),this.cleanupHandlers.forEach((e=>e()))}addCleanupHandler(e){this.cleanupHandlers.push("function"==typeof e?e:()=>e.unsubscribe())}}function to(t,n){return r(this,void 0,void 0,(function*(){var s;const i={};let o,l=!1;for(const c of t)try{switch(c.type){case"u-s":{const e=Vi(n,c.table,c.prop);if(e){const t={k:c.k,u:c.u};c.r&&(t.r=c.r,o=c.r),i[e.name]=yield e.add(t)}break}case"u-ack":{const e=Vi(n,c.table,c.prop);e&&(yield n.transaction("rw",e,(t=>r(this,void 0,void 0,(function*(){let n=yield t.table(e.name).get(yt);yield t.table(e.name).put(Object.assign(Object.assign({},n||{i:yt}),{unsentFrom:Math.max((null==n?void 0:n.unsentFrom)||1,c.i+1)}))})))));break}case"u-reject":{const t=Vi(n,c.table,c.prop);if(!t)break;const r=null===(s=yield t.get(c.i))||void 0===s?void 0:s.k;if(null!=r){yield n.transaction("rw",t,(n=>(n.idbtrans._rejecting_y_ypdate=!0,t.where("i").aboveOrEqual(c.i).filter((t=>0===e.cmp(t.k,r)&&1==(1&(t.f||0)))).delete())));const s=eo.getDocCache(n.dx).find(c.table,r,c.prop);s&&s.destroy()}break}case"in-sync":{const e=eo.getDocCache(n.dx).find(c.table,c.k,c.prop);e&&!e.isSynced&&e.emit("sync",[!0,e]);break}case"y-complete-sync-done":o=c.yServerRev;break;case"outdated-server-rev":l=!0}}catch(e){}return{receivedUntils:i,resyncNeeded:l,yServerRevision:o}}))}eo.on=e.Dexie.Events(null,{new:[function(e,t){return e===Qi?t:function(){e.apply(this,arguments),t.apply(this,arguments)}}],beforeunload:[function(e,t){return e===Qi?t:function(){var n=e.apply(this,arguments);if(n&&"function"==typeof n.then){for(var r=this,s=arguments.length,i=new Array(s);s--;)i[s]=arguments[s];return n.then((function(){return t.apply(r,i)}))}return t.apply(this,arguments)}}]}),eo.getDocCache=Hi,e.Dexie.DexieYProvider?eo=e.Dexie.DexieYProvider||eo:e.Dexie.DexieYProvider=eo;const no=1,ro=2,so=3;function io(t,n,s){return r(this,arguments,void 0,(function*(t,n,{yDownloadedRealms:s,realms:c}){if(s&&c&&c.every((e=>"*"===s[e])))return;const a=yield xe(t),u={"Content-Type":"application/json",Accept:"application/octet-stream"};a&&(u.Authorization=`Bearer ${a.accessToken}`);const d=yield fetch(`${n}/y/download`,{body:nt.stringify({downloadedRealms:s||{}}),method:"POST",headers:u,credentials:"include"});if(!d.ok)throw new Error(`Failed to download Yjs documents from server. Status: ${d.status}`);yield async function(e,...t){var n,r,s;let i=e();for(let e=0;e<t.length;e++)i=t[e](i);try{for(var o,c=!0,a=l(i);!(n=(o=await a.next()).done);c=!0)o.value,c=!1}catch(e){r={error:e}}finally{try{c||n||!(s=a.return)||await s.call(a)}finally{if(r)throw r.error}}}(function(e){return function(){return o(this,arguments,(function*(){if(!e.body)throw new Error("Response body is not readable");const t=e.body.getReader();try{for(;;){const{done:e,value:n}=yield i(t.read());if(e)return yield i(void 0);yield yield i(n)}}finally{t.releaseLock()}}))}}(d),be,(function(s){return o(this,arguments,(function*(){var o,c,a,u;let d=null,h=null,f=null,p=[];function g(e){return r(this,void 0,void 0,(function*(){const r=p[p.length-1];if(p.length>0){if(!d||!h||!f)throw new Error(`Protocol error from ${n}/y/download`);const e=Vi(t,h,f);e&&(yield e.bulkAdd(p)),p=[]}d&&(h&&f&&r||e)&&(yield t.$syncState.update("syncState",(t=>{const n=t.yDownloadedRealms||{};n[d]=e?"*":{tbl:h,prop:f,key:r.k},t.yDownloadedRealms=n})))}))}try{try{for(var y,m=!0,v=l(s);!(o=(y=yield i(v.next())).done);m=!0){u=y.value,m=!1;const e=new ae(u);for(;ue(e);)switch(he(e)){case no:yield i(g(!0)),d=pe(e);break;case ro:yield i(g(!1)),h=pe(e),f=pe(e);break;case so:{const t=ve(e),n=de(e);p.push({k:t,u:n});break}}yield i(g(!1))}}catch(e){c={error:e}}finally{try{m||o||!(a=v.return)||(yield i(a.call(v)))}finally{if(c)throw c.error}}yield i(g(!0))}catch(t){throw t instanceof e.DexieError||(yield i(g(!1))),t}}))}))}))}const oo="currentSyncWorker";function lo(e,t,n,s){return co(e,t,n,s).then((t=>((null==s?void 0:s.justCheckIfNeeded)||e.syncStateChangedEvent.next({phase:"in-sync"}),t))).catch((i=>r(this,void 0,void 0,(function*(){return(null==s?void 0:s.justCheckIfNeeded)?Promise.reject(i):dt&&(null==s?void 0:s.retryImmediatelyOnFetchError)&&"TypeError"===(null==i?void 0:i.name)&&/fetch/.test(null==i?void 0:i.message)?(e.syncStateChangedEvent.next({phase:"error",error:i}),yield new Promise((e=>setTimeout(e,500))),yield lo(e,t,n,Object.assign(Object.assign({},s),{retryImmediatelyOnFetchError:!1}))):(yield e.$syncState.update("syncState",{timestamp:new Date,error:""+i}),e.syncStateChangedEvent.next({phase:dt?"error":"offline",error:new Error(""+(null==i?void 0:i.message)||i)}),Promise.reject(i))}))))}function co(e,t,n){return r(this,arguments,void 0,(function*(e,t,n,{isInitialSync:s,cancelToken:i,justCheckIfNeeded:o,purpose:l}={isInitialSync:!1}){var a;if(!(null===(a=e.cloud.options)||void 0===a?void 0:a.databaseUrl))throw new Error("Internal error: sync must not be called when no databaseUrl is configured");const{databaseUrl:u}=t,d=yield e.getCurrentUser(),h=d.isLoggedIn?k(e):[],f=h.map((t=>e.table(S(t.name)))),p=yield e.getPersistedSyncState(),g=d.isLoggedIn,y=g?function(e,t){const n=(null==t?void 0:t.syncedTables)||[];return k(e).filter((e=>!n.includes(e.name)))}(e,p):[];ut(i);const m=y.length>0;if(m){if(o)return!0;yield e.transaction("rw",y,(e=>r(this,void 0,void 0,(function*(){e.idbtrans.disableChangeTracking=!0,e.idbtrans.disableAccessControl=!0,yield function(e,t,n){return r(this,void 0,void 0,(function*(){const r=new Set(n||[]);for(const n of e)"members"===n.name?yield n.toCollection().modify((e=>{r.has(e.realmId)||e.userId&&e.userId!==c.userId||(e.userId=t.userId)})):"roles"===n.name||("realms"===n.name?yield n.toCollection().modify((e=>{r.has(e.realmId)||void 0!==e.owner&&e.owner!==c.userId||(e.owner=t.userId)})):yield n.toCollection().modify((e=>{e.realmId&&r.has(e.realmId)||(e.owner&&e.owner!==c.userId||(e.owner=t.userId),e.realmId&&e.realmId!==c.userId||(e.realmId=t.userId))})))}))}(y,d,null==p?void 0:p.realms)})))),ut(i)}const[v,b,w,{yMessages:_,lastUpdateIds:x}]=yield e.transaction("r",e.tables,(()=>r(this,void 0,void 0,(function*(){const t=yield e.getPersistedSyncState();let s=yield e.$baseRevs.toArray();s=s.filter((e=>h.some((t=>t.name===e.tableName))));let o=yield I(f,e);const l=yield function(e,t){return r(this,void 0,void 0,(function*(){const n=[],r={};for(const s of t)if(s.schema.yProps)for(const t of s.schema.yProps){const i=e.table(t.updatesTable),o=yield i.get(yt),l=(null==o?void 0:o.unsentFrom)||1,c=(null==o?void 0:o.receivedUntil)||0,a=Math.min(l,c+1),u=yield mt(i,a);u.length>0&&(r[i.name]=u[u.length-1].i);const d={};for(const e of u){const t=1==(1&(e.f||0));if(t&&e.i<l)continue;const n=JSON.stringify(e.k)+"/"+t;let r=d[n];r?(r.u.push(e.u),r.i=Math.max(e.i,r.i)):(d[n]=r={i:e.i,k:e.k,isLocal:t,u:[]},r.u.push(e.u))}for(const{k:e,isLocal:r,u:i,i:o}of Object.values(d)){const l=1===i.length?i[0]:hs(i);if(r)n.push({type:"u-c",table:s.name,prop:t.prop,k:e,u:l,i:o});else{const r=us(l);n.push({type:"sv",table:s.name,prop:t.prop,k:e,sv:r})}}}return{yMessages:n,lastUpdateIds:r}}))}(e,h);if(ut(i),m){const e=[...(null==p?void 0:p.realms)||[],...(null==p?void 0:p.inviteRealms)||[]],c=yield function(e,t,n,s){return r(this,void 0,void 0,(function*(){const i=`upload-${A(8)}`;if(t.isLoggedIn&&e.length>0){const o=new Set(s||[]);return(yield Promise.all(e.map((e=>r(this,void 0,void 0,(function*(){const{extractKey:r}=e.core.schema.primaryKey;if(!r)return{table:e.name,muts:[]};const s=n[e.name],l=(null==s?void 0:s.generatedGlobalId)?e.filter((e=>{return r(e),!o.has(e.realmId||"")&&(t=r(e),!(n=null==s?void 0:s.idPrefix)||"string"==typeof t&&t.startsWith(n));var t,n})):e.filter((e=>{const t=r(e);return!o.has(e.realmId||"")&&L(t)})),c=yield l.toArray();if(c.length>0){const n={type:"upsert",values:c,keys:c.map(r),userId:t.userId,txid:i};return{table:e.name,muts:[n]}}return{table:e.name,muts:[]}})))))).filter((e=>e.muts.length>0))}return[]}))}(y,d,n,e);return ut(i),o=o.concat(c),[o,t,s,l]}return[o,t,s,l]})))),C=v.some((e=>e.muts.some((e=>e.keys.length>0))))||_.some((e=>"u-c"===e.type));if(o)return C;if("push"===l&&!C)return!1;const D=ft(v,null==b?void 0:b.latestRevisions),O=(null==b?void 0:b.clientIdentity)||U(16);ut(i);const T=yield at(v,_,b,w,e,u,n,O,d),{done:j,newSyncState:P}=yield e.transaction("rw",e.tables,(t=>r(this,void 0,void 0,(function*(){t.idbtrans.disableChangeTracking=!0,t.idbtrans.disableAccessControl=!0;for(const e of Object.keys(n))T.schema[e]&&(n[e]=T.schema[e]);yield e.$syncState.put(n,"schema");const s=yield I(f,e,{since:D});for(const t of f){const n=E(t.name);if(s.some((e=>e.table===n&&e.muts.length>0))){if(D[n]){const r=D[n]||0;yield Promise.all([t.where("rev").belowOrEqual(r).delete(),e.$baseRevs.where(":id").between([n,-1/0],[n,r+1],!0,!0).reverse().offset(1).delete()])}}else yield Promise.all([t.clear(),e.$baseRevs.where({tableName:n}).delete()])}ft(s,D),yield ht(e,n,D,T.serverRevision);const i=yield e.getPersistedSyncState();yield function(e,t,n){return r(this,void 0,void 0,(function*(){const r=new Set,s=new Set,i=n?n.realms:[],o=n?n.inviteRealms:[],l=new Set(t.realms),c=new Set(t.realms.concat(t.inviteRealms));for(const e of i)l.has(e)||(s.add(e),c.has(e)||r.add(e));for(const e of o.concat(i))c.has(e)||r.add(e);if(r.size>0||s.size>0){const t=k(e);for(const e of t){let t=["realms","members","roles"].includes(e.name)?r:s;0!==t.size&&(e.schema.indexes.some((e=>"realmId"===e.keyPath||Array.isArray(e.keyPath)&&"realmId"===e.keyPath[0]))?yield e.where("realmId").anyOf([...t]).delete():yield e.filter((e=>!!(null==e?void 0:e.realmId)&&t.has(e.realmId))).delete())}}if(s.size>0&&(null==n?void 0:n.yDownloadedRealms))for(const e of s)delete n.yDownloadedRealms[e]}))}(e,T,i);const o=i||{syncedTables:[],latestRevisions:{},realms:[],inviteRealms:[],clientIdentity:O};g&&(o.syncedTables=h.map((e=>e.name)).concat(y.map((e=>e.name)))),o.latestRevisions=D,o.remoteDbId=T.dbId,o.initiallySynced=!0,o.realms=T.realms,o.inviteRealms=T.inviteRealms,o.serverRevision=T.serverRevision,o.yServerRevision=T.serverRevision,o.timestamp=new Date,delete o.error;const l=ao(T.changes,s);if(yield gt(l,e),T.yMessages){const{receivedUntils:t,resyncNeeded:n,yServerRevision:s}=yield to(T.yMessages,e);s&&(o.yServerRevision=s),yield function(e,t,n){return r(this,void 0,void 0,(function*(){var s,i,o,l,c;const a={};for(const[t,n]of Object.entries(e))null!==(s=a[t])&&void 0!==s||(a[t]={}),a[t].unsentFrom=n+1;for(const[e,n]of Object.entries(t))null!==(i=a[e])&&void 0!==i||(a[e]={}),a[e].receivedUntil=n;const u=Object.values(n.dx._dbSchema).filter((e=>e.yProps)).map((e=>e.yProps.map((e=>e.updatesTable)))).flat();for(const e of u){const t=a[e],s=null!==(o=null==t?void 0:t.unsentFrom)&&void 0!==o?o:1,i=null!==(c=null!==(l=null==t?void 0:t.receivedUntil)&&void 0!==l?l:(yield n.table(e).where("i").between(1,1/0).reverse().limit(1).primaryKeys())[0])&&void 0!==c?c:0;yield n.transaction("rw",e,(()=>r(this,void 0,void 0,(function*(){const t=yield n.table(e).get(yt);t?(t.unsentFrom=Math.max(s,t.unsentFrom||1),t.receivedUntil=Math.max(i,t.receivedUntil||0),yield n.table(e).put(t)):yield n.table(e).add({i:yt,unsentFrom:s,receivedUntil:i})}))))}}))}(x,t,e),n&&(o.yDownloadedRealms={})}return e.$syncState.put(o,"syncState"),{done:0===s.length,newSyncState:o}}))));if(!j)return yield ct(e),yield co(e,t,n,{isInitialSync:s,cancelToken:i});const R=Object.values(n).some((e=>{var t;return null===(t=e.yProps)||void 0===t?void 0:t.length})),M=!!T.yMessages;if(R&&M)try{yield io(e,u,P)}catch(e){}return e.syncCompleteEvent.next(),!1}))}function ao(e,t){const n={};R(n,e);const r={};return R(r,t),function(e,t){var n,r,s;for(const[i,o]of Object.entries(t))for(const[t,l]of Object.entries(o))switch(l.type){case"ups":{const r=null===(n=e[i])||void 0===n?void 0:n[t];if(r)switch(r.type){case"ups":case"upd":delete e[i][t]}}break;case"del":null===(r=e[i])||void 0===r||delete r[t];break;case"upd":{const n=null===(s=e[i])||void 0===s?void 0:s[t];if(n)switch(n.type){case"ups":for(const[e,t]of Object.entries(l.mod))O(n.val,e,t);break;case"del":break;case"upd":for(const e of Object.keys(l.mod))delete n.mod[e]}break}}}(n,r),function(e,t=""){t||(t=U(16));const n={};for(const[t,r]of Object.entries(e))for(const[e,s]of Object.entries(r)){const r=n[t]||(n[t]={});(r[s.type]||(r[s.type]=[])).push(Object.assign({key:e},s))}const r=[];for(const[e,s]of Object.entries(n)){const n={table:e,muts:[]};for(const[e,r]of Object.entries(s))switch(e){case"ups":{const e={type:"upsert",keys:r.map((e=>e.key)),values:r.map((e=>e.val)),txid:t};n.muts.push(e);break}case"upd":{const e={type:"update",keys:r.map((e=>e.key)),changeSpecs:r.map((e=>e.mod)),txid:t};n.muts.push(e);break}case"del":{const e={type:"delete",keys:r.map((e=>e.key)),txid:t};n.muts.push(e);break}}r.push(n)}return r}(n)}const uo=10,ho=1e4,fo=1e3;function po(s){const i=[],o=new t.BehaviorSubject(!0),l=new t.BehaviorSubject(null);let c=!1,a=new Array(uo).fill(0);return l.subscribe((()=>r(this,void 0,void 0,(function*(){if(!c&&i.length>0){c=!0,a.shift(),a.push(Date.now()),o.next(!1);try{yield function(){return r(this,void 0,void 0,(function*(){for(var o,l,c,a,u,d;i.length>0;){const h=i.shift();try{yield t.firstValueFrom(s.cloud.syncState.pipe(n.filter((({phase:e})=>"in-sync"===e||"error"===e))));const i=s.cloud.persistedSyncState.value;if(!h)continue;switch(h.type){case"token-expired":const t=s.cloud.currentUser.value,n=yield Ie(s.cloud.options.databaseUrl,t);yield s.table("$logins").update(t.userId,{accessToken:n.accessToken,accessTokenExpiration:n.accessTokenExpiration,claims:n.claims,license:n.license,data:n.data});break;case"realm-added":(null===(o=null==i?void 0:i.realms)||void 0===o?void 0:o.includes(h.realm))||(null===(l=null==i?void 0:i.inviteRealms)||void 0===l?void 0:l.includes(h.realm))||(yield s.cloud.sync({purpose:"pull",wait:!0}));break;case"realm-accepted":(null===(c=null==i?void 0:i.realms)||void 0===c?void 0:c.includes(h.realm))||(yield s.cloud.sync({purpose:"pull",wait:!0}));break;case"realm-removed":((null===(a=null==i?void 0:i.realms)||void 0===a?void 0:a.includes(h.realm))||(null===(u=null==i?void 0:i.inviteRealms)||void 0===u?void 0:u.includes(h.realm)))&&(yield s.cloud.sync({purpose:"pull",wait:!0}));break;case"realms-changed":yield s.cloud.sync({purpose:"pull",wait:!0});break;case"changes":if("error"===(null===(d=s.cloud.syncState.value)||void 0===d?void 0:d.phase)){y(s,"pull");break}yield s.transaction("rw",s.dx.tables,(t=>r(this,void 0,void 0,(function*(){t.idbtrans.disableChangeTracking=!0,t.idbtrans.disableAccessControl=!0;const[n,r,i]=yield Promise.all([s.getSchema(),s.getPersistedSyncState(),s.getCurrentUser()]);if(!r||!n||!i)return;if(h.baseRev!==r.serverRevision)return void("string"!=typeof h.baseRev||"bigint"!=typeof r.serverRevision&&"object"!=typeof r.serverRevision||y(s,"pull"));if((yield e.waitFor(_(r)))!==h.realmSetHash)return void y(s,"pull");let o=[];if(i.isLoggedIn){const e=k(s).map((e=>s.table(S(e.name))));o=yield I(e,s)}if(h.changes.length>0){const e=ao(h.changes,o);yield gt(e,s)}r.latestRevisions=ft(o,r.latestRevisions),r.serverRevision=h.newRev,yield ht(s,n,r.latestRevisions,h.newRev),yield s.$syncState.put(r,"syncState")}))))}}catch(e){}}}))}()}finally{a[a.length-1]-a[0]<ho&&(yield new Promise((e=>setTimeout(e,fo)))),c=!1,o.next(!0)}}})))),{enqueue:function(e){i.push(e),l.next(null)},readyToServe:o}}const go=new WeakMap,yo={members:"@id, [userId+realmId], [email+realmId], realmId",roles:"[realmId+name]",realms:"@realmId",$jobs:"",$syncState:"",$baseRevs:"[tableName+clientRev]",$logins:"claims.sub, lastLogin"};let mo=0;function vo(e){"vip"in e&&(e=e.vip);let n=go.get(e.cloud);if(!n){const r=new t.Subject;let s=new f(`syncstatechanged-${e.name}`),i=new f(`synccomplete-${e.name}`);r.id=++mo;let o=!1;n={get name(){return e.name},close:()=>e.close(),transaction:e.transaction.bind(e),table:e.table.bind(e),get tables(){return e.tables},cloud:e.cloud,get $jobs(){return e.table("$jobs")},get $syncState(){return e.table("$syncState")},get $baseRevs(){return e.table("$baseRevs")},get $logins(){return e.table("$logins")},get realms(){return e.realms},get members(){return e.members},get roles(){return e.roles},get initiallySynced(){return o},localSyncEvent:r,get syncStateChangedEvent(){return s},get syncCompleteEvent(){return i},dx:e};const l={getCurrentUser:()=>n.$logins.toArray().then((e=>e.find((e=>e.isLoggedIn))||c)),getPersistedSyncState:()=>n.$syncState.get("syncState"),getSchema:()=>n.$syncState.get("schema").then((e=>{if(e)for(const r of n.tables)r.schema.primKey&&r.schema.primKey.keyPath&&e[r.name]&&(e[r.name].primaryKey="string"==typeof(t=r.schema.primKey.keyPath)?t:t?"["+[].join.call(t,"+")+"]":"");var t;return e})),getOptions:()=>n.$syncState.get("options"),setInitiallySynced(e){o=e},reconfigure(){s=new f(`syncstatechanged-${e.name}`),i=new f(`synccomplete-${e.name}`)}};Object.assign(n,l),n.messageConsumer=po(n),n.messageProducer=new t.Subject,go.set(e.cloud,n)}return n}const bo=new WeakMap;class wo{constructor(e,t){bo.set(this,e),Object.assign(this,t)}static load(e,t){return e.table("$logins").get(t).then((n=>new wo(e,n||{userId:t,claims:{sub:t},lastLogin:new Date(0)})))}save(){return r(this,void 0,void 0,(function*(){bo.get(this).table("$logins").put(this)}))}}function _o(e,n){return t.firstValueFrom(t.from(e).pipe(t.filter(n)))}function ko(e){return r(this,void 0,void 0,(function*(){const t=yield So(e);if(t){if(!(yield function(e,t,n){return r(this,void 0,void 0,(function*(){const r=[{type:"warning",messageCode:"LOGOUT_CONFIRMATION",message:"{numUnsyncedChanges} unsynced changes will get lost!\n Logout anyway?",messageParams:{currentUserId:t,numUnsyncedChanges:n.toString()}}];return yield _e(e,{type:"logout-confirmation",title:"Confirm Logout",alerts:r,fields:{},submitLabel:"Confirm logout",cancelLabel:"Cancel"}).then((()=>!0)).catch((()=>!1))}))}(e.cloud.userInteraction,e.cloud.currentUserId,t)))throw new Error("User cancelled logout due to unsynced changes");yield So(e,{deleteUnsyncedData:!0})}}))}function So(e){return r(this,arguments,void 0,(function*(e,{deleteUnsyncedData:t=!1}={}){const[n,s]=yield e.dx.transaction("rw",e.dx.tables,(n=>r(this,void 0,void 0,(function*(){const r=n.idbtrans;r.disableChangeTracking=!0,r.disableAccessControl=!0;const s=n.storeNames.filter((e=>e.endsWith("_mutations"))),i=(yield Promise.all(s.map((e=>n.table(e).count())))).reduce(((e,t)=>e+t),0);if(i>0&&!t)return[i,!1];e.$syncState.delete("syncState");for(const t of e.dx.tables)"$jobs"!==t.name&&"$syncState"!==t.name&&t.clear();return[i,!0]}))));return s&&(yield _o(e.cloud.currentUser,(e=>e.userId===c.userId)),yield e.cloud.sync({purpose:"pull",wait:!0})),n}))}function Eo(e,...t){globalThis.console[e](...t)}function xo(e,t){return r(this,void 0,void 0,(function*(){var n;const s=yield e.getCurrentUser(),i=s.userId;if(s.isLoggedIn&&(!t||!t.email&&!t.userId)){if("ok"===((null===(n=s.license)||void 0===n?void 0:n.status)||"ok")&&s.accessToken&&(!s.accessTokenExpiration||s.accessTokenExpiration.getTime()>Date.now()))return!1;if(s.refreshToken&&(!s.refreshTokenExpiration||s.refreshTokenExpiration.getTime()>Date.now()))return yield xe(e),!1}const o=new wo(e,{claims:{},lastLogin:new Date(0)});return yield Ce(e.cloud.options.databaseUrl,o,e.cloud.options.fetchTokens||function(e){const{userInteraction:t}=e.cloud;return function(n){return r(this,arguments,void 0,(function*({public_key:n,hints:r}){var s;let i;const o=null===(s=e.cloud.options)||void 0===s?void 0:s.databaseUrl;if(!o)throw new Error("No database URL given.");if("demo"===(null==r?void 0:r.grant_type))i={demo_user:yield Se(t,"Enter a demo user email",(null==r?void 0:r.email)||(null==r?void 0:r.userId)),grant_type:"demo",scopes:["ACCESS_DB"],public_key:n};else if((null==r?void 0:r.otpId)&&r.otp)i={grant_type:"otp",otp_id:r.otpId,otp:r.otp,scopes:["ACCESS_DB"],public_key:n};else{const e=yield Se(t,"Enter email address",null==r?void 0:r.email);i=/@demo.local$/.test(e)?{demo_user:e,grant_type:"demo",scopes:["ACCESS_DB"],public_key:n}:{email:e,grant_type:"otp",scopes:["ACCESS_DB"]}}const l=yield fetch(`${o}/token`,{body:JSON.stringify(i),method:"post",headers:{"Content-Type":"application/json",mode:"cors"}});if(200!==l.status){const e=yield l.text();throw yield ke(t,"Token request failed",{type:"error",messageCode:"GENERIC_ERROR",message:e,messageParams:{}}).catch((()=>{})),new st(l,e)}const c=yield l.json();if("tokens"===c.type||"error"===c.type)return c;if("otp"===i.grant_type&&"email"in i){if("otp-sent"!==c.type)throw new Error(`Unexpected response from ${o}/token`);const e=yield Ee(t,i.email),r=Object.assign(Object.assign({},i),{otp:e||"",otp_id:c.otp_id,public_key:n});let s=yield fetch(`${o}/token`,{body:JSON.stringify(r),method:"post",headers:{"Content-Type":"application/json"},mode:"cors"});for(;401===s.status;){const e=yield s.text();r.otp=yield Ee(t,i.email,{type:"error",messageCode:"INVALID_OTP",message:e,messageParams:{}}),s=yield fetch(`${o}/token`,{body:JSON.stringify(r),method:"post",headers:{"Content-Type":"application/json"},mode:"cors"})}if(200!==s.status){const e=yield s.text();throw new st(s,e)}return yield s.json()}throw new Error(`Unexpected response from ${o}/token`)}))}}(e),e.cloud.userInteraction,t),i!==c.userId&&o.userId!==i&&(yield ko(e)),yield function(e,t){return r(this,void 0,void 0,(function*(){const n=e.table("$logins");yield e.transaction("rw",n,(e=>r(this,void 0,void 0,(function*(){const e=yield n.toArray();yield Promise.all(e.filter((e=>e.userId!==t.userId&&e.isLoggedIn)).map((e=>(e.isLoggedIn=!1,n.put(e))))),t.isLoggedIn=!0,t.lastLogin=new Date;try{yield t.save()}catch(e){try{"DataCloneError"===e.name&&(Eo("debug","Login context property names:",Object.keys(t)),Eo("debug","Login context property names:",Object.keys(t)),Eo("debug","Login context:",t),Eo("debug","Login context JSON:",JSON.stringify(t)))}catch(e){}throw e}})))),yield _o(e.cloud.currentUser,(e=>e.userId===t.userId))}))}(e,o),y(e,"pull"),o.userId!==i}))}const Co="undefined"!=typeof InstallTrigger,Io="undefined"!=typeof navigator&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\/|Edge\//.test(navigator.userAgent),Ao=Io?[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]:NaN,Do=Io&&Ao<=605||Co,Oo="undefined"!=typeof self&&"clients"in self&&!self.document;const{toString:Uo}={};function To(e){return Uo.call(e).slice(8,-1)}function Lo(e,t){var n;return"delete"===t.type?t.keys:(null===(n=t.keys)||void 0===n?void 0:n.slice())||t.values.map(e.extractKey)}const jo=/b|c|d|f|g|h|j|k|l|m|n|p|q|r|s|t|v|x|y|z/i;let Po=0;function Ro(e,t){const n=new Uint8Array(18),r=new Uint8Array(n.buffer,0,6),s=Date.now();Po>=s?++Po:Po=s,r[0]=Po/1099511627776,r[1]=Po/4294967296,r[2]=Po/16777216,r[3]=Po/65536,r[4]=Po/256,r[5]=Po;const i=new Uint8Array(n.buffer,6);crypto.getRandomValues(i);return e+$e(new Uint8Array(n.buffer))+(t||"")}function Mo(t){return{stack:"dbcore",name:"idGenerationMiddleware",level:1,create:n=>Object.assign(Object.assign({},n),{table:r=>{const s=n.table(r);return Object.assign(Object.assign({},s),{mutate:n=>{var i,o;const l=n.trans;if("versionchange"===l.mode&&(l.disableChangeTracking=!0,l.disableAccessControl=!0),l.disableChangeTracking)return s.mutate(n);if("add"===n.type||"put"===n.type){const l=null===(i=t.cloud.schema)||void 0===i?void 0:i[r];if(null==l?void 0:l.generatedGlobalId){if((null===(o=t.cloud.options)||void 0===o?void 0:o.databaseUrl)&&!t.initiallySynced){const e=Lo(s.schema.primaryKey,n);return s.getMany({keys:e,trans:n.trans,cache:"immutable"}).then((t=>{if(t.length<e.length)throw new Error("Unable to create new objects without an initial sync having been performed.");return s.mutate(n)}))}return function(n,i){let o=null;const l=Lo(s.schema.primaryKey,n);return l.forEach(((c,a)=>{if(void 0===c){const r=n.values[a].realmId||t.cloud.currentUserId,c=r.substr(r.length-3);l[a]=Ro(i,c),s.schema.primaryKey.outbound||(o||(o=n.values.slice()),o[a]=e.deepClone(o[a]),e.setByKeyPath(o[a],s.schema.primaryKey.keyPath,l[a]))}else if("string"!=typeof c||!c.startsWith(i)&&!c.startsWith("#"+i))throw new e.ConstraintError(`The ID "${c}" is not valid for table "${r}". Primary '@' keys requires the key to be prefixed with "${i}" (or "#${i}).\nIf you want to generate IDs programmatically, remove '@' from the schema to get rid of this constraint. Dexie Cloud supports custom IDs as long as they are random and globally unique.`)})),s.mutate(Object.assign(Object.assign({},n),{keys:l,values:o||n.values}))}(n,l.idPrefix)}if(null==l?void 0:l.markedForSync){Lo(s.schema.primaryKey,n).forEach(((t,n)=>{if(!L(t)){const n=Array.isArray(t)?t.map(To).join(","):To(t);throw new e.ConstraintError(`Invalid primary key type ${n} for table ${r}. Tables marked for sync has primary keys of type string or Array of string (and optional numbers)`)}}))}}return s.mutate(n)}})}})}}let No=0;function $o(e,t){return function(n){const{readers:r,writers:s}=n.trans[t]||(n.trans[t]={writers:[],readers:[]}),i=s.length,o=(i>0?s[i-1].then((()=>e(n)),(()=>e(n))):e(n)).finally((()=>{r.splice(r.indexOf(o))}));return r.push(o),o}}function Bo(e,t){return function(n){const{readers:r,writers:s}=n.trans[t]||(n.trans[t]={writers:[],readers:[]});let i=(s.length>0?s[s.length-1].then((()=>e(n)),(()=>e(n))):r.length>0?(o=r,new Promise((e=>{0===o.length&&e([]);let t=o.length;const n=new Array(t);o.forEach(((r,s)=>Promise.resolve(r).then((e=>n[s]={status:"fulfilled",value:e}),(e=>n[s]={status:"rejected",reason:e})).then((()=>--t||e(n)))))}))).then((()=>e(n))):e(n)).finally((()=>{s.shift()}));var o;return s.push(i),i}}const Fo=new t.BehaviorSubject(new Set);function Wo(e){var t,n,r,s;return(null===(t=e.cloud.options)||void 0===t?void 0:t.disableEagerSync)||"ok"!==(null===(r=null===(n=e.cloud.currentUser.value)||void 0===n?void 0:n.license)||void 0===r?void 0:r.status)||!(null===(s=e.cloud.options)||void 0===s?void 0:s.databaseUrl)}function Vo({currentUserObservable:t,db:n}){return{stack:"dbcore",name:"MutationTrackingMiddleware",level:1,create:r=>{const s=new Set(r.schema.tables.map((e=>e.name))),i=r.schema.tables.filter((e=>!/^\$/.test(e.name))),o=new Map;for(const e of i){const t=`$${e.name}_mutations`;s.has(t)&&o.set(e.name,r.table(t))}return Object.assign(Object.assign({},r),{transaction:(e,s)=>{let i;if("readwrite"===s){const t=e.filter((e=>{var t,r;return null===(r=null===(t=n.cloud.schema)||void 0===t?void 0:t[e])||void 0===r?void 0:r.markedForSync})).map((e=>S(e)));i=r.transaction([...e,...t],s)}else i=r.transaction(e,s);if("readwrite"===s){i.txid=A(16),i.opCount=0,i.currentUser=t.value,Fo.value.add(i),Fo.next(Fo.value);const e=()=>{i.removeEventListener("complete",r),i.removeEventListener("error",e),i.removeEventListener("abort",e),Fo.value.delete(i),Fo.next(Fo.value)},r=()=>{i.mutationsAdded&&!Wo(n)&&y(n,"push"),e()};i.addEventListener("complete",r),i.addEventListener("error",e),i.addEventListener("abort",e)}return i},table:t=>{const s=r.table(t);if(/^\$/.test(t))return t.endsWith("_mutations")?Object.assign(Object.assign({},s),{mutate:e=>("add"!==e.type&&"put"!==e.type||(e.trans.mutationsAdded=!0),s.mutate(e))}):"$logins"===t?Object.assign(Object.assign({},s),{mutate:e=>s.mutate(e).then((t=>(e.trans.mutationsAdded=!0,t))).catch((e=>Promise.reject(e)))}):s;const{schema:i}=s,l=o.get(t);return l?function(e){const t="$lock"+ ++No;return Object.assign(Object.assign({},e),{count:$o(e.count,t),get:$o(e.get,t),getMany:$o(e.getMany,t),openCursor:$o(e.openCursor,t),query:$o(e.query,t),mutate:Bo(e.mutate,t)})}(Object.assign(Object.assign({},s),{mutate:e=>{var r,o,l;const a=e.trans;return a.txid?a.disableChangeTracking?s.mutate(e):(null===(o=null===(r=n.cloud.schema)||void 0===r?void 0:r[t])||void 0===o?void 0:o.markedForSync)&&(null===(l=a.currentUser)||void 0===l?void 0:l.isLoggedIn)?"deleteRange"===e.type?s.query({query:{range:e.range,index:i.primaryKey},trans:e.trans,values:!1}).then((t=>c({type:"delete",keys:t.result,trans:e.trans,criteria:{index:null,range:e.range}}))):c(e):s.mutate(e):s.mutate(e)}})):s;function c(r){var o,c;const a=r.trans,u=null===(c=null===(o=n.cloud.options)||void 0===o?void 0:o.unsyncedProperties)||void 0===c?void 0:c[t],{txid:d,currentUser:{userId:h}}=a,{type:f}=r,p=++a.opCount;function g(e){if(!u)return e;let t=e;for(const n of Object.keys(e))u.some((e=>n===e||n.startsWith(e+".")))&&(t===e&&(t=Object.assign({},e)),delete t[n]);return t}return s.mutate(r).then((t=>{var n;const{numFailures:s,failures:o}=t;let c="delete"===f?r.keys:t.results,y="values"in r?r.values:[],m="changeSpec"in r?r.changeSpec:void 0,v="updates"in r?r.updates:void 0;if(s&&(c=c.filter(((e,t)=>!o[t])),y=y.filter(((e,t)=>!o[t]))),u){if(y=y.map((e=>{const t=Object.assign({},e);for(const e of u)delete t[e];return t})),m&&(m=g(m),0===Object.keys(m).length))return t;if(v){let t=v.changeSpecs.map(g),n={keys:[],changeSpecs:[]};const r=new e.RangeSet;let s=!1;for(let e=0,i=t.length;e<i;++e)Object.keys(t[e]).length>0?(n.keys.push(v.keys[e]),n.changeSpecs.push(t[e]),r.addKey(v.keys[e])):s=!0;if(v=n,s){let e=[],t=[];for(let n=0,s=c.length;n<s;++n)r.hasKey(c[n])&&(e.push(c[n]),t.push(y[n]));c=e,y=t}}}const b=Date.now();let w="criteria"in r&&r.criteria?Object.assign(Object.assign({},r.criteria),{index:r.criteria.index===i.primaryKey.keyPath?null:r.criteria.index}):void 0;if(u&&(null==w?void 0:w.index)){const e=null===(n=i.indexes.find((e=>e.name===w.index)))||void 0===n?void 0:n.keyPath;(e?"string"==typeof e?[e]:e:[]).some((e=>null==u?void 0:u.includes(e)))&&(w=void 0)}const _="delete"===r.type?{type:"delete",ts:b,opNo:p,keys:c,criteria:w,txid:d,userId:h}:"add"===r.type?{type:"insert",ts:b,opNo:p,keys:c,txid:d,userId:h,values:y}:w&&m?{type:"modify",ts:b,opNo:p,keys:c,criteria:w,changeSpec:m,txid:d,userId:h}:m?{type:"update",ts:b,opNo:p,keys:c,changeSpecs:c.map((()=>m)),txid:d,userId:h}:v?{type:"update",ts:b,opNo:p,keys:v.keys,changeSpecs:v.changeSpecs,txid:d,userId:h}:{type:"upsert",ts:b,opNo:p,keys:c,values:y,txid:d,userId:h};return"isAdditionalChunk"in r&&r.isAdditionalChunk&&(_.isAdditionalChunk=!0),c.length>0||w?l.mutate({type:"add",trans:a,values:[_]}).then((()=>(a.mutationsAdded=!0,t))):t}))}}})}}}function Ko(e,t){return function(n,r){var s;const i=Object.assign(Object.assign({},yo),n);Object.keys(yo).forEach((e=>{const t=i[e];if(null==t)throw new Error(`Cannot delete table ${e} as it is needed for access control of Dexie Cloud`);if(!n[e])return;const r=t.split(",").map((e=>e.trim())),s=yo[e].split(",").map((e=>e.trim())),o=new Set(r.map((e=>e.replace(/([&*]|\+\+)/g,""))));if(r[0]!==s[0])throw new Error(`Cannot override primary key of table ${e}. Please declare it as {${e}: ${JSON.stringify(yo[e])}`);for(let t=1;t<s.length;++t){const n=s[t];o.has(n.replace(/([&*]|\+\+)/g,""))||(i[e]+=`,${n}`)}}));const o=t.cloud.schema||(t.cloud.schema={}),l=new Set;Object.keys(i).forEach((e=>{const t=i[e],n=o[e]||(o[e]={});null!=t?(/^\@/.test(t)&&(i[e]=i[e].substr(1),n.generatedGlobalId=!0,n.idPrefix=function(e,t){let n=e[0].toLocaleLowerCase();for(let t=1,s=e.length;t<s&&n.length<3;++t)(jo.test(e[t])||(r=e[t])>="A"&&r<="Z")&&(n+=e[t].toLowerCase());for(var r,s,i;t.has(n);){if(/\d/g.test(n)){if(n=n.substr(0,n.length-1)+(n[n.length-1]+1),!(n.length>3))continue;n=n.substr(0,3)}else if(n.length<3){n+="2";continue}let e=1,r=n;for(;t.has(r)&&e<8;)s=n,r=(1&(i=e)?s[0].toUpperCase():s[0].toLowerCase())+(2&i?s[1].toUpperCase():s[1].toLowerCase())+(4&i?s[2].toUpperCase():s[2].toLowerCase()),++e;if(e<8)n=r;else{let e=n.charCodeAt(2)+1&127;n=n.substr(0,2)+String.fromCharCode(e)}}return n}(e,l),l.add(n.idPrefix)),/^\$/.test(e)||(i[`$${e}_mutations`]="++rev",n.markedForSync=!0),n.deleted&&(n.deleted=!1)):(n.deleted=!0,n.markedForSync=!1,i[`$${e}_mutations`]=null)}));const c=e.call(this,i,r);for(const[e,t]of Object.entries(r))if(null===(s=t.yProps)||void 0===s?void 0:s.length){const n=o[e];n&&(n.yProps=t.yProps.map((e=>e.prop)))}return c}}function Ho(e,t,n){return"undefined"!=typeof navigator&&navigator.locks?navigator.locks.request(e.name+"|"+t,(()=>n())):n()}const Jo=new t.BehaviorSubject(!0),zo=new t.BehaviorSubject(!0);Jo.pipe(n.switchMap((e=>e?t.of(!0):t.of(!1).pipe(n.delay(2e4)))),n.distinctUntilChanged()).subscribe(zo);const qo="undefined"!=typeof document?t.fromEvent(document,"visibilitychange"):t.of({}),Yo=qo.pipe(n.filter((()=>"hidden"===document.visibilityState))),Go=qo.pipe(n.filter((()=>"visible"===document.visibilityState))),Qo="undefined"!=typeof window?t.merge(Go,t.fromEvent(window,"mousedown"),t.fromEvent(window,"mousemove"),t.fromEvent(window,"keydown"),t.fromEvent(window,"wheel"),t.fromEvent(window,"touchmove")):t.of({});"undefined"!=typeof document&&t.merge(t.of(!0),Yo,Qo).pipe(n.map((()=>"visible"===document.visibilityState)),n.tap((e=>{Jo.value!==e&&Jo.next(e)})),n.switchMap((e=>e?t.of(0).pipe(n.delay(16e4),n.tap((()=>Jo.next(!1)))):t.of(0)))).subscribe((()=>{}));class Xo extends Error{constructor(){super(...arguments),this.name="TokenExpiredError"}}const Zo=new WeakMap,el=3e4;class tl extends It{constructor(e){super(),this.doc=e,this.clientID=e.clientID,this.states=new Map,this.meta=new Map,this._checkInterval=setInterval((()=>{const e=Pn();null!==this.getLocalState()&&15e3<=e-this.meta.get(this.clientID).lastUpdated&&this.setLocalState(this.getLocalState());const t=[];this.meta.forEach(((n,r)=>{r!==this.clientID&&el<=e-n.lastUpdated&&this.states.has(r)&&t.push(r)})),t.length>0&&nl(this,t,"timeout")}),At(3e3)),e.on("destroy",(()=>{this.destroy()})),this.setLocalState({})}destroy(){this.emit("destroy",[this]),this.setLocalState(null),super.destroy(),clearInterval(this._checkInterval)}getLocalState(){return this.states.get(this.clientID)||null}setLocalState(e){const t=this.clientID,n=this.meta.get(t),r=void 0===n?0:n.clock+1,s=this.states.get(t);null===e?this.states.delete(t):this.states.set(t,e),this.meta.set(t,{clock:r,lastUpdated:Pn()});const i=[],o=[],l=[],c=[];null===e?c.push(t):null==s?null!=e&&i.push(t):(o.push(t),Yn(s,e)||l.push(t)),(i.length>0||l.length>0||c.length>0)&&this.emit("change",[{added:i,updated:l,removed:c},"local"]),this.emit("update",[{added:i,updated:o,removed:c},"local"])}setLocalStateField(e,t){const n=this.getLocalState();null!==n&&this.setLocalState({...n,[e]:t})}getStates(){return this.states}}const nl=(e,t,n)=>{const r=[];for(let n=0;n<t.length;n++){const s=t[n];if(e.states.has(s)){if(e.states.delete(s),s===e.clientID){const t=e.meta.get(s);e.meta.set(s,{clock:t.clock+1,lastUpdated:Pn()})}r.push(s)}}r.length>0&&(e.emit("change",[{added:[],updated:[],removed:r},n]),e.emit("update",[{added:[],updated:[],removed:r},n]))},rl=(e,t,n=e.states)=>{const r=t.length,s=Ht();Yt(s,r);for(let i=0;i<r;i++){const r=t[i],o=n.get(r)||null,l=e.meta.get(r).clock;Yt(s,r),Yt(s,l),Zt(s,JSON.stringify(o))}return Jt(s)},sl=new WeakMap;function il(e){let n=sl.get(e);return n||(n=new t.Subject,sl.set(e,n)),n}class ol extends t.Observable{constructor(e,t,n,r,s,i,o,l){super((c=>new cl(e,t,n,r,s,l,c,i,o)))}}let ll=0;class cl extends t.Subscription{constructor(e,t,n,r,s,i,o,l,c){super((()=>this.teardown())),this.id=++ll,this.subscriptions=new Set,this.reconnecting=!1,this.db=e,this.databaseUrl=e.cloud.options.databaseUrl,this.rev=t,this.yrev=n,this.realmSetHash=r,this.clientIdentity=s,this.user=i,this.subscriber=o,this.lastUserActivity=new Date,this.messageProducer=l,this.webSocketStatus=c,this.connect()}teardown(){this.disconnect()}disconnect(){if(this.webSocketStatus.next("disconnected"),this.pinger&&(clearInterval(this.pinger),this.pinger=null),this.ws)try{this.ws.close()}catch(e){}this.ws=null;for(const e of this.subscriptions)e.unsubscribe();this.subscriptions.clear()}reconnect(){if(!this.reconnecting){this.reconnecting=!0;try{this.disconnect()}catch(e){}this.connect().catch((()=>{})).then((()=>this.reconnecting=!1))}}connect(){return r(this,void 0,void 0,(function*(){if(this.lastServerActivity=new Date,this.pauseUntil&&this.pauseUntil>new Date)return;if(this.ws)throw new Error("Called connect() when a connection is already open");if(!this.databaseUrl)throw new Error("Cannot connect without a database URL");if(this.closed)return;const n=this.user.accessTokenExpiration;if(n&&n<new Date)return void this.subscriber.error(new Xo);this.webSocketStatus.next("connecting"),this.pinger=setInterval((()=>r(this,void 0,void 0,(function*(){if(this.closed)this.teardown();else if(this.ws)try{this.ws.send(JSON.stringify({type:"ping"})),setTimeout((()=>{this.pinger&&(this.closed?this.teardown():this.lastServerActivity<new Date(Date.now()-2e4)&&this.reconnect())}),2e4)}catch(e){this.reconnect()}else this.reconnect()}))),3e4);const s=new URL(this.databaseUrl);s.protocol="http:"===s.protocol?"ws":"wss";const i=new URLSearchParams;if(this.subscriber.closed)return;i.set("v","2"),this.rev&&i.set("rev",this.rev),this.yrev&&i.set("yrev",this.yrev),i.set("realmsHash",this.realmSetHash),i.set("clientId",this.clientIdentity),i.set("dxcv",this.db.cloud.version),this.user.accessToken&&i.set("token",this.user.accessToken);const o=this.ws=new WebSocket(`${s}/changes?${i}`);o.binaryType="arraybuffer",o.onclose=e=>{this.pinger&&this.reconnect()},o.onmessage=e=>{if(this.pinger){this.lastServerActivity=new Date;try{const t="string"==typeof e.data?nt.parse(e.data):function(e){const t=new ae(e),n=pe(t);if("outdated-server-rev"===n)return{type:n};if("y-complete-sync-done"===n)return{type:n,yServerRev:pe(t)};const r=pe(t),s=pe(t);switch(n){case"u-ack":case"u-reject":return{type:n,table:r,prop:s,i:Number(ye(t))};default:{const e=ve(t);switch(n){case"in-sync":case"doc-close":return{type:n,table:r,prop:s,k:e};case"aware":return{type:n,table:r,prop:s,k:e,u:de(t)};case"doc-open":return{type:n,table:r,prop:s,k:e,serverRev:ve(t),sv:ve(t)};case"sv":return{type:n,table:r,prop:s,k:e,sv:de(t)};case"u-c":return{type:n,table:r,prop:s,k:e,u:de(t),i:Number(ye(t))};case"u-s":return{type:n,table:r,prop:s,k:e,u:de(t),r:t.pos<t.arr.length&&pe(t)||void 0};default:throw new TypeError(`Unknown message type: ${n}`)}}}}(new Uint8Array(e.data));if("error"===t.type)throw new Error(`Error message from dexie-cloud: ${t.error}`);if("aware"===t.type){const e=eo.getDocCache(this.db.dx).find(t.table,t.k,t.prop);if(e){const n=(e=>Zo.get(e))(e);n&&((e,t,n)=>{const r=vn(t),s=Pn(),i=[],o=[],l=[],c=[],a=_n(r);for(let t=0;t<a;t++){const t=_n(r);let n=_n(r);const a=JSON.parse(Sn(r)),u=e.meta.get(t),d=e.states.get(t),h=void 0===u?0:u.clock;(h<n||h===n&&null===a&&e.states.has(t))&&(null===a?t===e.clientID&&null!=e.getLocalState()?n++:e.states.delete(t):e.states.set(t,a),e.meta.set(t,{clock:n,lastUpdated:s}),void 0===u&&null!==a?i.push(t):void 0!==u&&null===a?c.push(t):null!==a&&(Yn(a,d)||l.push(t),o.push(t)))}(i.length>0||l.length>0||c.length>0)&&e.emit("change",[{added:i,updated:l,removed:c},n]),(i.length>0||o.length>0||c.length>0)&&e.emit("update",[{added:i,updated:o,removed:c},n])})(n,t.u,"server")}}else if("pong"===t.type);else if("doc-open"===t.type){const e=eo.getDocCache(this.db.dx).find(t.table,t.k,t.prop);e&&il(e).next()}else"u-ack"===t.type||"u-reject"===t.type||"u-s"===t.type||"in-sync"===t.type||"outdated-server-rev"===t.type||"y-complete-sync-done"===t.type?to([t],this.db).then((e=>r(this,[e],void 0,(function*({resyncNeeded:e,yServerRevision:n,receivedUntils:r}){if(n&&(yield this.db.$syncState.update("syncState",{yServerRevision:n})),"u-s"===t.type&&r){const e=Vi(this.db,t.table,t.prop);if(e){const t=r[e.name];t&&(yield e.update(yt,{receivedUntil:t}))}}e&&(yield this.db.cloud.sync({purpose:"pull",wait:!0}))})))):this.subscriber.next(t)}catch(e){this.subscriber.error(e)}}};try{let n=!1;yield new Promise(((e,t)=>{o.onopen=t=>{n=!0,e(null)},o.onerror=e=>{if(n)this.reconnect();else{const n=e.error||new Error("WebSocket Error");this.subscriber.error(n),this.webSocketStatus.next("error"),t(n)}}})),this.subscriptions.add(this.messageProducer.subscribe((e=>{var t,n;this.closed||("ready"===e.type&&"connected"!==this.webSocketStatus.value&&this.webSocketStatus.next("connected"),"ready"===e.type?(this.rev=e.rev,null===(t=this.ws)||void 0===t||t.send(nt.stringify(e))):null===(n=this.ws)||void 0===n||n.send(ie(e)))}))),this.user.isLoggedIn&&!Wo(this.db)&&this.subscriptions.add(function(n){const s=C(n.tables.filter((e=>{var t,r;return(null===(r=null===(t=n.cloud.schema)||void 0===t?void 0:t[e.name])||void 0===r?void 0:r.markedForSync)&&e.schema.yProps})).map((e=>e.schema.yProps.map((t=>({table:e.name,ydocProp:t.prop,updatesTable:t.updatesTable}))))));return t.merge(...s.map((({table:s,ydocProp:i,updatesTable:o})=>{const l=n.table(o);return t.from(l.get(yt)).pipe(t.switchMap((n=>{let o=(null==n?void 0:n.unsentFrom)||1;return t.from(e.liveQuery((()=>r(this,void 0,void 0,(function*(){return(yield mt(l,o)).filter((e=>e.f&&1&e.f)).map((e=>({type:"u-c",table:s,prop:i,k:e.k,u:e.u,i:e.i})))}))))).pipe(t.tap((e=>{e.length>0&&(o=e.at(-1).i+1)})))})))}))).pipe(t.mergeMap((e=>e)))}(this.db).subscribe(this.db.messageProducer))}catch(e){this.pauseUntil=new Date(Date.now()+6e4)}}))}}class al extends Error{constructor(e){super("expired"===e?"License expired":"deactivated"===e?"User deactivated":"Invalid license"),this.name="InvalidLicenseError",e&&(this.license=e)}}function ul(e){return r(this,void 0,void 0,(function*(){var e;yield(e=3e3,new Promise((t=>setTimeout(t,e)))),yield t.firstValueFrom(Qo)}))}function dl(e){return r(this,void 0,void 0,(function*(){var t;return!(!(null===(t=e.cloud.options)||void 0===t?void 0:t.databaseUrl)||!e.cloud.schema)&&(yield lo(e,e.cloud.options,e.cloud.schema,{justCheckIfNeeded:!0}))}))}const hl=new WeakMap;function fl(e,t,n,s){const i=hl.get(e);if(i){if(i.pull||"push"===(null==s?void 0:s.purpose))return i.promise;{let r=!1;const o=e.cloud.syncState.subscribe((e=>{"pulling"===e.phase&&(r=!0)}));return i.promise.then((()=>{o.unsubscribe()})).catch((e=>(o.unsubscribe(),Promise.reject(e)))).then((()=>{if(!r)return fl(e,t,n,s)}))}}const o=function(){return r(this,void 0,void 0,(function*(){try{yield ct(e),yield Ho(e,oo,(()=>lo(e,t,n,s))),hl.delete(e)}catch(t){throw hl.delete(e),t}}))}();return hl.set(e,{promise:o,pull:"push"!==(null==s?void 0:s.purpose)}),o}const pl=1e3;function gl(e,t,n){let r=null,s={cancelled:!1},i=0,o=0;function l(r=1){setTimeout((()=>{const d=c?"pull":"push";o=Date.now(),fl(e,t,n,{cancelToken:s,retryImmediatelyOnFetchError:!0,purpose:d}).then((()=>{if(s.cancelled)h();else if(c||a)return c=!1,a=!1,l();u=!1,i=0,o=0})).catch((e=>{if(s.cancelled)h(),u=!1,i=0,o=0;else if(r<5){const e=[0,20,40,300,900][r]*pl;i=Date.now()+e,o=0,setTimeout((()=>l(r+1)),e)}else u=!1,i=0,o=0}))}),0)}let c=!1,a=!1,u=!1;const d=e=>{s.cancelled||("pull"===e&&(c=!0),"push"===e&&(a=!0),u?i||o>0&&Date.now():(u=!0,l()))},h=()=>{s.cancelled=!0,r&&r.unsubscribe()};return{start:()=>{r=e.localSyncEvent.subscribe((({purpose:e})=>{d(e||"pull")}))},stop:h}}function yl(e,t){if(e&&t&&t.unsyncedTables)for(const n of t.unsyncedTables)e[n]&&(e[n].markedForSync=!1)}var ml,vl,bl,wl,_l,kl={},Sl=[],El=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function xl(e,t){for(var n in t)e[n]=t[n];return e}function Cl(e){var t=e.parentNode;t&&t.removeChild(e)}function Il(e,t,n){var r,s,i,o={};for(i in t)"key"==i?r=t[i]:"ref"==i?s=t[i]:o[i]=t[i];if(arguments.length>2&&(o.children=arguments.length>3?ml.call(arguments,2):n),"function"==typeof e&&null!=e.defaultProps)for(i in e.defaultProps)void 0===o[i]&&(o[i]=e.defaultProps[i]);return Al(e,o,r,s,null)}function Al(e,t,n,r,s){var i={type:e,props:t,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==s?++bl:s};return null==s&&null!=vl.vnode&&vl.vnode(i),i}function Dl(e){return e.children}function Ol(e,t){this.props=e,this.context=t}function Ul(e,t){if(null==t)return e.__?Ul(e.__,e.__.__k.indexOf(e)+1):null;for(var n;t<e.__k.length;t++)if(null!=(n=e.__k[t])&&null!=n.__e)return n.__e;return"function"==typeof e.type?Ul(e):null}function Tl(e){var t,n;if(null!=(e=e.__)&&null!=e.__c){for(e.__e=e.__c.base=null,t=0;t<e.__k.length;t++)if(null!=(n=e.__k[t])&&null!=n.__e){e.__e=e.__c.base=n.__e;break}return Tl(e)}}function Ll(e){(!e.__d&&(e.__d=!0)&&wl.push(e)&&!jl.__r++||_l!==vl.debounceRendering)&&((_l=vl.debounceRendering)||setTimeout)(jl)}function jl(){for(var e;jl.__r=wl.length;)e=wl.sort((function(e,t){return e.__v.__b-t.__v.__b})),wl=[],e.some((function(e){var t,n,r,s,i,o;e.__d&&(i=(s=(t=e).__v).__e,(o=t.__P)&&(n=[],(r=xl({},s)).__v=s.__v+1,Wl(o,s,r,t.__n,void 0!==o.ownerSVGElement,null!=s.__h?[i]:null,n,null==i?Ul(s):i,s.__h),Vl(n,s),s.__e!=i&&Tl(s)))}))}function Pl(e,t,n,r,s,i,o,l,c,a){var u,d,h,f,p,g,y,m=r&&r.__k||Sl,v=m.length;for(n.__k=[],u=0;u<t.length;u++)if(null!=(f=n.__k[u]=null==(f=t[u])||"boolean"==typeof f?null:"string"==typeof f||"number"==typeof f||"bigint"==typeof f?Al(null,f,null,null,f):Array.isArray(f)?Al(Dl,{children:f},null,null,null):f.__b>0?Al(f.type,f.props,f.key,null,f.__v):f)){if(f.__=n,f.__b=n.__b+1,null===(h=m[u])||h&&f.key==h.key&&f.type===h.type)m[u]=void 0;else for(d=0;d<v;d++){if((h=m[d])&&f.key==h.key&&f.type===h.type){m[d]=void 0;break}h=null}Wl(e,f,h=h||kl,s,i,o,l,c,a),p=f.__e,(d=f.ref)&&h.ref!=d&&(y||(y=[]),h.ref&&y.push(h.ref,null,f),y.push(d,f.__c||p,f)),null!=p?(null==g&&(g=p),"function"==typeof f.type&&f.__k===h.__k?f.__d=c=Rl(f,c,e):c=Ml(e,f,h,m,p,c),"function"==typeof n.type&&(n.__d=c)):c&&h.__e==c&&c.parentNode!=e&&(c=Ul(h))}for(n.__e=g,u=v;u--;)null!=m[u]&&("function"==typeof n.type&&null!=m[u].__e&&m[u].__e==n.__d&&(n.__d=Ul(r,u+1)),Jl(m[u],m[u]));if(y)for(u=0;u<y.length;u++)Hl(y[u],y[++u],y[++u])}function Rl(e,t,n){for(var r,s=e.__k,i=0;s&&i<s.length;i++)(r=s[i])&&(r.__=e,t="function"==typeof r.type?Rl(r,t,n):Ml(n,r,r,s,r.__e,t));return t}function Ml(e,t,n,r,s,i){var o,l,c;if(void 0!==t.__d)o=t.__d,t.__d=void 0;else if(null==n||s!=i||null==s.parentNode)e:if(null==i||i.parentNode!==e)e.appendChild(s),o=null;else{for(l=i,c=0;(l=l.nextSibling)&&c<r.length;c+=2)if(l==s)break e;e.insertBefore(s,i),o=i}return void 0!==o?o:s.nextSibling}function Nl(e,t,n){"-"===t[0]?e.setProperty(t,n):e[t]=null==n?"":"number"!=typeof n||El.test(t)?n:n+"px"}function $l(e,t,n,r,s){var i;e:if("style"===t)if("string"==typeof n)e.style.cssText=n;else{if("string"==typeof r&&(e.style.cssText=r=""),r)for(t in r)n&&t in n||Nl(e.style,t,"");if(n)for(t in n)r&&n[t]===r[t]||Nl(e.style,t,n[t])}else if("o"===t[0]&&"n"===t[1])i=t!==(t=t.replace(/Capture$/,"")),t=t.toLowerCase()in e?t.toLowerCase().slice(2):t.slice(2),e.l||(e.l={}),e.l[t+i]=n,n?r||e.addEventListener(t,i?Fl:Bl,i):e.removeEventListener(t,i?Fl:Bl,i);else if("dangerouslySetInnerHTML"!==t){if(s)t=t.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if("href"!==t&&"list"!==t&&"form"!==t&&"tabIndex"!==t&&"download"!==t&&t in e)try{e[t]=null==n?"":n;break e}catch(e){}"function"==typeof n||(null!=n&&(!1!==n||"a"===t[0]&&"r"===t[1])?e.setAttribute(t,n):e.removeAttribute(t))}}function Bl(e){this.l[e.type+!1](vl.event?vl.event(e):e)}function Fl(e){this.l[e.type+!0](vl.event?vl.event(e):e)}function Wl(e,t,n,r,s,i,o,l,c){var a,u,d,h,f,p,g,y,m,v,b,w,_,k=t.type;if(void 0!==t.constructor)return null;null!=n.__h&&(c=n.__h,l=t.__e=n.__e,t.__h=null,i=[l]),(a=vl.__b)&&a(t);try{e:if("function"==typeof k){if(y=t.props,m=(a=k.contextType)&&r[a.__c],v=a?m?m.props.value:a.__:r,n.__c?g=(u=t.__c=n.__c).__=u.__E:("prototype"in k&&k.prototype.render?t.__c=u=new k(y,v):(t.__c=u=new Ol(y,v),u.constructor=k,u.render=zl),m&&m.sub(u),u.props=y,u.state||(u.state={}),u.context=v,u.__n=r,d=u.__d=!0,u.__h=[]),null==u.__s&&(u.__s=u.state),null!=k.getDerivedStateFromProps&&(u.__s==u.state&&(u.__s=xl({},u.__s)),xl(u.__s,k.getDerivedStateFromProps(y,u.__s))),h=u.props,f=u.state,d)null==k.getDerivedStateFromProps&&null!=u.componentWillMount&&u.componentWillMount(),null!=u.componentDidMount&&u.__h.push(u.componentDidMount);else{if(null==k.getDerivedStateFromProps&&y!==h&&null!=u.componentWillReceiveProps&&u.componentWillReceiveProps(y,v),!u.__e&&null!=u.shouldComponentUpdate&&!1===u.shouldComponentUpdate(y,u.__s,v)||t.__v===n.__v){u.props=y,u.state=u.__s,t.__v!==n.__v&&(u.__d=!1),u.__v=t,t.__e=n.__e,t.__k=n.__k,t.__k.forEach((function(e){e&&(e.__=t)})),u.__h.length&&o.push(u);break e}null!=u.componentWillUpdate&&u.componentWillUpdate(y,u.__s,v),null!=u.componentDidUpdate&&u.__h.push((function(){u.componentDidUpdate(h,f,p)}))}if(u.context=v,u.props=y,u.__v=t,u.__P=e,b=vl.__r,w=0,"prototype"in k&&k.prototype.render)u.state=u.__s,u.__d=!1,b&&b(t),a=u.render(u.props,u.state,u.context);else do{u.__d=!1,b&&b(t),a=u.render(u.props,u.state,u.context),u.state=u.__s}while(u.__d&&++w<25);u.state=u.__s,null!=u.getChildContext&&(r=xl(xl({},r),u.getChildContext())),d||null==u.getSnapshotBeforeUpdate||(p=u.getSnapshotBeforeUpdate(h,f)),_=null!=a&&a.type===Dl&&null==a.key?a.props.children:a,Pl(e,Array.isArray(_)?_:[_],t,n,r,s,i,o,l,c),u.base=t.__e,t.__h=null,u.__h.length&&o.push(u),g&&(u.__E=u.__=null),u.__e=!1}else null==i&&t.__v===n.__v?(t.__k=n.__k,t.__e=n.__e):t.__e=Kl(n.__e,t,n,r,s,i,o,c);(a=vl.diffed)&&a(t)}catch(e){t.__v=null,(c||null!=i)&&(t.__e=l,t.__h=!!c,i[i.indexOf(l)]=null),vl.__e(e,t,n)}}function Vl(e,t){vl.__c&&vl.__c(t,e),e.some((function(t){try{e=t.__h,t.__h=[],e.some((function(e){e.call(t)}))}catch(e){vl.__e(e,t.__v)}}))}function Kl(e,t,n,r,s,i,o,l){var c,a,u,d=n.props,h=t.props,f=t.type,p=0;if("svg"===f&&(s=!0),null!=i)for(;p<i.length;p++)if((c=i[p])&&"setAttribute"in c==!!f&&(f?c.localName===f:3===c.nodeType)){e=c,i[p]=null;break}if(null==e){if(null===f)return document.createTextNode(h);e=s?document.createElementNS("http://www.w3.org/2000/svg",f):document.createElement(f,h.is&&h),i=null,l=!1}if(null===f)d===h||l&&e.data===h||(e.data=h);else{if(i=i&&ml.call(e.childNodes),a=(d=n.props||kl).dangerouslySetInnerHTML,u=h.dangerouslySetInnerHTML,!l){if(null!=i)for(d={},p=0;p<e.attributes.length;p++)d[e.attributes[p].name]=e.attributes[p].value;(u||a)&&(u&&(a&&u.__html==a.__html||u.__html===e.innerHTML)||(e.innerHTML=u&&u.__html||""))}if(function(e,t,n,r,s){var i;for(i in n)"children"===i||"key"===i||i in t||$l(e,i,null,n[i],r);for(i in t)s&&"function"!=typeof t[i]||"children"===i||"key"===i||"value"===i||"checked"===i||n[i]===t[i]||$l(e,i,t[i],n[i],r)}(e,h,d,s,l),u)t.__k=[];else if(p=t.props.children,Pl(e,Array.isArray(p)?p:[p],t,n,r,s&&"foreignObject"!==f,i,o,i?i[0]:n.__k&&Ul(n,0),l),null!=i)for(p=i.length;p--;)null!=i[p]&&Cl(i[p]);l||("value"in h&&void 0!==(p=h.value)&&(p!==e.value||"progress"===f&&!p||"option"===f&&p!==d.value)&&$l(e,"value",p,d.value,!1),"checked"in h&&void 0!==(p=h.checked)&&p!==e.checked&&$l(e,"checked",p,d.checked,!1))}return e}function Hl(e,t,n){try{"function"==typeof e?e(t):e.current=t}catch(e){vl.__e(e,n)}}function Jl(e,t,n){var r,s;if(vl.unmount&&vl.unmount(e),(r=e.ref)&&(r.current&&r.current!==e.__e||Hl(r,null,t)),null!=(r=e.__c)){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(e){vl.__e(e,t)}r.base=r.__P=null}if(r=e.__k)for(s=0;s<r.length;s++)r[s]&&Jl(r[s],t,"function"!=typeof e.type);n||null==e.__e||Cl(e.__e),e.__e=e.__d=void 0}function zl(e,t,n){return this.constructor(e,n)}function ql(e,t,n){var r,s,i;vl.__&&vl.__(e,t),s=(r="function"==typeof n)?null:n&&n.__k||t.__k,i=[],Wl(t,e=(!r&&n||t).__k=Il(Dl,null,[e]),s||kl,kl,void 0!==t.ownerSVGElement,!r&&n?[n]:s?null:t.firstChild?ml.call(t.childNodes):null,i,!r&&n?n:s?s.__e:t.firstChild,r),Vl(i,e)}ml=Sl.slice,vl={__e:function(e,t,n,r){for(var s,i,o;t=t.__;)if((s=t.__c)&&!s.__)try{if((i=s.constructor)&&null!=i.getDerivedStateFromError&&(s.setState(i.getDerivedStateFromError(e)),o=s.__d),null!=s.componentDidCatch&&(s.componentDidCatch(e,r||{}),o=s.__d),o)return s.__E=s}catch(t){e=t}throw e}},bl=0,Ol.prototype.setState=function(e,t){var n;n=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=xl({},this.state),"function"==typeof e&&(e=e(xl({},n),this.props)),e&&xl(n,e),null!=e&&this.__v&&(t&&this.__h.push(t),Ll(this))},Ol.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),Ll(this))},Ol.prototype.render=Dl,wl=[],jl.__r=0;const Yl={Error:{color:"red"},Alert:{error:{color:"red",fontWeight:"bold"},warning:{color:"#f80",fontWeight:"bold"},info:{color:"black"}},Darken:{position:"fixed",top:0,left:0,opacity:.5,backgroundColor:"#000",width:"100vw",height:"100vh",zIndex:150,webkitBackdropFilter:"blur(2px)",backdropFilter:"blur(2px)"},DialogOuter:{position:"fixed",top:0,left:0,width:"100vw",height:"100vh",zIndex:150,alignItems:"center",display:"flex",justifyContent:"center"},DialogInner:{position:"relative",color:"#222",backgroundColor:"#fff",padding:"30px",marginBottom:"2em",maxWidth:"90%",maxHeight:"90%",overflowY:"auto",border:"3px solid #3d3d5d",borderRadius:"8px",boxShadow:"0 0 80px 10px #666",width:"auto",fontFamily:"sans-serif"},Input:{height:"35px",width:"17em",borderColor:"#ccf4",outline:"none",fontSize:"17pt",padding:"8px"}};function Gl({children:e,className:t}){return Il("div",{className:t},Il("div",{style:Yl.Darken}),Il("div",{style:Yl.DialogOuter},Il("div",{style:Yl.DialogInner},e)))}var Ql,Xl,Zl,ec,tc=0,nc=[],rc=[],sc=vl.__b,ic=vl.__r,oc=vl.diffed,lc=vl.__c,cc=vl.unmount;function ac(e,t){vl.__h&&vl.__h(Xl,e,tc||t),tc=0;var n=Xl.__H||(Xl.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({__V:rc}),n.__[e]}function uc(e){return tc=1,function(e,t,n){var r=ac(Ql++,2);if(r.t=e,!r.__c&&(r.__=[n?n(t):mc(void 0,t),function(e){var t=r.__N?r.__N[0]:r.__[0],n=r.t(t,e);t!==n&&(r.__N=[n,r.__[1]],r.__c.setState({}))}],r.__c=Xl,!Xl.u)){Xl.u=!0;var s=Xl.shouldComponentUpdate;Xl.shouldComponentUpdate=function(e,t,n){if(!r.__c.__H)return!0;var i=r.__c.__H.__.filter((function(e){return e.__c}));if(i.every((function(e){return!e.__N})))return!s||s.call(this,e,t,n);var o=!1;return i.forEach((function(e){if(e.__N){var t=e.__[0];e.__=e.__N,e.__N=void 0,t!==e.__[0]&&(o=!0)}})),!!o&&(!s||s.call(this,e,t,n))}}return r.__N||r.__}(mc,e)}function dc(e){return tc=5,function(e,t){var n=ac(Ql++,7);return yc(n.__H,t)?(n.__V=e(),n.i=t,n.__h=e,n.__V):n.__}((function(){return{current:e}}),[])}function hc(){for(var e;e=nc.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(pc),e.__H.__h.forEach(gc),e.__H.__h=[]}catch(t){e.__H.__h=[],vl.__e(t,e.__v)}}vl.__b=function(e){Xl=null,sc&&sc(e)},vl.__r=function(e){ic&&ic(e),Ql=0;var t=(Xl=e.__c).__H;t&&(Zl===Xl?(t.__h=[],Xl.__h=[],t.__.forEach((function(e){e.__N&&(e.__=e.__N),e.__V=rc,e.__N=e.i=void 0}))):(t.__h.forEach(pc),t.__h.forEach(gc),t.__h=[])),Zl=Xl},vl.diffed=function(e){oc&&oc(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(1!==nc.push(t)&&ec===vl.requestAnimationFrame||((ec=vl.requestAnimationFrame)||function(e){var t,n=function(){clearTimeout(r),fc&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,100);fc&&(t=requestAnimationFrame(n))})(hc)),t.__H.__.forEach((function(e){e.i&&(e.__H=e.i),e.__V!==rc&&(e.__=e.__V),e.i=void 0,e.__V=rc}))),Zl=Xl=null},vl.__c=function(e,t){t.some((function(e){try{e.__h.forEach(pc),e.__h=e.__h.filter((function(e){return!e.__||gc(e)}))}catch(n){t.some((function(e){e.__h&&(e.__h=[])})),t=[],vl.__e(n,e.__v)}})),lc&&lc(e,t)},vl.unmount=function(e){cc&&cc(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.forEach((function(e){try{pc(e)}catch(e){t=e}})),t&&vl.__e(t,n.__v))};var fc="function"==typeof requestAnimationFrame;function pc(e){var t=Xl,n=e.__c;"function"==typeof n&&(e.__c=void 0,n()),Xl=t}function gc(e){var t=Xl;e.__c=e.__(),Xl=t}function yc(e,t){return!e||e.length!==t.length||t.some((function(t,n){return t!==e[n]}))}function mc(e,t){return"function"==typeof t?t(e):t}function vc({title:e,type:t,alerts:n,fields:r,submitLabel:s,cancelLabel:i,onCancel:o,onSubmit:l}){const[c,a]=uc({}),u=dc(null);return function(e,t){var n=ac(Ql++,4);!vl.__s&&yc(n.__H,t)&&(n.__=e,n.i=t,Xl.__h.push(n))}((()=>{var e;return null===(e=u.current)||void 0===e?void 0:e.focus()}),[]),Il(Gl,{className:"dxc-login-dlg"},Il(Dl,null,Il("h3",{style:Yl.WindowHeader},e),n.map((e=>Il("p",{style:Yl.Alert[e.type]},function({message:e,messageCode:t,messageParams:n}){return e.replace(/\{\w+\}/gi,(e=>n[e.substring(1,e.length-1)]))}(e)))),Il("form",{onSubmit:e=>{e.preventDefault(),l(c)}},Object.entries(r).map((([e,{type:t,label:n,placeholder:r}],s)=>Il("label",{style:Yl.Label,key:s},n?`${n}: `:"",Il("input",{ref:0===s?u:void 0,type:t,name:e,autoComplete:"on",style:Yl.Input,autoFocus:!0,placeholder:r,value:c[e]||"",onInput:n=>{var r;const s=function(e,t){switch(e){case"email":return t.toLowerCase();case"otp":return t.toUpperCase();default:return t}}(t,null===(r=n.target)||void 0===r?void 0:r.value);let i=Object.assign(Object.assign({},c),{[e]:s});a(i),"otp"===t&&8===(null==s?void 0:s.trim().length)&&l(i)}})))))),Il("div",{style:Yl.ButtonsDiv},Il(Dl,null,Il("button",{type:"submit",style:Yl.Button,onClick:()=>l(c)},s),i&&Il("button",{style:Yl.Button,onClick:o},i))))}class bc extends Ol{constructor(e){super(e),this.observer=e=>this.setState({userInteraction:e}),this.state={userInteraction:void 0}}componentDidMount(){this.subscription=t.from(this.props.db.cloud.userInteraction).subscribe(this.observer)}componentWillUnmount(){this.subscription&&(this.subscription.unsubscribe(),delete this.subscription)}render(e,{userInteraction:t}){return t?Il(vc,Object.assign({},t)):null}}function wc(e){const t=new WeakMap;return n=>{let r=t.get(n);return r||(r=e(n),t.set(n,r)),r}}const _c=wc((e=>new t.BehaviorSubject(c)));function kc(e,n){let r=n,s=t.from(e).pipe(t.map((e=>r=e)),t.share({resetOnRefCountZero:()=>t.timer(1e3)}));const i=new t.Observable((e=>{let t=!1;const n=s.subscribe({next(n){t=!0,e.next(n)},error(t){e.error(t)},complete(){e.complete()}});return t||n.closed||e.next(r),n}));return i.getValue=()=>r,i}const Sc=wc((t=>kc(e.liveQuery((()=>t.roles.where({realmId:"rlm-public"}).toArray().then((e=>{const t={};for(const n of e.slice().sort(((e,t)=>(e.sortOrder||0)-(t.sortOrder||0))))t[n.name]=n;return t})))),{}))),Ec=wc((t=>kc(_c(t._novip).pipe(n.switchMap((n=>e.liveQuery((()=>t.transaction("r","realms","members",(()=>Promise.all([t.members.where({userId:n.userId}).toArray(),t.realms.toArray(),n.userId]).then((([e,t,n])=>({selfMembers:e,realms:t,userId:n})))))))))),{selfMembers:[],realms:[],get userId(){return t.cloud.currentUserId}})));function xc(...e){if(0===e.length)return{};const t=e.reduce(((e,t)=>{const n=Object.assign({},e);for(const[e,r]of Object.entries(t))if(e in n&&n[e]){if("*"===n[e])continue;if("*"===r)n[e]="*";else if(Array.isArray(r)&&Array.isArray(n[e])){const t=n,s=t[e];t[e]=[...new Set([...s,...r])]}else if("object"==typeof r&&r&&"object"==typeof n[e]){const t=n[e];for(const[e,n]of Object.entries(r))"*"!==t[e]&&("*"===n?t[e]="*":Array.isArray(t[e])&&Array.isArray(n)&&(t[e]=[...new Set([...t[e],...n])]))}}else n[e]=t[e];return n}));return t}const Cc=wc((e=>function(e,n){let r;const s=e.pipe(t.map((e=>r=n(e))));return s.getValue=()=>void 0!==r?r:r=n(e.getValue()),s}(kc(t.combineLatest([Ec(e._novip),Sc(e._novip)]).pipe(n.map((([{selfMembers:e,realms:t,userId:n},r])=>({selfMembers:e,realms:t,userId:n,globalRoles:r})))),{selfMembers:[],realms:[],userId:c.userId,globalRoles:{}}),(({selfMembers:e,realms:t,userId:n,globalRoles:r})=>{const s=t.map((t=>{const s=e.filter((e=>e.realmId===t.realmId)),i=s.map((e=>e.permissions)).filter((e=>e)),o=C(s.map((e=>e.roles)).filter((e=>e))).map((e=>r[e])).filter((e=>e)).map((e=>e.permissions));return Object.assign(Object.assign({},t),{permissions:t.owner===n?{manage:"*"}:xc(...i,...o)})})).reduce(((e,t)=>Object.assign(Object.assign({},e),{[t.realmId]:t})),{[n]:{realmId:n,owner:n,name:n,permissions:{manage:"*"}}});return s}))));class Ic{constructor(e,t,n){this.permissions=e||{},this.tableName=t,this.isOwner=n}add(...e){var t;return"*"===this.permissions.manage||(!!(null===(t=this.permissions.manage)||void 0===t?void 0:t.includes(this.tableName))||("*"===this.permissions.add||!!e.every((e=>{var t;return null===(t=this.permissions.add)||void 0===t?void 0:t.includes(e)}))))}update(...e){var t,n;if(this.isOwner||"*"===this.permissions.manage)return!0;if(null===(t=this.permissions.manage)||void 0===t?void 0:t.includes(this.tableName))return!0;if("*"===this.permissions.update)return e.every((e=>"owner"!==e));const r=null===(n=this.permissions.update)||void 0===n?void 0:n[this.tableName];return"*"===r?e.every((e=>"owner"!==e)):e.every((e=>null==r?void 0:r.some((t=>t===e||"*"===t&&"owner"!==e))))}delete(){var e;return!(!this.isOwner&&"*"!==this.permissions.manage)||!!(null===(e=this.permissions.manage)||void 0===e?void 0:e.includes(this.tableName))}}const Ac=wc((s=>{const i=_c(s._novip).pipe(n.switchMap((t=>e.liveQuery((()=>s.members.where({email:t.email||""}).toArray()))))),o=Cc(s._novip),l=Ec(s._novip);return kc(t.combineLatest([i,l,o]).pipe(n.map((([e,t,n])=>{const i=(e,t)=>Object.assign(Object.assign({},e),{[t.id]:Object.assign(Object.assign({},t),{realm:n[t.realmId]})}),o=e.reduce(i,{}),l=t.selfMembers.reduce(i,o);return Object.values(l).filter((e=>!e.accepted)).map((e=>Object.assign(Object.assign({},e),{accept(){return r(this,void 0,void 0,(function*(){yield s.members.update(e.id,{accepted:new Date})}))},reject(){return r(this,void 0,void 0,(function*(){yield s.members.update(e.id,{rejected:new Date})}))}})))}))),[])}));function Dc(n){return s=>{var i;const o=s.doc;if(!o)throw new Error("Internal error: DexieYProvider.createYHandler called without a doc. This is unexpected.");const{parentTable:l}=o.meta||{};if(!(null===(i=n.cloud.schema)||void 0===i?void 0:i[l].markedForSync))return;let c;Object.defineProperty(s,"awareness",{get:()=>c||(c=function(n,s,i){const{parentTable:o,parentId:l,parentProp:c,updatesTable:a}=s.meta,u=new tl(s),d=il(s);return u.on("update",(({added:e,updated:t,removed:r},l)=>{const a=e.concat(t).concat(r),d=n.cloud.currentUser.value;if("server"!==l&&d.isLoggedIn&&!Wo(n)){const e=rl(u,a);n.messageProducer.next({type:"aware",table:o,prop:c,k:s.meta.parentId,u:e}),i.destroyed&&n.messageProducer.next({type:"doc-close",table:o,prop:c,k:s.meta.parentId})}})),u.on("destroy",(()=>{nl(u,[s.clientID],"provider destroyed")})),(()=>{r(this,void 0,void 0,(function*(){if(i.destroyed)return;let s=!1,u=1;const h=t.combineLatest([n.cloud.webSocketStatus,d.pipe(t.startWith(null))]).subscribe((([e])=>{if(i.destroyed)return;s="connected"===e;const t=n.cloud.currentUser.value;"connected"===e&&t.isLoggedIn&&!Wo(n)&&(++u,f().catch((e=>{})))}));function f(){return r(this,void 0,void 0,(function*(){const t=u,d=n.table(a),h=n.$syncState,[f,p]=yield n.transaction("r",h,d,(()=>r(this,void 0,void 0,(function*(){const e=yield d.get(yt),t=yield h.get("syncState");return[(null==e?void 0:e.receivedUntil)||0,(null==t?void 0:t.yServerRevision)||(null==t?void 0:t.serverRevision)]}))));if(i.destroyed||u!==t||!s)return;const g={type:"doc-open",table:o,prop:c,k:l,serverRev:p},y=yield d.where("i").between(f,1/0,!1).filter((t=>0===e.cmp(t.k,l)&&0==(1&(t.f||0)))).toArray();if(!i.destroyed&&u===t&&s){if(y.length>0){const e=hs(y.map((e=>e.u))),t=us(e);g.sv=t}n.messageProducer.next(g)}}))}i.addCleanupHandler(h)}))})(),u}(n,o,s),Zo.set(o,c),c)})}}const Oc={nameSuffix:!0};function Uc(s){const i=s.name,o=_c(s),l=[];let a=!1,u=null;s.on("ready",(s=>r(this,void 0,void 0,(function*(){try{yield function(s){return r(this,void 0,void 0,(function*(){var i,c,p,m,v,b,w;d=!1;const k=vo(s);"undefined"!=typeof window&&"undefined"!=typeof document&&((null===(i=k.cloud.options)||void 0===i?void 0:i.customLoginGui)||l.push(function(e){let t=!1;const n=document.createElement("div");return document.body?(document.body.appendChild(n),ql(Il(bc,{db:e.vip}),n)):addEventListener("DOMContentLoaded",(()=>{t||(document.body.appendChild(n),ql(Il(bc,{db:e.vip}),n))})),{unsubscribe(){try{n.remove()}catch(e){}t=!0},get closed(){return t}}}(s))),k.cloud.isServiceWorkerDB||l.push(function(e){let r=e.cloud.webSocketStatus.value;const s=e.cloud.webSocketStatus.pipe(n.switchMap((e=>{const s=r;r=e;const i=t.of(e);switch(e){case"disconnected":return Jo.value?i.pipe(n.debounceTime(500)):i;case"connecting":return"not-started"===s||"error"===s?i:i.pipe(n.debounceTime(4e3));default:return i}})));return t.combineLatest([s,e.syncStateChangedEvent.pipe(n.startWith({phase:"initial"})),_c(e.dx._novip),zo]).pipe(n.map((([t,n,r,s])=>{var i;if((null===(i=r.license)||void 0===i?void 0:i.status)&&"ok"!==r.license.status)return{phase:"offline",status:"offline",license:r.license.status};let{phase:o,error:l,progress:c}=n,a=t;return"error"===o&&(a="error"),"not-started"===t&&("pushing"!==o&&"pulling"!==o||(a="connecting")),"error"!==e.cloud.syncState.value.phase||"pushing"!==n.phase&&"pulling"!==n.phase||(a="connecting"),s||(a="disconnected"),{phase:o,error:l,progress:c,status:dt?a:"offline",license:"ok"}})))}(k).subscribe(s.cloud.syncState)),l.push(k.syncCompleteEvent.subscribe(f)),k.tables.every((e=>e.core))||function(){throw new e.SchemaError("Version increment needed to allow dexie-cloud change tracking")}();const S="serviceWorker"in navigator?yield navigator.serviceWorker.getRegistrations():[],[E,x]=yield k.transaction("rw",k.$syncState,(()=>r(this,void 0,void 0,(function*(){var e,t;const{options:n,schema:r}=k.cloud,[s,i,o]=yield Promise.all([k.getOptions(),k.getSchema(),k.getPersistedSyncState()]);if(a){if(!s||JSON.stringify(s)!==JSON.stringify(n)){if(!n)throw new Error("Internal error");const e=Object.assign({},n);delete e.fetchTokens,delete e.awarenessProtocol,yield k.$syncState.put(e,"options")}}else k.cloud.options=s||null;if((null===(e=k.cloud.options)||void 0===e?void 0:e.tryUseServiceWorker)&&"serviceWorker"in navigator&&S.length>0&&!Do?k.cloud.usingServiceWorker=!0:((null===(t=k.cloud.options)||void 0===t?void 0:t.tryUseServiceWorker)&&k.cloud.isServiceWorkerDB,k.cloud.usingServiceWorker=!1),yl(r,k.cloud.options),yl(i,k.cloud.options),r){if(!i||JSON.stringify(i)!==JSON.stringify(r)){const e=i||{};for(const[t,n]of Object.entries(r)){const r=e[t];r?(r.markedForSync=n.markedForSync,n.deleted=r.deleted,r.generatedGlobalId=n.generatedGlobalId):e[t]=Object.assign({},n)}yield k.$syncState.put(e,"schema"),Object.assign(r,e)}}else k.cloud.schema=i||null;return[null==o?void 0:o.initiallySynced,null==o?void 0:o.realms]}))));if(E&&k.setInitiallySynced(!0),function(t){var n,r;for(const s of t.tables)if(null===(r=null===(n=t.cloud.schema)||void 0===n?void 0:n[s.name])||void 0===r?void 0:r.markedForSync){if(s.schema.primKey.auto)throw new e.SchemaError(`Table ${s.name} is both autoIncremented and synced. Use db.cloud.configure({unsyncedTables: [${JSON.stringify(s.name)}]}) to blacklist it from sync`);if(!s.schema.primKey.keyPath)throw new e.SchemaError(`Table ${s.name} cannot be both synced and outbound. Use db.cloud.configure({unsyncedTables: [${JSON.stringify(s.name)}]}) to blacklist it from sync`)}}(k),h(),!k.cloud.isServiceWorkerDB){l.push(e.liveQuery((()=>k.getCurrentUser())).subscribe(o)),l.push(e.liveQuery((()=>k.getPersistedSyncState())).subscribe(k.cloud.persistedSyncState)),yield t.firstValueFrom(t.combineLatest([o.pipe(n.skip(1),n.take(1)),k.cloud.persistedSyncState.pipe(n.skip(1),n.take(1))]));const r=Dc(k);eo.on.new.subscribe(r),k.dx.once("close",(()=>{eo.on.new.unsubscribe(r)}))}let C=!1;const I=yield k.getCurrentUser(),A=null===(c=k.cloud.options)||void 0===c?void 0:c.requireAuth;A&&(k.cloud.isServiceWorkerDB?yield t.firstValueFrom(o.pipe(n.filter((e=>!!e.isLoggedIn)),n.take(1))):"object"==typeof A?(!I.isLoggedIn||A.userId&&I.userId!==A.userId||A.email&&I.email!==A.email)&&(C=yield xo(k,A)):I.isLoggedIn||(C=yield xo(k))),!I.isLoggedIn||x&&x.includes(I.userId)||(C=!0),u&&u.stop(),u=null,h();const D=(null===(p=k.cloud.options)||void 0===p?void 0:p.databaseUrl)&&(!E||C);D&&(yield function(e,t,n){return r(this,void 0,void 0,(function*(){yield Ho(e,oo,(()=>lo(e,t,n,{isInitialSync:!0})))}))}(k,k.cloud.options,k.cloud.schema),k.setInitiallySynced(!0)),h(),k.cloud.usingServiceWorker&&(null===(m=k.cloud.options)||void 0===m?void 0:m.databaseUrl)?(D||g(k,"push").catch((()=>{})),function(e){return r(this,void 0,void 0,(function*(){var t;try{const{periodicSync:n}=yield navigator.serviceWorker.ready;if(n)try{yield n.register(`dexie-cloud:${e.name}`,null===(t=e.cloud.options)||void 0===t?void 0:t.periodicSync)}catch(e){}}catch(e){}}))}(k).catch((()=>{}))):(null===(v=k.cloud.options)||void 0===v?void 0:v.databaseUrl)&&k.cloud.schema&&!k.cloud.isServiceWorkerDB&&(u=gl(k,k.cloud.options,k.cloud.schema),u.start(),D||y(k,"push")),h(),k.cloud.isServiceWorkerDB||l.push(t.fromEvent(self,"online").subscribe((()=>{k.syncStateChangedEvent.next({phase:"not-in-sync"}),Wo(k)||y(k,"push")})),t.fromEvent(self,"offline").subscribe((()=>{k.syncStateChangedEvent.next({phase:"offline"})}))),!(null===(b=k.cloud.options)||void 0===b?void 0:b.databaseUrl)||(null===(w=k.cloud.options)||void 0===w?void 0:w.disableWebSocket)||Oo||l.push(function(e){var s;if(!(null===(s=e.cloud.options)||void 0===s?void 0:s.databaseUrl))throw new Error("No database URL to connect WebSocket to");const i=e.messageConsumer.readyToServe.pipe(n.filter((e=>e)),n.switchMap((()=>e.getPersistedSyncState())),n.filter((e=>e&&e.serverRevision)),n.switchMap((e=>r(this,void 0,void 0,(function*(){return{type:"ready",rev:e.serverRevision,realmSetHash:yield _(e)}}))))),o=t.merge(i,e.messageProducer);return function s(){return e.cloud.persistedSyncState.pipe(n.filter((e=>null==e?void 0:e.serverRevision)),n.take(1),n.switchMap((t=>e.cloud.currentUser.pipe(n.map((e=>[e,t]))))),n.switchMap((([e,t])=>zo.pipe(n.map((n=>[n?e:null,t]))))),n.switchMap((([r,s])=>(null==r?void 0:r.isLoggedIn)&&!(null==s?void 0:s.realms.includes(r.userId))?e.cloud.persistedSyncState.pipe(n.filter((e=>(null==e?void 0:e.realms.includes(r.userId))||!1)),n.take(1),n.map((e=>[r,e]))):new t.BehaviorSubject([r,s]))),n.switchMap((e=>r(this,[e],void 0,(function*([e,t]){return[e,yield _(t)]})))),n.distinctUntilChanged((([e,t],[n,r])=>e===n&&t===r)),n.switchMap((([n,r])=>{var i;return(null===(i=e.cloud.persistedSyncState)||void 0===i?void 0:i.value)?n?new ol(e,e.cloud.persistedSyncState.value.serverRevision,e.cloud.persistedSyncState.value.yServerRevision,r,e.cloud.persistedSyncState.value.clientIdentity,o,e.cloud.webSocketStatus,n):t.from([]):s()})),n.catchError((i=>"TokenExpiredError"===(null==i?void 0:i.name)?t.of(!0).pipe(n.switchMap((()=>r(this,void 0,void 0,(function*(){const t=yield e.getCurrentUser(),n=yield Ie(e.cloud.options.databaseUrl,t);yield e.table("$logins").update(t.userId,{accessToken:n.accessToken,accessTokenExpiration:n.accessTokenExpiration,claims:n.claims,license:n.license,data:n.data})})))),n.switchMap((()=>s()))):t.throwError((()=>i)))),n.catchError((r=>(e.cloud.webSocketStatus.next("error"),r instanceof al?t.throwError((()=>r)):t.from(ul()).pipe(n.switchMap((()=>s())))))))}().subscribe({next:t=>{t&&e.messageConsumer.enqueue(t)},error:e=>{},complete:()=>{}})}(k))}))}(s)}catch(e){}}))),!0);let d=!1;function h(){if(d)throw new e.DatabaseClosedError}s.once("close",(()=>{l.forEach((e=>e.unsubscribe())),l.splice(0,l.length),d=!0,u&&u.stop(),u=null,o.next(c)}));const f=new t.Subject;var p;s.cloud={version:"4.2.0-alpha.7",options:Object.assign({},Oc),schema:null,get currentUserId(){return o.value.userId||c.userId},currentUser:o,syncState:new t.BehaviorSubject({phase:"initial",status:"not-started"}),events:{syncComplete:f},persistedSyncState:new t.BehaviorSubject(void 0),userInteraction:new t.BehaviorSubject(void 0),webSocketStatus:new t.BehaviorSubject("not-started"),login(e){return r(this,void 0,void 0,(function*(){const t=vo(s);yield t.cloud.sync(),yield xo(t,e)}))},invites:Ac(s),roles:Sc(s),configure(e){e=s.cloud.options=Object.assign(Object.assign({},s.cloud.options),e),a=!0,e.databaseUrl&&e.nameSuffix&&(s.name=`${i}-${function(e){const t=new URL(e);return"/"===t.pathname?t.hostname.split(".")[0]:t.pathname.split("/")[1]}(e.databaseUrl)}`,vo(s).reconfigure()),yl(s.cloud.schema,s.cloud.options)},logout(){return r(this,arguments,void 0,(function*({force:e}={}){e?yield So(vo(s),{deleteUnsyncedData:!0}):yield ko(vo(s))}))},sync(){return r(this,arguments,void 0,(function*({wait:i,purpose:o}={wait:!0,purpose:"push"}){var l;void 0===i&&(i=!0);const c=vo(s);if("ok"!==((null===(l=c.cloud.currentUser.value.license)||void 0===l?void 0:l.status)||"ok")&&(yield xe(c)),"pull"===o){const e=c.cloud.persistedSyncState.value;if(y(c,o),i){const r=yield t.firstValueFrom(c.cloud.persistedSyncState.pipe(n.filter((t=>null!=(null==t?void 0:t.timestamp)&&(!e||t.timestamp>e.timestamp)))));if(null==r?void 0:r.error)throw new Error("Sync error: "+r.error)}}else if(yield dl(c)){const s=c.cloud.persistedSyncState.value;y(c,o),i&&(yield t.firstValueFrom(t.from(e.liveQuery((()=>r(this,void 0,void 0,(function*(){const e=yield dl(c),t=yield c.getPersistedSyncState();if((null==t?void 0:t.timestamp)!==(null==s?void 0:s.timestamp)&&(null==t?void 0:t.error))throw new Error("Sync error: "+t.error);return e}))))).pipe(n.filter((e=>!e)))))}}))},permissions:(e,t)=>function(e,t,r){if(!t)throw new TypeError("Cannot check permissions of undefined or null. A Dexie Cloud object with realmId and owner expected.");const{owner:s,realmId:i}=t;if(!r){if("function"!=typeof t.table)throw new TypeError("Missing 'table' argument to permissions and table could not be extracted from entity");r=t.table()}const o=Cc(e),l=t=>{const n=t[i||e.cloud.currentUserId];return n?new Ic(n.permissions,r,void 0===i||i===e.cloud.currentUserId||s===e.cloud.currentUserId):new Ic({},r,!s||s===e.cloud.currentUserId)},c=o.pipe(n.map(l));return c.getValue=()=>l(o.getValue()),c}(s._novip,e,t)},s.Version.prototype._parseStoresSpec=e.override(s.Version.prototype._parseStoresSpec,(e=>Ko(e,s))),s.Table.prototype.newId=function({colocateWith:e}={}){const t=e&&e.substr(e.length-3);return Ro(s.cloud.schema[this.name].idPrefix||"",t)},s.Table.prototype.idPrefix=function(){var e,t;return(null===(t=null===(e=this.db.cloud.schema)||void 0===e?void 0:e[this.name])||void 0===t?void 0:t.idPrefix)||""},s.use(Vo({currentUserObservable:s.cloud.currentUser,db:vo(s)})),s.use((p=vo(s),{stack:"dbcore",name:"implicitPropSetterMiddleware",level:1,create:e=>Object.assign(Object.assign({},e),{table:t=>{const n=e.table(t);return Object.assign(Object.assign({},n),{mutate:e=>{var r,s,i,o,l,a;const u=e.trans;if(u.disableChangeTracking)return n.mutate(e);const d=null!==(s=null===(r=u.currentUser)||void 0===r?void 0:r.userId)&&void 0!==s?s:c.userId;if((null===(o=null===(i=p.cloud.schema)||void 0===i?void 0:i[t])||void 0===o?void 0:o.markedForSync)&&("add"===e.type||"put"===e.type)){if("members"===t)for(const t of e.values)"string"==typeof t.email&&(t.email=t.email.trim().toLowerCase());for(const t of e.values){t.owner||(t.owner=d),t.realmId||(t.realmId=d);const r=null===(a=(l=n.schema.primaryKey).extractKey)||void 0===a?void 0:a.call(l,t);"string"==typeof r&&"#"===r[0]&&"put"===e.type&&(delete e.criteria,delete e.changeSpec,delete e.updates,t.$ts=Date.now())}}return n.mutate(e)}})}})})),s.use(Mo(vo(s)))}Uc.version="4.2.0-alpha.7",e.Cloud=Uc;const Tc=new Map;function Lc(e){return e.startsWith("dexie-cloud:")&&e.split(":")[1]}const jc=new Map;function Pc(t,n){let s=jc.get(t+"/"+n);return s||(s=function t(n,s){return r(this,void 0,void 0,(function*(){var r;let i=Tc.get(n);if(!i){const r=new e(n,{addons:[Uc]});if(i=vo(r),i.cloud.isServiceWorkerDB=!0,r.on("versionchange",o),yield i.dx.open(),Tc.get(n))return i.close(),yield t(n,s);Tc.set(n,i)}if((null===(r=i.cloud.options)||void 0===r?void 0:r.databaseUrl)&&i.cloud.schema)try{yield fl(i,i.cloud.options,i.cloud.schema,{retryImmediatelyOnFetchError:!0,purpose:s})}catch(t){if(o(),t.name!==e.errnames.NoSuchDatabase)throw t}function o(){return i.dx.on.versionchange.unsubscribe(o),Tc.get(i.name)===i&&Tc.delete(i.name),i.dx.close(),!1}}))}(t,n).then((()=>{jc.delete(t+"/"+n)})).catch((e=>(jc.delete(t+"/"+n),Promise.reject(e)))),jc.set(t+"/"+n,s)),s}Do||(self.addEventListener("sync",(e=>{const t=Lc(e.tag);t&&e.waitUntil(Pc(t,"push"))})),self.addEventListener("periodicsync",(e=>{const t=Lc(e.tag);t&&e.waitUntil(Pc(t,"pull"))})),self.addEventListener("message",(e=>{if("dexie-cloud-sync"===e.data.type){const{dbName:t}=e.data,n=(s=1)=>Pc(t,e.data.purpose||"pull").catch((e=>r(void 0,void 0,void 0,(function*(){if(3===s)throw e;var t;yield(t=6e4,new Promise((e=>setTimeout(e,t)))),n(s+1)}))));"waitUntil"in e?e.waitUntil(n().catch((e=>{}))):n().catch((e=>{}))}})))}));
2
2
  //# sourceMappingURL=service-worker.min.js.map