dexie-cloud-addon 4.3.7 → 4.3.8
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.
- package/dist/modern/db/entities/UserLogin.d.ts +1 -0
- package/dist/modern/dexie-cloud-addon.js +11 -7
- package/dist/modern/dexie-cloud-addon.js.map +1 -1
- package/dist/modern/dexie-cloud-addon.min.js +1 -1
- package/dist/modern/dexie-cloud-addon.min.js.map +1 -1
- package/dist/modern/service-worker.js +11 -7
- package/dist/modern/service-worker.js.map +1 -1
- package/dist/modern/service-worker.min.js +1 -1
- package/dist/modern/service-worker.min.js.map +1 -1
- package/dist/umd/dexie-cloud-addon.js +12 -8
- package/dist/umd/dexie-cloud-addon.js.map +1 -1
- package/dist/umd/dexie-cloud-addon.min.js +1 -1
- package/dist/umd/dexie-cloud-addon.min.js.map +1 -1
- package/dist/umd/service-worker.js +12 -8
- package/dist/umd/service-worker.js.map +1 -1
- package/dist/umd/service-worker.min.js +1 -1
- package/dist/umd/service-worker.min.js.map +1 -1
- package/package.json +3 -3
|
@@ -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,P=(e,t)=>(e=>e.replace(j,""))(e.replace(U,e=>`${t}${(e=>e.toLowerCase())(e)}`)),L="undefined"!=typeof TextEncoder?new TextEncoder:null,R=L?e=>L.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,V=(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)},K=new Uint8Array(3e4),z=K.length/3,J=L&&L.encodeInto?(e,t)=>{if(t.length<z){const n=L.encodeInto(t,K).written||0;V(e,n);for(let t=0;t<n;t++)F(e,K[t])}else Y(e,R(t))}:(e,t)=>{const n=unescape(encodeURIComponent(t)),r=n.length;V(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)=>{V(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),V(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);V(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&&V(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&&V(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&&V(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},Pe="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 Le 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=`data:image/svg+xml;base64,${btoa('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="#666666" stroke-width="2"><rect x="2" y="4" width="20" height="16" rx="2"/><path d="M22 6L12 13 2 6"/></svg>')}`;function $e(e){return{name:"provider",value:e.name,displayName:`Continue with ${e.displayName}`,iconUrl:e.iconUrl,styleHint:e.type}}function Me(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 Ne(e,t,...n){return Me(e,{type:"message-alert",title:t,alerts:n,fields:{},submitLabel:"OK",cancelLabel:null})}function Be(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 Me(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 Fe(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 Me(e,{type:"otp",title:"Enter OTP",alerts:r,fields:{otp:{type:"otp",label:"OTP",placeholder:"Paste OTP here"}}});return s})}class We extends Error{constructor(e){super(`OAuth redirect initiated for provider: ${e}`),this.name="OAuthRedirectError",this.provider=e}}function Ve(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 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 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=Pe(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 Le(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 Me(r,{type:"message-alert",title:"Authentication Alert",fields:{},alerts:t.alerts})),e}catch(e){if(e instanceof We||"OAuthRedirectError"===(null==e?void 0:e.name))throw e;if(e instanceof Le)throw yield Ne(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 Ne(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=Pe(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 Le(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 ze=new WeakMap;class Je{constructor(e,t){ze.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*(){ze.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 Me(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){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}})}function rt(e){if("undefined"==typeof window)throw new Error("OAuth redirect requires a browser environment");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 st(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){const t=yield e.text().catch(()=>e.statusText);if(400===e.status||401===e.status)try{const e=JSON.parse(t);if("error"===e.type){if("INVALID_OTP"===e.messageCode)throw new et("expired_code",void 0,e.message);throw new Le(e)}}catch(e){if(e instanceof et||e instanceof Le)throw e}throw new et("provider_error",void 0,`Token exchange failed: ${e.status} ${t}`)}const n=yield e.json();if("error"===n.type)throw new Le(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 Le)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){let t;throw i.redirectPath&&(/^https?:\/\//i.test(i.redirectPath)?t=i.redirectPath:"undefined"!=typeof window&&window.location?t=new URL(i.redirectPath,window.location.href).toString():"undefined"!=typeof location&&location.href&&(t=new URL(i.redirectPath,location.href).toString())),it(e,i.provider,t),new We(i.provider)}if("demo"===(null==i?void 0:i.grant_type)){c={demo_user:yield Be(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 if("otp"===(null==i?void 0:i.grant_type)||(null==i?void 0:i.email)){const e=(null==i?void 0:i.email)||(yield Be(n,"Enter email address"));c=/@demo.local$/.test(e)?{demo_user:e,grant_type:"demo",scopes:["ACCESS_DB"],public_key:r}:{email:e,grant_type:"otp",scopes:["ACCESS_DB"]}}else{const o=!1!==(null===(l=e.cloud.options)||void 0===l?void 0:l.socialAuth),d=yield nt(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=[...n.map($e)];return r&&o.push({name:"otp",value:"email",displayName:"Continue with email",iconUrl:Re,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 it(e,r.provider),new We(r.provider)}const u=yield Be(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 Ne(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 Fe(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 Fe(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 it(e,t,n){var r,s;const i=null===(r=e.cloud.options)||void 0===r?void 0:r.databaseUrl;if(!i)throw new Error("No database URL given.");rt({databaseUrl:i,provider:t,redirectUri:n||(null===(s=e.cloud.options)||void 0===s?void 0:s.oauthRedirectUri)||("undefined"!=typeof location?location.href:void 0)})}function ot(e,...t){globalThis.console[e](...t)}function lt(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 Ve(e),!1}const o=new Je(e,{claims:{},lastLogin:new Date(0)});try{yield He(e.cloud.options.databaseUrl,o,e.cloud.options.fetchTokens||st(e),e.cloud.userInteraction,t)}catch(e){if("OAuthRedirectError"===e.name)return!1;throw e}return 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&&(ot("debug","Login context property names:",Object.keys(t)),ot("debug","Login context property names:",Object.keys(t)),ot("debug","Login context:",t),ot("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 ct={},at="undefined"!=typeof self&&self.document&&"undefined"!=typeof navigator&&navigator.serviceWorker;at&&at.ready.then(e=>ct.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 dt{constructor(e){this.name=e}subscribe(e){if(!at)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 at.addEventListener("message",t),()=>at.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})):ct.registration&&(null===(t=ct.registration.active)||void 0===t||t.postMessage({type:`sw-broadcast-${this.name}`,message:e}))}}const ut=globalThis["lbc-events"]||(globalThis["lbc-events"]=new Map);class ht extends n.Observable{constructor(e){const t="undefined"==typeof BroadcastChannel?new dt(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){ut.has(e)?ut.get(e).push(t):ut.set(e,[t])}(`lbc-${e}`,r);try{t instanceof dt?i=t.subscribe(e=>n.next(e)):t.addEventListener("message",s)}catch(e){}return()=>{!function(e,t){const n=ut.get(e);if(n){const e=n.indexOf(t);-1!==e&&n.splice(e,1)}}(`lbc-${e}`,r),t instanceof dt?i():t.removeEventListener("message",s)}}),this.name=e,this.bc=t}next(e){this.bc.postMessage(e);!function(e){const t=ut.get(e.type);t&&t.forEach(t=>{try{t(e)}catch(e){}})}(new CustomEvent(`lbc-${this.name}`,{detail:e}))}}function ft(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 Pe(s)})}function pt(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 gt(e){return`$${e}_mutations`}function yt(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 mt=[].concat;function vt(e){return mt.apply([],e)}function bt(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=yt(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=vt(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 wt(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:_t}={};const kt={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 St(...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 kt;let i=n.get(r);if(void 0!==i)return i;const o=(s=e,_t.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:kt),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 xt={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 Et={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 Ct={bigint:{replace:e=>({$t:"bigint",v:""+e}),revive:e=>BigInt(e.v)}};var It={Date:{replace:e=>({$t:"Date",v:isNaN(e.getTime())?"NaN":e.toISOString()}),revive:({v:e})=>new Date("NaN"===e?NaN:Date.parse(e))}},Ot={Set:{replace:e=>({$t:"Set",v:Array.from(e.entries())}),revive:({v:e})=>new Set(e)}},Dt={Map:{replace:e=>({$t:"Map",v:Array.from(e.entries())}),revive:({v:e})=>new Map(e)}};const At="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof global?global:void 0;var Tt=["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=At[t];return s&&new s(r.ArrayBuffer.revive({v:e},n,r))}}}),{});function jt(e){return function(e){for(var t="",n=0,r=e.length;n<r;n++)t+=Lt[e[n]];return t}(Pe(e))}function Ut(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:"+","|":"/"},Lt={};for(const e of Object.keys(Pt))Lt[Pt[e]]=e;var Rt={ArrayBuffer:{replace:e=>({$t:"ArrayBuffer",v:jt(e)}),revive:({v:e})=>{const t=Ut(e);return t.buffer.byteLength===t.byteLength?t.buffer:t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}}};class $t{constructor(e,t){this.buf=e,this.type=t}}function Mt(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 Nt(e){const t=new Uint8Array(e.length);for(let n=0;n<e.length;++n)t[n]=e.charCodeAt(n);return t.buffer}var Bt={Blob:{test:(e,t)=>"Blob"===t||e instanceof $t,replace:e=>({$t:"Blob",v:Pe(e instanceof $t?e.buf:Nt(Mt(e))),type:e.type}),revive:({type:e,v:t})=>{const n=Ue(t);return void 0!==typeof Blob?new Blob([n]):new $t(n.buffer,e)}}};const Ft={...Et,...Ct,...It,...Ot,...Dt,...Tt,...Rt,...Bt};function Wt(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 Vt={undefined:{replace:()=>({$t:"undefined"}),revive:()=>{}}},Ht={File:{test:(e,t)=>"File"===t,replace:e=>({$t:"File",v:Pe(Nt(Mt(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 zt{toString(){return this.v}constructor(e){this.v=e}}const Jt=Kt?{}:{bigint:{test:e=>e instanceof zt,replace:e=>Object.assign({$t:"bigint"},e),revive:({v:e})=>new zt(e)}},qt=Object.assign(Object.assign(Object.assign(Object.assign({},Vt),Jt),Ht),{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)}}}),Yt=St(Ft,qt),Gt=function(...e){const t=St(Ft,xt,...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 Wt(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 Wt(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)}}}(qt);function Qt(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=Xt(i,s));const t=a.muts[r],n=JSON.stringify(e);t.keys[o]=n}else if("#"===e[0]){a===i&&(a=Xt(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 Xt(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 Zt=new WeakMap;function en(e){return s(this,void 0,void 0,function*(){var t,n;const r=(null!==(n=null===(t=Zt.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 tn(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 Ve(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:Qt(i.dx.core.schema,a,e),y:t,dxcv:i.cloud.version};i.syncStateChangedEvent.next({phase:"pushing"});const f=Yt.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));Zt.set(e,new Date(Date.now()+1e3*t))}else Zt.delete(e)}}(i,p),!p.ok)throw new Xe(p);if("application/x-bison"===p.headers.get("content-type"))return Gt.fromBinary(yield p.blob());{const e=yield p.text();return Yt.parse(e)}})}function nn(e){if(null==e?void 0:e.cancelled)throw new t.AbortError("Operation was cancelled")}let rn=!1;function sn(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 on(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 ln(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 cn(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 ln(e,r,n.changeSpecs);break;case"delete":yield e.bulkDelete(r)}}}})}"undefined"!=typeof self&&"undefined"!=typeof navigator&&(rn=navigator.onLine,self.addEventListener("online",()=>rn=!0),self.addEventListener("offline",()=>rn=!1));const an="dexie-cloud-syncer";function dn(e,t){return e.where("i").between(t,1/0,!0).toArray()}const un=()=>new Map,hn=e=>{const t=un();return e.forEach((e,n)=>{t.set(n,e)}),t},fn=(e,t,n)=>{let r=e.get(t);return void 0===r&&e.set(t,r=n()),r};class pn{constructor(){this._observers=un()}on(e,t){return fn(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)||un()).values()).forEach(e=>e(...t))}destroy(){this._observers=un()}}class gn{constructor(){this._observers=un()}on(e,t){fn(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)||un()).values()).forEach(e=>e(...t))}destroy(){this._observers=un()}}const yn=crypto.getRandomValues.bind(crypto),mn=()=>yn(new Uint32Array(1))[0],vn=[1e7]+-1e3+-4e3+-8e3+-1e11,bn=()=>vn.replace(/[018]/g,e=>(e^mn()&15>>e/4).toString(16)),wn=Date.now,_n=e=>new Promise(e);Promise.all.bind(Promise);const kn=e=>void 0===e?null:e;let Sn=new class{constructor(){this.map=new Map}setItem(e,t){this.map.set(e,t)}getItem(e){return this.map.get(e)}},xn=!0;try{"undefined"!=typeof localStorage&&localStorage&&(Sn=localStorage,xn=!1)}catch(Fl){}const En=Sn,Cn=Object.assign,In=Object.keys,On=e=>In(e).length,Dn=e=>In(e).length,An=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),Tn=Object.freeze,jn=e=>{for(const t in e){const n=e[t];"object"!=typeof n&&"function"!=typeof n||jn(e[t])}return Tn(e)},Un=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)}},Ln=(e,t)=>{if(e===t)return!0;if(null==e||null==t||e.constructor!==t.constructor)return!1;if(null!=e[Un])return e[Un](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(On(e)!==On(t))return!1;for(const n in e)if(!An(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},Rn="undefined"!=typeof process&&process.release&&/node|io\.js/.test(process.release.name)&&"[object process]"===Object.prototype.toString.call("undefined"!=typeof process?process:0);let $n;const Mn=e=>(()=>{if(void 0===$n)if(Rn){$n=un();const e=process.argv;let t=null;for(let n=0;n<e.length;n++){const r=e[n];"-"===r[0]?(null!==t&&$n.set(t,""),t=r):null!==t&&($n.set(t,r),t=null)}null!==t&&$n.set(t,"")}else"object"==typeof location?($n=un(),(location.search||"?").slice(1).split("&").forEach(e=>{if(0!==e.length){const[t,n]=e.split("=");$n.set(`--${P(t,"-")}`,n),$n.set(`-${P(t,"-")}`,n)}})):$n=un();return $n})().has(e),Nn=e=>kn(Rn?process.env[e.toUpperCase().replaceAll("-","_")]:En.getItem(e)),Bn=e=>Mn("--"+e)||null!==Nn(e);Bn("production");var Fn;Rn&&(Fn=process.env.FORCE_COLOR,["true","1","2"].includes(Fn))||!Mn("--no-colors")&&!Bn("no-color")&&(!Rn||process.stdout.isTTY)&&(!Rn||Mn("--color")||null!==Nn("COLORTERM")||(Nn("TERM")||"").includes("color"));class Wn{constructor(e,t){this.left=e,this.right=t}}const Vn=(e,t)=>new Wn(e,t);"undefined"!=typeof DOMParser&&new DOMParser;const Hn=Symbol,Kn=Hn(),zn=Hn(),Jn=Hn(),qn=Hn(),Yn=Hn(),Gn=Hn(),Qn=Hn(),Xn=Hn(),Zn=Hn(),er=(Vn("font-weight","bold"),Vn("font-weight","normal"),Vn("color","blue"),Vn("color","green"),Vn("color","grey"),Vn("color","red"),Vn("color","purple"),Vn("color","orange"),Vn("color","black"),I()),tr=e=>({[Symbol.iterator](){return this},next:e}),nr=(e,t)=>tr(()=>{const{done:n,value:r}=e.next();return{done:n,value:n?void 0:t(r)}});class rr{constructor(e,t){this.clock=e,this.len=t}}class sr{constructor(){this.clients=new Map}}const ir=(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])Fr(e,s,o.clock,o.len,n)}}),or=(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)},lr=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})},cr=(e,t,n,r)=>{fn(e.clients,t,()=>[]).push(new rr(n,r))},ar=(e,t)=>{V(e.restEncoder,t.clients.size),A(t.clients.entries()).sort((e,t)=>t[0]-e[0]).forEach(([t,n])=>{e.resetDsCurVal(),V(e.restEncoder,t);const r=n.length;V(e.restEncoder,r);for(let t=0;t<r;t++){const r=n[t];e.writeDsClock(r.clock),e.writeDsLen(r.len)}})},dr=(e,t,n)=>{const r=new sr,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&&cr(r,s,l,i-l);let e=Rr(o,n),c=o[e];for(!c.deleted&&c.id.clock<n&&(o.splice(e+1,0,ki(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,ki(t,c,i-c.id.clock)),c.delete(t))}else cr(r,s,n,i-n)}}if(r.clients.size>0){const e=new vr;return V(e.restEncoder,0),ar(e,r),e.toUint8Array()}return null},ur=mn;class hr extends pn{constructor({guid:e=bn(),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=ur(),this.guid=e,this.collectionid=t,this.share=new Map,this.store=new jr,this._transaction=null,this._transactionCleanups=[],this.subdocs=new Set,this._item=null,this.shouldLoad=o,this.autoLoad=i,this.meta=s,this.isLoaded=!1,this.isSynced=!1,this.isDestroyed=!1,this.whenLoaded=_n(e=>{this.on("load",()=>{this.isLoaded=!0,e(this)})});const l=()=>_n(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||Jr(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 Jr(this,e,t)}get(e,t=hs){const n=fn(this.share,e,()=>{const e=new t;return e._integrate(this,null),e}),r=n.constructor;if(t!==hs&&r!==t){if(r===hs){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,As)}getText(e=""){return this.get(e,qs)}getMap(e=""){return this.get(e,js)}getXmlElement(e=""){return this.get(e,Qs)}getXmlFragment(e=""){return this.get(e,Gs)}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 hr({guid:this.guid,...t.opts,shouldLoad:!1}),t.doc._item=e,Jr(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 fr{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 pr extends fr{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 Ir(this.clientDecoder.read(),this.leftClockDecoder.read())}readRightID(){return new Ir(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 gr{constructor(){this.restEncoder=N()}toUint8Array(){return B(this.restEncoder)}resetDsCurVal(){}writeDsClock(e){V(this.restEncoder,e)}writeDsLen(e){V(this.restEncoder,e)}}class yr extends gr{writeLeftID(e){V(this.restEncoder,e.client),V(this.restEncoder,e.clock)}writeRightID(e){V(this.restEncoder,e.client),V(this.restEncoder,e.clock)}writeClient(e){V(this.restEncoder,e)}writeInfo(e){W(this.restEncoder,e)}writeString(e){J(this.restEncoder,e)}writeParentInfo(e){V(this.restEncoder,e?1:0)}writeTypeRef(e){V(this.restEncoder,e)}writeLen(e){V(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 mr{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,V(this.restEncoder,t)}writeDsLen(e){0===e&&ce(),V(this.restEncoder,e-1),this.dsCurrVal+=e}}class vr extends mr{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 V(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 br=(e,t,n)=>{const r=new Map;n.forEach((e,n)=>{Pr(t,n)>e&&r.set(n,e)}),Ur(t).forEach((e,t)=>{n.has(t)||r.set(t,0)}),V(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=Rr(t,r);V(e.restEncoder,t.length-s),e.writeClient(n),V(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)})},wr=(e,t,n,r=new pr(e))=>Jr(t,e=>{e.local=!1;let t=!1;const n=e.doc,s=n.store,i=((e,t)=>{const n=un(),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 ni(Dr(i,o),t),o+=t;break}case 10:{const t=ye(e.restDecoder);s[n]=new Ci(Dr(i,o),t),o+=t;break}default:{const l=!(192&r),c=new Si(Dr(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(),xi(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 jr,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!==Ci){const s=fn(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 vr;return br(e,l,new Map),V(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=Xr([l.update,o.update])}}else s.pendingStructs=o;const c=dr(r,e,s);if(s.pendingDs){const t=new pr(he(s.pendingDs));ye(t.restDecoder);const n=dr(t,e,s);s.pendingDs=c&&n?Xr([c,n]):c||n}else s.pendingDs=c;if(t){const t=s.pendingStructs.update;s.pendingStructs=null,_r(e.doc,t)}},n,!1),_r=(e,t,n,r=pr)=>{const s=he(t);wr(s,e,n,new r(s))};class kr{constructor(){this.l=[]}}const Sr=()=>new kr,xr=(e,t)=>e.l.push(t),Er=(e,t)=>{const n=e.l;n.length;e.l=n.filter(e=>t!==e),e.l.length},Cr=(e,t,n)=>Pn(e.l,[t,n]);class Ir{constructor(e,t){this.client=e,this.clock=t}}const Or=(e,t)=>e===t||null!==e&&null!==t&&e.client===t.client&&e.clock===t.clock,Dr=(e,t)=>new Ir(e,t),Ar=(e,t)=>void 0===t?!e.deleted:t.sv.has(e.id.client)&&(t.sv.get(e.id.client)||0)>e.id.clock&&!or(t.ds,e.id),Tr=(e,t)=>{const n=fn(e.meta,Tr,I),r=e.doc.store;n.has(t)||(t.sv.forEach((t,n)=>{t<Pr(r,n)&&Nr(e,Dr(n,t))}),ir(e,t.ds,e=>{}),n.add(t))};class jr{constructor(){this.clients=new Map,this.pendingStructs=null,this.pendingDs=null}}const Ur=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},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)},Rr=(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()},$r=(e,t)=>{const n=e.clients.get(t.client);return n[Rr(n,t.clock)]},Mr=(e,t,n)=>{const r=Rr(t,n),s=t[r];return s.id.clock<n&&s instanceof Si?(t.splice(r+1,0,ki(e,s,n-s.id.clock)),r+1):r},Nr=(e,t)=>{const n=e.doc.store.clients.get(t.client);return n[Mr(e,n,t.clock)]},Br=(e,t,n)=>{const r=t.clients.get(n.client),s=Rr(r,n.clock),i=r[s];return n.clock!==i.id.clock+i.length-1&&i.constructor!==ni&&r.splice(s+1,0,ki(e,i,n.clock-i.id.clock+1)),i},Fr=(e,t,n,r,s)=>{if(0===r)return;const i=n+r;let o,l=Mr(e,t,n);do{o=t[l++],i<o.id.clock+o.length&&Mr(e,t,i),s(o)}while(l<t.length&&t[l].id.clock<i)};class Wr{constructor(e,t,n){this.doc=e,this.deleteSet=new sr,this.beforeState=Ur(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 Vr=(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))&&(lr(t.deleteSet),((e,t)=>{br(e,t.doc.store,t.beforeState)})(e,t),ar(e,t.deleteSet),!0),Hr=(e,t,n)=>{const r=t._item;(null===r||r.id.clock<(e.beforeState.get(r.id.client)||0)&&!r.deleted)&&fn(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 Si&&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},zr=(e,t)=>{if(t<e.length){const n=e[t],r=n.doc,s=r.store,i=n.deleteSet,o=n._mergeStructs;try{lr(i),n.afterState=Ur(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),Cr(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=Rr(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 Si&&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+Rr(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(Rr(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=Rr(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)=>{er.forEach(t=>t.print(e))})(Xn,Kn,"[yjs] ",zn,Gn,"Changed the client-id because another client seems to be using it."),r.clientID=ur()),r.emit("afterTransactionCleanup",[n,r]),r._observers.has("update")){const e=new yr;Vr(e,n)&&r.emit("update",[e.toUint8Array(),n.origin,r,n])}if(r._observers.has("updateV2")){const e=new vr;Vr(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])):zr(e,t+1)}}},Jr=(e,t,n=null,r=!0)=>{const s=e._transactionCleanups;let i=!1,o=null;null===e._transaction&&(i=!0,e._transaction=new Wr(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&&zr(s,0)}}return o};class qr{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 Ci(Dr(n,r),t),r+=t}else if(31&t){const s=!(192&t),i=new Si(Dr(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(),xi(e,t));yield i,r+=i.length}else{const t=e.readLen();yield new ni(Dr(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===Ci);return this.curr}}class Yr{constructor(e){this.currClient=0,this.startClock=0,this.written=0,this.encoder=e,this.clientStructs=[]}}const Gr=(e,t=mr,n=pr)=>{const r=new t,s=new qr(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++,V(r.restEncoder,t),V(r.restEncoder,o)),t=i.id.client,o=0,n=0!==i.id.clock),i.constructor===Ci&&(n=!0),n||(o=i.id.clock+i.length);0!==o&&(e++,V(r.restEncoder,t),V(r.restEncoder,o));const l=N();return V(l,e),((e,t)=>{q(e,B(t))})(l,r.restEncoder),r.restEncoder=l,r.toUint8Array()}return V(r.restEncoder,0),r.toUint8Array()},Qr=(e,t)=>{if(e.constructor===ni){const{client:n,clock:r}=e.id;return new ni(Dr(n,r+t),e.length-t)}if(e.constructor===Ci){const{client:n,clock:r}=e.id;return new Ci(Dr(n,r+t),e.length-t)}{const n=e,{client:r,clock:s}=n.id;return new Si(Dr(r,s+t),null,Dr(r,s+t-1),null,n.rightOrigin,n.parent,n.parentSub,n.content.splice(t))}},Xr=(e,t=pr,n=vr)=>{if(1===e.length)return e[0];const r=e.map(e=>new t(he(e)));let s=r.map(e=>new qr(e,!0)),i=null;const o=new n,l=new Yr(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===Ci?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)es(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===Ci)i.struct.length=n.id.clock+n.length-i.struct.id.clock;else{es(l,i.struct,i.offset);const e=n.id.clock-i.struct.id.clock-i.struct.length;i={struct:new Ci(Dr(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===Ci?i.struct.length-=t:n=Qr(n,t)),i.struct.mergeWith(n)||(es(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!==Ci;n=e.next())es(l,i.struct,i.offset),i={struct:n,offset:0}}null!==i&&(es(l,i.struct,i.offset),i=null),ts(l);const c=r.map(e=>(e=>{const t=new sr,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=fn(t.clients,n,()=>[]);for(let t=0;t<r;t++)s.push(new rr(e.readDsClock(),e.readDsLen()))}}return t})(e)),a=(e=>{const t=new sr;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 lr(t),t})(c);return ar(o,a),o.toUint8Array()},Zr=e=>{e.written>0&&(e.clientStructs.push({written:e.written,restEncoder:B(e.encoder.restEncoder)}),e.encoder.restEncoder=N(),e.written=0)},es=(e,t,n)=>{e.written>0&&e.currClient!==t.id.client&&Zr(e),0===e.written&&(e.currClient=t.id.client,e.encoder.writeClient(t.id.client),V(e.encoder.restEncoder,t.id.clock+n)),t.write(e.encoder,n),e.written++},ts=e=>{Zr(e);const t=e.encoder.restEncoder;V(t,e.clientStructs.length);for(let n=0;n<e.clientStructs.length;n++){const r=e.clientStructs[n];V(t,r.written),q(t,r.restEncoder)}},ns="You must not compute changes after the event-handler fired.";class rs{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=ss(this.currentTarget,this.target))}deletes(e){return or(this.transaction.deleteSet,e.id)}get keys(){if(null===this._keys){if(0===this.transaction.doc._transactionCleanups.length)throw oe(ns);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(ns);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 ss=(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},is=()=>{((...e)=>{e.unshift(Xn),er.forEach(t=>t.print(e))})("Invalid access: Add Yjs type to a document before reading data.")};let os=0;class ls{constructor(e,t){e.marker=!0,this.p=e,this.index=t,this.timestamp=os++}}const cs=(e,t,n)=>{e.p.marker=!1,e.p=t,t.marker=!0,e.index=n,e.timestamp=os++},as=(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=os++})(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?(cs(n,r,s),n):((e,t,n)=>{if(e.length>=80){const r=e.reduce((e,t)=>e.timestamp<t.timestamp?e:t);return cs(r,t,n),r}{const r=new ls(t,n);return e.push(r),r}})(e._searchMarker,r,s)},ds=(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))}},us=(e,t,n)=>{const r=e,s=t.changedParentTypes;for(;fn(s,e,()=>[]).push(n),null!==e._item;)e=e._item.parent;Cr(r._eH,n,t)};class hs{constructor(){this._item=null,this._map=new Map,this._start=null,this.doc=null,this._length=0,this._eH=Sr(),this._dEH=Sr(),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){xr(this._eH,e)}observeDeep(e){xr(this._dEH,e)}unobserve(e){Er(this._eH,e)}unobserveDeep(e){Er(this._dEH,e)}toJSON(){}}const fs=(e,t,n)=>{e.doc??is(),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},ps=e=>{e.doc??is();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},gs=(e,t)=>{let n=0,r=e._start;for(e.doc??is();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}},ys=(e,t)=>{const n=[];return gs(e,(r,s)=>{n.push(t(r,s,e))}),n},ms=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}}}},vs=(e,t)=>{e.doc??is();const n=as(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}},bs=(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 Si(Dr(o,Pr(l,o)),s,s&&s.lastId,c,c&&c.id,t,null,new ui(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 Si(Dr(o,Pr(l,o)),s,s&&s.lastId,c,c&&c.id,t,null,new ri(new Uint8Array(n))),s.integrate(e,0);break;case hr:s=new Si(Dr(o,Pr(l,o)),s,s&&s.lastId,c,c&&c.id,t,null,new oi(n)),s.integrate(e,0);break;default:if(!(n instanceof hs))throw new Error("Unexpected content type in insert operation");s=new Si(Dr(o,Pr(l,o)),s,s&&s.lastId,c,c&&c.id,t,null,new _i(n)),s.integrate(e,0)}}}),d()},ws=()=>oe("Length exceeded!"),_s=(e,t,n,r)=>{if(n>t._length)throw ws();if(0===n)return t._searchMarker&&ds(t._searchMarker,n,r.length),bs(e,t,null,r);const s=n,i=as(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&&Nr(e,Dr(o.id.client,o.id.clock+n));break}n-=o.length}return t._searchMarker&&ds(t._searchMarker,s,r.length),bs(e,t,o,r)},ks=(e,t,n,r)=>{if(0===r)return;const s=n,i=r,o=as(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&&Nr(e,Dr(l.id.client,l.id.clock+n)),n-=l.length);for(;r>0&&null!==l;)l.deleted||(r<l.length&&Nr(e,Dr(l.id.client,l.id.clock+r)),l.delete(e),r-=l.length),l=l.right;if(r>0)throw ws();t._searchMarker&&ds(t._searchMarker,s,-i+r)},Ss=(e,t,n)=>{const r=t._map.get(n);void 0!==r&&r.delete(e)},xs=(e,t,n,r)=>{const s=t._map.get(n)||null,i=e.doc,o=i.clientID;let l;if(null==r)l=new ui([r]);else switch(r.constructor){case Number:case Object:case Boolean:case Array:case String:case Date:case BigInt:l=new ui([r]);break;case Uint8Array:l=new ri(r);break;case hr:l=new oi(r);break;default:if(!(r instanceof hs))throw new Error("Unexpected content type");l=new _i(r)}new Si(Dr(o,Pr(i.store,o)),s,s&&s.lastId,null,null,t,n,l).integrate(e,0)},Es=(e,t)=>{e.doc??is();const n=e._map.get(t);return void 0===n||n.deleted?void 0:n.content.getContent()[n.length-1]},Cs=e=>{const t={};return e.doc??is(),e._map.forEach((e,n)=>{e.deleted||(t[n]=e.content.getContent()[e.length-1])}),t},Is=(e,t)=>{e.doc??is();const n=e._map.get(t);return void 0!==n&&!n.deleted},Os=e=>{return e.doc??is(),t=e._map.entries(),n=e=>!e[1].deleted,tr(()=>{let e;do{e=t.next()}while(!e.done&&!n(e.value));return e});var t,n};class Ds extends rs{}class As extends hs{constructor(){super(),this._prelimContent=[],this._searchMarker=[]}static from(e){const t=new As;return t.push(e),t}_integrate(e,t){super._integrate(e,t),this.insert(0,this._prelimContent),this._prelimContent=null}_copy(){return new As}clone(){const e=new As;return e.insert(0,this.toArray().map(e=>e instanceof hs?e.clone():e)),e}get length(){return this.doc??is(),this._length}_callObserver(e,t){super._callObserver(e,t),us(this,e,new Ds(this,e))}insert(e,t){null!==this.doc?Jr(this.doc,n=>{_s(n,this,e,t)}):this._prelimContent.splice(e,0,...t)}push(e){null!==this.doc?Jr(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;bs(e,t,r,n)})(t,this,e)}):this._prelimContent.push(...e)}unshift(e){this.insert(0,e)}delete(e,t=1){null!==this.doc?Jr(this.doc,n=>{ks(n,this,e,t)}):this._prelimContent.splice(e,t)}get(e){return vs(this,e)}toArray(){return ps(this)}slice(e=0,t=this.length){return fs(this,e,t)}toJSON(){return this.map(e=>e instanceof hs?e.toJSON():e)}map(e){return ys(this,e)}forEach(e){gs(this,e)}[Symbol.iterator](){return ms(this)}_write(e){e.writeTypeRef(pi)}}class Ts extends rs{constructor(e,t,n){super(e,t),this.keysChanged=n}}class js extends hs{constructor(e){super(),this._prelimContent=null,this._prelimContent=void 0===e?new Map:new Map(e)}_integrate(e,t){super._integrate(e,t),this._prelimContent.forEach((e,t)=>{this.set(t,e)}),this._prelimContent=null}_copy(){return new js}clone(){const e=new js;return this.forEach((t,n)=>{e.set(n,t instanceof hs?t.clone():t)}),e}_callObserver(e,t){us(this,e,new Ts(this,e,t))}toJSON(){this.doc??is();const e={};return this._map.forEach((t,n)=>{if(!t.deleted){const r=t.content.getContent()[t.length-1];e[n]=r instanceof hs?r.toJSON():r}}),e}get size(){return[...Os(this)].length}keys(){return nr(Os(this),e=>e[0])}values(){return nr(Os(this),e=>e[1].content.getContent()[e[1].length-1])}entries(){return nr(Os(this),e=>[e[0],e[1].content.getContent()[e[1].length-1]])}forEach(e){this.doc??is(),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?Jr(this.doc,t=>{Ss(t,this,e)}):this._prelimContent.delete(e)}set(e,t){return null!==this.doc?Jr(this.doc,n=>{xs(n,this,e,t)}):this._prelimContent.set(e,t),t}get(e){return Es(this,e)}has(e){return Is(this,e)}clear(){null!==this.doc?Jr(this.doc,e=>{this.forEach(function(t,n,r){Ss(e,r,n)})}):this._prelimContent.clear()}_write(e){e.writeTypeRef(gi)}}const Us=(e,t)=>e===t||"object"==typeof e&&"object"==typeof t&&e&&t&&((e,t)=>e===t||Dn(e)===Dn(t)&&((e,t)=>{for(const n in e)if(!t(e[n],n))return!1;return!0})(e,(e,n)=>(void 0!==e||An(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===ci)this.right.deleted||Ms(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===ci)t.right.deleted||Ms(t.currentAttributes,t.right.content);else t.right.deleted||(n<t.right.length&&Nr(e,Dr(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},Rs=(e,t,n,r)=>{const s=new Map,i=r?as(t,n):null;if(i){const t=new Ps(i.p.left,i.p,i.index,s);return Ls(e,t,n-i.index)}{const r=new Ps(null,t._start,0,s);return Ls(e,r,n)}},$s=(e,t,n,r)=>{for(;null!==n.right&&(!0===n.right.deleted||n.right.content.constructor===ci&&Us(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 Si(Dr(i,Pr(s.store,i)),l,l&&l.lastId,c,c&&c.id,t,null,new ci(o,r));a.integrate(e,0),n.right=a,n.forward()})},Ms=(e,t)=>{const{key:n,value:r}=t;null===r?e.delete(n):e.set(n,r)},Ns=(e,t)=>{for(;null!==e.right&&(e.right.deleted||e.right.content.constructor===ci&&Us(t[e.right.content.key]??null,e.right.content.value));)e.forward()},Bs=(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(!Us(a,c)){o.set(l,a);const{left:r,right:d}=n;n.right=new Si(Dr(i,Pr(s.store,i)),r,r&&r.lastId,d,d&&d.id,t,null,new ci(l,c)),n.right.integrate(e,0),n.forward()}}return o},Fs=(e,t,n,r,s)=>{n.currentAttributes.forEach((e,t)=>{void 0===s[t]&&(s[t]=null)});const i=e.doc,o=i.clientID;Ns(n,s);const l=Bs(e,t,n,s),c=r.constructor===String?new hi(r):r instanceof hs?new _i(r):new li(r);let{left:a,right:d,index:u}=n;t._searchMarker&&ds(t._searchMarker,n.index,c.getLength()),d=new Si(Dr(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(),$s(e,t,n,l)},Ws=(e,t,n,r,s)=>{const i=e.doc,o=i.clientID;Ns(n,s);const l=Bs(e,t,n,s);e:for(;null!==n.right&&(r>0||l.size>0&&(n.right.deleted||n.right.content.constructor===ci));){if(!n.right.deleted)switch(n.right.content.constructor){case ci:{const{key:t,value:i}=n.right.content,o=s[t];if(void 0!==o){if(Us(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&&Nr(e,Dr(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 Si(Dr(o,Pr(i.store,o)),n.left,n.left&&n.left.lastId,n.right,n.right&&n.right.id,t,null,new hi(s)),n.right.integrate(e,0),n.forward()}$s(e,t,n,l)},Vs=(e,t,n,r,s)=>{let i=t;const o=un();for(;i&&(!i.countable||i.deleted);){if(!i.deleted&&i.content.constructor===ci){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 ci:{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||Ms(s,n);break}}}t=t.right}return l},Hs=e=>{let t=0;return Jr(e.doc,n=>{let r=e._start,s=e._start,i=un();const o=hn(i);for(;s;){if(!1===s.deleted)if(s.content.constructor===ci)Ms(o,s.content);else t+=Vs(n,r,s,i,o),i=hn(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&&Fr(e,n.store.clients.get(r),i,s,e=>{e.deleted||e.content.constructor!==ci||e.constructor===ni||t.add(e.parent)})}Jr(n,n=>{ir(e,e.deleteSet,e=>{if(e instanceof ni||!e.parent._hasFormatting||t.has(e.parent))return;const r=e.parent;e.content.constructor===ci?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===ci){const r=t.content.key;n.has(r)?t.delete(e):n.add(r)}t=t.left}})(n,e)});for(const e of t)Hs(e)})},zs=(e,t,n)=>{const r=n,s=hn(t.currentAttributes),i=t.right;for(;n>0&&null!==t.right;){if(!1===t.right.deleted)switch(t.right.content.constructor){case _i:case li:case hi:n<t.right.length&&Nr(e,Dr(t.right.id.client,t.right.id.clock+n)),n-=t.right.length,t.right.delete(e)}t.forward()}i&&Vs(e,i,t.right,s,t.currentAttributes);const o=(t.left||t.right).parent;return o._searchMarker&&ds(o._searchMarker,t.index,-r+n),t};class Js extends rs{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=[];Jr(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=Cn({},o))),c=0}e&&t.push(e),i=null}};for(;null!==s;){switch(s.content.constructor){case _i:case li: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 hi: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 ci:{const{key:t,value:l}=s.content;if(this.adds(s)){if(!this.deletes(s)){const c=n.get(t)??null;Us(c,l)?null!==l&&s.delete(e):("retain"===i&&d(),Us(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;Us(e,l)||("retain"===i&&d(),o[t]=e)}else if(!s.deleted){r.set(t,l);const n=o[t];void 0!==n&&(Us(n,l)?null!==n&&s.delete(e):("retain"===i&&d(),null===l?delete o[t]:o[t]=l))}s.deleted||("insert"===i&&d(),Ms(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 qs extends hs{constructor(e){super(),this._pending=void 0!==e?[()=>this.insert(0,e)]:[],this._searchMarker=[],this._hasFormatting=!1}get length(){return this.doc??is(),this._length}_integrate(e,t){super._integrate(e,t);try{this._pending.forEach(e=>e())}catch(e){}this._pending=null}_copy(){return new qs}clone(){const e=new qs;return e.applyDelta(this.toDelta()),e}_callObserver(e,t){super._callObserver(e,t);const n=new Js(this,e,t);us(this,e,n),!e.local&&this._hasFormatting&&(e._needFormattingCleanup=!0)}toString(){this.doc??is();let e="",t=this._start;for(;null!==t;)!t.deleted&&t.countable&&t.content.constructor===hi&&(e+=t.content.str),t=t.right;return e}toJSON(){return this.toString()}applyDelta(e,{sanitize:t=!0}={}){null!==this.doc?Jr(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)&&Fs(n,this,r,o,i.attributes||{})}else void 0!==i.retain?Ws(n,this,r,i.retain,i.attributes||{}):void 0!==i.delete&&zs(n,r,i.delete)}}):this._pending.push(()=>this.applyDelta(e))}toDelta(e,t,n){this.doc??is();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(Ar(l,e)||void 0!==t&&Ar(l,t))switch(l.content.constructor){case hi:{const r=s.get("ychange");void 0===e||Ar(l,e)?void 0===t||Ar(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 _i:case li:{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 ci:Ar(l,e)&&(c(),Ms(s,l.content))}l=l.right}c()};return e||t?Jr(i,n=>{e&&Tr(n,e),t&&Tr(n,t),a()},"cleanup"):a(),r}insert(e,t,n){if(t.length<=0)return;const r=this.doc;null!==r?Jr(r,r=>{const s=Rs(r,this,e,!n);n||(n={},s.currentAttributes.forEach((e,t)=>{n[t]=e})),Fs(r,this,s,t,n)}):this._pending.push(()=>this.insert(e,t,n))}insertEmbed(e,t,n){const r=this.doc;null!==r?Jr(r,r=>{const s=Rs(r,this,e,!n);Fs(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?Jr(n,n=>{zs(n,Rs(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?Jr(r,r=>{const s=Rs(r,this,e,!1);null!==s.right&&Ws(r,this,s,t,n)}):this._pending.push(()=>this.format(e,t,n))}removeAttribute(e){null!==this.doc?Jr(this.doc,t=>{Ss(t,this,e)}):this._pending.push(()=>this.removeAttribute(e))}setAttribute(e,t){null!==this.doc?Jr(this.doc,n=>{xs(n,this,e,t)}):this._pending.push(()=>this.setAttribute(e,t))}getAttribute(e){return Es(this,e)}getAttributes(){return Cs(this)}_write(e){e.writeTypeRef(yi)}}class Ys{constructor(e,t=()=>!0){this._filter=t,this._root=e,this._currentNode=e._start,this._firstCall=!0,e.doc??is()}[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!==Qs&&t.constructor!==Gs||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 Gs extends hs{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 Gs}clone(){const e=new Gs;return e.insert(0,this.toArray().map(e=>e instanceof hs?e.clone():e)),e}get length(){return this.doc??is(),null===this._prelimContent?this._length:this._prelimContent.length}createTreeWalker(e){return new Ys(this,e)}querySelector(e){e=e.toUpperCase();const t=new Ys(this,t=>t.nodeName&&t.nodeName.toUpperCase()===e).next();return t.done?null:t.value}querySelectorAll(e){return e=e.toUpperCase(),A(new Ys(this,t=>t.nodeName&&t.nodeName.toUpperCase()===e))}_callObserver(e,t){us(this,e,new Xs(this,t,e))}toString(){return ys(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),gs(this,s=>{r.insertBefore(s.toDOM(e,t,n),null)}),r}insert(e,t){null!==this.doc?Jr(this.doc,n=>{_s(n,this,e,t)}):this._prelimContent.splice(e,0,...t)}insertAfter(e,t){if(null!==this.doc)Jr(this.doc,n=>{const r=e&&e instanceof hs?e._item:e;bs(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?Jr(this.doc,n=>{ks(n,this,e,t)}):this._prelimContent.splice(e,t)}toArray(){return ps(this)}push(e){this.insert(this.length,e)}unshift(e){this.insert(0,e)}get(e){return vs(this,e)}slice(e=0,t=this.length){return fs(this,e,t)}forEach(e){gs(this,e)}_write(e){e.writeTypeRef(vi)}}class Qs extends Gs{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 Qs(this.nodeName)}clone(){const e=new Qs(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 hs?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?Jr(this.doc,t=>{Ss(t,this,e)}):this._prelimAttrs.delete(e)}setAttribute(e,t){null!==this.doc?Jr(this.doc,n=>{xs(n,this,e,t)}):this._prelimAttrs.set(e,t)}getAttribute(e){return Es(this,e)}hasAttribute(e){return Is(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&&Ar(s,t)&&(n[r]=s.content.getContent()[s.length-1])}),n})(this,e):Cs(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 gs(this,s=>{r.appendChild(s.toDOM(e,t,n))}),void 0!==n&&n._createAssociation(r,this),r}_write(e){e.writeTypeRef(mi),e.writeKey(this.nodeName)}}class Xs extends rs{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 Zs extends js{constructor(e){super(),this.hookName=e}_copy(){return new Zs(this.hookName)}clone(){const e=new Zs(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(bi),e.writeKey(this.hookName)}}class ei extends qs{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 ei}clone(){const e=new ei;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(wi)}}class ti{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 ni extends ti{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 ri{constructor(e){this.content=e}getLength(){return 1}getContent(){return[this.content]}isCountable(){return!0}copy(){return new ri(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 si{constructor(e){this.len=e}getLength(){return this.len}getContent(){return[]}isCountable(){return!1}copy(){return new si(this.len)}splice(e){const t=new si(this.len-e);return this.len=e,t}mergeWith(e){return this.len+=e.len,!0}integrate(e,t){cr(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 ii=(e,t)=>new hr({guid:e,...t,shouldLoad:t.shouldLoad||t.autoLoad||!1});class oi{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 oi(ii(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 li{constructor(e){this.embed=e}getLength(){return 1}getContent(){return[this.embed]}isCountable(){return!0}copy(){return new li(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 ci{constructor(e,t){this.key=e,this.value=t}getLength(){return 1}getContent(){return[]}isCountable(){return!1}copy(){return new ci(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 ai{constructor(e){this.arr=e}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new ai(this.arr)}splice(e){const t=new ai(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 di="development"===Nn("node_env");class ui{constructor(e){this.arr=e,di&&jn(e)}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new ui(this.arr)}splice(e){const t=new ui(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 hi{constructor(e){this.str=e}getLength(){return this.str.length}getContent(){return this.str.split("")}isCountable(){return!0}copy(){return new hi(this.str)}splice(e){const t=new hi(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 fi=[e=>new As,e=>new js,e=>new qs,e=>new Qs(e.readKey()),e=>new Gs,e=>new Zs(e.readKey()),e=>new ei],pi=0,gi=1,yi=2,mi=3,vi=4,bi=5,wi=6;class _i{constructor(e){this.type=e}getLength(){return 1}getContent(){return[this.type]}isCountable(){return!0}copy(){return new _i(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 ki=(e,t,n)=>{const{client:r,clock:s}=t.id,i=new Si(Dr(r,s+n),t,Dr(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=Dr(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 Si extends ti{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===Ir&&this.id.client!==this.parent.client&&this.parent.clock>=Pr(t,this.parent.client))return this.parent.client;if(this.origin&&(this.left=Br(e,t,this.origin),this.origin=this.left.lastId),this.rightOrigin&&(this.right=Nr(e,this.rightOrigin),this.rightOrigin=this.right.id),this.left&&this.left.constructor===ni||this.right&&this.right.constructor===ni)this.parent=null;else if(this.parent){if(this.parent.constructor===Ir){const e=$r(t,this.parent);e.constructor===ni?this.parent=null:this.parent=e.content.type}}else this.left&&this.left.constructor===Si?(this.parent=this.left.parent,this.parentSub=this.left.parentSub):this.right&&this.right.constructor===Si&&(this.parent=this.right.parent,this.parentSub=this.right.parentSub);return null}integrate(e,t){if(t>0&&(this.id.clock+=t,this.left=Br(e,e.doc.store,Dr(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),Or(this.origin,t.origin)){if(t.id.client<this.id.client)n=t,r.clear();else if(Or(this.rightOrigin,t.rightOrigin))break}else{if(null===t.origin||!s.has($r(e.doc.store,t.origin)))break;r.has($r(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),Hr(e,this.parent,this.parentSub),(null!==this.parent._item&&this.parent._item.deleted||null!==this.parentSub&&null!==this.right)&&this.delete(e)}else new ni(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:Dr(this.id.client,this.id.clock+this.length-1)}mergeWith(e){if(this.constructor===e.constructor&&Or(e.origin,this.lastId)&&this.right===e&&Or(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(),cr(e.deleteSet,this.id.client,this.id.clock,this.length),Hr(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[Rr(r,t.id.clock)]=n})(e,this,new ni(this.id,this.length)):this.content=new si(this.length)}write(e,t){const n=t>0?Dr(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===Ir?(e.writeParentInfo(!1),e.writeLeftID(t)):ce();null!==s&&e.writeString(s)}this.content.write(e,t)}}const xi=(e,t)=>Ei[31&t](e),Ei=[()=>{ce()},e=>new si(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 ai(n)},e=>new ri(e.readBuf()),e=>new hi(e.readString()),e=>new li(e.readJSON()),e=>new ci(e.readKey(),e.readJSON()),e=>new _i(fi[e.readTypeRef()](e)),e=>{const t=e.readLen(),n=[];for(let r=0;r<t;r++)n.push(e.readAny());return new ui(n)},e=>new oi(ii(e.readString(),e.readAny())),()=>{ce()}];class Ci extends ti{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),V(e.restEncoder,this.length-t)}getMissing(e,t){return null}}const Ii="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},Oi="__ $YJS$ __";function Di(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}Ii[Oi],Ii[Oi]=!0;const Ai=new FinalizationRegistry(({cache:e,key:t})=>{delete e[t]});function Ti(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&&Ai.unregister(o),this.cache[i]=new WeakRef(e),Ai.register(e,{cache:this.cache,key:i},e)},delete(e){Ai.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 ji=new WeakSet;function Ui(e){if(ji.has(e))throw new Error(`Y.Doc ${e.meta.parentId} has been destroyed`)}function Pi(e,t,n){return`${e}[${t}].${n}`}const{getByKeyPath:Li}=t.Dexie;let Ri=null;function $i(e){Ri=e}function Mi(){}const Ni=new WeakMap;function Bi(){return t.Dexie.Events(null,"load","sync","error")}class Fi{static getOrCreateDocument(e,t,n,r){var s,i;const o=Ti(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 hr({meta:{db:e,updatesTable:s,parentProp:r,parentTable:n,parentId:i}}),t.add(o),o.on("destroy",()=>{ji.add(o),t.delete(o)}),o)}(e,o,t,n,l,r)}static load(e,t){var n;let r=Ni.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 Fi(e),r.graceTimeout=null!==(n=null==t?void 0:t.gracePeriod)&&void 0!==n?n:-1,Ni.set(e,r)),r}static release(e){if(!e||ji.has(e))return;const t=Ni.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(Fi.on("beforeunload").fire(this)).finally(()=>{var e;0===this.refCount&&(null===(e=this.doc)||void 0===e||e.destroy())})}static for(e){return Ni.get(e)}static get currentUpdateRow(){return Ri}get whenLoaded(){return this._whenLoaded||(this._whenLoaded=new Promise((e,n)=>{this.doc?this.doc.isLoaded?e():this._error?n(this._error):ji.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):ji.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=Bi(),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]=()=>Fi.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`);Ui(e),this.stopObserving=function(e,n,r,s,i,o){let l=0,c=!0;const a=t.liveQuery(()=>{Ui(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?(Ui(n),t.length>0&&Jr(n,()=>{t.forEach(e=>{try{$i(e),_r(n,e.u)}finally{$i(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),Fi.on("new").fire(this)}destroy(){var e;Ni.delete(this.doc),this.doc=null,this.destroyed=!0,this.refCount=0,null===(e=this.stopObserving)||void 0===e||e.call(this),this.on=Bi(),this.cleanupHandlers.forEach(e=>e())}addCleanupHandler(e){this.cleanupHandlers.push("function"==typeof e?e:()=>e.unsubscribe())}}function Wi(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=Di(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=Di(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(an);yield t.table(e.name).put(Object.assign(Object.assign({},n||{i:an}),{unsentFrom:Math.max((null==n?void 0:n.unsentFrom)||1,c.i+1)}))})));break}case"u-reject":{const e=Di(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=Fi.getDocCache(n.dx).find(c.table,s,c.prop);r&&r.destroy()}break}case"in-sync":{const e=Fi.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}})}Fi.on=t.Dexie.Events(null,{new:[function(e,t){return e===Mi?t:function(){e.apply(this,arguments),t.apply(this,arguments)}}],beforeunload:[function(e,t){return e===Mi?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)}}]}),Fi.getDocCache=Ti,t.Dexie.DexieYProvider?Fi=t.Dexie.DexieYProvider||Fi:t.Dexie.DexieYProvider=Fi;function Vi(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 Ve(e),d={"Content-Type":"application/json",Accept:"application/octet-stream"};a&&(d.Authorization=`Bearer ${a.accessToken}`);const u=yield fetch(`${n}/y/download`,{body:Yt.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=Di(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 Hi="currentSyncWorker";function Ki(e,t,n,r){return zi(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):rn&&(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:rn?"error":"offline",error:new Error(""+(null==i?void 0:i.message)||i)}),Promise.reject(i))}))}function zi(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?pt(e):[],p=h.map(t=>e.table(gt(t.name))),g=yield e.getPersistedSyncState(),y=d.isLoggedIn,m=y?function(e,t){const n=(null==t?void 0:t.syncedTables)||[];return pt(e).filter(e=>!n.includes(e.name))}(e,g):[];nn(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)})),nn(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 bt(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(an),l=(null==o?void 0:o.unsentFrom)||1,c=(null==o?void 0:o.receivedUntil)||0,a=Math.min(l,c+1),d=yield dn(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]:Xr(i);if(r)n.push({type:"u-c",table:s.name,prop:t.prop,k:e,u:l,i:o});else{const r=Gr(l);n.push({type:"sv",table:s.name,prop:t.prop,k:e,sv:r})}}}return{yMessages:n,lastUpdateIds:r}})}(e,h);if(nn(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-${wt(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 nn(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=on(b,null==w?void 0:w.latestRevisions),C=(null==w?void 0:w.clientIdentity)||u(16);nn(i);const I=yield tn(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 bt(p,e,{since:E});for(const t of p){const n=yt(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()])}on(r,E),yield sn(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=pt(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=Ji(I.changes,r);if(yield cn(l,e),I.yMessages){const{receivedUntils:t,resyncNeeded:n,yServerRevision:r}=yield Wi(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(an);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:an,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 en(e),yield zi(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 Vi(e,a,D)}catch(e){}return e.syncCompleteEvent.next(),!1})}function Ji(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 qi(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(ft(s)))!==h.realmSetHash)return void Ae(e,"pull");let o=[];if(i.isLoggedIn){const t=pt(e).map(t=>e.table(gt(t.name)));o=yield bt(t,e)}if(h.changes.length>0){const t=Ji(h.changes,o);yield cn(t,e)}s.latestRevisions=on(o,s.latestRevisions),s.serverRevision=h.newRev,yield sn(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 Yi=new WeakMap,Gi={members:"@id, [userId+realmId], [email+realmId], realmId",roles:"[realmId+name]",realms:"@realmId",$jobs:"",$syncState:"",$baseRevs:"[tableName+clientRev]",$logins:"claims.sub, lastLogin"};let Qi=0;function Xi(e){"vip"in e&&(e=e.vip);let t=Yi.get(e.cloud);if(!t){const r=new n.Subject;let s=new ht(`syncstatechanged-${e.name}`),i=new ht(`synccomplete-${e.name}`);r.id=++Qi;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=Zi(n.schema.primKey.keyPath));return e}),getOptions:()=>t.$syncState.get("options"),setInitiallySynced(e){o=e},reconfigure(){s=new ht(`syncstatechanged-${e.name}`),i=new ht(`synccomplete-${e.name}`)}};Object.assign(t,l),t.messageConsumer=qi(t),t.messageProducer=new n.Subject,Yi.set(e.cloud,t)}return t}function Zi(e){return"string"==typeof e?e:e?"["+[].join.call(e,"+")+"]":""}const eo="undefined"!=typeof InstallTrigger,to="undefined"!=typeof navigator&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\/|Edge\//.test(navigator.userAgent),no=to?[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]:NaN,ro=to&&no<=605||eo,so="undefined"!=typeof self&&"clients"in self&&!self.document;const{toString:io}={};function oo(e){return io.call(e).slice(8,-1)}function lo(e,t){var n;return"delete"===t.type?t.keys:(null===(n=t.keys)||void 0===n?void 0:n.slice())||t.values.map(e.extractKey)}function co(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 ao=/b|c|d|f|g|h|j|k|l|m|n|p|q|r|s|t|v|x|y|z/i;function uo(e){return e>="A"&&e<="Z"}let ho=0;function fo(e,t){const n=new Uint8Array(18),r=new Uint8Array(n.buffer,0,6),s=Date.now();ho>=s?++ho:ho=s,r[0]=ho/1099511627776,r[1]=ho/4294967296,r[2]=ho/16777216,r[3]=ho/65536,r[4]=ho/256,r[5]=ho;const i=new Uint8Array(n.buffer,6);crypto.getRandomValues(i);return e+jt(new Uint8Array(n.buffer))+(t||"")}function po(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=lo(s.schema.primaryKey,n);return s.getMany({keys:e,trans:n.trans,cache:"immutable"}).then(t=>{if(t.length<e.length)throw new Error("Unable to create new objects without an initial sync having been performed.");return s.mutate(n)})}return function(n,i){let o=null;const l=lo(s.schema.primaryKey,n);return l.forEach((c,a)=>{if(void 0===c){const r=n.values[a].realmId||e.cloud.currentUserId,c=r.substr(r.length-3);l[a]=fo(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){lo(s.schema.primaryKey,n).forEach((e,n)=>{if(!f(e)){const n=Array.isArray(e)?e.map(oo).join(","):oo(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 go=0;function yo(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 mo(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 vo=new n.BehaviorSubject(new Set);function bo(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 wo({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=>gt(e));i=r.transaction([...t,...e],s)}else i=r.transaction(t,s);if("readwrite"===s){i.txid=wt(16),i.opCount=0,i.currentUser=e.value,vo.value.add(i),vo.next(vo.value);const t=()=>{i.removeEventListener("complete",r),i.removeEventListener("error",t),i.removeEventListener("abort",t),vo.value.delete(i),vo.next(vo.value)},r=()=>{i.mutationsAdded&&!bo(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"+ ++go;return Object.assign(Object.assign({},e),{count:yo(e.count,t),get:yo(e.get,t),getMany:yo(e.getMany,t),openCursor:yo(e.openCursor,t),query:yo(e.query,t),mutate:mo(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 _o(e,t){return function(n,r){var s;const i=Object.assign(Object.assign({},Gi),n);Object.keys(Gi).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=Gi[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(Gi[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)(ao.test(e[t])||uo(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=co(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 ko(e,t,n){return"undefined"!=typeof navigator&&navigator.locks?navigator.locks.request(e.name+"|"+t,n):n()}const So=new n.BehaviorSubject(!0),xo=new n.BehaviorSubject(!0);So.pipe(r.switchMap(e=>e?n.of(!0):n.of(!1).pipe(r.delay(2e4))),r.distinctUntilChanged()).subscribe(xo);const Eo="undefined"!=typeof document?n.fromEvent(document,"visibilitychange"):n.of({}),Co=Eo.pipe(r.filter(()=>"hidden"===document.visibilityState)),Io=Eo.pipe(r.filter(()=>"visible"===document.visibilityState)),Oo="undefined"!=typeof window?n.merge(Io,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),Co,Oo).pipe(r.map(()=>"visible"===document.visibilityState),r.tap(e=>{So.value!==e&&So.next(e)}),r.switchMap(e=>e?n.of(0).pipe(r.delay(16e4),r.tap(()=>So.next(!1))):n.of(0))).subscribe(()=>{});class Do extends Error{constructor(){super(...arguments),this.name="TokenExpiredError"}}const Ao=new WeakMap,To=3e4;class jo extends gn{constructor(e){super(),this.doc=e,this.clientID=e.clientID,this.states=new Map,this.meta=new Map,this._checkInterval=setInterval(()=>{const e=wn();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&&To<=e-n.lastUpdated&&this.states.has(r)&&t.push(r)}),t.length>0&&Uo(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:wn()});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 Uo=(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:wn()})}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 Lo(e){let t=Po.get(e);return t||(t=new n.Subject,Po.set(e,t)),t}class Ro extends n.Observable{constructor(e,t,n,r,s,i,o,l){super(c=>new Mo(e,t,n,r,s,l,c,i,o))}}let $o=0;class Mo extends n.Subscription{constructor(e,t,n,r,s,i,o,l,c){super(()=>this.teardown()),this.id=++$o,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 Do);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?Yt.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=Fi.getDocCache(this.db.dx).find(t.table,t.k,t.prop);if(e){const n=(e=>Ao.get(e))(e);n&&((e,t,n)=>{const r=he(t),s=wn(),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=Fi.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?Wi([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=Di(this.db,t.table,t.prop);if(e){const t=r[e.name];t&&(yield e.update(an,{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(Yt.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&&!bo(this.db)&&this.subscriptions.add(function(e){const r=vt(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(an)).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 dn(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 No extends Error{constructor(e){super("expired"===e?"License expired":"deactivated"===e?"User deactivated":"Invalid license"),this.name="InvalidLicenseError",e&&(this.license=e)}}function Bo(e){return s(this,void 0,void 0,function*(){var e;yield(e=3e3,new Promise(t=>setTimeout(t,e))),yield n.firstValueFrom(Oo)})}function Fo(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 Wo=new WeakMap;function Vo(e,t,n,r){const i=Wo.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 Vo(e,t,n,r)})}}const o=function(){return s(this,void 0,void 0,function*(){try{yield en(e),yield ko(e,Hi,()=>Ki(e,t,n,r)),Wo.delete(e)}catch(t){throw Wo.delete(e),t}})}();return Wo.set(e,{promise:o,pull:"push"!==(null==r?void 0:r.purpose)}),o}function Ho(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(),Vo(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 zo,Jo,qo,Yo,Go,Qo,Xo,Zo,el,tl,nl,rl={},sl=[],il=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,ol=Array.isArray;function ll(e,t){for(var n in t)e[n]=t[n];return e}function cl(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function al(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?zo.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 dl(e,o,r,s,null)}function dl(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?++qo:s,__i:-1,__u:0};return null==s&&null!=Jo.vnode&&Jo.vnode(i),i}function ul(e){return e.children}function hl(e,t){this.props=e,this.context=t}function fl(e,t){if(null==t)return e.__?fl(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?fl(e):null}function pl(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 pl(e)}}function gl(e){(!e.__d&&(e.__d=!0)&&Yo.push(e)&&!yl.__r++||Go!=Jo.debounceRendering)&&((Go=Jo.debounceRendering)||Qo)(yl)}function yl(){for(var e,t,n,r,s,i,o,l=1;Yo.length;)Yo.length>l&&Yo.sort(Xo),e=Yo.shift(),l=Yo.length,e.__d&&(n=void 0,r=void 0,s=(r=(t=e).__v).__e,i=[],o=[],t.__P&&((n=ll({},r)).__v=r.__v+1,Jo.vnode&&Jo.vnode(n),Sl(t.__P,n,r,t.__n,t.__P.namespaceURI,32&r.__u?[s]:null,i,null==s?fl(r):s,!!(32&r.__u),o),n.__v=r.__v,n.__.__k[n.__i]=n,El(i,n,o),r.__e=r.__=null,n.__e!=s&&pl(n)));yl.__r=0}function ml(e,t,n,r,s,i,o,l,c,a,d){var u,h,f,p,g,y,m,v=r&&r.__k||sl,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]=dl(null,o,null,null,null):ol(o)?o=e.__k[i]=dl(ul,{children:o},null,null,null):null==o.constructor&&o.__b>0?o=e.__k[i]=dl(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=bl(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=fl(l)),Dl(l,l));return r}(n,t,v,c,b),u=0;u<b;u++)null!=(f=n.__k[u])&&(h=-1==f.__i?rl:v[f.__i]||rl,f.__i=u,y=Sl(e,f,h,s,i,o,l,c,a,d),p=f.__e,f.ref&&h.ref!=f.ref&&(h.ref&&Ol(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=vl(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 vl(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=vl(s[i],t,n,r));return t}e.__e!=t&&(r&&(t&&e.type&&!t.parentNode&&(t=fl(e)),n.insertBefore(e.__e,t||null)),t=e.__e);do{t=t&&t.nextSibling}while(null!=t&&8==t.nodeType);return t}function bl(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 wl(e,t,n){"-"==t[0]?e.setProperty(t,null==n?"":n):e[t]=null==n?"":"number"!=typeof n||il.test(t)?n:n+"px"}function _l(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||wl(e.style,t,"");if(n)for(t in n)r&&n[t]==r[t]||wl(e.style,t,n[t])}else if("o"==t[0]&&"n"==t[1])i=t!=(t=t.replace(Zo,"$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=el,e.addEventListener(t,i?nl:tl,i)):e.removeEventListener(t,i?nl:tl,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 kl(e){return function(t){if(this.l){var n=this.l[t.type+e];if(null==t.t)t.t=el++;else if(t.t<n.u)return;return n(Jo.event?Jo.event(t):t)}}}function Sl(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=Jo.__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 hl(m,w),u.constructor=I,u.render=Al),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=ll({},u.__s)),ll(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=Jo.__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=ll(ll({},r),u.getChildContext())),v&&!h&&null!=u.getSnapshotBeforeUpdate&&(g=u.getSnapshotBeforeUpdate(f,p)),E=d,null!=d&&d.type===ul&&null==d.key&&(E=Cl(d.props.children)),l=ml(e,ol(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--;)cl(i[C]);xl(t)}else t.__e=n.__e,t.__k=n.__k,e.then||xl(t);Jo.__e(e,t,n)}else null==i&&t.__v==n.__v?(t.__k=n.__k,t.__e=n.__e):l=t.__e=Il(n.__e,t,n,r,s,i,o,c,a);return(d=Jo.diffed)&&d(t),128&t.__u?void 0:l}function xl(e){e&&e.__c&&(e.__c.__e=!0),e&&e.__k&&e.__k.forEach(xl)}function El(e,t,n){for(var r=0;r<n.length;r++)Ol(n[r],n[++r],n[++r]);Jo.__c&&Jo.__c(t,e),e.some(function(t){try{e=t.__h,t.__h=[],e.some(function(e){e.call(t)})}catch(e){Jo.__e(e,t.__v)}})}function Cl(e){return"object"!=typeof e||null==e||e.__b&&e.__b>0?e:ol(e)?e.map(Cl):ll({},e)}function Il(e,t,n,r,s,i,o,l,c){var a,d,u,h,f,p,g,y=n.props||rl,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&&(Jo.__m&&Jo.__m(t,i),l=!1),i=null}if(null==v)y===m||l&&e.data==m||(e.data=m);else{if(i=i&&zo.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;_l(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||_l(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=""),ml("template"==t.type?e.content:e,ol(h)?h:[h],t,n,r,"foreignObject"==v?"http://www.w3.org/1999/xhtml":s,i,o,i?i[0]:n.__k&&fl(n,0),l,c),null!=i)for(a=i.length;a--;)cl(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])&&_l(e,a,p,y[a],s),a="checked",null!=g&&g!=e[a]&&_l(e,a,g,y[a],s))}return e}function Ol(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){Jo.__e(e,n)}}function Dl(e,t,n){var r,s;if(Jo.unmount&&Jo.unmount(e),(r=e.ref)&&(r.current&&r.current!=e.__e||Ol(r,null,t)),null!=(r=e.__c)){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(e){Jo.__e(e,t)}r.base=r.__P=null}if(r=e.__k)for(s=0;s<r.length;s++)r[s]&&Dl(r[s],t,n||"function"!=typeof e.type);n||cl(e.__e),e.__c=e.__=e.__e=void 0}function Al(e,t,n){return this.constructor(e,n)}function Tl(e,t,n){var r,s,i;t==document&&(t=document.documentElement),Jo.__&&Jo.__(e,t),r=!1?null:t.__k,s=[],i=[],Sl(t,e=t.__k=al(ul,null,[e]),r||rl,rl,t.namespaceURI,r?null:t.firstChild?zo.call(t.childNodes):null,s,r?r.__e:t.firstChild,false,i),El(s,e,i)}zo=sl.slice,Jo={__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}},qo=0,hl.prototype.setState=function(e,t){var n;n=null!=this.__s&&this.__s!=this.state?this.__s:this.__s=ll({},this.state),"function"==typeof e&&(e=e(ll({},n),this.props)),e&&ll(n,e),null!=e&&this.__v&&(t&&this._sb.push(t),gl(this))},hl.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),gl(this))},hl.prototype.render=ul,Yo=[],Qo="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,Xo=function(e,t){return e.__v.__b-t.__v.__b},yl.__r=0,Zo=/(PointerCapture)$|Capture$/i,el=0,tl=kl(!1),nl=kl(!0);const jl={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:"#ffffff",border:"1px solid #dadce0",color:"#181717"},ProviderMicrosoft:{backgroundColor:"#ffffff",border:"1px solid #dadce0",color:"#5e5e5e"},ProviderApple:{backgroundColor:"#000000",border:"1px solid #000000",color:"#ffffff"},ProviderCustom:{backgroundColor:"#ffffff",border:"1px solid #dadce0",color:"#181717"},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 Ul({children:e,className:t}){return al("div",{className:`dexie-dialog ${t||""}`},al("div",{style:jl.Darken}),al("div",{style:jl.DialogOuter},al("div",{style:jl.DialogInner},e)))}var Pl,Ll,Rl,$l,Ml=0,Nl=[],Bl=Jo,Fl=Bl.__b,Wl=Bl.__r,Vl=Bl.diffed,Hl=Bl.__c,Kl=Bl.unmount,zl=Bl.__;function Jl(e,t){Bl.__h&&Bl.__h(Ll,e,Ml||t),Ml=0;var n=Ll.__H||(Ll.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({}),n.__[e]}function ql(e){return Ml=1,function(e,t){var n=Jl(Pl++,2);if(n.t=e,!n.__c&&(n.__=[nc(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.__}(nc,e)}function Yl(e){return Ml=5,function(e,t){var n=Jl(Pl++,7);return tc(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}(function(){return{current:e}},[])}function Gl(){for(var e;e=Nl.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(Zl),e.__H.__h.forEach(ec),e.__H.__h=[]}catch(t){e.__H.__h=[],Bl.__e(t,e.__v)}}Bl.__b=function(e){Ll=null,Fl&&Fl(e)},Bl.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),zl&&zl(e,t)},Bl.__r=function(e){Wl&&Wl(e),Pl=0;var t=(Ll=e.__c).__H;t&&(Rl===Ll?(t.__h=[],Ll.__h=[],t.__.forEach(function(e){e.__N&&(e.__=e.__N),e.u=e.__N=void 0})):(t.__h.forEach(Zl),t.__h.forEach(ec),t.__h=[],Pl=0)),Rl=Ll},Bl.diffed=function(e){Vl&&Vl(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(1!==Nl.push(t)&&$l===Bl.requestAnimationFrame||(($l=Bl.requestAnimationFrame)||Xl)(Gl)),t.__H.__.forEach(function(e){e.u&&(e.__H=e.u),e.u=void 0})),Rl=Ll=null},Bl.__c=function(e,t){t.some(function(e){try{e.__h.forEach(Zl),e.__h=e.__h.filter(function(e){return!e.__||ec(e)})}catch(n){t.some(function(e){e.__h&&(e.__h=[])}),t=[],Bl.__e(n,e.__v)}}),Hl&&Hl(e,t)},Bl.unmount=function(e){Kl&&Kl(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.forEach(function(e){try{Zl(e)}catch(e){t=e}}),n.__H=void 0,t&&Bl.__e(t,n.__v))};var Ql="function"==typeof requestAnimationFrame;function Xl(e){var t,n=function(){clearTimeout(r),Ql&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,35);Ql&&(t=requestAnimationFrame(n))}function Zl(e){var t=Ll,n=e.__c;"function"==typeof n&&(e.__c=void 0,n()),Ll=t}function ec(e){var t=Ll;e.__c=e.__(),Ll=t}function tc(e,t){return!e||e.length!==t.length||t.some(function(t,n){return t!==e[n]})}function nc(e,t){return"function"==typeof t?t(e):t}function rc({message:e,messageCode:t,messageParams:n}){return e.replace(/\{\w+\}/gi,e=>n[e.substring(1,e.length-1)])}function sc({option:e,onClick:t}){const{displayName:n,iconUrl:r,styleHint:s}=e,i=function(e){const t=Object.assign({},jl.ProviderButton);if(!e)return t;switch(e){case"google":return Object.assign(Object.assign({},t),jl.ProviderGoogle);case"github":return Object.assign(Object.assign({},t),jl.ProviderGitHub);case"microsoft":return Object.assign(Object.assign({},t),jl.ProviderMicrosoft);case"apple":return Object.assign(Object.assign({},t),jl.ProviderApple);case"otp":return Object.assign({},jl.OtpButton);case"custom-oauth2":return Object.assign(Object.assign({},t),jl.ProviderCustom);default:return t}}(s);return al("button",{type:"button",style:i,onClick:t,class:"dxc-option-btn"+(s?` dxc-option-${s}`:""),"aria-label":n},r&&al("img",{src:r,alt:"",style:jl.ProviderButtonIcon,"aria-hidden":"true"}),al("span",{style:jl.ProviderButtonText},n))}function ic(){return al("div",{style:jl.Divider},al("div",{style:jl.DividerLine}),al("span",{style:jl.DividerText},"or"),al("div",{style:jl.DividerLine}))}function oc({title:e,alerts:t,fields:n,options:r,submitLabel:s,cancelLabel:i,onCancel:o,onSubmit:l}){const[c,a]=ql({}),d=Yl(null);!function(e,t){var n=Jl(Pl++,4);!Bl.__s&&tc(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 al(Ul,{className:"dxc-login-dlg"},al(ul,null,al("h3",{style:jl.WindowHeader},e),t.map((e,t)=>al("p",{key:t,style:jl.Alert[e.type]},rc(e))),f&&al("div",{class:"dxc-options"},g?Array.from(p.entries()).map(([e,t],n)=>al(ul,{key:e},n>0&&al(ic,null),t.map(e=>al(sc,{key:`${e.name}-${e.value}`,option:e,onClick:()=>y(e)})))):r.map(e=>al(sc,{key:`${e.name}-${e.value}`,option:e,onClick:()=>y(e)}))),f&&h&&al(ic,null),h&&al("form",{onSubmit:e=>{e.preventDefault(),l(c)}},u.map(([e,{type:t,label:n,placeholder:r}],s)=>al("label",{style:jl.Label,key:s},n?`${n}: `:"",al("input",{ref:0===s?d:void 0,type:t,name:e,autoComplete:"on",style:jl.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)}}))))),al("div",{style:jl.ButtonsDiv},al(ul,null,s&&(h||!f&&!h)&&al("button",{type:"submit",style:jl.PrimaryButton,onClick:()=>l(c)},s),i&&al("button",{style:jl.Button,onClick:o},i))))}class lc extends hl{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?al(oc,Object.assign({},t)):null}}function cc(e){const t=new WeakMap;return n=>{let r=t.get(n);return r||(r=e(n),t.set(n,r)),r}}const ac=cc(e=>new n.BehaviorSubject(qe));function dc(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 uc=cc(e=>dc(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})),{})),hc=cc(e=>dc(ac(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 fc(...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 pc=cc(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}(dc(n.combineLatest([hc(e._novip),uc(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=vt(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:"*"}:fc(...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 gc{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 yc=cc(e=>{const i=ac(e._novip).pipe(r.switchMap(n=>t.liveQuery(()=>e.members.where({email:n.email||""}).toArray()))),o=pc(e._novip),l=hc(e._novip);return dc(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 mc(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 jo(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&&!bo(e)){const t=((e,t,n=e.states)=>{const r=t.length,s=N();V(s,r);for(let i=0;i<r;i++){const r=t[i],o=n.get(r)||null,l=e.meta.get(r).clock;V(s,r),V(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",()=>{Uo(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&&!bo(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(an),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=Xr(y.map(e=>e.u)),t=Gr(e);g.sv=t}e.messageProducer.next(g)}})}i.addCleanupHandler(h)})})(),d}(e,o,r),Ao.set(o,c),c)})}}function vc(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 bc(){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 wc={},_c=new WeakMap,kc=xc("tx"),Sc=xc("unload");function xc(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=Fi.getOrCreateDocument(t,s,i,n);try{const t=Fi.load(e);yield t.whenLoaded;for(const t of r)yield t(e,n)}catch(e){null==e||e.name}finally{Fi.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 Ec(){kc.run()}function Cc(){Sc.run()}const Ic={nameSuffix:!0};function Oc(e){const i=e.name,o=ac(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 _=Xi(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),Tl(al(lc,{db:e.vip}),n)):addEventListener("DOMContentLoaded",()=>{t||(document.body.appendChild(n),Tl(al(lc,{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 So.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"})),ac(e.dx._novip),xo]).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:rn?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&&!ro?_.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=mc(_);Fi.on.new.subscribe(e),_.dx.once("close",()=>{Fi.on.new.unsubscribe(e)})}let E=!1,C=yield _.getCurrentUser();if(d&&!_.cloud.isServiceWorkerDB){const e=d;d=null;try{yield Ne(_.cloud.userInteraction,"Authentication Error",{type:"error",messageCode:"GENERIC_ERROR",message:e.message,messageParams:{provider:e.provider||"unknown"}})}catch(e){}}if(a&&!_.cloud.isServiceWorkerDB){const{code:e,provider:t}=a;a=null;try{E=yield lt(_,{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 lt(_,I)):C.isLoggedIn||(E=yield lt(_))),!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 ko(e,Hi,()=>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=Ho(_,_.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"}),bo(_)||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)||so||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 ft(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])=>xo.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 ft(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 Ro(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 No?n.throwError(()=>s):n.from(Bo()).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(qe)});const p=new n.Subject;var g;e.cloud={version:"4.3.7",options:Object.assign({},Ic),schema:null,get currentUserId(){return o.value.userId||qe.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=Xi(e);yield n.cloud.sync(),yield lt(n,t)})},invites:yc(e),roles:uc(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)}`,Xi(e).reconfigure()),Ko(e.cloud.schema,e.cloud.options),"undefined"!=typeof window&&window.location)try{const e=vc();e&&(bc(),a={code:e.code,provider:e.provider})}catch(e){bc(),e instanceof et&&(d=e)}},logout(){return s(this,arguments,void 0,function*({force:t}={}){t?yield Qe(Xi(e),{deleteUnsyncedData:!0}):yield Ge(Xi(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 nt(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=Xi(e);if("ok"!==((null===(l=c.cloud.currentUser.value.license)||void 0===l?void 0:l.status)||"ok")&&(yield Ve(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 Fo(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 Fo(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=pc(e),l=t=>{const r=t[i||e.cloud.currentUserId];return r?new gc(r.permissions,n,void 0===i||i===e.cloud.currentUserId||s===e.cloud.currentUserId):new gc({},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=>_o(t,e)),e.Table.prototype.newId=function({colocateWith:t}={}){const n=t&&t.substr(t.length-3);return fo(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(wo({currentUserObservable:e.cloud.currentUser,db:Xi(e)})),e.use((g=Xi(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=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(po(Xi(e)))}Oc.version="4.3.7",t.Cloud=Oc,e.default=Oc,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}`);wc[o]={trigger:r,parentTable:e.name,prop:n};const l=e.db._novip;let c=_c.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=>wc[e])?(s.addEventListener("complete",Ec),s):s},table:r=>{const s=n.table(r),i=wc[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=Fi.getDocCache(e).find(l,n,c);(s&&(null===(r=Fi.for(s))||void 0===r?void 0:r.refCount)?Sc:kc).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)kc.enqueue(e,l,t.from,c,o)})}return s.mutate(n)}})}})}))(l),_c.set(l,c)),l.use(c),Fi.on("beforeunload",Cc)},e.dexieCloud=Oc,e.getTiedObjectId=function(e){return e.startsWith("rlm~")?e.substr(4):null},e.getTiedRealmId=function(e){return"rlm~"+e},e.resolveText=rc,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{l(r.next(e))}catch(e){i(e)}}function c(e){try{l(r.throw(e))}catch(e){i(e)}}function l(e){var t;e.done?s(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,c)}l((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 c(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),c("next"),c("throw"),c("return",function(e){return function(t){return Promise.resolve(t).then(e,d)}}),r[Symbol.asyncIterator]=function(){return this},r;function c(e,t){s[e]&&(r[e]=function(t){return new Promise(function(n,r){i.push([e,t,n,r])>1||l(e,t)})},t&&(r[e]=t(r[e])))}function l(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){l("next",e)}function d(e){l("throw",e)}function u(e,t){e(t),i.shift(),i.length&&l(i[0][0],i[0][1])}}function l(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=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),c=t.substr(i+1);if(""===c)void 0===n?Array.isArray(e)?isNaN(parseInt(o))||e.splice(parseInt(o),1):delete e[o]:e[o]=n;else{var l=e[o];l&&function(e,t){return a.call(e,t)}(e,o)||(l=e[o]={}),d(l,c,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,P=(e,t)=>(e=>e.replace(j,""))(e.replace(U,e=>`${t}${(e=>e.toLowerCase())(e)}`)),L="undefined"!=typeof TextEncoder?new TextEncoder:null,R=L?e=>L.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,V=(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)},K=new Uint8Array(3e4),z=K.length/3,J=L&&L.encodeInto?(e,t)=>{if(t.length<z){const n=L.encodeInto(t,K).written||0;V(e,n);for(let t=0;t<n;t++)F(e,K[t])}else Y(e,R(t))}:(e,t)=>{const n=unescape(encodeURIComponent(t)),r=n.length;V(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)=>{V(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),V(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);V(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&&V(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&&V(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&&V(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),ce=()=>{throw oe("Method unimplemented")},le=()=>{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 c=0;for(;c<o.byteLength;)switch(t){case 0:if(c+4>o.byteLength){for(const e of o.slice(c)){if(4===r)break;n[r++]=e,++c}if(r<4)break}else if(r>0&&r<4)for(const e of o.slice(c,c+4-r))n[r++]=e,++c;case 1:i=4===r?new DataView(n.buffer,0,4).getUint32(0,!1):e.getUint32(c,!1),r?r=0:c+=4;case 2:if(c>=o.byteLength){t=2;break}if(c+i>o.byteLength)s.push(o.slice(c)),i-=o.byteLength-c,t=2,c=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(c,c+i),t),s=[],yield e}else yield o.slice(c,c+i);c+=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},Pe="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 Le 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=`data:image/svg+xml;base64,${btoa('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="#666666" stroke-width="2"><rect x="2" y="4" width="20" height="16" rx="2"/><path d="M22 6L12 13 2 6"/></svg>')}`;function $e(e){return{name:"provider",value:e.name,displayName:`Continue with ${e.displayName}`,iconUrl:e.iconUrl,styleHint:e.type}}function Me(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 Ne(e,t,...n){return Me(e,{type:"message-alert",title:t,alerts:n,fields:{},submitLabel:"OK",cancelLabel:null})}function Be(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 Me(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 Fe(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 Me(e,{type:"otp",title:"Enter OTP",alerts:r,fields:{otp:{type:"otp",label:"OTP",placeholder:"Paste OTP here"}}});return s})}class We extends Error{constructor(e){super(`OAuth redirect initiated for provider: ${e}`),this.name="OAuthRedirectError",this.provider=e}}function Ve(e){return s(this,void 0,void 0,function*(){var t,n,r;const s=yield e.getCurrentUser(),{accessToken:i,accessTokenExpiration:o,refreshToken:c,refreshTokenExpiration:l,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(!c)throw new Error("Refresh token missing");if((null!==(r=null==l?void 0:l.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 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 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 c=function(e){const t=Pe(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:c,hints:i});if("error"===t.type)throw new Le(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 Me(r,{type:"message-alert",title:"Authentication Alert",fields:{},alerts:t.alerts})),e}catch(e){if(e instanceof We||"OAuthRedirectError"===(null==e?void 0:e.name))throw e;if(e instanceof Le)throw yield Ne(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 Ne(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=Pe(i),c={grant_type:"refresh_token",refresh_token:t.refreshToken,scopes:["ACCESS_DB"],signature:o,signing_algorithm:r,time_stamp:n},l=yield fetch(`${e}/token`,{body:JSON.stringify(c),method:"post",headers:{"Content-Type":"application/json"},mode:"cors"});if(200!==l.status)throw new Error(`RefreshToken: Status ${l.status} from ${e}/token`);const a=yield l.json();if("error"===a.type)throw new Le(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 ze=new WeakMap;class Je{constructor(e,t){ze.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*(){ze.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 Me(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){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}})}function rt(e){if("undefined"==typeof window)throw new Error("OAuth redirect requires a browser environment");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 st(e){const{userInteraction:n}=e.cloud;return function(r){return s(this,arguments,void 0,function*({public_key:r,hints:i}){var o,c;let l;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){const t=yield e.text().catch(()=>e.statusText);if(400===e.status||401===e.status)try{const e=JSON.parse(t);if("error"===e.type){if("INVALID_OTP"===e.messageCode)throw new et("expired_code",void 0,e.message);throw new Le(e)}}catch(e){if(e instanceof et||e instanceof Le)throw e}throw new et("provider_error",void 0,`Token exchange failed: ${e.status} ${t}`)}const n=yield e.json();if("error"===n.type)throw new Le(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 Le)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){let t;throw i.redirectPath&&(/^https?:\/\//i.test(i.redirectPath)?t=i.redirectPath:"undefined"!=typeof window&&window.location?t=new URL(i.redirectPath,window.location.href).toString():"undefined"!=typeof location&&location.href&&(t=new URL(i.redirectPath,location.href).toString())),it(e,i.provider,t),new We(i.provider)}if("demo"===(null==i?void 0:i.grant_type)){l={demo_user:yield Be(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)l={grant_type:"otp",otp_id:i.otpId,otp:i.otp,scopes:["ACCESS_DB"],public_key:r};else if("otp"===(null==i?void 0:i.grant_type)||(null==i?void 0:i.email)){const e=(null==i?void 0:i.email)||(yield Be(n,"Enter email address"));l=/@demo.local$/.test(e)?{demo_user:e,grant_type:"demo",scopes:["ACCESS_DB"],public_key:r}:{email:e,grant_type:"otp",scopes:["ACCESS_DB"]}}else{const o=!1!==(null===(c=e.cloud.options)||void 0===c?void 0:c.socialAuth),d=yield nt(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=[...n.map($e)];return r&&o.push({name:"otp",value:"email",displayName:"Continue with email",iconUrl:Re,styleHint:"otp"}),new Promise((n,r)=>{const c={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(c)})})}(n,d.providers,d.otpEnabled,"Sign in");if("provider"===r.type)throw it(e,r.provider),new We(r.provider)}const u=yield Be(n,"Enter email address",null==i?void 0:i.email);l=/@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(l),method:"post",headers:{"Content-Type":"application/json"},mode:"cors"});if(200!==d.status){const e=yield d.text();throw yield Ne(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"===l.grant_type&&"email"in l){if("otp-sent"!==u.type)throw new Error(`Unexpected response from ${a}/token`);const e=yield Fe(n,l.email),t=Object.assign(Object.assign({},l),{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 Fe(n,l.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 it(e,t,n){var r,s;const i=null===(r=e.cloud.options)||void 0===r?void 0:r.databaseUrl;if(!i)throw new Error("No database URL given.");rt({databaseUrl:i,provider:t,redirectUri:n||(null===(s=e.cloud.options)||void 0===s?void 0:s.oauthRedirectUri)||("undefined"!=typeof location?location.href:void 0)})}function ot(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 Ve(e),!1}const o=new Je(e,{claims:{},lastLogin:new Date(0)});try{yield He(e.cloud.options.databaseUrl,o,e.cloud.options.fetchTokens||st(e),e.cloud.userInteraction,t)}catch(e){if("OAuthRedirectError"===e.name)return!1;throw e}return 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&&(ot("debug","Login context property names:",Object.keys(t)),ot("debug","Login context property names:",Object.keys(t)),ot("debug","Login context:",t),ot("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={},at="undefined"!=typeof self&&self.document&&"undefined"!=typeof navigator&&navigator.serviceWorker;at&&at.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 dt{constructor(e){this.name=e}subscribe(e){if(!at)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 at.addEventListener("message",t),()=>at.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 ut=globalThis["lbc-events"]||(globalThis["lbc-events"]=new Map);class ht extends n.Observable{constructor(e){const t="undefined"==typeof BroadcastChannel?new dt(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){ut.has(e)?ut.get(e).push(t):ut.set(e,[t])}(`lbc-${e}`,r);try{t instanceof dt?i=t.subscribe(e=>n.next(e)):t.addEventListener("message",s)}catch(e){}return()=>{!function(e,t){const n=ut.get(e);if(n){const e=n.indexOf(t);-1!==e&&n.splice(e,1)}}(`lbc-${e}`,r),t instanceof dt?i():t.removeEventListener("message",s)}}),this.name=e,this.bc=t}next(e){this.bc.postMessage(e);!function(e){const t=ut.get(e.type);t&&t.forEach(t=>{try{t(e)}catch(e){}})}(new CustomEvent(`lbc-${this.name}`,{detail:e}))}}function ft(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 Pe(s)})}function pt(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 gt(e){return`$${e}_mutations`}function yt(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 mt=[].concat;function vt(e){return mt.apply([],e)}function bt(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=yt(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=vt(i).sort((e,t)=>e.mut.txid===t.mut.txid?e.mut.opNo-t.mut.opNo:e.mut.ts-t.mut.ts),c=[];let l=null,a=null;for(const{table:e,mut:t}of o)l&&l.table===e&&a===t.txid?l.muts.push(t):(l={table:e,muts:[t]},a=t.txid,c.push(l));return c})}function wt(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:_t}={};const kt={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 St(...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 kt;let i=n.get(r);if(void 0!==i)return i;const o=(s=e,_t.call(s).slice(8,-1)),c=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==c?void 0:c[1],i||(i=Array.isArray(e)?null:"function"==typeof e?t.function||null:kt),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 xt={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 Et={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 Ct={bigint:{replace:e=>({$t:"bigint",v:""+e}),revive:e=>BigInt(e.v)}};var It={Date:{replace:e=>({$t:"Date",v:isNaN(e.getTime())?"NaN":e.toISOString()}),revive:({v:e})=>new Date("NaN"===e?NaN:Date.parse(e))}},Ot={Set:{replace:e=>({$t:"Set",v:Array.from(e.entries())}),revive:({v:e})=>new Set(e)}},Dt={Map:{replace:e=>({$t:"Map",v:Array.from(e.entries())}),revive:({v:e})=>new Map(e)}};const At="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof global?global:void 0;var Tt=["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=At[t];return s&&new s(r.ArrayBuffer.revive({v:e},n,r))}}}),{});function jt(e){return function(e){for(var t="",n=0,r=e.length;n<r;n++)t+=Lt[e[n]];return t}(Pe(e))}function Ut(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:"+","|":"/"},Lt={};for(const e of Object.keys(Pt))Lt[Pt[e]]=e;var Rt={ArrayBuffer:{replace:e=>({$t:"ArrayBuffer",v:jt(e)}),revive:({v:e})=>{const t=Ut(e);return t.buffer.byteLength===t.byteLength?t.buffer:t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}}};class $t{constructor(e,t){this.buf=e,this.type=t}}function Mt(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 Nt(e){const t=new Uint8Array(e.length);for(let n=0;n<e.length;++n)t[n]=e.charCodeAt(n);return t.buffer}var Bt={Blob:{test:(e,t)=>"Blob"===t||e instanceof $t,replace:e=>({$t:"Blob",v:Pe(e instanceof $t?e.buf:Nt(Mt(e))),type:e.type}),revive:({type:e,v:t})=>{const n=Ue(t);return void 0!==typeof Blob?new Blob([n]):new $t(n.buffer,e)}}};const Ft={...Et,...Ct,...It,...Ot,...Dt,...Tt,...Rt,...Bt};function Wt(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 Vt={undefined:{replace:()=>({$t:"undefined"}),revive:()=>{}}},Ht={File:{test:(e,t)=>"File"===t,replace:e=>({$t:"File",v:Pe(Nt(Mt(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 zt{toString(){return this.v}constructor(e){this.v=e}}const Jt=Kt?{}:{bigint:{test:e=>e instanceof zt,replace:e=>Object.assign({$t:"bigint"},e),revive:({v:e})=>new zt(e)}},qt=Object.assign(Object.assign(Object.assign(Object.assign({},Vt),Jt),Ht),{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)}}}),Yt=St(Ft,qt),Gt=function(...e){const t=St(Ft,xt,...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 Wt(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 Wt(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)}}}(qt);function Qt(e,n,r){const s=[];for(let i of r){const{table:r,muts:o}=i,c=e.tables.find(e=>e.name===r);if(!c)throw new Error(`Internal error: table ${r} not found in DBCore schema`);const{primaryKey:l}=c;let a=i;o.forEach((e,r)=>{const s=!l.outbound&&("upsert"===e.type||"insert"===e.type);e.keys.forEach((e,o)=>{if(Array.isArray(e)){a===i&&(a=Xt(i,s));const t=a.muts[r],n=JSON.stringify(e);t.keys[o]=n}else if("#"===e[0]){a===i&&(a=Xt(i,s));const c=a.muts[r];if(!n.isLoggedIn)throw new Error("Internal error: Cannot sync private IDs before authenticated");const d=`${e}:${n.userId}`;c.keys[o]=d,s&&t.setByKeyPath(c.values[o],l.keyPath,d)}})}),s.push(a)}return s}function Xt(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 Zt=new WeakMap;function en(e){return s(this,void 0,void 0,function*(){var t,n;const r=(null!==(n=null===(t=Zt.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 tn(e,t,n,r,i,o,c,l,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 Ve(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:l,schema:c||{},lastPull:n?{serverRevision:n.serverRevision,yServerRevision:n.yServerRevision,realms:n.realms,inviteRealms:n.inviteRealms}:void 0,baseRevs:r,changes:Qt(i.dx.core.schema,a,e),y:t,dxcv:i.cloud.version};i.syncStateChangedEvent.next({phase:"pushing"});const f=Yt.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));Zt.set(e,new Date(Date.now()+1e3*t))}else Zt.delete(e)}}(i,p),!p.ok)throw new Xe(p);if("application/x-bison"===p.headers.get("content-type"))return Gt.fromBinary(yield p.blob());{const e=yield p.text();return Yt.parse(e)}})}function nn(e){if(null==e?void 0:e.cancelled)throw new t.AbortError("Operation was cancelled")}let rn=!1;function sn(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 on(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,c)=>{const l=s[c];if(l){for(const[s,i]of Object.entries(r[c]))if(s===e.schema.primKey.keyPath){if(0!==t.cmp(i,n))throw new Error("Cannot change primary key")}else t.setByKeyPath(l,s,i);i.push(n),o.push(l)}}),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 cn(e,r,n.changeSpecs);break;case"delete":yield e.bulkDelete(r)}}}})}"undefined"!=typeof self&&"undefined"!=typeof navigator&&(rn=navigator.onLine,self.addEventListener("online",()=>rn=!0),self.addEventListener("offline",()=>rn=!1));const an="dexie-cloud-syncer";function dn(e,t){return e.where("i").between(t,1/0,!0).toArray()}const un=()=>new Map,hn=e=>{const t=un();return e.forEach((e,n)=>{t.set(n,e)}),t},fn=(e,t,n)=>{let r=e.get(t);return void 0===r&&e.set(t,r=n()),r};class pn{constructor(){this._observers=un()}on(e,t){return fn(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)||un()).values()).forEach(e=>e(...t))}destroy(){this._observers=un()}}class gn{constructor(){this._observers=un()}on(e,t){fn(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)||un()).values()).forEach(e=>e(...t))}destroy(){this._observers=un()}}const yn=crypto.getRandomValues.bind(crypto),mn=()=>yn(new Uint32Array(1))[0],vn=[1e7]+-1e3+-4e3+-8e3+-1e11,bn=()=>vn.replace(/[018]/g,e=>(e^mn()&15>>e/4).toString(16)),wn=Date.now,_n=e=>new Promise(e);Promise.all.bind(Promise);const kn=e=>void 0===e?null:e;let Sn=new class{constructor(){this.map=new Map}setItem(e,t){this.map.set(e,t)}getItem(e){return this.map.get(e)}},xn=!0;try{"undefined"!=typeof localStorage&&localStorage&&(Sn=localStorage,xn=!1)}catch(Fc){}const En=Sn,Cn=Object.assign,In=Object.keys,On=e=>In(e).length,Dn=e=>In(e).length,An=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),Tn=Object.freeze,jn=e=>{for(const t in e){const n=e[t];"object"!=typeof n&&"function"!=typeof n||jn(e[t])}return Tn(e)},Un=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)}},Ln=(e,t)=>{if(e===t)return!0;if(null==e||null==t||e.constructor!==t.constructor)return!1;if(null!=e[Un])return e[Un](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(On(e)!==On(t))return!1;for(const n in e)if(!An(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},Rn="undefined"!=typeof process&&process.release&&/node|io\.js/.test(process.release.name)&&"[object process]"===Object.prototype.toString.call("undefined"!=typeof process?process:0);let $n;const Mn=e=>(()=>{if(void 0===$n)if(Rn){$n=un();const e=process.argv;let t=null;for(let n=0;n<e.length;n++){const r=e[n];"-"===r[0]?(null!==t&&$n.set(t,""),t=r):null!==t&&($n.set(t,r),t=null)}null!==t&&$n.set(t,"")}else"object"==typeof location?($n=un(),(location.search||"?").slice(1).split("&").forEach(e=>{if(0!==e.length){const[t,n]=e.split("=");$n.set(`--${P(t,"-")}`,n),$n.set(`-${P(t,"-")}`,n)}})):$n=un();return $n})().has(e),Nn=e=>kn(Rn?process.env[e.toUpperCase().replaceAll("-","_")]:En.getItem(e)),Bn=e=>Mn("--"+e)||null!==Nn(e);Bn("production");var Fn;Rn&&(Fn=process.env.FORCE_COLOR,["true","1","2"].includes(Fn))||!Mn("--no-colors")&&!Bn("no-color")&&(!Rn||process.stdout.isTTY)&&(!Rn||Mn("--color")||null!==Nn("COLORTERM")||(Nn("TERM")||"").includes("color"));class Wn{constructor(e,t){this.left=e,this.right=t}}const Vn=(e,t)=>new Wn(e,t);"undefined"!=typeof DOMParser&&new DOMParser;const Hn=Symbol,Kn=Hn(),zn=Hn(),Jn=Hn(),qn=Hn(),Yn=Hn(),Gn=Hn(),Qn=Hn(),Xn=Hn(),Zn=Hn(),er=(Vn("font-weight","bold"),Vn("font-weight","normal"),Vn("color","blue"),Vn("color","green"),Vn("color","grey"),Vn("color","red"),Vn("color","purple"),Vn("color","orange"),Vn("color","black"),I()),tr=e=>({[Symbol.iterator](){return this},next:e}),nr=(e,t)=>tr(()=>{const{done:n,value:r}=e.next();return{done:n,value:n?void 0:t(r)}});class rr{constructor(e,t){this.clock=e,this.len=t}}class sr{constructor(){this.clients=new Map}}const ir=(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])Fr(e,s,o.clock,o.len,n)}}),or=(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})},lr=(e,t,n,r)=>{fn(e.clients,t,()=>[]).push(new rr(n,r))},ar=(e,t)=>{V(e.restEncoder,t.clients.size),A(t.clients.entries()).sort((e,t)=>t[0]-e[0]).forEach(([t,n])=>{e.resetDsCurVal(),V(e.restEncoder,t);const r=n.length;V(e.restEncoder,r);for(let t=0;t<r;t++){const r=n[t];e.writeDsClock(r.clock),e.writeDsLen(r.len)}})},dr=(e,t,n)=>{const r=new sr,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)||[],c=Pr(n,s);for(let n=0;n<i;n++){const n=e.readDsClock(),i=n+e.readDsLen();if(n<c){c<i&&lr(r,s,c,i-c);let e=Rr(o,n),l=o[e];for(!l.deleted&&l.id.clock<n&&(o.splice(e+1,0,ki(t,l,n-l.id.clock)),e++);e<o.length&&(l=o[e++],l.id.clock<i);)l.deleted||(i<l.id.clock+l.length&&o.splice(e,0,ki(t,l,i-l.id.clock)),l.delete(t))}else lr(r,s,n,i-n)}}if(r.clients.size>0){const e=new vr;return V(e.restEncoder,0),ar(e,r),e.toUint8Array()}return null},ur=mn;class hr extends pn{constructor({guid:e=bn(),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=ur(),this.guid=e,this.collectionid=t,this.share=new Map,this.store=new jr,this._transaction=null,this._transactionCleanups=[],this.subdocs=new Set,this._item=null,this.shouldLoad=o,this.autoLoad=i,this.meta=s,this.isLoaded=!1,this.isSynced=!1,this.isDestroyed=!1,this.whenLoaded=_n(e=>{this.on("load",()=>{this.isLoaded=!0,e(this)})});const c=()=>_n(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=c()),this.isSynced=void 0===e||!0===e,this.isSynced&&!this.isLoaded&&this.emit("load",[this])}),this.whenSynced=c()}load(){const e=this._item;null===e||this.shouldLoad||Jr(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 Jr(this,e,t)}get(e,t=hs){const n=fn(this.share,e,()=>{const e=new t;return e._integrate(this,null),e}),r=n.constructor;if(t!==hs&&r!==t){if(r===hs){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,As)}getText(e=""){return this.get(e,qs)}getMap(e=""){return this.get(e,js)}getXmlElement(e=""){return this.get(e,Qs)}getXmlFragment(e=""){return this.get(e,Gs)}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 hr({guid:this.guid,...t.opts,shouldLoad:!1}),t.doc._item=e,Jr(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 fr{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 pr extends fr{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 Ir(this.clientDecoder.read(),this.leftClockDecoder.read())}readRightID(){return new Ir(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 gr{constructor(){this.restEncoder=N()}toUint8Array(){return B(this.restEncoder)}resetDsCurVal(){}writeDsClock(e){V(this.restEncoder,e)}writeDsLen(e){V(this.restEncoder,e)}}class yr extends gr{writeLeftID(e){V(this.restEncoder,e.client),V(this.restEncoder,e.clock)}writeRightID(e){V(this.restEncoder,e.client),V(this.restEncoder,e.clock)}writeClient(e){V(this.restEncoder,e)}writeInfo(e){W(this.restEncoder,e)}writeString(e){J(this.restEncoder,e)}writeParentInfo(e){V(this.restEncoder,e?1:0)}writeTypeRef(e){V(this.restEncoder,e)}writeLen(e){V(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 mr{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,V(this.restEncoder,t)}writeDsLen(e){0===e&&le(),V(this.restEncoder,e-1),this.dsCurrVal+=e}}class vr extends mr{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 V(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 br=(e,t,n)=>{const r=new Map;n.forEach((e,n)=>{Pr(t,n)>e&&r.set(n,e)}),Ur(t).forEach((e,t)=>{n.has(t)||r.set(t,0)}),V(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=Rr(t,r);V(e.restEncoder,t.length-s),e.writeClient(n),V(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)})},wr=(e,t,n,r=new pr(e))=>Jr(t,e=>{e.local=!1;let t=!1;const n=e.doc,s=n.store,i=((e,t)=>{const n=un(),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 ni(Dr(i,o),t),o+=t;break}case 10:{const t=ye(e.restDecoder);s[n]=new Ci(Dr(i,o),t),o+=t;break}default:{const c=!(192&r),l=new Si(Dr(i,o),null,(r&S)===S?e.readLeftID():null,null,(r&k)===k?e.readRightID():null,c?e.readParentInfo()?t.get(e.readString()):e.readLeftID():null,!c||32&~r?null:e.readString(),xi(e,r));s[n]=l,o+=l.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 c=new jr,l=new Map,a=(e,t)=>{const n=l.get(e);(null==n||n>t)&&l.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--,c.clients.set(t,r.refs.slice(r.i)),n.delete(t),r.i=0,r.refs=[]):c.clients.set(t,[e]),s=s.filter(e=>e!==t)}r.length=0};for(;;){if(d.constructor!==Ci){const s=fn(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(c.clients.size>0){const e=new vr;return br(e,c,new Map),V(e.restEncoder,0),{missing:l,update:e.toUint8Array()}}return null})(e,s,i),c=s.pendingStructs;if(c){for(const[e,n]of c.missing)if(n<Pr(s,e)){t=!0;break}if(o){for(const[e,t]of o.missing){const n=c.missing.get(e);(null==n||n>t)&&c.missing.set(e,t)}c.update=Xr([c.update,o.update])}}else s.pendingStructs=o;const l=dr(r,e,s);if(s.pendingDs){const t=new pr(he(s.pendingDs));ye(t.restDecoder);const n=dr(t,e,s);s.pendingDs=l&&n?Xr([l,n]):l||n}else s.pendingDs=l;if(t){const t=s.pendingStructs.update;s.pendingStructs=null,_r(e.doc,t)}},n,!1),_r=(e,t,n,r=pr)=>{const s=he(t);wr(s,e,n,new r(s))};class kr{constructor(){this.l=[]}}const Sr=()=>new kr,xr=(e,t)=>e.l.push(t),Er=(e,t)=>{const n=e.l;n.length;e.l=n.filter(e=>t!==e),e.l.length},Cr=(e,t,n)=>Pn(e.l,[t,n]);class Ir{constructor(e,t){this.client=e,this.clock=t}}const Or=(e,t)=>e===t||null!==e&&null!==t&&e.client===t.client&&e.clock===t.clock,Dr=(e,t)=>new Ir(e,t),Ar=(e,t)=>void 0===t?!e.deleted:t.sv.has(e.id.client)&&(t.sv.get(e.id.client)||0)>e.id.clock&&!or(t.ds,e.id),Tr=(e,t)=>{const n=fn(e.meta,Tr,I),r=e.doc.store;n.has(t)||(t.sv.forEach((t,n)=>{t<Pr(r,n)&&Nr(e,Dr(n,t))}),ir(e,t.ds,e=>{}),n.add(t))};class jr{constructor(){this.clients=new Map,this.pendingStructs=null,this.pendingDs=null}}const Ur=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},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 le()}n.push(t)},Rr=(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 le()},$r=(e,t)=>{const n=e.clients.get(t.client);return n[Rr(n,t.clock)]},Mr=(e,t,n)=>{const r=Rr(t,n),s=t[r];return s.id.clock<n&&s instanceof Si?(t.splice(r+1,0,ki(e,s,n-s.id.clock)),r+1):r},Nr=(e,t)=>{const n=e.doc.store.clients.get(t.client);return n[Mr(e,n,t.clock)]},Br=(e,t,n)=>{const r=t.clients.get(n.client),s=Rr(r,n.clock),i=r[s];return n.clock!==i.id.clock+i.length-1&&i.constructor!==ni&&r.splice(s+1,0,ki(e,i,n.clock-i.id.clock+1)),i},Fr=(e,t,n,r,s)=>{if(0===r)return;const i=n+r;let o,c=Mr(e,t,n);do{o=t[c++],i<o.id.clock+o.length&&Mr(e,t,i),s(o)}while(c<t.length&&t[c].id.clock<i)};class Wr{constructor(e,t,n){this.doc=e,this.deleteSet=new sr,this.beforeState=Ur(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 Vr=(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)=>{br(e,t.doc.store,t.beforeState)})(e,t),ar(e,t.deleteSet),!0),Hr=(e,t,n)=>{const r=t._item;(null===r||r.id.clock<(e.beforeState.get(r.id.client)||0)&&!r.deleted)&&fn(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 Si&&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},zr=(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=Ur(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),Cr(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=Rr(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 Si&&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+Rr(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(Rr(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=Rr(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)=>{er.forEach(t=>t.print(e))})(Xn,Kn,"[yjs] ",zn,Gn,"Changed the client-id because another client seems to be using it."),r.clientID=ur()),r.emit("afterTransactionCleanup",[n,r]),r._observers.has("update")){const e=new yr;Vr(e,n)&&r.emit("update",[e.toUint8Array(),n.origin,r,n])}if(r._observers.has("updateV2")){const e=new vr;Vr(e,n)&&r.emit("updateV2",[e.toUint8Array(),n.origin,r,n])}const{subdocsAdded:c,subdocsLoaded:l,subdocsRemoved:a}=n;(c.size>0||a.size>0||l.size>0)&&(c.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:l,added:c,removed:a},r,n]),a.forEach(e=>e.destroy())),e.length<=t+1?(r._transactionCleanups=[],r.emit("afterAllTransactions",[r,e])):zr(e,t+1)}}},Jr=(e,t,n=null,r=!0)=>{const s=e._transactionCleanups;let i=!1,o=null;null===e._transaction&&(i=!0,e._transaction=new Wr(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&&zr(s,0)}}return o};class qr{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 Ci(Dr(n,r),t),r+=t}else if(31&t){const s=!(192&t),i=new Si(Dr(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(),xi(e,t));yield i,r+=i.length}else{const t=e.readLen();yield new ni(Dr(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===Ci);return this.curr}}class Yr{constructor(e){this.currClient=0,this.startClock=0,this.written=0,this.encoder=e,this.clientStructs=[]}}const Gr=(e,t=mr,n=pr)=>{const r=new t,s=new qr(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++,V(r.restEncoder,t),V(r.restEncoder,o)),t=i.id.client,o=0,n=0!==i.id.clock),i.constructor===Ci&&(n=!0),n||(o=i.id.clock+i.length);0!==o&&(e++,V(r.restEncoder,t),V(r.restEncoder,o));const c=N();return V(c,e),((e,t)=>{q(e,B(t))})(c,r.restEncoder),r.restEncoder=c,r.toUint8Array()}return V(r.restEncoder,0),r.toUint8Array()},Qr=(e,t)=>{if(e.constructor===ni){const{client:n,clock:r}=e.id;return new ni(Dr(n,r+t),e.length-t)}if(e.constructor===Ci){const{client:n,clock:r}=e.id;return new Ci(Dr(n,r+t),e.length-t)}{const n=e,{client:r,clock:s}=n.id;return new Si(Dr(r,s+t),null,Dr(r,s+t-1),null,n.rightOrigin,n.parent,n.parentSub,n.content.splice(t))}},Xr=(e,t=pr,n=vr)=>{if(1===e.length)return e[0];const r=e.map(e=>new t(he(e)));let s=r.map(e=>new qr(e,!0)),i=null;const o=new n,c=new Yr(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===Ci?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)es(c,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===Ci)i.struct.length=n.id.clock+n.length-i.struct.id.clock;else{es(c,i.struct,i.offset);const e=n.id.clock-i.struct.id.clock-i.struct.length;i={struct:new Ci(Dr(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===Ci?i.struct.length-=t:n=Qr(n,t)),i.struct.mergeWith(n)||(es(c,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!==Ci;n=e.next())es(c,i.struct,i.offset),i={struct:n,offset:0}}null!==i&&(es(c,i.struct,i.offset),i=null),ts(c);const l=r.map(e=>(e=>{const t=new sr,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=fn(t.clients,n,()=>[]);for(let t=0;t<r;t++)s.push(new rr(e.readDsClock(),e.readDsLen()))}}return t})(e)),a=(e=>{const t=new sr;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})(l);return ar(o,a),o.toUint8Array()},Zr=e=>{e.written>0&&(e.clientStructs.push({written:e.written,restEncoder:B(e.encoder.restEncoder)}),e.encoder.restEncoder=N(),e.written=0)},es=(e,t,n)=>{e.written>0&&e.currClient!==t.id.client&&Zr(e),0===e.written&&(e.currClient=t.id.client,e.encoder.writeClient(t.id.client),V(e.encoder.restEncoder,t.id.clock+n)),t.write(e.encoder,n),e.written++},ts=e=>{Zr(e);const t=e.encoder.restEncoder;V(t,e.clientStructs.length);for(let n=0;n<e.clientStructs.length;n++){const r=e.clientStructs[n];V(t,r.written),q(t,r.restEncoder)}},ns="You must not compute changes after the event-handler fired.";class rs{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=ss(this.currentTarget,this.target))}deletes(e){return or(this.transaction.deleteSet,e.id)}get keys(){if(null===this._keys){if(0===this.transaction.doc._transactionCleanups.length)throw oe(ns);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(ns);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 ss=(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},is=()=>{((...e)=>{e.unshift(Xn),er.forEach(t=>t.print(e))})("Invalid access: Add Yjs type to a document before reading data.")};let os=0;class cs{constructor(e,t){e.marker=!0,this.p=e,this.index=t,this.timestamp=os++}}const ls=(e,t,n)=>{e.p.marker=!1,e.p=t,t.marker=!0,e.index=n,e.timestamp=os++},as=(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=os++})(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 cs(t,n);return e.push(r),r}})(e._searchMarker,r,s)},ds=(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))}},us=(e,t,n)=>{const r=e,s=t.changedParentTypes;for(;fn(s,e,()=>[]).push(n),null!==e._item;)e=e._item.parent;Cr(r._eH,n,t)};class hs{constructor(){this._item=null,this._map=new Map,this._start=null,this.doc=null,this._length=0,this._eH=Sr(),this._dEH=Sr(),this._searchMarker=null}get parent(){return this._item?this._item.parent:null}_integrate(e,t){this.doc=e,this._item=t}_copy(){throw ce()}clone(){throw ce()}_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){xr(this._eH,e)}observeDeep(e){xr(this._dEH,e)}unobserve(e){Er(this._eH,e)}unobserveDeep(e){Er(this._dEH,e)}toJSON(){}}const fs=(e,t,n)=>{e.doc??is(),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},ps=e=>{e.doc??is();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},gs=(e,t)=>{let n=0,r=e._start;for(e.doc??is();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}},ys=(e,t)=>{const n=[];return gs(e,(r,s)=>{n.push(t(r,s,e))}),n},ms=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}}}},vs=(e,t)=>{e.doc??is();const n=as(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}},bs=(e,t,n,r)=>{let s=n;const i=e.doc,o=i.clientID,c=i.store,l=null===n?t._start:n.right;let a=[];const d=()=>{a.length>0&&(s=new Si(Dr(o,Pr(c,o)),s,s&&s.lastId,l,l&&l.id,t,null,new ui(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 Si(Dr(o,Pr(c,o)),s,s&&s.lastId,l,l&&l.id,t,null,new ri(new Uint8Array(n))),s.integrate(e,0);break;case hr:s=new Si(Dr(o,Pr(c,o)),s,s&&s.lastId,l,l&&l.id,t,null,new oi(n)),s.integrate(e,0);break;default:if(!(n instanceof hs))throw new Error("Unexpected content type in insert operation");s=new Si(Dr(o,Pr(c,o)),s,s&&s.lastId,l,l&&l.id,t,null,new _i(n)),s.integrate(e,0)}}}),d()},ws=()=>oe("Length exceeded!"),_s=(e,t,n,r)=>{if(n>t._length)throw ws();if(0===n)return t._searchMarker&&ds(t._searchMarker,n,r.length),bs(e,t,null,r);const s=n,i=as(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&&Nr(e,Dr(o.id.client,o.id.clock+n));break}n-=o.length}return t._searchMarker&&ds(t._searchMarker,s,r.length),bs(e,t,o,r)},ks=(e,t,n,r)=>{if(0===r)return;const s=n,i=r,o=as(t,n);let c=t._start;for(null!==o&&(c=o.p,n-=o.index);null!==c&&n>0;c=c.right)!c.deleted&&c.countable&&(n<c.length&&Nr(e,Dr(c.id.client,c.id.clock+n)),n-=c.length);for(;r>0&&null!==c;)c.deleted||(r<c.length&&Nr(e,Dr(c.id.client,c.id.clock+r)),c.delete(e),r-=c.length),c=c.right;if(r>0)throw ws();t._searchMarker&&ds(t._searchMarker,s,-i+r)},Ss=(e,t,n)=>{const r=t._map.get(n);void 0!==r&&r.delete(e)},xs=(e,t,n,r)=>{const s=t._map.get(n)||null,i=e.doc,o=i.clientID;let c;if(null==r)c=new ui([r]);else switch(r.constructor){case Number:case Object:case Boolean:case Array:case String:case Date:case BigInt:c=new ui([r]);break;case Uint8Array:c=new ri(r);break;case hr:c=new oi(r);break;default:if(!(r instanceof hs))throw new Error("Unexpected content type");c=new _i(r)}new Si(Dr(o,Pr(i.store,o)),s,s&&s.lastId,null,null,t,n,c).integrate(e,0)},Es=(e,t)=>{e.doc??is();const n=e._map.get(t);return void 0===n||n.deleted?void 0:n.content.getContent()[n.length-1]},Cs=e=>{const t={};return e.doc??is(),e._map.forEach((e,n)=>{e.deleted||(t[n]=e.content.getContent()[e.length-1])}),t},Is=(e,t)=>{e.doc??is();const n=e._map.get(t);return void 0!==n&&!n.deleted},Os=e=>{return e.doc??is(),t=e._map.entries(),n=e=>!e[1].deleted,tr(()=>{let e;do{e=t.next()}while(!e.done&&!n(e.value));return e});var t,n};class Ds extends rs{}class As extends hs{constructor(){super(),this._prelimContent=[],this._searchMarker=[]}static from(e){const t=new As;return t.push(e),t}_integrate(e,t){super._integrate(e,t),this.insert(0,this._prelimContent),this._prelimContent=null}_copy(){return new As}clone(){const e=new As;return e.insert(0,this.toArray().map(e=>e instanceof hs?e.clone():e)),e}get length(){return this.doc??is(),this._length}_callObserver(e,t){super._callObserver(e,t),us(this,e,new Ds(this,e))}insert(e,t){null!==this.doc?Jr(this.doc,n=>{_s(n,this,e,t)}):this._prelimContent.splice(e,0,...t)}push(e){null!==this.doc?Jr(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;bs(e,t,r,n)})(t,this,e)}):this._prelimContent.push(...e)}unshift(e){this.insert(0,e)}delete(e,t=1){null!==this.doc?Jr(this.doc,n=>{ks(n,this,e,t)}):this._prelimContent.splice(e,t)}get(e){return vs(this,e)}toArray(){return ps(this)}slice(e=0,t=this.length){return fs(this,e,t)}toJSON(){return this.map(e=>e instanceof hs?e.toJSON():e)}map(e){return ys(this,e)}forEach(e){gs(this,e)}[Symbol.iterator](){return ms(this)}_write(e){e.writeTypeRef(pi)}}class Ts extends rs{constructor(e,t,n){super(e,t),this.keysChanged=n}}class js extends hs{constructor(e){super(),this._prelimContent=null,this._prelimContent=void 0===e?new Map:new Map(e)}_integrate(e,t){super._integrate(e,t),this._prelimContent.forEach((e,t)=>{this.set(t,e)}),this._prelimContent=null}_copy(){return new js}clone(){const e=new js;return this.forEach((t,n)=>{e.set(n,t instanceof hs?t.clone():t)}),e}_callObserver(e,t){us(this,e,new Ts(this,e,t))}toJSON(){this.doc??is();const e={};return this._map.forEach((t,n)=>{if(!t.deleted){const r=t.content.getContent()[t.length-1];e[n]=r instanceof hs?r.toJSON():r}}),e}get size(){return[...Os(this)].length}keys(){return nr(Os(this),e=>e[0])}values(){return nr(Os(this),e=>e[1].content.getContent()[e[1].length-1])}entries(){return nr(Os(this),e=>[e[0],e[1].content.getContent()[e[1].length-1]])}forEach(e){this.doc??is(),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?Jr(this.doc,t=>{Ss(t,this,e)}):this._prelimContent.delete(e)}set(e,t){return null!==this.doc?Jr(this.doc,n=>{xs(n,this,e,t)}):this._prelimContent.set(e,t),t}get(e){return Es(this,e)}has(e){return Is(this,e)}clear(){null!==this.doc?Jr(this.doc,e=>{this.forEach(function(t,n,r){Ss(e,r,n)})}):this._prelimContent.clear()}_write(e){e.writeTypeRef(gi)}}const Us=(e,t)=>e===t||"object"==typeof e&&"object"==typeof t&&e&&t&&((e,t)=>e===t||Dn(e)===Dn(t)&&((e,t)=>{for(const n in e)if(!t(e[n],n))return!1;return!0})(e,(e,n)=>(void 0!==e||An(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&&le(),this.right.content.constructor===li)this.right.deleted||Ms(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||Ms(t.currentAttributes,t.right.content);else t.right.deleted||(n<t.right.length&&Nr(e,Dr(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},Rs=(e,t,n,r)=>{const s=new Map,i=r?as(t,n):null;if(i){const t=new Ps(i.p.left,i.p,i.index,s);return Ls(e,t,n-i.index)}{const r=new Ps(null,t._start,0,s);return Ls(e,r,n)}},$s=(e,t,n,r)=>{for(;null!==n.right&&(!0===n.right.deleted||n.right.content.constructor===li&&Us(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 c=n.left,l=n.right,a=new Si(Dr(i,Pr(s.store,i)),c,c&&c.lastId,l,l&&l.id,t,null,new li(o,r));a.integrate(e,0),n.right=a,n.forward()})},Ms=(e,t)=>{const{key:n,value:r}=t;null===r?e.delete(n):e.set(n,r)},Ns=(e,t)=>{for(;null!==e.right&&(e.right.deleted||e.right.content.constructor===li&&Us(t[e.right.content.key]??null,e.right.content.value));)e.forward()},Bs=(e,t,n,r)=>{const s=e.doc,i=s.clientID,o=new Map;for(const c in r){const l=r[c],a=n.currentAttributes.get(c)??null;if(!Us(a,l)){o.set(c,a);const{left:r,right:d}=n;n.right=new Si(Dr(i,Pr(s.store,i)),r,r&&r.lastId,d,d&&d.id,t,null,new li(c,l)),n.right.integrate(e,0),n.forward()}}return o},Fs=(e,t,n,r,s)=>{n.currentAttributes.forEach((e,t)=>{void 0===s[t]&&(s[t]=null)});const i=e.doc,o=i.clientID;Ns(n,s);const c=Bs(e,t,n,s),l=r.constructor===String?new hi(r):r instanceof hs?new _i(r):new ci(r);let{left:a,right:d,index:u}=n;t._searchMarker&&ds(t._searchMarker,n.index,l.getLength()),d=new Si(Dr(o,Pr(i.store,o)),a,a&&a.lastId,d,d&&d.id,t,null,l),d.integrate(e,0),n.right=d,n.index=u,n.forward(),$s(e,t,n,c)},Ws=(e,t,n,r,s)=>{const i=e.doc,o=i.clientID;Ns(n,s);const c=Bs(e,t,n,s);e:for(;null!==n.right&&(r>0||c.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(Us(o,i))c.delete(t);else{if(0===r)break e;c.set(t,i)}n.right.delete(e)}else n.currentAttributes.set(t,i);break}default:r<n.right.length&&Nr(e,Dr(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 Si(Dr(o,Pr(i.store,o)),n.left,n.left&&n.left.lastId,n.right,n.right&&n.right.id,t,null,new hi(s)),n.right.integrate(e,0),n.forward()}$s(e,t,n,c)},Vs=(e,t,n,r,s)=>{let i=t;const o=un();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 c=0,l=!1;for(;t!==i;){if(n===t&&(l=!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),c++,l||(s.get(i)??null)!==a||d===a||(null===d?s.delete(i):s.set(i,d))),l||t.deleted||Ms(s,n);break}}}t=t.right}return c},Hs=e=>{let t=0;return Jr(e.doc,n=>{let r=e._start,s=e._start,i=un();const o=hn(i);for(;s;){if(!1===s.deleted)if(s.content.constructor===li)Ms(o,s.content);else t+=Vs(n,r,s,i,o),i=hn(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&&Fr(e,n.store.clients.get(r),i,s,e=>{e.deleted||e.content.constructor!==li||e.constructor===ni||t.add(e.parent)})}Jr(n,n=>{ir(e,e.deleteSet,e=>{if(e instanceof ni||!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)Hs(e)})},zs=(e,t,n)=>{const r=n,s=hn(t.currentAttributes),i=t.right;for(;n>0&&null!==t.right;){if(!1===t.right.deleted)switch(t.right.content.constructor){case _i:case ci:case hi:n<t.right.length&&Nr(e,Dr(t.right.id.client,t.right.id.clock+n)),n-=t.right.length,t.right.delete(e)}t.forward()}i&&Vs(e,i,t.right,s,t.currentAttributes);const o=(t.left||t.right).parent;return o._searchMarker&&ds(o._searchMarker,t.index,-r+n),t};class Js extends rs{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=[];Jr(e,e=>{const n=new Map,r=new Map;let s=this.target._start,i=null;const o={};let c="",l=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 c||c.length>0)&&(e={insert:c},n.size>0&&(e.attributes={},n.forEach((t,n)=>{null!==t&&(e.attributes[n]=t)}))),c="";break;case"retain":l>0&&(e={retain:l},(e=>{for(const t in e)return!1;return!0})(o)||(e.attributes=Cn({},o))),l=0}e&&t.push(e),i=null}};for(;null!==s;){switch(s.content.constructor){case _i:case ci:this.adds(s)?this.deletes(s)||(d(),i="insert",c=s.content.getContent()[0],d()):this.deletes(s)?("delete"!==i&&(d(),i="delete"),a+=1):s.deleted||("retain"!==i&&(d(),i="retain"),l+=1);break;case hi:this.adds(s)?this.deletes(s)||("insert"!==i&&(d(),i="insert"),c+=s.content.str):this.deletes(s)?("delete"!==i&&(d(),i="delete"),a+=s.length):s.deleted||("retain"!==i&&(d(),i="retain"),l+=s.length);break;case li:{const{key:t,value:c}=s.content;if(this.adds(s)){if(!this.deletes(s)){const l=n.get(t)??null;Us(l,c)?null!==c&&s.delete(e):("retain"===i&&d(),Us(c,r.get(t)??null)?delete o[t]:o[t]=c)}}else if(this.deletes(s)){r.set(t,c);const e=n.get(t)??null;Us(e,c)||("retain"===i&&d(),o[t]=e)}else if(!s.deleted){r.set(t,c);const n=o[t];void 0!==n&&(Us(n,c)?null!==n&&s.delete(e):("retain"===i&&d(),null===c?delete o[t]:o[t]=c))}s.deleted||("insert"===i&&d(),Ms(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 qs extends hs{constructor(e){super(),this._pending=void 0!==e?[()=>this.insert(0,e)]:[],this._searchMarker=[],this._hasFormatting=!1}get length(){return this.doc??is(),this._length}_integrate(e,t){super._integrate(e,t);try{this._pending.forEach(e=>e())}catch(e){}this._pending=null}_copy(){return new qs}clone(){const e=new qs;return e.applyDelta(this.toDelta()),e}_callObserver(e,t){super._callObserver(e,t);const n=new Js(this,e,t);us(this,e,n),!e.local&&this._hasFormatting&&(e._needFormattingCleanup=!0)}toString(){this.doc??is();let e="",t=this._start;for(;null!==t;)!t.deleted&&t.countable&&t.content.constructor===hi&&(e+=t.content.str),t=t.right;return e}toJSON(){return this.toString()}applyDelta(e,{sanitize:t=!0}={}){null!==this.doc?Jr(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)&&Fs(n,this,r,o,i.attributes||{})}else void 0!==i.retain?Ws(n,this,r,i.retain,i.attributes||{}):void 0!==i.delete&&zs(n,r,i.delete)}}):this._pending.push(()=>this.applyDelta(e))}toDelta(e,t,n){this.doc??is();const r=[],s=new Map,i=this.doc;let o="",c=this._start;function l(){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!==c;){if(Ar(c,e)||void 0!==t&&Ar(c,t))switch(c.content.constructor){case hi:{const r=s.get("ychange");void 0===e||Ar(c,e)?void 0===t||Ar(c,t)?void 0!==r&&(l(),s.delete("ychange")):void 0!==r&&r.user===c.id.client&&"added"===r.type||(l(),s.set("ychange",n?n("added",c.id):{type:"added"})):void 0!==r&&r.user===c.id.client&&"removed"===r.type||(l(),s.set("ychange",n?n("removed",c.id):{type:"removed"})),o+=c.content.str;break}case _i:case ci:{l();const e={insert:c.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:Ar(c,e)&&(l(),Ms(s,c.content))}c=c.right}l()};return e||t?Jr(i,n=>{e&&Tr(n,e),t&&Tr(n,t),a()},"cleanup"):a(),r}insert(e,t,n){if(t.length<=0)return;const r=this.doc;null!==r?Jr(r,r=>{const s=Rs(r,this,e,!n);n||(n={},s.currentAttributes.forEach((e,t)=>{n[t]=e})),Fs(r,this,s,t,n)}):this._pending.push(()=>this.insert(e,t,n))}insertEmbed(e,t,n){const r=this.doc;null!==r?Jr(r,r=>{const s=Rs(r,this,e,!n);Fs(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?Jr(n,n=>{zs(n,Rs(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?Jr(r,r=>{const s=Rs(r,this,e,!1);null!==s.right&&Ws(r,this,s,t,n)}):this._pending.push(()=>this.format(e,t,n))}removeAttribute(e){null!==this.doc?Jr(this.doc,t=>{Ss(t,this,e)}):this._pending.push(()=>this.removeAttribute(e))}setAttribute(e,t){null!==this.doc?Jr(this.doc,n=>{xs(n,this,e,t)}):this._pending.push(()=>this.setAttribute(e,t))}getAttribute(e){return Es(this,e)}getAttributes(){return Cs(this)}_write(e){e.writeTypeRef(yi)}}class Ys{constructor(e,t=()=>!0){this._filter=t,this._root=e,this._currentNode=e._start,this._firstCall=!0,e.doc??is()}[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!==Qs&&t.constructor!==Gs||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 Gs extends hs{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 Gs}clone(){const e=new Gs;return e.insert(0,this.toArray().map(e=>e instanceof hs?e.clone():e)),e}get length(){return this.doc??is(),null===this._prelimContent?this._length:this._prelimContent.length}createTreeWalker(e){return new Ys(this,e)}querySelector(e){e=e.toUpperCase();const t=new Ys(this,t=>t.nodeName&&t.nodeName.toUpperCase()===e).next();return t.done?null:t.value}querySelectorAll(e){return e=e.toUpperCase(),A(new Ys(this,t=>t.nodeName&&t.nodeName.toUpperCase()===e))}_callObserver(e,t){us(this,e,new Xs(this,t,e))}toString(){return ys(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),gs(this,s=>{r.insertBefore(s.toDOM(e,t,n),null)}),r}insert(e,t){null!==this.doc?Jr(this.doc,n=>{_s(n,this,e,t)}):this._prelimContent.splice(e,0,...t)}insertAfter(e,t){if(null!==this.doc)Jr(this.doc,n=>{const r=e&&e instanceof hs?e._item:e;bs(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?Jr(this.doc,n=>{ks(n,this,e,t)}):this._prelimContent.splice(e,t)}toArray(){return ps(this)}push(e){this.insert(this.length,e)}unshift(e){this.insert(0,e)}get(e){return vs(this,e)}slice(e=0,t=this.length){return fs(this,e,t)}forEach(e){gs(this,e)}_write(e){e.writeTypeRef(vi)}}class Qs extends Gs{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 Qs(this.nodeName)}clone(){const e=new Qs(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 hs?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?Jr(this.doc,t=>{Ss(t,this,e)}):this._prelimAttrs.delete(e)}setAttribute(e,t){null!==this.doc?Jr(this.doc,n=>{xs(n,this,e,t)}):this._prelimAttrs.set(e,t)}getAttribute(e){return Es(this,e)}hasAttribute(e){return Is(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&&Ar(s,t)&&(n[r]=s.content.getContent()[s.length-1])}),n})(this,e):Cs(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 gs(this,s=>{r.appendChild(s.toDOM(e,t,n))}),void 0!==n&&n._createAssociation(r,this),r}_write(e){e.writeTypeRef(mi),e.writeKey(this.nodeName)}}class Xs extends rs{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 Zs extends js{constructor(e){super(),this.hookName=e}_copy(){return new Zs(this.hookName)}clone(){const e=new Zs(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(bi),e.writeKey(this.hookName)}}class ei extends qs{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 ei}clone(){const e=new ei;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(wi)}}class ti{constructor(e,t){this.id=e,this.length=t}get deleted(){throw ce()}mergeWith(e){return!1}write(e,t,n){throw ce()}integrate(e,t){throw ce()}}class ni extends ti{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 ri{constructor(e){this.content=e}getLength(){return 1}getContent(){return[this.content]}isCountable(){return!0}copy(){return new ri(this.content)}splice(e){throw ce()}mergeWith(e){return!1}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeBuf(this.content)}getRef(){return 3}}class si{constructor(e){this.len=e}getLength(){return this.len}getContent(){return[]}isCountable(){return!1}copy(){return new si(this.len)}splice(e){const t=new si(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 ii=(e,t)=>new hr({guid:e,...t,shouldLoad:t.shouldLoad||t.autoLoad||!1});class oi{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 oi(ii(this.doc.guid,this.opts))}splice(e){throw ce()}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 ce()}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 ce()}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 ai{constructor(e){this.arr=e}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new ai(this.arr)}splice(e){const t=new ai(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 di="development"===Nn("node_env");class ui{constructor(e){this.arr=e,di&&jn(e)}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new ui(this.arr)}splice(e){const t=new ui(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 hi{constructor(e){this.str=e}getLength(){return this.str.length}getContent(){return this.str.split("")}isCountable(){return!0}copy(){return new hi(this.str)}splice(e){const t=new hi(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 fi=[e=>new As,e=>new js,e=>new qs,e=>new Qs(e.readKey()),e=>new Gs,e=>new Zs(e.readKey()),e=>new ei],pi=0,gi=1,yi=2,mi=3,vi=4,bi=5,wi=6;class _i{constructor(e){this.type=e}getLength(){return 1}getContent(){return[this.type]}isCountable(){return!0}copy(){return new _i(this.type._copy())}splice(e){throw ce()}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 ki=(e,t,n)=>{const{client:r,clock:s}=t.id,i=new Si(Dr(r,s+n),t,Dr(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=Dr(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 Si extends ti{constructor(e,t,n,r,s,i,o,c){super(e,c.getLength()),this.origin=n,this.left=t,this.right=r,this.rightOrigin=s,this.parent=i,this.parentSub=o,this.redone=null,this.content=c,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===Ir&&this.id.client!==this.parent.client&&this.parent.clock>=Pr(t,this.parent.client))return this.parent.client;if(this.origin&&(this.left=Br(e,t,this.origin),this.origin=this.left.lastId),this.rightOrigin&&(this.right=Nr(e,this.rightOrigin),this.rightOrigin=this.right.id),this.left&&this.left.constructor===ni||this.right&&this.right.constructor===ni)this.parent=null;else if(this.parent){if(this.parent.constructor===Ir){const e=$r(t,this.parent);e.constructor===ni?this.parent=null:this.parent=e.content.type}}else this.left&&this.left.constructor===Si?(this.parent=this.left.parent,this.parentSub=this.left.parentSub):this.right&&this.right.constructor===Si&&(this.parent=this.right.parent,this.parentSub=this.right.parentSub);return null}integrate(e,t){if(t>0&&(this.id.clock+=t,this.left=Br(e,e.doc.store,Dr(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),Or(this.origin,t.origin)){if(t.id.client<this.id.client)n=t,r.clear();else if(Or(this.rightOrigin,t.rightOrigin))break}else{if(null===t.origin||!s.has($r(e.doc.store,t.origin)))break;r.has($r(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),Hr(e,this.parent,this.parentSub),(null!==this.parent._item&&this.parent._item.deleted||null!==this.parentSub&&null!==this.right)&&this.delete(e)}else new ni(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:Dr(this.id.client,this.id.clock+this.length-1)}mergeWith(e){if(this.constructor===e.constructor&&Or(e.origin,this.lastId)&&this.right===e&&Or(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),Hr(e,t,this.parentSub),this.content.delete(e)}}gc(e,t){if(!this.deleted)throw le();this.content.gc(e),t?((e,t,n)=>{const r=e.clients.get(t.id.client);r[Rr(r,t.id.clock)]=n})(e,this,new ni(this.id,this.length)):this.content=new si(this.length)}write(e,t){const n=t>0?Dr(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 le()})(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===Ir?(e.writeParentInfo(!1),e.writeLeftID(t)):le();null!==s&&e.writeString(s)}this.content.write(e,t)}}const xi=(e,t)=>Ei[31&t](e),Ei=[()=>{le()},e=>new si(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 ai(n)},e=>new ri(e.readBuf()),e=>new hi(e.readString()),e=>new ci(e.readJSON()),e=>new li(e.readKey(),e.readJSON()),e=>new _i(fi[e.readTypeRef()](e)),e=>{const t=e.readLen(),n=[];for(let r=0;r<t;r++)n.push(e.readAny());return new ui(n)},e=>new oi(ii(e.readString(),e.readAny())),()=>{le()}];class Ci extends ti{get deleted(){return!0}delete(){}mergeWith(e){return this.constructor===e.constructor&&(this.length+=e.length,!0)}integrate(e,t){le()}write(e,t){e.writeInfo(10),V(e.restEncoder,this.length-t)}getMissing(e,t){return null}}const Ii="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},Oi="__ $YJS$ __";function Di(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}Ii[Oi],Ii[Oi]=!0;const Ai=new FinalizationRegistry(({cache:e,key:t})=>{delete e[t]});function Ti(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&&Ai.unregister(o),this.cache[i]=new WeakRef(e),Ai.register(e,{cache:this.cache,key:i},e)},delete(e){Ai.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 ji=new WeakSet;function Ui(e){if(ji.has(e))throw new Error(`Y.Doc ${e.meta.parentId} has been destroyed`)}function Pi(e,t,n){return`${e}[${t}].${n}`}const{getByKeyPath:Li}=t.Dexie;let Ri=null;function $i(e){Ri=e}function Mi(){}const Ni=new WeakMap;function Bi(){return t.Dexie.Events(null,"load","sync","error")}class Fi{static getOrCreateDocument(e,t,n,r){var s,i;const o=Ti(e),c=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(!c)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 hr({meta:{db:e,updatesTable:s,parentProp:r,parentTable:n,parentId:i}}),t.add(o),o.on("destroy",()=>{ji.add(o),t.delete(o)}),o)}(e,o,t,n,c,r)}static load(e,t){var n;let r=Ni.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 Fi(e),r.graceTimeout=null!==(n=null==t?void 0:t.gracePeriod)&&void 0!==n?n:-1,Ni.set(e,r)),r}static release(e){if(!e||ji.has(e))return;const t=Ni.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(Fi.on("beforeunload").fire(this)).finally(()=>{var e;0===this.refCount&&(null===(e=this.doc)||void 0===e||e.destroy())})}static for(e){return Ni.get(e)}static get currentUpdateRow(){return Ri}get whenLoaded(){return this._whenLoaded||(this._whenLoaded=new Promise((e,n)=>{this.doc?this.doc.isLoaded?e():this._error?n(this._error):ji.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):ji.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=Bi(),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]=()=>Fi.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`);Ui(e),this.stopObserving=function(e,n,r,s,i,o){let c=0,l=!0;const a=t.liveQuery(()=>{Ui(n);const e=r.table(i);return Promise.all([(c>0?e.where("i").between(c,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&&(c=t[t.length-1].i),0!==r.length?(Ui(n),t.length>0&&Jr(n,()=>{t.forEach(e=>{try{$i(e),_r(n,e.u)}finally{$i(null)}})},e,!1),l&&(l=!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===c-1&&++c}).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),Fi.on("new").fire(this)}destroy(){var e;Ni.delete(this.doc),this.doc=null,this.destroyed=!0,this.refCount=0,null===(e=this.stopObserving)||void 0===e||e.call(this),this.on=Bi(),this.cleanupHandlers.forEach(e=>e())}addCleanupHandler(e){this.cleanupHandlers.push("function"==typeof e?e:()=>e.unsubscribe())}}function Wi(e,n){return s(this,void 0,void 0,function*(){var r;const i={};let o,c=!1;for(const l of e)try{switch(l.type){case"u-s":{const e=Di(n,l.table,l.prop);if(e){const t={k:l.k,u:l.u};l.r&&(t.r=l.r,o=l.r),i[e.name]=yield e.add(t)}break}case"u-ack":{const e=Di(n,l.table,l.prop);e&&(yield n.transaction("rw",e,t=>s(this,void 0,void 0,function*(){let n=yield t.table(e.name).get(an);yield t.table(e.name).put(Object.assign(Object.assign({},n||{i:an}),{unsentFrom:Math.max((null==n?void 0:n.unsentFrom)||1,l.i+1)}))})));break}case"u-reject":{const e=Di(n,l.table,l.prop);if(!e)break;const s=null===(r=yield e.get(l.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(l.i).filter(e=>0===t.cmp(e.k,s)&&!(1&~(e.f||0))).delete()));const r=Fi.getDocCache(n.dx).find(l.table,s,l.prop);r&&r.destroy()}break}case"in-sync":{const e=Fi.getDocCache(n.dx).find(l.table,l.k,l.prop);e&&!e.isSynced&&e.emit("sync",[!0,e]);break}case"y-complete-sync-done":o=l.yServerRev;break;case"outdated-server-rev":c=!0}}catch(e){}return{receivedUntils:i,resyncNeeded:c,yServerRevision:o}})}Fi.on=t.Dexie.Events(null,{new:[function(e,t){return e===Mi?t:function(){e.apply(this,arguments),t.apply(this,arguments)}}],beforeunload:[function(e,t){return e===Mi?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)}}]}),Fi.getDocCache=Ti,t.Dexie.DexieYProvider?Fi=t.Dexie.DexieYProvider||Fi:t.Dexie.DexieYProvider=Fi;function Vi(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 Ve(e),d={"Content-Type":"application/json",Accept:"application/octet-stream"};a&&(d.Authorization=`Bearer ${a.accessToken}`);const u=yield fetch(`${n}/y/download`,{body:Yt.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 c(this,arguments,function*(){var i,c,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=Di(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=l(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){c={error:e}}finally{try{m||i||!(a=v.return)||(yield o(a.call(v)))}finally{if(c)throw c.error}}yield o(g(!0))}catch(e){throw e instanceof t.DexieError||(yield o(g(!1))),e}})})})}const Hi="currentSyncWorker";function Ki(e,t,n,r){return zi(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):rn&&(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:rn?"error":"offline",error:new Error(""+(null==i?void 0:i.message)||i)}),Promise.reject(i))}))}function zi(e,t,n){return s(this,arguments,void 0,function*(e,t,n,{isInitialSync:r,cancelToken:i,justCheckIfNeeded:o,purpose:c}={isInitialSync:!1}){var l;if(!(null===(l=e.cloud.options)||void 0===l?void 0:l.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?pt(e):[],p=h.map(t=>e.table(gt(t.name))),g=yield e.getPersistedSyncState(),y=d.isLoggedIn,m=y?function(e,t){const n=(null==t?void 0:t.syncedTables)||[];return pt(e).filter(e=>!n.includes(e.name))}(e,g):[];nn(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)})),nn(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 bt(p,e);const c=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(an),c=(null==o?void 0:o.unsentFrom)||1,l=(null==o?void 0:o.receivedUntil)||0,a=Math.min(c,l+1),d=yield dn(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<c)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 c=1===i.length?i[0]:Xr(i);if(r)n.push({type:"u-c",table:s.name,prop:t.prop,k:e,u:c,i:o});else{const r=Gr(c);n.push({type:"sv",table:s.name,prop:t.prop,k:e,sv:r})}}}return{yMessages:n,lastUpdateIds:r}})}(e,h);if(nn(i),v){const e=[...(null==g?void 0:g.realms)||[],...(null==g?void 0:g.inviteRealms)||[]],l=yield function(e,t,n,r){return s(this,void 0,void 0,function*(){const i=`upload-${wt(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],c=(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)}),l=yield c.toArray();if(l.length>0){const n={type:"upsert",values:l,keys:l.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 nn(i),o=o.concat(l),[o,t,r,c]}return[o,t,r,c]})),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"===c&&!x)return!1;const E=on(b,null==w?void 0:w.latestRevisions),C=(null==w?void 0:w.clientIdentity)||u(16);nn(i);const I=yield tn(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 bt(p,e,{since:E});for(const t of p){const n=yt(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()])}on(r,E),yield sn(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:[],c=new Set(t.realms),l=new Set(t.realms.concat(t.inviteRealms));for(const e of i)c.has(e)||(s.add(e),l.has(e)||r.add(e));for(const e of o.concat(i))l.has(e)||r.add(e);if(r.size>0||s.size>0){const t=pt(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 c=Ji(I.changes,r);if(yield ln(c,e),I.yMessages){const{receivedUntils:t,resyncNeeded:n,yServerRevision:r}=yield Wi(I.yMessages,e);r&&(o.yServerRevision=r),yield function(e,t,n){return s(this,void 0,void 0,function*(){var r,i,o,c,l;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!==(l=null!==(c=null==t?void 0:t.receivedUntil)&&void 0!==c?c:(yield n.table(e).where("i").between(1,1/0).reverse().limit(1).primaryKeys())[0])&&void 0!==l?l:0;yield n.transaction("rw",e,()=>s(this,void 0,void 0,function*(){const t=yield n.table(e).get(an);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:an,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 en(e),yield zi(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 Vi(e,a,D)}catch(e){}return e.syncCompleteEvent.next(),!1})}function Ji(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 qi(e){const i=[],o=new n.BehaviorSubject(!0),c=new n.BehaviorSubject(null);let l=!1,a=new Array(10).fill(0);return c.subscribe(()=>s(this,void 0,void 0,function*(){if(!l&&i.length>0){l=!0,a.shift(),a.push(Date.now()),o.next(!1);try{yield function(){return s(this,void 0,void 0,function*(){for(var o,c,l,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===(c=null==i?void 0:i.inviteRealms)||void 0===c?void 0:c.includes(h.realm))||(yield e.cloud.sync({purpose:"pull",wait:!0}));break;case"realm-accepted":(null===(l=null==i?void 0:i.realms)||void 0===l?void 0:l.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(ft(s)))!==h.realmSetHash)return void Ae(e,"pull");let o=[];if(i.isLoggedIn){const t=pt(e).map(t=>e.table(gt(t.name)));o=yield bt(t,e)}if(h.changes.length>0){const t=Ji(h.changes,o);yield ln(t,e)}s.latestRevisions=on(o,s.latestRevisions),s.serverRevision=h.newRev,yield sn(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))),l=!1,o.next(!0)}}})),{enqueue:function(e){i.push(e),c.next(null)},readyToServe:o}}const Yi=new WeakMap,Gi={members:"@id, [userId+realmId], [email+realmId], realmId",roles:"[realmId+name]",realms:"@realmId",$jobs:"",$syncState:"",$baseRevs:"[tableName+clientRev]",$logins:"claims.sub, lastLogin"};let Qi=0;function Xi(e){"vip"in e&&(e=e.vip);let t=Yi.get(e.cloud);if(!t){const r=new n.Subject;let s=new ht(`syncstatechanged-${e.name}`),i=new ht(`synccomplete-${e.name}`);r.id=++Qi;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 c={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=Zi(n.schema.primKey.keyPath));return e}),getOptions:()=>t.$syncState.get("options"),setInitiallySynced(e){o=e},reconfigure(){s=new ht(`syncstatechanged-${e.name}`),i=new ht(`synccomplete-${e.name}`)}};Object.assign(t,c),t.messageConsumer=qi(t),t.messageProducer=new n.Subject,Yi.set(e.cloud,t)}return t}function Zi(e){return"string"==typeof e?e:e?"["+[].join.call(e,"+")+"]":""}const eo="undefined"!=typeof InstallTrigger,to="undefined"!=typeof navigator&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\/|Edge\//.test(navigator.userAgent),no=to?[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]:NaN,ro=to&&no<=605||eo,so="undefined"!=typeof self&&"clients"in self&&!self.document;const{toString:io}={};function oo(e){return io.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 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 ao=/b|c|d|f|g|h|j|k|l|m|n|p|q|r|s|t|v|x|y|z/i;function uo(e){return e>="A"&&e<="Z"}let ho=0;function fo(e,t){const n=new Uint8Array(18),r=new Uint8Array(n.buffer,0,6),s=Date.now();ho>=s?++ho:ho=s,r[0]=ho/1099511627776,r[1]=ho/4294967296,r[2]=ho/16777216,r[3]=ho/65536,r[4]=ho/256,r[5]=ho;const i=new Uint8Array(n.buffer,6);crypto.getRandomValues(i);return e+jt(new Uint8Array(n.buffer))+(t||"")}function po(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 c=n.trans;if("versionchange"===c.mode&&(c.disableChangeTracking=!0,c.disableAccessControl=!0),c.disableChangeTracking)return s.mutate(n);if("add"===n.type||"put"===n.type){const c=null===(i=e.cloud.schema)||void 0===i?void 0:i[r];if(null==c?void 0:c.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 c=co(s.schema.primaryKey,n);return c.forEach((l,a)=>{if(void 0===l){const r=n.values[a].realmId||e.cloud.currentUserId,l=r.substr(r.length-3);c[a]=fo(i,l),s.schema.primaryKey.outbound||(o||(o=n.values.slice()),o[a]=t.deepClone(o[a]),t.setByKeyPath(o[a],s.schema.primaryKey.keyPath,c[a]))}else if("string"!=typeof l||!l.startsWith(i)&&!l.startsWith("#"+i))throw new t.ConstraintError(`The ID "${l}" 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:c,values:o||n.values}))}(n,c.idPrefix)}if(null==c?void 0:c.markedForSync){co(s.schema.primaryKey,n).forEach((e,n)=>{if(!f(e)){const n=Array.isArray(e)?e.map(oo).join(","):oo(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 go=0;function yo(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 mo(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 vo=new n.BehaviorSubject(new Set);function bo(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 wo({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=>gt(e));i=r.transaction([...t,...e],s)}else i=r.transaction(t,s);if("readwrite"===s){i.txid=wt(16),i.opCount=0,i.currentUser=e.value,vo.value.add(i),vo.next(vo.value);const t=()=>{i.removeEventListener("complete",r),i.removeEventListener("error",t),i.removeEventListener("abort",t),vo.value.delete(i),vo.next(vo.value)},r=()=>{i.mutationsAdded&&!bo(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,c=o.get(e);return c?function(e){const t="$lock"+ ++go;return Object.assign(Object.assign({},e),{count:yo(e.count,t),get:yo(e.get,t),getMany:yo(e.getMany,t),openCursor:yo(e.openCursor,t),query:yo(e.query,t),mutate:mo(e.mutate,t)})}(Object.assign(Object.assign({},s),{mutate:t=>{var r,o,c;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===(c=a.currentUser)||void 0===c?void 0:c.isLoggedIn)?"deleteRange"===t.type?s.query({query:{range:t.range,index:i.primaryKey},trans:t.trans,values:!1}).then(e=>l({type:"delete",keys:e.result,trans:t.trans,criteria:{index:null,range:t.range}})):l(t):s.mutate(t):s.mutate(t)}})):s;function l(r){var o,l;const a=r.trans,d=null===(l=null===(o=n.cloud.options)||void 0===o?void 0:o.unsyncedProperties)||void 0===l?void 0:l[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 l="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&&(l=l.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=l.length;n<s;++n)r.hasKey(l[n])&&(e.push(l[n]),t.push(y[n]));l=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:l,criteria:_,txid:u,userId:h}:"add"===r.type?{type:"insert",ts:w,opNo:p,keys:l,txid:u,userId:h,values:y}:b&&v?{type:"upsert",ts:w,opNo:p,keys:l,values:y,changeSpecs:v.changeSpecs.filter((e,t)=>!o[t]),txid:u,userId:h}:_&&m?{type:"modify",ts:w,opNo:p,keys:l,criteria:_,changeSpec:m,txid:u,userId:h}:m?{type:"update",ts:w,opNo:p,keys:l,changeSpecs:l.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:l,values:y,txid:u,userId:h};return"isAdditionalChunk"in r&&r.isAdditionalChunk&&(k.isAdditionalChunk=!0),l.length>0||_?c.mutate({type:"add",trans:a,values:[k]}).then(()=>(a.mutationsAdded=!0,e)):e})}}})}}}function _o(e,t){return function(n,r){var s;const i=Object.assign(Object.assign({},Gi),n);Object.keys(Gi).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=Gi[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(Gi[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={}),c=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)(ao.test(e[t])||uo(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,c),c.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 l=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 l}}function ko(e,t,n){return"undefined"!=typeof navigator&&navigator.locks?navigator.locks.request(e.name+"|"+t,n):n()}const So=new n.BehaviorSubject(!0),xo=new n.BehaviorSubject(!0);So.pipe(r.switchMap(e=>e?n.of(!0):n.of(!1).pipe(r.delay(2e4))),r.distinctUntilChanged()).subscribe(xo);const Eo="undefined"!=typeof document?n.fromEvent(document,"visibilitychange"):n.of({}),Co=Eo.pipe(r.filter(()=>"hidden"===document.visibilityState)),Io=Eo.pipe(r.filter(()=>"visible"===document.visibilityState)),Oo="undefined"!=typeof window?n.merge(Io,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),Co,Oo).pipe(r.map(()=>"visible"===document.visibilityState),r.tap(e=>{So.value!==e&&So.next(e)}),r.switchMap(e=>e?n.of(0).pipe(r.delay(16e4),r.tap(()=>So.next(!1))):n.of(0))).subscribe(()=>{});class Do extends Error{constructor(){super(...arguments),this.name="TokenExpiredError"}}const Ao=new WeakMap,To=3e4;class jo extends gn{constructor(e){super(),this.doc=e,this.clientID=e.clientID,this.states=new Map,this.meta=new Map,this._checkInterval=setInterval(()=>{const e=wn();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&&To<=e-n.lastUpdated&&this.states.has(r)&&t.push(r)}),t.length>0&&Uo(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:wn()});const i=[],o=[],c=[],l=[];null===e?l.push(t):null==s?null!=e&&i.push(t):(o.push(t),Ln(s,e)||c.push(t)),(i.length>0||c.length>0||l.length>0)&&this.emit("change",[{added:i,updated:c,removed:l},"local"]),this.emit("update",[{added:i,updated:o,removed:l},"local"])}setLocalStateField(e,t){const n=this.getLocalState();null!==n&&this.setLocalState({...n,[e]:t})}getStates(){return this.states}}const Uo=(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:wn()})}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 Lo(e){let t=Po.get(e);return t||(t=new n.Subject,Po.set(e,t)),t}class Ro extends n.Observable{constructor(e,t,n,r,s,i,o,c){super(l=>new Mo(e,t,n,r,s,c,l,i,o))}}let $o=0;class Mo extends n.Subscription{constructor(e,t,n,r,s,i,o,c,l){super(()=>this.teardown()),this.id=++$o,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=c,this.webSocketStatus=l,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 Do);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?Yt.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=Fi.getDocCache(this.db.dx).find(t.table,t.k,t.prop);if(e){const n=(e=>Ao.get(e))(e);n&&((e,t,n)=>{const r=he(t),s=wn(),i=[],o=[],c=[],l=[],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?l.push(t):null!==a&&(Ln(a,u)||c.push(t),o.push(t)))}(i.length>0||c.length>0||l.length>0)&&e.emit("change",[{added:i,updated:c,removed:l},n]),(i.length>0||o.length>0||l.length>0)&&e.emit("update",[{added:i,updated:o,removed:l},n])})(n,t.u,"server")}}else if("pong"===t.type);else if("doc-open"===t.type){const e=Fi.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?Wi([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=Di(this.db,t.table,t.prop);if(e){const t=r[e.name];t&&(yield e.update(an,{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(Yt.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&&!bo(this.db)&&this.subscriptions.add(function(e){const r=vt(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 c=e.table(o);return n.from(c.get(an)).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 dn(c,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 No extends Error{constructor(e){super("expired"===e?"License expired":"deactivated"===e?"User deactivated":"Invalid license"),this.name="InvalidLicenseError",e&&(this.license=e)}}function Bo(e){return s(this,void 0,void 0,function*(){var e;yield(e=3e3,new Promise(t=>setTimeout(t,e))),yield n.firstValueFrom(Oo)})}function Fo(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 Wo=new WeakMap;function Vo(e,t,n,r){const i=Wo.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 Vo(e,t,n,r)})}}const o=function(){return s(this,void 0,void 0,function*(){try{yield en(e),yield ko(e,Hi,()=>Ki(e,t,n,r)),Wo.delete(e)}catch(t){throw Wo.delete(e),t}})}();return Wo.set(e,{promise:o,pull:"push"!==(null==r?void 0:r.purpose)}),o}function Ho(e,t,n){let r=null,s={cancelled:!1},i=0,o=0;function c(r=1){setTimeout(()=>{const h=l?"pull":"push";o=Date.now(),Vo(e,t,n,{cancelToken:s,retryImmediatelyOnFetchError:!0,purpose:h}).then(()=>{if(s.cancelled)u();else if(l||a)return l=!1,a=!1,c();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(()=>c(r+1),e)}else d=!1,i=0,o=0})},0)}let l=!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&&(l=!0),"push"===e&&(a=!0),d?i||o>0&&Date.now():(d=!0,c()))})(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 zo,Jo,qo,Yo,Go,Qo,Xo,Zo,ec,tc,nc,rc={},sc=[],ic=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,oc=Array.isArray;function cc(e,t){for(var n in t)e[n]=t[n];return e}function lc(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function ac(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?zo.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 dc(e,o,r,s,null)}function dc(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?++qo:s,__i:-1,__u:0};return null==s&&null!=Jo.vnode&&Jo.vnode(i),i}function uc(e){return e.children}function hc(e,t){this.props=e,this.context=t}function fc(e,t){if(null==t)return e.__?fc(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?fc(e):null}function pc(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 pc(e)}}function gc(e){(!e.__d&&(e.__d=!0)&&Yo.push(e)&&!yc.__r++||Go!=Jo.debounceRendering)&&((Go=Jo.debounceRendering)||Qo)(yc)}function yc(){for(var e,t,n,r,s,i,o,c=1;Yo.length;)Yo.length>c&&Yo.sort(Xo),e=Yo.shift(),c=Yo.length,e.__d&&(n=void 0,r=void 0,s=(r=(t=e).__v).__e,i=[],o=[],t.__P&&((n=cc({},r)).__v=r.__v+1,Jo.vnode&&Jo.vnode(n),Sc(t.__P,n,r,t.__n,t.__P.namespaceURI,32&r.__u?[s]:null,i,null==s?fc(r):s,!!(32&r.__u),o),n.__v=r.__v,n.__.__k[n.__i]=n,Ec(i,n,o),r.__e=r.__=null,n.__e!=s&&pc(n)));yc.__r=0}function mc(e,t,n,r,s,i,o,c,l,a,d){var u,h,f,p,g,y,m,v=r&&r.__k||sc,b=t.length;for(l=function(e,t,n,r,s){var i,o,c,l,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]=dc(null,o,null,null,null):oc(o)?o=e.__k[i]=dc(uc,{children:o},null,null,null):null==o.constructor&&o.__b>0?o=e.__k[i]=dc(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):e.__k[i]=o,l=i+h,o.__=e,o.__b=e.__b+1,-1!=(a=o.__i=bc(o,n,l,u))&&(u--,(c=n[a])&&(c.__u|=2)),null==c||null==c.__v?(-1==a&&(s>d?h--:s<d&&h++),"function"!=typeof o.type&&(o.__u|=4)):a!=l&&(a==l-1?h--:a==l+1?h++:(a>l?h--:h++,o.__u|=4))):e.__k[i]=null;if(u)for(i=0;i<d;i++)null!=(c=n[i])&&!(2&c.__u)&&(c.__e==r&&(r=fc(c)),Dc(c,c));return r}(n,t,v,l,b),u=0;u<b;u++)null!=(f=n.__k[u])&&(h=-1==f.__i?rc:v[f.__i]||rc,f.__i=u,y=Sc(e,f,h,s,i,o,c,l,a,d),p=f.__e,f.ref&&h.ref!=f.ref&&(h.ref&&Oc(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?l=vc(f,l,e,m):"function"==typeof f.type&&void 0!==y?l=y:p&&(l=p.nextSibling),f.__u&=-7);return n.__e=g,l}function vc(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=vc(s[i],t,n,r));return t}e.__e!=t&&(r&&(t&&e.type&&!t.parentNode&&(t=fc(e)),n.insertBefore(e.__e,t||null)),t=e.__e);do{t=t&&t.nextSibling}while(null!=t&&8==t.nodeType);return t}function bc(e,t,n,r){var s,i,o,c=e.key,l=e.type,a=t[n],d=null!=a&&!(2&a.__u);if(null===a&&null==c||d&&c==a.key&&l==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)&&c==a.key&&l==a.type)return o;return-1}function wc(e,t,n){"-"==t[0]?e.setProperty(t,null==n?"":n):e[t]=null==n?"":"number"!=typeof n||ic.test(t)?n:n+"px"}function _c(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||wc(e.style,t,"");if(n)for(t in n)r&&n[t]==r[t]||wc(e.style,t,n[t])}else if("o"==t[0]&&"n"==t[1])i=t!=(t=t.replace(Zo,"$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=ec,e.addEventListener(t,i?nc:tc,i)):e.removeEventListener(t,i?nc:tc,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 kc(e){return function(t){if(this.l){var n=this.l[t.type+e];if(null==t.t)t.t=ec++;else if(t.t<n.u)return;return n(Jo.event?Jo.event(t):t)}}}function Sc(e,t,n,r,s,i,o,c,l,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&&(l=!!(32&n.__u),i=[c=t.__e=n.__e]),(d=Jo.__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 hc(m,w),u.constructor=I,u.render=Ac),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=cc({},u.__s)),cc(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=Jo.__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=cc(cc({},r),u.getChildContext())),v&&!h&&null!=u.getSnapshotBeforeUpdate&&(g=u.getSnapshotBeforeUpdate(f,p)),E=d,null!=d&&d.type===uc&&null==d.key&&(E=Cc(d.props.children)),c=mc(e,oc(E)?E:[E],t,n,r,s,i,o,c,l,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,l||null!=i)if(e.then){for(t.__u|=l?160:128;c&&8==c.nodeType&&c.nextSibling;)c=c.nextSibling;i[i.indexOf(c)]=null,t.__e=c}else{for(C=i.length;C--;)lc(i[C]);xc(t)}else t.__e=n.__e,t.__k=n.__k,e.then||xc(t);Jo.__e(e,t,n)}else null==i&&t.__v==n.__v?(t.__k=n.__k,t.__e=n.__e):c=t.__e=Ic(n.__e,t,n,r,s,i,o,l,a);return(d=Jo.diffed)&&d(t),128&t.__u?void 0:c}function xc(e){e&&e.__c&&(e.__c.__e=!0),e&&e.__k&&e.__k.forEach(xc)}function Ec(e,t,n){for(var r=0;r<n.length;r++)Oc(n[r],n[++r],n[++r]);Jo.__c&&Jo.__c(t,e),e.some(function(t){try{e=t.__h,t.__h=[],e.some(function(e){e.call(t)})}catch(e){Jo.__e(e,t.__v)}})}function Cc(e){return"object"!=typeof e||null==e||e.__b&&e.__b>0?e:oc(e)?e.map(Cc):cc({},e)}function Ic(e,t,n,r,s,i,o,c,l){var a,d,u,h,f,p,g,y=n.props||rc,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),c&&(Jo.__m&&Jo.__m(t,i),c=!1),i=null}if(null==v)y===m||c&&e.data==m||(e.data=m);else{if(i=i&&zo.call(e.childNodes),!c&&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;_c(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:c&&"function"!=typeof f||y[a]===f||_c(e,a,f,y[a],s);if(d)c||u&&(d.__html==u.__html||d.__html==e.innerHTML)||(e.innerHTML=d.__html),t.__k=[];else if(u&&(e.innerHTML=""),mc("template"==t.type?e.content:e,oc(h)?h:[h],t,n,r,"foreignObject"==v?"http://www.w3.org/1999/xhtml":s,i,o,i?i[0]:n.__k&&fc(n,0),c,l),null!=i)for(a=i.length;a--;)lc(i[a]);c||(a="value","progress"==v&&null==p?e.removeAttribute("value"):null!=p&&(p!==e[a]||"progress"==v&&!p||"option"==v&&p!=y[a])&&_c(e,a,p,y[a],s),a="checked",null!=g&&g!=e[a]&&_c(e,a,g,y[a],s))}return e}function Oc(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){Jo.__e(e,n)}}function Dc(e,t,n){var r,s;if(Jo.unmount&&Jo.unmount(e),(r=e.ref)&&(r.current&&r.current!=e.__e||Oc(r,null,t)),null!=(r=e.__c)){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(e){Jo.__e(e,t)}r.base=r.__P=null}if(r=e.__k)for(s=0;s<r.length;s++)r[s]&&Dc(r[s],t,n||"function"!=typeof e.type);n||lc(e.__e),e.__c=e.__=e.__e=void 0}function Ac(e,t,n){return this.constructor(e,n)}function Tc(e,t,n){var r,s,i;t==document&&(t=document.documentElement),Jo.__&&Jo.__(e,t),r=!1?null:t.__k,s=[],i=[],Sc(t,e=t.__k=ac(uc,null,[e]),r||rc,rc,t.namespaceURI,r?null:t.firstChild?zo.call(t.childNodes):null,s,r?r.__e:t.firstChild,false,i),Ec(s,e,i)}zo=sc.slice,Jo={__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}},qo=0,hc.prototype.setState=function(e,t){var n;n=null!=this.__s&&this.__s!=this.state?this.__s:this.__s=cc({},this.state),"function"==typeof e&&(e=e(cc({},n),this.props)),e&&cc(n,e),null!=e&&this.__v&&(t&&this._sb.push(t),gc(this))},hc.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),gc(this))},hc.prototype.render=uc,Yo=[],Qo="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,Xo=function(e,t){return e.__v.__b-t.__v.__b},yc.__r=0,Zo=/(PointerCapture)$|Capture$/i,ec=0,tc=kc(!1),nc=kc(!0);const jc={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:"#ffffff",border:"1px solid #dadce0",color:"#181717"},ProviderMicrosoft:{backgroundColor:"#ffffff",border:"1px solid #dadce0",color:"#5e5e5e"},ProviderApple:{backgroundColor:"#000000",border:"1px solid #000000",color:"#ffffff"},ProviderCustom:{backgroundColor:"#ffffff",border:"1px solid #dadce0",color:"#181717"},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 Uc({children:e,className:t}){return ac("div",{className:`dexie-dialog ${t||""}`},ac("div",{style:jc.Darken}),ac("div",{style:jc.DialogOuter},ac("div",{style:jc.DialogInner},e)))}var Pc,Lc,Rc,$c,Mc=0,Nc=[],Bc=Jo,Fc=Bc.__b,Wc=Bc.__r,Vc=Bc.diffed,Hc=Bc.__c,Kc=Bc.unmount,zc=Bc.__;function Jc(e,t){Bc.__h&&Bc.__h(Lc,e,Mc||t),Mc=0;var n=Lc.__H||(Lc.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({}),n.__[e]}function qc(e){return Mc=1,function(e,t){var n=Jc(Pc++,2);if(n.t=e,!n.__c&&(n.__=[nl(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=Lc,!Lc.__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};Lc.__f=!0;var s=Lc.shouldComponentUpdate,i=Lc.componentWillUpdate;Lc.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)},Lc.shouldComponentUpdate=r}return n.__N||n.__}(nl,e)}function Yc(e){return Mc=5,function(e,t){var n=Jc(Pc++,7);return tl(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}(function(){return{current:e}},[])}function Gc(){for(var e;e=Nc.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(Zc),e.__H.__h.forEach(el),e.__H.__h=[]}catch(t){e.__H.__h=[],Bc.__e(t,e.__v)}}Bc.__b=function(e){Lc=null,Fc&&Fc(e)},Bc.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),zc&&zc(e,t)},Bc.__r=function(e){Wc&&Wc(e),Pc=0;var t=(Lc=e.__c).__H;t&&(Rc===Lc?(t.__h=[],Lc.__h=[],t.__.forEach(function(e){e.__N&&(e.__=e.__N),e.u=e.__N=void 0})):(t.__h.forEach(Zc),t.__h.forEach(el),t.__h=[],Pc=0)),Rc=Lc},Bc.diffed=function(e){Vc&&Vc(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(1!==Nc.push(t)&&$c===Bc.requestAnimationFrame||(($c=Bc.requestAnimationFrame)||Xc)(Gc)),t.__H.__.forEach(function(e){e.u&&(e.__H=e.u),e.u=void 0})),Rc=Lc=null},Bc.__c=function(e,t){t.some(function(e){try{e.__h.forEach(Zc),e.__h=e.__h.filter(function(e){return!e.__||el(e)})}catch(n){t.some(function(e){e.__h&&(e.__h=[])}),t=[],Bc.__e(n,e.__v)}}),Hc&&Hc(e,t)},Bc.unmount=function(e){Kc&&Kc(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.forEach(function(e){try{Zc(e)}catch(e){t=e}}),n.__H=void 0,t&&Bc.__e(t,n.__v))};var Qc="function"==typeof requestAnimationFrame;function Xc(e){var t,n=function(){clearTimeout(r),Qc&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,35);Qc&&(t=requestAnimationFrame(n))}function Zc(e){var t=Lc,n=e.__c;"function"==typeof n&&(e.__c=void 0,n()),Lc=t}function el(e){var t=Lc;e.__c=e.__(),Lc=t}function tl(e,t){return!e||e.length!==t.length||t.some(function(t,n){return t!==e[n]})}function nl(e,t){return"function"==typeof t?t(e):t}function rl({message:e,messageCode:t,messageParams:n}){return e.replace(/\{\w+\}/gi,e=>n[e.substring(1,e.length-1)])}function sl({option:e,onClick:t}){const{displayName:n,iconUrl:r,styleHint:s}=e,i=function(e){const t=Object.assign({},jc.ProviderButton);if(!e)return t;switch(e){case"google":return Object.assign(Object.assign({},t),jc.ProviderGoogle);case"github":return Object.assign(Object.assign({},t),jc.ProviderGitHub);case"microsoft":return Object.assign(Object.assign({},t),jc.ProviderMicrosoft);case"apple":return Object.assign(Object.assign({},t),jc.ProviderApple);case"otp":return Object.assign({},jc.OtpButton);case"custom-oauth2":return Object.assign(Object.assign({},t),jc.ProviderCustom);default:return t}}(s);return ac("button",{type:"button",style:i,onClick:t,class:"dxc-option-btn"+(s?` dxc-option-${s}`:""),"aria-label":n},r&&ac("img",{src:r,alt:"",style:jc.ProviderButtonIcon,"aria-hidden":"true"}),ac("span",{style:jc.ProviderButtonText},n))}function il(){return ac("div",{style:jc.Divider},ac("div",{style:jc.DividerLine}),ac("span",{style:jc.DividerText},"or"),ac("div",{style:jc.DividerLine}))}function ol({title:e,alerts:t,fields:n,options:r,submitLabel:s,cancelLabel:i,onCancel:o,onSubmit:c}){const[l,a]=qc({}),d=Yc(null);!function(e,t){var n=Jc(Pc++,4);!Bc.__s&&tl(n.__H,t)&&(n.__=e,n.u=t,Lc.__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=>{c({[e.name]:e.value})};return ac(Uc,{className:"dxc-login-dlg"},ac(uc,null,ac("h3",{style:jc.WindowHeader},e),t.map((e,t)=>ac("p",{key:t,style:jc.Alert[e.type]},rl(e))),f&&ac("div",{class:"dxc-options"},g?Array.from(p.entries()).map(([e,t],n)=>ac(uc,{key:e},n>0&&ac(il,null),t.map(e=>ac(sl,{key:`${e.name}-${e.value}`,option:e,onClick:()=>y(e)})))):r.map(e=>ac(sl,{key:`${e.name}-${e.value}`,option:e,onClick:()=>y(e)}))),f&&h&&ac(il,null),h&&ac("form",{onSubmit:e=>{e.preventDefault(),c(l)}},u.map(([e,{type:t,label:n,placeholder:r}],s)=>ac("label",{style:jc.Label,key:s},n?`${n}: `:"",ac("input",{ref:0===s?d:void 0,type:t,name:e,autoComplete:"on",style:jc.Input,autoFocus:!0,placeholder:r,value:l[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({},l),{[e]:s});a(i),"otp"===t&&8===(null==s?void 0:s.trim().length)&&c(i)}}))))),ac("div",{style:jc.ButtonsDiv},ac(uc,null,s&&(h||!f&&!h)&&ac("button",{type:"submit",style:jc.PrimaryButton,onClick:()=>c(l)},s),i&&ac("button",{style:jc.Button,onClick:o},i))))}class cl extends hc{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?ac(ol,Object.assign({},t)):null}}function ll(e){const t=new WeakMap;return n=>{let r=t.get(n);return r||(r=e(n),t.set(n,r)),r}}const al="undefined"!=typeof location&&!!new URL(location.href).searchParams.get("dxc-auth"),dl=ll(e=>new n.BehaviorSubject(al?Object.assign(Object.assign({},qe),{oauthInProgress:!0}):qe));function ul(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 hl=ll(e=>ul(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})),{})),fl=ll(e=>ul(dl(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 pl(...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 gl=ll(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}(ul(n.combineLatest([fl(e._novip),hl(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=vt(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:"*"}:pl(...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 yl{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 ml=ll(e=>{const i=dl(e._novip).pipe(r.switchMap(n=>t.liveQuery(()=>e.members.where({email:n.email||""}).toArray()))),o=gl(e._novip),c=fl(e._novip);return ul(n.combineLatest([i,c,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,{}),c=n.selfMembers.reduce(i,o);return Object.values(c).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 vl(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:c}=o.meta||{};if(!(null===(i=e.cloud.schema)||void 0===i?void 0:i[c].markedForSync))return;let l;Object.defineProperty(r,"awareness",{get:()=>l||(l=function(e,r,i){const{parentTable:o,parentId:c,parentProp:l,updatesTable:a}=r.meta,d=new jo(r),u=Lo(r);return d.on("update",({added:t,updated:n,removed:s},c)=>{const a=t.concat(n).concat(s),u=e.cloud.currentUser.value;if("server"!==c&&u.isLoggedIn&&!bo(e)){const t=((e,t,n=e.states)=>{const r=t.length,s=N();V(s,r);for(let i=0;i<r;i++){const r=t[i],o=n.get(r)||null,c=e.meta.get(r).clock;V(s,r),V(s,c),J(s,JSON.stringify(o))}return B(s)})(d,a);e.messageProducer.next({type:"aware",table:o,prop:l,k:r.meta.parentId,u:t}),i.destroyed&&e.messageProducer.next({type:"doc-close",table:o,prop:l,k:r.meta.parentId})}}),d.on("destroy",()=>{Uo(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&&!bo(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(an),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:l,k:c,serverRev:p},y=yield u.where("i").between(f,1/0,!1).filter(e=>0===t.cmp(e.k,c)&&!(1&(e.f||0))).toArray();if(!i.destroyed&&d===n&&r){if(y.length>0){const e=Xr(y.map(e=>e.u)),t=Gr(e);g.sv=t}e.messageProducer.next(g)}})}i.addCleanupHandler(h)})})(),d}(e,o,r),Ao.set(o,l),l)})}}function bl(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:c}=r;if(c){if(c.toLowerCase().includes("access_denied")||c.toLowerCase().includes("access denied"))throw new et("access_denied",i,c);if(c.toLowerCase().includes("email")&&c.toLowerCase().includes("verif"))throw new et("email_not_verified",i,c);throw new et("provider_error",i,c)}return s&&i&&o?{code:s,provider:i,state:o}:null}function wl(){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 _l={},kl=new WeakMap,Sl=El("tx"),xl=El("unload");function El(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=Fi.getOrCreateDocument(t,s,i,n);try{const t=Fi.load(e);yield t.whenLoaded;for(const t of r)yield t(e,n)}catch(e){null==e||e.name}finally{Fi.release(e)}}})}(e).finally(()=>{t=null})},0))})},enqueue(e,t,n,s,i){const o=`${e.name}:${t}:${n}:${s}`;let c=r.get(o);c||(c={db:e,parentTable:t,parentId:n,prop:s,triggers:new Set},r.set(o,c)),c.triggers.add(i)}}}function Cl(){Sl.run()}function Il(){xl.run()}const Ol={nameSuffix:!0};function Dl(e){const i=e.name,o=dl(e),c=[];let l=!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 _=Xi(e);"undefined"!=typeof window&&"undefined"!=typeof document&&((null===(i=_.cloud.options)||void 0===i?void 0:i.customLoginGui)||c.push(function(e){let t=!1;const n=document.createElement("div");return document.body?(document.body.appendChild(n),Tc(ac(cl,{db:e.vip}),n)):addEventListener("DOMContentLoaded",()=>{t||(document.body.appendChild(n),Tc(ac(cl,{db:e.vip}),n))}),{unsubscribe(){try{n.remove()}catch(e){}t=!0},get closed(){return t}}}(e))),_.cloud.isServiceWorkerDB||c.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 So.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"})),dl(e.dx._novip),xo]).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:c,progress:l}=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:c,progress:l,status:rn?a:"offline",license:"ok"}}))}(_).subscribe(e.cloud.syncState)),c.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(l){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&&!ro?_.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){c.push(t.liveQuery(()=>_.getCurrentUser()).subscribe(o)),c.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=vl(_);Fi.on.new.subscribe(e),_.dx.once("close",()=>{Fi.on.new.unsubscribe(e)})}let E=!1,C=yield _.getCurrentUser();if(d&&!_.cloud.isServiceWorkerDB){const e=d;d=null;try{yield Ne(_.cloud.userInteraction,"Authentication Error",{type:"error",messageCode:"GENERIC_ERROR",message:e.message,messageParams:{provider:e.provider||"unknown"}}),wl(),o.next(Object.assign(Object.assign({},o.value),{oauthInProgress:!1}))}catch(e){}}if(a&&!_.cloud.isServiceWorkerDB){const{code:e,provider:t}=a;a=null;try{E=yield ct(_,{oauthCode:e,provider:t}),C=yield _.getCurrentUser(),wl()}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 ko(e,Hi,()=>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=Ho(_,_.cloud.options,_.cloud.schema),u.start(),O||Ae(_,"push")),f(),_.cloud.isServiceWorkerDB||c.push(n.fromEvent(self,"online").subscribe(()=>{_.syncStateChangedEvent.next({phase:"not-in-sync"}),bo(_)||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)||so||c.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 ft(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])=>xo.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 ft(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 Ro(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 No?n.throwError(()=>s):n.from(Bo()).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",()=>{c.forEach(e=>e.unsubscribe()),c.splice(0,c.length),h=!0,u&&u.stop(),u=null,o.next(qe)});const p=new n.Subject;var g;e.cloud={version:"4.3.8",options:Object.assign({},Ol),schema:null,get currentUserId(){return o.value.userId||qe.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=Xi(e);yield n.cloud.sync(),yield ct(n,t)})},invites:ml(e),roles:hl(e),configure(t){if(t=e.cloud.options=Object.assign(Object.assign({},e.cloud.options),t),l=!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)}`,Xi(e).reconfigure()),Ko(e.cloud.schema,e.cloud.options),"undefined"!=typeof window&&window.location)try{const e=bl();e&&(a={code:e.code,provider:e.provider})}catch(e){e instanceof et&&(d=e)}},logout(){return s(this,arguments,void 0,function*({force:t}={}){t?yield Qe(Xi(e),{deleteUnsyncedData:!0}):yield Ge(Xi(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 nt(t.databaseUrl,n)})},sync(){return s(this,arguments,void 0,function*({wait:i,purpose:o}={wait:!0,purpose:"push"}){var c;void 0===i&&(i=!0);const l=Xi(e);if("ok"!==((null===(c=l.cloud.currentUser.value.license)||void 0===c?void 0:c.status)||"ok")&&(yield Ve(l)),"pull"===o){const e=l.cloud.persistedSyncState.value;if(Ae(l,o),i){const t=yield n.firstValueFrom(l.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 Fo(l)){const e=l.cloud.persistedSyncState.value;Ae(l,o),i&&(yield n.firstValueFrom(n.from(t.liveQuery(()=>s(this,void 0,void 0,function*(){const t=yield Fo(l),n=yield l.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=gl(e),c=t=>{const r=t[i||e.cloud.currentUserId];return r?new yl(r.permissions,n,void 0===i||i===e.cloud.currentUserId||s===e.cloud.currentUserId):new yl({},n,!s||s===e.cloud.currentUserId)},l=o.pipe(r.map(c));return l.getValue=()=>c(o.getValue()),l}(e._novip,t,n)},e.Version.prototype._parseStoresSpec=t.override(e.Version.prototype._parseStoresSpec,t=>_o(t,e)),e.Table.prototype.newId=function({colocateWith:t}={}){const n=t&&t.substr(t.length-3);return fo(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(wo({currentUserObservable:e.cloud.currentUser,db:Xi(e)})),e.use((g=Xi(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,c,l;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=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===(l=(c=n.schema.primaryKey).extractKey)||void 0===l?void 0:l.call(c,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(po(Xi(e)))}Dl.version="4.3.8",t.Cloud=Dl,e.default=Dl,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}`);_l[o]={trigger:r,parentTable:e.name,prop:n};const c=e.db._novip;let l=kl.get(c);l||(l=(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=>_l[e])?(s.addEventListener("complete",Cl),s):s},table:r=>{const s=n.table(r),i=_l[r];if(!i)return s;const{trigger:o,parentTable:c,prop:l}=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=Fi.getDocCache(e).find(c,n,l);(s&&(null===(r=Fi.for(s))||void 0===r?void 0:r.refCount)?xl:Sl).enqueue(e,c,n,l,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)Sl.enqueue(e,c,t.from,l,o)})}return s.mutate(n)}})}})}))(c),kl.set(c,l)),c.use(l),Fi.on("beforeunload",Il)},e.dexieCloud=Dl,e.getTiedObjectId=function(e){return e.startsWith("rlm~")?e.substr(4):null},e.getTiedRealmId=function(e){return"rlm~"+e},e.resolveText=rl,Object.defineProperty(e,"__esModule",{value:!0})});
|
|
2
2
|
//# sourceMappingURL=dexie-cloud-addon.min.js.map
|