dexie-cloud-addon 4.4.1 → 4.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/modern/DexieCloudOptions.d.ts +2 -0
- package/dist/modern/dexie-cloud-addon.js +24 -13
- package/dist/modern/dexie-cloud-addon.js.map +1 -1
- package/dist/modern/dexie-cloud-addon.min.js +1 -1
- package/dist/modern/dexie-cloud-addon.min.js.map +1 -1
- package/dist/modern/service-worker.js +24 -13
- package/dist/modern/service-worker.js.map +1 -1
- package/dist/modern/service-worker.min.js +1 -1
- package/dist/modern/service-worker.min.js.map +1 -1
- package/dist/umd/dexie-cloud-addon.js +25 -14
- package/dist/umd/dexie-cloud-addon.js.map +1 -1
- package/dist/umd/dexie-cloud-addon.min.js +1 -1
- package/dist/umd/dexie-cloud-addon.min.js.map +1 -1
- package/dist/umd/service-worker.js +25 -14
- package/dist/umd/service-worker.js.map +1 -1
- package/dist/umd/service-worker.min.js +1 -1
- package/dist/umd/service-worker.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -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,u)}}),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,u):d(o[0][2],e)}(s[e](t))}catch(e){d(o[0][3],e)}}function a(e){l("next",e)}function u(e){l("throw",e)}function d(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(w){}const a={},u="undefined"!=typeof self&&self.document&&"undefined"!=typeof navigator&&navigator.serviceWorker;u&&u.ready.then(e=>a.registration=e),"undefined"!=typeof self&&"clients"in self&&!self.document&&addEventListener("message",e=>{var t,n;(null===(n=null===(t=e.data)||void 0===t?void 0:t.type)||void 0===n?void 0:n.startsWith("sw-broadcast-"))&&[...self.clients.matchAll({includeUncontrolled:!0})].forEach(t=>{var n;return t.id!==(null===(n=e.source)||void 0===n?void 0:n.id)&&t.postMessage(e.data)})});class d{constructor(e){this.name=e}subscribe(e){if(!u)return()=>{};const t=t=>{var n;(null===(n=t.data)||void 0===n?void 0:n.type)===`sw-broadcast-${this.name}`&&e(t.data.message)};return u.addEventListener("message",t),()=>u.removeEventListener("message",t)}postMessage(e){var t;"object"==typeof self.clients?[...self.clients.matchAll({includeUncontrolled:!0})].forEach(t=>t.postMessage({type:`sw-broadcast-${this.name}`,message:e})):a.registration&&(null===(t=a.registration.active)||void 0===t||t.postMessage({type:`sw-broadcast-${this.name}`,message:e}))}}const h=globalThis["lbc-events"]||(globalThis["lbc-events"]=new Map);class f extends t.Observable{constructor(e){const t="undefined"==typeof BroadcastChannel?new d(e):new BroadcastChannel(e);super(n=>{function r(e){n.next(e.detail)}function s(e){n.next(e.data)}let i;!function(e,t){h.has(e)?h.get(e).push(t):h.set(e,[t])}(`lbc-${e}`,r);try{t instanceof d?i=t.subscribe(e=>n.next(e)):t.addEventListener("message",s)}catch(e){}return()=>{!function(e,t){const n=h.get(e);if(n){const e=n.indexOf(t);-1!==e&&n.splice(e,1)}}(`lbc-${e}`,r),t instanceof d?i():t.removeEventListener("message",s)}}),this.name=e,this.bc=t}next(e){this.bc.postMessage(e);!function(e){const t=h.get(e.type);t&&t.forEach(t=>{try{t(e)}catch(e){}})}(new CustomEvent(`lbc-${this.name}`,{detail:e}))}}let p=!1;function g(e,t){return r(this,void 0,void 0,function*(){try{const n=yield navigator.serviceWorker.ready;if("push"===t&&n.sync&&(yield n.sync.register(`dexie-cloud:${e.name}`)),!n.active)throw new Error("Failed to trigger sync - there's no active service worker");return void n.active.postMessage({type:"dexie-cloud-sync",dbName:e.name,purpose:t})}catch(e){p||(p=!0)}})}function y(e,t){e.cloud.usingServiceWorker?g(e,t):e.localSyncEvent.next({purpose:t})}const{toString:m}={};const b={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}};class v{constructor(e,t){this.buf=e,this.type=t}}var w;const _=Symbol.for("TSONRef");class k{constructor(e,t,n,r){this.type=e,this.ref=t,this.size=n,this.contentType=r,this[w]=!0,Object.freeze(this)}async resolve(){if(!k.resolver)throw new Error("TSONRef.resolver not configured. Set TSONRef.resolver to a function that fetches blobs.");const e=await k.resolver(this);return this.reconstruct(e)}reconstruct(e){const t=(t,n)=>{if(e.byteLength%t!==0)throw new RangeError(`Buffer length ${e.byteLength} is not aligned to ${t} bytes for ${n}`)};switch(this.type){case"ArrayBuffer":default:return e;case"Uint8Array":return new Uint8Array(e);case"Blob":return new Blob([e],{type:this.contentType});case"Int8Array":return new Int8Array(e);case"Uint8ClampedArray":return new Uint8ClampedArray(e);case"Int16Array":return t(2,"Int16Array"),new Int16Array(e);case"Uint16Array":return t(2,"Uint16Array"),new Uint16Array(e);case"Int32Array":return t(4,"Int32Array"),new Int32Array(e);case"Uint32Array":return t(4,"Uint32Array"),new Uint32Array(e);case"Float32Array":return t(4,"Float32Array"),new Float32Array(e);case"Float64Array":return t(8,"Float64Array"),new Float64Array(e);case"BigInt64Array":return t(8,"BigInt64Array"),new BigInt64Array(e);case"BigUint64Array":return t(8,"BigUint64Array"),new BigUint64Array(e)}}static isTSONRef(e){return null!==e&&"object"==typeof e&&_ in e&&!0===e[_]}static isTSONRefData(e){return null!==e&&"object"==typeof e&&"$ref"in e&&"$t"in e&&"$size"in e}static fromData(e){return new k(e.$t,e.$ref,e.$size,e.$ct)}toJSON(){const e={$t:this.type,$ref:this.ref,$size:this.size};return this.contentType&&(e.$ct=this.contentType),e}}function S(e){const t=new XMLHttpRequest;t.overrideMimeType("text/plain; charset=x-user-defined");const n=URL.createObjectURL(e);try{if(t.open("GET",n,!1),t.send(),200!==t.status&&0!==t.status)throw new Error("Bad Blob access: "+t.status);return t.responseText}finally{URL.revokeObjectURL(n)}}w=_,k.TYPE_SYMBOL=_,k.resolver=null;const x={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)}},E={Date:{replace:e=>({$t:"Date",v:isNaN(e.getTime())?"NaN":e.toISOString()}),revive:({v:e})=>new Date("NaN"===e?NaN:Date.parse(e))}},C={Set:{replace:e=>({$t:"Set",v:Array.from(e)}),revive:({v:e})=>new Set(e)}},A={Map:{replace:e=>({$t:"Map",v:Array.from(e.entries())}),revive:({v:e})=>new Map(e)}},I="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof global?global:void 0,O=["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","DataView","BigInt64Array","BigUint64Array"].reduce((e,t)=>({...e,[t]:{replace:(e,n,r)=>{const s=e.buffer,i=0===e.byteOffset&&e.byteLength===s.byteLength?s:s.slice(e.byteOffset,e.byteOffset+e.byteLength);return{$t:t,v:r.ArrayBuffer.replace(i,n,r).v}},revive:({v:e},n,r)=>{const s=I[t];return s&&new s(r.ArrayBuffer.revive({v:e},n,r))}}}),{}),D="fromBase64"in Uint8Array,T="toBase64"in Uint8Array.prototype,j="undefined"!=typeof Buffer?e=>Buffer.from(e,"base64"):D?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},U="undefined"!=typeof Buffer?e=>ArrayBuffer.isView(e)?Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("base64"):Buffer.from(e).toString("base64"):T?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,Array.from(r)))}return btoa(n.join(""))};function P(e){return function(e){for(var t="",n=0,r=e.length;n<r;n++)t+=$[e[n]];return t}(U(e))}function L(e){return j(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+=R[e[n]];return t}(e))}const R={"-":"=",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:"+","|":"/"},$={};for(const e of Object.keys(R))$[R[e]]=e;const B={ArrayBuffer:{replace:e=>({$t:"ArrayBuffer",v:P(e)}),revive:({v:e})=>{const t=L(e);return t.buffer.byteLength===t.byteLength?t.buffer:t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}}};function N(e){const t=new Uint8Array(e.length);for(let n=0;n<e.length;++n)t[n]=e.charCodeAt(n);return t.buffer}const M={Blob:{test:(e,t)=>"Blob"===t||e instanceof v,replace:e=>({$t:"Blob",v:U(e instanceof v?e.buf:N(S(e))),type:e.type}),revive:({type:e,v:t})=>{const n=j(t),r=n.buffer.byteLength===n.byteLength?n.buffer:n.buffer.slice(n.byteOffset,n.byteOffset+n.byteLength);return"undefined"!=typeof Blob?new Blob([new Uint8Array(r)],{type:e}):new v(r,e)}}},F={File:{test:(e,t)=>"File"===t,replace:e=>({$t:"File",v:U(N(S(e))),type:e.type,name:e.name,lastModified:new Date(e.lastModified).toISOString()}),revive:({type:e,v:t,name:n,lastModified:r})=>{const s=j(t),i=s.buffer.byteLength===s.byteLength?s.buffer:s.buffer.slice(s.byteOffset,s.byteOffset+s.byteLength);return new File([new Uint8Array(i)],n,{type:e,lastModified:new Date(r).getTime()})}}},W={undefined:{replace:()=>({$t:"undefined"}),revive:()=>{}}},z="undefined"!=typeof crypto?crypto.getRandomValues.bind(crypto):e=>{for(let t=0;t<e.length;++t)e[t]=Math.floor(256*Math.random())};let K=0;const V={}.hasOwnProperty;function H(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)H(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 V.call(e,t)}(e,o)||(l=e[o]={}),H(l,c,n)}}else void 0===n?Array.isArray(e)&&!isNaN(parseInt(t))?e.splice(t,1):delete e[t]:e[t]=n}}const J="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=q)=>{const n=Buffer.alloc(e);return t(n),n.toString("base64")}:()=>{throw new Error("No implementation of randomString was found")};function q(e){for(let t=0;t<e.length;++t)e[t]=Math.floor(256*Math.random())}function G(e){return"string"==typeof e||!!(Array.isArray(e)&&e.some(e=>G(e))&&e.every(Y))}function Y(e){return"string"==typeof e||"number"==typeof e||Array.isArray(e)&&e.every(Y)}function Q(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))H(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 X(e,t){for(const{table:n,muts:r}of t)for(const t of r)Q(e,n,t)}const Z=Math.floor,ee=Math.abs,te=(e,t)=>e<t?e:t,ne=(e,t)=>e>t?e:t,re=e=>0!==e?e<0:1/e<0,se=64,ie=128,oe=127,ce=Number.MAX_SAFE_INTEGER,le=Number.isInteger||(e=>"number"==typeof e&&isFinite(e)&&Z(e)===e),ae=()=>new Set,ue=e=>e[e.length-1],de=(e,t)=>{for(let n=0;n<t.length;n++)e.push(t[n])},he=Array.from,fe=Array.isArray,pe=/^\s*/g,ge=/([A-Z])/g,ye=(e,t)=>(e=>e.replace(pe,""))(e.replace(ge,e=>`${t}${(e=>e.toLowerCase())(e)}`)),me="undefined"!=typeof TextEncoder?new TextEncoder:null,be=me?e=>me.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 ve="undefined"==typeof TextDecoder?null:new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});ve&&1===ve.decode(new Uint8Array).length&&(ve=null);class we{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}}const _e=()=>new we,ke=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},Se=(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},xe=Se,Ee=(e,t)=>{for(;t>oe;)Se(e,ie|oe&t),t=Z(t/128);Se(e,oe&t)},Ce=(e,t)=>{const n=re(t);for(n&&(t=-t),Se(e,(t>63?ie:0)|(n?se:0)|63&t),t=Z(t/64);t>0;)Se(e,(t>oe?ie:0)|oe&t),t=Z(t/128)},Ae=new Uint8Array(3e4),Ie=Ae.length/3,Oe=me&&me.encodeInto?(e,t)=>{if(t.length<Ie){const n=me.encodeInto(t,Ae).written||0;Ee(e,n);for(let t=0;t<n;t++)Se(e,Ae[t])}else Te(e,be(t))}:(e,t)=>{const n=unescape(encodeURIComponent(t)),r=n.length;Ee(e,r);for(let t=0;t<r;t++)Se(e,n.codePointAt(t))},De=(e,t)=>{const n=e.cbuf.length,r=e.cpos,s=te(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(ne(2*n,i)),e.cbuf.set(t.subarray(s)),e.cpos=i)},Te=(e,t)=>{Ee(e,t.byteLength),De(e,t)},je=(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*ne(n,t)),e.cpos=0)})(e,t);const n=new DataView(e.cbuf.buffer,e.cpos,t);return e.cpos+=t,n},Ue=(e,t)=>je(e,8).setBigUint64(0,t,!1),Pe=new DataView(new ArrayBuffer(4)),Le=(e,t)=>{switch(typeof t){case"string":Se(e,119),Oe(e,t);break;case"number":le(t)&&ee(t)<=2147483647?(Se(e,125),Ce(e,t)):(n=t,Pe.setFloat32(0,n),Pe.getFloat32(0)===n?(Se(e,124),((e,t)=>{je(e,4).setFloat32(0,t,!1)})(e,t)):(Se(e,123),((e,t)=>{je(e,8).setFloat64(0,t,!1)})(e,t)));break;case"bigint":Se(e,122),((e,t)=>{je(e,8).setBigInt64(0,t,!1)})(e,t);break;case"object":if(null===t)Se(e,126);else if(fe(t)){Se(e,117),Ee(e,t.length);for(let n=0;n<t.length;n++)Le(e,t[n])}else if(t instanceof Uint8Array)Se(e,116),Te(e,t);else{Se(e,118);const n=Object.keys(t);Ee(e,n.length);for(let r=0;r<n.length;r++){const s=n[r];Oe(e,s),Le(e,t[s])}}break;case"boolean":Se(e,t?120:121);break;default:Se(e,127)}var n};class Re extends we{constructor(e){super(),this.w=e,this.s=null,this.count=0}write(e){this.s===e?this.count++:(this.count>0&&Ee(this,this.count-1),this.count=1,this.w(this,e),this.s=e)}}const $e=e=>{e.count>0&&(Ce(e.encoder,1===e.count?e.s:-e.s),e.count>1&&Ee(e.encoder,e.count-2))};class Be{constructor(){this.encoder=new we,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),ke(this.encoder)}}const Ne=e=>{if(e.count>0){const t=2*e.diff+(1===e.count?0:1);Ce(e.encoder,t),e.count>1&&Ee(e.encoder,e.count-2)}};class Me{constructor(){this.encoder=new we,this.s=0,this.count=0,this.diff=0}write(e){this.diff===e-this.s?(this.s=e,this.count++):(Ne(this),this.count=1,this.diff=e-this.s,this.s=e)}toUint8Array(){return Ne(this),ke(this.encoder)}}class Fe{constructor(){this.sarr=[],this.s="",this.lensE=new Be}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 we;return this.sarr.push(this.s),this.s="",Oe(e,this.sarr.join("")),De(e,this.lensE.toUint8Array()),ke(e)}}const We=e=>new Error(e),ze=()=>{throw We("Method unimplemented")},Ke=()=>{throw We("Unexpected case")},Ve=We("Unexpected end of array"),He=We("Integer out of Range");class Je{constructor(e){this.arr=e,this.pos=0}}const qe=e=>new Je(e),Ge=e=>e.pos!==e.arr.length,Ye=e=>((e,t)=>{const n=new Uint8Array(e.arr.buffer,e.pos+e.arr.byteOffset,t);return e.pos+=t,n})(e,Xe(e)),Qe=e=>e.arr[e.pos++],Xe=e=>{let t=0,n=1;const r=e.arr.length;for(;e.pos<r;){const r=e.arr[e.pos++];if(t+=(r&oe)*n,n*=128,r<ie)return t;if(t>ce)throw He}throw Ve},Ze=e=>{let t=e.arr[e.pos++],n=63&t,r=64;const s=(t&se)>0?-1:1;if(0===(t&ie))return s*n;const i=e.arr.length;for(;e.pos<i;){if(t=e.arr[e.pos++],n+=(t&oe)*r,r*=128,t<ie)return s*n;if(n>ce)throw He}throw Ve},et=ve?e=>ve.decode(Ye(e)):e=>{let t=Xe(e);if(0===t)return"";{let n=String.fromCodePoint(Qe(e));if(--t<100)for(;t--;)n+=String.fromCodePoint(Qe(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))}},tt=(e,t)=>{const n=new DataView(e.arr.buffer,e.arr.byteOffset+e.pos,t);return e.pos+=t,n},nt=e=>tt(e,8).getBigUint64(0,!1),rt=[e=>{},e=>null,Ze,e=>tt(e,4).getFloat32(0,!1),e=>tt(e,8).getFloat64(0,!1),e=>tt(e,8).getBigInt64(0,!1),e=>!1,e=>!0,et,e=>{const t=Xe(e),n={};for(let r=0;r<t;r++){n[et(e)]=st(e)}return n},e=>{const t=Xe(e),n=[];for(let r=0;r<t;r++)n.push(st(e));return n},Ye],st=e=>rt[127-Qe(e)](e);class it extends Je{constructor(e,t){super(e),this.reader=t,this.s=null,this.count=0}read(){return 0===this.count&&(this.s=this.reader(this),Ge(this)?this.count=Xe(this)+1:this.count=-1),this.count--,this.s}}class ot extends Je{constructor(e){super(e),this.s=0,this.count=0}read(){if(0===this.count){this.s=Ze(this);const e=re(this.s);this.count=1,e&&(this.s=-this.s,this.count=Xe(this)+2)}return this.count--,this.s}}class ct extends Je{constructor(e){super(e),this.s=0,this.count=0,this.diff=0}read(){if(0===this.count){const e=Ze(this),t=1&e;this.diff=Z(e/2),this.count=1,t&&(this.count=Xe(this)+2)}return this.s+=this.diff,this.count--,this.s}}class lt{constructor(e){this.decoder=new ot(e),this.str=et(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*at(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}}}}function ut(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 U(s)})}function dt(e){return Object.entries(e.cloud.schema||{}).filter(([,{markedForSync:e}])=>e).map(([t])=>e.tables.find(({name:e})=>e===t)).filter(e=>!!e)}function ht(e){return`$${e}_mutations`}function ft(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 pt=[].concat;function gt(e){return pt.apply([],e)}function yt(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=ft(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=gt(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 mt(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")}class bt 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 vt=`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 wt(e){return{name:"provider",value:e.name,displayName:`Continue with ${e.displayName}`,iconUrl:e.iconUrl,styleHint:e.type}}function _t(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 kt(e,t,...n){return _t(e,{type:"message-alert",title:t,alerts:n,fields:{},submitLabel:"OK",cancelLabel:null})}function St(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 _t(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 xt(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 _t(e,{type:"otp",title:"Enter OTP",alerts:r,fields:{otp:{type:"otp",label:"OTP",placeholder:"Paste OTP here"}}});return s})}class Et extends Error{constructor(e){super(`OAuth redirect initiated for provider: ${e}`),this.name="OAuthRedirectError",this.provider=e}}const Ct=1e3;function At(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()+3e5&&"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 u=yield Ot(e.cloud.options.databaseUrl,s);return yield e.table("$logins").update(a.sub,{accessToken:u.accessToken,accessTokenExpiration:u.accessTokenExpiration,claims:u.claims,license:u.license,data:u.data}),u})}function It(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 Ot(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=U(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 bt(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 _t(s,{type:"message-alert",title:"Authentication Alert",fields:{},alerts:e.alerts})),t}catch(t){if(t instanceof Et||"OAuthRedirectError"===(null==t?void 0:t.name))throw t;if(t instanceof bt)throw yield kt(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){if("undefined"!=typeof navigator&&!navigator.onLine)n="You seem to be offline. Please connect to the internet and try again.";else if("undefined"==typeof location||!e.debug&&"localhost"!==location.hostname&&"127.0.0.1"!==location.hostname)n="Could not connect to server. Please verify the connection.",yield kt(s,"Authentication Failed",{type:"error",messageCode:"GENERIC_ERROR",message:n,messageParams:{}}).catch(()=>{});else{const e=`npx dexie-cloud whitelist ${location.origin}`;n=`Could not connect to server. Please verify that your origin '${location.origin}' is whitelisted using \`npx dexie-cloud whitelist\``,yield kt(s,"Authentication Failed",{type:"error",messageCode:"GENERIC_ERROR",message:n,messageParams:{},copyText:e}).catch(()=>{})}}throw t}})}(n,s,i,o)})}function Ot(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=U(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 bt(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 Dt="function"==typeof BigInt&&"bigint"==typeof BigInt(0);class Tt{toString(){return this.v}constructor(e){this.v=e}}const jt=Dt?{}:{bigint:{test:e=>e instanceof Tt,replace:e=>Object.assign({$t:"bigint"},e),revive:({v:e})=>new Tt(e)}},Ut=Object.assign(Object.assign(Object.assign(Object.assign({},W),jt),F),{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)}}}),Pt=function(...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 b;let i=n.get(r);if(void 0!==i)return i;const o=(s=e,m.call(s).slice(8,-1)),c=Object.entries(t).find(([t,n])=>n?.test?.(e,o)??t===o);return i=c?.[1],i||(i=Array.isArray(e)?null:"function"==typeof e?t.function||null:b),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=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})}}}(O,B,M,x,E,C,A,Ut);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 u=`${t}:${n.userId}`;c.keys[o]=u,s&&e.setByKeyPath(c.values[o],l.keyPath,u)}})}),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 Bt=new WeakMap;function Nt(e){return r(this,void 0,void 0,function*(){var t,n;const r=(null!==(n=null===(t=Bt.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 Mt(e,t,n,s,i,o,c,l,a){return r(this,void 0,void 0,function*(){const r={Accept:"application/json","Content-Type":"application/tson"},u=yield At(i),d=null==u?void 0:u.accessToken;d&&(r.Authorization=`Bearer ${d}`);const h={v:3,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=Pt.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));Bt.set(e,new Date(Date.now()+1e3*t))}else Bt.delete(e)}}(i,p),!p.ok)throw new Lt(p);switch(p.headers.get("content-type")){case"application/x-bison":case"application/x-bison-stream":throw new Error("BISON format no longer supported. Server should send application/json.");default:{const e=yield p.text();return Pt.parse(e)}}})}function Ft(t){if(null==t?void 0:t.cancelled)throw new e.AbortError("Operation was cancelled")}let Wt=!1;function zt(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 Kt(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 Vt(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 Ht(e){if("object"!=typeof e||null===e)return!1;const t=e;return"string"==typeof t._bt&&"string"==typeof t.ref&&void 0===t.v}function Jt(e,t=new WeakSet){return null!=e&&(!!Ht(e)||"object"==typeof e&&(!t.has(e)&&(t.add(e),!(e instanceof Date||e instanceof RegExp||e instanceof Blob)&&(!(e instanceof ArrayBuffer||ArrayBuffer.isView(e))&&(Array.isArray(e)?e.some(e=>Jt(e,t)):e.constructor===Object&&Object.values(e).some(e=>Jt(e,t)))))))}function qt(e,t){return r(this,arguments,void 0,function*(e,t,n=[],r="",s=new WeakMap,i){if(null==e)return e;if(Ht(e)){const s=function(e,t){if("string"===t._bt)return(new TextDecoder).decode(e);const n=e.buffer.byteLength===e.byteLength?e.buffer:e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength);switch(t._bt){case"Blob":return new Blob([new Uint8Array(n)],{type:t.ct||""});case"ArrayBuffer":return n;case"Uint8Array":default:return e;case"Int8Array":return new Int8Array(n);case"Uint8ClampedArray":return new Uint8ClampedArray(n);case"Int16Array":return new Int16Array(n);case"Uint16Array":return new Uint16Array(n);case"Int32Array":return new Int32Array(n);case"Uint32Array":return new Uint32Array(n);case"Float32Array":return new Float32Array(n);case"Float64Array":return new Float64Array(n);case"BigInt64Array":return new BigInt64Array(n);case"BigUint64Array":return new BigUint64Array(n);case"DataView":return new DataView(n)}}(yield i.download(e,t),e);return n.push({keyPath:r,data:s,ref:e.ref}),s}if(Array.isArray(e)){if(s.has(e))return s.get(e);const o=[];s.set(e,o);for(let c=0;c<e.length;c++){const l=r?`${r}.${c}`:`${c}`;o.push(yield qt(e[c],t,n,l,s,i))}return o}if("object"==typeof e&&e.constructor===Object){if(s.has(e))return s.get(e);const o={};s.set(e,o);for(const[c,l]of Object.entries(e)){if("_hasBlobRefs"===c)continue;const e=r?`${r}.${c}`:c;o[c]=yield qt(l,t,n,e,s,i)}return o}return e})}function Gt(e){return"object"==typeof e&&null!==e&&1===e._hasBlobRefs}function Yt(e){null!==e&&"object"==typeof e&&e.constructor===Object&&Jt(e)&&(e._hasBlobRefs=1)}function Qt(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":n.values.forEach(Yt),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":n.values.forEach(Yt),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 Vt(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 Xt="dexie-cloud-syncer";function Zt(e,t){return e.where("i").between(t,1/0,!0).toArray()}const en=()=>new Map,tn=e=>{const t=en();return e.forEach((e,n)=>{t.set(n,e)}),t},nn=(e,t,n)=>{let r=e.get(t);return void 0===r&&e.set(t,r=n()),r};class rn{constructor(){this._observers=en()}on(e,t){return nn(this._observers,e,ae).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 he((this._observers.get(e)||en()).values()).forEach(e=>e(...t))}destroy(){this._observers=en()}}class sn{constructor(){this._observers=en()}on(e,t){nn(this._observers,e,ae).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 he((this._observers.get(e)||en()).values()).forEach(e=>e(...t))}destroy(){this._observers=en()}}const on=crypto.getRandomValues.bind(crypto),cn=()=>on(new Uint32Array(1))[0],ln=[1e7]+-1e3+-4e3+-8e3+-1e11,an=()=>ln.replace(/[018]/g,e=>(e^cn()&15>>e/4).toString(16)),un=Date.now,dn=e=>new Promise(e);Promise.all.bind(Promise);const hn=e=>void 0===e?null:e;let fn=new class{constructor(){this.map=new Map}setItem(e,t){this.map.set(e,t)}getItem(e){return this.map.get(e)}},pn=!0;try{"undefined"!=typeof localStorage&&localStorage&&(fn=localStorage,pn=!1)}catch(dl){}const gn=fn,yn=Object.assign,mn=Object.keys,bn=e=>mn(e).length,vn=e=>mn(e).length,wn=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),_n=Object.freeze,kn=e=>{for(const t in e){const n=e[t];"object"!=typeof n&&"function"!=typeof n||kn(e[t])}return _n(e)},Sn=Symbol("Equality"),xn=(e,t,n=0)=>{try{for(;n<e.length;n++)e[n](...t)}finally{n<e.length&&xn(e,t,n+1)}},En=(e,t)=>{if(e===t)return!0;if(null==e||null==t||e.constructor!==t.constructor)return!1;if(null!=e[Sn])return e[Sn](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)||!En(e.get(n),t.get(n)))return!1;break;case Object:if(bn(e)!==bn(t))return!1;for(const n in e)if(!wn(e,n)||!En(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(!En(e[n],t[n]))return!1;break;default:return!1}return!0},Cn="undefined"!=typeof process&&process.release&&/node|io\.js/.test(process.release.name)&&"[object process]"===Object.prototype.toString.call("undefined"!=typeof process?process:0);let An;const In=e=>(()=>{if(void 0===An)if(Cn){An=en();const e=process.argv;let t=null;for(let n=0;n<e.length;n++){const r=e[n];"-"===r[0]?(null!==t&&An.set(t,""),t=r):null!==t&&(An.set(t,r),t=null)}null!==t&&An.set(t,"")}else"object"==typeof location?(An=en(),(location.search||"?").slice(1).split("&").forEach(e=>{if(0!==e.length){const[t,n]=e.split("=");An.set(`--${ye(t,"-")}`,n),An.set(`-${ye(t,"-")}`,n)}})):An=en();return An})().has(e),On=e=>hn(Cn?process.env[e.toUpperCase().replaceAll("-","_")]:gn.getItem(e)),Dn=e=>In("--"+e)||null!==On(e);Dn("production");var Tn;Cn&&(Tn=process.env.FORCE_COLOR,["true","1","2"].includes(Tn))||!In("--no-colors")&&!Dn("no-color")&&(!Cn||process.stdout.isTTY)&&(!Cn||In("--color")||null!==On("COLORTERM")||(On("TERM")||"").includes("color"));class jn{constructor(e,t){this.left=e,this.right=t}}const Un=(e,t)=>new jn(e,t);"undefined"!=typeof DOMParser&&new DOMParser;const Pn=Symbol,Ln=Pn(),Rn=Pn(),$n=Pn(),Bn=Pn(),Nn=Pn(),Mn=Pn(),Fn=Pn(),Wn=Pn(),zn=Pn(),Kn=(Un("font-weight","bold"),Un("font-weight","normal"),Un("color","blue"),Un("color","green"),Un("color","grey"),Un("color","red"),Un("color","purple"),Un("color","orange"),Un("color","black"),ae()),Vn=e=>({[Symbol.iterator](){return this},next:e}),Hn=(e,t)=>Vn(()=>{const{done:n,value:r}=e.next();return{done:n,value:n?void 0:t(r)}});class Jn{constructor(e,t){this.clock=e,this.len=t}}class qn{constructor(){this.clients=new Map}}const Gn=(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])Tr(e,s,o.clock,o.len,n)}}),Yn=(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=Z((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)},Qn=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=ne(r.len,s.clock+s.len-r.clock):(n<t&&(e[n]=s),n++)}e.length=n})},Xn=(e,t,n,r)=>{nn(e.clients,t,()=>[]).push(new Jn(n,r))},Zn=(e,t)=>{Ee(e.restEncoder,t.clients.size),he(t.clients.entries()).sort((e,t)=>t[0]-e[0]).forEach(([t,n])=>{e.resetDsCurVal(),Ee(e.restEncoder,t);const r=n.length;Ee(e.restEncoder,r);for(let t=0;t<r;t++){const r=n[t];e.writeDsClock(r.clock),e.writeDsLen(r.len)}})},er=(e,t,n)=>{const r=new qn,s=Xe(e.restDecoder);for(let i=0;i<s;i++){e.resetDsCurVal();const s=Xe(e.restDecoder),i=Xe(e.restDecoder),o=n.clients.get(s)||[],c=xr(n,s);for(let n=0;n<i;n++){const n=e.readDsClock(),i=n+e.readDsLen();if(n<c){c<i&&Xn(r,s,c,i-c);let e=Cr(o,n),l=o[e];for(!l.deleted&&l.id.clock<n&&(o.splice(e+1,0,hi(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,hi(t,l,i-l.id.clock)),l.delete(t))}else Xn(r,s,n,i-n)}}if(r.clients.size>0){const e=new lr;return Ee(e.restEncoder,0),Zn(e,r),e.toUint8Array()}return null},tr=cn;class nr extends rn{constructor({guid:e=an(),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=tr(),this.guid=e,this.collectionid=t,this.share=new Map,this.store=new kr,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=dn(e=>{this.on("load",()=>{this.isLoaded=!0,e(this)})});const c=()=>dn(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||$r(e.parent.doc,e=>{e.subdocsLoaded.add(this)},null,!0),this.shouldLoad=!0}getSubdocs(){return this.subdocs}getSubdocGuids(){return new Set(he(this.subdocs).map(e=>e.guid))}transact(e,t=null){return $r(this,e,t)}get(e,t=ns){const n=nn(this.share,e,()=>{const e=new t;return e._integrate(this,null),e}),r=n.constructor;if(t!==ns&&r!==t){if(r===ns){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,ws)}getText(e=""){return this.get(e,Bs)}getMap(e=""){return this.get(e,ks)}getXmlElement(e=""){return this.get(e,Fs)}getXmlFragment(e=""){return this.get(e,Ms)}toJSON(){const e={};return this.share.forEach((t,n)=>{e[n]=t.toJSON()}),e}destroy(){this.isDestroyed=!0,he(this.subdocs).forEach(e=>e.destroy());const e=this._item;if(null!==e){this._item=null;const t=e.content;t.doc=new nr({guid:this.guid,...t.opts,shouldLoad:!1}),t.doc._item=e,$r(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 rr{constructor(e){this.dsCurrVal=0,this.restDecoder=e}resetDsCurVal(){this.dsCurrVal=0}readDsClock(){return this.dsCurrVal+=Xe(this.restDecoder),this.dsCurrVal}readDsLen(){const e=Xe(this.restDecoder)+1;return this.dsCurrVal+=e,e}}class sr extends rr{constructor(e){super(e),this.keys=[],Xe(e),this.keyClockDecoder=new ct(Ye(e)),this.clientDecoder=new ot(Ye(e)),this.leftClockDecoder=new ct(Ye(e)),this.rightClockDecoder=new ct(Ye(e)),this.infoDecoder=new it(Ye(e),Qe),this.stringDecoder=new lt(Ye(e)),this.parentInfoDecoder=new it(Ye(e),Qe),this.typeRefDecoder=new ot(Ye(e)),this.lenDecoder=new ot(Ye(e))}readLeftID(){return new mr(this.clientDecoder.read(),this.leftClockDecoder.read())}readRightID(){return new mr(this.clientDecoder.read(),this.rightClockDecoder.read())}readClient(){return this.clientDecoder.read()}readInfo(){return this.infoDecoder.read()}readString(){return this.stringDecoder.read()}readParentInfo(){return 1===this.parentInfoDecoder.read()}readTypeRef(){return this.typeRefDecoder.read()}readLen(){return this.lenDecoder.read()}readAny(){return st(this.restDecoder)}readBuf(){return Ye(this.restDecoder)}readJSON(){return st(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 ir{constructor(){this.restEncoder=_e()}toUint8Array(){return ke(this.restEncoder)}resetDsCurVal(){}writeDsClock(e){Ee(this.restEncoder,e)}writeDsLen(e){Ee(this.restEncoder,e)}}class or extends ir{writeLeftID(e){Ee(this.restEncoder,e.client),Ee(this.restEncoder,e.clock)}writeRightID(e){Ee(this.restEncoder,e.client),Ee(this.restEncoder,e.clock)}writeClient(e){Ee(this.restEncoder,e)}writeInfo(e){xe(this.restEncoder,e)}writeString(e){Oe(this.restEncoder,e)}writeParentInfo(e){Ee(this.restEncoder,e?1:0)}writeTypeRef(e){Ee(this.restEncoder,e)}writeLen(e){Ee(this.restEncoder,e)}writeAny(e){Le(this.restEncoder,e)}writeBuf(e){Te(this.restEncoder,e)}writeJSON(e){Oe(this.restEncoder,JSON.stringify(e))}writeKey(e){Oe(this.restEncoder,e)}}class cr{constructor(){this.restEncoder=_e(),this.dsCurrVal=0}toUint8Array(){return ke(this.restEncoder)}resetDsCurVal(){this.dsCurrVal=0}writeDsClock(e){const t=e-this.dsCurrVal;this.dsCurrVal=e,Ee(this.restEncoder,t)}writeDsLen(e){0===e&&Ke(),Ee(this.restEncoder,e-1),this.dsCurrVal+=e}}class lr extends cr{constructor(){super(),this.keyMap=new Map,this.keyClock=0,this.keyClockEncoder=new Me,this.clientEncoder=new Be,this.leftClockEncoder=new Me,this.rightClockEncoder=new Me,this.infoEncoder=new Re(xe),this.stringEncoder=new Fe,this.parentInfoEncoder=new Re(xe),this.typeRefEncoder=new Be,this.lenEncoder=new Be}toUint8Array(){const e=_e();return Ee(e,0),Te(e,this.keyClockEncoder.toUint8Array()),Te(e,this.clientEncoder.toUint8Array()),Te(e,this.leftClockEncoder.toUint8Array()),Te(e,this.rightClockEncoder.toUint8Array()),Te(e,ke(this.infoEncoder)),Te(e,this.stringEncoder.toUint8Array()),Te(e,ke(this.parentInfoEncoder)),Te(e,this.typeRefEncoder.toUint8Array()),Te(e,this.lenEncoder.toUint8Array()),De(e,ke(this.restEncoder)),ke(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){Le(this.restEncoder,e)}writeBuf(e){Te(this.restEncoder,e)}writeJSON(e){Le(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 ar=(e,t,n)=>{const r=new Map;n.forEach((e,n)=>{xr(t,n)>e&&r.set(n,e)}),Sr(t).forEach((e,t)=>{n.has(t)||r.set(t,0)}),Ee(e.restEncoder,r.size),he(r.entries()).sort((e,t)=>t[0]-e[0]).forEach(([n,r])=>{((e,t,n,r)=>{r=ne(r,t[0].id.clock);const s=Cr(t,r);Ee(e.restEncoder,t.length-s),e.writeClient(n),Ee(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)})},ur=(e,t,n,r=new sr(e))=>$r(t,e=>{e.local=!1;let t=!1;const n=e.doc,s=n.store,i=((e,t)=>{const n=en(),r=Xe(e.restDecoder);for(let s=0;s<r;s++){const r=Xe(e.restDecoder),s=new Array(r),i=e.readClient();let o=Xe(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 Hs(vr(i,o),t),o+=t;break}case 10:{const t=Xe(e.restDecoder);s[n]=new yi(vr(i,o),t),o+=t;break}default:{const c=!(192&r),l=new fi(vr(i,o),null,(r&ie)===ie?e.readLeftID():null,null,(r&se)===se?e.readRightID():null,c?e.readParentInfo()?t.get(e.readString()):e.readLeftID():null,!c||32&~r?null:e.readString(),pi(e,r));s[n]=l,o+=l.length}}}}return n})(r,n),o=((e,t,n)=>{const r=[];let s=he(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 kr,l=new Map,a=(e,t)=>{const n=l.get(e);(null==n||n>t)&&l.set(e,t)};let u=o.refs[o.i++];const d=new Map,h=()=>{for(const e of r){const t=e.id.client,r=n.get(t);r?(r.i--,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(u.constructor!==yi){const s=nn(d,u.id.client,()=>xr(t,u.id.client))-u.id.clock;if(s<0)r.push(u),a(u.id.client,u.id.clock-1),h();else{const i=u.getMissing(e,t);if(null!==i){r.push(u);const e=n.get(i)||{refs:[],i:0};if(e.refs.length!==e.i){u=e.refs[e.i++];continue}a(i,xr(t,i)),h()}else(0===s||s<u.length)&&(u.integrate(e,s),d.set(u.id.client,u.id.clock+u.length))}}if(r.length>0)u=r.pop();else if(null!==o&&o.i<o.refs.length)u=o.refs[o.i++];else{if(o=i(),null===o)break;u=o.refs[o.i++]}}if(c.clients.size>0){const e=new lr;return ar(e,c,new Map),Ee(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<xr(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=Wr([c.update,o.update])}}else s.pendingStructs=o;const l=er(r,e,s);if(s.pendingDs){const t=new sr(qe(s.pendingDs));Xe(t.restDecoder);const n=er(t,e,s);s.pendingDs=l&&n?Wr([l,n]):l||n}else s.pendingDs=l;if(t){const t=s.pendingStructs.update;s.pendingStructs=null,dr(e.doc,t)}},n,!1),dr=(e,t,n,r=sr)=>{const s=qe(t);ur(s,e,n,new r(s))};class hr{constructor(){this.l=[]}}const fr=()=>new hr,pr=(e,t)=>e.l.push(t),gr=(e,t)=>{const n=e.l;n.length;e.l=n.filter(e=>t!==e),e.l.length},yr=(e,t,n)=>xn(e.l,[t,n]);class mr{constructor(e,t){this.client=e,this.clock=t}}const br=(e,t)=>e===t||null!==e&&null!==t&&e.client===t.client&&e.clock===t.clock,vr=(e,t)=>new mr(e,t),wr=(e,t)=>void 0===t?!e.deleted:t.sv.has(e.id.client)&&(t.sv.get(e.id.client)||0)>e.id.clock&&!Yn(t.ds,e.id),_r=(e,t)=>{const n=nn(e.meta,_r,ae),r=e.doc.store;n.has(t)||(t.sv.forEach((t,n)=>{t<xr(r,n)&&Or(e,vr(n,t))}),Gn(e,t.ds,e=>{}),n.add(t))};class kr{constructor(){this.clients=new Map,this.pendingStructs=null,this.pendingDs=null}}const Sr=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},xr=(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},Er=(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 Ke()}n.push(t)},Cr=(e,t)=>{let n=0,r=e.length-1,s=e[r],i=s.id.clock;if(i===t)return r;let o=Z(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=Z((n+r)/2)}throw Ke()},Ar=(e,t)=>{const n=e.clients.get(t.client);return n[Cr(n,t.clock)]},Ir=(e,t,n)=>{const r=Cr(t,n),s=t[r];return s.id.clock<n&&s instanceof fi?(t.splice(r+1,0,hi(e,s,n-s.id.clock)),r+1):r},Or=(e,t)=>{const n=e.doc.store.clients.get(t.client);return n[Ir(e,n,t.clock)]},Dr=(e,t,n)=>{const r=t.clients.get(n.client),s=Cr(r,n.clock),i=r[s];return n.clock!==i.id.clock+i.length-1&&i.constructor!==Hs&&r.splice(s+1,0,hi(e,i,n.clock-i.id.clock+1)),i},Tr=(e,t,n,r,s)=>{if(0===r)return;const i=n+r;let o,c=Ir(e,t,n);do{o=t[c++],i<o.id.clock+o.length&&Ir(e,t,i),s(o)}while(c<t.length&&t[c].id.clock<i)};class jr{constructor(e,t,n){this.doc=e,this.deleteSet=new qn,this.beforeState=Sr(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 Ur=(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))&&(Qn(t.deleteSet),((e,t)=>{ar(e,t.doc.store,t.beforeState)})(e,t),Zn(e,t.deleteSet),!0),Pr=(e,t,n)=>{const r=t._item;(null===r||r.id.clock<(e.beforeState.get(r.id.client)||0)&&!r.deleted)&&nn(e.changed,t,ae).add(n)},Lr=(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 fi&&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},Rr=(e,t)=>{if(t<e.length){const n=e[t],r=n.doc,s=r.store,i=n.deleteSet,o=n._mergeStructs;try{Qn(i),n.afterState=Sr(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),yr(t._dEH,e,n))})}),e.push(()=>r.emit("afterTransaction",[n,r])),xn(e,[]),n._needFormattingCleanup&&Ls(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=Cr(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 fi&&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=te(r.length-1,1+Cr(r,n.clock+n.len-1)),t=r[e];e>0&&t.id.clock>=n.clock;t=r[e])e-=1+Lr(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=ne(Cr(e,r),1);for(let t=e.length-1;t>=n;)t-=1+Lr(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=Cr(r,n);i+1<r.length&&Lr(r,i+1)>1||i>0&&Lr(r,i)}if(n.local||n.afterState.get(r.clientID)===n.beforeState.get(r.clientID)||(((...e)=>{Kn.forEach(t=>t.print(e))})(Wn,Ln,"[yjs] ",Rn,Mn,"Changed the client-id because another client seems to be using it."),r.clientID=tr()),r.emit("afterTransactionCleanup",[n,r]),r._observers.has("update")){const e=new or;Ur(e,n)&&r.emit("update",[e.toUint8Array(),n.origin,r,n])}if(r._observers.has("updateV2")){const e=new lr;Ur(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])):Rr(e,t+1)}}},$r=(e,t,n=null,r=!0)=>{const s=e._transactionCleanups;let i=!1,o=null;null===e._transaction&&(i=!0,e._transaction=new jr(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&&Rr(s,0)}}return o};class Br{constructor(e,t){this.gen=function*(e){const t=Xe(e.restDecoder);for(let n=0;n<t;n++){const t=Xe(e.restDecoder),n=e.readClient();let r=Xe(e.restDecoder);for(let s=0;s<t;s++){const t=e.readInfo();if(10===t){const t=Xe(e.restDecoder);yield new yi(vr(n,r),t),r+=t}else if(31&t){const s=!(192&t),i=new fi(vr(n,r),null,(t&ie)===ie?e.readLeftID():null,null,(t&se)===se?e.readRightID():null,s?e.readParentInfo()?e.readString():e.readLeftID():null,!s||32&~t?null:e.readString(),pi(e,t));yield i,r+=i.length}else{const t=e.readLen();yield new Hs(vr(n,r),t),r+=t}}}}(e),this.curr=null,this.done=!1,this.filterSkips=t,this.next()}next(){do{this.curr=this.gen.next().value||null}while(this.filterSkips&&null!==this.curr&&this.curr.constructor===yi);return this.curr}}class Nr{constructor(e){this.currClient=0,this.startClock=0,this.written=0,this.encoder=e,this.clientStructs=[]}}const Mr=(e,t=cr,n=sr)=>{const r=new t,s=new Br(new n(qe(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++,Ee(r.restEncoder,t),Ee(r.restEncoder,o)),t=i.id.client,o=0,n=0!==i.id.clock),i.constructor===yi&&(n=!0),n||(o=i.id.clock+i.length);0!==o&&(e++,Ee(r.restEncoder,t),Ee(r.restEncoder,o));const c=_e();return Ee(c,e),((e,t)=>{De(e,ke(t))})(c,r.restEncoder),r.restEncoder=c,r.toUint8Array()}return Ee(r.restEncoder,0),r.toUint8Array()},Fr=(e,t)=>{if(e.constructor===Hs){const{client:n,clock:r}=e.id;return new Hs(vr(n,r+t),e.length-t)}if(e.constructor===yi){const{client:n,clock:r}=e.id;return new yi(vr(n,r+t),e.length-t)}{const n=e,{client:r,clock:s}=n.id;return new fi(vr(r,s+t),null,vr(r,s+t-1),null,n.rightOrigin,n.parent,n.parentSub,n.content.splice(t))}},Wr=(e,t=sr,n=lr)=>{if(1===e.length)return e[0];const r=e.map(e=>new t(qe(e)));let s=r.map(e=>new Br(e,!0)),i=null;const o=new n,c=new Nr(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===yi?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)Kr(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===yi)i.struct.length=n.id.clock+n.length-i.struct.id.clock;else{Kr(c,i.struct,i.offset);const e=n.id.clock-i.struct.id.clock-i.struct.length;i={struct:new yi(vr(t,i.struct.id.clock+i.struct.length),e),offset:0}}else{const t=i.struct.id.clock+i.struct.length-n.id.clock;t>0&&(i.struct.constructor===yi?i.struct.length-=t:n=Fr(n,t)),i.struct.mergeWith(n)||(Kr(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!==yi;n=e.next())Kr(c,i.struct,i.offset),i={struct:n,offset:0}}null!==i&&(Kr(c,i.struct,i.offset),i=null),Vr(c);const l=r.map(e=>(e=>{const t=new qn,n=Xe(e.restDecoder);for(let r=0;r<n;r++){e.resetDsCurVal();const n=Xe(e.restDecoder),r=Xe(e.restDecoder);if(r>0){const s=nn(t.clients,n,()=>[]);for(let t=0;t<r;t++)s.push(new Jn(e.readDsClock(),e.readDsLen()))}}return t})(e)),a=(e=>{const t=new qn;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++)de(i,e[t].clients.get(s)||[]);t.clients.set(s,i)}});return Qn(t),t})(l);return Zn(o,a),o.toUint8Array()},zr=e=>{e.written>0&&(e.clientStructs.push({written:e.written,restEncoder:ke(e.encoder.restEncoder)}),e.encoder.restEncoder=_e(),e.written=0)},Kr=(e,t,n)=>{e.written>0&&e.currClient!==t.id.client&&zr(e),0===e.written&&(e.currClient=t.id.client,e.encoder.writeClient(t.id.client),Ee(e.encoder.restEncoder,t.id.clock+n)),t.write(e.encoder,n),e.written++},Vr=e=>{zr(e);const t=e.encoder.restEncoder;Ee(t,e.clientStructs.length);for(let n=0;n<e.clientStructs.length;n++){const r=e.clientStructs[n];Ee(t,r.written),De(t,r.restEncoder)}},Hr="You must not compute changes after the event-handler fired.";class Jr{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=qr(this.currentTarget,this.target))}deletes(e){return Yn(this.transaction.deleteSet,e.id)}get keys(){if(null===this._keys){if(0===this.transaction.doc._transactionCleanups.length)throw We(Hr);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=ue(e.content.getContent())}else null!==e&&this.deletes(e)?(s="update",i=ue(e.content.getContent())):(s="add",i=void 0)}else{if(!this.deletes(r))return;s="delete",i=ue(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 We(Hr);const t=this.target,n=ae(),r=ae(),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 qr=(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},Gr=()=>{((...e)=>{e.unshift(Wn),Kn.forEach(t=>t.print(e))})("Invalid access: Add Yjs type to a document before reading data.")};let Yr=0;class Qr{constructor(e,t){e.marker=!0,this.p=e,this.index=t,this.timestamp=Yr++}}const Xr=(e,t,n)=>{e.p.marker=!1,e.p=t,t.marker=!0,e.index=n,e.timestamp=Yr++},Zr=(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)=>ee(t-e.index)<ee(t-n.index)?e:n);let r=e._start,s=0;for(null!==n&&(r=n.p,s=n.index,(e=>{e.timestamp=Yr++})(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&&ee(n.index-s)<r.parent.length/80?(Xr(n,r,s),n):((e,t,n)=>{if(e.length>=80){const r=e.reduce((e,t)=>e.timestamp<t.timestamp?e:t);return Xr(r,t,n),r}{const r=new Qr(t,n);return e.push(r),r}})(e._searchMarker,r,s)},es=(e,t,n)=>{for(let r=e.length-1;r>=0;r--){const s=e[r];if(n>0){let t=s.p;for(t.marker=!1;t&&(t.deleted||!t.countable);)t=t.left,t&&!t.deleted&&t.countable&&(s.index-=t.length);if(null===t||!0===t.marker){e.splice(r,1);continue}s.p=t,t.marker=!0}(t<s.index||n>0&&t===s.index)&&(s.index=ne(t,s.index+n))}},ts=(e,t,n)=>{const r=e,s=t.changedParentTypes;for(;nn(s,e,()=>[]).push(n),null!==e._item;)e=e._item.parent;yr(r._eH,n,t)};class ns{constructor(){this._item=null,this._map=new Map,this._start=null,this.doc=null,this._length=0,this._eH=fr(),this._dEH=fr(),this._searchMarker=null}get parent(){return this._item?this._item.parent:null}_integrate(e,t){this.doc=e,this._item=t}_copy(){throw ze()}clone(){throw ze()}_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){pr(this._eH,e)}observeDeep(e){pr(this._dEH,e)}unobserve(e){gr(this._eH,e)}unobserveDeep(e){gr(this._dEH,e)}toJSON(){}}const rs=(e,t,n)=>{e.doc??Gr(),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},ss=e=>{e.doc??Gr();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},is=(e,t)=>{let n=0,r=e._start;for(e.doc??Gr();null!==r;){if(r.countable&&!r.deleted){const s=r.content.getContent();for(let r=0;r<s.length;r++)t(s[r],n++,e)}r=r.right}},os=(e,t)=>{const n=[];return is(e,(r,s)=>{n.push(t(r,s,e))}),n},cs=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}}}},ls=(e,t)=>{e.doc??Gr();const n=Zr(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}},as=(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 u=()=>{a.length>0&&(s=new fi(vr(o,xr(c,o)),s,s&&s.lastId,l,l&&l.id,t,null,new ti(a)),s.integrate(e,0),a=[])};r.forEach(n=>{if(null===n)a.push(n);else switch(n.constructor){case Number:case Object:case Boolean:case Array:case String:a.push(n);break;default:switch(u(),n.constructor){case Uint8Array:case ArrayBuffer:s=new fi(vr(o,xr(c,o)),s,s&&s.lastId,l,l&&l.id,t,null,new Js(new Uint8Array(n))),s.integrate(e,0);break;case nr:s=new fi(vr(o,xr(c,o)),s,s&&s.lastId,l,l&&l.id,t,null,new Ys(n)),s.integrate(e,0);break;default:if(!(n instanceof ns))throw new Error("Unexpected content type in insert operation");s=new fi(vr(o,xr(c,o)),s,s&&s.lastId,l,l&&l.id,t,null,new di(n)),s.integrate(e,0)}}}),u()},us=()=>We("Length exceeded!"),ds=(e,t,n,r)=>{if(n>t._length)throw us();if(0===n)return t._searchMarker&&es(t._searchMarker,n,r.length),as(e,t,null,r);const s=n,i=Zr(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&&Or(e,vr(o.id.client,o.id.clock+n));break}n-=o.length}return t._searchMarker&&es(t._searchMarker,s,r.length),as(e,t,o,r)},hs=(e,t,n,r)=>{if(0===r)return;const s=n,i=r,o=Zr(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&&Or(e,vr(c.id.client,c.id.clock+n)),n-=c.length);for(;r>0&&null!==c;)c.deleted||(r<c.length&&Or(e,vr(c.id.client,c.id.clock+r)),c.delete(e),r-=c.length),c=c.right;if(r>0)throw us();t._searchMarker&&es(t._searchMarker,s,-i+r)},fs=(e,t,n)=>{const r=t._map.get(n);void 0!==r&&r.delete(e)},ps=(e,t,n,r)=>{const s=t._map.get(n)||null,i=e.doc,o=i.clientID;let c;if(null==r)c=new ti([r]);else switch(r.constructor){case Number:case Object:case Boolean:case Array:case String:case Date:case BigInt:c=new ti([r]);break;case Uint8Array:c=new Js(r);break;case nr:c=new Ys(r);break;default:if(!(r instanceof ns))throw new Error("Unexpected content type");c=new di(r)}new fi(vr(o,xr(i.store,o)),s,s&&s.lastId,null,null,t,n,c).integrate(e,0)},gs=(e,t)=>{e.doc??Gr();const n=e._map.get(t);return void 0===n||n.deleted?void 0:n.content.getContent()[n.length-1]},ys=e=>{const t={};return e.doc??Gr(),e._map.forEach((e,n)=>{e.deleted||(t[n]=e.content.getContent()[e.length-1])}),t},ms=(e,t)=>{e.doc??Gr();const n=e._map.get(t);return void 0!==n&&!n.deleted},bs=e=>{return e.doc??Gr(),t=e._map.entries(),n=e=>!e[1].deleted,Vn(()=>{let e;do{e=t.next()}while(!e.done&&!n(e.value));return e});var t,n};class vs extends Jr{}class ws extends ns{constructor(){super(),this._prelimContent=[],this._searchMarker=[]}static from(e){const t=new ws;return t.push(e),t}_integrate(e,t){super._integrate(e,t),this.insert(0,this._prelimContent),this._prelimContent=null}_copy(){return new ws}clone(){const e=new ws;return e.insert(0,this.toArray().map(e=>e instanceof ns?e.clone():e)),e}get length(){return this.doc??Gr(),this._length}_callObserver(e,t){super._callObserver(e,t),ts(this,e,new vs(this,e))}insert(e,t){null!==this.doc?$r(this.doc,n=>{ds(n,this,e,t)}):this._prelimContent.splice(e,0,...t)}push(e){null!==this.doc?$r(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;as(e,t,r,n)})(t,this,e)}):this._prelimContent.push(...e)}unshift(e){this.insert(0,e)}delete(e,t=1){null!==this.doc?$r(this.doc,n=>{hs(n,this,e,t)}):this._prelimContent.splice(e,t)}get(e){return ls(this,e)}toArray(){return ss(this)}slice(e=0,t=this.length){return rs(this,e,t)}toJSON(){return this.map(e=>e instanceof ns?e.toJSON():e)}map(e){return os(this,e)}forEach(e){is(this,e)}[Symbol.iterator](){return cs(this)}_write(e){e.writeTypeRef(si)}}class _s extends Jr{constructor(e,t,n){super(e,t),this.keysChanged=n}}class ks extends ns{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 ks}clone(){const e=new ks;return this.forEach((t,n)=>{e.set(n,t instanceof ns?t.clone():t)}),e}_callObserver(e,t){ts(this,e,new _s(this,e,t))}toJSON(){this.doc??Gr();const e={};return this._map.forEach((t,n)=>{if(!t.deleted){const r=t.content.getContent()[t.length-1];e[n]=r instanceof ns?r.toJSON():r}}),e}get size(){return[...bs(this)].length}keys(){return Hn(bs(this),e=>e[0])}values(){return Hn(bs(this),e=>e[1].content.getContent()[e[1].length-1])}entries(){return Hn(bs(this),e=>[e[0],e[1].content.getContent()[e[1].length-1]])}forEach(e){this.doc??Gr(),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?$r(this.doc,t=>{fs(t,this,e)}):this._prelimContent.delete(e)}set(e,t){return null!==this.doc?$r(this.doc,n=>{ps(n,this,e,t)}):this._prelimContent.set(e,t),t}get(e){return gs(this,e)}has(e){return ms(this,e)}clear(){null!==this.doc?$r(this.doc,e=>{this.forEach(function(t,n,r){fs(e,r,n)})}):this._prelimContent.clear()}_write(e){e.writeTypeRef(ii)}}const Ss=(e,t)=>e===t||"object"==typeof e&&"object"==typeof t&&e&&t&&((e,t)=>e===t||vn(e)===vn(t)&&((e,t)=>{for(const n in e)if(!t(e[n],n))return!1;return!0})(e,(e,n)=>(void 0!==e||wn(t,n))&&t[n]===e))(e,t);class xs{constructor(e,t,n,r){this.left=e,this.right=t,this.index=n,this.currentAttributes=r}forward(){if(null===this.right&&Ke(),this.right.content.constructor===Xs)this.right.deleted||Is(this.currentAttributes,this.right.content);else this.right.deleted||(this.index+=this.right.length);this.left=this.right,this.right=this.right.right}}const Es=(e,t,n)=>{for(;null!==t.right&&n>0;){if(t.right.content.constructor===Xs)t.right.deleted||Is(t.currentAttributes,t.right.content);else t.right.deleted||(n<t.right.length&&Or(e,vr(t.right.id.client,t.right.id.clock+n)),t.index+=t.right.length,n-=t.right.length);t.left=t.right,t.right=t.right.right}return t},Cs=(e,t,n,r)=>{const s=new Map,i=r?Zr(t,n):null;if(i){const t=new xs(i.p.left,i.p,i.index,s);return Es(e,t,n-i.index)}{const r=new xs(null,t._start,0,s);return Es(e,r,n)}},As=(e,t,n,r)=>{for(;null!==n.right&&(!0===n.right.deleted||n.right.content.constructor===Xs&&Ss(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 fi(vr(i,xr(s.store,i)),c,c&&c.lastId,l,l&&l.id,t,null,new Xs(o,r));a.integrate(e,0),n.right=a,n.forward()})},Is=(e,t)=>{const{key:n,value:r}=t;null===r?e.delete(n):e.set(n,r)},Os=(e,t)=>{for(;null!==e.right&&(e.right.deleted||e.right.content.constructor===Xs&&Ss(t[e.right.content.key]??null,e.right.content.value));)e.forward()},Ds=(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(!Ss(a,l)){o.set(c,a);const{left:r,right:u}=n;n.right=new fi(vr(i,xr(s.store,i)),r,r&&r.lastId,u,u&&u.id,t,null,new Xs(c,l)),n.right.integrate(e,0),n.forward()}}return o},Ts=(e,t,n,r,s)=>{n.currentAttributes.forEach((e,t)=>{void 0===s[t]&&(s[t]=null)});const i=e.doc,o=i.clientID;Os(n,s);const c=Ds(e,t,n,s),l=r.constructor===String?new ni(r):r instanceof ns?new di(r):new Qs(r);let{left:a,right:u,index:d}=n;t._searchMarker&&es(t._searchMarker,n.index,l.getLength()),u=new fi(vr(o,xr(i.store,o)),a,a&&a.lastId,u,u&&u.id,t,null,l),u.integrate(e,0),n.right=u,n.index=d,n.forward(),As(e,t,n,c)},js=(e,t,n,r,s)=>{const i=e.doc,o=i.clientID;Os(n,s);const c=Ds(e,t,n,s);e:for(;null!==n.right&&(r>0||c.size>0&&(n.right.deleted||n.right.content.constructor===Xs));){if(!n.right.deleted)switch(n.right.content.constructor){case Xs:{const{key:t,value:i}=n.right.content,o=s[t];if(void 0!==o){if(Ss(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&&Or(e,vr(n.right.id.client,n.right.id.clock+r)),r-=n.right.length}n.forward()}if(r>0){let s="";for(;r>0;r--)s+="\n";n.right=new fi(vr(o,xr(i.store,o)),n.left,n.left&&n.left.lastId,n.right,n.right&&n.right.id,t,null,new ni(s)),n.right.integrate(e,0),n.forward()}As(e,t,n,c)},Us=(e,t,n,r,s)=>{let i=t;const o=en();for(;i&&(!i.countable||i.deleted);){if(!i.deleted&&i.content.constructor===Xs){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 Xs:{const{key:i,value:a}=n,u=r.get(i)??null;o.get(i)===n&&u!==a||(t.delete(e),c++,l||(s.get(i)??null)!==a||u===a||(null===u?s.delete(i):s.set(i,u))),l||t.deleted||Is(s,n);break}}}t=t.right}return c},Ps=e=>{let t=0;return $r(e.doc,n=>{let r=e._start,s=e._start,i=en();const o=tn(i);for(;s;){if(!1===s.deleted)if(s.content.constructor===Xs)Is(o,s.content);else t+=Us(n,r,s,i,o),i=tn(o),r=s;s=s.right}}),t},Ls=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&&Tr(e,n.store.clients.get(r),i,s,e=>{e.deleted||e.content.constructor!==Xs||e.constructor===Hs||t.add(e.parent)})}$r(n,n=>{Gn(e,e.deleteSet,e=>{if(e instanceof Hs||!e.parent._hasFormatting||t.has(e.parent))return;const r=e.parent;e.content.constructor===Xs?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===Xs){const r=t.content.key;n.has(r)?t.delete(e):n.add(r)}t=t.left}})(n,e)});for(const e of t)Ps(e)})},Rs=(e,t,n)=>{const r=n,s=tn(t.currentAttributes),i=t.right;for(;n>0&&null!==t.right;){if(!1===t.right.deleted)switch(t.right.content.constructor){case di:case Qs:case ni:n<t.right.length&&Or(e,vr(t.right.id.client,t.right.id.clock+n)),n-=t.right.length,t.right.delete(e)}t.forward()}i&&Us(e,i,t.right,s,t.currentAttributes);const o=(t.left||t.right).parent;return o._searchMarker&&es(o._searchMarker,t.index,-r+n),t};class $s extends Jr{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=[];$r(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 u=()=>{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=yn({},o))),l=0}e&&t.push(e),i=null}};for(;null!==s;){switch(s.content.constructor){case di:case Qs:this.adds(s)?this.deletes(s)||(u(),i="insert",c=s.content.getContent()[0],u()):this.deletes(s)?("delete"!==i&&(u(),i="delete"),a+=1):s.deleted||("retain"!==i&&(u(),i="retain"),l+=1);break;case ni:this.adds(s)?this.deletes(s)||("insert"!==i&&(u(),i="insert"),c+=s.content.str):this.deletes(s)?("delete"!==i&&(u(),i="delete"),a+=s.length):s.deleted||("retain"!==i&&(u(),i="retain"),l+=s.length);break;case Xs:{const{key:t,value:c}=s.content;if(this.adds(s)){if(!this.deletes(s)){const l=n.get(t)??null;Ss(l,c)?null!==c&&s.delete(e):("retain"===i&&u(),Ss(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;Ss(e,c)||("retain"===i&&u(),o[t]=e)}else if(!s.deleted){r.set(t,c);const n=o[t];void 0!==n&&(Ss(n,c)?null!==n&&s.delete(e):("retain"===i&&u(),null===c?delete o[t]:o[t]=c))}s.deleted||("insert"===i&&u(),Is(n,s.content));break}}s=s.right}for(u();t.length>0;){const e=t[t.length-1];if(void 0===e.retain||void 0!==e.attributes)break;t.pop()}}),this._delta=t}return this._delta}}class Bs extends ns{constructor(e){super(),this._pending=void 0!==e?[()=>this.insert(0,e)]:[],this._searchMarker=[],this._hasFormatting=!1}get length(){return this.doc??Gr(),this._length}_integrate(e,t){super._integrate(e,t);try{this._pending.forEach(e=>e())}catch(e){}this._pending=null}_copy(){return new Bs}clone(){const e=new Bs;return e.applyDelta(this.toDelta()),e}_callObserver(e,t){super._callObserver(e,t);const n=new $s(this,e,t);ts(this,e,n),!e.local&&this._hasFormatting&&(e._needFormattingCleanup=!0)}toString(){this.doc??Gr();let e="",t=this._start;for(;null!==t;)!t.deleted&&t.countable&&t.content.constructor===ni&&(e+=t.content.str),t=t.right;return e}toJSON(){return this.toString()}applyDelta(e,{sanitize:t=!0}={}){null!==this.doc?$r(this.doc,n=>{const r=new xs(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)&&Ts(n,this,r,o,i.attributes||{})}else void 0!==i.retain?js(n,this,r,i.retain,i.attributes||{}):void 0!==i.delete&&Rs(n,r,i.delete)}}):this._pending.push(()=>this.applyDelta(e))}toDelta(e,t,n){this.doc??Gr();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(wr(c,e)||void 0!==t&&wr(c,t))switch(c.content.constructor){case ni:{const r=s.get("ychange");void 0===e||wr(c,e)?void 0===t||wr(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 di:case Qs:{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 Xs:wr(c,e)&&(l(),Is(s,c.content))}c=c.right}l()};return e||t?$r(i,n=>{e&&_r(n,e),t&&_r(n,t),a()},"cleanup"):a(),r}insert(e,t,n){if(t.length<=0)return;const r=this.doc;null!==r?$r(r,r=>{const s=Cs(r,this,e,!n);n||(n={},s.currentAttributes.forEach((e,t)=>{n[t]=e})),Ts(r,this,s,t,n)}):this._pending.push(()=>this.insert(e,t,n))}insertEmbed(e,t,n){const r=this.doc;null!==r?$r(r,r=>{const s=Cs(r,this,e,!n);Ts(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?$r(n,n=>{Rs(n,Cs(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?$r(r,r=>{const s=Cs(r,this,e,!1);null!==s.right&&js(r,this,s,t,n)}):this._pending.push(()=>this.format(e,t,n))}removeAttribute(e){null!==this.doc?$r(this.doc,t=>{fs(t,this,e)}):this._pending.push(()=>this.removeAttribute(e))}setAttribute(e,t){null!==this.doc?$r(this.doc,n=>{ps(n,this,e,t)}):this._pending.push(()=>this.setAttribute(e,t))}getAttribute(e){return gs(this,e)}getAttributes(){return ys(this)}_write(e){e.writeTypeRef(oi)}}class Ns{constructor(e,t=()=>!0){this._filter=t,this._root=e,this._currentNode=e._start,this._firstCall=!0,e.doc??Gr()}[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!==Fs&&t.constructor!==Ms||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 Ms extends ns{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 Ms}clone(){const e=new Ms;return e.insert(0,this.toArray().map(e=>e instanceof ns?e.clone():e)),e}get length(){return this.doc??Gr(),null===this._prelimContent?this._length:this._prelimContent.length}createTreeWalker(e){return new Ns(this,e)}querySelector(e){e=e.toUpperCase();const t=new Ns(this,t=>t.nodeName&&t.nodeName.toUpperCase()===e).next();return t.done?null:t.value}querySelectorAll(e){return e=e.toUpperCase(),he(new Ns(this,t=>t.nodeName&&t.nodeName.toUpperCase()===e))}_callObserver(e,t){ts(this,e,new Ws(this,t,e))}toString(){return os(this,e=>e.toString()).join("")}toJSON(){return this.toString()}toDOM(e=document,t={},n){const r=e.createDocumentFragment();return void 0!==n&&n._createAssociation(r,this),is(this,s=>{r.insertBefore(s.toDOM(e,t,n),null)}),r}insert(e,t){null!==this.doc?$r(this.doc,n=>{ds(n,this,e,t)}):this._prelimContent.splice(e,0,...t)}insertAfter(e,t){if(null!==this.doc)$r(this.doc,n=>{const r=e&&e instanceof ns?e._item:e;as(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 We("Reference item not found");n.splice(r,0,...t)}}delete(e,t=1){null!==this.doc?$r(this.doc,n=>{hs(n,this,e,t)}):this._prelimContent.splice(e,t)}toArray(){return ss(this)}push(e){this.insert(this.length,e)}unshift(e){this.insert(0,e)}get(e){return ls(this,e)}slice(e=0,t=this.length){return rs(this,e,t)}forEach(e){is(this,e)}_write(e){e.writeTypeRef(li)}}class Fs extends Ms{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 Fs(this.nodeName)}clone(){const e=new Fs(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 ns?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?$r(this.doc,t=>{fs(t,this,e)}):this._prelimAttrs.delete(e)}setAttribute(e,t){null!==this.doc?$r(this.doc,n=>{ps(n,this,e,t)}):this._prelimAttrs.set(e,t)}getAttribute(e){return gs(this,e)}hasAttribute(e){return ms(this,e)}getAttributes(e){return e?((e,t)=>{const n={};return e._map.forEach((e,r)=>{let s=e;for(;null!==s&&(!t.sv.has(s.id.client)||s.id.clock>=(t.sv.get(s.id.client)||0));)s=s.left;null!==s&&wr(s,t)&&(n[r]=s.content.getContent()[s.length-1])}),n})(this,e):ys(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 is(this,s=>{r.appendChild(s.toDOM(e,t,n))}),void 0!==n&&n._createAssociation(r,this),r}_write(e){e.writeTypeRef(ci),e.writeKey(this.nodeName)}}class Ws extends Jr{constructor(e,t,n){super(e,n),this.childListChanged=!1,this.attributesChanged=new Set,t.forEach(e=>{null===e?this.childListChanged=!0:this.attributesChanged.add(e)})}}class zs extends ks{constructor(e){super(),this.hookName=e}_copy(){return new zs(this.hookName)}clone(){const e=new zs(this.hookName);return this.forEach((t,n)=>{e.set(n,t)}),e}toDOM(e=document,t={},n){const r=t[this.hookName];let s;return s=void 0!==r?r.createDom(this):document.createElement(this.hookName),s.setAttribute("data-yjs-hook",this.hookName),void 0!==n&&n._createAssociation(s,this),s}_write(e){e.writeTypeRef(ai),e.writeKey(this.hookName)}}class Ks extends Bs{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 Ks}clone(){const e=new Ks;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(ui)}}class Vs{constructor(e,t){this.id=e,this.length=t}get deleted(){throw ze()}mergeWith(e){return!1}write(e,t,n){throw ze()}integrate(e,t){throw ze()}}class Hs extends Vs{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),Er(e.doc.store,this)}write(e,t){e.writeInfo(0),e.writeLen(this.length-t)}getMissing(e,t){return null}}class Js{constructor(e){this.content=e}getLength(){return 1}getContent(){return[this.content]}isCountable(){return!0}copy(){return new Js(this.content)}splice(e){throw ze()}mergeWith(e){return!1}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeBuf(this.content)}getRef(){return 3}}class qs{constructor(e){this.len=e}getLength(){return this.len}getContent(){return[]}isCountable(){return!1}copy(){return new qs(this.len)}splice(e){const t=new qs(this.len-e);return this.len=e,t}mergeWith(e){return this.len+=e.len,!0}integrate(e,t){Xn(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 Gs=(e,t)=>new nr({guid:e,...t,shouldLoad:t.shouldLoad||t.autoLoad||!1});class Ys{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 Ys(Gs(this.doc.guid,this.opts))}splice(e){throw ze()}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 Qs{constructor(e){this.embed=e}getLength(){return 1}getContent(){return[this.embed]}isCountable(){return!0}copy(){return new Qs(this.embed)}splice(e){throw ze()}mergeWith(e){return!1}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeJSON(this.embed)}getRef(){return 5}}class Xs{constructor(e,t){this.key=e,this.value=t}getLength(){return 1}getContent(){return[]}isCountable(){return!1}copy(){return new Xs(this.key,this.value)}splice(e){throw ze()}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 Zs{constructor(e){this.arr=e}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new Zs(this.arr)}splice(e){const t=new Zs(this.arr.slice(e));return this.arr=this.arr.slice(0,e),t}mergeWith(e){return this.arr=this.arr.concat(e.arr),!0}integrate(e,t){}delete(e){}gc(e){}write(e,t){const n=this.arr.length;e.writeLen(n-t);for(let r=t;r<n;r++){const t=this.arr[r];e.writeString(void 0===t?"undefined":JSON.stringify(t))}}getRef(){return 2}}const ei="development"===On("node_env");class ti{constructor(e){this.arr=e,ei&&kn(e)}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new ti(this.arr)}splice(e){const t=new ti(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 ni{constructor(e){this.str=e}getLength(){return this.str.length}getContent(){return this.str.split("")}isCountable(){return!0}copy(){return new ni(this.str)}splice(e){const t=new ni(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 ri=[e=>new ws,e=>new ks,e=>new Bs,e=>new Fs(e.readKey()),e=>new Ms,e=>new zs(e.readKey()),e=>new Ks],si=0,ii=1,oi=2,ci=3,li=4,ai=5,ui=6;class di{constructor(e){this.type=e}getLength(){return 1}getContent(){return[this.type]}isCountable(){return!0}copy(){return new di(this.type._copy())}splice(e){throw ze()}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 hi=(e,t,n)=>{const{client:r,clock:s}=t.id,i=new fi(vr(r,s+n),t,vr(r,s+n-1),t.right,t.rightOrigin,t.parent,t.parentSub,t.content.splice(n));return t.deleted&&i.markDeleted(),t.keep&&(i.keep=!0),null!==t.redone&&(i.redone=vr(t.redone.client,t.redone.clock+n)),t.right=i,null!==i.right&&(i.right.left=i),e._mergeStructs.push(i),null!==i.parentSub&&null===i.right&&i.parent._map.set(i.parentSub,i),t.length=n,i};class fi extends Vs{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>=xr(t,this.origin.client))return this.origin.client;if(this.rightOrigin&&this.rightOrigin.client!==this.id.client&&this.rightOrigin.clock>=xr(t,this.rightOrigin.client))return this.rightOrigin.client;if(this.parent&&this.parent.constructor===mr&&this.id.client!==this.parent.client&&this.parent.clock>=xr(t,this.parent.client))return this.parent.client;if(this.origin&&(this.left=Dr(e,t,this.origin),this.origin=this.left.lastId),this.rightOrigin&&(this.right=Or(e,this.rightOrigin),this.rightOrigin=this.right.id),this.left&&this.left.constructor===Hs||this.right&&this.right.constructor===Hs)this.parent=null;else if(this.parent){if(this.parent.constructor===mr){const e=Ar(t,this.parent);e.constructor===Hs?this.parent=null:this.parent=e.content.type}}else this.left&&this.left.constructor===fi?(this.parent=this.left.parent,this.parentSub=this.left.parentSub):this.right&&this.right.constructor===fi&&(this.parent=this.right.parent,this.parentSub=this.right.parentSub);return null}integrate(e,t){if(t>0&&(this.id.clock+=t,this.left=Dr(e,e.doc.store,vr(this.id.client,this.id.clock-1)),this.origin=this.left.lastId,this.content=this.content.splice(t),this.length-=t),this.parent){if(!this.left&&(!this.right||null!==this.right.left)||this.left&&this.left.right!==this.right){let t,n=this.left;if(null!==n)t=n.right;else if(null!==this.parentSub)for(t=this.parent._map.get(this.parentSub)||null;null!==t&&null!==t.left;)t=t.left;else t=this.parent._start;const r=new Set,s=new Set;for(;null!==t&&t!==this.right;){if(s.add(t),r.add(t),br(this.origin,t.origin)){if(t.id.client<this.id.client)n=t,r.clear();else if(br(this.rightOrigin,t.rightOrigin))break}else{if(null===t.origin||!s.has(Ar(e.doc.store,t.origin)))break;r.has(Ar(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),Er(e.doc.store,this),this.content.integrate(e,this),Pr(e,this.parent,this.parentSub),(null!==this.parent._item&&this.parent._item.deleted||null!==this.parentSub&&null!==this.right)&&this.delete(e)}else new Hs(this.id,this.length).integrate(e,0)}get next(){let e=this.right;for(;null!==e&&e.deleted;)e=e.right;return e}get prev(){let e=this.left;for(;null!==e&&e.deleted;)e=e.left;return e}get lastId(){return 1===this.length?this.id:vr(this.id.client,this.id.clock+this.length-1)}mergeWith(e){if(this.constructor===e.constructor&&br(e.origin,this.lastId)&&this.right===e&&br(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(),Xn(e.deleteSet,this.id.client,this.id.clock,this.length),Pr(e,t,this.parentSub),this.content.delete(e)}}gc(e,t){if(!this.deleted)throw Ke();this.content.gc(e),t?((e,t,n)=>{const r=e.clients.get(t.id.client);r[Cr(r,t.id.clock)]=n})(e,this,new Hs(this.id,this.length)):this.content=new qs(this.length)}write(e,t){const n=t>0?vr(this.id.client,this.id.clock+t-1):this.origin,r=this.rightOrigin,s=this.parentSub,i=31&this.content.getRef()|(null===n?0:ie)|(null===r?0:se)|(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 Ke()})(t);e.writeParentInfo(!0),e.writeString(n)}else e.writeParentInfo(!1),e.writeLeftID(n.id)}else t.constructor===String?(e.writeParentInfo(!0),e.writeString(t)):t.constructor===mr?(e.writeParentInfo(!1),e.writeLeftID(t)):Ke();null!==s&&e.writeString(s)}this.content.write(e,t)}}const pi=(e,t)=>gi[31&t](e),gi=[()=>{Ke()},e=>new qs(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 Zs(n)},e=>new Js(e.readBuf()),e=>new ni(e.readString()),e=>new Qs(e.readJSON()),e=>new Xs(e.readKey(),e.readJSON()),e=>new di(ri[e.readTypeRef()](e)),e=>{const t=e.readLen(),n=[];for(let r=0;r<t;r++)n.push(e.readAny());return new ti(n)},e=>new Ys(Gs(e.readString(),e.readAny())),()=>{Ke()}];class yi extends Vs{get deleted(){return!0}delete(){}mergeWith(e){return this.constructor===e.constructor&&(this.length+=e.length,!0)}integrate(e,t){Ke()}write(e,t){e.writeInfo(10),Ee(e.restEncoder,this.length-t)}getMissing(e,t){return null}}const mi="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},bi="__ $YJS$ __";function vi(e,t,n){var r,s,i;if(!e.dx._allTables[t])return;const o=null===(i=null===(s=null===(r=e.table(t))||void 0===r?void 0:r.schema.yProps)||void 0===s?void 0:s.find(e=>e.prop===n))||void 0===i?void 0:i.updatesTable;return o&&e.dx._allTables[o]?e.table(o):void 0}mi[bi],mi[bi]=!0;const wi=new FinalizationRegistry(({cache:e,key:t})=>{delete e[t]});function _i(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=xi(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=xi(n,r,s),o=null===(t=this.cache[i])||void 0===t?void 0:t.deref();o&&wi.unregister(o),this.cache[i]=new WeakRef(e),wi.register(e,{cache:this.cache,key:i},e)},delete(e){wi.unregister(e);const t=xi(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 ki=new WeakSet;function Si(e){if(ki.has(e))throw new Error(`Y.Doc ${e.meta.parentId} has been destroyed`)}function xi(e,t,n){return`${e}[${t}].${n}`}const{getByKeyPath:Ei}=e.Dexie;let Ci=null;function Ai(e){Ci=e}function Ii(){}const Oi=new WeakMap;function Di(){return e.Dexie.Events(null,"load","sync","error")}class Ti{static getOrCreateDocument(e,t,n,r){var s,i;const o=_i(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 nr({meta:{db:e,updatesTable:s,parentProp:r,parentTable:n,parentId:i}}),t.add(o),o.on("destroy",()=>{ki.add(o),t.delete(o)}),o)}(e,o,t,n,c,r)}static load(e,t){var n;let r=Oi.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 Ti(e),r.graceTimeout=null!==(n=null==t?void 0:t.gracePeriod)&&void 0!==n?n:-1,Oi.set(e,r)),r}static release(e){if(!e||ki.has(e))return;const t=Oi.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(Ti.on("beforeunload").fire(this)).finally(()=>{var e;0===this.refCount&&(null===(e=this.doc)||void 0===e||e.destroy())})}static for(e){return Oi.get(e)}static get currentUpdateRow(){return Ci}get whenLoaded(){return this._whenLoaded||(this._whenLoaded=new Promise((t,n)=>{this.doc?this.doc.isLoaded?t():this._error?n(this._error):ki.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):ki.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=Di(),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]=()=>Ti.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`);Si(t),this.stopObserving=function(t,n,r,s,i,o){let c=0,l=!0;const a=e.liveQuery(()=>{Si(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?(Si(n),e.length>0&&$r(n,()=>{e.forEach(e=>{try{Ai(e),dr(n,e.u)}finally{Ai(null)}})},t,!1),l&&(l=!1,n.emit("load",[n]))):n.destroy()},e=>{t.on("error").fire(e)}),u=(e,n)=>{n!==t&&r.table(i).add({k:o,u:e,f:1}).then(e=>{e===c-1&&++c}).catch(e=>{t.on("error").fire(e)})},d=()=>{a.unsubscribe(),n.off("updateV2",u),n.off("destroy",d)};return n.on("updateV2",u),n.on("destroy",d),d}(this,t,n,r,i,s),Ti.on("new").fire(this)}destroy(){var e;Oi.delete(this.doc),this.doc=null,this.destroyed=!0,this.refCount=0,null===(e=this.stopObserving)||void 0===e||e.call(this),this.on=Di(),this.cleanupHandlers.forEach(e=>e())}addCleanupHandler(e){this.cleanupHandlers.push("function"==typeof e?e:()=>e.unsubscribe())}}function ji(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=vi(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=vi(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(Xt);yield t.table(e.name).put(Object.assign(Object.assign({},n||{i:Xt}),{unsentFrom:Math.max((null==n?void 0:n.unsentFrom)||1,l.i+1)}))})));break}case"u-reject":{const t=vi(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=Ti.getDocCache(n.dx).find(l.table,r,l.prop);s&&s.destroy()}break}case"in-sync":{const e=Ti.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}})}Ti.on=e.Dexie.Events(null,{new:[function(e,t){return e===Ii?t:function(){e.apply(this,arguments),t.apply(this,arguments)}}],beforeunload:[function(e,t){return e===Ii?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)}}]}),Ti.getDocCache=_i,e.Dexie.DexieYProvider?Ti=e.Dexie.DexieYProvider||Ti:e.Dexie.DexieYProvider=Ti;const Ui=new Map,Pi=new Set(["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array","DataView"]),Li=new Set(["Blob","File","ArrayBuffer",...Pi]);function Ri(e){return Object.prototype.toString.call(e).slice(8,-1)}function $i(e){if("object"!==typeof e||null===e)return!1;const t=Ri(e);return!!Li.has(t)&&("Blob"===t||"File"===t||e.byteLength>=4096)}function Bi(e,t,n){return r(this,void 0,void 0,function*(){const r=yield t();if(!r)throw new Error("Failed to load access token for blob upload");const s=function(){const e=new Uint8Array(18),t=new Uint8Array(e.buffer,0,6),n=Date.now();K>=n?++K:K=n,t[0]=K/1099511627776,t[1]=K/4294967296,t[2]=K/16777216,t[3]=K/65536,t[4]=K/256,t[5]=K;const r=new Uint8Array(e.buffer,6);return z(r),P(e)}(),i=`${e}/blob/${s}`;let o,c,l;const a=function(e){const t=Ri(e);return"Blob"===t||"File"===t?"Blob":"ArrayBuffer"===t?"ArrayBuffer":t}(n),u=Ri(n);if("Blob"===u||"File"===u)o=n,c=n.type||"application/octet-stream",l=n.size;else if("ArrayBuffer"===u)o=n,c="application/octet-stream",l=n.byteLength;else{if(!Pi.has(u))throw new Error(`Unsupported blob type: ${u}`);{const e=n,t=new ArrayBuffer(e.byteLength);new Uint8Array(t).set(new Uint8Array(e.buffer,e.byteOffset,e.byteLength)),o=t,c="application/octet-stream",l=e.byteLength}}const d=`${i}?ct=${encodeURIComponent(c)}`,h=yield fetch(d,{method:"PUT",headers:{Authorization:`Bearer ${r}`,"Content-Type":c},body:o});if(!h.ok){if(404===h.status||405===h.status)return null;throw new Error(`Failed to upload blob: ${h.status} ${h.statusText}`)}const f=yield h.json();return Object.assign({_bt:a,ref:f.ref,size:l},"Blob"===a?{ct:c}:{})})}function Ni(e,t,n){return r(this,arguments,void 0,function*(e,t,n,r=32768){const s={dirty:!1},i=yield Mi(e,t,n,r,s);return s.dirty&&"object"==typeof i&&null!==i&&i.constructor===Object&&(i._hasBlobRefs=1),i})}function Mi(e,t,n){return r(this,arguments,void 0,function*(e,t,n,r=32768,s={dirty:!1},i=new WeakSet){if(null==e)return e;if("string"==typeof e&&e.length>r&&r!==1/0){if(!1===Ui.get(t))return e;const r=new Blob([e],{type:"text/plain;charset=utf-8"}),i=yield Bi(t,n,r);return null===i?(Ui.set(t,!1),e):(Ui.set(t,!0),s.dirty=!0,Object.assign(Object.assign({},i),{_bt:"string"}))}if($i(e)){if(!1===Ui.get(t))return e;const r=yield Bi(t,n,e);return null===r?(Ui.set(t,!1),e):(Ui.set(t,!0),s.dirty=!0,r)}if("object"!=typeof e)return e;if(i.has(e))return e;if(i.add(e),Array.isArray(e)){const o=[];for(const c of e)o.push(yield Mi(c,t,n,r,s,i));return o}const o=Object.getPrototypeOf(e);if(o!==Object.prototype&&null!==o)return e;const c={};for(const[o,l]of Object.entries(e))c[o]=yield Mi(l,t,n,r,s,i);return c})}function Fi(e,t,n){return r(this,arguments,void 0,function*(e,t,n,r=32768){switch(e.type){case"insert":case"upsert":{const s=yield Promise.all(e.values.map(e=>Ni(e,t,n,r)));return Object.assign(Object.assign({},e),{values:s})}case"update":{const s=yield Promise.all(e.changeSpecs.map(e=>Ni(e,t,n,r)));return Object.assign(Object.assign({},e),{changeSpecs:s})}case"modify":{const s=yield Ni(e.changeSpec,t,n,r);return Object.assign(Object.assign({},e),{changeSpec:s})}default:return e}})}function Wi(e,t){switch(e.type){case"insert":case"upsert":return e.values.some(e=>zi(e,t));case"update":return e.changeSpecs.some(e=>zi(e,t));case"modify":return zi(e.changeSpec,t);default:return!1}}function zi(e,t,n=new WeakSet){if(null==e)return!1;if("string"==typeof e&&e.length>t&&t!==1/0)return!0;if($i(e))return!0;if("object"!=typeof e)return!1;if(n.has(e))return!1;if(n.add(e),Array.isArray(e))return e.some(e=>zi(e,t,n));const r=Object.getPrototypeOf(e);return(r===Object.prototype||null===r)&&Object.values(e).some(e=>zi(e,t,n))}function Ki(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 At(t),u={"Content-Type":"application/json",Accept:"application/octet-stream"};a&&(u.Authorization=`Bearer ${a.accessToken}`);const d=yield fetch(`${n}/y/download`,{body:Pt.stringify({downloadedRealms:s||{}}),method:"POST",headers:u,credentials:"include"});if(!d.ok)throw new Error(`Failed to download Yjs documents from server. Status: ${d.status}`);yield async function(e,...t){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()}}}(d),at,function(s){return o(this,arguments,function*(){var o,l,a,u;let d=null,h=null,f=null,p=[];function g(e){return r(this,void 0,void 0,function*(){const r=p[p.length-1];if(p.length>0){if(!d||!h||!f)throw new Error(`Protocol error from ${n}/y/download`);const e=vi(t,h,f);e&&(yield e.bulkAdd(p)),p=[]}d&&(h&&f&&r||e)&&(yield t.$syncState.update("syncState",t=>{const n=t.yDownloadedRealms||{};n[d]=e?"*":{tbl:h,prop:f,key:r.k},t.yDownloadedRealms=n}))})}try{try{for(var y,m=!0,b=c(s);!(o=(y=yield i(b.next())).done);m=!0){u=y.value,m=!1;const e=new Je(u);for(;Ge(e);)switch(Qe(e)){case 1:yield i(g(!0)),d=et(e);break;case 2:yield i(g(!1)),h=et(e),f=et(e);break;case 3:{const t=st(e),n=Ye(e);p.push({k:t,u:n});break}}yield i(g(!1))}}catch(e){l={error:e}}finally{try{m||o||!(a=b.return)||(yield i(a.call(b)))}finally{if(l)throw l.error}}yield i(g(!0))}catch(t){throw t instanceof e.DexieError||(yield i(g(!1))),t}})})})}const Vi=new WeakMap;function Hi(t){var n,r,s,i;let o=Vi.get(t);if(o&&o.expiration>Date.now()+3e5)return Promise.resolve(o.accessToken);const c=t.cloud.currentUser.value;return c&&c.accessToken&&(null!==(r=null===(n=c.accessTokenExpiration)||void 0===n?void 0:n.getTime())&&void 0!==r?r:1/0)>Date.now()+3e5?(Vi.set(t,{accessToken:c.accessToken,expiration:null!==(i=null===(s=c.accessTokenExpiration)||void 0===s?void 0:s.getTime())&&void 0!==i?i:1/0}),Promise.resolve(c.accessToken)):e.ignoreTransaction(()=>At(t).then(e=>{var n,r;return(null==e?void 0:e.accessToken)&&Vi.set(t,{accessToken:e.accessToken,expiration:null!==(r=null===(n=e.accessTokenExpiration)||void 0===n?void 0:n.getTime())&&void 0!==r?r:1/0}),(null==e?void 0:e.accessToken)||null}))}const Ji="currentSyncWorker";function qi(e,t,n,s){return Gi(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 qi(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 Gi(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,u,d;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:h}=t,f=yield e.getCurrentUser(),p=f.isLoggedIn?dt(e):[],g=p.map(t=>e.table(ht(t.name))),y=yield e.getPersistedSyncState(),m=f.isLoggedIn,b=m?function(e,t){const n=(null==t?void 0:t.syncedTables)||[];return dt(e).filter(e=>!n.includes(e.name))}(e,y):[];Ft(i);const v=b.length>0;if(v){if(o)return!0;yield e.transaction("rw",b,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))}))})}(b,f,null==y?void 0:y.realms)})),Ft(i)}const[w,_,k,{yMessages:S,lastUpdateIds:x}]=yield e.transaction("r",e.tables,()=>r(this,void 0,void 0,function*(){const t=yield e.getPersistedSyncState();let s=yield e.$baseRevs.toArray();s=s.filter(e=>p.some(t=>t.name===e.tableName));let o=yield yt(g,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(Xt),c=(null==o?void 0:o.unsentFrom)||1,l=(null==o?void 0:o.receivedUntil)||0,a=Math.min(c,l+1),u=yield Zt(i,a);u.length>0&&(r[i.name]=u[u.length-1].i);const d={};for(const e of u){const t=!(1&~(e.f||0));if(t&&e.i<c)continue;const n=JSON.stringify(e.k)+"/"+t;let r=d[n];r?(r.u.push(e.u),r.i=Math.max(e.i,r.i)):(d[n]=r={i:e.i,k:e.k,isLocal:t,u:[]},r.u.push(e.u))}for(const{k:e,isLocal:r,u:i,i:o}of Object.values(d)){const c=1===i.length?i[0]:Wr(i);if(r)n.push({type:"u-c",table:s.name,prop:t.prop,k:e,u:c,i:o});else{const r=Mr(c);n.push({type:"sv",table:s.name,prop:t.prop,k:e,sv:r})}}}return{yMessages:n,lastUpdateIds:r}})}(e,p);if(Ft(i),v){const e=[...(null==y?void 0:y.realms)||[],...(null==y?void 0:y.inviteRealms)||[]],l=yield function(e,t,n,s){return r(this,void 0,void 0,function*(){const i=`upload-${mt(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||"")&&G(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[]})}(b,f,n,e);return Ft(i),o=o.concat(l),[o,t,s,c]}return[o,t,s,c]})),E=w.some(e=>e.muts.some(e=>e.keys.length>0))||S.some(e=>"u-c"===e.type);if(o)return E;if("push"===c&&!E)return!1;const C=Kt(w,null==_?void 0:_.latestRevisions),A=(null==_?void 0:_.clientIdentity)||J(16);let I=w;const O=null!==(d=null===(u=e.cloud.options)||void 0===u?void 0:u.maxStringLength)&&void 0!==d?d:32768,D=function(e,t=32768){for(const n of e)for(const e of n.muts)if(Wi(e,t))return!0;return!1}(w,O);D&&(I=yield function(e,t,n){return r(this,arguments,void 0,function*(e,t,n,r=32768){const s=[];for(const i of e){const e=[];for(const s of i.muts){const i=yield Fi(s,t,n,r);e.push(i)}s.push({table:i.table,muts:e})}return s})}(w,h,()=>Hi(e),O)),Ft(i);const T=yield Mt(I,S,_,k,e,h,n,A,f),{done:j,newSyncState:U}=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 yt(g,e,{since:C});for(const t of g){const n=ft(t.name);if(s.some(e=>e.table===n&&e.muts.length>0)){if(C[n]){const r=C[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()])}Kt(s,C),yield zt(e,n,C,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=dt(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};m&&(o.syncedTables=p.map(e=>e.name).concat(b.map(e=>e.name))),o.latestRevisions=C,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=Yi(T.changes,s);if(yield Qt(c,e),T.yMessages){const{receivedUntils:t,resyncNeeded:n,yServerRevision:s}=yield ji(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 u=Object.values(n.dx._dbSchema).filter(e=>e.yProps).map(e=>e.yProps.map(e=>e.updatesTable)).flat();for(const e of u){const t=a[e],s=null!==(o=null==t?void 0:t.unsentFrom)&&void 0!==o?o:1,i=null!==(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(Xt);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:Xt,unsentFrom:s,receivedUntil:i})}))}})}(x,t,e),n&&(o.yDownloadedRealms={})}return e.$syncState.put(o,"syncState"),{done:0===s.length,newSyncState:o}}));if(!j)return yield Nt(e),yield Gi(e,t,n,{isInitialSync:s,cancelToken:i});const P=Object.values(n).some(e=>{var t;return null===(t=e.yProps)||void 0===t?void 0:t.length}),L=!!T.yMessages;if(P&&L)try{yield Ki(e,h,U)}catch(e){}return e.syncCompleteEvent.next(),!1})}function Yi(e,t){const n={};X(n,e);const r={};return X(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))H(r.val,e,t);break;case"del":break;case"upd":for(const e of Object.keys(s.mod))delete r.mod[e]}break}}}(n,r),function(e,t){const n={};for(const[t,r]of Object.entries(e))for(const[e,s]of Object.entries(r)){const r=n[t]||(n[t]={});(r[s.type]||(r[s.type]=[])).push({key:e,...s})}const r=[];for(const[e,s]of Object.entries(n)){const n={table:e,muts:[]};for(const[e,r]of Object.entries(s))switch(e){case"ups":{const e={type:"upsert",keys:r.map(e=>e.key),values:r.map(e=>e.val),txid:t};n.muts.push(e);break}case"upd":{const e={type:"update",keys:r.map(e=>e.key),changeSpecs:r.map(e=>e.mod),txid:t};n.muts.push(e);break}case"del":{const e={type:"delete",keys:r.map(e=>e.key),txid:t};n.muts.push(e);break}}r.push(n)}return r}(n)}function Qi(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,u,d;i.length>0;){const h=i.shift();try{yield t.firstValueFrom(s.cloud.syncState.pipe(n.filter(({phase:e})=>"in-sync"===e||"error"===e)));const i=s.cloud.persistedSyncState.value;if(!h)continue;switch(h.type){case"token-expired":const t=s.cloud.currentUser.value,n=yield Ot(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===(u=null==i?void 0:i.inviteRealms)||void 0===u?void 0:u.includes(h.realm)))&&(yield s.cloud.sync({purpose:"pull",wait:!0}));break;case"realms-changed":yield s.cloud.sync({purpose:"pull",wait:!0});break;case"changes":if("error"===(null===(d=s.cloud.syncState.value)||void 0===d?void 0:d.phase)){y(s,"pull");break}yield s.transaction("rw",s.dx.tables,t=>r(this,void 0,void 0,function*(){t.idbtrans.disableChangeTracking=!0,t.idbtrans.disableAccessControl=!0;const[n,r,i]=yield Promise.all([s.getSchema(),s.getPersistedSyncState(),s.getCurrentUser()]);if(!r||!n||!i)return;if(h.baseRev!==r.serverRevision)return void("string"!=typeof h.baseRev||"bigint"!=typeof r.serverRevision&&"object"!=typeof r.serverRevision||y(s,"pull"));if((yield e.waitFor(ut(r)))!==h.realmSetHash)return void y(s,"pull");let o=[];if(i.isLoggedIn){const e=dt(s).map(e=>s.table(ht(e.name)));o=yield yt(e,s)}if(h.changes.length>0){const e=Yi(h.changes,o);yield Qt(e,s)}r.latestRevisions=Kt(o,r.latestRevisions),r.serverRevision=h.newRev,yield zt(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}}class Xi{constructor(e){this.inFlight=new Map,this.db=e}download(e,t){let n=this.inFlight.get(e.ref);return n||(n=Hi(this.db).then(n=>{if(!n)throw new Error("No access token available for blob download");return function(e,t,n){return r(this,void 0,void 0,function*(){const r=`${t}/blob/${e.ref}`,s=yield fetch(r,{headers:{Authorization:`Bearer ${n}`}});if(!s.ok)throw new Error(`Failed to download blob ${e.ref}: ${s.status} ${s.statusText}`);const i=yield s.arrayBuffer();return new Uint8Array(i)})}(e,t,n)}).finally(()=>this.inFlight.delete(e.ref)),this.inFlight.set(e.ref,n)),n}}const Zi=new WeakMap,eo={members:"@id, [userId+realmId], [email+realmId], realmId",roles:"[realmId+name]",realms:"@realmId",$jobs:"",$syncState:"",$baseRevs:"[tableName+clientRev]",$logins:"claims.sub, lastLogin"};let to=0;function no(e){"vip"in e&&(e=e.vip);let n=Zi.get(e);if(!n){const r=new t.Subject;let s=new f(`syncstatechanged-${e.name}`),i=new f(`synccomplete-${e.name}`);r.id=++to;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},get cloud(){return 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=ro(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=Qi(n),n.messageProducer=new t.Subject,n.blobDownloadTracker=new Xi(n),Zi.set(e,n)}return n}function ro(e){return"string"==typeof e?e:e?"["+[].join.call(e,"+")+"]":""}function so(e,t){e.value!==t&&e.next(t)}function io(s,i){const o=t.from(e.liveQuery(()=>r(this,void 0,void 0,function*(){let e=0,t=0;const n=dt(s);return yield s.dx.transaction("r",n,s=>r(this,void 0,void 0,function*(){s.idbtrans.disableBlobResolve=!0;for(const r of n){if(!!!r.schema.idxByName._hasBlobRefs)continue;const n=yield r.where("_hasBlobRefs").equals(1).toArray();for(const r of n){const n=oo(r);e+=n.length,t+=n.reduce((e,t)=>e+(t.size||0),0)}}})),{blobsRemaining:e,bytesRemaining:t}})));return t.combineLatest([o,i]).pipe(n.map(([e,t])=>({isDownloading:t&&e.blobsRemaining>0,blobsRemaining:e.blobsRemaining,bytesRemaining:e.bytesRemaining})),n.share({resetOnRefCountZero:()=>t.timer(2e3)}))}function oo(e){const t=[];return function e(n){if(null!=n&&"object"==typeof n)if(k.isTSONRef(n))t.push({ref:n.ref,size:n.size});else{if(function(e){if("object"!=typeof e||null===e)return!1;const t=e;return"string"==typeof t.type&&"string"==typeof t.ref&&"number"==typeof t.size&&void 0===t._bt}(n)){const e=n;return void t.push({ref:e.ref,size:e.size})}Ht(n)?t.push({ref:n.ref,size:n.size||0}):Array.isArray(n)?n.forEach(e):n.constructor===Object&&Object.values(n).forEach(e)}}(e),t}const co=new WeakMap;class lo{constructor(e,t){co.set(this,e),Object.assign(this,t)}static load(e,t){return e.table("$logins").get(t).then(n=>new lo(e,n||{userId:t,claims:{sub:t},lastLogin:new Date(0)}))}save(){return r(this,void 0,void 0,function*(){co.get(this).table("$logins").put(this)})}}function ao(e,n){return t.firstValueFrom(t.from(e).pipe(t.filter(n)))}function uo(e){return r(this,void 0,void 0,function*(){const t=yield ho(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 _t(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 ho(e,{deleteUnsyncedData:!0})}})}function ho(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 ao(e.cloud.currentUser,e=>e.userId===l.userId),yield e.cloud.sync({purpose:"pull",wait:!0})),n})}const fo={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 po extends Error{constructor(e,t,n){super(n||fo[e]),this.name="OAuthError",this.code=e,this.provider=t}get userMessage(){return fo[this.code]||this.message}}const go={providers:[],otpEnabled:!0};function yo(e){return r(this,arguments,void 0,function*(e,t=!0){if(!t)return go;try{const t=yield fetch(`${e}/auth-providers`,{method:"GET",headers:{Accept:"application/json"},mode:"cors"});return 404===t.status?go:t.ok?yield t.json():go}catch(e){return go}})}function mo(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 bo(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 po("expired_code",void 0,e.message);throw new bt(e)}}catch(e){if(e instanceof po||e instanceof bt)throw e}throw new po("provider_error",void 0,`Token exchange failed: ${e.status} ${t}`)}const n=yield e.json();if("error"===n.type)throw new bt(n);if("tokens"!==n.type)throw new po("provider_error",void 0,`Unexpected response type: ${n.type}`);return n}catch(e){if(e instanceof po||e instanceof bt)throw e;if(e instanceof TypeError)throw new po("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())),vo(t,i.provider,e),new Et(i.provider)}if("demo"===(null==i?void 0:i.grant_type)){l={demo_user:yield St(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 St(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),u=yield yo(a,o);if(u.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(wt)];return r&&o.push({name:"otp",value:"email",displayName:"Continue with email",iconUrl:vt,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,u.providers,u.otpEnabled,"Sign in");if("provider"===s.type)throw vo(t,s.provider),new Et(s.provider)}const d=yield St(n,"Enter email address",null==i?void 0:i.email);l=/@demo.local$/.test(d)?{demo_user:d,grant_type:"demo",scopes:["ACCESS_DB"],public_key:s}:{email:d,grant_type:"otp",scopes:["ACCESS_DB"]}}const u=yield fetch(`${a}/token`,{body:JSON.stringify(l),method:"post",headers:{"Content-Type":"application/json"},mode:"cors"});if(200!==u.status){const e=yield u.text();throw yield kt(n,"Token request failed",{type:"error",messageCode:"GENERIC_ERROR",message:e,messageParams:{}}).catch(()=>{}),new Lt(u,e)}const d=yield u.json();if("tokens"===d.type||"error"===d.type)return d;if("otp"===l.grant_type&&"email"in l){if("otp-sent"!==d.type)throw new Error(`Unexpected response from ${a}/token`);const e=yield xt(n,l.email),t=Object.assign(Object.assign({},l),{otp:e||"",otp_id:d.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 xt(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 vo(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.");mo({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 wo(e,...t){globalThis.console[e](...t)}function _o(e,t){return r(this,void 0,void 0,function*(){var n;const s=yield e.getCurrentUser(),i=s.userId;if(s.isLoggedIn&&(!t||!t.email&&!t.userId)){if("ok"===((null===(n=s.license)||void 0===n?void 0:n.status)||"ok")&&s.accessToken&&(!s.accessTokenExpiration||s.accessTokenExpiration.getTime()>Date.now()))return!1;if(s.refreshToken&&(!s.refreshTokenExpiration||s.refreshTokenExpiration.getTime()>Date.now()))return yield At(e),!1}const o=new lo(e,{claims:{},lastLogin:new Date(0)});try{yield It(e.cloud.options.databaseUrl,o,e.cloud.options.fetchTokens||bo(e),e.cloud.userInteraction,t)}catch(e){if("OAuthRedirectError"===e.name)return!1;throw e}return i!==l.userId&&o.userId!==i&&(yield uo(e)),yield function(e,t){return r(this,void 0,void 0,function*(){const n=e.table("$logins");yield e.transaction("rw",n,e=>r(this,void 0,void 0,function*(){const e=yield n.toArray();yield Promise.all(e.filter(e=>e.userId!==t.userId&&e.isLoggedIn).map(e=>(e.isLoggedIn=!1,n.put(e)))),t.isLoggedIn=!0,t.lastLogin=new Date;try{yield t.save()}catch(e){try{"DataCloneError"===e.name&&(wo("debug","Login context property names:",Object.keys(t)),wo("debug","Login context property names:",Object.keys(t)),wo("debug","Login context:",t),wo("debug","Login context JSON:",JSON.stringify(t)))}catch(e){}throw e}})),yield ao(e.cloud.currentUser,e=>e.userId===t.userId)})}(e,o),y(e,"pull"),o.userId!==i})}const ko="undefined"!=typeof InstallTrigger,So="undefined"!=typeof navigator&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\/|Edge\//.test(navigator.userAgent),xo=So?[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]:NaN,Eo=So&&xo<=605||ko,Co="undefined"!=typeof self&&"clients"in self&&!self.document;const{toString:Ao}={};function Io(e){return Ao.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 Do(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 To=/b|c|d|f|g|h|j|k|l|m|n|p|q|r|s|t|v|x|y|z/i;function jo(e){return e>="A"&&e<="Z"}let Uo=0;function Po(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+P(new Uint8Array(n.buffer))+(t||"")}function Lo(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]=Po(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(!G(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 Ro=0;function $o(e,t){return function(n){const{readers:r,writers:s}=n.trans[t]||(n.trans[t]={writers:[],readers:[]}),i=s.length,o=(i>0?s[i-1].then(()=>e(n),()=>e(n)):e(n)).finally(()=>{r.splice(r.indexOf(o))});return r.push(o),o}}function Bo(e,t){return function(n){const{readers:r,writers:s}=n.trans[t]||(n.trans[t]={writers:[],readers:[]});let i=(s.length>0?s[s.length-1].then(()=>e(n),()=>e(n)):r.length>0?(o=r,new Promise(e=>{0===o.length&&e([]);let t=o.length;const n=new Array(t);o.forEach((r,s)=>Promise.resolve(r).then(e=>n[s]={status:"fulfilled",value:e},e=>n[s]={status:"rejected",reason:e}).then(()=>--t||e(n)))})).then(()=>e(n)):e(n)).finally(()=>{s.shift()});var o;return s.push(i),i}}const No=new t.BehaviorSubject(new Set);function Mo(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 Fo({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=>ht(e));i=r.transaction([...e,...t],s)}else i=r.transaction(e,s);if("readwrite"===s){i.txid=mt(16),i.opCount=0,i.currentUser=t.value,No.value.add(i),No.next(No.value);const e=()=>{i.removeEventListener("complete",r),i.removeEventListener("error",e),i.removeEventListener("abort",e),No.value.delete(i),No.next(No.value)},r=()=>{i.mutationsAdded&&!Mo(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"+ ++Ro;return Object.assign(Object.assign({},e),{count:$o(e.count,t),get:$o(e.get,t),getMany:$o(e.getMany,t),openCursor:$o(e.openCursor,t),query:$o(e.query,t),mutate:Bo(e.mutate,t)})}(Object.assign(Object.assign({},s),{mutate:e=>{var r,o,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,u=null===(l=null===(o=n.cloud.options)||void 0===o?void 0:o.unsyncedProperties)||void 0===l?void 0:l[t],{txid:d,currentUser:{userId:h}}=a,{type:f}=r,p=++a.opCount;function g(e){if(!u)return e;let t=e;for(const n of Object.keys(e))u.some(e=>n===e||n.startsWith(e+"."))&&(t===e&&(t=Object.assign({},e)),delete t[n]);return t}return s.mutate(r).then(t=>{var n;const{numFailures:s,failures:o}=t;let l="delete"===f?r.keys:t.results,y="values"in r?r.values:[],m="changeSpec"in r?r.changeSpec:void 0,b="updates"in r?r.updates:void 0,v=!(!b||!("upsert"in r))&&r.upsert;if(s&&(l=l.filter((e,t)=>!o[t]),y=y.filter((e,t)=>!o[t])),u){if(y=y.map(e=>{const t=Object.assign({},e);for(const e of u)delete t[e];return t}),m&&(m=g(m),0===Object.keys(m).length))return t;if(b){let t=b.changeSpecs.map(g),n={keys:[],changeSpecs:[]};const r=new e.RangeSet;let s=!1;if(!v){for(let e=0,i=t.length;e<i;++e)Object.keys(t[e]).length>0?(n.keys.push(b.keys[e]),n.changeSpecs.push(t[e]),r.addKey(b.keys[e])):s=!0;if(b=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(u&&(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==u?void 0:u.includes(e))&&(_=void 0)}const k="delete"===r.type?{type:"delete",ts:w,opNo:p,keys:l,criteria:_,txid:d,userId:h}:"add"===r.type?{type:"insert",ts:w,opNo:p,keys:l,txid:d,userId:h,values:y}:v&&b?{type:"upsert",ts:w,opNo:p,keys:l,values:y,changeSpecs:b.changeSpecs.filter((e,t)=>!o[t]),txid:d,userId:h}:_&&m?{type:"modify",ts:w,opNo:p,keys:l,criteria:_,changeSpec:m,txid:d,userId:h}:m?{type:"update",ts:w,opNo:p,keys:l,changeSpecs:l.map(()=>m),txid:d,userId:h}:b?{type:"update",ts:w,opNo:p,keys:b.keys,changeSpecs:b.changeSpecs,txid:d,userId:h}:{type:"upsert",ts:w,opNo:p,keys:l,values:y,txid:d,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})}}})}}}class Wo{constructor(e){this.queue=[],this.isProcessing=!1,this.db=e}saveBlobs(e,t,n){this.queue.push({tableName:e,primaryKey:t,resolvedBlobs:n}),this.startConsumer()}startConsumer(){this.isProcessing||(this.isProcessing=!0,setTimeout(()=>{this.processQueue()},0))}processQueue(){const t=this.queue.shift();t?this.db.transaction("rw",t.tableName,n=>{const r=n.idbtrans;r.disableChangeTracking=!0,r.disableAccessControl=!0,r.disableBlobResolve=!0;const s={};for(const e of t.resolvedBlobs)s[e.keyPath]=e.data;n.table(t.tableName).update(t.primaryKey,n=>{for(const r of t.resolvedBlobs){const t=e.getByKeyPath(n,r.keyPath);if(void 0!==t&&Ht(t)){if(t.ref!==r.ref)return;e.setByKeyPath(n,r.keyPath,r.data)}}delete n._hasBlobRefs})}).catch(e=>{}).finally(()=>this.processQueue()):this.isProcessing=!1}}function zo(t){return{stack:"dbcore",name:"blobResolve",level:-2,create(n){const r=new Wo(t);return Object.assign(Object.assign({},n),{table(s){var i;if(!t.cloud)return n.table(s);const o=null===(i=t.cloud.options)||void 0===i?void 0:i.databaseUrl,c=n.table(s);return s.startsWith("$")?c:Object.assign(Object.assign({},c),{get(e){var n;return(null===(n=e.trans)||void 0===n?void 0:n.disableBlobResolve)?c.get(e):c.get(e).then(n=>n&&Gt(n)?Ko(c,e.trans,e.key,n,r,t):n)},getMany(n){var s;return(null===(s=n.trans)||void 0===s?void 0:s.disableBlobResolve)?c.getMany(n):c.getMany(n).then(s=>{const i=s.some(e=>e&&Gt(e));return i?e.Promise.all(s.map((e,s)=>e&&Gt(e)?Ko(c,n.trans,n.keys[s],e,r,t):e)):s})},query(n){var s;return(null===(s=n.trans)||void 0===s?void 0:s.disableBlobResolve)?c.query(n):c.query(n).then(s=>{if(!s.result||!Array.isArray(s.result))return s;const i=s.result.some(e=>e&&Gt(e));return i?e.Promise.all(s.result.map(e=>e&&Gt(e)?Ko(c,n.trans,void 0,e,r,t):e)).then(e=>Object.assign(Object.assign({},s),{result:e})):s})},openCursor(e){var n;return(null===(n=e.trans)||void 0===n?void 0:n.disableBlobResolve)?c.openCursor(e):c.openCursor(e).then(n=>n&&e.values&&o?function(e,t,n,r){const s=Object.create(e,{value:{value:e.value,enumerable:!0,writable:!0},start:{value:i=>e.start(()=>{const o=e.value;o&&Gt(o)?Ko(t,e.trans,e.primaryKey,o,n,r,!0).then(e=>{s.value=e,i()},e=>{i()}):i()})}});return s}(n,c,r,t):n)}})}})}}}function Ko(t,n,r,s,i,o,c=!1){var l;try{const a=e.currentTransaction,u="readonly"===(null==a?void 0:a.mode),d=!0===(null==a?void 0:a.explicit),h=a&&!(u&&!d&&!c),f=(null===(l=o.cloud.options)||void 0===l?void 0:l.databaseUrl)||"",p=[],g=qt(s,f,p,"",new WeakMap,o.blobDownloadTracker);return(h?e.waitFor(g):e.Promise.resolve(g)).then(o=>{const c=t.schema.primaryKey,l=void 0!==r?r:c.keyPath?e.getByKeyPath(s,c.keyPath):void 0;return void 0!==l&&(u?i.saveBlobs(t.name,l,p):t.mutate({type:"put",keys:[l],values:[o],trans:n}).catch(e=>{})),o}).catch(e=>s)}catch(t){return e.Promise.resolve(s)}}function Vo(e,t){return function(n,r){var s;const i=Object.assign(Object.assign({},eo),n);Object.keys(eo).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=eo[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(eo[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)(To.test(e[t])||jo(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=Do(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,i[e].includes("_hasBlobRefs")||(i[e]+=",_hasBlobRefs")),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 Ho(e,t,n){return"undefined"!=typeof navigator&&navigator.locks?navigator.locks.request(e.name+"|"+t,n):n()}const Jo=new t.BehaviorSubject(!0),qo=new t.BehaviorSubject(!0);Jo.pipe(n.switchMap(e=>e?t.of(!0):t.of(!1).pipe(n.delay(2e4))),n.distinctUntilChanged()).subscribe(qo);const Go="undefined"!=typeof document?t.fromEvent(document,"visibilitychange"):t.of({}),Yo=Go.pipe(n.filter(()=>"hidden"===document.visibilityState)),Qo=Go.pipe(n.filter(()=>"visible"===document.visibilityState)),Xo="undefined"!=typeof window?t.merge(Qo,t.fromEvent(window,"mousedown"),t.fromEvent(window,"mousemove"),t.fromEvent(window,"keydown"),t.fromEvent(window,"wheel"),t.fromEvent(window,"touchmove")):t.of({});"undefined"!=typeof document&&t.merge(t.of(!0),Yo,Xo).pipe(n.map(()=>"visible"===document.visibilityState),n.tap(e=>{Jo.value!==e&&Jo.next(e)}),n.switchMap(e=>e?t.of(0).pipe(n.delay(16e4),n.tap(()=>Jo.next(!1))):t.of(0))).subscribe(()=>{});class Zo extends Error{constructor(){super(...arguments),this.name="TokenExpiredError"}}const ec=new WeakMap,tc=3e4;class nc extends sn{constructor(e){super(),this.doc=e,this.clientID=e.clientID,this.states=new Map,this.meta=new Map,this._checkInterval=setInterval(()=>{const e=un();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&&tc<=e-n.lastUpdated&&this.states.has(r)&&t.push(r)}),t.length>0&&rc(this,t,"timeout")},Z(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:un()});const i=[],o=[],c=[],l=[];null===e?l.push(t):null==s?null!=e&&i.push(t):(o.push(t),En(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 rc=(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:un()})}r.push(s)}}r.length>0&&(e.emit("change",[{added:[],updated:[],removed:r},n]),e.emit("update",[{added:[],updated:[],removed:r},n]))},sc=new WeakMap;function ic(e){let n=sc.get(e);return n||(n=new t.Subject,sc.set(e,n)),n}class oc extends t.Observable{constructor(e,t,n,r,s,i,o,c){super(l=>new lc(e,t,n,r,s,c,l,i,o))}}let cc=0;class lc extends t.Subscription{constructor(e,t,n,r,s,i,o,c,l){super(()=>this.teardown()),this.id=++cc,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 Zo);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?Pt.parse(e.data):function(e){const t=new Je(e),n=et(t);if("outdated-server-rev"===n)return{type:n};if("y-complete-sync-done"===n)return{type:n,yServerRev:et(t)};const r=et(t),s=et(t);switch(n){case"u-ack":case"u-reject":return{type:n,table:r,prop:s,i:Number(nt(t))};default:{const e=st(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:Ye(t)};case"doc-open":return{type:n,table:r,prop:s,k:e,serverRev:st(t),sv:st(t)};case"sv":return{type:n,table:r,prop:s,k:e,sv:Ye(t)};case"u-c":return{type:n,table:r,prop:s,k:e,u:Ye(t),i:Number(nt(t))};case"u-s":return{type:n,table:r,prop:s,k:e,u:Ye(t),r:t.pos<t.arr.length&&et(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=Ti.getDocCache(this.db.dx).find(t.table,t.k,t.prop);if(e){const n=(e=>ec.get(e))(e);n&&((e,t,n)=>{const r=qe(t),s=un(),i=[],o=[],c=[],l=[],a=Xe(r);for(let t=0;t<a;t++){const t=Xe(r);let n=Xe(r);const a=JSON.parse(et(r)),u=e.meta.get(t),d=e.states.get(t),h=void 0===u?0:u.clock;(h<n||h===n&&null===a&&e.states.has(t))&&(null===a?t===e.clientID&&null!=e.getLocalState()?n++:e.states.delete(t):e.states.set(t,a),e.meta.set(t,{clock:n,lastUpdated:s}),void 0===u&&null!==a?i.push(t):void 0!==u&&null===a?l.push(t):null!==a&&(En(a,d)||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=Ti.getDocCache(this.db.dx).find(t.table,t.k,t.prop);e&&ic(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?ji([t],this.db).then(e=>r(this,[e],void 0,function*({resyncNeeded:e,yServerRevision:n,receivedUntils:r}){if(n&&(yield this.db.$syncState.update("syncState",{yServerRevision:n})),"u-s"===t.type&&r){const e=vi(this.db,t.table,t.prop);if(e){const t=r[e.name];t&&(yield e.update(Xt,{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(Pt.stringify(e))):null===(n=this.ws)||void 0===n||n.send(function(e){const t=new we;switch(Oe(t,e.type),"table"in e&&Oe(t,e.table),"prop"in e&&Oe(t,e.prop),e.type){case"u-ack":case"u-reject":Ue(t,BigInt(e.i));break;case"outdated-server-rev":break;case"y-complete-sync-done":Oe(t,e.yServerRev);break;default:switch(Le(t,e.k),e.type){case"aware":Te(t,e.u);break;case"doc-open":Le(t,e.serverRev),Le(t,e.sv);break;case"doc-close":break;case"sv":Te(t,e.sv);break;case"u-c":Te(t,e.u),Ue(t,BigInt(e.i));break;case"u-s":Te(t,e.u),Oe(t,e.r||"")}}return ke(t)}(e)))})),this.user.isLoggedIn&&!Mo(this.db)&&this.subscriptions.add(function(n){const s=gt(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(Xt)).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 Zt(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 ac extends Error{constructor(e){super("expired"===e?"License expired":"deactivated"===e?"User deactivated":"Invalid license"),this.name="InvalidLicenseError",e&&(this.license=e)}}function uc(e){return r(this,void 0,void 0,function*(){var e;yield(e=3e3,new Promise(t=>setTimeout(t,e))),yield t.firstValueFrom(Xo)})}function dc(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 qi(e,e.cloud.options,e.cloud.schema,{justCheckIfNeeded:!0}))})}const hc=new WeakMap;function fc(e,t,n,s){const i=hc.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 fc(e,t,n,s)})}}const o=function(){return r(this,void 0,void 0,function*(){try{yield Nt(e),yield Ho(e,Ji,()=>qi(e,t,n,s)),hc.delete(e)}catch(t){throw hc.delete(e),t}})}();return hc.set(e,{promise:o,pull:"push"!==(null==s?void 0:s.purpose)}),o}function pc(e,t,n){let r=null,s={cancelled:!1},i=0,o=0;function c(r=1){setTimeout(()=>{const d=l?"pull":"push";o=Date.now(),fc(e,t,n,{cancelToken:s,retryImmediatelyOnFetchError:!0,purpose:d}).then(()=>{if(s.cancelled)h();else if(l||a)return l=!1,a=!1,c();u=!1,i=0,o=0}).catch(e=>{if(s.cancelled)h(),u=!1,i=0,o=0;else if(r<5){const e=[0,20,40,300,900][r]*Ct;i=Date.now()+e,o=0,setTimeout(()=>c(r+1),e)}else u=!1,i=0,o=0})},0)}let l=!1,a=!1,u=!1;const d=e=>{s.cancelled||("pull"===e&&(l=!0),"push"===e&&(a=!0),u?i||o>0&&Date.now():(u=!0,c()))},h=()=>{s.cancelled=!0,r&&r.unsubscribe()};return{start:()=>{r=e.localSyncEvent.subscribe(({purpose:e})=>{d(e||"pull")})},stop:h}}function gc(e,t){if(e&&t&&t.unsyncedTables)for(const n of t.unsyncedTables)e[n]&&(e[n].markedForSync=!1)}var yc,mc,bc,vc,wc,_c,kc,Sc,xc,Ec,Cc,Ac={},Ic=[],Oc=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,Dc=Array.isArray;function Tc(e,t){for(var n in t)e[n]=t[n];return e}function jc(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function Uc(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?yc.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 Pc(e,o,r,s,null)}function Pc(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?++bc:s,__i:-1,__u:0};return null==s&&null!=mc.vnode&&mc.vnode(i),i}function Lc(e){return e.children}function Rc(e,t){this.props=e,this.context=t}function $c(e,t){if(null==t)return e.__?$c(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?$c(e):null}function Bc(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 Bc(e)}}function Nc(e){(!e.__d&&(e.__d=!0)&&vc.push(e)&&!Mc.__r++||wc!=mc.debounceRendering)&&((wc=mc.debounceRendering)||_c)(Mc)}function Mc(){for(var e,t,n,r,s,i,o,c=1;vc.length;)vc.length>c&&vc.sort(kc),e=vc.shift(),c=vc.length,e.__d&&(n=void 0,r=void 0,s=(r=(t=e).__v).__e,i=[],o=[],t.__P&&((n=Tc({},r)).__v=r.__v+1,mc.vnode&&mc.vnode(n),Jc(t.__P,n,r,t.__n,t.__P.namespaceURI,32&r.__u?[s]:null,i,null==s?$c(r):s,!!(32&r.__u),o),n.__v=r.__v,n.__.__k[n.__i]=n,Gc(i,n,o),r.__e=r.__=null,n.__e!=s&&Bc(n)));Mc.__r=0}function Fc(e,t,n,r,s,i,o,c,l,a,u){var d,h,f,p,g,y,m,b=r&&r.__k||Ic,v=t.length;for(l=function(e,t,n,r,s){var i,o,c,l,a,u=n.length,d=u,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]=Pc(null,o,null,null,null):Dc(o)?o=e.__k[i]=Pc(Lc,{children:o},null,null,null):null==o.constructor&&o.__b>0?o=e.__k[i]=Pc(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=zc(o,n,l,d))&&(d--,(c=n[a])&&(c.__u|=2)),null==c||null==c.__v?(-1==a&&(s>u?h--:s<u&&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(d)for(i=0;i<u;i++)null!=(c=n[i])&&!(2&c.__u)&&(c.__e==r&&(r=$c(c)),Zc(c,c));return r}(n,t,b,l,v),d=0;d<v;d++)null!=(f=n.__k[d])&&(h=-1==f.__i?Ac:b[f.__i]||Ac,f.__i=d,y=Jc(e,f,h,s,i,o,c,l,a,u),p=f.__e,f.ref&&h.ref!=f.ref&&(h.ref&&Xc(h.ref,null,f),u.push(f.ref,f.__c||p,f)),null==g&&null!=p&&(g=p),(m=!!(4&f.__u))||h.__k===f.__k?l=Wc(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 Wc(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=Wc(s[i],t,n,r));return t}e.__e!=t&&(r&&(t&&e.type&&!t.parentNode&&(t=$c(e)),n.insertBefore(e.__e,t||null)),t=e.__e);do{t=t&&t.nextSibling}while(null!=t&&8==t.nodeType);return t}function zc(e,t,n,r){var s,i,o,c=e.key,l=e.type,a=t[n],u=null!=a&&!(2&a.__u);if(null===a&&null==c||u&&c==a.key&&l==a.type)return n;if(r>(u?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 Kc(e,t,n){"-"==t[0]?e.setProperty(t,null==n?"":n):e[t]=null==n?"":"number"!=typeof n||Oc.test(t)?n:n+"px"}function Vc(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||Kc(e.style,t,"");if(n)for(t in n)r&&n[t]==r[t]||Kc(e.style,t,n[t])}else if("o"==t[0]&&"n"==t[1])i=t!=(t=t.replace(Sc,"$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=xc,e.addEventListener(t,i?Cc:Ec,i)):e.removeEventListener(t,i?Cc: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 Hc(e){return function(t){if(this.l){var n=this.l[t.type+e];if(null==t.t)t.t=xc++;else if(t.t<n.u)return;return n(mc.event?mc.event(t):t)}}}function Jc(e,t,n,r,s,i,o,c,l,a){var u,d,h,f,p,g,y,m,b,v,w,_,k,S,x,E,C,A=t.type;if(null!=t.constructor)return null;128&n.__u&&(l=!!(32&n.__u),i=[c=t.__e=n.__e]),(u=mc.__b)&&u(t);e:if("function"==typeof A)try{if(m=t.props,b="prototype"in A&&A.prototype.render,v=(u=A.contextType)&&r[u.__c],w=u?v?v.props.value:u.__:r,n.__c?y=(d=t.__c=n.__c).__=d.__E:(b?t.__c=d=new A(m,w):(t.__c=d=new Rc(m,w),d.constructor=A,d.render=el),v&&v.sub(d),d.state||(d.state={}),d.__n=r,h=d.__d=!0,d.__h=[],d._sb=[]),b&&null==d.__s&&(d.__s=d.state),b&&null!=A.getDerivedStateFromProps&&(d.__s==d.state&&(d.__s=Tc({},d.__s)),Tc(d.__s,A.getDerivedStateFromProps(m,d.__s))),f=d.props,p=d.state,d.__v=t,h)b&&null==A.getDerivedStateFromProps&&null!=d.componentWillMount&&d.componentWillMount(),b&&null!=d.componentDidMount&&d.__h.push(d.componentDidMount);else{if(b&&null==A.getDerivedStateFromProps&&m!==f&&null!=d.componentWillReceiveProps&&d.componentWillReceiveProps(m,w),t.__v==n.__v||!d.__e&&null!=d.shouldComponentUpdate&&!1===d.shouldComponentUpdate(m,d.__s,w)){for(t.__v!=n.__v&&(d.props=m,d.state=d.__s,d.__d=!1),t.__e=n.__e,t.__k=n.__k,t.__k.some(function(e){e&&(e.__=t)}),_=0;_<d._sb.length;_++)d.__h.push(d._sb[_]);d._sb=[],d.__h.length&&o.push(d);break e}null!=d.componentWillUpdate&&d.componentWillUpdate(m,d.__s,w),b&&null!=d.componentDidUpdate&&d.__h.push(function(){d.componentDidUpdate(f,p,g)})}if(d.context=w,d.props=m,d.__P=e,d.__e=!1,k=mc.__r,S=0,b){for(d.state=d.__s,d.__d=!1,k&&k(t),u=d.render(d.props,d.state,d.context),x=0;x<d._sb.length;x++)d.__h.push(d._sb[x]);d._sb=[]}else do{d.__d=!1,k&&k(t),u=d.render(d.props,d.state,d.context),d.state=d.__s}while(d.__d&&++S<25);d.state=d.__s,null!=d.getChildContext&&(r=Tc(Tc({},r),d.getChildContext())),b&&!h&&null!=d.getSnapshotBeforeUpdate&&(g=d.getSnapshotBeforeUpdate(f,p)),E=u,null!=u&&u.type===Lc&&null==u.key&&(E=Yc(u.props.children)),c=Fc(e,Dc(E)?E:[E],t,n,r,s,i,o,c,l,a),d.base=t.__e,t.__u&=-161,d.__h.length&&o.push(d),y&&(d.__E=d.__=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--;)jc(i[C]);qc(t)}else t.__e=n.__e,t.__k=n.__k,e.then||qc(t);mc.__e(e,t,n)}else null==i&&t.__v==n.__v?(t.__k=n.__k,t.__e=n.__e):c=t.__e=Qc(n.__e,t,n,r,s,i,o,l,a);return(u=mc.diffed)&&u(t),128&t.__u?void 0:c}function qc(e){e&&e.__c&&(e.__c.__e=!0),e&&e.__k&&e.__k.forEach(qc)}function Gc(e,t,n){for(var r=0;r<n.length;r++)Xc(n[r],n[++r],n[++r]);mc.__c&&mc.__c(t,e),e.some(function(t){try{e=t.__h,t.__h=[],e.some(function(e){e.call(t)})}catch(e){mc.__e(e,t.__v)}})}function Yc(e){return"object"!=typeof e||null==e||e.__b&&e.__b>0?e:Dc(e)?e.map(Yc):Tc({},e)}function Qc(e,t,n,r,s,i,o,c,l){var a,u,d,h,f,p,g,y=n.props||Ac,m=t.props,b=t.type;if("svg"==b?s="http://www.w3.org/2000/svg":"math"==b?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==!!b&&(b?f.localName==b:3==f.nodeType)){e=f,i[a]=null;break}if(null==e){if(null==b)return document.createTextNode(m);e=document.createElementNS(s,b,m.is&&m),c&&(mc.__m&&mc.__m(t,i),c=!1),i=null}if(null==b)y===m||c&&e.data==m||(e.data=m);else{if(i=i&&yc.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)d=f;else if(!(a in m)){if("value"==a&&"defaultValue"in m||"checked"==a&&"defaultChecked"in m)continue;Vc(e,a,null,f,s)}for(a in m)f=m[a],"children"==a?h=f:"dangerouslySetInnerHTML"==a?u=f:"value"==a?p=f:"checked"==a?g=f:c&&"function"!=typeof f||y[a]===f||Vc(e,a,f,y[a],s);if(u)c||d&&(u.__html==d.__html||u.__html==e.innerHTML)||(e.innerHTML=u.__html),t.__k=[];else if(d&&(e.innerHTML=""),Fc("template"==t.type?e.content:e,Dc(h)?h:[h],t,n,r,"foreignObject"==b?"http://www.w3.org/1999/xhtml":s,i,o,i?i[0]:n.__k&&$c(n,0),c,l),null!=i)for(a=i.length;a--;)jc(i[a]);c||(a="value","progress"==b&&null==p?e.removeAttribute("value"):null!=p&&(p!==e[a]||"progress"==b&&!p||"option"==b&&p!=y[a])&&Vc(e,a,p,y[a],s),a="checked",null!=g&&g!=e[a]&&Vc(e,a,g,y[a],s))}return e}function Xc(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){mc.__e(e,n)}}function Zc(e,t,n){var r,s;if(mc.unmount&&mc.unmount(e),(r=e.ref)&&(r.current&&r.current!=e.__e||Xc(r,null,t)),null!=(r=e.__c)){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(e){mc.__e(e,t)}r.base=r.__P=null}if(r=e.__k)for(s=0;s<r.length;s++)r[s]&&Zc(r[s],t,n||"function"!=typeof e.type);n||jc(e.__e),e.__c=e.__=e.__e=void 0}function el(e,t,n){return this.constructor(e,n)}function tl(e,t,n){var r,s,i;t==document&&(t=document.documentElement),mc.__&&mc.__(e,t),r=!1?null:t.__k,s=[],i=[],Jc(t,e=t.__k=Uc(Lc,null,[e]),r||Ac,Ac,t.namespaceURI,r?null:t.firstChild?yc.call(t.childNodes):null,s,r?r.__e:t.firstChild,false,i),Gc(s,e,i)}yc=Ic.slice,mc={__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}},bc=0,Rc.prototype.setState=function(e,t){var n;n=null!=this.__s&&this.__s!=this.state?this.__s:this.__s=Tc({},this.state),"function"==typeof e&&(e=e(Tc({},n),this.props)),e&&Tc(n,e),null!=e&&this.__v&&(t&&this._sb.push(t),Nc(this))},Rc.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),Nc(this))},Rc.prototype.render=Lc,vc=[],_c="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,kc=function(e,t){return e.__v.__b-t.__v.__b},Mc.__r=0,Sc=/(PointerCapture)$|Capture$/i,xc=0,Ec=Hc(!1),Cc=Hc(!0);const nl={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"},CopyButton:{display:"inline-flex",alignItems:"center",gap:"4px",padding:"4px 10px",marginTop:"8px",border:"1px solid #d1d5db",borderRadius:"4px",backgroundColor:"#f9fafb",cursor:"pointer",fontSize:"12px",fontWeight:"500",color:"#374151",transition:"all 0.15s ease",fontFamily:"monospace"},CopyButtonCopied:{display:"inline-flex",alignItems:"center",gap:"4px",padding:"4px 10px",marginTop:"8px",border:"1px solid #22c55e",borderRadius:"4px",backgroundColor:"#f0fdf4",cursor:"default",fontSize:"12px",fontWeight:"500",color:"#16a34a",fontFamily:"monospace"}};function rl({children:e,className:t}){return Uc("div",{className:`dexie-dialog ${t||""}`},Uc("div",{style:nl.Darken}),Uc("div",{style:nl.DialogOuter},Uc("div",{style:nl.DialogInner},e)))}var sl,il,ol,cl,ll=0,al=[],ul=mc,dl=ul.__b,hl=ul.__r,fl=ul.diffed,pl=ul.__c,gl=ul.unmount,yl=ul.__;function ml(e,t){ul.__h&&ul.__h(il,e,ll||t),ll=0;var n=il.__H||(il.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({}),n.__[e]}function bl(e){return ll=1,function(e,t){var n=ml(sl++,2);if(n.t=e,!n.__c&&(n.__=[Al(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=il,!il.__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};il.__f=!0;var s=il.shouldComponentUpdate,i=il.componentWillUpdate;il.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)},il.shouldComponentUpdate=r}return n.__N||n.__}(Al,e)}function vl(e,t){var n=ml(sl++,4);!ul.__s&&Cl(n.__H,t)&&(n.__=e,n.u=t,il.__h.push(n))}function wl(e){return ll=5,function(e,t){var n=ml(sl++,7);return Cl(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}(function(){return{current:e}},[])}function _l(){for(var e;e=al.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(xl),e.__H.__h.forEach(El),e.__H.__h=[]}catch(t){e.__H.__h=[],ul.__e(t,e.__v)}}ul.__b=function(e){il=null,dl&&dl(e)},ul.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),yl&&yl(e,t)},ul.__r=function(e){hl&&hl(e),sl=0;var t=(il=e.__c).__H;t&&(ol===il?(t.__h=[],il.__h=[],t.__.forEach(function(e){e.__N&&(e.__=e.__N),e.u=e.__N=void 0})):(t.__h.forEach(xl),t.__h.forEach(El),t.__h=[],sl=0)),ol=il},ul.diffed=function(e){fl&&fl(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(1!==al.push(t)&&cl===ul.requestAnimationFrame||((cl=ul.requestAnimationFrame)||Sl)(_l)),t.__H.__.forEach(function(e){e.u&&(e.__H=e.u),e.u=void 0})),ol=il=null},ul.__c=function(e,t){t.some(function(e){try{e.__h.forEach(xl),e.__h=e.__h.filter(function(e){return!e.__||El(e)})}catch(n){t.some(function(e){e.__h&&(e.__h=[])}),t=[],ul.__e(n,e.__v)}}),pl&&pl(e,t)},ul.unmount=function(e){gl&&gl(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.forEach(function(e){try{xl(e)}catch(e){t=e}}),n.__H=void 0,t&&ul.__e(t,n.__v))};var kl="function"==typeof requestAnimationFrame;function Sl(e){var t,n=function(){clearTimeout(r),kl&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,35);kl&&(t=requestAnimationFrame(n))}function xl(e){var t=il,n=e.__c;"function"==typeof n&&(e.__c=void 0,n()),il=t}function El(e){var t=il;e.__c=e.__(),il=t}function Cl(e,t){return!e||e.length!==t.length||t.some(function(t,n){return t!==e[n]})}function Al(e,t){return"function"==typeof t?t(e):t}function Il({option:e,onClick:t}){const{displayName:n,iconUrl:r,styleHint:s}=e,i=function(e){const t=Object.assign({},nl.ProviderButton);if(!e)return t;switch(e){case"google":return Object.assign(Object.assign({},t),nl.ProviderGoogle);case"github":return Object.assign(Object.assign({},t),nl.ProviderGitHub);case"microsoft":return Object.assign(Object.assign({},t),nl.ProviderMicrosoft);case"apple":return Object.assign(Object.assign({},t),nl.ProviderApple);case"otp":return Object.assign({},nl.OtpButton);case"custom-oauth2":return Object.assign(Object.assign({},t),nl.ProviderCustom);default:return t}}(s);return Uc("button",{type:"button",style:i,onClick:t,class:"dxc-option-btn"+(s?` dxc-option-${s}`:""),"aria-label":n},r&&Uc("img",{src:r,alt:"",style:nl.ProviderButtonIcon,"aria-hidden":"true"}),Uc("span",{style:nl.ProviderButtonText},n))}function Ol(){return Uc("div",{style:nl.Divider},Uc("div",{style:nl.DividerLine}),Uc("span",{style:nl.DividerText},"or"),Uc("div",{style:nl.DividerLine}))}function Dl({title:e,alerts:t,fields:n,options:r,submitLabel:s,cancelLabel:i,onCancel:o,onSubmit:c}){const[l,a]=bl({}),u=wl(null);vl(()=>{var e;return null===(e=u.current)||void 0===e?void 0:e.focus()},[]);const d=Object.entries(n||{}),h=d.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 Uc(rl,{className:"dxc-login-dlg"},Uc(Lc,null,Uc("h3",{style:nl.WindowHeader},e),t.map((e,t)=>Uc("div",{key:t},Uc("p",{style:nl.Alert[e.type]},function({message:e,messageCode:t,messageParams:n}){return e.replace(/\{\w+\}/gi,e=>n[e.substring(1,e.length-1)])}(e)),e.copyText&&Uc(Tl,{text:e.copyText}))),f&&Uc("div",{class:"dxc-options"},g?Array.from(p.entries()).map(([e,t],n)=>Uc(Lc,{key:e},n>0&&Uc(Ol,null),t.map(e=>Uc(Il,{key:`${e.name}-${e.value}`,option:e,onClick:()=>y(e)})))):r.map(e=>Uc(Il,{key:`${e.name}-${e.value}`,option:e,onClick:()=>y(e)}))),f&&h&&Uc(Ol,null),h&&Uc("form",{onSubmit:e=>{e.preventDefault(),c(l)}},d.map(([e,{type:t,label:n,placeholder:r}],s)=>Uc("label",{style:nl.Label,key:s},n?`${n}: `:"",Uc("input",{ref:0===s?u:void 0,type:t,name:e,autoComplete:"on",style:nl.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)}}))))),Uc("div",{style:nl.ButtonsDiv},Uc(Lc,null,s&&(h||!f&&!h)&&Uc("button",{type:"submit",style:nl.PrimaryButton,onClick:()=>c(l)},s),i&&Uc("button",{style:nl.Button,onClick:o},i))))}function Tl({text:e}){const[t,n]=bl(!1),r=wl(null);vl(()=>()=>{null!==r.current&&clearTimeout(r.current)},[]);const s=()=>{null!==r.current&&clearTimeout(r.current),n(!0),r.current=setTimeout(()=>{r.current=null,n(!1)},2e3)};return Uc("button",{type:"button",style:t?nl.CopyButtonCopied:nl.CopyButton,onClick:()=>{var t;"undefined"!=typeof navigator&&(null===(t=navigator.clipboard)||void 0===t?void 0:t.writeText)?navigator.clipboard.writeText(e).then(s).catch(()=>{jl(e,s)}):jl(e,s)},title:"Copy to clipboard"},t?"✓ Copied!":`📋 ${e}`)}function jl(e,t){const n=document.createElement("textarea");n.value=e,n.style.position="fixed",n.style.opacity="0",document.body.appendChild(n),n.select();const r=document.execCommand("copy");document.body.removeChild(n),r&&t()}class Ul extends Rc{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?Uc(Dl,Object.assign({},t)):null}}function Pl(e){const t=new WeakMap;return n=>{let r=t.get(n);return r||(r=e(n),t.set(n,r)),r}}const Ll=Pl(e=>new t.BehaviorSubject(Object.assign(Object.assign({},l),{isLoading:!0})));function Rl(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 $l=Pl(t=>Rl(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})),{})),Bl=Pl(t=>Rl(Ll(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 Nl(...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 Ml=Pl(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}(Rl(t.combineLatest([Bl(e._novip),$l(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=gt(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:"*"}:Nl(...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 Wl=Pl(s=>{const i=Ll(s._novip).pipe(n.switchMap(t=>e.liveQuery(()=>s.members.where({email:t.email||""}).toArray()))),o=Ml(s._novip),c=Bl(s._novip);return Rl(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 zl(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,u=new nc(s),d=ic(s);return u.on("update",({added:e,updated:t,removed:r},c)=>{const a=e.concat(t).concat(r),d=n.cloud.currentUser.value;if("server"!==c&&d.isLoggedIn&&!Mo(n)){const e=((e,t,n=e.states)=>{const r=t.length,s=_e();Ee(s,r);for(let i=0;i<r;i++){const r=t[i],o=n.get(r)||null,c=e.meta.get(r).clock;Ee(s,r),Ee(s,c),Oe(s,JSON.stringify(o))}return ke(s)})(u,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})}}),u.on("destroy",()=>{rc(u,[s.clientID],"provider destroyed")}),(()=>{r(this,void 0,void 0,function*(){if(i.destroyed)return;let s=!1,u=1;const h=t.combineLatest([n.cloud.webSocketStatus,d.pipe(t.startWith(null))]).subscribe(([e])=>{if(i.destroyed)return;s="connected"===e;const t=n.cloud.currentUser.value;"connected"===e&&t.isLoggedIn&&!Mo(n)&&(++u,f().catch(e=>{}))});function f(){return r(this,void 0,void 0,function*(){const t=u,d=n.table(a),h=n.$syncState,[f,p]=yield n.transaction("r",h,d,()=>r(this,void 0,void 0,function*(){const e=yield d.get(Xt),t=yield h.get("syncState");return[(null==e?void 0:e.receivedUntil)||0,(null==t?void 0:t.yServerRevision)||(null==t?void 0:t.serverRevision)]}));if(i.destroyed||u!==t||!s)return;const g={type:"doc-open",table:o,prop:l,k:c,serverRev:p},y=yield d.where("i").between(f,1/0,!1).filter(t=>0===e.cmp(t.k,c)&&!(1&(t.f||0))).toArray();if(!i.destroyed&&u===t&&s){if(y.length>0){const e=Wr(y.map(e=>e.u)),t=Mr(e);g.sv=t}n.messageProducer.next(g)}})}i.addCleanupHandler(h)})})(),u}(n,o,s),ec.set(o,l),l)})}}function Kl(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 po("access_denied",i,c);if(c.toLowerCase().includes("email")&&c.toLowerCase().includes("verif"))throw new po("email_not_verified",i,c);throw new po("provider_error",i,c)}return s&&i&&o?{code:s,provider:i,state:o}:null}function Vl(){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 Hl={nameSuffix:!0};function Jl(s){const i=s.name,o=Ll(s),c=[];let a=!1,u=null,d=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,w,_,k,S,x,E;f=!1;const C=no(s);"undefined"!=typeof window&&"undefined"!=typeof document&&((null===(i=C.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),tl(Uc(Ul,{db:e.vip}),n)):addEventListener("DOMContentLoaded",()=>{t||(document.body.appendChild(n),tl(Uc(Ul,{db:e.vip}),n))}),{unsubscribe(){try{n.remove()}catch(e){}t=!0},get closed(){return t}}}(s))),C.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 Jo.value?i.pipe(n.debounceTime(500)):i;case"connecting":return"not-started"===s||"error"===s?i:i.pipe(n.debounceTime(4e3));default:return i}}));return t.combineLatest([s,e.syncStateChangedEvent.pipe(n.startWith({phase:"initial"})),Ll(e.dx._novip),qo]).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"}}))}(C).subscribe(s.cloud.syncState)),c.push(C.syncCompleteEvent.subscribe(m));if("eager"===(null!==(v=null===(l=C.cloud.options)||void 0===l?void 0:l.blobMode)&&void 0!==v?v:"eager")){let t=null;const n=()=>{t||(t=e.ignoreTransaction(()=>function(t,n,s){return r(this,void 0,void 0,function*(){var i;const o=e=>{},c=dt(t);let l=!1;for(const e of c)try{if(!e.schema.idxByName._hasBlobRefs)continue;if((yield e.where("_hasBlobRefs").equals(1).count())>0){l=!0;break}}catch(e){}if(l){so(n,!0);try{c.length,c.map(e=>e.name).join(", ");for(const n of c){null==s||s.aborted;try{if(!n.schema.indexes.some(e=>"_hasBlobRefs"===e.name))continue;const c=yield n.where("_hasBlobRefs").equals(1).toArray();o((n.name,c.length));const l=null===(i=t.cloud.options)||void 0===i?void 0:i.databaseUrl;if(!l)throw new Error("Database URL is required to download blobs");const a=6,u=n.schema.primKey,d=c.filter(t=>!!Gt(t)&&void 0!==(u.keyPath?e.getByKeyPath(t,u.keyPath):void 0));let h=0;const f=()=>r(this,void 0,void 0,function*(){for(;h<d.length;){null==s||s.aborted;const r=d[h++],i=e.getByKeyPath(r,u.keyPath);try{const e=[];yield qt(r,l,e,"",new WeakMap,t.blobDownloadTracker);const s={_hasBlobRefs:void 0};for(const t of e)s[t.keyPath]=t.data;o((n.name,e.length)),yield n.update(i,s)}catch(e){}}}),p=[];for(let e=0;e<Math.min(a,d.length);e++)p.push(f());yield Promise.all(p)}catch(e){}}}finally{so(n,!1)}}})}(C,b)).catch(e=>{}).finally(()=>{t=null}))};setTimeout(n,0),c.push(C.syncCompleteEvent.subscribe(n))}C.tables.every(e=>e.core)||function(){throw new e.SchemaError("Version increment needed to allow dexie-cloud change tracking")}();const A="serviceWorker"in navigator?yield navigator.serviceWorker.getRegistrations():[],[I,O]=yield C.transaction("rw",C.$syncState,()=>r(this,void 0,void 0,function*(){var e,t;const{options:n,schema:r}=C.cloud,[s,i,o]=yield Promise.all([C.getOptions(),C.getSchema(),C.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 C.$syncState.put(e,"options")}}else C.cloud.options=s||null;if((null===(e=C.cloud.options)||void 0===e?void 0:e.tryUseServiceWorker)&&"serviceWorker"in navigator&&A.length>0&&!Eo?C.cloud.usingServiceWorker=!0:((null===(t=C.cloud.options)||void 0===t?void 0:t.tryUseServiceWorker)&&C.cloud.isServiceWorkerDB,C.cloud.usingServiceWorker=!1),gc(r,C.cloud.options),gc(i,C.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 C.$syncState.put(e,"schema"),Object.assign(r,e)}}else C.cloud.schema=i||null;return[null==o?void 0:o.initiallySynced,null==o?void 0:o.realms]}));if(I&&C.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`)}}(C),p(),!C.cloud.isServiceWorkerDB){c.push(e.liveQuery(()=>C.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(()=>C.getPersistedSyncState()).subscribe(C.cloud.persistedSyncState)),yield t.firstValueFrom(t.combineLatest([o.pipe(n.skip(1),n.take(1)),C.cloud.persistedSyncState.pipe(n.skip(1),n.take(1))]));const r=zl(C);Ti.on.new.subscribe(r),C.dx.once("close",()=>{Ti.on.new.unsubscribe(r)})}let D=!1,T=yield C.getCurrentUser();if(d&&!C.cloud.isServiceWorkerDB){const e=d;d=null;try{yield kt(C.cloud.userInteraction,"Authentication Error",{type:"error",messageCode:"GENERIC_ERROR",message:e.message,messageParams:{provider:e.provider||"unknown"}}),Vl()}catch(e){}}if(u&&!C.cloud.isServiceWorkerDB){const{code:e,provider:t}=u;u=null;try{D=yield _o(C,{oauthCode:e,provider:t}),T=yield C.getCurrentUser(),Vl()}catch(e){}}const j=null===(w=C.cloud.options)||void 0===w?void 0:w.requireAuth;j&&(C.cloud.isServiceWorkerDB?yield t.firstValueFrom(o.pipe(n.filter(e=>!!e.isLoggedIn),n.take(1))):"object"==typeof j?(!T.isLoggedIn||j.userId&&T.userId!==j.userId||j.email&&T.email!==j.email)&&(D=yield _o(C,j)):T.isLoggedIn||(D=yield _o(C))),!T.isLoggedIn||O&&O.includes(T.userId)||(D=!0),h&&h.stop(),h=null,p();const U=(null===(_=C.cloud.options)||void 0===_?void 0:_.databaseUrl)&&(!I||D);U&&(yield function(e,t,n){return r(this,void 0,void 0,function*(){yield Ho(e,Ji,()=>qi(e,t,n,{isInitialSync:!0}))})}(C,C.cloud.options,C.cloud.schema),C.setInitiallySynced(!0)),p(),C.cloud.usingServiceWorker&&(null===(k=C.cloud.options)||void 0===k?void 0:k.databaseUrl)?(U||g(C,"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){}})}(C).catch(()=>{})):(null===(S=C.cloud.options)||void 0===S?void 0:S.databaseUrl)&&C.cloud.schema&&!C.cloud.isServiceWorkerDB&&(h=pc(C,C.cloud.options,C.cloud.schema),h.start(),U||y(C,"push")),p(),C.cloud.isServiceWorkerDB||c.push(t.fromEvent(self,"online").subscribe(()=>{C.syncStateChangedEvent.next({phase:"not-in-sync"}),Mo(C)||y(C,"push")}),t.fromEvent(self,"offline").subscribe(()=>{C.syncStateChangedEvent.next({phase:"offline"})})),!(null===(x=C.cloud.options)||void 0===x?void 0:x.databaseUrl)||(null===(E=C.cloud.options)||void 0===E?void 0:E.disableWebSocket)||Co||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 ut(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])=>qo.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 ut(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 oc(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 Ot(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 ac?t.throwError(()=>r):t.from(uc()).pipe(n.switchMap(()=>s())))))}().subscribe({next:t=>{t&&e.messageConsumer.enqueue(t)},error:e=>{},complete:()=>{}})}(C))})}(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,b=new t.BehaviorSubject(!1);var v;s.cloud={version:"4.4.1",options:Object.assign({},Hl),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),blobProgress:io(no(s),b),userInteraction:new t.BehaviorSubject(void 0),webSocketStatus:new t.BehaviorSubject("not-started"),login(e){return r(this,void 0,void 0,function*(){const t=no(s);yield t.cloud.sync(),yield _o(t,e)})},invites:Wl(s),roles:$l(s),configure(e){if(void 0!==e.maxStringLength&&e.maxStringLength!==1/0&&(!Number.isFinite(e.maxStringLength)||e.maxStringLength<0||e.maxStringLength>32768))throw new Error(`maxStringLength must be Infinity or a finite number in [0, 32768]. Got: ${e.maxStringLength}`);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)}`,no(s).reconfigure()),gc(s.cloud.schema,s.cloud.options),"undefined"!=typeof window&&window.location)try{const e=Kl();e&&(u={code:e.code,provider:e.provider})}catch(e){e instanceof po&&(d=e)}},logout(){return r(this,arguments,void 0,function*({force:e}={}){e?yield ho(no(s),{deleteUnsyncedData:!0}):yield uo(no(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 yo(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=no(s);if("ok"!==((null===(c=l.cloud.currentUser.value.license)||void 0===c?void 0:c.status)||"ok")&&(yield At(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 dc(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 dc(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=Ml(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=>Vo(e,s)),s.Table.prototype.newId=function({colocateWith:e}={}){const t=e&&e.substr(e.length-3);return Po(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(zo(no(s))),s.use(Fo({currentUserObservable:s.cloud.currentUser,db:no(s)})),s.use((v=no(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 u=e.trans;if(u.disableChangeTracking)return n.mutate(e);const d=null!==(s=null===(r=u.currentUser)||void 0===r?void 0:r.userId)&&void 0!==s?s: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=d),t.realmId||(t.realmId=d);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(Lo(no(s)))}Jl.version="4.4.1",e.Cloud=Jl;const ql=new Map;function Gl(e){return e.startsWith("dexie-cloud:")&&e.split(":")[1]}const Yl=new Map;function Ql(t,n){let s=Yl.get(t+"/"+n);return s||(s=function t(n,s){return r(this,void 0,void 0,function*(){var r;let i=ql.get(n);if(!i){const r=new e(n,{addons:[Jl]});if(i=no(r),i.cloud.isServiceWorkerDB=!0,r.on("versionchange",o),yield i.dx.open(),ql.get(n))return i.close(),yield t(n,s);ql.set(n,i)}if((null===(r=i.cloud.options)||void 0===r?void 0:r.databaseUrl)&&i.cloud.schema)try{yield fc(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),ql.get(i.name)===i&&ql.delete(i.name),i.dx.close(),!1}})}(t,n).then(()=>{Yl.delete(t+"/"+n)}).catch(e=>(Yl.delete(t+"/"+n),Promise.reject(e))),Yl.set(t+"/"+n,s)),s}Eo||(self.addEventListener("sync",e=>{const t=Gl(e.tag);t&&e.waitUntil(Ql(t,"push"))}),self.addEventListener("periodicsync",e=>{const t=Gl(e.tag);t&&e.waitUntil(Ql(t,"pull"))}),self.addEventListener("message",e=>{if("dexie-cloud-sync"===e.data.type){const{dbName:t}=e.data,n=(s=1)=>Ql(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,u)}}),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,u):d(o[0][2],e)}(s[e](t))}catch(e){d(o[0][3],e)}}function a(e){l("next",e)}function u(e){l("throw",e)}function d(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(w){}const a={},u="undefined"!=typeof self&&self.document&&"undefined"!=typeof navigator&&navigator.serviceWorker;u&&u.ready.then(e=>a.registration=e),"undefined"!=typeof self&&"clients"in self&&!self.document&&addEventListener("message",e=>{var t,n;(null===(n=null===(t=e.data)||void 0===t?void 0:t.type)||void 0===n?void 0:n.startsWith("sw-broadcast-"))&&[...self.clients.matchAll({includeUncontrolled:!0})].forEach(t=>{var n;return t.id!==(null===(n=e.source)||void 0===n?void 0:n.id)&&t.postMessage(e.data)})});class d{constructor(e){this.name=e}subscribe(e){if(!u)return()=>{};const t=t=>{var n;(null===(n=t.data)||void 0===n?void 0:n.type)===`sw-broadcast-${this.name}`&&e(t.data.message)};return u.addEventListener("message",t),()=>u.removeEventListener("message",t)}postMessage(e){var t;"object"==typeof self.clients?[...self.clients.matchAll({includeUncontrolled:!0})].forEach(t=>t.postMessage({type:`sw-broadcast-${this.name}`,message:e})):a.registration&&(null===(t=a.registration.active)||void 0===t||t.postMessage({type:`sw-broadcast-${this.name}`,message:e}))}}const h=globalThis["lbc-events"]||(globalThis["lbc-events"]=new Map);class f extends t.Observable{constructor(e){const t="undefined"==typeof BroadcastChannel?new d(e):new BroadcastChannel(e);super(n=>{function r(e){n.next(e.detail)}function s(e){n.next(e.data)}let i;!function(e,t){h.has(e)?h.get(e).push(t):h.set(e,[t])}(`lbc-${e}`,r);try{t instanceof d?i=t.subscribe(e=>n.next(e)):t.addEventListener("message",s)}catch(e){}return()=>{!function(e,t){const n=h.get(e);if(n){const e=n.indexOf(t);-1!==e&&n.splice(e,1)}}(`lbc-${e}`,r),t instanceof d?i():t.removeEventListener("message",s)}}),this.name=e,this.bc=t}next(e){this.bc.postMessage(e);!function(e){const t=h.get(e.type);t&&t.forEach(t=>{try{t(e)}catch(e){}})}(new CustomEvent(`lbc-${this.name}`,{detail:e}))}}let p=!1;function g(e,t){return r(this,void 0,void 0,function*(){try{const n=yield navigator.serviceWorker.ready;if("push"===t&&n.sync&&(yield n.sync.register(`dexie-cloud:${e.name}`)),!n.active)throw new Error("Failed to trigger sync - there's no active service worker");return void n.active.postMessage({type:"dexie-cloud-sync",dbName:e.name,purpose:t})}catch(e){p||(p=!0)}})}function y(e,t){e.cloud.usingServiceWorker?g(e,t):e.localSyncEvent.next({purpose:t})}const{toString:m}={};const b={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}};class v{constructor(e,t){this.buf=e,this.type=t}}var w;const _=Symbol.for("TSONRef");class k{constructor(e,t,n,r){this.type=e,this.ref=t,this.size=n,this.contentType=r,this[w]=!0,Object.freeze(this)}async resolve(){if(!k.resolver)throw new Error("TSONRef.resolver not configured. Set TSONRef.resolver to a function that fetches blobs.");const e=await k.resolver(this);return this.reconstruct(e)}reconstruct(e){const t=(t,n)=>{if(e.byteLength%t!==0)throw new RangeError(`Buffer length ${e.byteLength} is not aligned to ${t} bytes for ${n}`)};switch(this.type){case"ArrayBuffer":default:return e;case"Uint8Array":return new Uint8Array(e);case"Blob":return new Blob([e],{type:this.contentType});case"Int8Array":return new Int8Array(e);case"Uint8ClampedArray":return new Uint8ClampedArray(e);case"Int16Array":return t(2,"Int16Array"),new Int16Array(e);case"Uint16Array":return t(2,"Uint16Array"),new Uint16Array(e);case"Int32Array":return t(4,"Int32Array"),new Int32Array(e);case"Uint32Array":return t(4,"Uint32Array"),new Uint32Array(e);case"Float32Array":return t(4,"Float32Array"),new Float32Array(e);case"Float64Array":return t(8,"Float64Array"),new Float64Array(e);case"BigInt64Array":return t(8,"BigInt64Array"),new BigInt64Array(e);case"BigUint64Array":return t(8,"BigUint64Array"),new BigUint64Array(e)}}static isTSONRef(e){return null!==e&&"object"==typeof e&&_ in e&&!0===e[_]}static isTSONRefData(e){return null!==e&&"object"==typeof e&&"$ref"in e&&"$t"in e&&"$size"in e}static fromData(e){return new k(e.$t,e.$ref,e.$size,e.$ct)}toJSON(){const e={$t:this.type,$ref:this.ref,$size:this.size};return this.contentType&&(e.$ct=this.contentType),e}}function S(e){const t=new XMLHttpRequest;t.overrideMimeType("text/plain; charset=x-user-defined");const n=URL.createObjectURL(e);try{if(t.open("GET",n,!1),t.send(),200!==t.status&&0!==t.status)throw new Error("Bad Blob access: "+t.status);return t.responseText}finally{URL.revokeObjectURL(n)}}w=_,k.TYPE_SYMBOL=_,k.resolver=null;const x={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)}},E={Date:{replace:e=>({$t:"Date",v:isNaN(e.getTime())?"NaN":e.toISOString()}),revive:({v:e})=>new Date("NaN"===e?NaN:Date.parse(e))}},C={Set:{replace:e=>({$t:"Set",v:Array.from(e)}),revive:({v:e})=>new Set(e)}},A={Map:{replace:e=>({$t:"Map",v:Array.from(e.entries())}),revive:({v:e})=>new Map(e)}},I="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof global?global:void 0,O=["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","DataView","BigInt64Array","BigUint64Array"].reduce((e,t)=>({...e,[t]:{replace:(e,n,r)=>{const s=e.buffer,i=0===e.byteOffset&&e.byteLength===s.byteLength?s:s.slice(e.byteOffset,e.byteOffset+e.byteLength);return{$t:t,v:r.ArrayBuffer.replace(i,n,r).v}},revive:({v:e},n,r)=>{const s=I[t];return s&&new s(r.ArrayBuffer.revive({v:e},n,r))}}}),{}),D="fromBase64"in Uint8Array,T="toBase64"in Uint8Array.prototype,j="undefined"!=typeof Buffer?e=>Buffer.from(e,"base64"):D?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},U="undefined"!=typeof Buffer?e=>ArrayBuffer.isView(e)?Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("base64"):Buffer.from(e).toString("base64"):T?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,Array.from(r)))}return btoa(n.join(""))};function P(e){return function(e){for(var t="",n=0,r=e.length;n<r;n++)t+=$[e[n]];return t}(U(e))}function L(e){return j(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+=R[e[n]];return t}(e))}const R={"-":"=",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:"+","|":"/"},$={};for(const e of Object.keys(R))$[R[e]]=e;const B={ArrayBuffer:{replace:e=>({$t:"ArrayBuffer",v:P(e)}),revive:({v:e})=>{const t=L(e);return t.buffer.byteLength===t.byteLength?t.buffer:t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}}};function N(e){const t=new Uint8Array(e.length);for(let n=0;n<e.length;++n)t[n]=e.charCodeAt(n);return t.buffer}const M={Blob:{test:(e,t)=>"Blob"===t||e instanceof v,replace:e=>({$t:"Blob",v:U(e instanceof v?e.buf:N(S(e))),type:e.type}),revive:({type:e,v:t})=>{const n=j(t),r=n.buffer.byteLength===n.byteLength?n.buffer:n.buffer.slice(n.byteOffset,n.byteOffset+n.byteLength);return"undefined"!=typeof Blob?new Blob([new Uint8Array(r)],{type:e}):new v(r,e)}}},F={File:{test:(e,t)=>"File"===t,replace:e=>({$t:"File",v:U(N(S(e))),type:e.type,name:e.name,lastModified:new Date(e.lastModified).toISOString()}),revive:({type:e,v:t,name:n,lastModified:r})=>{const s=j(t),i=s.buffer.byteLength===s.byteLength?s.buffer:s.buffer.slice(s.byteOffset,s.byteOffset+s.byteLength);return new File([new Uint8Array(i)],n,{type:e,lastModified:new Date(r).getTime()})}}},W={undefined:{replace:()=>({$t:"undefined"}),revive:()=>{}}},z="undefined"!=typeof crypto?crypto.getRandomValues.bind(crypto):e=>{for(let t=0;t<e.length;++t)e[t]=Math.floor(256*Math.random())};let K=0;const V={}.hasOwnProperty;function H(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)H(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 V.call(e,t)}(e,o)||(l=e[o]={}),H(l,c,n)}}else void 0===n?Array.isArray(e)&&!isNaN(parseInt(t))?e.splice(t,1):delete e[t]:e[t]=n}}const J="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=q)=>{const n=Buffer.alloc(e);return t(n),n.toString("base64")}:()=>{throw new Error("No implementation of randomString was found")};function q(e){for(let t=0;t<e.length;++t)e[t]=Math.floor(256*Math.random())}function G(e){return"string"==typeof e||!!(Array.isArray(e)&&e.some(e=>G(e))&&e.every(Y))}function Y(e){return"string"==typeof e||"number"==typeof e||Array.isArray(e)&&e.every(Y)}function Q(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))H(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 X(e,t){for(const{table:n,muts:r}of t)for(const t of r)Q(e,n,t)}const Z=Math.floor,ee=Math.abs,te=(e,t)=>e<t?e:t,ne=(e,t)=>e>t?e:t,re=e=>0!==e?e<0:1/e<0,se=64,ie=128,oe=127,ce=Number.MAX_SAFE_INTEGER,le=Number.isInteger||(e=>"number"==typeof e&&isFinite(e)&&Z(e)===e),ae=()=>new Set,ue=e=>e[e.length-1],de=(e,t)=>{for(let n=0;n<t.length;n++)e.push(t[n])},he=Array.from,fe=Array.isArray,pe=/^\s*/g,ge=/([A-Z])/g,ye=(e,t)=>(e=>e.replace(pe,""))(e.replace(ge,e=>`${t}${(e=>e.toLowerCase())(e)}`)),me="undefined"!=typeof TextEncoder?new TextEncoder:null,be=me?e=>me.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 ve="undefined"==typeof TextDecoder?null:new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});ve&&1===ve.decode(new Uint8Array).length&&(ve=null);class we{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}}const _e=()=>new we,ke=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},Se=(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},xe=Se,Ee=(e,t)=>{for(;t>oe;)Se(e,ie|oe&t),t=Z(t/128);Se(e,oe&t)},Ce=(e,t)=>{const n=re(t);for(n&&(t=-t),Se(e,(t>63?ie:0)|(n?se:0)|63&t),t=Z(t/64);t>0;)Se(e,(t>oe?ie:0)|oe&t),t=Z(t/128)},Ae=new Uint8Array(3e4),Ie=Ae.length/3,Oe=me&&me.encodeInto?(e,t)=>{if(t.length<Ie){const n=me.encodeInto(t,Ae).written||0;Ee(e,n);for(let t=0;t<n;t++)Se(e,Ae[t])}else Te(e,be(t))}:(e,t)=>{const n=unescape(encodeURIComponent(t)),r=n.length;Ee(e,r);for(let t=0;t<r;t++)Se(e,n.codePointAt(t))},De=(e,t)=>{const n=e.cbuf.length,r=e.cpos,s=te(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(ne(2*n,i)),e.cbuf.set(t.subarray(s)),e.cpos=i)},Te=(e,t)=>{Ee(e,t.byteLength),De(e,t)},je=(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*ne(n,t)),e.cpos=0)})(e,t);const n=new DataView(e.cbuf.buffer,e.cpos,t);return e.cpos+=t,n},Ue=(e,t)=>je(e,8).setBigUint64(0,t,!1),Pe=new DataView(new ArrayBuffer(4)),Le=(e,t)=>{switch(typeof t){case"string":Se(e,119),Oe(e,t);break;case"number":le(t)&&ee(t)<=2147483647?(Se(e,125),Ce(e,t)):(n=t,Pe.setFloat32(0,n),Pe.getFloat32(0)===n?(Se(e,124),((e,t)=>{je(e,4).setFloat32(0,t,!1)})(e,t)):(Se(e,123),((e,t)=>{je(e,8).setFloat64(0,t,!1)})(e,t)));break;case"bigint":Se(e,122),((e,t)=>{je(e,8).setBigInt64(0,t,!1)})(e,t);break;case"object":if(null===t)Se(e,126);else if(fe(t)){Se(e,117),Ee(e,t.length);for(let n=0;n<t.length;n++)Le(e,t[n])}else if(t instanceof Uint8Array)Se(e,116),Te(e,t);else{Se(e,118);const n=Object.keys(t);Ee(e,n.length);for(let r=0;r<n.length;r++){const s=n[r];Oe(e,s),Le(e,t[s])}}break;case"boolean":Se(e,t?120:121);break;default:Se(e,127)}var n};class Re extends we{constructor(e){super(),this.w=e,this.s=null,this.count=0}write(e){this.s===e?this.count++:(this.count>0&&Ee(this,this.count-1),this.count=1,this.w(this,e),this.s=e)}}const $e=e=>{e.count>0&&(Ce(e.encoder,1===e.count?e.s:-e.s),e.count>1&&Ee(e.encoder,e.count-2))};class Be{constructor(){this.encoder=new we,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),ke(this.encoder)}}const Ne=e=>{if(e.count>0){const t=2*e.diff+(1===e.count?0:1);Ce(e.encoder,t),e.count>1&&Ee(e.encoder,e.count-2)}};class Me{constructor(){this.encoder=new we,this.s=0,this.count=0,this.diff=0}write(e){this.diff===e-this.s?(this.s=e,this.count++):(Ne(this),this.count=1,this.diff=e-this.s,this.s=e)}toUint8Array(){return Ne(this),ke(this.encoder)}}class Fe{constructor(){this.sarr=[],this.s="",this.lensE=new Be}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 we;return this.sarr.push(this.s),this.s="",Oe(e,this.sarr.join("")),De(e,this.lensE.toUint8Array()),ke(e)}}const We=e=>new Error(e),ze=()=>{throw We("Method unimplemented")},Ke=()=>{throw We("Unexpected case")},Ve=We("Unexpected end of array"),He=We("Integer out of Range");class Je{constructor(e){this.arr=e,this.pos=0}}const qe=e=>new Je(e),Ge=e=>e.pos!==e.arr.length,Ye=e=>((e,t)=>{const n=new Uint8Array(e.arr.buffer,e.pos+e.arr.byteOffset,t);return e.pos+=t,n})(e,Xe(e)),Qe=e=>e.arr[e.pos++],Xe=e=>{let t=0,n=1;const r=e.arr.length;for(;e.pos<r;){const r=e.arr[e.pos++];if(t+=(r&oe)*n,n*=128,r<ie)return t;if(t>ce)throw He}throw Ve},Ze=e=>{let t=e.arr[e.pos++],n=63&t,r=64;const s=(t&se)>0?-1:1;if(0===(t&ie))return s*n;const i=e.arr.length;for(;e.pos<i;){if(t=e.arr[e.pos++],n+=(t&oe)*r,r*=128,t<ie)return s*n;if(n>ce)throw He}throw Ve},et=ve?e=>ve.decode(Ye(e)):e=>{let t=Xe(e);if(0===t)return"";{let n=String.fromCodePoint(Qe(e));if(--t<100)for(;t--;)n+=String.fromCodePoint(Qe(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))}},tt=(e,t)=>{const n=new DataView(e.arr.buffer,e.arr.byteOffset+e.pos,t);return e.pos+=t,n},nt=e=>tt(e,8).getBigUint64(0,!1),rt=[e=>{},e=>null,Ze,e=>tt(e,4).getFloat32(0,!1),e=>tt(e,8).getFloat64(0,!1),e=>tt(e,8).getBigInt64(0,!1),e=>!1,e=>!0,et,e=>{const t=Xe(e),n={};for(let r=0;r<t;r++){n[et(e)]=st(e)}return n},e=>{const t=Xe(e),n=[];for(let r=0;r<t;r++)n.push(st(e));return n},Ye],st=e=>rt[127-Qe(e)](e);class it extends Je{constructor(e,t){super(e),this.reader=t,this.s=null,this.count=0}read(){return 0===this.count&&(this.s=this.reader(this),Ge(this)?this.count=Xe(this)+1:this.count=-1),this.count--,this.s}}class ot extends Je{constructor(e){super(e),this.s=0,this.count=0}read(){if(0===this.count){this.s=Ze(this);const e=re(this.s);this.count=1,e&&(this.s=-this.s,this.count=Xe(this)+2)}return this.count--,this.s}}class ct extends Je{constructor(e){super(e),this.s=0,this.count=0,this.diff=0}read(){if(0===this.count){const e=Ze(this),t=1&e;this.diff=Z(e/2),this.count=1,t&&(this.count=Xe(this)+2)}return this.s+=this.diff,this.count--,this.s}}class lt{constructor(e){this.decoder=new ot(e),this.str=et(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*at(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}}}}function ut(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 U(s)})}function dt(e){return Object.entries(e.cloud.schema||{}).filter(([,{markedForSync:e}])=>e).map(([t])=>e.tables.find(({name:e})=>e===t)).filter(e=>!!e)}function ht(e){return`$${e}_mutations`}function ft(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 pt=[].concat;function gt(e){return pt.apply([],e)}function yt(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=ft(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=gt(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 mt(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")}class bt 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 vt=`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 wt(e){return{name:"provider",value:e.name,displayName:`Continue with ${e.displayName}`,iconUrl:e.iconUrl,styleHint:e.type}}function _t(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 kt(e,t,...n){return _t(e,{type:"message-alert",title:t,alerts:n,fields:{},submitLabel:"OK",cancelLabel:null})}function St(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 _t(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 xt(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 _t(e,{type:"otp",title:"Enter OTP",alerts:r,fields:{otp:{type:"otp",label:"OTP",placeholder:"Paste OTP here"}}});return s})}class Et extends Error{constructor(e){super(`OAuth redirect initiated for provider: ${e}`),this.name="OAuthRedirectError",this.provider=e}}const Ct=1e3;function At(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()+3e5&&"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 u=yield Ot(e.cloud.options.databaseUrl,s);return yield e.table("$logins").update(a.sub,{accessToken:u.accessToken,accessTokenExpiration:u.accessTokenExpiration,claims:u.claims,license:u.license,data:u.data}),u})}function It(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 Ot(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=U(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 bt(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 _t(s,{type:"message-alert",title:"Authentication Alert",fields:{},alerts:e.alerts})),t}catch(t){if(t instanceof Et||"OAuthRedirectError"===(null==t?void 0:t.name))throw t;if(t instanceof bt)throw yield kt(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){if("undefined"!=typeof navigator&&!navigator.onLine)n="You seem to be offline. Please connect to the internet and try again.";else if("undefined"==typeof location||!e.debug&&"localhost"!==location.hostname&&"127.0.0.1"!==location.hostname)n="Could not connect to server. Please verify the connection.",yield kt(s,"Authentication Failed",{type:"error",messageCode:"GENERIC_ERROR",message:n,messageParams:{}}).catch(()=>{});else{const e=`npx dexie-cloud whitelist ${location.origin}`;n=`Could not connect to server. Please verify that your origin '${location.origin}' is whitelisted using \`npx dexie-cloud whitelist\``,yield kt(s,"Authentication Failed",{type:"error",messageCode:"GENERIC_ERROR",message:n,messageParams:{},copyText:e}).catch(()=>{})}}throw t}})}(n,s,i,o)})}function Ot(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=U(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 bt(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 Dt="function"==typeof BigInt&&"bigint"==typeof BigInt(0);class Tt{toString(){return this.v}constructor(e){this.v=e}}const jt=Dt?{}:{bigint:{test:e=>e instanceof Tt,replace:e=>Object.assign({$t:"bigint"},e),revive:({v:e})=>new Tt(e)}},Ut=Object.assign(Object.assign(Object.assign(Object.assign({},W),jt),F),{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)}}}),Pt=function(...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 b;let i=n.get(r);if(void 0!==i)return i;const o=(s=e,m.call(s).slice(8,-1)),c=Object.entries(t).find(([t,n])=>n?.test?.(e,o)??t===o);return i=c?.[1],i||(i=Array.isArray(e)?null:"function"==typeof e?t.function||null:b),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=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})}}}(O,B,M,x,E,C,A,Ut);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 u=`${t}:${n.userId}`;c.keys[o]=u,s&&e.setByKeyPath(c.values[o],l.keyPath,u)}})}),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 Bt=new WeakMap;function Nt(e){return r(this,void 0,void 0,function*(){var t,n;const r=(null!==(n=null===(t=Bt.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 Mt(e,t,n,s,i,o,c,l,a){return r(this,void 0,void 0,function*(){const r={Accept:"application/json","Content-Type":"application/tson"},u=yield At(i),d=null==u?void 0:u.accessToken;d&&(r.Authorization=`Bearer ${d}`);const h={v:3,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=Pt.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));Bt.set(e,new Date(Date.now()+1e3*t))}else Bt.delete(e)}}(i,p),!p.ok)throw new Lt(p);switch(p.headers.get("content-type")){case"application/x-bison":case"application/x-bison-stream":throw new Error("BISON format no longer supported. Server should send application/json.");default:{const e=yield p.text();return Pt.parse(e)}}})}function Ft(t){if(null==t?void 0:t.cancelled)throw new e.AbortError("Operation was cancelled")}let Wt=!1;function zt(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 Kt(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 Vt(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 Ht(e){if("object"!=typeof e||null===e)return!1;const t=e;return"string"==typeof t._bt&&"string"==typeof t.ref&&void 0===t.v}function Jt(e,t=new WeakSet){return null!=e&&(!!Ht(e)||"object"==typeof e&&(!t.has(e)&&(t.add(e),!(e instanceof Date||e instanceof RegExp||e instanceof Blob)&&(!(e instanceof ArrayBuffer||ArrayBuffer.isView(e))&&(Array.isArray(e)?e.some(e=>Jt(e,t)):e.constructor===Object&&Object.values(e).some(e=>Jt(e,t)))))))}function qt(e,t){return r(this,arguments,void 0,function*(e,t,n=[],r="",s=new WeakMap,i){if(null==e)return e;if(Ht(e)){const s=function(e,t){if("string"===t._bt)return(new TextDecoder).decode(e);const n=e.buffer.byteLength===e.byteLength?e.buffer:e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength);switch(t._bt){case"Blob":return new Blob([new Uint8Array(n)],{type:t.ct||""});case"ArrayBuffer":return n;case"Uint8Array":default:return e;case"Int8Array":return new Int8Array(n);case"Uint8ClampedArray":return new Uint8ClampedArray(n);case"Int16Array":return new Int16Array(n);case"Uint16Array":return new Uint16Array(n);case"Int32Array":return new Int32Array(n);case"Uint32Array":return new Uint32Array(n);case"Float32Array":return new Float32Array(n);case"Float64Array":return new Float64Array(n);case"BigInt64Array":return new BigInt64Array(n);case"BigUint64Array":return new BigUint64Array(n);case"DataView":return new DataView(n)}}(yield i.download(e,t),e);return n.push({keyPath:r,data:s,ref:e.ref}),s}if(Array.isArray(e)){if(s.has(e))return s.get(e);const o=[];s.set(e,o);for(let c=0;c<e.length;c++){const l=r?`${r}.${c}`:`${c}`;o.push(yield qt(e[c],t,n,l,s,i))}return o}if("object"==typeof e&&e.constructor===Object){if(s.has(e))return s.get(e);const o={};s.set(e,o);for(const[c,l]of Object.entries(e)){if("_hasBlobRefs"===c)continue;const e=r?`${r}.${c}`:c;o[c]=yield qt(l,t,n,e,s,i)}return o}return e})}function Gt(e){return"object"==typeof e&&null!==e&&1===e._hasBlobRefs}function Yt(e){null!==e&&"object"==typeof e&&e.constructor===Object&&Jt(e)&&(e._hasBlobRefs=1)}function Qt(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":n.values.forEach(Yt),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":n.values.forEach(Yt),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 Vt(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 Xt="dexie-cloud-syncer";function Zt(e,t){return e.where("i").between(t,1/0,!0).toArray()}const en=()=>new Map,tn=e=>{const t=en();return e.forEach((e,n)=>{t.set(n,e)}),t},nn=(e,t,n)=>{let r=e.get(t);return void 0===r&&e.set(t,r=n()),r};class rn{constructor(){this._observers=en()}on(e,t){return nn(this._observers,e,ae).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 he((this._observers.get(e)||en()).values()).forEach(e=>e(...t))}destroy(){this._observers=en()}}class sn{constructor(){this._observers=en()}on(e,t){nn(this._observers,e,ae).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 he((this._observers.get(e)||en()).values()).forEach(e=>e(...t))}destroy(){this._observers=en()}}const on=crypto.getRandomValues.bind(crypto),cn=()=>on(new Uint32Array(1))[0],ln=[1e7]+-1e3+-4e3+-8e3+-1e11,an=()=>ln.replace(/[018]/g,e=>(e^cn()&15>>e/4).toString(16)),un=Date.now,dn=e=>new Promise(e);Promise.all.bind(Promise);const hn=e=>void 0===e?null:e;let fn=new class{constructor(){this.map=new Map}setItem(e,t){this.map.set(e,t)}getItem(e){return this.map.get(e)}},pn=!0;try{"undefined"!=typeof localStorage&&localStorage&&(fn=localStorage,pn=!1)}catch(dl){}const gn=fn,yn=Object.assign,mn=Object.keys,bn=e=>mn(e).length,vn=e=>mn(e).length,wn=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),_n=Object.freeze,kn=e=>{for(const t in e){const n=e[t];"object"!=typeof n&&"function"!=typeof n||kn(e[t])}return _n(e)},Sn=Symbol("Equality"),xn=(e,t,n=0)=>{try{for(;n<e.length;n++)e[n](...t)}finally{n<e.length&&xn(e,t,n+1)}},En=(e,t)=>{if(e===t)return!0;if(null==e||null==t||e.constructor!==t.constructor)return!1;if(null!=e[Sn])return e[Sn](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)||!En(e.get(n),t.get(n)))return!1;break;case Object:if(bn(e)!==bn(t))return!1;for(const n in e)if(!wn(e,n)||!En(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(!En(e[n],t[n]))return!1;break;default:return!1}return!0},Cn="undefined"!=typeof process&&process.release&&/node|io\.js/.test(process.release.name)&&"[object process]"===Object.prototype.toString.call("undefined"!=typeof process?process:0);let An;const In=e=>(()=>{if(void 0===An)if(Cn){An=en();const e=process.argv;let t=null;for(let n=0;n<e.length;n++){const r=e[n];"-"===r[0]?(null!==t&&An.set(t,""),t=r):null!==t&&(An.set(t,r),t=null)}null!==t&&An.set(t,"")}else"object"==typeof location?(An=en(),(location.search||"?").slice(1).split("&").forEach(e=>{if(0!==e.length){const[t,n]=e.split("=");An.set(`--${ye(t,"-")}`,n),An.set(`-${ye(t,"-")}`,n)}})):An=en();return An})().has(e),On=e=>hn(Cn?process.env[e.toUpperCase().replaceAll("-","_")]:gn.getItem(e)),Dn=e=>In("--"+e)||null!==On(e);Dn("production");var Tn;Cn&&(Tn=process.env.FORCE_COLOR,["true","1","2"].includes(Tn))||!In("--no-colors")&&!Dn("no-color")&&(!Cn||process.stdout.isTTY)&&(!Cn||In("--color")||null!==On("COLORTERM")||(On("TERM")||"").includes("color"));class jn{constructor(e,t){this.left=e,this.right=t}}const Un=(e,t)=>new jn(e,t);"undefined"!=typeof DOMParser&&new DOMParser;const Pn=Symbol,Ln=Pn(),Rn=Pn(),$n=Pn(),Bn=Pn(),Nn=Pn(),Mn=Pn(),Fn=Pn(),Wn=Pn(),zn=Pn(),Kn=(Un("font-weight","bold"),Un("font-weight","normal"),Un("color","blue"),Un("color","green"),Un("color","grey"),Un("color","red"),Un("color","purple"),Un("color","orange"),Un("color","black"),ae()),Vn=e=>({[Symbol.iterator](){return this},next:e}),Hn=(e,t)=>Vn(()=>{const{done:n,value:r}=e.next();return{done:n,value:n?void 0:t(r)}});class Jn{constructor(e,t){this.clock=e,this.len=t}}class qn{constructor(){this.clients=new Map}}const Gn=(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])Tr(e,s,o.clock,o.len,n)}}),Yn=(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=Z((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)},Qn=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=ne(r.len,s.clock+s.len-r.clock):(n<t&&(e[n]=s),n++)}e.length=n})},Xn=(e,t,n,r)=>{nn(e.clients,t,()=>[]).push(new Jn(n,r))},Zn=(e,t)=>{Ee(e.restEncoder,t.clients.size),he(t.clients.entries()).sort((e,t)=>t[0]-e[0]).forEach(([t,n])=>{e.resetDsCurVal(),Ee(e.restEncoder,t);const r=n.length;Ee(e.restEncoder,r);for(let t=0;t<r;t++){const r=n[t];e.writeDsClock(r.clock),e.writeDsLen(r.len)}})},er=(e,t,n)=>{const r=new qn,s=Xe(e.restDecoder);for(let i=0;i<s;i++){e.resetDsCurVal();const s=Xe(e.restDecoder),i=Xe(e.restDecoder),o=n.clients.get(s)||[],c=xr(n,s);for(let n=0;n<i;n++){const n=e.readDsClock(),i=n+e.readDsLen();if(n<c){c<i&&Xn(r,s,c,i-c);let e=Cr(o,n),l=o[e];for(!l.deleted&&l.id.clock<n&&(o.splice(e+1,0,hi(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,hi(t,l,i-l.id.clock)),l.delete(t))}else Xn(r,s,n,i-n)}}if(r.clients.size>0){const e=new lr;return Ee(e.restEncoder,0),Zn(e,r),e.toUint8Array()}return null},tr=cn;class nr extends rn{constructor({guid:e=an(),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=tr(),this.guid=e,this.collectionid=t,this.share=new Map,this.store=new kr,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=dn(e=>{this.on("load",()=>{this.isLoaded=!0,e(this)})});const c=()=>dn(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||$r(e.parent.doc,e=>{e.subdocsLoaded.add(this)},null,!0),this.shouldLoad=!0}getSubdocs(){return this.subdocs}getSubdocGuids(){return new Set(he(this.subdocs).map(e=>e.guid))}transact(e,t=null){return $r(this,e,t)}get(e,t=ns){const n=nn(this.share,e,()=>{const e=new t;return e._integrate(this,null),e}),r=n.constructor;if(t!==ns&&r!==t){if(r===ns){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,ws)}getText(e=""){return this.get(e,Bs)}getMap(e=""){return this.get(e,ks)}getXmlElement(e=""){return this.get(e,Fs)}getXmlFragment(e=""){return this.get(e,Ms)}toJSON(){const e={};return this.share.forEach((t,n)=>{e[n]=t.toJSON()}),e}destroy(){this.isDestroyed=!0,he(this.subdocs).forEach(e=>e.destroy());const e=this._item;if(null!==e){this._item=null;const t=e.content;t.doc=new nr({guid:this.guid,...t.opts,shouldLoad:!1}),t.doc._item=e,$r(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 rr{constructor(e){this.dsCurrVal=0,this.restDecoder=e}resetDsCurVal(){this.dsCurrVal=0}readDsClock(){return this.dsCurrVal+=Xe(this.restDecoder),this.dsCurrVal}readDsLen(){const e=Xe(this.restDecoder)+1;return this.dsCurrVal+=e,e}}class sr extends rr{constructor(e){super(e),this.keys=[],Xe(e),this.keyClockDecoder=new ct(Ye(e)),this.clientDecoder=new ot(Ye(e)),this.leftClockDecoder=new ct(Ye(e)),this.rightClockDecoder=new ct(Ye(e)),this.infoDecoder=new it(Ye(e),Qe),this.stringDecoder=new lt(Ye(e)),this.parentInfoDecoder=new it(Ye(e),Qe),this.typeRefDecoder=new ot(Ye(e)),this.lenDecoder=new ot(Ye(e))}readLeftID(){return new mr(this.clientDecoder.read(),this.leftClockDecoder.read())}readRightID(){return new mr(this.clientDecoder.read(),this.rightClockDecoder.read())}readClient(){return this.clientDecoder.read()}readInfo(){return this.infoDecoder.read()}readString(){return this.stringDecoder.read()}readParentInfo(){return 1===this.parentInfoDecoder.read()}readTypeRef(){return this.typeRefDecoder.read()}readLen(){return this.lenDecoder.read()}readAny(){return st(this.restDecoder)}readBuf(){return Ye(this.restDecoder)}readJSON(){return st(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 ir{constructor(){this.restEncoder=_e()}toUint8Array(){return ke(this.restEncoder)}resetDsCurVal(){}writeDsClock(e){Ee(this.restEncoder,e)}writeDsLen(e){Ee(this.restEncoder,e)}}class or extends ir{writeLeftID(e){Ee(this.restEncoder,e.client),Ee(this.restEncoder,e.clock)}writeRightID(e){Ee(this.restEncoder,e.client),Ee(this.restEncoder,e.clock)}writeClient(e){Ee(this.restEncoder,e)}writeInfo(e){xe(this.restEncoder,e)}writeString(e){Oe(this.restEncoder,e)}writeParentInfo(e){Ee(this.restEncoder,e?1:0)}writeTypeRef(e){Ee(this.restEncoder,e)}writeLen(e){Ee(this.restEncoder,e)}writeAny(e){Le(this.restEncoder,e)}writeBuf(e){Te(this.restEncoder,e)}writeJSON(e){Oe(this.restEncoder,JSON.stringify(e))}writeKey(e){Oe(this.restEncoder,e)}}class cr{constructor(){this.restEncoder=_e(),this.dsCurrVal=0}toUint8Array(){return ke(this.restEncoder)}resetDsCurVal(){this.dsCurrVal=0}writeDsClock(e){const t=e-this.dsCurrVal;this.dsCurrVal=e,Ee(this.restEncoder,t)}writeDsLen(e){0===e&&Ke(),Ee(this.restEncoder,e-1),this.dsCurrVal+=e}}class lr extends cr{constructor(){super(),this.keyMap=new Map,this.keyClock=0,this.keyClockEncoder=new Me,this.clientEncoder=new Be,this.leftClockEncoder=new Me,this.rightClockEncoder=new Me,this.infoEncoder=new Re(xe),this.stringEncoder=new Fe,this.parentInfoEncoder=new Re(xe),this.typeRefEncoder=new Be,this.lenEncoder=new Be}toUint8Array(){const e=_e();return Ee(e,0),Te(e,this.keyClockEncoder.toUint8Array()),Te(e,this.clientEncoder.toUint8Array()),Te(e,this.leftClockEncoder.toUint8Array()),Te(e,this.rightClockEncoder.toUint8Array()),Te(e,ke(this.infoEncoder)),Te(e,this.stringEncoder.toUint8Array()),Te(e,ke(this.parentInfoEncoder)),Te(e,this.typeRefEncoder.toUint8Array()),Te(e,this.lenEncoder.toUint8Array()),De(e,ke(this.restEncoder)),ke(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){Le(this.restEncoder,e)}writeBuf(e){Te(this.restEncoder,e)}writeJSON(e){Le(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 ar=(e,t,n)=>{const r=new Map;n.forEach((e,n)=>{xr(t,n)>e&&r.set(n,e)}),Sr(t).forEach((e,t)=>{n.has(t)||r.set(t,0)}),Ee(e.restEncoder,r.size),he(r.entries()).sort((e,t)=>t[0]-e[0]).forEach(([n,r])=>{((e,t,n,r)=>{r=ne(r,t[0].id.clock);const s=Cr(t,r);Ee(e.restEncoder,t.length-s),e.writeClient(n),Ee(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)})},ur=(e,t,n,r=new sr(e))=>$r(t,e=>{e.local=!1;let t=!1;const n=e.doc,s=n.store,i=((e,t)=>{const n=en(),r=Xe(e.restDecoder);for(let s=0;s<r;s++){const r=Xe(e.restDecoder),s=new Array(r),i=e.readClient();let o=Xe(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 Hs(vr(i,o),t),o+=t;break}case 10:{const t=Xe(e.restDecoder);s[n]=new yi(vr(i,o),t),o+=t;break}default:{const c=!(192&r),l=new fi(vr(i,o),null,(r&ie)===ie?e.readLeftID():null,null,(r&se)===se?e.readRightID():null,c?e.readParentInfo()?t.get(e.readString()):e.readLeftID():null,!c||32&~r?null:e.readString(),pi(e,r));s[n]=l,o+=l.length}}}}return n})(r,n),o=((e,t,n)=>{const r=[];let s=he(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 kr,l=new Map,a=(e,t)=>{const n=l.get(e);(null==n||n>t)&&l.set(e,t)};let u=o.refs[o.i++];const d=new Map,h=()=>{for(const e of r){const t=e.id.client,r=n.get(t);r?(r.i--,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(u.constructor!==yi){const s=nn(d,u.id.client,()=>xr(t,u.id.client))-u.id.clock;if(s<0)r.push(u),a(u.id.client,u.id.clock-1),h();else{const i=u.getMissing(e,t);if(null!==i){r.push(u);const e=n.get(i)||{refs:[],i:0};if(e.refs.length!==e.i){u=e.refs[e.i++];continue}a(i,xr(t,i)),h()}else(0===s||s<u.length)&&(u.integrate(e,s),d.set(u.id.client,u.id.clock+u.length))}}if(r.length>0)u=r.pop();else if(null!==o&&o.i<o.refs.length)u=o.refs[o.i++];else{if(o=i(),null===o)break;u=o.refs[o.i++]}}if(c.clients.size>0){const e=new lr;return ar(e,c,new Map),Ee(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<xr(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=Wr([c.update,o.update])}}else s.pendingStructs=o;const l=er(r,e,s);if(s.pendingDs){const t=new sr(qe(s.pendingDs));Xe(t.restDecoder);const n=er(t,e,s);s.pendingDs=l&&n?Wr([l,n]):l||n}else s.pendingDs=l;if(t){const t=s.pendingStructs.update;s.pendingStructs=null,dr(e.doc,t)}},n,!1),dr=(e,t,n,r=sr)=>{const s=qe(t);ur(s,e,n,new r(s))};class hr{constructor(){this.l=[]}}const fr=()=>new hr,pr=(e,t)=>e.l.push(t),gr=(e,t)=>{const n=e.l;n.length;e.l=n.filter(e=>t!==e),e.l.length},yr=(e,t,n)=>xn(e.l,[t,n]);class mr{constructor(e,t){this.client=e,this.clock=t}}const br=(e,t)=>e===t||null!==e&&null!==t&&e.client===t.client&&e.clock===t.clock,vr=(e,t)=>new mr(e,t),wr=(e,t)=>void 0===t?!e.deleted:t.sv.has(e.id.client)&&(t.sv.get(e.id.client)||0)>e.id.clock&&!Yn(t.ds,e.id),_r=(e,t)=>{const n=nn(e.meta,_r,ae),r=e.doc.store;n.has(t)||(t.sv.forEach((t,n)=>{t<xr(r,n)&&Or(e,vr(n,t))}),Gn(e,t.ds,e=>{}),n.add(t))};class kr{constructor(){this.clients=new Map,this.pendingStructs=null,this.pendingDs=null}}const Sr=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},xr=(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},Er=(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 Ke()}n.push(t)},Cr=(e,t)=>{let n=0,r=e.length-1,s=e[r],i=s.id.clock;if(i===t)return r;let o=Z(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=Z((n+r)/2)}throw Ke()},Ar=(e,t)=>{const n=e.clients.get(t.client);return n[Cr(n,t.clock)]},Ir=(e,t,n)=>{const r=Cr(t,n),s=t[r];return s.id.clock<n&&s instanceof fi?(t.splice(r+1,0,hi(e,s,n-s.id.clock)),r+1):r},Or=(e,t)=>{const n=e.doc.store.clients.get(t.client);return n[Ir(e,n,t.clock)]},Dr=(e,t,n)=>{const r=t.clients.get(n.client),s=Cr(r,n.clock),i=r[s];return n.clock!==i.id.clock+i.length-1&&i.constructor!==Hs&&r.splice(s+1,0,hi(e,i,n.clock-i.id.clock+1)),i},Tr=(e,t,n,r,s)=>{if(0===r)return;const i=n+r;let o,c=Ir(e,t,n);do{o=t[c++],i<o.id.clock+o.length&&Ir(e,t,i),s(o)}while(c<t.length&&t[c].id.clock<i)};class jr{constructor(e,t,n){this.doc=e,this.deleteSet=new qn,this.beforeState=Sr(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 Ur=(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))&&(Qn(t.deleteSet),((e,t)=>{ar(e,t.doc.store,t.beforeState)})(e,t),Zn(e,t.deleteSet),!0),Pr=(e,t,n)=>{const r=t._item;(null===r||r.id.clock<(e.beforeState.get(r.id.client)||0)&&!r.deleted)&&nn(e.changed,t,ae).add(n)},Lr=(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 fi&&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},Rr=(e,t)=>{if(t<e.length){const n=e[t],r=n.doc,s=r.store,i=n.deleteSet,o=n._mergeStructs;try{Qn(i),n.afterState=Sr(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),yr(t._dEH,e,n))})}),e.push(()=>r.emit("afterTransaction",[n,r])),xn(e,[]),n._needFormattingCleanup&&Ls(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=Cr(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 fi&&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=te(r.length-1,1+Cr(r,n.clock+n.len-1)),t=r[e];e>0&&t.id.clock>=n.clock;t=r[e])e-=1+Lr(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=ne(Cr(e,r),1);for(let t=e.length-1;t>=n;)t-=1+Lr(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=Cr(r,n);i+1<r.length&&Lr(r,i+1)>1||i>0&&Lr(r,i)}if(n.local||n.afterState.get(r.clientID)===n.beforeState.get(r.clientID)||(((...e)=>{Kn.forEach(t=>t.print(e))})(Wn,Ln,"[yjs] ",Rn,Mn,"Changed the client-id because another client seems to be using it."),r.clientID=tr()),r.emit("afterTransactionCleanup",[n,r]),r._observers.has("update")){const e=new or;Ur(e,n)&&r.emit("update",[e.toUint8Array(),n.origin,r,n])}if(r._observers.has("updateV2")){const e=new lr;Ur(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])):Rr(e,t+1)}}},$r=(e,t,n=null,r=!0)=>{const s=e._transactionCleanups;let i=!1,o=null;null===e._transaction&&(i=!0,e._transaction=new jr(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&&Rr(s,0)}}return o};class Br{constructor(e,t){this.gen=function*(e){const t=Xe(e.restDecoder);for(let n=0;n<t;n++){const t=Xe(e.restDecoder),n=e.readClient();let r=Xe(e.restDecoder);for(let s=0;s<t;s++){const t=e.readInfo();if(10===t){const t=Xe(e.restDecoder);yield new yi(vr(n,r),t),r+=t}else if(31&t){const s=!(192&t),i=new fi(vr(n,r),null,(t&ie)===ie?e.readLeftID():null,null,(t&se)===se?e.readRightID():null,s?e.readParentInfo()?e.readString():e.readLeftID():null,!s||32&~t?null:e.readString(),pi(e,t));yield i,r+=i.length}else{const t=e.readLen();yield new Hs(vr(n,r),t),r+=t}}}}(e),this.curr=null,this.done=!1,this.filterSkips=t,this.next()}next(){do{this.curr=this.gen.next().value||null}while(this.filterSkips&&null!==this.curr&&this.curr.constructor===yi);return this.curr}}class Nr{constructor(e){this.currClient=0,this.startClock=0,this.written=0,this.encoder=e,this.clientStructs=[]}}const Mr=(e,t=cr,n=sr)=>{const r=new t,s=new Br(new n(qe(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++,Ee(r.restEncoder,t),Ee(r.restEncoder,o)),t=i.id.client,o=0,n=0!==i.id.clock),i.constructor===yi&&(n=!0),n||(o=i.id.clock+i.length);0!==o&&(e++,Ee(r.restEncoder,t),Ee(r.restEncoder,o));const c=_e();return Ee(c,e),((e,t)=>{De(e,ke(t))})(c,r.restEncoder),r.restEncoder=c,r.toUint8Array()}return Ee(r.restEncoder,0),r.toUint8Array()},Fr=(e,t)=>{if(e.constructor===Hs){const{client:n,clock:r}=e.id;return new Hs(vr(n,r+t),e.length-t)}if(e.constructor===yi){const{client:n,clock:r}=e.id;return new yi(vr(n,r+t),e.length-t)}{const n=e,{client:r,clock:s}=n.id;return new fi(vr(r,s+t),null,vr(r,s+t-1),null,n.rightOrigin,n.parent,n.parentSub,n.content.splice(t))}},Wr=(e,t=sr,n=lr)=>{if(1===e.length)return e[0];const r=e.map(e=>new t(qe(e)));let s=r.map(e=>new Br(e,!0)),i=null;const o=new n,c=new Nr(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===yi?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)Kr(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===yi)i.struct.length=n.id.clock+n.length-i.struct.id.clock;else{Kr(c,i.struct,i.offset);const e=n.id.clock-i.struct.id.clock-i.struct.length;i={struct:new yi(vr(t,i.struct.id.clock+i.struct.length),e),offset:0}}else{const t=i.struct.id.clock+i.struct.length-n.id.clock;t>0&&(i.struct.constructor===yi?i.struct.length-=t:n=Fr(n,t)),i.struct.mergeWith(n)||(Kr(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!==yi;n=e.next())Kr(c,i.struct,i.offset),i={struct:n,offset:0}}null!==i&&(Kr(c,i.struct,i.offset),i=null),Vr(c);const l=r.map(e=>(e=>{const t=new qn,n=Xe(e.restDecoder);for(let r=0;r<n;r++){e.resetDsCurVal();const n=Xe(e.restDecoder),r=Xe(e.restDecoder);if(r>0){const s=nn(t.clients,n,()=>[]);for(let t=0;t<r;t++)s.push(new Jn(e.readDsClock(),e.readDsLen()))}}return t})(e)),a=(e=>{const t=new qn;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++)de(i,e[t].clients.get(s)||[]);t.clients.set(s,i)}});return Qn(t),t})(l);return Zn(o,a),o.toUint8Array()},zr=e=>{e.written>0&&(e.clientStructs.push({written:e.written,restEncoder:ke(e.encoder.restEncoder)}),e.encoder.restEncoder=_e(),e.written=0)},Kr=(e,t,n)=>{e.written>0&&e.currClient!==t.id.client&&zr(e),0===e.written&&(e.currClient=t.id.client,e.encoder.writeClient(t.id.client),Ee(e.encoder.restEncoder,t.id.clock+n)),t.write(e.encoder,n),e.written++},Vr=e=>{zr(e);const t=e.encoder.restEncoder;Ee(t,e.clientStructs.length);for(let n=0;n<e.clientStructs.length;n++){const r=e.clientStructs[n];Ee(t,r.written),De(t,r.restEncoder)}},Hr="You must not compute changes after the event-handler fired.";class Jr{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=qr(this.currentTarget,this.target))}deletes(e){return Yn(this.transaction.deleteSet,e.id)}get keys(){if(null===this._keys){if(0===this.transaction.doc._transactionCleanups.length)throw We(Hr);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=ue(e.content.getContent())}else null!==e&&this.deletes(e)?(s="update",i=ue(e.content.getContent())):(s="add",i=void 0)}else{if(!this.deletes(r))return;s="delete",i=ue(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 We(Hr);const t=this.target,n=ae(),r=ae(),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 qr=(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},Gr=()=>{((...e)=>{e.unshift(Wn),Kn.forEach(t=>t.print(e))})("Invalid access: Add Yjs type to a document before reading data.")};let Yr=0;class Qr{constructor(e,t){e.marker=!0,this.p=e,this.index=t,this.timestamp=Yr++}}const Xr=(e,t,n)=>{e.p.marker=!1,e.p=t,t.marker=!0,e.index=n,e.timestamp=Yr++},Zr=(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)=>ee(t-e.index)<ee(t-n.index)?e:n);let r=e._start,s=0;for(null!==n&&(r=n.p,s=n.index,(e=>{e.timestamp=Yr++})(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&&ee(n.index-s)<r.parent.length/80?(Xr(n,r,s),n):((e,t,n)=>{if(e.length>=80){const r=e.reduce((e,t)=>e.timestamp<t.timestamp?e:t);return Xr(r,t,n),r}{const r=new Qr(t,n);return e.push(r),r}})(e._searchMarker,r,s)},es=(e,t,n)=>{for(let r=e.length-1;r>=0;r--){const s=e[r];if(n>0){let t=s.p;for(t.marker=!1;t&&(t.deleted||!t.countable);)t=t.left,t&&!t.deleted&&t.countable&&(s.index-=t.length);if(null===t||!0===t.marker){e.splice(r,1);continue}s.p=t,t.marker=!0}(t<s.index||n>0&&t===s.index)&&(s.index=ne(t,s.index+n))}},ts=(e,t,n)=>{const r=e,s=t.changedParentTypes;for(;nn(s,e,()=>[]).push(n),null!==e._item;)e=e._item.parent;yr(r._eH,n,t)};class ns{constructor(){this._item=null,this._map=new Map,this._start=null,this.doc=null,this._length=0,this._eH=fr(),this._dEH=fr(),this._searchMarker=null}get parent(){return this._item?this._item.parent:null}_integrate(e,t){this.doc=e,this._item=t}_copy(){throw ze()}clone(){throw ze()}_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){pr(this._eH,e)}observeDeep(e){pr(this._dEH,e)}unobserve(e){gr(this._eH,e)}unobserveDeep(e){gr(this._dEH,e)}toJSON(){}}const rs=(e,t,n)=>{e.doc??Gr(),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},ss=e=>{e.doc??Gr();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},is=(e,t)=>{let n=0,r=e._start;for(e.doc??Gr();null!==r;){if(r.countable&&!r.deleted){const s=r.content.getContent();for(let r=0;r<s.length;r++)t(s[r],n++,e)}r=r.right}},os=(e,t)=>{const n=[];return is(e,(r,s)=>{n.push(t(r,s,e))}),n},cs=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}}}},ls=(e,t)=>{e.doc??Gr();const n=Zr(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}},as=(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 u=()=>{a.length>0&&(s=new fi(vr(o,xr(c,o)),s,s&&s.lastId,l,l&&l.id,t,null,new ti(a)),s.integrate(e,0),a=[])};r.forEach(n=>{if(null===n)a.push(n);else switch(n.constructor){case Number:case Object:case Boolean:case Array:case String:a.push(n);break;default:switch(u(),n.constructor){case Uint8Array:case ArrayBuffer:s=new fi(vr(o,xr(c,o)),s,s&&s.lastId,l,l&&l.id,t,null,new Js(new Uint8Array(n))),s.integrate(e,0);break;case nr:s=new fi(vr(o,xr(c,o)),s,s&&s.lastId,l,l&&l.id,t,null,new Ys(n)),s.integrate(e,0);break;default:if(!(n instanceof ns))throw new Error("Unexpected content type in insert operation");s=new fi(vr(o,xr(c,o)),s,s&&s.lastId,l,l&&l.id,t,null,new di(n)),s.integrate(e,0)}}}),u()},us=()=>We("Length exceeded!"),ds=(e,t,n,r)=>{if(n>t._length)throw us();if(0===n)return t._searchMarker&&es(t._searchMarker,n,r.length),as(e,t,null,r);const s=n,i=Zr(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&&Or(e,vr(o.id.client,o.id.clock+n));break}n-=o.length}return t._searchMarker&&es(t._searchMarker,s,r.length),as(e,t,o,r)},hs=(e,t,n,r)=>{if(0===r)return;const s=n,i=r,o=Zr(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&&Or(e,vr(c.id.client,c.id.clock+n)),n-=c.length);for(;r>0&&null!==c;)c.deleted||(r<c.length&&Or(e,vr(c.id.client,c.id.clock+r)),c.delete(e),r-=c.length),c=c.right;if(r>0)throw us();t._searchMarker&&es(t._searchMarker,s,-i+r)},fs=(e,t,n)=>{const r=t._map.get(n);void 0!==r&&r.delete(e)},ps=(e,t,n,r)=>{const s=t._map.get(n)||null,i=e.doc,o=i.clientID;let c;if(null==r)c=new ti([r]);else switch(r.constructor){case Number:case Object:case Boolean:case Array:case String:case Date:case BigInt:c=new ti([r]);break;case Uint8Array:c=new Js(r);break;case nr:c=new Ys(r);break;default:if(!(r instanceof ns))throw new Error("Unexpected content type");c=new di(r)}new fi(vr(o,xr(i.store,o)),s,s&&s.lastId,null,null,t,n,c).integrate(e,0)},gs=(e,t)=>{e.doc??Gr();const n=e._map.get(t);return void 0===n||n.deleted?void 0:n.content.getContent()[n.length-1]},ys=e=>{const t={};return e.doc??Gr(),e._map.forEach((e,n)=>{e.deleted||(t[n]=e.content.getContent()[e.length-1])}),t},ms=(e,t)=>{e.doc??Gr();const n=e._map.get(t);return void 0!==n&&!n.deleted},bs=e=>{return e.doc??Gr(),t=e._map.entries(),n=e=>!e[1].deleted,Vn(()=>{let e;do{e=t.next()}while(!e.done&&!n(e.value));return e});var t,n};class vs extends Jr{}class ws extends ns{constructor(){super(),this._prelimContent=[],this._searchMarker=[]}static from(e){const t=new ws;return t.push(e),t}_integrate(e,t){super._integrate(e,t),this.insert(0,this._prelimContent),this._prelimContent=null}_copy(){return new ws}clone(){const e=new ws;return e.insert(0,this.toArray().map(e=>e instanceof ns?e.clone():e)),e}get length(){return this.doc??Gr(),this._length}_callObserver(e,t){super._callObserver(e,t),ts(this,e,new vs(this,e))}insert(e,t){null!==this.doc?$r(this.doc,n=>{ds(n,this,e,t)}):this._prelimContent.splice(e,0,...t)}push(e){null!==this.doc?$r(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;as(e,t,r,n)})(t,this,e)}):this._prelimContent.push(...e)}unshift(e){this.insert(0,e)}delete(e,t=1){null!==this.doc?$r(this.doc,n=>{hs(n,this,e,t)}):this._prelimContent.splice(e,t)}get(e){return ls(this,e)}toArray(){return ss(this)}slice(e=0,t=this.length){return rs(this,e,t)}toJSON(){return this.map(e=>e instanceof ns?e.toJSON():e)}map(e){return os(this,e)}forEach(e){is(this,e)}[Symbol.iterator](){return cs(this)}_write(e){e.writeTypeRef(si)}}class _s extends Jr{constructor(e,t,n){super(e,t),this.keysChanged=n}}class ks extends ns{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 ks}clone(){const e=new ks;return this.forEach((t,n)=>{e.set(n,t instanceof ns?t.clone():t)}),e}_callObserver(e,t){ts(this,e,new _s(this,e,t))}toJSON(){this.doc??Gr();const e={};return this._map.forEach((t,n)=>{if(!t.deleted){const r=t.content.getContent()[t.length-1];e[n]=r instanceof ns?r.toJSON():r}}),e}get size(){return[...bs(this)].length}keys(){return Hn(bs(this),e=>e[0])}values(){return Hn(bs(this),e=>e[1].content.getContent()[e[1].length-1])}entries(){return Hn(bs(this),e=>[e[0],e[1].content.getContent()[e[1].length-1]])}forEach(e){this.doc??Gr(),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?$r(this.doc,t=>{fs(t,this,e)}):this._prelimContent.delete(e)}set(e,t){return null!==this.doc?$r(this.doc,n=>{ps(n,this,e,t)}):this._prelimContent.set(e,t),t}get(e){return gs(this,e)}has(e){return ms(this,e)}clear(){null!==this.doc?$r(this.doc,e=>{this.forEach(function(t,n,r){fs(e,r,n)})}):this._prelimContent.clear()}_write(e){e.writeTypeRef(ii)}}const Ss=(e,t)=>e===t||"object"==typeof e&&"object"==typeof t&&e&&t&&((e,t)=>e===t||vn(e)===vn(t)&&((e,t)=>{for(const n in e)if(!t(e[n],n))return!1;return!0})(e,(e,n)=>(void 0!==e||wn(t,n))&&t[n]===e))(e,t);class xs{constructor(e,t,n,r){this.left=e,this.right=t,this.index=n,this.currentAttributes=r}forward(){if(null===this.right&&Ke(),this.right.content.constructor===Xs)this.right.deleted||Is(this.currentAttributes,this.right.content);else this.right.deleted||(this.index+=this.right.length);this.left=this.right,this.right=this.right.right}}const Es=(e,t,n)=>{for(;null!==t.right&&n>0;){if(t.right.content.constructor===Xs)t.right.deleted||Is(t.currentAttributes,t.right.content);else t.right.deleted||(n<t.right.length&&Or(e,vr(t.right.id.client,t.right.id.clock+n)),t.index+=t.right.length,n-=t.right.length);t.left=t.right,t.right=t.right.right}return t},Cs=(e,t,n,r)=>{const s=new Map,i=r?Zr(t,n):null;if(i){const t=new xs(i.p.left,i.p,i.index,s);return Es(e,t,n-i.index)}{const r=new xs(null,t._start,0,s);return Es(e,r,n)}},As=(e,t,n,r)=>{for(;null!==n.right&&(!0===n.right.deleted||n.right.content.constructor===Xs&&Ss(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 fi(vr(i,xr(s.store,i)),c,c&&c.lastId,l,l&&l.id,t,null,new Xs(o,r));a.integrate(e,0),n.right=a,n.forward()})},Is=(e,t)=>{const{key:n,value:r}=t;null===r?e.delete(n):e.set(n,r)},Os=(e,t)=>{for(;null!==e.right&&(e.right.deleted||e.right.content.constructor===Xs&&Ss(t[e.right.content.key]??null,e.right.content.value));)e.forward()},Ds=(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(!Ss(a,l)){o.set(c,a);const{left:r,right:u}=n;n.right=new fi(vr(i,xr(s.store,i)),r,r&&r.lastId,u,u&&u.id,t,null,new Xs(c,l)),n.right.integrate(e,0),n.forward()}}return o},Ts=(e,t,n,r,s)=>{n.currentAttributes.forEach((e,t)=>{void 0===s[t]&&(s[t]=null)});const i=e.doc,o=i.clientID;Os(n,s);const c=Ds(e,t,n,s),l=r.constructor===String?new ni(r):r instanceof ns?new di(r):new Qs(r);let{left:a,right:u,index:d}=n;t._searchMarker&&es(t._searchMarker,n.index,l.getLength()),u=new fi(vr(o,xr(i.store,o)),a,a&&a.lastId,u,u&&u.id,t,null,l),u.integrate(e,0),n.right=u,n.index=d,n.forward(),As(e,t,n,c)},js=(e,t,n,r,s)=>{const i=e.doc,o=i.clientID;Os(n,s);const c=Ds(e,t,n,s);e:for(;null!==n.right&&(r>0||c.size>0&&(n.right.deleted||n.right.content.constructor===Xs));){if(!n.right.deleted)switch(n.right.content.constructor){case Xs:{const{key:t,value:i}=n.right.content,o=s[t];if(void 0!==o){if(Ss(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&&Or(e,vr(n.right.id.client,n.right.id.clock+r)),r-=n.right.length}n.forward()}if(r>0){let s="";for(;r>0;r--)s+="\n";n.right=new fi(vr(o,xr(i.store,o)),n.left,n.left&&n.left.lastId,n.right,n.right&&n.right.id,t,null,new ni(s)),n.right.integrate(e,0),n.forward()}As(e,t,n,c)},Us=(e,t,n,r,s)=>{let i=t;const o=en();for(;i&&(!i.countable||i.deleted);){if(!i.deleted&&i.content.constructor===Xs){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 Xs:{const{key:i,value:a}=n,u=r.get(i)??null;o.get(i)===n&&u!==a||(t.delete(e),c++,l||(s.get(i)??null)!==a||u===a||(null===u?s.delete(i):s.set(i,u))),l||t.deleted||Is(s,n);break}}}t=t.right}return c},Ps=e=>{let t=0;return $r(e.doc,n=>{let r=e._start,s=e._start,i=en();const o=tn(i);for(;s;){if(!1===s.deleted)if(s.content.constructor===Xs)Is(o,s.content);else t+=Us(n,r,s,i,o),i=tn(o),r=s;s=s.right}}),t},Ls=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&&Tr(e,n.store.clients.get(r),i,s,e=>{e.deleted||e.content.constructor!==Xs||e.constructor===Hs||t.add(e.parent)})}$r(n,n=>{Gn(e,e.deleteSet,e=>{if(e instanceof Hs||!e.parent._hasFormatting||t.has(e.parent))return;const r=e.parent;e.content.constructor===Xs?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===Xs){const r=t.content.key;n.has(r)?t.delete(e):n.add(r)}t=t.left}})(n,e)});for(const e of t)Ps(e)})},Rs=(e,t,n)=>{const r=n,s=tn(t.currentAttributes),i=t.right;for(;n>0&&null!==t.right;){if(!1===t.right.deleted)switch(t.right.content.constructor){case di:case Qs:case ni:n<t.right.length&&Or(e,vr(t.right.id.client,t.right.id.clock+n)),n-=t.right.length,t.right.delete(e)}t.forward()}i&&Us(e,i,t.right,s,t.currentAttributes);const o=(t.left||t.right).parent;return o._searchMarker&&es(o._searchMarker,t.index,-r+n),t};class $s extends Jr{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=[];$r(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 u=()=>{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=yn({},o))),l=0}e&&t.push(e),i=null}};for(;null!==s;){switch(s.content.constructor){case di:case Qs:this.adds(s)?this.deletes(s)||(u(),i="insert",c=s.content.getContent()[0],u()):this.deletes(s)?("delete"!==i&&(u(),i="delete"),a+=1):s.deleted||("retain"!==i&&(u(),i="retain"),l+=1);break;case ni:this.adds(s)?this.deletes(s)||("insert"!==i&&(u(),i="insert"),c+=s.content.str):this.deletes(s)?("delete"!==i&&(u(),i="delete"),a+=s.length):s.deleted||("retain"!==i&&(u(),i="retain"),l+=s.length);break;case Xs:{const{key:t,value:c}=s.content;if(this.adds(s)){if(!this.deletes(s)){const l=n.get(t)??null;Ss(l,c)?null!==c&&s.delete(e):("retain"===i&&u(),Ss(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;Ss(e,c)||("retain"===i&&u(),o[t]=e)}else if(!s.deleted){r.set(t,c);const n=o[t];void 0!==n&&(Ss(n,c)?null!==n&&s.delete(e):("retain"===i&&u(),null===c?delete o[t]:o[t]=c))}s.deleted||("insert"===i&&u(),Is(n,s.content));break}}s=s.right}for(u();t.length>0;){const e=t[t.length-1];if(void 0===e.retain||void 0!==e.attributes)break;t.pop()}}),this._delta=t}return this._delta}}class Bs extends ns{constructor(e){super(),this._pending=void 0!==e?[()=>this.insert(0,e)]:[],this._searchMarker=[],this._hasFormatting=!1}get length(){return this.doc??Gr(),this._length}_integrate(e,t){super._integrate(e,t);try{this._pending.forEach(e=>e())}catch(e){}this._pending=null}_copy(){return new Bs}clone(){const e=new Bs;return e.applyDelta(this.toDelta()),e}_callObserver(e,t){super._callObserver(e,t);const n=new $s(this,e,t);ts(this,e,n),!e.local&&this._hasFormatting&&(e._needFormattingCleanup=!0)}toString(){this.doc??Gr();let e="",t=this._start;for(;null!==t;)!t.deleted&&t.countable&&t.content.constructor===ni&&(e+=t.content.str),t=t.right;return e}toJSON(){return this.toString()}applyDelta(e,{sanitize:t=!0}={}){null!==this.doc?$r(this.doc,n=>{const r=new xs(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)&&Ts(n,this,r,o,i.attributes||{})}else void 0!==i.retain?js(n,this,r,i.retain,i.attributes||{}):void 0!==i.delete&&Rs(n,r,i.delete)}}):this._pending.push(()=>this.applyDelta(e))}toDelta(e,t,n){this.doc??Gr();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(wr(c,e)||void 0!==t&&wr(c,t))switch(c.content.constructor){case ni:{const r=s.get("ychange");void 0===e||wr(c,e)?void 0===t||wr(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 di:case Qs:{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 Xs:wr(c,e)&&(l(),Is(s,c.content))}c=c.right}l()};return e||t?$r(i,n=>{e&&_r(n,e),t&&_r(n,t),a()},"cleanup"):a(),r}insert(e,t,n){if(t.length<=0)return;const r=this.doc;null!==r?$r(r,r=>{const s=Cs(r,this,e,!n);n||(n={},s.currentAttributes.forEach((e,t)=>{n[t]=e})),Ts(r,this,s,t,n)}):this._pending.push(()=>this.insert(e,t,n))}insertEmbed(e,t,n){const r=this.doc;null!==r?$r(r,r=>{const s=Cs(r,this,e,!n);Ts(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?$r(n,n=>{Rs(n,Cs(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?$r(r,r=>{const s=Cs(r,this,e,!1);null!==s.right&&js(r,this,s,t,n)}):this._pending.push(()=>this.format(e,t,n))}removeAttribute(e){null!==this.doc?$r(this.doc,t=>{fs(t,this,e)}):this._pending.push(()=>this.removeAttribute(e))}setAttribute(e,t){null!==this.doc?$r(this.doc,n=>{ps(n,this,e,t)}):this._pending.push(()=>this.setAttribute(e,t))}getAttribute(e){return gs(this,e)}getAttributes(){return ys(this)}_write(e){e.writeTypeRef(oi)}}class Ns{constructor(e,t=()=>!0){this._filter=t,this._root=e,this._currentNode=e._start,this._firstCall=!0,e.doc??Gr()}[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!==Fs&&t.constructor!==Ms||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 Ms extends ns{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 Ms}clone(){const e=new Ms;return e.insert(0,this.toArray().map(e=>e instanceof ns?e.clone():e)),e}get length(){return this.doc??Gr(),null===this._prelimContent?this._length:this._prelimContent.length}createTreeWalker(e){return new Ns(this,e)}querySelector(e){e=e.toUpperCase();const t=new Ns(this,t=>t.nodeName&&t.nodeName.toUpperCase()===e).next();return t.done?null:t.value}querySelectorAll(e){return e=e.toUpperCase(),he(new Ns(this,t=>t.nodeName&&t.nodeName.toUpperCase()===e))}_callObserver(e,t){ts(this,e,new Ws(this,t,e))}toString(){return os(this,e=>e.toString()).join("")}toJSON(){return this.toString()}toDOM(e=document,t={},n){const r=e.createDocumentFragment();return void 0!==n&&n._createAssociation(r,this),is(this,s=>{r.insertBefore(s.toDOM(e,t,n),null)}),r}insert(e,t){null!==this.doc?$r(this.doc,n=>{ds(n,this,e,t)}):this._prelimContent.splice(e,0,...t)}insertAfter(e,t){if(null!==this.doc)$r(this.doc,n=>{const r=e&&e instanceof ns?e._item:e;as(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 We("Reference item not found");n.splice(r,0,...t)}}delete(e,t=1){null!==this.doc?$r(this.doc,n=>{hs(n,this,e,t)}):this._prelimContent.splice(e,t)}toArray(){return ss(this)}push(e){this.insert(this.length,e)}unshift(e){this.insert(0,e)}get(e){return ls(this,e)}slice(e=0,t=this.length){return rs(this,e,t)}forEach(e){is(this,e)}_write(e){e.writeTypeRef(li)}}class Fs extends Ms{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 Fs(this.nodeName)}clone(){const e=new Fs(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 ns?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?$r(this.doc,t=>{fs(t,this,e)}):this._prelimAttrs.delete(e)}setAttribute(e,t){null!==this.doc?$r(this.doc,n=>{ps(n,this,e,t)}):this._prelimAttrs.set(e,t)}getAttribute(e){return gs(this,e)}hasAttribute(e){return ms(this,e)}getAttributes(e){return e?((e,t)=>{const n={};return e._map.forEach((e,r)=>{let s=e;for(;null!==s&&(!t.sv.has(s.id.client)||s.id.clock>=(t.sv.get(s.id.client)||0));)s=s.left;null!==s&&wr(s,t)&&(n[r]=s.content.getContent()[s.length-1])}),n})(this,e):ys(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 is(this,s=>{r.appendChild(s.toDOM(e,t,n))}),void 0!==n&&n._createAssociation(r,this),r}_write(e){e.writeTypeRef(ci),e.writeKey(this.nodeName)}}class Ws extends Jr{constructor(e,t,n){super(e,n),this.childListChanged=!1,this.attributesChanged=new Set,t.forEach(e=>{null===e?this.childListChanged=!0:this.attributesChanged.add(e)})}}class zs extends ks{constructor(e){super(),this.hookName=e}_copy(){return new zs(this.hookName)}clone(){const e=new zs(this.hookName);return this.forEach((t,n)=>{e.set(n,t)}),e}toDOM(e=document,t={},n){const r=t[this.hookName];let s;return s=void 0!==r?r.createDom(this):document.createElement(this.hookName),s.setAttribute("data-yjs-hook",this.hookName),void 0!==n&&n._createAssociation(s,this),s}_write(e){e.writeTypeRef(ai),e.writeKey(this.hookName)}}class Ks extends Bs{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 Ks}clone(){const e=new Ks;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(ui)}}class Vs{constructor(e,t){this.id=e,this.length=t}get deleted(){throw ze()}mergeWith(e){return!1}write(e,t,n){throw ze()}integrate(e,t){throw ze()}}class Hs extends Vs{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),Er(e.doc.store,this)}write(e,t){e.writeInfo(0),e.writeLen(this.length-t)}getMissing(e,t){return null}}class Js{constructor(e){this.content=e}getLength(){return 1}getContent(){return[this.content]}isCountable(){return!0}copy(){return new Js(this.content)}splice(e){throw ze()}mergeWith(e){return!1}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeBuf(this.content)}getRef(){return 3}}class qs{constructor(e){this.len=e}getLength(){return this.len}getContent(){return[]}isCountable(){return!1}copy(){return new qs(this.len)}splice(e){const t=new qs(this.len-e);return this.len=e,t}mergeWith(e){return this.len+=e.len,!0}integrate(e,t){Xn(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 Gs=(e,t)=>new nr({guid:e,...t,shouldLoad:t.shouldLoad||t.autoLoad||!1});class Ys{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 Ys(Gs(this.doc.guid,this.opts))}splice(e){throw ze()}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 Qs{constructor(e){this.embed=e}getLength(){return 1}getContent(){return[this.embed]}isCountable(){return!0}copy(){return new Qs(this.embed)}splice(e){throw ze()}mergeWith(e){return!1}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeJSON(this.embed)}getRef(){return 5}}class Xs{constructor(e,t){this.key=e,this.value=t}getLength(){return 1}getContent(){return[]}isCountable(){return!1}copy(){return new Xs(this.key,this.value)}splice(e){throw ze()}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 Zs{constructor(e){this.arr=e}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new Zs(this.arr)}splice(e){const t=new Zs(this.arr.slice(e));return this.arr=this.arr.slice(0,e),t}mergeWith(e){return this.arr=this.arr.concat(e.arr),!0}integrate(e,t){}delete(e){}gc(e){}write(e,t){const n=this.arr.length;e.writeLen(n-t);for(let r=t;r<n;r++){const t=this.arr[r];e.writeString(void 0===t?"undefined":JSON.stringify(t))}}getRef(){return 2}}const ei="development"===On("node_env");class ti{constructor(e){this.arr=e,ei&&kn(e)}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new ti(this.arr)}splice(e){const t=new ti(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 ni{constructor(e){this.str=e}getLength(){return this.str.length}getContent(){return this.str.split("")}isCountable(){return!0}copy(){return new ni(this.str)}splice(e){const t=new ni(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 ri=[e=>new ws,e=>new ks,e=>new Bs,e=>new Fs(e.readKey()),e=>new Ms,e=>new zs(e.readKey()),e=>new Ks],si=0,ii=1,oi=2,ci=3,li=4,ai=5,ui=6;class di{constructor(e){this.type=e}getLength(){return 1}getContent(){return[this.type]}isCountable(){return!0}copy(){return new di(this.type._copy())}splice(e){throw ze()}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 hi=(e,t,n)=>{const{client:r,clock:s}=t.id,i=new fi(vr(r,s+n),t,vr(r,s+n-1),t.right,t.rightOrigin,t.parent,t.parentSub,t.content.splice(n));return t.deleted&&i.markDeleted(),t.keep&&(i.keep=!0),null!==t.redone&&(i.redone=vr(t.redone.client,t.redone.clock+n)),t.right=i,null!==i.right&&(i.right.left=i),e._mergeStructs.push(i),null!==i.parentSub&&null===i.right&&i.parent._map.set(i.parentSub,i),t.length=n,i};class fi extends Vs{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>=xr(t,this.origin.client))return this.origin.client;if(this.rightOrigin&&this.rightOrigin.client!==this.id.client&&this.rightOrigin.clock>=xr(t,this.rightOrigin.client))return this.rightOrigin.client;if(this.parent&&this.parent.constructor===mr&&this.id.client!==this.parent.client&&this.parent.clock>=xr(t,this.parent.client))return this.parent.client;if(this.origin&&(this.left=Dr(e,t,this.origin),this.origin=this.left.lastId),this.rightOrigin&&(this.right=Or(e,this.rightOrigin),this.rightOrigin=this.right.id),this.left&&this.left.constructor===Hs||this.right&&this.right.constructor===Hs)this.parent=null;else if(this.parent){if(this.parent.constructor===mr){const e=Ar(t,this.parent);e.constructor===Hs?this.parent=null:this.parent=e.content.type}}else this.left&&this.left.constructor===fi?(this.parent=this.left.parent,this.parentSub=this.left.parentSub):this.right&&this.right.constructor===fi&&(this.parent=this.right.parent,this.parentSub=this.right.parentSub);return null}integrate(e,t){if(t>0&&(this.id.clock+=t,this.left=Dr(e,e.doc.store,vr(this.id.client,this.id.clock-1)),this.origin=this.left.lastId,this.content=this.content.splice(t),this.length-=t),this.parent){if(!this.left&&(!this.right||null!==this.right.left)||this.left&&this.left.right!==this.right){let t,n=this.left;if(null!==n)t=n.right;else if(null!==this.parentSub)for(t=this.parent._map.get(this.parentSub)||null;null!==t&&null!==t.left;)t=t.left;else t=this.parent._start;const r=new Set,s=new Set;for(;null!==t&&t!==this.right;){if(s.add(t),r.add(t),br(this.origin,t.origin)){if(t.id.client<this.id.client)n=t,r.clear();else if(br(this.rightOrigin,t.rightOrigin))break}else{if(null===t.origin||!s.has(Ar(e.doc.store,t.origin)))break;r.has(Ar(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),Er(e.doc.store,this),this.content.integrate(e,this),Pr(e,this.parent,this.parentSub),(null!==this.parent._item&&this.parent._item.deleted||null!==this.parentSub&&null!==this.right)&&this.delete(e)}else new Hs(this.id,this.length).integrate(e,0)}get next(){let e=this.right;for(;null!==e&&e.deleted;)e=e.right;return e}get prev(){let e=this.left;for(;null!==e&&e.deleted;)e=e.left;return e}get lastId(){return 1===this.length?this.id:vr(this.id.client,this.id.clock+this.length-1)}mergeWith(e){if(this.constructor===e.constructor&&br(e.origin,this.lastId)&&this.right===e&&br(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(),Xn(e.deleteSet,this.id.client,this.id.clock,this.length),Pr(e,t,this.parentSub),this.content.delete(e)}}gc(e,t){if(!this.deleted)throw Ke();this.content.gc(e),t?((e,t,n)=>{const r=e.clients.get(t.id.client);r[Cr(r,t.id.clock)]=n})(e,this,new Hs(this.id,this.length)):this.content=new qs(this.length)}write(e,t){const n=t>0?vr(this.id.client,this.id.clock+t-1):this.origin,r=this.rightOrigin,s=this.parentSub,i=31&this.content.getRef()|(null===n?0:ie)|(null===r?0:se)|(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 Ke()})(t);e.writeParentInfo(!0),e.writeString(n)}else e.writeParentInfo(!1),e.writeLeftID(n.id)}else t.constructor===String?(e.writeParentInfo(!0),e.writeString(t)):t.constructor===mr?(e.writeParentInfo(!1),e.writeLeftID(t)):Ke();null!==s&&e.writeString(s)}this.content.write(e,t)}}const pi=(e,t)=>gi[31&t](e),gi=[()=>{Ke()},e=>new qs(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 Zs(n)},e=>new Js(e.readBuf()),e=>new ni(e.readString()),e=>new Qs(e.readJSON()),e=>new Xs(e.readKey(),e.readJSON()),e=>new di(ri[e.readTypeRef()](e)),e=>{const t=e.readLen(),n=[];for(let r=0;r<t;r++)n.push(e.readAny());return new ti(n)},e=>new Ys(Gs(e.readString(),e.readAny())),()=>{Ke()}];class yi extends Vs{get deleted(){return!0}delete(){}mergeWith(e){return this.constructor===e.constructor&&(this.length+=e.length,!0)}integrate(e,t){Ke()}write(e,t){e.writeInfo(10),Ee(e.restEncoder,this.length-t)}getMissing(e,t){return null}}const mi="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},bi="__ $YJS$ __";function vi(e,t,n){var r,s,i;if(!e.dx._allTables[t])return;const o=null===(i=null===(s=null===(r=e.table(t))||void 0===r?void 0:r.schema.yProps)||void 0===s?void 0:s.find(e=>e.prop===n))||void 0===i?void 0:i.updatesTable;return o&&e.dx._allTables[o]?e.table(o):void 0}mi[bi],mi[bi]=!0;const wi=new FinalizationRegistry(({cache:e,key:t})=>{delete e[t]});function _i(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=xi(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=xi(n,r,s),o=null===(t=this.cache[i])||void 0===t?void 0:t.deref();o&&wi.unregister(o),this.cache[i]=new WeakRef(e),wi.register(e,{cache:this.cache,key:i},e)},delete(e){wi.unregister(e);const t=xi(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 ki=new WeakSet;function Si(e){if(ki.has(e))throw new Error(`Y.Doc ${e.meta.parentId} has been destroyed`)}function xi(e,t,n){return`${e}[${t}].${n}`}const{getByKeyPath:Ei}=e.Dexie;let Ci=null;function Ai(e){Ci=e}function Ii(){}const Oi=new WeakMap;function Di(){return e.Dexie.Events(null,"load","sync","error")}class Ti{static getOrCreateDocument(e,t,n,r){var s,i;const o=_i(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 nr({meta:{db:e,updatesTable:s,parentProp:r,parentTable:n,parentId:i}}),t.add(o),o.on("destroy",()=>{ki.add(o),t.delete(o)}),o)}(e,o,t,n,c,r)}static load(e,t){var n;let r=Oi.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 Ti(e),r.graceTimeout=null!==(n=null==t?void 0:t.gracePeriod)&&void 0!==n?n:-1,Oi.set(e,r)),r}static release(e){if(!e||ki.has(e))return;const t=Oi.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(Ti.on("beforeunload").fire(this)).finally(()=>{var e;0===this.refCount&&(null===(e=this.doc)||void 0===e||e.destroy())})}static for(e){return Oi.get(e)}static get currentUpdateRow(){return Ci}get whenLoaded(){return this._whenLoaded||(this._whenLoaded=new Promise((t,n)=>{this.doc?this.doc.isLoaded?t():this._error?n(this._error):ki.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):ki.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=Di(),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]=()=>Ti.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`);Si(t),this.stopObserving=function(t,n,r,s,i,o){let c=0,l=!0;const a=e.liveQuery(()=>{Si(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?(Si(n),e.length>0&&$r(n,()=>{e.forEach(e=>{try{Ai(e),dr(n,e.u)}finally{Ai(null)}})},t,!1),l&&(l=!1,n.emit("load",[n]))):n.destroy()},e=>{t.on("error").fire(e)}),u=(e,n)=>{n!==t&&r.table(i).add({k:o,u:e,f:1}).then(e=>{e===c-1&&++c}).catch(e=>{t.on("error").fire(e)})},d=()=>{a.unsubscribe(),n.off("updateV2",u),n.off("destroy",d)};return n.on("updateV2",u),n.on("destroy",d),d}(this,t,n,r,i,s),Ti.on("new").fire(this)}destroy(){var e;Oi.delete(this.doc),this.doc=null,this.destroyed=!0,this.refCount=0,null===(e=this.stopObserving)||void 0===e||e.call(this),this.on=Di(),this.cleanupHandlers.forEach(e=>e())}addCleanupHandler(e){this.cleanupHandlers.push("function"==typeof e?e:()=>e.unsubscribe())}}function ji(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=vi(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=vi(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(Xt);yield t.table(e.name).put(Object.assign(Object.assign({},n||{i:Xt}),{unsentFrom:Math.max((null==n?void 0:n.unsentFrom)||1,l.i+1)}))})));break}case"u-reject":{const t=vi(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=Ti.getDocCache(n.dx).find(l.table,r,l.prop);s&&s.destroy()}break}case"in-sync":{const e=Ti.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}})}Ti.on=e.Dexie.Events(null,{new:[function(e,t){return e===Ii?t:function(){e.apply(this,arguments),t.apply(this,arguments)}}],beforeunload:[function(e,t){return e===Ii?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)}}]}),Ti.getDocCache=_i,e.Dexie.DexieYProvider?Ti=e.Dexie.DexieYProvider||Ti:e.Dexie.DexieYProvider=Ti;const Ui=new Map,Pi=new Set(["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array","DataView"]),Li=new Set(["Blob","File","ArrayBuffer",...Pi]);function Ri(e){return Object.prototype.toString.call(e).slice(8,-1)}function $i(e){if("object"!==typeof e||null===e)return!1;const t=Ri(e);return!!Li.has(t)&&("Blob"===t||"File"===t||e.byteLength>=4096)}function Bi(e,t,n){return r(this,void 0,void 0,function*(){const r=yield t();if(!r)throw new Error("Failed to load access token for blob upload");const s=function(){const e=new Uint8Array(18),t=new Uint8Array(e.buffer,0,6),n=Date.now();K>=n?++K:K=n,t[0]=K/1099511627776,t[1]=K/4294967296,t[2]=K/16777216,t[3]=K/65536,t[4]=K/256,t[5]=K;const r=new Uint8Array(e.buffer,6);return z(r),P(e)}(),i=`${e}/blob/${s}`;let o,c,l;const a=function(e){const t=Ri(e);return"Blob"===t||"File"===t?"Blob":"ArrayBuffer"===t?"ArrayBuffer":t}(n),u=Ri(n);if("Blob"===u||"File"===u)o=n,c=n.type||"application/octet-stream",l=n.size;else if("ArrayBuffer"===u)o=n,c="application/octet-stream",l=n.byteLength;else{if(!Pi.has(u))throw new Error(`Unsupported blob type: ${u}`);{const e=n,t=new ArrayBuffer(e.byteLength);new Uint8Array(t).set(new Uint8Array(e.buffer,e.byteOffset,e.byteLength)),o=t,c="application/octet-stream",l=e.byteLength}}const d=`${i}?ct=${encodeURIComponent(c)}`,h=yield fetch(d,{method:"PUT",headers:{Authorization:`Bearer ${r}`,"Content-Type":c},body:o});if(!h.ok){if(404===h.status||405===h.status)return null;throw new Error(`Failed to upload blob: ${h.status} ${h.statusText}`)}const f=yield h.json();return Object.assign({_bt:a,ref:f.ref,size:l},"Blob"===a?{ct:c}:{})})}function Ni(e,t,n){return r(this,arguments,void 0,function*(e,t,n,r=32768){const s={dirty:!1},i=yield Mi(e,t,n,r,s);return s.dirty&&"object"==typeof i&&null!==i&&i.constructor===Object&&(i._hasBlobRefs=1),i})}function Mi(e,t,n){return r(this,arguments,void 0,function*(e,t,n,r=32768,s={dirty:!1},i=new WeakSet){if(null==e)return e;if("string"==typeof e&&e.length>r&&r!==1/0){if(!1===Ui.get(t))return e;const r=new Blob([e],{type:"text/plain;charset=utf-8"}),i=yield Bi(t,n,r);return null===i?(Ui.set(t,!1),e):(Ui.set(t,!0),s.dirty=!0,Object.assign(Object.assign({},i),{_bt:"string"}))}if($i(e)){if(!1===Ui.get(t))return e;const r=yield Bi(t,n,e);return null===r?(Ui.set(t,!1),e):(Ui.set(t,!0),s.dirty=!0,r)}if("object"!=typeof e)return e;if(i.has(e))return e;if(i.add(e),Array.isArray(e)){const o=[];for(const c of e)o.push(yield Mi(c,t,n,r,s,i));return o}const o=Object.getPrototypeOf(e);if(o!==Object.prototype&&null!==o)return e;const c={};for(const[o,l]of Object.entries(e))c[o]=yield Mi(l,t,n,r,s,i);return c})}function Fi(e,t,n){return r(this,arguments,void 0,function*(e,t,n,r=32768){switch(e.type){case"insert":case"upsert":{const s=yield Promise.all(e.values.map(e=>Ni(e,t,n,r)));return Object.assign(Object.assign({},e),{values:s})}case"update":{const s=yield Promise.all(e.changeSpecs.map(e=>Ni(e,t,n,r)));return Object.assign(Object.assign({},e),{changeSpecs:s})}case"modify":{const s=yield Ni(e.changeSpec,t,n,r);return Object.assign(Object.assign({},e),{changeSpec:s})}default:return e}})}function Wi(e,t){switch(e.type){case"insert":case"upsert":return e.values.some(e=>zi(e,t));case"update":return e.changeSpecs.some(e=>zi(e,t));case"modify":return zi(e.changeSpec,t);default:return!1}}function zi(e,t,n=new WeakSet){if(null==e)return!1;if("string"==typeof e&&e.length>t&&t!==1/0)return!0;if($i(e))return!0;if("object"!=typeof e)return!1;if(n.has(e))return!1;if(n.add(e),Array.isArray(e))return e.some(e=>zi(e,t,n));const r=Object.getPrototypeOf(e);return(r===Object.prototype||null===r)&&Object.values(e).some(e=>zi(e,t,n))}function Ki(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 At(t),u={"Content-Type":"application/json",Accept:"application/octet-stream"};a&&(u.Authorization=`Bearer ${a.accessToken}`);const d=yield fetch(`${n}/y/download`,{body:Pt.stringify({downloadedRealms:s||{}}),method:"POST",headers:u,credentials:"include"});if(!d.ok)throw new Error(`Failed to download Yjs documents from server. Status: ${d.status}`);yield async function(e,...t){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()}}}(d),at,function(s){return o(this,arguments,function*(){var o,l,a,u;let d=null,h=null,f=null,p=[];function g(e){return r(this,void 0,void 0,function*(){const r=p[p.length-1];if(p.length>0){if(!d||!h||!f)throw new Error(`Protocol error from ${n}/y/download`);const e=vi(t,h,f);e&&(yield e.bulkAdd(p)),p=[]}d&&(h&&f&&r||e)&&(yield t.$syncState.update("syncState",t=>{const n=t.yDownloadedRealms||{};n[d]=e?"*":{tbl:h,prop:f,key:r.k},t.yDownloadedRealms=n}))})}try{try{for(var y,m=!0,b=c(s);!(o=(y=yield i(b.next())).done);m=!0){u=y.value,m=!1;const e=new Je(u);for(;Ge(e);)switch(Qe(e)){case 1:yield i(g(!0)),d=et(e);break;case 2:yield i(g(!1)),h=et(e),f=et(e);break;case 3:{const t=st(e),n=Ye(e);p.push({k:t,u:n});break}}yield i(g(!1))}}catch(e){l={error:e}}finally{try{m||o||!(a=b.return)||(yield i(a.call(b)))}finally{if(l)throw l.error}}yield i(g(!0))}catch(t){throw t instanceof e.DexieError||(yield i(g(!1))),t}})})})}const Vi=new WeakMap;function Hi(t){var n,r,s,i;let o=Vi.get(t);if(o&&o.expiration>Date.now()+3e5)return Promise.resolve(o.accessToken);const c=t.cloud.currentUser.value;return c&&c.accessToken&&(null!==(r=null===(n=c.accessTokenExpiration)||void 0===n?void 0:n.getTime())&&void 0!==r?r:1/0)>Date.now()+3e5?(Vi.set(t,{accessToken:c.accessToken,expiration:null!==(i=null===(s=c.accessTokenExpiration)||void 0===s?void 0:s.getTime())&&void 0!==i?i:1/0}),Promise.resolve(c.accessToken)):e.ignoreTransaction(()=>At(t).then(e=>{var n,r;return(null==e?void 0:e.accessToken)&&Vi.set(t,{accessToken:e.accessToken,expiration:null!==(r=null===(n=e.accessTokenExpiration)||void 0===n?void 0:n.getTime())&&void 0!==r?r:1/0}),(null==e?void 0:e.accessToken)||null}))}const Ji="currentSyncWorker";function qi(e,t,n,s){return Gi(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 qi(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 Gi(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,u,d;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:h}=t,f=yield e.getCurrentUser(),p=f.isLoggedIn?dt(e):[],g=p.map(t=>e.table(ht(t.name))),y=yield e.getPersistedSyncState(),m=f.isLoggedIn,b=m?function(e,t){const n=(null==t?void 0:t.syncedTables)||[];return dt(e).filter(e=>!n.includes(e.name))}(e,y):[];Ft(i);const v=b.length>0;if(v){if(o)return!0;yield e.transaction("rw",b,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))}))})}(b,f,null==y?void 0:y.realms)})),Ft(i)}const[w,_,k,{yMessages:S,lastUpdateIds:x}]=yield e.transaction("r",e.tables,()=>r(this,void 0,void 0,function*(){const t=yield e.getPersistedSyncState();let s=yield e.$baseRevs.toArray();s=s.filter(e=>p.some(t=>t.name===e.tableName));let o=yield yt(g,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(Xt),c=(null==o?void 0:o.unsentFrom)||1,l=(null==o?void 0:o.receivedUntil)||0,a=Math.min(c,l+1),u=yield Zt(i,a);u.length>0&&(r[i.name]=u[u.length-1].i);const d={};for(const e of u){const t=!(1&~(e.f||0));if(t&&e.i<c)continue;const n=JSON.stringify(e.k)+"/"+t;let r=d[n];r?(r.u.push(e.u),r.i=Math.max(e.i,r.i)):(d[n]=r={i:e.i,k:e.k,isLocal:t,u:[]},r.u.push(e.u))}for(const{k:e,isLocal:r,u:i,i:o}of Object.values(d)){const c=1===i.length?i[0]:Wr(i);if(r)n.push({type:"u-c",table:s.name,prop:t.prop,k:e,u:c,i:o});else{const r=Mr(c);n.push({type:"sv",table:s.name,prop:t.prop,k:e,sv:r})}}}return{yMessages:n,lastUpdateIds:r}})}(e,p);if(Ft(i),v){const e=[...(null==y?void 0:y.realms)||[],...(null==y?void 0:y.inviteRealms)||[]],l=yield function(e,t,n,s){return r(this,void 0,void 0,function*(){const i=`upload-${mt(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||"")&&G(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[]})}(b,f,n,e);return Ft(i),o=o.concat(l),[o,t,s,c]}return[o,t,s,c]})),E=w.some(e=>e.muts.some(e=>e.keys.length>0))||S.some(e=>"u-c"===e.type);if(o)return E;if("push"===c&&!E)return!1;const C=Kt(w,null==_?void 0:_.latestRevisions),A=(null==_?void 0:_.clientIdentity)||J(16);let I=w;const O=null!==(d=null===(u=e.cloud.options)||void 0===u?void 0:u.maxStringLength)&&void 0!==d?d:32768,D=function(e,t=32768){for(const n of e)for(const e of n.muts)if(Wi(e,t))return!0;return!1}(w,O);D&&(I=yield function(e,t,n){return r(this,arguments,void 0,function*(e,t,n,r=32768){const s=[];for(const i of e){const e=[];for(const s of i.muts){const i=yield Fi(s,t,n,r);e.push(i)}s.push({table:i.table,muts:e})}return s})}(w,h,()=>Hi(e),O)),Ft(i);const T=yield Mt(I,S,_,k,e,h,n,A,f),{done:j,newSyncState:U}=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 yt(g,e,{since:C});for(const t of g){const n=ft(t.name);if(s.some(e=>e.table===n&&e.muts.length>0)){if(C[n]){const r=C[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()])}Kt(s,C),yield zt(e,n,C,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=dt(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};m&&(o.syncedTables=p.map(e=>e.name).concat(b.map(e=>e.name))),o.latestRevisions=C,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=Yi(T.changes,s);if(yield Qt(c,e),T.yMessages){const{receivedUntils:t,resyncNeeded:n,yServerRevision:s}=yield ji(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 u=Object.values(n.dx._dbSchema).filter(e=>e.yProps).map(e=>e.yProps.map(e=>e.updatesTable)).flat();for(const e of u){const t=a[e],s=null!==(o=null==t?void 0:t.unsentFrom)&&void 0!==o?o:1,i=null!==(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(Xt);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:Xt,unsentFrom:s,receivedUntil:i})}))}})}(x,t,e),n&&(o.yDownloadedRealms={})}return e.$syncState.put(o,"syncState"),{done:0===s.length,newSyncState:o}}));if(!j)return yield Nt(e),yield Gi(e,t,n,{isInitialSync:s,cancelToken:i});const P=Object.values(n).some(e=>{var t;return null===(t=e.yProps)||void 0===t?void 0:t.length}),L=!!T.yMessages;if(P&&L)try{yield Ki(e,h,U)}catch(e){}return e.syncCompleteEvent.next(),!1})}function Yi(e,t){const n={};X(n,e);const r={};return X(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))H(r.val,e,t);break;case"del":break;case"upd":for(const e of Object.keys(s.mod))delete r.mod[e]}break}}}(n,r),function(e,t){const n={};for(const[t,r]of Object.entries(e))for(const[e,s]of Object.entries(r)){const r=n[t]||(n[t]={});(r[s.type]||(r[s.type]=[])).push({key:e,...s})}const r=[];for(const[e,s]of Object.entries(n)){const n={table:e,muts:[]};for(const[e,r]of Object.entries(s))switch(e){case"ups":{const e={type:"upsert",keys:r.map(e=>e.key),values:r.map(e=>e.val),txid:t};n.muts.push(e);break}case"upd":{const e={type:"update",keys:r.map(e=>e.key),changeSpecs:r.map(e=>e.mod),txid:t};n.muts.push(e);break}case"del":{const e={type:"delete",keys:r.map(e=>e.key),txid:t};n.muts.push(e);break}}r.push(n)}return r}(n)}function Qi(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,u,d;i.length>0;){const h=i.shift();try{yield t.firstValueFrom(s.cloud.syncState.pipe(n.filter(({phase:e})=>"in-sync"===e||"error"===e)));const i=s.cloud.persistedSyncState.value;if(!h)continue;switch(h.type){case"token-expired":const t=s.cloud.currentUser.value,n=yield Ot(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===(u=null==i?void 0:i.inviteRealms)||void 0===u?void 0:u.includes(h.realm)))&&(yield s.cloud.sync({purpose:"pull",wait:!0}));break;case"realms-changed":yield s.cloud.sync({purpose:"pull",wait:!0});break;case"changes":if("error"===(null===(d=s.cloud.syncState.value)||void 0===d?void 0:d.phase)){y(s,"pull");break}(yield s.transaction("rw",s.dx.tables,t=>r(this,void 0,void 0,function*(){t.idbtrans.disableChangeTracking=!0,t.idbtrans.disableAccessControl=!0;const[n,r,i]=yield Promise.all([s.getSchema(),s.getPersistedSyncState(),s.getCurrentUser()]);if(!r||!n||!i)return!1;if(h.baseRev!==r.serverRevision)return"string"!=typeof h.baseRev||"bigint"!=typeof r.serverRevision&&"object"!=typeof r.serverRevision||y(s,"pull"),!1;if((yield e.waitFor(ut(r)))!==h.realmSetHash)return y(s,"pull"),!1;let o=[];if(i.isLoggedIn){const e=dt(s).map(e=>s.table(ht(e.name)));o=yield yt(e,s)}if(h.changes.length>0){const e=Yi(h.changes,o);yield Qt(e,s)}return r.latestRevisions=Kt(o,r.latestRevisions),r.serverRevision=h.newRev,yield zt(s,n,r.latestRevisions,h.newRev),yield s.$syncState.put(r,"syncState"),!0})))&&h.changes.length>0&&s.syncCompleteEvent.next();break}}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}}class Xi{constructor(e){this.inFlight=new Map,this.db=e}download(e,t){let n=this.inFlight.get(e.ref);return n||(n=Hi(this.db).then(n=>{if(!n)throw new Error("No access token available for blob download");return function(e,t,n){return r(this,void 0,void 0,function*(){const r=`${t}/blob/${e.ref}`,s=yield fetch(r,{headers:{Authorization:`Bearer ${n}`}});if(!s.ok)throw new Error(`Failed to download blob ${e.ref}: ${s.status} ${s.statusText}`);const i=yield s.arrayBuffer();return new Uint8Array(i)})}(e,t,n)}).finally(()=>this.inFlight.delete(e.ref)),this.inFlight.set(e.ref,n)),n}}const Zi=new WeakMap,eo={members:"@id, [userId+realmId], [email+realmId], realmId",roles:"[realmId+name]",realms:"@realmId",$jobs:"",$syncState:"",$baseRevs:"[tableName+clientRev]",$logins:"claims.sub, lastLogin"};let to=0;function no(e){"vip"in e&&(e=e.vip);let n=Zi.get(e);if(!n){const r=new t.Subject;let s=new f(`syncstatechanged-${e.name}`),i=new f(`synccomplete-${e.name}`);r.id=++to;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},get cloud(){return 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=ro(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=Qi(n),n.messageProducer=new t.Subject,n.blobDownloadTracker=new Xi(n),Zi.set(e,n)}return n}function ro(e){return"string"==typeof e?e:e?"["+[].join.call(e,"+")+"]":""}function so(e,t){e.value!==t&&e.next(t)}function io(s,i){const o=t.from(e.liveQuery(()=>r(this,void 0,void 0,function*(){let e=0,t=0;const n=dt(s);return yield s.dx.transaction("r",n,s=>r(this,void 0,void 0,function*(){s.idbtrans.disableBlobResolve=!0;for(const r of n){if(!!!r.schema.idxByName._hasBlobRefs)continue;const n=yield r.where("_hasBlobRefs").equals(1).toArray();for(const r of n){const n=oo(r);e+=n.length,t+=n.reduce((e,t)=>e+(t.size||0),0)}}})),{blobsRemaining:e,bytesRemaining:t}})));return t.combineLatest([o,i]).pipe(n.map(([e,t])=>({isDownloading:t&&e.blobsRemaining>0,blobsRemaining:e.blobsRemaining,bytesRemaining:e.bytesRemaining})),n.share({resetOnRefCountZero:()=>t.timer(2e3)}))}function oo(e){const t=[];return function e(n){if(null!=n&&"object"==typeof n)if(k.isTSONRef(n))t.push({ref:n.ref,size:n.size});else{if(function(e){if("object"!=typeof e||null===e)return!1;const t=e;return"string"==typeof t.type&&"string"==typeof t.ref&&"number"==typeof t.size&&void 0===t._bt}(n)){const e=n;return void t.push({ref:e.ref,size:e.size})}Ht(n)?t.push({ref:n.ref,size:n.size||0}):Array.isArray(n)?n.forEach(e):n.constructor===Object&&Object.values(n).forEach(e)}}(e),t}const co=new WeakMap;class lo{constructor(e,t){co.set(this,e),Object.assign(this,t)}static load(e,t){return e.table("$logins").get(t).then(n=>new lo(e,n||{userId:t,claims:{sub:t},lastLogin:new Date(0)}))}save(){return r(this,void 0,void 0,function*(){co.get(this).table("$logins").put(this)})}}function ao(e,n){return t.firstValueFrom(t.from(e).pipe(t.filter(n)))}function uo(e){return r(this,void 0,void 0,function*(){const t=yield ho(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 _t(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 ho(e,{deleteUnsyncedData:!0})}})}function ho(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 ao(e.cloud.currentUser,e=>e.userId===l.userId),yield e.cloud.sync({purpose:"pull",wait:!0})),n})}const fo={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 po extends Error{constructor(e,t,n){super(n||fo[e]),this.name="OAuthError",this.code=e,this.provider=t}get userMessage(){return fo[this.code]||this.message}}const go={providers:[],otpEnabled:!0};function yo(e){return r(this,arguments,void 0,function*(e,t=!0){if(!t)return go;try{const t=yield fetch(`${e}/auth-providers`,{method:"GET",headers:{Accept:"application/json"},mode:"cors"});return 404===t.status?go:t.ok?yield t.json():go}catch(e){return go}})}function mo(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 bo(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 po("expired_code",void 0,e.message);throw new bt(e)}}catch(e){if(e instanceof po||e instanceof bt)throw e}throw new po("provider_error",void 0,`Token exchange failed: ${e.status} ${t}`)}const n=yield e.json();if("error"===n.type)throw new bt(n);if("tokens"!==n.type)throw new po("provider_error",void 0,`Unexpected response type: ${n.type}`);return n}catch(e){if(e instanceof po||e instanceof bt)throw e;if(e instanceof TypeError)throw new po("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())),vo(t,i.provider,e),new Et(i.provider)}if("demo"===(null==i?void 0:i.grant_type)){l={demo_user:yield St(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 St(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),u=yield yo(a,o);if(u.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(wt)];return r&&o.push({name:"otp",value:"email",displayName:"Continue with email",iconUrl:vt,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,u.providers,u.otpEnabled,"Sign in");if("provider"===s.type)throw vo(t,s.provider),new Et(s.provider)}const d=yield St(n,"Enter email address",null==i?void 0:i.email);l=/@demo.local$/.test(d)?{demo_user:d,grant_type:"demo",scopes:["ACCESS_DB"],public_key:s}:{email:d,grant_type:"otp",scopes:["ACCESS_DB"]}}const u=yield fetch(`${a}/token`,{body:JSON.stringify(l),method:"post",headers:{"Content-Type":"application/json"},mode:"cors"});if(200!==u.status){const e=yield u.text();throw yield kt(n,"Token request failed",{type:"error",messageCode:"GENERIC_ERROR",message:e,messageParams:{}}).catch(()=>{}),new Lt(u,e)}const d=yield u.json();if("tokens"===d.type||"error"===d.type)return d;if("otp"===l.grant_type&&"email"in l){if("otp-sent"!==d.type)throw new Error(`Unexpected response from ${a}/token`);const e=yield xt(n,l.email),t=Object.assign(Object.assign({},l),{otp:e||"",otp_id:d.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 xt(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 vo(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.");mo({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 wo(e,...t){globalThis.console[e](...t)}function _o(e,t){return r(this,void 0,void 0,function*(){var n;const s=yield e.getCurrentUser(),i=s.userId;if(s.isLoggedIn&&(!t||!t.email&&!t.userId)){if("ok"===((null===(n=s.license)||void 0===n?void 0:n.status)||"ok")&&s.accessToken&&(!s.accessTokenExpiration||s.accessTokenExpiration.getTime()>Date.now()))return!1;if(s.refreshToken&&(!s.refreshTokenExpiration||s.refreshTokenExpiration.getTime()>Date.now()))return yield At(e),!1}const o=new lo(e,{claims:{},lastLogin:new Date(0)});try{yield It(e.cloud.options.databaseUrl,o,e.cloud.options.fetchTokens||bo(e),e.cloud.userInteraction,t)}catch(e){if("OAuthRedirectError"===e.name)return!1;throw e}return i!==l.userId&&o.userId!==i&&(yield uo(e)),yield function(e,t){return r(this,void 0,void 0,function*(){const n=e.table("$logins");yield e.transaction("rw",n,e=>r(this,void 0,void 0,function*(){const e=yield n.toArray();yield Promise.all(e.filter(e=>e.userId!==t.userId&&e.isLoggedIn).map(e=>(e.isLoggedIn=!1,n.put(e)))),t.isLoggedIn=!0,t.lastLogin=new Date;try{yield t.save()}catch(e){try{"DataCloneError"===e.name&&(wo("debug","Login context property names:",Object.keys(t)),wo("debug","Login context property names:",Object.keys(t)),wo("debug","Login context:",t),wo("debug","Login context JSON:",JSON.stringify(t)))}catch(e){}throw e}})),yield ao(e.cloud.currentUser,e=>e.userId===t.userId)})}(e,o),y(e,"pull"),o.userId!==i})}const ko="undefined"!=typeof InstallTrigger,So="undefined"!=typeof navigator&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\/|Edge\//.test(navigator.userAgent),xo=So?[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]:NaN,Eo=So&&xo<=605||ko,Co="undefined"!=typeof self&&"clients"in self&&!self.document;const{toString:Ao}={};function Io(e){return Ao.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 Do(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 To=/b|c|d|f|g|h|j|k|l|m|n|p|q|r|s|t|v|x|y|z/i;function jo(e){return e>="A"&&e<="Z"}let Uo=0;function Po(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+P(new Uint8Array(n.buffer))+(t||"")}function Lo(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]=Po(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(!G(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 Ro=0;function $o(e,t){return function(n){const{readers:r,writers:s}=n.trans[t]||(n.trans[t]={writers:[],readers:[]}),i=s.length,o=(i>0?s[i-1].then(()=>e(n),()=>e(n)):e(n)).finally(()=>{r.splice(r.indexOf(o))});return r.push(o),o}}function Bo(e,t){return function(n){const{readers:r,writers:s}=n.trans[t]||(n.trans[t]={writers:[],readers:[]});let i=(s.length>0?s[s.length-1].then(()=>e(n),()=>e(n)):r.length>0?(o=r,new Promise(e=>{0===o.length&&e([]);let t=o.length;const n=new Array(t);o.forEach((r,s)=>Promise.resolve(r).then(e=>n[s]={status:"fulfilled",value:e},e=>n[s]={status:"rejected",reason:e}).then(()=>--t||e(n)))})).then(()=>e(n)):e(n)).finally(()=>{s.shift()});var o;return s.push(i),i}}const No=new t.BehaviorSubject(new Set);function Mo(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 Fo({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=>ht(e));i=r.transaction([...e,...t],s)}else i=r.transaction(e,s);if("readwrite"===s){i.txid=mt(16),i.opCount=0,i.currentUser=t.value,No.value.add(i),No.next(No.value);const e=()=>{i.removeEventListener("complete",r),i.removeEventListener("error",e),i.removeEventListener("abort",e),No.value.delete(i),No.next(No.value)},r=()=>{i.mutationsAdded&&!Mo(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"+ ++Ro;return Object.assign(Object.assign({},e),{count:$o(e.count,t),get:$o(e.get,t),getMany:$o(e.getMany,t),openCursor:$o(e.openCursor,t),query:$o(e.query,t),mutate:Bo(e.mutate,t)})}(Object.assign(Object.assign({},s),{mutate:e=>{var r,o,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,u=null===(l=null===(o=n.cloud.options)||void 0===o?void 0:o.unsyncedProperties)||void 0===l?void 0:l[t],{txid:d,currentUser:{userId:h}}=a,{type:f}=r,p=++a.opCount;function g(e){if(!u)return e;let t=e;for(const n of Object.keys(e))u.some(e=>n===e||n.startsWith(e+"."))&&(t===e&&(t=Object.assign({},e)),delete t[n]);return t}return s.mutate(r).then(t=>{var n;const{numFailures:s,failures:o}=t;let l="delete"===f?r.keys:t.results,y="values"in r?r.values:[],m="changeSpec"in r?r.changeSpec:void 0,b="updates"in r?r.updates:void 0,v=!(!b||!("upsert"in r))&&r.upsert;if(s&&(l=l.filter((e,t)=>!o[t]),y=y.filter((e,t)=>!o[t])),u){if(y=y.map(e=>{const t=Object.assign({},e);for(const e of u)delete t[e];return t}),m&&(m=g(m),0===Object.keys(m).length))return t;if(b){let t=b.changeSpecs.map(g),n={keys:[],changeSpecs:[]};const r=new e.RangeSet;let s=!1;if(!v){for(let e=0,i=t.length;e<i;++e)Object.keys(t[e]).length>0?(n.keys.push(b.keys[e]),n.changeSpecs.push(t[e]),r.addKey(b.keys[e])):s=!0;if(b=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(u&&(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==u?void 0:u.includes(e))&&(_=void 0)}const k="delete"===r.type?{type:"delete",ts:w,opNo:p,keys:l,criteria:_,txid:d,userId:h}:"add"===r.type?{type:"insert",ts:w,opNo:p,keys:l,txid:d,userId:h,values:y}:v&&b?{type:"upsert",ts:w,opNo:p,keys:l,values:y,changeSpecs:b.changeSpecs.filter((e,t)=>!o[t]),txid:d,userId:h}:_&&m?{type:"modify",ts:w,opNo:p,keys:l,criteria:_,changeSpec:m,txid:d,userId:h}:m?{type:"update",ts:w,opNo:p,keys:l,changeSpecs:l.map(()=>m),txid:d,userId:h}:b?{type:"update",ts:w,opNo:p,keys:b.keys,changeSpecs:b.changeSpecs,txid:d,userId:h}:{type:"upsert",ts:w,opNo:p,keys:l,values:y,txid:d,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})}}})}}}class Wo{constructor(e){this.queue=[],this.isProcessing=!1,this.db=e}saveBlobs(e,t,n){this.queue.push({tableName:e,primaryKey:t,resolvedBlobs:n}),this.startConsumer()}startConsumer(){this.isProcessing||(this.isProcessing=!0,setTimeout(()=>{this.processQueue()},0))}processQueue(){const t=this.queue.shift();t?this.db.transaction("rw",t.tableName,n=>{const r=n.idbtrans;r.disableChangeTracking=!0,r.disableAccessControl=!0,r.disableBlobResolve=!0;const s={};for(const e of t.resolvedBlobs)s[e.keyPath]=e.data;n.table(t.tableName).update(t.primaryKey,n=>{for(const r of t.resolvedBlobs){const t=e.getByKeyPath(n,r.keyPath);if(void 0!==t&&Ht(t)){if(t.ref!==r.ref)return;e.setByKeyPath(n,r.keyPath,r.data)}}delete n._hasBlobRefs})}).catch(e=>{}).finally(()=>this.processQueue()):this.isProcessing=!1}}function zo(t){return{stack:"dbcore",name:"blobResolve",level:2,create(n){const r=new Wo(t);return Object.assign(Object.assign({},n),{table(s){var i;if(!t.cloud)return n.table(s);const o=null===(i=t.cloud.options)||void 0===i?void 0:i.databaseUrl,c=n.table(s);return s.startsWith("$")?c:Object.assign(Object.assign({},c),{get(e){var n;return(null===(n=e.trans)||void 0===n?void 0:n.disableBlobResolve)?c.get(e):c.get(e).then(n=>n&&Gt(n)?Ko(c,e.trans,e.key,n,r,t):n)},getMany(n){var s;return(null===(s=n.trans)||void 0===s?void 0:s.disableBlobResolve)?c.getMany(n):c.getMany(n).then(s=>{const i=s.some(e=>e&&Gt(e));return i?e.Promise.all(s.map((e,s)=>e&&Gt(e)?Ko(c,n.trans,n.keys[s],e,r,t):e)):s})},query(n){var s;return(null===(s=n.trans)||void 0===s?void 0:s.disableBlobResolve)?c.query(n):c.query(n).then(s=>{if(!s.result||!Array.isArray(s.result))return s;const i=s.result.some(e=>e&&Gt(e));return i?e.Promise.all(s.result.map(e=>e&&Gt(e)?Ko(c,n.trans,void 0,e,r,t):e)).then(e=>Object.assign(Object.assign({},s),{result:e})):s})},openCursor(e){var n;return(null===(n=e.trans)||void 0===n?void 0:n.disableBlobResolve)?c.openCursor(e):c.openCursor(e).then(n=>n&&e.values&&o?function(e,t,n,r){const s=Object.create(e,{value:{value:e.value,enumerable:!0,writable:!0},start:{value:i=>e.start(()=>{const o=e.value;o&&Gt(o)?Ko(t,e.trans,e.primaryKey,o,n,r,!0).then(e=>{s.value=e,i()},e=>{i()}):i()})}});return s}(n,c,r,t):n)}})}})}}}function Ko(t,n,r,s,i,o,c=!1){var l;try{const a=e.currentTransaction,u="readonly"===(null==a?void 0:a.mode),d=!0===(null==a?void 0:a.explicit),h=a&&!(u&&!d&&!c),f=(null===(l=o.cloud.options)||void 0===l?void 0:l.databaseUrl)||"",p=[],g=qt(s,f,p,"",new WeakMap,o.blobDownloadTracker);return(h?e.waitFor(g):e.Promise.resolve(g)).then(o=>{const c=t.schema.primaryKey,l=void 0!==r?r:c.keyPath?e.getByKeyPath(s,c.keyPath):void 0;return void 0!==l&&(u?i.saveBlobs(t.name,l,p):t.mutate({type:"put",keys:[l],values:[o],trans:n}).catch(e=>{})),o}).catch(e=>s)}catch(t){return e.Promise.resolve(s)}}function Vo(e,t){return function(n,r){var s;const i=Object.assign(Object.assign({},eo),n);Object.keys(eo).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=eo[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(eo[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)(To.test(e[t])||jo(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=Do(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,i[e].includes("_hasBlobRefs")||(i[e]+=",_hasBlobRefs")),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 Ho(e,t,n){return"undefined"!=typeof navigator&&navigator.locks?navigator.locks.request(e.name+"|"+t,n):n()}const Jo=new t.BehaviorSubject(!0),qo=new t.BehaviorSubject(!0);Jo.pipe(n.switchMap(e=>e?t.of(!0):t.of(!1).pipe(n.delay(2e4))),n.distinctUntilChanged()).subscribe(qo);const Go="undefined"!=typeof document?t.fromEvent(document,"visibilitychange"):t.of({}),Yo=Go.pipe(n.filter(()=>"hidden"===document.visibilityState)),Qo=Go.pipe(n.filter(()=>"visible"===document.visibilityState)),Xo="undefined"!=typeof window?t.merge(Qo,t.fromEvent(window,"mousedown"),t.fromEvent(window,"mousemove"),t.fromEvent(window,"keydown"),t.fromEvent(window,"wheel"),t.fromEvent(window,"touchmove")):t.of({});"undefined"!=typeof document&&t.merge(t.of(!0),Yo,Xo).pipe(n.map(()=>"visible"===document.visibilityState),n.tap(e=>{Jo.value!==e&&Jo.next(e)}),n.switchMap(e=>e?t.of(0).pipe(n.delay(16e4),n.tap(()=>Jo.next(!1))):t.of(0))).subscribe(()=>{});class Zo extends Error{constructor(){super(...arguments),this.name="TokenExpiredError"}}const ec=new WeakMap,tc=3e4;class nc extends sn{constructor(e){super(),this.doc=e,this.clientID=e.clientID,this.states=new Map,this.meta=new Map,this._checkInterval=setInterval(()=>{const e=un();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&&tc<=e-n.lastUpdated&&this.states.has(r)&&t.push(r)}),t.length>0&&rc(this,t,"timeout")},Z(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:un()});const i=[],o=[],c=[],l=[];null===e?l.push(t):null==s?null!=e&&i.push(t):(o.push(t),En(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 rc=(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:un()})}r.push(s)}}r.length>0&&(e.emit("change",[{added:[],updated:[],removed:r},n]),e.emit("update",[{added:[],updated:[],removed:r},n]))},sc=new WeakMap;function ic(e){let n=sc.get(e);return n||(n=new t.Subject,sc.set(e,n)),n}class oc extends t.Observable{constructor(e,t,n,r,s,i,o,c){super(l=>new lc(e,t,n,r,s,c,l,i,o))}}let cc=0;class lc extends t.Subscription{constructor(e,t,n,r,s,i,o,c,l){super(()=>this.teardown()),this.id=++cc,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 Zo);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","3"),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?Pt.parse(e.data):function(e){const t=new Je(e),n=et(t);if("outdated-server-rev"===n)return{type:n};if("y-complete-sync-done"===n)return{type:n,yServerRev:et(t)};const r=et(t),s=et(t);switch(n){case"u-ack":case"u-reject":return{type:n,table:r,prop:s,i:Number(nt(t))};default:{const e=st(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:Ye(t)};case"doc-open":return{type:n,table:r,prop:s,k:e,serverRev:st(t),sv:st(t)};case"sv":return{type:n,table:r,prop:s,k:e,sv:Ye(t)};case"u-c":return{type:n,table:r,prop:s,k:e,u:Ye(t),i:Number(nt(t))};case"u-s":return{type:n,table:r,prop:s,k:e,u:Ye(t),r:t.pos<t.arr.length&&et(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=Ti.getDocCache(this.db.dx).find(t.table,t.k,t.prop);if(e){const n=(e=>ec.get(e))(e);n&&((e,t,n)=>{const r=qe(t),s=un(),i=[],o=[],c=[],l=[],a=Xe(r);for(let t=0;t<a;t++){const t=Xe(r);let n=Xe(r);const a=JSON.parse(et(r)),u=e.meta.get(t),d=e.states.get(t),h=void 0===u?0:u.clock;(h<n||h===n&&null===a&&e.states.has(t))&&(null===a?t===e.clientID&&null!=e.getLocalState()?n++:e.states.delete(t):e.states.set(t,a),e.meta.set(t,{clock:n,lastUpdated:s}),void 0===u&&null!==a?i.push(t):void 0!==u&&null===a?l.push(t):null!==a&&(En(a,d)||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=Ti.getDocCache(this.db.dx).find(t.table,t.k,t.prop);e&&ic(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?ji([t],this.db).then(e=>r(this,[e],void 0,function*({resyncNeeded:e,yServerRevision:n,receivedUntils:r}){if(n&&(yield this.db.$syncState.update("syncState",{yServerRevision:n})),"u-s"===t.type&&r){const e=vi(this.db,t.table,t.prop);if(e){const t=r[e.name];t&&(yield e.update(Xt,{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(Pt.stringify(e))):null===(n=this.ws)||void 0===n||n.send(function(e){const t=new we;switch(Oe(t,e.type),"table"in e&&Oe(t,e.table),"prop"in e&&Oe(t,e.prop),e.type){case"u-ack":case"u-reject":Ue(t,BigInt(e.i));break;case"outdated-server-rev":break;case"y-complete-sync-done":Oe(t,e.yServerRev);break;default:switch(Le(t,e.k),e.type){case"aware":Te(t,e.u);break;case"doc-open":Le(t,e.serverRev),Le(t,e.sv);break;case"doc-close":break;case"sv":Te(t,e.sv);break;case"u-c":Te(t,e.u),Ue(t,BigInt(e.i));break;case"u-s":Te(t,e.u),Oe(t,e.r||"")}}return ke(t)}(e)))})),this.user.isLoggedIn&&!Mo(this.db)&&this.subscriptions.add(function(n){const s=gt(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(Xt)).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 Zt(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 ac extends Error{constructor(e){super("expired"===e?"License expired":"deactivated"===e?"User deactivated":"Invalid license"),this.name="InvalidLicenseError",e&&(this.license=e)}}function uc(e){return r(this,void 0,void 0,function*(){var e;yield(e=3e3,new Promise(t=>setTimeout(t,e))),yield t.firstValueFrom(Xo)})}function dc(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 qi(e,e.cloud.options,e.cloud.schema,{justCheckIfNeeded:!0}))})}const hc=new WeakMap;function fc(e,t,n,s){const i=hc.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 fc(e,t,n,s)})}}const o=function(){return r(this,void 0,void 0,function*(){try{yield Nt(e),yield Ho(e,Ji,()=>qi(e,t,n,s)),hc.delete(e)}catch(t){throw hc.delete(e),t}})}();return hc.set(e,{promise:o,pull:"push"!==(null==s?void 0:s.purpose)}),o}function pc(e,t,n){let r=null,s={cancelled:!1},i=0,o=0;function c(r=1){setTimeout(()=>{const d=l?"pull":"push";o=Date.now(),fc(e,t,n,{cancelToken:s,retryImmediatelyOnFetchError:!0,purpose:d}).then(()=>{if(s.cancelled)h();else if(l||a)return l=!1,a=!1,c();u=!1,i=0,o=0}).catch(e=>{if(s.cancelled)h(),u=!1,i=0,o=0;else if(r<5){const e=[0,20,40,300,900][r]*Ct;i=Date.now()+e,o=0,setTimeout(()=>c(r+1),e)}else u=!1,i=0,o=0})},0)}let l=!1,a=!1,u=!1;const d=e=>{s.cancelled||("pull"===e&&(l=!0),"push"===e&&(a=!0),u?i||o>0&&Date.now():(u=!0,c()))},h=()=>{s.cancelled=!0,r&&r.unsubscribe()};return{start:()=>{r=e.localSyncEvent.subscribe(({purpose:e})=>{d(e||"pull")})},stop:h}}function gc(e,t){if(e&&t&&t.unsyncedTables)for(const n of t.unsyncedTables)e[n]&&(e[n].markedForSync=!1)}var yc,mc,bc,vc,wc,_c,kc,Sc,xc,Ec,Cc,Ac={},Ic=[],Oc=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,Dc=Array.isArray;function Tc(e,t){for(var n in t)e[n]=t[n];return e}function jc(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function Uc(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?yc.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 Pc(e,o,r,s,null)}function Pc(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?++bc:s,__i:-1,__u:0};return null==s&&null!=mc.vnode&&mc.vnode(i),i}function Lc(e){return e.children}function Rc(e,t){this.props=e,this.context=t}function $c(e,t){if(null==t)return e.__?$c(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?$c(e):null}function Bc(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 Bc(e)}}function Nc(e){(!e.__d&&(e.__d=!0)&&vc.push(e)&&!Mc.__r++||wc!=mc.debounceRendering)&&((wc=mc.debounceRendering)||_c)(Mc)}function Mc(){for(var e,t,n,r,s,i,o,c=1;vc.length;)vc.length>c&&vc.sort(kc),e=vc.shift(),c=vc.length,e.__d&&(n=void 0,r=void 0,s=(r=(t=e).__v).__e,i=[],o=[],t.__P&&((n=Tc({},r)).__v=r.__v+1,mc.vnode&&mc.vnode(n),Jc(t.__P,n,r,t.__n,t.__P.namespaceURI,32&r.__u?[s]:null,i,null==s?$c(r):s,!!(32&r.__u),o),n.__v=r.__v,n.__.__k[n.__i]=n,Gc(i,n,o),r.__e=r.__=null,n.__e!=s&&Bc(n)));Mc.__r=0}function Fc(e,t,n,r,s,i,o,c,l,a,u){var d,h,f,p,g,y,m,b=r&&r.__k||Ic,v=t.length;for(l=function(e,t,n,r,s){var i,o,c,l,a,u=n.length,d=u,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]=Pc(null,o,null,null,null):Dc(o)?o=e.__k[i]=Pc(Lc,{children:o},null,null,null):null==o.constructor&&o.__b>0?o=e.__k[i]=Pc(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=zc(o,n,l,d))&&(d--,(c=n[a])&&(c.__u|=2)),null==c||null==c.__v?(-1==a&&(s>u?h--:s<u&&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(d)for(i=0;i<u;i++)null!=(c=n[i])&&!(2&c.__u)&&(c.__e==r&&(r=$c(c)),Zc(c,c));return r}(n,t,b,l,v),d=0;d<v;d++)null!=(f=n.__k[d])&&(h=-1==f.__i?Ac:b[f.__i]||Ac,f.__i=d,y=Jc(e,f,h,s,i,o,c,l,a,u),p=f.__e,f.ref&&h.ref!=f.ref&&(h.ref&&Xc(h.ref,null,f),u.push(f.ref,f.__c||p,f)),null==g&&null!=p&&(g=p),(m=!!(4&f.__u))||h.__k===f.__k?l=Wc(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 Wc(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=Wc(s[i],t,n,r));return t}e.__e!=t&&(r&&(t&&e.type&&!t.parentNode&&(t=$c(e)),n.insertBefore(e.__e,t||null)),t=e.__e);do{t=t&&t.nextSibling}while(null!=t&&8==t.nodeType);return t}function zc(e,t,n,r){var s,i,o,c=e.key,l=e.type,a=t[n],u=null!=a&&!(2&a.__u);if(null===a&&null==c||u&&c==a.key&&l==a.type)return n;if(r>(u?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 Kc(e,t,n){"-"==t[0]?e.setProperty(t,null==n?"":n):e[t]=null==n?"":"number"!=typeof n||Oc.test(t)?n:n+"px"}function Vc(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||Kc(e.style,t,"");if(n)for(t in n)r&&n[t]==r[t]||Kc(e.style,t,n[t])}else if("o"==t[0]&&"n"==t[1])i=t!=(t=t.replace(Sc,"$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=xc,e.addEventListener(t,i?Cc:Ec,i)):e.removeEventListener(t,i?Cc: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 Hc(e){return function(t){if(this.l){var n=this.l[t.type+e];if(null==t.t)t.t=xc++;else if(t.t<n.u)return;return n(mc.event?mc.event(t):t)}}}function Jc(e,t,n,r,s,i,o,c,l,a){var u,d,h,f,p,g,y,m,b,v,w,_,k,S,x,E,C,A=t.type;if(null!=t.constructor)return null;128&n.__u&&(l=!!(32&n.__u),i=[c=t.__e=n.__e]),(u=mc.__b)&&u(t);e:if("function"==typeof A)try{if(m=t.props,b="prototype"in A&&A.prototype.render,v=(u=A.contextType)&&r[u.__c],w=u?v?v.props.value:u.__:r,n.__c?y=(d=t.__c=n.__c).__=d.__E:(b?t.__c=d=new A(m,w):(t.__c=d=new Rc(m,w),d.constructor=A,d.render=el),v&&v.sub(d),d.state||(d.state={}),d.__n=r,h=d.__d=!0,d.__h=[],d._sb=[]),b&&null==d.__s&&(d.__s=d.state),b&&null!=A.getDerivedStateFromProps&&(d.__s==d.state&&(d.__s=Tc({},d.__s)),Tc(d.__s,A.getDerivedStateFromProps(m,d.__s))),f=d.props,p=d.state,d.__v=t,h)b&&null==A.getDerivedStateFromProps&&null!=d.componentWillMount&&d.componentWillMount(),b&&null!=d.componentDidMount&&d.__h.push(d.componentDidMount);else{if(b&&null==A.getDerivedStateFromProps&&m!==f&&null!=d.componentWillReceiveProps&&d.componentWillReceiveProps(m,w),t.__v==n.__v||!d.__e&&null!=d.shouldComponentUpdate&&!1===d.shouldComponentUpdate(m,d.__s,w)){for(t.__v!=n.__v&&(d.props=m,d.state=d.__s,d.__d=!1),t.__e=n.__e,t.__k=n.__k,t.__k.some(function(e){e&&(e.__=t)}),_=0;_<d._sb.length;_++)d.__h.push(d._sb[_]);d._sb=[],d.__h.length&&o.push(d);break e}null!=d.componentWillUpdate&&d.componentWillUpdate(m,d.__s,w),b&&null!=d.componentDidUpdate&&d.__h.push(function(){d.componentDidUpdate(f,p,g)})}if(d.context=w,d.props=m,d.__P=e,d.__e=!1,k=mc.__r,S=0,b){for(d.state=d.__s,d.__d=!1,k&&k(t),u=d.render(d.props,d.state,d.context),x=0;x<d._sb.length;x++)d.__h.push(d._sb[x]);d._sb=[]}else do{d.__d=!1,k&&k(t),u=d.render(d.props,d.state,d.context),d.state=d.__s}while(d.__d&&++S<25);d.state=d.__s,null!=d.getChildContext&&(r=Tc(Tc({},r),d.getChildContext())),b&&!h&&null!=d.getSnapshotBeforeUpdate&&(g=d.getSnapshotBeforeUpdate(f,p)),E=u,null!=u&&u.type===Lc&&null==u.key&&(E=Yc(u.props.children)),c=Fc(e,Dc(E)?E:[E],t,n,r,s,i,o,c,l,a),d.base=t.__e,t.__u&=-161,d.__h.length&&o.push(d),y&&(d.__E=d.__=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--;)jc(i[C]);qc(t)}else t.__e=n.__e,t.__k=n.__k,e.then||qc(t);mc.__e(e,t,n)}else null==i&&t.__v==n.__v?(t.__k=n.__k,t.__e=n.__e):c=t.__e=Qc(n.__e,t,n,r,s,i,o,l,a);return(u=mc.diffed)&&u(t),128&t.__u?void 0:c}function qc(e){e&&e.__c&&(e.__c.__e=!0),e&&e.__k&&e.__k.forEach(qc)}function Gc(e,t,n){for(var r=0;r<n.length;r++)Xc(n[r],n[++r],n[++r]);mc.__c&&mc.__c(t,e),e.some(function(t){try{e=t.__h,t.__h=[],e.some(function(e){e.call(t)})}catch(e){mc.__e(e,t.__v)}})}function Yc(e){return"object"!=typeof e||null==e||e.__b&&e.__b>0?e:Dc(e)?e.map(Yc):Tc({},e)}function Qc(e,t,n,r,s,i,o,c,l){var a,u,d,h,f,p,g,y=n.props||Ac,m=t.props,b=t.type;if("svg"==b?s="http://www.w3.org/2000/svg":"math"==b?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==!!b&&(b?f.localName==b:3==f.nodeType)){e=f,i[a]=null;break}if(null==e){if(null==b)return document.createTextNode(m);e=document.createElementNS(s,b,m.is&&m),c&&(mc.__m&&mc.__m(t,i),c=!1),i=null}if(null==b)y===m||c&&e.data==m||(e.data=m);else{if(i=i&&yc.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)d=f;else if(!(a in m)){if("value"==a&&"defaultValue"in m||"checked"==a&&"defaultChecked"in m)continue;Vc(e,a,null,f,s)}for(a in m)f=m[a],"children"==a?h=f:"dangerouslySetInnerHTML"==a?u=f:"value"==a?p=f:"checked"==a?g=f:c&&"function"!=typeof f||y[a]===f||Vc(e,a,f,y[a],s);if(u)c||d&&(u.__html==d.__html||u.__html==e.innerHTML)||(e.innerHTML=u.__html),t.__k=[];else if(d&&(e.innerHTML=""),Fc("template"==t.type?e.content:e,Dc(h)?h:[h],t,n,r,"foreignObject"==b?"http://www.w3.org/1999/xhtml":s,i,o,i?i[0]:n.__k&&$c(n,0),c,l),null!=i)for(a=i.length;a--;)jc(i[a]);c||(a="value","progress"==b&&null==p?e.removeAttribute("value"):null!=p&&(p!==e[a]||"progress"==b&&!p||"option"==b&&p!=y[a])&&Vc(e,a,p,y[a],s),a="checked",null!=g&&g!=e[a]&&Vc(e,a,g,y[a],s))}return e}function Xc(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){mc.__e(e,n)}}function Zc(e,t,n){var r,s;if(mc.unmount&&mc.unmount(e),(r=e.ref)&&(r.current&&r.current!=e.__e||Xc(r,null,t)),null!=(r=e.__c)){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(e){mc.__e(e,t)}r.base=r.__P=null}if(r=e.__k)for(s=0;s<r.length;s++)r[s]&&Zc(r[s],t,n||"function"!=typeof e.type);n||jc(e.__e),e.__c=e.__=e.__e=void 0}function el(e,t,n){return this.constructor(e,n)}function tl(e,t,n){var r,s,i;t==document&&(t=document.documentElement),mc.__&&mc.__(e,t),r=!1?null:t.__k,s=[],i=[],Jc(t,e=t.__k=Uc(Lc,null,[e]),r||Ac,Ac,t.namespaceURI,r?null:t.firstChild?yc.call(t.childNodes):null,s,r?r.__e:t.firstChild,false,i),Gc(s,e,i)}yc=Ic.slice,mc={__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}},bc=0,Rc.prototype.setState=function(e,t){var n;n=null!=this.__s&&this.__s!=this.state?this.__s:this.__s=Tc({},this.state),"function"==typeof e&&(e=e(Tc({},n),this.props)),e&&Tc(n,e),null!=e&&this.__v&&(t&&this._sb.push(t),Nc(this))},Rc.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),Nc(this))},Rc.prototype.render=Lc,vc=[],_c="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,kc=function(e,t){return e.__v.__b-t.__v.__b},Mc.__r=0,Sc=/(PointerCapture)$|Capture$/i,xc=0,Ec=Hc(!1),Cc=Hc(!0);const nl={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"},CopyButton:{display:"inline-flex",alignItems:"center",gap:"4px",padding:"4px 10px",marginTop:"8px",border:"1px solid #d1d5db",borderRadius:"4px",backgroundColor:"#f9fafb",cursor:"pointer",fontSize:"12px",fontWeight:"500",color:"#374151",transition:"all 0.15s ease",fontFamily:"monospace"},CopyButtonCopied:{display:"inline-flex",alignItems:"center",gap:"4px",padding:"4px 10px",marginTop:"8px",border:"1px solid #22c55e",borderRadius:"4px",backgroundColor:"#f0fdf4",cursor:"default",fontSize:"12px",fontWeight:"500",color:"#16a34a",fontFamily:"monospace"}};function rl({children:e,className:t}){return Uc("div",{className:`dexie-dialog ${t||""}`},Uc("div",{style:nl.Darken}),Uc("div",{style:nl.DialogOuter},Uc("div",{style:nl.DialogInner},e)))}var sl,il,ol,cl,ll=0,al=[],ul=mc,dl=ul.__b,hl=ul.__r,fl=ul.diffed,pl=ul.__c,gl=ul.unmount,yl=ul.__;function ml(e,t){ul.__h&&ul.__h(il,e,ll||t),ll=0;var n=il.__H||(il.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({}),n.__[e]}function bl(e){return ll=1,function(e,t){var n=ml(sl++,2);if(n.t=e,!n.__c&&(n.__=[Al(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=il,!il.__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};il.__f=!0;var s=il.shouldComponentUpdate,i=il.componentWillUpdate;il.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)},il.shouldComponentUpdate=r}return n.__N||n.__}(Al,e)}function vl(e,t){var n=ml(sl++,4);!ul.__s&&Cl(n.__H,t)&&(n.__=e,n.u=t,il.__h.push(n))}function wl(e){return ll=5,function(e,t){var n=ml(sl++,7);return Cl(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}(function(){return{current:e}},[])}function _l(){for(var e;e=al.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(xl),e.__H.__h.forEach(El),e.__H.__h=[]}catch(t){e.__H.__h=[],ul.__e(t,e.__v)}}ul.__b=function(e){il=null,dl&&dl(e)},ul.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),yl&&yl(e,t)},ul.__r=function(e){hl&&hl(e),sl=0;var t=(il=e.__c).__H;t&&(ol===il?(t.__h=[],il.__h=[],t.__.forEach(function(e){e.__N&&(e.__=e.__N),e.u=e.__N=void 0})):(t.__h.forEach(xl),t.__h.forEach(El),t.__h=[],sl=0)),ol=il},ul.diffed=function(e){fl&&fl(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(1!==al.push(t)&&cl===ul.requestAnimationFrame||((cl=ul.requestAnimationFrame)||Sl)(_l)),t.__H.__.forEach(function(e){e.u&&(e.__H=e.u),e.u=void 0})),ol=il=null},ul.__c=function(e,t){t.some(function(e){try{e.__h.forEach(xl),e.__h=e.__h.filter(function(e){return!e.__||El(e)})}catch(n){t.some(function(e){e.__h&&(e.__h=[])}),t=[],ul.__e(n,e.__v)}}),pl&&pl(e,t)},ul.unmount=function(e){gl&&gl(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.forEach(function(e){try{xl(e)}catch(e){t=e}}),n.__H=void 0,t&&ul.__e(t,n.__v))};var kl="function"==typeof requestAnimationFrame;function Sl(e){var t,n=function(){clearTimeout(r),kl&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,35);kl&&(t=requestAnimationFrame(n))}function xl(e){var t=il,n=e.__c;"function"==typeof n&&(e.__c=void 0,n()),il=t}function El(e){var t=il;e.__c=e.__(),il=t}function Cl(e,t){return!e||e.length!==t.length||t.some(function(t,n){return t!==e[n]})}function Al(e,t){return"function"==typeof t?t(e):t}function Il({option:e,onClick:t}){const{displayName:n,iconUrl:r,styleHint:s}=e,i=function(e){const t=Object.assign({},nl.ProviderButton);if(!e)return t;switch(e){case"google":return Object.assign(Object.assign({},t),nl.ProviderGoogle);case"github":return Object.assign(Object.assign({},t),nl.ProviderGitHub);case"microsoft":return Object.assign(Object.assign({},t),nl.ProviderMicrosoft);case"apple":return Object.assign(Object.assign({},t),nl.ProviderApple);case"otp":return Object.assign({},nl.OtpButton);case"custom-oauth2":return Object.assign(Object.assign({},t),nl.ProviderCustom);default:return t}}(s);return Uc("button",{type:"button",style:i,onClick:t,class:"dxc-option-btn"+(s?` dxc-option-${s}`:""),"aria-label":n},r&&Uc("img",{src:r,alt:"",style:nl.ProviderButtonIcon,"aria-hidden":"true"}),Uc("span",{style:nl.ProviderButtonText},n))}function Ol(){return Uc("div",{style:nl.Divider},Uc("div",{style:nl.DividerLine}),Uc("span",{style:nl.DividerText},"or"),Uc("div",{style:nl.DividerLine}))}function Dl({title:e,alerts:t,fields:n,options:r,submitLabel:s,cancelLabel:i,onCancel:o,onSubmit:c}){const[l,a]=bl({}),u=wl(null);vl(()=>{var e;return null===(e=u.current)||void 0===e?void 0:e.focus()},[]);const d=Object.entries(n||{}),h=d.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 Uc(rl,{className:"dxc-login-dlg"},Uc(Lc,null,Uc("h3",{style:nl.WindowHeader},e),t.map((e,t)=>Uc("div",{key:t},Uc("p",{style:nl.Alert[e.type]},function({message:e,messageCode:t,messageParams:n}){return e.replace(/\{\w+\}/gi,e=>n[e.substring(1,e.length-1)])}(e)),e.copyText&&Uc(Tl,{text:e.copyText}))),f&&Uc("div",{class:"dxc-options"},g?Array.from(p.entries()).map(([e,t],n)=>Uc(Lc,{key:e},n>0&&Uc(Ol,null),t.map(e=>Uc(Il,{key:`${e.name}-${e.value}`,option:e,onClick:()=>y(e)})))):r.map(e=>Uc(Il,{key:`${e.name}-${e.value}`,option:e,onClick:()=>y(e)}))),f&&h&&Uc(Ol,null),h&&Uc("form",{onSubmit:e=>{e.preventDefault(),c(l)}},d.map(([e,{type:t,label:n,placeholder:r}],s)=>Uc("label",{style:nl.Label,key:s},n?`${n}: `:"",Uc("input",{ref:0===s?u:void 0,type:t,name:e,autoComplete:"on",style:nl.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)}}))))),Uc("div",{style:nl.ButtonsDiv},Uc(Lc,null,s&&(h||!f&&!h)&&Uc("button",{type:"submit",style:nl.PrimaryButton,onClick:()=>c(l)},s),i&&Uc("button",{style:nl.Button,onClick:o},i))))}function Tl({text:e}){const[t,n]=bl(!1),r=wl(null);vl(()=>()=>{null!==r.current&&clearTimeout(r.current)},[]);const s=()=>{null!==r.current&&clearTimeout(r.current),n(!0),r.current=setTimeout(()=>{r.current=null,n(!1)},2e3)};return Uc("button",{type:"button",style:t?nl.CopyButtonCopied:nl.CopyButton,onClick:()=>{var t;"undefined"!=typeof navigator&&(null===(t=navigator.clipboard)||void 0===t?void 0:t.writeText)?navigator.clipboard.writeText(e).then(s).catch(()=>{jl(e,s)}):jl(e,s)},title:"Copy to clipboard"},t?"✓ Copied!":`📋 ${e}`)}function jl(e,t){const n=document.createElement("textarea");n.value=e,n.style.position="fixed",n.style.opacity="0",document.body.appendChild(n),n.select();const r=document.execCommand("copy");document.body.removeChild(n),r&&t()}class Ul extends Rc{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?Uc(Dl,Object.assign({},t)):null}}function Pl(e){const t=new WeakMap;return n=>{let r=t.get(n);return r||(r=e(n),t.set(n,r)),r}}const Ll=Pl(e=>new t.BehaviorSubject(Object.assign(Object.assign({},l),{isLoading:!0})));function Rl(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 $l=Pl(t=>Rl(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})),{})),Bl=Pl(t=>Rl(Ll(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 Nl(...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 Ml=Pl(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}(Rl(t.combineLatest([Bl(e._novip),$l(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=gt(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:"*"}:Nl(...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 Wl=Pl(s=>{const i=Ll(s._novip).pipe(n.switchMap(t=>e.liveQuery(()=>s.members.where({email:t.email||""}).toArray()))),o=Ml(s._novip),c=Bl(s._novip);return Rl(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 zl(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,u=new nc(s),d=ic(s);return u.on("update",({added:e,updated:t,removed:r},c)=>{const a=e.concat(t).concat(r),d=n.cloud.currentUser.value;if("server"!==c&&d.isLoggedIn&&!Mo(n)){const e=((e,t,n=e.states)=>{const r=t.length,s=_e();Ee(s,r);for(let i=0;i<r;i++){const r=t[i],o=n.get(r)||null,c=e.meta.get(r).clock;Ee(s,r),Ee(s,c),Oe(s,JSON.stringify(o))}return ke(s)})(u,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})}}),u.on("destroy",()=>{rc(u,[s.clientID],"provider destroyed")}),(()=>{r(this,void 0,void 0,function*(){if(i.destroyed)return;let s=!1,u=1;const h=t.combineLatest([n.cloud.webSocketStatus,d.pipe(t.startWith(null))]).subscribe(([e])=>{if(i.destroyed)return;s="connected"===e;const t=n.cloud.currentUser.value;"connected"===e&&t.isLoggedIn&&!Mo(n)&&(++u,f().catch(e=>{}))});function f(){return r(this,void 0,void 0,function*(){const t=u,d=n.table(a),h=n.$syncState,[f,p]=yield n.transaction("r",h,d,()=>r(this,void 0,void 0,function*(){const e=yield d.get(Xt),t=yield h.get("syncState");return[(null==e?void 0:e.receivedUntil)||0,(null==t?void 0:t.yServerRevision)||(null==t?void 0:t.serverRevision)]}));if(i.destroyed||u!==t||!s)return;const g={type:"doc-open",table:o,prop:l,k:c,serverRev:p},y=yield d.where("i").between(f,1/0,!1).filter(t=>0===e.cmp(t.k,c)&&!(1&(t.f||0))).toArray();if(!i.destroyed&&u===t&&s){if(y.length>0){const e=Wr(y.map(e=>e.u)),t=Mr(e);g.sv=t}n.messageProducer.next(g)}})}i.addCleanupHandler(h)})})(),u}(n,o,s),ec.set(o,l),l)})}}function Kl(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 po("access_denied",i,c);if(c.toLowerCase().includes("email")&&c.toLowerCase().includes("verif"))throw new po("email_not_verified",i,c);throw new po("provider_error",i,c)}return s&&i&&o?{code:s,provider:i,state:o}:null}function Vl(){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 Hl={nameSuffix:!0};function Jl(s){const i=s.name,o=Ll(s),c=[];let a=!1,u=null,d=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,w,_,k,S,x,E;f=!1;const C=no(s);"undefined"!=typeof window&&"undefined"!=typeof document&&((null===(i=C.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),tl(Uc(Ul,{db:e.vip}),n)):addEventListener("DOMContentLoaded",()=>{t||(document.body.appendChild(n),tl(Uc(Ul,{db:e.vip}),n))}),{unsubscribe(){try{n.remove()}catch(e){}t=!0},get closed(){return t}}}(s))),C.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 Jo.value?i.pipe(n.debounceTime(500)):i;case"connecting":return"not-started"===s||"error"===s?i:i.pipe(n.debounceTime(4e3));default:return i}}));return t.combineLatest([s,e.syncStateChangedEvent.pipe(n.startWith({phase:"initial"})),Ll(e.dx._novip),qo]).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"}}))}(C).subscribe(s.cloud.syncState)),c.push(C.syncCompleteEvent.subscribe(m));if("eager"===(null!==(v=null===(l=C.cloud.options)||void 0===l?void 0:l.blobMode)&&void 0!==v?v:"eager")){let t=null;const n=()=>{t||(t=e.ignoreTransaction(()=>function(t,n,s){return r(this,void 0,void 0,function*(){var i;const o=e=>{},c=dt(t);let l=!1;for(const e of c)try{if(!e.schema.idxByName._hasBlobRefs)continue;if((yield e.where("_hasBlobRefs").equals(1).count())>0){l=!0;break}}catch(e){}if(l){so(n,!0);try{c.length,c.map(e=>e.name).join(", ");for(const n of c){null==s||s.aborted;try{if(!n.schema.indexes.some(e=>"_hasBlobRefs"===e.name))continue;const c=yield n.where("_hasBlobRefs").equals(1).toArray();o((n.name,c.length));const l=null===(i=t.cloud.options)||void 0===i?void 0:i.databaseUrl;if(!l)throw new Error("Database URL is required to download blobs");const a=6,u=n.schema.primKey,d=c.filter(t=>!!Gt(t)&&void 0!==(u.keyPath?e.getByKeyPath(t,u.keyPath):void 0));let h=0;const f=()=>r(this,void 0,void 0,function*(){for(;h<d.length;){null==s||s.aborted;const r=d[h++],i=e.getByKeyPath(r,u.keyPath);try{const e=[];yield qt(r,l,e,"",new WeakMap,t.blobDownloadTracker);const s={_hasBlobRefs:void 0};for(const t of e)s[t.keyPath]=t.data;o((n.name,e.length)),yield n.update(i,s)}catch(e){}}}),p=[];for(let e=0;e<Math.min(a,d.length);e++)p.push(f());yield Promise.all(p)}catch(e){}}}finally{so(n,!1)}}})}(C,b)).catch(e=>{}).finally(()=>{t=null}))};setTimeout(n,0),c.push(C.syncCompleteEvent.subscribe(n))}C.tables.every(e=>e.core)||function(){throw new e.SchemaError("Version increment needed to allow dexie-cloud change tracking")}();const A="serviceWorker"in navigator?yield navigator.serviceWorker.getRegistrations():[],[I,O]=yield C.transaction("rw",C.$syncState,()=>r(this,void 0,void 0,function*(){var e,t;const{options:n,schema:r}=C.cloud,[s,i,o]=yield Promise.all([C.getOptions(),C.getSchema(),C.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 C.$syncState.put(e,"options")}}else C.cloud.options=s||null;if((null===(e=C.cloud.options)||void 0===e?void 0:e.tryUseServiceWorker)&&"serviceWorker"in navigator&&A.length>0&&!Eo?C.cloud.usingServiceWorker=!0:((null===(t=C.cloud.options)||void 0===t?void 0:t.tryUseServiceWorker)&&C.cloud.isServiceWorkerDB,C.cloud.usingServiceWorker=!1),gc(r,C.cloud.options),gc(i,C.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 C.$syncState.put(e,"schema"),Object.assign(r,e)}}else C.cloud.schema=i||null;return[null==o?void 0:o.initiallySynced,null==o?void 0:o.realms]}));if(I&&C.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`)}}(C),p(),!C.cloud.isServiceWorkerDB){c.push(e.liveQuery(()=>C.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(()=>C.getPersistedSyncState()).subscribe(C.cloud.persistedSyncState)),yield t.firstValueFrom(t.combineLatest([o.pipe(n.skip(1),n.take(1)),C.cloud.persistedSyncState.pipe(n.skip(1),n.take(1))]));const r=zl(C);Ti.on.new.subscribe(r),C.dx.once("close",()=>{Ti.on.new.unsubscribe(r)})}let D=!1,T=yield C.getCurrentUser();if(d&&!C.cloud.isServiceWorkerDB){const e=d;d=null;try{yield kt(C.cloud.userInteraction,"Authentication Error",{type:"error",messageCode:"GENERIC_ERROR",message:e.message,messageParams:{provider:e.provider||"unknown"}}),Vl()}catch(e){}}if(u&&!C.cloud.isServiceWorkerDB){const{code:e,provider:t}=u;u=null;try{D=yield _o(C,{oauthCode:e,provider:t}),T=yield C.getCurrentUser(),Vl()}catch(e){}}const j=null===(w=C.cloud.options)||void 0===w?void 0:w.requireAuth;j&&(C.cloud.isServiceWorkerDB?yield t.firstValueFrom(o.pipe(n.filter(e=>!!e.isLoggedIn),n.take(1))):"object"==typeof j?(!T.isLoggedIn||j.userId&&T.userId!==j.userId||j.email&&T.email!==j.email)&&(D=yield _o(C,j)):T.isLoggedIn||(D=yield _o(C))),!T.isLoggedIn||O&&O.includes(T.userId)||(D=!0),h&&h.stop(),h=null,p();const U=(null===(_=C.cloud.options)||void 0===_?void 0:_.databaseUrl)&&(!I||D);U&&(yield function(e,t,n){return r(this,void 0,void 0,function*(){yield Ho(e,Ji,()=>qi(e,t,n,{isInitialSync:!0}))})}(C,C.cloud.options,C.cloud.schema),C.setInitiallySynced(!0)),p(),C.cloud.usingServiceWorker&&(null===(k=C.cloud.options)||void 0===k?void 0:k.databaseUrl)?(U||g(C,"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){}})}(C).catch(()=>{})):(null===(S=C.cloud.options)||void 0===S?void 0:S.databaseUrl)&&C.cloud.schema&&!C.cloud.isServiceWorkerDB&&(h=pc(C,C.cloud.options,C.cloud.schema),h.start(),U||y(C,"push")),p(),C.cloud.isServiceWorkerDB||c.push(t.fromEvent(self,"online").subscribe(()=>{C.syncStateChangedEvent.next({phase:"not-in-sync"}),Mo(C)||y(C,"push")}),t.fromEvent(self,"offline").subscribe(()=>{C.syncStateChangedEvent.next({phase:"offline"})})),!(null===(x=C.cloud.options)||void 0===x?void 0:x.databaseUrl)||(null===(E=C.cloud.options)||void 0===E?void 0:E.disableWebSocket)||Co||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 ut(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])=>qo.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 ut(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 oc(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 Ot(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 ac?t.throwError(()=>r):t.from(uc()).pipe(n.switchMap(()=>s())))))}().subscribe({next:t=>{t&&e.messageConsumer.enqueue(t)},error:e=>{},complete:()=>{}})}(C))})}(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,b=new t.BehaviorSubject(!1);var v;s.cloud={version:"4.4.3",options:Object.assign({},Hl),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),blobProgress:io(no(s),b),userInteraction:new t.BehaviorSubject(void 0),webSocketStatus:new t.BehaviorSubject("not-started"),login(e){return r(this,void 0,void 0,function*(){const t=no(s);yield t.cloud.sync(),yield _o(t,e)})},invites:Wl(s),roles:$l(s),configure(e){if(void 0!==e.maxStringLength&&e.maxStringLength!==1/0&&(!Number.isFinite(e.maxStringLength)||e.maxStringLength<100||e.maxStringLength>32768))throw new Error(`maxStringLength must be Infinity or a finite number in [100, 32768]. Got: ${e.maxStringLength}`);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)}`,no(s).reconfigure()),gc(s.cloud.schema,s.cloud.options),"undefined"!=typeof window&&window.location)try{const e=Kl();e&&(u={code:e.code,provider:e.provider})}catch(e){e instanceof po&&(d=e)}},logout(){return r(this,arguments,void 0,function*({force:e}={}){e?yield ho(no(s),{deleteUnsyncedData:!0}):yield uo(no(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 yo(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=no(s);if("ok"!==((null===(c=l.cloud.currentUser.value.license)||void 0===c?void 0:c.status)||"ok")&&(yield At(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 dc(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 dc(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=Ml(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=>Vo(e,s)),s.Table.prototype.newId=function({colocateWith:e}={}){const t=e&&e.substr(e.length-3);return Po(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(zo(no(s))),s.use(Fo({currentUserObservable:s.cloud.currentUser,db:no(s)})),s.use((v=no(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 u=e.trans;if(u.disableChangeTracking)return n.mutate(e);const d=null!==(s=null===(r=u.currentUser)||void 0===r?void 0:r.userId)&&void 0!==s?s: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=d),t.realmId||(t.realmId=d);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(Lo(no(s)))}Jl.version="4.4.3",e.Cloud=Jl;const ql=new Map;function Gl(e){return e.startsWith("dexie-cloud:")&&e.split(":")[1]}const Yl=new Map;function Ql(t,n){let s=Yl.get(t+"/"+n);return s||(s=function t(n,s){return r(this,void 0,void 0,function*(){var r;let i=ql.get(n);if(!i){const r=new e(n,{addons:[Jl]});if(i=no(r),i.cloud.isServiceWorkerDB=!0,r.on("versionchange",o),yield i.dx.open(),ql.get(n))return i.close(),yield t(n,s);ql.set(n,i)}if((null===(r=i.cloud.options)||void 0===r?void 0:r.databaseUrl)&&i.cloud.schema)try{yield fc(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),ql.get(i.name)===i&&ql.delete(i.name),i.dx.close(),!1}})}(t,n).then(()=>{Yl.delete(t+"/"+n)}).catch(e=>(Yl.delete(t+"/"+n),Promise.reject(e))),Yl.set(t+"/"+n,s)),s}Eo||(self.addEventListener("sync",e=>{const t=Gl(e.tag);t&&e.waitUntil(Ql(t,"push"))}),self.addEventListener("periodicsync",e=>{const t=Gl(e.tag);t&&e.waitUntil(Ql(t,"pull"))}),self.addEventListener("message",e=>{if("dexie-cloud-sync"===e.data.type){const{dbName:t}=e.data,n=(s=1)=>Ql(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
|