dexie-cloud-addon 4.3.7 → 4.3.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("dexie"),require("rxjs"),require("rxjs/operators")):"function"==typeof define&&define.amd?define(["dexie","rxjs","rxjs/operators"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Dexie,e.rxjs,e.rxjs.operators)}(this,function(e,t,n){"use strict";function r(e,t,n,r){return new(n||(n=Promise))(function(s,i){function o(e){try{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 s(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function i(e){return this instanceof i?(this.v=e,this):new i(e)}function o(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,s=n.apply(e,t||[]),o=[];return r=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){o.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 i?Promise.resolve(e.value.v).then(a,d):u(o[0][2],e)}(s[e](t))}catch(e){u(o[0][3],e)}}function a(e){l("next",e)}function d(e){l("throw",e)}function u(e,t){e(t),o.shift(),o.length&&l(o[0][0],o[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=s(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise(function(r,s){(function(e,t,n,r){Promise.resolve(r).then(function(t){e({value:t,done:n})},t)})(r,s,(t=e[n](t)).done,t.value)})}}}"function"==typeof SuppressedError&&SuppressedError;const l={userId:"unauthorized",name:"Unauthorized",claims:{sub:"unauthorized"},lastLogin:new Date(0)};try{Object.freeze(l),Object.freeze(l.claims)}catch(e){}const a={},d="undefined"!=typeof self&&self.document&&"undefined"!=typeof navigator&&navigator.serviceWorker;d&&d.ready.then(e=>a.registration=e),"undefined"!=typeof self&&"clients"in self&&!self.document&&addEventListener("message",e=>{var t,n;(null===(n=null===(t=e.data)||void 0===t?void 0:t.type)||void 0===n?void 0:n.startsWith("sw-broadcast-"))&&[...self.clients.matchAll({includeUncontrolled:!0})].forEach(t=>{var n;return t.id!==(null===(n=e.source)||void 0===n?void 0:n.id)&&t.postMessage(e.data)})});class u{constructor(e){this.name=e}subscribe(e){if(!d)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 d.addEventListener("message",t),()=>d.removeEventListener("message",t)}postMessage(e){var t;"object"==typeof self.clients?[...self.clients.matchAll({includeUncontrolled:!0})].forEach(t=>t.postMessage({type:`sw-broadcast-${this.name}`,message:e})):a.registration&&(null===(t=a.registration.active)||void 0===t||t.postMessage({type:`sw-broadcast-${this.name}`,message:e}))}}const h=globalThis["lbc-events"]||(globalThis["lbc-events"]=new Map);class f extends t.Observable{constructor(e){const t="undefined"==typeof BroadcastChannel?new u(e):new BroadcastChannel(e);super(n=>{function r(e){n.next(e.detail)}function s(e){n.next(e.data)}let i;!function(e,t){h.has(e)?h.get(e).push(t):h.set(e,[t])}(`lbc-${e}`,r);try{t instanceof u?i=t.subscribe(e=>n.next(e)):t.addEventListener("message",s)}catch(e){}return()=>{!function(e,t){const n=h.get(e);if(n){const e=n.indexOf(t);-1!==e&&n.splice(e,1)}}(`lbc-${e}`,r),t instanceof u?i():t.removeEventListener("message",s)}}),this.name=e,this.bc=t}next(e){this.bc.postMessage(e);!function(e){const t=h.get(e.type);t&&t.forEach(t=>{try{t(e)}catch(e){}})}(new CustomEvent(`lbc-${this.name}`,{detail:e}))}}let p=!1;function g(e,t){return r(this,void 0,void 0,function*(){try{const n=yield navigator.serviceWorker.ready;if("push"===t&&n.sync&&(yield n.sync.register(`dexie-cloud:${e.name}`)),!n.active)throw new Error("Failed to trigger sync - there's no active service worker");return void n.active.postMessage({type:"dexie-cloud-sync",dbName:e.name,purpose:t})}catch(e){p||(p=!0)}})}function y(e,t){e.cloud.usingServiceWorker?g(e,t):e.localSyncEvent.next({purpose:t})}const m="fromBase64"in Uint8Array,v="toBase64"in Uint8Array.prototype,b="undefined"!=typeof Buffer?e=>Buffer.from(e,"base64"):m?e=>Uint8Array.fromBase64(e):e=>{const t=atob(e),n=t.length,r=new Uint8Array(n);for(var s=0;s<n;s++)r[s]=t.charCodeAt(s);return r},w="undefined"!=typeof Buffer?e=>ArrayBuffer.isView(e)?Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("base64"):Buffer.from(e).toString("base64"):v?e=>(ArrayBuffer.isView(e)?e:new Uint8Array(e)).toBase64():e=>{const t=ArrayBuffer.isView(e)?e:new Uint8Array(e),n=[];for(let e=0,r=t.length;e<r;e+=4096){const r=t.subarray(e,e+4096);n.push(String.fromCharCode.apply(null,r))}return btoa(n.join(""))};function _(e){return r(this,arguments,void 0,function*({realms:e,inviteRealms:t}){const n=JSON.stringify([...e.map(e=>({realmId:e,accepted:!0})),...t.map(e=>({realmId:e,accepted:!1}))].sort((e,t)=>e.realmId<t.realmId?-1:e.realmId>t.realmId?1:0)),r=(new TextEncoder).encode(n),s=yield crypto.subtle.digest("SHA-1",r);return w(s)})}function k(e){return Object.entries(e.cloud.schema||{}).filter(([,{markedForSync:e}])=>e).map(([t])=>e.tables.filter(({name:e})=>e===t)[0]).filter(e=>e)}function S(e){return`$${e}_mutations`}function x(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 E=[].concat;function C(e){return E.apply([],e)}function I(e,t){return r(this,arguments,void 0,function*(e,t,{since:n={},limit:s=1/0}={}){const i=yield Promise.all(e.map(e=>r(this,void 0,void 0,function*(){const t=x(e.name),r=n[t];let i=r?e.where("rev").above(r):e;s<1/0&&(i=i.limit(s));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=C(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 O(e){const t=new Uint8Array(e);if("undefined"!=typeof crypto)crypto.getRandomValues(t);else for(let n=0;n<e;n++)t[n]=Math.floor(256*Math.random());if("undefined"!=typeof Buffer&&Buffer.from)return Buffer.from(t).toString("base64");if("undefined"!=typeof btoa)return btoa(String.fromCharCode.apply(null,t));throw new Error("No btoa or Buffer available")}const D={}.hasOwnProperty;function A(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)A(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 D.call(e,t)}(e,o)||(l=e[o]={}),A(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=T)=>{const n=Buffer.alloc(e);return t(n),n.toString("base64")}:()=>{throw new Error("No implementation of randomString was found")};function T(e){for(let t=0;t<e.length;++t)e[t]=Math.floor(256*Math.random())}function j(e){return"string"==typeof e||!!(Array.isArray(e)&&e.some(e=>j(e))&&e.every(P))}function P(e){return"string"==typeof e||"number"==typeof e||Array.isArray(e)&&e.every(P)}function L(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))A(i.val,e,t);break;case"del":break;case"upd":Object.assign(i.mod,s)}else r[e]={type:"upd",mod:s}});break;case"delete":s.forEach(e=>{r[e]={type:"del"}})}return e}function R(e,t){for(const{table:n,muts:r}of t)for(const t of r)L(e,n,t)}const $=Math.floor,M=Math.abs,N=(e,t)=>e<t?e:t,B=(e,t)=>e>t?e:t,F=e=>0!==e?e<0:1/e<0,W=64,V=128,H=127,K=Number.MAX_SAFE_INTEGER,z=Number.isInteger||(e=>"number"==typeof e&&isFinite(e)&&$(e)===e),J=()=>new Set,q=e=>e[e.length-1],G=(e,t)=>{for(let n=0;n<t.length;n++)e.push(t[n])},Y=Array.from,Q=Array.isArray,X=/^\s*/g,Z=/([A-Z])/g,ee=(e,t)=>(e=>e.replace(X,""))(e.replace(Z,e=>`${t}${(e=>e.toLowerCase())(e)}`)),te="undefined"!=typeof TextEncoder?new TextEncoder:null,ne=te?e=>te.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 re="undefined"==typeof TextDecoder?null:new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});re&&1===re.decode(new Uint8Array).length&&(re=null);class se{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}}const ie=()=>new se,oe=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},ce=(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},le=ce,ae=(e,t)=>{for(;t>H;)ce(e,V|H&t),t=$(t/128);ce(e,H&t)},de=(e,t)=>{const n=F(t);for(n&&(t=-t),ce(e,(t>63?V:0)|(n?W:0)|63&t),t=$(t/64);t>0;)ce(e,(t>H?V:0)|H&t),t=$(t/128)},ue=new Uint8Array(3e4),he=ue.length/3,fe=te&&te.encodeInto?(e,t)=>{if(t.length<he){const n=te.encodeInto(t,ue).written||0;ae(e,n);for(let t=0;t<n;t++)ce(e,ue[t])}else ge(e,ne(t))}:(e,t)=>{const n=unescape(encodeURIComponent(t)),r=n.length;ae(e,r);for(let t=0;t<r;t++)ce(e,n.codePointAt(t))},pe=(e,t)=>{const n=e.cbuf.length,r=e.cpos,s=N(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(B(2*n,i)),e.cbuf.set(t.subarray(s)),e.cpos=i)},ge=(e,t)=>{ae(e,t.byteLength),pe(e,t)},ye=(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*B(n,t)),e.cpos=0)})(e,t);const n=new DataView(e.cbuf.buffer,e.cpos,t);return e.cpos+=t,n},me=(e,t)=>ye(e,8).setBigUint64(0,t,!1),ve=new DataView(new ArrayBuffer(4)),be=(e,t)=>{switch(typeof t){case"string":ce(e,119),fe(e,t);break;case"number":z(t)&&M(t)<=2147483647?(ce(e,125),de(e,t)):(n=t,ve.setFloat32(0,n),ve.getFloat32(0)===n?(ce(e,124),((e,t)=>{ye(e,4).setFloat32(0,t,!1)})(e,t)):(ce(e,123),((e,t)=>{ye(e,8).setFloat64(0,t,!1)})(e,t)));break;case"bigint":ce(e,122),((e,t)=>{ye(e,8).setBigInt64(0,t,!1)})(e,t);break;case"object":if(null===t)ce(e,126);else if(Q(t)){ce(e,117),ae(e,t.length);for(let n=0;n<t.length;n++)be(e,t[n])}else if(t instanceof Uint8Array)ce(e,116),ge(e,t);else{ce(e,118);const n=Object.keys(t);ae(e,n.length);for(let r=0;r<n.length;r++){const s=n[r];fe(e,s),be(e,t[s])}}break;case"boolean":ce(e,t?120:121);break;default:ce(e,127)}var n};class we extends se{constructor(e){super(),this.w=e,this.s=null,this.count=0}write(e){this.s===e?this.count++:(this.count>0&&ae(this,this.count-1),this.count=1,this.w(this,e),this.s=e)}}const _e=e=>{e.count>0&&(de(e.encoder,1===e.count?e.s:-e.s),e.count>1&&ae(e.encoder,e.count-2))};class ke{constructor(){this.encoder=new se,this.s=0,this.count=0}write(e){this.s===e?this.count++:(_e(this),this.count=1,this.s=e)}toUint8Array(){return _e(this),oe(this.encoder)}}const Se=e=>{if(e.count>0){const t=2*e.diff+(1===e.count?0:1);de(e.encoder,t),e.count>1&&ae(e.encoder,e.count-2)}};class xe{constructor(){this.encoder=new se,this.s=0,this.count=0,this.diff=0}write(e){this.diff===e-this.s?(this.s=e,this.count++):(Se(this),this.count=1,this.diff=e-this.s,this.s=e)}toUint8Array(){return Se(this),oe(this.encoder)}}class Ee{constructor(){this.sarr=[],this.s="",this.lensE=new ke}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 se;return this.sarr.push(this.s),this.s="",fe(e,this.sarr.join("")),pe(e,this.lensE.toUint8Array()),oe(e)}}const Ce=e=>new Error(e),Ie=()=>{throw Ce("Method unimplemented")},Oe=()=>{throw Ce("Unexpected case")},De=Ce("Unexpected end of array"),Ae=Ce("Integer out of Range");class Ue{constructor(e){this.arr=e,this.pos=0}}const Te=e=>new Ue(e),je=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,Re(e)),Le=e=>e.arr[e.pos++],Re=e=>{let t=0,n=1;const r=e.arr.length;for(;e.pos<r;){const r=e.arr[e.pos++];if(t+=(r&H)*n,n*=128,r<V)return t;if(t>K)throw Ae}throw De},$e=e=>{let t=e.arr[e.pos++],n=63&t,r=64;const s=(t&W)>0?-1:1;if(0===(t&V))return s*n;const i=e.arr.length;for(;e.pos<i;){if(t=e.arr[e.pos++],n+=(t&H)*r,r*=128,t<V)return s*n;if(n>K)throw Ae}throw De},Me=re?e=>re.decode(Pe(e)):e=>{let t=Re(e);if(0===t)return"";{let n=String.fromCodePoint(Le(e));if(--t<100)for(;t--;)n+=String.fromCodePoint(Le(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))}},Ne=(e,t)=>{const n=new DataView(e.arr.buffer,e.arr.byteOffset+e.pos,t);return e.pos+=t,n},Be=e=>Ne(e,8).getBigUint64(0,!1),Fe=[e=>{},e=>null,$e,e=>Ne(e,4).getFloat32(0,!1),e=>Ne(e,8).getFloat64(0,!1),e=>Ne(e,8).getBigInt64(0,!1),e=>!1,e=>!0,Me,e=>{const t=Re(e),n={};for(let r=0;r<t;r++){n[Me(e)]=We(e)}return n},e=>{const t=Re(e),n=[];for(let r=0;r<t;r++)n.push(We(e));return n},Pe],We=e=>Fe[127-Le(e)](e);class Ve 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),je(this)?this.count=Re(this)+1:this.count=-1),this.count--,this.s}}class He extends Ue{constructor(e){super(e),this.s=0,this.count=0}read(){if(0===this.count){this.s=$e(this);const e=F(this.s);this.count=1,e&&(this.s=-this.s,this.count=Re(this)+2)}return this.count--,this.s}}class Ke extends Ue{constructor(e){super(e),this.s=0,this.count=0,this.diff=0}read(){if(0===this.count){const e=$e(this),t=1&e;this.diff=$(e/2),this.count=1,t&&(this.count=Re(this)+2)}return this.s+=this.diff,this.count--,this.s}}class ze{constructor(e){this.decoder=new He(e),this.str=Me(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*Je(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}}}}class qe 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 Ge=`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 Ye(e){return{name:"provider",value:e.name,displayName:`Continue with ${e.displayName}`,iconUrl:e.iconUrl,styleHint:e.type}}function Qe(t,n){return new Promise((r,s)=>{const i=Object.assign(Object.assign({submitLabel:"Submit",cancelLabel:"Cancel"},n),{onSubmit:e=>{t.next(void 0),r(e)},onCancel:()=>{t.next(void 0),s(new e.AbortError("User cancelled"))}});t.next(i)})}function Xe(e,t,...n){return Qe(e,{type:"message-alert",title:t,alerts:n,fields:{},submitLabel:"OK",cancelLabel:null})}function Ze(e,t,n){return r(this,void 0,void 0,function*(){let r=n||"";for(;!r||!/^[\w-+.]+@([\w-]+\.)+[\w-]{2,10}(\sas\s[\w-+.]+@([\w-]+\.)+[\w-]{2,10})?$/.test(r);)r=(yield Qe(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 et(e,t,n){return r(this,void 0,void 0,function*(){const r=[{type:"info",messageCode:"OTP_SENT",message:"A One-Time password has been sent to {email}",messageParams:{email:t}}];n&&r.push(n);const{otp:s}=yield Qe(e,{type:"otp",title:"Enter OTP",alerts:r,fields:{otp:{type:"otp",label:"OTP",placeholder:"Paste OTP here"}}});return s})}class tt extends Error{constructor(e){super(`OAuth redirect initiated for provider: ${e}`),this.name="OAuthRedirectError",this.provider=e}}function nt(e){return r(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 st(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 rt(t,n,s,i,o){return r(this,void 0,void 0,function*(){return n.accessToken&&n.accessTokenExpiration.getTime()>Date.now()?n:n.refreshToken&&(!n.refreshTokenExpiration||n.refreshTokenExpiration.getTime()>Date.now())?yield st(t,n):yield function(t,n,s,i){return r(this,void 0,void 0,function*(){if(!crypto.subtle)throw"undefined"!=typeof location&&"http:"===location.protocol?new Error("Dexie Cloud Addon needs to use WebCrypto, but your browser has disabled it due to being served from an insecure location. Please serve it from https or http://localhost:<port> (See https://stackoverflow.com/questions/46670556/how-to-enable-crypto-subtle-for-unsecure-origins-in-chrome/46671627#46671627)"):new Error("This browser does not support WebCrypto.");const{privateKey:r,publicKey:o}=yield crypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:2048,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!1,["sign","verify"]);if(!r||!o)throw new Error("Could not generate RSA keypair");t.nonExportablePrivateKey=r;const c=function(e){const t=w(e);return function(e){let t="-----BEGIN PUBLIC KEY-----\n";for(;e.length>0;)t+=e.substring(0,64)+"\n",e=e.substring(64);return t+="-----END PUBLIC KEY-----",t}(t)}(yield crypto.subtle.exportKey("spki",o));t.publicKey=o;try{const e=yield n({public_key:c,hints:i});if("error"===e.type)throw new qe(e);if("tokens"!==e.type)throw new Error(`Unexpected response type from token endpoint: ${e.type}`);return t.accessToken=e.accessToken,t.accessTokenExpiration=new Date(e.accessTokenExpiration),t.refreshToken=e.refreshToken,e.refreshTokenExpiration&&(t.refreshTokenExpiration=new Date(e.refreshTokenExpiration)),t.userId=e.claims.sub,t.email=e.claims.email,t.name=e.claims.name,t.claims=e.claims,t.license={type:e.userType,status:e.claims.license||"ok"},t.data=e.data,null!=e.evalDaysLeft&&(t.license.evalDaysLeft=e.evalDaysLeft),null!=e.userValidUntil&&(t.license.validUntil=new Date(e.userValidUntil)),e.alerts&&e.alerts.length>0&&(yield Qe(s,{type:"message-alert",title:"Authentication Alert",fields:{},alerts:e.alerts})),t}catch(t){if(t instanceof tt||"OAuthRedirectError"===(null==t?void 0:t.name))throw t;if(t instanceof qe)throw yield Xe(s,t.title,{type:"error",messageCode:t.messageCode,message:t.message,messageParams:{}}),t;let n="We're having a problem authenticating right now.";if(t instanceof TypeError){n=void 0!==typeof navigator&&!navigator.onLine?"You seem to be offline. Please connect to the internet and try again.":e.debug||"undefined"!=typeof location&&("localhost"===location.hostname||"127.0.0.1"===location.hostname)?`Could not connect to server. Please verify that your origin '${location.origin}' is whitelisted using \`npx dexie-cloud whitelist\``:"Could not connect to server. Please verify the connection.",yield Xe(s,"Authentication Failed",{type:"error",messageCode:"GENERIC_ERROR",message:n,messageParams:{}}).catch(()=>{})}throw t}})}(n,s,i,o)})}function st(e,t){return r(this,void 0,void 0,function*(){if(!t.refreshToken)throw new Error("Cannot refresh token - refresh token is missing.");if(!t.nonExportablePrivateKey)throw new Error("login.nonExportablePrivateKey is missing - cannot sign refresh token without a private key.");const n=Date.now(),r="RSASSA-PKCS1-v1_5",s=(new TextEncoder).encode(t.refreshToken+n),i=yield crypto.subtle.sign(r,t.nonExportablePrivateKey,s),o=w(i),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 qe(a);return t.accessToken=a.accessToken,t.accessTokenExpiration=a.accessTokenExpiration?new Date(a.accessTokenExpiration):void 0,t.claims=a.claims,t.license={type:a.userType,status:a.claims.license||"ok"},null!=a.evalDaysLeft&&(t.license.evalDaysLeft=a.evalDaysLeft),null!=a.userValidUntil&&(t.license.validUntil=new Date(a.userValidUntil)),a.data&&(t.data=a.data),t})}const{toString:it}={};const ot={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 ct(...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 ot;let i=n.get(r);if(void 0!==i)return i;const o=(s=e,it.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:ot),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 lt={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 at={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 dt={bigint:{replace:e=>({$t:"bigint",v:""+e}),revive:e=>BigInt(e.v)}};var ut={Date:{replace:e=>({$t:"Date",v:isNaN(e.getTime())?"NaN":e.toISOString()}),revive:({v:e})=>new Date("NaN"===e?NaN:Date.parse(e))}},ht={Set:{replace:e=>({$t:"Set",v:Array.from(e.entries())}),revive:({v:e})=>new Set(e)}},ft={Map:{replace:e=>({$t:"Map",v:Array.from(e.entries())}),revive:({v:e})=>new Map(e)}};const pt="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof global?global:void 0;var gt=["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=pt[t];return s&&new s(r.ArrayBuffer.revive({v:e},n,r))}}}),{});function yt(e){return function(e){for(var t="",n=0,r=e.length;n<r;n++)t+=bt[e[n]];return t}(w(e))}function mt(e){return b(function(e){if("string"!=typeof e)throw new Error("invalid decoder input: "+e);for(var t="",n=0,r=e.length;n<r;n++)t+=vt[e[n]];return t}(e))}const vt={"-":"=",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:"+","|":"/"},bt={};for(const e of Object.keys(vt))bt[vt[e]]=e;var wt={ArrayBuffer:{replace:e=>({$t:"ArrayBuffer",v:yt(e)}),revive:({v:e})=>{const t=mt(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 kt(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 St(e){const t=new Uint8Array(e.length);for(let n=0;n<e.length;++n)t[n]=e.charCodeAt(n);return t.buffer}var xt={Blob:{test:(e,t)=>"Blob"===t||e instanceof _t,replace:e=>({$t:"Blob",v:w(e instanceof _t?e.buf:St(kt(e))),type:e.type}),revive:({type:e,v:t})=>{const n=b(t);return void 0!==typeof Blob?new Blob([n]):new _t(n.buffer,e)}}};const Et={...at,...dt,...ut,...ht,...ft,...gt,...wt,...xt};function Ct(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 It={undefined:{replace:()=>({$t:"undefined"}),revive:()=>{}}},Ot={File:{test:(e,t)=>"File"===t,replace:e=>({$t:"File",v:w(St(kt(e))),type:e.type,name:e.name,lastModified:new Date(e.lastModified).toISOString()}),revive:({type:e,v:t,name:n,lastModified:r})=>{const s=b(t);return new File([s],n,{type:e,lastModified:new Date(r).getTime()})}}};const Dt="function"==typeof BigInt&&"bigint"==typeof BigInt(0);class At{toString(){return this.v}constructor(e){this.v=e}}const Ut=Dt?{}:{bigint:{test:e=>e instanceof At,replace:e=>Object.assign({$t:"bigint"},e),revive:({v:e})=>new At(e)}},Tt=Object.assign(Object.assign(Object.assign(Object.assign({},It),Ut),Ot),{PropModification:{test:t=>t instanceof e.PropModification,replace:e=>Object.assign({$t:"PropModification"},e["@@propmod"]),revive:t=>{var{$t:n}=t,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}(t,["$t"]);return new e.PropModification(r)}}}),jt=ct(Et,Tt),Pt=function(...e){const t=ct(Et,lt,...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 Ct(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 Ct(e.slice(0,4))).getUint32(0),n=e.slice(4,t+4),r=await function(e){return new Promise((t,n)=>{const r=new FileReader;r.onabort=e=>n(new Error("file read aborted")),r.onerror=e=>n(e.target.error),r.onload=e=>t(e.target.result),r.readAsText(e)})}(e.slice(t+4));return await this.parse(r,n)}}}(Tt);class Lt extends Error{constructor(e,t){super(t||`${e.status} ${e.statusText}`),this.httpStatus=e.status}get name(){return"HttpError"}}function Rt(t,n,r){const s=[];for(let i of r){const{table:r,muts:o}=i,c=t.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((t,r)=>{const s=!l.outbound&&("upsert"===t.type||"insert"===t.type);t.keys.forEach((t,o)=>{if(Array.isArray(t)){a===i&&(a=$t(i,s));const e=a.muts[r],n=JSON.stringify(t);e.keys[o]=n}else if("#"===t[0]){a===i&&(a=$t(i,s));const c=a.muts[r];if(!n.isLoggedIn)throw new Error("Internal error: Cannot sync private IDs before authenticated");const d=`${t}:${n.userId}`;c.keys[o]=d,s&&e.setByKeyPath(c.values[o],l.keyPath,d)}})}),s.push(a)}return s}function $t(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 Mt=new WeakMap;function Nt(e){return r(this,void 0,void 0,function*(){var t,n;const r=(null!==(n=null===(t=Mt.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 Bt(e,t,n,s,i,o,c,l,a){return r(this,void 0,void 0,function*(){const r={Accept:"application/json, application/x-bison, application/x-bison-stream","Content-Type":"application/tson"},d=yield nt(i),u=null==d?void 0:d.accessToken;u&&(r.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:s,changes:Rt(i.dx.core.schema,a,e),y:t,dxcv:i.cloud.version};i.syncStateChangedEvent.next({phase:"pushing"});const f=jt.stringify(h),p=yield fetch(`${o}/sync`,{method:"post",headers:r,credentials:"include",body:f});if(i.syncStateChangedEvent.next({phase:"pulling"}),function(e,t){const n=t.headers.get("Ratelimit-Limit"),r=t.headers.get("Ratelimit-Remaining"),s=t.headers.get("Ratelimit-Reset");if(n&&r&&s){const t=Number(n),i=Math.max(0,Number(r)),o=Number(s);if(i<t/2){const t=Math.ceil(o/(i+1));Mt.set(e,new Date(Date.now()+1e3*t))}else Mt.delete(e)}}(i,p),!p.ok)throw new Lt(p);if("application/x-bison"===p.headers.get("content-type"))return Pt.fromBinary(yield p.blob());{const e=yield p.text();return jt.parse(e)}})}function Ft(t){if(null==t?void 0:t.cancelled)throw new e.AbortError("Operation was cancelled")}let Wt=!1;function Vt(e,t,n,s){return r(this,void 0,void 0,function*(){yield e.$baseRevs.bulkPut(Object.keys(t).filter(e=>t[e].markedForSync).map(e=>({tableName:e,clientRev:(n[e]||0)+1,serverRev:s}))),yield e.$baseRevs.where("tableName").noneOf(Object.keys(t).filter(e=>t[e].markedForSync)).delete()})}function Ht(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 Kt(t,n,s){return r(this,void 0,void 0,function*(){const r=yield t.bulkGet(n),i=[],o=[];n.forEach((n,c)=>{const l=r[c];if(l){for(const[r,i]of Object.entries(s[c]))if(r===t.schema.primKey.keyPath){if(0!==e.cmp(i,n))throw new Error("Cannot change primary key")}else e.setByKeyPath(l,r,i);i.push(n),o.push(l)}}),yield null==t.schema.primKey.keyPath?t.bulkPut(o,i):t.bulkPut(o)})}function zt(t,n){return r(this,void 0,void 0,function*(){for(const{table:r,muts:s}of t){if(!n.dx._allTables[r])continue;const t=n.table(r),{primaryKey:i}=t.core.schema,o=e=>{switch(e[0]){case"[":if(e.endsWith("]"))try{return JSON.parse(e)}catch(e){}return e;case"#":return e.endsWith(":"+n.cloud.currentUserId)?e.substr(0,e.length-n.cloud.currentUserId.length-1):e;default:return e}};for(const n of s){const r=n.keys.map(o);switch(n.type){case"insert":i.outbound?yield t.bulkAdd(n.values,r):(r.forEach((t,r)=>{e.setByKeyPath(n.values[r],i.keyPath,t)}),yield t.bulkAdd(n.values));break;case"upsert":i.outbound?yield t.bulkPut(n.values,r):(r.forEach((t,r)=>{e.setByKeyPath(n.values[r],i.keyPath,t)}),yield t.bulkPut(n.values));break;case"modify":1===r.length?yield t.update(r[0],n.changeSpec):yield t.where(":id").anyOf(r).modify(n.changeSpec);break;case"update":yield Kt(t,r,n.changeSpecs);break;case"delete":yield t.bulkDelete(r)}}}})}"undefined"!=typeof self&&"undefined"!=typeof navigator&&(Wt=navigator.onLine,self.addEventListener("online",()=>Wt=!0),self.addEventListener("offline",()=>Wt=!1));const Jt="dexie-cloud-syncer";function qt(e,t){return e.where("i").between(t,1/0,!0).toArray()}const Gt=()=>new Map,Yt=e=>{const t=Gt();return e.forEach((e,n)=>{t.set(n,e)}),t},Qt=(e,t,n)=>{let r=e.get(t);return void 0===r&&e.set(t,r=n()),r};class Xt{constructor(){this._observers=Gt()}on(e,t){return Qt(this._observers,e,J).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 Y((this._observers.get(e)||Gt()).values()).forEach(e=>e(...t))}destroy(){this._observers=Gt()}}class Zt{constructor(){this._observers=Gt()}on(e,t){Qt(this._observers,e,J).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 Y((this._observers.get(e)||Gt()).values()).forEach(e=>e(...t))}destroy(){this._observers=Gt()}}const en=crypto.getRandomValues.bind(crypto),tn=()=>en(new Uint32Array(1))[0],nn=[1e7]+-1e3+-4e3+-8e3+-1e11,rn=()=>nn.replace(/[018]/g,e=>(e^tn()&15>>e/4).toString(16)),sn=Date.now,on=e=>new Promise(e);Promise.all.bind(Promise);const cn=e=>void 0===e?null:e;let ln=new class{constructor(){this.map=new Map}setItem(e,t){this.map.set(e,t)}getItem(e){return this.map.get(e)}},an=!0;try{"undefined"!=typeof localStorage&&localStorage&&(ln=localStorage,an=!1)}catch(Bc){}const dn=ln,un=Object.assign,hn=Object.keys,fn=e=>hn(e).length,pn=e=>hn(e).length,gn=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),yn=Object.freeze,mn=e=>{for(const t in e){const n=e[t];"object"!=typeof n&&"function"!=typeof n||mn(e[t])}return yn(e)},vn=Symbol("Equality"),bn=(e,t,n=0)=>{try{for(;n<e.length;n++)e[n](...t)}finally{n<e.length&&bn(e,t,n+1)}},wn=(e,t)=>{if(e===t)return!0;if(null==e||null==t||e.constructor!==t.constructor)return!1;if(null!=e[vn])return e[vn](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)||!wn(e.get(n),t.get(n)))return!1;break;case Object:if(fn(e)!==fn(t))return!1;for(const n in e)if(!gn(e,n)||!wn(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(!wn(e[n],t[n]))return!1;break;default:return!1}return!0},_n="undefined"!=typeof process&&process.release&&/node|io\.js/.test(process.release.name)&&"[object process]"===Object.prototype.toString.call("undefined"!=typeof process?process:0);let kn;const Sn=e=>(()=>{if(void 0===kn)if(_n){kn=Gt();const e=process.argv;let t=null;for(let n=0;n<e.length;n++){const r=e[n];"-"===r[0]?(null!==t&&kn.set(t,""),t=r):null!==t&&(kn.set(t,r),t=null)}null!==t&&kn.set(t,"")}else"object"==typeof location?(kn=Gt(),(location.search||"?").slice(1).split("&").forEach(e=>{if(0!==e.length){const[t,n]=e.split("=");kn.set(`--${ee(t,"-")}`,n),kn.set(`-${ee(t,"-")}`,n)}})):kn=Gt();return kn})().has(e),xn=e=>cn(_n?process.env[e.toUpperCase().replaceAll("-","_")]:dn.getItem(e)),En=e=>Sn("--"+e)||null!==xn(e);En("production");var Cn;_n&&(Cn=process.env.FORCE_COLOR,["true","1","2"].includes(Cn))||!Sn("--no-colors")&&!En("no-color")&&(!_n||process.stdout.isTTY)&&(!_n||Sn("--color")||null!==xn("COLORTERM")||(xn("TERM")||"").includes("color"));class In{constructor(e,t){this.left=e,this.right=t}}const On=(e,t)=>new In(e,t);"undefined"!=typeof DOMParser&&new DOMParser;const Dn=Symbol,An=Dn(),Un=Dn(),Tn=Dn(),jn=Dn(),Pn=Dn(),Ln=Dn(),Rn=Dn(),$n=Dn(),Mn=Dn(),Nn=(On("font-weight","bold"),On("font-weight","normal"),On("color","blue"),On("color","green"),On("color","grey"),On("color","red"),On("color","purple"),On("color","orange"),On("color","black"),J()),Bn=e=>({[Symbol.iterator](){return this},next:e}),Fn=(e,t)=>Bn(()=>{const{done:n,value:r}=e.next();return{done:n,value:n?void 0:t(r)}});class Wn{constructor(e,t){this.clock=e,this.len=t}}class Vn{constructor(){this.clients=new Map}}const Hn=(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])Cr(e,s,o.clock,o.len,n)}}),Kn=(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=$((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)},zn=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=B(r.len,s.clock+s.len-r.clock):(n<t&&(e[n]=s),n++)}e.length=n})},Jn=(e,t,n,r)=>{Qt(e.clients,t,()=>[]).push(new Wn(n,r))},qn=(e,t)=>{ae(e.restEncoder,t.clients.size),Y(t.clients.entries()).sort((e,t)=>t[0]-e[0]).forEach(([t,n])=>{e.resetDsCurVal(),ae(e.restEncoder,t);const r=n.length;ae(e.restEncoder,r);for(let t=0;t<r;t++){const r=n[t];e.writeDsClock(r.clock),e.writeDsLen(r.len)}})},Gn=(e,t,n)=>{const r=new Vn,s=Re(e.restDecoder);for(let i=0;i<s;i++){e.resetDsCurVal();const s=Re(e.restDecoder),i=Re(e.restDecoder),o=n.clients.get(s)||[],c=br(n,s);for(let n=0;n<i;n++){const n=e.readDsClock(),i=n+e.readDsLen();if(n<c){c<i&&Jn(r,s,c,i-c);let e=_r(o,n),l=o[e];for(!l.deleted&&l.id.clock<n&&(o.splice(e+1,0,ci(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,ci(t,l,i-l.id.clock)),l.delete(t))}else Jn(r,s,n,i-n)}}if(r.clients.size>0){const e=new rr;return ae(e.restEncoder,0),qn(e,r),e.toUint8Array()}return null},Yn=tn;class Qn extends Xt{constructor({guid:e=rn(),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=Yn(),this.guid=e,this.collectionid=t,this.share=new Map,this.store=new mr,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=on(e=>{this.on("load",()=>{this.isLoaded=!0,e(this)})});const c=()=>on(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||Tr(e.parent.doc,e=>{e.subdocsLoaded.add(this)},null,!0),this.shouldLoad=!0}getSubdocs(){return this.subdocs}getSubdocGuids(){return new Set(Y(this.subdocs).map(e=>e.guid))}transact(e,t=null){return Tr(this,e,t)}get(e,t=Qr){const n=Qt(this.share,e,()=>{const e=new t;return e._integrate(this,null),e}),r=n.constructor;if(t!==Qr&&r!==t){if(r===Qr){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,gs)}getText(e=""){return this.get(e,js)}getMap(e=""){return this.get(e,ms)}getXmlElement(e=""){return this.get(e,Rs)}getXmlFragment(e=""){return this.get(e,Ls)}toJSON(){const e={};return this.share.forEach((t,n)=>{e[n]=t.toJSON()}),e}destroy(){this.isDestroyed=!0,Y(this.subdocs).forEach(e=>e.destroy());const e=this._item;if(null!==e){this._item=null;const t=e.content;t.doc=new Qn({guid:this.guid,...t.opts,shouldLoad:!1}),t.doc._item=e,Tr(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 Xn{constructor(e){this.dsCurrVal=0,this.restDecoder=e}resetDsCurVal(){this.dsCurrVal=0}readDsClock(){return this.dsCurrVal+=Re(this.restDecoder),this.dsCurrVal}readDsLen(){const e=Re(this.restDecoder)+1;return this.dsCurrVal+=e,e}}class Zn extends Xn{constructor(e){super(e),this.keys=[],Re(e),this.keyClockDecoder=new Ke(Pe(e)),this.clientDecoder=new He(Pe(e)),this.leftClockDecoder=new Ke(Pe(e)),this.rightClockDecoder=new Ke(Pe(e)),this.infoDecoder=new Ve(Pe(e),Le),this.stringDecoder=new ze(Pe(e)),this.parentInfoDecoder=new Ve(Pe(e),Le),this.typeRefDecoder=new He(Pe(e)),this.lenDecoder=new He(Pe(e))}readLeftID(){return new hr(this.clientDecoder.read(),this.leftClockDecoder.read())}readRightID(){return new hr(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 We(this.restDecoder)}readBuf(){return Pe(this.restDecoder)}readJSON(){return We(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 er{constructor(){this.restEncoder=ie()}toUint8Array(){return oe(this.restEncoder)}resetDsCurVal(){}writeDsClock(e){ae(this.restEncoder,e)}writeDsLen(e){ae(this.restEncoder,e)}}class tr extends er{writeLeftID(e){ae(this.restEncoder,e.client),ae(this.restEncoder,e.clock)}writeRightID(e){ae(this.restEncoder,e.client),ae(this.restEncoder,e.clock)}writeClient(e){ae(this.restEncoder,e)}writeInfo(e){le(this.restEncoder,e)}writeString(e){fe(this.restEncoder,e)}writeParentInfo(e){ae(this.restEncoder,e?1:0)}writeTypeRef(e){ae(this.restEncoder,e)}writeLen(e){ae(this.restEncoder,e)}writeAny(e){be(this.restEncoder,e)}writeBuf(e){ge(this.restEncoder,e)}writeJSON(e){fe(this.restEncoder,JSON.stringify(e))}writeKey(e){fe(this.restEncoder,e)}}class nr{constructor(){this.restEncoder=ie(),this.dsCurrVal=0}toUint8Array(){return oe(this.restEncoder)}resetDsCurVal(){this.dsCurrVal=0}writeDsClock(e){const t=e-this.dsCurrVal;this.dsCurrVal=e,ae(this.restEncoder,t)}writeDsLen(e){0===e&&Oe(),ae(this.restEncoder,e-1),this.dsCurrVal+=e}}class rr extends nr{constructor(){super(),this.keyMap=new Map,this.keyClock=0,this.keyClockEncoder=new xe,this.clientEncoder=new ke,this.leftClockEncoder=new xe,this.rightClockEncoder=new xe,this.infoEncoder=new we(le),this.stringEncoder=new Ee,this.parentInfoEncoder=new we(le),this.typeRefEncoder=new ke,this.lenEncoder=new ke}toUint8Array(){const e=ie();return ae(e,0),ge(e,this.keyClockEncoder.toUint8Array()),ge(e,this.clientEncoder.toUint8Array()),ge(e,this.leftClockEncoder.toUint8Array()),ge(e,this.rightClockEncoder.toUint8Array()),ge(e,oe(this.infoEncoder)),ge(e,this.stringEncoder.toUint8Array()),ge(e,oe(this.parentInfoEncoder)),ge(e,this.typeRefEncoder.toUint8Array()),ge(e,this.lenEncoder.toUint8Array()),pe(e,oe(this.restEncoder)),oe(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){be(this.restEncoder,e)}writeBuf(e){ge(this.restEncoder,e)}writeJSON(e){be(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 sr=(e,t,n)=>{const r=new Map;n.forEach((e,n)=>{br(t,n)>e&&r.set(n,e)}),vr(t).forEach((e,t)=>{n.has(t)||r.set(t,0)}),ae(e.restEncoder,r.size),Y(r.entries()).sort((e,t)=>t[0]-e[0]).forEach(([n,r])=>{((e,t,n,r)=>{r=B(r,t[0].id.clock);const s=_r(t,r);ae(e.restEncoder,t.length-s),e.writeClient(n),ae(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)})},ir=(e,t,n,r=new Zn(e))=>Tr(t,e=>{e.local=!1;let t=!1;const n=e.doc,s=n.store,i=((e,t)=>{const n=Gt(),r=Re(e.restDecoder);for(let s=0;s<r;s++){const r=Re(e.restDecoder),s=new Array(r),i=e.readClient();let o=Re(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 Fs(pr(i,o),t),o+=t;break}case 10:{const t=Re(e.restDecoder);s[n]=new ui(pr(i,o),t),o+=t;break}default:{const c=!(192&r),l=new li(pr(i,o),null,(r&V)===V?e.readLeftID():null,null,(r&W)===W?e.readRightID():null,c?e.readParentInfo()?t.get(e.readString()):e.readLeftID():null,!c||32&~r?null:e.readString(),ai(e,r));s[n]=l,o+=l.length}}}}return n})(r,n),o=((e,t,n)=>{const r=[];let s=Y(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 mr,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!==ui){const s=Qt(u,d.id.client,()=>br(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,br(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 rr;return sr(e,c,new Map),ae(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<br(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=$r([c.update,o.update])}}else s.pendingStructs=o;const l=Gn(r,e,s);if(s.pendingDs){const t=new Zn(Te(s.pendingDs));Re(t.restDecoder);const n=Gn(t,e,s);s.pendingDs=l&&n?$r([l,n]):l||n}else s.pendingDs=l;if(t){const t=s.pendingStructs.update;s.pendingStructs=null,or(e.doc,t)}},n,!1),or=(e,t,n,r=Zn)=>{const s=Te(t);ir(s,e,n,new r(s))};class cr{constructor(){this.l=[]}}const lr=()=>new cr,ar=(e,t)=>e.l.push(t),dr=(e,t)=>{const n=e.l;n.length;e.l=n.filter(e=>t!==e),e.l.length},ur=(e,t,n)=>bn(e.l,[t,n]);class hr{constructor(e,t){this.client=e,this.clock=t}}const fr=(e,t)=>e===t||null!==e&&null!==t&&e.client===t.client&&e.clock===t.clock,pr=(e,t)=>new hr(e,t),gr=(e,t)=>void 0===t?!e.deleted:t.sv.has(e.id.client)&&(t.sv.get(e.id.client)||0)>e.id.clock&&!Kn(t.ds,e.id),yr=(e,t)=>{const n=Qt(e.meta,yr,J),r=e.doc.store;n.has(t)||(t.sv.forEach((t,n)=>{t<br(r,n)&&xr(e,pr(n,t))}),Hn(e,t.ds,e=>{}),n.add(t))};class mr{constructor(){this.clients=new Map,this.pendingStructs=null,this.pendingDs=null}}const vr=e=>{const t=new Map;return e.clients.forEach((e,n)=>{const r=e[e.length-1];t.set(n,r.id.clock+r.length)}),t},br=(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},wr=(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 Oe()}n.push(t)},_r=(e,t)=>{let n=0,r=e.length-1,s=e[r],i=s.id.clock;if(i===t)return r;let o=$(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=$((n+r)/2)}throw Oe()},kr=(e,t)=>{const n=e.clients.get(t.client);return n[_r(n,t.clock)]},Sr=(e,t,n)=>{const r=_r(t,n),s=t[r];return s.id.clock<n&&s instanceof li?(t.splice(r+1,0,ci(e,s,n-s.id.clock)),r+1):r},xr=(e,t)=>{const n=e.doc.store.clients.get(t.client);return n[Sr(e,n,t.clock)]},Er=(e,t,n)=>{const r=t.clients.get(n.client),s=_r(r,n.clock),i=r[s];return n.clock!==i.id.clock+i.length-1&&i.constructor!==Fs&&r.splice(s+1,0,ci(e,i,n.clock-i.id.clock+1)),i},Cr=(e,t,n,r,s)=>{if(0===r)return;const i=n+r;let o,c=Sr(e,t,n);do{o=t[c++],i<o.id.clock+o.length&&Sr(e,t,i),s(o)}while(c<t.length&&t[c].id.clock<i)};class Ir{constructor(e,t,n){this.doc=e,this.deleteSet=new Vn,this.beforeState=vr(e.store),this.afterState=new Map,this.changed=new Map,this.changedParentTypes=new Map,this._mergeStructs=[],this.origin=t,this.meta=new Map,this.local=n,this.subdocsAdded=new Set,this.subdocsRemoved=new Set,this.subdocsLoaded=new Set,this._needFormattingCleanup=!1}}const Or=(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))&&(zn(t.deleteSet),((e,t)=>{sr(e,t.doc.store,t.beforeState)})(e,t),qn(e,t.deleteSet),!0),Dr=(e,t,n)=>{const r=t._item;(null===r||r.id.clock<(e.beforeState.get(r.id.client)||0)&&!r.deleted)&&Qt(e.changed,t,J).add(n)},Ar=(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 li&&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},Ur=(e,t)=>{if(t<e.length){const n=e[t],r=n.doc,s=r.store,i=n.deleteSet,o=n._mergeStructs;try{zn(i),n.afterState=vr(n.doc.store),r.emit("beforeObserverCalls",[n,r]);const e=[];n.changed.forEach((t,r)=>e.push(()=>{null!==r._item&&r._item.deleted||r._callObserver(n,t)})),e.push(()=>{n.changedParentTypes.forEach((e,t)=>{t._dEH.l.length>0&&(null===t._item||!t._item.deleted)&&((e=e.filter(e=>null===e.target._item||!e.target._item.deleted)).forEach(e=>{e.currentTarget=t,e._path=null}),e.sort((e,t)=>e.path.length-t.path.length),ur(t._dEH,e,n))})}),e.push(()=>r.emit("afterTransaction",[n,r])),bn(e,[]),n._needFormattingCleanup&&As(n)}finally{r.gc&&((e,t,n)=>{for(const[r,s]of e.clients.entries()){const e=t.clients.get(r);for(let r=s.length-1;r>=0;r--){const i=s[r],o=i.clock+i.len;for(let r=_r(e,i.clock),s=e[r];r<e.length&&s.id.clock<o;s=e[++r]){const s=e[r];if(i.clock+i.len<=s.id.clock)break;s instanceof li&&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=N(r.length-1,1+_r(r,n.clock+n.len-1)),t=r[e];e>0&&t.id.clock>=n.clock;t=r[e])e-=1+Ar(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=B(_r(e,r),1);for(let t=e.length-1;t>=n;)t-=1+Ar(e,t)}});for(let e=o.length-1;e>=0;e--){const{client:t,clock:n}=o[e].id,r=s.clients.get(t),i=_r(r,n);i+1<r.length&&Ar(r,i+1)>1||i>0&&Ar(r,i)}if(n.local||n.afterState.get(r.clientID)===n.beforeState.get(r.clientID)||(((...e)=>{Nn.forEach(t=>t.print(e))})($n,An,"[yjs] ",Un,Ln,"Changed the client-id because another client seems to be using it."),r.clientID=Yn()),r.emit("afterTransactionCleanup",[n,r]),r._observers.has("update")){const e=new tr;Or(e,n)&&r.emit("update",[e.toUint8Array(),n.origin,r,n])}if(r._observers.has("updateV2")){const e=new rr;Or(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])):Ur(e,t+1)}}},Tr=(e,t,n=null,r=!0)=>{const s=e._transactionCleanups;let i=!1,o=null;null===e._transaction&&(i=!0,e._transaction=new Ir(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&&Ur(s,0)}}return o};class jr{constructor(e,t){this.gen=function*(e){const t=Re(e.restDecoder);for(let n=0;n<t;n++){const t=Re(e.restDecoder),n=e.readClient();let r=Re(e.restDecoder);for(let s=0;s<t;s++){const t=e.readInfo();if(10===t){const t=Re(e.restDecoder);yield new ui(pr(n,r),t),r+=t}else if(31&t){const s=!(192&t),i=new li(pr(n,r),null,(t&V)===V?e.readLeftID():null,null,(t&W)===W?e.readRightID():null,s?e.readParentInfo()?e.readString():e.readLeftID():null,!s||32&~t?null:e.readString(),ai(e,t));yield i,r+=i.length}else{const t=e.readLen();yield new Fs(pr(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===ui);return this.curr}}class Pr{constructor(e){this.currClient=0,this.startClock=0,this.written=0,this.encoder=e,this.clientStructs=[]}}const Lr=(e,t=nr,n=Zn)=>{const r=new t,s=new jr(new n(Te(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++,ae(r.restEncoder,t),ae(r.restEncoder,o)),t=i.id.client,o=0,n=0!==i.id.clock),i.constructor===ui&&(n=!0),n||(o=i.id.clock+i.length);0!==o&&(e++,ae(r.restEncoder,t),ae(r.restEncoder,o));const c=ie();return ae(c,e),((e,t)=>{pe(e,oe(t))})(c,r.restEncoder),r.restEncoder=c,r.toUint8Array()}return ae(r.restEncoder,0),r.toUint8Array()},Rr=(e,t)=>{if(e.constructor===Fs){const{client:n,clock:r}=e.id;return new Fs(pr(n,r+t),e.length-t)}if(e.constructor===ui){const{client:n,clock:r}=e.id;return new ui(pr(n,r+t),e.length-t)}{const n=e,{client:r,clock:s}=n.id;return new li(pr(r,s+t),null,pr(r,s+t-1),null,n.rightOrigin,n.parent,n.parentSub,n.content.splice(t))}},$r=(e,t=Zn,n=rr)=>{if(1===e.length)return e[0];const r=e.map(e=>new t(Te(e)));let s=r.map(e=>new jr(e,!0)),i=null;const o=new n,c=new Pr(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===ui?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)Nr(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===ui)i.struct.length=n.id.clock+n.length-i.struct.id.clock;else{Nr(c,i.struct,i.offset);const e=n.id.clock-i.struct.id.clock-i.struct.length;i={struct:new ui(pr(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===ui?i.struct.length-=t:n=Rr(n,t)),i.struct.mergeWith(n)||(Nr(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!==ui;n=e.next())Nr(c,i.struct,i.offset),i={struct:n,offset:0}}null!==i&&(Nr(c,i.struct,i.offset),i=null),Br(c);const l=r.map(e=>(e=>{const t=new Vn,n=Re(e.restDecoder);for(let r=0;r<n;r++){e.resetDsCurVal();const n=Re(e.restDecoder),r=Re(e.restDecoder);if(r>0){const s=Qt(t.clients,n,()=>[]);for(let t=0;t<r;t++)s.push(new Wn(e.readDsClock(),e.readDsLen()))}}return t})(e)),a=(e=>{const t=new Vn;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++)G(i,e[t].clients.get(s)||[]);t.clients.set(s,i)}});return zn(t),t})(l);return qn(o,a),o.toUint8Array()},Mr=e=>{e.written>0&&(e.clientStructs.push({written:e.written,restEncoder:oe(e.encoder.restEncoder)}),e.encoder.restEncoder=ie(),e.written=0)},Nr=(e,t,n)=>{e.written>0&&e.currClient!==t.id.client&&Mr(e),0===e.written&&(e.currClient=t.id.client,e.encoder.writeClient(t.id.client),ae(e.encoder.restEncoder,t.id.clock+n)),t.write(e.encoder,n),e.written++},Br=e=>{Mr(e);const t=e.encoder.restEncoder;ae(t,e.clientStructs.length);for(let n=0;n<e.clientStructs.length;n++){const r=e.clientStructs[n];ae(t,r.written),pe(t,r.restEncoder)}},Fr="You must not compute changes after the event-handler fired.";class Wr{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=Vr(this.currentTarget,this.target))}deletes(e){return Kn(this.transaction.deleteSet,e.id)}get keys(){if(null===this._keys){if(0===this.transaction.doc._transactionCleanups.length)throw Ce(Fr);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=q(e.content.getContent())}else null!==e&&this.deletes(e)?(s="update",i=q(e.content.getContent())):(s="add",i=void 0)}else{if(!this.deletes(r))return;s="delete",i=q(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 Ce(Fr);const t=this.target,n=J(),r=J(),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 Vr=(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},Hr=()=>{((...e)=>{e.unshift($n),Nn.forEach(t=>t.print(e))})("Invalid access: Add Yjs type to a document before reading data.")};let Kr=0;class zr{constructor(e,t){e.marker=!0,this.p=e,this.index=t,this.timestamp=Kr++}}const Jr=(e,t,n)=>{e.p.marker=!1,e.p=t,t.marker=!0,e.index=n,e.timestamp=Kr++},qr=(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)=>M(t-e.index)<M(t-n.index)?e:n);let r=e._start,s=0;for(null!==n&&(r=n.p,s=n.index,(e=>{e.timestamp=Kr++})(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&&M(n.index-s)<r.parent.length/80?(Jr(n,r,s),n):((e,t,n)=>{if(e.length>=80){const r=e.reduce((e,t)=>e.timestamp<t.timestamp?e:t);return Jr(r,t,n),r}{const r=new zr(t,n);return e.push(r),r}})(e._searchMarker,r,s)},Gr=(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=B(t,s.index+n))}},Yr=(e,t,n)=>{const r=e,s=t.changedParentTypes;for(;Qt(s,e,()=>[]).push(n),null!==e._item;)e=e._item.parent;ur(r._eH,n,t)};class Qr{constructor(){this._item=null,this._map=new Map,this._start=null,this.doc=null,this._length=0,this._eH=lr(),this._dEH=lr(),this._searchMarker=null}get parent(){return this._item?this._item.parent:null}_integrate(e,t){this.doc=e,this._item=t}_copy(){throw Ie()}clone(){throw Ie()}_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){ar(this._eH,e)}observeDeep(e){ar(this._dEH,e)}unobserve(e){dr(this._eH,e)}unobserveDeep(e){dr(this._dEH,e)}toJSON(){}}const Xr=(e,t,n)=>{e.doc??Hr(),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},Zr=e=>{e.doc??Hr();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},es=(e,t)=>{let n=0,r=e._start;for(e.doc??Hr();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}},ts=(e,t)=>{const n=[];return es(e,(r,s)=>{n.push(t(r,s,e))}),n},ns=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}}}},rs=(e,t)=>{e.doc??Hr();const n=qr(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}},ss=(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 li(pr(o,br(c,o)),s,s&&s.lastId,l,l&&l.id,t,null,new Ys(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 li(pr(o,br(c,o)),s,s&&s.lastId,l,l&&l.id,t,null,new Ws(new Uint8Array(n))),s.integrate(e,0);break;case Qn:s=new li(pr(o,br(c,o)),s,s&&s.lastId,l,l&&l.id,t,null,new Ks(n)),s.integrate(e,0);break;default:if(!(n instanceof Qr))throw new Error("Unexpected content type in insert operation");s=new li(pr(o,br(c,o)),s,s&&s.lastId,l,l&&l.id,t,null,new oi(n)),s.integrate(e,0)}}}),d()},is=()=>Ce("Length exceeded!"),os=(e,t,n,r)=>{if(n>t._length)throw is();if(0===n)return t._searchMarker&&Gr(t._searchMarker,n,r.length),ss(e,t,null,r);const s=n,i=qr(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&&xr(e,pr(o.id.client,o.id.clock+n));break}n-=o.length}return t._searchMarker&&Gr(t._searchMarker,s,r.length),ss(e,t,o,r)},cs=(e,t,n,r)=>{if(0===r)return;const s=n,i=r,o=qr(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&&xr(e,pr(c.id.client,c.id.clock+n)),n-=c.length);for(;r>0&&null!==c;)c.deleted||(r<c.length&&xr(e,pr(c.id.client,c.id.clock+r)),c.delete(e),r-=c.length),c=c.right;if(r>0)throw is();t._searchMarker&&Gr(t._searchMarker,s,-i+r)},ls=(e,t,n)=>{const r=t._map.get(n);void 0!==r&&r.delete(e)},as=(e,t,n,r)=>{const s=t._map.get(n)||null,i=e.doc,o=i.clientID;let c;if(null==r)c=new Ys([r]);else switch(r.constructor){case Number:case Object:case Boolean:case Array:case String:case Date:case BigInt:c=new Ys([r]);break;case Uint8Array:c=new Ws(r);break;case Qn:c=new Ks(r);break;default:if(!(r instanceof Qr))throw new Error("Unexpected content type");c=new oi(r)}new li(pr(o,br(i.store,o)),s,s&&s.lastId,null,null,t,n,c).integrate(e,0)},ds=(e,t)=>{e.doc??Hr();const n=e._map.get(t);return void 0===n||n.deleted?void 0:n.content.getContent()[n.length-1]},us=e=>{const t={};return e.doc??Hr(),e._map.forEach((e,n)=>{e.deleted||(t[n]=e.content.getContent()[e.length-1])}),t},hs=(e,t)=>{e.doc??Hr();const n=e._map.get(t);return void 0!==n&&!n.deleted},fs=e=>{return e.doc??Hr(),t=e._map.entries(),n=e=>!e[1].deleted,Bn(()=>{let e;do{e=t.next()}while(!e.done&&!n(e.value));return e});var t,n};class ps extends Wr{}class gs extends Qr{constructor(){super(),this._prelimContent=[],this._searchMarker=[]}static from(e){const t=new gs;return t.push(e),t}_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 Qr?e.clone():e)),e}get length(){return this.doc??Hr(),this._length}_callObserver(e,t){super._callObserver(e,t),Yr(this,e,new ps(this,e))}insert(e,t){null!==this.doc?Tr(this.doc,n=>{os(n,this,e,t)}):this._prelimContent.splice(e,0,...t)}push(e){null!==this.doc?Tr(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;ss(e,t,r,n)})(t,this,e)}):this._prelimContent.push(...e)}unshift(e){this.insert(0,e)}delete(e,t=1){null!==this.doc?Tr(this.doc,n=>{cs(n,this,e,t)}):this._prelimContent.splice(e,t)}get(e){return rs(this,e)}toArray(){return Zr(this)}slice(e=0,t=this.length){return Xr(this,e,t)}toJSON(){return this.map(e=>e instanceof Qr?e.toJSON():e)}map(e){return ts(this,e)}forEach(e){es(this,e)}[Symbol.iterator](){return ns(this)}_write(e){e.writeTypeRef(Zs)}}class ys extends Wr{constructor(e,t,n){super(e,t),this.keysChanged=n}}class ms extends Qr{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 ms}clone(){const e=new ms;return this.forEach((t,n)=>{e.set(n,t instanceof Qr?t.clone():t)}),e}_callObserver(e,t){Yr(this,e,new ys(this,e,t))}toJSON(){this.doc??Hr();const e={};return this._map.forEach((t,n)=>{if(!t.deleted){const r=t.content.getContent()[t.length-1];e[n]=r instanceof Qr?r.toJSON():r}}),e}get size(){return[...fs(this)].length}keys(){return Fn(fs(this),e=>e[0])}values(){return Fn(fs(this),e=>e[1].content.getContent()[e[1].length-1])}entries(){return Fn(fs(this),e=>[e[0],e[1].content.getContent()[e[1].length-1]])}forEach(e){this.doc??Hr(),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?Tr(this.doc,t=>{ls(t,this,e)}):this._prelimContent.delete(e)}set(e,t){return null!==this.doc?Tr(this.doc,n=>{as(n,this,e,t)}):this._prelimContent.set(e,t),t}get(e){return ds(this,e)}has(e){return hs(this,e)}clear(){null!==this.doc?Tr(this.doc,e=>{this.forEach(function(t,n,r){ls(e,r,n)})}):this._prelimContent.clear()}_write(e){e.writeTypeRef(ei)}}const vs=(e,t)=>e===t||"object"==typeof e&&"object"==typeof t&&e&&t&&((e,t)=>e===t||pn(e)===pn(t)&&((e,t)=>{for(const n in e)if(!t(e[n],n))return!1;return!0})(e,(e,n)=>(void 0!==e||gn(t,n))&&t[n]===e))(e,t);class bs{constructor(e,t,n,r){this.left=e,this.right=t,this.index=n,this.currentAttributes=r}forward(){if(null===this.right&&Oe(),this.right.content.constructor===Js)this.right.deleted||Ss(this.currentAttributes,this.right.content);else this.right.deleted||(this.index+=this.right.length);this.left=this.right,this.right=this.right.right}}const ws=(e,t,n)=>{for(;null!==t.right&&n>0;){if(t.right.content.constructor===Js)t.right.deleted||Ss(t.currentAttributes,t.right.content);else t.right.deleted||(n<t.right.length&&xr(e,pr(t.right.id.client,t.right.id.clock+n)),t.index+=t.right.length,n-=t.right.length);t.left=t.right,t.right=t.right.right}return t},_s=(e,t,n,r)=>{const s=new Map,i=r?qr(t,n):null;if(i){const t=new bs(i.p.left,i.p,i.index,s);return ws(e,t,n-i.index)}{const r=new bs(null,t._start,0,s);return ws(e,r,n)}},ks=(e,t,n,r)=>{for(;null!==n.right&&(!0===n.right.deleted||n.right.content.constructor===Js&&vs(r.get(n.right.content.key),n.right.content.value));)n.right.deleted||r.delete(n.right.content.key),n.forward();const s=e.doc,i=s.clientID;r.forEach((r,o)=>{const c=n.left,l=n.right,a=new li(pr(i,br(s.store,i)),c,c&&c.lastId,l,l&&l.id,t,null,new Js(o,r));a.integrate(e,0),n.right=a,n.forward()})},Ss=(e,t)=>{const{key:n,value:r}=t;null===r?e.delete(n):e.set(n,r)},xs=(e,t)=>{for(;null!==e.right&&(e.right.deleted||e.right.content.constructor===Js&&vs(t[e.right.content.key]??null,e.right.content.value));)e.forward()},Es=(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(!vs(a,l)){o.set(c,a);const{left:r,right:d}=n;n.right=new li(pr(i,br(s.store,i)),r,r&&r.lastId,d,d&&d.id,t,null,new Js(c,l)),n.right.integrate(e,0),n.forward()}}return o},Cs=(e,t,n,r,s)=>{n.currentAttributes.forEach((e,t)=>{void 0===s[t]&&(s[t]=null)});const i=e.doc,o=i.clientID;xs(n,s);const c=Es(e,t,n,s),l=r.constructor===String?new Qs(r):r instanceof Qr?new oi(r):new zs(r);let{left:a,right:d,index:u}=n;t._searchMarker&&Gr(t._searchMarker,n.index,l.getLength()),d=new li(pr(o,br(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(),ks(e,t,n,c)},Is=(e,t,n,r,s)=>{const i=e.doc,o=i.clientID;xs(n,s);const c=Es(e,t,n,s);e:for(;null!==n.right&&(r>0||c.size>0&&(n.right.deleted||n.right.content.constructor===Js));){if(!n.right.deleted)switch(n.right.content.constructor){case Js:{const{key:t,value:i}=n.right.content,o=s[t];if(void 0!==o){if(vs(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&&xr(e,pr(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 li(pr(o,br(i.store,o)),n.left,n.left&&n.left.lastId,n.right,n.right&&n.right.id,t,null,new Qs(s)),n.right.integrate(e,0),n.forward()}ks(e,t,n,c)},Os=(e,t,n,r,s)=>{let i=t;const o=Gt();for(;i&&(!i.countable||i.deleted);){if(!i.deleted&&i.content.constructor===Js){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 Js:{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||Ss(s,n);break}}}t=t.right}return c},Ds=e=>{let t=0;return Tr(e.doc,n=>{let r=e._start,s=e._start,i=Gt();const o=Yt(i);for(;s;){if(!1===s.deleted)if(s.content.constructor===Js)Ss(o,s.content);else t+=Os(n,r,s,i,o),i=Yt(o),r=s;s=s.right}}),t},As=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&&Cr(e,n.store.clients.get(r),i,s,e=>{e.deleted||e.content.constructor!==Js||e.constructor===Fs||t.add(e.parent)})}Tr(n,n=>{Hn(e,e.deleteSet,e=>{if(e instanceof Fs||!e.parent._hasFormatting||t.has(e.parent))return;const r=e.parent;e.content.constructor===Js?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===Js){const r=t.content.key;n.has(r)?t.delete(e):n.add(r)}t=t.left}})(n,e)});for(const e of t)Ds(e)})},Us=(e,t,n)=>{const r=n,s=Yt(t.currentAttributes),i=t.right;for(;n>0&&null!==t.right;){if(!1===t.right.deleted)switch(t.right.content.constructor){case oi:case zs:case Qs:n<t.right.length&&xr(e,pr(t.right.id.client,t.right.id.clock+n)),n-=t.right.length,t.right.delete(e)}t.forward()}i&&Os(e,i,t.right,s,t.currentAttributes);const o=(t.left||t.right).parent;return o._searchMarker&&Gr(o._searchMarker,t.index,-r+n),t};class Ts extends Wr{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=[];Tr(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=un({},o))),l=0}e&&t.push(e),i=null}};for(;null!==s;){switch(s.content.constructor){case oi:case zs: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 Qs: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 Js:{const{key:t,value:c}=s.content;if(this.adds(s)){if(!this.deletes(s)){const l=n.get(t)??null;vs(l,c)?null!==c&&s.delete(e):("retain"===i&&d(),vs(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;vs(e,c)||("retain"===i&&d(),o[t]=e)}else if(!s.deleted){r.set(t,c);const n=o[t];void 0!==n&&(vs(n,c)?null!==n&&s.delete(e):("retain"===i&&d(),null===c?delete o[t]:o[t]=c))}s.deleted||("insert"===i&&d(),Ss(n,s.content));break}}s=s.right}for(d();t.length>0;){const e=t[t.length-1];if(void 0===e.retain||void 0!==e.attributes)break;t.pop()}}),this._delta=t}return this._delta}}class js extends Qr{constructor(e){super(),this._pending=void 0!==e?[()=>this.insert(0,e)]:[],this._searchMarker=[],this._hasFormatting=!1}get length(){return this.doc??Hr(),this._length}_integrate(e,t){super._integrate(e,t);try{this._pending.forEach(e=>e())}catch(e){}this._pending=null}_copy(){return new js}clone(){const e=new js;return e.applyDelta(this.toDelta()),e}_callObserver(e,t){super._callObserver(e,t);const n=new Ts(this,e,t);Yr(this,e,n),!e.local&&this._hasFormatting&&(e._needFormattingCleanup=!0)}toString(){this.doc??Hr();let e="",t=this._start;for(;null!==t;)!t.deleted&&t.countable&&t.content.constructor===Qs&&(e+=t.content.str),t=t.right;return e}toJSON(){return this.toString()}applyDelta(e,{sanitize:t=!0}={}){null!==this.doc?Tr(this.doc,n=>{const r=new bs(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)&&Cs(n,this,r,o,i.attributes||{})}else void 0!==i.retain?Is(n,this,r,i.retain,i.attributes||{}):void 0!==i.delete&&Us(n,r,i.delete)}}):this._pending.push(()=>this.applyDelta(e))}toDelta(e,t,n){this.doc??Hr();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(gr(c,e)||void 0!==t&&gr(c,t))switch(c.content.constructor){case Qs:{const r=s.get("ychange");void 0===e||gr(c,e)?void 0===t||gr(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 oi:case zs:{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 Js:gr(c,e)&&(l(),Ss(s,c.content))}c=c.right}l()};return e||t?Tr(i,n=>{e&&yr(n,e),t&&yr(n,t),a()},"cleanup"):a(),r}insert(e,t,n){if(t.length<=0)return;const r=this.doc;null!==r?Tr(r,r=>{const s=_s(r,this,e,!n);n||(n={},s.currentAttributes.forEach((e,t)=>{n[t]=e})),Cs(r,this,s,t,n)}):this._pending.push(()=>this.insert(e,t,n))}insertEmbed(e,t,n){const r=this.doc;null!==r?Tr(r,r=>{const s=_s(r,this,e,!n);Cs(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?Tr(n,n=>{Us(n,_s(n,this,e,!0),t)}):this._pending.push(()=>this.delete(e,t))}format(e,t,n){if(0===t)return;const r=this.doc;null!==r?Tr(r,r=>{const s=_s(r,this,e,!1);null!==s.right&&Is(r,this,s,t,n)}):this._pending.push(()=>this.format(e,t,n))}removeAttribute(e){null!==this.doc?Tr(this.doc,t=>{ls(t,this,e)}):this._pending.push(()=>this.removeAttribute(e))}setAttribute(e,t){null!==this.doc?Tr(this.doc,n=>{as(n,this,e,t)}):this._pending.push(()=>this.setAttribute(e,t))}getAttribute(e){return ds(this,e)}getAttributes(){return us(this)}_write(e){e.writeTypeRef(ti)}}class Ps{constructor(e,t=()=>!0){this._filter=t,this._root=e,this._currentNode=e._start,this._firstCall=!0,e.doc??Hr()}[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!==Rs&&t.constructor!==Ls||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 Ls extends Qr{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 Ls}clone(){const e=new Ls;return e.insert(0,this.toArray().map(e=>e instanceof Qr?e.clone():e)),e}get length(){return this.doc??Hr(),null===this._prelimContent?this._length:this._prelimContent.length}createTreeWalker(e){return new Ps(this,e)}querySelector(e){e=e.toUpperCase();const t=new Ps(this,t=>t.nodeName&&t.nodeName.toUpperCase()===e).next();return t.done?null:t.value}querySelectorAll(e){return e=e.toUpperCase(),Y(new Ps(this,t=>t.nodeName&&t.nodeName.toUpperCase()===e))}_callObserver(e,t){Yr(this,e,new $s(this,t,e))}toString(){return ts(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),es(this,s=>{r.insertBefore(s.toDOM(e,t,n),null)}),r}insert(e,t){null!==this.doc?Tr(this.doc,n=>{os(n,this,e,t)}):this._prelimContent.splice(e,0,...t)}insertAfter(e,t){if(null!==this.doc)Tr(this.doc,n=>{const r=e&&e instanceof Qr?e._item:e;ss(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 Ce("Reference item not found");n.splice(r,0,...t)}}delete(e,t=1){null!==this.doc?Tr(this.doc,n=>{cs(n,this,e,t)}):this._prelimContent.splice(e,t)}toArray(){return Zr(this)}push(e){this.insert(this.length,e)}unshift(e){this.insert(0,e)}get(e){return rs(this,e)}slice(e=0,t=this.length){return Xr(this,e,t)}forEach(e){es(this,e)}_write(e){e.writeTypeRef(ri)}}class Rs extends Ls{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 Rs(this.nodeName)}clone(){const e=new Rs(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 Qr?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?Tr(this.doc,t=>{ls(t,this,e)}):this._prelimAttrs.delete(e)}setAttribute(e,t){null!==this.doc?Tr(this.doc,n=>{as(n,this,e,t)}):this._prelimAttrs.set(e,t)}getAttribute(e){return ds(this,e)}hasAttribute(e){return hs(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&&gr(s,t)&&(n[r]=s.content.getContent()[s.length-1])}),n})(this,e):us(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 es(this,s=>{r.appendChild(s.toDOM(e,t,n))}),void 0!==n&&n._createAssociation(r,this),r}_write(e){e.writeTypeRef(ni),e.writeKey(this.nodeName)}}class $s extends Wr{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 Ms extends ms{constructor(e){super(),this.hookName=e}_copy(){return new Ms(this.hookName)}clone(){const e=new Ms(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(si),e.writeKey(this.hookName)}}class Ns extends js{get nextSibling(){const e=this._item?this._item.next:null;return e?e.content.type:null}get prevSibling(){const e=this._item?this._item.prev:null;return e?e.content.type:null}_copy(){return new Ns}clone(){const e=new Ns;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(ii)}}class Bs{constructor(e,t){this.id=e,this.length=t}get deleted(){throw Ie()}mergeWith(e){return!1}write(e,t,n){throw Ie()}integrate(e,t){throw Ie()}}class Fs extends Bs{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),wr(e.doc.store,this)}write(e,t){e.writeInfo(0),e.writeLen(this.length-t)}getMissing(e,t){return null}}class Ws{constructor(e){this.content=e}getLength(){return 1}getContent(){return[this.content]}isCountable(){return!0}copy(){return new Ws(this.content)}splice(e){throw Ie()}mergeWith(e){return!1}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeBuf(this.content)}getRef(){return 3}}class Vs{constructor(e){this.len=e}getLength(){return this.len}getContent(){return[]}isCountable(){return!1}copy(){return new Vs(this.len)}splice(e){const t=new Vs(this.len-e);return this.len=e,t}mergeWith(e){return this.len+=e.len,!0}integrate(e,t){Jn(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 Hs=(e,t)=>new Qn({guid:e,...t,shouldLoad:t.shouldLoad||t.autoLoad||!1});class Ks{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 Ks(Hs(this.doc.guid,this.opts))}splice(e){throw Ie()}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 zs{constructor(e){this.embed=e}getLength(){return 1}getContent(){return[this.embed]}isCountable(){return!0}copy(){return new zs(this.embed)}splice(e){throw Ie()}mergeWith(e){return!1}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeJSON(this.embed)}getRef(){return 5}}class Js{constructor(e,t){this.key=e,this.value=t}getLength(){return 1}getContent(){return[]}isCountable(){return!1}copy(){return new Js(this.key,this.value)}splice(e){throw Ie()}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 qs{constructor(e){this.arr=e}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new qs(this.arr)}splice(e){const t=new qs(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 Gs="development"===xn("node_env");class Ys{constructor(e){this.arr=e,Gs&&mn(e)}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new Ys(this.arr)}splice(e){const t=new Ys(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 Qs{constructor(e){this.str=e}getLength(){return this.str.length}getContent(){return this.str.split("")}isCountable(){return!0}copy(){return new Qs(this.str)}splice(e){const t=new Qs(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 Xs=[e=>new gs,e=>new ms,e=>new js,e=>new Rs(e.readKey()),e=>new Ls,e=>new Ms(e.readKey()),e=>new Ns],Zs=0,ei=1,ti=2,ni=3,ri=4,si=5,ii=6;class oi{constructor(e){this.type=e}getLength(){return 1}getContent(){return[this.type]}isCountable(){return!0}copy(){return new oi(this.type._copy())}splice(e){throw Ie()}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 ci=(e,t,n)=>{const{client:r,clock:s}=t.id,i=new li(pr(r,s+n),t,pr(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=pr(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 li extends Bs{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>=br(t,this.origin.client))return this.origin.client;if(this.rightOrigin&&this.rightOrigin.client!==this.id.client&&this.rightOrigin.clock>=br(t,this.rightOrigin.client))return this.rightOrigin.client;if(this.parent&&this.parent.constructor===hr&&this.id.client!==this.parent.client&&this.parent.clock>=br(t,this.parent.client))return this.parent.client;if(this.origin&&(this.left=Er(e,t,this.origin),this.origin=this.left.lastId),this.rightOrigin&&(this.right=xr(e,this.rightOrigin),this.rightOrigin=this.right.id),this.left&&this.left.constructor===Fs||this.right&&this.right.constructor===Fs)this.parent=null;else if(this.parent){if(this.parent.constructor===hr){const e=kr(t,this.parent);e.constructor===Fs?this.parent=null:this.parent=e.content.type}}else this.left&&this.left.constructor===li?(this.parent=this.left.parent,this.parentSub=this.left.parentSub):this.right&&this.right.constructor===li&&(this.parent=this.right.parent,this.parentSub=this.right.parentSub);return null}integrate(e,t){if(t>0&&(this.id.clock+=t,this.left=Er(e,e.doc.store,pr(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),fr(this.origin,t.origin)){if(t.id.client<this.id.client)n=t,r.clear();else if(fr(this.rightOrigin,t.rightOrigin))break}else{if(null===t.origin||!s.has(kr(e.doc.store,t.origin)))break;r.has(kr(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),wr(e.doc.store,this),this.content.integrate(e,this),Dr(e,this.parent,this.parentSub),(null!==this.parent._item&&this.parent._item.deleted||null!==this.parentSub&&null!==this.right)&&this.delete(e)}else new Fs(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:pr(this.id.client,this.id.clock+this.length-1)}mergeWith(e){if(this.constructor===e.constructor&&fr(e.origin,this.lastId)&&this.right===e&&fr(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(),Jn(e.deleteSet,this.id.client,this.id.clock,this.length),Dr(e,t,this.parentSub),this.content.delete(e)}}gc(e,t){if(!this.deleted)throw Oe();this.content.gc(e),t?((e,t,n)=>{const r=e.clients.get(t.id.client);r[_r(r,t.id.clock)]=n})(e,this,new Fs(this.id,this.length)):this.content=new Vs(this.length)}write(e,t){const n=t>0?pr(this.id.client,this.id.clock+t-1):this.origin,r=this.rightOrigin,s=this.parentSub,i=31&this.content.getRef()|(null===n?0:V)|(null===r?0:W)|(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 Oe()})(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===hr?(e.writeParentInfo(!1),e.writeLeftID(t)):Oe();null!==s&&e.writeString(s)}this.content.write(e,t)}}const ai=(e,t)=>di[31&t](e),di=[()=>{Oe()},e=>new Vs(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 qs(n)},e=>new Ws(e.readBuf()),e=>new Qs(e.readString()),e=>new zs(e.readJSON()),e=>new Js(e.readKey(),e.readJSON()),e=>new oi(Xs[e.readTypeRef()](e)),e=>{const t=e.readLen(),n=[];for(let r=0;r<t;r++)n.push(e.readAny());return new Ys(n)},e=>new Ks(Hs(e.readString(),e.readAny())),()=>{Oe()}];class ui extends Bs{get deleted(){return!0}delete(){}mergeWith(e){return this.constructor===e.constructor&&(this.length+=e.length,!0)}integrate(e,t){Oe()}write(e,t){e.writeInfo(10),ae(e.restEncoder,this.length-t)}getMissing(e,t){return null}}const hi="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},fi="__ $YJS$ __";function pi(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}hi[fi],hi[fi]=!0;const gi=new FinalizationRegistry(({cache:e,key:t})=>{delete e[t]});function yi(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=bi(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=bi(n,r,s),o=null===(t=this.cache[i])||void 0===t?void 0:t.deref();o&&gi.unregister(o),this.cache[i]=new WeakRef(e),gi.register(e,{cache:this.cache,key:i},e)},delete(e){gi.unregister(e);const t=bi(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 mi=new WeakSet;function vi(e){if(mi.has(e))throw new Error(`Y.Doc ${e.meta.parentId} has been destroyed`)}function bi(e,t,n){return`${e}[${t}].${n}`}const{getByKeyPath:wi}=e.Dexie;let _i=null;function ki(e){_i=e}function Si(){}const xi=new WeakMap;function Ei(){return e.Dexie.Events(null,"load","sync","error")}class Ci{static getOrCreateDocument(e,t,n,r){var s,i;const o=yi(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 Qn({meta:{db:e,updatesTable:s,parentProp:r,parentTable:n,parentId:i}}),t.add(o),o.on("destroy",()=>{mi.add(o),t.delete(o)}),o)}(e,o,t,n,c,r)}static load(e,t){var n;let r=xi.get(e);return r?(++r.refCount,null!=(null==t?void 0:t.gracePeriod)&&r.graceTimeout<t.gracePeriod&&(r.graceTimeout=t.gracePeriod),r.graceTimer&&(clearTimeout(r.graceTimer),r.graceTimer=null)):(r=new Ci(e),r.graceTimeout=null!==(n=null==t?void 0:t.gracePeriod)&&void 0!==n?n:-1,xi.set(e,r)),r}static release(e){if(!e||mi.has(e))return;const t=xi.get(e);t?--t.refCount<=0&&(t.graceTimeout<0?t._release():t.graceTimer||(t.graceTimer=setTimeout(()=>{t.graceTimer=null,0===t.refCount&&t._release()},t.graceTimeout))):e.destroy()}_release(){this.doc&&Promise.resolve(Ci.on("beforeunload").fire(this)).finally(()=>{var e;0===this.refCount&&(null===(e=this.doc)||void 0===e||e.destroy())})}static for(e){return xi.get(e)}static get currentUpdateRow(){return _i}get whenLoaded(){return this._whenLoaded||(this._whenLoaded=new Promise((t,n)=>{this.doc?this.doc.isLoaded?t():this._error?n(this._error):mi.has(this.doc)?n(new e.Dexie.AbortError("Document was destroyed before loaded")):(this.on("load",t),this.on("error",n),this.doc.on("destroy",()=>n(new e.Dexie.AbortError("Document was destroyed before loaded")))):n(new Error("No Y.Doc associated with this provider"))})),this._whenLoaded}get whenSynced(){return this._whenSynced||(this._whenSynced=new Promise((t,n)=>{this.doc?this.doc.isSynced?t():this._error?n(this._error):mi.has(this.doc)?n(new e.Dexie.AbortError("Document was destroyed before synced")):(this.on("sync",t),this.on("error",n),this.doc.on("destroy",()=>n(new e.Dexie.AbortError("Document was destroyed before synced")))):n(new Error("No Y.Doc associated with this provider"))})),this._whenSynced}constructor(t){this.refCount=1,this.cleanupHandlers=[],this.graceTimeout=-1,this.doc=null,this.destroyed=!1,this.on=Ei(),this.doc=t,this.off=(e,t)=>{var n;return null===(n=this.on[e])||void 0===n?void 0:n.unsubscribe(t)},"dispose"in Symbol&&(this[Symbol.dispose]=()=>Ci.release(t)),t.on("load",()=>this.on("load").fire()),t.on("sync",e=>!1!==e&&this.on("sync").fire()),t.on("destroy",this.destroy.bind(this)),this.on("error",e=>{this._error=e});const{db:n,parentTable:r,parentId:s,updatesTable:i}=t.meta||{};if(!n||!r||!i)throw new Error("Missing Dexie-related metadata in Y.Doc. Documents need to be obtained through Y.Doc properties from dexie queries.");if(!n.table(r)||!n.table(i))throw new Error(`Table ${r} or ${i} not found in db`);vi(t),this.stopObserving=function(t,n,r,s,i,o){let c=0,l=!0;const a=e.liveQuery(()=>{vi(n);const t=r.table(i);return Promise.all([(c>0?t.where("i").between(c,1/0,!1).toArray().then(t=>t.filter(t=>0===e.cmp(t.k,o))):t.where({k:o}).toArray()).then(e=>e),r.table(s).where(":id").equals(o).toArray()])}).subscribe(([e,r])=>{e.length>0&&(c=e[e.length-1].i),0!==r.length?(vi(n),e.length>0&&Tr(n,()=>{e.forEach(e=>{try{ki(e),or(n,e.u)}finally{ki(null)}})},t,!1),l&&(l=!1,n.emit("load",[n]))):n.destroy()},e=>{t.on("error").fire(e)}),d=(e,n)=>{n!==t&&r.table(i).add({k:o,u:e,f:1}).then(e=>{e===c-1&&++c}).catch(e=>{t.on("error").fire(e)})},u=()=>{a.unsubscribe(),n.off("updateV2",d),n.off("destroy",u)};return n.on("updateV2",d),n.on("destroy",u),u}(this,t,n,r,i,s),Ci.on("new").fire(this)}destroy(){var e;xi.delete(this.doc),this.doc=null,this.destroyed=!0,this.refCount=0,null===(e=this.stopObserving)||void 0===e||e.call(this),this.on=Ei(),this.cleanupHandlers.forEach(e=>e())}addCleanupHandler(e){this.cleanupHandlers.push("function"==typeof e?e:()=>e.unsubscribe())}}function Ii(t,n){return r(this,void 0,void 0,function*(){var s;const i={};let o,c=!1;for(const l of t)try{switch(l.type){case"u-s":{const e=pi(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=pi(n,l.table,l.prop);e&&(yield n.transaction("rw",e,t=>r(this,void 0,void 0,function*(){let n=yield t.table(e.name).get(Jt);yield t.table(e.name).put(Object.assign(Object.assign({},n||{i:Jt}),{unsentFrom:Math.max((null==n?void 0:n.unsentFrom)||1,l.i+1)}))})));break}case"u-reject":{const t=pi(n,l.table,l.prop);if(!t)break;const r=null===(s=yield t.get(l.i))||void 0===s?void 0:s.k;if(null!=r){yield n.transaction("rw",t,n=>(n.idbtrans._rejecting_y_ypdate=!0,t.where("i").aboveOrEqual(l.i).filter(t=>0===e.cmp(t.k,r)&&!(1&~(t.f||0))).delete()));const s=Ci.getDocCache(n.dx).find(l.table,r,l.prop);s&&s.destroy()}break}case"in-sync":{const e=Ci.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}})}Ci.on=e.Dexie.Events(null,{new:[function(e,t){return e===Si?t:function(){e.apply(this,arguments),t.apply(this,arguments)}}],beforeunload:[function(e,t){return e===Si?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)}}]}),Ci.getDocCache=yi,e.Dexie.DexieYProvider?Ci=e.Dexie.DexieYProvider||Ci:e.Dexie.DexieYProvider=Ci;function Oi(t,n,s){return r(this,arguments,void 0,function*(t,n,{yDownloadedRealms:s,realms:l}){if(s&&l&&l.every(e=>"*"===s[e]))return;const a=yield nt(t),d={"Content-Type":"application/json",Accept:"application/octet-stream"};a&&(d.Authorization=`Bearer ${a.accessToken}`);const u=yield fetch(`${n}/y/download`,{body:jt.stringify({downloadedRealms:s||{}}),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),Je,function(s){return o(this,arguments,function*(){var o,l,a,d;let u=null,h=null,f=null,p=[];function g(e){return r(this,void 0,void 0,function*(){const r=p[p.length-1];if(p.length>0){if(!u||!h||!f)throw new Error(`Protocol error from ${n}/y/download`);const e=pi(t,h,f);e&&(yield e.bulkAdd(p)),p=[]}u&&(h&&f&&r||e)&&(yield t.$syncState.update("syncState",t=>{const n=t.yDownloadedRealms||{};n[u]=e?"*":{tbl:h,prop:f,key:r.k},t.yDownloadedRealms=n}))})}try{try{for(var y,m=!0,v=c(s);!(o=(y=yield i(v.next())).done);m=!0){d=y.value,m=!1;const e=new Ue(d);for(;je(e);)switch(Le(e)){case 1:yield i(g(!0)),u=Me(e);break;case 2:yield i(g(!1)),h=Me(e),f=Me(e);break;case 3:{const t=We(e),n=Pe(e);p.push({k:t,u:n});break}}yield i(g(!1))}}catch(e){l={error:e}}finally{try{m||o||!(a=v.return)||(yield i(a.call(v)))}finally{if(l)throw l.error}}yield i(g(!0))}catch(t){throw t instanceof e.DexieError||(yield i(g(!1))),t}})})})}const Di="currentSyncWorker";function Ai(e,t,n,s){return Ui(e,t,n,s).then(t=>((null==s?void 0:s.justCheckIfNeeded)||e.syncStateChangedEvent.next({phase:"in-sync"}),t)).catch(i=>r(this,void 0,void 0,function*(){return(null==s?void 0:s.justCheckIfNeeded)?Promise.reject(i):Wt&&(null==s?void 0:s.retryImmediatelyOnFetchError)&&"TypeError"===(null==i?void 0:i.name)&&/fetch/.test(null==i?void 0:i.message)?(e.syncStateChangedEvent.next({phase:"error",error:i}),yield new Promise(e=>setTimeout(e,500)),yield Ai(e,t,n,Object.assign(Object.assign({},s),{retryImmediatelyOnFetchError:!1}))):(yield e.$syncState.update("syncState",{timestamp:new Date,error:""+i}),e.syncStateChangedEvent.next({phase:Wt?"error":"offline",error:new Error(""+(null==i?void 0:i.message)||i)}),Promise.reject(i))}))}function Ui(e,t,n){return r(this,arguments,void 0,function*(e,t,n,{isInitialSync:s,cancelToken:i,justCheckIfNeeded:o,purpose:c}={isInitialSync:!1}){var a;if(!(null===(a=e.cloud.options)||void 0===a?void 0:a.databaseUrl))throw new Error("Internal error: sync must not be called when no databaseUrl is configured");const{databaseUrl:d}=t,u=yield e.getCurrentUser(),h=u.isLoggedIn?k(e):[],f=h.map(t=>e.table(S(t.name))),p=yield e.getPersistedSyncState(),g=u.isLoggedIn,y=g?function(e,t){const n=(null==t?void 0:t.syncedTables)||[];return k(e).filter(e=>!n.includes(e.name))}(e,p):[];Ft(i);const m=y.length>0;if(m){if(o)return!0;yield e.transaction("rw",y,e=>r(this,void 0,void 0,function*(){e.idbtrans.disableChangeTracking=!0,e.idbtrans.disableAccessControl=!0,yield function(e,t,n){return r(this,void 0,void 0,function*(){const r=new Set(n||[]);for(const n of e)"members"===n.name?yield n.toCollection().modify(e=>{r.has(e.realmId)||e.userId&&e.userId!==l.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!==l.userId||(e.owner=t.userId)}):yield n.toCollection().modify(e=>{e.realmId&&r.has(e.realmId)||(e.owner&&e.owner!==l.userId||(e.owner=t.userId),e.realmId&&e.realmId!==l.userId||(e.realmId=t.userId))}))})}(y,u,null==p?void 0:p.realms)})),Ft(i)}const[v,b,w,{yMessages:_,lastUpdateIds:E}]=yield e.transaction("r",e.tables,()=>r(this,void 0,void 0,function*(){const t=yield e.getPersistedSyncState();let s=yield e.$baseRevs.toArray();s=s.filter(e=>h.some(t=>t.name===e.tableName));let o=yield I(f,e);const c=yield function(e,t){return r(this,void 0,void 0,function*(){const n=[],r={};for(const s of t)if(s.schema.yProps)for(const t of s.schema.yProps){const i=e.table(t.updatesTable),o=yield i.get(Jt),c=(null==o?void 0:o.unsentFrom)||1,l=(null==o?void 0:o.receivedUntil)||0,a=Math.min(c,l+1),d=yield qt(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]:$r(i);if(r)n.push({type:"u-c",table:s.name,prop:t.prop,k:e,u:c,i:o});else{const r=Lr(c);n.push({type:"sv",table:s.name,prop:t.prop,k:e,sv:r})}}}return{yMessages:n,lastUpdateIds:r}})}(e,h);if(Ft(i),m){const e=[...(null==p?void 0:p.realms)||[],...(null==p?void 0:p.inviteRealms)||[]],l=yield function(e,t,n,s){return r(this,void 0,void 0,function*(){const i=`upload-${O(8)}`;if(t.isLoggedIn&&e.length>0){const o=new Set(s||[]);return(yield Promise.all(e.map(e=>r(this,void 0,void 0,function*(){const{extractKey:r}=e.core.schema.primaryKey;if(!r)return{table:e.name,muts:[]};const s=n[e.name],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||"")&&j(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[]})}(y,u,n,e);return Ft(i),o=o.concat(l),[o,t,s,c]}return[o,t,s,c]})),C=v.some(e=>e.muts.some(e=>e.keys.length>0))||_.some(e=>"u-c"===e.type);if(o)return C;if("push"===c&&!C)return!1;const D=Ht(v,null==b?void 0:b.latestRevisions),A=(null==b?void 0:b.clientIdentity)||U(16);Ft(i);const T=yield Bt(v,_,b,w,e,d,n,A,u),{done:P,newSyncState:L}=yield e.transaction("rw",e.tables,t=>r(this,void 0,void 0,function*(){t.idbtrans.disableChangeTracking=!0,t.idbtrans.disableAccessControl=!0;for(const e of Object.keys(n))T.schema[e]&&(n[e]=T.schema[e]);yield e.$syncState.put(n,"schema");const s=yield I(f,e,{since:D});for(const t of f){const n=x(t.name);if(s.some(e=>e.table===n&&e.muts.length>0)){if(D[n]){const r=D[n]||0;yield Promise.all([t.where("rev").belowOrEqual(r).delete(),e.$baseRevs.where(":id").between([n,-1/0],[n,r+1],!0,!0).reverse().offset(1).delete()])}}else yield Promise.all([t.clear(),e.$baseRevs.where({tableName:n}).delete()])}Ht(s,D),yield Vt(e,n,D,T.serverRevision);const i=yield e.getPersistedSyncState();yield function(e,t,n){return r(this,void 0,void 0,function*(){const r=new Set,s=new Set,i=n?n.realms:[],o=n?n.inviteRealms:[],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=k(e);for(const e of t){let t=["realms","members","roles"].includes(e.name)?r:s;0!==t.size&&(e.schema.indexes.some(e=>"realmId"===e.keyPath||Array.isArray(e.keyPath)&&"realmId"===e.keyPath[0])?yield e.where("realmId").anyOf([...t]).delete():yield e.filter(e=>!!(null==e?void 0:e.realmId)&&t.has(e.realmId)).delete())}}if(s.size>0&&(null==n?void 0:n.yDownloadedRealms))for(const e of s)delete n.yDownloadedRealms[e]})}(e,T,i);const o=i||{syncedTables:[],latestRevisions:{},realms:[],inviteRealms:[],clientIdentity:A};g&&(o.syncedTables=h.map(e=>e.name).concat(y.map(e=>e.name))),o.latestRevisions=D,o.remoteDbId=T.dbId,o.initiallySynced=!0,o.realms=T.realms,o.inviteRealms=T.inviteRealms,o.serverRevision=T.serverRevision,o.yServerRevision=T.serverRevision,o.timestamp=new Date,delete o.error;const c=Ti(T.changes,s);if(yield zt(c,e),T.yMessages){const{receivedUntils:t,resyncNeeded:n,yServerRevision:s}=yield Ii(T.yMessages,e);s&&(o.yServerRevision=s),yield function(e,t,n){return r(this,void 0,void 0,function*(){var s,i,o,c,l;const a={};for(const[t,n]of Object.entries(e))null!==(s=a[t])&&void 0!==s||(a[t]={}),a[t].unsentFrom=n+1;for(const[e,n]of Object.entries(t))null!==(i=a[e])&&void 0!==i||(a[e]={}),a[e].receivedUntil=n;const 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],s=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,()=>r(this,void 0,void 0,function*(){const t=yield n.table(e).get(Jt);t?(t.unsentFrom=Math.max(s,t.unsentFrom||1),t.receivedUntil=Math.max(i,t.receivedUntil||0),yield n.table(e).put(t)):yield n.table(e).add({i:Jt,unsentFrom:s,receivedUntil:i})}))}})}(E,t,e),n&&(o.yDownloadedRealms={})}return e.$syncState.put(o,"syncState"),{done:0===s.length,newSyncState:o}}));if(!P)return yield Nt(e),yield Ui(e,t,n,{isInitialSync:s,cancelToken:i});const R=Object.values(n).some(e=>{var t;return null===(t=e.yProps)||void 0===t?void 0:t.length}),$=!!T.yMessages;if(R&&$)try{yield Oi(e,d,L)}catch(e){}return e.syncCompleteEvent.next(),!1})}function Ti(e,t){const n={};R(n,e);const r={};return R(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))A(r.val,e,t);break;case"del":break;case"upd":for(const e of Object.keys(s.mod))delete r.mod[e]}break}}}(n,r),function(e,t){const n={};for(const[t,r]of Object.entries(e))for(const[e,s]of Object.entries(r)){const r=n[t]||(n[t]={});(r[s.type]||(r[s.type]=[])).push({key:e,...s})}const r=[];for(const[e,s]of Object.entries(n)){const n={table:e,muts:[]};for(const[e,r]of Object.entries(s))switch(e){case"ups":{const e={type:"upsert",keys:r.map(e=>e.key),values:r.map(e=>e.val),txid:t};n.muts.push(e);break}case"upd":{const e={type:"update",keys:r.map(e=>e.key),changeSpecs:r.map(e=>e.mod),txid:t};n.muts.push(e);break}case"del":{const e={type:"delete",keys:r.map(e=>e.key),txid:t};n.muts.push(e);break}}r.push(n)}return r}(n)}function ji(s){const i=[],o=new t.BehaviorSubject(!0),c=new t.BehaviorSubject(null);let l=!1,a=new Array(10).fill(0);return c.subscribe(()=>r(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 r(this,void 0,void 0,function*(){for(var o,c,l,a,d,u;i.length>0;){const h=i.shift();try{yield t.firstValueFrom(s.cloud.syncState.pipe(n.filter(({phase:e})=>"in-sync"===e||"error"===e)));const i=s.cloud.persistedSyncState.value;if(!h)continue;switch(h.type){case"token-expired":const t=s.cloud.currentUser.value,n=yield st(s.cloud.options.databaseUrl,t);yield s.table("$logins").update(t.userId,{accessToken:n.accessToken,accessTokenExpiration:n.accessTokenExpiration,claims:n.claims,license:n.license,data:n.data});break;case"realm-added":(null===(o=null==i?void 0:i.realms)||void 0===o?void 0:o.includes(h.realm))||(null===(c=null==i?void 0:i.inviteRealms)||void 0===c?void 0:c.includes(h.realm))||(yield s.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 s.cloud.sync({purpose:"pull",wait:!0}));break;case"realm-removed":((null===(a=null==i?void 0:i.realms)||void 0===a?void 0:a.includes(h.realm))||(null===(d=null==i?void 0:i.inviteRealms)||void 0===d?void 0:d.includes(h.realm)))&&(yield s.cloud.sync({purpose:"pull",wait:!0}));break;case"realms-changed":yield s.cloud.sync({purpose:"pull",wait:!0});break;case"changes":if("error"===(null===(u=s.cloud.syncState.value)||void 0===u?void 0:u.phase)){y(s,"pull");break}yield s.transaction("rw",s.dx.tables,t=>r(this,void 0,void 0,function*(){t.idbtrans.disableChangeTracking=!0,t.idbtrans.disableAccessControl=!0;const[n,r,i]=yield Promise.all([s.getSchema(),s.getPersistedSyncState(),s.getCurrentUser()]);if(!r||!n||!i)return;if(h.baseRev!==r.serverRevision)return void("string"!=typeof h.baseRev||"bigint"!=typeof r.serverRevision&&"object"!=typeof r.serverRevision||y(s,"pull"));if((yield e.waitFor(_(r)))!==h.realmSetHash)return void y(s,"pull");let o=[];if(i.isLoggedIn){const e=k(s).map(e=>s.table(S(e.name)));o=yield I(e,s)}if(h.changes.length>0){const e=Ti(h.changes,o);yield zt(e,s)}r.latestRevisions=Ht(o,r.latestRevisions),r.serverRevision=h.newRev,yield Vt(s,n,r.latestRevisions,h.newRev),yield s.$syncState.put(r,"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 Pi=new WeakMap,Li={members:"@id, [userId+realmId], [email+realmId], realmId",roles:"[realmId+name]",realms:"@realmId",$jobs:"",$syncState:"",$baseRevs:"[tableName+clientRev]",$logins:"claims.sub, lastLogin"};let Ri=0;function $i(e){"vip"in e&&(e=e.vip);let n=Pi.get(e.cloud);if(!n){const r=new t.Subject;let s=new f(`syncstatechanged-${e.name}`),i=new f(`synccomplete-${e.name}`);r.id=++Ri;let o=!1;n={get name(){return e.name},close:()=>e.close(),transaction:e.transaction.bind(e),table:e.table.bind(e),get tables(){return e.tables},cloud:e.cloud,get $jobs(){return e.table("$jobs")},get $syncState(){return e.table("$syncState")},get $baseRevs(){return e.table("$baseRevs")},get $logins(){return e.table("$logins")},get realms(){return e.realms},get members(){return e.members},get roles(){return e.roles},get initiallySynced(){return o},localSyncEvent:r,get syncStateChangedEvent(){return s},get syncCompleteEvent(){return i},dx:e};const c={getCurrentUser:()=>n.$logins.toArray().then(e=>e.find(e=>e.isLoggedIn)||l),getPersistedSyncState:()=>n.$syncState.get("syncState"),getSchema:()=>n.$syncState.get("schema").then(e=>{if(e)for(const t of n.tables)t.schema.primKey&&t.schema.primKey.keyPath&&e[t.name]&&(e[t.name].primaryKey=Mi(t.schema.primKey.keyPath));return e}),getOptions:()=>n.$syncState.get("options"),setInitiallySynced(e){o=e},reconfigure(){s=new f(`syncstatechanged-${e.name}`),i=new f(`synccomplete-${e.name}`)}};Object.assign(n,c),n.messageConsumer=ji(n),n.messageProducer=new t.Subject,Pi.set(e.cloud,n)}return n}function Mi(e){return"string"==typeof e?e:e?"["+[].join.call(e,"+")+"]":""}const Ni=new WeakMap;class Bi{constructor(e,t){Ni.set(this,e),Object.assign(this,t)}static load(e,t){return e.table("$logins").get(t).then(n=>new Bi(e,n||{userId:t,claims:{sub:t},lastLogin:new Date(0)}))}save(){return r(this,void 0,void 0,function*(){Ni.get(this).table("$logins").put(this)})}}function Fi(e,n){return t.firstValueFrom(t.from(e).pipe(t.filter(n)))}function Wi(e){return r(this,void 0,void 0,function*(){const t=yield Vi(e);if(t){if(!(yield function(e,t,n){return r(this,void 0,void 0,function*(){const r=[{type:"warning",messageCode:"LOGOUT_CONFIRMATION",message:"{numUnsyncedChanges} unsynced changes will get lost!\n Logout anyway?",messageParams:{currentUserId:t,numUnsyncedChanges:n.toString()}}];return yield Qe(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 Vi(e,{deleteUnsyncedData:!0})}})}function Vi(e){return r(this,arguments,void 0,function*(e,{deleteUnsyncedData:t=!1}={}){const[n,s]=yield e.dx.transaction("rw",e.dx.tables,n=>r(this,void 0,void 0,function*(){const r=n.idbtrans;r.disableChangeTracking=!0,r.disableAccessControl=!0;const s=n.storeNames.filter(e=>e.endsWith("_mutations")),i=(yield Promise.all(s.map(e=>n.table(e).count()))).reduce((e,t)=>e+t,0);if(i>0&&!t)return[i,!1];e.$syncState.delete("syncState");for(const t of e.dx.tables)"$jobs"!==t.name&&"$syncState"!==t.name&&t.clear();return[i,!0]}));return s&&(yield Fi(e.cloud.currentUser,e=>e.userId===l.userId),yield e.cloud.sync({purpose:"pull",wait:!0})),n})}const Hi={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 Ki extends Error{constructor(e,t,n){super(n||Hi[e]),this.name="OAuthError",this.code=e,this.provider=t}get userMessage(){return Hi[this.code]||this.message}}const zi={providers:[],otpEnabled:!0};function Ji(e){return r(this,arguments,void 0,function*(e,t=!0){if(!t)return zi;try{const t=yield fetch(`${e}/auth-providers`,{method:"GET",headers:{Accept:"application/json"},mode:"cors"});return 404===t.status?zi:t.ok?yield t.json():zi}catch(e){return zi}})}function qi(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 Gi(t){const{userInteraction:n}=t.cloud;return function(s){return r(this,arguments,void 0,function*({public_key:s,hints:i}){var o,c;let l;const a=null===(o=t.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 r(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 Ki("expired_code",void 0,e.message);throw new qe(e)}}catch(e){if(e instanceof Ki||e instanceof qe)throw e}throw new Ki("provider_error",void 0,`Token exchange failed: ${e.status} ${t}`)}const n=yield e.json();if("error"===n.type)throw new qe(n);if("tokens"!==n.type)throw new Ki("provider_error",void 0,`Unexpected response type: ${n.type}`);return n}catch(e){if(e instanceof Ki||e instanceof qe)throw e;if(e instanceof TypeError)throw new Ki("network_error");throw e}})}({databaseUrl:a,code:i.oauthCode,publicKey:s,scopes:["ACCESS_DB"]});if(null==i?void 0:i.provider){let e;throw i.redirectPath&&(/^https?:\/\//i.test(i.redirectPath)?e=i.redirectPath:"undefined"!=typeof window&&window.location?e=new URL(i.redirectPath,window.location.href).toString():"undefined"!=typeof location&&location.href&&(e=new URL(i.redirectPath,location.href).toString())),Yi(t,i.provider,e),new tt(i.provider)}if("demo"===(null==i?void 0:i.grant_type)){l={demo_user:yield Ze(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:s}}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:s};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 Ze(n,"Enter email address"));l=/@demo.local$/.test(e)?{demo_user:e,grant_type:"demo",scopes:["ACCESS_DB"],public_key:s}:{email:e,grant_type:"otp",scopes:["ACCESS_DB"]}}else{const o=!1!==(null===(c=t.cloud.options)||void 0===c?void 0:c.socialAuth),d=yield Ji(a,o);if(d.providers.length>0){const s=yield function(t,n,s){return r(this,arguments,void 0,function*(t,n,r,s="Choose login method",i=[]){const o=[...n.map(Ye)];return r&&o.push({name:"otp",value:"email",displayName:"Continue with email",iconUrl:Ge,styleHint:"otp"}),new Promise((n,r)=>{const c={type:"generic",title:s,alerts:i,options:o,fields:{},submitLabel:"",cancelLabel:"Cancel",onSubmit:e=>{t.next(void 0),n("otp"in e?{type:"otp"}:"provider"in e?{type:"provider",provider:e.provider}:{type:"otp"})},onCancel:()=>{t.next(void 0),r(new e.AbortError("User cancelled"))}};t.next(c)})})}(n,d.providers,d.otpEnabled,"Sign in");if("provider"===s.type)throw Yi(t,s.provider),new tt(s.provider)}const u=yield Ze(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:s}:{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 Xe(n,"Token request failed",{type:"error",messageCode:"GENERIC_ERROR",message:e,messageParams:{}}).catch(()=>{}),new Lt(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 et(n,l.email),t=Object.assign(Object.assign({},l),{otp:e||"",otp_id:u.otp_id,public_key:s});let r=yield fetch(`${a}/token`,{body:JSON.stringify(t),method:"post",headers:{"Content-Type":"application/json"},mode:"cors"});for(;401===r.status;){const e=yield r.text();t.otp=yield et(n,l.email,{type:"error",messageCode:"INVALID_OTP",message:e,messageParams:{}}),r=yield fetch(`${a}/token`,{body:JSON.stringify(t),method:"post",headers:{"Content-Type":"application/json"},mode:"cors"})}if(200!==r.status){const e=yield r.text();throw new Lt(r,e)}return yield r.json()}throw new Error(`Unexpected response from ${a}/token`)})}}function Yi(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.");qi({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 Qi(e,...t){globalThis.console[e](...t)}function Xi(e,t){return r(this,void 0,void 0,function*(){var n;const s=yield e.getCurrentUser(),i=s.userId;if(s.isLoggedIn&&(!t||!t.email&&!t.userId)){if("ok"===((null===(n=s.license)||void 0===n?void 0:n.status)||"ok")&&s.accessToken&&(!s.accessTokenExpiration||s.accessTokenExpiration.getTime()>Date.now()))return!1;if(s.refreshToken&&(!s.refreshTokenExpiration||s.refreshTokenExpiration.getTime()>Date.now()))return yield nt(e),!1}const o=new Bi(e,{claims:{},lastLogin:new Date(0)});try{yield rt(e.cloud.options.databaseUrl,o,e.cloud.options.fetchTokens||Gi(e),e.cloud.userInteraction,t)}catch(e){if("OAuthRedirectError"===e.name)return!1;throw e}return i!==l.userId&&o.userId!==i&&(yield Wi(e)),yield function(e,t){return r(this,void 0,void 0,function*(){const n=e.table("$logins");yield e.transaction("rw",n,e=>r(this,void 0,void 0,function*(){const e=yield n.toArray();yield Promise.all(e.filter(e=>e.userId!==t.userId&&e.isLoggedIn).map(e=>(e.isLoggedIn=!1,n.put(e)))),t.isLoggedIn=!0,t.lastLogin=new Date;try{yield t.save()}catch(e){try{"DataCloneError"===e.name&&(Qi("debug","Login context property names:",Object.keys(t)),Qi("debug","Login context property names:",Object.keys(t)),Qi("debug","Login context:",t),Qi("debug","Login context JSON:",JSON.stringify(t)))}catch(e){}throw e}})),yield Fi(e.cloud.currentUser,e=>e.userId===t.userId)})}(e,o),y(e,"pull"),o.userId!==i})}const Zi="undefined"!=typeof InstallTrigger,eo="undefined"!=typeof navigator&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\/|Edge\//.test(navigator.userAgent),to=eo?[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]:NaN,no=eo&&to<=605||Zi,ro="undefined"!=typeof self&&"clients"in self&&!self.document;const{toString:so}={};function io(e){return so.call(e).slice(8,-1)}function oo(e,t){var n;return"delete"===t.type?t.keys:(null===(n=t.keys)||void 0===n?void 0:n.slice())||t.values.map(e.extractKey)}function 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 lo=/b|c|d|f|g|h|j|k|l|m|n|p|q|r|s|t|v|x|y|z/i;function ao(e){return e>="A"&&e<="Z"}let uo=0;function ho(e,t){const n=new Uint8Array(18),r=new Uint8Array(n.buffer,0,6),s=Date.now();uo>=s?++uo:uo=s,r[0]=uo/1099511627776,r[1]=uo/4294967296,r[2]=uo/16777216,r[3]=uo/65536,r[4]=uo/256,r[5]=uo;const i=new Uint8Array(n.buffer,6);crypto.getRandomValues(i);return e+yt(new Uint8Array(n.buffer))+(t||"")}function fo(t){return{stack:"dbcore",name:"idGenerationMiddleware",level:1,create:n=>Object.assign(Object.assign({},n),{table:r=>{const s=n.table(r);return Object.assign(Object.assign({},s),{mutate:n=>{var i,o;const 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=t.cloud.schema)||void 0===i?void 0:i[r];if(null==c?void 0:c.generatedGlobalId){if((null===(o=t.cloud.options)||void 0===o?void 0:o.databaseUrl)&&!t.initiallySynced){const e=oo(s.schema.primaryKey,n);return s.getMany({keys:e,trans:n.trans,cache:"immutable"}).then(t=>{if(t.length<e.length)throw new Error("Unable to create new objects without an initial sync having been performed.");return s.mutate(n)})}return function(n,i){let o=null;const c=oo(s.schema.primaryKey,n);return c.forEach((l,a)=>{if(void 0===l){const r=n.values[a].realmId||t.cloud.currentUserId,l=r.substr(r.length-3);c[a]=ho(i,l),s.schema.primaryKey.outbound||(o||(o=n.values.slice()),o[a]=e.deepClone(o[a]),e.setByKeyPath(o[a],s.schema.primaryKey.keyPath,c[a]))}else if("string"!=typeof l||!l.startsWith(i)&&!l.startsWith("#"+i))throw new e.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){oo(s.schema.primaryKey,n).forEach((t,n)=>{if(!j(t)){const n=Array.isArray(t)?t.map(io).join(","):io(t);throw new e.ConstraintError(`Invalid primary key type ${n} for table ${r}. Tables marked for sync has primary keys of type string or Array of string (and optional numbers)`)}})}}return s.mutate(n)}})}})}}let po=0;function go(e,t){return function(n){const{readers:r,writers:s}=n.trans[t]||(n.trans[t]={writers:[],readers:[]}),i=s.length,o=(i>0?s[i-1].then(()=>e(n),()=>e(n)):e(n)).finally(()=>{r.splice(r.indexOf(o))});return r.push(o),o}}function yo(e,t){return function(n){const{readers:r,writers:s}=n.trans[t]||(n.trans[t]={writers:[],readers:[]});let i=(s.length>0?s[s.length-1].then(()=>e(n),()=>e(n)):r.length>0?(o=r,new Promise(e=>{0===o.length&&e([]);let t=o.length;const n=new Array(t);o.forEach((r,s)=>Promise.resolve(r).then(e=>n[s]={status:"fulfilled",value:e},e=>n[s]={status:"rejected",reason:e}).then(()=>--t||e(n)))})).then(()=>e(n)):e(n)).finally(()=>{s.shift()});var o;return s.push(i),i}}const mo=new t.BehaviorSubject(new Set);function vo(e){var t,n,r,s;return(null===(t=e.cloud.options)||void 0===t?void 0:t.disableEagerSync)||"ok"!==(null===(r=null===(n=e.cloud.currentUser.value)||void 0===n?void 0:n.license)||void 0===r?void 0:r.status)||!(null===(s=e.cloud.options)||void 0===s?void 0:s.databaseUrl)}function bo({currentUserObservable:t,db:n}){return{stack:"dbcore",name:"MutationTrackingMiddleware",level:1,create:r=>{const s=new Set(r.schema.tables.map(e=>e.name)),i=r.schema.tables.filter(e=>!/^\$/.test(e.name)),o=new Map;for(const e of i){const t=`$${e.name}_mutations`;s.has(t)&&o.set(e.name,r.table(t))}return Object.assign(Object.assign({},r),{transaction:(e,s)=>{let i;if("readwrite"===s){const t=e.filter(e=>{var t,r;return null===(r=null===(t=n.cloud.schema)||void 0===t?void 0:t[e])||void 0===r?void 0:r.markedForSync}).map(e=>S(e));i=r.transaction([...e,...t],s)}else i=r.transaction(e,s);if("readwrite"===s){i.txid=O(16),i.opCount=0,i.currentUser=t.value,mo.value.add(i),mo.next(mo.value);const e=()=>{i.removeEventListener("complete",r),i.removeEventListener("error",e),i.removeEventListener("abort",e),mo.value.delete(i),mo.next(mo.value)},r=()=>{i.mutationsAdded&&!vo(n)&&y(n,"push"),e()};i.addEventListener("complete",r),i.addEventListener("error",e),i.addEventListener("abort",e)}return i},table:t=>{const s=r.table(t);if(/^\$/.test(t))return t.endsWith("_mutations")?Object.assign(Object.assign({},s),{mutate:e=>("add"!==e.type&&"put"!==e.type||(e.trans.mutationsAdded=!0),s.mutate(e))}):"$logins"===t?Object.assign(Object.assign({},s),{mutate:e=>s.mutate(e).then(t=>(e.trans.mutationsAdded=!0,t)).catch(e=>Promise.reject(e))}):s;const{schema:i}=s,c=o.get(t);return c?function(e){const t="$lock"+ ++po;return Object.assign(Object.assign({},e),{count:go(e.count,t),get:go(e.get,t),getMany:go(e.getMany,t),openCursor:go(e.openCursor,t),query:go(e.query,t),mutate:yo(e.mutate,t)})}(Object.assign(Object.assign({},s),{mutate:e=>{var r,o,c;const a=e.trans;return a.txid?a.disableChangeTracking?s.mutate(e):(null===(o=null===(r=n.cloud.schema)||void 0===r?void 0:r[t])||void 0===o?void 0:o.markedForSync)&&(null===(c=a.currentUser)||void 0===c?void 0:c.isLoggedIn)?"deleteRange"===e.type?s.query({query:{range:e.range,index:i.primaryKey},trans:e.trans,values:!1}).then(t=>l({type:"delete",keys:t.result,trans:e.trans,criteria:{index:null,range:e.range}})):l(e):s.mutate(e):s.mutate(e)}})):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[t],{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(t=>{var n;const{numFailures:s,failures:o}=t;let l="delete"===f?r.keys:t.results,y="values"in r?r.values:[],m="changeSpec"in r?r.changeSpec:void 0,v="updates"in r?r.updates:void 0,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 t;if(v){let t=v.changeSpecs.map(g),n={keys:[],changeSpecs:[]};const r=new e.RangeSet;let s=!1;if(!b){for(let e=0,i=t.length;e<i;++e)Object.keys(t[e]).length>0?(n.keys.push(v.keys[e]),n.changeSpecs.push(t[e]),r.addKey(v.keys[e])):s=!0;if(v=n,s){let e=[],t=[];for(let n=0,s=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,t)):t})}}})}}}function wo(e,t){return function(n,r){var s;const i=Object.assign(Object.assign({},Li),n);Object.keys(Li).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=Li[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(Li[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)(lo.test(e[t])||ao(e[t]))&&(n+=e[t].toLowerCase());for(;t.has(n);){if(/\d/g.test(n)){if(n=n.substr(0,n.length-1)+(n[n.length-1]+1),!(n.length>3))continue;n=n.substr(0,3)}else if(n.length<3){n+="2";continue}let e=1,r=n;for(;t.has(r)&&e<8;)r=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,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 _o(e,t,n){return"undefined"!=typeof navigator&&navigator.locks?navigator.locks.request(e.name+"|"+t,n):n()}const ko=new t.BehaviorSubject(!0),So=new t.BehaviorSubject(!0);ko.pipe(n.switchMap(e=>e?t.of(!0):t.of(!1).pipe(n.delay(2e4))),n.distinctUntilChanged()).subscribe(So);const xo="undefined"!=typeof document?t.fromEvent(document,"visibilitychange"):t.of({}),Eo=xo.pipe(n.filter(()=>"hidden"===document.visibilityState)),Co=xo.pipe(n.filter(()=>"visible"===document.visibilityState)),Io="undefined"!=typeof window?t.merge(Co,t.fromEvent(window,"mousedown"),t.fromEvent(window,"mousemove"),t.fromEvent(window,"keydown"),t.fromEvent(window,"wheel"),t.fromEvent(window,"touchmove")):t.of({});"undefined"!=typeof document&&t.merge(t.of(!0),Eo,Io).pipe(n.map(()=>"visible"===document.visibilityState),n.tap(e=>{ko.value!==e&&ko.next(e)}),n.switchMap(e=>e?t.of(0).pipe(n.delay(16e4),n.tap(()=>ko.next(!1))):t.of(0))).subscribe(()=>{});class Oo extends Error{constructor(){super(...arguments),this.name="TokenExpiredError"}}const Do=new WeakMap,Ao=3e4;class Uo extends Zt{constructor(e){super(),this.doc=e,this.clientID=e.clientID,this.states=new Map,this.meta=new Map,this._checkInterval=setInterval(()=>{const e=sn();null!==this.getLocalState()&&15e3<=e-this.meta.get(this.clientID).lastUpdated&&this.setLocalState(this.getLocalState());const t=[];this.meta.forEach((n,r)=>{r!==this.clientID&&Ao<=e-n.lastUpdated&&this.states.has(r)&&t.push(r)}),t.length>0&&To(this,t,"timeout")},$(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:sn()});const i=[],o=[],c=[],l=[];null===e?l.push(t):null==s?null!=e&&i.push(t):(o.push(t),wn(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 To=(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:sn()})}r.push(s)}}r.length>0&&(e.emit("change",[{added:[],updated:[],removed:r},n]),e.emit("update",[{added:[],updated:[],removed:r},n]))},jo=new WeakMap;function Po(e){let n=jo.get(e);return n||(n=new t.Subject,jo.set(e,n)),n}class Lo extends t.Observable{constructor(e,t,n,r,s,i,o,c){super(l=>new $o(e,t,n,r,s,c,l,i,o))}}let Ro=0;class $o extends t.Subscription{constructor(e,t,n,r,s,i,o,c,l){super(()=>this.teardown()),this.id=++Ro,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 r(this,void 0,void 0,function*(){if(this.lastServerActivity=new Date,this.pauseUntil&&this.pauseUntil>new Date)return;if(this.ws)throw new Error("Called connect() when a connection is already open");if(!this.databaseUrl)throw new Error("Cannot connect without a database URL");if(this.closed)return;const n=this.user.accessTokenExpiration;if(n&&n<new Date)return void this.subscriber.error(new Oo);this.webSocketStatus.next("connecting"),this.pinger=setInterval(()=>r(this,void 0,void 0,function*(){if(this.closed)this.teardown();else if(this.ws)try{this.ws.send(JSON.stringify({type:"ping"})),setTimeout(()=>{this.pinger&&(this.closed?this.teardown():this.lastServerActivity<new Date(Date.now()-2e4)&&this.reconnect())},2e4)}catch(e){this.reconnect()}else this.reconnect()}),3e4);const s=new URL(this.databaseUrl);s.protocol="http:"===s.protocol?"ws":"wss";const i=new URLSearchParams;if(this.subscriber.closed)return;i.set("v","2"),this.rev&&i.set("rev",this.rev),this.yrev&&i.set("yrev",this.yrev),i.set("realmsHash",this.realmSetHash),i.set("clientId",this.clientIdentity),i.set("dxcv",this.db.cloud.version),this.user.accessToken&&i.set("token",this.user.accessToken);const o=this.ws=new WebSocket(`${s}/changes?${i}`);o.binaryType="arraybuffer",o.onclose=e=>{this.pinger&&this.reconnect()},o.onmessage=e=>{if(this.pinger){this.lastServerActivity=new Date;try{const t="string"==typeof e.data?jt.parse(e.data):function(e){const t=new Ue(e),n=Me(t);if("outdated-server-rev"===n)return{type:n};if("y-complete-sync-done"===n)return{type:n,yServerRev:Me(t)};const r=Me(t),s=Me(t);switch(n){case"u-ack":case"u-reject":return{type:n,table:r,prop:s,i:Number(Be(t))};default:{const e=We(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:We(t),sv:We(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(Be(t))};case"u-s":return{type:n,table:r,prop:s,k:e,u:Pe(t),r:t.pos<t.arr.length&&Me(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=Ci.getDocCache(this.db.dx).find(t.table,t.k,t.prop);if(e){const n=(e=>Do.get(e))(e);n&&((e,t,n)=>{const r=Te(t),s=sn(),i=[],o=[],c=[],l=[],a=Re(r);for(let t=0;t<a;t++){const t=Re(r);let n=Re(r);const a=JSON.parse(Me(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&&(wn(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=Ci.getDocCache(this.db.dx).find(t.table,t.k,t.prop);e&&Po(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?Ii([t],this.db).then(e=>r(this,[e],void 0,function*({resyncNeeded:e,yServerRevision:n,receivedUntils:r}){if(n&&(yield this.db.$syncState.update("syncState",{yServerRevision:n})),"u-s"===t.type&&r){const e=pi(this.db,t.table,t.prop);if(e){const t=r[e.name];t&&(yield e.update(Jt,{receivedUntil:t}))}}e&&(yield this.db.cloud.sync({purpose:"pull",wait:!0}))})):this.subscriber.next(t)}catch(e){this.subscriber.error(e)}}};try{let n=!1;yield new Promise((e,t)=>{o.onopen=t=>{n=!0,e(null)},o.onerror=e=>{if(n)this.reconnect();else{const n=e.error||new Error("WebSocket Error");this.subscriber.error(n),this.webSocketStatus.next("error"),t(n)}}}),this.subscriptions.add(this.messageProducer.subscribe(e=>{var t,n;this.closed||("ready"===e.type&&"connected"!==this.webSocketStatus.value&&this.webSocketStatus.next("connected"),"ready"===e.type?(this.rev=e.rev,null===(t=this.ws)||void 0===t||t.send(jt.stringify(e))):null===(n=this.ws)||void 0===n||n.send(function(e){const t=new se;switch(fe(t,e.type),"table"in e&&fe(t,e.table),"prop"in e&&fe(t,e.prop),e.type){case"u-ack":case"u-reject":me(t,BigInt(e.i));break;case"outdated-server-rev":break;case"y-complete-sync-done":fe(t,e.yServerRev);break;default:switch(be(t,e.k),e.type){case"aware":ge(t,e.u);break;case"doc-open":be(t,e.serverRev),be(t,e.sv);break;case"doc-close":break;case"sv":ge(t,e.sv);break;case"u-c":ge(t,e.u),me(t,BigInt(e.i));break;case"u-s":ge(t,e.u),fe(t,e.r||"")}}return oe(t)}(e)))})),this.user.isLoggedIn&&!vo(this.db)&&this.subscriptions.add(function(n){const s=C(n.tables.filter(e=>{var t,r;return(null===(r=null===(t=n.cloud.schema)||void 0===t?void 0:t[e.name])||void 0===r?void 0:r.markedForSync)&&e.schema.yProps}).map(e=>e.schema.yProps.map(t=>({table:e.name,ydocProp:t.prop,updatesTable:t.updatesTable}))));return t.merge(...s.map(({table:s,ydocProp:i,updatesTable:o})=>{const c=n.table(o);return t.from(c.get(Jt)).pipe(t.switchMap(n=>{let o=(null==n?void 0:n.unsentFrom)||1;return t.from(e.liveQuery(()=>r(this,void 0,void 0,function*(){return(yield qt(c,o)).filter(e=>e.f&&1&e.f).map(e=>({type:"u-c",table:s,prop:i,k:e.k,u:e.u,i:e.i}))}))).pipe(t.tap(e=>{e.length>0&&(o=e.at(-1).i+1)}))}))})).pipe(t.mergeMap(e=>e))}(this.db).subscribe(this.db.messageProducer))}catch(e){this.pauseUntil=new Date(Date.now()+6e4)}})}}class Mo extends Error{constructor(e){super("expired"===e?"License expired":"deactivated"===e?"User deactivated":"Invalid license"),this.name="InvalidLicenseError",e&&(this.license=e)}}function No(e){return r(this,void 0,void 0,function*(){var e;yield(e=3e3,new Promise(t=>setTimeout(t,e))),yield t.firstValueFrom(Io)})}function Bo(e){return r(this,void 0,void 0,function*(){var t;return!(!(null===(t=e.cloud.options)||void 0===t?void 0:t.databaseUrl)||!e.cloud.schema)&&(yield Ai(e,e.cloud.options,e.cloud.schema,{justCheckIfNeeded:!0}))})}const Fo=new WeakMap;function Wo(e,t,n,s){const i=Fo.get(e);if(i){if(i.pull||"push"===(null==s?void 0:s.purpose))return i.promise;{let r=!1;const o=e.cloud.syncState.subscribe(e=>{"pulling"===e.phase&&(r=!0)});return i.promise.then(()=>{o.unsubscribe()}).catch(e=>(o.unsubscribe(),Promise.reject(e))).then(()=>{if(!r)return Wo(e,t,n,s)})}}const o=function(){return r(this,void 0,void 0,function*(){try{yield Nt(e),yield _o(e,Di,()=>Ai(e,t,n,s)),Fo.delete(e)}catch(t){throw Fo.delete(e),t}})}();return Fo.set(e,{promise:o,pull:"push"!==(null==s?void 0:s.purpose)}),o}function Vo(e,t,n){let r=null,s={cancelled:!1},i=0,o=0;function c(r=1){setTimeout(()=>{const u=l?"pull":"push";o=Date.now(),Wo(e,t,n,{cancelToken:s,retryImmediatelyOnFetchError:!0,purpose:u}).then(()=>{if(s.cancelled)h();else if(l||a)return l=!1,a=!1,c();d=!1,i=0,o=0}).catch(e=>{if(s.cancelled)h(),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=e=>{s.cancelled||("pull"===e&&(l=!0),"push"===e&&(a=!0),d?i||o>0&&Date.now():(d=!0,c()))},h=()=>{s.cancelled=!0,r&&r.unsubscribe()};return{start:()=>{r=e.localSyncEvent.subscribe(({purpose:e})=>{u(e||"pull")})},stop:h}}function Ho(e,t){if(e&&t&&t.unsyncedTables)for(const n of t.unsyncedTables)e[n]&&(e[n].markedForSync=!1)}var Ko,zo,Jo,qo,Go,Yo,Qo,Xo,Zo,ec,tc,nc={},rc=[],sc=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,ic=Array.isArray;function oc(e,t){for(var n in t)e[n]=t[n];return e}function cc(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function lc(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?Ko.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 ac(e,o,r,s,null)}function ac(e,t,n,r,s){var i={type:e,props:t,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:null==s?++Jo:s,__i:-1,__u:0};return null==s&&null!=zo.vnode&&zo.vnode(i),i}function dc(e){return e.children}function uc(e,t){this.props=e,this.context=t}function hc(e,t){if(null==t)return e.__?hc(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?hc(e):null}function fc(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 fc(e)}}function pc(e){(!e.__d&&(e.__d=!0)&&qo.push(e)&&!gc.__r++||Go!=zo.debounceRendering)&&((Go=zo.debounceRendering)||Yo)(gc)}function gc(){for(var e,t,n,r,s,i,o,c=1;qo.length;)qo.length>c&&qo.sort(Qo),e=qo.shift(),c=qo.length,e.__d&&(n=void 0,r=void 0,s=(r=(t=e).__v).__e,i=[],o=[],t.__P&&((n=oc({},r)).__v=r.__v+1,zo.vnode&&zo.vnode(n),kc(t.__P,n,r,t.__n,t.__P.namespaceURI,32&r.__u?[s]:null,i,null==s?hc(r):s,!!(32&r.__u),o),n.__v=r.__v,n.__.__k[n.__i]=n,xc(i,n,o),r.__e=r.__=null,n.__e!=s&&fc(n)));gc.__r=0}function yc(e,t,n,r,s,i,o,c,l,a,d){var u,h,f,p,g,y,m,v=r&&r.__k||rc,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]=ac(null,o,null,null,null):ic(o)?o=e.__k[i]=ac(dc,{children:o},null,null,null):null==o.constructor&&o.__b>0?o=e.__k[i]=ac(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=vc(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=hc(c)),Oc(c,c));return r}(n,t,v,l,b),u=0;u<b;u++)null!=(f=n.__k[u])&&(h=-1==f.__i?nc:v[f.__i]||nc,f.__i=u,y=kc(e,f,h,s,i,o,c,l,a,d),p=f.__e,f.ref&&h.ref!=f.ref&&(h.ref&&Ic(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=mc(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 mc(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=mc(s[i],t,n,r));return t}e.__e!=t&&(r&&(t&&e.type&&!t.parentNode&&(t=hc(e)),n.insertBefore(e.__e,t||null)),t=e.__e);do{t=t&&t.nextSibling}while(null!=t&&8==t.nodeType);return t}function vc(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 bc(e,t,n){"-"==t[0]?e.setProperty(t,null==n?"":n):e[t]=null==n?"":"number"!=typeof n||sc.test(t)?n:n+"px"}function wc(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||bc(e.style,t,"");if(n)for(t in n)r&&n[t]==r[t]||bc(e.style,t,n[t])}else if("o"==t[0]&&"n"==t[1])i=t!=(t=t.replace(Xo,"$1")),o=t.toLowerCase(),t=o in e||"onFocusOut"==t||"onFocusIn"==t?o.slice(2):t.slice(2),e.l||(e.l={}),e.l[t+i]=n,n?r?n.u=r.u:(n.u=Zo,e.addEventListener(t,i?tc:ec,i)):e.removeEventListener(t,i?tc:ec,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 _c(e){return function(t){if(this.l){var n=this.l[t.type+e];if(null==t.t)t.t=Zo++;else if(t.t<n.u)return;return n(zo.event?zo.event(t):t)}}}function kc(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=zo.__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 uc(m,w),u.constructor=I,u.render=Dc),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=oc({},u.__s)),oc(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=zo.__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=oc(oc({},r),u.getChildContext())),v&&!h&&null!=u.getSnapshotBeforeUpdate&&(g=u.getSnapshotBeforeUpdate(f,p)),E=d,null!=d&&d.type===dc&&null==d.key&&(E=Ec(d.props.children)),c=yc(e,ic(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--;)cc(i[C]);Sc(t)}else t.__e=n.__e,t.__k=n.__k,e.then||Sc(t);zo.__e(e,t,n)}else null==i&&t.__v==n.__v?(t.__k=n.__k,t.__e=n.__e):c=t.__e=Cc(n.__e,t,n,r,s,i,o,l,a);return(d=zo.diffed)&&d(t),128&t.__u?void 0:c}function Sc(e){e&&e.__c&&(e.__c.__e=!0),e&&e.__k&&e.__k.forEach(Sc)}function xc(e,t,n){for(var r=0;r<n.length;r++)Ic(n[r],n[++r],n[++r]);zo.__c&&zo.__c(t,e),e.some(function(t){try{e=t.__h,t.__h=[],e.some(function(e){e.call(t)})}catch(e){zo.__e(e,t.__v)}})}function Ec(e){return"object"!=typeof e||null==e||e.__b&&e.__b>0?e:ic(e)?e.map(Ec):oc({},e)}function Cc(e,t,n,r,s,i,o,c,l){var a,d,u,h,f,p,g,y=n.props||nc,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&&(zo.__m&&zo.__m(t,i),c=!1),i=null}if(null==v)y===m||c&&e.data==m||(e.data=m);else{if(i=i&&Ko.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;wc(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||wc(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=""),yc("template"==t.type?e.content:e,ic(h)?h:[h],t,n,r,"foreignObject"==v?"http://www.w3.org/1999/xhtml":s,i,o,i?i[0]:n.__k&&hc(n,0),c,l),null!=i)for(a=i.length;a--;)cc(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])&&wc(e,a,p,y[a],s),a="checked",null!=g&&g!=e[a]&&wc(e,a,g,y[a],s))}return e}function Ic(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){zo.__e(e,n)}}function Oc(e,t,n){var r,s;if(zo.unmount&&zo.unmount(e),(r=e.ref)&&(r.current&&r.current!=e.__e||Ic(r,null,t)),null!=(r=e.__c)){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(e){zo.__e(e,t)}r.base=r.__P=null}if(r=e.__k)for(s=0;s<r.length;s++)r[s]&&Oc(r[s],t,n||"function"!=typeof e.type);n||cc(e.__e),e.__c=e.__=e.__e=void 0}function Dc(e,t,n){return this.constructor(e,n)}function Ac(e,t,n){var r,s,i;t==document&&(t=document.documentElement),zo.__&&zo.__(e,t),r=!1?null:t.__k,s=[],i=[],kc(t,e=t.__k=lc(dc,null,[e]),r||nc,nc,t.namespaceURI,r?null:t.firstChild?Ko.call(t.childNodes):null,s,r?r.__e:t.firstChild,false,i),xc(s,e,i)}Ko=rc.slice,zo={__e:function(e,t,n,r){for(var s,i,o;t=t.__;)if((s=t.__c)&&!s.__)try{if((i=s.constructor)&&null!=i.getDerivedStateFromError&&(s.setState(i.getDerivedStateFromError(e)),o=s.__d),null!=s.componentDidCatch&&(s.componentDidCatch(e,r||{}),o=s.__d),o)return s.__E=s}catch(t){e=t}throw e}},Jo=0,uc.prototype.setState=function(e,t){var n;n=null!=this.__s&&this.__s!=this.state?this.__s:this.__s=oc({},this.state),"function"==typeof e&&(e=e(oc({},n),this.props)),e&&oc(n,e),null!=e&&this.__v&&(t&&this._sb.push(t),pc(this))},uc.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),pc(this))},uc.prototype.render=dc,qo=[],Yo="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,Qo=function(e,t){return e.__v.__b-t.__v.__b},gc.__r=0,Xo=/(PointerCapture)$|Capture$/i,Zo=0,ec=_c(!1),tc=_c(!0);const Uc={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 Tc({children:e,className:t}){return lc("div",{className:`dexie-dialog ${t||""}`},lc("div",{style:Uc.Darken}),lc("div",{style:Uc.DialogOuter},lc("div",{style:Uc.DialogInner},e)))}var jc,Pc,Lc,Rc,$c=0,Mc=[],Nc=zo,Bc=Nc.__b,Fc=Nc.__r,Wc=Nc.diffed,Vc=Nc.__c,Hc=Nc.unmount,Kc=Nc.__;function zc(e,t){Nc.__h&&Nc.__h(Pc,e,$c||t),$c=0;var n=Pc.__H||(Pc.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({}),n.__[e]}function Jc(e){return $c=1,function(e,t){var n=zc(jc++,2);if(n.t=e,!n.__c&&(n.__=[tl(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=Pc,!Pc.__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};Pc.__f=!0;var s=Pc.shouldComponentUpdate,i=Pc.componentWillUpdate;Pc.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)},Pc.shouldComponentUpdate=r}return n.__N||n.__}(tl,e)}function qc(e){return $c=5,function(e,t){var n=zc(jc++,7);return el(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}(function(){return{current:e}},[])}function Gc(){for(var e;e=Mc.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(Xc),e.__H.__h.forEach(Zc),e.__H.__h=[]}catch(t){e.__H.__h=[],Nc.__e(t,e.__v)}}Nc.__b=function(e){Pc=null,Bc&&Bc(e)},Nc.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),Kc&&Kc(e,t)},Nc.__r=function(e){Fc&&Fc(e),jc=0;var t=(Pc=e.__c).__H;t&&(Lc===Pc?(t.__h=[],Pc.__h=[],t.__.forEach(function(e){e.__N&&(e.__=e.__N),e.u=e.__N=void 0})):(t.__h.forEach(Xc),t.__h.forEach(Zc),t.__h=[],jc=0)),Lc=Pc},Nc.diffed=function(e){Wc&&Wc(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(1!==Mc.push(t)&&Rc===Nc.requestAnimationFrame||((Rc=Nc.requestAnimationFrame)||Qc)(Gc)),t.__H.__.forEach(function(e){e.u&&(e.__H=e.u),e.u=void 0})),Lc=Pc=null},Nc.__c=function(e,t){t.some(function(e){try{e.__h.forEach(Xc),e.__h=e.__h.filter(function(e){return!e.__||Zc(e)})}catch(n){t.some(function(e){e.__h&&(e.__h=[])}),t=[],Nc.__e(n,e.__v)}}),Vc&&Vc(e,t)},Nc.unmount=function(e){Hc&&Hc(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.forEach(function(e){try{Xc(e)}catch(e){t=e}}),n.__H=void 0,t&&Nc.__e(t,n.__v))};var Yc="function"==typeof requestAnimationFrame;function Qc(e){var t,n=function(){clearTimeout(r),Yc&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,35);Yc&&(t=requestAnimationFrame(n))}function Xc(e){var t=Pc,n=e.__c;"function"==typeof n&&(e.__c=void 0,n()),Pc=t}function Zc(e){var t=Pc;e.__c=e.__(),Pc=t}function el(e,t){return!e||e.length!==t.length||t.some(function(t,n){return t!==e[n]})}function tl(e,t){return"function"==typeof t?t(e):t}function nl({option:e,onClick:t}){const{displayName:n,iconUrl:r,styleHint:s}=e,i=function(e){const t=Object.assign({},Uc.ProviderButton);if(!e)return t;switch(e){case"google":return Object.assign(Object.assign({},t),Uc.ProviderGoogle);case"github":return Object.assign(Object.assign({},t),Uc.ProviderGitHub);case"microsoft":return Object.assign(Object.assign({},t),Uc.ProviderMicrosoft);case"apple":return Object.assign(Object.assign({},t),Uc.ProviderApple);case"otp":return Object.assign({},Uc.OtpButton);case"custom-oauth2":return Object.assign(Object.assign({},t),Uc.ProviderCustom);default:return t}}(s);return lc("button",{type:"button",style:i,onClick:t,class:"dxc-option-btn"+(s?` dxc-option-${s}`:""),"aria-label":n},r&&lc("img",{src:r,alt:"",style:Uc.ProviderButtonIcon,"aria-hidden":"true"}),lc("span",{style:Uc.ProviderButtonText},n))}function rl(){return lc("div",{style:Uc.Divider},lc("div",{style:Uc.DividerLine}),lc("span",{style:Uc.DividerText},"or"),lc("div",{style:Uc.DividerLine}))}function sl({title:e,alerts:t,fields:n,options:r,submitLabel:s,cancelLabel:i,onCancel:o,onSubmit:c}){const[l,a]=Jc({}),d=qc(null);!function(e,t){var n=zc(jc++,4);!Nc.__s&&el(n.__H,t)&&(n.__=e,n.u=t,Pc.__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 lc(Tc,{className:"dxc-login-dlg"},lc(dc,null,lc("h3",{style:Uc.WindowHeader},e),t.map((e,t)=>lc("p",{key:t,style:Uc.Alert[e.type]},function({message:e,messageCode:t,messageParams:n}){return e.replace(/\{\w+\}/gi,e=>n[e.substring(1,e.length-1)])}(e))),f&&lc("div",{class:"dxc-options"},g?Array.from(p.entries()).map(([e,t],n)=>lc(dc,{key:e},n>0&&lc(rl,null),t.map(e=>lc(nl,{key:`${e.name}-${e.value}`,option:e,onClick:()=>y(e)})))):r.map(e=>lc(nl,{key:`${e.name}-${e.value}`,option:e,onClick:()=>y(e)}))),f&&h&&lc(rl,null),h&&lc("form",{onSubmit:e=>{e.preventDefault(),c(l)}},u.map(([e,{type:t,label:n,placeholder:r}],s)=>lc("label",{style:Uc.Label,key:s},n?`${n}: `:"",lc("input",{ref:0===s?d:void 0,type:t,name:e,autoComplete:"on",style:Uc.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)}}))))),lc("div",{style:Uc.ButtonsDiv},lc(dc,null,s&&(h||!f&&!h)&&lc("button",{type:"submit",style:Uc.PrimaryButton,onClick:()=>c(l)},s),i&&lc("button",{style:Uc.Button,onClick:o},i))))}class il extends uc{constructor(e){super(e),this.observer=e=>this.setState({userInteraction:e}),this.state={userInteraction:void 0}}componentDidMount(){this.subscription=t.from(this.props.db.cloud.userInteraction).subscribe(this.observer)}componentWillUnmount(){this.subscription&&(this.subscription.unsubscribe(),delete this.subscription)}render(e,{userInteraction:t}){return t?lc(sl,Object.assign({},t)):null}}function ol(e){const t=new WeakMap;return n=>{let r=t.get(n);return r||(r=e(n),t.set(n,r)),r}}const cl=ol(e=>new t.BehaviorSubject(l));function ll(e,n){let r=n,s=t.from(e).pipe(t.map(e=>r=e),t.share({resetOnRefCountZero:()=>t.timer(1e3)}));const i=new t.Observable(e=>{let t=!1;const n=s.subscribe({next(n){t=!0,e.next(n)},error(t){e.error(t)},complete(){e.complete()}});return t||n.closed||e.next(r),n});return i.getValue=()=>r,i}const al=ol(t=>ll(e.liveQuery(()=>t.roles.where({realmId:"rlm-public"}).toArray().then(e=>{const t={};for(const n of e.slice().sort((e,t)=>(e.sortOrder||0)-(t.sortOrder||0)))t[n.name]=n;return t})),{})),dl=ol(t=>ll(cl(t._novip).pipe(n.switchMap(n=>e.liveQuery(()=>t.transaction("r","realms","members",()=>Promise.all([t.members.where({userId:n.userId}).toArray(),t.realms.toArray(),n.userId]).then(([e,t,n])=>({selfMembers:e,realms:t,userId:n})))))),{selfMembers:[],realms:[],get userId(){return t.cloud.currentUserId}}));function ul(...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 hl=ol(e=>function(e,n){let r;const s=e.pipe(t.map(e=>r=n(e)));return s.getValue=()=>void 0!==r?r:r=n(e.getValue()),s}(ll(t.combineLatest([dl(e._novip),al(e._novip)]).pipe(n.map(([{selfMembers:e,realms:t,userId:n},r])=>({selfMembers:e,realms:t,userId:n,globalRoles:r}))),{selfMembers:[],realms:[],userId:l.userId,globalRoles:{}}),({selfMembers:e,realms:t,userId:n,globalRoles:r})=>{const s=t.map(t=>{const s=e.filter(e=>e.realmId===t.realmId),i=s.map(e=>e.permissions).filter(e=>e),o=C(s.map(e=>e.roles).filter(e=>e)).map(e=>r[e]).filter(e=>e).map(e=>e.permissions);return Object.assign(Object.assign({},t),{permissions:t.owner===n?{manage:"*"}:ul(...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 fl{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 pl=ol(s=>{const i=cl(s._novip).pipe(n.switchMap(t=>e.liveQuery(()=>s.members.where({email:t.email||""}).toArray()))),o=hl(s._novip),c=dl(s._novip);return ll(t.combineLatest([i,c,o]).pipe(n.map(([e,t,n])=>{const i=(e,t)=>Object.assign(Object.assign({},e),{[t.id]:Object.assign(Object.assign({},t),{realm:n[t.realmId]})}),o=e.reduce(i,{}),c=t.selfMembers.reduce(i,o);return Object.values(c).filter(e=>!e.accepted).map(e=>Object.assign(Object.assign({},e),{accept(){return r(this,void 0,void 0,function*(){yield s.members.update(e.id,{accepted:new Date})})},reject(){return r(this,void 0,void 0,function*(){yield s.members.update(e.id,{rejected:new Date})})}}))})),[])});function gl(n){return s=>{var i;const o=s.doc;if(!o)throw new Error("Internal error: DexieYProvider.createYHandler called without a doc. This is unexpected.");const{parentTable:c}=o.meta||{};if(!(null===(i=n.cloud.schema)||void 0===i?void 0:i[c].markedForSync))return;let l;Object.defineProperty(s,"awareness",{get:()=>l||(l=function(n,s,i){const{parentTable:o,parentId:c,parentProp:l,updatesTable:a}=s.meta,d=new Uo(s),u=Po(s);return d.on("update",({added:e,updated:t,removed:r},c)=>{const a=e.concat(t).concat(r),u=n.cloud.currentUser.value;if("server"!==c&&u.isLoggedIn&&!vo(n)){const e=((e,t,n=e.states)=>{const r=t.length,s=ie();ae(s,r);for(let i=0;i<r;i++){const r=t[i],o=n.get(r)||null,c=e.meta.get(r).clock;ae(s,r),ae(s,c),fe(s,JSON.stringify(o))}return oe(s)})(d,a);n.messageProducer.next({type:"aware",table:o,prop:l,k:s.meta.parentId,u:e}),i.destroyed&&n.messageProducer.next({type:"doc-close",table:o,prop:l,k:s.meta.parentId})}}),d.on("destroy",()=>{To(d,[s.clientID],"provider destroyed")}),(()=>{r(this,void 0,void 0,function*(){if(i.destroyed)return;let s=!1,d=1;const h=t.combineLatest([n.cloud.webSocketStatus,u.pipe(t.startWith(null))]).subscribe(([e])=>{if(i.destroyed)return;s="connected"===e;const t=n.cloud.currentUser.value;"connected"===e&&t.isLoggedIn&&!vo(n)&&(++d,f().catch(e=>{}))});function f(){return r(this,void 0,void 0,function*(){const t=d,u=n.table(a),h=n.$syncState,[f,p]=yield n.transaction("r",h,u,()=>r(this,void 0,void 0,function*(){const e=yield u.get(Jt),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!==t||!s)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(t=>0===e.cmp(t.k,c)&&!(1&(t.f||0))).toArray();if(!i.destroyed&&d===t&&s){if(y.length>0){const e=$r(y.map(e=>e.u)),t=Lr(e);g.sv=t}n.messageProducer.next(g)}})}i.addCleanupHandler(h)})})(),d}(n,o,s),Do.set(o,l),l)})}}function yl(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 Ki("access_denied",i,c);if(c.toLowerCase().includes("email")&&c.toLowerCase().includes("verif"))throw new Ki("email_not_verified",i,c);throw new Ki("provider_error",i,c)}return s&&i&&o?{code:s,provider:i,state:o}:null}function ml(){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 vl={nameSuffix:!0};function bl(s){const i=s.name,o=cl(s),c=[];let a=!1,d=null,u=null,h=null;s.on("ready",s=>r(this,void 0,void 0,function*(){try{yield function(s){return r(this,void 0,void 0,function*(){var i,l,v,b,w,k,S;f=!1;const x=$i(s);"undefined"!=typeof window&&"undefined"!=typeof document&&((null===(i=x.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),Ac(lc(il,{db:e.vip}),n)):addEventListener("DOMContentLoaded",()=>{t||(document.body.appendChild(n),Ac(lc(il,{db:e.vip}),n))}),{unsubscribe(){try{n.remove()}catch(e){}t=!0},get closed(){return t}}}(s))),x.cloud.isServiceWorkerDB||c.push(function(e){let r=e.cloud.webSocketStatus.value;const s=e.cloud.webSocketStatus.pipe(n.switchMap(e=>{const s=r;r=e;const i=t.of(e);switch(e){case"disconnected":return ko.value?i.pipe(n.debounceTime(500)):i;case"connecting":return"not-started"===s||"error"===s?i:i.pipe(n.debounceTime(4e3));default:return i}}));return t.combineLatest([s,e.syncStateChangedEvent.pipe(n.startWith({phase:"initial"})),cl(e.dx._novip),So]).pipe(n.map(([t,n,r,s])=>{var i;if((null===(i=r.license)||void 0===i?void 0:i.status)&&"ok"!==r.license.status)return{phase:"offline",status:"offline",license:r.license.status};let{phase:o,error: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:Wt?a:"offline",license:"ok"}}))}(x).subscribe(s.cloud.syncState)),c.push(x.syncCompleteEvent.subscribe(m)),x.tables.every(e=>e.core)||function(){throw new e.SchemaError("Version increment needed to allow dexie-cloud change tracking")}();const E="serviceWorker"in navigator?yield navigator.serviceWorker.getRegistrations():[],[C,I]=yield x.transaction("rw",x.$syncState,()=>r(this,void 0,void 0,function*(){var e,t;const{options:n,schema:r}=x.cloud,[s,i,o]=yield Promise.all([x.getOptions(),x.getSchema(),x.getPersistedSyncState()]);if(a){if(!s||JSON.stringify(s)!==JSON.stringify(n)){if(!n)throw new Error("Internal error");const e=Object.assign({},n);delete e.fetchTokens,delete e.awarenessProtocol,yield x.$syncState.put(e,"options")}}else x.cloud.options=s||null;if((null===(e=x.cloud.options)||void 0===e?void 0:e.tryUseServiceWorker)&&"serviceWorker"in navigator&&E.length>0&&!no?x.cloud.usingServiceWorker=!0:((null===(t=x.cloud.options)||void 0===t?void 0:t.tryUseServiceWorker)&&x.cloud.isServiceWorkerDB,x.cloud.usingServiceWorker=!1),Ho(r,x.cloud.options),Ho(i,x.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 x.$syncState.put(e,"schema"),Object.assign(r,e)}}else x.cloud.schema=i||null;return[null==o?void 0:o.initiallySynced,null==o?void 0:o.realms]}));if(C&&x.setInitiallySynced(!0),function(t){var n,r;for(const s of t.tables)if(null===(r=null===(n=t.cloud.schema)||void 0===n?void 0:n[s.name])||void 0===r?void 0:r.markedForSync){if(s.schema.primKey.auto)throw new e.SchemaError(`Table ${s.name} is both autoIncremented and synced. Use db.cloud.configure({unsyncedTables: [${JSON.stringify(s.name)}]}) to blacklist it from sync`);if(!s.schema.primKey.keyPath)throw new e.SchemaError(`Table ${s.name} cannot be both synced and outbound. Use db.cloud.configure({unsyncedTables: [${JSON.stringify(s.name)}]}) to blacklist it from sync`)}}(x),p(),!x.cloud.isServiceWorkerDB){c.push(e.liveQuery(()=>x.getCurrentUser()).subscribe(o)),c.push(e.liveQuery(()=>x.getPersistedSyncState()).subscribe(x.cloud.persistedSyncState)),yield t.firstValueFrom(t.combineLatest([o.pipe(n.skip(1),n.take(1)),x.cloud.persistedSyncState.pipe(n.skip(1),n.take(1))]));const r=gl(x);Ci.on.new.subscribe(r),x.dx.once("close",()=>{Ci.on.new.unsubscribe(r)})}let O=!1,D=yield x.getCurrentUser();if(u&&!x.cloud.isServiceWorkerDB){const e=u;u=null;try{yield Xe(x.cloud.userInteraction,"Authentication Error",{type:"error",messageCode:"GENERIC_ERROR",message:e.message,messageParams:{provider:e.provider||"unknown"}})}catch(e){}}if(d&&!x.cloud.isServiceWorkerDB){const{code:e,provider:t}=d;d=null;try{O=yield Xi(x,{oauthCode:e,provider:t}),D=yield x.getCurrentUser()}catch(e){}}const A=null===(l=x.cloud.options)||void 0===l?void 0:l.requireAuth;A&&(x.cloud.isServiceWorkerDB?yield t.firstValueFrom(o.pipe(n.filter(e=>!!e.isLoggedIn),n.take(1))):"object"==typeof A?(!D.isLoggedIn||A.userId&&D.userId!==A.userId||A.email&&D.email!==A.email)&&(O=yield Xi(x,A)):D.isLoggedIn||(O=yield Xi(x))),!D.isLoggedIn||I&&I.includes(D.userId)||(O=!0),h&&h.stop(),h=null,p();const U=(null===(v=x.cloud.options)||void 0===v?void 0:v.databaseUrl)&&(!C||O);U&&(yield function(e,t,n){return r(this,void 0,void 0,function*(){yield _o(e,Di,()=>Ai(e,t,n,{isInitialSync:!0}))})}(x,x.cloud.options,x.cloud.schema),x.setInitiallySynced(!0)),p(),x.cloud.usingServiceWorker&&(null===(b=x.cloud.options)||void 0===b?void 0:b.databaseUrl)?(U||g(x,"push").catch(()=>{}),function(e){return r(this,void 0,void 0,function*(){var t;try{const{periodicSync:n}=yield navigator.serviceWorker.ready;if(n)try{yield n.register(`dexie-cloud:${e.name}`,null===(t=e.cloud.options)||void 0===t?void 0:t.periodicSync)}catch(e){}}catch(e){}})}(x).catch(()=>{})):(null===(w=x.cloud.options)||void 0===w?void 0:w.databaseUrl)&&x.cloud.schema&&!x.cloud.isServiceWorkerDB&&(h=Vo(x,x.cloud.options,x.cloud.schema),h.start(),U||y(x,"push")),p(),x.cloud.isServiceWorkerDB||c.push(t.fromEvent(self,"online").subscribe(()=>{x.syncStateChangedEvent.next({phase:"not-in-sync"}),vo(x)||y(x,"push")}),t.fromEvent(self,"offline").subscribe(()=>{x.syncStateChangedEvent.next({phase:"offline"})})),!(null===(k=x.cloud.options)||void 0===k?void 0:k.databaseUrl)||(null===(S=x.cloud.options)||void 0===S?void 0:S.disableWebSocket)||ro||c.push(function(e){var s;if(!(null===(s=e.cloud.options)||void 0===s?void 0:s.databaseUrl))throw new Error("No database URL to connect WebSocket to");const i=e.messageConsumer.readyToServe.pipe(n.filter(e=>e),n.switchMap(()=>e.getPersistedSyncState()),n.filter(e=>e&&e.serverRevision),n.switchMap(e=>r(this,void 0,void 0,function*(){return{type:"ready",rev:e.serverRevision,realmSetHash:yield _(e)}}))),o=t.merge(i,e.messageProducer);return function s(){return e.cloud.persistedSyncState.pipe(n.filter(e=>null==e?void 0:e.serverRevision),n.take(1),n.switchMap(t=>e.cloud.currentUser.pipe(n.map(e=>[e,t]))),n.switchMap(([e,t])=>So.pipe(n.map(n=>[n?e:null,t]))),n.switchMap(([r,s])=>(null==r?void 0:r.isLoggedIn)&&!(null==s?void 0:s.realms.includes(r.userId))?e.cloud.persistedSyncState.pipe(n.filter(e=>(null==e?void 0:e.realms.includes(r.userId))||!1),n.take(1),n.map(e=>[r,e])):new t.BehaviorSubject([r,s])),n.switchMap(e=>r(this,[e],void 0,function*([e,t]){return[e,yield _(t)]})),n.distinctUntilChanged(([e,t],[n,r])=>e===n&&t===r),n.switchMap(([n,r])=>{var i;return(null===(i=e.cloud.persistedSyncState)||void 0===i?void 0:i.value)?n?new Lo(e,e.cloud.persistedSyncState.value.serverRevision,e.cloud.persistedSyncState.value.yServerRevision,r,e.cloud.persistedSyncState.value.clientIdentity,o,e.cloud.webSocketStatus,n):t.from([]):s()}),n.catchError(i=>"TokenExpiredError"===(null==i?void 0:i.name)?t.of(!0).pipe(n.switchMap(()=>r(this,void 0,void 0,function*(){const t=yield e.getCurrentUser(),n=yield st(e.cloud.options.databaseUrl,t);yield e.table("$logins").update(t.userId,{accessToken:n.accessToken,accessTokenExpiration:n.accessTokenExpiration,claims:n.claims,license:n.license,data:n.data})})),n.switchMap(()=>s())):t.throwError(()=>i)),n.catchError(r=>(e.cloud.webSocketStatus.next("error"),r instanceof Mo?t.throwError(()=>r):t.from(No()).pipe(n.switchMap(()=>s())))))}().subscribe({next:t=>{t&&e.messageConsumer.enqueue(t)},error:e=>{},complete:()=>{}})}(x))})}(s)}catch(e){}}),!0);let f=!1;function p(){if(f)throw new e.DatabaseClosedError}s.once("close",()=>{c.forEach(e=>e.unsubscribe()),c.splice(0,c.length),f=!0,h&&h.stop(),h=null,o.next(l)});const m=new t.Subject;var v;s.cloud={version:"4.3.7",options:Object.assign({},vl),schema:null,get currentUserId(){return o.value.userId||l.userId},currentUser:o,syncState:new t.BehaviorSubject({phase:"initial",status:"not-started"}),events:{syncComplete:m},persistedSyncState:new t.BehaviorSubject(void 0),userInteraction:new t.BehaviorSubject(void 0),webSocketStatus:new t.BehaviorSubject("not-started"),login(e){return r(this,void 0,void 0,function*(){const t=$i(s);yield t.cloud.sync(),yield Xi(t,e)})},invites:pl(s),roles:al(s),configure(e){if(e=s.cloud.options=Object.assign(Object.assign({},s.cloud.options),e),a=!0,e.databaseUrl&&e.nameSuffix&&(s.name=`${i}-${function(e){const t=new URL(e);return"/"===t.pathname?t.hostname.split(".")[0]:t.pathname.split("/")[1]}(e.databaseUrl)}`,$i(s).reconfigure()),Ho(s.cloud.schema,s.cloud.options),"undefined"!=typeof window&&window.location)try{const e=yl();e&&(ml(),d={code:e.code,provider:e.provider})}catch(e){ml(),e instanceof Ki&&(u=e)}},logout(){return r(this,arguments,void 0,function*({force:e}={}){e?yield Vi($i(s),{deleteUnsyncedData:!0}):yield Wi($i(s))})},getAuthProviders(){return r(this,void 0,void 0,function*(){const e=s.cloud.options;if(!(null==e?void 0:e.databaseUrl))throw new Error("Dexie Cloud not configured. Call db.cloud.configure() first.");const t=!1!==e.socialAuth;return Ji(e.databaseUrl,t)})},sync(){return r(this,arguments,void 0,function*({wait:i,purpose:o}={wait:!0,purpose:"push"}){var c;void 0===i&&(i=!0);const l=$i(s);if("ok"!==((null===(c=l.cloud.currentUser.value.license)||void 0===c?void 0:c.status)||"ok")&&(yield nt(l)),"pull"===o){const e=l.cloud.persistedSyncState.value;if(y(l,o),i){const r=yield t.firstValueFrom(l.cloud.persistedSyncState.pipe(n.filter(t=>null!=(null==t?void 0:t.timestamp)&&(!e||t.timestamp>e.timestamp))));if(null==r?void 0:r.error)throw new Error("Sync error: "+r.error)}}else if(yield Bo(l)){const s=l.cloud.persistedSyncState.value;y(l,o),i&&(yield t.firstValueFrom(t.from(e.liveQuery(()=>r(this,void 0,void 0,function*(){const e=yield Bo(l),t=yield l.getPersistedSyncState();if((null==t?void 0:t.timestamp)!==(null==s?void 0:s.timestamp)&&(null==t?void 0:t.error))throw new Error("Sync error: "+t.error);return e}))).pipe(n.filter(e=>!e))))}})},permissions:(e,t)=>function(e,t,r){if(!t)throw new TypeError("Cannot check permissions of undefined or null. A Dexie Cloud object with realmId and owner expected.");const{owner:s,realmId:i}=t;if(!r){if("function"!=typeof t.table)throw new TypeError("Missing 'table' argument to permissions and table could not be extracted from entity");r=t.table()}const o=hl(e),c=t=>{const n=t[i||e.cloud.currentUserId];return n?new fl(n.permissions,r,void 0===i||i===e.cloud.currentUserId||s===e.cloud.currentUserId):new fl({},r,!s||s===e.cloud.currentUserId)},l=o.pipe(n.map(c));return l.getValue=()=>c(o.getValue()),l}(s._novip,e,t)},s.Version.prototype._parseStoresSpec=e.override(s.Version.prototype._parseStoresSpec,e=>wo(e,s)),s.Table.prototype.newId=function({colocateWith:e}={}){const t=e&&e.substr(e.length-3);return ho(s.cloud.schema[this.name].idPrefix||"",t)},s.Table.prototype.idPrefix=function(){var e,t;return(null===(t=null===(e=this.db.cloud.schema)||void 0===e?void 0:e[this.name])||void 0===t?void 0:t.idPrefix)||""},s.use(bo({currentUserObservable:s.cloud.currentUser,db:$i(s)})),s.use((v=$i(s),{stack:"dbcore",name:"implicitPropSetterMiddleware",level:1,create:e=>Object.assign(Object.assign({},e),{table:t=>{const n=e.table(t);return Object.assign(Object.assign({},n),{mutate:e=>{var r,s,i,o,c,a;const d=e.trans;if(d.disableChangeTracking)return n.mutate(e);const u=null!==(s=null===(r=d.currentUser)||void 0===r?void 0:r.userId)&&void 0!==s?s:l.userId;if((null===(o=null===(i=v.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=u),t.realmId||(t.realmId=u);const r=null===(a=(c=n.schema.primaryKey).extractKey)||void 0===a?void 0:a.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)}})}})})),s.use(fo($i(s)))}bl.version="4.3.7",e.Cloud=bl;const wl=new Map;function _l(e){return e.startsWith("dexie-cloud:")&&e.split(":")[1]}const kl=new Map;function Sl(t,n){let s=kl.get(t+"/"+n);return s||(s=function t(n,s){return r(this,void 0,void 0,function*(){var r;let i=wl.get(n);if(!i){const r=new e(n,{addons:[bl]});if(i=$i(r),i.cloud.isServiceWorkerDB=!0,r.on("versionchange",o),yield i.dx.open(),wl.get(n))return i.close(),yield t(n,s);wl.set(n,i)}if((null===(r=i.cloud.options)||void 0===r?void 0:r.databaseUrl)&&i.cloud.schema)try{yield Wo(i,i.cloud.options,i.cloud.schema,{retryImmediatelyOnFetchError:!0,purpose:s})}catch(t){if(o(),t.name!==e.errnames.NoSuchDatabase)throw t}function o(){return i.dx.on.versionchange.unsubscribe(o),wl.get(i.name)===i&&wl.delete(i.name),i.dx.close(),!1}})}(t,n).then(()=>{kl.delete(t+"/"+n)}).catch(e=>(kl.delete(t+"/"+n),Promise.reject(e))),kl.set(t+"/"+n,s)),s}no||(self.addEventListener("sync",e=>{const t=_l(e.tag);t&&e.waitUntil(Sl(t,"push"))}),self.addEventListener("periodicsync",e=>{const t=_l(e.tag);t&&e.waitUntil(Sl(t,"pull"))}),self.addEventListener("message",e=>{if("dexie-cloud-sync"===e.data.type){const{dbName:t}=e.data,n=(s=1)=>Sl(t,e.data.purpose||"pull").catch(e=>r(void 0,void 0,void 0,function*(){if(3===s)throw e;var t;yield(t=6e4,new Promise(e=>setTimeout(e,t))),n(s+1)}));"waitUntil"in e?e.waitUntil(n().catch(e=>{})):n().catch(e=>{})}}))});
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("dexie"),require("rxjs"),require("rxjs/operators")):"function"==typeof define&&define.amd?define(["dexie","rxjs","rxjs/operators"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Dexie,e.rxjs,e.rxjs.operators)}(this,function(e,t,n){"use strict";function r(e,t,n,r){return new(n||(n=Promise))(function(s,i){function o(e){try{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 s(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function i(e){return this instanceof i?(this.v=e,this):new i(e)}function o(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,s=n.apply(e,t||[]),o=[];return r=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){o.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 i?Promise.resolve(e.value.v).then(a,d):u(o[0][2],e)}(s[e](t))}catch(e){u(o[0][3],e)}}function a(e){l("next",e)}function d(e){l("throw",e)}function u(e,t){e(t),o.shift(),o.length&&l(o[0][0],o[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=s(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise(function(r,s){(function(e,t,n,r){Promise.resolve(r).then(function(t){e({value:t,done:n})},t)})(r,s,(t=e[n](t)).done,t.value)})}}}"function"==typeof SuppressedError&&SuppressedError;const l={userId:"unauthorized",name:"Unauthorized",claims:{sub:"unauthorized"},lastLogin:new Date(0)};try{Object.freeze(l),Object.freeze(l.claims)}catch(e){}const a={},d="undefined"!=typeof self&&self.document&&"undefined"!=typeof navigator&&navigator.serviceWorker;d&&d.ready.then(e=>a.registration=e),"undefined"!=typeof self&&"clients"in self&&!self.document&&addEventListener("message",e=>{var t,n;(null===(n=null===(t=e.data)||void 0===t?void 0:t.type)||void 0===n?void 0:n.startsWith("sw-broadcast-"))&&[...self.clients.matchAll({includeUncontrolled:!0})].forEach(t=>{var n;return t.id!==(null===(n=e.source)||void 0===n?void 0:n.id)&&t.postMessage(e.data)})});class u{constructor(e){this.name=e}subscribe(e){if(!d)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 d.addEventListener("message",t),()=>d.removeEventListener("message",t)}postMessage(e){var t;"object"==typeof self.clients?[...self.clients.matchAll({includeUncontrolled:!0})].forEach(t=>t.postMessage({type:`sw-broadcast-${this.name}`,message:e})):a.registration&&(null===(t=a.registration.active)||void 0===t||t.postMessage({type:`sw-broadcast-${this.name}`,message:e}))}}const h=globalThis["lbc-events"]||(globalThis["lbc-events"]=new Map);class f extends t.Observable{constructor(e){const t="undefined"==typeof BroadcastChannel?new u(e):new BroadcastChannel(e);super(n=>{function r(e){n.next(e.detail)}function s(e){n.next(e.data)}let i;!function(e,t){h.has(e)?h.get(e).push(t):h.set(e,[t])}(`lbc-${e}`,r);try{t instanceof u?i=t.subscribe(e=>n.next(e)):t.addEventListener("message",s)}catch(e){}return()=>{!function(e,t){const n=h.get(e);if(n){const e=n.indexOf(t);-1!==e&&n.splice(e,1)}}(`lbc-${e}`,r),t instanceof u?i():t.removeEventListener("message",s)}}),this.name=e,this.bc=t}next(e){this.bc.postMessage(e);!function(e){const t=h.get(e.type);t&&t.forEach(t=>{try{t(e)}catch(e){}})}(new CustomEvent(`lbc-${this.name}`,{detail:e}))}}let p=!1;function g(e,t){return r(this,void 0,void 0,function*(){try{const n=yield navigator.serviceWorker.ready;if("push"===t&&n.sync&&(yield n.sync.register(`dexie-cloud:${e.name}`)),!n.active)throw new Error("Failed to trigger sync - there's no active service worker");return void n.active.postMessage({type:"dexie-cloud-sync",dbName:e.name,purpose:t})}catch(e){p||(p=!0)}})}function y(e,t){e.cloud.usingServiceWorker?g(e,t):e.localSyncEvent.next({purpose:t})}const m="fromBase64"in Uint8Array,v="toBase64"in Uint8Array.prototype,b="undefined"!=typeof Buffer?e=>Buffer.from(e,"base64"):m?e=>Uint8Array.fromBase64(e):e=>{const t=atob(e),n=t.length,r=new Uint8Array(n);for(var s=0;s<n;s++)r[s]=t.charCodeAt(s);return r},w="undefined"!=typeof Buffer?e=>ArrayBuffer.isView(e)?Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("base64"):Buffer.from(e).toString("base64"):v?e=>(ArrayBuffer.isView(e)?e:new Uint8Array(e)).toBase64():e=>{const t=ArrayBuffer.isView(e)?e:new Uint8Array(e),n=[];for(let e=0,r=t.length;e<r;e+=4096){const r=t.subarray(e,e+4096);n.push(String.fromCharCode.apply(null,r))}return btoa(n.join(""))};function _(e){return r(this,arguments,void 0,function*({realms:e,inviteRealms:t}){const n=JSON.stringify([...e.map(e=>({realmId:e,accepted:!0})),...t.map(e=>({realmId:e,accepted:!1}))].sort((e,t)=>e.realmId<t.realmId?-1:e.realmId>t.realmId?1:0)),r=(new TextEncoder).encode(n),s=yield crypto.subtle.digest("SHA-1",r);return w(s)})}function k(e){return Object.entries(e.cloud.schema||{}).filter(([,{markedForSync:e}])=>e).map(([t])=>e.tables.filter(({name:e})=>e===t)[0]).filter(e=>e)}function S(e){return`$${e}_mutations`}function x(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 E=[].concat;function C(e){return E.apply([],e)}function I(e,t){return r(this,arguments,void 0,function*(e,t,{since:n={},limit:s=1/0}={}){const i=yield Promise.all(e.map(e=>r(this,void 0,void 0,function*(){const t=x(e.name),r=n[t];let i=r?e.where("rev").above(r):e;s<1/0&&(i=i.limit(s));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=C(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 O(e){const t=new Uint8Array(e);if("undefined"!=typeof crypto)crypto.getRandomValues(t);else for(let n=0;n<e;n++)t[n]=Math.floor(256*Math.random());if("undefined"!=typeof Buffer&&Buffer.from)return Buffer.from(t).toString("base64");if("undefined"!=typeof btoa)return btoa(String.fromCharCode.apply(null,t));throw new Error("No btoa or Buffer available")}const D={}.hasOwnProperty;function A(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)A(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 D.call(e,t)}(e,o)||(l=e[o]={}),A(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=T)=>{const n=Buffer.alloc(e);return t(n),n.toString("base64")}:()=>{throw new Error("No implementation of randomString was found")};function T(e){for(let t=0;t<e.length;++t)e[t]=Math.floor(256*Math.random())}function j(e){return"string"==typeof e||!!(Array.isArray(e)&&e.some(e=>j(e))&&e.every(L))}function L(e){return"string"==typeof e||"number"==typeof e||Array.isArray(e)&&e.every(L)}function P(e,t,n){const r=e[t]||(e[t]={}),s=n.keys.map(e=>"string"==typeof e?e:JSON.stringify(e));switch(n.type){case"insert":case"upsert":s.forEach((e,t)=>{r[e]={type:"ups",val:n.values[t]}});break;case"update":case"modify":s.forEach((e,t)=>{const s="update"===n.type?n.changeSpecs[t]:n.changeSpec,i=r[e];if(i)switch(i.type){case"ups":for(const[e,t]of Object.entries(s))A(i.val,e,t);break;case"del":break;case"upd":Object.assign(i.mod,s)}else r[e]={type:"upd",mod:s}});break;case"delete":s.forEach(e=>{r[e]={type:"del"}})}return e}function R(e,t){for(const{table:n,muts:r}of t)for(const t of r)P(e,n,t)}const $=Math.floor,M=Math.abs,N=(e,t)=>e<t?e:t,B=(e,t)=>e>t?e:t,F=e=>0!==e?e<0:1/e<0,W=64,V=128,H=127,K=Number.MAX_SAFE_INTEGER,z=Number.isInteger||(e=>"number"==typeof e&&isFinite(e)&&$(e)===e),J=()=>new Set,q=e=>e[e.length-1],G=(e,t)=>{for(let n=0;n<t.length;n++)e.push(t[n])},Y=Array.from,Q=Array.isArray,X=/^\s*/g,Z=/([A-Z])/g,ee=(e,t)=>(e=>e.replace(X,""))(e.replace(Z,e=>`${t}${(e=>e.toLowerCase())(e)}`)),te="undefined"!=typeof TextEncoder?new TextEncoder:null,ne=te?e=>te.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 re="undefined"==typeof TextDecoder?null:new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});re&&1===re.decode(new Uint8Array).length&&(re=null);class se{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}}const ie=()=>new se,oe=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},ce=(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},le=ce,ae=(e,t)=>{for(;t>H;)ce(e,V|H&t),t=$(t/128);ce(e,H&t)},de=(e,t)=>{const n=F(t);for(n&&(t=-t),ce(e,(t>63?V:0)|(n?W:0)|63&t),t=$(t/64);t>0;)ce(e,(t>H?V:0)|H&t),t=$(t/128)},ue=new Uint8Array(3e4),he=ue.length/3,fe=te&&te.encodeInto?(e,t)=>{if(t.length<he){const n=te.encodeInto(t,ue).written||0;ae(e,n);for(let t=0;t<n;t++)ce(e,ue[t])}else ge(e,ne(t))}:(e,t)=>{const n=unescape(encodeURIComponent(t)),r=n.length;ae(e,r);for(let t=0;t<r;t++)ce(e,n.codePointAt(t))},pe=(e,t)=>{const n=e.cbuf.length,r=e.cpos,s=N(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(B(2*n,i)),e.cbuf.set(t.subarray(s)),e.cpos=i)},ge=(e,t)=>{ae(e,t.byteLength),pe(e,t)},ye=(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*B(n,t)),e.cpos=0)})(e,t);const n=new DataView(e.cbuf.buffer,e.cpos,t);return e.cpos+=t,n},me=(e,t)=>ye(e,8).setBigUint64(0,t,!1),ve=new DataView(new ArrayBuffer(4)),be=(e,t)=>{switch(typeof t){case"string":ce(e,119),fe(e,t);break;case"number":z(t)&&M(t)<=2147483647?(ce(e,125),de(e,t)):(n=t,ve.setFloat32(0,n),ve.getFloat32(0)===n?(ce(e,124),((e,t)=>{ye(e,4).setFloat32(0,t,!1)})(e,t)):(ce(e,123),((e,t)=>{ye(e,8).setFloat64(0,t,!1)})(e,t)));break;case"bigint":ce(e,122),((e,t)=>{ye(e,8).setBigInt64(0,t,!1)})(e,t);break;case"object":if(null===t)ce(e,126);else if(Q(t)){ce(e,117),ae(e,t.length);for(let n=0;n<t.length;n++)be(e,t[n])}else if(t instanceof Uint8Array)ce(e,116),ge(e,t);else{ce(e,118);const n=Object.keys(t);ae(e,n.length);for(let r=0;r<n.length;r++){const s=n[r];fe(e,s),be(e,t[s])}}break;case"boolean":ce(e,t?120:121);break;default:ce(e,127)}var n};class we extends se{constructor(e){super(),this.w=e,this.s=null,this.count=0}write(e){this.s===e?this.count++:(this.count>0&&ae(this,this.count-1),this.count=1,this.w(this,e),this.s=e)}}const _e=e=>{e.count>0&&(de(e.encoder,1===e.count?e.s:-e.s),e.count>1&&ae(e.encoder,e.count-2))};class ke{constructor(){this.encoder=new se,this.s=0,this.count=0}write(e){this.s===e?this.count++:(_e(this),this.count=1,this.s=e)}toUint8Array(){return _e(this),oe(this.encoder)}}const Se=e=>{if(e.count>0){const t=2*e.diff+(1===e.count?0:1);de(e.encoder,t),e.count>1&&ae(e.encoder,e.count-2)}};class xe{constructor(){this.encoder=new se,this.s=0,this.count=0,this.diff=0}write(e){this.diff===e-this.s?(this.s=e,this.count++):(Se(this),this.count=1,this.diff=e-this.s,this.s=e)}toUint8Array(){return Se(this),oe(this.encoder)}}class Ee{constructor(){this.sarr=[],this.s="",this.lensE=new ke}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 se;return this.sarr.push(this.s),this.s="",fe(e,this.sarr.join("")),pe(e,this.lensE.toUint8Array()),oe(e)}}const Ce=e=>new Error(e),Ie=()=>{throw Ce("Method unimplemented")},Oe=()=>{throw Ce("Unexpected case")},De=Ce("Unexpected end of array"),Ae=Ce("Integer out of Range");class Ue{constructor(e){this.arr=e,this.pos=0}}const Te=e=>new Ue(e),je=e=>e.pos!==e.arr.length,Le=e=>((e,t)=>{const n=new Uint8Array(e.arr.buffer,e.pos+e.arr.byteOffset,t);return e.pos+=t,n})(e,Re(e)),Pe=e=>e.arr[e.pos++],Re=e=>{let t=0,n=1;const r=e.arr.length;for(;e.pos<r;){const r=e.arr[e.pos++];if(t+=(r&H)*n,n*=128,r<V)return t;if(t>K)throw Ae}throw De},$e=e=>{let t=e.arr[e.pos++],n=63&t,r=64;const s=(t&W)>0?-1:1;if(0===(t&V))return s*n;const i=e.arr.length;for(;e.pos<i;){if(t=e.arr[e.pos++],n+=(t&H)*r,r*=128,t<V)return s*n;if(n>K)throw Ae}throw De},Me=re?e=>re.decode(Le(e)):e=>{let t=Re(e);if(0===t)return"";{let n=String.fromCodePoint(Pe(e));if(--t<100)for(;t--;)n+=String.fromCodePoint(Pe(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))}},Ne=(e,t)=>{const n=new DataView(e.arr.buffer,e.arr.byteOffset+e.pos,t);return e.pos+=t,n},Be=e=>Ne(e,8).getBigUint64(0,!1),Fe=[e=>{},e=>null,$e,e=>Ne(e,4).getFloat32(0,!1),e=>Ne(e,8).getFloat64(0,!1),e=>Ne(e,8).getBigInt64(0,!1),e=>!1,e=>!0,Me,e=>{const t=Re(e),n={};for(let r=0;r<t;r++){n[Me(e)]=We(e)}return n},e=>{const t=Re(e),n=[];for(let r=0;r<t;r++)n.push(We(e));return n},Le],We=e=>Fe[127-Pe(e)](e);class Ve 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),je(this)?this.count=Re(this)+1:this.count=-1),this.count--,this.s}}class He extends Ue{constructor(e){super(e),this.s=0,this.count=0}read(){if(0===this.count){this.s=$e(this);const e=F(this.s);this.count=1,e&&(this.s=-this.s,this.count=Re(this)+2)}return this.count--,this.s}}class Ke extends Ue{constructor(e){super(e),this.s=0,this.count=0,this.diff=0}read(){if(0===this.count){const e=$e(this),t=1&e;this.diff=$(e/2),this.count=1,t&&(this.count=Re(this)+2)}return this.s+=this.diff,this.count--,this.s}}class ze{constructor(e){this.decoder=new He(e),this.str=Me(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*Je(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}}}}class qe 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 Ge=`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 Ye(e){return{name:"provider",value:e.name,displayName:`Continue with ${e.displayName}`,iconUrl:e.iconUrl,styleHint:e.type}}function Qe(t,n){return new Promise((r,s)=>{const i=Object.assign(Object.assign({submitLabel:"Submit",cancelLabel:"Cancel"},n),{onSubmit:e=>{t.next(void 0),r(e)},onCancel:()=>{t.next(void 0),s(new e.AbortError("User cancelled"))}});t.next(i)})}function Xe(e,t,...n){return Qe(e,{type:"message-alert",title:t,alerts:n,fields:{},submitLabel:"OK",cancelLabel:null})}function Ze(e,t,n){return r(this,void 0,void 0,function*(){let r=n||"";for(;!r||!/^[\w-+.]+@([\w-]+\.)+[\w-]{2,10}(\sas\s[\w-+.]+@([\w-]+\.)+[\w-]{2,10})?$/.test(r);)r=(yield Qe(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 et(e,t,n){return r(this,void 0,void 0,function*(){const r=[{type:"info",messageCode:"OTP_SENT",message:"A One-Time password has been sent to {email}",messageParams:{email:t}}];n&&r.push(n);const{otp:s}=yield Qe(e,{type:"otp",title:"Enter OTP",alerts:r,fields:{otp:{type:"otp",label:"OTP",placeholder:"Paste OTP here"}}});return s})}class tt extends Error{constructor(e){super(`OAuth redirect initiated for provider: ${e}`),this.name="OAuthRedirectError",this.provider=e}}function nt(e){return r(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 st(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 rt(t,n,s,i,o){return r(this,void 0,void 0,function*(){return n.accessToken&&n.accessTokenExpiration.getTime()>Date.now()?n:n.refreshToken&&(!n.refreshTokenExpiration||n.refreshTokenExpiration.getTime()>Date.now())?yield st(t,n):yield function(t,n,s,i){return r(this,void 0,void 0,function*(){if(!crypto.subtle)throw"undefined"!=typeof location&&"http:"===location.protocol?new Error("Dexie Cloud Addon needs to use WebCrypto, but your browser has disabled it due to being served from an insecure location. Please serve it from https or http://localhost:<port> (See https://stackoverflow.com/questions/46670556/how-to-enable-crypto-subtle-for-unsecure-origins-in-chrome/46671627#46671627)"):new Error("This browser does not support WebCrypto.");const{privateKey:r,publicKey:o}=yield crypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:2048,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!1,["sign","verify"]);if(!r||!o)throw new Error("Could not generate RSA keypair");t.nonExportablePrivateKey=r;const c=function(e){const t=w(e);return function(e){let t="-----BEGIN PUBLIC KEY-----\n";for(;e.length>0;)t+=e.substring(0,64)+"\n",e=e.substring(64);return t+="-----END PUBLIC KEY-----",t}(t)}(yield crypto.subtle.exportKey("spki",o));t.publicKey=o;try{const e=yield n({public_key:c,hints:i});if("error"===e.type)throw new qe(e);if("tokens"!==e.type)throw new Error(`Unexpected response type from token endpoint: ${e.type}`);return t.accessToken=e.accessToken,t.accessTokenExpiration=new Date(e.accessTokenExpiration),t.refreshToken=e.refreshToken,e.refreshTokenExpiration&&(t.refreshTokenExpiration=new Date(e.refreshTokenExpiration)),t.userId=e.claims.sub,t.email=e.claims.email,t.name=e.claims.name,t.claims=e.claims,t.license={type:e.userType,status:e.claims.license||"ok"},t.data=e.data,null!=e.evalDaysLeft&&(t.license.evalDaysLeft=e.evalDaysLeft),null!=e.userValidUntil&&(t.license.validUntil=new Date(e.userValidUntil)),e.alerts&&e.alerts.length>0&&(yield Qe(s,{type:"message-alert",title:"Authentication Alert",fields:{},alerts:e.alerts})),t}catch(t){if(t instanceof tt||"OAuthRedirectError"===(null==t?void 0:t.name))throw t;if(t instanceof qe)throw yield Xe(s,t.title,{type:"error",messageCode:t.messageCode,message:t.message,messageParams:{}}),t;let n="We're having a problem authenticating right now.";if(t instanceof TypeError){n=void 0!==typeof navigator&&!navigator.onLine?"You seem to be offline. Please connect to the internet and try again.":e.debug||"undefined"!=typeof location&&("localhost"===location.hostname||"127.0.0.1"===location.hostname)?`Could not connect to server. Please verify that your origin '${location.origin}' is whitelisted using \`npx dexie-cloud whitelist\``:"Could not connect to server. Please verify the connection.",yield Xe(s,"Authentication Failed",{type:"error",messageCode:"GENERIC_ERROR",message:n,messageParams:{}}).catch(()=>{})}throw t}})}(n,s,i,o)})}function st(e,t){return r(this,void 0,void 0,function*(){if(!t.refreshToken)throw new Error("Cannot refresh token - refresh token is missing.");if(!t.nonExportablePrivateKey)throw new Error("login.nonExportablePrivateKey is missing - cannot sign refresh token without a private key.");const n=Date.now(),r="RSASSA-PKCS1-v1_5",s=(new TextEncoder).encode(t.refreshToken+n),i=yield crypto.subtle.sign(r,t.nonExportablePrivateKey,s),o=w(i),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 qe(a);return t.accessToken=a.accessToken,t.accessTokenExpiration=a.accessTokenExpiration?new Date(a.accessTokenExpiration):void 0,t.claims=a.claims,t.license={type:a.userType,status:a.claims.license||"ok"},null!=a.evalDaysLeft&&(t.license.evalDaysLeft=a.evalDaysLeft),null!=a.userValidUntil&&(t.license.validUntil=new Date(a.userValidUntil)),a.data&&(t.data=a.data),t})}const{toString:it}={};const ot={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 ct(...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 ot;let i=n.get(r);if(void 0!==i)return i;const o=(s=e,it.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:ot),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 lt={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 at={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 dt={bigint:{replace:e=>({$t:"bigint",v:""+e}),revive:e=>BigInt(e.v)}};var ut={Date:{replace:e=>({$t:"Date",v:isNaN(e.getTime())?"NaN":e.toISOString()}),revive:({v:e})=>new Date("NaN"===e?NaN:Date.parse(e))}},ht={Set:{replace:e=>({$t:"Set",v:Array.from(e.entries())}),revive:({v:e})=>new Set(e)}},ft={Map:{replace:e=>({$t:"Map",v:Array.from(e.entries())}),revive:({v:e})=>new Map(e)}};const pt="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof global?global:void 0;var gt=["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=pt[t];return s&&new s(r.ArrayBuffer.revive({v:e},n,r))}}}),{});function yt(e){return function(e){for(var t="",n=0,r=e.length;n<r;n++)t+=bt[e[n]];return t}(w(e))}function mt(e){return b(function(e){if("string"!=typeof e)throw new Error("invalid decoder input: "+e);for(var t="",n=0,r=e.length;n<r;n++)t+=vt[e[n]];return t}(e))}const vt={"-":"=",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:"+","|":"/"},bt={};for(const e of Object.keys(vt))bt[vt[e]]=e;var wt={ArrayBuffer:{replace:e=>({$t:"ArrayBuffer",v:yt(e)}),revive:({v:e})=>{const t=mt(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 kt(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 St(e){const t=new Uint8Array(e.length);for(let n=0;n<e.length;++n)t[n]=e.charCodeAt(n);return t.buffer}var xt={Blob:{test:(e,t)=>"Blob"===t||e instanceof _t,replace:e=>({$t:"Blob",v:w(e instanceof _t?e.buf:St(kt(e))),type:e.type}),revive:({type:e,v:t})=>{const n=b(t);return void 0!==typeof Blob?new Blob([n]):new _t(n.buffer,e)}}};const Et={...at,...dt,...ut,...ht,...ft,...gt,...wt,...xt};function Ct(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 It={undefined:{replace:()=>({$t:"undefined"}),revive:()=>{}}},Ot={File:{test:(e,t)=>"File"===t,replace:e=>({$t:"File",v:w(St(kt(e))),type:e.type,name:e.name,lastModified:new Date(e.lastModified).toISOString()}),revive:({type:e,v:t,name:n,lastModified:r})=>{const s=b(t);return new File([s],n,{type:e,lastModified:new Date(r).getTime()})}}};const Dt="function"==typeof BigInt&&"bigint"==typeof BigInt(0);class At{toString(){return this.v}constructor(e){this.v=e}}const Ut=Dt?{}:{bigint:{test:e=>e instanceof At,replace:e=>Object.assign({$t:"bigint"},e),revive:({v:e})=>new At(e)}},Tt=Object.assign(Object.assign(Object.assign(Object.assign({},It),Ut),Ot),{PropModification:{test:t=>t instanceof e.PropModification,replace:e=>Object.assign({$t:"PropModification"},e["@@propmod"]),revive:t=>{var{$t:n}=t,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}(t,["$t"]);return new e.PropModification(r)}}}),jt=ct(Et,Tt),Lt=function(...e){const t=ct(Et,lt,...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 Ct(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 Ct(e.slice(0,4))).getUint32(0),n=e.slice(4,t+4),r=await function(e){return new Promise((t,n)=>{const r=new FileReader;r.onabort=e=>n(new Error("file read aborted")),r.onerror=e=>n(e.target.error),r.onload=e=>t(e.target.result),r.readAsText(e)})}(e.slice(t+4));return await this.parse(r,n)}}}(Tt);class Pt extends Error{constructor(e,t){super(t||`${e.status} ${e.statusText}`),this.httpStatus=e.status}get name(){return"HttpError"}}function Rt(t,n,r){const s=[];for(let i of r){const{table:r,muts:o}=i,c=t.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((t,r)=>{const s=!l.outbound&&("upsert"===t.type||"insert"===t.type);t.keys.forEach((t,o)=>{if(Array.isArray(t)){a===i&&(a=$t(i,s));const e=a.muts[r],n=JSON.stringify(t);e.keys[o]=n}else if("#"===t[0]){a===i&&(a=$t(i,s));const c=a.muts[r];if(!n.isLoggedIn)throw new Error("Internal error: Cannot sync private IDs before authenticated");const d=`${t}:${n.userId}`;c.keys[o]=d,s&&e.setByKeyPath(c.values[o],l.keyPath,d)}})}),s.push(a)}return s}function $t(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 Mt=new WeakMap;function Nt(e){return r(this,void 0,void 0,function*(){var t,n;const r=(null!==(n=null===(t=Mt.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 Bt(e,t,n,s,i,o,c,l,a){return r(this,void 0,void 0,function*(){const r={Accept:"application/json, application/x-bison, application/x-bison-stream","Content-Type":"application/tson"},d=yield nt(i),u=null==d?void 0:d.accessToken;u&&(r.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:s,changes:Rt(i.dx.core.schema,a,e),y:t,dxcv:i.cloud.version};i.syncStateChangedEvent.next({phase:"pushing"});const f=jt.stringify(h),p=yield fetch(`${o}/sync`,{method:"post",headers:r,credentials:"include",body:f});if(i.syncStateChangedEvent.next({phase:"pulling"}),function(e,t){const n=t.headers.get("Ratelimit-Limit"),r=t.headers.get("Ratelimit-Remaining"),s=t.headers.get("Ratelimit-Reset");if(n&&r&&s){const t=Number(n),i=Math.max(0,Number(r)),o=Number(s);if(i<t/2){const t=Math.ceil(o/(i+1));Mt.set(e,new Date(Date.now()+1e3*t))}else Mt.delete(e)}}(i,p),!p.ok)throw new Pt(p);if("application/x-bison"===p.headers.get("content-type"))return Lt.fromBinary(yield p.blob());{const e=yield p.text();return jt.parse(e)}})}function Ft(t){if(null==t?void 0:t.cancelled)throw new e.AbortError("Operation was cancelled")}let Wt=!1;function Vt(e,t,n,s){return r(this,void 0,void 0,function*(){yield e.$baseRevs.bulkPut(Object.keys(t).filter(e=>t[e].markedForSync).map(e=>({tableName:e,clientRev:(n[e]||0)+1,serverRev:s}))),yield e.$baseRevs.where("tableName").noneOf(Object.keys(t).filter(e=>t[e].markedForSync)).delete()})}function Ht(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 Kt(t,n,s){return r(this,void 0,void 0,function*(){const r=yield t.bulkGet(n),i=[],o=[];n.forEach((n,c)=>{const l=r[c];if(l){for(const[r,i]of Object.entries(s[c]))if(r===t.schema.primKey.keyPath){if(0!==e.cmp(i,n))throw new Error("Cannot change primary key")}else e.setByKeyPath(l,r,i);i.push(n),o.push(l)}}),yield null==t.schema.primKey.keyPath?t.bulkPut(o,i):t.bulkPut(o)})}function zt(t,n){return r(this,void 0,void 0,function*(){for(const{table:r,muts:s}of t){if(!n.dx._allTables[r])continue;const t=n.table(r),{primaryKey:i}=t.core.schema,o=e=>{switch(e[0]){case"[":if(e.endsWith("]"))try{return JSON.parse(e)}catch(e){}return e;case"#":return e.endsWith(":"+n.cloud.currentUserId)?e.substr(0,e.length-n.cloud.currentUserId.length-1):e;default:return e}};for(const n of s){const r=n.keys.map(o);switch(n.type){case"insert":i.outbound?yield t.bulkAdd(n.values,r):(r.forEach((t,r)=>{e.setByKeyPath(n.values[r],i.keyPath,t)}),yield t.bulkAdd(n.values));break;case"upsert":i.outbound?yield t.bulkPut(n.values,r):(r.forEach((t,r)=>{e.setByKeyPath(n.values[r],i.keyPath,t)}),yield t.bulkPut(n.values));break;case"modify":1===r.length?yield t.update(r[0],n.changeSpec):yield t.where(":id").anyOf(r).modify(n.changeSpec);break;case"update":yield Kt(t,r,n.changeSpecs);break;case"delete":yield t.bulkDelete(r)}}}})}"undefined"!=typeof self&&"undefined"!=typeof navigator&&(Wt=navigator.onLine,self.addEventListener("online",()=>Wt=!0),self.addEventListener("offline",()=>Wt=!1));const Jt="dexie-cloud-syncer";function qt(e,t){return e.where("i").between(t,1/0,!0).toArray()}const Gt=()=>new Map,Yt=e=>{const t=Gt();return e.forEach((e,n)=>{t.set(n,e)}),t},Qt=(e,t,n)=>{let r=e.get(t);return void 0===r&&e.set(t,r=n()),r};class Xt{constructor(){this._observers=Gt()}on(e,t){return Qt(this._observers,e,J).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 Y((this._observers.get(e)||Gt()).values()).forEach(e=>e(...t))}destroy(){this._observers=Gt()}}class Zt{constructor(){this._observers=Gt()}on(e,t){Qt(this._observers,e,J).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 Y((this._observers.get(e)||Gt()).values()).forEach(e=>e(...t))}destroy(){this._observers=Gt()}}const en=crypto.getRandomValues.bind(crypto),tn=()=>en(new Uint32Array(1))[0],nn=[1e7]+-1e3+-4e3+-8e3+-1e11,rn=()=>nn.replace(/[018]/g,e=>(e^tn()&15>>e/4).toString(16)),sn=Date.now,on=e=>new Promise(e);Promise.all.bind(Promise);const cn=e=>void 0===e?null:e;let ln=new class{constructor(){this.map=new Map}setItem(e,t){this.map.set(e,t)}getItem(e){return this.map.get(e)}},an=!0;try{"undefined"!=typeof localStorage&&localStorage&&(ln=localStorage,an=!1)}catch(Bc){}const dn=ln,un=Object.assign,hn=Object.keys,fn=e=>hn(e).length,pn=e=>hn(e).length,gn=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),yn=Object.freeze,mn=e=>{for(const t in e){const n=e[t];"object"!=typeof n&&"function"!=typeof n||mn(e[t])}return yn(e)},vn=Symbol("Equality"),bn=(e,t,n=0)=>{try{for(;n<e.length;n++)e[n](...t)}finally{n<e.length&&bn(e,t,n+1)}},wn=(e,t)=>{if(e===t)return!0;if(null==e||null==t||e.constructor!==t.constructor)return!1;if(null!=e[vn])return e[vn](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)||!wn(e.get(n),t.get(n)))return!1;break;case Object:if(fn(e)!==fn(t))return!1;for(const n in e)if(!gn(e,n)||!wn(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(!wn(e[n],t[n]))return!1;break;default:return!1}return!0},_n="undefined"!=typeof process&&process.release&&/node|io\.js/.test(process.release.name)&&"[object process]"===Object.prototype.toString.call("undefined"!=typeof process?process:0);let kn;const Sn=e=>(()=>{if(void 0===kn)if(_n){kn=Gt();const e=process.argv;let t=null;for(let n=0;n<e.length;n++){const r=e[n];"-"===r[0]?(null!==t&&kn.set(t,""),t=r):null!==t&&(kn.set(t,r),t=null)}null!==t&&kn.set(t,"")}else"object"==typeof location?(kn=Gt(),(location.search||"?").slice(1).split("&").forEach(e=>{if(0!==e.length){const[t,n]=e.split("=");kn.set(`--${ee(t,"-")}`,n),kn.set(`-${ee(t,"-")}`,n)}})):kn=Gt();return kn})().has(e),xn=e=>cn(_n?process.env[e.toUpperCase().replaceAll("-","_")]:dn.getItem(e)),En=e=>Sn("--"+e)||null!==xn(e);En("production");var Cn;_n&&(Cn=process.env.FORCE_COLOR,["true","1","2"].includes(Cn))||!Sn("--no-colors")&&!En("no-color")&&(!_n||process.stdout.isTTY)&&(!_n||Sn("--color")||null!==xn("COLORTERM")||(xn("TERM")||"").includes("color"));class In{constructor(e,t){this.left=e,this.right=t}}const On=(e,t)=>new In(e,t);"undefined"!=typeof DOMParser&&new DOMParser;const Dn=Symbol,An=Dn(),Un=Dn(),Tn=Dn(),jn=Dn(),Ln=Dn(),Pn=Dn(),Rn=Dn(),$n=Dn(),Mn=Dn(),Nn=(On("font-weight","bold"),On("font-weight","normal"),On("color","blue"),On("color","green"),On("color","grey"),On("color","red"),On("color","purple"),On("color","orange"),On("color","black"),J()),Bn=e=>({[Symbol.iterator](){return this},next:e}),Fn=(e,t)=>Bn(()=>{const{done:n,value:r}=e.next();return{done:n,value:n?void 0:t(r)}});class Wn{constructor(e,t){this.clock=e,this.len=t}}class Vn{constructor(){this.clients=new Map}}const Hn=(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])Cr(e,s,o.clock,o.len,n)}}),Kn=(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=$((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)},zn=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=B(r.len,s.clock+s.len-r.clock):(n<t&&(e[n]=s),n++)}e.length=n})},Jn=(e,t,n,r)=>{Qt(e.clients,t,()=>[]).push(new Wn(n,r))},qn=(e,t)=>{ae(e.restEncoder,t.clients.size),Y(t.clients.entries()).sort((e,t)=>t[0]-e[0]).forEach(([t,n])=>{e.resetDsCurVal(),ae(e.restEncoder,t);const r=n.length;ae(e.restEncoder,r);for(let t=0;t<r;t++){const r=n[t];e.writeDsClock(r.clock),e.writeDsLen(r.len)}})},Gn=(e,t,n)=>{const r=new Vn,s=Re(e.restDecoder);for(let i=0;i<s;i++){e.resetDsCurVal();const s=Re(e.restDecoder),i=Re(e.restDecoder),o=n.clients.get(s)||[],c=br(n,s);for(let n=0;n<i;n++){const n=e.readDsClock(),i=n+e.readDsLen();if(n<c){c<i&&Jn(r,s,c,i-c);let e=_r(o,n),l=o[e];for(!l.deleted&&l.id.clock<n&&(o.splice(e+1,0,ci(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,ci(t,l,i-l.id.clock)),l.delete(t))}else Jn(r,s,n,i-n)}}if(r.clients.size>0){const e=new rr;return ae(e.restEncoder,0),qn(e,r),e.toUint8Array()}return null},Yn=tn;class Qn extends Xt{constructor({guid:e=rn(),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=Yn(),this.guid=e,this.collectionid=t,this.share=new Map,this.store=new mr,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=on(e=>{this.on("load",()=>{this.isLoaded=!0,e(this)})});const c=()=>on(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||Tr(e.parent.doc,e=>{e.subdocsLoaded.add(this)},null,!0),this.shouldLoad=!0}getSubdocs(){return this.subdocs}getSubdocGuids(){return new Set(Y(this.subdocs).map(e=>e.guid))}transact(e,t=null){return Tr(this,e,t)}get(e,t=Qr){const n=Qt(this.share,e,()=>{const e=new t;return e._integrate(this,null),e}),r=n.constructor;if(t!==Qr&&r!==t){if(r===Qr){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,gs)}getText(e=""){return this.get(e,js)}getMap(e=""){return this.get(e,ms)}getXmlElement(e=""){return this.get(e,Rs)}getXmlFragment(e=""){return this.get(e,Ps)}toJSON(){const e={};return this.share.forEach((t,n)=>{e[n]=t.toJSON()}),e}destroy(){this.isDestroyed=!0,Y(this.subdocs).forEach(e=>e.destroy());const e=this._item;if(null!==e){this._item=null;const t=e.content;t.doc=new Qn({guid:this.guid,...t.opts,shouldLoad:!1}),t.doc._item=e,Tr(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 Xn{constructor(e){this.dsCurrVal=0,this.restDecoder=e}resetDsCurVal(){this.dsCurrVal=0}readDsClock(){return this.dsCurrVal+=Re(this.restDecoder),this.dsCurrVal}readDsLen(){const e=Re(this.restDecoder)+1;return this.dsCurrVal+=e,e}}class Zn extends Xn{constructor(e){super(e),this.keys=[],Re(e),this.keyClockDecoder=new Ke(Le(e)),this.clientDecoder=new He(Le(e)),this.leftClockDecoder=new Ke(Le(e)),this.rightClockDecoder=new Ke(Le(e)),this.infoDecoder=new Ve(Le(e),Pe),this.stringDecoder=new ze(Le(e)),this.parentInfoDecoder=new Ve(Le(e),Pe),this.typeRefDecoder=new He(Le(e)),this.lenDecoder=new He(Le(e))}readLeftID(){return new hr(this.clientDecoder.read(),this.leftClockDecoder.read())}readRightID(){return new hr(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 We(this.restDecoder)}readBuf(){return Le(this.restDecoder)}readJSON(){return We(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 er{constructor(){this.restEncoder=ie()}toUint8Array(){return oe(this.restEncoder)}resetDsCurVal(){}writeDsClock(e){ae(this.restEncoder,e)}writeDsLen(e){ae(this.restEncoder,e)}}class tr extends er{writeLeftID(e){ae(this.restEncoder,e.client),ae(this.restEncoder,e.clock)}writeRightID(e){ae(this.restEncoder,e.client),ae(this.restEncoder,e.clock)}writeClient(e){ae(this.restEncoder,e)}writeInfo(e){le(this.restEncoder,e)}writeString(e){fe(this.restEncoder,e)}writeParentInfo(e){ae(this.restEncoder,e?1:0)}writeTypeRef(e){ae(this.restEncoder,e)}writeLen(e){ae(this.restEncoder,e)}writeAny(e){be(this.restEncoder,e)}writeBuf(e){ge(this.restEncoder,e)}writeJSON(e){fe(this.restEncoder,JSON.stringify(e))}writeKey(e){fe(this.restEncoder,e)}}class nr{constructor(){this.restEncoder=ie(),this.dsCurrVal=0}toUint8Array(){return oe(this.restEncoder)}resetDsCurVal(){this.dsCurrVal=0}writeDsClock(e){const t=e-this.dsCurrVal;this.dsCurrVal=e,ae(this.restEncoder,t)}writeDsLen(e){0===e&&Oe(),ae(this.restEncoder,e-1),this.dsCurrVal+=e}}class rr extends nr{constructor(){super(),this.keyMap=new Map,this.keyClock=0,this.keyClockEncoder=new xe,this.clientEncoder=new ke,this.leftClockEncoder=new xe,this.rightClockEncoder=new xe,this.infoEncoder=new we(le),this.stringEncoder=new Ee,this.parentInfoEncoder=new we(le),this.typeRefEncoder=new ke,this.lenEncoder=new ke}toUint8Array(){const e=ie();return ae(e,0),ge(e,this.keyClockEncoder.toUint8Array()),ge(e,this.clientEncoder.toUint8Array()),ge(e,this.leftClockEncoder.toUint8Array()),ge(e,this.rightClockEncoder.toUint8Array()),ge(e,oe(this.infoEncoder)),ge(e,this.stringEncoder.toUint8Array()),ge(e,oe(this.parentInfoEncoder)),ge(e,this.typeRefEncoder.toUint8Array()),ge(e,this.lenEncoder.toUint8Array()),pe(e,oe(this.restEncoder)),oe(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){be(this.restEncoder,e)}writeBuf(e){ge(this.restEncoder,e)}writeJSON(e){be(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 sr=(e,t,n)=>{const r=new Map;n.forEach((e,n)=>{br(t,n)>e&&r.set(n,e)}),vr(t).forEach((e,t)=>{n.has(t)||r.set(t,0)}),ae(e.restEncoder,r.size),Y(r.entries()).sort((e,t)=>t[0]-e[0]).forEach(([n,r])=>{((e,t,n,r)=>{r=B(r,t[0].id.clock);const s=_r(t,r);ae(e.restEncoder,t.length-s),e.writeClient(n),ae(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)})},ir=(e,t,n,r=new Zn(e))=>Tr(t,e=>{e.local=!1;let t=!1;const n=e.doc,s=n.store,i=((e,t)=>{const n=Gt(),r=Re(e.restDecoder);for(let s=0;s<r;s++){const r=Re(e.restDecoder),s=new Array(r),i=e.readClient();let o=Re(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 Fs(pr(i,o),t),o+=t;break}case 10:{const t=Re(e.restDecoder);s[n]=new ui(pr(i,o),t),o+=t;break}default:{const c=!(192&r),l=new li(pr(i,o),null,(r&V)===V?e.readLeftID():null,null,(r&W)===W?e.readRightID():null,c?e.readParentInfo()?t.get(e.readString()):e.readLeftID():null,!c||32&~r?null:e.readString(),ai(e,r));s[n]=l,o+=l.length}}}}return n})(r,n),o=((e,t,n)=>{const r=[];let s=Y(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 mr,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!==ui){const s=Qt(u,d.id.client,()=>br(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,br(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 rr;return sr(e,c,new Map),ae(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<br(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=$r([c.update,o.update])}}else s.pendingStructs=o;const l=Gn(r,e,s);if(s.pendingDs){const t=new Zn(Te(s.pendingDs));Re(t.restDecoder);const n=Gn(t,e,s);s.pendingDs=l&&n?$r([l,n]):l||n}else s.pendingDs=l;if(t){const t=s.pendingStructs.update;s.pendingStructs=null,or(e.doc,t)}},n,!1),or=(e,t,n,r=Zn)=>{const s=Te(t);ir(s,e,n,new r(s))};class cr{constructor(){this.l=[]}}const lr=()=>new cr,ar=(e,t)=>e.l.push(t),dr=(e,t)=>{const n=e.l;n.length;e.l=n.filter(e=>t!==e),e.l.length},ur=(e,t,n)=>bn(e.l,[t,n]);class hr{constructor(e,t){this.client=e,this.clock=t}}const fr=(e,t)=>e===t||null!==e&&null!==t&&e.client===t.client&&e.clock===t.clock,pr=(e,t)=>new hr(e,t),gr=(e,t)=>void 0===t?!e.deleted:t.sv.has(e.id.client)&&(t.sv.get(e.id.client)||0)>e.id.clock&&!Kn(t.ds,e.id),yr=(e,t)=>{const n=Qt(e.meta,yr,J),r=e.doc.store;n.has(t)||(t.sv.forEach((t,n)=>{t<br(r,n)&&xr(e,pr(n,t))}),Hn(e,t.ds,e=>{}),n.add(t))};class mr{constructor(){this.clients=new Map,this.pendingStructs=null,this.pendingDs=null}}const vr=e=>{const t=new Map;return e.clients.forEach((e,n)=>{const r=e[e.length-1];t.set(n,r.id.clock+r.length)}),t},br=(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},wr=(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 Oe()}n.push(t)},_r=(e,t)=>{let n=0,r=e.length-1,s=e[r],i=s.id.clock;if(i===t)return r;let o=$(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=$((n+r)/2)}throw Oe()},kr=(e,t)=>{const n=e.clients.get(t.client);return n[_r(n,t.clock)]},Sr=(e,t,n)=>{const r=_r(t,n),s=t[r];return s.id.clock<n&&s instanceof li?(t.splice(r+1,0,ci(e,s,n-s.id.clock)),r+1):r},xr=(e,t)=>{const n=e.doc.store.clients.get(t.client);return n[Sr(e,n,t.clock)]},Er=(e,t,n)=>{const r=t.clients.get(n.client),s=_r(r,n.clock),i=r[s];return n.clock!==i.id.clock+i.length-1&&i.constructor!==Fs&&r.splice(s+1,0,ci(e,i,n.clock-i.id.clock+1)),i},Cr=(e,t,n,r,s)=>{if(0===r)return;const i=n+r;let o,c=Sr(e,t,n);do{o=t[c++],i<o.id.clock+o.length&&Sr(e,t,i),s(o)}while(c<t.length&&t[c].id.clock<i)};class Ir{constructor(e,t,n){this.doc=e,this.deleteSet=new Vn,this.beforeState=vr(e.store),this.afterState=new Map,this.changed=new Map,this.changedParentTypes=new Map,this._mergeStructs=[],this.origin=t,this.meta=new Map,this.local=n,this.subdocsAdded=new Set,this.subdocsRemoved=new Set,this.subdocsLoaded=new Set,this._needFormattingCleanup=!1}}const Or=(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))&&(zn(t.deleteSet),((e,t)=>{sr(e,t.doc.store,t.beforeState)})(e,t),qn(e,t.deleteSet),!0),Dr=(e,t,n)=>{const r=t._item;(null===r||r.id.clock<(e.beforeState.get(r.id.client)||0)&&!r.deleted)&&Qt(e.changed,t,J).add(n)},Ar=(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 li&&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},Ur=(e,t)=>{if(t<e.length){const n=e[t],r=n.doc,s=r.store,i=n.deleteSet,o=n._mergeStructs;try{zn(i),n.afterState=vr(n.doc.store),r.emit("beforeObserverCalls",[n,r]);const e=[];n.changed.forEach((t,r)=>e.push(()=>{null!==r._item&&r._item.deleted||r._callObserver(n,t)})),e.push(()=>{n.changedParentTypes.forEach((e,t)=>{t._dEH.l.length>0&&(null===t._item||!t._item.deleted)&&((e=e.filter(e=>null===e.target._item||!e.target._item.deleted)).forEach(e=>{e.currentTarget=t,e._path=null}),e.sort((e,t)=>e.path.length-t.path.length),ur(t._dEH,e,n))})}),e.push(()=>r.emit("afterTransaction",[n,r])),bn(e,[]),n._needFormattingCleanup&&As(n)}finally{r.gc&&((e,t,n)=>{for(const[r,s]of e.clients.entries()){const e=t.clients.get(r);for(let r=s.length-1;r>=0;r--){const i=s[r],o=i.clock+i.len;for(let r=_r(e,i.clock),s=e[r];r<e.length&&s.id.clock<o;s=e[++r]){const s=e[r];if(i.clock+i.len<=s.id.clock)break;s instanceof li&&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=N(r.length-1,1+_r(r,n.clock+n.len-1)),t=r[e];e>0&&t.id.clock>=n.clock;t=r[e])e-=1+Ar(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=B(_r(e,r),1);for(let t=e.length-1;t>=n;)t-=1+Ar(e,t)}});for(let e=o.length-1;e>=0;e--){const{client:t,clock:n}=o[e].id,r=s.clients.get(t),i=_r(r,n);i+1<r.length&&Ar(r,i+1)>1||i>0&&Ar(r,i)}if(n.local||n.afterState.get(r.clientID)===n.beforeState.get(r.clientID)||(((...e)=>{Nn.forEach(t=>t.print(e))})($n,An,"[yjs] ",Un,Pn,"Changed the client-id because another client seems to be using it."),r.clientID=Yn()),r.emit("afterTransactionCleanup",[n,r]),r._observers.has("update")){const e=new tr;Or(e,n)&&r.emit("update",[e.toUint8Array(),n.origin,r,n])}if(r._observers.has("updateV2")){const e=new rr;Or(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])):Ur(e,t+1)}}},Tr=(e,t,n=null,r=!0)=>{const s=e._transactionCleanups;let i=!1,o=null;null===e._transaction&&(i=!0,e._transaction=new Ir(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&&Ur(s,0)}}return o};class jr{constructor(e,t){this.gen=function*(e){const t=Re(e.restDecoder);for(let n=0;n<t;n++){const t=Re(e.restDecoder),n=e.readClient();let r=Re(e.restDecoder);for(let s=0;s<t;s++){const t=e.readInfo();if(10===t){const t=Re(e.restDecoder);yield new ui(pr(n,r),t),r+=t}else if(31&t){const s=!(192&t),i=new li(pr(n,r),null,(t&V)===V?e.readLeftID():null,null,(t&W)===W?e.readRightID():null,s?e.readParentInfo()?e.readString():e.readLeftID():null,!s||32&~t?null:e.readString(),ai(e,t));yield i,r+=i.length}else{const t=e.readLen();yield new Fs(pr(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===ui);return this.curr}}class Lr{constructor(e){this.currClient=0,this.startClock=0,this.written=0,this.encoder=e,this.clientStructs=[]}}const Pr=(e,t=nr,n=Zn)=>{const r=new t,s=new jr(new n(Te(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++,ae(r.restEncoder,t),ae(r.restEncoder,o)),t=i.id.client,o=0,n=0!==i.id.clock),i.constructor===ui&&(n=!0),n||(o=i.id.clock+i.length);0!==o&&(e++,ae(r.restEncoder,t),ae(r.restEncoder,o));const c=ie();return ae(c,e),((e,t)=>{pe(e,oe(t))})(c,r.restEncoder),r.restEncoder=c,r.toUint8Array()}return ae(r.restEncoder,0),r.toUint8Array()},Rr=(e,t)=>{if(e.constructor===Fs){const{client:n,clock:r}=e.id;return new Fs(pr(n,r+t),e.length-t)}if(e.constructor===ui){const{client:n,clock:r}=e.id;return new ui(pr(n,r+t),e.length-t)}{const n=e,{client:r,clock:s}=n.id;return new li(pr(r,s+t),null,pr(r,s+t-1),null,n.rightOrigin,n.parent,n.parentSub,n.content.splice(t))}},$r=(e,t=Zn,n=rr)=>{if(1===e.length)return e[0];const r=e.map(e=>new t(Te(e)));let s=r.map(e=>new jr(e,!0)),i=null;const o=new n,c=new Lr(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===ui?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)Nr(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===ui)i.struct.length=n.id.clock+n.length-i.struct.id.clock;else{Nr(c,i.struct,i.offset);const e=n.id.clock-i.struct.id.clock-i.struct.length;i={struct:new ui(pr(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===ui?i.struct.length-=t:n=Rr(n,t)),i.struct.mergeWith(n)||(Nr(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!==ui;n=e.next())Nr(c,i.struct,i.offset),i={struct:n,offset:0}}null!==i&&(Nr(c,i.struct,i.offset),i=null),Br(c);const l=r.map(e=>(e=>{const t=new Vn,n=Re(e.restDecoder);for(let r=0;r<n;r++){e.resetDsCurVal();const n=Re(e.restDecoder),r=Re(e.restDecoder);if(r>0){const s=Qt(t.clients,n,()=>[]);for(let t=0;t<r;t++)s.push(new Wn(e.readDsClock(),e.readDsLen()))}}return t})(e)),a=(e=>{const t=new Vn;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++)G(i,e[t].clients.get(s)||[]);t.clients.set(s,i)}});return zn(t),t})(l);return qn(o,a),o.toUint8Array()},Mr=e=>{e.written>0&&(e.clientStructs.push({written:e.written,restEncoder:oe(e.encoder.restEncoder)}),e.encoder.restEncoder=ie(),e.written=0)},Nr=(e,t,n)=>{e.written>0&&e.currClient!==t.id.client&&Mr(e),0===e.written&&(e.currClient=t.id.client,e.encoder.writeClient(t.id.client),ae(e.encoder.restEncoder,t.id.clock+n)),t.write(e.encoder,n),e.written++},Br=e=>{Mr(e);const t=e.encoder.restEncoder;ae(t,e.clientStructs.length);for(let n=0;n<e.clientStructs.length;n++){const r=e.clientStructs[n];ae(t,r.written),pe(t,r.restEncoder)}},Fr="You must not compute changes after the event-handler fired.";class Wr{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=Vr(this.currentTarget,this.target))}deletes(e){return Kn(this.transaction.deleteSet,e.id)}get keys(){if(null===this._keys){if(0===this.transaction.doc._transactionCleanups.length)throw Ce(Fr);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=q(e.content.getContent())}else null!==e&&this.deletes(e)?(s="update",i=q(e.content.getContent())):(s="add",i=void 0)}else{if(!this.deletes(r))return;s="delete",i=q(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 Ce(Fr);const t=this.target,n=J(),r=J(),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 Vr=(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},Hr=()=>{((...e)=>{e.unshift($n),Nn.forEach(t=>t.print(e))})("Invalid access: Add Yjs type to a document before reading data.")};let Kr=0;class zr{constructor(e,t){e.marker=!0,this.p=e,this.index=t,this.timestamp=Kr++}}const Jr=(e,t,n)=>{e.p.marker=!1,e.p=t,t.marker=!0,e.index=n,e.timestamp=Kr++},qr=(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)=>M(t-e.index)<M(t-n.index)?e:n);let r=e._start,s=0;for(null!==n&&(r=n.p,s=n.index,(e=>{e.timestamp=Kr++})(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&&M(n.index-s)<r.parent.length/80?(Jr(n,r,s),n):((e,t,n)=>{if(e.length>=80){const r=e.reduce((e,t)=>e.timestamp<t.timestamp?e:t);return Jr(r,t,n),r}{const r=new zr(t,n);return e.push(r),r}})(e._searchMarker,r,s)},Gr=(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=B(t,s.index+n))}},Yr=(e,t,n)=>{const r=e,s=t.changedParentTypes;for(;Qt(s,e,()=>[]).push(n),null!==e._item;)e=e._item.parent;ur(r._eH,n,t)};class Qr{constructor(){this._item=null,this._map=new Map,this._start=null,this.doc=null,this._length=0,this._eH=lr(),this._dEH=lr(),this._searchMarker=null}get parent(){return this._item?this._item.parent:null}_integrate(e,t){this.doc=e,this._item=t}_copy(){throw Ie()}clone(){throw Ie()}_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){ar(this._eH,e)}observeDeep(e){ar(this._dEH,e)}unobserve(e){dr(this._eH,e)}unobserveDeep(e){dr(this._dEH,e)}toJSON(){}}const Xr=(e,t,n)=>{e.doc??Hr(),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},Zr=e=>{e.doc??Hr();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},es=(e,t)=>{let n=0,r=e._start;for(e.doc??Hr();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}},ts=(e,t)=>{const n=[];return es(e,(r,s)=>{n.push(t(r,s,e))}),n},ns=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}}}},rs=(e,t)=>{e.doc??Hr();const n=qr(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}},ss=(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 li(pr(o,br(c,o)),s,s&&s.lastId,l,l&&l.id,t,null,new Ys(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 li(pr(o,br(c,o)),s,s&&s.lastId,l,l&&l.id,t,null,new Ws(new Uint8Array(n))),s.integrate(e,0);break;case Qn:s=new li(pr(o,br(c,o)),s,s&&s.lastId,l,l&&l.id,t,null,new Ks(n)),s.integrate(e,0);break;default:if(!(n instanceof Qr))throw new Error("Unexpected content type in insert operation");s=new li(pr(o,br(c,o)),s,s&&s.lastId,l,l&&l.id,t,null,new oi(n)),s.integrate(e,0)}}}),d()},is=()=>Ce("Length exceeded!"),os=(e,t,n,r)=>{if(n>t._length)throw is();if(0===n)return t._searchMarker&&Gr(t._searchMarker,n,r.length),ss(e,t,null,r);const s=n,i=qr(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&&xr(e,pr(o.id.client,o.id.clock+n));break}n-=o.length}return t._searchMarker&&Gr(t._searchMarker,s,r.length),ss(e,t,o,r)},cs=(e,t,n,r)=>{if(0===r)return;const s=n,i=r,o=qr(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&&xr(e,pr(c.id.client,c.id.clock+n)),n-=c.length);for(;r>0&&null!==c;)c.deleted||(r<c.length&&xr(e,pr(c.id.client,c.id.clock+r)),c.delete(e),r-=c.length),c=c.right;if(r>0)throw is();t._searchMarker&&Gr(t._searchMarker,s,-i+r)},ls=(e,t,n)=>{const r=t._map.get(n);void 0!==r&&r.delete(e)},as=(e,t,n,r)=>{const s=t._map.get(n)||null,i=e.doc,o=i.clientID;let c;if(null==r)c=new Ys([r]);else switch(r.constructor){case Number:case Object:case Boolean:case Array:case String:case Date:case BigInt:c=new Ys([r]);break;case Uint8Array:c=new Ws(r);break;case Qn:c=new Ks(r);break;default:if(!(r instanceof Qr))throw new Error("Unexpected content type");c=new oi(r)}new li(pr(o,br(i.store,o)),s,s&&s.lastId,null,null,t,n,c).integrate(e,0)},ds=(e,t)=>{e.doc??Hr();const n=e._map.get(t);return void 0===n||n.deleted?void 0:n.content.getContent()[n.length-1]},us=e=>{const t={};return e.doc??Hr(),e._map.forEach((e,n)=>{e.deleted||(t[n]=e.content.getContent()[e.length-1])}),t},hs=(e,t)=>{e.doc??Hr();const n=e._map.get(t);return void 0!==n&&!n.deleted},fs=e=>{return e.doc??Hr(),t=e._map.entries(),n=e=>!e[1].deleted,Bn(()=>{let e;do{e=t.next()}while(!e.done&&!n(e.value));return e});var t,n};class ps extends Wr{}class gs extends Qr{constructor(){super(),this._prelimContent=[],this._searchMarker=[]}static from(e){const t=new gs;return t.push(e),t}_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 Qr?e.clone():e)),e}get length(){return this.doc??Hr(),this._length}_callObserver(e,t){super._callObserver(e,t),Yr(this,e,new ps(this,e))}insert(e,t){null!==this.doc?Tr(this.doc,n=>{os(n,this,e,t)}):this._prelimContent.splice(e,0,...t)}push(e){null!==this.doc?Tr(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;ss(e,t,r,n)})(t,this,e)}):this._prelimContent.push(...e)}unshift(e){this.insert(0,e)}delete(e,t=1){null!==this.doc?Tr(this.doc,n=>{cs(n,this,e,t)}):this._prelimContent.splice(e,t)}get(e){return rs(this,e)}toArray(){return Zr(this)}slice(e=0,t=this.length){return Xr(this,e,t)}toJSON(){return this.map(e=>e instanceof Qr?e.toJSON():e)}map(e){return ts(this,e)}forEach(e){es(this,e)}[Symbol.iterator](){return ns(this)}_write(e){e.writeTypeRef(Zs)}}class ys extends Wr{constructor(e,t,n){super(e,t),this.keysChanged=n}}class ms extends Qr{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 ms}clone(){const e=new ms;return this.forEach((t,n)=>{e.set(n,t instanceof Qr?t.clone():t)}),e}_callObserver(e,t){Yr(this,e,new ys(this,e,t))}toJSON(){this.doc??Hr();const e={};return this._map.forEach((t,n)=>{if(!t.deleted){const r=t.content.getContent()[t.length-1];e[n]=r instanceof Qr?r.toJSON():r}}),e}get size(){return[...fs(this)].length}keys(){return Fn(fs(this),e=>e[0])}values(){return Fn(fs(this),e=>e[1].content.getContent()[e[1].length-1])}entries(){return Fn(fs(this),e=>[e[0],e[1].content.getContent()[e[1].length-1]])}forEach(e){this.doc??Hr(),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?Tr(this.doc,t=>{ls(t,this,e)}):this._prelimContent.delete(e)}set(e,t){return null!==this.doc?Tr(this.doc,n=>{as(n,this,e,t)}):this._prelimContent.set(e,t),t}get(e){return ds(this,e)}has(e){return hs(this,e)}clear(){null!==this.doc?Tr(this.doc,e=>{this.forEach(function(t,n,r){ls(e,r,n)})}):this._prelimContent.clear()}_write(e){e.writeTypeRef(ei)}}const vs=(e,t)=>e===t||"object"==typeof e&&"object"==typeof t&&e&&t&&((e,t)=>e===t||pn(e)===pn(t)&&((e,t)=>{for(const n in e)if(!t(e[n],n))return!1;return!0})(e,(e,n)=>(void 0!==e||gn(t,n))&&t[n]===e))(e,t);class bs{constructor(e,t,n,r){this.left=e,this.right=t,this.index=n,this.currentAttributes=r}forward(){if(null===this.right&&Oe(),this.right.content.constructor===Js)this.right.deleted||Ss(this.currentAttributes,this.right.content);else this.right.deleted||(this.index+=this.right.length);this.left=this.right,this.right=this.right.right}}const ws=(e,t,n)=>{for(;null!==t.right&&n>0;){if(t.right.content.constructor===Js)t.right.deleted||Ss(t.currentAttributes,t.right.content);else t.right.deleted||(n<t.right.length&&xr(e,pr(t.right.id.client,t.right.id.clock+n)),t.index+=t.right.length,n-=t.right.length);t.left=t.right,t.right=t.right.right}return t},_s=(e,t,n,r)=>{const s=new Map,i=r?qr(t,n):null;if(i){const t=new bs(i.p.left,i.p,i.index,s);return ws(e,t,n-i.index)}{const r=new bs(null,t._start,0,s);return ws(e,r,n)}},ks=(e,t,n,r)=>{for(;null!==n.right&&(!0===n.right.deleted||n.right.content.constructor===Js&&vs(r.get(n.right.content.key),n.right.content.value));)n.right.deleted||r.delete(n.right.content.key),n.forward();const s=e.doc,i=s.clientID;r.forEach((r,o)=>{const c=n.left,l=n.right,a=new li(pr(i,br(s.store,i)),c,c&&c.lastId,l,l&&l.id,t,null,new Js(o,r));a.integrate(e,0),n.right=a,n.forward()})},Ss=(e,t)=>{const{key:n,value:r}=t;null===r?e.delete(n):e.set(n,r)},xs=(e,t)=>{for(;null!==e.right&&(e.right.deleted||e.right.content.constructor===Js&&vs(t[e.right.content.key]??null,e.right.content.value));)e.forward()},Es=(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(!vs(a,l)){o.set(c,a);const{left:r,right:d}=n;n.right=new li(pr(i,br(s.store,i)),r,r&&r.lastId,d,d&&d.id,t,null,new Js(c,l)),n.right.integrate(e,0),n.forward()}}return o},Cs=(e,t,n,r,s)=>{n.currentAttributes.forEach((e,t)=>{void 0===s[t]&&(s[t]=null)});const i=e.doc,o=i.clientID;xs(n,s);const c=Es(e,t,n,s),l=r.constructor===String?new Qs(r):r instanceof Qr?new oi(r):new zs(r);let{left:a,right:d,index:u}=n;t._searchMarker&&Gr(t._searchMarker,n.index,l.getLength()),d=new li(pr(o,br(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(),ks(e,t,n,c)},Is=(e,t,n,r,s)=>{const i=e.doc,o=i.clientID;xs(n,s);const c=Es(e,t,n,s);e:for(;null!==n.right&&(r>0||c.size>0&&(n.right.deleted||n.right.content.constructor===Js));){if(!n.right.deleted)switch(n.right.content.constructor){case Js:{const{key:t,value:i}=n.right.content,o=s[t];if(void 0!==o){if(vs(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&&xr(e,pr(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 li(pr(o,br(i.store,o)),n.left,n.left&&n.left.lastId,n.right,n.right&&n.right.id,t,null,new Qs(s)),n.right.integrate(e,0),n.forward()}ks(e,t,n,c)},Os=(e,t,n,r,s)=>{let i=t;const o=Gt();for(;i&&(!i.countable||i.deleted);){if(!i.deleted&&i.content.constructor===Js){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 Js:{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||Ss(s,n);break}}}t=t.right}return c},Ds=e=>{let t=0;return Tr(e.doc,n=>{let r=e._start,s=e._start,i=Gt();const o=Yt(i);for(;s;){if(!1===s.deleted)if(s.content.constructor===Js)Ss(o,s.content);else t+=Os(n,r,s,i,o),i=Yt(o),r=s;s=s.right}}),t},As=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&&Cr(e,n.store.clients.get(r),i,s,e=>{e.deleted||e.content.constructor!==Js||e.constructor===Fs||t.add(e.parent)})}Tr(n,n=>{Hn(e,e.deleteSet,e=>{if(e instanceof Fs||!e.parent._hasFormatting||t.has(e.parent))return;const r=e.parent;e.content.constructor===Js?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===Js){const r=t.content.key;n.has(r)?t.delete(e):n.add(r)}t=t.left}})(n,e)});for(const e of t)Ds(e)})},Us=(e,t,n)=>{const r=n,s=Yt(t.currentAttributes),i=t.right;for(;n>0&&null!==t.right;){if(!1===t.right.deleted)switch(t.right.content.constructor){case oi:case zs:case Qs:n<t.right.length&&xr(e,pr(t.right.id.client,t.right.id.clock+n)),n-=t.right.length,t.right.delete(e)}t.forward()}i&&Os(e,i,t.right,s,t.currentAttributes);const o=(t.left||t.right).parent;return o._searchMarker&&Gr(o._searchMarker,t.index,-r+n),t};class Ts extends Wr{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=[];Tr(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=un({},o))),l=0}e&&t.push(e),i=null}};for(;null!==s;){switch(s.content.constructor){case oi:case zs: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 Qs: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 Js:{const{key:t,value:c}=s.content;if(this.adds(s)){if(!this.deletes(s)){const l=n.get(t)??null;vs(l,c)?null!==c&&s.delete(e):("retain"===i&&d(),vs(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;vs(e,c)||("retain"===i&&d(),o[t]=e)}else if(!s.deleted){r.set(t,c);const n=o[t];void 0!==n&&(vs(n,c)?null!==n&&s.delete(e):("retain"===i&&d(),null===c?delete o[t]:o[t]=c))}s.deleted||("insert"===i&&d(),Ss(n,s.content));break}}s=s.right}for(d();t.length>0;){const e=t[t.length-1];if(void 0===e.retain||void 0!==e.attributes)break;t.pop()}}),this._delta=t}return this._delta}}class js extends Qr{constructor(e){super(),this._pending=void 0!==e?[()=>this.insert(0,e)]:[],this._searchMarker=[],this._hasFormatting=!1}get length(){return this.doc??Hr(),this._length}_integrate(e,t){super._integrate(e,t);try{this._pending.forEach(e=>e())}catch(e){}this._pending=null}_copy(){return new js}clone(){const e=new js;return e.applyDelta(this.toDelta()),e}_callObserver(e,t){super._callObserver(e,t);const n=new Ts(this,e,t);Yr(this,e,n),!e.local&&this._hasFormatting&&(e._needFormattingCleanup=!0)}toString(){this.doc??Hr();let e="",t=this._start;for(;null!==t;)!t.deleted&&t.countable&&t.content.constructor===Qs&&(e+=t.content.str),t=t.right;return e}toJSON(){return this.toString()}applyDelta(e,{sanitize:t=!0}={}){null!==this.doc?Tr(this.doc,n=>{const r=new bs(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)&&Cs(n,this,r,o,i.attributes||{})}else void 0!==i.retain?Is(n,this,r,i.retain,i.attributes||{}):void 0!==i.delete&&Us(n,r,i.delete)}}):this._pending.push(()=>this.applyDelta(e))}toDelta(e,t,n){this.doc??Hr();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(gr(c,e)||void 0!==t&&gr(c,t))switch(c.content.constructor){case Qs:{const r=s.get("ychange");void 0===e||gr(c,e)?void 0===t||gr(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 oi:case zs:{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 Js:gr(c,e)&&(l(),Ss(s,c.content))}c=c.right}l()};return e||t?Tr(i,n=>{e&&yr(n,e),t&&yr(n,t),a()},"cleanup"):a(),r}insert(e,t,n){if(t.length<=0)return;const r=this.doc;null!==r?Tr(r,r=>{const s=_s(r,this,e,!n);n||(n={},s.currentAttributes.forEach((e,t)=>{n[t]=e})),Cs(r,this,s,t,n)}):this._pending.push(()=>this.insert(e,t,n))}insertEmbed(e,t,n){const r=this.doc;null!==r?Tr(r,r=>{const s=_s(r,this,e,!n);Cs(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?Tr(n,n=>{Us(n,_s(n,this,e,!0),t)}):this._pending.push(()=>this.delete(e,t))}format(e,t,n){if(0===t)return;const r=this.doc;null!==r?Tr(r,r=>{const s=_s(r,this,e,!1);null!==s.right&&Is(r,this,s,t,n)}):this._pending.push(()=>this.format(e,t,n))}removeAttribute(e){null!==this.doc?Tr(this.doc,t=>{ls(t,this,e)}):this._pending.push(()=>this.removeAttribute(e))}setAttribute(e,t){null!==this.doc?Tr(this.doc,n=>{as(n,this,e,t)}):this._pending.push(()=>this.setAttribute(e,t))}getAttribute(e){return ds(this,e)}getAttributes(){return us(this)}_write(e){e.writeTypeRef(ti)}}class Ls{constructor(e,t=()=>!0){this._filter=t,this._root=e,this._currentNode=e._start,this._firstCall=!0,e.doc??Hr()}[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!==Rs&&t.constructor!==Ps||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 Ps extends Qr{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 Ps}clone(){const e=new Ps;return e.insert(0,this.toArray().map(e=>e instanceof Qr?e.clone():e)),e}get length(){return this.doc??Hr(),null===this._prelimContent?this._length:this._prelimContent.length}createTreeWalker(e){return new Ls(this,e)}querySelector(e){e=e.toUpperCase();const t=new Ls(this,t=>t.nodeName&&t.nodeName.toUpperCase()===e).next();return t.done?null:t.value}querySelectorAll(e){return e=e.toUpperCase(),Y(new Ls(this,t=>t.nodeName&&t.nodeName.toUpperCase()===e))}_callObserver(e,t){Yr(this,e,new $s(this,t,e))}toString(){return ts(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),es(this,s=>{r.insertBefore(s.toDOM(e,t,n),null)}),r}insert(e,t){null!==this.doc?Tr(this.doc,n=>{os(n,this,e,t)}):this._prelimContent.splice(e,0,...t)}insertAfter(e,t){if(null!==this.doc)Tr(this.doc,n=>{const r=e&&e instanceof Qr?e._item:e;ss(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 Ce("Reference item not found");n.splice(r,0,...t)}}delete(e,t=1){null!==this.doc?Tr(this.doc,n=>{cs(n,this,e,t)}):this._prelimContent.splice(e,t)}toArray(){return Zr(this)}push(e){this.insert(this.length,e)}unshift(e){this.insert(0,e)}get(e){return rs(this,e)}slice(e=0,t=this.length){return Xr(this,e,t)}forEach(e){es(this,e)}_write(e){e.writeTypeRef(ri)}}class Rs extends Ps{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 Rs(this.nodeName)}clone(){const e=new Rs(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 Qr?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?Tr(this.doc,t=>{ls(t,this,e)}):this._prelimAttrs.delete(e)}setAttribute(e,t){null!==this.doc?Tr(this.doc,n=>{as(n,this,e,t)}):this._prelimAttrs.set(e,t)}getAttribute(e){return ds(this,e)}hasAttribute(e){return hs(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&&gr(s,t)&&(n[r]=s.content.getContent()[s.length-1])}),n})(this,e):us(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 es(this,s=>{r.appendChild(s.toDOM(e,t,n))}),void 0!==n&&n._createAssociation(r,this),r}_write(e){e.writeTypeRef(ni),e.writeKey(this.nodeName)}}class $s extends Wr{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 Ms extends ms{constructor(e){super(),this.hookName=e}_copy(){return new Ms(this.hookName)}clone(){const e=new Ms(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(si),e.writeKey(this.hookName)}}class Ns extends js{get nextSibling(){const e=this._item?this._item.next:null;return e?e.content.type:null}get prevSibling(){const e=this._item?this._item.prev:null;return e?e.content.type:null}_copy(){return new Ns}clone(){const e=new Ns;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(ii)}}class Bs{constructor(e,t){this.id=e,this.length=t}get deleted(){throw Ie()}mergeWith(e){return!1}write(e,t,n){throw Ie()}integrate(e,t){throw Ie()}}class Fs extends Bs{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),wr(e.doc.store,this)}write(e,t){e.writeInfo(0),e.writeLen(this.length-t)}getMissing(e,t){return null}}class Ws{constructor(e){this.content=e}getLength(){return 1}getContent(){return[this.content]}isCountable(){return!0}copy(){return new Ws(this.content)}splice(e){throw Ie()}mergeWith(e){return!1}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeBuf(this.content)}getRef(){return 3}}class Vs{constructor(e){this.len=e}getLength(){return this.len}getContent(){return[]}isCountable(){return!1}copy(){return new Vs(this.len)}splice(e){const t=new Vs(this.len-e);return this.len=e,t}mergeWith(e){return this.len+=e.len,!0}integrate(e,t){Jn(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 Hs=(e,t)=>new Qn({guid:e,...t,shouldLoad:t.shouldLoad||t.autoLoad||!1});class Ks{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 Ks(Hs(this.doc.guid,this.opts))}splice(e){throw Ie()}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 zs{constructor(e){this.embed=e}getLength(){return 1}getContent(){return[this.embed]}isCountable(){return!0}copy(){return new zs(this.embed)}splice(e){throw Ie()}mergeWith(e){return!1}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeJSON(this.embed)}getRef(){return 5}}class Js{constructor(e,t){this.key=e,this.value=t}getLength(){return 1}getContent(){return[]}isCountable(){return!1}copy(){return new Js(this.key,this.value)}splice(e){throw Ie()}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 qs{constructor(e){this.arr=e}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new qs(this.arr)}splice(e){const t=new qs(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 Gs="development"===xn("node_env");class Ys{constructor(e){this.arr=e,Gs&&mn(e)}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new Ys(this.arr)}splice(e){const t=new Ys(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 Qs{constructor(e){this.str=e}getLength(){return this.str.length}getContent(){return this.str.split("")}isCountable(){return!0}copy(){return new Qs(this.str)}splice(e){const t=new Qs(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 Xs=[e=>new gs,e=>new ms,e=>new js,e=>new Rs(e.readKey()),e=>new Ps,e=>new Ms(e.readKey()),e=>new Ns],Zs=0,ei=1,ti=2,ni=3,ri=4,si=5,ii=6;class oi{constructor(e){this.type=e}getLength(){return 1}getContent(){return[this.type]}isCountable(){return!0}copy(){return new oi(this.type._copy())}splice(e){throw Ie()}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 ci=(e,t,n)=>{const{client:r,clock:s}=t.id,i=new li(pr(r,s+n),t,pr(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=pr(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 li extends Bs{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>=br(t,this.origin.client))return this.origin.client;if(this.rightOrigin&&this.rightOrigin.client!==this.id.client&&this.rightOrigin.clock>=br(t,this.rightOrigin.client))return this.rightOrigin.client;if(this.parent&&this.parent.constructor===hr&&this.id.client!==this.parent.client&&this.parent.clock>=br(t,this.parent.client))return this.parent.client;if(this.origin&&(this.left=Er(e,t,this.origin),this.origin=this.left.lastId),this.rightOrigin&&(this.right=xr(e,this.rightOrigin),this.rightOrigin=this.right.id),this.left&&this.left.constructor===Fs||this.right&&this.right.constructor===Fs)this.parent=null;else if(this.parent){if(this.parent.constructor===hr){const e=kr(t,this.parent);e.constructor===Fs?this.parent=null:this.parent=e.content.type}}else this.left&&this.left.constructor===li?(this.parent=this.left.parent,this.parentSub=this.left.parentSub):this.right&&this.right.constructor===li&&(this.parent=this.right.parent,this.parentSub=this.right.parentSub);return null}integrate(e,t){if(t>0&&(this.id.clock+=t,this.left=Er(e,e.doc.store,pr(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),fr(this.origin,t.origin)){if(t.id.client<this.id.client)n=t,r.clear();else if(fr(this.rightOrigin,t.rightOrigin))break}else{if(null===t.origin||!s.has(kr(e.doc.store,t.origin)))break;r.has(kr(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),wr(e.doc.store,this),this.content.integrate(e,this),Dr(e,this.parent,this.parentSub),(null!==this.parent._item&&this.parent._item.deleted||null!==this.parentSub&&null!==this.right)&&this.delete(e)}else new Fs(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:pr(this.id.client,this.id.clock+this.length-1)}mergeWith(e){if(this.constructor===e.constructor&&fr(e.origin,this.lastId)&&this.right===e&&fr(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(),Jn(e.deleteSet,this.id.client,this.id.clock,this.length),Dr(e,t,this.parentSub),this.content.delete(e)}}gc(e,t){if(!this.deleted)throw Oe();this.content.gc(e),t?((e,t,n)=>{const r=e.clients.get(t.id.client);r[_r(r,t.id.clock)]=n})(e,this,new Fs(this.id,this.length)):this.content=new Vs(this.length)}write(e,t){const n=t>0?pr(this.id.client,this.id.clock+t-1):this.origin,r=this.rightOrigin,s=this.parentSub,i=31&this.content.getRef()|(null===n?0:V)|(null===r?0:W)|(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 Oe()})(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===hr?(e.writeParentInfo(!1),e.writeLeftID(t)):Oe();null!==s&&e.writeString(s)}this.content.write(e,t)}}const ai=(e,t)=>di[31&t](e),di=[()=>{Oe()},e=>new Vs(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 qs(n)},e=>new Ws(e.readBuf()),e=>new Qs(e.readString()),e=>new zs(e.readJSON()),e=>new Js(e.readKey(),e.readJSON()),e=>new oi(Xs[e.readTypeRef()](e)),e=>{const t=e.readLen(),n=[];for(let r=0;r<t;r++)n.push(e.readAny());return new Ys(n)},e=>new Ks(Hs(e.readString(),e.readAny())),()=>{Oe()}];class ui extends Bs{get deleted(){return!0}delete(){}mergeWith(e){return this.constructor===e.constructor&&(this.length+=e.length,!0)}integrate(e,t){Oe()}write(e,t){e.writeInfo(10),ae(e.restEncoder,this.length-t)}getMissing(e,t){return null}}const hi="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},fi="__ $YJS$ __";function pi(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}hi[fi],hi[fi]=!0;const gi=new FinalizationRegistry(({cache:e,key:t})=>{delete e[t]});function yi(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=bi(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=bi(n,r,s),o=null===(t=this.cache[i])||void 0===t?void 0:t.deref();o&&gi.unregister(o),this.cache[i]=new WeakRef(e),gi.register(e,{cache:this.cache,key:i},e)},delete(e){gi.unregister(e);const t=bi(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 mi=new WeakSet;function vi(e){if(mi.has(e))throw new Error(`Y.Doc ${e.meta.parentId} has been destroyed`)}function bi(e,t,n){return`${e}[${t}].${n}`}const{getByKeyPath:wi}=e.Dexie;let _i=null;function ki(e){_i=e}function Si(){}const xi=new WeakMap;function Ei(){return e.Dexie.Events(null,"load","sync","error")}class Ci{static getOrCreateDocument(e,t,n,r){var s,i;const o=yi(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 Qn({meta:{db:e,updatesTable:s,parentProp:r,parentTable:n,parentId:i}}),t.add(o),o.on("destroy",()=>{mi.add(o),t.delete(o)}),o)}(e,o,t,n,c,r)}static load(e,t){var n;let r=xi.get(e);return r?(++r.refCount,null!=(null==t?void 0:t.gracePeriod)&&r.graceTimeout<t.gracePeriod&&(r.graceTimeout=t.gracePeriod),r.graceTimer&&(clearTimeout(r.graceTimer),r.graceTimer=null)):(r=new Ci(e),r.graceTimeout=null!==(n=null==t?void 0:t.gracePeriod)&&void 0!==n?n:-1,xi.set(e,r)),r}static release(e){if(!e||mi.has(e))return;const t=xi.get(e);t?--t.refCount<=0&&(t.graceTimeout<0?t._release():t.graceTimer||(t.graceTimer=setTimeout(()=>{t.graceTimer=null,0===t.refCount&&t._release()},t.graceTimeout))):e.destroy()}_release(){this.doc&&Promise.resolve(Ci.on("beforeunload").fire(this)).finally(()=>{var e;0===this.refCount&&(null===(e=this.doc)||void 0===e||e.destroy())})}static for(e){return xi.get(e)}static get currentUpdateRow(){return _i}get whenLoaded(){return this._whenLoaded||(this._whenLoaded=new Promise((t,n)=>{this.doc?this.doc.isLoaded?t():this._error?n(this._error):mi.has(this.doc)?n(new e.Dexie.AbortError("Document was destroyed before loaded")):(this.on("load",t),this.on("error",n),this.doc.on("destroy",()=>n(new e.Dexie.AbortError("Document was destroyed before loaded")))):n(new Error("No Y.Doc associated with this provider"))})),this._whenLoaded}get whenSynced(){return this._whenSynced||(this._whenSynced=new Promise((t,n)=>{this.doc?this.doc.isSynced?t():this._error?n(this._error):mi.has(this.doc)?n(new e.Dexie.AbortError("Document was destroyed before synced")):(this.on("sync",t),this.on("error",n),this.doc.on("destroy",()=>n(new e.Dexie.AbortError("Document was destroyed before synced")))):n(new Error("No Y.Doc associated with this provider"))})),this._whenSynced}constructor(t){this.refCount=1,this.cleanupHandlers=[],this.graceTimeout=-1,this.doc=null,this.destroyed=!1,this.on=Ei(),this.doc=t,this.off=(e,t)=>{var n;return null===(n=this.on[e])||void 0===n?void 0:n.unsubscribe(t)},"dispose"in Symbol&&(this[Symbol.dispose]=()=>Ci.release(t)),t.on("load",()=>this.on("load").fire()),t.on("sync",e=>!1!==e&&this.on("sync").fire()),t.on("destroy",this.destroy.bind(this)),this.on("error",e=>{this._error=e});const{db:n,parentTable:r,parentId:s,updatesTable:i}=t.meta||{};if(!n||!r||!i)throw new Error("Missing Dexie-related metadata in Y.Doc. Documents need to be obtained through Y.Doc properties from dexie queries.");if(!n.table(r)||!n.table(i))throw new Error(`Table ${r} or ${i} not found in db`);vi(t),this.stopObserving=function(t,n,r,s,i,o){let c=0,l=!0;const a=e.liveQuery(()=>{vi(n);const t=r.table(i);return Promise.all([(c>0?t.where("i").between(c,1/0,!1).toArray().then(t=>t.filter(t=>0===e.cmp(t.k,o))):t.where({k:o}).toArray()).then(e=>e),r.table(s).where(":id").equals(o).toArray()])}).subscribe(([e,r])=>{e.length>0&&(c=e[e.length-1].i),0!==r.length?(vi(n),e.length>0&&Tr(n,()=>{e.forEach(e=>{try{ki(e),or(n,e.u)}finally{ki(null)}})},t,!1),l&&(l=!1,n.emit("load",[n]))):n.destroy()},e=>{t.on("error").fire(e)}),d=(e,n)=>{n!==t&&r.table(i).add({k:o,u:e,f:1}).then(e=>{e===c-1&&++c}).catch(e=>{t.on("error").fire(e)})},u=()=>{a.unsubscribe(),n.off("updateV2",d),n.off("destroy",u)};return n.on("updateV2",d),n.on("destroy",u),u}(this,t,n,r,i,s),Ci.on("new").fire(this)}destroy(){var e;xi.delete(this.doc),this.doc=null,this.destroyed=!0,this.refCount=0,null===(e=this.stopObserving)||void 0===e||e.call(this),this.on=Ei(),this.cleanupHandlers.forEach(e=>e())}addCleanupHandler(e){this.cleanupHandlers.push("function"==typeof e?e:()=>e.unsubscribe())}}function Ii(t,n){return r(this,void 0,void 0,function*(){var s;const i={};let o,c=!1;for(const l of t)try{switch(l.type){case"u-s":{const e=pi(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=pi(n,l.table,l.prop);e&&(yield n.transaction("rw",e,t=>r(this,void 0,void 0,function*(){let n=yield t.table(e.name).get(Jt);yield t.table(e.name).put(Object.assign(Object.assign({},n||{i:Jt}),{unsentFrom:Math.max((null==n?void 0:n.unsentFrom)||1,l.i+1)}))})));break}case"u-reject":{const t=pi(n,l.table,l.prop);if(!t)break;const r=null===(s=yield t.get(l.i))||void 0===s?void 0:s.k;if(null!=r){yield n.transaction("rw",t,n=>(n.idbtrans._rejecting_y_ypdate=!0,t.where("i").aboveOrEqual(l.i).filter(t=>0===e.cmp(t.k,r)&&!(1&~(t.f||0))).delete()));const s=Ci.getDocCache(n.dx).find(l.table,r,l.prop);s&&s.destroy()}break}case"in-sync":{const e=Ci.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}})}Ci.on=e.Dexie.Events(null,{new:[function(e,t){return e===Si?t:function(){e.apply(this,arguments),t.apply(this,arguments)}}],beforeunload:[function(e,t){return e===Si?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)}}]}),Ci.getDocCache=yi,e.Dexie.DexieYProvider?Ci=e.Dexie.DexieYProvider||Ci:e.Dexie.DexieYProvider=Ci;function Oi(t,n,s){return r(this,arguments,void 0,function*(t,n,{yDownloadedRealms:s,realms:l}){if(s&&l&&l.every(e=>"*"===s[e]))return;const a=yield nt(t),d={"Content-Type":"application/json",Accept:"application/octet-stream"};a&&(d.Authorization=`Bearer ${a.accessToken}`);const u=yield fetch(`${n}/y/download`,{body:jt.stringify({downloadedRealms:s||{}}),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),Je,function(s){return o(this,arguments,function*(){var o,l,a,d;let u=null,h=null,f=null,p=[];function g(e){return r(this,void 0,void 0,function*(){const r=p[p.length-1];if(p.length>0){if(!u||!h||!f)throw new Error(`Protocol error from ${n}/y/download`);const e=pi(t,h,f);e&&(yield e.bulkAdd(p)),p=[]}u&&(h&&f&&r||e)&&(yield t.$syncState.update("syncState",t=>{const n=t.yDownloadedRealms||{};n[u]=e?"*":{tbl:h,prop:f,key:r.k},t.yDownloadedRealms=n}))})}try{try{for(var y,m=!0,v=c(s);!(o=(y=yield i(v.next())).done);m=!0){d=y.value,m=!1;const e=new Ue(d);for(;je(e);)switch(Pe(e)){case 1:yield i(g(!0)),u=Me(e);break;case 2:yield i(g(!1)),h=Me(e),f=Me(e);break;case 3:{const t=We(e),n=Le(e);p.push({k:t,u:n});break}}yield i(g(!1))}}catch(e){l={error:e}}finally{try{m||o||!(a=v.return)||(yield i(a.call(v)))}finally{if(l)throw l.error}}yield i(g(!0))}catch(t){throw t instanceof e.DexieError||(yield i(g(!1))),t}})})})}const Di="currentSyncWorker";function Ai(e,t,n,s){return Ui(e,t,n,s).then(t=>((null==s?void 0:s.justCheckIfNeeded)||e.syncStateChangedEvent.next({phase:"in-sync"}),t)).catch(i=>r(this,void 0,void 0,function*(){return(null==s?void 0:s.justCheckIfNeeded)?Promise.reject(i):Wt&&(null==s?void 0:s.retryImmediatelyOnFetchError)&&"TypeError"===(null==i?void 0:i.name)&&/fetch/.test(null==i?void 0:i.message)?(e.syncStateChangedEvent.next({phase:"error",error:i}),yield new Promise(e=>setTimeout(e,500)),yield Ai(e,t,n,Object.assign(Object.assign({},s),{retryImmediatelyOnFetchError:!1}))):(yield e.$syncState.update("syncState",{timestamp:new Date,error:""+i}),e.syncStateChangedEvent.next({phase:Wt?"error":"offline",error:new Error(""+(null==i?void 0:i.message)||i)}),Promise.reject(i))}))}function Ui(e,t,n){return r(this,arguments,void 0,function*(e,t,n,{isInitialSync:s,cancelToken:i,justCheckIfNeeded:o,purpose:c}={isInitialSync:!1}){var a;if(!(null===(a=e.cloud.options)||void 0===a?void 0:a.databaseUrl))throw new Error("Internal error: sync must not be called when no databaseUrl is configured");const{databaseUrl:d}=t,u=yield e.getCurrentUser(),h=u.isLoggedIn?k(e):[],f=h.map(t=>e.table(S(t.name))),p=yield e.getPersistedSyncState(),g=u.isLoggedIn,y=g?function(e,t){const n=(null==t?void 0:t.syncedTables)||[];return k(e).filter(e=>!n.includes(e.name))}(e,p):[];Ft(i);const m=y.length>0;if(m){if(o)return!0;yield e.transaction("rw",y,e=>r(this,void 0,void 0,function*(){e.idbtrans.disableChangeTracking=!0,e.idbtrans.disableAccessControl=!0,yield function(e,t,n){return r(this,void 0,void 0,function*(){const r=new Set(n||[]);for(const n of e)"members"===n.name?yield n.toCollection().modify(e=>{r.has(e.realmId)||e.userId&&e.userId!==l.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!==l.userId||(e.owner=t.userId)}):yield n.toCollection().modify(e=>{e.realmId&&r.has(e.realmId)||(e.owner&&e.owner!==l.userId||(e.owner=t.userId),e.realmId&&e.realmId!==l.userId||(e.realmId=t.userId))}))})}(y,u,null==p?void 0:p.realms)})),Ft(i)}const[v,b,w,{yMessages:_,lastUpdateIds:E}]=yield e.transaction("r",e.tables,()=>r(this,void 0,void 0,function*(){const t=yield e.getPersistedSyncState();let s=yield e.$baseRevs.toArray();s=s.filter(e=>h.some(t=>t.name===e.tableName));let o=yield I(f,e);const c=yield function(e,t){return r(this,void 0,void 0,function*(){const n=[],r={};for(const s of t)if(s.schema.yProps)for(const t of s.schema.yProps){const i=e.table(t.updatesTable),o=yield i.get(Jt),c=(null==o?void 0:o.unsentFrom)||1,l=(null==o?void 0:o.receivedUntil)||0,a=Math.min(c,l+1),d=yield qt(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]:$r(i);if(r)n.push({type:"u-c",table:s.name,prop:t.prop,k:e,u:c,i:o});else{const r=Pr(c);n.push({type:"sv",table:s.name,prop:t.prop,k:e,sv:r})}}}return{yMessages:n,lastUpdateIds:r}})}(e,h);if(Ft(i),m){const e=[...(null==p?void 0:p.realms)||[],...(null==p?void 0:p.inviteRealms)||[]],l=yield function(e,t,n,s){return r(this,void 0,void 0,function*(){const i=`upload-${O(8)}`;if(t.isLoggedIn&&e.length>0){const o=new Set(s||[]);return(yield Promise.all(e.map(e=>r(this,void 0,void 0,function*(){const{extractKey:r}=e.core.schema.primaryKey;if(!r)return{table:e.name,muts:[]};const s=n[e.name],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||"")&&j(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[]})}(y,u,n,e);return Ft(i),o=o.concat(l),[o,t,s,c]}return[o,t,s,c]})),C=v.some(e=>e.muts.some(e=>e.keys.length>0))||_.some(e=>"u-c"===e.type);if(o)return C;if("push"===c&&!C)return!1;const D=Ht(v,null==b?void 0:b.latestRevisions),A=(null==b?void 0:b.clientIdentity)||U(16);Ft(i);const T=yield Bt(v,_,b,w,e,d,n,A,u),{done:L,newSyncState:P}=yield e.transaction("rw",e.tables,t=>r(this,void 0,void 0,function*(){t.idbtrans.disableChangeTracking=!0,t.idbtrans.disableAccessControl=!0;for(const e of Object.keys(n))T.schema[e]&&(n[e]=T.schema[e]);yield e.$syncState.put(n,"schema");const s=yield I(f,e,{since:D});for(const t of f){const n=x(t.name);if(s.some(e=>e.table===n&&e.muts.length>0)){if(D[n]){const r=D[n]||0;yield Promise.all([t.where("rev").belowOrEqual(r).delete(),e.$baseRevs.where(":id").between([n,-1/0],[n,r+1],!0,!0).reverse().offset(1).delete()])}}else yield Promise.all([t.clear(),e.$baseRevs.where({tableName:n}).delete()])}Ht(s,D),yield Vt(e,n,D,T.serverRevision);const i=yield e.getPersistedSyncState();yield function(e,t,n){return r(this,void 0,void 0,function*(){const r=new Set,s=new Set,i=n?n.realms:[],o=n?n.inviteRealms:[],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=k(e);for(const e of t){let t=["realms","members","roles"].includes(e.name)?r:s;0!==t.size&&(e.schema.indexes.some(e=>"realmId"===e.keyPath||Array.isArray(e.keyPath)&&"realmId"===e.keyPath[0])?yield e.where("realmId").anyOf([...t]).delete():yield e.filter(e=>!!(null==e?void 0:e.realmId)&&t.has(e.realmId)).delete())}}if(s.size>0&&(null==n?void 0:n.yDownloadedRealms))for(const e of s)delete n.yDownloadedRealms[e]})}(e,T,i);const o=i||{syncedTables:[],latestRevisions:{},realms:[],inviteRealms:[],clientIdentity:A};g&&(o.syncedTables=h.map(e=>e.name).concat(y.map(e=>e.name))),o.latestRevisions=D,o.remoteDbId=T.dbId,o.initiallySynced=!0,o.realms=T.realms,o.inviteRealms=T.inviteRealms,o.serverRevision=T.serverRevision,o.yServerRevision=T.serverRevision,o.timestamp=new Date,delete o.error;const c=Ti(T.changes,s);if(yield zt(c,e),T.yMessages){const{receivedUntils:t,resyncNeeded:n,yServerRevision:s}=yield Ii(T.yMessages,e);s&&(o.yServerRevision=s),yield function(e,t,n){return r(this,void 0,void 0,function*(){var s,i,o,c,l;const a={};for(const[t,n]of Object.entries(e))null!==(s=a[t])&&void 0!==s||(a[t]={}),a[t].unsentFrom=n+1;for(const[e,n]of Object.entries(t))null!==(i=a[e])&&void 0!==i||(a[e]={}),a[e].receivedUntil=n;const 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],s=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,()=>r(this,void 0,void 0,function*(){const t=yield n.table(e).get(Jt);t?(t.unsentFrom=Math.max(s,t.unsentFrom||1),t.receivedUntil=Math.max(i,t.receivedUntil||0),yield n.table(e).put(t)):yield n.table(e).add({i:Jt,unsentFrom:s,receivedUntil:i})}))}})}(E,t,e),n&&(o.yDownloadedRealms={})}return e.$syncState.put(o,"syncState"),{done:0===s.length,newSyncState:o}}));if(!L)return yield Nt(e),yield Ui(e,t,n,{isInitialSync:s,cancelToken:i});const R=Object.values(n).some(e=>{var t;return null===(t=e.yProps)||void 0===t?void 0:t.length}),$=!!T.yMessages;if(R&&$)try{yield Oi(e,d,P)}catch(e){}return e.syncCompleteEvent.next(),!1})}function Ti(e,t){const n={};R(n,e);const r={};return R(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))A(r.val,e,t);break;case"del":break;case"upd":for(const e of Object.keys(s.mod))delete r.mod[e]}break}}}(n,r),function(e,t){const n={};for(const[t,r]of Object.entries(e))for(const[e,s]of Object.entries(r)){const r=n[t]||(n[t]={});(r[s.type]||(r[s.type]=[])).push({key:e,...s})}const r=[];for(const[e,s]of Object.entries(n)){const n={table:e,muts:[]};for(const[e,r]of Object.entries(s))switch(e){case"ups":{const e={type:"upsert",keys:r.map(e=>e.key),values:r.map(e=>e.val),txid:t};n.muts.push(e);break}case"upd":{const e={type:"update",keys:r.map(e=>e.key),changeSpecs:r.map(e=>e.mod),txid:t};n.muts.push(e);break}case"del":{const e={type:"delete",keys:r.map(e=>e.key),txid:t};n.muts.push(e);break}}r.push(n)}return r}(n)}function ji(s){const i=[],o=new t.BehaviorSubject(!0),c=new t.BehaviorSubject(null);let l=!1,a=new Array(10).fill(0);return c.subscribe(()=>r(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 r(this,void 0,void 0,function*(){for(var o,c,l,a,d,u;i.length>0;){const h=i.shift();try{yield t.firstValueFrom(s.cloud.syncState.pipe(n.filter(({phase:e})=>"in-sync"===e||"error"===e)));const i=s.cloud.persistedSyncState.value;if(!h)continue;switch(h.type){case"token-expired":const t=s.cloud.currentUser.value,n=yield st(s.cloud.options.databaseUrl,t);yield s.table("$logins").update(t.userId,{accessToken:n.accessToken,accessTokenExpiration:n.accessTokenExpiration,claims:n.claims,license:n.license,data:n.data});break;case"realm-added":(null===(o=null==i?void 0:i.realms)||void 0===o?void 0:o.includes(h.realm))||(null===(c=null==i?void 0:i.inviteRealms)||void 0===c?void 0:c.includes(h.realm))||(yield s.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 s.cloud.sync({purpose:"pull",wait:!0}));break;case"realm-removed":((null===(a=null==i?void 0:i.realms)||void 0===a?void 0:a.includes(h.realm))||(null===(d=null==i?void 0:i.inviteRealms)||void 0===d?void 0:d.includes(h.realm)))&&(yield s.cloud.sync({purpose:"pull",wait:!0}));break;case"realms-changed":yield s.cloud.sync({purpose:"pull",wait:!0});break;case"changes":if("error"===(null===(u=s.cloud.syncState.value)||void 0===u?void 0:u.phase)){y(s,"pull");break}yield s.transaction("rw",s.dx.tables,t=>r(this,void 0,void 0,function*(){t.idbtrans.disableChangeTracking=!0,t.idbtrans.disableAccessControl=!0;const[n,r,i]=yield Promise.all([s.getSchema(),s.getPersistedSyncState(),s.getCurrentUser()]);if(!r||!n||!i)return;if(h.baseRev!==r.serverRevision)return void("string"!=typeof h.baseRev||"bigint"!=typeof r.serverRevision&&"object"!=typeof r.serverRevision||y(s,"pull"));if((yield e.waitFor(_(r)))!==h.realmSetHash)return void y(s,"pull");let o=[];if(i.isLoggedIn){const e=k(s).map(e=>s.table(S(e.name)));o=yield I(e,s)}if(h.changes.length>0){const e=Ti(h.changes,o);yield zt(e,s)}r.latestRevisions=Ht(o,r.latestRevisions),r.serverRevision=h.newRev,yield Vt(s,n,r.latestRevisions,h.newRev),yield s.$syncState.put(r,"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 Li=new WeakMap,Pi={members:"@id, [userId+realmId], [email+realmId], realmId",roles:"[realmId+name]",realms:"@realmId",$jobs:"",$syncState:"",$baseRevs:"[tableName+clientRev]",$logins:"claims.sub, lastLogin"};let Ri=0;function $i(e){"vip"in e&&(e=e.vip);let n=Li.get(e.cloud);if(!n){const r=new t.Subject;let s=new f(`syncstatechanged-${e.name}`),i=new f(`synccomplete-${e.name}`);r.id=++Ri;let o=!1;n={get name(){return e.name},close:()=>e.close(),transaction:e.transaction.bind(e),table:e.table.bind(e),get tables(){return e.tables},cloud:e.cloud,get $jobs(){return e.table("$jobs")},get $syncState(){return e.table("$syncState")},get $baseRevs(){return e.table("$baseRevs")},get $logins(){return e.table("$logins")},get realms(){return e.realms},get members(){return e.members},get roles(){return e.roles},get initiallySynced(){return o},localSyncEvent:r,get syncStateChangedEvent(){return s},get syncCompleteEvent(){return i},dx:e};const c={getCurrentUser:()=>n.$logins.toArray().then(e=>e.find(e=>e.isLoggedIn)||l),getPersistedSyncState:()=>n.$syncState.get("syncState"),getSchema:()=>n.$syncState.get("schema").then(e=>{if(e)for(const t of n.tables)t.schema.primKey&&t.schema.primKey.keyPath&&e[t.name]&&(e[t.name].primaryKey=Mi(t.schema.primKey.keyPath));return e}),getOptions:()=>n.$syncState.get("options"),setInitiallySynced(e){o=e},reconfigure(){s=new f(`syncstatechanged-${e.name}`),i=new f(`synccomplete-${e.name}`)}};Object.assign(n,c),n.messageConsumer=ji(n),n.messageProducer=new t.Subject,Li.set(e.cloud,n)}return n}function Mi(e){return"string"==typeof e?e:e?"["+[].join.call(e,"+")+"]":""}const Ni=new WeakMap;class Bi{constructor(e,t){Ni.set(this,e),Object.assign(this,t)}static load(e,t){return e.table("$logins").get(t).then(n=>new Bi(e,n||{userId:t,claims:{sub:t},lastLogin:new Date(0)}))}save(){return r(this,void 0,void 0,function*(){Ni.get(this).table("$logins").put(this)})}}function Fi(e,n){return t.firstValueFrom(t.from(e).pipe(t.filter(n)))}function Wi(e){return r(this,void 0,void 0,function*(){const t=yield Vi(e);if(t){if(!(yield function(e,t,n){return r(this,void 0,void 0,function*(){const r=[{type:"warning",messageCode:"LOGOUT_CONFIRMATION",message:"{numUnsyncedChanges} unsynced changes will get lost!\n Logout anyway?",messageParams:{currentUserId:t,numUnsyncedChanges:n.toString()}}];return yield Qe(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 Vi(e,{deleteUnsyncedData:!0})}})}function Vi(e){return r(this,arguments,void 0,function*(e,{deleteUnsyncedData:t=!1}={}){const[n,s]=yield e.dx.transaction("rw",e.dx.tables,n=>r(this,void 0,void 0,function*(){const r=n.idbtrans;r.disableChangeTracking=!0,r.disableAccessControl=!0;const s=n.storeNames.filter(e=>e.endsWith("_mutations")),i=(yield Promise.all(s.map(e=>n.table(e).count()))).reduce((e,t)=>e+t,0);if(i>0&&!t)return[i,!1];e.$syncState.delete("syncState");for(const t of e.dx.tables)"$jobs"!==t.name&&"$syncState"!==t.name&&t.clear();return[i,!0]}));return s&&(yield Fi(e.cloud.currentUser,e=>e.userId===l.userId),yield e.cloud.sync({purpose:"pull",wait:!0})),n})}const Hi={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 Ki extends Error{constructor(e,t,n){super(n||Hi[e]),this.name="OAuthError",this.code=e,this.provider=t}get userMessage(){return Hi[this.code]||this.message}}const zi={providers:[],otpEnabled:!0};function Ji(e){return r(this,arguments,void 0,function*(e,t=!0){if(!t)return zi;try{const t=yield fetch(`${e}/auth-providers`,{method:"GET",headers:{Accept:"application/json"},mode:"cors"});return 404===t.status?zi:t.ok?yield t.json():zi}catch(e){return zi}})}function qi(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 Gi(t){const{userInteraction:n}=t.cloud;return function(s){return r(this,arguments,void 0,function*({public_key:s,hints:i}){var o,c;let l;const a=null===(o=t.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 r(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 Ki("expired_code",void 0,e.message);throw new qe(e)}}catch(e){if(e instanceof Ki||e instanceof qe)throw e}throw new Ki("provider_error",void 0,`Token exchange failed: ${e.status} ${t}`)}const n=yield e.json();if("error"===n.type)throw new qe(n);if("tokens"!==n.type)throw new Ki("provider_error",void 0,`Unexpected response type: ${n.type}`);return n}catch(e){if(e instanceof Ki||e instanceof qe)throw e;if(e instanceof TypeError)throw new Ki("network_error");throw e}})}({databaseUrl:a,code:i.oauthCode,publicKey:s,scopes:["ACCESS_DB"]});if(null==i?void 0:i.provider){let e;throw i.redirectPath&&(/^https?:\/\//i.test(i.redirectPath)?e=i.redirectPath:"undefined"!=typeof window&&window.location?e=new URL(i.redirectPath,window.location.href).toString():"undefined"!=typeof location&&location.href&&(e=new URL(i.redirectPath,location.href).toString())),Yi(t,i.provider,e),new tt(i.provider)}if("demo"===(null==i?void 0:i.grant_type)){l={demo_user:yield Ze(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:s}}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:s};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 Ze(n,"Enter email address"));l=/@demo.local$/.test(e)?{demo_user:e,grant_type:"demo",scopes:["ACCESS_DB"],public_key:s}:{email:e,grant_type:"otp",scopes:["ACCESS_DB"]}}else{const o=!1!==(null===(c=t.cloud.options)||void 0===c?void 0:c.socialAuth),d=yield Ji(a,o);if(d.providers.length>0){const s=yield function(t,n,s){return r(this,arguments,void 0,function*(t,n,r,s="Choose login method",i=[]){const o=[...n.map(Ye)];return r&&o.push({name:"otp",value:"email",displayName:"Continue with email",iconUrl:Ge,styleHint:"otp"}),new Promise((n,r)=>{const c={type:"generic",title:s,alerts:i,options:o,fields:{},submitLabel:"",cancelLabel:"Cancel",onSubmit:e=>{t.next(void 0),n("otp"in e?{type:"otp"}:"provider"in e?{type:"provider",provider:e.provider}:{type:"otp"})},onCancel:()=>{t.next(void 0),r(new e.AbortError("User cancelled"))}};t.next(c)})})}(n,d.providers,d.otpEnabled,"Sign in");if("provider"===s.type)throw Yi(t,s.provider),new tt(s.provider)}const u=yield Ze(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:s}:{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 Xe(n,"Token request failed",{type:"error",messageCode:"GENERIC_ERROR",message:e,messageParams:{}}).catch(()=>{}),new Pt(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 et(n,l.email),t=Object.assign(Object.assign({},l),{otp:e||"",otp_id:u.otp_id,public_key:s});let r=yield fetch(`${a}/token`,{body:JSON.stringify(t),method:"post",headers:{"Content-Type":"application/json"},mode:"cors"});for(;401===r.status;){const e=yield r.text();t.otp=yield et(n,l.email,{type:"error",messageCode:"INVALID_OTP",message:e,messageParams:{}}),r=yield fetch(`${a}/token`,{body:JSON.stringify(t),method:"post",headers:{"Content-Type":"application/json"},mode:"cors"})}if(200!==r.status){const e=yield r.text();throw new Pt(r,e)}return yield r.json()}throw new Error(`Unexpected response from ${a}/token`)})}}function Yi(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.");qi({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 Qi(e,...t){globalThis.console[e](...t)}function Xi(e,t){return r(this,void 0,void 0,function*(){var n;const s=yield e.getCurrentUser(),i=s.userId;if(s.isLoggedIn&&(!t||!t.email&&!t.userId)){if("ok"===((null===(n=s.license)||void 0===n?void 0:n.status)||"ok")&&s.accessToken&&(!s.accessTokenExpiration||s.accessTokenExpiration.getTime()>Date.now()))return!1;if(s.refreshToken&&(!s.refreshTokenExpiration||s.refreshTokenExpiration.getTime()>Date.now()))return yield nt(e),!1}const o=new Bi(e,{claims:{},lastLogin:new Date(0)});try{yield rt(e.cloud.options.databaseUrl,o,e.cloud.options.fetchTokens||Gi(e),e.cloud.userInteraction,t)}catch(e){if("OAuthRedirectError"===e.name)return!1;throw e}return i!==l.userId&&o.userId!==i&&(yield Wi(e)),yield function(e,t){return r(this,void 0,void 0,function*(){const n=e.table("$logins");yield e.transaction("rw",n,e=>r(this,void 0,void 0,function*(){const e=yield n.toArray();yield Promise.all(e.filter(e=>e.userId!==t.userId&&e.isLoggedIn).map(e=>(e.isLoggedIn=!1,n.put(e)))),t.isLoggedIn=!0,t.lastLogin=new Date;try{yield t.save()}catch(e){try{"DataCloneError"===e.name&&(Qi("debug","Login context property names:",Object.keys(t)),Qi("debug","Login context property names:",Object.keys(t)),Qi("debug","Login context:",t),Qi("debug","Login context JSON:",JSON.stringify(t)))}catch(e){}throw e}})),yield Fi(e.cloud.currentUser,e=>e.userId===t.userId)})}(e,o),y(e,"pull"),o.userId!==i})}const Zi="undefined"!=typeof InstallTrigger,eo="undefined"!=typeof navigator&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\/|Edge\//.test(navigator.userAgent),to=eo?[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]:NaN,no=eo&&to<=605||Zi,ro="undefined"!=typeof self&&"clients"in self&&!self.document;const{toString:so}={};function io(e){return so.call(e).slice(8,-1)}function oo(e,t){var n;return"delete"===t.type?t.keys:(null===(n=t.keys)||void 0===n?void 0:n.slice())||t.values.map(e.extractKey)}function 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 lo=/b|c|d|f|g|h|j|k|l|m|n|p|q|r|s|t|v|x|y|z/i;function ao(e){return e>="A"&&e<="Z"}let uo=0;function ho(e,t){const n=new Uint8Array(18),r=new Uint8Array(n.buffer,0,6),s=Date.now();uo>=s?++uo:uo=s,r[0]=uo/1099511627776,r[1]=uo/4294967296,r[2]=uo/16777216,r[3]=uo/65536,r[4]=uo/256,r[5]=uo;const i=new Uint8Array(n.buffer,6);crypto.getRandomValues(i);return e+yt(new Uint8Array(n.buffer))+(t||"")}function fo(t){return{stack:"dbcore",name:"idGenerationMiddleware",level:1,create:n=>Object.assign(Object.assign({},n),{table:r=>{const s=n.table(r);return Object.assign(Object.assign({},s),{mutate:n=>{var i,o;const 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=t.cloud.schema)||void 0===i?void 0:i[r];if(null==c?void 0:c.generatedGlobalId){if((null===(o=t.cloud.options)||void 0===o?void 0:o.databaseUrl)&&!t.initiallySynced){const e=oo(s.schema.primaryKey,n);return s.getMany({keys:e,trans:n.trans,cache:"immutable"}).then(t=>{if(t.length<e.length)throw new Error("Unable to create new objects without an initial sync having been performed.");return s.mutate(n)})}return function(n,i){let o=null;const c=oo(s.schema.primaryKey,n);return c.forEach((l,a)=>{if(void 0===l){const r=n.values[a].realmId||t.cloud.currentUserId,l=r.substr(r.length-3);c[a]=ho(i,l),s.schema.primaryKey.outbound||(o||(o=n.values.slice()),o[a]=e.deepClone(o[a]),e.setByKeyPath(o[a],s.schema.primaryKey.keyPath,c[a]))}else if("string"!=typeof l||!l.startsWith(i)&&!l.startsWith("#"+i))throw new e.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){oo(s.schema.primaryKey,n).forEach((t,n)=>{if(!j(t)){const n=Array.isArray(t)?t.map(io).join(","):io(t);throw new e.ConstraintError(`Invalid primary key type ${n} for table ${r}. Tables marked for sync has primary keys of type string or Array of string (and optional numbers)`)}})}}return s.mutate(n)}})}})}}let po=0;function go(e,t){return function(n){const{readers:r,writers:s}=n.trans[t]||(n.trans[t]={writers:[],readers:[]}),i=s.length,o=(i>0?s[i-1].then(()=>e(n),()=>e(n)):e(n)).finally(()=>{r.splice(r.indexOf(o))});return r.push(o),o}}function yo(e,t){return function(n){const{readers:r,writers:s}=n.trans[t]||(n.trans[t]={writers:[],readers:[]});let i=(s.length>0?s[s.length-1].then(()=>e(n),()=>e(n)):r.length>0?(o=r,new Promise(e=>{0===o.length&&e([]);let t=o.length;const n=new Array(t);o.forEach((r,s)=>Promise.resolve(r).then(e=>n[s]={status:"fulfilled",value:e},e=>n[s]={status:"rejected",reason:e}).then(()=>--t||e(n)))})).then(()=>e(n)):e(n)).finally(()=>{s.shift()});var o;return s.push(i),i}}const mo=new t.BehaviorSubject(new Set);function vo(e){var t,n,r,s;return(null===(t=e.cloud.options)||void 0===t?void 0:t.disableEagerSync)||"ok"!==(null===(r=null===(n=e.cloud.currentUser.value)||void 0===n?void 0:n.license)||void 0===r?void 0:r.status)||!(null===(s=e.cloud.options)||void 0===s?void 0:s.databaseUrl)}function bo({currentUserObservable:t,db:n}){return{stack:"dbcore",name:"MutationTrackingMiddleware",level:1,create:r=>{const s=new Set(r.schema.tables.map(e=>e.name)),i=r.schema.tables.filter(e=>!/^\$/.test(e.name)),o=new Map;for(const e of i){const t=`$${e.name}_mutations`;s.has(t)&&o.set(e.name,r.table(t))}return Object.assign(Object.assign({},r),{transaction:(e,s)=>{let i;if("readwrite"===s){const t=e.filter(e=>{var t,r;return null===(r=null===(t=n.cloud.schema)||void 0===t?void 0:t[e])||void 0===r?void 0:r.markedForSync}).map(e=>S(e));i=r.transaction([...e,...t],s)}else i=r.transaction(e,s);if("readwrite"===s){i.txid=O(16),i.opCount=0,i.currentUser=t.value,mo.value.add(i),mo.next(mo.value);const e=()=>{i.removeEventListener("complete",r),i.removeEventListener("error",e),i.removeEventListener("abort",e),mo.value.delete(i),mo.next(mo.value)},r=()=>{i.mutationsAdded&&!vo(n)&&y(n,"push"),e()};i.addEventListener("complete",r),i.addEventListener("error",e),i.addEventListener("abort",e)}return i},table:t=>{const s=r.table(t);if(/^\$/.test(t))return t.endsWith("_mutations")?Object.assign(Object.assign({},s),{mutate:e=>("add"!==e.type&&"put"!==e.type||(e.trans.mutationsAdded=!0),s.mutate(e))}):"$logins"===t?Object.assign(Object.assign({},s),{mutate:e=>s.mutate(e).then(t=>(e.trans.mutationsAdded=!0,t)).catch(e=>Promise.reject(e))}):s;const{schema:i}=s,c=o.get(t);return c?function(e){const t="$lock"+ ++po;return Object.assign(Object.assign({},e),{count:go(e.count,t),get:go(e.get,t),getMany:go(e.getMany,t),openCursor:go(e.openCursor,t),query:go(e.query,t),mutate:yo(e.mutate,t)})}(Object.assign(Object.assign({},s),{mutate:e=>{var r,o,c;const a=e.trans;return a.txid?a.disableChangeTracking?s.mutate(e):(null===(o=null===(r=n.cloud.schema)||void 0===r?void 0:r[t])||void 0===o?void 0:o.markedForSync)&&(null===(c=a.currentUser)||void 0===c?void 0:c.isLoggedIn)?"deleteRange"===e.type?s.query({query:{range:e.range,index:i.primaryKey},trans:e.trans,values:!1}).then(t=>l({type:"delete",keys:t.result,trans:e.trans,criteria:{index:null,range:e.range}})):l(e):s.mutate(e):s.mutate(e)}})):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[t],{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(t=>{var n;const{numFailures:s,failures:o}=t;let l="delete"===f?r.keys:t.results,y="values"in r?r.values:[],m="changeSpec"in r?r.changeSpec:void 0,v="updates"in r?r.updates:void 0,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 t;if(v){let t=v.changeSpecs.map(g),n={keys:[],changeSpecs:[]};const r=new e.RangeSet;let s=!1;if(!b){for(let e=0,i=t.length;e<i;++e)Object.keys(t[e]).length>0?(n.keys.push(v.keys[e]),n.changeSpecs.push(t[e]),r.addKey(v.keys[e])):s=!0;if(v=n,s){let e=[],t=[];for(let n=0,s=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,t)):t})}}})}}}function wo(e,t){return function(n,r){var s;const i=Object.assign(Object.assign({},Pi),n);Object.keys(Pi).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=Pi[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(Pi[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)(lo.test(e[t])||ao(e[t]))&&(n+=e[t].toLowerCase());for(;t.has(n);){if(/\d/g.test(n)){if(n=n.substr(0,n.length-1)+(n[n.length-1]+1),!(n.length>3))continue;n=n.substr(0,3)}else if(n.length<3){n+="2";continue}let e=1,r=n;for(;t.has(r)&&e<8;)r=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,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 _o(e,t,n){return"undefined"!=typeof navigator&&navigator.locks?navigator.locks.request(e.name+"|"+t,n):n()}const ko=new t.BehaviorSubject(!0),So=new t.BehaviorSubject(!0);ko.pipe(n.switchMap(e=>e?t.of(!0):t.of(!1).pipe(n.delay(2e4))),n.distinctUntilChanged()).subscribe(So);const xo="undefined"!=typeof document?t.fromEvent(document,"visibilitychange"):t.of({}),Eo=xo.pipe(n.filter(()=>"hidden"===document.visibilityState)),Co=xo.pipe(n.filter(()=>"visible"===document.visibilityState)),Io="undefined"!=typeof window?t.merge(Co,t.fromEvent(window,"mousedown"),t.fromEvent(window,"mousemove"),t.fromEvent(window,"keydown"),t.fromEvent(window,"wheel"),t.fromEvent(window,"touchmove")):t.of({});"undefined"!=typeof document&&t.merge(t.of(!0),Eo,Io).pipe(n.map(()=>"visible"===document.visibilityState),n.tap(e=>{ko.value!==e&&ko.next(e)}),n.switchMap(e=>e?t.of(0).pipe(n.delay(16e4),n.tap(()=>ko.next(!1))):t.of(0))).subscribe(()=>{});class Oo extends Error{constructor(){super(...arguments),this.name="TokenExpiredError"}}const Do=new WeakMap,Ao=3e4;class Uo extends Zt{constructor(e){super(),this.doc=e,this.clientID=e.clientID,this.states=new Map,this.meta=new Map,this._checkInterval=setInterval(()=>{const e=sn();null!==this.getLocalState()&&15e3<=e-this.meta.get(this.clientID).lastUpdated&&this.setLocalState(this.getLocalState());const t=[];this.meta.forEach((n,r)=>{r!==this.clientID&&Ao<=e-n.lastUpdated&&this.states.has(r)&&t.push(r)}),t.length>0&&To(this,t,"timeout")},$(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:sn()});const i=[],o=[],c=[],l=[];null===e?l.push(t):null==s?null!=e&&i.push(t):(o.push(t),wn(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 To=(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:sn()})}r.push(s)}}r.length>0&&(e.emit("change",[{added:[],updated:[],removed:r},n]),e.emit("update",[{added:[],updated:[],removed:r},n]))},jo=new WeakMap;function Lo(e){let n=jo.get(e);return n||(n=new t.Subject,jo.set(e,n)),n}class Po extends t.Observable{constructor(e,t,n,r,s,i,o,c){super(l=>new $o(e,t,n,r,s,c,l,i,o))}}let Ro=0;class $o extends t.Subscription{constructor(e,t,n,r,s,i,o,c,l){super(()=>this.teardown()),this.id=++Ro,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 r(this,void 0,void 0,function*(){if(this.lastServerActivity=new Date,this.pauseUntil&&this.pauseUntil>new Date)return;if(this.ws)throw new Error("Called connect() when a connection is already open");if(!this.databaseUrl)throw new Error("Cannot connect without a database URL");if(this.closed)return;const n=this.user.accessTokenExpiration;if(n&&n<new Date)return void this.subscriber.error(new Oo);this.webSocketStatus.next("connecting"),this.pinger=setInterval(()=>r(this,void 0,void 0,function*(){if(this.closed)this.teardown();else if(this.ws)try{this.ws.send(JSON.stringify({type:"ping"})),setTimeout(()=>{this.pinger&&(this.closed?this.teardown():this.lastServerActivity<new Date(Date.now()-2e4)&&this.reconnect())},2e4)}catch(e){this.reconnect()}else this.reconnect()}),3e4);const s=new URL(this.databaseUrl);s.protocol="http:"===s.protocol?"ws":"wss";const i=new URLSearchParams;if(this.subscriber.closed)return;i.set("v","2"),this.rev&&i.set("rev",this.rev),this.yrev&&i.set("yrev",this.yrev),i.set("realmsHash",this.realmSetHash),i.set("clientId",this.clientIdentity),i.set("dxcv",this.db.cloud.version),this.user.accessToken&&i.set("token",this.user.accessToken);const o=this.ws=new WebSocket(`${s}/changes?${i}`);o.binaryType="arraybuffer",o.onclose=e=>{this.pinger&&this.reconnect()},o.onmessage=e=>{if(this.pinger){this.lastServerActivity=new Date;try{const t="string"==typeof e.data?jt.parse(e.data):function(e){const t=new Ue(e),n=Me(t);if("outdated-server-rev"===n)return{type:n};if("y-complete-sync-done"===n)return{type:n,yServerRev:Me(t)};const r=Me(t),s=Me(t);switch(n){case"u-ack":case"u-reject":return{type:n,table:r,prop:s,i:Number(Be(t))};default:{const e=We(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:Le(t)};case"doc-open":return{type:n,table:r,prop:s,k:e,serverRev:We(t),sv:We(t)};case"sv":return{type:n,table:r,prop:s,k:e,sv:Le(t)};case"u-c":return{type:n,table:r,prop:s,k:e,u:Le(t),i:Number(Be(t))};case"u-s":return{type:n,table:r,prop:s,k:e,u:Le(t),r:t.pos<t.arr.length&&Me(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=Ci.getDocCache(this.db.dx).find(t.table,t.k,t.prop);if(e){const n=(e=>Do.get(e))(e);n&&((e,t,n)=>{const r=Te(t),s=sn(),i=[],o=[],c=[],l=[],a=Re(r);for(let t=0;t<a;t++){const t=Re(r);let n=Re(r);const a=JSON.parse(Me(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&&(wn(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=Ci.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?Ii([t],this.db).then(e=>r(this,[e],void 0,function*({resyncNeeded:e,yServerRevision:n,receivedUntils:r}){if(n&&(yield this.db.$syncState.update("syncState",{yServerRevision:n})),"u-s"===t.type&&r){const e=pi(this.db,t.table,t.prop);if(e){const t=r[e.name];t&&(yield e.update(Jt,{receivedUntil:t}))}}e&&(yield this.db.cloud.sync({purpose:"pull",wait:!0}))})):this.subscriber.next(t)}catch(e){this.subscriber.error(e)}}};try{let n=!1;yield new Promise((e,t)=>{o.onopen=t=>{n=!0,e(null)},o.onerror=e=>{if(n)this.reconnect();else{const n=e.error||new Error("WebSocket Error");this.subscriber.error(n),this.webSocketStatus.next("error"),t(n)}}}),this.subscriptions.add(this.messageProducer.subscribe(e=>{var t,n;this.closed||("ready"===e.type&&"connected"!==this.webSocketStatus.value&&this.webSocketStatus.next("connected"),"ready"===e.type?(this.rev=e.rev,null===(t=this.ws)||void 0===t||t.send(jt.stringify(e))):null===(n=this.ws)||void 0===n||n.send(function(e){const t=new se;switch(fe(t,e.type),"table"in e&&fe(t,e.table),"prop"in e&&fe(t,e.prop),e.type){case"u-ack":case"u-reject":me(t,BigInt(e.i));break;case"outdated-server-rev":break;case"y-complete-sync-done":fe(t,e.yServerRev);break;default:switch(be(t,e.k),e.type){case"aware":ge(t,e.u);break;case"doc-open":be(t,e.serverRev),be(t,e.sv);break;case"doc-close":break;case"sv":ge(t,e.sv);break;case"u-c":ge(t,e.u),me(t,BigInt(e.i));break;case"u-s":ge(t,e.u),fe(t,e.r||"")}}return oe(t)}(e)))})),this.user.isLoggedIn&&!vo(this.db)&&this.subscriptions.add(function(n){const s=C(n.tables.filter(e=>{var t,r;return(null===(r=null===(t=n.cloud.schema)||void 0===t?void 0:t[e.name])||void 0===r?void 0:r.markedForSync)&&e.schema.yProps}).map(e=>e.schema.yProps.map(t=>({table:e.name,ydocProp:t.prop,updatesTable:t.updatesTable}))));return t.merge(...s.map(({table:s,ydocProp:i,updatesTable:o})=>{const c=n.table(o);return t.from(c.get(Jt)).pipe(t.switchMap(n=>{let o=(null==n?void 0:n.unsentFrom)||1;return t.from(e.liveQuery(()=>r(this,void 0,void 0,function*(){return(yield qt(c,o)).filter(e=>e.f&&1&e.f).map(e=>({type:"u-c",table:s,prop:i,k:e.k,u:e.u,i:e.i}))}))).pipe(t.tap(e=>{e.length>0&&(o=e.at(-1).i+1)}))}))})).pipe(t.mergeMap(e=>e))}(this.db).subscribe(this.db.messageProducer))}catch(e){this.pauseUntil=new Date(Date.now()+6e4)}})}}class Mo extends Error{constructor(e){super("expired"===e?"License expired":"deactivated"===e?"User deactivated":"Invalid license"),this.name="InvalidLicenseError",e&&(this.license=e)}}function No(e){return r(this,void 0,void 0,function*(){var e;yield(e=3e3,new Promise(t=>setTimeout(t,e))),yield t.firstValueFrom(Io)})}function Bo(e){return r(this,void 0,void 0,function*(){var t;return!(!(null===(t=e.cloud.options)||void 0===t?void 0:t.databaseUrl)||!e.cloud.schema)&&(yield Ai(e,e.cloud.options,e.cloud.schema,{justCheckIfNeeded:!0}))})}const Fo=new WeakMap;function Wo(e,t,n,s){const i=Fo.get(e);if(i){if(i.pull||"push"===(null==s?void 0:s.purpose))return i.promise;{let r=!1;const o=e.cloud.syncState.subscribe(e=>{"pulling"===e.phase&&(r=!0)});return i.promise.then(()=>{o.unsubscribe()}).catch(e=>(o.unsubscribe(),Promise.reject(e))).then(()=>{if(!r)return Wo(e,t,n,s)})}}const o=function(){return r(this,void 0,void 0,function*(){try{yield Nt(e),yield _o(e,Di,()=>Ai(e,t,n,s)),Fo.delete(e)}catch(t){throw Fo.delete(e),t}})}();return Fo.set(e,{promise:o,pull:"push"!==(null==s?void 0:s.purpose)}),o}function Vo(e,t,n){let r=null,s={cancelled:!1},i=0,o=0;function c(r=1){setTimeout(()=>{const u=l?"pull":"push";o=Date.now(),Wo(e,t,n,{cancelToken:s,retryImmediatelyOnFetchError:!0,purpose:u}).then(()=>{if(s.cancelled)h();else if(l||a)return l=!1,a=!1,c();d=!1,i=0,o=0}).catch(e=>{if(s.cancelled)h(),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=e=>{s.cancelled||("pull"===e&&(l=!0),"push"===e&&(a=!0),d?i||o>0&&Date.now():(d=!0,c()))},h=()=>{s.cancelled=!0,r&&r.unsubscribe()};return{start:()=>{r=e.localSyncEvent.subscribe(({purpose:e})=>{u(e||"pull")})},stop:h}}function Ho(e,t){if(e&&t&&t.unsyncedTables)for(const n of t.unsyncedTables)e[n]&&(e[n].markedForSync=!1)}var Ko,zo,Jo,qo,Go,Yo,Qo,Xo,Zo,ec,tc,nc={},rc=[],sc=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,ic=Array.isArray;function oc(e,t){for(var n in t)e[n]=t[n];return e}function cc(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function lc(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?Ko.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 ac(e,o,r,s,null)}function ac(e,t,n,r,s){var i={type:e,props:t,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:null==s?++Jo:s,__i:-1,__u:0};return null==s&&null!=zo.vnode&&zo.vnode(i),i}function dc(e){return e.children}function uc(e,t){this.props=e,this.context=t}function hc(e,t){if(null==t)return e.__?hc(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?hc(e):null}function fc(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 fc(e)}}function pc(e){(!e.__d&&(e.__d=!0)&&qo.push(e)&&!gc.__r++||Go!=zo.debounceRendering)&&((Go=zo.debounceRendering)||Yo)(gc)}function gc(){for(var e,t,n,r,s,i,o,c=1;qo.length;)qo.length>c&&qo.sort(Qo),e=qo.shift(),c=qo.length,e.__d&&(n=void 0,r=void 0,s=(r=(t=e).__v).__e,i=[],o=[],t.__P&&((n=oc({},r)).__v=r.__v+1,zo.vnode&&zo.vnode(n),kc(t.__P,n,r,t.__n,t.__P.namespaceURI,32&r.__u?[s]:null,i,null==s?hc(r):s,!!(32&r.__u),o),n.__v=r.__v,n.__.__k[n.__i]=n,xc(i,n,o),r.__e=r.__=null,n.__e!=s&&fc(n)));gc.__r=0}function yc(e,t,n,r,s,i,o,c,l,a,d){var u,h,f,p,g,y,m,v=r&&r.__k||rc,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]=ac(null,o,null,null,null):ic(o)?o=e.__k[i]=ac(dc,{children:o},null,null,null):null==o.constructor&&o.__b>0?o=e.__k[i]=ac(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=vc(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=hc(c)),Oc(c,c));return r}(n,t,v,l,b),u=0;u<b;u++)null!=(f=n.__k[u])&&(h=-1==f.__i?nc:v[f.__i]||nc,f.__i=u,y=kc(e,f,h,s,i,o,c,l,a,d),p=f.__e,f.ref&&h.ref!=f.ref&&(h.ref&&Ic(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=mc(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 mc(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=mc(s[i],t,n,r));return t}e.__e!=t&&(r&&(t&&e.type&&!t.parentNode&&(t=hc(e)),n.insertBefore(e.__e,t||null)),t=e.__e);do{t=t&&t.nextSibling}while(null!=t&&8==t.nodeType);return t}function vc(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 bc(e,t,n){"-"==t[0]?e.setProperty(t,null==n?"":n):e[t]=null==n?"":"number"!=typeof n||sc.test(t)?n:n+"px"}function wc(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||bc(e.style,t,"");if(n)for(t in n)r&&n[t]==r[t]||bc(e.style,t,n[t])}else if("o"==t[0]&&"n"==t[1])i=t!=(t=t.replace(Xo,"$1")),o=t.toLowerCase(),t=o in e||"onFocusOut"==t||"onFocusIn"==t?o.slice(2):t.slice(2),e.l||(e.l={}),e.l[t+i]=n,n?r?n.u=r.u:(n.u=Zo,e.addEventListener(t,i?tc:ec,i)):e.removeEventListener(t,i?tc:ec,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 _c(e){return function(t){if(this.l){var n=this.l[t.type+e];if(null==t.t)t.t=Zo++;else if(t.t<n.u)return;return n(zo.event?zo.event(t):t)}}}function kc(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=zo.__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 uc(m,w),u.constructor=I,u.render=Dc),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=oc({},u.__s)),oc(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=zo.__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=oc(oc({},r),u.getChildContext())),v&&!h&&null!=u.getSnapshotBeforeUpdate&&(g=u.getSnapshotBeforeUpdate(f,p)),E=d,null!=d&&d.type===dc&&null==d.key&&(E=Ec(d.props.children)),c=yc(e,ic(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--;)cc(i[C]);Sc(t)}else t.__e=n.__e,t.__k=n.__k,e.then||Sc(t);zo.__e(e,t,n)}else null==i&&t.__v==n.__v?(t.__k=n.__k,t.__e=n.__e):c=t.__e=Cc(n.__e,t,n,r,s,i,o,l,a);return(d=zo.diffed)&&d(t),128&t.__u?void 0:c}function Sc(e){e&&e.__c&&(e.__c.__e=!0),e&&e.__k&&e.__k.forEach(Sc)}function xc(e,t,n){for(var r=0;r<n.length;r++)Ic(n[r],n[++r],n[++r]);zo.__c&&zo.__c(t,e),e.some(function(t){try{e=t.__h,t.__h=[],e.some(function(e){e.call(t)})}catch(e){zo.__e(e,t.__v)}})}function Ec(e){return"object"!=typeof e||null==e||e.__b&&e.__b>0?e:ic(e)?e.map(Ec):oc({},e)}function Cc(e,t,n,r,s,i,o,c,l){var a,d,u,h,f,p,g,y=n.props||nc,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&&(zo.__m&&zo.__m(t,i),c=!1),i=null}if(null==v)y===m||c&&e.data==m||(e.data=m);else{if(i=i&&Ko.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;wc(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||wc(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=""),yc("template"==t.type?e.content:e,ic(h)?h:[h],t,n,r,"foreignObject"==v?"http://www.w3.org/1999/xhtml":s,i,o,i?i[0]:n.__k&&hc(n,0),c,l),null!=i)for(a=i.length;a--;)cc(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])&&wc(e,a,p,y[a],s),a="checked",null!=g&&g!=e[a]&&wc(e,a,g,y[a],s))}return e}function Ic(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){zo.__e(e,n)}}function Oc(e,t,n){var r,s;if(zo.unmount&&zo.unmount(e),(r=e.ref)&&(r.current&&r.current!=e.__e||Ic(r,null,t)),null!=(r=e.__c)){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(e){zo.__e(e,t)}r.base=r.__P=null}if(r=e.__k)for(s=0;s<r.length;s++)r[s]&&Oc(r[s],t,n||"function"!=typeof e.type);n||cc(e.__e),e.__c=e.__=e.__e=void 0}function Dc(e,t,n){return this.constructor(e,n)}function Ac(e,t,n){var r,s,i;t==document&&(t=document.documentElement),zo.__&&zo.__(e,t),r=!1?null:t.__k,s=[],i=[],kc(t,e=t.__k=lc(dc,null,[e]),r||nc,nc,t.namespaceURI,r?null:t.firstChild?Ko.call(t.childNodes):null,s,r?r.__e:t.firstChild,false,i),xc(s,e,i)}Ko=rc.slice,zo={__e:function(e,t,n,r){for(var s,i,o;t=t.__;)if((s=t.__c)&&!s.__)try{if((i=s.constructor)&&null!=i.getDerivedStateFromError&&(s.setState(i.getDerivedStateFromError(e)),o=s.__d),null!=s.componentDidCatch&&(s.componentDidCatch(e,r||{}),o=s.__d),o)return s.__E=s}catch(t){e=t}throw e}},Jo=0,uc.prototype.setState=function(e,t){var n;n=null!=this.__s&&this.__s!=this.state?this.__s:this.__s=oc({},this.state),"function"==typeof e&&(e=e(oc({},n),this.props)),e&&oc(n,e),null!=e&&this.__v&&(t&&this._sb.push(t),pc(this))},uc.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),pc(this))},uc.prototype.render=dc,qo=[],Yo="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,Qo=function(e,t){return e.__v.__b-t.__v.__b},gc.__r=0,Xo=/(PointerCapture)$|Capture$/i,Zo=0,ec=_c(!1),tc=_c(!0);const Uc={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 Tc({children:e,className:t}){return lc("div",{className:`dexie-dialog ${t||""}`},lc("div",{style:Uc.Darken}),lc("div",{style:Uc.DialogOuter},lc("div",{style:Uc.DialogInner},e)))}var jc,Lc,Pc,Rc,$c=0,Mc=[],Nc=zo,Bc=Nc.__b,Fc=Nc.__r,Wc=Nc.diffed,Vc=Nc.__c,Hc=Nc.unmount,Kc=Nc.__;function zc(e,t){Nc.__h&&Nc.__h(Lc,e,$c||t),$c=0;var n=Lc.__H||(Lc.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({}),n.__[e]}function Jc(e){return $c=1,function(e,t){var n=zc(jc++,2);if(n.t=e,!n.__c&&(n.__=[tl(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.__}(tl,e)}function qc(e){return $c=5,function(e,t){var n=zc(jc++,7);return el(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}(function(){return{current:e}},[])}function Gc(){for(var e;e=Mc.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(Xc),e.__H.__h.forEach(Zc),e.__H.__h=[]}catch(t){e.__H.__h=[],Nc.__e(t,e.__v)}}Nc.__b=function(e){Lc=null,Bc&&Bc(e)},Nc.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),Kc&&Kc(e,t)},Nc.__r=function(e){Fc&&Fc(e),jc=0;var t=(Lc=e.__c).__H;t&&(Pc===Lc?(t.__h=[],Lc.__h=[],t.__.forEach(function(e){e.__N&&(e.__=e.__N),e.u=e.__N=void 0})):(t.__h.forEach(Xc),t.__h.forEach(Zc),t.__h=[],jc=0)),Pc=Lc},Nc.diffed=function(e){Wc&&Wc(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(1!==Mc.push(t)&&Rc===Nc.requestAnimationFrame||((Rc=Nc.requestAnimationFrame)||Qc)(Gc)),t.__H.__.forEach(function(e){e.u&&(e.__H=e.u),e.u=void 0})),Pc=Lc=null},Nc.__c=function(e,t){t.some(function(e){try{e.__h.forEach(Xc),e.__h=e.__h.filter(function(e){return!e.__||Zc(e)})}catch(n){t.some(function(e){e.__h&&(e.__h=[])}),t=[],Nc.__e(n,e.__v)}}),Vc&&Vc(e,t)},Nc.unmount=function(e){Hc&&Hc(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.forEach(function(e){try{Xc(e)}catch(e){t=e}}),n.__H=void 0,t&&Nc.__e(t,n.__v))};var Yc="function"==typeof requestAnimationFrame;function Qc(e){var t,n=function(){clearTimeout(r),Yc&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,35);Yc&&(t=requestAnimationFrame(n))}function Xc(e){var t=Lc,n=e.__c;"function"==typeof n&&(e.__c=void 0,n()),Lc=t}function Zc(e){var t=Lc;e.__c=e.__(),Lc=t}function el(e,t){return!e||e.length!==t.length||t.some(function(t,n){return t!==e[n]})}function tl(e,t){return"function"==typeof t?t(e):t}function nl({option:e,onClick:t}){const{displayName:n,iconUrl:r,styleHint:s}=e,i=function(e){const t=Object.assign({},Uc.ProviderButton);if(!e)return t;switch(e){case"google":return Object.assign(Object.assign({},t),Uc.ProviderGoogle);case"github":return Object.assign(Object.assign({},t),Uc.ProviderGitHub);case"microsoft":return Object.assign(Object.assign({},t),Uc.ProviderMicrosoft);case"apple":return Object.assign(Object.assign({},t),Uc.ProviderApple);case"otp":return Object.assign({},Uc.OtpButton);case"custom-oauth2":return Object.assign(Object.assign({},t),Uc.ProviderCustom);default:return t}}(s);return lc("button",{type:"button",style:i,onClick:t,class:"dxc-option-btn"+(s?` dxc-option-${s}`:""),"aria-label":n},r&&lc("img",{src:r,alt:"",style:Uc.ProviderButtonIcon,"aria-hidden":"true"}),lc("span",{style:Uc.ProviderButtonText},n))}function rl(){return lc("div",{style:Uc.Divider},lc("div",{style:Uc.DividerLine}),lc("span",{style:Uc.DividerText},"or"),lc("div",{style:Uc.DividerLine}))}function sl({title:e,alerts:t,fields:n,options:r,submitLabel:s,cancelLabel:i,onCancel:o,onSubmit:c}){const[l,a]=Jc({}),d=qc(null);!function(e,t){var n=zc(jc++,4);!Nc.__s&&el(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 lc(Tc,{className:"dxc-login-dlg"},lc(dc,null,lc("h3",{style:Uc.WindowHeader},e),t.map((e,t)=>lc("p",{key:t,style:Uc.Alert[e.type]},function({message:e,messageCode:t,messageParams:n}){return e.replace(/\{\w+\}/gi,e=>n[e.substring(1,e.length-1)])}(e))),f&&lc("div",{class:"dxc-options"},g?Array.from(p.entries()).map(([e,t],n)=>lc(dc,{key:e},n>0&&lc(rl,null),t.map(e=>lc(nl,{key:`${e.name}-${e.value}`,option:e,onClick:()=>y(e)})))):r.map(e=>lc(nl,{key:`${e.name}-${e.value}`,option:e,onClick:()=>y(e)}))),f&&h&&lc(rl,null),h&&lc("form",{onSubmit:e=>{e.preventDefault(),c(l)}},u.map(([e,{type:t,label:n,placeholder:r}],s)=>lc("label",{style:Uc.Label,key:s},n?`${n}: `:"",lc("input",{ref:0===s?d:void 0,type:t,name:e,autoComplete:"on",style:Uc.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)}}))))),lc("div",{style:Uc.ButtonsDiv},lc(dc,null,s&&(h||!f&&!h)&&lc("button",{type:"submit",style:Uc.PrimaryButton,onClick:()=>c(l)},s),i&&lc("button",{style:Uc.Button,onClick:o},i))))}class il extends uc{constructor(e){super(e),this.observer=e=>this.setState({userInteraction:e}),this.state={userInteraction:void 0}}componentDidMount(){this.subscription=t.from(this.props.db.cloud.userInteraction).subscribe(this.observer)}componentWillUnmount(){this.subscription&&(this.subscription.unsubscribe(),delete this.subscription)}render(e,{userInteraction:t}){return t?lc(sl,Object.assign({},t)):null}}function ol(e){const t=new WeakMap;return n=>{let r=t.get(n);return r||(r=e(n),t.set(n,r)),r}}const cl=ol(e=>new t.BehaviorSubject(Object.assign(Object.assign({},l),{isLoading:!0})));function ll(e,n){let r=n,s=t.from(e).pipe(t.map(e=>r=e),t.share({resetOnRefCountZero:()=>t.timer(1e3)}));const i=new t.Observable(e=>{let t=!1;const n=s.subscribe({next(n){t=!0,e.next(n)},error(t){e.error(t)},complete(){e.complete()}});return t||n.closed||e.next(r),n});return i.getValue=()=>r,i}const al=ol(t=>ll(e.liveQuery(()=>t.roles.where({realmId:"rlm-public"}).toArray().then(e=>{const t={};for(const n of e.slice().sort((e,t)=>(e.sortOrder||0)-(t.sortOrder||0)))t[n.name]=n;return t})),{})),dl=ol(t=>ll(cl(t._novip).pipe(n.switchMap(n=>e.liveQuery(()=>t.transaction("r","realms","members",()=>Promise.all([t.members.where({userId:n.userId}).toArray(),t.realms.toArray(),n.userId]).then(([e,t,n])=>({selfMembers:e,realms:t,userId:n})))))),{selfMembers:[],realms:[],get userId(){return t.cloud.currentUserId}}));function ul(...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 hl=ol(e=>function(e,n){let r;const s=e.pipe(t.map(e=>r=n(e)));return s.getValue=()=>void 0!==r?r:r=n(e.getValue()),s}(ll(t.combineLatest([dl(e._novip),al(e._novip)]).pipe(n.map(([{selfMembers:e,realms:t,userId:n},r])=>({selfMembers:e,realms:t,userId:n,globalRoles:r}))),{selfMembers:[],realms:[],userId:l.userId,globalRoles:{}}),({selfMembers:e,realms:t,userId:n,globalRoles:r})=>{const s=t.map(t=>{const s=e.filter(e=>e.realmId===t.realmId),i=s.map(e=>e.permissions).filter(e=>e),o=C(s.map(e=>e.roles).filter(e=>e)).map(e=>r[e]).filter(e=>e).map(e=>e.permissions);return Object.assign(Object.assign({},t),{permissions:t.owner===n?{manage:"*"}:ul(...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 fl{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 pl=ol(s=>{const i=cl(s._novip).pipe(n.switchMap(t=>e.liveQuery(()=>s.members.where({email:t.email||""}).toArray()))),o=hl(s._novip),c=dl(s._novip);return ll(t.combineLatest([i,c,o]).pipe(n.map(([e,t,n])=>{const i=(e,t)=>Object.assign(Object.assign({},e),{[t.id]:Object.assign(Object.assign({},t),{realm:n[t.realmId]})}),o=e.reduce(i,{}),c=t.selfMembers.reduce(i,o);return Object.values(c).filter(e=>!e.accepted).map(e=>Object.assign(Object.assign({},e),{accept(){return r(this,void 0,void 0,function*(){yield s.members.update(e.id,{accepted:new Date})})},reject(){return r(this,void 0,void 0,function*(){yield s.members.update(e.id,{rejected:new Date})})}}))})),[])});function gl(n){return s=>{var i;const o=s.doc;if(!o)throw new Error("Internal error: DexieYProvider.createYHandler called without a doc. This is unexpected.");const{parentTable:c}=o.meta||{};if(!(null===(i=n.cloud.schema)||void 0===i?void 0:i[c].markedForSync))return;let l;Object.defineProperty(s,"awareness",{get:()=>l||(l=function(n,s,i){const{parentTable:o,parentId:c,parentProp:l,updatesTable:a}=s.meta,d=new Uo(s),u=Lo(s);return d.on("update",({added:e,updated:t,removed:r},c)=>{const a=e.concat(t).concat(r),u=n.cloud.currentUser.value;if("server"!==c&&u.isLoggedIn&&!vo(n)){const e=((e,t,n=e.states)=>{const r=t.length,s=ie();ae(s,r);for(let i=0;i<r;i++){const r=t[i],o=n.get(r)||null,c=e.meta.get(r).clock;ae(s,r),ae(s,c),fe(s,JSON.stringify(o))}return oe(s)})(d,a);n.messageProducer.next({type:"aware",table:o,prop:l,k:s.meta.parentId,u:e}),i.destroyed&&n.messageProducer.next({type:"doc-close",table:o,prop:l,k:s.meta.parentId})}}),d.on("destroy",()=>{To(d,[s.clientID],"provider destroyed")}),(()=>{r(this,void 0,void 0,function*(){if(i.destroyed)return;let s=!1,d=1;const h=t.combineLatest([n.cloud.webSocketStatus,u.pipe(t.startWith(null))]).subscribe(([e])=>{if(i.destroyed)return;s="connected"===e;const t=n.cloud.currentUser.value;"connected"===e&&t.isLoggedIn&&!vo(n)&&(++d,f().catch(e=>{}))});function f(){return r(this,void 0,void 0,function*(){const t=d,u=n.table(a),h=n.$syncState,[f,p]=yield n.transaction("r",h,u,()=>r(this,void 0,void 0,function*(){const e=yield u.get(Jt),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!==t||!s)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(t=>0===e.cmp(t.k,c)&&!(1&(t.f||0))).toArray();if(!i.destroyed&&d===t&&s){if(y.length>0){const e=$r(y.map(e=>e.u)),t=Pr(e);g.sv=t}n.messageProducer.next(g)}})}i.addCleanupHandler(h)})})(),d}(n,o,s),Do.set(o,l),l)})}}function yl(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 Ki("access_denied",i,c);if(c.toLowerCase().includes("email")&&c.toLowerCase().includes("verif"))throw new Ki("email_not_verified",i,c);throw new Ki("provider_error",i,c)}return s&&i&&o?{code:s,provider:i,state:o}:null}function ml(){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 vl={nameSuffix:!0};function bl(s){const i=s.name,o=cl(s),c=[];let a=!1,d=null,u=null,h=null;s.on("ready",s=>r(this,void 0,void 0,function*(){try{yield function(s){return r(this,void 0,void 0,function*(){var i,l,v,b,w,k,S;f=!1;const x=$i(s);"undefined"!=typeof window&&"undefined"!=typeof document&&((null===(i=x.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),Ac(lc(il,{db:e.vip}),n)):addEventListener("DOMContentLoaded",()=>{t||(document.body.appendChild(n),Ac(lc(il,{db:e.vip}),n))}),{unsubscribe(){try{n.remove()}catch(e){}t=!0},get closed(){return t}}}(s))),x.cloud.isServiceWorkerDB||c.push(function(e){let r=e.cloud.webSocketStatus.value;const s=e.cloud.webSocketStatus.pipe(n.switchMap(e=>{const s=r;r=e;const i=t.of(e);switch(e){case"disconnected":return ko.value?i.pipe(n.debounceTime(500)):i;case"connecting":return"not-started"===s||"error"===s?i:i.pipe(n.debounceTime(4e3));default:return i}}));return t.combineLatest([s,e.syncStateChangedEvent.pipe(n.startWith({phase:"initial"})),cl(e.dx._novip),So]).pipe(n.map(([t,n,r,s])=>{var i;if((null===(i=r.license)||void 0===i?void 0:i.status)&&"ok"!==r.license.status)return{phase:"offline",status:"offline",license:r.license.status};let{phase:o,error: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:Wt?a:"offline",license:"ok"}}))}(x).subscribe(s.cloud.syncState)),c.push(x.syncCompleteEvent.subscribe(m)),x.tables.every(e=>e.core)||function(){throw new e.SchemaError("Version increment needed to allow dexie-cloud change tracking")}();const E="serviceWorker"in navigator?yield navigator.serviceWorker.getRegistrations():[],[C,I]=yield x.transaction("rw",x.$syncState,()=>r(this,void 0,void 0,function*(){var e,t;const{options:n,schema:r}=x.cloud,[s,i,o]=yield Promise.all([x.getOptions(),x.getSchema(),x.getPersistedSyncState()]);if(a){if(!s||JSON.stringify(s)!==JSON.stringify(n)){if(!n)throw new Error("Internal error");const e=Object.assign({},n);delete e.fetchTokens,delete e.awarenessProtocol,yield x.$syncState.put(e,"options")}}else x.cloud.options=s||null;if((null===(e=x.cloud.options)||void 0===e?void 0:e.tryUseServiceWorker)&&"serviceWorker"in navigator&&E.length>0&&!no?x.cloud.usingServiceWorker=!0:((null===(t=x.cloud.options)||void 0===t?void 0:t.tryUseServiceWorker)&&x.cloud.isServiceWorkerDB,x.cloud.usingServiceWorker=!1),Ho(r,x.cloud.options),Ho(i,x.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 x.$syncState.put(e,"schema"),Object.assign(r,e)}}else x.cloud.schema=i||null;return[null==o?void 0:o.initiallySynced,null==o?void 0:o.realms]}));if(C&&x.setInitiallySynced(!0),function(t){var n,r;for(const s of t.tables)if(null===(r=null===(n=t.cloud.schema)||void 0===n?void 0:n[s.name])||void 0===r?void 0:r.markedForSync){if(s.schema.primKey.auto)throw new e.SchemaError(`Table ${s.name} is both autoIncremented and synced. Use db.cloud.configure({unsyncedTables: [${JSON.stringify(s.name)}]}) to blacklist it from sync`);if(!s.schema.primKey.keyPath)throw new e.SchemaError(`Table ${s.name} cannot be both synced and outbound. Use db.cloud.configure({unsyncedTables: [${JSON.stringify(s.name)}]}) to blacklist it from sync`)}}(x),p(),!x.cloud.isServiceWorkerDB){c.push(e.liveQuery(()=>x.getCurrentUser().then(e=>!e.isLoggedIn&&"undefined"!=typeof location&&/dxc-auth\=/.test(location.search)?Object.assign(Object.assign({},e),{isLoading:!0}):e)).subscribe(o)),c.push(e.liveQuery(()=>x.getPersistedSyncState()).subscribe(x.cloud.persistedSyncState)),yield t.firstValueFrom(t.combineLatest([o.pipe(n.skip(1),n.take(1)),x.cloud.persistedSyncState.pipe(n.skip(1),n.take(1))]));const r=gl(x);Ci.on.new.subscribe(r),x.dx.once("close",()=>{Ci.on.new.unsubscribe(r)})}let O=!1,D=yield x.getCurrentUser();if(u&&!x.cloud.isServiceWorkerDB){const e=u;u=null;try{yield Xe(x.cloud.userInteraction,"Authentication Error",{type:"error",messageCode:"GENERIC_ERROR",message:e.message,messageParams:{provider:e.provider||"unknown"}}),ml()}catch(e){}}if(d&&!x.cloud.isServiceWorkerDB){const{code:e,provider:t}=d;d=null;try{O=yield Xi(x,{oauthCode:e,provider:t}),D=yield x.getCurrentUser(),ml()}catch(e){}}const A=null===(l=x.cloud.options)||void 0===l?void 0:l.requireAuth;A&&(x.cloud.isServiceWorkerDB?yield t.firstValueFrom(o.pipe(n.filter(e=>!!e.isLoggedIn),n.take(1))):"object"==typeof A?(!D.isLoggedIn||A.userId&&D.userId!==A.userId||A.email&&D.email!==A.email)&&(O=yield Xi(x,A)):D.isLoggedIn||(O=yield Xi(x))),!D.isLoggedIn||I&&I.includes(D.userId)||(O=!0),h&&h.stop(),h=null,p();const U=(null===(v=x.cloud.options)||void 0===v?void 0:v.databaseUrl)&&(!C||O);U&&(yield function(e,t,n){return r(this,void 0,void 0,function*(){yield _o(e,Di,()=>Ai(e,t,n,{isInitialSync:!0}))})}(x,x.cloud.options,x.cloud.schema),x.setInitiallySynced(!0)),p(),x.cloud.usingServiceWorker&&(null===(b=x.cloud.options)||void 0===b?void 0:b.databaseUrl)?(U||g(x,"push").catch(()=>{}),function(e){return r(this,void 0,void 0,function*(){var t;try{const{periodicSync:n}=yield navigator.serviceWorker.ready;if(n)try{yield n.register(`dexie-cloud:${e.name}`,null===(t=e.cloud.options)||void 0===t?void 0:t.periodicSync)}catch(e){}}catch(e){}})}(x).catch(()=>{})):(null===(w=x.cloud.options)||void 0===w?void 0:w.databaseUrl)&&x.cloud.schema&&!x.cloud.isServiceWorkerDB&&(h=Vo(x,x.cloud.options,x.cloud.schema),h.start(),U||y(x,"push")),p(),x.cloud.isServiceWorkerDB||c.push(t.fromEvent(self,"online").subscribe(()=>{x.syncStateChangedEvent.next({phase:"not-in-sync"}),vo(x)||y(x,"push")}),t.fromEvent(self,"offline").subscribe(()=>{x.syncStateChangedEvent.next({phase:"offline"})})),!(null===(k=x.cloud.options)||void 0===k?void 0:k.databaseUrl)||(null===(S=x.cloud.options)||void 0===S?void 0:S.disableWebSocket)||ro||c.push(function(e){var s;if(!(null===(s=e.cloud.options)||void 0===s?void 0:s.databaseUrl))throw new Error("No database URL to connect WebSocket to");const i=e.messageConsumer.readyToServe.pipe(n.filter(e=>e),n.switchMap(()=>e.getPersistedSyncState()),n.filter(e=>e&&e.serverRevision),n.switchMap(e=>r(this,void 0,void 0,function*(){return{type:"ready",rev:e.serverRevision,realmSetHash:yield _(e)}}))),o=t.merge(i,e.messageProducer);return function s(){return e.cloud.persistedSyncState.pipe(n.filter(e=>null==e?void 0:e.serverRevision),n.take(1),n.switchMap(t=>e.cloud.currentUser.pipe(n.map(e=>[e,t]))),n.switchMap(([e,t])=>So.pipe(n.map(n=>[n?e:null,t]))),n.switchMap(([r,s])=>(null==r?void 0:r.isLoggedIn)&&!(null==s?void 0:s.realms.includes(r.userId))?e.cloud.persistedSyncState.pipe(n.filter(e=>(null==e?void 0:e.realms.includes(r.userId))||!1),n.take(1),n.map(e=>[r,e])):new t.BehaviorSubject([r,s])),n.switchMap(e=>r(this,[e],void 0,function*([e,t]){return[e,yield _(t)]})),n.distinctUntilChanged(([e,t],[n,r])=>e===n&&t===r),n.switchMap(([n,r])=>{var i;return(null===(i=e.cloud.persistedSyncState)||void 0===i?void 0:i.value)?n?new Po(e,e.cloud.persistedSyncState.value.serverRevision,e.cloud.persistedSyncState.value.yServerRevision,r,e.cloud.persistedSyncState.value.clientIdentity,o,e.cloud.webSocketStatus,n):t.from([]):s()}),n.catchError(i=>"TokenExpiredError"===(null==i?void 0:i.name)?t.of(!0).pipe(n.switchMap(()=>r(this,void 0,void 0,function*(){const t=yield e.getCurrentUser(),n=yield st(e.cloud.options.databaseUrl,t);yield e.table("$logins").update(t.userId,{accessToken:n.accessToken,accessTokenExpiration:n.accessTokenExpiration,claims:n.claims,license:n.license,data:n.data})})),n.switchMap(()=>s())):t.throwError(()=>i)),n.catchError(r=>(e.cloud.webSocketStatus.next("error"),r instanceof Mo?t.throwError(()=>r):t.from(No()).pipe(n.switchMap(()=>s())))))}().subscribe({next:t=>{t&&e.messageConsumer.enqueue(t)},error:e=>{},complete:()=>{}})}(x))})}(s)}catch(e){}}),!0);let f=!1;function p(){if(f)throw new e.DatabaseClosedError}s.once("close",()=>{c.forEach(e=>e.unsubscribe()),c.splice(0,c.length),f=!0,h&&h.stop(),h=null,o.next(l)});const m=new t.Subject;var v;s.cloud={version:"4.3.9",options:Object.assign({},vl),schema:null,get currentUserId(){return o.value.userId||l.userId},currentUser:o,syncState:new t.BehaviorSubject({phase:"initial",status:"not-started"}),events:{syncComplete:m},persistedSyncState:new t.BehaviorSubject(void 0),userInteraction:new t.BehaviorSubject(void 0),webSocketStatus:new t.BehaviorSubject("not-started"),login(e){return r(this,void 0,void 0,function*(){const t=$i(s);yield t.cloud.sync(),yield Xi(t,e)})},invites:pl(s),roles:al(s),configure(e){if(e=s.cloud.options=Object.assign(Object.assign({},s.cloud.options),e),a=!0,e.databaseUrl&&e.nameSuffix&&(s.name=`${i}-${function(e){const t=new URL(e);return"/"===t.pathname?t.hostname.split(".")[0]:t.pathname.split("/")[1]}(e.databaseUrl)}`,$i(s).reconfigure()),Ho(s.cloud.schema,s.cloud.options),"undefined"!=typeof window&&window.location)try{const e=yl();e&&(d={code:e.code,provider:e.provider})}catch(e){e instanceof Ki&&(u=e)}},logout(){return r(this,arguments,void 0,function*({force:e}={}){e?yield Vi($i(s),{deleteUnsyncedData:!0}):yield Wi($i(s))})},getAuthProviders(){return r(this,void 0,void 0,function*(){const e=s.cloud.options;if(!(null==e?void 0:e.databaseUrl))throw new Error("Dexie Cloud not configured. Call db.cloud.configure() first.");const t=!1!==e.socialAuth;return Ji(e.databaseUrl,t)})},sync(){return r(this,arguments,void 0,function*({wait:i,purpose:o}={wait:!0,purpose:"push"}){var c;void 0===i&&(i=!0);const l=$i(s);if("ok"!==((null===(c=l.cloud.currentUser.value.license)||void 0===c?void 0:c.status)||"ok")&&(yield nt(l)),"pull"===o){const e=l.cloud.persistedSyncState.value;if(y(l,o),i){const r=yield t.firstValueFrom(l.cloud.persistedSyncState.pipe(n.filter(t=>null!=(null==t?void 0:t.timestamp)&&(!e||t.timestamp>e.timestamp))));if(null==r?void 0:r.error)throw new Error("Sync error: "+r.error)}}else if(yield Bo(l)){const s=l.cloud.persistedSyncState.value;y(l,o),i&&(yield t.firstValueFrom(t.from(e.liveQuery(()=>r(this,void 0,void 0,function*(){const e=yield Bo(l),t=yield l.getPersistedSyncState();if((null==t?void 0:t.timestamp)!==(null==s?void 0:s.timestamp)&&(null==t?void 0:t.error))throw new Error("Sync error: "+t.error);return e}))).pipe(n.filter(e=>!e))))}})},permissions:(e,t)=>function(e,t,r){if(!t)throw new TypeError("Cannot check permissions of undefined or null. A Dexie Cloud object with realmId and owner expected.");const{owner:s,realmId:i}=t;if(!r){if("function"!=typeof t.table)throw new TypeError("Missing 'table' argument to permissions and table could not be extracted from entity");r=t.table()}const o=hl(e),c=t=>{const n=t[i||e.cloud.currentUserId];return n?new fl(n.permissions,r,void 0===i||i===e.cloud.currentUserId||s===e.cloud.currentUserId):new fl({},r,!s||s===e.cloud.currentUserId)},l=o.pipe(n.map(c));return l.getValue=()=>c(o.getValue()),l}(s._novip,e,t)},s.Version.prototype._parseStoresSpec=e.override(s.Version.prototype._parseStoresSpec,e=>wo(e,s)),s.Table.prototype.newId=function({colocateWith:e}={}){const t=e&&e.substr(e.length-3);return ho(s.cloud.schema[this.name].idPrefix||"",t)},s.Table.prototype.idPrefix=function(){var e,t;return(null===(t=null===(e=this.db.cloud.schema)||void 0===e?void 0:e[this.name])||void 0===t?void 0:t.idPrefix)||""},s.use(bo({currentUserObservable:s.cloud.currentUser,db:$i(s)})),s.use((v=$i(s),{stack:"dbcore",name:"implicitPropSetterMiddleware",level:1,create:e=>Object.assign(Object.assign({},e),{table:t=>{const n=e.table(t);return Object.assign(Object.assign({},n),{mutate:e=>{var r,s,i,o,c,a;const d=e.trans;if(d.disableChangeTracking)return n.mutate(e);const u=null!==(s=null===(r=d.currentUser)||void 0===r?void 0:r.userId)&&void 0!==s?s:l.userId;if((null===(o=null===(i=v.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=u),t.realmId||(t.realmId=u);const r=null===(a=(c=n.schema.primaryKey).extractKey)||void 0===a?void 0:a.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)}})}})})),s.use(fo($i(s)))}bl.version="4.3.9",e.Cloud=bl;const wl=new Map;function _l(e){return e.startsWith("dexie-cloud:")&&e.split(":")[1]}const kl=new Map;function Sl(t,n){let s=kl.get(t+"/"+n);return s||(s=function t(n,s){return r(this,void 0,void 0,function*(){var r;let i=wl.get(n);if(!i){const r=new e(n,{addons:[bl]});if(i=$i(r),i.cloud.isServiceWorkerDB=!0,r.on("versionchange",o),yield i.dx.open(),wl.get(n))return i.close(),yield t(n,s);wl.set(n,i)}if((null===(r=i.cloud.options)||void 0===r?void 0:r.databaseUrl)&&i.cloud.schema)try{yield Wo(i,i.cloud.options,i.cloud.schema,{retryImmediatelyOnFetchError:!0,purpose:s})}catch(t){if(o(),t.name!==e.errnames.NoSuchDatabase)throw t}function o(){return i.dx.on.versionchange.unsubscribe(o),wl.get(i.name)===i&&wl.delete(i.name),i.dx.close(),!1}})}(t,n).then(()=>{kl.delete(t+"/"+n)}).catch(e=>(kl.delete(t+"/"+n),Promise.reject(e))),kl.set(t+"/"+n,s)),s}no||(self.addEventListener("sync",e=>{const t=_l(e.tag);t&&e.waitUntil(Sl(t,"push"))}),self.addEventListener("periodicsync",e=>{const t=_l(e.tag);t&&e.waitUntil(Sl(t,"pull"))}),self.addEventListener("message",e=>{if("dexie-cloud-sync"===e.data.type){const{dbName:t}=e.data,n=(s=1)=>Sl(t,e.data.purpose||"pull").catch(e=>r(void 0,void 0,void 0,function*(){if(3===s)throw e;var t;yield(t=6e4,new Promise(e=>setTimeout(e,t))),n(s+1)}));"waitUntil"in e?e.waitUntil(n().catch(e=>{})):n().catch(e=>{})}}))});
2
2
  //# sourceMappingURL=service-worker.min.js.map