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

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 T="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=U)=>{const n=Buffer.alloc(e);return t(n),n.toString("base64")}:()=>{throw new Error("No implementation of randomString was found")};function U(e){for(let t=0;t<e.length;++t)e[t]=Math.floor(256*Math.random())}function j(e){return"string"==typeof e||!!(Array.isArray(e)&&e.some((e=>j(e)))&&e.every(L))}function L(e){return"string"==typeof e||"number"==typeof e||Array.isArray(e)&&e.every(L)}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 Te={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 Ue={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 je={bigint:{replace:e=>({$t:"bigint",v:""+e}),revive:e=>BigInt(e.v)}};var Le={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={...Ue,...je,...Le,...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,Te,...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()}}const It=Math.floor,At=Math.abs,Dt=(e,t)=>e<t?e:t,Ot=(e,t)=>e>t?e:t,Tt=e=>0!==e?e<0:1/e<0,Ut=64,jt=128,Lt=127,Pt=Number.MAX_SAFE_INTEGER,Rt=Number.isInteger||(e=>"number"==typeof e&&isFinite(e)&&It(e)===e),Mt=/^\s*/g,Nt=/([A-Z])/g,$t=(e,t)=>(e=>e.replace(Mt,""))(e.replace(Nt,(e=>`${t}${(e=>e.toLowerCase())(e)}`))),Bt="undefined"!=typeof TextEncoder?new TextEncoder:null,Ft=Bt?e=>Bt.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 Wt="undefined"==typeof TextDecoder?null:new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});Wt&&1===Wt.decode(new Uint8Array).length&&(Wt=null);class Vt{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}}const Kt=()=>new Vt,Ht=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},Jt=(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},zt=Jt,qt=(e,t)=>{for(;t>Lt;)Jt(e,jt|Lt&t),t=It(t/128);Jt(e,Lt&t)},Yt=(e,t)=>{const n=Tt(t);for(n&&(t=-t),Jt(e,(t>63?jt:0)|(n?Ut:0)|63&t),t=It(t/64);t>0;)Jt(e,(t>Lt?jt:0)|Lt&t),t=It(t/128)},Gt=new Uint8Array(3e4),Qt=Gt.length/3,Xt=Bt&&Bt.encodeInto?(e,t)=>{if(t.length<Qt){const n=Bt.encodeInto(t,Gt).written||0;qt(e,n);for(let t=0;t<n;t++)Jt(e,Gt[t])}else en(e,Ft(t))}:(e,t)=>{const n=unescape(encodeURIComponent(t)),r=n.length;qt(e,r);for(let t=0;t<r;t++)Jt(e,n.codePointAt(t))},Zt=(e,t)=>{const n=e.cbuf.length,r=e.cpos,s=Dt(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(Ot(2*n,i)),e.cbuf.set(t.subarray(s)),e.cpos=i)},en=(e,t)=>{qt(e,t.byteLength),Zt(e,t)},tn=(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*Ot(n,t)),e.cpos=0)})(e,t);const n=new DataView(e.cbuf.buffer,e.cpos,t);return e.cpos+=t,n},nn=new DataView(new ArrayBuffer(4)),rn=(e,t)=>{switch(typeof t){case"string":Jt(e,119),Xt(e,t);break;case"number":Rt(t)&&At(t)<=2147483647?(Jt(e,125),Yt(e,t)):(n=t,nn.setFloat32(0,n),nn.getFloat32(0)===n?(Jt(e,124),((e,t)=>{tn(e,4).setFloat32(0,t,!1)})(e,t)):(Jt(e,123),((e,t)=>{tn(e,8).setFloat64(0,t,!1)})(e,t)));break;case"bigint":Jt(e,122),((e,t)=>{tn(e,8).setBigInt64(0,t,!1)})(e,t);break;case"object":if(null===t)Jt(e,126);else if(xt(t)){Jt(e,117),qt(e,t.length);for(let n=0;n<t.length;n++)rn(e,t[n])}else if(t instanceof Uint8Array)Jt(e,116),en(e,t);else{Jt(e,118);const n=Object.keys(t);qt(e,n.length);for(let r=0;r<n.length;r++){const s=n[r];Xt(e,s),rn(e,t[s])}}break;case"boolean":Jt(e,t?120:121);break;default:Jt(e,127)}var n};class sn extends Vt{constructor(e){super(),this.w=e,this.s=null,this.count=0}write(e){this.s===e?this.count++:(this.count>0&&qt(this,this.count-1),this.count=1,this.w(this,e),this.s=e)}}const on=e=>{e.count>0&&(Yt(e.encoder,1===e.count?e.s:-e.s),e.count>1&&qt(e.encoder,e.count-2))};class ln{constructor(){this.encoder=new Vt,this.s=0,this.count=0}write(e){this.s===e?this.count++:(on(this),this.count=1,this.s=e)}toUint8Array(){return on(this),Ht(this.encoder)}}const cn=e=>{if(e.count>0){const t=2*e.diff+(1===e.count?0:1);Yt(e.encoder,t),e.count>1&&qt(e.encoder,e.count-2)}};class an{constructor(){this.encoder=new Vt,this.s=0,this.count=0,this.diff=0}write(e){this.diff===e-this.s?(this.s=e,this.count++):(cn(this),this.count=1,this.diff=e-this.s,this.s=e)}toUint8Array(){return cn(this),Ht(this.encoder)}}class un{constructor(){this.sarr=[],this.s="",this.lensE=new ln}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 Vt;return this.sarr.push(this.s),this.s="",Xt(e,this.sarr.join("")),Zt(e,this.lensE.toUint8Array()),Ht(e)}}const dn=e=>new Error(e),hn=()=>{throw dn("Method unimplemented")},fn=()=>{throw dn("Unexpected case")},pn=dn("Unexpected end of array"),gn=dn("Integer out of Range");class yn{constructor(e){this.arr=e,this.pos=0}}const mn=e=>new yn(e),vn=e=>((e,t)=>{const n=new Uint8Array(e.arr.buffer,e.pos+e.arr.byteOffset,t);return e.pos+=t,n})(e,wn(e)),bn=e=>e.arr[e.pos++],wn=e=>{let t=0,n=1;const r=e.arr.length;for(;e.pos<r;){const r=e.arr[e.pos++];if(t+=(r&Lt)*n,n*=128,r<jt)return t;if(t>Pt)throw gn}throw pn},_n=e=>{let t=e.arr[e.pos++],n=63&t,r=64;const s=(t&Ut)>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&Lt)*r,r*=128,t<jt)return s*n;if(n>Pt)throw gn}throw pn},kn=Wt?e=>Wt.decode(vn(e)):e=>{let t=wn(e);if(0===t)return"";{let n=String.fromCodePoint(bn(e));if(--t<100)for(;t--;)n+=String.fromCodePoint(bn(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))}},Sn=(e,t)=>{const n=new DataView(e.arr.buffer,e.arr.byteOffset+e.pos,t);return e.pos+=t,n},En=[e=>{},e=>null,_n,e=>Sn(e,4).getFloat32(0,!1),e=>Sn(e,8).getFloat64(0,!1),e=>Sn(e,8).getBigInt64(0,!1),e=>!1,e=>!0,kn,e=>{const t=wn(e),n={};for(let r=0;r<t;r++){n[kn(e)]=xn(e)}return n},e=>{const t=wn(e),n=[];for(let r=0;r<t;r++)n.push(xn(e));return n},vn],xn=e=>En[127-bn(e)](e);class Cn extends yn{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=wn(this)+1:this.count=-1),this.count--,this.s}}class In extends yn{constructor(e){super(e),this.s=0,this.count=0}read(){if(0===this.count){this.s=_n(this);const e=Tt(this.s);this.count=1,e&&(this.s=-this.s,this.count=wn(this)+2)}return this.count--,this.s}}class An extends yn{constructor(e){super(e),this.s=0,this.count=0,this.diff=0}read(){if(0===this.count){const e=_n(this),t=1&e;this.diff=It(e/2),this.count=1,t&&(this.count=wn(this)+2)}return this.s+=this.diff,this.count--,this.s}}class Dn{constructor(e){this.decoder=new In(e),this.str=kn(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 On=crypto.getRandomValues.bind(crypto),Tn=()=>On(new Uint32Array(1))[0],Un=[1e7]+-1e3+-4e3+-8e3+-1e11,jn=()=>Un.replace(/[018]/g,(e=>(e^Tn()&15>>e/4).toString(16))),Ln=e=>new Promise(e);Promise.all.bind(Promise);const Pn=e=>void 0===e?null:e;let Rn=new class{constructor(){this.map=new Map}setItem(e,t){this.map.set(e,t)}getItem(e){return this.map.get(e)}},Mn=!0;try{"undefined"!=typeof localStorage&&localStorage&&(Rn=localStorage,Mn=!1)}catch(Ql){}const Nn=Rn,$n=Object.assign,Bn=Object.keys,Fn=e=>Bn(e).length,Wn=(e,t)=>e===t||Fn(e)===Fn(t)&&((e,t)=>{for(const n in e)if(!t(e[n],n))return!1;return!0})(e,((e,n)=>(void 0!==e||((e,t)=>Object.prototype.hasOwnProperty.call(e,t))(t,n))&&t[n]===e)),Vn=Object.freeze,Kn=e=>{for(const t in e){const n=e[t];"object"!=typeof n&&"function"!=typeof n||Kn(e[t])}return Vn(e)},Hn=(e,t,n=0)=>{try{for(;n<e.length;n++)e[n](...t)}finally{n<e.length&&Hn(e,t,n+1)}},Jn="undefined"!=typeof process&&process.release&&/node|io\.js/.test(process.release.name)&&"[object process]"===Object.prototype.toString.call("undefined"!=typeof process?process:0);let zn;const qn=e=>(()=>{if(void 0===zn)if(Jn){zn=vt();const e=process.argv;let t=null;for(let n=0;n<e.length;n++){const r=e[n];"-"===r[0]?(null!==t&&zn.set(t,""),t=r):null!==t&&(zn.set(t,r),t=null)}null!==t&&zn.set(t,"")}else"object"==typeof location?(zn=vt(),(location.search||"?").slice(1).split("&").forEach((e=>{if(0!==e.length){const[t,n]=e.split("=");zn.set(`--${$t(t,"-")}`,n),zn.set(`-${$t(t,"-")}`,n)}}))):zn=vt();return zn})().has(e),Yn=e=>Pn(Jn?process.env[e.toUpperCase().replaceAll("-","_")]:Nn.getItem(e)),Gn=e=>qn("--"+e)||null!==Yn(e);Gn("production");var Qn;Jn&&(Qn=process.env.FORCE_COLOR,["true","1","2"].includes(Qn))||!qn("--no-colors")&&!Gn("no-color")&&(!Jn||process.stdout.isTTY)&&(!Jn||qn("--color")||null!==Yn("COLORTERM")||(Yn("TERM")||"").includes("color"));class Xn{constructor(e,t){this.left=e,this.right=t}}const Zn=(e,t)=>new Xn(e,t);"undefined"!=typeof DOMParser&&new DOMParser;const er=Symbol,tr=er(),nr=er(),rr=er(),sr=er(),ir=er(),or=er(),lr=er(),cr=er(),ar=er(),ur=(Zn("font-weight","bold"),Zn("font-weight","normal"),Zn("color","blue"),Zn("color","green"),Zn("color","grey"),Zn("color","red"),Zn("color","purple"),Zn("color","orange"),Zn("color","black"),_t()),dr=e=>({[Symbol.iterator](){return this},next:e}),hr=(e,t)=>dr((()=>{const{done:n,value:r}=e.next();return{done:n,value:n?void 0:t(r)}}));class fr{constructor(e,t){this.clock=e,this.len=t}}class pr{constructor(){this.clients=new Map}}const gr=(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])Qr(e,s,o.clock,o.len,n)}})),yr=(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=It((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)},mr=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=Ot(r.len,s.clock+s.len-r.clock):(n<t&&(e[n]=s),n++)}e.length=n}))},vr=(e,t,n,r)=>{wt(e.clients,t,(()=>[])).push(new fr(n,r))},br=(e,t)=>{qt(e.restEncoder,t.clients.size),Et(t.clients.entries()).sort(((e,t)=>t[0]-e[0])).forEach((([t,n])=>{e.resetDsCurVal(),qt(e.restEncoder,t);const r=n.length;qt(e.restEncoder,r);for(let t=0;t<r;t++){const r=n[t];e.writeDsClock(r.clock),e.writeDsLen(r.len)}}))},wr=(e,t,n)=>{const r=new pr,s=wn(e.restDecoder);for(let i=0;i<s;i++){e.resetDsCurVal();const s=wn(e.restDecoder),i=wn(e.restDecoder),o=n.clients.get(s)||[],l=Kr(n,s);for(let n=0;n<i;n++){const n=e.readDsClock(),i=n+e.readDsLen();if(n<l){l<i&&vr(r,s,l,i-l);let e=Jr(o,n),c=o[e];for(!c.deleted&&c.id.clock<n&&(o.splice(e+1,0,Ui(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,Ui(t,c,i-c.id.clock)),c.delete(t))}else vr(r,s,n,i-n)}}if(r.clients.size>0){const e=new Ar;return qt(e.restEncoder,0),br(e,r),e.toUint8Array()}return null},_r=Tn;class kr 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=_r(),this.guid=e,this.collectionid=t,this.share=new Map,this.store=new Wr,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=Ln((e=>{this.on("load",(()=>{this.isLoaded=!0,e(this)}))}));const l=()=>Ln((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||rs(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 rs(this,e,t)}get(e,t=ks){const n=wt(this.share,e,(()=>{const e=new t;return e._integrate(this,null),e})),r=n.constructor;if(t!==ks&&r!==t){if(r===ks){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,Bs)}getText(e=""){return this.get(e,si)}getMap(e=""){return this.get(e,Ws)}getXmlElement(e=""){return this.get(e,li)}getXmlFragment(e=""){return this.get(e,oi)}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 kr({guid:this.guid,...t.opts,shouldLoad:!1}),t.doc._item=e,rs(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 Sr{constructor(e){this.dsCurrVal=0,this.restDecoder=e}resetDsCurVal(){this.dsCurrVal=0}readDsClock(){return this.dsCurrVal+=wn(this.restDecoder),this.dsCurrVal}readDsLen(){const e=wn(this.restDecoder)+1;return this.dsCurrVal+=e,e}}class Er extends Sr{constructor(e){super(e),this.keys=[],wn(e),this.keyClockDecoder=new An(vn(e)),this.clientDecoder=new In(vn(e)),this.leftClockDecoder=new An(vn(e)),this.rightClockDecoder=new An(vn(e)),this.infoDecoder=new Cn(vn(e),bn),this.stringDecoder=new Dn(vn(e)),this.parentInfoDecoder=new Cn(vn(e),bn),this.typeRefDecoder=new In(vn(e)),this.lenDecoder=new In(vn(e))}readLeftID(){return new Mr(this.clientDecoder.read(),this.leftClockDecoder.read())}readRightID(){return new Mr(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 xn(this.restDecoder)}readBuf(){return vn(this.restDecoder)}readJSON(){return xn(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 xr{constructor(){this.restEncoder=Kt()}toUint8Array(){return Ht(this.restEncoder)}resetDsCurVal(){}writeDsClock(e){qt(this.restEncoder,e)}writeDsLen(e){qt(this.restEncoder,e)}}class Cr extends xr{writeLeftID(e){qt(this.restEncoder,e.client),qt(this.restEncoder,e.clock)}writeRightID(e){qt(this.restEncoder,e.client),qt(this.restEncoder,e.clock)}writeClient(e){qt(this.restEncoder,e)}writeInfo(e){zt(this.restEncoder,e)}writeString(e){Xt(this.restEncoder,e)}writeParentInfo(e){qt(this.restEncoder,e?1:0)}writeTypeRef(e){qt(this.restEncoder,e)}writeLen(e){qt(this.restEncoder,e)}writeAny(e){rn(this.restEncoder,e)}writeBuf(e){en(this.restEncoder,e)}writeJSON(e){Xt(this.restEncoder,JSON.stringify(e))}writeKey(e){Xt(this.restEncoder,e)}}class Ir{constructor(){this.restEncoder=Kt(),this.dsCurrVal=0}toUint8Array(){return Ht(this.restEncoder)}resetDsCurVal(){this.dsCurrVal=0}writeDsClock(e){const t=e-this.dsCurrVal;this.dsCurrVal=e,qt(this.restEncoder,t)}writeDsLen(e){0===e&&fn(),qt(this.restEncoder,e-1),this.dsCurrVal+=e}}class Ar extends Ir{constructor(){super(),this.keyMap=new Map,this.keyClock=0,this.keyClockEncoder=new an,this.clientEncoder=new ln,this.leftClockEncoder=new an,this.rightClockEncoder=new an,this.infoEncoder=new sn(zt),this.stringEncoder=new un,this.parentInfoEncoder=new sn(zt),this.typeRefEncoder=new ln,this.lenEncoder=new ln}toUint8Array(){const e=Kt();return qt(e,0),en(e,this.keyClockEncoder.toUint8Array()),en(e,this.clientEncoder.toUint8Array()),en(e,this.leftClockEncoder.toUint8Array()),en(e,this.rightClockEncoder.toUint8Array()),en(e,Ht(this.infoEncoder)),en(e,this.stringEncoder.toUint8Array()),en(e,Ht(this.parentInfoEncoder)),en(e,this.typeRefEncoder.toUint8Array()),en(e,this.lenEncoder.toUint8Array()),Zt(e,Ht(this.restEncoder)),Ht(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){rn(this.restEncoder,e)}writeBuf(e){en(this.restEncoder,e)}writeJSON(e){rn(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 Dr=(e,t,n)=>{const r=new Map;n.forEach(((e,n)=>{Kr(t,n)>e&&r.set(n,e)})),Vr(t).forEach(((e,t)=>{n.has(t)||r.set(t,0)})),qt(e.restEncoder,r.size),Et(r.entries()).sort(((e,t)=>t[0]-e[0])).forEach((([n,r])=>{((e,t,n,r)=>{r=Ot(r,t[0].id.clock);const s=Jr(t,r);qt(e.restEncoder,t.length-s),e.writeClient(n),qt(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)}))},Or=(e,t,n,r=new Er(e))=>rs(t,(e=>{e.local=!1;let t=!1;const n=e.doc,s=n.store,i=((e,t)=>{const n=vt(),r=wn(e.restDecoder);for(let s=0;s<r;s++){const r=wn(e.restDecoder),s=new Array(r),i=e.readClient();let o=wn(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 hi($r(i,o),t),o+=t;break}case 10:{const t=wn(e.restDecoder);s[n]=new Ri($r(i,o),t),o+=t;break}default:{const l=0==(192&r),c=new ji($r(i,o),null,(r&jt)===jt?e.readLeftID():null,null,(r&Ut)===Ut?e.readRightID():null,l?e.readParentInfo()?t.get(e.readString()):e.readLeftID():null,l&&32==(32&r)?e.readString():null,Li(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 Wr,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!==Ri){const s=wt(d,u.id.client,(()=>Kr(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,Kr(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 Ar;return Dr(e,l,new Map),qt(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<Kr(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=cs([l.update,o.update])}}else s.pendingStructs=o;const c=wr(r,e,s);if(s.pendingDs){const t=new Er(mn(s.pendingDs));wn(t.restDecoder);const n=wr(t,e,s);s.pendingDs=c&&n?cs([c,n]):c||n}else s.pendingDs=c;if(t){const t=s.pendingStructs.update;s.pendingStructs=null,Tr(e.doc,t)}}),n,!1),Tr=(e,t,n,r=Er)=>{const s=mn(t);Or(s,e,n,new r(s))};class Ur{constructor(){this.l=[]}}const jr=()=>new Ur,Lr=(e,t)=>e.l.push(t),Pr=(e,t)=>{const n=e.l;n.length;e.l=n.filter((e=>t!==e)),e.l.length},Rr=(e,t,n)=>Hn(e.l,[t,n]);class Mr{constructor(e,t){this.client=e,this.clock=t}}const Nr=(e,t)=>e===t||null!==e&&null!==t&&e.client===t.client&&e.clock===t.clock,$r=(e,t)=>new Mr(e,t),Br=(e,t)=>void 0===t?!e.deleted:t.sv.has(e.id.client)&&(t.sv.get(e.id.client)||0)>e.id.clock&&!yr(t.ds,e.id),Fr=(e,t)=>{const n=wt(e.meta,Fr,_t),r=e.doc.store;n.has(t)||(t.sv.forEach(((t,n)=>{t<Kr(r,n)&&Yr(e,$r(n,t))})),gr(e,t.ds,(e=>{})),n.add(t))};class Wr{constructor(){this.clients=new Map,this.pendingStructs=null,this.pendingDs=null}}const Vr=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},Kr=(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},Hr=(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 fn()}n.push(t)},Jr=(e,t)=>{let n=0,r=e.length-1,s=e[r],i=s.id.clock;if(i===t)return r;let o=It(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=It((n+r)/2)}throw fn()},zr=(e,t)=>{const n=e.clients.get(t.client);return n[Jr(n,t.clock)]},qr=(e,t,n)=>{const r=Jr(t,n),s=t[r];return s.id.clock<n&&s instanceof ji?(t.splice(r+1,0,Ui(e,s,n-s.id.clock)),r+1):r},Yr=(e,t)=>{const n=e.doc.store.clients.get(t.client);return n[qr(e,n,t.clock)]},Gr=(e,t,n)=>{const r=t.clients.get(n.client),s=Jr(r,n.clock),i=r[s];return n.clock!==i.id.clock+i.length-1&&i.constructor!==hi&&r.splice(s+1,0,Ui(e,i,n.clock-i.id.clock+1)),i},Qr=(e,t,n,r,s)=>{if(0===r)return;const i=n+r;let o,l=qr(e,t,n);do{o=t[l++],i<o.id.clock+o.length&&qr(e,t,i),s(o)}while(l<t.length&&t[l].id.clock<i)};class Xr{constructor(e,t,n){this.doc=e,this.deleteSet=new pr,this.beforeState=Vr(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 Zr=(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)))&&(mr(t.deleteSet),((e,t)=>{Dr(e,t.doc.store,t.beforeState)})(e,t),br(e,t.deleteSet),!0),es=(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)},ts=(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 ji&&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},ns=(e,t)=>{if(t<e.length){const n=e[t],r=n.doc,s=r.store,i=n.deleteSet,o=n._mergeStructs;try{mr(i),n.afterState=Vr(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)),Rr(t._dEH,e,n))}))})),e.push((()=>r.emit("afterTransaction",[n,r]))),Hn(e,[]),n._needFormattingCleanup&&ti(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=Jr(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 ji&&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=Dt(r.length-1,1+Jr(r,n.clock+n.len-1)),t=r[e];e>0&&t.id.clock>=n.clock;t=r[e])e-=1+ts(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=Ot(Jr(e,r),1);for(let t=e.length-1;t>=n;)t-=1+ts(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=Jr(r,n);i+1<r.length&&ts(r,i+1)>1||i>0&&ts(r,i)}if(n.local||n.afterState.get(r.clientID)===n.beforeState.get(r.clientID)||(((...e)=>{ur.forEach((t=>t.print(e)))})(cr,tr,"[yjs] ",nr,or,"Changed the client-id because another client seems to be using it."),r.clientID=_r()),r.emit("afterTransactionCleanup",[n,r]),r._observers.has("update")){const e=new Cr;Zr(e,n)&&r.emit("update",[e.toUint8Array(),n.origin,r,n])}if(r._observers.has("updateV2")){const e=new Ar;Zr(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])):ns(e,t+1)}}},rs=(e,t,n=null,r=!0)=>{const s=e._transactionCleanups;let i=!1,o=null;null===e._transaction&&(i=!0,e._transaction=new Xr(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&&ns(s,0)}}return o};class ss{constructor(e,t){this.gen=function*(e){const t=wn(e.restDecoder);for(let n=0;n<t;n++){const t=wn(e.restDecoder),n=e.readClient();let r=wn(e.restDecoder);for(let s=0;s<t;s++){const t=e.readInfo();if(10===t){const t=wn(e.restDecoder);yield new Ri($r(n,r),t),r+=t}else if(0!=(31&t)){const s=0==(192&t),i=new ji($r(n,r),null,(t&jt)===jt?e.readLeftID():null,null,(t&Ut)===Ut?e.readRightID():null,s?e.readParentInfo()?e.readString():e.readLeftID():null,s&&32==(32&t)?e.readString():null,Li(e,t));yield i,r+=i.length}else{const t=e.readLen();yield new hi($r(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===Ri);return this.curr}}class is{constructor(e){this.currClient=0,this.startClock=0,this.written=0,this.encoder=e,this.clientStructs=[]}}const os=(e,t=Ir,n=Er)=>{const r=new t,s=new ss(new n(mn(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++,qt(r.restEncoder,t),qt(r.restEncoder,o)),t=i.id.client,o=0,n=0!==i.id.clock),i.constructor===Ri&&(n=!0),n||(o=i.id.clock+i.length);0!==o&&(e++,qt(r.restEncoder,t),qt(r.restEncoder,o));const l=Kt();return qt(l,e),((e,t)=>{Zt(e,Ht(t))})(l,r.restEncoder),r.restEncoder=l,r.toUint8Array()}return qt(r.restEncoder,0),r.toUint8Array()},ls=(e,t)=>{if(e.constructor===hi){const{client:n,clock:r}=e.id;return new hi($r(n,r+t),e.length-t)}if(e.constructor===Ri){const{client:n,clock:r}=e.id;return new Ri($r(n,r+t),e.length-t)}{const n=e,{client:r,clock:s}=n.id;return new ji($r(r,s+t),null,$r(r,s+t-1),null,n.rightOrigin,n.parent,n.parentSub,n.content.splice(t))}},cs=(e,t=Er,n=Ar)=>{if(1===e.length)return e[0];const r=e.map((e=>new t(mn(e))));let s=r.map((e=>new ss(e,!0))),i=null;const o=new n,l=new is(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===Ri?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)us(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===Ri)i.struct.length=n.id.clock+n.length-i.struct.id.clock;else{us(l,i.struct,i.offset);const e=n.id.clock-i.struct.id.clock-i.struct.length;i={struct:new Ri($r(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===Ri?i.struct.length-=t:n=ls(n,t)),i.struct.mergeWith(n)||(us(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!==Ri;n=e.next())us(l,i.struct,i.offset),i={struct:n,offset:0}}null!==i&&(us(l,i.struct,i.offset),i=null),ds(l);const c=r.map((e=>(e=>{const t=new pr,n=wn(e.restDecoder);for(let r=0;r<n;r++){e.resetDsCurVal();const n=wn(e.restDecoder),r=wn(e.restDecoder);if(r>0){const s=wt(t.clients,n,(()=>[]));for(let t=0;t<r;t++)s.push(new fr(e.readDsClock(),e.readDsLen()))}}return t})(e))),a=(e=>{const t=new pr;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 mr(t),t})(c);return br(o,a),o.toUint8Array()},as=e=>{e.written>0&&(e.clientStructs.push({written:e.written,restEncoder:Ht(e.encoder.restEncoder)}),e.encoder.restEncoder=Kt(),e.written=0)},us=(e,t,n)=>{e.written>0&&e.currClient!==t.id.client&&as(e),0===e.written&&(e.currClient=t.id.client,e.encoder.writeClient(t.id.client),qt(e.encoder.restEncoder,t.id.clock+n)),t.write(e.encoder,n),e.written++},ds=e=>{as(e);const t=e.encoder.restEncoder;qt(t,e.clientStructs.length);for(let n=0;n<e.clientStructs.length;n++){const r=e.clientStructs[n];qt(t,r.written),Zt(t,r.restEncoder)}},hs="You must not compute changes after the event-handler fired.";class fs{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=ps(this.currentTarget,this.target))}deletes(e){return yr(this.transaction.deleteSet,e.id)}get keys(){if(null===this._keys){if(0===this.transaction.doc._transactionCleanups.length)throw dn(hs);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 dn(hs);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 ps=(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},gs=()=>{((...e)=>{e.unshift(cr),ur.forEach((t=>t.print(e)))})("Invalid access: Add Yjs type to a document before reading data.")};let ys=0;class ms{constructor(e,t){e.marker=!0,this.p=e,this.index=t,this.timestamp=ys++}}const vs=(e,t,n)=>{e.p.marker=!1,e.p=t,t.marker=!0,e.index=n,e.timestamp=ys++},bs=(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)=>At(t-e.index)<At(t-n.index)?e:n));let r=e._start,s=0;for(null!==n&&(r=n.p,s=n.index,(e=>{e.timestamp=ys++})(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&&At(n.index-s)<r.parent.length/80?(vs(n,r,s),n):((e,t,n)=>{if(e.length>=80){const r=e.reduce(((e,t)=>e.timestamp<t.timestamp?e:t));return vs(r,t,n),r}{const r=new ms(t,n);return e.push(r),r}})(e._searchMarker,r,s)},ws=(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=Ot(t,s.index+n))}},_s=(e,t,n)=>{const r=e,s=t.changedParentTypes;for(;wt(s,e,(()=>[])).push(n),null!==e._item;)e=e._item.parent;Rr(r._eH,n,t)};class ks{constructor(){this._item=null,this._map=new Map,this._start=null,this.doc=null,this._length=0,this._eH=jr(),this._dEH=jr(),this._searchMarker=null}get parent(){return this._item?this._item.parent:null}_integrate(e,t){this.doc=e,this._item=t}_copy(){throw hn()}clone(){throw hn()}_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){Lr(this._eH,e)}observeDeep(e){Lr(this._dEH,e)}unobserve(e){Pr(this._eH,e)}unobserveDeep(e){Pr(this._dEH,e)}toJSON(){}}const Ss=(e,t,n)=>{e.doc??gs(),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},Es=e=>{e.doc??gs();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},xs=(e,t)=>{let n=0,r=e._start;for(e.doc??gs();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}},Cs=(e,t)=>{const n=[];return xs(e,((r,s)=>{n.push(t(r,s,e))})),n},Is=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}}}},As=(e,t)=>{e.doc??gs();const n=bs(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}},Ds=(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 ji($r(o,Kr(l,o)),s,s&&s.lastId,c,c&&c.id,t,null,new _i(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 ji($r(o,Kr(l,o)),s,s&&s.lastId,c,c&&c.id,t,null,new fi(new Uint8Array(n))),s.integrate(e,0);break;case kr:s=new ji($r(o,Kr(l,o)),s,s&&s.lastId,c,c&&c.id,t,null,new yi(n)),s.integrate(e,0);break;default:if(!(n instanceof ks))throw new Error("Unexpected content type in insert operation");s=new ji($r(o,Kr(l,o)),s,s&&s.lastId,c,c&&c.id,t,null,new Ti(n)),s.integrate(e,0)}}})),u()},Os=()=>dn("Length exceeded!"),Ts=(e,t,n,r)=>{if(n>t._length)throw Os();if(0===n)return t._searchMarker&&ws(t._searchMarker,n,r.length),Ds(e,t,null,r);const s=n,i=bs(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&&Yr(e,$r(o.id.client,o.id.clock+n));break}n-=o.length}return t._searchMarker&&ws(t._searchMarker,s,r.length),Ds(e,t,o,r)},Us=(e,t,n,r)=>{if(0===r)return;const s=n,i=r,o=bs(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&&Yr(e,$r(l.id.client,l.id.clock+n)),n-=l.length);for(;r>0&&null!==l;)l.deleted||(r<l.length&&Yr(e,$r(l.id.client,l.id.clock+r)),l.delete(e),r-=l.length),l=l.right;if(r>0)throw Os();t._searchMarker&&ws(t._searchMarker,s,-i+r)},js=(e,t,n)=>{const r=t._map.get(n);void 0!==r&&r.delete(e)},Ls=(e,t,n,r)=>{const s=t._map.get(n)||null,i=e.doc,o=i.clientID;let l;if(null==r)l=new _i([r]);else switch(r.constructor){case Number:case Object:case Boolean:case Array:case String:case Date:case BigInt:l=new _i([r]);break;case Uint8Array:l=new fi(r);break;case kr:l=new yi(r);break;default:if(!(r instanceof ks))throw new Error("Unexpected content type");l=new Ti(r)}new ji($r(o,Kr(i.store,o)),s,s&&s.lastId,null,null,t,n,l).integrate(e,0)},Ps=(e,t)=>{e.doc??gs();const n=e._map.get(t);return void 0===n||n.deleted?void 0:n.content.getContent()[n.length-1]},Rs=e=>{const t={};return e.doc??gs(),e._map.forEach(((e,n)=>{e.deleted||(t[n]=e.content.getContent()[e.length-1])})),t},Ms=(e,t)=>{e.doc??gs();const n=e._map.get(t);return void 0!==n&&!n.deleted},Ns=e=>{return e.doc??gs(),t=e._map.entries(),n=e=>!e[1].deleted,dr((()=>{let e;do{e=t.next()}while(!e.done&&!n(e.value));return e}));var t,n};class $s extends fs{}class Bs extends ks{constructor(){super(),this._prelimContent=[],this._searchMarker=[]}static from(e){const t=new Bs;return t.push(e),t}_integrate(e,t){super._integrate(e,t),this.insert(0,this._prelimContent),this._prelimContent=null}_copy(){return new Bs}clone(){const e=new Bs;return e.insert(0,this.toArray().map((e=>e instanceof ks?e.clone():e))),e}get length(){return this.doc??gs(),this._length}_callObserver(e,t){super._callObserver(e,t),_s(this,e,new $s(this,e))}insert(e,t){null!==this.doc?rs(this.doc,(n=>{Ts(n,this,e,t)})):this._prelimContent.splice(e,0,...t)}push(e){null!==this.doc?rs(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;Ds(e,t,r,n)})(t,this,e)})):this._prelimContent.push(...e)}unshift(e){this.insert(0,e)}delete(e,t=1){null!==this.doc?rs(this.doc,(n=>{Us(n,this,e,t)})):this._prelimContent.splice(e,t)}get(e){return As(this,e)}toArray(){return Es(this)}slice(e=0,t=this.length){return Ss(this,e,t)}toJSON(){return this.map((e=>e instanceof ks?e.toJSON():e))}map(e){return Cs(this,e)}forEach(e){xs(this,e)}[Symbol.iterator](){return Is(this)}_write(e){e.writeTypeRef(Ei)}}class Fs extends fs{constructor(e,t,n){super(e,t),this.keysChanged=n}}class Ws extends ks{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 Ws}clone(){const e=new Ws;return this.forEach(((t,n)=>{e.set(n,t instanceof ks?t.clone():t)})),e}_callObserver(e,t){_s(this,e,new Fs(this,e,t))}toJSON(){this.doc??gs();const e={};return this._map.forEach(((t,n)=>{if(!t.deleted){const r=t.content.getContent()[t.length-1];e[n]=r instanceof ks?r.toJSON():r}})),e}get size(){return[...Ns(this)].length}keys(){return hr(Ns(this),(e=>e[0]))}values(){return hr(Ns(this),(e=>e[1].content.getContent()[e[1].length-1]))}entries(){return hr(Ns(this),(e=>[e[0],e[1].content.getContent()[e[1].length-1]]))}forEach(e){this.doc??gs(),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?rs(this.doc,(t=>{js(t,this,e)})):this._prelimContent.delete(e)}set(e,t){return null!==this.doc?rs(this.doc,(n=>{Ls(n,this,e,t)})):this._prelimContent.set(e,t),t}get(e){return Ps(this,e)}has(e){return Ms(this,e)}clear(){null!==this.doc?rs(this.doc,(e=>{this.forEach((function(t,n,r){js(e,r,n)}))})):this._prelimContent.clear()}_write(e){e.writeTypeRef(xi)}}const Vs=(e,t)=>e===t||"object"==typeof e&&"object"==typeof t&&e&&t&&Wn(e,t);class Ks{constructor(e,t,n,r){this.left=e,this.right=t,this.index=n,this.currentAttributes=r}forward(){if(null===this.right&&fn(),this.right.content.constructor===vi)this.right.deleted||qs(this.currentAttributes,this.right.content);else this.right.deleted||(this.index+=this.right.length);this.left=this.right,this.right=this.right.right}}const Hs=(e,t,n)=>{for(;null!==t.right&&n>0;){if(t.right.content.constructor===vi)t.right.deleted||qs(t.currentAttributes,t.right.content);else t.right.deleted||(n<t.right.length&&Yr(e,$r(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},Js=(e,t,n,r)=>{const s=new Map,i=r?bs(t,n):null;if(i){const t=new Ks(i.p.left,i.p,i.index,s);return Hs(e,t,n-i.index)}{const r=new Ks(null,t._start,0,s);return Hs(e,r,n)}},zs=(e,t,n,r)=>{for(;null!==n.right&&(!0===n.right.deleted||n.right.content.constructor===vi&&Vs(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 ji($r(i,Kr(s.store,i)),l,l&&l.lastId,c,c&&c.id,t,null,new vi(o,r));a.integrate(e,0),n.right=a,n.forward()}))},qs=(e,t)=>{const{key:n,value:r}=t;null===r?e.delete(n):e.set(n,r)},Ys=(e,t)=>{for(;null!==e.right&&(e.right.deleted||e.right.content.constructor===vi&&Vs(t[e.right.content.key]??null,e.right.content.value));)e.forward()},Gs=(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(!Vs(a,c)){o.set(l,a);const{left:r,right:u}=n;n.right=new ji($r(i,Kr(s.store,i)),r,r&&r.lastId,u,u&&u.id,t,null,new vi(l,c)),n.right.integrate(e,0),n.forward()}}return o},Qs=(e,t,n,r,s)=>{n.currentAttributes.forEach(((e,t)=>{void 0===s[t]&&(s[t]=null)}));const i=e.doc,o=i.clientID;Ys(n,s);const l=Gs(e,t,n,s),c=r.constructor===String?new ki(r):r instanceof ks?new Ti(r):new mi(r);let{left:a,right:u,index:d}=n;t._searchMarker&&ws(t._searchMarker,n.index,c.getLength()),u=new ji($r(o,Kr(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(),zs(e,t,n,l)},Xs=(e,t,n,r,s)=>{const i=e.doc,o=i.clientID;Ys(n,s);const l=Gs(e,t,n,s);e:for(;null!==n.right&&(r>0||l.size>0&&(n.right.deleted||n.right.content.constructor===vi));){if(!n.right.deleted)switch(n.right.content.constructor){case vi:{const{key:t,value:i}=n.right.content,o=s[t];if(void 0!==o){if(Vs(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&&Yr(e,$r(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 ji($r(o,Kr(i.store,o)),n.left,n.left&&n.left.lastId,n.right,n.right&&n.right.id,t,null,new ki(s)),n.right.integrate(e,0),n.forward()}zs(e,t,n,l)},Zs=(e,t,n,r,s)=>{let i=t;const o=vt();for(;i&&(!i.countable||i.deleted);){if(!i.deleted&&i.content.constructor===vi){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 vi:{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||qs(s,n);break}}}t=t.right}return l},ei=e=>{let t=0;return rs(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===vi)qs(o,s.content);else t+=Zs(n,r,s,i,o),i=bt(o),r=s;s=s.right}})),t},ti=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&&Qr(e,n.store.clients.get(r),i,s,(e=>{e.deleted||e.content.constructor!==vi||e.constructor===hi||t.add(e.parent)}))}rs(n,(n=>{gr(e,e.deleteSet,(e=>{if(e instanceof hi||!e.parent._hasFormatting||t.has(e.parent))return;const r=e.parent;e.content.constructor===vi?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===vi){const r=t.content.key;n.has(r)?t.delete(e):n.add(r)}t=t.left}})(n,e)}));for(const e of t)ei(e)}))},ni=(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 Ti:case mi:case ki:n<t.right.length&&Yr(e,$r(t.right.id.client,t.right.id.clock+n)),n-=t.right.length,t.right.delete(e)}t.forward()}i&&Zs(e,i,t.right,s,t.currentAttributes);const o=(t.left||t.right).parent;return o._searchMarker&&ws(o._searchMarker,t.index,-r+n),t};class ri extends fs{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=[];rs(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=$n({},o))),c=0}e&&t.push(e),i=null}};for(;null!==s;){switch(s.content.constructor){case Ti:case mi: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 ki: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 vi:{const{key:t,value:l}=s.content;if(this.adds(s)){if(!this.deletes(s)){const c=n.get(t)??null;Vs(c,l)?null!==l&&s.delete(e):("retain"===i&&u(),Vs(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;Vs(e,l)||("retain"===i&&u(),o[t]=e)}else if(!s.deleted){r.set(t,l);const n=o[t];void 0!==n&&(Vs(n,l)?null!==n&&s.delete(e):("retain"===i&&u(),null===l?delete o[t]:o[t]=l))}s.deleted||("insert"===i&&u(),qs(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 si extends ks{constructor(e){super(),this._pending=void 0!==e?[()=>this.insert(0,e)]:[],this._searchMarker=[],this._hasFormatting=!1}get length(){return this.doc??gs(),this._length}_integrate(e,t){super._integrate(e,t);try{this._pending.forEach((e=>e()))}catch(e){}this._pending=null}_copy(){return new si}clone(){const e=new si;return e.applyDelta(this.toDelta()),e}_callObserver(e,t){super._callObserver(e,t);const n=new ri(this,e,t);_s(this,e,n),!e.local&&this._hasFormatting&&(e._needFormattingCleanup=!0)}toString(){this.doc??gs();let e="",t=this._start;for(;null!==t;)!t.deleted&&t.countable&&t.content.constructor===ki&&(e+=t.content.str),t=t.right;return e}toJSON(){return this.toString()}applyDelta(e,{sanitize:t=!0}={}){null!==this.doc?rs(this.doc,(n=>{const r=new Ks(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)&&Qs(n,this,r,o,i.attributes||{})}else void 0!==i.retain?Xs(n,this,r,i.retain,i.attributes||{}):void 0!==i.delete&&ni(n,r,i.delete)}})):this._pending.push((()=>this.applyDelta(e)))}toDelta(e,t,n){this.doc??gs();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(Br(l,e)||void 0!==t&&Br(l,t))switch(l.content.constructor){case ki:{const r=s.get("ychange");void 0===e||Br(l,e)?void 0===t||Br(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 Ti:case mi:{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 vi:Br(l,e)&&(c(),qs(s,l.content))}l=l.right}c()};return e||t?rs(i,(n=>{e&&Fr(n,e),t&&Fr(n,t),a()}),"cleanup"):a(),r}insert(e,t,n){if(t.length<=0)return;const r=this.doc;null!==r?rs(r,(r=>{const s=Js(r,this,e,!n);n||(n={},s.currentAttributes.forEach(((e,t)=>{n[t]=e}))),Qs(r,this,s,t,n)})):this._pending.push((()=>this.insert(e,t,n)))}insertEmbed(e,t,n){const r=this.doc;null!==r?rs(r,(r=>{const s=Js(r,this,e,!n);Qs(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?rs(n,(n=>{ni(n,Js(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?rs(r,(r=>{const s=Js(r,this,e,!1);null!==s.right&&Xs(r,this,s,t,n)})):this._pending.push((()=>this.format(e,t,n)))}removeAttribute(e){null!==this.doc?rs(this.doc,(t=>{js(t,this,e)})):this._pending.push((()=>this.removeAttribute(e)))}setAttribute(e,t){null!==this.doc?rs(this.doc,(n=>{Ls(n,this,e,t)})):this._pending.push((()=>this.setAttribute(e,t)))}getAttribute(e){return Ps(this,e)}getAttributes(){return Rs(this)}_write(e){e.writeTypeRef(Ci)}}class ii{constructor(e,t=(()=>!0)){this._filter=t,this._root=e,this._currentNode=e._start,this._firstCall=!0,e.doc??gs()}[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!==li&&t.constructor!==oi||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 oi extends ks{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 oi}clone(){const e=new oi;return e.insert(0,this.toArray().map((e=>e instanceof ks?e.clone():e))),e}get length(){return this.doc??gs(),null===this._prelimContent?this._length:this._prelimContent.length}createTreeWalker(e){return new ii(this,e)}querySelector(e){e=e.toUpperCase();const t=new ii(this,(t=>t.nodeName&&t.nodeName.toUpperCase()===e)).next();return t.done?null:t.value}querySelectorAll(e){return e=e.toUpperCase(),Et(new ii(this,(t=>t.nodeName&&t.nodeName.toUpperCase()===e)))}_callObserver(e,t){_s(this,e,new ci(this,t,e))}toString(){return Cs(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),xs(this,(s=>{r.insertBefore(s.toDOM(e,t,n),null)})),r}insert(e,t){null!==this.doc?rs(this.doc,(n=>{Ts(n,this,e,t)})):this._prelimContent.splice(e,0,...t)}insertAfter(e,t){if(null!==this.doc)rs(this.doc,(n=>{const r=e&&e instanceof ks?e._item:e;Ds(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 dn("Reference item not found");n.splice(r,0,...t)}}delete(e,t=1){null!==this.doc?rs(this.doc,(n=>{Us(n,this,e,t)})):this._prelimContent.splice(e,t)}toArray(){return Es(this)}push(e){this.insert(this.length,e)}unshift(e){this.insert(0,e)}get(e){return As(this,e)}slice(e=0,t=this.length){return Ss(this,e,t)}forEach(e){xs(this,e)}_write(e){e.writeTypeRef(Ai)}}class li extends oi{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 li(this.nodeName)}clone(){const e=new li(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 ks?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?rs(this.doc,(t=>{js(t,this,e)})):this._prelimAttrs.delete(e)}setAttribute(e,t){null!==this.doc?rs(this.doc,(n=>{Ls(n,this,e,t)})):this._prelimAttrs.set(e,t)}getAttribute(e){return Ps(this,e)}hasAttribute(e){return Ms(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&&Br(s,t)&&(n[r]=s.content.getContent()[s.length-1])})),n})(this,e):Rs(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 xs(this,(s=>{r.appendChild(s.toDOM(e,t,n))})),void 0!==n&&n._createAssociation(r,this),r}_write(e){e.writeTypeRef(Ii),e.writeKey(this.nodeName)}}class ci extends fs{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 ai extends Ws{constructor(e){super(),this.hookName=e}_copy(){return new ai(this.hookName)}clone(){const e=new ai(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(Di),e.writeKey(this.hookName)}}class ui extends si{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 ui}clone(){const e=new ui;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(Oi)}}class di{constructor(e,t){this.id=e,this.length=t}get deleted(){throw hn()}mergeWith(e){return!1}write(e,t,n){throw hn()}integrate(e,t){throw hn()}}class hi extends di{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),Hr(e.doc.store,this)}write(e,t){e.writeInfo(0),e.writeLen(this.length-t)}getMissing(e,t){return null}}class fi{constructor(e){this.content=e}getLength(){return 1}getContent(){return[this.content]}isCountable(){return!0}copy(){return new fi(this.content)}splice(e){throw hn()}mergeWith(e){return!1}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeBuf(this.content)}getRef(){return 3}}class pi{constructor(e){this.len=e}getLength(){return this.len}getContent(){return[]}isCountable(){return!1}copy(){return new pi(this.len)}splice(e){const t=new pi(this.len-e);return this.len=e,t}mergeWith(e){return this.len+=e.len,!0}integrate(e,t){vr(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 gi=(e,t)=>new kr({guid:e,...t,shouldLoad:t.shouldLoad||t.autoLoad||!1});class yi{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 yi(gi(this.doc.guid,this.opts))}splice(e){throw hn()}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 mi{constructor(e){this.embed=e}getLength(){return 1}getContent(){return[this.embed]}isCountable(){return!0}copy(){return new mi(this.embed)}splice(e){throw hn()}mergeWith(e){return!1}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeJSON(this.embed)}getRef(){return 5}}class vi{constructor(e,t){this.key=e,this.value=t}getLength(){return 1}getContent(){return[]}isCountable(){return!1}copy(){return new vi(this.key,this.value)}splice(e){throw hn()}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 bi{constructor(e){this.arr=e}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new bi(this.arr)}splice(e){const t=new bi(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 wi="development"===Yn("node_env");class _i{constructor(e){this.arr=e,wi&&Kn(e)}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new _i(this.arr)}splice(e){const t=new _i(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 ki{constructor(e){this.str=e}getLength(){return this.str.length}getContent(){return this.str.split("")}isCountable(){return!0}copy(){return new ki(this.str)}splice(e){const t=new ki(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 Si=[e=>new Bs,e=>new Ws,e=>new si,e=>new li(e.readKey()),e=>new oi,e=>new ai(e.readKey()),e=>new ui],Ei=0,xi=1,Ci=2,Ii=3,Ai=4,Di=5,Oi=6;class Ti{constructor(e){this.type=e}getLength(){return 1}getContent(){return[this.type]}isCountable(){return!0}copy(){return new Ti(this.type._copy())}splice(e){throw hn()}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 Ui=(e,t,n)=>{const{client:r,clock:s}=t.id,i=new ji($r(r,s+n),t,$r(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=$r(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 ji extends di{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>=Kr(t,this.origin.client))return this.origin.client;if(this.rightOrigin&&this.rightOrigin.client!==this.id.client&&this.rightOrigin.clock>=Kr(t,this.rightOrigin.client))return this.rightOrigin.client;if(this.parent&&this.parent.constructor===Mr&&this.id.client!==this.parent.client&&this.parent.clock>=Kr(t,this.parent.client))return this.parent.client;if(this.origin&&(this.left=Gr(e,t,this.origin),this.origin=this.left.lastId),this.rightOrigin&&(this.right=Yr(e,this.rightOrigin),this.rightOrigin=this.right.id),this.left&&this.left.constructor===hi||this.right&&this.right.constructor===hi)this.parent=null;else if(this.parent){if(this.parent.constructor===Mr){const e=zr(t,this.parent);e.constructor===hi?this.parent=null:this.parent=e.content.type}}else this.left&&this.left.constructor===ji?(this.parent=this.left.parent,this.parentSub=this.left.parentSub):this.right&&this.right.constructor===ji&&(this.parent=this.right.parent,this.parentSub=this.right.parentSub);return null}integrate(e,t){if(t>0&&(this.id.clock+=t,this.left=Gr(e,e.doc.store,$r(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),Nr(this.origin,t.origin)){if(t.id.client<this.id.client)n=t,r.clear();else if(Nr(this.rightOrigin,t.rightOrigin))break}else{if(null===t.origin||!s.has(zr(e.doc.store,t.origin)))break;r.has(zr(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),Hr(e.doc.store,this),this.content.integrate(e,this),es(e,this.parent,this.parentSub),(null!==this.parent._item&&this.parent._item.deleted||null!==this.parentSub&&null!==this.right)&&this.delete(e)}else new hi(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:$r(this.id.client,this.id.clock+this.length-1)}mergeWith(e){if(this.constructor===e.constructor&&Nr(e.origin,this.lastId)&&this.right===e&&Nr(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(),vr(e.deleteSet,this.id.client,this.id.clock,this.length),es(e,t,this.parentSub),this.content.delete(e)}}gc(e,t){if(!this.deleted)throw fn();this.content.gc(e),t?((e,t,n)=>{const r=e.clients.get(t.id.client);r[Jr(r,t.id.clock)]=n})(e,this,new hi(this.id,this.length)):this.content=new pi(this.length)}write(e,t){const n=t>0?$r(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:Ut)|(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 fn()})(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===Mr?(e.writeParentInfo(!1),e.writeLeftID(t)):fn();null!==s&&e.writeString(s)}this.content.write(e,t)}}const Li=(e,t)=>Pi[31&t](e),Pi=[()=>{fn()},e=>new pi(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 bi(n)},e=>new fi(e.readBuf()),e=>new ki(e.readString()),e=>new mi(e.readJSON()),e=>new vi(e.readKey(),e.readJSON()),e=>new Ti(Si[e.readTypeRef()](e)),e=>{const t=e.readLen(),n=[];for(let r=0;r<t;r++)n.push(e.readAny());return new _i(n)},e=>new yi(gi(e.readString(),e.readAny())),()=>{fn()}];class Ri extends di{get deleted(){return!0}delete(){}mergeWith(e){return this.constructor===e.constructor&&(this.length+=e.length,!0)}integrate(e,t){fn()}write(e,t){e.writeInfo(10),qt(e.restEncoder,this.length-t)}getMissing(e,t){return null}}const Mi="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},Ni="__ $YJS$ __";function $i(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}Mi[Ni],Mi[Ni]=!0;const Bi=new FinalizationRegistry((({cache:e,key:t})=>{delete e[t]}));function Fi(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=Ki(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=Ki(n,r,s),o=null===(t=this.cache[i])||void 0===t?void 0:t.deref();o&&Bi.unregister(o),this.cache[i]=new WeakRef(e),Bi.register(e,{cache:this.cache,key:i},e)},delete(e){Bi.unregister(e);const t=Ki(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 Wi=new WeakSet;function Vi(e){if(Wi.has(e))throw new Error(`Y.Doc ${e.meta.parentId} has been destroyed`)}function Ki(e,t,n){return`${e}[${t}].${n}`}let Hi=null;function Ji(e){Hi=e}function zi(){}const qi=new WeakMap;function Yi(){return e.Dexie.Events(null,"load","sync","error")}class Gi{static getOrCreateDocument(e,t,n,r){var s,i;const o=Fi(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 kr({meta:{db:e,updatesTable:s,parentProp:r,parentTable:n,parentId:i}}),t.add(o),o.on("destroy",(()=>{Wi.add(o),t.delete(o)})),o)}(e,o,t,n,l,r)}static load(e,t){var n;let r=qi.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 Gi(e),r.graceTimeout=null!==(n=null==t?void 0:t.gracePeriod)&&void 0!==n?n:-1,qi.set(e,r)),r}static release(e){if(!e||Wi.has(e))return;const t=qi.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(Gi.on("beforeunload").fire(this)).finally((()=>{var e;0===this.refCount&&(null===(e=this.doc)||void 0===e||e.destroy())}))}static for(e){return qi.get(e)}static get currentUpdateRow(){return Hi}get whenLoaded(){return this._whenLoaded||(this._whenLoaded=new Promise(((t,n)=>{this.doc?this.doc.isLoaded?t():this._error?n(this._error):Wi.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):Wi.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=Yi(),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]=()=>Gi.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`);Vi(t),this.stopObserving=function(t,n,r,s,i,o){let l=0,c=!0;const a=e.liveQuery((()=>{Vi(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?(Vi(n),e.length>0&&rs(n,(()=>{e.forEach((e=>{try{Ji(e),Tr(n,e.u)}finally{Ji(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),Gi.on("new").fire(this)}destroy(){var e;qi.delete(this.doc),this.doc=null,this.destroyed=!0,this.refCount=0,null===(e=this.stopObserving)||void 0===e||e.call(this),this.on=Yi(),this.cleanupHandlers.forEach((e=>e()))}addCleanupHandler(e){this.cleanupHandlers.push("function"==typeof e?e:()=>e.unsubscribe())}}function Qi(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=$i(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=$i(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=$i(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=Gi.getDocCache(n.dx).find(c.table,r,c.prop);s&&s.destroy()}break}case"in-sync":{const e=Gi.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}}))}Gi.on=e.Dexie.Events(null,{new:[function(e,t){return e===zi?t:function(){e.apply(this,arguments),t.apply(this,arguments)}}],beforeunload:[function(e,t){return e===zi?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)}}]}),Gi.getDocCache=Fi,e.Dexie.DexieYProvider?Gi=e.Dexie.DexieYProvider||Gi:e.Dexie.DexieYProvider=Gi;const Xi=1,Zi=2,eo=3;function to(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=$i(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 Xi:yield i(g(!0)),d=pe(e);break;case Zi:yield i(g(!1)),h=pe(e),f=pe(e);break;case eo:{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 no="currentSyncWorker";function ro(e,t,n,s){return so(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 ro(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 so(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]:cs(i);if(r)n.push({type:"u-c",table:s.name,prop:t.prop,k:e,u:l,i:o});else{const r=os(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||"")&&j(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)||T(16);ut(i);const U=yield at(v,_,b,w,e,u,n,O,d),{done:L,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))U.schema[e]&&(n[e]=U.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,U.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,U,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=U.dbId,o.initiallySynced=!0,o.realms=U.realms,o.inviteRealms=U.inviteRealms,o.serverRevision=U.serverRevision,o.yServerRevision=U.serverRevision,o.timestamp=new Date,delete o.error;const l=io(U.changes,s);if(yield gt(l,e),U.yMessages){const{receivedUntils:t,resyncNeeded:n,yServerRevision:s}=yield Qi(U.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(!L)return yield ct(e),yield so(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=!!U.yMessages;if(R&&M)try{yield to(e,u,P)}catch(e){}return e.syncCompleteEvent.next(),!1}))}function io(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=T(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 oo=10,lo=1e4,co=1e3;function ao(s){const i=[],o=new t.BehaviorSubject(!0),l=new t.BehaviorSubject(null);let c=!1,a=new Array(oo).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=io(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]<lo&&(yield new Promise((e=>setTimeout(e,co)))),c=!1,o.next(!0)}}})))),{enqueue:function(e){i.push(e),l.next(null)},readyToServe:o}}const uo=new WeakMap,ho={members:"@id, [userId+realmId], [email+realmId], realmId",roles:"[realmId+name]",realms:"@realmId",$jobs:"",$syncState:"",$baseRevs:"[tableName+clientRev]",$logins:"claims.sub, lastLogin"};let fo=0;function po(e){"vip"in e&&(e=e.vip);let n=uo.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=++fo;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=ao(n),n.messageProducer=new t.Subject,uo.set(e.cloud,n)}return n}const go=new WeakMap;class yo{constructor(e,t){go.set(this,e),Object.assign(this,t)}static load(e,t){return e.table("$logins").get(t).then((n=>new yo(e,n||{userId:t,claims:{sub:t},lastLogin:new Date(0)})))}save(){return r(this,void 0,void 0,(function*(){go.get(this).table("$logins").put(this)}))}}function mo(e,n){return t.firstValueFrom(t.from(e).pipe(t.filter(n)))}function vo(e){return r(this,void 0,void 0,(function*(){const t=yield bo(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 bo(e,{deleteUnsyncedData:!0})}}))}function bo(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 mo(e.cloud.currentUser,(e=>e.userId===c.userId)),yield e.cloud.sync({purpose:"pull",wait:!0})),n}))}function wo(e,...t){globalThis.console[e](...t)}function _o(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 yo(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 vo(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&&(wo("debug","Login context property names:",Object.keys(t)),wo("debug","Login context property names:",Object.keys(t)),wo("debug","Login context:",t),wo("debug","Login context JSON:",JSON.stringify(t)))}catch(e){}throw e}})))),yield mo(e.cloud.currentUser,(e=>e.userId===t.userId))}))}(e,o),y(e,"pull"),o.userId!==i}))}const ko="undefined"!=typeof InstallTrigger,So="undefined"!=typeof navigator&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\/|Edge\//.test(navigator.userAgent),Eo=So?[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]:NaN,xo=So&&Eo<=605||ko,Co="undefined"!=typeof self&&"clients"in self&&!self.document;const{toString:Io}={};function Ao(e){return Io.call(e).slice(8,-1)}function Do(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 Oo=/b|c|d|f|g|h|j|k|l|m|n|p|q|r|s|t|v|x|y|z/i;let To=0;function Uo(e,t){const n=new Uint8Array(18),r=new Uint8Array(n.buffer,0,6),s=Date.now();To>=s?++To:To=s,r[0]=To/1099511627776,r[1]=To/4294967296,r[2]=To/16777216,r[3]=To/65536,r[4]=To/256,r[5]=To;const i=new Uint8Array(n.buffer,6);crypto.getRandomValues(i);return e+$e(new Uint8Array(n.buffer))+(t||"")}function jo(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=Do(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=Do(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]=Uo(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){Do(s.schema.primaryKey,n).forEach(((t,n)=>{if(!j(t)){const n=Array.isArray(t)?t.map(Ao).join(","):Ao(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 Lo=0;function Po(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 Ro(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 Mo=new t.BehaviorSubject(new Set);function No(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 $o({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,Mo.value.add(i),Mo.next(Mo.value);const e=()=>{i.removeEventListener("complete",r),i.removeEventListener("error",e),i.removeEventListener("abort",e),Mo.value.delete(i),Mo.next(Mo.value)},r=()=>{i.mutationsAdded&&!No(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"+ ++Lo;return Object.assign(Object.assign({},e),{count:Po(e.count,t),get:Po(e.get,t),getMany:Po(e.getMany,t),openCursor:Po(e.openCursor,t),query:Po(e.query,t),mutate:Ro(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 Bo(e,t){return function(n,r){var s;const i=Object.assign(Object.assign({},ho),n);Object.keys(ho).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=ho[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(ho[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)(Oo.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 Fo(e,t,n){return"undefined"!=typeof navigator&&navigator.locks?navigator.locks.request(e.name+"|"+t,(()=>n())):n()}const Wo=new t.BehaviorSubject(!0),Vo=new t.BehaviorSubject(!0);Wo.pipe(n.switchMap((e=>e?t.of(!0):t.of(!1).pipe(n.delay(2e4)))),n.distinctUntilChanged()).subscribe(Vo);const Ko="undefined"!=typeof document?t.fromEvent(document,"visibilitychange"):t.of({}),Ho=Ko.pipe(n.filter((()=>"hidden"===document.visibilityState))),Jo=Ko.pipe(n.filter((()=>"visible"===document.visibilityState))),zo="undefined"!=typeof window?t.merge(Jo,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),Ho,zo).pipe(n.map((()=>"visible"===document.visibilityState)),n.tap((e=>{Wo.value!==e&&Wo.next(e)})),n.switchMap((e=>e?t.of(0).pipe(n.delay(16e4),n.tap((()=>Wo.next(!1)))):t.of(0)))).subscribe((()=>{}));class qo extends Error{constructor(){super(...arguments),this.name="TokenExpiredError"}}function Yo(t){var n,r;if(!(null===(n=t.cloud.options)||void 0===n?void 0:n.awarenessProtocol))throw new e.MissingAPIError('awarenessProtocol was not provided to db.cloud.configure(). Please import * as awarenessProtocol from "y-protocols/awareness".');return null===(r=t.cloud.options)||void 0===r?void 0:r.awarenessProtocol}const Go=new WeakMap,Qo=new WeakMap;function Xo(e){let n=Qo.get(e);return n||(n=new t.Subject,Qo.set(e,n)),n}class Zo extends t.Observable{constructor(e,t,n,r,s,i,o,l){super((c=>new tl(e,t,n,r,s,l,c,i,o)))}}let el=0;class tl extends t.Subscription{constructor(e,t,n,r,s,i,o,l,c){super((()=>this.teardown())),this.id=++el,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 qo);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=Gi.getDocCache(this.db.dx).find(t.table,t.k,t.prop);if(e){const n=(e=>Go.get(e))(e);if(n){Yo(this.db).applyAwarenessUpdate(n,t.u,"server")}}}else if("pong"===t.type);else if("doc-open"===t.type){const e=Gi.getDocCache(this.db.dx).find(t.table,t.k,t.prop);e&&Xo(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?Qi([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=$i(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&&!No(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 nl extends Error{constructor(e){super("expired"===e?"License expired":"deactivated"===e?"User deactivated":"Invalid license"),this.name="InvalidLicenseError",e&&(this.license=e)}}function rl(e){return r(this,void 0,void 0,(function*(){var e;yield(e=3e3,new Promise((t=>setTimeout(t,e)))),yield t.firstValueFrom(zo)}))}function sl(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 ro(e,e.cloud.options,e.cloud.schema,{justCheckIfNeeded:!0}))}))}const il=new WeakMap;function ol(e,t,n,s){const i=il.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 ol(e,t,n,s)}))}}const o=function(){return r(this,void 0,void 0,(function*(){try{yield ct(e),yield Fo(e,no,(()=>ro(e,t,n,s))),il.delete(e)}catch(t){throw il.delete(e),t}}))}();return il.set(e,{promise:o,pull:"push"!==(null==s?void 0:s.purpose)}),o}const ll=1e3;function cl(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(),ol(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]*ll;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 al(e,t){if(e&&t&&t.unsyncedTables)for(const n of t.unsyncedTables)e[n]&&(e[n].markedForSync=!1)}var ul,dl,hl,fl,pl,gl={},yl=[],ml=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function vl(e,t){for(var n in t)e[n]=t[n];return e}function bl(e){var t=e.parentNode;t&&t.removeChild(e)}function wl(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?ul.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 _l(e,o,r,s,null)}function _l(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?++hl:s};return null==s&&null!=dl.vnode&&dl.vnode(i),i}function kl(e){return e.children}function Sl(e,t){this.props=e,this.context=t}function El(e,t){if(null==t)return e.__?El(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?El(e):null}function xl(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 xl(e)}}function Cl(e){(!e.__d&&(e.__d=!0)&&fl.push(e)&&!Il.__r++||pl!==dl.debounceRendering)&&((pl=dl.debounceRendering)||setTimeout)(Il)}function Il(){for(var e;Il.__r=fl.length;)e=fl.sort((function(e,t){return e.__v.__b-t.__v.__b})),fl=[],e.some((function(e){var t,n,r,s,i,o;e.__d&&(i=(s=(t=e).__v).__e,(o=t.__P)&&(n=[],(r=vl({},s)).__v=s.__v+1,Pl(o,s,r,t.__n,void 0!==o.ownerSVGElement,null!=s.__h?[i]:null,n,null==i?El(s):i,s.__h),Rl(n,s),s.__e!=i&&xl(s)))}))}function Al(e,t,n,r,s,i,o,l,c,a){var u,d,h,f,p,g,y,m=r&&r.__k||yl,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?_l(null,f,null,null,f):Array.isArray(f)?_l(kl,{children:f},null,null,null):f.__b>0?_l(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}Pl(e,f,h=h||gl,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=Dl(f,c,e):c=Ol(e,f,h,m,p,c),"function"==typeof n.type&&(n.__d=c)):c&&h.__e==c&&c.parentNode!=e&&(c=El(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=El(r,u+1)),$l(m[u],m[u]));if(y)for(u=0;u<y.length;u++)Nl(y[u],y[++u],y[++u])}function Dl(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?Dl(r,t,n):Ol(n,r,r,s,r.__e,t));return t}function Ol(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 Tl(e,t,n){"-"===t[0]?e.setProperty(t,n):e[t]=null==n?"":"number"!=typeof n||ml.test(t)?n:n+"px"}function Ul(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||Tl(e.style,t,"");if(n)for(t in n)r&&n[t]===r[t]||Tl(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?Ll:jl,i):e.removeEventListener(t,i?Ll:jl,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 jl(e){this.l[e.type+!1](dl.event?dl.event(e):e)}function Ll(e){this.l[e.type+!0](dl.event?dl.event(e):e)}function Pl(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=dl.__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 Sl(y,v),u.constructor=k,u.render=Bl),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=vl({},u.__s)),vl(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=dl.__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=vl(vl({},r),u.getChildContext())),d||null==u.getSnapshotBeforeUpdate||(p=u.getSnapshotBeforeUpdate(h,f)),_=null!=a&&a.type===kl&&null==a.key?a.props.children:a,Al(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=Ml(n.__e,t,n,r,s,i,o,c);(a=dl.diffed)&&a(t)}catch(e){t.__v=null,(c||null!=i)&&(t.__e=l,t.__h=!!c,i[i.indexOf(l)]=null),dl.__e(e,t,n)}}function Rl(e,t){dl.__c&&dl.__c(t,e),e.some((function(t){try{e=t.__h,t.__h=[],e.some((function(e){e.call(t)}))}catch(e){dl.__e(e,t.__v)}}))}function Ml(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&&ul.call(e.childNodes),a=(d=n.props||gl).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||Ul(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]||Ul(e,i,t[i],n[i],r)}(e,h,d,s,l),u)t.__k=[];else if(p=t.props.children,Al(e,Array.isArray(p)?p:[p],t,n,r,s&&"foreignObject"!==f,i,o,i?i[0]:n.__k&&El(n,0),l),null!=i)for(p=i.length;p--;)null!=i[p]&&bl(i[p]);l||("value"in h&&void 0!==(p=h.value)&&(p!==e.value||"progress"===f&&!p||"option"===f&&p!==d.value)&&Ul(e,"value",p,d.value,!1),"checked"in h&&void 0!==(p=h.checked)&&p!==e.checked&&Ul(e,"checked",p,d.checked,!1))}return e}function Nl(e,t,n){try{"function"==typeof e?e(t):e.current=t}catch(e){dl.__e(e,n)}}function $l(e,t,n){var r,s;if(dl.unmount&&dl.unmount(e),(r=e.ref)&&(r.current&&r.current!==e.__e||Nl(r,null,t)),null!=(r=e.__c)){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(e){dl.__e(e,t)}r.base=r.__P=null}if(r=e.__k)for(s=0;s<r.length;s++)r[s]&&$l(r[s],t,"function"!=typeof e.type);n||null==e.__e||bl(e.__e),e.__e=e.__d=void 0}function Bl(e,t,n){return this.constructor(e,n)}function Fl(e,t,n){var r,s,i;dl.__&&dl.__(e,t),s=(r="function"==typeof n)?null:n&&n.__k||t.__k,i=[],Pl(t,e=(!r&&n||t).__k=wl(kl,null,[e]),s||gl,gl,void 0!==t.ownerSVGElement,!r&&n?[n]:s?null:t.firstChild?ul.call(t.childNodes):null,i,!r&&n?n:s?s.__e:t.firstChild,r),Rl(i,e)}ul=yl.slice,dl={__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}},hl=0,Sl.prototype.setState=function(e,t){var n;n=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=vl({},this.state),"function"==typeof e&&(e=e(vl({},n),this.props)),e&&vl(n,e),null!=e&&this.__v&&(t&&this.__h.push(t),Cl(this))},Sl.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),Cl(this))},Sl.prototype.render=kl,fl=[],Il.__r=0;const Wl={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 Vl({children:e,className:t}){return wl("div",{className:t},wl("div",{style:Wl.Darken}),wl("div",{style:Wl.DialogOuter},wl("div",{style:Wl.DialogInner},e)))}var Kl,Hl,Jl,zl,ql=0,Yl=[],Gl=[],Ql=dl.__b,Xl=dl.__r,Zl=dl.diffed,ec=dl.__c,tc=dl.unmount;function nc(e,t){dl.__h&&dl.__h(Hl,e,ql||t),ql=0;var n=Hl.__H||(Hl.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({__V:Gl}),n.__[e]}function rc(e){return ql=1,function(e,t,n){var r=nc(Kl++,2);if(r.t=e,!r.__c&&(r.__=[n?n(t):uc(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=Hl,!Hl.u)){Hl.u=!0;var s=Hl.shouldComponentUpdate;Hl.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.__}(uc,e)}function sc(e){return ql=5,function(e,t){var n=nc(Kl++,7);return ac(n.__H,t)?(n.__V=e(),n.i=t,n.__h=e,n.__V):n.__}((function(){return{current:e}}),[])}function ic(){for(var e;e=Yl.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(lc),e.__H.__h.forEach(cc),e.__H.__h=[]}catch(t){e.__H.__h=[],dl.__e(t,e.__v)}}dl.__b=function(e){Hl=null,Ql&&Ql(e)},dl.__r=function(e){Xl&&Xl(e),Kl=0;var t=(Hl=e.__c).__H;t&&(Jl===Hl?(t.__h=[],Hl.__h=[],t.__.forEach((function(e){e.__N&&(e.__=e.__N),e.__V=Gl,e.__N=e.i=void 0}))):(t.__h.forEach(lc),t.__h.forEach(cc),t.__h=[])),Jl=Hl},dl.diffed=function(e){Zl&&Zl(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(1!==Yl.push(t)&&zl===dl.requestAnimationFrame||((zl=dl.requestAnimationFrame)||function(e){var t,n=function(){clearTimeout(r),oc&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,100);oc&&(t=requestAnimationFrame(n))})(ic)),t.__H.__.forEach((function(e){e.i&&(e.__H=e.i),e.__V!==Gl&&(e.__=e.__V),e.i=void 0,e.__V=Gl}))),Jl=Hl=null},dl.__c=function(e,t){t.some((function(e){try{e.__h.forEach(lc),e.__h=e.__h.filter((function(e){return!e.__||cc(e)}))}catch(n){t.some((function(e){e.__h&&(e.__h=[])})),t=[],dl.__e(n,e.__v)}})),ec&&ec(e,t)},dl.unmount=function(e){tc&&tc(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.forEach((function(e){try{lc(e)}catch(e){t=e}})),t&&dl.__e(t,n.__v))};var oc="function"==typeof requestAnimationFrame;function lc(e){var t=Hl,n=e.__c;"function"==typeof n&&(e.__c=void 0,n()),Hl=t}function cc(e){var t=Hl;e.__c=e.__(),Hl=t}function ac(e,t){return!e||e.length!==t.length||t.some((function(t,n){return t!==e[n]}))}function uc(e,t){return"function"==typeof t?t(e):t}function dc({title:e,type:t,alerts:n,fields:r,submitLabel:s,cancelLabel:i,onCancel:o,onSubmit:l}){const[c,a]=rc({}),u=sc(null);return function(e,t){var n=nc(Kl++,4);!dl.__s&&ac(n.__H,t)&&(n.__=e,n.i=t,Hl.__h.push(n))}((()=>{var e;return null===(e=u.current)||void 0===e?void 0:e.focus()}),[]),wl(Vl,{className:"dxc-login-dlg"},wl(kl,null,wl("h3",{style:Wl.WindowHeader},e),n.map((e=>wl("p",{style:Wl.Alert[e.type]},function({message:e,messageCode:t,messageParams:n}){return e.replace(/\{\w+\}/gi,(e=>n[e.substring(1,e.length-1)]))}(e)))),wl("form",{onSubmit:e=>{e.preventDefault(),l(c)}},Object.entries(r).map((([e,{type:t,label:n,placeholder:r}],s)=>wl("label",{style:Wl.Label,key:s},n?`${n}: `:"",wl("input",{ref:0===s?u:void 0,type:t,name:e,autoComplete:"on",style:Wl.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)}})))))),wl("div",{style:Wl.ButtonsDiv},wl(kl,null,wl("button",{type:"submit",style:Wl.Button,onClick:()=>l(c)},s),i&&wl("button",{style:Wl.Button,onClick:o},i))))}class hc extends Sl{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?wl(dc,Object.assign({},t)):null}}function fc(e){const t=new WeakMap;return n=>{let r=t.get(n);return r||(r=e(n),t.set(n,r)),r}}const pc=fc((e=>new t.BehaviorSubject(c)));function gc(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 yc=fc((t=>gc(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})))),{}))),mc=fc((t=>gc(pc(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 vc(...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 bc=fc((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}(gc(t.combineLatest([mc(e._novip),yc(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:"*"}:vc(...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 wc{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 _c=fc((s=>{const i=pc(s._novip).pipe(n.switchMap((t=>e.liveQuery((()=>s.members.where({email:t.email||""}).toArray()))))),o=bc(s._novip),l=mc(s._novip);return gc(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 kc(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=Yo(n),d=new u.Awareness(s),h=Xo(s);return d.on("update",(({added:e,updated:t,removed:r},l)=>{const a=e.concat(t).concat(r),h=n.cloud.currentUser.value;if("server"!==l&&h.isLoggedIn&&!No(n)){const e=u.encodeAwarenessUpdate(d,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})}})),d.on("destroy",(()=>{u.removeAwarenessStates(d,[s.clientID],"provider destroyed")})),(()=>{r(this,void 0,void 0,(function*(){if(i.destroyed)return;let s=!1,u=1;const d=t.combineLatest([n.cloud.webSocketStatus,h.pipe(t.startWith(null))]).subscribe((([e])=>{if(i.destroyed)return;s="connected"===e;const t=n.cloud.currentUser.value;"connected"===e&&t.isLoggedIn&&!No(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=cs(y.map((e=>e.u))),t=os(e);g.sv=t}n.messageProducer.next(g)}}))}i.addCleanupHandler(d)}))})(),d}(n,o,s),Go.set(o,c),c)})}}const Sc={nameSuffix:!0};function Ec(s){const i=s.name,o=pc(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=po(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),Fl(wl(hc,{db:e.vip}),n)):addEventListener("DOMContentLoaded",(()=>{t||(document.body.appendChild(n),Fl(wl(hc,{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 Wo.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"})),pc(e.dx._novip),Vo]).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&&!xo?k.cloud.usingServiceWorker=!0:((null===(t=k.cloud.options)||void 0===t?void 0:t.tryUseServiceWorker)&&k.cloud.isServiceWorkerDB,k.cloud.usingServiceWorker=!1),al(r,k.cloud.options),al(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=kc(k);Gi.on.new.subscribe(r),k.dx.once("close",(()=>{Gi.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 _o(k,A)):I.isLoggedIn||(C=yield _o(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 Fo(e,no,(()=>ro(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=cl(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"}),No(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)||Co||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])=>Vo.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 Zo(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 nl?t.throwError((()=>r)):t.from(rl()).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.4",options:Object.assign({},Sc),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=po(s);yield t.cloud.sync(),yield _o(t,e)}))},invites:_c(s),roles:yc(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)}`,po(s).reconfigure()),al(s.cloud.schema,s.cloud.options)},logout(){return r(this,arguments,void 0,(function*({force:e}={}){e?yield bo(po(s),{deleteUnsyncedData:!0}):yield vo(po(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=po(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 sl(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 sl(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=bc(e),l=t=>{const n=t[i||e.cloud.currentUserId];return n?new wc(n.permissions,r,void 0===i||i===e.cloud.currentUserId||s===e.cloud.currentUserId):new wc({},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=>Bo(e,s))),s.Table.prototype.newId=function({colocateWith:e}={}){const t=e&&e.substr(e.length-3);return Uo(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($o({currentUserObservable:s.cloud.currentUser,db:po(s)})),s.use((p=po(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(jo(po(s)))}Ec.version="4.2.0-alpha.4",e.Cloud=Ec;const xc=new Map;function Cc(e){return e.startsWith("dexie-cloud:")&&e.split(":")[1]}const Ic=new Map;function Ac(t,n){let s=Ic.get(t+"/"+n);return s||(s=function t(n,s){return r(this,void 0,void 0,(function*(){var r;let i=xc.get(n);if(!i){const r=new e(n,{addons:[Ec]});if(i=po(r),i.cloud.isServiceWorkerDB=!0,r.on("versionchange",o),yield i.dx.open(),xc.get(n))return i.close(),yield t(n,s);xc.set(n,i)}if((null===(r=i.cloud.options)||void 0===r?void 0:r.databaseUrl)&&i.cloud.schema)try{yield ol(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),xc.get(i.name)===i&&xc.delete(i.name),i.dx.close(),!1}}))}(t,n).then((()=>{Ic.delete(t+"/"+n)})).catch((e=>(Ic.delete(t+"/"+n),Promise.reject(e)))),Ic.set(t+"/"+n,s)),s}xo||(self.addEventListener("sync",(e=>{const t=Cc(e.tag);t&&e.waitUntil(Ac(t,"push"))})),self.addEventListener("periodicsync",(e=>{const t=Cc(e.tag);t&&e.waitUntil(Ac(t,"pull"))})),self.addEventListener("message",(e=>{if("dexie-cloud-sync"===e.data.type){const{dbName:t}=e.data,n=(s=1)=>Ac(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.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=>{}))}})))}));
2
2
  //# sourceMappingURL=service-worker.min.js.map