dexie-cloud-addon 4.3.2 → 4.3.4

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(exports,require("dexie"),require("rxjs"),require("rxjs/operators")):"function"==typeof define&&define.amd?define(["exports","dexie","rxjs","rxjs/operators"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).DexieCloud={},e.Dexie,e.rxjs,e.rxjs.operators)}(this,function(e,t,n,r){"use strict";function s(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 i(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 o(e){return this instanceof o?(this.v=e,this):new o(e)}function l(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,s=n.apply(e,t||[]),i=[];return r=Object.create(("function"==typeof AsyncIterator?AsyncIterator:Object).prototype),l("next"),l("throw"),l("return",function(e){return function(t){return Promise.resolve(t).then(e,d)}}),r[Symbol.asyncIterator]=function(){return this},r;function l(e,t){s[e]&&(r[e]=function(t){return new Promise(function(n,r){i.push([e,t,n,r])>1||c(e,t)})},t&&(r[e]=t(r[e])))}function c(e,t){try{!function(e){e.value instanceof o?Promise.resolve(e.value.v).then(a,d):u(i[0][2],e)}(s[e](t))}catch(e){u(i[0][3],e)}}function a(e){c("next",e)}function d(e){c("throw",e)}function u(e,t){e(t),i.shift(),i.length&&c(i[0][0],i[0][1])}}function c(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=i(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)})}}}"function"==typeof SuppressedError&&SuppressedError;const a={}.hasOwnProperty;function d(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)d(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 a.call(e,t)}(e,o)||(c=e[o]={}),d(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=h)=>{const n=Buffer.alloc(e);return t(n),n.toString("base64")}:()=>{throw new Error("No implementation of randomString was found")};function h(e){for(let t=0;t<e.length;++t)e[t]=Math.floor(256*Math.random())}function f(e){return"string"==typeof e||!!(Array.isArray(e)&&e.some(e=>f(e))&&e.every(p))}function p(e){return"string"==typeof e||"number"==typeof e||Array.isArray(e)&&e.every(p)}function g(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))d(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 y(e,t){for(const{table:n,muts:r}of t)for(const t of r)g(e,n,t)}const m=Math.floor,v=Math.abs,b=(e,t)=>e<t?e:t,w=(e,t)=>e>t?e:t,_=e=>0!==e?e<0:1/e<0,k=64,S=128,x=127,E=Number.MAX_SAFE_INTEGER,C=Number.isInteger||(e=>"number"==typeof e&&isFinite(e)&&m(e)===e),I=()=>new Set,O=e=>e[e.length-1],D=(e,t)=>{for(let n=0;n<t.length;n++)e.push(t[n])},A=Array.from,T=Array.isArray,j=/^\s*/g,U=/([A-Z])/g,L=(e,t)=>(e=>e.replace(j,""))(e.replace(U,e=>`${t}${(e=>e.toLowerCase())(e)}`)),P="undefined"!=typeof TextEncoder?new TextEncoder:null,M=P?e=>P.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 $="undefined"==typeof TextDecoder?null:new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});$&&1===$.decode(new Uint8Array).length&&($=null);class R{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}}const N=()=>new R,B=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},F=(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},W=F,z=(e,t)=>{for(;t>x;)F(e,S|x&t),t=m(t/128);F(e,x&t)},H=(e,t)=>{const n=_(t);for(n&&(t=-t),F(e,(t>63?S:0)|(n?k:0)|63&t),t=m(t/64);t>0;)F(e,(t>x?S:0)|x&t),t=m(t/128)},V=new Uint8Array(3e4),K=V.length/3,J=P&&P.encodeInto?(e,t)=>{if(t.length<K){const n=P.encodeInto(t,V).written||0;z(e,n);for(let t=0;t<n;t++)F(e,V[t])}else Y(e,M(t))}:(e,t)=>{const n=unescape(encodeURIComponent(t)),r=n.length;z(e,r);for(let t=0;t<r;t++)F(e,n.codePointAt(t))},q=(e,t)=>{const n=e.cbuf.length,r=e.cpos,s=b(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(w(2*n,i)),e.cbuf.set(t.subarray(s)),e.cpos=i)},Y=(e,t)=>{z(e,t.byteLength),q(e,t)},G=(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*w(n,t)),e.cpos=0)})(e,t);const n=new DataView(e.cbuf.buffer,e.cpos,t);return e.cpos+=t,n},Q=(e,t)=>G(e,8).setBigUint64(0,t,!1),X=new DataView(new ArrayBuffer(4)),Z=(e,t)=>{switch(typeof t){case"string":F(e,119),J(e,t);break;case"number":C(t)&&v(t)<=2147483647?(F(e,125),H(e,t)):(n=t,X.setFloat32(0,n),X.getFloat32(0)===n?(F(e,124),((e,t)=>{G(e,4).setFloat32(0,t,!1)})(e,t)):(F(e,123),((e,t)=>{G(e,8).setFloat64(0,t,!1)})(e,t)));break;case"bigint":F(e,122),((e,t)=>{G(e,8).setBigInt64(0,t,!1)})(e,t);break;case"object":if(null===t)F(e,126);else if(T(t)){F(e,117),z(e,t.length);for(let n=0;n<t.length;n++)Z(e,t[n])}else if(t instanceof Uint8Array)F(e,116),Y(e,t);else{F(e,118);const n=Object.keys(t);z(e,n.length);for(let r=0;r<n.length;r++){const s=n[r];J(e,s),Z(e,t[s])}}break;case"boolean":F(e,t?120:121);break;default:F(e,127)}var n};class ee extends R{constructor(e){super(),this.w=e,this.s=null,this.count=0}write(e){this.s===e?this.count++:(this.count>0&&z(this,this.count-1),this.count=1,this.w(this,e),this.s=e)}}const te=e=>{e.count>0&&(H(e.encoder,1===e.count?e.s:-e.s),e.count>1&&z(e.encoder,e.count-2))};class ne{constructor(){this.encoder=new R,this.s=0,this.count=0}write(e){this.s===e?this.count++:(te(this),this.count=1,this.s=e)}toUint8Array(){return te(this),B(this.encoder)}}const re=e=>{if(e.count>0){const t=2*e.diff+(1===e.count?0:1);H(e.encoder,t),e.count>1&&z(e.encoder,e.count-2)}};class se{constructor(){this.encoder=new R,this.s=0,this.count=0,this.diff=0}write(e){this.diff===e-this.s?(this.s=e,this.count++):(re(this),this.count=1,this.diff=e-this.s,this.s=e)}toUint8Array(){return re(this),B(this.encoder)}}class ie{constructor(){this.sarr=[],this.s="",this.lensE=new ne}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 R;return this.sarr.push(this.s),this.s="",J(e,this.sarr.join("")),q(e,this.lensE.toUint8Array()),B(e)}}const oe=e=>new Error(e),le=()=>{throw oe("Method unimplemented")},ce=()=>{throw oe("Unexpected case")},ae=oe("Unexpected end of array"),de=oe("Integer out of Range");class ue{constructor(e){this.arr=e,this.pos=0}}const he=e=>new ue(e),fe=e=>e.pos!==e.arr.length,pe=e=>((e,t)=>{const n=new Uint8Array(e.arr.buffer,e.pos+e.arr.byteOffset,t);return e.pos+=t,n})(e,ye(e)),ge=e=>e.arr[e.pos++],ye=e=>{let t=0,n=1;const r=e.arr.length;for(;e.pos<r;){const r=e.arr[e.pos++];if(t+=(r&x)*n,n*=128,r<S)return t;if(t>E)throw de}throw ae},me=e=>{let t=e.arr[e.pos++],n=63&t,r=64;const s=(t&k)>0?-1:1;if(0===(t&S))return s*n;const i=e.arr.length;for(;e.pos<i;){if(t=e.arr[e.pos++],n+=(t&x)*r,r*=128,t<S)return s*n;if(n>E)throw de}throw ae},ve=$?e=>$.decode(pe(e)):e=>{let t=ye(e);if(0===t)return"";{let n=String.fromCodePoint(ge(e));if(--t<100)for(;t--;)n+=String.fromCodePoint(ge(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))}},be=(e,t)=>{const n=new DataView(e.arr.buffer,e.arr.byteOffset+e.pos,t);return e.pos+=t,n},we=e=>be(e,8).getBigUint64(0,!1),_e=[e=>{},e=>null,me,e=>be(e,4).getFloat32(0,!1),e=>be(e,8).getFloat64(0,!1),e=>be(e,8).getBigInt64(0,!1),e=>!1,e=>!0,ve,e=>{const t=ye(e),n={};for(let r=0;r<t;r++){n[ve(e)]=ke(e)}return n},e=>{const t=ye(e),n=[];for(let r=0;r<t;r++)n.push(ke(e));return n},pe],ke=e=>_e[127-ge(e)](e);class Se extends ue{constructor(e,t){super(e),this.reader=t,this.s=null,this.count=0}read(){return 0===this.count&&(this.s=this.reader(this),fe(this)?this.count=ye(this)+1:this.count=-1),this.count--,this.s}}class xe extends ue{constructor(e){super(e),this.s=0,this.count=0}read(){if(0===this.count){this.s=me(this);const e=_(this.s);this.count=1,e&&(this.s=-this.s,this.count=ye(this)+2)}return this.count--,this.s}}class Ee extends ue{constructor(e){super(e),this.s=0,this.count=0,this.diff=0}read(){if(0===this.count){const e=me(this),t=1&e;this.diff=m(e/2),this.count=1,t&&(this.count=ye(this)+2)}return this.s+=this.diff,this.count--,this.s}}class Ce{constructor(e){this.decoder=new xe(e),this.str=ve(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}}async function*Ie(e){let t=0,n=new Uint8Array(4),r=0,s=[],i=0;for await(const o of e){const e=new DataView(o.buffer,o.byteOffset,o.byteLength);let l=0;for(;l<o.byteLength;)switch(t){case 0:if(l+4>o.byteLength){for(const e of o.slice(l)){if(4===r)break;n[r++]=e,++l}if(r<4)break}else if(r>0&&r<4)for(const e of o.slice(l,l+4-r))n[r++]=e,++l;case 1:i=4===r?new DataView(n.buffer,0,4).getUint32(0,!1):e.getUint32(l,!1),r?r=0:l+=4;case 2:if(l>=o.byteLength){t=2;break}if(l+i>o.byteLength)s.push(o.slice(l)),i-=o.byteLength-l,t=2,l=o.byteLength;else{if(s.length>0){const e=new Uint8Array(s.reduce((e,t)=>e+t.byteLength,i));let t=0;for(const n of s)e.set(n,t),t+=n.byteLength;e.set(o.slice(l,l+i),t),s=[],yield e}else yield o.slice(l,l+i);l+=i,t=0}}}}let Oe=!1;function De(e,t){return s(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){Oe||(Oe=!0)}})}function Ae(e,t){e.cloud.usingServiceWorker?De(e,t):e.localSyncEvent.next({purpose:t})}const Te="fromBase64"in Uint8Array,je="toBase64"in Uint8Array.prototype,Ue="undefined"!=typeof Buffer?e=>Buffer.from(e,"base64"):Te?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},Le="undefined"!=typeof Buffer?e=>ArrayBuffer.isView(e)?Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("base64"):Buffer.from(e).toString("base64"):je?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(""))};class Pe 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}}const Me={},$e={google:'<svg viewBox="0 0 24 24" width="20" height="20"><path fill="#4285F4" d="M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z"/><path fill="#34A853" d="M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z"/><path fill="#FBBC05" d="M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z"/><path fill="#EA4335" d="M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z"/></svg>',github:'<svg viewBox="0 0 24 24" width="20" height="20" fill="currentColor"><path d="M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0024 12c0-6.63-5.37-12-12-12z"/></svg>',microsoft:'<svg viewBox="0 0 24 24" width="20" height="20"><rect fill="#F25022" x="1" y="1" width="10" height="10"/><rect fill="#00A4EF" x="1" y="13" width="10" height="10"/><rect fill="#7FBA00" x="13" y="1" width="10" height="10"/><rect fill="#FFB900" x="13" y="13" width="10" height="10"/></svg>',apple:'<svg viewBox="0 0 24 24" width="20" height="20" fill="currentColor"><path d="M18.71 19.5c-.83 1.24-1.71 2.45-3.05 2.47-1.34.03-1.77-.79-3.29-.79-1.53 0-2 .77-3.27.82-1.31.05-2.3-1.32-3.14-2.53C4.25 17 2.94 12.45 4.7 9.39c.87-1.52 2.43-2.48 4.12-2.51 1.28-.02 2.5.87 3.29.87.78 0 2.26-1.07 3.81-.91.65.03 2.47.26 3.64 1.98-.09.06-2.17 1.28-2.15 3.81.03 3.02 2.65 4.03 2.68 4.04-.03.07-.42 1.44-1.38 2.83M13 3.5c.73-.83 1.94-1.46 2.94-1.5.13 1.17-.34 2.35-1.04 3.19-.69.85-1.83 1.51-2.95 1.42-.15-1.15.41-2.35 1.05-3.11z"/></svg>'};function Re(e){return s(this,void 0,void 0,function*(){var t;let n;if($e[e.type])n=$e[e.type];else if(null===(t=e.iconUrl)||void 0===t?void 0:t.toLowerCase().endsWith(".svg")){const t=yield function(e){return s(this,void 0,void 0,function*(){if(Me[e])return Me[e];try{const t=yield fetch(e);if(t.ok){const n=yield t.text();if(n.includes("<svg"))return Me[e]=n,n}}catch(e){}return null})}(e.iconUrl);t&&(n=t)}return{name:"provider",value:e.name,displayName:`Continue with ${e.displayName}`,iconSvg:n,iconUrl:!n&&e.iconUrl?e.iconUrl:void 0,styleHint:e.type}})}function Ne(e,n){return new Promise((r,s)=>{const i=Object.assign(Object.assign({submitLabel:"Submit",cancelLabel:"Cancel"},n),{onSubmit:t=>{e.next(void 0),r(t)},onCancel:()=>{e.next(void 0),s(new t.AbortError("User cancelled"))}});e.next(i)})}function Be(e,t,...n){return Ne(e,{type:"message-alert",title:t,alerts:n,fields:{},submitLabel:"OK",cancelLabel:null})}function Fe(e,t,n){return s(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 Ne(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 We(e,t,n){return s(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 Ne(e,{type:"otp",title:"Enter OTP",alerts:r,fields:{otp:{type:"otp",label:"OTP",placeholder:"Paste OTP here"}}});return s})}function ze(e){return s(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 d=yield Ve(e.cloud.options.databaseUrl,s);return yield e.table("$logins").update(a.sub,{accessToken:d.accessToken,accessTokenExpiration:d.accessTokenExpiration,claims:d.claims,license:d.license,data:d.data}),d})}function He(e,n,r,i,o){return s(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 Ve(e,n):yield function(e,n,r,i){return s(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:s,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(!s||!o)throw new Error("Could not generate RSA keypair");e.nonExportablePrivateKey=s;const l=function(e){const t=Le(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));e.publicKey=o;try{const t=yield n({public_key:l,hints:i});if("error"===t.type)throw new Pe(t);if("tokens"!==t.type)throw new Error(`Unexpected response type from token endpoint: ${t.type}`);return e.accessToken=t.accessToken,e.accessTokenExpiration=new Date(t.accessTokenExpiration),e.refreshToken=t.refreshToken,t.refreshTokenExpiration&&(e.refreshTokenExpiration=new Date(t.refreshTokenExpiration)),e.userId=t.claims.sub,e.email=t.claims.email,e.name=t.claims.name,e.claims=t.claims,e.license={type:t.userType,status:t.claims.license||"ok"},e.data=t.data,null!=t.evalDaysLeft&&(e.license.evalDaysLeft=t.evalDaysLeft),null!=t.userValidUntil&&(e.license.validUntil=new Date(t.userValidUntil)),t.alerts&&t.alerts.length>0&&(yield Ne(r,{type:"message-alert",title:"Authentication Alert",fields:{},alerts:t.alerts})),e}catch(e){if(e instanceof Pe)throw yield Be(r,e.title,{type:"error",messageCode:e.messageCode,message:e.message,messageParams:{}}),e;let n="We're having a problem authenticating right now.";if(e instanceof TypeError){n=void 0!==typeof navigator&&!navigator.onLine?"You seem to be offline. Please connect to the internet and try again.":t.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 Be(r,"Authentication Failed",{type:"error",messageCode:"GENERIC_ERROR",message:n,messageParams:{}}).catch(()=>{})}throw e}})}(n,r,i,o)})}function Ve(e,t){return s(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=Le(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 Pe(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 Ke=new WeakMap;class Je{constructor(e,t){Ke.set(this,e),Object.assign(this,t)}static load(e,t){return e.table("$logins").get(t).then(n=>new Je(e,n||{userId:t,claims:{sub:t},lastLogin:new Date(0)}))}save(){return s(this,void 0,void 0,function*(){Ke.get(this).table("$logins").put(this)})}}const qe={userId:"unauthorized",name:"Unauthorized",claims:{sub:"unauthorized"},lastLogin:new Date(0)};try{Object.freeze(qe),Object.freeze(qe.claims)}catch(e){}function Ye(e,t){return n.firstValueFrom(n.from(e).pipe(n.filter(t)))}function Ge(e){return s(this,void 0,void 0,function*(){const t=yield Qe(e);if(t){if(!(yield function(e,t,n){return s(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 Ne(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 Qe(e,{deleteUnsyncedData:!0})}})}function Qe(e){return s(this,arguments,void 0,function*(e,{deleteUnsyncedData:t=!1}={}){const[n,r]=yield e.dx.transaction("rw",e.dx.tables,n=>s(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 r&&(yield Ye(e.cloud.currentUser,e=>e.userId===qe.userId),yield e.cloud.sync({purpose:"pull",wait:!0})),n})}class Xe extends Error{constructor(e,t){super(t||`${e.status} ${e.statusText}`),this.httpStatus=e.status}get name(){return"HttpError"}}const Ze={access_denied:"Access was denied by the authentication provider.",invalid_state:"The authentication response could not be verified. Please try again.",email_not_verified:"Your email address must be verified before you can log in.",expired_code:"The authentication code has expired. Please try again.",provider_error:"An error occurred with the authentication provider.",network_error:"A network error occurred during authentication. Please check your connection and try again."};class et extends Error{constructor(e,t,n){super(n||Ze[e]),this.name="OAuthError",this.code=e,this.provider=t}get userMessage(){return Ze[this.code]||this.message}}const tt={providers:[],otpEnabled:!0};function nt(e){"undefined"!=typeof sessionStorage&&sessionStorage.setItem("dexie-cloud-oauth-provider",e.provider);const t=function(e){const t=new URL(`${e.databaseUrl}/oauth/login/${e.provider}`),n=e.redirectUri||("undefined"!=typeof window?window.location.href:"");return n&&t.searchParams.set("redirect_uri",n),t.toString()}(e);window.location.href=t}function rt(e){const{userInteraction:n}=e.cloud;return function(r){return s(this,arguments,void 0,function*({public_key:r,hints:i}){var o,l;let c;const a=null===(o=e.cloud.options)||void 0===o?void 0:o.databaseUrl;if(!a)throw new Error("No database URL given.");if((null==i?void 0:i.oauthCode)&&i.provider)return yield function(e){return s(this,void 0,void 0,function*(){const{databaseUrl:t,code:n,publicKey:r,scopes:s=["ACCESS_DB"]}=e,i={grant_type:"authorization_code",code:n,public_key:r,scopes:s};try{const e=yield fetch(`${t}/token`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(i),mode:"cors"});if(!e.ok){if(400===e.status||401===e.status)try{const t=yield e.json();if("error"===t.type){if("INVALID_OTP"===t.messageCode)throw new et("expired_code",void 0,t.message);throw new Pe(t)}}catch(e){if(e instanceof et||e instanceof Pe)throw e}const t=yield e.text().catch(()=>e.statusText);throw new et("provider_error",void 0,`Token exchange failed: ${e.status} ${t}`)}const n=yield e.json();if("error"===n.type)throw new Pe(n);if("tokens"!==n.type)throw new et("provider_error",void 0,`Unexpected response type: ${n.type}`);return n}catch(e){if(e instanceof et||e instanceof Pe)throw e;if(e instanceof TypeError)throw new et("network_error");throw e}})}({databaseUrl:a,code:i.oauthCode,publicKey:r,scopes:["ACCESS_DB"]});if(null==i?void 0:i.provider)throw st(e,i.provider),new Error("OAuth redirect initiated");if("demo"===(null==i?void 0:i.grant_type)){c={demo_user:yield Fe(n,"Enter a demo user email",(null==i?void 0:i.email)||(null==i?void 0:i.userId)),grant_type:"demo",scopes:["ACCESS_DB"],public_key:r}}else if((null==i?void 0:i.otpId)&&i.otp)c={grant_type:"otp",otp_id:i.otpId,otp:i.otp,scopes:["ACCESS_DB"],public_key:r};else{const o=!1!==(null===(l=e.cloud.options)||void 0===l?void 0:l.socialAuth),d=yield function(e){return s(this,arguments,void 0,function*(e,t=!0){if(!t)return tt;try{const t=yield fetch(`${e}/auth-providers`,{method:"GET",headers:{Accept:"application/json"},mode:"cors"});return 404===t.status?tt:t.ok?yield t.json():tt}catch(e){return tt}})}(a,o);if(d.providers.length>0){const r=yield function(e,n,r){return s(this,arguments,void 0,function*(e,n,r,s="Choose login method",i=[]){const o=[...yield Promise.all(n.map(Re))];return r&&o.push({name:"otp",value:"email",displayName:"Continue with email",iconSvg:'<svg viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="2"><rect x="2" y="4" width="20" height="16" rx="2"/><path d="M22 6L12 13 2 6"/></svg>',styleHint:"otp"}),new Promise((n,r)=>{const l={type:"generic",title:s,alerts:i,options:o,fields:{},submitLabel:"",cancelLabel:"Cancel",onSubmit:t=>{e.next(void 0),n("otp"in t?{type:"otp"}:"provider"in t?{type:"provider",provider:t.provider}:{type:"otp"})},onCancel:()=>{e.next(void 0),r(new t.AbortError("User cancelled"))}};e.next(l)})})}(n,d.providers,d.otpEnabled,"Sign in");if("provider"===r.type)throw st(e,r.provider),new Error("OAuth redirect initiated")}const u=yield Fe(n,"Enter email address",null==i?void 0:i.email);c=/@demo.local$/.test(u)?{demo_user:u,grant_type:"demo",scopes:["ACCESS_DB"],public_key:r}:{email:u,grant_type:"otp",scopes:["ACCESS_DB"]}}const d=yield fetch(`${a}/token`,{body:JSON.stringify(c),method:"post",headers:{"Content-Type":"application/json",mode:"cors"}});if(200!==d.status){const e=yield d.text();throw yield Be(n,"Token request failed",{type:"error",messageCode:"GENERIC_ERROR",message:e,messageParams:{}}).catch(()=>{}),new Xe(d,e)}const u=yield d.json();if("tokens"===u.type||"error"===u.type)return u;if("otp"===c.grant_type&&"email"in c){if("otp-sent"!==u.type)throw new Error(`Unexpected response from ${a}/token`);const e=yield We(n,c.email),t=Object.assign(Object.assign({},c),{otp:e||"",otp_id:u.otp_id,public_key:r});let s=yield fetch(`${a}/token`,{body:JSON.stringify(t),method:"post",headers:{"Content-Type":"application/json"},mode:"cors"});for(;401===s.status;){const e=yield s.text();t.otp=yield We(n,c.email,{type:"error",messageCode:"INVALID_OTP",message:e,messageParams:{}}),s=yield fetch(`${a}/token`,{body:JSON.stringify(t),method:"post",headers:{"Content-Type":"application/json"},mode:"cors"})}if(200!==s.status){const e=yield s.text();throw new Xe(s,e)}return yield s.json()}throw new Error(`Unexpected response from ${a}/token`)})}}function st(e,t){var n,r;const s=null===(n=e.cloud.options)||void 0===n?void 0:n.databaseUrl;if(!s)throw new Error("No database URL given.");nt({databaseUrl:s,provider:t,redirectUri:(null===(r=e.cloud.options)||void 0===r?void 0:r.oauthRedirectUri)||("undefined"!=typeof window?window.location.href:void 0)})}function it(e,...t){globalThis.console[e](...t)}function ot(e,t){return s(this,void 0,void 0,function*(){var n;const r=yield e.getCurrentUser(),i=r.userId;if(r.isLoggedIn&&(!t||!t.email&&!t.userId)){if("ok"===((null===(n=r.license)||void 0===n?void 0:n.status)||"ok")&&r.accessToken&&(!r.accessTokenExpiration||r.accessTokenExpiration.getTime()>Date.now()))return!1;if(r.refreshToken&&(!r.refreshTokenExpiration||r.refreshTokenExpiration.getTime()>Date.now()))return yield ze(e),!1}const o=new Je(e,{claims:{},lastLogin:new Date(0)});return yield He(e.cloud.options.databaseUrl,o,e.cloud.options.fetchTokens||rt(e),e.cloud.userInteraction,t),i!==qe.userId&&o.userId!==i&&(yield Ge(e)),yield function(e,t){return s(this,void 0,void 0,function*(){const n=e.table("$logins");yield e.transaction("rw",n,e=>s(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&&(it("debug","Login context property names:",Object.keys(t)),it("debug","Login context property names:",Object.keys(t)),it("debug","Login context:",t),it("debug","Login context JSON:",JSON.stringify(t)))}catch(e){}throw e}})),yield Ye(e.cloud.currentUser,e=>e.userId===t.userId)})}(e,o),Ae(e,"pull"),o.userId!==i})}const lt={},ct="undefined"!=typeof self&&self.document&&"undefined"!=typeof navigator&&navigator.serviceWorker;ct&&ct.ready.then(e=>lt.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 at{constructor(e){this.name=e}subscribe(e){if(!ct)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 ct.addEventListener("message",t),()=>ct.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})):lt.registration&&(null===(t=lt.registration.active)||void 0===t||t.postMessage({type:`sw-broadcast-${this.name}`,message:e}))}}const dt=globalThis["lbc-events"]||(globalThis["lbc-events"]=new Map);class ut extends n.Observable{constructor(e){const t="undefined"==typeof BroadcastChannel?new at(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){dt.has(e)?dt.get(e).push(t):dt.set(e,[t])}(`lbc-${e}`,r);try{t instanceof at?i=t.subscribe(e=>n.next(e)):t.addEventListener("message",s)}catch(e){}return()=>{!function(e,t){const n=dt.get(e);if(n){const e=n.indexOf(t);-1!==e&&n.splice(e,1)}}(`lbc-${e}`,r),t instanceof at?i():t.removeEventListener("message",s)}}),this.name=e,this.bc=t}next(e){this.bc.postMessage(e);!function(e){const t=dt.get(e.type);t&&t.forEach(t=>{try{t(e)}catch(e){}})}(new CustomEvent(`lbc-${this.name}`,{detail:e}))}}function ht(e){return s(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 Le(s)})}function ft(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 pt(e){return`$${e}_mutations`}function gt(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 yt=[].concat;function mt(e){return yt.apply([],e)}function vt(e,t){return s(this,arguments,void 0,function*(e,t,{since:n={},limit:r=1/0}={}){const i=yield Promise.all(e.map(e=>s(this,void 0,void 0,function*(){const t=gt(e.name),s=n[t];let i=s?e.where("rev").above(s):e;r<1/0&&(i=i.limit(r));let o=yield i.toArray();o=function(e){return e=e.map(e=>{if("modify"===e.type&&null===e.criteria.index){const t=Object.assign(Object.assign({},e),{criteria:void 0,changeSpec:void 0,type:"update",keys:e.keys,changeSpecs:[e.changeSpec]});return delete t.criteria,delete t.changeSpec,t}return e}),e}(o),o=function(e){const t=new Map;for(const n of e)if("update"===n.type){if(1!==n.keys.length||1!==n.changeSpecs.length)continue;const e=""+n.keys[0],r=n.changeSpecs[0];if(Object.values(r).some(e=>"object"==typeof e&&e&&"@@propmod"in e))continue;let s=t.get(e);s?s.push({txid:n.txid,updateSpec:r}):t.set(e,[{txid:n.txid,updateSpec:r}])}return e=e.filter(e=>{if("update"!==e.type)return!0;if(1!==e.keys.length||1!==e.changeSpecs.length)return!0;const n=e.changeSpecs[0];if(Object.values(n).some(e=>"object"==typeof e&&e&&"@@propmod"in e))return!0;const r=new Set(Object.keys(e.changeSpecs[0])),s=""+e.keys[0],i=t.get(s);if(!i)return!0;for(let t=i.length-1;t>=0;--t){const{txid:n,updateSpec:s}=i[t];if(n===e.txid)break;for(const e of Object.keys(s))r.delete(e)}return 0!==r.size}),e}(o);return o.map(e=>({table:t,mut:e}))}))),o=mt(i).sort((e,t)=>e.mut.txid===t.mut.txid?e.mut.opNo-t.mut.opNo:e.mut.ts-t.mut.ts),l=[];let c=null,a=null;for(const{table:e,mut:t}of o)c&&c.table===e&&a===t.txid?c.muts.push(t):(c={table:e,muts:[t]},a=t.txid,l.push(c));return l})}function bt(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{toString:wt}={};const _t={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 kt(...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 _t;let i=n.get(r);if(void 0!==i)return i;const o=(s=e,wt.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:_t),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 St={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 xt={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 Et={bigint:{replace:e=>({$t:"bigint",v:""+e}),revive:e=>BigInt(e.v)}};var Ct={Date:{replace:e=>({$t:"Date",v:isNaN(e.getTime())?"NaN":e.toISOString()}),revive:({v:e})=>new Date("NaN"===e?NaN:Date.parse(e))}},It={Set:{replace:e=>({$t:"Set",v:Array.from(e.entries())}),revive:({v:e})=>new Set(e)}},Ot={Map:{replace:e=>({$t:"Map",v:Array.from(e.entries())}),revive:({v:e})=>new Map(e)}};const Dt="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof global?global:void 0;var At=["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=Dt[t];return s&&new s(r.ArrayBuffer.revive({v:e},n,r))}}}),{});function Tt(e){return function(e){for(var t="",n=0,r=e.length;n<r;n++)t+=Lt[e[n]];return t}(Le(e))}function jt(e){return Ue(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+=Ut[e[n]];return t}(e))}const Ut={"-":"=",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:"+","|":"/"},Lt={};for(const e of Object.keys(Ut))Lt[Ut[e]]=e;var Pt={ArrayBuffer:{replace:e=>({$t:"ArrayBuffer",v:Tt(e)}),revive:({v:e})=>{const t=jt(e);return t.buffer.byteLength===t.byteLength?t.buffer:t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}}};class Mt{constructor(e,t){this.buf=e,this.type=t}}function $t(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 Rt(e){const t=new Uint8Array(e.length);for(let n=0;n<e.length;++n)t[n]=e.charCodeAt(n);return t.buffer}var Nt={Blob:{test:(e,t)=>"Blob"===t||e instanceof Mt,replace:e=>({$t:"Blob",v:Le(e instanceof Mt?e.buf:Rt($t(e))),type:e.type}),revive:({type:e,v:t})=>{const n=Ue(t);return void 0!==typeof Blob?new Blob([n]):new Mt(n.buffer,e)}}};const Bt={...xt,...Et,...Ct,...It,...Ot,...At,...Pt,...Nt};function Ft(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 Wt={undefined:{replace:()=>({$t:"undefined"}),revive:()=>{}}},zt={File:{test:(e,t)=>"File"===t,replace:e=>({$t:"File",v:Le(Rt($t(e))),type:e.type,name:e.name,lastModified:new Date(e.lastModified).toISOString()}),revive:({type:e,v:t,name:n,lastModified:r})=>{const s=Ue(t);return new File([s],n,{type:e,lastModified:new Date(r).getTime()})}}};const Ht="function"==typeof BigInt&&"bigint"==typeof BigInt(0);class Vt{toString(){return this.v}constructor(e){this.v=e}}const Kt=Ht?{}:{bigint:{test:e=>e instanceof Vt,replace:e=>Object.assign({$t:"bigint"},e),revive:({v:e})=>new Vt(e)}},Jt=Object.assign(Object.assign(Object.assign(Object.assign({},Wt),Kt),zt),{PropModification:{test:e=>e instanceof t.PropModification,replace:e=>Object.assign({$t:"PropModification"},e["@@propmod"]),revive:e=>{var{$t:n}=e,r=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}(e,["$t"]);return new t.PropModification(r)}}}),qt=kt(Bt,Jt),Yt=function(...e){const t=kt(Bt,St,...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);return[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])})),r]},async parse(e,n){let r=0;const s=[],i=await Ft(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 Ft(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)}}}(Jt);function Gt(e,n,r){const s=[];for(let i of r){const{table:r,muts:o}=i,l=e.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((e,r)=>{const s=!c.outbound&&("upsert"===e.type||"insert"===e.type);e.keys.forEach((e,o)=>{if(Array.isArray(e)){a===i&&(a=Qt(i,s));const t=a.muts[r],n=JSON.stringify(e);t.keys[o]=n}else if("#"===e[0]){a===i&&(a=Qt(i,s));const l=a.muts[r];if(!n.isLoggedIn)throw new Error("Internal error: Cannot sync private IDs before authenticated");const d=`${e}:${n.userId}`;l.keys[o]=d,s&&t.setByKeyPath(l.values[o],c.keyPath,d)}})}),s.push(a)}return s}function Qt(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 Xt=new WeakMap;function Zt(e){return s(this,void 0,void 0,function*(){var t,n;const r=(null!==(n=null===(t=Xt.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 en(e,t,n,r,i,o,l,c,a){return s(this,void 0,void 0,function*(){const s={Accept:"application/json, application/x-bison, application/x-bison-stream","Content-Type":"application/tson"},d=yield ze(i),u=null==d?void 0:d.accessToken;u&&(s.Authorization=`Bearer ${u}`);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:r,changes:Gt(i.dx.core.schema,a,e),y:t,dxcv:i.cloud.version};i.syncStateChangedEvent.next({phase:"pushing"});const f=qt.stringify(h),p=yield fetch(`${o}/sync`,{method:"post",headers:s,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));Xt.set(e,new Date(Date.now()+1e3*t))}else Xt.delete(e)}}(i,p),!p.ok)throw new Xe(p);if("application/x-bison"===p.headers.get("content-type"))return Yt.fromBinary(yield p.blob());{const e=yield p.text();return qt.parse(e)}})}function tn(e){if(null==e?void 0:e.cancelled)throw new t.AbortError("Operation was cancelled")}let nn=!1;function rn(e,t,n,r){return s(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:r}))),yield e.$baseRevs.where("tableName").noneOf(Object.keys(t).filter(e=>t[e].markedForSync)).delete()})}function sn(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 on(e,n,r){return s(this,void 0,void 0,function*(){const s=yield e.bulkGet(n),i=[],o=[];n.forEach((n,l)=>{const c=s[l];if(c){for(const[s,i]of Object.entries(r[l]))if(s===e.schema.primKey.keyPath){if(0!==t.cmp(i,n))throw new Error("Cannot change primary key")}else t.setByKeyPath(c,s,i);i.push(n),o.push(c)}}),yield null==e.schema.primKey.keyPath?e.bulkPut(o,i):e.bulkPut(o)})}function ln(e,n){return s(this,void 0,void 0,function*(){for(const{table:r,muts:s}of e){if(!n.dx._allTables[r])continue;const e=n.table(r),{primaryKey:i}=e.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 e.bulkAdd(n.values,r):(r.forEach((e,r)=>{t.setByKeyPath(n.values[r],i.keyPath,e)}),yield e.bulkAdd(n.values));break;case"upsert":i.outbound?yield e.bulkPut(n.values,r):(r.forEach((e,r)=>{t.setByKeyPath(n.values[r],i.keyPath,e)}),yield e.bulkPut(n.values));break;case"modify":1===r.length?yield e.update(r[0],n.changeSpec):yield e.where(":id").anyOf(r).modify(n.changeSpec);break;case"update":yield on(e,r,n.changeSpecs);break;case"delete":yield e.bulkDelete(r)}}}})}"undefined"!=typeof self&&"undefined"!=typeof navigator&&(nn=navigator.onLine,self.addEventListener("online",()=>nn=!0),self.addEventListener("offline",()=>nn=!1));const cn="dexie-cloud-syncer";function an(e,t){return e.where("i").between(t,1/0,!0).toArray()}const dn=()=>new Map,un=e=>{const t=dn();return e.forEach((e,n)=>{t.set(n,e)}),t},hn=(e,t,n)=>{let r=e.get(t);return void 0===r&&e.set(t,r=n()),r};class fn{constructor(){this._observers=dn()}on(e,t){return hn(this._observers,e,I).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 A((this._observers.get(e)||dn()).values()).forEach(e=>e(...t))}destroy(){this._observers=dn()}}class pn{constructor(){this._observers=dn()}on(e,t){hn(this._observers,e,I).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 A((this._observers.get(e)||dn()).values()).forEach(e=>e(...t))}destroy(){this._observers=dn()}}const gn=crypto.getRandomValues.bind(crypto),yn=()=>gn(new Uint32Array(1))[0],mn=[1e7]+-1e3+-4e3+-8e3+-1e11,vn=()=>mn.replace(/[018]/g,e=>(e^yn()&15>>e/4).toString(16)),bn=Date.now,wn=e=>new Promise(e);Promise.all.bind(Promise);const _n=e=>void 0===e?null:e;let kn=new class{constructor(){this.map=new Map}setItem(e,t){this.map.set(e,t)}getItem(e){return this.map.get(e)}},Sn=!0;try{"undefined"!=typeof localStorage&&localStorage&&(kn=localStorage,Sn=!1)}catch(Bl){}const xn=kn,En=Object.assign,Cn=Object.keys,In=e=>Cn(e).length,On=e=>Cn(e).length,Dn=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),An=Object.freeze,Tn=e=>{for(const t in e){const n=e[t];"object"!=typeof n&&"function"!=typeof n||Tn(e[t])}return An(e)},jn=Symbol("Equality"),Un=(e,t,n=0)=>{try{for(;n<e.length;n++)e[n](...t)}finally{n<e.length&&Un(e,t,n+1)}},Ln=(e,t)=>{if(e===t)return!0;if(null==e||null==t||e.constructor!==t.constructor)return!1;if(null!=e[jn])return e[jn](t);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)||!Ln(e.get(n),t.get(n)))return!1;break;case Object:if(In(e)!==In(t))return!1;for(const n in e)if(!Dn(e,n)||!Ln(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(!Ln(e[n],t[n]))return!1;break;default:return!1}return!0},Pn="undefined"!=typeof process&&process.release&&/node|io\.js/.test(process.release.name)&&"[object process]"===Object.prototype.toString.call("undefined"!=typeof process?process:0);let Mn;const $n=e=>(()=>{if(void 0===Mn)if(Pn){Mn=dn();const e=process.argv;let t=null;for(let n=0;n<e.length;n++){const r=e[n];"-"===r[0]?(null!==t&&Mn.set(t,""),t=r):null!==t&&(Mn.set(t,r),t=null)}null!==t&&Mn.set(t,"")}else"object"==typeof location?(Mn=dn(),(location.search||"?").slice(1).split("&").forEach(e=>{if(0!==e.length){const[t,n]=e.split("=");Mn.set(`--${L(t,"-")}`,n),Mn.set(`-${L(t,"-")}`,n)}})):Mn=dn();return Mn})().has(e),Rn=e=>_n(Pn?process.env[e.toUpperCase().replaceAll("-","_")]:xn.getItem(e)),Nn=e=>$n("--"+e)||null!==Rn(e);Nn("production");var Bn;Pn&&(Bn=process.env.FORCE_COLOR,["true","1","2"].includes(Bn))||!$n("--no-colors")&&!Nn("no-color")&&(!Pn||process.stdout.isTTY)&&(!Pn||$n("--color")||null!==Rn("COLORTERM")||(Rn("TERM")||"").includes("color"));class Fn{constructor(e,t){this.left=e,this.right=t}}const Wn=(e,t)=>new Fn(e,t);"undefined"!=typeof DOMParser&&new DOMParser;const zn=Symbol,Hn=zn(),Vn=zn(),Kn=zn(),Jn=zn(),qn=zn(),Yn=zn(),Gn=zn(),Qn=zn(),Xn=zn(),Zn=(Wn("font-weight","bold"),Wn("font-weight","normal"),Wn("color","blue"),Wn("color","green"),Wn("color","grey"),Wn("color","red"),Wn("color","purple"),Wn("color","orange"),Wn("color","black"),I()),er=e=>({[Symbol.iterator](){return this},next:e}),tr=(e,t)=>er(()=>{const{done:n,value:r}=e.next();return{done:n,value:n?void 0:t(r)}});class nr{constructor(e,t){this.clock=e,this.len=t}}class rr{constructor(){this.clients=new Map}}const sr=(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])Br(e,s,o.clock,o.len,n)}}),ir=(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=m((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)},or=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=w(r.len,s.clock+s.len-r.clock):(n<t&&(e[n]=s),n++)}e.length=n})},lr=(e,t,n,r)=>{hn(e.clients,t,()=>[]).push(new nr(n,r))},cr=(e,t)=>{z(e.restEncoder,t.clients.size),A(t.clients.entries()).sort((e,t)=>t[0]-e[0]).forEach(([t,n])=>{e.resetDsCurVal(),z(e.restEncoder,t);const r=n.length;z(e.restEncoder,r);for(let t=0;t<r;t++){const r=n[t];e.writeDsClock(r.clock),e.writeDsLen(r.len)}})},ar=(e,t,n)=>{const r=new rr,s=ye(e.restDecoder);for(let i=0;i<s;i++){e.resetDsCurVal();const s=ye(e.restDecoder),i=ye(e.restDecoder),o=n.clients.get(s)||[],l=Ur(n,s);for(let n=0;n<i;n++){const n=e.readDsClock(),i=n+e.readDsLen();if(n<l){l<i&&lr(r,s,l,i-l);let e=Pr(o,n),c=o[e];for(!c.deleted&&c.id.clock<n&&(o.splice(e+1,0,_i(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,_i(t,c,i-c.id.clock)),c.delete(t))}else lr(r,s,n,i-n)}}if(r.clients.size>0){const e=new mr;return z(e.restEncoder,0),cr(e,r),e.toUint8Array()}return null},dr=yn;class ur extends fn{constructor({guid:e=vn(),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=dr(),this.guid=e,this.collectionid=t,this.share=new Map,this.store=new Tr,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=wn(e=>{this.on("load",()=>{this.isLoaded=!0,e(this)})});const l=()=>wn(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||Kr(e.parent.doc,e=>{e.subdocsLoaded.add(this)},null,!0),this.shouldLoad=!0}getSubdocs(){return this.subdocs}getSubdocGuids(){return new Set(A(this.subdocs).map(e=>e.guid))}transact(e,t=null){return Kr(this,e,t)}get(e,t=us){const n=hn(this.share,e,()=>{const e=new t;return e._integrate(this,null),e}),r=n.constructor;if(t!==us&&r!==t){if(r===us){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,Ds)}getText(e=""){return this.get(e,Js)}getMap(e=""){return this.get(e,Ts)}getXmlElement(e=""){return this.get(e,Gs)}getXmlFragment(e=""){return this.get(e,Ys)}toJSON(){const e={};return this.share.forEach((t,n)=>{e[n]=t.toJSON()}),e}destroy(){this.isDestroyed=!0,A(this.subdocs).forEach(e=>e.destroy());const e=this._item;if(null!==e){this._item=null;const t=e.content;t.doc=new ur({guid:this.guid,...t.opts,shouldLoad:!1}),t.doc._item=e,Kr(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 hr{constructor(e){this.dsCurrVal=0,this.restDecoder=e}resetDsCurVal(){this.dsCurrVal=0}readDsClock(){return this.dsCurrVal+=ye(this.restDecoder),this.dsCurrVal}readDsLen(){const e=ye(this.restDecoder)+1;return this.dsCurrVal+=e,e}}class fr extends hr{constructor(e){super(e),this.keys=[],ye(e),this.keyClockDecoder=new Ee(pe(e)),this.clientDecoder=new xe(pe(e)),this.leftClockDecoder=new Ee(pe(e)),this.rightClockDecoder=new Ee(pe(e)),this.infoDecoder=new Se(pe(e),ge),this.stringDecoder=new Ce(pe(e)),this.parentInfoDecoder=new Se(pe(e),ge),this.typeRefDecoder=new xe(pe(e)),this.lenDecoder=new xe(pe(e))}readLeftID(){return new Cr(this.clientDecoder.read(),this.leftClockDecoder.read())}readRightID(){return new Cr(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 ke(this.restDecoder)}readBuf(){return pe(this.restDecoder)}readJSON(){return ke(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 pr{constructor(){this.restEncoder=N()}toUint8Array(){return B(this.restEncoder)}resetDsCurVal(){}writeDsClock(e){z(this.restEncoder,e)}writeDsLen(e){z(this.restEncoder,e)}}class gr extends pr{writeLeftID(e){z(this.restEncoder,e.client),z(this.restEncoder,e.clock)}writeRightID(e){z(this.restEncoder,e.client),z(this.restEncoder,e.clock)}writeClient(e){z(this.restEncoder,e)}writeInfo(e){W(this.restEncoder,e)}writeString(e){J(this.restEncoder,e)}writeParentInfo(e){z(this.restEncoder,e?1:0)}writeTypeRef(e){z(this.restEncoder,e)}writeLen(e){z(this.restEncoder,e)}writeAny(e){Z(this.restEncoder,e)}writeBuf(e){Y(this.restEncoder,e)}writeJSON(e){J(this.restEncoder,JSON.stringify(e))}writeKey(e){J(this.restEncoder,e)}}class yr{constructor(){this.restEncoder=N(),this.dsCurrVal=0}toUint8Array(){return B(this.restEncoder)}resetDsCurVal(){this.dsCurrVal=0}writeDsClock(e){const t=e-this.dsCurrVal;this.dsCurrVal=e,z(this.restEncoder,t)}writeDsLen(e){0===e&&ce(),z(this.restEncoder,e-1),this.dsCurrVal+=e}}class mr extends yr{constructor(){super(),this.keyMap=new Map,this.keyClock=0,this.keyClockEncoder=new se,this.clientEncoder=new ne,this.leftClockEncoder=new se,this.rightClockEncoder=new se,this.infoEncoder=new ee(W),this.stringEncoder=new ie,this.parentInfoEncoder=new ee(W),this.typeRefEncoder=new ne,this.lenEncoder=new ne}toUint8Array(){const e=N();return z(e,0),Y(e,this.keyClockEncoder.toUint8Array()),Y(e,this.clientEncoder.toUint8Array()),Y(e,this.leftClockEncoder.toUint8Array()),Y(e,this.rightClockEncoder.toUint8Array()),Y(e,B(this.infoEncoder)),Y(e,this.stringEncoder.toUint8Array()),Y(e,B(this.parentInfoEncoder)),Y(e,this.typeRefEncoder.toUint8Array()),Y(e,this.lenEncoder.toUint8Array()),q(e,B(this.restEncoder)),B(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){Z(this.restEncoder,e)}writeBuf(e){Y(this.restEncoder,e)}writeJSON(e){Z(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 vr=(e,t,n)=>{const r=new Map;n.forEach((e,n)=>{Ur(t,n)>e&&r.set(n,e)}),jr(t).forEach((e,t)=>{n.has(t)||r.set(t,0)}),z(e.restEncoder,r.size),A(r.entries()).sort((e,t)=>t[0]-e[0]).forEach(([n,r])=>{((e,t,n,r)=>{r=w(r,t[0].id.clock);const s=Pr(t,r);z(e.restEncoder,t.length-s),e.writeClient(n),z(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)})},br=(e,t,n,r=new fr(e))=>Kr(t,e=>{e.local=!1;let t=!1;const n=e.doc,s=n.store,i=((e,t)=>{const n=dn(),r=ye(e.restDecoder);for(let s=0;s<r;s++){const r=ye(e.restDecoder),s=new Array(r),i=e.readClient();let o=ye(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 ti(Or(i,o),t),o+=t;break}case 10:{const t=ye(e.restDecoder);s[n]=new Ei(Or(i,o),t),o+=t;break}default:{const l=!(192&r),c=new ki(Or(i,o),null,(r&S)===S?e.readLeftID():null,null,(r&k)===k?e.readRightID():null,l?e.readParentInfo()?t.get(e.readString()):e.readLeftID():null,!l||32&~r?null:e.readString(),Si(e,r));s[n]=c,o+=c.length}}}}return n})(r,n),o=((e,t,n)=>{const r=[];let s=A(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 Tr,c=new Map,a=(e,t)=>{const n=c.get(e);(null==n||n>t)&&c.set(e,t)};let d=o.refs[o.i++];const u=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(d.constructor!==Ei){const s=hn(u,d.id.client,()=>Ur(t,d.id.client))-d.id.clock;if(s<0)r.push(d),a(d.id.client,d.id.clock-1),h();else{const i=d.getMissing(e,t);if(null!==i){r.push(d);const e=n.get(i)||{refs:[],i:0};if(e.refs.length!==e.i){d=e.refs[e.i++];continue}a(i,Ur(t,i)),h()}else(0===s||s<d.length)&&(d.integrate(e,s),u.set(d.id.client,d.id.clock+d.length))}}if(r.length>0)d=r.pop();else if(null!==o&&o.i<o.refs.length)d=o.refs[o.i++];else{if(o=i(),null===o)break;d=o.refs[o.i++]}}if(l.clients.size>0){const e=new mr;return vr(e,l,new Map),z(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<Ur(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=Qr([l.update,o.update])}}else s.pendingStructs=o;const c=ar(r,e,s);if(s.pendingDs){const t=new fr(he(s.pendingDs));ye(t.restDecoder);const n=ar(t,e,s);s.pendingDs=c&&n?Qr([c,n]):c||n}else s.pendingDs=c;if(t){const t=s.pendingStructs.update;s.pendingStructs=null,wr(e.doc,t)}},n,!1),wr=(e,t,n,r=fr)=>{const s=he(t);br(s,e,n,new r(s))};class _r{constructor(){this.l=[]}}const kr=()=>new _r,Sr=(e,t)=>e.l.push(t),xr=(e,t)=>{const n=e.l;n.length;e.l=n.filter(e=>t!==e),e.l.length},Er=(e,t,n)=>Un(e.l,[t,n]);class Cr{constructor(e,t){this.client=e,this.clock=t}}const Ir=(e,t)=>e===t||null!==e&&null!==t&&e.client===t.client&&e.clock===t.clock,Or=(e,t)=>new Cr(e,t),Dr=(e,t)=>void 0===t?!e.deleted:t.sv.has(e.id.client)&&(t.sv.get(e.id.client)||0)>e.id.clock&&!ir(t.ds,e.id),Ar=(e,t)=>{const n=hn(e.meta,Ar,I),r=e.doc.store;n.has(t)||(t.sv.forEach((t,n)=>{t<Ur(r,n)&&Rr(e,Or(n,t))}),sr(e,t.ds,e=>{}),n.add(t))};class Tr{constructor(){this.clients=new Map,this.pendingStructs=null,this.pendingDs=null}}const jr=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},Ur=(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},Lr=(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 ce()}n.push(t)},Pr=(e,t)=>{let n=0,r=e.length-1,s=e[r],i=s.id.clock;if(i===t)return r;let o=m(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=m((n+r)/2)}throw ce()},Mr=(e,t)=>{const n=e.clients.get(t.client);return n[Pr(n,t.clock)]},$r=(e,t,n)=>{const r=Pr(t,n),s=t[r];return s.id.clock<n&&s instanceof ki?(t.splice(r+1,0,_i(e,s,n-s.id.clock)),r+1):r},Rr=(e,t)=>{const n=e.doc.store.clients.get(t.client);return n[$r(e,n,t.clock)]},Nr=(e,t,n)=>{const r=t.clients.get(n.client),s=Pr(r,n.clock),i=r[s];return n.clock!==i.id.clock+i.length-1&&i.constructor!==ti&&r.splice(s+1,0,_i(e,i,n.clock-i.id.clock+1)),i},Br=(e,t,n,r,s)=>{if(0===r)return;const i=n+r;let o,l=$r(e,t,n);do{o=t[l++],i<o.id.clock+o.length&&$r(e,t,i),s(o)}while(l<t.length&&t[l].id.clock<i)};class Fr{constructor(e,t,n){this.doc=e,this.deleteSet=new rr,this.beforeState=jr(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 Wr=(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))&&(or(t.deleteSet),((e,t)=>{vr(e,t.doc.store,t.beforeState)})(e,t),cr(e,t.deleteSet),!0),zr=(e,t,n)=>{const r=t._item;(null===r||r.id.clock<(e.beforeState.get(r.id.client)||0)&&!r.deleted)&&hn(e.changed,t,I).add(n)},Hr=(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 ki&&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},Vr=(e,t)=>{if(t<e.length){const n=e[t],r=n.doc,s=r.store,i=n.deleteSet,o=n._mergeStructs;try{or(i),n.afterState=jr(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),Er(t._dEH,e,n))})}),e.push(()=>r.emit("afterTransaction",[n,r])),Un(e,[]),n._needFormattingCleanup&&Hs(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=Pr(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 ki&&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=b(r.length-1,1+Pr(r,n.clock+n.len-1)),t=r[e];e>0&&t.id.clock>=n.clock;t=r[e])e-=1+Hr(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=w(Pr(e,r),1);for(let t=e.length-1;t>=n;)t-=1+Hr(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=Pr(r,n);i+1<r.length&&Hr(r,i+1)>1||i>0&&Hr(r,i)}if(n.local||n.afterState.get(r.clientID)===n.beforeState.get(r.clientID)||(((...e)=>{Zn.forEach(t=>t.print(e))})(Qn,Hn,"[yjs] ",Vn,Yn,"Changed the client-id because another client seems to be using it."),r.clientID=dr()),r.emit("afterTransactionCleanup",[n,r]),r._observers.has("update")){const e=new gr;Wr(e,n)&&r.emit("update",[e.toUint8Array(),n.origin,r,n])}if(r._observers.has("updateV2")){const e=new mr;Wr(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])):Vr(e,t+1)}}},Kr=(e,t,n=null,r=!0)=>{const s=e._transactionCleanups;let i=!1,o=null;null===e._transaction&&(i=!0,e._transaction=new Fr(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&&Vr(s,0)}}return o};class Jr{constructor(e,t){this.gen=function*(e){const t=ye(e.restDecoder);for(let n=0;n<t;n++){const t=ye(e.restDecoder),n=e.readClient();let r=ye(e.restDecoder);for(let s=0;s<t;s++){const t=e.readInfo();if(10===t){const t=ye(e.restDecoder);yield new Ei(Or(n,r),t),r+=t}else if(31&t){const s=!(192&t),i=new ki(Or(n,r),null,(t&S)===S?e.readLeftID():null,null,(t&k)===k?e.readRightID():null,s?e.readParentInfo()?e.readString():e.readLeftID():null,!s||32&~t?null:e.readString(),Si(e,t));yield i,r+=i.length}else{const t=e.readLen();yield new ti(Or(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===Ei);return this.curr}}class qr{constructor(e){this.currClient=0,this.startClock=0,this.written=0,this.encoder=e,this.clientStructs=[]}}const Yr=(e,t=yr,n=fr)=>{const r=new t,s=new Jr(new n(he(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++,z(r.restEncoder,t),z(r.restEncoder,o)),t=i.id.client,o=0,n=0!==i.id.clock),i.constructor===Ei&&(n=!0),n||(o=i.id.clock+i.length);0!==o&&(e++,z(r.restEncoder,t),z(r.restEncoder,o));const l=N();return z(l,e),((e,t)=>{q(e,B(t))})(l,r.restEncoder),r.restEncoder=l,r.toUint8Array()}return z(r.restEncoder,0),r.toUint8Array()},Gr=(e,t)=>{if(e.constructor===ti){const{client:n,clock:r}=e.id;return new ti(Or(n,r+t),e.length-t)}if(e.constructor===Ei){const{client:n,clock:r}=e.id;return new Ei(Or(n,r+t),e.length-t)}{const n=e,{client:r,clock:s}=n.id;return new ki(Or(r,s+t),null,Or(r,s+t-1),null,n.rightOrigin,n.parent,n.parentSub,n.content.splice(t))}},Qr=(e,t=fr,n=mr)=>{if(1===e.length)return e[0];const r=e.map(e=>new t(he(e)));let s=r.map(e=>new Jr(e,!0)),i=null;const o=new n,l=new qr(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===Ei?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)Zr(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===Ei)i.struct.length=n.id.clock+n.length-i.struct.id.clock;else{Zr(l,i.struct,i.offset);const e=n.id.clock-i.struct.id.clock-i.struct.length;i={struct:new Ei(Or(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===Ei?i.struct.length-=t:n=Gr(n,t)),i.struct.mergeWith(n)||(Zr(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!==Ei;n=e.next())Zr(l,i.struct,i.offset),i={struct:n,offset:0}}null!==i&&(Zr(l,i.struct,i.offset),i=null),es(l);const c=r.map(e=>(e=>{const t=new rr,n=ye(e.restDecoder);for(let r=0;r<n;r++){e.resetDsCurVal();const n=ye(e.restDecoder),r=ye(e.restDecoder);if(r>0){const s=hn(t.clients,n,()=>[]);for(let t=0;t<r;t++)s.push(new nr(e.readDsClock(),e.readDsLen()))}}return t})(e)),a=(e=>{const t=new rr;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++)D(i,e[t].clients.get(s)||[]);t.clients.set(s,i)}});return or(t),t})(c);return cr(o,a),o.toUint8Array()},Xr=e=>{e.written>0&&(e.clientStructs.push({written:e.written,restEncoder:B(e.encoder.restEncoder)}),e.encoder.restEncoder=N(),e.written=0)},Zr=(e,t,n)=>{e.written>0&&e.currClient!==t.id.client&&Xr(e),0===e.written&&(e.currClient=t.id.client,e.encoder.writeClient(t.id.client),z(e.encoder.restEncoder,t.id.clock+n)),t.write(e.encoder,n),e.written++},es=e=>{Xr(e);const t=e.encoder.restEncoder;z(t,e.clientStructs.length);for(let n=0;n<e.clientStructs.length;n++){const r=e.clientStructs[n];z(t,r.written),q(t,r.restEncoder)}},ts="You must not compute changes after the event-handler fired.";class ns{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=rs(this.currentTarget,this.target))}deletes(e){return ir(this.transaction.deleteSet,e.id)}get keys(){if(null===this._keys){if(0===this.transaction.doc._transactionCleanups.length)throw oe(ts);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=O(e.content.getContent())}else null!==e&&this.deletes(e)?(s="update",i=O(e.content.getContent())):(s="add",i=void 0)}else{if(!this.deletes(r))return;s="delete",i=O(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 oe(ts);const t=this.target,n=I(),r=I(),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 rs=(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},ss=()=>{((...e)=>{e.unshift(Qn),Zn.forEach(t=>t.print(e))})("Invalid access: Add Yjs type to a document before reading data.")};let is=0;class os{constructor(e,t){e.marker=!0,this.p=e,this.index=t,this.timestamp=is++}}const ls=(e,t,n)=>{e.p.marker=!1,e.p=t,t.marker=!0,e.index=n,e.timestamp=is++},cs=(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)=>v(t-e.index)<v(t-n.index)?e:n);let r=e._start,s=0;for(null!==n&&(r=n.p,s=n.index,(e=>{e.timestamp=is++})(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&&v(n.index-s)<r.parent.length/80?(ls(n,r,s),n):((e,t,n)=>{if(e.length>=80){const r=e.reduce((e,t)=>e.timestamp<t.timestamp?e:t);return ls(r,t,n),r}{const r=new os(t,n);return e.push(r),r}})(e._searchMarker,r,s)},as=(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=w(t,s.index+n))}},ds=(e,t,n)=>{const r=e,s=t.changedParentTypes;for(;hn(s,e,()=>[]).push(n),null!==e._item;)e=e._item.parent;Er(r._eH,n,t)};class us{constructor(){this._item=null,this._map=new Map,this._start=null,this.doc=null,this._length=0,this._eH=kr(),this._dEH=kr(),this._searchMarker=null}get parent(){return this._item?this._item.parent:null}_integrate(e,t){this.doc=e,this._item=t}_copy(){throw le()}clone(){throw le()}_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){Sr(this._eH,e)}observeDeep(e){Sr(this._dEH,e)}unobserve(e){xr(this._eH,e)}unobserveDeep(e){xr(this._dEH,e)}toJSON(){}}const hs=(e,t,n)=>{e.doc??ss(),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},fs=e=>{e.doc??ss();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},ps=(e,t)=>{let n=0,r=e._start;for(e.doc??ss();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}},gs=(e,t)=>{const n=[];return ps(e,(r,s)=>{n.push(t(r,s,e))}),n},ys=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}}}},ms=(e,t)=>{e.doc??ss();const n=cs(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}},vs=(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 d=()=>{a.length>0&&(s=new ki(Or(o,Ur(l,o)),s,s&&s.lastId,c,c&&c.id,t,null,new di(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(d(),n.constructor){case Uint8Array:case ArrayBuffer:s=new ki(Or(o,Ur(l,o)),s,s&&s.lastId,c,c&&c.id,t,null,new ni(new Uint8Array(n))),s.integrate(e,0);break;case ur:s=new ki(Or(o,Ur(l,o)),s,s&&s.lastId,c,c&&c.id,t,null,new ii(n)),s.integrate(e,0);break;default:if(!(n instanceof us))throw new Error("Unexpected content type in insert operation");s=new ki(Or(o,Ur(l,o)),s,s&&s.lastId,c,c&&c.id,t,null,new wi(n)),s.integrate(e,0)}}}),d()},bs=()=>oe("Length exceeded!"),ws=(e,t,n,r)=>{if(n>t._length)throw bs();if(0===n)return t._searchMarker&&as(t._searchMarker,n,r.length),vs(e,t,null,r);const s=n,i=cs(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&&Rr(e,Or(o.id.client,o.id.clock+n));break}n-=o.length}return t._searchMarker&&as(t._searchMarker,s,r.length),vs(e,t,o,r)},_s=(e,t,n,r)=>{if(0===r)return;const s=n,i=r,o=cs(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&&Rr(e,Or(l.id.client,l.id.clock+n)),n-=l.length);for(;r>0&&null!==l;)l.deleted||(r<l.length&&Rr(e,Or(l.id.client,l.id.clock+r)),l.delete(e),r-=l.length),l=l.right;if(r>0)throw bs();t._searchMarker&&as(t._searchMarker,s,-i+r)},ks=(e,t,n)=>{const r=t._map.get(n);void 0!==r&&r.delete(e)},Ss=(e,t,n,r)=>{const s=t._map.get(n)||null,i=e.doc,o=i.clientID;let l;if(null==r)l=new di([r]);else switch(r.constructor){case Number:case Object:case Boolean:case Array:case String:case Date:case BigInt:l=new di([r]);break;case Uint8Array:l=new ni(r);break;case ur:l=new ii(r);break;default:if(!(r instanceof us))throw new Error("Unexpected content type");l=new wi(r)}new ki(Or(o,Ur(i.store,o)),s,s&&s.lastId,null,null,t,n,l).integrate(e,0)},xs=(e,t)=>{e.doc??ss();const n=e._map.get(t);return void 0===n||n.deleted?void 0:n.content.getContent()[n.length-1]},Es=e=>{const t={};return e.doc??ss(),e._map.forEach((e,n)=>{e.deleted||(t[n]=e.content.getContent()[e.length-1])}),t},Cs=(e,t)=>{e.doc??ss();const n=e._map.get(t);return void 0!==n&&!n.deleted},Is=e=>{return e.doc??ss(),t=e._map.entries(),n=e=>!e[1].deleted,er(()=>{let e;do{e=t.next()}while(!e.done&&!n(e.value));return e});var t,n};class Os extends ns{}class Ds extends us{constructor(){super(),this._prelimContent=[],this._searchMarker=[]}static from(e){const t=new Ds;return t.push(e),t}_integrate(e,t){super._integrate(e,t),this.insert(0,this._prelimContent),this._prelimContent=null}_copy(){return new Ds}clone(){const e=new Ds;return e.insert(0,this.toArray().map(e=>e instanceof us?e.clone():e)),e}get length(){return this.doc??ss(),this._length}_callObserver(e,t){super._callObserver(e,t),ds(this,e,new Os(this,e))}insert(e,t){null!==this.doc?Kr(this.doc,n=>{ws(n,this,e,t)}):this._prelimContent.splice(e,0,...t)}push(e){null!==this.doc?Kr(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;vs(e,t,r,n)})(t,this,e)}):this._prelimContent.push(...e)}unshift(e){this.insert(0,e)}delete(e,t=1){null!==this.doc?Kr(this.doc,n=>{_s(n,this,e,t)}):this._prelimContent.splice(e,t)}get(e){return ms(this,e)}toArray(){return fs(this)}slice(e=0,t=this.length){return hs(this,e,t)}toJSON(){return this.map(e=>e instanceof us?e.toJSON():e)}map(e){return gs(this,e)}forEach(e){ps(this,e)}[Symbol.iterator](){return ys(this)}_write(e){e.writeTypeRef(fi)}}class As extends ns{constructor(e,t,n){super(e,t),this.keysChanged=n}}class Ts extends us{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 Ts}clone(){const e=new Ts;return this.forEach((t,n)=>{e.set(n,t instanceof us?t.clone():t)}),e}_callObserver(e,t){ds(this,e,new As(this,e,t))}toJSON(){this.doc??ss();const e={};return this._map.forEach((t,n)=>{if(!t.deleted){const r=t.content.getContent()[t.length-1];e[n]=r instanceof us?r.toJSON():r}}),e}get size(){return[...Is(this)].length}keys(){return tr(Is(this),e=>e[0])}values(){return tr(Is(this),e=>e[1].content.getContent()[e[1].length-1])}entries(){return tr(Is(this),e=>[e[0],e[1].content.getContent()[e[1].length-1]])}forEach(e){this.doc??ss(),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?Kr(this.doc,t=>{ks(t,this,e)}):this._prelimContent.delete(e)}set(e,t){return null!==this.doc?Kr(this.doc,n=>{Ss(n,this,e,t)}):this._prelimContent.set(e,t),t}get(e){return xs(this,e)}has(e){return Cs(this,e)}clear(){null!==this.doc?Kr(this.doc,e=>{this.forEach(function(t,n,r){ks(e,r,n)})}):this._prelimContent.clear()}_write(e){e.writeTypeRef(pi)}}const js=(e,t)=>e===t||"object"==typeof e&&"object"==typeof t&&e&&t&&((e,t)=>e===t||On(e)===On(t)&&((e,t)=>{for(const n in e)if(!t(e[n],n))return!1;return!0})(e,(e,n)=>(void 0!==e||Dn(t,n))&&t[n]===e))(e,t);class Us{constructor(e,t,n,r){this.left=e,this.right=t,this.index=n,this.currentAttributes=r}forward(){if(null===this.right&&ce(),this.right.content.constructor===li)this.right.deleted||$s(this.currentAttributes,this.right.content);else this.right.deleted||(this.index+=this.right.length);this.left=this.right,this.right=this.right.right}}const Ls=(e,t,n)=>{for(;null!==t.right&&n>0;){if(t.right.content.constructor===li)t.right.deleted||$s(t.currentAttributes,t.right.content);else t.right.deleted||(n<t.right.length&&Rr(e,Or(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},Ps=(e,t,n,r)=>{const s=new Map,i=r?cs(t,n):null;if(i){const t=new Us(i.p.left,i.p,i.index,s);return Ls(e,t,n-i.index)}{const r=new Us(null,t._start,0,s);return Ls(e,r,n)}},Ms=(e,t,n,r)=>{for(;null!==n.right&&(!0===n.right.deleted||n.right.content.constructor===li&&js(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 ki(Or(i,Ur(s.store,i)),l,l&&l.lastId,c,c&&c.id,t,null,new li(o,r));a.integrate(e,0),n.right=a,n.forward()})},$s=(e,t)=>{const{key:n,value:r}=t;null===r?e.delete(n):e.set(n,r)},Rs=(e,t)=>{for(;null!==e.right&&(e.right.deleted||e.right.content.constructor===li&&js(t[e.right.content.key]??null,e.right.content.value));)e.forward()},Ns=(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(!js(a,c)){o.set(l,a);const{left:r,right:d}=n;n.right=new ki(Or(i,Ur(s.store,i)),r,r&&r.lastId,d,d&&d.id,t,null,new li(l,c)),n.right.integrate(e,0),n.forward()}}return o},Bs=(e,t,n,r,s)=>{n.currentAttributes.forEach((e,t)=>{void 0===s[t]&&(s[t]=null)});const i=e.doc,o=i.clientID;Rs(n,s);const l=Ns(e,t,n,s),c=r.constructor===String?new ui(r):r instanceof us?new wi(r):new oi(r);let{left:a,right:d,index:u}=n;t._searchMarker&&as(t._searchMarker,n.index,c.getLength()),d=new ki(Or(o,Ur(i.store,o)),a,a&&a.lastId,d,d&&d.id,t,null,c),d.integrate(e,0),n.right=d,n.index=u,n.forward(),Ms(e,t,n,l)},Fs=(e,t,n,r,s)=>{const i=e.doc,o=i.clientID;Rs(n,s);const l=Ns(e,t,n,s);e:for(;null!==n.right&&(r>0||l.size>0&&(n.right.deleted||n.right.content.constructor===li));){if(!n.right.deleted)switch(n.right.content.constructor){case li:{const{key:t,value:i}=n.right.content,o=s[t];if(void 0!==o){if(js(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&&Rr(e,Or(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 ki(Or(o,Ur(i.store,o)),n.left,n.left&&n.left.lastId,n.right,n.right&&n.right.id,t,null,new ui(s)),n.right.integrate(e,0),n.forward()}Ms(e,t,n,l)},Ws=(e,t,n,r,s)=>{let i=t;const o=dn();for(;i&&(!i.countable||i.deleted);){if(!i.deleted&&i.content.constructor===li){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 li:{const{key:i,value:a}=n,d=r.get(i)??null;o.get(i)===n&&d!==a||(t.delete(e),l++,c||(s.get(i)??null)!==a||d===a||(null===d?s.delete(i):s.set(i,d))),c||t.deleted||$s(s,n);break}}}t=t.right}return l},zs=e=>{let t=0;return Kr(e.doc,n=>{let r=e._start,s=e._start,i=dn();const o=un(i);for(;s;){if(!1===s.deleted)if(s.content.constructor===li)$s(o,s.content);else t+=Ws(n,r,s,i,o),i=un(o),r=s;s=s.right}}),t},Hs=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&&Br(e,n.store.clients.get(r),i,s,e=>{e.deleted||e.content.constructor!==li||e.constructor===ti||t.add(e.parent)})}Kr(n,n=>{sr(e,e.deleteSet,e=>{if(e instanceof ti||!e.parent._hasFormatting||t.has(e.parent))return;const r=e.parent;e.content.constructor===li?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===li){const r=t.content.key;n.has(r)?t.delete(e):n.add(r)}t=t.left}})(n,e)});for(const e of t)zs(e)})},Vs=(e,t,n)=>{const r=n,s=un(t.currentAttributes),i=t.right;for(;n>0&&null!==t.right;){if(!1===t.right.deleted)switch(t.right.content.constructor){case wi:case oi:case ui:n<t.right.length&&Rr(e,Or(t.right.id.client,t.right.id.clock+n)),n-=t.right.length,t.right.delete(e)}t.forward()}i&&Ws(e,i,t.right,s,t.currentAttributes);const o=(t.left||t.right).parent;return o._searchMarker&&as(o._searchMarker,t.index,-r+n),t};class Ks extends ns{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=[];Kr(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 d=()=>{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=En({},o))),c=0}e&&t.push(e),i=null}};for(;null!==s;){switch(s.content.constructor){case wi:case oi:this.adds(s)?this.deletes(s)||(d(),i="insert",l=s.content.getContent()[0],d()):this.deletes(s)?("delete"!==i&&(d(),i="delete"),a+=1):s.deleted||("retain"!==i&&(d(),i="retain"),c+=1);break;case ui:this.adds(s)?this.deletes(s)||("insert"!==i&&(d(),i="insert"),l+=s.content.str):this.deletes(s)?("delete"!==i&&(d(),i="delete"),a+=s.length):s.deleted||("retain"!==i&&(d(),i="retain"),c+=s.length);break;case li:{const{key:t,value:l}=s.content;if(this.adds(s)){if(!this.deletes(s)){const c=n.get(t)??null;js(c,l)?null!==l&&s.delete(e):("retain"===i&&d(),js(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;js(e,l)||("retain"===i&&d(),o[t]=e)}else if(!s.deleted){r.set(t,l);const n=o[t];void 0!==n&&(js(n,l)?null!==n&&s.delete(e):("retain"===i&&d(),null===l?delete o[t]:o[t]=l))}s.deleted||("insert"===i&&d(),$s(n,s.content));break}}s=s.right}for(d();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 Js extends us{constructor(e){super(),this._pending=void 0!==e?[()=>this.insert(0,e)]:[],this._searchMarker=[],this._hasFormatting=!1}get length(){return this.doc??ss(),this._length}_integrate(e,t){super._integrate(e,t);try{this._pending.forEach(e=>e())}catch(e){}this._pending=null}_copy(){return new Js}clone(){const e=new Js;return e.applyDelta(this.toDelta()),e}_callObserver(e,t){super._callObserver(e,t);const n=new Ks(this,e,t);ds(this,e,n),!e.local&&this._hasFormatting&&(e._needFormattingCleanup=!0)}toString(){this.doc??ss();let e="",t=this._start;for(;null!==t;)!t.deleted&&t.countable&&t.content.constructor===ui&&(e+=t.content.str),t=t.right;return e}toJSON(){return this.toString()}applyDelta(e,{sanitize:t=!0}={}){null!==this.doc?Kr(this.doc,n=>{const r=new Us(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)&&Bs(n,this,r,o,i.attributes||{})}else void 0!==i.retain?Fs(n,this,r,i.retain,i.attributes||{}):void 0!==i.delete&&Vs(n,r,i.delete)}}):this._pending.push(()=>this.applyDelta(e))}toDelta(e,t,n){this.doc??ss();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(Dr(l,e)||void 0!==t&&Dr(l,t))switch(l.content.constructor){case ui:{const r=s.get("ychange");void 0===e||Dr(l,e)?void 0===t||Dr(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 wi:case oi:{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 li:Dr(l,e)&&(c(),$s(s,l.content))}l=l.right}c()};return e||t?Kr(i,n=>{e&&Ar(n,e),t&&Ar(n,t),a()},"cleanup"):a(),r}insert(e,t,n){if(t.length<=0)return;const r=this.doc;null!==r?Kr(r,r=>{const s=Ps(r,this,e,!n);n||(n={},s.currentAttributes.forEach((e,t)=>{n[t]=e})),Bs(r,this,s,t,n)}):this._pending.push(()=>this.insert(e,t,n))}insertEmbed(e,t,n){const r=this.doc;null!==r?Kr(r,r=>{const s=Ps(r,this,e,!n);Bs(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?Kr(n,n=>{Vs(n,Ps(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?Kr(r,r=>{const s=Ps(r,this,e,!1);null!==s.right&&Fs(r,this,s,t,n)}):this._pending.push(()=>this.format(e,t,n))}removeAttribute(e){null!==this.doc?Kr(this.doc,t=>{ks(t,this,e)}):this._pending.push(()=>this.removeAttribute(e))}setAttribute(e,t){null!==this.doc?Kr(this.doc,n=>{Ss(n,this,e,t)}):this._pending.push(()=>this.setAttribute(e,t))}getAttribute(e){return xs(this,e)}getAttributes(){return Es(this)}_write(e){e.writeTypeRef(gi)}}class qs{constructor(e,t=()=>!0){this._filter=t,this._root=e,this._currentNode=e._start,this._firstCall=!0,e.doc??ss()}[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!==Gs&&t.constructor!==Ys||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 Ys extends us{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 Ys}clone(){const e=new Ys;return e.insert(0,this.toArray().map(e=>e instanceof us?e.clone():e)),e}get length(){return this.doc??ss(),null===this._prelimContent?this._length:this._prelimContent.length}createTreeWalker(e){return new qs(this,e)}querySelector(e){e=e.toUpperCase();const t=new qs(this,t=>t.nodeName&&t.nodeName.toUpperCase()===e).next();return t.done?null:t.value}querySelectorAll(e){return e=e.toUpperCase(),A(new qs(this,t=>t.nodeName&&t.nodeName.toUpperCase()===e))}_callObserver(e,t){ds(this,e,new Qs(this,t,e))}toString(){return gs(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),ps(this,s=>{r.insertBefore(s.toDOM(e,t,n),null)}),r}insert(e,t){null!==this.doc?Kr(this.doc,n=>{ws(n,this,e,t)}):this._prelimContent.splice(e,0,...t)}insertAfter(e,t){if(null!==this.doc)Kr(this.doc,n=>{const r=e&&e instanceof us?e._item:e;vs(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 oe("Reference item not found");n.splice(r,0,...t)}}delete(e,t=1){null!==this.doc?Kr(this.doc,n=>{_s(n,this,e,t)}):this._prelimContent.splice(e,t)}toArray(){return fs(this)}push(e){this.insert(this.length,e)}unshift(e){this.insert(0,e)}get(e){return ms(this,e)}slice(e=0,t=this.length){return hs(this,e,t)}forEach(e){ps(this,e)}_write(e){e.writeTypeRef(mi)}}class Gs extends Ys{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 Gs(this.nodeName)}clone(){const e=new Gs(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 us?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?Kr(this.doc,t=>{ks(t,this,e)}):this._prelimAttrs.delete(e)}setAttribute(e,t){null!==this.doc?Kr(this.doc,n=>{Ss(n,this,e,t)}):this._prelimAttrs.set(e,t)}getAttribute(e){return xs(this,e)}hasAttribute(e){return Cs(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&&Dr(s,t)&&(n[r]=s.content.getContent()[s.length-1])}),n})(this,e):Es(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 ps(this,s=>{r.appendChild(s.toDOM(e,t,n))}),void 0!==n&&n._createAssociation(r,this),r}_write(e){e.writeTypeRef(yi),e.writeKey(this.nodeName)}}class Qs extends ns{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 Xs extends Ts{constructor(e){super(),this.hookName=e}_copy(){return new Xs(this.hookName)}clone(){const e=new Xs(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(vi),e.writeKey(this.hookName)}}class Zs extends Js{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 Zs}clone(){const e=new Zs;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(bi)}}class ei{constructor(e,t){this.id=e,this.length=t}get deleted(){throw le()}mergeWith(e){return!1}write(e,t,n){throw le()}integrate(e,t){throw le()}}class ti extends ei{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),Lr(e.doc.store,this)}write(e,t){e.writeInfo(0),e.writeLen(this.length-t)}getMissing(e,t){return null}}class ni{constructor(e){this.content=e}getLength(){return 1}getContent(){return[this.content]}isCountable(){return!0}copy(){return new ni(this.content)}splice(e){throw le()}mergeWith(e){return!1}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeBuf(this.content)}getRef(){return 3}}class ri{constructor(e){this.len=e}getLength(){return this.len}getContent(){return[]}isCountable(){return!1}copy(){return new ri(this.len)}splice(e){const t=new ri(this.len-e);return this.len=e,t}mergeWith(e){return this.len+=e.len,!0}integrate(e,t){lr(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 si=(e,t)=>new ur({guid:e,...t,shouldLoad:t.shouldLoad||t.autoLoad||!1});class ii{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 ii(si(this.doc.guid,this.opts))}splice(e){throw le()}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 oi{constructor(e){this.embed=e}getLength(){return 1}getContent(){return[this.embed]}isCountable(){return!0}copy(){return new oi(this.embed)}splice(e){throw le()}mergeWith(e){return!1}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeJSON(this.embed)}getRef(){return 5}}class li{constructor(e,t){this.key=e,this.value=t}getLength(){return 1}getContent(){return[]}isCountable(){return!1}copy(){return new li(this.key,this.value)}splice(e){throw le()}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 ci{constructor(e){this.arr=e}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new ci(this.arr)}splice(e){const t=new ci(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 ai="development"===Rn("node_env");class di{constructor(e){this.arr=e,ai&&Tn(e)}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new di(this.arr)}splice(e){const t=new di(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 ui{constructor(e){this.str=e}getLength(){return this.str.length}getContent(){return this.str.split("")}isCountable(){return!0}copy(){return new ui(this.str)}splice(e){const t=new ui(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 hi=[e=>new Ds,e=>new Ts,e=>new Js,e=>new Gs(e.readKey()),e=>new Ys,e=>new Xs(e.readKey()),e=>new Zs],fi=0,pi=1,gi=2,yi=3,mi=4,vi=5,bi=6;class wi{constructor(e){this.type=e}getLength(){return 1}getContent(){return[this.type]}isCountable(){return!0}copy(){return new wi(this.type._copy())}splice(e){throw le()}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 _i=(e,t,n)=>{const{client:r,clock:s}=t.id,i=new ki(Or(r,s+n),t,Or(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=Or(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 ki extends ei{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>=Ur(t,this.origin.client))return this.origin.client;if(this.rightOrigin&&this.rightOrigin.client!==this.id.client&&this.rightOrigin.clock>=Ur(t,this.rightOrigin.client))return this.rightOrigin.client;if(this.parent&&this.parent.constructor===Cr&&this.id.client!==this.parent.client&&this.parent.clock>=Ur(t,this.parent.client))return this.parent.client;if(this.origin&&(this.left=Nr(e,t,this.origin),this.origin=this.left.lastId),this.rightOrigin&&(this.right=Rr(e,this.rightOrigin),this.rightOrigin=this.right.id),this.left&&this.left.constructor===ti||this.right&&this.right.constructor===ti)this.parent=null;else if(this.parent){if(this.parent.constructor===Cr){const e=Mr(t,this.parent);e.constructor===ti?this.parent=null:this.parent=e.content.type}}else this.left&&this.left.constructor===ki?(this.parent=this.left.parent,this.parentSub=this.left.parentSub):this.right&&this.right.constructor===ki&&(this.parent=this.right.parent,this.parentSub=this.right.parentSub);return null}integrate(e,t){if(t>0&&(this.id.clock+=t,this.left=Nr(e,e.doc.store,Or(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),Ir(this.origin,t.origin)){if(t.id.client<this.id.client)n=t,r.clear();else if(Ir(this.rightOrigin,t.rightOrigin))break}else{if(null===t.origin||!s.has(Mr(e.doc.store,t.origin)))break;r.has(Mr(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),Lr(e.doc.store,this),this.content.integrate(e,this),zr(e,this.parent,this.parentSub),(null!==this.parent._item&&this.parent._item.deleted||null!==this.parentSub&&null!==this.right)&&this.delete(e)}else new ti(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:Or(this.id.client,this.id.clock+this.length-1)}mergeWith(e){if(this.constructor===e.constructor&&Ir(e.origin,this.lastId)&&this.right===e&&Ir(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(),lr(e.deleteSet,this.id.client,this.id.clock,this.length),zr(e,t,this.parentSub),this.content.delete(e)}}gc(e,t){if(!this.deleted)throw ce();this.content.gc(e),t?((e,t,n)=>{const r=e.clients.get(t.id.client);r[Pr(r,t.id.clock)]=n})(e,this,new ti(this.id,this.length)):this.content=new ri(this.length)}write(e,t){const n=t>0?Or(this.id.client,this.id.clock+t-1):this.origin,r=this.rightOrigin,s=this.parentSub,i=31&this.content.getRef()|(null===n?0:S)|(null===r?0:k)|(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 ce()})(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===Cr?(e.writeParentInfo(!1),e.writeLeftID(t)):ce();null!==s&&e.writeString(s)}this.content.write(e,t)}}const Si=(e,t)=>xi[31&t](e),xi=[()=>{ce()},e=>new ri(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 ci(n)},e=>new ni(e.readBuf()),e=>new ui(e.readString()),e=>new oi(e.readJSON()),e=>new li(e.readKey(),e.readJSON()),e=>new wi(hi[e.readTypeRef()](e)),e=>{const t=e.readLen(),n=[];for(let r=0;r<t;r++)n.push(e.readAny());return new di(n)},e=>new ii(si(e.readString(),e.readAny())),()=>{ce()}];class Ei extends ei{get deleted(){return!0}delete(){}mergeWith(e){return this.constructor===e.constructor&&(this.length+=e.length,!0)}integrate(e,t){ce()}write(e,t){e.writeInfo(10),z(e.restEncoder,this.length-t)}getMissing(e,t){return null}}const Ci="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},Ii="__ $YJS$ __";function Oi(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}Ci[Ii],Ci[Ii]=!0;const Di=new FinalizationRegistry(({cache:e,key:t})=>{delete e[t]});function Ai(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=Ui(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=Ui(n,r,s),o=null===(t=this.cache[i])||void 0===t?void 0:t.deref();o&&Di.unregister(o),this.cache[i]=new WeakRef(e),Di.register(e,{cache:this.cache,key:i},e)},delete(e){Di.unregister(e);const t=Ui(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 Ti=new WeakSet;function ji(e){if(Ti.has(e))throw new Error(`Y.Doc ${e.meta.parentId} has been destroyed`)}function Ui(e,t,n){return`${e}[${t}].${n}`}const{getByKeyPath:Li}=t.Dexie;let Pi=null;function Mi(e){Pi=e}function $i(){}const Ri=new WeakMap;function Ni(){return t.Dexie.Events(null,"load","sync","error")}class Bi{static getOrCreateDocument(e,t,n,r){var s,i;const o=Ai(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 ur({meta:{db:e,updatesTable:s,parentProp:r,parentTable:n,parentId:i}}),t.add(o),o.on("destroy",()=>{Ti.add(o),t.delete(o)}),o)}(e,o,t,n,l,r)}static load(e,t){var n;let r=Ri.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 Bi(e),r.graceTimeout=null!==(n=null==t?void 0:t.gracePeriod)&&void 0!==n?n:-1,Ri.set(e,r)),r}static release(e){if(!e||Ti.has(e))return;const t=Ri.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(Bi.on("beforeunload").fire(this)).finally(()=>{var e;0===this.refCount&&(null===(e=this.doc)||void 0===e||e.destroy())})}static for(e){return Ri.get(e)}static get currentUpdateRow(){return Pi}get whenLoaded(){return this._whenLoaded||(this._whenLoaded=new Promise((e,n)=>{this.doc?this.doc.isLoaded?e():this._error?n(this._error):Ti.has(this.doc)?n(new t.Dexie.AbortError("Document was destroyed before loaded")):(this.on("load",e),this.on("error",n),this.doc.on("destroy",()=>n(new t.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((e,n)=>{this.doc?this.doc.isSynced?e():this._error?n(this._error):Ti.has(this.doc)?n(new t.Dexie.AbortError("Document was destroyed before synced")):(this.on("sync",e),this.on("error",n),this.doc.on("destroy",()=>n(new t.Dexie.AbortError("Document was destroyed before synced")))):n(new Error("No Y.Doc associated with this provider"))})),this._whenSynced}constructor(e){this.refCount=1,this.cleanupHandlers=[],this.graceTimeout=-1,this.doc=null,this.destroyed=!1,this.on=Ni(),this.doc=e,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]=()=>Bi.release(e)),e.on("load",()=>this.on("load").fire()),e.on("sync",e=>!1!==e&&this.on("sync").fire()),e.on("destroy",this.destroy.bind(this)),this.on("error",e=>{this._error=e});const{db:n,parentTable:r,parentId:s,updatesTable:i}=e.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`);ji(e),this.stopObserving=function(e,n,r,s,i,o){let l=0,c=!0;const a=t.liveQuery(()=>{ji(n);const e=r.table(i);return Promise.all([(l>0?e.where("i").between(l,1/0,!1).toArray().then(e=>e.filter(e=>0===t.cmp(e.k,o))):e.where({k:o}).toArray()).then(e=>e),r.table(s).where(":id").equals(o).toArray()])}).subscribe(([t,r])=>{t.length>0&&(l=t[t.length-1].i),0!==r.length?(ji(n),t.length>0&&Kr(n,()=>{t.forEach(e=>{try{Mi(e),wr(n,e.u)}finally{Mi(null)}})},e,!1),c&&(c=!1,n.emit("load",[n]))):n.destroy()},t=>{e.on("error").fire(t)}),d=(t,n)=>{n!==e&&r.table(i).add({k:o,u:t,f:1}).then(e=>{e===l-1&&++l}).catch(t=>{e.on("error").fire(t)})},u=()=>{a.unsubscribe(),n.off("updateV2",d),n.off("destroy",u)};return n.on("updateV2",d),n.on("destroy",u),u}(this,e,n,r,i,s),Bi.on("new").fire(this)}destroy(){var e;Ri.delete(this.doc),this.doc=null,this.destroyed=!0,this.refCount=0,null===(e=this.stopObserving)||void 0===e||e.call(this),this.on=Ni(),this.cleanupHandlers.forEach(e=>e())}addCleanupHandler(e){this.cleanupHandlers.push("function"==typeof e?e:()=>e.unsubscribe())}}function Fi(e,n){return s(this,void 0,void 0,function*(){var r;const i={};let o,l=!1;for(const c of e)try{switch(c.type){case"u-s":{const e=Oi(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=Oi(n,c.table,c.prop);e&&(yield n.transaction("rw",e,t=>s(this,void 0,void 0,function*(){let n=yield t.table(e.name).get(cn);yield t.table(e.name).put(Object.assign(Object.assign({},n||{i:cn}),{unsentFrom:Math.max((null==n?void 0:n.unsentFrom)||1,c.i+1)}))})));break}case"u-reject":{const e=Oi(n,c.table,c.prop);if(!e)break;const s=null===(r=yield e.get(c.i))||void 0===r?void 0:r.k;if(null!=s){yield n.transaction("rw",e,n=>(n.idbtrans._rejecting_y_ypdate=!0,e.where("i").aboveOrEqual(c.i).filter(e=>0===t.cmp(e.k,s)&&!(1&~(e.f||0))).delete()));const r=Bi.getDocCache(n.dx).find(c.table,s,c.prop);r&&r.destroy()}break}case"in-sync":{const e=Bi.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}})}Bi.on=t.Dexie.Events(null,{new:[function(e,t){return e===$i?t:function(){e.apply(this,arguments),t.apply(this,arguments)}}],beforeunload:[function(e,t){return e===$i?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)}}]}),Bi.getDocCache=Ai,t.Dexie.DexieYProvider?Bi=t.Dexie.DexieYProvider||Bi:t.Dexie.DexieYProvider=Bi;function Wi(e,n,r){return s(this,arguments,void 0,function*(e,n,{yDownloadedRealms:r,realms:i}){if(r&&i&&i.every(e=>"*"===r[e]))return;const a=yield ze(e),d={"Content-Type":"application/json",Accept:"application/octet-stream"};a&&(d.Authorization=`Bearer ${a.accessToken}`);const u=yield fetch(`${n}/y/download`,{body:qt.stringify({downloadedRealms:r||{}}),method:"POST",headers:d,credentials:"include"});if(!u.ok)throw new Error(`Failed to download Yjs documents from server. Status: ${u.status}`);yield async function(e,...t){let n=e();for(let e=0;e<t.length;e++)n=t[e](n);for await(const e of n);}(function(e){return async function*(){if(!e.body)throw new Error("Response body is not readable");const t=e.body.getReader();try{for(;;){const{done:e,value:n}=await t.read();if(e)return;yield n}}finally{t.releaseLock()}}}(u),Ie,function(r){return l(this,arguments,function*(){var i,l,a,d;let u=null,h=null,f=null,p=[];function g(t){return s(this,void 0,void 0,function*(){const r=p[p.length-1];if(p.length>0){if(!u||!h||!f)throw new Error(`Protocol error from ${n}/y/download`);const t=Oi(e,h,f);t&&(yield t.bulkAdd(p)),p=[]}u&&(h&&f&&r||t)&&(yield e.$syncState.update("syncState",e=>{const n=e.yDownloadedRealms||{};n[u]=t?"*":{tbl:h,prop:f,key:r.k},e.yDownloadedRealms=n}))})}try{try{for(var y,m=!0,v=c(r);!(i=(y=yield o(v.next())).done);m=!0){d=y.value,m=!1;const e=new ue(d);for(;fe(e);)switch(ge(e)){case 1:yield o(g(!0)),u=ve(e);break;case 2:yield o(g(!1)),h=ve(e),f=ve(e);break;case 3:{const t=ke(e),n=pe(e);p.push({k:t,u:n});break}}yield o(g(!1))}}catch(e){l={error:e}}finally{try{m||i||!(a=v.return)||(yield o(a.call(v)))}finally{if(l)throw l.error}}yield o(g(!0))}catch(e){throw e instanceof t.DexieError||(yield o(g(!1))),e}})})})}const zi="currentSyncWorker";function Hi(e,t,n,r){return Vi(e,t,n,r).then(t=>((null==r?void 0:r.justCheckIfNeeded)||e.syncStateChangedEvent.next({phase:"in-sync"}),t)).catch(i=>s(this,void 0,void 0,function*(){return(null==r?void 0:r.justCheckIfNeeded)?Promise.reject(i):nn&&(null==r?void 0:r.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 Hi(e,t,n,Object.assign(Object.assign({},r),{retryImmediatelyOnFetchError:!1}))):(yield e.$syncState.update("syncState",{timestamp:new Date,error:""+i}),e.syncStateChangedEvent.next({phase:nn?"error":"offline",error:new Error(""+(null==i?void 0:i.message)||i)}),Promise.reject(i))}))}function Vi(e,t,n){return s(this,arguments,void 0,function*(e,t,n,{isInitialSync:r,cancelToken:i,justCheckIfNeeded:o,purpose:l}={isInitialSync:!1}){var c;if(!(null===(c=e.cloud.options)||void 0===c?void 0:c.databaseUrl))throw new Error("Internal error: sync must not be called when no databaseUrl is configured");const{databaseUrl:a}=t,d=yield e.getCurrentUser(),h=d.isLoggedIn?ft(e):[],p=h.map(t=>e.table(pt(t.name))),g=yield e.getPersistedSyncState(),y=d.isLoggedIn,m=y?function(e,t){const n=(null==t?void 0:t.syncedTables)||[];return ft(e).filter(e=>!n.includes(e.name))}(e,g):[];tn(i);const v=m.length>0;if(v){if(o)return!0;yield e.transaction("rw",m,e=>s(this,void 0,void 0,function*(){e.idbtrans.disableChangeTracking=!0,e.idbtrans.disableAccessControl=!0,yield function(e,t,n){return s(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!==qe.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!==qe.userId||(e.owner=t.userId)}):yield n.toCollection().modify(e=>{e.realmId&&r.has(e.realmId)||(e.owner&&e.owner!==qe.userId||(e.owner=t.userId),e.realmId&&e.realmId!==qe.userId||(e.realmId=t.userId))}))})}(m,d,null==g?void 0:g.realms)})),tn(i)}const[b,w,_,{yMessages:k,lastUpdateIds:S}]=yield e.transaction("r",e.tables,()=>s(this,void 0,void 0,function*(){const t=yield e.getPersistedSyncState();let r=yield e.$baseRevs.toArray();r=r.filter(e=>h.some(t=>t.name===e.tableName));let o=yield vt(p,e);const l=yield function(e,t){return s(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(cn),l=(null==o?void 0:o.unsentFrom)||1,c=(null==o?void 0:o.receivedUntil)||0,a=Math.min(l,c+1),d=yield an(i,a);d.length>0&&(r[i.name]=d[d.length-1].i);const u={};for(const e of d){const t=!(1&~(e.f||0));if(t&&e.i<l)continue;const n=JSON.stringify(e.k)+"/"+t;let r=u[n];r?(r.u.push(e.u),r.i=Math.max(e.i,r.i)):(u[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(u)){const l=1===i.length?i[0]:Qr(i);if(r)n.push({type:"u-c",table:s.name,prop:t.prop,k:e,u:l,i:o});else{const r=Yr(l);n.push({type:"sv",table:s.name,prop:t.prop,k:e,sv:r})}}}return{yMessages:n,lastUpdateIds:r}})}(e,h);if(tn(i),v){const e=[...(null==g?void 0:g.realms)||[],...(null==g?void 0:g.inviteRealms)||[]],c=yield function(e,t,n,r){return s(this,void 0,void 0,function*(){const i=`upload-${bt(8)}`;if(t.isLoggedIn&&e.length>0){const o=new Set(r||[]);return(yield Promise.all(e.map(e=>s(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||"")&&f(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[]})}(m,d,n,e);return tn(i),o=o.concat(c),[o,t,r,l]}return[o,t,r,l]})),x=b.some(e=>e.muts.some(e=>e.keys.length>0))||k.some(e=>"u-c"===e.type);if(o)return x;if("push"===l&&!x)return!1;const E=sn(b,null==w?void 0:w.latestRevisions),C=(null==w?void 0:w.clientIdentity)||u(16);tn(i);const I=yield en(b,k,w,_,e,a,n,C,d),{done:O,newSyncState:D}=yield e.transaction("rw",e.tables,t=>s(this,void 0,void 0,function*(){t.idbtrans.disableChangeTracking=!0,t.idbtrans.disableAccessControl=!0;for(const e of Object.keys(n))I.schema[e]&&(n[e]=I.schema[e]);yield e.$syncState.put(n,"schema");const r=yield vt(p,e,{since:E});for(const t of p){const n=gt(t.name);if(r.some(e=>e.table===n&&e.muts.length>0)){if(E[n]){const r=E[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()])}sn(r,E),yield rn(e,n,E,I.serverRevision);const i=yield e.getPersistedSyncState();yield function(e,t,n){return s(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=ft(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,I,i);const o=i||{syncedTables:[],latestRevisions:{},realms:[],inviteRealms:[],clientIdentity:C};y&&(o.syncedTables=h.map(e=>e.name).concat(m.map(e=>e.name))),o.latestRevisions=E,o.remoteDbId=I.dbId,o.initiallySynced=!0,o.realms=I.realms,o.inviteRealms=I.inviteRealms,o.serverRevision=I.serverRevision,o.yServerRevision=I.serverRevision,o.timestamp=new Date,delete o.error;const l=Ki(I.changes,r);if(yield ln(l,e),I.yMessages){const{receivedUntils:t,resyncNeeded:n,yServerRevision:r}=yield Fi(I.yMessages,e);r&&(o.yServerRevision=r),yield function(e,t,n){return s(this,void 0,void 0,function*(){var r,i,o,l,c;const a={};for(const[t,n]of Object.entries(e))null!==(r=a[t])&&void 0!==r||(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 d=Object.values(n.dx._dbSchema).filter(e=>e.yProps).map(e=>e.yProps.map(e=>e.updatesTable)).flat();for(const e of d){const t=a[e],r=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,()=>s(this,void 0,void 0,function*(){const t=yield n.table(e).get(cn);t?(t.unsentFrom=Math.max(r,t.unsentFrom||1),t.receivedUntil=Math.max(i,t.receivedUntil||0),yield n.table(e).put(t)):yield n.table(e).add({i:cn,unsentFrom:r,receivedUntil:i})}))}})}(S,t,e),n&&(o.yDownloadedRealms={})}return e.$syncState.put(o,"syncState"),{done:0===r.length,newSyncState:o}}));if(!O)return yield Zt(e),yield Vi(e,t,n,{isInitialSync:r,cancelToken:i});const A=Object.values(n).some(e=>{var t;return null===(t=e.yProps)||void 0===t?void 0:t.length}),T=!!I.yMessages;if(A&&T)try{yield Wi(e,a,D)}catch(e){}return e.syncCompleteEvent.next(),!1})}function Ki(e,t){const n={};y(n,e);const r={};return y(r,t),function(e,t){for(const[n,r]of Object.entries(t))for(const[t,s]of Object.entries(r))switch(s.type){case"ups":{const r=e[n]?.[t];if(r)switch(r.type){case"ups":case"upd":delete e[n][t]}}break;case"del":delete e[n]?.[t];break;case"upd":{const r=e[n]?.[t];if(r)switch(r.type){case"ups":for(const[e,t]of Object.entries(s.mod))d(r.val,e,t);break;case"del":break;case"upd":for(const e of Object.keys(s.mod))delete r.mod[e]}break}}}(n,r),function(e,t){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({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)}function Ji(e){const i=[],o=new n.BehaviorSubject(!0),l=new n.BehaviorSubject(null);let c=!1,a=new Array(10).fill(0);return l.subscribe(()=>s(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 s(this,void 0,void 0,function*(){for(var o,l,c,a,d,u;i.length>0;){const h=i.shift();try{yield n.firstValueFrom(e.cloud.syncState.pipe(r.filter(({phase:e})=>"in-sync"===e||"error"===e)));const i=e.cloud.persistedSyncState.value;if(!h)continue;switch(h.type){case"token-expired":const n=e.cloud.currentUser.value,r=yield Ve(e.cloud.options.databaseUrl,n);yield e.table("$logins").update(n.userId,{accessToken:r.accessToken,accessTokenExpiration:r.accessTokenExpiration,claims:r.claims,license:r.license,data:r.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 e.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 e.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===(d=null==i?void 0:i.inviteRealms)||void 0===d?void 0:d.includes(h.realm)))&&(yield e.cloud.sync({purpose:"pull",wait:!0}));break;case"realms-changed":yield e.cloud.sync({purpose:"pull",wait:!0});break;case"changes":if("error"===(null===(u=e.cloud.syncState.value)||void 0===u?void 0:u.phase)){Ae(e,"pull");break}yield e.transaction("rw",e.dx.tables,n=>s(this,void 0,void 0,function*(){n.idbtrans.disableChangeTracking=!0,n.idbtrans.disableAccessControl=!0;const[r,s,i]=yield Promise.all([e.getSchema(),e.getPersistedSyncState(),e.getCurrentUser()]);if(!s||!r||!i)return;if(h.baseRev!==s.serverRevision)return void("string"!=typeof h.baseRev||"bigint"!=typeof s.serverRevision&&"object"!=typeof s.serverRevision||Ae(e,"pull"));if((yield t.waitFor(ht(s)))!==h.realmSetHash)return void Ae(e,"pull");let o=[];if(i.isLoggedIn){const t=ft(e).map(t=>e.table(pt(t.name)));o=yield vt(t,e)}if(h.changes.length>0){const t=Ki(h.changes,o);yield ln(t,e)}s.latestRevisions=sn(o,s.latestRevisions),s.serverRevision=h.newRev,yield rn(e,r,s.latestRevisions,h.newRev),yield e.$syncState.put(s,"syncState")}))}}catch(e){}}})}()}finally{a[a.length-1]-a[0]<1e4&&(yield new Promise(e=>setTimeout(e,1e3))),c=!1,o.next(!0)}}})),{enqueue:function(e){i.push(e),l.next(null)},readyToServe:o}}const qi=new WeakMap,Yi={members:"@id, [userId+realmId], [email+realmId], realmId",roles:"[realmId+name]",realms:"@realmId",$jobs:"",$syncState:"",$baseRevs:"[tableName+clientRev]",$logins:"claims.sub, lastLogin"};let Gi=0;function Qi(e){"vip"in e&&(e=e.vip);let t=qi.get(e.cloud);if(!t){const r=new n.Subject;let s=new ut(`syncstatechanged-${e.name}`),i=new ut(`synccomplete-${e.name}`);r.id=++Gi;let o=!1;t={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:()=>t.$logins.toArray().then(e=>e.find(e=>e.isLoggedIn)||qe),getPersistedSyncState:()=>t.$syncState.get("syncState"),getSchema:()=>t.$syncState.get("schema").then(e=>{if(e)for(const n of t.tables)n.schema.primKey&&n.schema.primKey.keyPath&&e[n.name]&&(e[n.name].primaryKey=Xi(n.schema.primKey.keyPath));return e}),getOptions:()=>t.$syncState.get("options"),setInitiallySynced(e){o=e},reconfigure(){s=new ut(`syncstatechanged-${e.name}`),i=new ut(`synccomplete-${e.name}`)}};Object.assign(t,l),t.messageConsumer=Ji(t),t.messageProducer=new n.Subject,qi.set(e.cloud,t)}return t}function Xi(e){return"string"==typeof e?e:e?"["+[].join.call(e,"+")+"]":""}const Zi="undefined"!=typeof InstallTrigger,eo="undefined"!=typeof navigator&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\/|Edge\//.test(navigator.userAgent),to=eo?[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]:NaN,no=eo&&to<=605||Zi,ro="undefined"!=typeof self&&"clients"in self&&!self.document;const{toString:so}={};function io(e){return so.call(e).slice(8,-1)}function oo(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)}function lo(e,t){return(1&t?e[0].toUpperCase():e[0].toLowerCase())+(2&t?e[1].toUpperCase():e[1].toLowerCase())+(4&t?e[2].toUpperCase():e[2].toLowerCase())}const co=/b|c|d|f|g|h|j|k|l|m|n|p|q|r|s|t|v|x|y|z/i;function ao(e){return e>="A"&&e<="Z"}let uo=0;function ho(e,t){const n=new Uint8Array(18),r=new Uint8Array(n.buffer,0,6),s=Date.now();uo>=s?++uo:uo=s,r[0]=uo/1099511627776,r[1]=uo/4294967296,r[2]=uo/16777216,r[3]=uo/65536,r[4]=uo/256,r[5]=uo;const i=new Uint8Array(n.buffer,6);crypto.getRandomValues(i);return e+Tt(new Uint8Array(n.buffer))+(t||"")}function fo(e){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=e.cloud.schema)||void 0===i?void 0:i[r];if(null==l?void 0:l.generatedGlobalId){if((null===(o=e.cloud.options)||void 0===o?void 0:o.databaseUrl)&&!e.initiallySynced){const e=oo(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=oo(s.schema.primaryKey,n);return l.forEach((c,a)=>{if(void 0===c){const r=n.values[a].realmId||e.cloud.currentUserId,c=r.substr(r.length-3);l[a]=ho(i,c),s.schema.primaryKey.outbound||(o||(o=n.values.slice()),o[a]=t.deepClone(o[a]),t.setByKeyPath(o[a],s.schema.primaryKey.keyPath,l[a]))}else if("string"!=typeof c||!c.startsWith(i)&&!c.startsWith("#"+i))throw new t.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){oo(s.schema.primaryKey,n).forEach((e,n)=>{if(!f(e)){const n=Array.isArray(e)?e.map(io).join(","):io(e);throw new t.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 po=0;function go(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 yo(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 n.BehaviorSubject(new Set);function vo(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 bo({currentUserObservable:e,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:(t,s)=>{let i;if("readwrite"===s){const e=t.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=>pt(e));i=r.transaction([...t,...e],s)}else i=r.transaction(t,s);if("readwrite"===s){i.txid=bt(16),i.opCount=0,i.currentUser=e.value,mo.value.add(i),mo.next(mo.value);const t=()=>{i.removeEventListener("complete",r),i.removeEventListener("error",t),i.removeEventListener("abort",t),mo.value.delete(i),mo.next(mo.value)},r=()=>{i.mutationsAdded&&!vo(n)&&Ae(n,"push"),t()};i.addEventListener("complete",r),i.addEventListener("error",t),i.addEventListener("abort",t)}return i},table:e=>{const s=r.table(e);if(/^\$/.test(e))return e.endsWith("_mutations")?Object.assign(Object.assign({},s),{mutate:e=>("add"!==e.type&&"put"!==e.type||(e.trans.mutationsAdded=!0),s.mutate(e))}):"$logins"===e?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(e);return l?function(e){const t="$lock"+ ++po;return Object.assign(Object.assign({},e),{count:go(e.count,t),get:go(e.get,t),getMany:go(e.getMany,t),openCursor:go(e.openCursor,t),query:go(e.query,t),mutate:yo(e.mutate,t)})}(Object.assign(Object.assign({},s),{mutate:t=>{var r,o,l;const a=t.trans;return a.txid?a.disableChangeTracking?s.mutate(t):(null===(o=null===(r=n.cloud.schema)||void 0===r?void 0:r[e])||void 0===o?void 0:o.markedForSync)&&(null===(l=a.currentUser)||void 0===l?void 0:l.isLoggedIn)?"deleteRange"===t.type?s.query({query:{range:t.range,index:i.primaryKey},trans:t.trans,values:!1}).then(e=>c({type:"delete",keys:e.result,trans:t.trans,criteria:{index:null,range:t.range}})):c(t):s.mutate(t):s.mutate(t)}})):s;function c(r){var o,c;const a=r.trans,d=null===(c=null===(o=n.cloud.options)||void 0===o?void 0:o.unsyncedProperties)||void 0===c?void 0:c[e],{txid:u,currentUser:{userId:h}}=a,{type:f}=r,p=++a.opCount;function g(e){if(!d)return e;let t=e;for(const n of Object.keys(e))d.some(e=>n===e||n.startsWith(e+"."))&&(t===e&&(t=Object.assign({},e)),delete t[n]);return t}return s.mutate(r).then(e=>{var n;const{numFailures:s,failures:o}=e;let c="delete"===f?r.keys:e.results,y="values"in r?r.values:[],m="changeSpec"in r?r.changeSpec:void 0,v="updates"in r?r.updates:void 0,b=!(!v||!("upsert"in r))&&r.upsert;if(s&&(c=c.filter((e,t)=>!o[t]),y=y.filter((e,t)=>!o[t])),d){if(y=y.map(e=>{const t=Object.assign({},e);for(const e of d)delete t[e];return t}),m&&(m=g(m),0===Object.keys(m).length))return e;if(v){let e=v.changeSpecs.map(g),n={keys:[],changeSpecs:[]};const r=new t.RangeSet;let s=!1;if(!b){for(let t=0,i=e.length;t<i;++t)Object.keys(e[t]).length>0?(n.keys.push(v.keys[t]),n.changeSpecs.push(e[t]),r.addKey(v.keys[t])):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 w=Date.now();let _="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(d&&(null==_?void 0:_.index)){const e=null===(n=i.indexes.find(e=>e.name===_.index))||void 0===n?void 0:n.keyPath;(e?"string"==typeof e?[e]:e:[]).some(e=>null==d?void 0:d.includes(e))&&(_=void 0)}const k="delete"===r.type?{type:"delete",ts:w,opNo:p,keys:c,criteria:_,txid:u,userId:h}:"add"===r.type?{type:"insert",ts:w,opNo:p,keys:c,txid:u,userId:h,values:y}:b&&v?{type:"upsert",ts:w,opNo:p,keys:c,values:y,changeSpecs:v.changeSpecs.filter((e,t)=>!o[t]),txid:u,userId:h}:_&&m?{type:"modify",ts:w,opNo:p,keys:c,criteria:_,changeSpec:m,txid:u,userId:h}:m?{type:"update",ts:w,opNo:p,keys:c,changeSpecs:c.map(()=>m),txid:u,userId:h}:v?{type:"update",ts:w,opNo:p,keys:v.keys,changeSpecs:v.changeSpecs,txid:u,userId:h}:{type:"upsert",ts:w,opNo:p,keys:c,values:y,txid:u,userId:h};return"isAdditionalChunk"in r&&r.isAdditionalChunk&&(k.isAdditionalChunk=!0),c.length>0||_?l.mutate({type:"add",trans:a,values:[k]}).then(()=>(a.mutationsAdded=!0,e)):e})}}})}}}function wo(e,t){return function(n,r){var s;const i=Object.assign(Object.assign({},Yi),n);Object.keys(Yi).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=Yi[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(Yi[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=>{var t;const n=null===(t=i[e])||void 0===t?void 0:t.trim(),r=o[e]||(o[e]={});null!=n?(/^\@/.test(n)&&(i[e]=i[e].substr(1),r.generatedGlobalId=!0,r.idPrefix=function(e,t){let n=e[0].toLocaleLowerCase();for(let t=1,r=e.length;t<r&&n.length<3;++t)(co.test(e[t])||ao(e[t]))&&(n+=e[t].toLowerCase());for(;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;)r=lo(n,e),++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(r.idPrefix)),/^\$/.test(e)||(i[`$${e}_mutations`]="++rev",r.markedForSync=!0),r.deleted&&(r.deleted=!1)):(r.deleted=!0,r.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 _o(e,t,n){return"undefined"!=typeof navigator&&navigator.locks?navigator.locks.request(e.name+"|"+t,n):n()}const ko=new n.BehaviorSubject(!0),So=new n.BehaviorSubject(!0);ko.pipe(r.switchMap(e=>e?n.of(!0):n.of(!1).pipe(r.delay(2e4))),r.distinctUntilChanged()).subscribe(So);const xo="undefined"!=typeof document?n.fromEvent(document,"visibilitychange"):n.of({}),Eo=xo.pipe(r.filter(()=>"hidden"===document.visibilityState)),Co=xo.pipe(r.filter(()=>"visible"===document.visibilityState)),Io="undefined"!=typeof window?n.merge(Co,n.fromEvent(window,"mousedown"),n.fromEvent(window,"mousemove"),n.fromEvent(window,"keydown"),n.fromEvent(window,"wheel"),n.fromEvent(window,"touchmove")):n.of({});"undefined"!=typeof document&&n.merge(n.of(!0),Eo,Io).pipe(r.map(()=>"visible"===document.visibilityState),r.tap(e=>{ko.value!==e&&ko.next(e)}),r.switchMap(e=>e?n.of(0).pipe(r.delay(16e4),r.tap(()=>ko.next(!1))):n.of(0))).subscribe(()=>{});class Oo extends Error{constructor(){super(...arguments),this.name="TokenExpiredError"}}const Do=new WeakMap,Ao=3e4;class To extends pn{constructor(e){super(),this.doc=e,this.clientID=e.clientID,this.states=new Map,this.meta=new Map,this._checkInterval=setInterval(()=>{const e=bn();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&&Ao<=e-n.lastUpdated&&this.states.has(r)&&t.push(r)}),t.length>0&&jo(this,t,"timeout")},m(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:bn()});const i=[],o=[],l=[],c=[];null===e?c.push(t):null==s?null!=e&&i.push(t):(o.push(t),Ln(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 jo=(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:bn()})}r.push(s)}}r.length>0&&(e.emit("change",[{added:[],updated:[],removed:r},n]),e.emit("update",[{added:[],updated:[],removed:r},n]))},Uo=new WeakMap;function Lo(e){let t=Uo.get(e);return t||(t=new n.Subject,Uo.set(e,t)),t}class Po extends n.Observable{constructor(e,t,n,r,s,i,o,l){super(c=>new $o(e,t,n,r,s,l,c,i,o))}}let Mo=0;class $o extends n.Subscription{constructor(e,t,n,r,s,i,o,l,c){super(()=>this.teardown()),this.id=++Mo,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 s(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 e=this.user.accessTokenExpiration;if(e&&e<new Date)return void this.subscriber.error(new Oo);this.webSocketStatus.next("connecting"),this.pinger=setInterval(()=>s(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 r=new URL(this.databaseUrl);r.protocol="http:"===r.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(`${r}/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?qt.parse(e.data):function(e){const t=new ue(e),n=ve(t);if("outdated-server-rev"===n)return{type:n};if("y-complete-sync-done"===n)return{type:n,yServerRev:ve(t)};const r=ve(t),s=ve(t);switch(n){case"u-ack":case"u-reject":return{type:n,table:r,prop:s,i:Number(we(t))};default:{const e=ke(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:pe(t)};case"doc-open":return{type:n,table:r,prop:s,k:e,serverRev:ke(t),sv:ke(t)};case"sv":return{type:n,table:r,prop:s,k:e,sv:pe(t)};case"u-c":return{type:n,table:r,prop:s,k:e,u:pe(t),i:Number(we(t))};case"u-s":return{type:n,table:r,prop:s,k:e,u:pe(t),r:t.pos<t.arr.length&&ve(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=Bi.getDocCache(this.db.dx).find(t.table,t.k,t.prop);if(e){const n=(e=>Do.get(e))(e);n&&((e,t,n)=>{const r=he(t),s=bn(),i=[],o=[],l=[],c=[],a=ye(r);for(let t=0;t<a;t++){const t=ye(r);let n=ye(r);const a=JSON.parse(ve(r)),d=e.meta.get(t),u=e.states.get(t),h=void 0===d?0:d.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===d&&null!==a?i.push(t):void 0!==d&&null===a?c.push(t):null!==a&&(Ln(a,u)||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=Bi.getDocCache(this.db.dx).find(t.table,t.k,t.prop);e&&Lo(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?Fi([t],this.db).then(e=>s(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=Oi(this.db,t.table,t.prop);if(e){const t=r[e.name];t&&(yield e.update(cn,{receivedUntil:t}))}}e&&(yield this.db.cloud.sync({purpose:"pull",wait:!0}))})):this.subscriber.next(t)}catch(e){this.subscriber.error(e)}}};try{let e=!1;yield new Promise((t,n)=>{o.onopen=n=>{e=!0,t(null)},o.onerror=t=>{if(e)this.reconnect();else{const e=t.error||new Error("WebSocket Error");this.subscriber.error(e),this.webSocketStatus.next("error"),n(e)}}}),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(qt.stringify(e))):null===(n=this.ws)||void 0===n||n.send(function(e){const t=new R;switch(J(t,e.type),"table"in e&&J(t,e.table),"prop"in e&&J(t,e.prop),e.type){case"u-ack":case"u-reject":Q(t,BigInt(e.i));break;case"outdated-server-rev":break;case"y-complete-sync-done":J(t,e.yServerRev);break;default:switch(Z(t,e.k),e.type){case"aware":Y(t,e.u);break;case"doc-open":Z(t,e.serverRev),Z(t,e.sv);break;case"doc-close":break;case"sv":Y(t,e.sv);break;case"u-c":Y(t,e.u),Q(t,BigInt(e.i));break;case"u-s":Y(t,e.u),J(t,e.r||"")}}return B(t)}(e)))})),this.user.isLoggedIn&&!vo(this.db)&&this.subscriptions.add(function(e){const r=mt(e.tables.filter(t=>{var n,r;return(null===(r=null===(n=e.cloud.schema)||void 0===n?void 0:n[t.name])||void 0===r?void 0:r.markedForSync)&&t.schema.yProps}).map(e=>e.schema.yProps.map(t=>({table:e.name,ydocProp:t.prop,updatesTable:t.updatesTable}))));return n.merge(...r.map(({table:r,ydocProp:i,updatesTable:o})=>{const l=e.table(o);return n.from(l.get(cn)).pipe(n.switchMap(e=>{let o=(null==e?void 0:e.unsentFrom)||1;return n.from(t.liveQuery(()=>s(this,void 0,void 0,function*(){return(yield an(l,o)).filter(e=>e.f&&1&e.f).map(e=>({type:"u-c",table:r,prop:i,k:e.k,u:e.u,i:e.i}))}))).pipe(n.tap(e=>{e.length>0&&(o=e.at(-1).i+1)}))}))})).pipe(n.mergeMap(e=>e))}(this.db).subscribe(this.db.messageProducer))}catch(e){this.pauseUntil=new Date(Date.now()+6e4)}})}}class Ro extends Error{constructor(e){super("expired"===e?"License expired":"deactivated"===e?"User deactivated":"Invalid license"),this.name="InvalidLicenseError",e&&(this.license=e)}}function No(e){return s(this,void 0,void 0,function*(){var e;yield(e=3e3,new Promise(t=>setTimeout(t,e))),yield n.firstValueFrom(Io)})}function Bo(e){return s(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 Hi(e,e.cloud.options,e.cloud.schema,{justCheckIfNeeded:!0}))})}const Fo=new WeakMap;function Wo(e,t,n,r){const i=Fo.get(e);if(i){if(i.pull||"push"===(null==r?void 0:r.purpose))return i.promise;{let s=!1;const o=e.cloud.syncState.subscribe(e=>{"pulling"===e.phase&&(s=!0)});return i.promise.then(()=>{o.unsubscribe()}).catch(e=>(o.unsubscribe(),Promise.reject(e))).then(()=>{if(!s)return Wo(e,t,n,r)})}}const o=function(){return s(this,void 0,void 0,function*(){try{yield Zt(e),yield _o(e,zi,()=>Hi(e,t,n,r)),Fo.delete(e)}catch(t){throw Fo.delete(e),t}})}();return Fo.set(e,{promise:o,pull:"push"!==(null==r?void 0:r.purpose)}),o}function zo(e,t,n){let r=null,s={cancelled:!1},i=0,o=0;function l(r=1){setTimeout(()=>{const h=c?"pull":"push";o=Date.now(),Wo(e,t,n,{cancelToken:s,retryImmediatelyOnFetchError:!0,purpose:h}).then(()=>{if(s.cancelled)u();else if(c||a)return c=!1,a=!1,l();d=!1,i=0,o=0}).catch(e=>{if(s.cancelled)u(),d=!1,i=0,o=0;else if(r<5){const e=1e3*[0,20,40,300,900][r];i=Date.now()+e,o=0,setTimeout(()=>l(r+1),e)}else d=!1,i=0,o=0})},0)}let c=!1,a=!1,d=!1;const u=()=>{s.cancelled=!0,r&&r.unsubscribe()};return{start:()=>{r=e.localSyncEvent.subscribe(({purpose:e})=>{(e=>{s.cancelled||("pull"===e&&(c=!0),"push"===e&&(a=!0),d?i||o>0&&Date.now():(d=!0,l()))})(e||"pull")})},stop:u}}function Ho(e,t){if(e&&t&&t.unsyncedTables)for(const n of t.unsyncedTables)e[n]&&(e[n].markedForSync=!1)}var Vo,Ko,Jo,qo,Yo,Go,Qo,Xo,Zo,el,tl,nl={},rl=[],sl=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,il=Array.isArray;function ol(e,t){for(var n in t)e[n]=t[n];return e}function ll(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function cl(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?Vo.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,__c:null,constructor:void 0,__v:null==s?++Jo:s,__i:-1,__u:0};return null==s&&null!=Ko.vnode&&Ko.vnode(i),i}function dl(e){return e.children}function ul(e,t){this.props=e,this.context=t}function hl(e,t){if(null==t)return e.__?hl(e.__,e.__i+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?hl(e):null}function fl(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 fl(e)}}function pl(e){(!e.__d&&(e.__d=!0)&&qo.push(e)&&!gl.__r++||Yo!=Ko.debounceRendering)&&((Yo=Ko.debounceRendering)||Go)(gl)}function gl(){for(var e,t,n,r,s,i,o,l=1;qo.length;)qo.length>l&&qo.sort(Qo),e=qo.shift(),l=qo.length,e.__d&&(n=void 0,r=void 0,s=(r=(t=e).__v).__e,i=[],o=[],t.__P&&((n=ol({},r)).__v=r.__v+1,Ko.vnode&&Ko.vnode(n),kl(t.__P,n,r,t.__n,t.__P.namespaceURI,32&r.__u?[s]:null,i,null==s?hl(r):s,!!(32&r.__u),o),n.__v=r.__v,n.__.__k[n.__i]=n,xl(i,n,o),r.__e=r.__=null,n.__e!=s&&fl(n)));gl.__r=0}function yl(e,t,n,r,s,i,o,l,c,a,d){var u,h,f,p,g,y,m,v=r&&r.__k||rl,b=t.length;for(c=function(e,t,n,r,s){var i,o,l,c,a,d=n.length,u=d,h=0;for(e.__k=new Array(s),i=0;i<s;i++)null!=(o=t[i])&&"boolean"!=typeof o&&"function"!=typeof o?("string"==typeof o||"number"==typeof o||"bigint"==typeof o||o.constructor==String?o=e.__k[i]=al(null,o,null,null,null):il(o)?o=e.__k[i]=al(dl,{children:o},null,null,null):null==o.constructor&&o.__b>0?o=e.__k[i]=al(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):e.__k[i]=o,c=i+h,o.__=e,o.__b=e.__b+1,-1!=(a=o.__i=vl(o,n,c,u))&&(u--,(l=n[a])&&(l.__u|=2)),null==l||null==l.__v?(-1==a&&(s>d?h--:s<d&&h++),"function"!=typeof o.type&&(o.__u|=4)):a!=c&&(a==c-1?h--:a==c+1?h++:(a>c?h--:h++,o.__u|=4))):e.__k[i]=null;if(u)for(i=0;i<d;i++)null!=(l=n[i])&&!(2&l.__u)&&(l.__e==r&&(r=hl(l)),Ol(l,l));return r}(n,t,v,c,b),u=0;u<b;u++)null!=(f=n.__k[u])&&(h=-1==f.__i?nl:v[f.__i]||nl,f.__i=u,y=kl(e,f,h,s,i,o,l,c,a,d),p=f.__e,f.ref&&h.ref!=f.ref&&(h.ref&&Il(h.ref,null,f),d.push(f.ref,f.__c||p,f)),null==g&&null!=p&&(g=p),(m=!!(4&f.__u))||h.__k===f.__k?c=ml(f,c,e,m):"function"==typeof f.type&&void 0!==y?c=y:p&&(c=p.nextSibling),f.__u&=-7);return n.__e=g,c}function ml(e,t,n,r){var s,i;if("function"==typeof e.type){for(s=e.__k,i=0;s&&i<s.length;i++)s[i]&&(s[i].__=e,t=ml(s[i],t,n,r));return t}e.__e!=t&&(r&&(t&&e.type&&!t.parentNode&&(t=hl(e)),n.insertBefore(e.__e,t||null)),t=e.__e);do{t=t&&t.nextSibling}while(null!=t&&8==t.nodeType);return t}function vl(e,t,n,r){var s,i,o,l=e.key,c=e.type,a=t[n],d=null!=a&&!(2&a.__u);if(null===a&&null==l||d&&l==a.key&&c==a.type)return n;if(r>(d?1:0))for(s=n-1,i=n+1;s>=0||i<t.length;)if(null!=(a=t[o=s>=0?s--:i++])&&!(2&a.__u)&&l==a.key&&c==a.type)return o;return-1}function bl(e,t,n){"-"==t[0]?e.setProperty(t,null==n?"":n):e[t]=null==n?"":"number"!=typeof n||sl.test(t)?n:n+"px"}function wl(e,t,n,r,s){var i,o;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||bl(e.style,t,"");if(n)for(t in n)r&&n[t]==r[t]||bl(e.style,t,n[t])}else if("o"==t[0]&&"n"==t[1])i=t!=(t=t.replace(Xo,"$1")),o=t.toLowerCase(),t=o in e||"onFocusOut"==t||"onFocusIn"==t?o.slice(2):t.slice(2),e.l||(e.l={}),e.l[t+i]=n,n?r?n.u=r.u:(n.u=Zo,e.addEventListener(t,i?tl:el,i)):e.removeEventListener(t,i?tl:el,i);else{if("http://www.w3.org/2000/svg"==s)t=t.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if("width"!=t&&"height"!=t&&"href"!=t&&"list"!=t&&"form"!=t&&"tabIndex"!=t&&"download"!=t&&"rowSpan"!=t&&"colSpan"!=t&&"role"!=t&&"popover"!=t&&t in e)try{e[t]=null==n?"":n;break e}catch(e){}"function"==typeof n||(null==n||!1===n&&"-"!=t[4]?e.removeAttribute(t):e.setAttribute(t,"popover"==t&&1==n?"":n))}}function _l(e){return function(t){if(this.l){var n=this.l[t.type+e];if(null==t.t)t.t=Zo++;else if(t.t<n.u)return;return n(Ko.event?Ko.event(t):t)}}}function kl(e,t,n,r,s,i,o,l,c,a){var d,u,h,f,p,g,y,m,v,b,w,_,k,S,x,E,C,I=t.type;if(null!=t.constructor)return null;128&n.__u&&(c=!!(32&n.__u),i=[l=t.__e=n.__e]),(d=Ko.__b)&&d(t);e:if("function"==typeof I)try{if(m=t.props,v="prototype"in I&&I.prototype.render,b=(d=I.contextType)&&r[d.__c],w=d?b?b.props.value:d.__:r,n.__c?y=(u=t.__c=n.__c).__=u.__E:(v?t.__c=u=new I(m,w):(t.__c=u=new ul(m,w),u.constructor=I,u.render=Dl),b&&b.sub(u),u.state||(u.state={}),u.__n=r,h=u.__d=!0,u.__h=[],u._sb=[]),v&&null==u.__s&&(u.__s=u.state),v&&null!=I.getDerivedStateFromProps&&(u.__s==u.state&&(u.__s=ol({},u.__s)),ol(u.__s,I.getDerivedStateFromProps(m,u.__s))),f=u.props,p=u.state,u.__v=t,h)v&&null==I.getDerivedStateFromProps&&null!=u.componentWillMount&&u.componentWillMount(),v&&null!=u.componentDidMount&&u.__h.push(u.componentDidMount);else{if(v&&null==I.getDerivedStateFromProps&&m!==f&&null!=u.componentWillReceiveProps&&u.componentWillReceiveProps(m,w),t.__v==n.__v||!u.__e&&null!=u.shouldComponentUpdate&&!1===u.shouldComponentUpdate(m,u.__s,w)){for(t.__v!=n.__v&&(u.props=m,u.state=u.__s,u.__d=!1),t.__e=n.__e,t.__k=n.__k,t.__k.some(function(e){e&&(e.__=t)}),_=0;_<u._sb.length;_++)u.__h.push(u._sb[_]);u._sb=[],u.__h.length&&o.push(u);break e}null!=u.componentWillUpdate&&u.componentWillUpdate(m,u.__s,w),v&&null!=u.componentDidUpdate&&u.__h.push(function(){u.componentDidUpdate(f,p,g)})}if(u.context=w,u.props=m,u.__P=e,u.__e=!1,k=Ko.__r,S=0,v){for(u.state=u.__s,u.__d=!1,k&&k(t),d=u.render(u.props,u.state,u.context),x=0;x<u._sb.length;x++)u.__h.push(u._sb[x]);u._sb=[]}else do{u.__d=!1,k&&k(t),d=u.render(u.props,u.state,u.context),u.state=u.__s}while(u.__d&&++S<25);u.state=u.__s,null!=u.getChildContext&&(r=ol(ol({},r),u.getChildContext())),v&&!h&&null!=u.getSnapshotBeforeUpdate&&(g=u.getSnapshotBeforeUpdate(f,p)),E=d,null!=d&&d.type===dl&&null==d.key&&(E=El(d.props.children)),l=yl(e,il(E)?E:[E],t,n,r,s,i,o,l,c,a),u.base=t.__e,t.__u&=-161,u.__h.length&&o.push(u),y&&(u.__E=u.__=null)}catch(e){if(t.__v=null,c||null!=i)if(e.then){for(t.__u|=c?160:128;l&&8==l.nodeType&&l.nextSibling;)l=l.nextSibling;i[i.indexOf(l)]=null,t.__e=l}else{for(C=i.length;C--;)ll(i[C]);Sl(t)}else t.__e=n.__e,t.__k=n.__k,e.then||Sl(t);Ko.__e(e,t,n)}else null==i&&t.__v==n.__v?(t.__k=n.__k,t.__e=n.__e):l=t.__e=Cl(n.__e,t,n,r,s,i,o,c,a);return(d=Ko.diffed)&&d(t),128&t.__u?void 0:l}function Sl(e){e&&e.__c&&(e.__c.__e=!0),e&&e.__k&&e.__k.forEach(Sl)}function xl(e,t,n){for(var r=0;r<n.length;r++)Il(n[r],n[++r],n[++r]);Ko.__c&&Ko.__c(t,e),e.some(function(t){try{e=t.__h,t.__h=[],e.some(function(e){e.call(t)})}catch(e){Ko.__e(e,t.__v)}})}function El(e){return"object"!=typeof e||null==e||e.__b&&e.__b>0?e:il(e)?e.map(El):ol({},e)}function Cl(e,t,n,r,s,i,o,l,c){var a,d,u,h,f,p,g,y=n.props||nl,m=t.props,v=t.type;if("svg"==v?s="http://www.w3.org/2000/svg":"math"==v?s="http://www.w3.org/1998/Math/MathML":s||(s="http://www.w3.org/1999/xhtml"),null!=i)for(a=0;a<i.length;a++)if((f=i[a])&&"setAttribute"in f==!!v&&(v?f.localName==v:3==f.nodeType)){e=f,i[a]=null;break}if(null==e){if(null==v)return document.createTextNode(m);e=document.createElementNS(s,v,m.is&&m),l&&(Ko.__m&&Ko.__m(t,i),l=!1),i=null}if(null==v)y===m||l&&e.data==m||(e.data=m);else{if(i=i&&Vo.call(e.childNodes),!l&&null!=i)for(y={},a=0;a<e.attributes.length;a++)y[(f=e.attributes[a]).name]=f.value;for(a in y)if(f=y[a],"children"==a);else if("dangerouslySetInnerHTML"==a)u=f;else if(!(a in m)){if("value"==a&&"defaultValue"in m||"checked"==a&&"defaultChecked"in m)continue;wl(e,a,null,f,s)}for(a in m)f=m[a],"children"==a?h=f:"dangerouslySetInnerHTML"==a?d=f:"value"==a?p=f:"checked"==a?g=f:l&&"function"!=typeof f||y[a]===f||wl(e,a,f,y[a],s);if(d)l||u&&(d.__html==u.__html||d.__html==e.innerHTML)||(e.innerHTML=d.__html),t.__k=[];else if(u&&(e.innerHTML=""),yl("template"==t.type?e.content:e,il(h)?h:[h],t,n,r,"foreignObject"==v?"http://www.w3.org/1999/xhtml":s,i,o,i?i[0]:n.__k&&hl(n,0),l,c),null!=i)for(a=i.length;a--;)ll(i[a]);l||(a="value","progress"==v&&null==p?e.removeAttribute("value"):null!=p&&(p!==e[a]||"progress"==v&&!p||"option"==v&&p!=y[a])&&wl(e,a,p,y[a],s),a="checked",null!=g&&g!=e[a]&&wl(e,a,g,y[a],s))}return e}function Il(e,t,n){try{if("function"==typeof e){var r="function"==typeof e.__u;r&&e.__u(),r&&null==t||(e.__u=e(t))}else e.current=t}catch(e){Ko.__e(e,n)}}function Ol(e,t,n){var r,s;if(Ko.unmount&&Ko.unmount(e),(r=e.ref)&&(r.current&&r.current!=e.__e||Il(r,null,t)),null!=(r=e.__c)){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(e){Ko.__e(e,t)}r.base=r.__P=null}if(r=e.__k)for(s=0;s<r.length;s++)r[s]&&Ol(r[s],t,n||"function"!=typeof e.type);n||ll(e.__e),e.__c=e.__=e.__e=void 0}function Dl(e,t,n){return this.constructor(e,n)}function Al(e,t,n){var r,s,i;t==document&&(t=document.documentElement),Ko.__&&Ko.__(e,t),r=!1?null:t.__k,s=[],i=[],kl(t,e=t.__k=cl(dl,null,[e]),r||nl,nl,t.namespaceURI,r?null:t.firstChild?Vo.call(t.childNodes):null,s,r?r.__e:t.firstChild,false,i),xl(s,e,i)}Vo=rl.slice,Ko={__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}},Jo=0,ul.prototype.setState=function(e,t){var n;n=null!=this.__s&&this.__s!=this.state?this.__s:this.__s=ol({},this.state),"function"==typeof e&&(e=e(ol({},n),this.props)),e&&ol(n,e),null!=e&&this.__v&&(t&&this._sb.push(t),pl(this))},ul.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),pl(this))},ul.prototype.render=dl,qo=[],Go="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,Qo=function(e,t){return e.__v.__b-t.__v.__b},gl.__r=0,Xo=/(PointerCapture)$|Capture$/i,Zo=0,el=_l(!1),tl=_l(!0);const Tl={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",padding:"16px",boxSizing:"border-box"},DialogInner:{position:"relative",color:"#222",backgroundColor:"#fff",padding:"24px",marginBottom:"2em",maxWidth:"400px",width:"100%",maxHeight:"90%",overflowY:"auto",border:"3px solid #3d3d5d",borderRadius:"8px",boxShadow:"0 0 80px 10px #666",fontFamily:"sans-serif",boxSizing:"border-box"},Input:{height:"35px",width:"100%",maxWidth:"100%",borderColor:"#ccf4",outline:"none",fontSize:"16px",padding:"8px",boxSizing:"border-box",backgroundColor:"#f9f9f9",borderRadius:"4px",border:"1px solid #ccc",marginTop:"6px",fontFamily:"inherit"},Button:{padding:"10px 20px",margin:"0 4px",border:"1px solid #d1d5db",borderRadius:"6px",backgroundColor:"#ffffff",cursor:"pointer",fontSize:"14px",fontWeight:"500",color:"#374151",transition:"all 0.2s ease"},PrimaryButton:{padding:"10px 20px",margin:"0 4px",border:"1px solid #3b82f6",borderRadius:"6px",backgroundColor:"#3b82f6",color:"white",cursor:"pointer",fontSize:"14px",fontWeight:"500",transition:"all 0.2s ease"},ButtonsDiv:{display:"flex",justifyContent:"flex-end",gap:"12px",marginTop:"24px",paddingTop:"20px"},Label:{display:"block",marginBottom:"12px",fontSize:"14px",fontWeight:"500",color:"#333"},WindowHeader:{margin:"0 0 20px 0",fontSize:"18px",fontWeight:"600",color:"#333",borderBottom:"1px solid #eee",paddingBottom:"10px"},ProviderButton:{display:"flex",alignItems:"center",justifyContent:"center",width:"100%",padding:"12px 16px",marginBottom:"10px",border:"1px solid #d1d5db",borderRadius:"6px",backgroundColor:"#ffffff",cursor:"pointer",fontSize:"14px",fontWeight:"500",color:"#374151",transition:"all 0.2s ease",gap:"12px"},ProviderButtonIcon:{width:"20px",height:"20px",flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center"},ProviderButtonText:{flex:1,textAlign:"left"},ProviderGoogle:{backgroundColor:"#ffffff",border:"1px solid #dadce0",color:"#3c4043"},ProviderGitHub:{backgroundColor:"#24292e",border:"1px solid #24292e",color:"#ffffff"},ProviderMicrosoft:{backgroundColor:"#ffffff",border:"1px solid #8c8c8c",color:"#5e5e5e"},ProviderApple:{backgroundColor:"#000000",border:"1px solid #000000",color:"#ffffff"},ProviderCustom:{backgroundColor:"#4f46e5",border:"1px solid #4f46e5",color:"#ffffff"},Divider:{display:"flex",alignItems:"center",margin:"20px 0",color:"#6b7280",fontSize:"13px"},DividerLine:{flex:1,height:"1px",backgroundColor:"#e5e7eb"},DividerText:{padding:"0 12px",color:"#9ca3af"},OtpButton:{display:"flex",alignItems:"center",justifyContent:"center",width:"100%",padding:"12px 16px",border:"1px solid #d1d5db",borderRadius:"6px",backgroundColor:"#f9fafb",cursor:"pointer",fontSize:"14px",fontWeight:"500",color:"#374151",transition:"all 0.2s ease",gap:"12px"}};function jl({children:e,className:t}){return cl("div",{className:`dexie-dialog ${t||""}`},cl("div",{style:Tl.Darken}),cl("div",{style:Tl.DialogOuter},cl("div",{style:Tl.DialogInner},e)))}var Ul,Ll,Pl,Ml,$l=0,Rl=[],Nl=Ko,Bl=Nl.__b,Fl=Nl.__r,Wl=Nl.diffed,zl=Nl.__c,Hl=Nl.unmount,Vl=Nl.__;function Kl(e,t){Nl.__h&&Nl.__h(Ll,e,$l||t),$l=0;var n=Ll.__H||(Ll.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({}),n.__[e]}function Jl(e){return $l=1,function(e,t){var n=Kl(Ul++,2);if(n.t=e,!n.__c&&(n.__=[tc(void 0,t),function(e){var t=n.__N?n.__N[0]:n.__[0],r=n.t(t,e);t!==r&&(n.__N=[r,n.__[1]],n.__c.setState({}))}],n.__c=Ll,!Ll.__f)){var r=function(e,t,r){if(!n.__c.__H)return!0;var i=n.__c.__H.__.filter(function(e){return!!e.__c});if(i.every(function(e){return!e.__N}))return!s||s.call(this,e,t,r);var o=n.__c.props!==e;return i.forEach(function(e){if(e.__N){var t=e.__[0];e.__=e.__N,e.__N=void 0,t!==e.__[0]&&(o=!0)}}),s&&s.call(this,e,t,r)||o};Ll.__f=!0;var s=Ll.shouldComponentUpdate,i=Ll.componentWillUpdate;Ll.componentWillUpdate=function(e,t,n){if(this.__e){var o=s;s=void 0,r(e,t,n),s=o}i&&i.call(this,e,t,n)},Ll.shouldComponentUpdate=r}return n.__N||n.__}(tc,e)}function ql(e){return $l=5,function(e,t){var n=Kl(Ul++,7);return ec(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}(function(){return{current:e}},[])}function Yl(){for(var e;e=Rl.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(Xl),e.__H.__h.forEach(Zl),e.__H.__h=[]}catch(t){e.__H.__h=[],Nl.__e(t,e.__v)}}Nl.__b=function(e){Ll=null,Bl&&Bl(e)},Nl.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),Vl&&Vl(e,t)},Nl.__r=function(e){Fl&&Fl(e),Ul=0;var t=(Ll=e.__c).__H;t&&(Pl===Ll?(t.__h=[],Ll.__h=[],t.__.forEach(function(e){e.__N&&(e.__=e.__N),e.u=e.__N=void 0})):(t.__h.forEach(Xl),t.__h.forEach(Zl),t.__h=[],Ul=0)),Pl=Ll},Nl.diffed=function(e){Wl&&Wl(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(1!==Rl.push(t)&&Ml===Nl.requestAnimationFrame||((Ml=Nl.requestAnimationFrame)||Ql)(Yl)),t.__H.__.forEach(function(e){e.u&&(e.__H=e.u),e.u=void 0})),Pl=Ll=null},Nl.__c=function(e,t){t.some(function(e){try{e.__h.forEach(Xl),e.__h=e.__h.filter(function(e){return!e.__||Zl(e)})}catch(n){t.some(function(e){e.__h&&(e.__h=[])}),t=[],Nl.__e(n,e.__v)}}),zl&&zl(e,t)},Nl.unmount=function(e){Hl&&Hl(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.forEach(function(e){try{Xl(e)}catch(e){t=e}}),n.__H=void 0,t&&Nl.__e(t,n.__v))};var Gl="function"==typeof requestAnimationFrame;function Ql(e){var t,n=function(){clearTimeout(r),Gl&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,35);Gl&&(t=requestAnimationFrame(n))}function Xl(e){var t=Ll,n=e.__c;"function"==typeof n&&(e.__c=void 0,n()),Ll=t}function Zl(e){var t=Ll;e.__c=e.__(),Ll=t}function ec(e,t){return!e||e.length!==t.length||t.some(function(t,n){return t!==e[n]})}function tc(e,t){return"function"==typeof t?t(e):t}function nc({message:e,messageCode:t,messageParams:n}){return e.replace(/\{\w+\}/gi,e=>n[e.substring(1,e.length-1)])}function rc({option:e,onClick:t}){const{displayName:n,iconUrl:r,iconSvg:s,styleHint:i,value:o}=e,l=function(e){const t=Object.assign({},Tl.ProviderButton);if(!e)return t;switch(e){case"google":return Object.assign(Object.assign({},t),Tl.ProviderGoogle);case"github":return Object.assign(Object.assign({},t),Tl.ProviderGitHub);case"microsoft":return Object.assign(Object.assign({},t),Tl.ProviderMicrosoft);case"apple":return Object.assign(Object.assign({},t),Tl.ProviderApple);case"otp":return Object.assign({},Tl.OtpButton);case"custom-oauth2":return Object.assign(Object.assign({},t),Tl.ProviderCustom);default:return t}}(i),c=l.color||"#000000",a=s?s.replace(/fill="currentColor"/gi,`fill="${c}"`).replace(/fill='currentColor'/gi,`fill='${c}'`).replace(/stroke="currentColor"/gi,`stroke="${c}"`).replace(/stroke='currentColor'/gi,`stroke='${c}'`):null;return cl("button",{type:"button",style:l,onClick:t,class:"dxc-option-btn"+(i?` dxc-option-${i}`:""),"aria-label":n},a?cl("span",{style:Tl.ProviderButtonIcon,"aria-hidden":"true",dangerouslySetInnerHTML:{__html:a}}):r?cl("img",{src:r,alt:"",style:Tl.ProviderButtonIcon,"aria-hidden":"true"}):null,cl("span",{style:Tl.ProviderButtonText},n))}function sc(){return cl("div",{style:Tl.Divider},cl("div",{style:Tl.DividerLine}),cl("span",{style:Tl.DividerText},"or"),cl("div",{style:Tl.DividerLine}))}function ic({title:e,alerts:t,fields:n,options:r,submitLabel:s,cancelLabel:i,onCancel:o,onSubmit:l}){const[c,a]=Jl({}),d=ql(null);!function(e,t){var n=Kl(Ul++,4);!Nl.__s&&ec(n.__H,t)&&(n.__=e,n.u=t,Ll.__h.push(n))}(()=>{var e;return null===(e=d.current)||void 0===e?void 0:e.focus()},[]);const u=Object.entries(n||{}),h=u.length>0,f=r&&r.length>0,p=new Map;if(r)for(const e of r){const t=p.get(e.name)||[];t.push(e),p.set(e.name,t)}const g=p.size>1,y=e=>{l({[e.name]:e.value})};return cl(jl,{className:"dxc-login-dlg"},cl(dl,null,cl("h3",{style:Tl.WindowHeader},e),t.map((e,t)=>cl("p",{key:t,style:Tl.Alert[e.type]},nc(e))),f&&cl("div",{class:"dxc-options"},g?Array.from(p.entries()).map(([e,t],n)=>cl(dl,{key:e},n>0&&cl(sc,null),t.map(e=>cl(rc,{key:`${e.name}-${e.value}`,option:e,onClick:()=>y(e)})))):r.map(e=>cl(rc,{key:`${e.name}-${e.value}`,option:e,onClick:()=>y(e)}))),f&&h&&cl(sc,null),h&&cl("form",{onSubmit:e=>{e.preventDefault(),l(c)}},u.map(([e,{type:t,label:n,placeholder:r}],s)=>cl("label",{style:Tl.Label,key:s},n?`${n}: `:"",cl("input",{ref:0===s?d:void 0,type:t,name:e,autoComplete:"on",style:Tl.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)}}))))),cl("div",{style:Tl.ButtonsDiv},cl(dl,null,h&&s&&cl("button",{type:"submit",style:Tl.PrimaryButton,onClick:()=>l(c)},s),i&&cl("button",{style:Tl.Button,onClick:o},i))))}class oc extends ul{constructor(e){super(e),this.observer=e=>this.setState({userInteraction:e}),this.state={userInteraction:void 0}}componentDidMount(){this.subscription=n.from(this.props.db.cloud.userInteraction).subscribe(this.observer)}componentWillUnmount(){this.subscription&&(this.subscription.unsubscribe(),delete this.subscription)}render(e,{userInteraction:t}){return t?cl(ic,Object.assign({},t)):null}}function lc(e){const t=new WeakMap;return n=>{let r=t.get(n);return r||(r=e(n),t.set(n,r)),r}}const cc=lc(e=>new n.BehaviorSubject(qe));function ac(e,t){let r=t,s=n.from(e).pipe(n.map(e=>r=e),n.share({resetOnRefCountZero:()=>n.timer(1e3)}));const i=new n.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 dc=lc(e=>ac(t.liveQuery(()=>e.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})),{})),uc=lc(e=>ac(cc(e._novip).pipe(r.switchMap(n=>t.liveQuery(()=>e.transaction("r","realms","members",()=>Promise.all([e.members.where({userId:n.userId}).toArray(),e.realms.toArray(),n.userId]).then(([e,t,n])=>({selfMembers:e,realms:t,userId:n})))))),{selfMembers:[],realms:[],get userId(){return e.cloud.currentUserId}}));function hc(...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 fc=lc(e=>function(e,t){let r;const s=e.pipe(n.map(e=>r=t(e)));return s.getValue=()=>void 0!==r?r:r=t(e.getValue()),s}(ac(n.combineLatest([uc(e._novip),dc(e._novip)]).pipe(r.map(([{selfMembers:e,realms:t,userId:n},r])=>({selfMembers:e,realms:t,userId:n,globalRoles:r}))),{selfMembers:[],realms:[],userId:qe.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=mt(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:"*"}:hc(...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 pc{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 gc=lc(e=>{const i=cc(e._novip).pipe(r.switchMap(n=>t.liveQuery(()=>e.members.where({email:n.email||""}).toArray()))),o=fc(e._novip),l=uc(e._novip);return ac(n.combineLatest([i,l,o]).pipe(r.map(([t,n,r])=>{const i=(e,t)=>Object.assign(Object.assign({},e),{[t.id]:Object.assign(Object.assign({},t),{realm:r[t.realmId]})}),o=t.reduce(i,{}),l=n.selfMembers.reduce(i,o);return Object.values(l).filter(e=>!e.accepted).map(t=>Object.assign(Object.assign({},t),{accept(){return s(this,void 0,void 0,function*(){yield e.members.update(t.id,{accepted:new Date})})},reject(){return s(this,void 0,void 0,function*(){yield e.members.update(t.id,{rejected:new Date})})}}))})),[])});function yc(e){return r=>{var i;const o=r.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=e.cloud.schema)||void 0===i?void 0:i[l].markedForSync))return;let c;Object.defineProperty(r,"awareness",{get:()=>c||(c=function(e,r,i){const{parentTable:o,parentId:l,parentProp:c,updatesTable:a}=r.meta,d=new To(r),u=Lo(r);return d.on("update",({added:t,updated:n,removed:s},l)=>{const a=t.concat(n).concat(s),u=e.cloud.currentUser.value;if("server"!==l&&u.isLoggedIn&&!vo(e)){const t=((e,t,n=e.states)=>{const r=t.length,s=N();z(s,r);for(let i=0;i<r;i++){const r=t[i],o=n.get(r)||null,l=e.meta.get(r).clock;z(s,r),z(s,l),J(s,JSON.stringify(o))}return B(s)})(d,a);e.messageProducer.next({type:"aware",table:o,prop:c,k:r.meta.parentId,u:t}),i.destroyed&&e.messageProducer.next({type:"doc-close",table:o,prop:c,k:r.meta.parentId})}}),d.on("destroy",()=>{jo(d,[r.clientID],"provider destroyed")}),(()=>{s(this,void 0,void 0,function*(){if(i.destroyed)return;let r=!1,d=1;const h=n.combineLatest([e.cloud.webSocketStatus,u.pipe(n.startWith(null))]).subscribe(([t])=>{if(i.destroyed)return;r="connected"===t;const n=e.cloud.currentUser.value;"connected"===t&&n.isLoggedIn&&!vo(e)&&(++d,f().catch(e=>{}))});function f(){return s(this,void 0,void 0,function*(){const n=d,u=e.table(a),h=e.$syncState,[f,p]=yield e.transaction("r",h,u,()=>s(this,void 0,void 0,function*(){const e=yield u.get(cn),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||d!==n||!r)return;const g={type:"doc-open",table:o,prop:c,k:l,serverRev:p},y=yield u.where("i").between(f,1/0,!1).filter(e=>0===t.cmp(e.k,l)&&!(1&(e.f||0))).toArray();if(!i.destroyed&&d===n&&r){if(y.length>0){const e=Qr(y.map(e=>e.u)),t=Yr(e);g.sv=t}e.messageProducer.next(g)}})}i.addCleanupHandler(h)})})(),d}(e,o,r),Do.set(o,c),c)})}}function mc(e){const t="undefined"!=typeof window?window.location.href:"";if(!t)return null;const n=new URL(t).searchParams.get("dxc-auth");if(!n)return null;let r;try{const e=function(e){const t=(e+"=".repeat((4-e.length%4)%4)).replace(/-/g,"+").replace(/_/g,"/");return atob(t)}(n);r=JSON.parse(e)}catch(e){return null}const{code:s,provider:i,state:o,error:l}=r;if(l){if(l.toLowerCase().includes("access_denied")||l.toLowerCase().includes("access denied"))throw new et("access_denied",i,l);if(l.toLowerCase().includes("email")&&l.toLowerCase().includes("verif"))throw new et("email_not_verified",i,l);throw new et("provider_error",i,l)}return s&&i&&o?{code:s,provider:i,state:o}:null}function vc(){var e;if("undefined"==typeof window||!(null===(e=window.history)||void 0===e?void 0:e.replaceState))return;const t=new URL(window.location.href);if(!t.searchParams.has("dxc-auth"))return;t.searchParams.delete("dxc-auth");const n=t.pathname+(t.searchParams.toString()?`?${t.searchParams.toString()}`:"")+t.hash;window.history.replaceState(null,"",n)}const bc={},wc=new WeakMap,_c=Sc("tx"),kc=Sc("unload");function Sc(e){let t=null,n=!1,r=new Map;return{name:e,run(){return s(this,void 0,void 0,function*(){!n&&r.size>0&&(n=!0,t&&(yield t.catch(()=>{})),setTimeout(()=>{n=!1;const e=r;r=new Map,t=function(e){return s(this,void 0,void 0,function*(){for(const{db:t,parentId:n,triggers:r,parentTable:s,prop:i}of e.values()){const e=Bi.getOrCreateDocument(t,s,i,n);try{const t=Bi.load(e);yield t.whenLoaded;for(const t of r)yield t(e,n)}catch(e){null==e||e.name}finally{Bi.release(e)}}})}(e).finally(()=>{t=null})},0))})},enqueue(e,t,n,s,i){const o=`${e.name}:${t}:${n}:${s}`;let l=r.get(o);l||(l={db:e,parentTable:t,parentId:n,prop:s,triggers:new Set},r.set(o,l)),l.triggers.add(i)}}}function xc(){_c.run()}function Ec(){kc.run()}const Cc={nameSuffix:!0};function Ic(e){const i=e.name,o=cc(e),l=[];let c=!1,a=null,d=null;e.on("ready",e=>s(this,void 0,void 0,function*(){try{yield function(e){return s(this,void 0,void 0,function*(){var i,p,g,y,m,v,b;u=!1;const w=Qi(e);"undefined"!=typeof window&&"undefined"!=typeof document&&((null===(i=w.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),Al(cl(oc,{db:e.vip}),n)):addEventListener("DOMContentLoaded",()=>{t||(document.body.appendChild(n),Al(cl(oc,{db:e.vip}),n))}),{unsubscribe(){try{n.remove()}catch(e){}t=!0},get closed(){return t}}}(e))),w.cloud.isServiceWorkerDB||l.push(function(e){let t=e.cloud.webSocketStatus.value;const s=e.cloud.webSocketStatus.pipe(r.switchMap(e=>{const s=t;t=e;const i=n.of(e);switch(e){case"disconnected":return ko.value?i.pipe(r.debounceTime(500)):i;case"connecting":return"not-started"===s||"error"===s?i:i.pipe(r.debounceTime(4e3));default:return i}}));return n.combineLatest([s,e.syncStateChangedEvent.pipe(r.startWith({phase:"initial"})),cc(e.dx._novip),So]).pipe(r.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:nn?a:"offline",license:"ok"}}))}(w).subscribe(e.cloud.syncState)),l.push(w.syncCompleteEvent.subscribe(f)),w.tables.every(e=>e.core)||function(){throw new t.SchemaError("Version increment needed to allow dexie-cloud change tracking")}();const _="serviceWorker"in navigator?yield navigator.serviceWorker.getRegistrations():[],[k,S]=yield w.transaction("rw",w.$syncState,()=>s(this,void 0,void 0,function*(){var e,t;const{options:n,schema:r}=w.cloud,[s,i,o]=yield Promise.all([w.getOptions(),w.getSchema(),w.getPersistedSyncState()]);if(c){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 w.$syncState.put(e,"options")}}else w.cloud.options=s||null;if((null===(e=w.cloud.options)||void 0===e?void 0:e.tryUseServiceWorker)&&"serviceWorker"in navigator&&_.length>0&&!no?w.cloud.usingServiceWorker=!0:((null===(t=w.cloud.options)||void 0===t?void 0:t.tryUseServiceWorker)&&w.cloud.isServiceWorkerDB,w.cloud.usingServiceWorker=!1),Ho(r,w.cloud.options),Ho(i,w.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 w.$syncState.put(e,"schema"),Object.assign(r,e)}}else w.cloud.schema=i||null;return[null==o?void 0:o.initiallySynced,null==o?void 0:o.realms]}));if(k&&w.setInitiallySynced(!0),function(e){var n,r;for(const s of e.tables)if(null===(r=null===(n=e.cloud.schema)||void 0===n?void 0:n[s.name])||void 0===r?void 0:r.markedForSync){if(s.schema.primKey.auto)throw new t.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 t.SchemaError(`Table ${s.name} cannot be both synced and outbound. Use db.cloud.configure({unsyncedTables: [${JSON.stringify(s.name)}]}) to blacklist it from sync`)}}(w),h(),!w.cloud.isServiceWorkerDB){l.push(t.liveQuery(()=>w.getCurrentUser()).subscribe(o)),l.push(t.liveQuery(()=>w.getPersistedSyncState()).subscribe(w.cloud.persistedSyncState)),yield n.firstValueFrom(n.combineLatest([o.pipe(r.skip(1),r.take(1)),w.cloud.persistedSyncState.pipe(r.skip(1),r.take(1))]));const e=yc(w);Bi.on.new.subscribe(e),w.dx.once("close",()=>{Bi.on.new.unsubscribe(e)})}let x=!1;const E=yield w.getCurrentUser();if(a&&!w.cloud.isServiceWorkerDB){const{code:e,provider:t}=a;a=null;try{x=yield ot(w,{oauthCode:e,provider:t})}catch(e){}}const C=null===(p=w.cloud.options)||void 0===p?void 0:p.requireAuth;C&&(w.cloud.isServiceWorkerDB?yield n.firstValueFrom(o.pipe(r.filter(e=>!!e.isLoggedIn),r.take(1))):"object"==typeof C?(!E.isLoggedIn||C.userId&&E.userId!==C.userId||C.email&&E.email!==C.email)&&(x=yield ot(w,C)):E.isLoggedIn||(x=yield ot(w))),!E.isLoggedIn||S&&S.includes(E.userId)||(x=!0),d&&d.stop(),d=null,h();const I=(null===(g=w.cloud.options)||void 0===g?void 0:g.databaseUrl)&&(!k||x);I&&(yield function(e,t,n){return s(this,void 0,void 0,function*(){yield _o(e,zi,()=>Hi(e,t,n,{isInitialSync:!0}))})}(w,w.cloud.options,w.cloud.schema),w.setInitiallySynced(!0)),h(),w.cloud.usingServiceWorker&&(null===(y=w.cloud.options)||void 0===y?void 0:y.databaseUrl)?(I||De(w,"push").catch(()=>{}),function(e){return s(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){}})}(w).catch(()=>{})):(null===(m=w.cloud.options)||void 0===m?void 0:m.databaseUrl)&&w.cloud.schema&&!w.cloud.isServiceWorkerDB&&(d=zo(w,w.cloud.options,w.cloud.schema),d.start(),I||Ae(w,"push")),h(),w.cloud.isServiceWorkerDB||l.push(n.fromEvent(self,"online").subscribe(()=>{w.syncStateChangedEvent.next({phase:"not-in-sync"}),vo(w)||Ae(w,"push")}),n.fromEvent(self,"offline").subscribe(()=>{w.syncStateChangedEvent.next({phase:"offline"})})),!(null===(v=w.cloud.options)||void 0===v?void 0:v.databaseUrl)||(null===(b=w.cloud.options)||void 0===b?void 0:b.disableWebSocket)||ro||l.push(function(e){var t;if(!(null===(t=e.cloud.options)||void 0===t?void 0:t.databaseUrl))throw new Error("No database URL to connect WebSocket to");const i=e.messageConsumer.readyToServe.pipe(r.filter(e=>e),r.switchMap(()=>e.getPersistedSyncState()),r.filter(e=>e&&e.serverRevision),r.switchMap(e=>s(this,void 0,void 0,function*(){return{type:"ready",rev:e.serverRevision,realmSetHash:yield ht(e)}}))),o=n.merge(i,e.messageProducer);return function t(){return e.cloud.persistedSyncState.pipe(r.filter(e=>null==e?void 0:e.serverRevision),r.take(1),r.switchMap(t=>e.cloud.currentUser.pipe(r.map(e=>[e,t]))),r.switchMap(([e,t])=>So.pipe(r.map(n=>[n?e:null,t]))),r.switchMap(([t,s])=>(null==t?void 0:t.isLoggedIn)&&!(null==s?void 0:s.realms.includes(t.userId))?e.cloud.persistedSyncState.pipe(r.filter(e=>(null==e?void 0:e.realms.includes(t.userId))||!1),r.take(1),r.map(e=>[t,e])):new n.BehaviorSubject([t,s])),r.switchMap(e=>s(this,[e],void 0,function*([e,t]){return[e,yield ht(t)]})),r.distinctUntilChanged(([e,t],[n,r])=>e===n&&t===r),r.switchMap(([r,s])=>{var i;return(null===(i=e.cloud.persistedSyncState)||void 0===i?void 0:i.value)?r?new Po(e,e.cloud.persistedSyncState.value.serverRevision,e.cloud.persistedSyncState.value.yServerRevision,s,e.cloud.persistedSyncState.value.clientIdentity,o,e.cloud.webSocketStatus,r):n.from([]):t()}),r.catchError(i=>"TokenExpiredError"===(null==i?void 0:i.name)?n.of(!0).pipe(r.switchMap(()=>s(this,void 0,void 0,function*(){const t=yield e.getCurrentUser(),n=yield Ve(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})})),r.switchMap(()=>t())):n.throwError(()=>i)),r.catchError(s=>(e.cloud.webSocketStatus.next("error"),s instanceof Ro?n.throwError(()=>s):n.from(No()).pipe(r.switchMap(()=>t())))))}().subscribe({next:t=>{t&&e.messageConsumer.enqueue(t)},error:e=>{},complete:()=>{}})}(w))})}(e)}catch(e){}}),!0);let u=!1;function h(){if(u)throw new t.DatabaseClosedError}e.once("close",()=>{l.forEach(e=>e.unsubscribe()),l.splice(0,l.length),u=!0,d&&d.stop(),d=null,o.next(qe)});const f=new n.Subject;var p;e.cloud={version:"4.3.2",options:Object.assign({},Cc),schema:null,get currentUserId(){return o.value.userId||qe.userId},currentUser:o,syncState:new n.BehaviorSubject({phase:"initial",status:"not-started"}),events:{syncComplete:f},persistedSyncState:new n.BehaviorSubject(void 0),userInteraction:new n.BehaviorSubject(void 0),webSocketStatus:new n.BehaviorSubject("not-started"),login(t){return s(this,void 0,void 0,function*(){const n=Qi(e);yield n.cloud.sync(),yield ot(n,t)})},invites:gc(e),roles:dc(e),configure(t){if(t=e.cloud.options=Object.assign(Object.assign({},e.cloud.options),t),c=!0,t.databaseUrl&&t.nameSuffix&&(e.name=`${i}-${function(e){const t=new URL(e);return"/"===t.pathname?t.hostname.split(".")[0]:t.pathname.split("/")[1]}(t.databaseUrl)}`,Qi(e).reconfigure()),Ho(e.cloud.schema,e.cloud.options),"undefined"!=typeof window&&window.location)try{const e=mc();e&&(vc(),a={code:e.code,provider:e.provider})}catch(e){vc()}},logout(){return s(this,arguments,void 0,function*({force:t}={}){t?yield Qe(Qi(e),{deleteUnsyncedData:!0}):yield Ge(Qi(e))})},sync(){return s(this,arguments,void 0,function*({wait:i,purpose:o}={wait:!0,purpose:"push"}){var l;void 0===i&&(i=!0);const c=Qi(e);if("ok"!==((null===(l=c.cloud.currentUser.value.license)||void 0===l?void 0:l.status)||"ok")&&(yield ze(c)),"pull"===o){const e=c.cloud.persistedSyncState.value;if(Ae(c,o),i){const t=yield n.firstValueFrom(c.cloud.persistedSyncState.pipe(r.filter(t=>null!=(null==t?void 0:t.timestamp)&&(!e||t.timestamp>e.timestamp))));if(null==t?void 0:t.error)throw new Error("Sync error: "+t.error)}}else if(yield Bo(c)){const e=c.cloud.persistedSyncState.value;Ae(c,o),i&&(yield n.firstValueFrom(n.from(t.liveQuery(()=>s(this,void 0,void 0,function*(){const t=yield Bo(c),n=yield c.getPersistedSyncState();if((null==n?void 0:n.timestamp)!==(null==e?void 0:e.timestamp)&&(null==n?void 0:n.error))throw new Error("Sync error: "+n.error);return t}))).pipe(r.filter(e=>!e))))}})},permissions:(t,n)=>function(e,t,n){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(!n){if("function"!=typeof t.table)throw new TypeError("Missing 'table' argument to permissions and table could not be extracted from entity");n=t.table()}const o=fc(e),l=t=>{const r=t[i||e.cloud.currentUserId];return r?new pc(r.permissions,n,void 0===i||i===e.cloud.currentUserId||s===e.cloud.currentUserId):new pc({},n,!s||s===e.cloud.currentUserId)},c=o.pipe(r.map(l));return c.getValue=()=>l(o.getValue()),c}(e._novip,t,n)},e.Version.prototype._parseStoresSpec=t.override(e.Version.prototype._parseStoresSpec,t=>wo(t,e)),e.Table.prototype.newId=function({colocateWith:t}={}){const n=t&&t.substr(t.length-3);return ho(e.cloud.schema[this.name].idPrefix||"",n)},e.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)||""},e.use(bo({currentUserObservable:e.cloud.currentUser,db:Qi(e)})),e.use((p=Qi(e),{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,c;const a=e.trans;if(a.disableChangeTracking)return n.mutate(e);const d=null!==(s=null===(r=a.currentUser)||void 0===r?void 0:r.userId)&&void 0!==s?s:qe.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===(c=(l=n.schema.primaryKey).extractKey)||void 0===c?void 0:c.call(l,t);"string"==typeof r&&"#"===r[0]&&"put"===e.type&&(delete e.criteria,delete e.changeSpec,e.upsert||delete e.updates,t.$ts=Date.now())}}return n.mutate(e)}})}})})),e.use(fo(Qi(e)))}Ic.version="4.3.2",t.Cloud=Ic,e.default=Ic,e.defineYDocTrigger=function(e,n,r){var s,i;const o=null===(i=null===(s=e.schema.yProps)||void 0===s?void 0:s.find(e=>e.prop===n))||void 0===i?void 0:i.updatesTable;if(!o)throw new Error(`Table ${e.name} does not have a Yjs property named ${n}`);bc[o]={trigger:r,parentTable:e.name,prop:n};const l=e.db._novip;let c=wc.get(l);c||(c=(e=>({stack:"dbcore",level:10,name:"yTriggerMiddleware",create:n=>Object.assign(Object.assign({},n),{transaction:(e,t,r)=>{const s=n.transaction(e,t,r);return"readonly"===t?s:e.some(e=>bc[e])?(s.addEventListener("complete",xc),s):s},table:r=>{const s=n.table(r),i=bc[r];if(!i)return s;const{trigger:o,parentTable:l,prop:c}=i;return Object.assign(Object.assign({},s),{mutate(n){var r;switch(n.type){case"add":for(const t of n.values){if(null==t.k)continue;const n=t.k,s=Bi.getDocCache(e).find(l,n,c);(s&&(null===(r=Bi.for(s))||void 0===r?void 0:r.refCount)?kc:_c).enqueue(e,l,n,c,o)}break;case"delete":n.trans._rejecting_y_ypdate&&s.getMany({keys:n.keys,trans:n.trans,cache:"immutable"}).then(n=>{const r=new t.RangeSet;for(const{k:e}of n)null!=e&&r.addKey(e);for(const t of r)_c.enqueue(e,l,t.from,c,o)})}return s.mutate(n)}})}})}))(l),wc.set(l,c)),l.use(c),Bi.on("beforeunload",Ec)},e.dexieCloud=Ic,e.getTiedObjectId=function(e){return e.startsWith("rlm~")?e.substr(4):null},e.getTiedRealmId=function(e){return"rlm~"+e},e.resolveText=nc,Object.defineProperty(e,"__esModule",{value:!0})});
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("dexie"),require("rxjs"),require("rxjs/operators")):"function"==typeof define&&define.amd?define(["exports","dexie","rxjs","rxjs/operators"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).DexieCloud={},e.Dexie,e.rxjs,e.rxjs.operators)}(this,function(e,t,n,r){"use strict";function s(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 i(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 o(e){return this instanceof o?(this.v=e,this):new o(e)}function l(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,s=n.apply(e,t||[]),i=[];return r=Object.create(("function"==typeof AsyncIterator?AsyncIterator:Object).prototype),l("next"),l("throw"),l("return",function(e){return function(t){return Promise.resolve(t).then(e,d)}}),r[Symbol.asyncIterator]=function(){return this},r;function l(e,t){s[e]&&(r[e]=function(t){return new Promise(function(n,r){i.push([e,t,n,r])>1||c(e,t)})},t&&(r[e]=t(r[e])))}function c(e,t){try{!function(e){e.value instanceof o?Promise.resolve(e.value.v).then(a,d):u(i[0][2],e)}(s[e](t))}catch(e){u(i[0][3],e)}}function a(e){c("next",e)}function d(e){c("throw",e)}function u(e,t){e(t),i.shift(),i.length&&c(i[0][0],i[0][1])}}function c(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=i(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)})}}}"function"==typeof SuppressedError&&SuppressedError;const a={}.hasOwnProperty;function d(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)d(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 a.call(e,t)}(e,o)||(c=e[o]={}),d(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=h)=>{const n=Buffer.alloc(e);return t(n),n.toString("base64")}:()=>{throw new Error("No implementation of randomString was found")};function h(e){for(let t=0;t<e.length;++t)e[t]=Math.floor(256*Math.random())}function f(e){return"string"==typeof e||!!(Array.isArray(e)&&e.some(e=>f(e))&&e.every(p))}function p(e){return"string"==typeof e||"number"==typeof e||Array.isArray(e)&&e.every(p)}function g(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))d(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 y(e,t){for(const{table:n,muts:r}of t)for(const t of r)g(e,n,t)}const m=Math.floor,v=Math.abs,b=(e,t)=>e<t?e:t,w=(e,t)=>e>t?e:t,_=e=>0!==e?e<0:1/e<0,k=64,S=128,x=127,E=Number.MAX_SAFE_INTEGER,C=Number.isInteger||(e=>"number"==typeof e&&isFinite(e)&&m(e)===e),I=()=>new Set,O=e=>e[e.length-1],D=(e,t)=>{for(let n=0;n<t.length;n++)e.push(t[n])},A=Array.from,T=Array.isArray,j=/^\s*/g,U=/([A-Z])/g,L=(e,t)=>(e=>e.replace(j,""))(e.replace(U,e=>`${t}${(e=>e.toLowerCase())(e)}`)),P="undefined"!=typeof TextEncoder?new TextEncoder:null,R=P?e=>P.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 $="undefined"==typeof TextDecoder?null:new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});$&&1===$.decode(new Uint8Array).length&&($=null);class M{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}}const N=()=>new M,B=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},F=(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},W=F,z=(e,t)=>{for(;t>x;)F(e,S|x&t),t=m(t/128);F(e,x&t)},H=(e,t)=>{const n=_(t);for(n&&(t=-t),F(e,(t>63?S:0)|(n?k:0)|63&t),t=m(t/64);t>0;)F(e,(t>x?S:0)|x&t),t=m(t/128)},V=new Uint8Array(3e4),K=V.length/3,J=P&&P.encodeInto?(e,t)=>{if(t.length<K){const n=P.encodeInto(t,V).written||0;z(e,n);for(let t=0;t<n;t++)F(e,V[t])}else Y(e,R(t))}:(e,t)=>{const n=unescape(encodeURIComponent(t)),r=n.length;z(e,r);for(let t=0;t<r;t++)F(e,n.codePointAt(t))},q=(e,t)=>{const n=e.cbuf.length,r=e.cpos,s=b(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(w(2*n,i)),e.cbuf.set(t.subarray(s)),e.cpos=i)},Y=(e,t)=>{z(e,t.byteLength),q(e,t)},G=(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*w(n,t)),e.cpos=0)})(e,t);const n=new DataView(e.cbuf.buffer,e.cpos,t);return e.cpos+=t,n},Q=(e,t)=>G(e,8).setBigUint64(0,t,!1),X=new DataView(new ArrayBuffer(4)),Z=(e,t)=>{switch(typeof t){case"string":F(e,119),J(e,t);break;case"number":C(t)&&v(t)<=2147483647?(F(e,125),H(e,t)):(n=t,X.setFloat32(0,n),X.getFloat32(0)===n?(F(e,124),((e,t)=>{G(e,4).setFloat32(0,t,!1)})(e,t)):(F(e,123),((e,t)=>{G(e,8).setFloat64(0,t,!1)})(e,t)));break;case"bigint":F(e,122),((e,t)=>{G(e,8).setBigInt64(0,t,!1)})(e,t);break;case"object":if(null===t)F(e,126);else if(T(t)){F(e,117),z(e,t.length);for(let n=0;n<t.length;n++)Z(e,t[n])}else if(t instanceof Uint8Array)F(e,116),Y(e,t);else{F(e,118);const n=Object.keys(t);z(e,n.length);for(let r=0;r<n.length;r++){const s=n[r];J(e,s),Z(e,t[s])}}break;case"boolean":F(e,t?120:121);break;default:F(e,127)}var n};class ee extends M{constructor(e){super(),this.w=e,this.s=null,this.count=0}write(e){this.s===e?this.count++:(this.count>0&&z(this,this.count-1),this.count=1,this.w(this,e),this.s=e)}}const te=e=>{e.count>0&&(H(e.encoder,1===e.count?e.s:-e.s),e.count>1&&z(e.encoder,e.count-2))};class ne{constructor(){this.encoder=new M,this.s=0,this.count=0}write(e){this.s===e?this.count++:(te(this),this.count=1,this.s=e)}toUint8Array(){return te(this),B(this.encoder)}}const re=e=>{if(e.count>0){const t=2*e.diff+(1===e.count?0:1);H(e.encoder,t),e.count>1&&z(e.encoder,e.count-2)}};class se{constructor(){this.encoder=new M,this.s=0,this.count=0,this.diff=0}write(e){this.diff===e-this.s?(this.s=e,this.count++):(re(this),this.count=1,this.diff=e-this.s,this.s=e)}toUint8Array(){return re(this),B(this.encoder)}}class ie{constructor(){this.sarr=[],this.s="",this.lensE=new ne}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 M;return this.sarr.push(this.s),this.s="",J(e,this.sarr.join("")),q(e,this.lensE.toUint8Array()),B(e)}}const oe=e=>new Error(e),le=()=>{throw oe("Method unimplemented")},ce=()=>{throw oe("Unexpected case")},ae=oe("Unexpected end of array"),de=oe("Integer out of Range");class ue{constructor(e){this.arr=e,this.pos=0}}const he=e=>new ue(e),fe=e=>e.pos!==e.arr.length,pe=e=>((e,t)=>{const n=new Uint8Array(e.arr.buffer,e.pos+e.arr.byteOffset,t);return e.pos+=t,n})(e,ye(e)),ge=e=>e.arr[e.pos++],ye=e=>{let t=0,n=1;const r=e.arr.length;for(;e.pos<r;){const r=e.arr[e.pos++];if(t+=(r&x)*n,n*=128,r<S)return t;if(t>E)throw de}throw ae},me=e=>{let t=e.arr[e.pos++],n=63&t,r=64;const s=(t&k)>0?-1:1;if(0===(t&S))return s*n;const i=e.arr.length;for(;e.pos<i;){if(t=e.arr[e.pos++],n+=(t&x)*r,r*=128,t<S)return s*n;if(n>E)throw de}throw ae},ve=$?e=>$.decode(pe(e)):e=>{let t=ye(e);if(0===t)return"";{let n=String.fromCodePoint(ge(e));if(--t<100)for(;t--;)n+=String.fromCodePoint(ge(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))}},be=(e,t)=>{const n=new DataView(e.arr.buffer,e.arr.byteOffset+e.pos,t);return e.pos+=t,n},we=e=>be(e,8).getBigUint64(0,!1),_e=[e=>{},e=>null,me,e=>be(e,4).getFloat32(0,!1),e=>be(e,8).getFloat64(0,!1),e=>be(e,8).getBigInt64(0,!1),e=>!1,e=>!0,ve,e=>{const t=ye(e),n={};for(let r=0;r<t;r++){n[ve(e)]=ke(e)}return n},e=>{const t=ye(e),n=[];for(let r=0;r<t;r++)n.push(ke(e));return n},pe],ke=e=>_e[127-ge(e)](e);class Se extends ue{constructor(e,t){super(e),this.reader=t,this.s=null,this.count=0}read(){return 0===this.count&&(this.s=this.reader(this),fe(this)?this.count=ye(this)+1:this.count=-1),this.count--,this.s}}class xe extends ue{constructor(e){super(e),this.s=0,this.count=0}read(){if(0===this.count){this.s=me(this);const e=_(this.s);this.count=1,e&&(this.s=-this.s,this.count=ye(this)+2)}return this.count--,this.s}}class Ee extends ue{constructor(e){super(e),this.s=0,this.count=0,this.diff=0}read(){if(0===this.count){const e=me(this),t=1&e;this.diff=m(e/2),this.count=1,t&&(this.count=ye(this)+2)}return this.s+=this.diff,this.count--,this.s}}class Ce{constructor(e){this.decoder=new xe(e),this.str=ve(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}}async function*Ie(e){let t=0,n=new Uint8Array(4),r=0,s=[],i=0;for await(const o of e){const e=new DataView(o.buffer,o.byteOffset,o.byteLength);let l=0;for(;l<o.byteLength;)switch(t){case 0:if(l+4>o.byteLength){for(const e of o.slice(l)){if(4===r)break;n[r++]=e,++l}if(r<4)break}else if(r>0&&r<4)for(const e of o.slice(l,l+4-r))n[r++]=e,++l;case 1:i=4===r?new DataView(n.buffer,0,4).getUint32(0,!1):e.getUint32(l,!1),r?r=0:l+=4;case 2:if(l>=o.byteLength){t=2;break}if(l+i>o.byteLength)s.push(o.slice(l)),i-=o.byteLength-l,t=2,l=o.byteLength;else{if(s.length>0){const e=new Uint8Array(s.reduce((e,t)=>e+t.byteLength,i));let t=0;for(const n of s)e.set(n,t),t+=n.byteLength;e.set(o.slice(l,l+i),t),s=[],yield e}else yield o.slice(l,l+i);l+=i,t=0}}}}let Oe=!1;function De(e,t){return s(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){Oe||(Oe=!0)}})}function Ae(e,t){e.cloud.usingServiceWorker?De(e,t):e.localSyncEvent.next({purpose:t})}const Te="fromBase64"in Uint8Array,je="toBase64"in Uint8Array.prototype,Ue="undefined"!=typeof Buffer?e=>Buffer.from(e,"base64"):Te?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},Le="undefined"!=typeof Buffer?e=>ArrayBuffer.isView(e)?Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("base64"):Buffer.from(e).toString("base64"):je?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(""))};class Pe 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}}const Re={},$e={google:'<svg viewBox="0 0 24 24" width="20" height="20"><path fill="#4285F4" d="M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z"/><path fill="#34A853" d="M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z"/><path fill="#FBBC05" d="M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z"/><path fill="#EA4335" d="M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z"/></svg>',github:'<svg viewBox="0 0 24 24" width="20" height="20" fill="currentColor"><path d="M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0024 12c0-6.63-5.37-12-12-12z"/></svg>',microsoft:'<svg viewBox="0 0 24 24" width="20" height="20"><rect fill="#F25022" x="1" y="1" width="10" height="10"/><rect fill="#00A4EF" x="1" y="13" width="10" height="10"/><rect fill="#7FBA00" x="13" y="1" width="10" height="10"/><rect fill="#FFB900" x="13" y="13" width="10" height="10"/></svg>',apple:'<svg viewBox="0 0 24 24" width="20" height="20" fill="currentColor"><path d="M18.71 19.5c-.83 1.24-1.71 2.45-3.05 2.47-1.34.03-1.77-.79-3.29-.79-1.53 0-2 .77-3.27.82-1.31.05-2.3-1.32-3.14-2.53C4.25 17 2.94 12.45 4.7 9.39c.87-1.52 2.43-2.48 4.12-2.51 1.28-.02 2.5.87 3.29.87.78 0 2.26-1.07 3.81-.91.65.03 2.47.26 3.64 1.98-.09.06-2.17 1.28-2.15 3.81.03 3.02 2.65 4.03 2.68 4.04-.03.07-.42 1.44-1.38 2.83M13 3.5c.73-.83 1.94-1.46 2.94-1.5.13 1.17-.34 2.35-1.04 3.19-.69.85-1.83 1.51-2.95 1.42-.15-1.15.41-2.35 1.05-3.11z"/></svg>'};function Me(e){return s(this,void 0,void 0,function*(){var t;let n;if($e[e.type])n=$e[e.type];else if(null===(t=e.iconUrl)||void 0===t?void 0:t.toLowerCase().endsWith(".svg")){const t=yield function(e){return s(this,void 0,void 0,function*(){if(Re[e])return Re[e];try{const t=yield fetch(e);if(t.ok){const n=yield t.text();if(n.includes("<svg"))return Re[e]=n,n}}catch(e){}return null})}(e.iconUrl);t&&(n=t)}return{name:"provider",value:e.name,displayName:`Continue with ${e.displayName}`,iconSvg:n,iconUrl:!n&&e.iconUrl?e.iconUrl:void 0,styleHint:e.type}})}function Ne(e,n){return new Promise((r,s)=>{const i=Object.assign(Object.assign({submitLabel:"Submit",cancelLabel:"Cancel"},n),{onSubmit:t=>{e.next(void 0),r(t)},onCancel:()=>{e.next(void 0),s(new t.AbortError("User cancelled"))}});e.next(i)})}function Be(e,t,...n){return Ne(e,{type:"message-alert",title:t,alerts:n,fields:{},submitLabel:"OK",cancelLabel:null})}function Fe(e,t,n){return s(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 Ne(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 We(e,t,n){return s(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 Ne(e,{type:"otp",title:"Enter OTP",alerts:r,fields:{otp:{type:"otp",label:"OTP",placeholder:"Paste OTP here"}}});return s})}class ze extends Error{constructor(e){super(`OAuth redirect initiated for provider: ${e}`),this.name="OAuthRedirectError",this.provider=e}}function He(e){return s(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 d=yield Ke(e.cloud.options.databaseUrl,s);return yield e.table("$logins").update(a.sub,{accessToken:d.accessToken,accessTokenExpiration:d.accessTokenExpiration,claims:d.claims,license:d.license,data:d.data}),d})}function Ve(e,n,r,i,o){return s(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 Ke(e,n):yield function(e,n,r,i){return s(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:s,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(!s||!o)throw new Error("Could not generate RSA keypair");e.nonExportablePrivateKey=s;const l=function(e){const t=Le(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));e.publicKey=o;try{const t=yield n({public_key:l,hints:i});if("error"===t.type)throw new Pe(t);if("tokens"!==t.type)throw new Error(`Unexpected response type from token endpoint: ${t.type}`);return e.accessToken=t.accessToken,e.accessTokenExpiration=new Date(t.accessTokenExpiration),e.refreshToken=t.refreshToken,t.refreshTokenExpiration&&(e.refreshTokenExpiration=new Date(t.refreshTokenExpiration)),e.userId=t.claims.sub,e.email=t.claims.email,e.name=t.claims.name,e.claims=t.claims,e.license={type:t.userType,status:t.claims.license||"ok"},e.data=t.data,null!=t.evalDaysLeft&&(e.license.evalDaysLeft=t.evalDaysLeft),null!=t.userValidUntil&&(e.license.validUntil=new Date(t.userValidUntil)),t.alerts&&t.alerts.length>0&&(yield Ne(r,{type:"message-alert",title:"Authentication Alert",fields:{},alerts:t.alerts})),e}catch(e){if(e instanceof ze||"OAuthRedirectError"===(null==e?void 0:e.name))throw e;if(e instanceof Pe)throw yield Be(r,e.title,{type:"error",messageCode:e.messageCode,message:e.message,messageParams:{}}),e;let n="We're having a problem authenticating right now.";if(e instanceof TypeError){n=void 0!==typeof navigator&&!navigator.onLine?"You seem to be offline. Please connect to the internet and try again.":t.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 Be(r,"Authentication Failed",{type:"error",messageCode:"GENERIC_ERROR",message:n,messageParams:{}}).catch(()=>{})}throw e}})}(n,r,i,o)})}function Ke(e,t){return s(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=Le(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 Pe(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 Je=new WeakMap;class qe{constructor(e,t){Je.set(this,e),Object.assign(this,t)}static load(e,t){return e.table("$logins").get(t).then(n=>new qe(e,n||{userId:t,claims:{sub:t},lastLogin:new Date(0)}))}save(){return s(this,void 0,void 0,function*(){Je.get(this).table("$logins").put(this)})}}const Ye={userId:"unauthorized",name:"Unauthorized",claims:{sub:"unauthorized"},lastLogin:new Date(0)};try{Object.freeze(Ye),Object.freeze(Ye.claims)}catch(e){}function Ge(e,t){return n.firstValueFrom(n.from(e).pipe(n.filter(t)))}function Qe(e){return s(this,void 0,void 0,function*(){const t=yield Xe(e);if(t){if(!(yield function(e,t,n){return s(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 Ne(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 Xe(e,{deleteUnsyncedData:!0})}})}function Xe(e){return s(this,arguments,void 0,function*(e,{deleteUnsyncedData:t=!1}={}){const[n,r]=yield e.dx.transaction("rw",e.dx.tables,n=>s(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 r&&(yield Ge(e.cloud.currentUser,e=>e.userId===Ye.userId),yield e.cloud.sync({purpose:"pull",wait:!0})),n})}class Ze extends Error{constructor(e,t){super(t||`${e.status} ${e.statusText}`),this.httpStatus=e.status}get name(){return"HttpError"}}const et={access_denied:"Access was denied by the authentication provider.",invalid_state:"The authentication response could not be verified. Please try again.",email_not_verified:"Your email address must be verified before you can log in.",expired_code:"The authentication code has expired. Please try again.",provider_error:"An error occurred with the authentication provider.",network_error:"A network error occurred during authentication. Please check your connection and try again."};class tt extends Error{constructor(e,t,n){super(n||et[e]),this.name="OAuthError",this.code=e,this.provider=t}get userMessage(){return et[this.code]||this.message}}const nt={providers:[],otpEnabled:!0};function rt(e){return s(this,arguments,void 0,function*(e,t=!0){if(!t)return nt;try{const t=yield fetch(`${e}/auth-providers`,{method:"GET",headers:{Accept:"application/json"},mode:"cors"});return 404===t.status?nt:t.ok?yield t.json():nt}catch(e){return nt}})}function st(e){"undefined"!=typeof sessionStorage&&sessionStorage.setItem("dexie-cloud-oauth-provider",e.provider);const t=function(e){const t=new URL(`${e.databaseUrl}/oauth/login/${e.provider}`),n=e.redirectUri||("undefined"!=typeof window?window.location.href:"");return n&&t.searchParams.set("redirect_uri",n),t.toString()}(e);window.location.href=t}function it(e){const{userInteraction:n}=e.cloud;return function(r){return s(this,arguments,void 0,function*({public_key:r,hints:i}){var o,l;let c;const a=null===(o=e.cloud.options)||void 0===o?void 0:o.databaseUrl;if(!a)throw new Error("No database URL given.");if((null==i?void 0:i.oauthCode)&&i.provider)return yield function(e){return s(this,void 0,void 0,function*(){const{databaseUrl:t,code:n,publicKey:r,scopes:s=["ACCESS_DB"]}=e,i={grant_type:"authorization_code",code:n,public_key:r,scopes:s};try{const e=yield fetch(`${t}/token`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(i),mode:"cors"});if(!e.ok){if(400===e.status||401===e.status)try{const t=yield e.json();if("error"===t.type){if("INVALID_OTP"===t.messageCode)throw new tt("expired_code",void 0,t.message);throw new Pe(t)}}catch(e){if(e instanceof tt||e instanceof Pe)throw e}const t=yield e.text().catch(()=>e.statusText);throw new tt("provider_error",void 0,`Token exchange failed: ${e.status} ${t}`)}const n=yield e.json();if("error"===n.type)throw new Pe(n);if("tokens"!==n.type)throw new tt("provider_error",void 0,`Unexpected response type: ${n.type}`);return n}catch(e){if(e instanceof tt||e instanceof Pe)throw e;if(e instanceof TypeError)throw new tt("network_error");throw e}})}({databaseUrl:a,code:i.oauthCode,publicKey:r,scopes:["ACCESS_DB"]});if(null==i?void 0:i.provider)throw ot(e,i.provider),new ze(i.provider);if("demo"===(null==i?void 0:i.grant_type)){c={demo_user:yield Fe(n,"Enter a demo user email",(null==i?void 0:i.email)||(null==i?void 0:i.userId)),grant_type:"demo",scopes:["ACCESS_DB"],public_key:r}}else if((null==i?void 0:i.otpId)&&i.otp)c={grant_type:"otp",otp_id:i.otpId,otp:i.otp,scopes:["ACCESS_DB"],public_key:r};else{const o=!1!==(null===(l=e.cloud.options)||void 0===l?void 0:l.socialAuth),d=yield rt(a,o);if(d.providers.length>0){const r=yield function(e,n,r){return s(this,arguments,void 0,function*(e,n,r,s="Choose login method",i=[]){const o=[...yield Promise.all(n.map(Me))];return r&&o.push({name:"otp",value:"email",displayName:"Continue with email",iconSvg:'<svg viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="2"><rect x="2" y="4" width="20" height="16" rx="2"/><path d="M22 6L12 13 2 6"/></svg>',styleHint:"otp"}),new Promise((n,r)=>{const l={type:"generic",title:s,alerts:i,options:o,fields:{},submitLabel:"",cancelLabel:"Cancel",onSubmit:t=>{e.next(void 0),n("otp"in t?{type:"otp"}:"provider"in t?{type:"provider",provider:t.provider}:{type:"otp"})},onCancel:()=>{e.next(void 0),r(new t.AbortError("User cancelled"))}};e.next(l)})})}(n,d.providers,d.otpEnabled,"Sign in");if("provider"===r.type)throw ot(e,r.provider),new ze(r.provider)}const u=yield Fe(n,"Enter email address",null==i?void 0:i.email);c=/@demo.local$/.test(u)?{demo_user:u,grant_type:"demo",scopes:["ACCESS_DB"],public_key:r}:{email:u,grant_type:"otp",scopes:["ACCESS_DB"]}}const d=yield fetch(`${a}/token`,{body:JSON.stringify(c),method:"post",headers:{"Content-Type":"application/json",mode:"cors"}});if(200!==d.status){const e=yield d.text();throw yield Be(n,"Token request failed",{type:"error",messageCode:"GENERIC_ERROR",message:e,messageParams:{}}).catch(()=>{}),new Ze(d,e)}const u=yield d.json();if("tokens"===u.type||"error"===u.type)return u;if("otp"===c.grant_type&&"email"in c){if("otp-sent"!==u.type)throw new Error(`Unexpected response from ${a}/token`);const e=yield We(n,c.email),t=Object.assign(Object.assign({},c),{otp:e||"",otp_id:u.otp_id,public_key:r});let s=yield fetch(`${a}/token`,{body:JSON.stringify(t),method:"post",headers:{"Content-Type":"application/json"},mode:"cors"});for(;401===s.status;){const e=yield s.text();t.otp=yield We(n,c.email,{type:"error",messageCode:"INVALID_OTP",message:e,messageParams:{}}),s=yield fetch(`${a}/token`,{body:JSON.stringify(t),method:"post",headers:{"Content-Type":"application/json"},mode:"cors"})}if(200!==s.status){const e=yield s.text();throw new Ze(s,e)}return yield s.json()}throw new Error(`Unexpected response from ${a}/token`)})}}function ot(e,t){var n,r;const s=null===(n=e.cloud.options)||void 0===n?void 0:n.databaseUrl;if(!s)throw new Error("No database URL given.");st({databaseUrl:s,provider:t,redirectUri:(null===(r=e.cloud.options)||void 0===r?void 0:r.oauthRedirectUri)||("undefined"!=typeof window?window.location.href:void 0)})}function lt(e,...t){globalThis.console[e](...t)}function ct(e,t){return s(this,void 0,void 0,function*(){var n;const r=yield e.getCurrentUser(),i=r.userId;if(r.isLoggedIn&&(!t||!t.email&&!t.userId)){if("ok"===((null===(n=r.license)||void 0===n?void 0:n.status)||"ok")&&r.accessToken&&(!r.accessTokenExpiration||r.accessTokenExpiration.getTime()>Date.now()))return!1;if(r.refreshToken&&(!r.refreshTokenExpiration||r.refreshTokenExpiration.getTime()>Date.now()))return yield He(e),!1}const o=new qe(e,{claims:{},lastLogin:new Date(0)});try{yield Ve(e.cloud.options.databaseUrl,o,e.cloud.options.fetchTokens||it(e),e.cloud.userInteraction,t)}catch(e){if("OAuthRedirectError"===e.name)return!1;throw e}return i!==Ye.userId&&o.userId!==i&&(yield Qe(e)),yield function(e,t){return s(this,void 0,void 0,function*(){const n=e.table("$logins");yield e.transaction("rw",n,e=>s(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&&(lt("debug","Login context property names:",Object.keys(t)),lt("debug","Login context property names:",Object.keys(t)),lt("debug","Login context:",t),lt("debug","Login context JSON:",JSON.stringify(t)))}catch(e){}throw e}})),yield Ge(e.cloud.currentUser,e=>e.userId===t.userId)})}(e,o),Ae(e,"pull"),o.userId!==i})}const at={},dt="undefined"!=typeof self&&self.document&&"undefined"!=typeof navigator&&navigator.serviceWorker;dt&&dt.ready.then(e=>at.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 ut{constructor(e){this.name=e}subscribe(e){if(!dt)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 dt.addEventListener("message",t),()=>dt.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})):at.registration&&(null===(t=at.registration.active)||void 0===t||t.postMessage({type:`sw-broadcast-${this.name}`,message:e}))}}const ht=globalThis["lbc-events"]||(globalThis["lbc-events"]=new Map);class ft extends n.Observable{constructor(e){const t="undefined"==typeof BroadcastChannel?new ut(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){ht.has(e)?ht.get(e).push(t):ht.set(e,[t])}(`lbc-${e}`,r);try{t instanceof ut?i=t.subscribe(e=>n.next(e)):t.addEventListener("message",s)}catch(e){}return()=>{!function(e,t){const n=ht.get(e);if(n){const e=n.indexOf(t);-1!==e&&n.splice(e,1)}}(`lbc-${e}`,r),t instanceof ut?i():t.removeEventListener("message",s)}}),this.name=e,this.bc=t}next(e){this.bc.postMessage(e);!function(e){const t=ht.get(e.type);t&&t.forEach(t=>{try{t(e)}catch(e){}})}(new CustomEvent(`lbc-${this.name}`,{detail:e}))}}function pt(e){return s(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 Le(s)})}function gt(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 yt(e){return`$${e}_mutations`}function mt(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 vt=[].concat;function bt(e){return vt.apply([],e)}function wt(e,t){return s(this,arguments,void 0,function*(e,t,{since:n={},limit:r=1/0}={}){const i=yield Promise.all(e.map(e=>s(this,void 0,void 0,function*(){const t=mt(e.name),s=n[t];let i=s?e.where("rev").above(s):e;r<1/0&&(i=i.limit(r));let o=yield i.toArray();o=function(e){return e=e.map(e=>{if("modify"===e.type&&null===e.criteria.index){const t=Object.assign(Object.assign({},e),{criteria:void 0,changeSpec:void 0,type:"update",keys:e.keys,changeSpecs:[e.changeSpec]});return delete t.criteria,delete t.changeSpec,t}return e}),e}(o),o=function(e){const t=new Map;for(const n of e)if("update"===n.type){if(1!==n.keys.length||1!==n.changeSpecs.length)continue;const e=""+n.keys[0],r=n.changeSpecs[0];if(Object.values(r).some(e=>"object"==typeof e&&e&&"@@propmod"in e))continue;let s=t.get(e);s?s.push({txid:n.txid,updateSpec:r}):t.set(e,[{txid:n.txid,updateSpec:r}])}return e=e.filter(e=>{if("update"!==e.type)return!0;if(1!==e.keys.length||1!==e.changeSpecs.length)return!0;const n=e.changeSpecs[0];if(Object.values(n).some(e=>"object"==typeof e&&e&&"@@propmod"in e))return!0;const r=new Set(Object.keys(e.changeSpecs[0])),s=""+e.keys[0],i=t.get(s);if(!i)return!0;for(let t=i.length-1;t>=0;--t){const{txid:n,updateSpec:s}=i[t];if(n===e.txid)break;for(const e of Object.keys(s))r.delete(e)}return 0!==r.size}),e}(o);return o.map(e=>({table:t,mut:e}))}))),o=bt(i).sort((e,t)=>e.mut.txid===t.mut.txid?e.mut.opNo-t.mut.opNo:e.mut.ts-t.mut.ts),l=[];let c=null,a=null;for(const{table:e,mut:t}of o)c&&c.table===e&&a===t.txid?c.muts.push(t):(c={table:e,muts:[t]},a=t.txid,l.push(c));return l})}function _t(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{toString:kt}={};const St={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 xt(...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 St;let i=n.get(r);if(void 0!==i)return i;const o=(s=e,kt.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:St),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 Et={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 Ct={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 It={bigint:{replace:e=>({$t:"bigint",v:""+e}),revive:e=>BigInt(e.v)}};var Ot={Date:{replace:e=>({$t:"Date",v:isNaN(e.getTime())?"NaN":e.toISOString()}),revive:({v:e})=>new Date("NaN"===e?NaN:Date.parse(e))}},Dt={Set:{replace:e=>({$t:"Set",v:Array.from(e.entries())}),revive:({v:e})=>new Set(e)}},At={Map:{replace:e=>({$t:"Map",v:Array.from(e.entries())}),revive:({v:e})=>new Map(e)}};const Tt="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof global?global:void 0;var jt=["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=Tt[t];return s&&new s(r.ArrayBuffer.revive({v:e},n,r))}}}),{});function Ut(e){return function(e){for(var t="",n=0,r=e.length;n<r;n++)t+=Rt[e[n]];return t}(Le(e))}function Lt(e){return Ue(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+=Pt[e[n]];return t}(e))}const Pt={"-":"=",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:"+","|":"/"},Rt={};for(const e of Object.keys(Pt))Rt[Pt[e]]=e;var $t={ArrayBuffer:{replace:e=>({$t:"ArrayBuffer",v:Ut(e)}),revive:({v:e})=>{const t=Lt(e);return t.buffer.byteLength===t.byteLength?t.buffer:t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}}};class Mt{constructor(e,t){this.buf=e,this.type=t}}function Nt(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 Bt(e){const t=new Uint8Array(e.length);for(let n=0;n<e.length;++n)t[n]=e.charCodeAt(n);return t.buffer}var Ft={Blob:{test:(e,t)=>"Blob"===t||e instanceof Mt,replace:e=>({$t:"Blob",v:Le(e instanceof Mt?e.buf:Bt(Nt(e))),type:e.type}),revive:({type:e,v:t})=>{const n=Ue(t);return void 0!==typeof Blob?new Blob([n]):new Mt(n.buffer,e)}}};const Wt={...Ct,...It,...Ot,...Dt,...At,...jt,...$t,...Ft};function zt(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 Ht={undefined:{replace:()=>({$t:"undefined"}),revive:()=>{}}},Vt={File:{test:(e,t)=>"File"===t,replace:e=>({$t:"File",v:Le(Bt(Nt(e))),type:e.type,name:e.name,lastModified:new Date(e.lastModified).toISOString()}),revive:({type:e,v:t,name:n,lastModified:r})=>{const s=Ue(t);return new File([s],n,{type:e,lastModified:new Date(r).getTime()})}}};const Kt="function"==typeof BigInt&&"bigint"==typeof BigInt(0);class Jt{toString(){return this.v}constructor(e){this.v=e}}const qt=Kt?{}:{bigint:{test:e=>e instanceof Jt,replace:e=>Object.assign({$t:"bigint"},e),revive:({v:e})=>new Jt(e)}},Yt=Object.assign(Object.assign(Object.assign(Object.assign({},Ht),qt),Vt),{PropModification:{test:e=>e instanceof t.PropModification,replace:e=>Object.assign({$t:"PropModification"},e["@@propmod"]),revive:e=>{var{$t:n}=e,r=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}(e,["$t"]);return new t.PropModification(r)}}}),Gt=xt(Wt,Yt),Qt=function(...e){const t=xt(Wt,Et,...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);return[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])})),r]},async parse(e,n){let r=0;const s=[],i=await zt(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 zt(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)}}}(Yt);function Xt(e,n,r){const s=[];for(let i of r){const{table:r,muts:o}=i,l=e.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((e,r)=>{const s=!c.outbound&&("upsert"===e.type||"insert"===e.type);e.keys.forEach((e,o)=>{if(Array.isArray(e)){a===i&&(a=Zt(i,s));const t=a.muts[r],n=JSON.stringify(e);t.keys[o]=n}else if("#"===e[0]){a===i&&(a=Zt(i,s));const l=a.muts[r];if(!n.isLoggedIn)throw new Error("Internal error: Cannot sync private IDs before authenticated");const d=`${e}:${n.userId}`;l.keys[o]=d,s&&t.setByKeyPath(l.values[o],c.keyPath,d)}})}),s.push(a)}return s}function Zt(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 en=new WeakMap;function tn(e){return s(this,void 0,void 0,function*(){var t,n;const r=(null!==(n=null===(t=en.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 nn(e,t,n,r,i,o,l,c,a){return s(this,void 0,void 0,function*(){const s={Accept:"application/json, application/x-bison, application/x-bison-stream","Content-Type":"application/tson"},d=yield He(i),u=null==d?void 0:d.accessToken;u&&(s.Authorization=`Bearer ${u}`);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:r,changes:Xt(i.dx.core.schema,a,e),y:t,dxcv:i.cloud.version};i.syncStateChangedEvent.next({phase:"pushing"});const f=Gt.stringify(h),p=yield fetch(`${o}/sync`,{method:"post",headers:s,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));en.set(e,new Date(Date.now()+1e3*t))}else en.delete(e)}}(i,p),!p.ok)throw new Ze(p);if("application/x-bison"===p.headers.get("content-type"))return Qt.fromBinary(yield p.blob());{const e=yield p.text();return Gt.parse(e)}})}function rn(e){if(null==e?void 0:e.cancelled)throw new t.AbortError("Operation was cancelled")}let sn=!1;function on(e,t,n,r){return s(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:r}))),yield e.$baseRevs.where("tableName").noneOf(Object.keys(t).filter(e=>t[e].markedForSync)).delete()})}function ln(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 cn(e,n,r){return s(this,void 0,void 0,function*(){const s=yield e.bulkGet(n),i=[],o=[];n.forEach((n,l)=>{const c=s[l];if(c){for(const[s,i]of Object.entries(r[l]))if(s===e.schema.primKey.keyPath){if(0!==t.cmp(i,n))throw new Error("Cannot change primary key")}else t.setByKeyPath(c,s,i);i.push(n),o.push(c)}}),yield null==e.schema.primKey.keyPath?e.bulkPut(o,i):e.bulkPut(o)})}function an(e,n){return s(this,void 0,void 0,function*(){for(const{table:r,muts:s}of e){if(!n.dx._allTables[r])continue;const e=n.table(r),{primaryKey:i}=e.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 e.bulkAdd(n.values,r):(r.forEach((e,r)=>{t.setByKeyPath(n.values[r],i.keyPath,e)}),yield e.bulkAdd(n.values));break;case"upsert":i.outbound?yield e.bulkPut(n.values,r):(r.forEach((e,r)=>{t.setByKeyPath(n.values[r],i.keyPath,e)}),yield e.bulkPut(n.values));break;case"modify":1===r.length?yield e.update(r[0],n.changeSpec):yield e.where(":id").anyOf(r).modify(n.changeSpec);break;case"update":yield cn(e,r,n.changeSpecs);break;case"delete":yield e.bulkDelete(r)}}}})}"undefined"!=typeof self&&"undefined"!=typeof navigator&&(sn=navigator.onLine,self.addEventListener("online",()=>sn=!0),self.addEventListener("offline",()=>sn=!1));const dn="dexie-cloud-syncer";function un(e,t){return e.where("i").between(t,1/0,!0).toArray()}const hn=()=>new Map,fn=e=>{const t=hn();return e.forEach((e,n)=>{t.set(n,e)}),t},pn=(e,t,n)=>{let r=e.get(t);return void 0===r&&e.set(t,r=n()),r};class gn{constructor(){this._observers=hn()}on(e,t){return pn(this._observers,e,I).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 A((this._observers.get(e)||hn()).values()).forEach(e=>e(...t))}destroy(){this._observers=hn()}}class yn{constructor(){this._observers=hn()}on(e,t){pn(this._observers,e,I).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 A((this._observers.get(e)||hn()).values()).forEach(e=>e(...t))}destroy(){this._observers=hn()}}const mn=crypto.getRandomValues.bind(crypto),vn=()=>mn(new Uint32Array(1))[0],bn=[1e7]+-1e3+-4e3+-8e3+-1e11,wn=()=>bn.replace(/[018]/g,e=>(e^vn()&15>>e/4).toString(16)),_n=Date.now,kn=e=>new Promise(e);Promise.all.bind(Promise);const Sn=e=>void 0===e?null:e;let xn=new class{constructor(){this.map=new Map}setItem(e,t){this.map.set(e,t)}getItem(e){return this.map.get(e)}},En=!0;try{"undefined"!=typeof localStorage&&localStorage&&(xn=localStorage,En=!1)}catch(Wl){}const Cn=xn,In=Object.assign,On=Object.keys,Dn=e=>On(e).length,An=e=>On(e).length,Tn=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),jn=Object.freeze,Un=e=>{for(const t in e){const n=e[t];"object"!=typeof n&&"function"!=typeof n||Un(e[t])}return jn(e)},Ln=Symbol("Equality"),Pn=(e,t,n=0)=>{try{for(;n<e.length;n++)e[n](...t)}finally{n<e.length&&Pn(e,t,n+1)}},Rn=(e,t)=>{if(e===t)return!0;if(null==e||null==t||e.constructor!==t.constructor)return!1;if(null!=e[Ln])return e[Ln](t);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)||!Rn(e.get(n),t.get(n)))return!1;break;case Object:if(Dn(e)!==Dn(t))return!1;for(const n in e)if(!Tn(e,n)||!Rn(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(!Rn(e[n],t[n]))return!1;break;default:return!1}return!0},$n="undefined"!=typeof process&&process.release&&/node|io\.js/.test(process.release.name)&&"[object process]"===Object.prototype.toString.call("undefined"!=typeof process?process:0);let Mn;const Nn=e=>(()=>{if(void 0===Mn)if($n){Mn=hn();const e=process.argv;let t=null;for(let n=0;n<e.length;n++){const r=e[n];"-"===r[0]?(null!==t&&Mn.set(t,""),t=r):null!==t&&(Mn.set(t,r),t=null)}null!==t&&Mn.set(t,"")}else"object"==typeof location?(Mn=hn(),(location.search||"?").slice(1).split("&").forEach(e=>{if(0!==e.length){const[t,n]=e.split("=");Mn.set(`--${L(t,"-")}`,n),Mn.set(`-${L(t,"-")}`,n)}})):Mn=hn();return Mn})().has(e),Bn=e=>Sn($n?process.env[e.toUpperCase().replaceAll("-","_")]:Cn.getItem(e)),Fn=e=>Nn("--"+e)||null!==Bn(e);Fn("production");var Wn;$n&&(Wn=process.env.FORCE_COLOR,["true","1","2"].includes(Wn))||!Nn("--no-colors")&&!Fn("no-color")&&(!$n||process.stdout.isTTY)&&(!$n||Nn("--color")||null!==Bn("COLORTERM")||(Bn("TERM")||"").includes("color"));class zn{constructor(e,t){this.left=e,this.right=t}}const Hn=(e,t)=>new zn(e,t);"undefined"!=typeof DOMParser&&new DOMParser;const Vn=Symbol,Kn=Vn(),Jn=Vn(),qn=Vn(),Yn=Vn(),Gn=Vn(),Qn=Vn(),Xn=Vn(),Zn=Vn(),er=Vn(),tr=(Hn("font-weight","bold"),Hn("font-weight","normal"),Hn("color","blue"),Hn("color","green"),Hn("color","grey"),Hn("color","red"),Hn("color","purple"),Hn("color","orange"),Hn("color","black"),I()),nr=e=>({[Symbol.iterator](){return this},next:e}),rr=(e,t)=>nr(()=>{const{done:n,value:r}=e.next();return{done:n,value:n?void 0:t(r)}});class sr{constructor(e,t){this.clock=e,this.len=t}}class ir{constructor(){this.clients=new Map}}const or=(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])Wr(e,s,o.clock,o.len,n)}}),lr=(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=m((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)},cr=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=w(r.len,s.clock+s.len-r.clock):(n<t&&(e[n]=s),n++)}e.length=n})},ar=(e,t,n,r)=>{pn(e.clients,t,()=>[]).push(new sr(n,r))},dr=(e,t)=>{z(e.restEncoder,t.clients.size),A(t.clients.entries()).sort((e,t)=>t[0]-e[0]).forEach(([t,n])=>{e.resetDsCurVal(),z(e.restEncoder,t);const r=n.length;z(e.restEncoder,r);for(let t=0;t<r;t++){const r=n[t];e.writeDsClock(r.clock),e.writeDsLen(r.len)}})},ur=(e,t,n)=>{const r=new ir,s=ye(e.restDecoder);for(let i=0;i<s;i++){e.resetDsCurVal();const s=ye(e.restDecoder),i=ye(e.restDecoder),o=n.clients.get(s)||[],l=Pr(n,s);for(let n=0;n<i;n++){const n=e.readDsClock(),i=n+e.readDsLen();if(n<l){l<i&&ar(r,s,l,i-l);let e=$r(o,n),c=o[e];for(!c.deleted&&c.id.clock<n&&(o.splice(e+1,0,Si(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,Si(t,c,i-c.id.clock)),c.delete(t))}else ar(r,s,n,i-n)}}if(r.clients.size>0){const e=new br;return z(e.restEncoder,0),dr(e,r),e.toUint8Array()}return null},hr=vn;class fr extends gn{constructor({guid:e=wn(),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=hr(),this.guid=e,this.collectionid=t,this.share=new Map,this.store=new Ur,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=kn(e=>{this.on("load",()=>{this.isLoaded=!0,e(this)})});const l=()=>kn(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||qr(e.parent.doc,e=>{e.subdocsLoaded.add(this)},null,!0),this.shouldLoad=!0}getSubdocs(){return this.subdocs}getSubdocGuids(){return new Set(A(this.subdocs).map(e=>e.guid))}transact(e,t=null){return qr(this,e,t)}get(e,t=fs){const n=pn(this.share,e,()=>{const e=new t;return e._integrate(this,null),e}),r=n.constructor;if(t!==fs&&r!==t){if(r===fs){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,Ts)}getText(e=""){return this.get(e,Ys)}getMap(e=""){return this.get(e,Us)}getXmlElement(e=""){return this.get(e,Xs)}getXmlFragment(e=""){return this.get(e,Qs)}toJSON(){const e={};return this.share.forEach((t,n)=>{e[n]=t.toJSON()}),e}destroy(){this.isDestroyed=!0,A(this.subdocs).forEach(e=>e.destroy());const e=this._item;if(null!==e){this._item=null;const t=e.content;t.doc=new fr({guid:this.guid,...t.opts,shouldLoad:!1}),t.doc._item=e,qr(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 pr{constructor(e){this.dsCurrVal=0,this.restDecoder=e}resetDsCurVal(){this.dsCurrVal=0}readDsClock(){return this.dsCurrVal+=ye(this.restDecoder),this.dsCurrVal}readDsLen(){const e=ye(this.restDecoder)+1;return this.dsCurrVal+=e,e}}class gr extends pr{constructor(e){super(e),this.keys=[],ye(e),this.keyClockDecoder=new Ee(pe(e)),this.clientDecoder=new xe(pe(e)),this.leftClockDecoder=new Ee(pe(e)),this.rightClockDecoder=new Ee(pe(e)),this.infoDecoder=new Se(pe(e),ge),this.stringDecoder=new Ce(pe(e)),this.parentInfoDecoder=new Se(pe(e),ge),this.typeRefDecoder=new xe(pe(e)),this.lenDecoder=new xe(pe(e))}readLeftID(){return new Or(this.clientDecoder.read(),this.leftClockDecoder.read())}readRightID(){return new Or(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 ke(this.restDecoder)}readBuf(){return pe(this.restDecoder)}readJSON(){return ke(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 yr{constructor(){this.restEncoder=N()}toUint8Array(){return B(this.restEncoder)}resetDsCurVal(){}writeDsClock(e){z(this.restEncoder,e)}writeDsLen(e){z(this.restEncoder,e)}}class mr extends yr{writeLeftID(e){z(this.restEncoder,e.client),z(this.restEncoder,e.clock)}writeRightID(e){z(this.restEncoder,e.client),z(this.restEncoder,e.clock)}writeClient(e){z(this.restEncoder,e)}writeInfo(e){W(this.restEncoder,e)}writeString(e){J(this.restEncoder,e)}writeParentInfo(e){z(this.restEncoder,e?1:0)}writeTypeRef(e){z(this.restEncoder,e)}writeLen(e){z(this.restEncoder,e)}writeAny(e){Z(this.restEncoder,e)}writeBuf(e){Y(this.restEncoder,e)}writeJSON(e){J(this.restEncoder,JSON.stringify(e))}writeKey(e){J(this.restEncoder,e)}}class vr{constructor(){this.restEncoder=N(),this.dsCurrVal=0}toUint8Array(){return B(this.restEncoder)}resetDsCurVal(){this.dsCurrVal=0}writeDsClock(e){const t=e-this.dsCurrVal;this.dsCurrVal=e,z(this.restEncoder,t)}writeDsLen(e){0===e&&ce(),z(this.restEncoder,e-1),this.dsCurrVal+=e}}class br extends vr{constructor(){super(),this.keyMap=new Map,this.keyClock=0,this.keyClockEncoder=new se,this.clientEncoder=new ne,this.leftClockEncoder=new se,this.rightClockEncoder=new se,this.infoEncoder=new ee(W),this.stringEncoder=new ie,this.parentInfoEncoder=new ee(W),this.typeRefEncoder=new ne,this.lenEncoder=new ne}toUint8Array(){const e=N();return z(e,0),Y(e,this.keyClockEncoder.toUint8Array()),Y(e,this.clientEncoder.toUint8Array()),Y(e,this.leftClockEncoder.toUint8Array()),Y(e,this.rightClockEncoder.toUint8Array()),Y(e,B(this.infoEncoder)),Y(e,this.stringEncoder.toUint8Array()),Y(e,B(this.parentInfoEncoder)),Y(e,this.typeRefEncoder.toUint8Array()),Y(e,this.lenEncoder.toUint8Array()),q(e,B(this.restEncoder)),B(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){Z(this.restEncoder,e)}writeBuf(e){Y(this.restEncoder,e)}writeJSON(e){Z(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 wr=(e,t,n)=>{const r=new Map;n.forEach((e,n)=>{Pr(t,n)>e&&r.set(n,e)}),Lr(t).forEach((e,t)=>{n.has(t)||r.set(t,0)}),z(e.restEncoder,r.size),A(r.entries()).sort((e,t)=>t[0]-e[0]).forEach(([n,r])=>{((e,t,n,r)=>{r=w(r,t[0].id.clock);const s=$r(t,r);z(e.restEncoder,t.length-s),e.writeClient(n),z(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)})},_r=(e,t,n,r=new gr(e))=>qr(t,e=>{e.local=!1;let t=!1;const n=e.doc,s=n.store,i=((e,t)=>{const n=hn(),r=ye(e.restDecoder);for(let s=0;s<r;s++){const r=ye(e.restDecoder),s=new Array(r),i=e.readClient();let o=ye(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 ri(Ar(i,o),t),o+=t;break}case 10:{const t=ye(e.restDecoder);s[n]=new Ii(Ar(i,o),t),o+=t;break}default:{const l=!(192&r),c=new xi(Ar(i,o),null,(r&S)===S?e.readLeftID():null,null,(r&k)===k?e.readRightID():null,l?e.readParentInfo()?t.get(e.readString()):e.readLeftID():null,!l||32&~r?null:e.readString(),Ei(e,r));s[n]=c,o+=c.length}}}}return n})(r,n),o=((e,t,n)=>{const r=[];let s=A(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 Ur,c=new Map,a=(e,t)=>{const n=c.get(e);(null==n||n>t)&&c.set(e,t)};let d=o.refs[o.i++];const u=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(d.constructor!==Ii){const s=pn(u,d.id.client,()=>Pr(t,d.id.client))-d.id.clock;if(s<0)r.push(d),a(d.id.client,d.id.clock-1),h();else{const i=d.getMissing(e,t);if(null!==i){r.push(d);const e=n.get(i)||{refs:[],i:0};if(e.refs.length!==e.i){d=e.refs[e.i++];continue}a(i,Pr(t,i)),h()}else(0===s||s<d.length)&&(d.integrate(e,s),u.set(d.id.client,d.id.clock+d.length))}}if(r.length>0)d=r.pop();else if(null!==o&&o.i<o.refs.length)d=o.refs[o.i++];else{if(o=i(),null===o)break;d=o.refs[o.i++]}}if(l.clients.size>0){const e=new br;return wr(e,l,new Map),z(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<Pr(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=Zr([l.update,o.update])}}else s.pendingStructs=o;const c=ur(r,e,s);if(s.pendingDs){const t=new gr(he(s.pendingDs));ye(t.restDecoder);const n=ur(t,e,s);s.pendingDs=c&&n?Zr([c,n]):c||n}else s.pendingDs=c;if(t){const t=s.pendingStructs.update;s.pendingStructs=null,kr(e.doc,t)}},n,!1),kr=(e,t,n,r=gr)=>{const s=he(t);_r(s,e,n,new r(s))};class Sr{constructor(){this.l=[]}}const xr=()=>new Sr,Er=(e,t)=>e.l.push(t),Cr=(e,t)=>{const n=e.l;n.length;e.l=n.filter(e=>t!==e),e.l.length},Ir=(e,t,n)=>Pn(e.l,[t,n]);class Or{constructor(e,t){this.client=e,this.clock=t}}const Dr=(e,t)=>e===t||null!==e&&null!==t&&e.client===t.client&&e.clock===t.clock,Ar=(e,t)=>new Or(e,t),Tr=(e,t)=>void 0===t?!e.deleted:t.sv.has(e.id.client)&&(t.sv.get(e.id.client)||0)>e.id.clock&&!lr(t.ds,e.id),jr=(e,t)=>{const n=pn(e.meta,jr,I),r=e.doc.store;n.has(t)||(t.sv.forEach((t,n)=>{t<Pr(r,n)&&Br(e,Ar(n,t))}),or(e,t.ds,e=>{}),n.add(t))};class Ur{constructor(){this.clients=new Map,this.pendingStructs=null,this.pendingDs=null}}const Lr=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},Pr=(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},Rr=(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 ce()}n.push(t)},$r=(e,t)=>{let n=0,r=e.length-1,s=e[r],i=s.id.clock;if(i===t)return r;let o=m(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=m((n+r)/2)}throw ce()},Mr=(e,t)=>{const n=e.clients.get(t.client);return n[$r(n,t.clock)]},Nr=(e,t,n)=>{const r=$r(t,n),s=t[r];return s.id.clock<n&&s instanceof xi?(t.splice(r+1,0,Si(e,s,n-s.id.clock)),r+1):r},Br=(e,t)=>{const n=e.doc.store.clients.get(t.client);return n[Nr(e,n,t.clock)]},Fr=(e,t,n)=>{const r=t.clients.get(n.client),s=$r(r,n.clock),i=r[s];return n.clock!==i.id.clock+i.length-1&&i.constructor!==ri&&r.splice(s+1,0,Si(e,i,n.clock-i.id.clock+1)),i},Wr=(e,t,n,r,s)=>{if(0===r)return;const i=n+r;let o,l=Nr(e,t,n);do{o=t[l++],i<o.id.clock+o.length&&Nr(e,t,i),s(o)}while(l<t.length&&t[l].id.clock<i)};class zr{constructor(e,t,n){this.doc=e,this.deleteSet=new ir,this.beforeState=Lr(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 Hr=(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))&&(cr(t.deleteSet),((e,t)=>{wr(e,t.doc.store,t.beforeState)})(e,t),dr(e,t.deleteSet),!0),Vr=(e,t,n)=>{const r=t._item;(null===r||r.id.clock<(e.beforeState.get(r.id.client)||0)&&!r.deleted)&&pn(e.changed,t,I).add(n)},Kr=(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 xi&&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},Jr=(e,t)=>{if(t<e.length){const n=e[t],r=n.doc,s=r.store,i=n.deleteSet,o=n._mergeStructs;try{cr(i),n.afterState=Lr(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),Ir(t._dEH,e,n))})}),e.push(()=>r.emit("afterTransaction",[n,r])),Pn(e,[]),n._needFormattingCleanup&&Ks(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=$r(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 xi&&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=b(r.length-1,1+$r(r,n.clock+n.len-1)),t=r[e];e>0&&t.id.clock>=n.clock;t=r[e])e-=1+Kr(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=w($r(e,r),1);for(let t=e.length-1;t>=n;)t-=1+Kr(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=$r(r,n);i+1<r.length&&Kr(r,i+1)>1||i>0&&Kr(r,i)}if(n.local||n.afterState.get(r.clientID)===n.beforeState.get(r.clientID)||(((...e)=>{tr.forEach(t=>t.print(e))})(Zn,Kn,"[yjs] ",Jn,Qn,"Changed the client-id because another client seems to be using it."),r.clientID=hr()),r.emit("afterTransactionCleanup",[n,r]),r._observers.has("update")){const e=new mr;Hr(e,n)&&r.emit("update",[e.toUint8Array(),n.origin,r,n])}if(r._observers.has("updateV2")){const e=new br;Hr(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])):Jr(e,t+1)}}},qr=(e,t,n=null,r=!0)=>{const s=e._transactionCleanups;let i=!1,o=null;null===e._transaction&&(i=!0,e._transaction=new zr(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&&Jr(s,0)}}return o};class Yr{constructor(e,t){this.gen=function*(e){const t=ye(e.restDecoder);for(let n=0;n<t;n++){const t=ye(e.restDecoder),n=e.readClient();let r=ye(e.restDecoder);for(let s=0;s<t;s++){const t=e.readInfo();if(10===t){const t=ye(e.restDecoder);yield new Ii(Ar(n,r),t),r+=t}else if(31&t){const s=!(192&t),i=new xi(Ar(n,r),null,(t&S)===S?e.readLeftID():null,null,(t&k)===k?e.readRightID():null,s?e.readParentInfo()?e.readString():e.readLeftID():null,!s||32&~t?null:e.readString(),Ei(e,t));yield i,r+=i.length}else{const t=e.readLen();yield new ri(Ar(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===Ii);return this.curr}}class Gr{constructor(e){this.currClient=0,this.startClock=0,this.written=0,this.encoder=e,this.clientStructs=[]}}const Qr=(e,t=vr,n=gr)=>{const r=new t,s=new Yr(new n(he(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++,z(r.restEncoder,t),z(r.restEncoder,o)),t=i.id.client,o=0,n=0!==i.id.clock),i.constructor===Ii&&(n=!0),n||(o=i.id.clock+i.length);0!==o&&(e++,z(r.restEncoder,t),z(r.restEncoder,o));const l=N();return z(l,e),((e,t)=>{q(e,B(t))})(l,r.restEncoder),r.restEncoder=l,r.toUint8Array()}return z(r.restEncoder,0),r.toUint8Array()},Xr=(e,t)=>{if(e.constructor===ri){const{client:n,clock:r}=e.id;return new ri(Ar(n,r+t),e.length-t)}if(e.constructor===Ii){const{client:n,clock:r}=e.id;return new Ii(Ar(n,r+t),e.length-t)}{const n=e,{client:r,clock:s}=n.id;return new xi(Ar(r,s+t),null,Ar(r,s+t-1),null,n.rightOrigin,n.parent,n.parentSub,n.content.splice(t))}},Zr=(e,t=gr,n=br)=>{if(1===e.length)return e[0];const r=e.map(e=>new t(he(e)));let s=r.map(e=>new Yr(e,!0)),i=null;const o=new n,l=new Gr(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===Ii?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)ts(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===Ii)i.struct.length=n.id.clock+n.length-i.struct.id.clock;else{ts(l,i.struct,i.offset);const e=n.id.clock-i.struct.id.clock-i.struct.length;i={struct:new Ii(Ar(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===Ii?i.struct.length-=t:n=Xr(n,t)),i.struct.mergeWith(n)||(ts(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!==Ii;n=e.next())ts(l,i.struct,i.offset),i={struct:n,offset:0}}null!==i&&(ts(l,i.struct,i.offset),i=null),ns(l);const c=r.map(e=>(e=>{const t=new ir,n=ye(e.restDecoder);for(let r=0;r<n;r++){e.resetDsCurVal();const n=ye(e.restDecoder),r=ye(e.restDecoder);if(r>0){const s=pn(t.clients,n,()=>[]);for(let t=0;t<r;t++)s.push(new sr(e.readDsClock(),e.readDsLen()))}}return t})(e)),a=(e=>{const t=new ir;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++)D(i,e[t].clients.get(s)||[]);t.clients.set(s,i)}});return cr(t),t})(c);return dr(o,a),o.toUint8Array()},es=e=>{e.written>0&&(e.clientStructs.push({written:e.written,restEncoder:B(e.encoder.restEncoder)}),e.encoder.restEncoder=N(),e.written=0)},ts=(e,t,n)=>{e.written>0&&e.currClient!==t.id.client&&es(e),0===e.written&&(e.currClient=t.id.client,e.encoder.writeClient(t.id.client),z(e.encoder.restEncoder,t.id.clock+n)),t.write(e.encoder,n),e.written++},ns=e=>{es(e);const t=e.encoder.restEncoder;z(t,e.clientStructs.length);for(let n=0;n<e.clientStructs.length;n++){const r=e.clientStructs[n];z(t,r.written),q(t,r.restEncoder)}},rs="You must not compute changes after the event-handler fired.";class ss{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=is(this.currentTarget,this.target))}deletes(e){return lr(this.transaction.deleteSet,e.id)}get keys(){if(null===this._keys){if(0===this.transaction.doc._transactionCleanups.length)throw oe(rs);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=O(e.content.getContent())}else null!==e&&this.deletes(e)?(s="update",i=O(e.content.getContent())):(s="add",i=void 0)}else{if(!this.deletes(r))return;s="delete",i=O(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 oe(rs);const t=this.target,n=I(),r=I(),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 is=(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},os=()=>{((...e)=>{e.unshift(Zn),tr.forEach(t=>t.print(e))})("Invalid access: Add Yjs type to a document before reading data.")};let ls=0;class cs{constructor(e,t){e.marker=!0,this.p=e,this.index=t,this.timestamp=ls++}}const as=(e,t,n)=>{e.p.marker=!1,e.p=t,t.marker=!0,e.index=n,e.timestamp=ls++},ds=(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)=>v(t-e.index)<v(t-n.index)?e:n);let r=e._start,s=0;for(null!==n&&(r=n.p,s=n.index,(e=>{e.timestamp=ls++})(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&&v(n.index-s)<r.parent.length/80?(as(n,r,s),n):((e,t,n)=>{if(e.length>=80){const r=e.reduce((e,t)=>e.timestamp<t.timestamp?e:t);return as(r,t,n),r}{const r=new cs(t,n);return e.push(r),r}})(e._searchMarker,r,s)},us=(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=w(t,s.index+n))}},hs=(e,t,n)=>{const r=e,s=t.changedParentTypes;for(;pn(s,e,()=>[]).push(n),null!==e._item;)e=e._item.parent;Ir(r._eH,n,t)};class fs{constructor(){this._item=null,this._map=new Map,this._start=null,this.doc=null,this._length=0,this._eH=xr(),this._dEH=xr(),this._searchMarker=null}get parent(){return this._item?this._item.parent:null}_integrate(e,t){this.doc=e,this._item=t}_copy(){throw le()}clone(){throw le()}_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){Er(this._eH,e)}observeDeep(e){Er(this._dEH,e)}unobserve(e){Cr(this._eH,e)}unobserveDeep(e){Cr(this._dEH,e)}toJSON(){}}const ps=(e,t,n)=>{e.doc??os(),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},gs=e=>{e.doc??os();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},ys=(e,t)=>{let n=0,r=e._start;for(e.doc??os();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}},ms=(e,t)=>{const n=[];return ys(e,(r,s)=>{n.push(t(r,s,e))}),n},vs=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}}}},bs=(e,t)=>{e.doc??os();const n=ds(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}},ws=(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 d=()=>{a.length>0&&(s=new xi(Ar(o,Pr(l,o)),s,s&&s.lastId,c,c&&c.id,t,null,new hi(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(d(),n.constructor){case Uint8Array:case ArrayBuffer:s=new xi(Ar(o,Pr(l,o)),s,s&&s.lastId,c,c&&c.id,t,null,new si(new Uint8Array(n))),s.integrate(e,0);break;case fr:s=new xi(Ar(o,Pr(l,o)),s,s&&s.lastId,c,c&&c.id,t,null,new li(n)),s.integrate(e,0);break;default:if(!(n instanceof fs))throw new Error("Unexpected content type in insert operation");s=new xi(Ar(o,Pr(l,o)),s,s&&s.lastId,c,c&&c.id,t,null,new ki(n)),s.integrate(e,0)}}}),d()},_s=()=>oe("Length exceeded!"),ks=(e,t,n,r)=>{if(n>t._length)throw _s();if(0===n)return t._searchMarker&&us(t._searchMarker,n,r.length),ws(e,t,null,r);const s=n,i=ds(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&&Br(e,Ar(o.id.client,o.id.clock+n));break}n-=o.length}return t._searchMarker&&us(t._searchMarker,s,r.length),ws(e,t,o,r)},Ss=(e,t,n,r)=>{if(0===r)return;const s=n,i=r,o=ds(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&&Br(e,Ar(l.id.client,l.id.clock+n)),n-=l.length);for(;r>0&&null!==l;)l.deleted||(r<l.length&&Br(e,Ar(l.id.client,l.id.clock+r)),l.delete(e),r-=l.length),l=l.right;if(r>0)throw _s();t._searchMarker&&us(t._searchMarker,s,-i+r)},xs=(e,t,n)=>{const r=t._map.get(n);void 0!==r&&r.delete(e)},Es=(e,t,n,r)=>{const s=t._map.get(n)||null,i=e.doc,o=i.clientID;let l;if(null==r)l=new hi([r]);else switch(r.constructor){case Number:case Object:case Boolean:case Array:case String:case Date:case BigInt:l=new hi([r]);break;case Uint8Array:l=new si(r);break;case fr:l=new li(r);break;default:if(!(r instanceof fs))throw new Error("Unexpected content type");l=new ki(r)}new xi(Ar(o,Pr(i.store,o)),s,s&&s.lastId,null,null,t,n,l).integrate(e,0)},Cs=(e,t)=>{e.doc??os();const n=e._map.get(t);return void 0===n||n.deleted?void 0:n.content.getContent()[n.length-1]},Is=e=>{const t={};return e.doc??os(),e._map.forEach((e,n)=>{e.deleted||(t[n]=e.content.getContent()[e.length-1])}),t},Os=(e,t)=>{e.doc??os();const n=e._map.get(t);return void 0!==n&&!n.deleted},Ds=e=>{return e.doc??os(),t=e._map.entries(),n=e=>!e[1].deleted,nr(()=>{let e;do{e=t.next()}while(!e.done&&!n(e.value));return e});var t,n};class As extends ss{}class Ts extends fs{constructor(){super(),this._prelimContent=[],this._searchMarker=[]}static from(e){const t=new Ts;return t.push(e),t}_integrate(e,t){super._integrate(e,t),this.insert(0,this._prelimContent),this._prelimContent=null}_copy(){return new Ts}clone(){const e=new Ts;return e.insert(0,this.toArray().map(e=>e instanceof fs?e.clone():e)),e}get length(){return this.doc??os(),this._length}_callObserver(e,t){super._callObserver(e,t),hs(this,e,new As(this,e))}insert(e,t){null!==this.doc?qr(this.doc,n=>{ks(n,this,e,t)}):this._prelimContent.splice(e,0,...t)}push(e){null!==this.doc?qr(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;ws(e,t,r,n)})(t,this,e)}):this._prelimContent.push(...e)}unshift(e){this.insert(0,e)}delete(e,t=1){null!==this.doc?qr(this.doc,n=>{Ss(n,this,e,t)}):this._prelimContent.splice(e,t)}get(e){return bs(this,e)}toArray(){return gs(this)}slice(e=0,t=this.length){return ps(this,e,t)}toJSON(){return this.map(e=>e instanceof fs?e.toJSON():e)}map(e){return ms(this,e)}forEach(e){ys(this,e)}[Symbol.iterator](){return vs(this)}_write(e){e.writeTypeRef(gi)}}class js extends ss{constructor(e,t,n){super(e,t),this.keysChanged=n}}class Us extends fs{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 Us}clone(){const e=new Us;return this.forEach((t,n)=>{e.set(n,t instanceof fs?t.clone():t)}),e}_callObserver(e,t){hs(this,e,new js(this,e,t))}toJSON(){this.doc??os();const e={};return this._map.forEach((t,n)=>{if(!t.deleted){const r=t.content.getContent()[t.length-1];e[n]=r instanceof fs?r.toJSON():r}}),e}get size(){return[...Ds(this)].length}keys(){return rr(Ds(this),e=>e[0])}values(){return rr(Ds(this),e=>e[1].content.getContent()[e[1].length-1])}entries(){return rr(Ds(this),e=>[e[0],e[1].content.getContent()[e[1].length-1]])}forEach(e){this.doc??os(),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?qr(this.doc,t=>{xs(t,this,e)}):this._prelimContent.delete(e)}set(e,t){return null!==this.doc?qr(this.doc,n=>{Es(n,this,e,t)}):this._prelimContent.set(e,t),t}get(e){return Cs(this,e)}has(e){return Os(this,e)}clear(){null!==this.doc?qr(this.doc,e=>{this.forEach(function(t,n,r){xs(e,r,n)})}):this._prelimContent.clear()}_write(e){e.writeTypeRef(yi)}}const Ls=(e,t)=>e===t||"object"==typeof e&&"object"==typeof t&&e&&t&&((e,t)=>e===t||An(e)===An(t)&&((e,t)=>{for(const n in e)if(!t(e[n],n))return!1;return!0})(e,(e,n)=>(void 0!==e||Tn(t,n))&&t[n]===e))(e,t);class Ps{constructor(e,t,n,r){this.left=e,this.right=t,this.index=n,this.currentAttributes=r}forward(){if(null===this.right&&ce(),this.right.content.constructor===ai)this.right.deleted||Ns(this.currentAttributes,this.right.content);else this.right.deleted||(this.index+=this.right.length);this.left=this.right,this.right=this.right.right}}const Rs=(e,t,n)=>{for(;null!==t.right&&n>0;){if(t.right.content.constructor===ai)t.right.deleted||Ns(t.currentAttributes,t.right.content);else t.right.deleted||(n<t.right.length&&Br(e,Ar(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},$s=(e,t,n,r)=>{const s=new Map,i=r?ds(t,n):null;if(i){const t=new Ps(i.p.left,i.p,i.index,s);return Rs(e,t,n-i.index)}{const r=new Ps(null,t._start,0,s);return Rs(e,r,n)}},Ms=(e,t,n,r)=>{for(;null!==n.right&&(!0===n.right.deleted||n.right.content.constructor===ai&&Ls(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 xi(Ar(i,Pr(s.store,i)),l,l&&l.lastId,c,c&&c.id,t,null,new ai(o,r));a.integrate(e,0),n.right=a,n.forward()})},Ns=(e,t)=>{const{key:n,value:r}=t;null===r?e.delete(n):e.set(n,r)},Bs=(e,t)=>{for(;null!==e.right&&(e.right.deleted||e.right.content.constructor===ai&&Ls(t[e.right.content.key]??null,e.right.content.value));)e.forward()},Fs=(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(!Ls(a,c)){o.set(l,a);const{left:r,right:d}=n;n.right=new xi(Ar(i,Pr(s.store,i)),r,r&&r.lastId,d,d&&d.id,t,null,new ai(l,c)),n.right.integrate(e,0),n.forward()}}return o},Ws=(e,t,n,r,s)=>{n.currentAttributes.forEach((e,t)=>{void 0===s[t]&&(s[t]=null)});const i=e.doc,o=i.clientID;Bs(n,s);const l=Fs(e,t,n,s),c=r.constructor===String?new fi(r):r instanceof fs?new ki(r):new ci(r);let{left:a,right:d,index:u}=n;t._searchMarker&&us(t._searchMarker,n.index,c.getLength()),d=new xi(Ar(o,Pr(i.store,o)),a,a&&a.lastId,d,d&&d.id,t,null,c),d.integrate(e,0),n.right=d,n.index=u,n.forward(),Ms(e,t,n,l)},zs=(e,t,n,r,s)=>{const i=e.doc,o=i.clientID;Bs(n,s);const l=Fs(e,t,n,s);e:for(;null!==n.right&&(r>0||l.size>0&&(n.right.deleted||n.right.content.constructor===ai));){if(!n.right.deleted)switch(n.right.content.constructor){case ai:{const{key:t,value:i}=n.right.content,o=s[t];if(void 0!==o){if(Ls(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&&Br(e,Ar(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 xi(Ar(o,Pr(i.store,o)),n.left,n.left&&n.left.lastId,n.right,n.right&&n.right.id,t,null,new fi(s)),n.right.integrate(e,0),n.forward()}Ms(e,t,n,l)},Hs=(e,t,n,r,s)=>{let i=t;const o=hn();for(;i&&(!i.countable||i.deleted);){if(!i.deleted&&i.content.constructor===ai){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 ai:{const{key:i,value:a}=n,d=r.get(i)??null;o.get(i)===n&&d!==a||(t.delete(e),l++,c||(s.get(i)??null)!==a||d===a||(null===d?s.delete(i):s.set(i,d))),c||t.deleted||Ns(s,n);break}}}t=t.right}return l},Vs=e=>{let t=0;return qr(e.doc,n=>{let r=e._start,s=e._start,i=hn();const o=fn(i);for(;s;){if(!1===s.deleted)if(s.content.constructor===ai)Ns(o,s.content);else t+=Hs(n,r,s,i,o),i=fn(o),r=s;s=s.right}}),t},Ks=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&&Wr(e,n.store.clients.get(r),i,s,e=>{e.deleted||e.content.constructor!==ai||e.constructor===ri||t.add(e.parent)})}qr(n,n=>{or(e,e.deleteSet,e=>{if(e instanceof ri||!e.parent._hasFormatting||t.has(e.parent))return;const r=e.parent;e.content.constructor===ai?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===ai){const r=t.content.key;n.has(r)?t.delete(e):n.add(r)}t=t.left}})(n,e)});for(const e of t)Vs(e)})},Js=(e,t,n)=>{const r=n,s=fn(t.currentAttributes),i=t.right;for(;n>0&&null!==t.right;){if(!1===t.right.deleted)switch(t.right.content.constructor){case ki:case ci:case fi:n<t.right.length&&Br(e,Ar(t.right.id.client,t.right.id.clock+n)),n-=t.right.length,t.right.delete(e)}t.forward()}i&&Hs(e,i,t.right,s,t.currentAttributes);const o=(t.left||t.right).parent;return o._searchMarker&&us(o._searchMarker,t.index,-r+n),t};class qs extends ss{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=[];qr(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 d=()=>{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=In({},o))),c=0}e&&t.push(e),i=null}};for(;null!==s;){switch(s.content.constructor){case ki:case ci:this.adds(s)?this.deletes(s)||(d(),i="insert",l=s.content.getContent()[0],d()):this.deletes(s)?("delete"!==i&&(d(),i="delete"),a+=1):s.deleted||("retain"!==i&&(d(),i="retain"),c+=1);break;case fi:this.adds(s)?this.deletes(s)||("insert"!==i&&(d(),i="insert"),l+=s.content.str):this.deletes(s)?("delete"!==i&&(d(),i="delete"),a+=s.length):s.deleted||("retain"!==i&&(d(),i="retain"),c+=s.length);break;case ai:{const{key:t,value:l}=s.content;if(this.adds(s)){if(!this.deletes(s)){const c=n.get(t)??null;Ls(c,l)?null!==l&&s.delete(e):("retain"===i&&d(),Ls(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;Ls(e,l)||("retain"===i&&d(),o[t]=e)}else if(!s.deleted){r.set(t,l);const n=o[t];void 0!==n&&(Ls(n,l)?null!==n&&s.delete(e):("retain"===i&&d(),null===l?delete o[t]:o[t]=l))}s.deleted||("insert"===i&&d(),Ns(n,s.content));break}}s=s.right}for(d();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 Ys extends fs{constructor(e){super(),this._pending=void 0!==e?[()=>this.insert(0,e)]:[],this._searchMarker=[],this._hasFormatting=!1}get length(){return this.doc??os(),this._length}_integrate(e,t){super._integrate(e,t);try{this._pending.forEach(e=>e())}catch(e){}this._pending=null}_copy(){return new Ys}clone(){const e=new Ys;return e.applyDelta(this.toDelta()),e}_callObserver(e,t){super._callObserver(e,t);const n=new qs(this,e,t);hs(this,e,n),!e.local&&this._hasFormatting&&(e._needFormattingCleanup=!0)}toString(){this.doc??os();let e="",t=this._start;for(;null!==t;)!t.deleted&&t.countable&&t.content.constructor===fi&&(e+=t.content.str),t=t.right;return e}toJSON(){return this.toString()}applyDelta(e,{sanitize:t=!0}={}){null!==this.doc?qr(this.doc,n=>{const r=new Ps(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)&&Ws(n,this,r,o,i.attributes||{})}else void 0!==i.retain?zs(n,this,r,i.retain,i.attributes||{}):void 0!==i.delete&&Js(n,r,i.delete)}}):this._pending.push(()=>this.applyDelta(e))}toDelta(e,t,n){this.doc??os();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(Tr(l,e)||void 0!==t&&Tr(l,t))switch(l.content.constructor){case fi:{const r=s.get("ychange");void 0===e||Tr(l,e)?void 0===t||Tr(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 ki:case ci:{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 ai:Tr(l,e)&&(c(),Ns(s,l.content))}l=l.right}c()};return e||t?qr(i,n=>{e&&jr(n,e),t&&jr(n,t),a()},"cleanup"):a(),r}insert(e,t,n){if(t.length<=0)return;const r=this.doc;null!==r?qr(r,r=>{const s=$s(r,this,e,!n);n||(n={},s.currentAttributes.forEach((e,t)=>{n[t]=e})),Ws(r,this,s,t,n)}):this._pending.push(()=>this.insert(e,t,n))}insertEmbed(e,t,n){const r=this.doc;null!==r?qr(r,r=>{const s=$s(r,this,e,!n);Ws(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?qr(n,n=>{Js(n,$s(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?qr(r,r=>{const s=$s(r,this,e,!1);null!==s.right&&zs(r,this,s,t,n)}):this._pending.push(()=>this.format(e,t,n))}removeAttribute(e){null!==this.doc?qr(this.doc,t=>{xs(t,this,e)}):this._pending.push(()=>this.removeAttribute(e))}setAttribute(e,t){null!==this.doc?qr(this.doc,n=>{Es(n,this,e,t)}):this._pending.push(()=>this.setAttribute(e,t))}getAttribute(e){return Cs(this,e)}getAttributes(){return Is(this)}_write(e){e.writeTypeRef(mi)}}class Gs{constructor(e,t=()=>!0){this._filter=t,this._root=e,this._currentNode=e._start,this._firstCall=!0,e.doc??os()}[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!==Xs&&t.constructor!==Qs||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 Qs extends fs{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 Qs}clone(){const e=new Qs;return e.insert(0,this.toArray().map(e=>e instanceof fs?e.clone():e)),e}get length(){return this.doc??os(),null===this._prelimContent?this._length:this._prelimContent.length}createTreeWalker(e){return new Gs(this,e)}querySelector(e){e=e.toUpperCase();const t=new Gs(this,t=>t.nodeName&&t.nodeName.toUpperCase()===e).next();return t.done?null:t.value}querySelectorAll(e){return e=e.toUpperCase(),A(new Gs(this,t=>t.nodeName&&t.nodeName.toUpperCase()===e))}_callObserver(e,t){hs(this,e,new Zs(this,t,e))}toString(){return ms(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),ys(this,s=>{r.insertBefore(s.toDOM(e,t,n),null)}),r}insert(e,t){null!==this.doc?qr(this.doc,n=>{ks(n,this,e,t)}):this._prelimContent.splice(e,0,...t)}insertAfter(e,t){if(null!==this.doc)qr(this.doc,n=>{const r=e&&e instanceof fs?e._item:e;ws(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 oe("Reference item not found");n.splice(r,0,...t)}}delete(e,t=1){null!==this.doc?qr(this.doc,n=>{Ss(n,this,e,t)}):this._prelimContent.splice(e,t)}toArray(){return gs(this)}push(e){this.insert(this.length,e)}unshift(e){this.insert(0,e)}get(e){return bs(this,e)}slice(e=0,t=this.length){return ps(this,e,t)}forEach(e){ys(this,e)}_write(e){e.writeTypeRef(bi)}}class Xs extends Qs{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 Xs(this.nodeName)}clone(){const e=new Xs(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 fs?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?qr(this.doc,t=>{xs(t,this,e)}):this._prelimAttrs.delete(e)}setAttribute(e,t){null!==this.doc?qr(this.doc,n=>{Es(n,this,e,t)}):this._prelimAttrs.set(e,t)}getAttribute(e){return Cs(this,e)}hasAttribute(e){return Os(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&&Tr(s,t)&&(n[r]=s.content.getContent()[s.length-1])}),n})(this,e):Is(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 ys(this,s=>{r.appendChild(s.toDOM(e,t,n))}),void 0!==n&&n._createAssociation(r,this),r}_write(e){e.writeTypeRef(vi),e.writeKey(this.nodeName)}}class Zs extends ss{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 ei extends Us{constructor(e){super(),this.hookName=e}_copy(){return new ei(this.hookName)}clone(){const e=new ei(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(wi),e.writeKey(this.hookName)}}class ti extends Ys{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 ti}clone(){const e=new ti;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(_i)}}class ni{constructor(e,t){this.id=e,this.length=t}get deleted(){throw le()}mergeWith(e){return!1}write(e,t,n){throw le()}integrate(e,t){throw le()}}class ri extends ni{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),Rr(e.doc.store,this)}write(e,t){e.writeInfo(0),e.writeLen(this.length-t)}getMissing(e,t){return null}}class si{constructor(e){this.content=e}getLength(){return 1}getContent(){return[this.content]}isCountable(){return!0}copy(){return new si(this.content)}splice(e){throw le()}mergeWith(e){return!1}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeBuf(this.content)}getRef(){return 3}}class ii{constructor(e){this.len=e}getLength(){return this.len}getContent(){return[]}isCountable(){return!1}copy(){return new ii(this.len)}splice(e){const t=new ii(this.len-e);return this.len=e,t}mergeWith(e){return this.len+=e.len,!0}integrate(e,t){ar(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 oi=(e,t)=>new fr({guid:e,...t,shouldLoad:t.shouldLoad||t.autoLoad||!1});class li{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 li(oi(this.doc.guid,this.opts))}splice(e){throw le()}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 ci{constructor(e){this.embed=e}getLength(){return 1}getContent(){return[this.embed]}isCountable(){return!0}copy(){return new ci(this.embed)}splice(e){throw le()}mergeWith(e){return!1}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeJSON(this.embed)}getRef(){return 5}}class ai{constructor(e,t){this.key=e,this.value=t}getLength(){return 1}getContent(){return[]}isCountable(){return!1}copy(){return new ai(this.key,this.value)}splice(e){throw le()}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 di{constructor(e){this.arr=e}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new di(this.arr)}splice(e){const t=new di(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 ui="development"===Bn("node_env");class hi{constructor(e){this.arr=e,ui&&Un(e)}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new hi(this.arr)}splice(e){const t=new hi(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 fi{constructor(e){this.str=e}getLength(){return this.str.length}getContent(){return this.str.split("")}isCountable(){return!0}copy(){return new fi(this.str)}splice(e){const t=new fi(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 pi=[e=>new Ts,e=>new Us,e=>new Ys,e=>new Xs(e.readKey()),e=>new Qs,e=>new ei(e.readKey()),e=>new ti],gi=0,yi=1,mi=2,vi=3,bi=4,wi=5,_i=6;class ki{constructor(e){this.type=e}getLength(){return 1}getContent(){return[this.type]}isCountable(){return!0}copy(){return new ki(this.type._copy())}splice(e){throw le()}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 Si=(e,t,n)=>{const{client:r,clock:s}=t.id,i=new xi(Ar(r,s+n),t,Ar(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=Ar(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 xi extends ni{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>=Pr(t,this.origin.client))return this.origin.client;if(this.rightOrigin&&this.rightOrigin.client!==this.id.client&&this.rightOrigin.clock>=Pr(t,this.rightOrigin.client))return this.rightOrigin.client;if(this.parent&&this.parent.constructor===Or&&this.id.client!==this.parent.client&&this.parent.clock>=Pr(t,this.parent.client))return this.parent.client;if(this.origin&&(this.left=Fr(e,t,this.origin),this.origin=this.left.lastId),this.rightOrigin&&(this.right=Br(e,this.rightOrigin),this.rightOrigin=this.right.id),this.left&&this.left.constructor===ri||this.right&&this.right.constructor===ri)this.parent=null;else if(this.parent){if(this.parent.constructor===Or){const e=Mr(t,this.parent);e.constructor===ri?this.parent=null:this.parent=e.content.type}}else this.left&&this.left.constructor===xi?(this.parent=this.left.parent,this.parentSub=this.left.parentSub):this.right&&this.right.constructor===xi&&(this.parent=this.right.parent,this.parentSub=this.right.parentSub);return null}integrate(e,t){if(t>0&&(this.id.clock+=t,this.left=Fr(e,e.doc.store,Ar(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),Dr(this.origin,t.origin)){if(t.id.client<this.id.client)n=t,r.clear();else if(Dr(this.rightOrigin,t.rightOrigin))break}else{if(null===t.origin||!s.has(Mr(e.doc.store,t.origin)))break;r.has(Mr(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),Rr(e.doc.store,this),this.content.integrate(e,this),Vr(e,this.parent,this.parentSub),(null!==this.parent._item&&this.parent._item.deleted||null!==this.parentSub&&null!==this.right)&&this.delete(e)}else new ri(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:Ar(this.id.client,this.id.clock+this.length-1)}mergeWith(e){if(this.constructor===e.constructor&&Dr(e.origin,this.lastId)&&this.right===e&&Dr(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(),ar(e.deleteSet,this.id.client,this.id.clock,this.length),Vr(e,t,this.parentSub),this.content.delete(e)}}gc(e,t){if(!this.deleted)throw ce();this.content.gc(e),t?((e,t,n)=>{const r=e.clients.get(t.id.client);r[$r(r,t.id.clock)]=n})(e,this,new ri(this.id,this.length)):this.content=new ii(this.length)}write(e,t){const n=t>0?Ar(this.id.client,this.id.clock+t-1):this.origin,r=this.rightOrigin,s=this.parentSub,i=31&this.content.getRef()|(null===n?0:S)|(null===r?0:k)|(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 ce()})(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===Or?(e.writeParentInfo(!1),e.writeLeftID(t)):ce();null!==s&&e.writeString(s)}this.content.write(e,t)}}const Ei=(e,t)=>Ci[31&t](e),Ci=[()=>{ce()},e=>new ii(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 di(n)},e=>new si(e.readBuf()),e=>new fi(e.readString()),e=>new ci(e.readJSON()),e=>new ai(e.readKey(),e.readJSON()),e=>new ki(pi[e.readTypeRef()](e)),e=>{const t=e.readLen(),n=[];for(let r=0;r<t;r++)n.push(e.readAny());return new hi(n)},e=>new li(oi(e.readString(),e.readAny())),()=>{ce()}];class Ii extends ni{get deleted(){return!0}delete(){}mergeWith(e){return this.constructor===e.constructor&&(this.length+=e.length,!0)}integrate(e,t){ce()}write(e,t){e.writeInfo(10),z(e.restEncoder,this.length-t)}getMissing(e,t){return null}}const Oi="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},Di="__ $YJS$ __";function Ai(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}Oi[Di],Oi[Di]=!0;const Ti=new FinalizationRegistry(({cache:e,key:t})=>{delete e[t]});function ji(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=Pi(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=Pi(n,r,s),o=null===(t=this.cache[i])||void 0===t?void 0:t.deref();o&&Ti.unregister(o),this.cache[i]=new WeakRef(e),Ti.register(e,{cache:this.cache,key:i},e)},delete(e){Ti.unregister(e);const t=Pi(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 Ui=new WeakSet;function Li(e){if(Ui.has(e))throw new Error(`Y.Doc ${e.meta.parentId} has been destroyed`)}function Pi(e,t,n){return`${e}[${t}].${n}`}const{getByKeyPath:Ri}=t.Dexie;let $i=null;function Mi(e){$i=e}function Ni(){}const Bi=new WeakMap;function Fi(){return t.Dexie.Events(null,"load","sync","error")}class Wi{static getOrCreateDocument(e,t,n,r){var s,i;const o=ji(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 fr({meta:{db:e,updatesTable:s,parentProp:r,parentTable:n,parentId:i}}),t.add(o),o.on("destroy",()=>{Ui.add(o),t.delete(o)}),o)}(e,o,t,n,l,r)}static load(e,t){var n;let r=Bi.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 Wi(e),r.graceTimeout=null!==(n=null==t?void 0:t.gracePeriod)&&void 0!==n?n:-1,Bi.set(e,r)),r}static release(e){if(!e||Ui.has(e))return;const t=Bi.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(Wi.on("beforeunload").fire(this)).finally(()=>{var e;0===this.refCount&&(null===(e=this.doc)||void 0===e||e.destroy())})}static for(e){return Bi.get(e)}static get currentUpdateRow(){return $i}get whenLoaded(){return this._whenLoaded||(this._whenLoaded=new Promise((e,n)=>{this.doc?this.doc.isLoaded?e():this._error?n(this._error):Ui.has(this.doc)?n(new t.Dexie.AbortError("Document was destroyed before loaded")):(this.on("load",e),this.on("error",n),this.doc.on("destroy",()=>n(new t.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((e,n)=>{this.doc?this.doc.isSynced?e():this._error?n(this._error):Ui.has(this.doc)?n(new t.Dexie.AbortError("Document was destroyed before synced")):(this.on("sync",e),this.on("error",n),this.doc.on("destroy",()=>n(new t.Dexie.AbortError("Document was destroyed before synced")))):n(new Error("No Y.Doc associated with this provider"))})),this._whenSynced}constructor(e){this.refCount=1,this.cleanupHandlers=[],this.graceTimeout=-1,this.doc=null,this.destroyed=!1,this.on=Fi(),this.doc=e,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]=()=>Wi.release(e)),e.on("load",()=>this.on("load").fire()),e.on("sync",e=>!1!==e&&this.on("sync").fire()),e.on("destroy",this.destroy.bind(this)),this.on("error",e=>{this._error=e});const{db:n,parentTable:r,parentId:s,updatesTable:i}=e.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`);Li(e),this.stopObserving=function(e,n,r,s,i,o){let l=0,c=!0;const a=t.liveQuery(()=>{Li(n);const e=r.table(i);return Promise.all([(l>0?e.where("i").between(l,1/0,!1).toArray().then(e=>e.filter(e=>0===t.cmp(e.k,o))):e.where({k:o}).toArray()).then(e=>e),r.table(s).where(":id").equals(o).toArray()])}).subscribe(([t,r])=>{t.length>0&&(l=t[t.length-1].i),0!==r.length?(Li(n),t.length>0&&qr(n,()=>{t.forEach(e=>{try{Mi(e),kr(n,e.u)}finally{Mi(null)}})},e,!1),c&&(c=!1,n.emit("load",[n]))):n.destroy()},t=>{e.on("error").fire(t)}),d=(t,n)=>{n!==e&&r.table(i).add({k:o,u:t,f:1}).then(e=>{e===l-1&&++l}).catch(t=>{e.on("error").fire(t)})},u=()=>{a.unsubscribe(),n.off("updateV2",d),n.off("destroy",u)};return n.on("updateV2",d),n.on("destroy",u),u}(this,e,n,r,i,s),Wi.on("new").fire(this)}destroy(){var e;Bi.delete(this.doc),this.doc=null,this.destroyed=!0,this.refCount=0,null===(e=this.stopObserving)||void 0===e||e.call(this),this.on=Fi(),this.cleanupHandlers.forEach(e=>e())}addCleanupHandler(e){this.cleanupHandlers.push("function"==typeof e?e:()=>e.unsubscribe())}}function zi(e,n){return s(this,void 0,void 0,function*(){var r;const i={};let o,l=!1;for(const c of e)try{switch(c.type){case"u-s":{const e=Ai(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=Ai(n,c.table,c.prop);e&&(yield n.transaction("rw",e,t=>s(this,void 0,void 0,function*(){let n=yield t.table(e.name).get(dn);yield t.table(e.name).put(Object.assign(Object.assign({},n||{i:dn}),{unsentFrom:Math.max((null==n?void 0:n.unsentFrom)||1,c.i+1)}))})));break}case"u-reject":{const e=Ai(n,c.table,c.prop);if(!e)break;const s=null===(r=yield e.get(c.i))||void 0===r?void 0:r.k;if(null!=s){yield n.transaction("rw",e,n=>(n.idbtrans._rejecting_y_ypdate=!0,e.where("i").aboveOrEqual(c.i).filter(e=>0===t.cmp(e.k,s)&&!(1&~(e.f||0))).delete()));const r=Wi.getDocCache(n.dx).find(c.table,s,c.prop);r&&r.destroy()}break}case"in-sync":{const e=Wi.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}})}Wi.on=t.Dexie.Events(null,{new:[function(e,t){return e===Ni?t:function(){e.apply(this,arguments),t.apply(this,arguments)}}],beforeunload:[function(e,t){return e===Ni?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)}}]}),Wi.getDocCache=ji,t.Dexie.DexieYProvider?Wi=t.Dexie.DexieYProvider||Wi:t.Dexie.DexieYProvider=Wi;function Hi(e,n,r){return s(this,arguments,void 0,function*(e,n,{yDownloadedRealms:r,realms:i}){if(r&&i&&i.every(e=>"*"===r[e]))return;const a=yield He(e),d={"Content-Type":"application/json",Accept:"application/octet-stream"};a&&(d.Authorization=`Bearer ${a.accessToken}`);const u=yield fetch(`${n}/y/download`,{body:Gt.stringify({downloadedRealms:r||{}}),method:"POST",headers:d,credentials:"include"});if(!u.ok)throw new Error(`Failed to download Yjs documents from server. Status: ${u.status}`);yield async function(e,...t){let n=e();for(let e=0;e<t.length;e++)n=t[e](n);for await(const e of n);}(function(e){return async function*(){if(!e.body)throw new Error("Response body is not readable");const t=e.body.getReader();try{for(;;){const{done:e,value:n}=await t.read();if(e)return;yield n}}finally{t.releaseLock()}}}(u),Ie,function(r){return l(this,arguments,function*(){var i,l,a,d;let u=null,h=null,f=null,p=[];function g(t){return s(this,void 0,void 0,function*(){const r=p[p.length-1];if(p.length>0){if(!u||!h||!f)throw new Error(`Protocol error from ${n}/y/download`);const t=Ai(e,h,f);t&&(yield t.bulkAdd(p)),p=[]}u&&(h&&f&&r||t)&&(yield e.$syncState.update("syncState",e=>{const n=e.yDownloadedRealms||{};n[u]=t?"*":{tbl:h,prop:f,key:r.k},e.yDownloadedRealms=n}))})}try{try{for(var y,m=!0,v=c(r);!(i=(y=yield o(v.next())).done);m=!0){d=y.value,m=!1;const e=new ue(d);for(;fe(e);)switch(ge(e)){case 1:yield o(g(!0)),u=ve(e);break;case 2:yield o(g(!1)),h=ve(e),f=ve(e);break;case 3:{const t=ke(e),n=pe(e);p.push({k:t,u:n});break}}yield o(g(!1))}}catch(e){l={error:e}}finally{try{m||i||!(a=v.return)||(yield o(a.call(v)))}finally{if(l)throw l.error}}yield o(g(!0))}catch(e){throw e instanceof t.DexieError||(yield o(g(!1))),e}})})})}const Vi="currentSyncWorker";function Ki(e,t,n,r){return Ji(e,t,n,r).then(t=>((null==r?void 0:r.justCheckIfNeeded)||e.syncStateChangedEvent.next({phase:"in-sync"}),t)).catch(i=>s(this,void 0,void 0,function*(){return(null==r?void 0:r.justCheckIfNeeded)?Promise.reject(i):sn&&(null==r?void 0:r.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 Ki(e,t,n,Object.assign(Object.assign({},r),{retryImmediatelyOnFetchError:!1}))):(yield e.$syncState.update("syncState",{timestamp:new Date,error:""+i}),e.syncStateChangedEvent.next({phase:sn?"error":"offline",error:new Error(""+(null==i?void 0:i.message)||i)}),Promise.reject(i))}))}function Ji(e,t,n){return s(this,arguments,void 0,function*(e,t,n,{isInitialSync:r,cancelToken:i,justCheckIfNeeded:o,purpose:l}={isInitialSync:!1}){var c;if(!(null===(c=e.cloud.options)||void 0===c?void 0:c.databaseUrl))throw new Error("Internal error: sync must not be called when no databaseUrl is configured");const{databaseUrl:a}=t,d=yield e.getCurrentUser(),h=d.isLoggedIn?gt(e):[],p=h.map(t=>e.table(yt(t.name))),g=yield e.getPersistedSyncState(),y=d.isLoggedIn,m=y?function(e,t){const n=(null==t?void 0:t.syncedTables)||[];return gt(e).filter(e=>!n.includes(e.name))}(e,g):[];rn(i);const v=m.length>0;if(v){if(o)return!0;yield e.transaction("rw",m,e=>s(this,void 0,void 0,function*(){e.idbtrans.disableChangeTracking=!0,e.idbtrans.disableAccessControl=!0,yield function(e,t,n){return s(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!==Ye.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!==Ye.userId||(e.owner=t.userId)}):yield n.toCollection().modify(e=>{e.realmId&&r.has(e.realmId)||(e.owner&&e.owner!==Ye.userId||(e.owner=t.userId),e.realmId&&e.realmId!==Ye.userId||(e.realmId=t.userId))}))})}(m,d,null==g?void 0:g.realms)})),rn(i)}const[b,w,_,{yMessages:k,lastUpdateIds:S}]=yield e.transaction("r",e.tables,()=>s(this,void 0,void 0,function*(){const t=yield e.getPersistedSyncState();let r=yield e.$baseRevs.toArray();r=r.filter(e=>h.some(t=>t.name===e.tableName));let o=yield wt(p,e);const l=yield function(e,t){return s(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(dn),l=(null==o?void 0:o.unsentFrom)||1,c=(null==o?void 0:o.receivedUntil)||0,a=Math.min(l,c+1),d=yield un(i,a);d.length>0&&(r[i.name]=d[d.length-1].i);const u={};for(const e of d){const t=!(1&~(e.f||0));if(t&&e.i<l)continue;const n=JSON.stringify(e.k)+"/"+t;let r=u[n];r?(r.u.push(e.u),r.i=Math.max(e.i,r.i)):(u[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(u)){const l=1===i.length?i[0]:Zr(i);if(r)n.push({type:"u-c",table:s.name,prop:t.prop,k:e,u:l,i:o});else{const r=Qr(l);n.push({type:"sv",table:s.name,prop:t.prop,k:e,sv:r})}}}return{yMessages:n,lastUpdateIds:r}})}(e,h);if(rn(i),v){const e=[...(null==g?void 0:g.realms)||[],...(null==g?void 0:g.inviteRealms)||[]],c=yield function(e,t,n,r){return s(this,void 0,void 0,function*(){const i=`upload-${_t(8)}`;if(t.isLoggedIn&&e.length>0){const o=new Set(r||[]);return(yield Promise.all(e.map(e=>s(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||"")&&f(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[]})}(m,d,n,e);return rn(i),o=o.concat(c),[o,t,r,l]}return[o,t,r,l]})),x=b.some(e=>e.muts.some(e=>e.keys.length>0))||k.some(e=>"u-c"===e.type);if(o)return x;if("push"===l&&!x)return!1;const E=ln(b,null==w?void 0:w.latestRevisions),C=(null==w?void 0:w.clientIdentity)||u(16);rn(i);const I=yield nn(b,k,w,_,e,a,n,C,d),{done:O,newSyncState:D}=yield e.transaction("rw",e.tables,t=>s(this,void 0,void 0,function*(){t.idbtrans.disableChangeTracking=!0,t.idbtrans.disableAccessControl=!0;for(const e of Object.keys(n))I.schema[e]&&(n[e]=I.schema[e]);yield e.$syncState.put(n,"schema");const r=yield wt(p,e,{since:E});for(const t of p){const n=mt(t.name);if(r.some(e=>e.table===n&&e.muts.length>0)){if(E[n]){const r=E[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()])}ln(r,E),yield on(e,n,E,I.serverRevision);const i=yield e.getPersistedSyncState();yield function(e,t,n){return s(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=gt(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,I,i);const o=i||{syncedTables:[],latestRevisions:{},realms:[],inviteRealms:[],clientIdentity:C};y&&(o.syncedTables=h.map(e=>e.name).concat(m.map(e=>e.name))),o.latestRevisions=E,o.remoteDbId=I.dbId,o.initiallySynced=!0,o.realms=I.realms,o.inviteRealms=I.inviteRealms,o.serverRevision=I.serverRevision,o.yServerRevision=I.serverRevision,o.timestamp=new Date,delete o.error;const l=qi(I.changes,r);if(yield an(l,e),I.yMessages){const{receivedUntils:t,resyncNeeded:n,yServerRevision:r}=yield zi(I.yMessages,e);r&&(o.yServerRevision=r),yield function(e,t,n){return s(this,void 0,void 0,function*(){var r,i,o,l,c;const a={};for(const[t,n]of Object.entries(e))null!==(r=a[t])&&void 0!==r||(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 d=Object.values(n.dx._dbSchema).filter(e=>e.yProps).map(e=>e.yProps.map(e=>e.updatesTable)).flat();for(const e of d){const t=a[e],r=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,()=>s(this,void 0,void 0,function*(){const t=yield n.table(e).get(dn);t?(t.unsentFrom=Math.max(r,t.unsentFrom||1),t.receivedUntil=Math.max(i,t.receivedUntil||0),yield n.table(e).put(t)):yield n.table(e).add({i:dn,unsentFrom:r,receivedUntil:i})}))}})}(S,t,e),n&&(o.yDownloadedRealms={})}return e.$syncState.put(o,"syncState"),{done:0===r.length,newSyncState:o}}));if(!O)return yield tn(e),yield Ji(e,t,n,{isInitialSync:r,cancelToken:i});const A=Object.values(n).some(e=>{var t;return null===(t=e.yProps)||void 0===t?void 0:t.length}),T=!!I.yMessages;if(A&&T)try{yield Hi(e,a,D)}catch(e){}return e.syncCompleteEvent.next(),!1})}function qi(e,t){const n={};y(n,e);const r={};return y(r,t),function(e,t){for(const[n,r]of Object.entries(t))for(const[t,s]of Object.entries(r))switch(s.type){case"ups":{const r=e[n]?.[t];if(r)switch(r.type){case"ups":case"upd":delete e[n][t]}}break;case"del":delete e[n]?.[t];break;case"upd":{const r=e[n]?.[t];if(r)switch(r.type){case"ups":for(const[e,t]of Object.entries(s.mod))d(r.val,e,t);break;case"del":break;case"upd":for(const e of Object.keys(s.mod))delete r.mod[e]}break}}}(n,r),function(e,t){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({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)}function Yi(e){const i=[],o=new n.BehaviorSubject(!0),l=new n.BehaviorSubject(null);let c=!1,a=new Array(10).fill(0);return l.subscribe(()=>s(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 s(this,void 0,void 0,function*(){for(var o,l,c,a,d,u;i.length>0;){const h=i.shift();try{yield n.firstValueFrom(e.cloud.syncState.pipe(r.filter(({phase:e})=>"in-sync"===e||"error"===e)));const i=e.cloud.persistedSyncState.value;if(!h)continue;switch(h.type){case"token-expired":const n=e.cloud.currentUser.value,r=yield Ke(e.cloud.options.databaseUrl,n);yield e.table("$logins").update(n.userId,{accessToken:r.accessToken,accessTokenExpiration:r.accessTokenExpiration,claims:r.claims,license:r.license,data:r.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 e.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 e.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===(d=null==i?void 0:i.inviteRealms)||void 0===d?void 0:d.includes(h.realm)))&&(yield e.cloud.sync({purpose:"pull",wait:!0}));break;case"realms-changed":yield e.cloud.sync({purpose:"pull",wait:!0});break;case"changes":if("error"===(null===(u=e.cloud.syncState.value)||void 0===u?void 0:u.phase)){Ae(e,"pull");break}yield e.transaction("rw",e.dx.tables,n=>s(this,void 0,void 0,function*(){n.idbtrans.disableChangeTracking=!0,n.idbtrans.disableAccessControl=!0;const[r,s,i]=yield Promise.all([e.getSchema(),e.getPersistedSyncState(),e.getCurrentUser()]);if(!s||!r||!i)return;if(h.baseRev!==s.serverRevision)return void("string"!=typeof h.baseRev||"bigint"!=typeof s.serverRevision&&"object"!=typeof s.serverRevision||Ae(e,"pull"));if((yield t.waitFor(pt(s)))!==h.realmSetHash)return void Ae(e,"pull");let o=[];if(i.isLoggedIn){const t=gt(e).map(t=>e.table(yt(t.name)));o=yield wt(t,e)}if(h.changes.length>0){const t=qi(h.changes,o);yield an(t,e)}s.latestRevisions=ln(o,s.latestRevisions),s.serverRevision=h.newRev,yield on(e,r,s.latestRevisions,h.newRev),yield e.$syncState.put(s,"syncState")}))}}catch(e){}}})}()}finally{a[a.length-1]-a[0]<1e4&&(yield new Promise(e=>setTimeout(e,1e3))),c=!1,o.next(!0)}}})),{enqueue:function(e){i.push(e),l.next(null)},readyToServe:o}}const Gi=new WeakMap,Qi={members:"@id, [userId+realmId], [email+realmId], realmId",roles:"[realmId+name]",realms:"@realmId",$jobs:"",$syncState:"",$baseRevs:"[tableName+clientRev]",$logins:"claims.sub, lastLogin"};let Xi=0;function Zi(e){"vip"in e&&(e=e.vip);let t=Gi.get(e.cloud);if(!t){const r=new n.Subject;let s=new ft(`syncstatechanged-${e.name}`),i=new ft(`synccomplete-${e.name}`);r.id=++Xi;let o=!1;t={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:()=>t.$logins.toArray().then(e=>e.find(e=>e.isLoggedIn)||Ye),getPersistedSyncState:()=>t.$syncState.get("syncState"),getSchema:()=>t.$syncState.get("schema").then(e=>{if(e)for(const n of t.tables)n.schema.primKey&&n.schema.primKey.keyPath&&e[n.name]&&(e[n.name].primaryKey=eo(n.schema.primKey.keyPath));return e}),getOptions:()=>t.$syncState.get("options"),setInitiallySynced(e){o=e},reconfigure(){s=new ft(`syncstatechanged-${e.name}`),i=new ft(`synccomplete-${e.name}`)}};Object.assign(t,l),t.messageConsumer=Yi(t),t.messageProducer=new n.Subject,Gi.set(e.cloud,t)}return t}function eo(e){return"string"==typeof e?e:e?"["+[].join.call(e,"+")+"]":""}const to="undefined"!=typeof InstallTrigger,no="undefined"!=typeof navigator&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\/|Edge\//.test(navigator.userAgent),ro=no?[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]:NaN,so=no&&ro<=605||to,io="undefined"!=typeof self&&"clients"in self&&!self.document;const{toString:oo}={};function lo(e){return oo.call(e).slice(8,-1)}function co(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)}function ao(e,t){return(1&t?e[0].toUpperCase():e[0].toLowerCase())+(2&t?e[1].toUpperCase():e[1].toLowerCase())+(4&t?e[2].toUpperCase():e[2].toLowerCase())}const uo=/b|c|d|f|g|h|j|k|l|m|n|p|q|r|s|t|v|x|y|z/i;function ho(e){return e>="A"&&e<="Z"}let fo=0;function po(e,t){const n=new Uint8Array(18),r=new Uint8Array(n.buffer,0,6),s=Date.now();fo>=s?++fo:fo=s,r[0]=fo/1099511627776,r[1]=fo/4294967296,r[2]=fo/16777216,r[3]=fo/65536,r[4]=fo/256,r[5]=fo;const i=new Uint8Array(n.buffer,6);crypto.getRandomValues(i);return e+Ut(new Uint8Array(n.buffer))+(t||"")}function go(e){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=e.cloud.schema)||void 0===i?void 0:i[r];if(null==l?void 0:l.generatedGlobalId){if((null===(o=e.cloud.options)||void 0===o?void 0:o.databaseUrl)&&!e.initiallySynced){const e=co(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=co(s.schema.primaryKey,n);return l.forEach((c,a)=>{if(void 0===c){const r=n.values[a].realmId||e.cloud.currentUserId,c=r.substr(r.length-3);l[a]=po(i,c),s.schema.primaryKey.outbound||(o||(o=n.values.slice()),o[a]=t.deepClone(o[a]),t.setByKeyPath(o[a],s.schema.primaryKey.keyPath,l[a]))}else if("string"!=typeof c||!c.startsWith(i)&&!c.startsWith("#"+i))throw new t.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){co(s.schema.primaryKey,n).forEach((e,n)=>{if(!f(e)){const n=Array.isArray(e)?e.map(lo).join(","):lo(e);throw new t.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 yo=0;function mo(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 vo(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 bo=new n.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 _o({currentUserObservable:e,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:(t,s)=>{let i;if("readwrite"===s){const e=t.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=>yt(e));i=r.transaction([...t,...e],s)}else i=r.transaction(t,s);if("readwrite"===s){i.txid=_t(16),i.opCount=0,i.currentUser=e.value,bo.value.add(i),bo.next(bo.value);const t=()=>{i.removeEventListener("complete",r),i.removeEventListener("error",t),i.removeEventListener("abort",t),bo.value.delete(i),bo.next(bo.value)},r=()=>{i.mutationsAdded&&!wo(n)&&Ae(n,"push"),t()};i.addEventListener("complete",r),i.addEventListener("error",t),i.addEventListener("abort",t)}return i},table:e=>{const s=r.table(e);if(/^\$/.test(e))return e.endsWith("_mutations")?Object.assign(Object.assign({},s),{mutate:e=>("add"!==e.type&&"put"!==e.type||(e.trans.mutationsAdded=!0),s.mutate(e))}):"$logins"===e?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(e);return l?function(e){const t="$lock"+ ++yo;return Object.assign(Object.assign({},e),{count:mo(e.count,t),get:mo(e.get,t),getMany:mo(e.getMany,t),openCursor:mo(e.openCursor,t),query:mo(e.query,t),mutate:vo(e.mutate,t)})}(Object.assign(Object.assign({},s),{mutate:t=>{var r,o,l;const a=t.trans;return a.txid?a.disableChangeTracking?s.mutate(t):(null===(o=null===(r=n.cloud.schema)||void 0===r?void 0:r[e])||void 0===o?void 0:o.markedForSync)&&(null===(l=a.currentUser)||void 0===l?void 0:l.isLoggedIn)?"deleteRange"===t.type?s.query({query:{range:t.range,index:i.primaryKey},trans:t.trans,values:!1}).then(e=>c({type:"delete",keys:e.result,trans:t.trans,criteria:{index:null,range:t.range}})):c(t):s.mutate(t):s.mutate(t)}})):s;function c(r){var o,c;const a=r.trans,d=null===(c=null===(o=n.cloud.options)||void 0===o?void 0:o.unsyncedProperties)||void 0===c?void 0:c[e],{txid:u,currentUser:{userId:h}}=a,{type:f}=r,p=++a.opCount;function g(e){if(!d)return e;let t=e;for(const n of Object.keys(e))d.some(e=>n===e||n.startsWith(e+"."))&&(t===e&&(t=Object.assign({},e)),delete t[n]);return t}return s.mutate(r).then(e=>{var n;const{numFailures:s,failures:o}=e;let c="delete"===f?r.keys:e.results,y="values"in r?r.values:[],m="changeSpec"in r?r.changeSpec:void 0,v="updates"in r?r.updates:void 0,b=!(!v||!("upsert"in r))&&r.upsert;if(s&&(c=c.filter((e,t)=>!o[t]),y=y.filter((e,t)=>!o[t])),d){if(y=y.map(e=>{const t=Object.assign({},e);for(const e of d)delete t[e];return t}),m&&(m=g(m),0===Object.keys(m).length))return e;if(v){let e=v.changeSpecs.map(g),n={keys:[],changeSpecs:[]};const r=new t.RangeSet;let s=!1;if(!b){for(let t=0,i=e.length;t<i;++t)Object.keys(e[t]).length>0?(n.keys.push(v.keys[t]),n.changeSpecs.push(e[t]),r.addKey(v.keys[t])):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 w=Date.now();let _="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(d&&(null==_?void 0:_.index)){const e=null===(n=i.indexes.find(e=>e.name===_.index))||void 0===n?void 0:n.keyPath;(e?"string"==typeof e?[e]:e:[]).some(e=>null==d?void 0:d.includes(e))&&(_=void 0)}const k="delete"===r.type?{type:"delete",ts:w,opNo:p,keys:c,criteria:_,txid:u,userId:h}:"add"===r.type?{type:"insert",ts:w,opNo:p,keys:c,txid:u,userId:h,values:y}:b&&v?{type:"upsert",ts:w,opNo:p,keys:c,values:y,changeSpecs:v.changeSpecs.filter((e,t)=>!o[t]),txid:u,userId:h}:_&&m?{type:"modify",ts:w,opNo:p,keys:c,criteria:_,changeSpec:m,txid:u,userId:h}:m?{type:"update",ts:w,opNo:p,keys:c,changeSpecs:c.map(()=>m),txid:u,userId:h}:v?{type:"update",ts:w,opNo:p,keys:v.keys,changeSpecs:v.changeSpecs,txid:u,userId:h}:{type:"upsert",ts:w,opNo:p,keys:c,values:y,txid:u,userId:h};return"isAdditionalChunk"in r&&r.isAdditionalChunk&&(k.isAdditionalChunk=!0),c.length>0||_?l.mutate({type:"add",trans:a,values:[k]}).then(()=>(a.mutationsAdded=!0,e)):e})}}})}}}function ko(e,t){return function(n,r){var s;const i=Object.assign(Object.assign({},Qi),n);Object.keys(Qi).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=Qi[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(Qi[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=>{var t;const n=null===(t=i[e])||void 0===t?void 0:t.trim(),r=o[e]||(o[e]={});null!=n?(/^\@/.test(n)&&(i[e]=i[e].substr(1),r.generatedGlobalId=!0,r.idPrefix=function(e,t){let n=e[0].toLocaleLowerCase();for(let t=1,r=e.length;t<r&&n.length<3;++t)(uo.test(e[t])||ho(e[t]))&&(n+=e[t].toLowerCase());for(;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;)r=ao(n,e),++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(r.idPrefix)),/^\$/.test(e)||(i[`$${e}_mutations`]="++rev",r.markedForSync=!0),r.deleted&&(r.deleted=!1)):(r.deleted=!0,r.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 So(e,t,n){return"undefined"!=typeof navigator&&navigator.locks?navigator.locks.request(e.name+"|"+t,n):n()}const xo=new n.BehaviorSubject(!0),Eo=new n.BehaviorSubject(!0);xo.pipe(r.switchMap(e=>e?n.of(!0):n.of(!1).pipe(r.delay(2e4))),r.distinctUntilChanged()).subscribe(Eo);const Co="undefined"!=typeof document?n.fromEvent(document,"visibilitychange"):n.of({}),Io=Co.pipe(r.filter(()=>"hidden"===document.visibilityState)),Oo=Co.pipe(r.filter(()=>"visible"===document.visibilityState)),Do="undefined"!=typeof window?n.merge(Oo,n.fromEvent(window,"mousedown"),n.fromEvent(window,"mousemove"),n.fromEvent(window,"keydown"),n.fromEvent(window,"wheel"),n.fromEvent(window,"touchmove")):n.of({});"undefined"!=typeof document&&n.merge(n.of(!0),Io,Do).pipe(r.map(()=>"visible"===document.visibilityState),r.tap(e=>{xo.value!==e&&xo.next(e)}),r.switchMap(e=>e?n.of(0).pipe(r.delay(16e4),r.tap(()=>xo.next(!1))):n.of(0))).subscribe(()=>{});class Ao extends Error{constructor(){super(...arguments),this.name="TokenExpiredError"}}const To=new WeakMap,jo=3e4;class Uo extends yn{constructor(e){super(),this.doc=e,this.clientID=e.clientID,this.states=new Map,this.meta=new Map,this._checkInterval=setInterval(()=>{const e=_n();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&&jo<=e-n.lastUpdated&&this.states.has(r)&&t.push(r)}),t.length>0&&Lo(this,t,"timeout")},m(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:_n()});const i=[],o=[],l=[],c=[];null===e?c.push(t):null==s?null!=e&&i.push(t):(o.push(t),Rn(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 Lo=(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:_n()})}r.push(s)}}r.length>0&&(e.emit("change",[{added:[],updated:[],removed:r},n]),e.emit("update",[{added:[],updated:[],removed:r},n]))},Po=new WeakMap;function Ro(e){let t=Po.get(e);return t||(t=new n.Subject,Po.set(e,t)),t}class $o extends n.Observable{constructor(e,t,n,r,s,i,o,l){super(c=>new No(e,t,n,r,s,l,c,i,o))}}let Mo=0;class No extends n.Subscription{constructor(e,t,n,r,s,i,o,l,c){super(()=>this.teardown()),this.id=++Mo,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 s(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 e=this.user.accessTokenExpiration;if(e&&e<new Date)return void this.subscriber.error(new Ao);this.webSocketStatus.next("connecting"),this.pinger=setInterval(()=>s(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 r=new URL(this.databaseUrl);r.protocol="http:"===r.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(`${r}/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?Gt.parse(e.data):function(e){const t=new ue(e),n=ve(t);if("outdated-server-rev"===n)return{type:n};if("y-complete-sync-done"===n)return{type:n,yServerRev:ve(t)};const r=ve(t),s=ve(t);switch(n){case"u-ack":case"u-reject":return{type:n,table:r,prop:s,i:Number(we(t))};default:{const e=ke(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:pe(t)};case"doc-open":return{type:n,table:r,prop:s,k:e,serverRev:ke(t),sv:ke(t)};case"sv":return{type:n,table:r,prop:s,k:e,sv:pe(t)};case"u-c":return{type:n,table:r,prop:s,k:e,u:pe(t),i:Number(we(t))};case"u-s":return{type:n,table:r,prop:s,k:e,u:pe(t),r:t.pos<t.arr.length&&ve(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=Wi.getDocCache(this.db.dx).find(t.table,t.k,t.prop);if(e){const n=(e=>To.get(e))(e);n&&((e,t,n)=>{const r=he(t),s=_n(),i=[],o=[],l=[],c=[],a=ye(r);for(let t=0;t<a;t++){const t=ye(r);let n=ye(r);const a=JSON.parse(ve(r)),d=e.meta.get(t),u=e.states.get(t),h=void 0===d?0:d.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===d&&null!==a?i.push(t):void 0!==d&&null===a?c.push(t):null!==a&&(Rn(a,u)||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=Wi.getDocCache(this.db.dx).find(t.table,t.k,t.prop);e&&Ro(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?zi([t],this.db).then(e=>s(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=Ai(this.db,t.table,t.prop);if(e){const t=r[e.name];t&&(yield e.update(dn,{receivedUntil:t}))}}e&&(yield this.db.cloud.sync({purpose:"pull",wait:!0}))})):this.subscriber.next(t)}catch(e){this.subscriber.error(e)}}};try{let e=!1;yield new Promise((t,n)=>{o.onopen=n=>{e=!0,t(null)},o.onerror=t=>{if(e)this.reconnect();else{const e=t.error||new Error("WebSocket Error");this.subscriber.error(e),this.webSocketStatus.next("error"),n(e)}}}),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(Gt.stringify(e))):null===(n=this.ws)||void 0===n||n.send(function(e){const t=new M;switch(J(t,e.type),"table"in e&&J(t,e.table),"prop"in e&&J(t,e.prop),e.type){case"u-ack":case"u-reject":Q(t,BigInt(e.i));break;case"outdated-server-rev":break;case"y-complete-sync-done":J(t,e.yServerRev);break;default:switch(Z(t,e.k),e.type){case"aware":Y(t,e.u);break;case"doc-open":Z(t,e.serverRev),Z(t,e.sv);break;case"doc-close":break;case"sv":Y(t,e.sv);break;case"u-c":Y(t,e.u),Q(t,BigInt(e.i));break;case"u-s":Y(t,e.u),J(t,e.r||"")}}return B(t)}(e)))})),this.user.isLoggedIn&&!wo(this.db)&&this.subscriptions.add(function(e){const r=bt(e.tables.filter(t=>{var n,r;return(null===(r=null===(n=e.cloud.schema)||void 0===n?void 0:n[t.name])||void 0===r?void 0:r.markedForSync)&&t.schema.yProps}).map(e=>e.schema.yProps.map(t=>({table:e.name,ydocProp:t.prop,updatesTable:t.updatesTable}))));return n.merge(...r.map(({table:r,ydocProp:i,updatesTable:o})=>{const l=e.table(o);return n.from(l.get(dn)).pipe(n.switchMap(e=>{let o=(null==e?void 0:e.unsentFrom)||1;return n.from(t.liveQuery(()=>s(this,void 0,void 0,function*(){return(yield un(l,o)).filter(e=>e.f&&1&e.f).map(e=>({type:"u-c",table:r,prop:i,k:e.k,u:e.u,i:e.i}))}))).pipe(n.tap(e=>{e.length>0&&(o=e.at(-1).i+1)}))}))})).pipe(n.mergeMap(e=>e))}(this.db).subscribe(this.db.messageProducer))}catch(e){this.pauseUntil=new Date(Date.now()+6e4)}})}}class Bo extends Error{constructor(e){super("expired"===e?"License expired":"deactivated"===e?"User deactivated":"Invalid license"),this.name="InvalidLicenseError",e&&(this.license=e)}}function Fo(e){return s(this,void 0,void 0,function*(){var e;yield(e=3e3,new Promise(t=>setTimeout(t,e))),yield n.firstValueFrom(Do)})}function Wo(e){return s(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 Ki(e,e.cloud.options,e.cloud.schema,{justCheckIfNeeded:!0}))})}const zo=new WeakMap;function Ho(e,t,n,r){const i=zo.get(e);if(i){if(i.pull||"push"===(null==r?void 0:r.purpose))return i.promise;{let s=!1;const o=e.cloud.syncState.subscribe(e=>{"pulling"===e.phase&&(s=!0)});return i.promise.then(()=>{o.unsubscribe()}).catch(e=>(o.unsubscribe(),Promise.reject(e))).then(()=>{if(!s)return Ho(e,t,n,r)})}}const o=function(){return s(this,void 0,void 0,function*(){try{yield tn(e),yield So(e,Vi,()=>Ki(e,t,n,r)),zo.delete(e)}catch(t){throw zo.delete(e),t}})}();return zo.set(e,{promise:o,pull:"push"!==(null==r?void 0:r.purpose)}),o}function Vo(e,t,n){let r=null,s={cancelled:!1},i=0,o=0;function l(r=1){setTimeout(()=>{const h=c?"pull":"push";o=Date.now(),Ho(e,t,n,{cancelToken:s,retryImmediatelyOnFetchError:!0,purpose:h}).then(()=>{if(s.cancelled)u();else if(c||a)return c=!1,a=!1,l();d=!1,i=0,o=0}).catch(e=>{if(s.cancelled)u(),d=!1,i=0,o=0;else if(r<5){const e=1e3*[0,20,40,300,900][r];i=Date.now()+e,o=0,setTimeout(()=>l(r+1),e)}else d=!1,i=0,o=0})},0)}let c=!1,a=!1,d=!1;const u=()=>{s.cancelled=!0,r&&r.unsubscribe()};return{start:()=>{r=e.localSyncEvent.subscribe(({purpose:e})=>{(e=>{s.cancelled||("pull"===e&&(c=!0),"push"===e&&(a=!0),d?i||o>0&&Date.now():(d=!0,l()))})(e||"pull")})},stop:u}}function Ko(e,t){if(e&&t&&t.unsyncedTables)for(const n of t.unsyncedTables)e[n]&&(e[n].markedForSync=!1)}var Jo,qo,Yo,Go,Qo,Xo,Zo,el,tl,nl,rl,sl={},il=[],ol=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,ll=Array.isArray;function cl(e,t){for(var n in t)e[n]=t[n];return e}function al(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function dl(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?Jo.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 ul(e,o,r,s,null)}function ul(e,t,n,r,s){var i={type:e,props:t,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:null==s?++Yo:s,__i:-1,__u:0};return null==s&&null!=qo.vnode&&qo.vnode(i),i}function hl(e){return e.children}function fl(e,t){this.props=e,this.context=t}function pl(e,t){if(null==t)return e.__?pl(e.__,e.__i+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?pl(e):null}function gl(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 gl(e)}}function yl(e){(!e.__d&&(e.__d=!0)&&Go.push(e)&&!ml.__r++||Qo!=qo.debounceRendering)&&((Qo=qo.debounceRendering)||Xo)(ml)}function ml(){for(var e,t,n,r,s,i,o,l=1;Go.length;)Go.length>l&&Go.sort(Zo),e=Go.shift(),l=Go.length,e.__d&&(n=void 0,r=void 0,s=(r=(t=e).__v).__e,i=[],o=[],t.__P&&((n=cl({},r)).__v=r.__v+1,qo.vnode&&qo.vnode(n),xl(t.__P,n,r,t.__n,t.__P.namespaceURI,32&r.__u?[s]:null,i,null==s?pl(r):s,!!(32&r.__u),o),n.__v=r.__v,n.__.__k[n.__i]=n,Cl(i,n,o),r.__e=r.__=null,n.__e!=s&&gl(n)));ml.__r=0}function vl(e,t,n,r,s,i,o,l,c,a,d){var u,h,f,p,g,y,m,v=r&&r.__k||il,b=t.length;for(c=function(e,t,n,r,s){var i,o,l,c,a,d=n.length,u=d,h=0;for(e.__k=new Array(s),i=0;i<s;i++)null!=(o=t[i])&&"boolean"!=typeof o&&"function"!=typeof o?("string"==typeof o||"number"==typeof o||"bigint"==typeof o||o.constructor==String?o=e.__k[i]=ul(null,o,null,null,null):ll(o)?o=e.__k[i]=ul(hl,{children:o},null,null,null):null==o.constructor&&o.__b>0?o=e.__k[i]=ul(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):e.__k[i]=o,c=i+h,o.__=e,o.__b=e.__b+1,-1!=(a=o.__i=wl(o,n,c,u))&&(u--,(l=n[a])&&(l.__u|=2)),null==l||null==l.__v?(-1==a&&(s>d?h--:s<d&&h++),"function"!=typeof o.type&&(o.__u|=4)):a!=c&&(a==c-1?h--:a==c+1?h++:(a>c?h--:h++,o.__u|=4))):e.__k[i]=null;if(u)for(i=0;i<d;i++)null!=(l=n[i])&&!(2&l.__u)&&(l.__e==r&&(r=pl(l)),Al(l,l));return r}(n,t,v,c,b),u=0;u<b;u++)null!=(f=n.__k[u])&&(h=-1==f.__i?sl:v[f.__i]||sl,f.__i=u,y=xl(e,f,h,s,i,o,l,c,a,d),p=f.__e,f.ref&&h.ref!=f.ref&&(h.ref&&Dl(h.ref,null,f),d.push(f.ref,f.__c||p,f)),null==g&&null!=p&&(g=p),(m=!!(4&f.__u))||h.__k===f.__k?c=bl(f,c,e,m):"function"==typeof f.type&&void 0!==y?c=y:p&&(c=p.nextSibling),f.__u&=-7);return n.__e=g,c}function bl(e,t,n,r){var s,i;if("function"==typeof e.type){for(s=e.__k,i=0;s&&i<s.length;i++)s[i]&&(s[i].__=e,t=bl(s[i],t,n,r));return t}e.__e!=t&&(r&&(t&&e.type&&!t.parentNode&&(t=pl(e)),n.insertBefore(e.__e,t||null)),t=e.__e);do{t=t&&t.nextSibling}while(null!=t&&8==t.nodeType);return t}function wl(e,t,n,r){var s,i,o,l=e.key,c=e.type,a=t[n],d=null!=a&&!(2&a.__u);if(null===a&&null==l||d&&l==a.key&&c==a.type)return n;if(r>(d?1:0))for(s=n-1,i=n+1;s>=0||i<t.length;)if(null!=(a=t[o=s>=0?s--:i++])&&!(2&a.__u)&&l==a.key&&c==a.type)return o;return-1}function _l(e,t,n){"-"==t[0]?e.setProperty(t,null==n?"":n):e[t]=null==n?"":"number"!=typeof n||ol.test(t)?n:n+"px"}function kl(e,t,n,r,s){var i,o;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||_l(e.style,t,"");if(n)for(t in n)r&&n[t]==r[t]||_l(e.style,t,n[t])}else if("o"==t[0]&&"n"==t[1])i=t!=(t=t.replace(el,"$1")),o=t.toLowerCase(),t=o in e||"onFocusOut"==t||"onFocusIn"==t?o.slice(2):t.slice(2),e.l||(e.l={}),e.l[t+i]=n,n?r?n.u=r.u:(n.u=tl,e.addEventListener(t,i?rl:nl,i)):e.removeEventListener(t,i?rl:nl,i);else{if("http://www.w3.org/2000/svg"==s)t=t.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if("width"!=t&&"height"!=t&&"href"!=t&&"list"!=t&&"form"!=t&&"tabIndex"!=t&&"download"!=t&&"rowSpan"!=t&&"colSpan"!=t&&"role"!=t&&"popover"!=t&&t in e)try{e[t]=null==n?"":n;break e}catch(e){}"function"==typeof n||(null==n||!1===n&&"-"!=t[4]?e.removeAttribute(t):e.setAttribute(t,"popover"==t&&1==n?"":n))}}function Sl(e){return function(t){if(this.l){var n=this.l[t.type+e];if(null==t.t)t.t=tl++;else if(t.t<n.u)return;return n(qo.event?qo.event(t):t)}}}function xl(e,t,n,r,s,i,o,l,c,a){var d,u,h,f,p,g,y,m,v,b,w,_,k,S,x,E,C,I=t.type;if(null!=t.constructor)return null;128&n.__u&&(c=!!(32&n.__u),i=[l=t.__e=n.__e]),(d=qo.__b)&&d(t);e:if("function"==typeof I)try{if(m=t.props,v="prototype"in I&&I.prototype.render,b=(d=I.contextType)&&r[d.__c],w=d?b?b.props.value:d.__:r,n.__c?y=(u=t.__c=n.__c).__=u.__E:(v?t.__c=u=new I(m,w):(t.__c=u=new fl(m,w),u.constructor=I,u.render=Tl),b&&b.sub(u),u.state||(u.state={}),u.__n=r,h=u.__d=!0,u.__h=[],u._sb=[]),v&&null==u.__s&&(u.__s=u.state),v&&null!=I.getDerivedStateFromProps&&(u.__s==u.state&&(u.__s=cl({},u.__s)),cl(u.__s,I.getDerivedStateFromProps(m,u.__s))),f=u.props,p=u.state,u.__v=t,h)v&&null==I.getDerivedStateFromProps&&null!=u.componentWillMount&&u.componentWillMount(),v&&null!=u.componentDidMount&&u.__h.push(u.componentDidMount);else{if(v&&null==I.getDerivedStateFromProps&&m!==f&&null!=u.componentWillReceiveProps&&u.componentWillReceiveProps(m,w),t.__v==n.__v||!u.__e&&null!=u.shouldComponentUpdate&&!1===u.shouldComponentUpdate(m,u.__s,w)){for(t.__v!=n.__v&&(u.props=m,u.state=u.__s,u.__d=!1),t.__e=n.__e,t.__k=n.__k,t.__k.some(function(e){e&&(e.__=t)}),_=0;_<u._sb.length;_++)u.__h.push(u._sb[_]);u._sb=[],u.__h.length&&o.push(u);break e}null!=u.componentWillUpdate&&u.componentWillUpdate(m,u.__s,w),v&&null!=u.componentDidUpdate&&u.__h.push(function(){u.componentDidUpdate(f,p,g)})}if(u.context=w,u.props=m,u.__P=e,u.__e=!1,k=qo.__r,S=0,v){for(u.state=u.__s,u.__d=!1,k&&k(t),d=u.render(u.props,u.state,u.context),x=0;x<u._sb.length;x++)u.__h.push(u._sb[x]);u._sb=[]}else do{u.__d=!1,k&&k(t),d=u.render(u.props,u.state,u.context),u.state=u.__s}while(u.__d&&++S<25);u.state=u.__s,null!=u.getChildContext&&(r=cl(cl({},r),u.getChildContext())),v&&!h&&null!=u.getSnapshotBeforeUpdate&&(g=u.getSnapshotBeforeUpdate(f,p)),E=d,null!=d&&d.type===hl&&null==d.key&&(E=Il(d.props.children)),l=vl(e,ll(E)?E:[E],t,n,r,s,i,o,l,c,a),u.base=t.__e,t.__u&=-161,u.__h.length&&o.push(u),y&&(u.__E=u.__=null)}catch(e){if(t.__v=null,c||null!=i)if(e.then){for(t.__u|=c?160:128;l&&8==l.nodeType&&l.nextSibling;)l=l.nextSibling;i[i.indexOf(l)]=null,t.__e=l}else{for(C=i.length;C--;)al(i[C]);El(t)}else t.__e=n.__e,t.__k=n.__k,e.then||El(t);qo.__e(e,t,n)}else null==i&&t.__v==n.__v?(t.__k=n.__k,t.__e=n.__e):l=t.__e=Ol(n.__e,t,n,r,s,i,o,c,a);return(d=qo.diffed)&&d(t),128&t.__u?void 0:l}function El(e){e&&e.__c&&(e.__c.__e=!0),e&&e.__k&&e.__k.forEach(El)}function Cl(e,t,n){for(var r=0;r<n.length;r++)Dl(n[r],n[++r],n[++r]);qo.__c&&qo.__c(t,e),e.some(function(t){try{e=t.__h,t.__h=[],e.some(function(e){e.call(t)})}catch(e){qo.__e(e,t.__v)}})}function Il(e){return"object"!=typeof e||null==e||e.__b&&e.__b>0?e:ll(e)?e.map(Il):cl({},e)}function Ol(e,t,n,r,s,i,o,l,c){var a,d,u,h,f,p,g,y=n.props||sl,m=t.props,v=t.type;if("svg"==v?s="http://www.w3.org/2000/svg":"math"==v?s="http://www.w3.org/1998/Math/MathML":s||(s="http://www.w3.org/1999/xhtml"),null!=i)for(a=0;a<i.length;a++)if((f=i[a])&&"setAttribute"in f==!!v&&(v?f.localName==v:3==f.nodeType)){e=f,i[a]=null;break}if(null==e){if(null==v)return document.createTextNode(m);e=document.createElementNS(s,v,m.is&&m),l&&(qo.__m&&qo.__m(t,i),l=!1),i=null}if(null==v)y===m||l&&e.data==m||(e.data=m);else{if(i=i&&Jo.call(e.childNodes),!l&&null!=i)for(y={},a=0;a<e.attributes.length;a++)y[(f=e.attributes[a]).name]=f.value;for(a in y)if(f=y[a],"children"==a);else if("dangerouslySetInnerHTML"==a)u=f;else if(!(a in m)){if("value"==a&&"defaultValue"in m||"checked"==a&&"defaultChecked"in m)continue;kl(e,a,null,f,s)}for(a in m)f=m[a],"children"==a?h=f:"dangerouslySetInnerHTML"==a?d=f:"value"==a?p=f:"checked"==a?g=f:l&&"function"!=typeof f||y[a]===f||kl(e,a,f,y[a],s);if(d)l||u&&(d.__html==u.__html||d.__html==e.innerHTML)||(e.innerHTML=d.__html),t.__k=[];else if(u&&(e.innerHTML=""),vl("template"==t.type?e.content:e,ll(h)?h:[h],t,n,r,"foreignObject"==v?"http://www.w3.org/1999/xhtml":s,i,o,i?i[0]:n.__k&&pl(n,0),l,c),null!=i)for(a=i.length;a--;)al(i[a]);l||(a="value","progress"==v&&null==p?e.removeAttribute("value"):null!=p&&(p!==e[a]||"progress"==v&&!p||"option"==v&&p!=y[a])&&kl(e,a,p,y[a],s),a="checked",null!=g&&g!=e[a]&&kl(e,a,g,y[a],s))}return e}function Dl(e,t,n){try{if("function"==typeof e){var r="function"==typeof e.__u;r&&e.__u(),r&&null==t||(e.__u=e(t))}else e.current=t}catch(e){qo.__e(e,n)}}function Al(e,t,n){var r,s;if(qo.unmount&&qo.unmount(e),(r=e.ref)&&(r.current&&r.current!=e.__e||Dl(r,null,t)),null!=(r=e.__c)){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(e){qo.__e(e,t)}r.base=r.__P=null}if(r=e.__k)for(s=0;s<r.length;s++)r[s]&&Al(r[s],t,n||"function"!=typeof e.type);n||al(e.__e),e.__c=e.__=e.__e=void 0}function Tl(e,t,n){return this.constructor(e,n)}function jl(e,t,n){var r,s,i;t==document&&(t=document.documentElement),qo.__&&qo.__(e,t),r=!1?null:t.__k,s=[],i=[],xl(t,e=t.__k=dl(hl,null,[e]),r||sl,sl,t.namespaceURI,r?null:t.firstChild?Jo.call(t.childNodes):null,s,r?r.__e:t.firstChild,false,i),Cl(s,e,i)}Jo=il.slice,qo={__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}},Yo=0,fl.prototype.setState=function(e,t){var n;n=null!=this.__s&&this.__s!=this.state?this.__s:this.__s=cl({},this.state),"function"==typeof e&&(e=e(cl({},n),this.props)),e&&cl(n,e),null!=e&&this.__v&&(t&&this._sb.push(t),yl(this))},fl.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),yl(this))},fl.prototype.render=hl,Go=[],Xo="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,Zo=function(e,t){return e.__v.__b-t.__v.__b},ml.__r=0,el=/(PointerCapture)$|Capture$/i,tl=0,nl=Sl(!1),rl=Sl(!0);const Ul={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",padding:"16px",boxSizing:"border-box"},DialogInner:{position:"relative",color:"#222",backgroundColor:"#fff",padding:"24px",marginBottom:"2em",maxWidth:"400px",width:"100%",maxHeight:"90%",overflowY:"auto",border:"3px solid #3d3d5d",borderRadius:"8px",boxShadow:"0 0 80px 10px #666",fontFamily:"sans-serif",boxSizing:"border-box"},Input:{height:"35px",width:"100%",maxWidth:"100%",borderColor:"#ccf4",outline:"none",fontSize:"16px",padding:"8px",boxSizing:"border-box",backgroundColor:"#f9f9f9",borderRadius:"4px",border:"1px solid #ccc",marginTop:"6px",fontFamily:"inherit"},Button:{padding:"10px 20px",margin:"0 4px",border:"1px solid #d1d5db",borderRadius:"6px",backgroundColor:"#ffffff",cursor:"pointer",fontSize:"14px",fontWeight:"500",color:"#374151",transition:"all 0.2s ease"},PrimaryButton:{padding:"10px 20px",margin:"0 4px",border:"1px solid #3b82f6",borderRadius:"6px",backgroundColor:"#3b82f6",color:"white",cursor:"pointer",fontSize:"14px",fontWeight:"500",transition:"all 0.2s ease"},ButtonsDiv:{display:"flex",justifyContent:"flex-end",gap:"12px",marginTop:"24px",paddingTop:"20px"},Label:{display:"block",marginBottom:"12px",fontSize:"14px",fontWeight:"500",color:"#333"},WindowHeader:{margin:"0 0 20px 0",fontSize:"18px",fontWeight:"600",color:"#333",borderBottom:"1px solid #eee",paddingBottom:"10px"},ProviderButton:{display:"flex",alignItems:"center",justifyContent:"center",width:"100%",padding:"12px 16px",marginBottom:"10px",border:"1px solid #d1d5db",borderRadius:"6px",backgroundColor:"#ffffff",cursor:"pointer",fontSize:"14px",fontWeight:"500",color:"#374151",transition:"all 0.2s ease",gap:"12px"},ProviderButtonIcon:{width:"20px",height:"20px",flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center"},ProviderButtonText:{flex:1,textAlign:"left"},ProviderGoogle:{backgroundColor:"#ffffff",border:"1px solid #dadce0",color:"#3c4043"},ProviderGitHub:{backgroundColor:"#24292e",border:"1px solid #24292e",color:"#ffffff"},ProviderMicrosoft:{backgroundColor:"#ffffff",border:"1px solid #8c8c8c",color:"#5e5e5e"},ProviderApple:{backgroundColor:"#000000",border:"1px solid #000000",color:"#ffffff"},ProviderCustom:{backgroundColor:"#4f46e5",border:"1px solid #4f46e5",color:"#ffffff"},Divider:{display:"flex",alignItems:"center",margin:"20px 0",color:"#6b7280",fontSize:"13px"},DividerLine:{flex:1,height:"1px",backgroundColor:"#e5e7eb"},DividerText:{padding:"0 12px",color:"#9ca3af"},OtpButton:{display:"flex",alignItems:"center",justifyContent:"center",width:"100%",padding:"12px 16px",border:"1px solid #d1d5db",borderRadius:"6px",backgroundColor:"#f9fafb",cursor:"pointer",fontSize:"14px",fontWeight:"500",color:"#374151",transition:"all 0.2s ease",gap:"12px"}};function Ll({children:e,className:t}){return dl("div",{className:`dexie-dialog ${t||""}`},dl("div",{style:Ul.Darken}),dl("div",{style:Ul.DialogOuter},dl("div",{style:Ul.DialogInner},e)))}var Pl,Rl,$l,Ml,Nl=0,Bl=[],Fl=qo,Wl=Fl.__b,zl=Fl.__r,Hl=Fl.diffed,Vl=Fl.__c,Kl=Fl.unmount,Jl=Fl.__;function ql(e,t){Fl.__h&&Fl.__h(Rl,e,Nl||t),Nl=0;var n=Rl.__H||(Rl.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({}),n.__[e]}function Yl(e){return Nl=1,function(e,t){var n=ql(Pl++,2);if(n.t=e,!n.__c&&(n.__=[rc(void 0,t),function(e){var t=n.__N?n.__N[0]:n.__[0],r=n.t(t,e);t!==r&&(n.__N=[r,n.__[1]],n.__c.setState({}))}],n.__c=Rl,!Rl.__f)){var r=function(e,t,r){if(!n.__c.__H)return!0;var i=n.__c.__H.__.filter(function(e){return!!e.__c});if(i.every(function(e){return!e.__N}))return!s||s.call(this,e,t,r);var o=n.__c.props!==e;return i.forEach(function(e){if(e.__N){var t=e.__[0];e.__=e.__N,e.__N=void 0,t!==e.__[0]&&(o=!0)}}),s&&s.call(this,e,t,r)||o};Rl.__f=!0;var s=Rl.shouldComponentUpdate,i=Rl.componentWillUpdate;Rl.componentWillUpdate=function(e,t,n){if(this.__e){var o=s;s=void 0,r(e,t,n),s=o}i&&i.call(this,e,t,n)},Rl.shouldComponentUpdate=r}return n.__N||n.__}(rc,e)}function Gl(e){return Nl=5,function(e,t){var n=ql(Pl++,7);return nc(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}(function(){return{current:e}},[])}function Ql(){for(var e;e=Bl.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(ec),e.__H.__h.forEach(tc),e.__H.__h=[]}catch(t){e.__H.__h=[],Fl.__e(t,e.__v)}}Fl.__b=function(e){Rl=null,Wl&&Wl(e)},Fl.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),Jl&&Jl(e,t)},Fl.__r=function(e){zl&&zl(e),Pl=0;var t=(Rl=e.__c).__H;t&&($l===Rl?(t.__h=[],Rl.__h=[],t.__.forEach(function(e){e.__N&&(e.__=e.__N),e.u=e.__N=void 0})):(t.__h.forEach(ec),t.__h.forEach(tc),t.__h=[],Pl=0)),$l=Rl},Fl.diffed=function(e){Hl&&Hl(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(1!==Bl.push(t)&&Ml===Fl.requestAnimationFrame||((Ml=Fl.requestAnimationFrame)||Zl)(Ql)),t.__H.__.forEach(function(e){e.u&&(e.__H=e.u),e.u=void 0})),$l=Rl=null},Fl.__c=function(e,t){t.some(function(e){try{e.__h.forEach(ec),e.__h=e.__h.filter(function(e){return!e.__||tc(e)})}catch(n){t.some(function(e){e.__h&&(e.__h=[])}),t=[],Fl.__e(n,e.__v)}}),Vl&&Vl(e,t)},Fl.unmount=function(e){Kl&&Kl(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.forEach(function(e){try{ec(e)}catch(e){t=e}}),n.__H=void 0,t&&Fl.__e(t,n.__v))};var Xl="function"==typeof requestAnimationFrame;function Zl(e){var t,n=function(){clearTimeout(r),Xl&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,35);Xl&&(t=requestAnimationFrame(n))}function ec(e){var t=Rl,n=e.__c;"function"==typeof n&&(e.__c=void 0,n()),Rl=t}function tc(e){var t=Rl;e.__c=e.__(),Rl=t}function nc(e,t){return!e||e.length!==t.length||t.some(function(t,n){return t!==e[n]})}function rc(e,t){return"function"==typeof t?t(e):t}function sc({message:e,messageCode:t,messageParams:n}){return e.replace(/\{\w+\}/gi,e=>n[e.substring(1,e.length-1)])}function ic({option:e,onClick:t}){const{displayName:n,iconUrl:r,iconSvg:s,styleHint:i,value:o}=e,l=function(e){const t=Object.assign({},Ul.ProviderButton);if(!e)return t;switch(e){case"google":return Object.assign(Object.assign({},t),Ul.ProviderGoogle);case"github":return Object.assign(Object.assign({},t),Ul.ProviderGitHub);case"microsoft":return Object.assign(Object.assign({},t),Ul.ProviderMicrosoft);case"apple":return Object.assign(Object.assign({},t),Ul.ProviderApple);case"otp":return Object.assign({},Ul.OtpButton);case"custom-oauth2":return Object.assign(Object.assign({},t),Ul.ProviderCustom);default:return t}}(i),c=l.color||"#000000",a=s?s.replace(/fill="currentColor"/gi,`fill="${c}"`).replace(/fill='currentColor'/gi,`fill='${c}'`).replace(/stroke="currentColor"/gi,`stroke="${c}"`).replace(/stroke='currentColor'/gi,`stroke='${c}'`):null;return dl("button",{type:"button",style:l,onClick:t,class:"dxc-option-btn"+(i?` dxc-option-${i}`:""),"aria-label":n},a?dl("span",{style:Ul.ProviderButtonIcon,"aria-hidden":"true",dangerouslySetInnerHTML:{__html:a}}):r?dl("img",{src:r,alt:"",style:Ul.ProviderButtonIcon,"aria-hidden":"true"}):null,dl("span",{style:Ul.ProviderButtonText},n))}function oc(){return dl("div",{style:Ul.Divider},dl("div",{style:Ul.DividerLine}),dl("span",{style:Ul.DividerText},"or"),dl("div",{style:Ul.DividerLine}))}function lc({title:e,alerts:t,fields:n,options:r,submitLabel:s,cancelLabel:i,onCancel:o,onSubmit:l}){const[c,a]=Yl({}),d=Gl(null);!function(e,t){var n=ql(Pl++,4);!Fl.__s&&nc(n.__H,t)&&(n.__=e,n.u=t,Rl.__h.push(n))}(()=>{var e;return null===(e=d.current)||void 0===e?void 0:e.focus()},[]);const u=Object.entries(n||{}),h=u.length>0,f=r&&r.length>0,p=new Map;if(r)for(const e of r){const t=p.get(e.name)||[];t.push(e),p.set(e.name,t)}const g=p.size>1,y=e=>{l({[e.name]:e.value})};return dl(Ll,{className:"dxc-login-dlg"},dl(hl,null,dl("h3",{style:Ul.WindowHeader},e),t.map((e,t)=>dl("p",{key:t,style:Ul.Alert[e.type]},sc(e))),f&&dl("div",{class:"dxc-options"},g?Array.from(p.entries()).map(([e,t],n)=>dl(hl,{key:e},n>0&&dl(oc,null),t.map(e=>dl(ic,{key:`${e.name}-${e.value}`,option:e,onClick:()=>y(e)})))):r.map(e=>dl(ic,{key:`${e.name}-${e.value}`,option:e,onClick:()=>y(e)}))),f&&h&&dl(oc,null),h&&dl("form",{onSubmit:e=>{e.preventDefault(),l(c)}},u.map(([e,{type:t,label:n,placeholder:r}],s)=>dl("label",{style:Ul.Label,key:s},n?`${n}: `:"",dl("input",{ref:0===s?d:void 0,type:t,name:e,autoComplete:"on",style:Ul.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)}}))))),dl("div",{style:Ul.ButtonsDiv},dl(hl,null,s&&(h||!f&&!h)&&dl("button",{type:"submit",style:Ul.PrimaryButton,onClick:()=>l(c)},s),i&&dl("button",{style:Ul.Button,onClick:o},i))))}class cc extends fl{constructor(e){super(e),this.observer=e=>this.setState({userInteraction:e}),this.state={userInteraction:void 0}}componentDidMount(){this.subscription=n.from(this.props.db.cloud.userInteraction).subscribe(this.observer)}componentWillUnmount(){this.subscription&&(this.subscription.unsubscribe(),delete this.subscription)}render(e,{userInteraction:t}){return t?dl(lc,Object.assign({},t)):null}}function ac(e){const t=new WeakMap;return n=>{let r=t.get(n);return r||(r=e(n),t.set(n,r)),r}}const dc=ac(e=>new n.BehaviorSubject(Ye));function uc(e,t){let r=t,s=n.from(e).pipe(n.map(e=>r=e),n.share({resetOnRefCountZero:()=>n.timer(1e3)}));const i=new n.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 hc=ac(e=>uc(t.liveQuery(()=>e.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})),{})),fc=ac(e=>uc(dc(e._novip).pipe(r.switchMap(n=>t.liveQuery(()=>e.transaction("r","realms","members",()=>Promise.all([e.members.where({userId:n.userId}).toArray(),e.realms.toArray(),n.userId]).then(([e,t,n])=>({selfMembers:e,realms:t,userId:n})))))),{selfMembers:[],realms:[],get userId(){return e.cloud.currentUserId}}));function pc(...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 gc=ac(e=>function(e,t){let r;const s=e.pipe(n.map(e=>r=t(e)));return s.getValue=()=>void 0!==r?r:r=t(e.getValue()),s}(uc(n.combineLatest([fc(e._novip),hc(e._novip)]).pipe(r.map(([{selfMembers:e,realms:t,userId:n},r])=>({selfMembers:e,realms:t,userId:n,globalRoles:r}))),{selfMembers:[],realms:[],userId:Ye.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=bt(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:"*"}:pc(...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 yc{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 mc=ac(e=>{const i=dc(e._novip).pipe(r.switchMap(n=>t.liveQuery(()=>e.members.where({email:n.email||""}).toArray()))),o=gc(e._novip),l=fc(e._novip);return uc(n.combineLatest([i,l,o]).pipe(r.map(([t,n,r])=>{const i=(e,t)=>Object.assign(Object.assign({},e),{[t.id]:Object.assign(Object.assign({},t),{realm:r[t.realmId]})}),o=t.reduce(i,{}),l=n.selfMembers.reduce(i,o);return Object.values(l).filter(e=>!e.accepted).map(t=>Object.assign(Object.assign({},t),{accept(){return s(this,void 0,void 0,function*(){yield e.members.update(t.id,{accepted:new Date})})},reject(){return s(this,void 0,void 0,function*(){yield e.members.update(t.id,{rejected:new Date})})}}))})),[])});function vc(e){return r=>{var i;const o=r.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=e.cloud.schema)||void 0===i?void 0:i[l].markedForSync))return;let c;Object.defineProperty(r,"awareness",{get:()=>c||(c=function(e,r,i){const{parentTable:o,parentId:l,parentProp:c,updatesTable:a}=r.meta,d=new Uo(r),u=Ro(r);return d.on("update",({added:t,updated:n,removed:s},l)=>{const a=t.concat(n).concat(s),u=e.cloud.currentUser.value;if("server"!==l&&u.isLoggedIn&&!wo(e)){const t=((e,t,n=e.states)=>{const r=t.length,s=N();z(s,r);for(let i=0;i<r;i++){const r=t[i],o=n.get(r)||null,l=e.meta.get(r).clock;z(s,r),z(s,l),J(s,JSON.stringify(o))}return B(s)})(d,a);e.messageProducer.next({type:"aware",table:o,prop:c,k:r.meta.parentId,u:t}),i.destroyed&&e.messageProducer.next({type:"doc-close",table:o,prop:c,k:r.meta.parentId})}}),d.on("destroy",()=>{Lo(d,[r.clientID],"provider destroyed")}),(()=>{s(this,void 0,void 0,function*(){if(i.destroyed)return;let r=!1,d=1;const h=n.combineLatest([e.cloud.webSocketStatus,u.pipe(n.startWith(null))]).subscribe(([t])=>{if(i.destroyed)return;r="connected"===t;const n=e.cloud.currentUser.value;"connected"===t&&n.isLoggedIn&&!wo(e)&&(++d,f().catch(e=>{}))});function f(){return s(this,void 0,void 0,function*(){const n=d,u=e.table(a),h=e.$syncState,[f,p]=yield e.transaction("r",h,u,()=>s(this,void 0,void 0,function*(){const e=yield u.get(dn),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||d!==n||!r)return;const g={type:"doc-open",table:o,prop:c,k:l,serverRev:p},y=yield u.where("i").between(f,1/0,!1).filter(e=>0===t.cmp(e.k,l)&&!(1&(e.f||0))).toArray();if(!i.destroyed&&d===n&&r){if(y.length>0){const e=Zr(y.map(e=>e.u)),t=Qr(e);g.sv=t}e.messageProducer.next(g)}})}i.addCleanupHandler(h)})})(),d}(e,o,r),To.set(o,c),c)})}}function bc(e){const t="undefined"!=typeof window?window.location.href:"";if(!t)return null;const n=new URL(t).searchParams.get("dxc-auth");if(!n)return null;let r;try{const e=function(e){const t=(e+"=".repeat((4-e.length%4)%4)).replace(/-/g,"+").replace(/_/g,"/");return atob(t)}(n);r=JSON.parse(e)}catch(e){return null}const{code:s,provider:i,state:o,error:l}=r;if(l){if(l.toLowerCase().includes("access_denied")||l.toLowerCase().includes("access denied"))throw new tt("access_denied",i,l);if(l.toLowerCase().includes("email")&&l.toLowerCase().includes("verif"))throw new tt("email_not_verified",i,l);throw new tt("provider_error",i,l)}return s&&i&&o?{code:s,provider:i,state:o}:null}function wc(){var e;if("undefined"==typeof window||!(null===(e=window.history)||void 0===e?void 0:e.replaceState))return;const t=new URL(window.location.href);if(!t.searchParams.has("dxc-auth"))return;t.searchParams.delete("dxc-auth");const n=t.pathname+(t.searchParams.toString()?`?${t.searchParams.toString()}`:"")+t.hash;window.history.replaceState(null,"",n)}const _c={},kc=new WeakMap,Sc=Ec("tx"),xc=Ec("unload");function Ec(e){let t=null,n=!1,r=new Map;return{name:e,run(){return s(this,void 0,void 0,function*(){!n&&r.size>0&&(n=!0,t&&(yield t.catch(()=>{})),setTimeout(()=>{n=!1;const e=r;r=new Map,t=function(e){return s(this,void 0,void 0,function*(){for(const{db:t,parentId:n,triggers:r,parentTable:s,prop:i}of e.values()){const e=Wi.getOrCreateDocument(t,s,i,n);try{const t=Wi.load(e);yield t.whenLoaded;for(const t of r)yield t(e,n)}catch(e){null==e||e.name}finally{Wi.release(e)}}})}(e).finally(()=>{t=null})},0))})},enqueue(e,t,n,s,i){const o=`${e.name}:${t}:${n}:${s}`;let l=r.get(o);l||(l={db:e,parentTable:t,parentId:n,prop:s,triggers:new Set},r.set(o,l)),l.triggers.add(i)}}}function Cc(){Sc.run()}function Ic(){xc.run()}const Oc={nameSuffix:!0};function Dc(e){const i=e.name,o=dc(e),l=[];let c=!1,a=null,d=null,u=null;e.on("ready",e=>s(this,void 0,void 0,function*(){try{yield function(e){return s(this,void 0,void 0,function*(){var i,g,y,m,v,b,w;h=!1;const _=Zi(e);"undefined"!=typeof window&&"undefined"!=typeof document&&((null===(i=_.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),jl(dl(cc,{db:e.vip}),n)):addEventListener("DOMContentLoaded",()=>{t||(document.body.appendChild(n),jl(dl(cc,{db:e.vip}),n))}),{unsubscribe(){try{n.remove()}catch(e){}t=!0},get closed(){return t}}}(e))),_.cloud.isServiceWorkerDB||l.push(function(e){let t=e.cloud.webSocketStatus.value;const s=e.cloud.webSocketStatus.pipe(r.switchMap(e=>{const s=t;t=e;const i=n.of(e);switch(e){case"disconnected":return xo.value?i.pipe(r.debounceTime(500)):i;case"connecting":return"not-started"===s||"error"===s?i:i.pipe(r.debounceTime(4e3));default:return i}}));return n.combineLatest([s,e.syncStateChangedEvent.pipe(r.startWith({phase:"initial"})),dc(e.dx._novip),Eo]).pipe(r.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:sn?a:"offline",license:"ok"}}))}(_).subscribe(e.cloud.syncState)),l.push(_.syncCompleteEvent.subscribe(p)),_.tables.every(e=>e.core)||function(){throw new t.SchemaError("Version increment needed to allow dexie-cloud change tracking")}();const k="serviceWorker"in navigator?yield navigator.serviceWorker.getRegistrations():[],[S,x]=yield _.transaction("rw",_.$syncState,()=>s(this,void 0,void 0,function*(){var e,t;const{options:n,schema:r}=_.cloud,[s,i,o]=yield Promise.all([_.getOptions(),_.getSchema(),_.getPersistedSyncState()]);if(c){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 _.$syncState.put(e,"options")}}else _.cloud.options=s||null;if((null===(e=_.cloud.options)||void 0===e?void 0:e.tryUseServiceWorker)&&"serviceWorker"in navigator&&k.length>0&&!so?_.cloud.usingServiceWorker=!0:((null===(t=_.cloud.options)||void 0===t?void 0:t.tryUseServiceWorker)&&_.cloud.isServiceWorkerDB,_.cloud.usingServiceWorker=!1),Ko(r,_.cloud.options),Ko(i,_.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 _.$syncState.put(e,"schema"),Object.assign(r,e)}}else _.cloud.schema=i||null;return[null==o?void 0:o.initiallySynced,null==o?void 0:o.realms]}));if(S&&_.setInitiallySynced(!0),function(e){var n,r;for(const s of e.tables)if(null===(r=null===(n=e.cloud.schema)||void 0===n?void 0:n[s.name])||void 0===r?void 0:r.markedForSync){if(s.schema.primKey.auto)throw new t.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 t.SchemaError(`Table ${s.name} cannot be both synced and outbound. Use db.cloud.configure({unsyncedTables: [${JSON.stringify(s.name)}]}) to blacklist it from sync`)}}(_),f(),!_.cloud.isServiceWorkerDB){l.push(t.liveQuery(()=>_.getCurrentUser()).subscribe(o)),l.push(t.liveQuery(()=>_.getPersistedSyncState()).subscribe(_.cloud.persistedSyncState)),yield n.firstValueFrom(n.combineLatest([o.pipe(r.skip(1),r.take(1)),_.cloud.persistedSyncState.pipe(r.skip(1),r.take(1))]));const e=vc(_);Wi.on.new.subscribe(e),_.dx.once("close",()=>{Wi.on.new.unsubscribe(e)})}let E=!1,C=yield _.getCurrentUser();if(d&&!_.cloud.isServiceWorkerDB){const e=d;d=null,yield Be(_.cloud.userInteraction,"Authentication Error",{type:"error",messageCode:"GENERIC_ERROR",message:e.message,messageParams:{provider:e.provider||"unknown"}})}if(a&&!_.cloud.isServiceWorkerDB){const{code:e,provider:t}=a;a=null;try{E=yield ct(_,{oauthCode:e,provider:t}),C=yield _.getCurrentUser()}catch(e){}}const I=null===(g=_.cloud.options)||void 0===g?void 0:g.requireAuth;I&&(_.cloud.isServiceWorkerDB?yield n.firstValueFrom(o.pipe(r.filter(e=>!!e.isLoggedIn),r.take(1))):"object"==typeof I?(!C.isLoggedIn||I.userId&&C.userId!==I.userId||I.email&&C.email!==I.email)&&(E=yield ct(_,I)):C.isLoggedIn||(E=yield ct(_))),!C.isLoggedIn||x&&x.includes(C.userId)||(E=!0),u&&u.stop(),u=null,f();const O=(null===(y=_.cloud.options)||void 0===y?void 0:y.databaseUrl)&&(!S||E);O&&(yield function(e,t,n){return s(this,void 0,void 0,function*(){yield So(e,Vi,()=>Ki(e,t,n,{isInitialSync:!0}))})}(_,_.cloud.options,_.cloud.schema),_.setInitiallySynced(!0)),f(),_.cloud.usingServiceWorker&&(null===(m=_.cloud.options)||void 0===m?void 0:m.databaseUrl)?(O||De(_,"push").catch(()=>{}),function(e){return s(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){}})}(_).catch(()=>{})):(null===(v=_.cloud.options)||void 0===v?void 0:v.databaseUrl)&&_.cloud.schema&&!_.cloud.isServiceWorkerDB&&(u=Vo(_,_.cloud.options,_.cloud.schema),u.start(),O||Ae(_,"push")),f(),_.cloud.isServiceWorkerDB||l.push(n.fromEvent(self,"online").subscribe(()=>{_.syncStateChangedEvent.next({phase:"not-in-sync"}),wo(_)||Ae(_,"push")}),n.fromEvent(self,"offline").subscribe(()=>{_.syncStateChangedEvent.next({phase:"offline"})})),!(null===(b=_.cloud.options)||void 0===b?void 0:b.databaseUrl)||(null===(w=_.cloud.options)||void 0===w?void 0:w.disableWebSocket)||io||l.push(function(e){var t;if(!(null===(t=e.cloud.options)||void 0===t?void 0:t.databaseUrl))throw new Error("No database URL to connect WebSocket to");const i=e.messageConsumer.readyToServe.pipe(r.filter(e=>e),r.switchMap(()=>e.getPersistedSyncState()),r.filter(e=>e&&e.serverRevision),r.switchMap(e=>s(this,void 0,void 0,function*(){return{type:"ready",rev:e.serverRevision,realmSetHash:yield pt(e)}}))),o=n.merge(i,e.messageProducer);return function t(){return e.cloud.persistedSyncState.pipe(r.filter(e=>null==e?void 0:e.serverRevision),r.take(1),r.switchMap(t=>e.cloud.currentUser.pipe(r.map(e=>[e,t]))),r.switchMap(([e,t])=>Eo.pipe(r.map(n=>[n?e:null,t]))),r.switchMap(([t,s])=>(null==t?void 0:t.isLoggedIn)&&!(null==s?void 0:s.realms.includes(t.userId))?e.cloud.persistedSyncState.pipe(r.filter(e=>(null==e?void 0:e.realms.includes(t.userId))||!1),r.take(1),r.map(e=>[t,e])):new n.BehaviorSubject([t,s])),r.switchMap(e=>s(this,[e],void 0,function*([e,t]){return[e,yield pt(t)]})),r.distinctUntilChanged(([e,t],[n,r])=>e===n&&t===r),r.switchMap(([r,s])=>{var i;return(null===(i=e.cloud.persistedSyncState)||void 0===i?void 0:i.value)?r?new $o(e,e.cloud.persistedSyncState.value.serverRevision,e.cloud.persistedSyncState.value.yServerRevision,s,e.cloud.persistedSyncState.value.clientIdentity,o,e.cloud.webSocketStatus,r):n.from([]):t()}),r.catchError(i=>"TokenExpiredError"===(null==i?void 0:i.name)?n.of(!0).pipe(r.switchMap(()=>s(this,void 0,void 0,function*(){const t=yield e.getCurrentUser(),n=yield Ke(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})})),r.switchMap(()=>t())):n.throwError(()=>i)),r.catchError(s=>(e.cloud.webSocketStatus.next("error"),s instanceof Bo?n.throwError(()=>s):n.from(Fo()).pipe(r.switchMap(()=>t())))))}().subscribe({next:t=>{t&&e.messageConsumer.enqueue(t)},error:e=>{},complete:()=>{}})}(_))})}(e)}catch(e){}}),!0);let h=!1;function f(){if(h)throw new t.DatabaseClosedError}e.once("close",()=>{l.forEach(e=>e.unsubscribe()),l.splice(0,l.length),h=!0,u&&u.stop(),u=null,o.next(Ye)});const p=new n.Subject;var g;e.cloud={version:"4.3.4",options:Object.assign({},Oc),schema:null,get currentUserId(){return o.value.userId||Ye.userId},currentUser:o,syncState:new n.BehaviorSubject({phase:"initial",status:"not-started"}),events:{syncComplete:p},persistedSyncState:new n.BehaviorSubject(void 0),userInteraction:new n.BehaviorSubject(void 0),webSocketStatus:new n.BehaviorSubject("not-started"),login(t){return s(this,void 0,void 0,function*(){const n=Zi(e);yield n.cloud.sync(),yield ct(n,t)})},invites:mc(e),roles:hc(e),configure(t){if(t=e.cloud.options=Object.assign(Object.assign({},e.cloud.options),t),c=!0,t.databaseUrl&&t.nameSuffix&&(e.name=`${i}-${function(e){const t=new URL(e);return"/"===t.pathname?t.hostname.split(".")[0]:t.pathname.split("/")[1]}(t.databaseUrl)}`,Zi(e).reconfigure()),Ko(e.cloud.schema,e.cloud.options),"undefined"!=typeof window&&window.location)try{const e=bc();e&&(wc(),a={code:e.code,provider:e.provider})}catch(e){wc(),e instanceof tt&&(d=e)}},logout(){return s(this,arguments,void 0,function*({force:t}={}){t?yield Xe(Zi(e),{deleteUnsyncedData:!0}):yield Qe(Zi(e))})},getAuthProviders(){return s(this,void 0,void 0,function*(){const t=e.cloud.options;if(!(null==t?void 0:t.databaseUrl))throw new Error("Dexie Cloud not configured. Call db.cloud.configure() first.");const n=!1!==t.socialAuth;return rt(t.databaseUrl,n)})},sync(){return s(this,arguments,void 0,function*({wait:i,purpose:o}={wait:!0,purpose:"push"}){var l;void 0===i&&(i=!0);const c=Zi(e);if("ok"!==((null===(l=c.cloud.currentUser.value.license)||void 0===l?void 0:l.status)||"ok")&&(yield He(c)),"pull"===o){const e=c.cloud.persistedSyncState.value;if(Ae(c,o),i){const t=yield n.firstValueFrom(c.cloud.persistedSyncState.pipe(r.filter(t=>null!=(null==t?void 0:t.timestamp)&&(!e||t.timestamp>e.timestamp))));if(null==t?void 0:t.error)throw new Error("Sync error: "+t.error)}}else if(yield Wo(c)){const e=c.cloud.persistedSyncState.value;Ae(c,o),i&&(yield n.firstValueFrom(n.from(t.liveQuery(()=>s(this,void 0,void 0,function*(){const t=yield Wo(c),n=yield c.getPersistedSyncState();if((null==n?void 0:n.timestamp)!==(null==e?void 0:e.timestamp)&&(null==n?void 0:n.error))throw new Error("Sync error: "+n.error);return t}))).pipe(r.filter(e=>!e))))}})},permissions:(t,n)=>function(e,t,n){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(!n){if("function"!=typeof t.table)throw new TypeError("Missing 'table' argument to permissions and table could not be extracted from entity");n=t.table()}const o=gc(e),l=t=>{const r=t[i||e.cloud.currentUserId];return r?new yc(r.permissions,n,void 0===i||i===e.cloud.currentUserId||s===e.cloud.currentUserId):new yc({},n,!s||s===e.cloud.currentUserId)},c=o.pipe(r.map(l));return c.getValue=()=>l(o.getValue()),c}(e._novip,t,n)},e.Version.prototype._parseStoresSpec=t.override(e.Version.prototype._parseStoresSpec,t=>ko(t,e)),e.Table.prototype.newId=function({colocateWith:t}={}){const n=t&&t.substr(t.length-3);return po(e.cloud.schema[this.name].idPrefix||"",n)},e.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)||""},e.use(_o({currentUserObservable:e.cloud.currentUser,db:Zi(e)})),e.use((g=Zi(e),{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,c;const a=e.trans;if(a.disableChangeTracking)return n.mutate(e);const d=null!==(s=null===(r=a.currentUser)||void 0===r?void 0:r.userId)&&void 0!==s?s:Ye.userId;if((null===(o=null===(i=g.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===(c=(l=n.schema.primaryKey).extractKey)||void 0===c?void 0:c.call(l,t);"string"==typeof r&&"#"===r[0]&&"put"===e.type&&(delete e.criteria,delete e.changeSpec,e.upsert||delete e.updates,t.$ts=Date.now())}}return n.mutate(e)}})}})})),e.use(go(Zi(e)))}Dc.version="4.3.4",t.Cloud=Dc,e.default=Dc,e.defineYDocTrigger=function(e,n,r){var s,i;const o=null===(i=null===(s=e.schema.yProps)||void 0===s?void 0:s.find(e=>e.prop===n))||void 0===i?void 0:i.updatesTable;if(!o)throw new Error(`Table ${e.name} does not have a Yjs property named ${n}`);_c[o]={trigger:r,parentTable:e.name,prop:n};const l=e.db._novip;let c=kc.get(l);c||(c=(e=>({stack:"dbcore",level:10,name:"yTriggerMiddleware",create:n=>Object.assign(Object.assign({},n),{transaction:(e,t,r)=>{const s=n.transaction(e,t,r);return"readonly"===t?s:e.some(e=>_c[e])?(s.addEventListener("complete",Cc),s):s},table:r=>{const s=n.table(r),i=_c[r];if(!i)return s;const{trigger:o,parentTable:l,prop:c}=i;return Object.assign(Object.assign({},s),{mutate(n){var r;switch(n.type){case"add":for(const t of n.values){if(null==t.k)continue;const n=t.k,s=Wi.getDocCache(e).find(l,n,c);(s&&(null===(r=Wi.for(s))||void 0===r?void 0:r.refCount)?xc:Sc).enqueue(e,l,n,c,o)}break;case"delete":n.trans._rejecting_y_ypdate&&s.getMany({keys:n.keys,trans:n.trans,cache:"immutable"}).then(n=>{const r=new t.RangeSet;for(const{k:e}of n)null!=e&&r.addKey(e);for(const t of r)Sc.enqueue(e,l,t.from,c,o)})}return s.mutate(n)}})}})}))(l),kc.set(l,c)),l.use(c),Wi.on("beforeunload",Ic)},e.dexieCloud=Dc,e.getTiedObjectId=function(e){return e.startsWith("rlm~")?e.substr(4):null},e.getTiedRealmId=function(e){return"rlm~"+e},e.resolveText=sc,Object.defineProperty(e,"__esModule",{value:!0})});
2
2
  //# sourceMappingURL=dexie-cloud-addon.min.js.map