dexie-cloud-addon 4.2.4 → 4.3.0

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.
Files changed (35) hide show
  1. package/TODO-SOCIALAUTH.md +545 -0
  2. package/dexie-cloud-import.json +2 -1
  3. package/dist/modern/DexieCloudAPI.d.ts +4 -0
  4. package/dist/modern/DexieCloudOptions.d.ts +20 -0
  5. package/dist/modern/authentication/exchangeOAuthCode.d.ts +23 -0
  6. package/dist/modern/authentication/fetchAuthProviders.d.ts +14 -0
  7. package/dist/modern/authentication/handleOAuthCallback.d.ts +57 -0
  8. package/dist/modern/authentication/interactWithUser.d.ts +19 -0
  9. package/dist/modern/authentication/oauthLogin.d.ts +37 -0
  10. package/dist/modern/default-ui/AuthProviderButton.d.ts +21 -0
  11. package/dist/modern/default-ui/LoginDialog.d.ts +5 -2
  12. package/dist/modern/default-ui/ProviderSelectionDialog.d.ts +7 -0
  13. package/dist/modern/dexie-cloud-addon.js +719 -169
  14. package/dist/modern/dexie-cloud-addon.js.map +1 -1
  15. package/dist/modern/dexie-cloud-addon.min.js +1 -1
  16. package/dist/modern/dexie-cloud-addon.min.js.gz +0 -0
  17. package/dist/modern/dexie-cloud-addon.min.js.map +1 -1
  18. package/dist/modern/errors/OAuthError.d.ts +10 -0
  19. package/dist/modern/service-worker.js +720 -170
  20. package/dist/modern/service-worker.js.map +1 -1
  21. package/dist/modern/service-worker.min.js +1 -1
  22. package/dist/modern/service-worker.min.js.map +1 -1
  23. package/dist/modern/types/DXCUserInteraction.d.ts +24 -1
  24. package/dist/umd/dexie-cloud-addon.js +2181 -2444
  25. package/dist/umd/dexie-cloud-addon.js.gz +0 -0
  26. package/dist/umd/dexie-cloud-addon.js.map +1 -1
  27. package/dist/umd/dexie-cloud-addon.min.js +1 -1
  28. package/dist/umd/dexie-cloud-addon.min.js.gz +0 -0
  29. package/dist/umd/dexie-cloud-addon.min.js.map +1 -1
  30. package/dist/umd/service-worker.js +2029 -2292
  31. package/dist/umd/service-worker.js.map +1 -1
  32. package/dist/umd/service-worker.min.js +1 -1
  33. package/dist/umd/service-worker.min.js.map +1 -1
  34. package/oauth_flow.md +299 -0
  35. package/package.json +10 -7
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("dexie"),require("rxjs"),require("rxjs/operators")):"function"==typeof define&&define.amd?define(["dexie","rxjs","rxjs/operators"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Dexie,e.rxjs,e.rxjs.operators)}(this,(function(e,t,n){"use strict";function r(e,t,n,r){return new(n||(n=Promise))((function(s,i){function o(e){try{c(r.next(e))}catch(e){i(e)}}function l(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,l)}c((r=r.apply(e,t||[])).next())}))}function s(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function i(e){return this instanceof i?(this.v=e,this):new i(e)}function o(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,s=n.apply(e,t||[]),o=[];return r={},l("next"),l("throw"),l("return"),r[Symbol.asyncIterator]=function(){return this},r;function l(e){s[e]&&(r[e]=function(t){return new Promise((function(n,r){o.push([e,t,n,r])>1||c(e,t)}))})}function c(e,t){try{!function(e){e.value instanceof i?Promise.resolve(e.value.v).then(a,u):d(o[0][2],e)}(s[e](t))}catch(e){d(o[0][3],e)}}function a(e){c("next",e)}function u(e){c("throw",e)}function d(e,t){e(t),o.shift(),o.length&&c(o[0][0],o[0][1])}}function l(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=s(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise((function(r,s){(function(e,t,n,r){Promise.resolve(r).then((function(t){e({value:t,done:n})}),t)})(r,s,(t=e[n](t)).done,t.value)}))}}}const c={userId:"unauthorized",name:"Unauthorized",claims:{sub:"unauthorized"},lastLogin:new Date(0)};try{Object.freeze(c),Object.freeze(c.claims)}catch(e){}const a={},u="undefined"!=typeof self&&self.document&&"undefined"!=typeof navigator&&navigator.serviceWorker;u&&u.ready.then((e=>a.registration=e)),"undefined"!=typeof self&&"clients"in self&&!self.document&&addEventListener("message",(e=>{var t,n;(null===(n=null===(t=e.data)||void 0===t?void 0:t.type)||void 0===n?void 0:n.startsWith("sw-broadcast-"))&&[...self.clients.matchAll({includeUncontrolled:!0})].forEach((t=>{var n;return t.id!==(null===(n=e.source)||void 0===n?void 0:n.id)&&t.postMessage(e.data)}))}));class d{constructor(e){this.name=e}subscribe(e){if(!u)return()=>{};const t=t=>{var n;(null===(n=t.data)||void 0===n?void 0:n.type)===`sw-broadcast-${this.name}`&&e(t.data.message)};return u.addEventListener("message",t),()=>u.removeEventListener("message",t)}postMessage(e){var t;"object"==typeof self.clients?[...self.clients.matchAll({includeUncontrolled:!0})].forEach((t=>t.postMessage({type:`sw-broadcast-${this.name}`,message:e}))):a.registration&&(null===(t=a.registration.active)||void 0===t||t.postMessage({type:`sw-broadcast-${this.name}`,message:e}))}}const h=globalThis["lbc-events"]||(globalThis["lbc-events"]=new Map);class f extends t.Observable{constructor(e){const t="undefined"==typeof BroadcastChannel?new d(e):new BroadcastChannel(e);super((n=>{function r(e){n.next(e.detail)}function s(e){n.next(e.data)}let i;!function(e,t){h.has(e)?h.get(e).push(t):h.set(e,[t])}(`lbc-${e}`,r);try{t instanceof d?i=t.subscribe((e=>n.next(e))):t.addEventListener("message",s)}catch(e){}return()=>{!function(e,t){const n=h.get(e);if(n){const e=n.indexOf(t);-1!==e&&n.splice(e,1)}}(`lbc-${e}`,r),t instanceof d?i():t.removeEventListener("message",s)}})),this.name=e,this.bc=t}next(e){this.bc.postMessage(e);!function(e){const t=h.get(e.type);t&&t.forEach((t=>{try{t(e)}catch(e){}}))}(new CustomEvent(`lbc-${this.name}`,{detail:e}))}}let p=!1;function g(e,t){return r(this,void 0,void 0,(function*(){try{const n=yield navigator.serviceWorker.ready;if("push"===t&&n.sync&&(yield n.sync.register(`dexie-cloud:${e.name}`)),!n.active)throw new Error("Failed to trigger sync - there's no active service worker");return void n.active.postMessage({type:"dexie-cloud-sync",dbName:e.name,purpose:t})}catch(e){p||(p=!0)}}))}function y(e,t){e.cloud.usingServiceWorker?g(e,t):e.localSyncEvent.next({purpose:t})}const m="fromBase64"in Uint8Array,b="toBase64"in Uint8Array.prototype,v="undefined"!=typeof Buffer?e=>Buffer.from(e,"base64"):m?e=>Uint8Array.fromBase64(e):e=>{const t=atob(e),n=t.length,r=new Uint8Array(n);for(var s=0;s<n;s++)r[s]=t.charCodeAt(s);return r},w="undefined"!=typeof Buffer?e=>ArrayBuffer.isView(e)?Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("base64"):Buffer.from(e).toString("base64"):b?e=>(ArrayBuffer.isView(e)?e:new Uint8Array(e)).toBase64():e=>{const t=ArrayBuffer.isView(e)?e:new Uint8Array(e),n=[];for(let e=0,r=t.length;e<r;e+=4096){const r=t.subarray(e,e+4096);n.push(String.fromCharCode.apply(null,r))}return btoa(n.join(""))};function _(e){return r(this,arguments,void 0,(function*({realms:e,inviteRealms:t}){const n=JSON.stringify([...e.map((e=>({realmId:e,accepted:!0}))),...t.map((e=>({realmId:e,accepted:!1})))].sort(((e,t)=>e.realmId<t.realmId?-1:e.realmId>t.realmId?1:0))),r=(new TextEncoder).encode(n),s=yield crypto.subtle.digest("SHA-1",r);return w(s)}))}function k(e){return Object.entries(e.cloud.schema||{}).filter((([,{markedForSync:e}])=>e)).map((([t])=>e.tables.filter((({name:e})=>e===t))[0])).filter((e=>e))}function S(e){return`$${e}_mutations`}function E(e){var t;const n=null===(t=/^\$(.*)_mutations$/.exec(e))||void 0===t?void 0:t[1];if(!n)throw new Error(`Given mutationTable ${e} is not correct`);return n}const x=[].concat;function C(e){return x.apply([],e)}function I(e,t){return r(this,arguments,void 0,(function*(e,t,{since:n={},limit:s=1/0}={}){const i=yield Promise.all(e.map((e=>r(this,void 0,void 0,(function*(){const t=E(e.name),r=n[t];let i=r?e.where("rev").above(r):e;s<1/0&&(i=i.limit(s));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=new Set(Object.keys(e.changeSpecs[0])),r=""+e.keys[0],s=t.get(r);for(let t=s.length-1;t>=0;--t){const{txid:r,updateSpec:i}=s[t];if(r===e.txid)break;for(const e of Object.keys(i))n.delete(e)}return 0!==n.size})),e}(o);return o.map((e=>({table:t,mut:e})))}))))),o=C(i).sort(((e,t)=>e.mut.txid===t.mut.txid?e.mut.opNo-t.mut.opNo:e.mut.ts-t.mut.ts)),l=[];let c=null,a=null;for(const{table:e,mut:t}of o)c&&c.table===e&&a===t.txid?c.muts.push(t):(c={table:e,muts:[t]},a=t.txid,l.push(c));return l}))}function A(e){const t=new Uint8Array(e);if("undefined"!=typeof crypto)crypto.getRandomValues(t);else for(let n=0;n<e;n++)t[n]=Math.floor(256*Math.random());if("undefined"!=typeof Buffer&&Buffer.from)return Buffer.from(t).toString("base64");if("undefined"!=typeof btoa)return btoa(String.fromCharCode.apply(null,t));throw new Error("No btoa or Buffer available")}const D={}.hasOwnProperty;function O(e,t,n){if(e&&void 0!==t&&(!("isFrozen"in Object)||!Object.isFrozen(e)))if("string"!=typeof t&&"length"in t){!function(e){if(!e)throw new Error("Assertion Failed")}("string"!=typeof n&&"length"in n);for(var r=0,s=t.length;r<s;++r)O(e,t[r],n[r])}else{var i=t.indexOf(".");if(-1!==i){var o=t.substr(0,i),l=t.substr(i+1);if(""===l)void 0===n?Array.isArray(e)?isNaN(parseInt(o))||e.splice(parseInt(o),1):delete e[o]:e[o]=n;else{var c=e[o];c&&function(e,t){return D.call(e,t)}(e,o)||(c=e[o]={}),O(c,l,n)}}else void 0===n?Array.isArray(e)&&!isNaN(parseInt(t))?e.splice(t,1):delete e[t]:e[t]=n}}const T="undefined"!=typeof self&&"undefined"!=typeof crypto?(e,t=crypto.getRandomValues.bind(crypto))=>{const n=new Uint8Array(e);return t(n),self.btoa(String.fromCharCode.apply(null,n))}:"undefined"!=typeof Buffer?(e,t=U)=>{const n=Buffer.alloc(e);return t(n),n.toString("base64")}:()=>{throw new Error("No implementation of randomString was found")};function U(e){for(let t=0;t<e.length;++t)e[t]=Math.floor(256*Math.random())}function j(e){return"string"==typeof e||!!(Array.isArray(e)&&e.some((e=>j(e)))&&e.every(L))}function L(e){return"string"==typeof e||"number"==typeof e||Array.isArray(e)&&e.every(L)}function P(e,t,n){const r=e[t]||(e[t]={}),s=n.keys.map((e=>"string"==typeof e?e:JSON.stringify(e)));switch(n.type){case"insert":case"upsert":s.forEach(((e,t)=>{r[e]={type:"ups",val:n.values[t]}}));break;case"update":case"modify":s.forEach(((e,t)=>{const s="update"===n.type?n.changeSpecs[t]:n.changeSpec,i=r[e];if(i)switch(i.type){case"ups":for(const[e,t]of Object.entries(s))O(i.val,e,t);break;case"del":break;case"upd":Object.assign(i.mod,s)}else r[e]={type:"upd",mod:s}}));break;case"delete":s.forEach((e=>{r[e]={type:"del"}}))}return e}function R(e,t){for(const{table:n,muts:r}of t)for(const t of r)P(e,n,t)}const M=Math.floor,N=Math.abs,$=(e,t)=>e>t?e:t,B=128,F=127,W=Number.MAX_SAFE_INTEGER,V=Number.isInteger||(e=>"number"==typeof e&&isFinite(e)&&M(e)===e),K=Array.isArray,H="undefined"!=typeof TextEncoder?new TextEncoder:null,z=H?e=>H.encode(e):e=>{const t=unescape(encodeURIComponent(e)),n=t.length,r=new Uint8Array(n);for(let e=0;e<n;e++)r[e]=t.codePointAt(e);return r};let J="undefined"==typeof TextDecoder?null:new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});J&&1===J.decode(new Uint8Array).length&&(J=null);let q=class{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}};const Y=(e,t)=>{const n=e.cbuf.length;e.cpos===n&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(2*n),e.cpos=0),e.cbuf[e.cpos++]=t},G=(e,t)=>{for(;t>F;)Y(e,B|F&t),t=M(t/128);Y(e,F&t)},Q=new Uint8Array(3e4),X=Q.length/3,Z=H&&H.encodeInto?(e,t)=>{if(t.length<X){const n=H.encodeInto(t,Q).written||0;G(e,n);for(let t=0;t<n;t++)Y(e,Q[t])}else ee(e,z(t))}:(e,t)=>{const n=unescape(encodeURIComponent(t)),r=n.length;G(e,r);for(let t=0;t<r;t++)Y(e,n.codePointAt(t))},ee=(e,t)=>{G(e,t.byteLength),((e,t)=>{const n=e.cbuf.length,r=e.cpos,s=((e,t)=>e<t?e:t)(n-r,t.length),i=t.length-s;e.cbuf.set(t.subarray(0,s),r),e.cpos+=s,i>0&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array($(2*n,i)),e.cbuf.set(t.subarray(s)),e.cpos=i)})(e,t)},te=(e,t)=>{((e,t)=>{const n=e.cbuf.length;n-e.cpos<t&&(e.bufs.push(new Uint8Array(e.cbuf.buffer,0,e.cpos)),e.cbuf=new Uint8Array(2*$(n,t)),e.cpos=0)})(e,t);const n=new DataView(e.cbuf.buffer,e.cpos,t);return e.cpos+=t,n},ne=(e,t)=>te(e,8).setBigUint64(0,t,!1),re=new DataView(new ArrayBuffer(4)),se=(e,t)=>{switch(typeof t){case"string":Y(e,119),Z(e,t);break;case"number":V(t)&&N(t)<=2147483647?(Y(e,125),((e,t)=>{const n=(e=>0!==e?e<0:1/e<0)(t);for(n&&(t=-t),Y(e,(t>63?B:0)|(n?64:0)|63&t),t=M(t/64);t>0;)Y(e,(t>F?B:0)|F&t),t=M(t/128)})(e,t)):(n=t,re.setFloat32(0,n),re.getFloat32(0)===n?(Y(e,124),((e,t)=>{te(e,4).setFloat32(0,t,!1)})(e,t)):(Y(e,123),((e,t)=>{te(e,8).setFloat64(0,t,!1)})(e,t)));break;case"bigint":Y(e,122),((e,t)=>{te(e,8).setBigInt64(0,t,!1)})(e,t);break;case"object":if(null===t)Y(e,126);else if(K(t)){Y(e,117),G(e,t.length);for(let n=0;n<t.length;n++)se(e,t[n])}else if(t instanceof Uint8Array)Y(e,116),ee(e,t);else{Y(e,118);const n=Object.keys(t);G(e,n.length);for(let r=0;r<n.length;r++){const s=n[r];Z(e,s),se(e,t[s])}}break;case"boolean":Y(e,t?120:121);break;default:Y(e,127)}var n};function ie(e){const t=new q;switch(Z(t,e.type),"table"in e&&Z(t,e.table),"prop"in e&&Z(t,e.prop),e.type){case"u-ack":case"u-reject":ne(t,BigInt(e.i));break;case"outdated-server-rev":break;case"y-complete-sync-done":Z(t,e.yServerRev);break;default:switch(se(t,e.k),e.type){case"aware":ee(t,e.u);break;case"doc-open":se(t,e.serverRev),se(t,e.sv);break;case"doc-close":break;case"sv":ee(t,e.sv);break;case"u-c":ee(t,e.u),ne(t,BigInt(e.i));break;case"u-s":ee(t,e.u),Z(t,e.r||"")}}return(e=>{const t=new Uint8Array((e=>{let t=e.cpos;for(let n=0;n<e.bufs.length;n++)t+=e.bufs[n].length;return t})(e));let n=0;for(let r=0;r<e.bufs.length;r++){const s=e.bufs[r];t.set(s,n),n+=s.length}return t.set(new Uint8Array(e.cbuf.buffer,0,e.cpos),n),t})(t)}const oe=e=>new Error(e),le=oe("Unexpected end of array"),ce=oe("Integer out of Range");let ae=class{constructor(e){this.arr=e,this.pos=0}};const ue=e=>e.pos!==e.arr.length,de=e=>((e,t)=>{const n=new Uint8Array(e.arr.buffer,e.pos+e.arr.byteOffset,t);return e.pos+=t,n})(e,fe(e)),he=e=>e.arr[e.pos++],fe=e=>{let t=0,n=1;const r=e.arr.length;for(;e.pos<r;){const r=e.arr[e.pos++];if(t+=(r&F)*n,n*=128,r<B)return t;if(t>W)throw ce}throw le},pe=J?e=>J.decode(de(e)):e=>{let t=fe(e);if(0===t)return"";{let n=String.fromCodePoint(he(e));if(--t<100)for(;t--;)n+=String.fromCodePoint(he(e));else for(;t>0;){const r=t<1e4?t:1e4,s=e.arr.subarray(e.pos,e.pos+r);e.pos+=r,n+=String.fromCodePoint.apply(null,s),t-=r}return decodeURIComponent(escape(n))}},ge=(e,t)=>{const n=new DataView(e.arr.buffer,e.arr.byteOffset+e.pos,t);return e.pos+=t,n},ye=e=>ge(e,8).getBigUint64(0,!1),me=[e=>{},e=>null,e=>{let t=e.arr[e.pos++],n=63&t,r=64;const s=(64&t)>0?-1:1;if(0==(t&B))return s*n;const i=e.arr.length;for(;e.pos<i;){if(t=e.arr[e.pos++],n+=(t&F)*r,r*=128,t<B)return s*n;if(n>W)throw ce}throw le},e=>ge(e,4).getFloat32(0,!1),e=>ge(e,8).getFloat64(0,!1),e=>ge(e,8).getBigInt64(0,!1),e=>!1,e=>!0,pe,e=>{const t=fe(e),n={};for(let r=0;r<t;r++){n[pe(e)]=be(e)}return n},e=>{const t=fe(e),n=[];for(let r=0;r<t;r++)n.push(be(e));return n},de],be=e=>me[127-he(e)](e);function ve(e){return o(this,arguments,(function*(){var t,n,r,s;let o=0,c=new Uint8Array(4),a=0,u=[],d=0;try{for(var h,f=!0,p=l(e);!(t=(h=yield i(p.next())).done);f=!0){s=h.value,f=!1;const e=s,t=new DataView(e.buffer,e.byteOffset,e.byteLength);let n=0;for(;n<e.byteLength;)switch(o){case 0:if(n+4>e.byteLength){for(const t of e.slice(n)){if(4===a)break;c[a++]=t,++n}if(a<4)break}else if(a>0&&a<4)for(const t of e.slice(n,n+4-a))c[a++]=t,++n;case 1:d=4===a?new DataView(c.buffer,0,4).getUint32(0,!1):t.getUint32(n,!1),a?a=0:n+=4;case 2:if(n>=e.byteLength){o=2;break}if(n+d>e.byteLength)u.push(e.slice(n)),d-=e.byteLength-n,o=2,n=e.byteLength;else{if(u.length>0){const t=new Uint8Array(u.reduce(((e,t)=>e+t.byteLength),d));let r=0;for(const e of u)t.set(e,r),r+=e.byteLength;t.set(e.slice(n,n+d),r),u=[],yield yield i(t)}else yield yield i(e.slice(n,n+d));n+=d,o=0}}}}catch(e){n={error:e}}finally{try{f||t||!(r=p.return)||(yield i(r.call(p)))}finally{if(n)throw n.error}}}))}class we extends Error{constructor({title:e,message:t,messageCode:n,messageParams:r}){super(t),this.name="TokenErrorResponseError",this.title=e,this.messageCode=n,this.messageParams=r}}function _e(t,n){return new Promise(((r,s)=>{const i=Object.assign(Object.assign({submitLabel:"Submit",cancelLabel:"Cancel"},n),{onSubmit:e=>{t.next(void 0),r(e)},onCancel:()=>{t.next(void 0),s(new e.AbortError("User cancelled"))}});t.next(i)}))}function ke(e,t,...n){return _e(e,{type:"message-alert",title:t,alerts:n,fields:{},submitLabel:"OK",cancelLabel:null})}function Se(e,t,n){return r(this,void 0,void 0,(function*(){let r=n||"";for(;!r||!/^[\w-+.]+@([\w-]+\.)+[\w-]{2,10}(\sas\s[\w-+.]+@([\w-]+\.)+[\w-]{2,10})?$/.test(r);)r=(yield _e(e,{type:"email",title:t,alerts:r?[{type:"error",messageCode:"INVALID_EMAIL",message:"Please enter a valid email address",messageParams:{}}]:[],fields:{email:{type:"email",placeholder:"you@somedomain.com"}}})).email;return r}))}function Ee(e,t,n){return r(this,void 0,void 0,(function*(){const r=[{type:"info",messageCode:"OTP_SENT",message:"A One-Time password has been sent to {email}",messageParams:{email:t}}];n&&r.push(n);const{otp:s}=yield _e(e,{type:"otp",title:"Enter OTP",alerts:r,fields:{otp:{type:"otp",label:"OTP",placeholder:"Paste OTP here"}}});return s}))}function xe(e){return r(this,void 0,void 0,(function*(){var t,n,r;const s=yield e.getCurrentUser(),{accessToken:i,accessTokenExpiration:o,refreshToken:l,refreshTokenExpiration:c,claims:a}=s;if(!i)return null;if((null!==(t=null==o?void 0:o.getTime())&&void 0!==t?t:1/0)>Date.now()&&"ok"===((null===(n=s.license)||void 0===n?void 0:n.status)||"ok"))return s;if(!l)throw new Error("Refresh token missing");if((null!==(r=null==c?void 0:c.getTime())&&void 0!==r?r:1/0)<=Date.now())throw new Error("Refresh token has expired");const u=yield Ie(e.cloud.options.databaseUrl,s);return yield e.table("$logins").update(a.sub,{accessToken:u.accessToken,accessTokenExpiration:u.accessTokenExpiration,claims:u.claims,license:u.license,data:u.data}),u}))}function Ce(t,n,s,i,o){return r(this,void 0,void 0,(function*(){return n.accessToken&&n.accessTokenExpiration.getTime()>Date.now()?n:n.refreshToken&&(!n.refreshTokenExpiration||n.refreshTokenExpiration.getTime()>Date.now())?yield Ie(t,n):yield function(t,n,s,i){return r(this,void 0,void 0,(function*(){if(!crypto.subtle)throw"undefined"!=typeof location&&"http:"===location.protocol?new Error("Dexie Cloud Addon needs to use WebCrypto, but your browser has disabled it due to being served from an insecure location. Please serve it from https or http://localhost:<port> (See https://stackoverflow.com/questions/46670556/how-to-enable-crypto-subtle-for-unsecure-origins-in-chrome/46671627#46671627)"):new Error("This browser does not support WebCrypto.");const{privateKey:r,publicKey:o}=yield crypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:2048,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!1,["sign","verify"]);if(!r||!o)throw new Error("Could not generate RSA keypair");t.nonExportablePrivateKey=r;const l=function(e){const t=w(e);return function(e){let t="-----BEGIN PUBLIC KEY-----\n";for(;e.length>0;)t+=e.substring(0,64)+"\n",e=e.substring(64);return t+="-----END PUBLIC KEY-----",t}(t)}(yield crypto.subtle.exportKey("spki",o));t.publicKey=o;try{const e=yield n({public_key:l,hints:i});if("error"===e.type)throw new we(e);if("tokens"!==e.type)throw new Error(`Unexpected response type from token endpoint: ${e.type}`);return t.accessToken=e.accessToken,t.accessTokenExpiration=new Date(e.accessTokenExpiration),t.refreshToken=e.refreshToken,e.refreshTokenExpiration&&(t.refreshTokenExpiration=new Date(e.refreshTokenExpiration)),t.userId=e.claims.sub,t.email=e.claims.email,t.name=e.claims.name,t.claims=e.claims,t.license={type:e.userType,status:e.claims.license||"ok"},t.data=e.data,null!=e.evalDaysLeft&&(t.license.evalDaysLeft=e.evalDaysLeft),null!=e.userValidUntil&&(t.license.validUntil=new Date(e.userValidUntil)),e.alerts&&e.alerts.length>0&&(yield _e(s,{type:"message-alert",title:"Authentication Alert",fields:{},alerts:e.alerts})),t}catch(t){if(t instanceof we)throw yield ke(s,t.title,{type:"error",messageCode:t.messageCode,message:t.message,messageParams:{}}),t;let n="We're having a problem authenticating right now.";if(t instanceof TypeError){n=void 0!==typeof navigator&&!navigator.onLine?"You seem to be offline. Please connect to the internet and try again.":e.debug||"undefined"!=typeof location&&("localhost"===location.hostname||"127.0.0.1"===location.hostname)?`Could not connect to server. Please verify that your origin '${location.origin}' is whitelisted using \`npx dexie-cloud whitelist\``:"Could not connect to server. Please verify the connection.",yield ke(s,"Authentication Failed",{type:"error",messageCode:"GENERIC_ERROR",message:n,messageParams:{}}).catch((()=>{}))}throw t}}))}(n,s,i,o)}))}function Ie(e,t){return r(this,void 0,void 0,(function*(){if(!t.refreshToken)throw new Error("Cannot refresh token - refresh token is missing.");if(!t.nonExportablePrivateKey)throw new Error("login.nonExportablePrivateKey is missing - cannot sign refresh token without a private key.");const n=Date.now(),r="RSASSA-PKCS1-v1_5",s=(new TextEncoder).encode(t.refreshToken+n),i=yield crypto.subtle.sign(r,t.nonExportablePrivateKey,s),o=w(i),l={grant_type:"refresh_token",refresh_token:t.refreshToken,scopes:["ACCESS_DB"],signature:o,signing_algorithm:r,time_stamp:n},c=yield fetch(`${e}/token`,{body:JSON.stringify(l),method:"post",headers:{"Content-Type":"application/json"},mode:"cors"});if(200!==c.status)throw new Error(`RefreshToken: Status ${c.status} from ${e}/token`);const a=yield c.json();if("error"===a.type)throw new we(a);return t.accessToken=a.accessToken,t.accessTokenExpiration=a.accessTokenExpiration?new Date(a.accessTokenExpiration):void 0,t.claims=a.claims,t.license={type:a.userType,status:a.claims.license||"ok"},null!=a.evalDaysLeft&&(t.license.evalDaysLeft=a.evalDaysLeft),null!=a.userValidUntil&&(t.license.validUntil=new Date(a.userValidUntil)),a.data&&(t.data=a.data),t}))}const{toString:Ae}={};const De={replace:function(e){const t=Object.keys(e);let n=null;for(let e=0,r=t.length;e<r;++e)"$"===t[e][0]&&(n=n||[],n.push(t[e]));if(!n)return e;const r={...e};for(const e of n)delete r[e];for(const t of n)r["$"+t]=e[t];return r}};function Oe(...e){const t=e.reduce(((e,t)=>({...e,...t})),e.reduce(((e,t)=>({...t,...e})),{})),n=new WeakMap;return{stringify(e,r,s){const i=JSON.stringify(e,(function(e){const s=this[e],i=function(e){const r=typeof e;switch(typeof e){case"object":case"function":{if(null===e)return null;const r=Object.getPrototypeOf(e);if(!r)return De;let i=n.get(r);if(void 0!==i)return i;const o=(s=e,Ae.call(s).slice(8,-1)),l=Object.entries(t).find((([t,n])=>{var r,s;return null!==(s=null===(r=null==n?void 0:n.test)||void 0===r?void 0:r.call(n,e,o))&&void 0!==s?s:t===o}));return i=null==l?void 0:l[1],i||(i=Array.isArray(e)?null:"function"==typeof e?t.function||null:De),n.set(r,i),i}default:return t[r]}var s}(s);return i?i.replace(s,r,t):s}),s);return i},parse(e,n){const r=[];return JSON.parse(e,(function(e,s){const i=null==s?void 0:s.$t;if(i){const e=t[i];s=e?e.revive(s,n,t):s}let o=r[r.length-1];if(o&&o[0]===s){s={...s};for(const e of o[1])delete s[e];for(const[e,t]of Object.entries(o[2]))s[e]=t;r.pop()}if(void 0===s||"$"===e[0]&&"$t"!==e){let t,n;o=r[r.length-1],o&&o[0]===this?(t=o[1],n=o[2]):r.push([this,t=[],n={}]),"$"===e[0]&&"$t"!==e?(t.push(e),n[e.substr(1)]=s):n[e]=void 0}return s}))}}}const Te={Blob:{test:(e,t)=>"Blob"===t,replace:(e,t)=>{const n=t.length;return t.push(e),{$t:"Blob",mimeType:e.type,i:n}},revive:({i:e,mimeType:t},n)=>new Blob([n[e]],{type:t})}};var Ue={number:{replace:e=>{switch(!0){case isNaN(e):return{$t:"number",v:"NaN"};case e===1/0:return{$t:"number",v:"Infinity"};case e===-1/0:return{$t:"number",v:"-Infinity"};default:return e}},revive:({v:e})=>Number(e)}};const je={bigint:{replace:e=>({$t:"bigint",v:""+e}),revive:e=>BigInt(e.v)}};var Le={Date:{replace:e=>({$t:"Date",v:isNaN(e.getTime())?"NaN":e.toISOString()}),revive:({v:e})=>new Date("NaN"===e?NaN:Date.parse(e))}},Pe={Set:{replace:e=>({$t:"Set",v:Array.from(e.entries())}),revive:({v:e})=>new Set(e)}},Re={Map:{replace:e=>({$t:"Map",v:Array.from(e.entries())}),revive:({v:e})=>new Map(e)}};const Me="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof global?global:void 0;var Ne=["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","DataView","BigInt64Array","BigUint64Array"].reduce(((e,t)=>({...e,[t]:{replace:(e,n,r)=>({$t:t,v:r.ArrayBuffer.replace(0===e.byteOffset&&e.byteLength===e.buffer.byteLength?e.buffer:e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength),n,r).v}),revive:({v:e},n,r)=>{const s=Me[t];return s&&new s(r.ArrayBuffer.revive({v:e},n,r))}}})),{});function $e(e){return function(e){for(var t="",n=0,r=e.length;n<r;n++)t+=We[e[n]];return t}(w(e))}function Be(e){return v(function(e){if("string"!=typeof e)throw new Error("invalid decoder input: "+e);for(var t="",n=0,r=e.length;n<r;n++)t+=Fe[e[n]];return t}(e))}const Fe={"-":"=",0:"A",1:"B",2:"C",3:"D",4:"E",5:"F",6:"G",7:"H",8:"I",9:"J",A:"K",B:"L",C:"M",D:"N",E:"O",F:"P",G:"Q",H:"R",I:"S",J:"T",K:"U",L:"V",M:"W",N:"X",O:"Y",P:"Z",Q:"a",R:"b",S:"c",T:"d",U:"e",V:"f",W:"g",X:"h",Y:"i",Z:"j",_:"k",a:"l",b:"m",c:"n",d:"o",e:"p",f:"q",g:"r",h:"s",i:"t",j:"u",k:"v",l:"w",m:"x",n:"y",o:"z",p:"0",q:"1",r:"2",s:"3",t:"4",u:"5",v:"6",w:"7",x:"8",y:"9",z:"+","|":"/"},We={};for(const e of Object.keys(Fe))We[Fe[e]]=e;var Ve={ArrayBuffer:{replace:e=>({$t:"ArrayBuffer",v:$e(e)}),revive:({v:e})=>{const t=Be(e);return t.buffer.byteLength===t.byteLength?t.buffer:t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}}};class Ke{constructor(e,t){this.buf=e,this.type=t}}function He(e){const t=new XMLHttpRequest;if(t.overrideMimeType("text/plain; charset=x-user-defined"),t.open("GET",URL.createObjectURL(e),!1),t.send(),200!==t.status&&0!==t.status)throw new Error("Bad Blob access: "+t.status);return t.responseText}function ze(e){const t=new Uint8Array(e.length);for(let n=0;n<e.length;++n)t[n]=e.charCodeAt(n);return t.buffer}var Je={Blob:{test:(e,t)=>"Blob"===t||e instanceof Ke,replace:e=>({$t:"Blob",v:w(e instanceof Ke?e.buf:ze(He(e))),type:e.type}),revive:({type:e,v:t})=>{const n=v(t);return void 0!==typeof Blob?new Blob([n]):new Ke(n.buffer,e)}}};const qe={...Ue,...je,...Le,...Pe,...Re,...Ne,...Ve,...Je};function Ye(e){return new Promise(((t,n)=>{const r=new FileReader;r.onabort=e=>n(new Error("file read aborted")),r.onerror=e=>n(e.target.error),r.onload=e=>t(e.target.result),r.readAsArrayBuffer(e)}))}var Ge={undefined:{replace:()=>({$t:"undefined"}),revive:()=>{}}},Qe={File:{test:(e,t)=>"File"===t,replace:e=>({$t:"File",v:w(ze(He(e))),type:e.type,name:e.name,lastModified:new Date(e.lastModified).toISOString()}),revive:({type:e,v:t,name:n,lastModified:r})=>{const s=v(t);return new File([s],n,{type:e,lastModified:new Date(r).getTime()})}}};const Xe="function"==typeof BigInt&&"bigint"==typeof BigInt(0);class Ze{toString(){return this.v}constructor(e){this.v=e}}const et=Xe?{}:{bigint:{test:e=>e instanceof Ze,replace:e=>Object.assign({$t:"bigint"},e),revive:({v:e})=>new Ze(e)}},tt=Object.assign(Object.assign(Object.assign(Object.assign({},Ge),et),Qe),{PropModification:{test:t=>t instanceof e.PropModification,replace:e=>Object.assign({$t:"PropModification"},e["@@propmod"]),revive:t=>{var n=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var s=0;for(r=Object.getOwnPropertySymbols(e);s<r.length;s++)t.indexOf(r[s])<0&&Object.prototype.propertyIsEnumerable.call(e,r[s])&&(n[r[s]]=e[r[s]])}return n}(t,["$t"]);return new e.PropModification(n)}}}),nt=Oe(qe,tt),rt=function(...e){const t=Oe(qe,Te,...e);return{toBinary(e){const[t,n]=this.stringify(e),r=new ArrayBuffer(4);return new DataView(r).setUint32(0,t.size),new Blob([r,t,n])},stringify(e){const n=[],r=t.stringify(e,n),s=new Blob(n.map((e=>{const t=new ArrayBuffer(4);return new DataView(t).setUint32(0,"byteLength"in e?e.byteLength:e.size),new Blob([t,e])})));return[s,r]},async parse(e,n){let r=0;const s=[],i=await Ye(n),o=new DataView(i);for(;r<i.byteLength;){const e=o.getUint32(r);r+=4;const t=i.slice(r,r+e);r+=e,s.push(t)}return t.parse(e,s)},async fromBinary(e){const t=new DataView(await Ye(e.slice(0,4))).getUint32(0),n=e.slice(4,t+4),r=await function(e){return new Promise(((t,n)=>{const r=new FileReader;r.onabort=e=>n(new Error("file read aborted")),r.onerror=e=>n(e.target.error),r.onload=e=>t(e.target.result),r.readAsText(e)}))}(e.slice(t+4));return await this.parse(r,n)}}}(tt);class st extends Error{constructor(e,t){super(t||`${e.status} ${e.statusText}`),this.httpStatus=e.status}get name(){return"HttpError"}}function it(t,n,r){const s=[];for(let i of r){const{table:r,muts:o}=i,l=t.tables.find((e=>e.name===r));if(!l)throw new Error(`Internal error: table ${r} not found in DBCore schema`);const{primaryKey:c}=l;let a=i;o.forEach(((t,r)=>{const s=!c.outbound&&("upsert"===t.type||"insert"===t.type);t.keys.forEach(((t,o)=>{if(Array.isArray(t)){a===i&&(a=ot(i,s));const e=a.muts[r],n=JSON.stringify(t);e.keys[o]=n}else if("#"===t[0]){a===i&&(a=ot(i,s));const l=a.muts[r];if(!n.isLoggedIn)throw new Error("Internal error: Cannot sync private IDs before authenticated");const u=`${t}:${n.userId}`;l.keys[o]=u,s&&e.setByKeyPath(l.values[o],c.keyPath,u)}}))})),s.push(a)}return s}function ot(e,t){return Object.assign(Object.assign({},e),{muts:t?e.muts.map((e=>"insert"!==e.type&&"upsert"!==e.type||!e.values?Object.assign(Object.assign({},e),{keys:e.keys.slice()}):Object.assign(Object.assign({},e),{keys:e.keys.slice(),values:e.values.slice()}))):e.muts.map((e=>Object.assign(Object.assign({},e),{keys:e.keys.slice()})))})}let lt=new WeakMap;function ct(e){return r(this,void 0,void 0,(function*(){var t,n;const r=(null!==(n=null===(t=lt.get(e))||void 0===t?void 0:t.getTime())&&void 0!==n?n:0)-Date.now();r>0&&(yield new Promise((e=>setTimeout(e,r))))}))}function at(e,t,n,s,i,o,l,c,a){return r(this,void 0,void 0,(function*(){const r={Accept:"application/json, application/x-bison, application/x-bison-stream","Content-Type":"application/tson"},u=yield xe(i),d=null==u?void 0:u.accessToken;d&&(r.Authorization=`Bearer ${d}`);const h={v:2,dbID:null==n?void 0:n.remoteDbId,clientIdentity:c,schema:l||{},lastPull:n?{serverRevision:n.serverRevision,yServerRevision:n.yServerRevision,realms:n.realms,inviteRealms:n.inviteRealms}:void 0,baseRevs:s,changes:it(i.dx.core.schema,a,e),y:t,dxcv:i.cloud.version};i.syncStateChangedEvent.next({phase:"pushing"});const f=nt.stringify(h),p=yield fetch(`${o}/sync`,{method:"post",headers:r,credentials:"include",body:f});if(i.syncStateChangedEvent.next({phase:"pulling"}),function(e,t){const n=t.headers.get("Ratelimit-Limit"),r=t.headers.get("Ratelimit-Remaining"),s=t.headers.get("Ratelimit-Reset");if(n&&r&&s){const t=Number(n),i=Math.max(0,Number(r)),o=Number(s);if(i<t/2){const t=Math.ceil(o/(i+1));lt.set(e,new Date(Date.now()+1e3*t))}else lt.delete(e)}}(i,p),!p.ok)throw new st(p);if("application/x-bison"===p.headers.get("content-type"))return rt.fromBinary(yield p.blob());{const e=yield p.text();return nt.parse(e)}}))}function ut(t){if(null==t?void 0:t.cancelled)throw new e.AbortError("Operation was cancelled")}let dt=!1;function ht(e,t,n,s){return r(this,void 0,void 0,(function*(){yield e.$baseRevs.bulkPut(Object.keys(t).filter((e=>t[e].markedForSync)).map((e=>({tableName:e,clientRev:(n[e]||0)+1,serverRev:s})))),yield e.$baseRevs.where("tableName").noneOf(Object.keys(t).filter((e=>t[e].markedForSync))).delete()}))}function ft(e,t={}){for(const{table:n,muts:r}of e){const e=r.length>0?r[r.length-1].rev:null;t[n]=e||t[n]||0}return t}function pt(t,n,s){return r(this,void 0,void 0,(function*(){const r=yield t.bulkGet(n),i=[],o=[];n.forEach(((n,l)=>{const c=r[l];if(c){for(const[r,i]of Object.entries(s[l]))if(r===t.schema.primKey.keyPath){if(0!==e.cmp(i,n))throw new Error("Cannot change primary key")}else e.setByKeyPath(c,r,i);i.push(n),o.push(c)}})),yield null==t.schema.primKey.keyPath?t.bulkPut(o,i):t.bulkPut(o)}))}function gt(t,n){return r(this,void 0,void 0,(function*(){for(const{table:r,muts:s}of t){if(!n.dx._allTables[r])continue;const t=n.table(r),{primaryKey:i}=t.core.schema,o=e=>{switch(e[0]){case"[":if(e.endsWith("]"))try{return JSON.parse(e)}catch(e){}return e;case"#":return e.endsWith(":"+n.cloud.currentUserId)?e.substr(0,e.length-n.cloud.currentUserId.length-1):e;default:return e}};for(const n of s){const r=n.keys.map(o);switch(n.type){case"insert":i.outbound?yield t.bulkAdd(n.values,r):(r.forEach(((t,r)=>{e.setByKeyPath(n.values[r],i.keyPath,t)})),yield t.bulkAdd(n.values));break;case"upsert":i.outbound?yield t.bulkPut(n.values,r):(r.forEach(((t,r)=>{e.setByKeyPath(n.values[r],i.keyPath,t)})),yield t.bulkPut(n.values));break;case"modify":1===r.length?yield t.update(r[0],n.changeSpec):yield t.where(":id").anyOf(r).modify(n.changeSpec);break;case"update":yield pt(t,r,n.changeSpecs);break;case"delete":yield t.bulkDelete(r)}}}}))}"undefined"!=typeof self&&"undefined"!=typeof navigator&&(dt=navigator.onLine,self.addEventListener("online",(()=>dt=!0)),self.addEventListener("offline",(()=>dt=!1)));const yt="dexie-cloud-syncer";function mt(e,t){return e.where("i").between(t,1/0,!0).toArray()}const bt=()=>new Map,vt=e=>{const t=bt();return e.forEach(((e,n)=>{t.set(n,e)})),t},wt=(e,t,n)=>{let r=e.get(t);return void 0===r&&e.set(t,r=n()),r},_t=()=>new Set,kt=e=>e[e.length-1],St=(e,t)=>{for(let n=0;n<t.length;n++)e.push(t[n])},Et=Array.from,xt=Array.isArray;class Ct{constructor(){this._observers=bt()}on(e,t){return wt(this._observers,e,_t).add(t),t}once(e,t){const n=(...r)=>{this.off(e,n),t(...r)};this.on(e,n)}off(e,t){const n=this._observers.get(e);void 0!==n&&(n.delete(t),0===n.size&&this._observers.delete(e))}emit(e,t){return Et((this._observers.get(e)||bt()).values()).forEach((e=>e(...t)))}destroy(){this._observers=bt()}}class It{constructor(){this._observers=bt()}on(e,t){wt(this._observers,e,_t).add(t)}once(e,t){const n=(...r)=>{this.off(e,n),t(...r)};this.on(e,n)}off(e,t){const n=this._observers.get(e);void 0!==n&&(n.delete(t),0===n.size&&this._observers.delete(e))}emit(e,t){return Et((this._observers.get(e)||bt()).values()).forEach((e=>e(...t)))}destroy(){this._observers=bt()}}const At=Math.floor,Dt=Math.abs,Ot=(e,t)=>e<t?e:t,Tt=(e,t)=>e>t?e:t,Ut=e=>0!==e?e<0:1/e<0,jt=64,Lt=128,Pt=127,Rt=Number.MAX_SAFE_INTEGER,Mt=Number.isInteger||(e=>"number"==typeof e&&isFinite(e)&&At(e)===e),Nt=/^\s*/g,$t=/([A-Z])/g,Bt=(e,t)=>(e=>e.replace(Nt,""))(e.replace($t,(e=>`${t}${(e=>e.toLowerCase())(e)}`))),Ft="undefined"!=typeof TextEncoder?new TextEncoder:null,Wt=Ft?e=>Ft.encode(e):e=>{const t=unescape(encodeURIComponent(e)),n=t.length,r=new Uint8Array(n);for(let e=0;e<n;e++)r[e]=t.codePointAt(e);return r};let Vt="undefined"==typeof TextDecoder?null:new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});Vt&&1===Vt.decode(new Uint8Array).length&&(Vt=null);class Kt{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}}const Ht=()=>new Kt,zt=e=>{const t=new Uint8Array((e=>{let t=e.cpos;for(let n=0;n<e.bufs.length;n++)t+=e.bufs[n].length;return t})(e));let n=0;for(let r=0;r<e.bufs.length;r++){const s=e.bufs[r];t.set(s,n),n+=s.length}return t.set(new Uint8Array(e.cbuf.buffer,0,e.cpos),n),t},Jt=(e,t)=>{const n=e.cbuf.length;e.cpos===n&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(2*n),e.cpos=0),e.cbuf[e.cpos++]=t},qt=Jt,Yt=(e,t)=>{for(;t>Pt;)Jt(e,Lt|Pt&t),t=At(t/128);Jt(e,Pt&t)},Gt=(e,t)=>{const n=Ut(t);for(n&&(t=-t),Jt(e,(t>63?Lt:0)|(n?jt:0)|63&t),t=At(t/64);t>0;)Jt(e,(t>Pt?Lt:0)|Pt&t),t=At(t/128)},Qt=new Uint8Array(3e4),Xt=Qt.length/3,Zt=Ft&&Ft.encodeInto?(e,t)=>{if(t.length<Xt){const n=Ft.encodeInto(t,Qt).written||0;Yt(e,n);for(let t=0;t<n;t++)Jt(e,Qt[t])}else tn(e,Wt(t))}:(e,t)=>{const n=unescape(encodeURIComponent(t)),r=n.length;Yt(e,r);for(let t=0;t<r;t++)Jt(e,n.codePointAt(t))},en=(e,t)=>{const n=e.cbuf.length,r=e.cpos,s=Ot(n-r,t.length),i=t.length-s;e.cbuf.set(t.subarray(0,s),r),e.cpos+=s,i>0&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(Tt(2*n,i)),e.cbuf.set(t.subarray(s)),e.cpos=i)},tn=(e,t)=>{Yt(e,t.byteLength),en(e,t)},nn=(e,t)=>{((e,t)=>{const n=e.cbuf.length;n-e.cpos<t&&(e.bufs.push(new Uint8Array(e.cbuf.buffer,0,e.cpos)),e.cbuf=new Uint8Array(2*Tt(n,t)),e.cpos=0)})(e,t);const n=new DataView(e.cbuf.buffer,e.cpos,t);return e.cpos+=t,n},rn=new DataView(new ArrayBuffer(4)),sn=(e,t)=>{switch(typeof t){case"string":Jt(e,119),Zt(e,t);break;case"number":Mt(t)&&Dt(t)<=2147483647?(Jt(e,125),Gt(e,t)):(n=t,rn.setFloat32(0,n),rn.getFloat32(0)===n?(Jt(e,124),((e,t)=>{nn(e,4).setFloat32(0,t,!1)})(e,t)):(Jt(e,123),((e,t)=>{nn(e,8).setFloat64(0,t,!1)})(e,t)));break;case"bigint":Jt(e,122),((e,t)=>{nn(e,8).setBigInt64(0,t,!1)})(e,t);break;case"object":if(null===t)Jt(e,126);else if(xt(t)){Jt(e,117),Yt(e,t.length);for(let n=0;n<t.length;n++)sn(e,t[n])}else if(t instanceof Uint8Array)Jt(e,116),tn(e,t);else{Jt(e,118);const n=Object.keys(t);Yt(e,n.length);for(let r=0;r<n.length;r++){const s=n[r];Zt(e,s),sn(e,t[s])}}break;case"boolean":Jt(e,t?120:121);break;default:Jt(e,127)}var n};class on extends Kt{constructor(e){super(),this.w=e,this.s=null,this.count=0}write(e){this.s===e?this.count++:(this.count>0&&Yt(this,this.count-1),this.count=1,this.w(this,e),this.s=e)}}const ln=e=>{e.count>0&&(Gt(e.encoder,1===e.count?e.s:-e.s),e.count>1&&Yt(e.encoder,e.count-2))};class cn{constructor(){this.encoder=new Kt,this.s=0,this.count=0}write(e){this.s===e?this.count++:(ln(this),this.count=1,this.s=e)}toUint8Array(){return ln(this),zt(this.encoder)}}const an=e=>{if(e.count>0){const t=2*e.diff+(1===e.count?0:1);Gt(e.encoder,t),e.count>1&&Yt(e.encoder,e.count-2)}};class un{constructor(){this.encoder=new Kt,this.s=0,this.count=0,this.diff=0}write(e){this.diff===e-this.s?(this.s=e,this.count++):(an(this),this.count=1,this.diff=e-this.s,this.s=e)}toUint8Array(){return an(this),zt(this.encoder)}}class dn{constructor(){this.sarr=[],this.s="",this.lensE=new cn}write(e){this.s+=e,this.s.length>19&&(this.sarr.push(this.s),this.s=""),this.lensE.write(e.length)}toUint8Array(){const e=new Kt;return this.sarr.push(this.s),this.s="",Zt(e,this.sarr.join("")),en(e,this.lensE.toUint8Array()),zt(e)}}const hn=e=>new Error(e),fn=()=>{throw hn("Method unimplemented")},pn=()=>{throw hn("Unexpected case")},gn=hn("Unexpected end of array"),yn=hn("Integer out of Range");class mn{constructor(e){this.arr=e,this.pos=0}}const bn=e=>new mn(e),vn=e=>((e,t)=>{const n=new Uint8Array(e.arr.buffer,e.pos+e.arr.byteOffset,t);return e.pos+=t,n})(e,_n(e)),wn=e=>e.arr[e.pos++],_n=e=>{let t=0,n=1;const r=e.arr.length;for(;e.pos<r;){const r=e.arr[e.pos++];if(t+=(r&Pt)*n,n*=128,r<Lt)return t;if(t>Rt)throw yn}throw gn},kn=e=>{let t=e.arr[e.pos++],n=63&t,r=64;const s=(t&jt)>0?-1:1;if(0==(t&Lt))return s*n;const i=e.arr.length;for(;e.pos<i;){if(t=e.arr[e.pos++],n+=(t&Pt)*r,r*=128,t<Lt)return s*n;if(n>Rt)throw yn}throw gn},Sn=Vt?e=>Vt.decode(vn(e)):e=>{let t=_n(e);if(0===t)return"";{let n=String.fromCodePoint(wn(e));if(--t<100)for(;t--;)n+=String.fromCodePoint(wn(e));else for(;t>0;){const r=t<1e4?t:1e4,s=e.arr.subarray(e.pos,e.pos+r);e.pos+=r,n+=String.fromCodePoint.apply(null,s),t-=r}return decodeURIComponent(escape(n))}},En=(e,t)=>{const n=new DataView(e.arr.buffer,e.arr.byteOffset+e.pos,t);return e.pos+=t,n},xn=[e=>{},e=>null,kn,e=>En(e,4).getFloat32(0,!1),e=>En(e,8).getFloat64(0,!1),e=>En(e,8).getBigInt64(0,!1),e=>!1,e=>!0,Sn,e=>{const t=_n(e),n={};for(let r=0;r<t;r++){n[Sn(e)]=Cn(e)}return n},e=>{const t=_n(e),n=[];for(let r=0;r<t;r++)n.push(Cn(e));return n},vn],Cn=e=>xn[127-wn(e)](e);class In extends mn{constructor(e,t){super(e),this.reader=t,this.s=null,this.count=0}read(){var e;return 0===this.count&&(this.s=this.reader(this),(e=this).pos!==e.arr.length?this.count=_n(this)+1:this.count=-1),this.count--,this.s}}class An extends mn{constructor(e){super(e),this.s=0,this.count=0}read(){if(0===this.count){this.s=kn(this);const e=Ut(this.s);this.count=1,e&&(this.s=-this.s,this.count=_n(this)+2)}return this.count--,this.s}}class Dn extends mn{constructor(e){super(e),this.s=0,this.count=0,this.diff=0}read(){if(0===this.count){const e=kn(this),t=1&e;this.diff=At(e/2),this.count=1,t&&(this.count=_n(this)+2)}return this.s+=this.diff,this.count--,this.s}}class On{constructor(e){this.decoder=new An(e),this.str=Sn(this.decoder),this.spos=0}read(){const e=this.spos+this.decoder.read(),t=this.str.slice(this.spos,e);return this.spos=e,t}}const Tn=crypto.getRandomValues.bind(crypto),Un=()=>Tn(new Uint32Array(1))[0],jn=[1e7]+-1e3+-4e3+-8e3+-1e11,Ln=()=>jn.replace(/[018]/g,(e=>(e^Un()&15>>e/4).toString(16))),Pn=Date.now,Rn=e=>new Promise(e);Promise.all.bind(Promise);const Mn=e=>void 0===e?null:e;let Nn=new class{constructor(){this.map=new Map}setItem(e,t){this.map.set(e,t)}getItem(e){return this.map.get(e)}},$n=!0;try{"undefined"!=typeof localStorage&&localStorage&&(Nn=localStorage,$n=!1)}catch(sc){}const Bn=Nn,Fn=Object.assign,Wn=Object.keys,Vn=e=>Wn(e).length,Kn=e=>Wn(e).length,Hn=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),zn=Object.freeze,Jn=e=>{for(const t in e){const n=e[t];"object"!=typeof n&&"function"!=typeof n||Jn(e[t])}return zn(e)},qn=(e,t,n=0)=>{try{for(;n<e.length;n++)e[n](...t)}finally{n<e.length&&qn(e,t,n+1)}},Yn=(e,t)=>{if(null==e||null==t)return((e,t)=>e===t)(e,t);if(e.constructor!==t.constructor)return!1;if(e===t)return!0;switch(e.constructor){case ArrayBuffer:e=new Uint8Array(e),t=new Uint8Array(t);case Uint8Array:if(e.byteLength!==t.byteLength)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;break;case Set:if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;break;case Map:if(e.size!==t.size)return!1;for(const n of e.keys())if(!t.has(n)||!Yn(e.get(n),t.get(n)))return!1;break;case Object:if(Vn(e)!==Vn(t))return!1;for(const n in e)if(!Hn(e,n)||!Yn(e[n],t[n]))return!1;break;case Array:if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(!Yn(e[n],t[n]))return!1;break;default:return!1}return!0},Gn="undefined"!=typeof process&&process.release&&/node|io\.js/.test(process.release.name)&&"[object process]"===Object.prototype.toString.call("undefined"!=typeof process?process:0);let Qn;const Xn=e=>(()=>{if(void 0===Qn)if(Gn){Qn=bt();const e=process.argv;let t=null;for(let n=0;n<e.length;n++){const r=e[n];"-"===r[0]?(null!==t&&Qn.set(t,""),t=r):null!==t&&(Qn.set(t,r),t=null)}null!==t&&Qn.set(t,"")}else"object"==typeof location?(Qn=bt(),(location.search||"?").slice(1).split("&").forEach((e=>{if(0!==e.length){const[t,n]=e.split("=");Qn.set(`--${Bt(t,"-")}`,n),Qn.set(`-${Bt(t,"-")}`,n)}}))):Qn=bt();return Qn})().has(e),Zn=e=>Mn(Gn?process.env[e.toUpperCase().replaceAll("-","_")]:Bn.getItem(e)),er=e=>Xn("--"+e)||null!==Zn(e);er("production");var tr;Gn&&(tr=process.env.FORCE_COLOR,["true","1","2"].includes(tr))||!Xn("--no-colors")&&!er("no-color")&&(!Gn||process.stdout.isTTY)&&(!Gn||Xn("--color")||null!==Zn("COLORTERM")||(Zn("TERM")||"").includes("color"));class nr{constructor(e,t){this.left=e,this.right=t}}const rr=(e,t)=>new nr(e,t);"undefined"!=typeof DOMParser&&new DOMParser;const sr=Symbol,ir=sr(),or=sr(),lr=sr(),cr=sr(),ar=sr(),ur=sr(),dr=sr(),hr=sr(),fr=sr(),pr=(rr("font-weight","bold"),rr("font-weight","normal"),rr("color","blue"),rr("color","green"),rr("color","grey"),rr("color","red"),rr("color","purple"),rr("color","orange"),rr("color","black"),_t()),gr=e=>({[Symbol.iterator](){return this},next:e}),yr=(e,t)=>gr((()=>{const{done:n,value:r}=e.next();return{done:n,value:n?void 0:t(r)}}));class mr{constructor(e,t){this.clock=e,this.len=t}}class br{constructor(){this.clients=new Map}}const vr=(e,t,n)=>t.clients.forEach(((t,r)=>{const s=e.doc.store.clients.get(r);if(null!=s){const r=s[s.length-1],i=r.id.clock+r.length;for(let r=0,o=t[r];r<t.length&&o.clock<i;o=t[++r])ts(e,s,o.clock,o.len,n)}})),wr=(e,t)=>{const n=e.clients.get(t.client);return void 0!==n&&null!==((e,t)=>{let n=0,r=e.length-1;for(;n<=r;){const s=At((n+r)/2),i=e[s],o=i.clock;if(o<=t){if(t<o+i.len)return s;n=s+1}else r=s-1}return null})(n,t.clock)},_r=e=>{e.clients.forEach((e=>{let t,n;for(e.sort(((e,t)=>e.clock-t.clock)),t=1,n=1;t<e.length;t++){const r=e[n-1],s=e[t];r.clock+r.len>=s.clock?r.len=Tt(r.len,s.clock+s.len-r.clock):(n<t&&(e[n]=s),n++)}e.length=n}))},kr=(e,t,n,r)=>{wt(e.clients,t,(()=>[])).push(new mr(n,r))},Sr=(e,t)=>{Yt(e.restEncoder,t.clients.size),Et(t.clients.entries()).sort(((e,t)=>t[0]-e[0])).forEach((([t,n])=>{e.resetDsCurVal(),Yt(e.restEncoder,t);const r=n.length;Yt(e.restEncoder,r);for(let t=0;t<r;t++){const r=n[t];e.writeDsClock(r.clock),e.writeDsLen(r.len)}}))},Er=(e,t,n)=>{const r=new br,s=_n(e.restDecoder);for(let i=0;i<s;i++){e.resetDsCurVal();const s=_n(e.restDecoder),i=_n(e.restDecoder),o=n.clients.get(s)||[],l=qr(n,s);for(let n=0;n<i;n++){const n=e.readDsClock(),i=n+e.readDsLen();if(n<l){l<i&&kr(r,s,l,i-l);let e=Gr(o,n),c=o[e];for(!c.deleted&&c.id.clock<n&&(o.splice(e+1,0,Ri(t,c,n-c.id.clock)),e++);e<o.length&&(c=o[e++],c.id.clock<i);)c.deleted||(i<c.id.clock+c.length&&o.splice(e,0,Ri(t,c,i-c.id.clock)),c.delete(t))}else kr(r,s,n,i-n)}}if(r.clients.size>0){const e=new Ur;return Yt(e.restEncoder,0),Sr(e,r),e.toUint8Array()}return null},xr=Un;class Cr extends Ct{constructor({guid:e=Ln(),collectionid:t=null,gc:n=!0,gcFilter:r=(()=>!0),meta:s=null,autoLoad:i=!1,shouldLoad:o=!0}={}){super(),this.gc=n,this.gcFilter=r,this.clientID=xr(),this.guid=e,this.collectionid=t,this.share=new Map,this.store=new zr,this._transaction=null,this._transactionCleanups=[],this.subdocs=new Set,this._item=null,this.shouldLoad=o,this.autoLoad=i,this.meta=s,this.isLoaded=!1,this.isSynced=!1,this.isDestroyed=!1,this.whenLoaded=Rn((e=>{this.on("load",(()=>{this.isLoaded=!0,e(this)}))}));const l=()=>Rn((e=>{const t=n=>{void 0!==n&&!0!==n||(this.off("sync",t),e())};this.on("sync",t)}));this.on("sync",(e=>{!1===e&&this.isSynced&&(this.whenSynced=l()),this.isSynced=void 0===e||!0===e,this.isSynced&&!this.isLoaded&&this.emit("load",[this])})),this.whenSynced=l()}load(){const e=this._item;null===e||this.shouldLoad||ls(e.parent.doc,(e=>{e.subdocsLoaded.add(this)}),null,!0),this.shouldLoad=!0}getSubdocs(){return this.subdocs}getSubdocGuids(){return new Set(Et(this.subdocs).map((e=>e.guid)))}transact(e,t=null){return ls(this,e,t)}get(e,t=Cs){const n=wt(this.share,e,(()=>{const e=new t;return e._integrate(this,null),e})),r=n.constructor;if(t!==Cs&&r!==t){if(r===Cs){const r=new t;r._map=n._map,n._map.forEach((e=>{for(;null!==e;e=e.left)e.parent=r})),r._start=n._start;for(let e=r._start;null!==e;e=e.right)e.parent=r;return r._length=n._length,this.share.set(e,r),r._integrate(this,null),r}throw new Error(`Type with the name ${e} has already been defined with a different constructor`)}return n}getArray(e=""){return this.get(e,Ks)}getText(e=""){return this.get(e,ci)}getMap(e=""){return this.get(e,zs)}getXmlElement(e=""){return this.get(e,di)}getXmlFragment(e=""){return this.get(e,ui)}toJSON(){const e={};return this.share.forEach(((t,n)=>{e[n]=t.toJSON()})),e}destroy(){this.isDestroyed=!0,Et(this.subdocs).forEach((e=>e.destroy()));const e=this._item;if(null!==e){this._item=null;const t=e.content;t.doc=new Cr({guid:this.guid,...t.opts,shouldLoad:!1}),t.doc._item=e,ls(e.parent.doc,(n=>{const r=t.doc;e.deleted||n.subdocsAdded.add(r),n.subdocsRemoved.add(this)}),null,!0)}this.emit("destroyed",[!0]),this.emit("destroy",[this]),super.destroy()}}class Ir{constructor(e){this.dsCurrVal=0,this.restDecoder=e}resetDsCurVal(){this.dsCurrVal=0}readDsClock(){return this.dsCurrVal+=_n(this.restDecoder),this.dsCurrVal}readDsLen(){const e=_n(this.restDecoder)+1;return this.dsCurrVal+=e,e}}class Ar extends Ir{constructor(e){super(e),this.keys=[],_n(e),this.keyClockDecoder=new Dn(vn(e)),this.clientDecoder=new An(vn(e)),this.leftClockDecoder=new Dn(vn(e)),this.rightClockDecoder=new Dn(vn(e)),this.infoDecoder=new In(vn(e),wn),this.stringDecoder=new On(vn(e)),this.parentInfoDecoder=new In(vn(e),wn),this.typeRefDecoder=new An(vn(e)),this.lenDecoder=new An(vn(e))}readLeftID(){return new Fr(this.clientDecoder.read(),this.leftClockDecoder.read())}readRightID(){return new Fr(this.clientDecoder.read(),this.rightClockDecoder.read())}readClient(){return this.clientDecoder.read()}readInfo(){return this.infoDecoder.read()}readString(){return this.stringDecoder.read()}readParentInfo(){return 1===this.parentInfoDecoder.read()}readTypeRef(){return this.typeRefDecoder.read()}readLen(){return this.lenDecoder.read()}readAny(){return Cn(this.restDecoder)}readBuf(){return vn(this.restDecoder)}readJSON(){return Cn(this.restDecoder)}readKey(){const e=this.keyClockDecoder.read();if(e<this.keys.length)return this.keys[e];{const e=this.stringDecoder.read();return this.keys.push(e),e}}}class Dr{constructor(){this.restEncoder=Ht()}toUint8Array(){return zt(this.restEncoder)}resetDsCurVal(){}writeDsClock(e){Yt(this.restEncoder,e)}writeDsLen(e){Yt(this.restEncoder,e)}}class Or extends Dr{writeLeftID(e){Yt(this.restEncoder,e.client),Yt(this.restEncoder,e.clock)}writeRightID(e){Yt(this.restEncoder,e.client),Yt(this.restEncoder,e.clock)}writeClient(e){Yt(this.restEncoder,e)}writeInfo(e){qt(this.restEncoder,e)}writeString(e){Zt(this.restEncoder,e)}writeParentInfo(e){Yt(this.restEncoder,e?1:0)}writeTypeRef(e){Yt(this.restEncoder,e)}writeLen(e){Yt(this.restEncoder,e)}writeAny(e){sn(this.restEncoder,e)}writeBuf(e){tn(this.restEncoder,e)}writeJSON(e){Zt(this.restEncoder,JSON.stringify(e))}writeKey(e){Zt(this.restEncoder,e)}}class Tr{constructor(){this.restEncoder=Ht(),this.dsCurrVal=0}toUint8Array(){return zt(this.restEncoder)}resetDsCurVal(){this.dsCurrVal=0}writeDsClock(e){const t=e-this.dsCurrVal;this.dsCurrVal=e,Yt(this.restEncoder,t)}writeDsLen(e){0===e&&pn(),Yt(this.restEncoder,e-1),this.dsCurrVal+=e}}class Ur extends Tr{constructor(){super(),this.keyMap=new Map,this.keyClock=0,this.keyClockEncoder=new un,this.clientEncoder=new cn,this.leftClockEncoder=new un,this.rightClockEncoder=new un,this.infoEncoder=new on(qt),this.stringEncoder=new dn,this.parentInfoEncoder=new on(qt),this.typeRefEncoder=new cn,this.lenEncoder=new cn}toUint8Array(){const e=Ht();return Yt(e,0),tn(e,this.keyClockEncoder.toUint8Array()),tn(e,this.clientEncoder.toUint8Array()),tn(e,this.leftClockEncoder.toUint8Array()),tn(e,this.rightClockEncoder.toUint8Array()),tn(e,zt(this.infoEncoder)),tn(e,this.stringEncoder.toUint8Array()),tn(e,zt(this.parentInfoEncoder)),tn(e,this.typeRefEncoder.toUint8Array()),tn(e,this.lenEncoder.toUint8Array()),en(e,zt(this.restEncoder)),zt(e)}writeLeftID(e){this.clientEncoder.write(e.client),this.leftClockEncoder.write(e.clock)}writeRightID(e){this.clientEncoder.write(e.client),this.rightClockEncoder.write(e.clock)}writeClient(e){this.clientEncoder.write(e)}writeInfo(e){this.infoEncoder.write(e)}writeString(e){this.stringEncoder.write(e)}writeParentInfo(e){this.parentInfoEncoder.write(e?1:0)}writeTypeRef(e){this.typeRefEncoder.write(e)}writeLen(e){this.lenEncoder.write(e)}writeAny(e){sn(this.restEncoder,e)}writeBuf(e){tn(this.restEncoder,e)}writeJSON(e){sn(this.restEncoder,e)}writeKey(e){const t=this.keyMap.get(e);void 0===t?(this.keyClockEncoder.write(this.keyClock++),this.stringEncoder.write(e)):this.keyClockEncoder.write(t)}}const jr=(e,t,n)=>{const r=new Map;n.forEach(((e,n)=>{qr(t,n)>e&&r.set(n,e)})),Jr(t).forEach(((e,t)=>{n.has(t)||r.set(t,0)})),Yt(e.restEncoder,r.size),Et(r.entries()).sort(((e,t)=>t[0]-e[0])).forEach((([n,r])=>{((e,t,n,r)=>{r=Tt(r,t[0].id.clock);const s=Gr(t,r);Yt(e.restEncoder,t.length-s),e.writeClient(n),Yt(e.restEncoder,r);const i=t[s];i.write(e,r-i.id.clock);for(let n=s+1;n<t.length;n++)t[n].write(e,0)})(e,t.clients.get(n),n,r)}))},Lr=(e,t,n,r=new Ar(e))=>ls(t,(e=>{e.local=!1;let t=!1;const n=e.doc,s=n.store,i=((e,t)=>{const n=bt(),r=_n(e.restDecoder);for(let s=0;s<r;s++){const r=_n(e.restDecoder),s=new Array(r),i=e.readClient();let o=_n(e.restDecoder);n.set(i,{i:0,refs:s});for(let n=0;n<r;n++){const r=e.readInfo();switch(31&r){case 0:{const t=e.readLen();s[n]=new yi(Vr(i,o),t),o+=t;break}case 10:{const t=_n(e.restDecoder);s[n]=new Bi(Vr(i,o),t),o+=t;break}default:{const l=0==(192&r),c=new Mi(Vr(i,o),null,(r&Lt)===Lt?e.readLeftID():null,null,(r&jt)===jt?e.readRightID():null,l?e.readParentInfo()?t.get(e.readString()):e.readLeftID():null,l&&32==(32&r)?e.readString():null,Ni(e,r));s[n]=c,o+=c.length}}}}return n})(r,n),o=((e,t,n)=>{const r=[];let s=Et(n.keys()).sort(((e,t)=>e-t));if(0===s.length)return null;const i=()=>{if(0===s.length)return null;let e=n.get(s[s.length-1]);for(;e.refs.length===e.i;){if(s.pop(),!(s.length>0))return null;e=n.get(s[s.length-1])}return e};let o=i();if(null===o)return null;const l=new zr,c=new Map,a=(e,t)=>{const n=c.get(e);(null==n||n>t)&&c.set(e,t)};let u=o.refs[o.i++];const d=new Map,h=()=>{for(const e of r){const t=e.id.client,r=n.get(t);r?(r.i--,l.clients.set(t,r.refs.slice(r.i)),n.delete(t),r.i=0,r.refs=[]):l.clients.set(t,[e]),s=s.filter((e=>e!==t))}r.length=0};for(;;){if(u.constructor!==Bi){const s=wt(d,u.id.client,(()=>qr(t,u.id.client)))-u.id.clock;if(s<0)r.push(u),a(u.id.client,u.id.clock-1),h();else{const i=u.getMissing(e,t);if(null!==i){r.push(u);const e=n.get(i)||{refs:[],i:0};if(e.refs.length!==e.i){u=e.refs[e.i++];continue}a(i,qr(t,i)),h()}else(0===s||s<u.length)&&(u.integrate(e,s),d.set(u.id.client,u.id.clock+u.length))}}if(r.length>0)u=r.pop();else if(null!==o&&o.i<o.refs.length)u=o.refs[o.i++];else{if(o=i(),null===o)break;u=o.refs[o.i++]}}if(l.clients.size>0){const e=new Ur;return jr(e,l,new Map),Yt(e.restEncoder,0),{missing:c,update:e.toUint8Array()}}return null})(e,s,i),l=s.pendingStructs;if(l){for(const[e,n]of l.missing)if(n<qr(s,e)){t=!0;break}if(o){for(const[e,t]of o.missing){const n=l.missing.get(e);(null==n||n>t)&&l.missing.set(e,t)}l.update=hs([l.update,o.update])}}else s.pendingStructs=o;const c=Er(r,e,s);if(s.pendingDs){const t=new Ar(bn(s.pendingDs));_n(t.restDecoder);const n=Er(t,e,s);s.pendingDs=c&&n?hs([c,n]):c||n}else s.pendingDs=c;if(t){const t=s.pendingStructs.update;s.pendingStructs=null,Pr(e.doc,t)}}),n,!1),Pr=(e,t,n,r=Ar)=>{const s=bn(t);Lr(s,e,n,new r(s))};class Rr{constructor(){this.l=[]}}const Mr=()=>new Rr,Nr=(e,t)=>e.l.push(t),$r=(e,t)=>{const n=e.l;n.length;e.l=n.filter((e=>t!==e)),e.l.length},Br=(e,t,n)=>qn(e.l,[t,n]);class Fr{constructor(e,t){this.client=e,this.clock=t}}const Wr=(e,t)=>e===t||null!==e&&null!==t&&e.client===t.client&&e.clock===t.clock,Vr=(e,t)=>new Fr(e,t),Kr=(e,t)=>void 0===t?!e.deleted:t.sv.has(e.id.client)&&(t.sv.get(e.id.client)||0)>e.id.clock&&!wr(t.ds,e.id),Hr=(e,t)=>{const n=wt(e.meta,Hr,_t),r=e.doc.store;n.has(t)||(t.sv.forEach(((t,n)=>{t<qr(r,n)&&Zr(e,Vr(n,t))})),vr(e,t.ds,(e=>{})),n.add(t))};class zr{constructor(){this.clients=new Map,this.pendingStructs=null,this.pendingDs=null}}const Jr=e=>{const t=new Map;return e.clients.forEach(((e,n)=>{const r=e[e.length-1];t.set(n,r.id.clock+r.length)})),t},qr=(e,t)=>{const n=e.clients.get(t);if(void 0===n)return 0;const r=n[n.length-1];return r.id.clock+r.length},Yr=(e,t)=>{let n=e.clients.get(t.id.client);if(void 0===n)n=[],e.clients.set(t.id.client,n);else{const e=n[n.length-1];if(e.id.clock+e.length!==t.id.clock)throw pn()}n.push(t)},Gr=(e,t)=>{let n=0,r=e.length-1,s=e[r],i=s.id.clock;if(i===t)return r;let o=At(t/(i+s.length-1)*r);for(;n<=r;){if(s=e[o],i=s.id.clock,i<=t){if(t<i+s.length)return o;n=o+1}else r=o-1;o=At((n+r)/2)}throw pn()},Qr=(e,t)=>{const n=e.clients.get(t.client);return n[Gr(n,t.clock)]},Xr=(e,t,n)=>{const r=Gr(t,n),s=t[r];return s.id.clock<n&&s instanceof Mi?(t.splice(r+1,0,Ri(e,s,n-s.id.clock)),r+1):r},Zr=(e,t)=>{const n=e.doc.store.clients.get(t.client);return n[Xr(e,n,t.clock)]},es=(e,t,n)=>{const r=t.clients.get(n.client),s=Gr(r,n.clock),i=r[s];return n.clock!==i.id.clock+i.length-1&&i.constructor!==yi&&r.splice(s+1,0,Ri(e,i,n.clock-i.id.clock+1)),i},ts=(e,t,n,r,s)=>{if(0===r)return;const i=n+r;let o,l=Xr(e,t,n);do{o=t[l++],i<o.id.clock+o.length&&Xr(e,t,i),s(o)}while(l<t.length&&t[l].id.clock<i)};class ns{constructor(e,t,n){this.doc=e,this.deleteSet=new br,this.beforeState=Jr(e.store),this.afterState=new Map,this.changed=new Map,this.changedParentTypes=new Map,this._mergeStructs=[],this.origin=t,this.meta=new Map,this.local=n,this.subdocsAdded=new Set,this.subdocsRemoved=new Set,this.subdocsLoaded=new Set,this._needFormattingCleanup=!1}}const rs=(e,t)=>!(0===t.deleteSet.clients.size&&!((e,t)=>{for(const[n,r]of e)if(t(r,n))return!0;return!1})(t.afterState,((e,n)=>t.beforeState.get(n)!==e)))&&(_r(t.deleteSet),((e,t)=>{jr(e,t.doc.store,t.beforeState)})(e,t),Sr(e,t.deleteSet),!0),ss=(e,t,n)=>{const r=t._item;(null===r||r.id.clock<(e.beforeState.get(r.id.client)||0)&&!r.deleted)&&wt(e.changed,t,_t).add(n)},is=(e,t)=>{let n=e[t],r=e[t-1],s=t;for(;s>0&&(r.deleted===n.deleted&&r.constructor===n.constructor&&r.mergeWith(n));n=r,r=e[--s-1])n instanceof Mi&&null!==n.parentSub&&n.parent._map.get(n.parentSub)===n&&n.parent._map.set(n.parentSub,r);const i=t-s;return i&&e.splice(t+1-i,i),i},os=(e,t)=>{if(t<e.length){const n=e[t],r=n.doc,s=r.store,i=n.deleteSet,o=n._mergeStructs;try{_r(i),n.afterState=Jr(n.doc.store),r.emit("beforeObserverCalls",[n,r]);const e=[];n.changed.forEach(((t,r)=>e.push((()=>{null!==r._item&&r._item.deleted||r._callObserver(n,t)})))),e.push((()=>{n.changedParentTypes.forEach(((e,t)=>{t._dEH.l.length>0&&(null===t._item||!t._item.deleted)&&((e=e.filter((e=>null===e.target._item||!e.target._item.deleted))).forEach((e=>{e.currentTarget=t,e._path=null})),e.sort(((e,t)=>e.path.length-t.path.length)),Br(t._dEH,e,n))}))})),e.push((()=>r.emit("afterTransaction",[n,r]))),qn(e,[]),n._needFormattingCleanup&&ii(n)}finally{r.gc&&((e,t,n)=>{for(const[r,s]of e.clients.entries()){const e=t.clients.get(r);for(let r=s.length-1;r>=0;r--){const i=s[r],o=i.clock+i.len;for(let r=Gr(e,i.clock),s=e[r];r<e.length&&s.id.clock<o;s=e[++r]){const s=e[r];if(i.clock+i.len<=s.id.clock)break;s instanceof Mi&&s.deleted&&!s.keep&&n(s)&&s.gc(t,!1)}}}})(i,s,r.gcFilter),((e,t)=>{e.clients.forEach(((e,n)=>{const r=t.clients.get(n);for(let t=e.length-1;t>=0;t--){const n=e[t];for(let e=Ot(r.length-1,1+Gr(r,n.clock+n.len-1)),t=r[e];e>0&&t.id.clock>=n.clock;t=r[e])e-=1+is(r,e)}}))})(i,s),n.afterState.forEach(((e,t)=>{const r=n.beforeState.get(t)||0;if(r!==e){const e=s.clients.get(t),n=Tt(Gr(e,r),1);for(let t=e.length-1;t>=n;)t-=1+is(e,t)}}));for(let e=o.length-1;e>=0;e--){const{client:t,clock:n}=o[e].id,r=s.clients.get(t),i=Gr(r,n);i+1<r.length&&is(r,i+1)>1||i>0&&is(r,i)}if(n.local||n.afterState.get(r.clientID)===n.beforeState.get(r.clientID)||(((...e)=>{pr.forEach((t=>t.print(e)))})(hr,ir,"[yjs] ",or,ur,"Changed the client-id because another client seems to be using it."),r.clientID=xr()),r.emit("afterTransactionCleanup",[n,r]),r._observers.has("update")){const e=new Or;rs(e,n)&&r.emit("update",[e.toUint8Array(),n.origin,r,n])}if(r._observers.has("updateV2")){const e=new Ur;rs(e,n)&&r.emit("updateV2",[e.toUint8Array(),n.origin,r,n])}const{subdocsAdded:l,subdocsLoaded:c,subdocsRemoved:a}=n;(l.size>0||a.size>0||c.size>0)&&(l.forEach((e=>{e.clientID=r.clientID,null==e.collectionid&&(e.collectionid=r.collectionid),r.subdocs.add(e)})),a.forEach((e=>r.subdocs.delete(e))),r.emit("subdocs",[{loaded:c,added:l,removed:a},r,n]),a.forEach((e=>e.destroy()))),e.length<=t+1?(r._transactionCleanups=[],r.emit("afterAllTransactions",[r,e])):os(e,t+1)}}},ls=(e,t,n=null,r=!0)=>{const s=e._transactionCleanups;let i=!1,o=null;null===e._transaction&&(i=!0,e._transaction=new ns(e,n,r),s.push(e._transaction),1===s.length&&e.emit("beforeAllTransactions",[e]),e.emit("beforeTransaction",[e._transaction,e]));try{o=t(e._transaction)}finally{if(i){const t=e._transaction===s[0];e._transaction=null,t&&os(s,0)}}return o};class cs{constructor(e,t){this.gen=function*(e){const t=_n(e.restDecoder);for(let n=0;n<t;n++){const t=_n(e.restDecoder),n=e.readClient();let r=_n(e.restDecoder);for(let s=0;s<t;s++){const t=e.readInfo();if(10===t){const t=_n(e.restDecoder);yield new Bi(Vr(n,r),t),r+=t}else if(0!=(31&t)){const s=0==(192&t),i=new Mi(Vr(n,r),null,(t&Lt)===Lt?e.readLeftID():null,null,(t&jt)===jt?e.readRightID():null,s?e.readParentInfo()?e.readString():e.readLeftID():null,s&&32==(32&t)?e.readString():null,Ni(e,t));yield i,r+=i.length}else{const t=e.readLen();yield new yi(Vr(n,r),t),r+=t}}}}(e),this.curr=null,this.done=!1,this.filterSkips=t,this.next()}next(){do{this.curr=this.gen.next().value||null}while(this.filterSkips&&null!==this.curr&&this.curr.constructor===Bi);return this.curr}}class as{constructor(e){this.currClient=0,this.startClock=0,this.written=0,this.encoder=e,this.clientStructs=[]}}const us=(e,t=Tr,n=Ar)=>{const r=new t,s=new cs(new n(bn(e)),!1);let i=s.curr;if(null!==i){let e=0,t=i.id.client,n=0!==i.id.clock,o=n?0:i.id.clock+i.length;for(;null!==i;i=s.next())t!==i.id.client&&(0!==o&&(e++,Yt(r.restEncoder,t),Yt(r.restEncoder,o)),t=i.id.client,o=0,n=0!==i.id.clock),i.constructor===Bi&&(n=!0),n||(o=i.id.clock+i.length);0!==o&&(e++,Yt(r.restEncoder,t),Yt(r.restEncoder,o));const l=Ht();return Yt(l,e),((e,t)=>{en(e,zt(t))})(l,r.restEncoder),r.restEncoder=l,r.toUint8Array()}return Yt(r.restEncoder,0),r.toUint8Array()},ds=(e,t)=>{if(e.constructor===yi){const{client:n,clock:r}=e.id;return new yi(Vr(n,r+t),e.length-t)}if(e.constructor===Bi){const{client:n,clock:r}=e.id;return new Bi(Vr(n,r+t),e.length-t)}{const n=e,{client:r,clock:s}=n.id;return new Mi(Vr(r,s+t),null,Vr(r,s+t-1),null,n.rightOrigin,n.parent,n.parentSub,n.content.splice(t))}},hs=(e,t=Ar,n=Ur)=>{if(1===e.length)return e[0];const r=e.map((e=>new t(bn(e))));let s=r.map((e=>new cs(e,!0))),i=null;const o=new n,l=new as(o);for(;s=s.filter((e=>null!==e.curr)),s.sort(((e,t)=>{if(e.curr.id.client===t.curr.id.client){const n=e.curr.id.clock-t.curr.id.clock;return 0===n?e.curr.constructor===t.curr.constructor?0:e.curr.constructor===Bi?1:-1:n}return t.curr.id.client-e.curr.id.client})),0!==s.length;){const e=s[0],t=e.curr.id.client;if(null!==i){let n=e.curr,r=!1;for(;null!==n&&n.id.clock+n.length<=i.struct.id.clock+i.struct.length&&n.id.client>=i.struct.id.client;)n=e.next(),r=!0;if(null===n||n.id.client!==t||r&&n.id.clock>i.struct.id.clock+i.struct.length)continue;if(t!==i.struct.id.client)ps(l,i.struct,i.offset),i={struct:n,offset:0},e.next();else if(i.struct.id.clock+i.struct.length<n.id.clock)if(i.struct.constructor===Bi)i.struct.length=n.id.clock+n.length-i.struct.id.clock;else{ps(l,i.struct,i.offset);const e=n.id.clock-i.struct.id.clock-i.struct.length;i={struct:new Bi(Vr(t,i.struct.id.clock+i.struct.length),e),offset:0}}else{const t=i.struct.id.clock+i.struct.length-n.id.clock;t>0&&(i.struct.constructor===Bi?i.struct.length-=t:n=ds(n,t)),i.struct.mergeWith(n)||(ps(l,i.struct,i.offset),i={struct:n,offset:0},e.next())}}else i={struct:e.curr,offset:0},e.next();for(let n=e.curr;null!==n&&n.id.client===t&&n.id.clock===i.struct.id.clock+i.struct.length&&n.constructor!==Bi;n=e.next())ps(l,i.struct,i.offset),i={struct:n,offset:0}}null!==i&&(ps(l,i.struct,i.offset),i=null),gs(l);const c=r.map((e=>(e=>{const t=new br,n=_n(e.restDecoder);for(let r=0;r<n;r++){e.resetDsCurVal();const n=_n(e.restDecoder),r=_n(e.restDecoder);if(r>0){const s=wt(t.clients,n,(()=>[]));for(let t=0;t<r;t++)s.push(new mr(e.readDsClock(),e.readDsLen()))}}return t})(e))),a=(e=>{const t=new br;for(let n=0;n<e.length;n++)e[n].clients.forEach(((r,s)=>{if(!t.clients.has(s)){const i=r.slice();for(let t=n+1;t<e.length;t++)St(i,e[t].clients.get(s)||[]);t.clients.set(s,i)}}));return _r(t),t})(c);return Sr(o,a),o.toUint8Array()},fs=e=>{e.written>0&&(e.clientStructs.push({written:e.written,restEncoder:zt(e.encoder.restEncoder)}),e.encoder.restEncoder=Ht(),e.written=0)},ps=(e,t,n)=>{e.written>0&&e.currClient!==t.id.client&&fs(e),0===e.written&&(e.currClient=t.id.client,e.encoder.writeClient(t.id.client),Yt(e.encoder.restEncoder,t.id.clock+n)),t.write(e.encoder,n),e.written++},gs=e=>{fs(e);const t=e.encoder.restEncoder;Yt(t,e.clientStructs.length);for(let n=0;n<e.clientStructs.length;n++){const r=e.clientStructs[n];Yt(t,r.written),en(t,r.restEncoder)}},ys="You must not compute changes after the event-handler fired.";class ms{constructor(e,t){this.target=e,this.currentTarget=e,this.transaction=t,this._changes=null,this._keys=null,this._delta=null,this._path=null}get path(){return this._path||(this._path=bs(this.currentTarget,this.target))}deletes(e){return wr(this.transaction.deleteSet,e.id)}get keys(){if(null===this._keys){if(0===this.transaction.doc._transactionCleanups.length)throw hn(ys);const e=new Map,t=this.target;this.transaction.changed.get(t).forEach((n=>{if(null!==n){const r=t._map.get(n);let s,i;if(this.adds(r)){let e=r.left;for(;null!==e&&this.adds(e);)e=e.left;if(this.deletes(r)){if(null===e||!this.deletes(e))return;s="delete",i=kt(e.content.getContent())}else null!==e&&this.deletes(e)?(s="update",i=kt(e.content.getContent())):(s="add",i=void 0)}else{if(!this.deletes(r))return;s="delete",i=kt(r.content.getContent())}e.set(n,{action:s,oldValue:i})}})),this._keys=e}return this._keys}get delta(){return this.changes.delta}adds(e){return e.id.clock>=(this.transaction.beforeState.get(e.id.client)||0)}get changes(){let e=this._changes;if(null===e){if(0===this.transaction.doc._transactionCleanups.length)throw hn(ys);const t=this.target,n=_t(),r=_t(),s=[];e={added:n,deleted:r,delta:s,keys:this.keys};if(this.transaction.changed.get(t).has(null)){let e=null;const i=()=>{e&&s.push(e)};for(let s=t._start;null!==s;s=s.right)s.deleted?this.deletes(s)&&!this.adds(s)&&(null!==e&&void 0!==e.delete||(i(),e={delete:0}),e.delete+=s.length,r.add(s)):this.adds(s)?(null!==e&&void 0!==e.insert||(i(),e={insert:[]}),e.insert=e.insert.concat(s.content.getContent()),n.add(s)):(null!==e&&void 0!==e.retain||(i(),e={retain:0}),e.retain+=s.length);null!==e&&void 0===e.retain&&i()}this._changes=e}return e}}const bs=(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},vs=()=>{((...e)=>{e.unshift(hr),pr.forEach((t=>t.print(e)))})("Invalid access: Add Yjs type to a document before reading data.")};let ws=0;class _s{constructor(e,t){e.marker=!0,this.p=e,this.index=t,this.timestamp=ws++}}const ks=(e,t,n)=>{e.p.marker=!1,e.p=t,t.marker=!0,e.index=n,e.timestamp=ws++},Ss=(e,t)=>{if(null===e._start||0===t||null===e._searchMarker)return null;const n=0===e._searchMarker.length?null:e._searchMarker.reduce(((e,n)=>Dt(t-e.index)<Dt(t-n.index)?e:n));let r=e._start,s=0;for(null!==n&&(r=n.p,s=n.index,(e=>{e.timestamp=ws++})(n));null!==r.right&&s<t;){if(!r.deleted&&r.countable){if(t<s+r.length)break;s+=r.length}r=r.right}for(;null!==r.left&&s>t;)r=r.left,!r.deleted&&r.countable&&(s-=r.length);for(;null!==r.left&&r.left.id.client===r.id.client&&r.left.id.clock+r.left.length===r.id.clock;)r=r.left,!r.deleted&&r.countable&&(s-=r.length);return null!==n&&Dt(n.index-s)<r.parent.length/80?(ks(n,r,s),n):((e,t,n)=>{if(e.length>=80){const r=e.reduce(((e,t)=>e.timestamp<t.timestamp?e:t));return ks(r,t,n),r}{const r=new _s(t,n);return e.push(r),r}})(e._searchMarker,r,s)},Es=(e,t,n)=>{for(let r=e.length-1;r>=0;r--){const s=e[r];if(n>0){let t=s.p;for(t.marker=!1;t&&(t.deleted||!t.countable);)t=t.left,t&&!t.deleted&&t.countable&&(s.index-=t.length);if(null===t||!0===t.marker){e.splice(r,1);continue}s.p=t,t.marker=!0}(t<s.index||n>0&&t===s.index)&&(s.index=Tt(t,s.index+n))}},xs=(e,t,n)=>{const r=e,s=t.changedParentTypes;for(;wt(s,e,(()=>[])).push(n),null!==e._item;)e=e._item.parent;Br(r._eH,n,t)};class Cs{constructor(){this._item=null,this._map=new Map,this._start=null,this.doc=null,this._length=0,this._eH=Mr(),this._dEH=Mr(),this._searchMarker=null}get parent(){return this._item?this._item.parent:null}_integrate(e,t){this.doc=e,this._item=t}_copy(){throw fn()}clone(){throw fn()}_write(e){}get _first(){let e=this._start;for(;null!==e&&e.deleted;)e=e.right;return e}_callObserver(e,t){!e.local&&this._searchMarker&&(this._searchMarker.length=0)}observe(e){Nr(this._eH,e)}observeDeep(e){Nr(this._dEH,e)}unobserve(e){$r(this._eH,e)}unobserveDeep(e){$r(this._dEH,e)}toJSON(){}}const Is=(e,t,n)=>{e.doc??vs(),t<0&&(t=e._length+t),n<0&&(n=e._length+n);let r=n-t;const s=[];let i=e._start;for(;null!==i&&r>0;){if(i.countable&&!i.deleted){const e=i.content.getContent();if(e.length<=t)t-=e.length;else{for(let n=t;n<e.length&&r>0;n++)s.push(e[n]),r--;t=0}}i=i.right}return s},As=e=>{e.doc??vs();const t=[];let n=e._start;for(;null!==n;){if(n.countable&&!n.deleted){const e=n.content.getContent();for(let n=0;n<e.length;n++)t.push(e[n])}n=n.right}return t},Ds=(e,t)=>{let n=0,r=e._start;for(e.doc??vs();null!==r;){if(r.countable&&!r.deleted){const s=r.content.getContent();for(let r=0;r<s.length;r++)t(s[r],n++,e)}r=r.right}},Os=(e,t)=>{const n=[];return Ds(e,((r,s)=>{n.push(t(r,s,e))})),n},Ts=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}}}},Us=(e,t)=>{e.doc??vs();const n=Ss(e,t);let r=e._start;for(null!==n&&(r=n.p,t-=n.index);null!==r;r=r.right)if(!r.deleted&&r.countable){if(t<r.length)return r.content.getContent()[t];t-=r.length}},js=(e,t,n,r)=>{let s=n;const i=e.doc,o=i.clientID,l=i.store,c=null===n?t._start:n.right;let a=[];const u=()=>{a.length>0&&(s=new Mi(Vr(o,qr(l,o)),s,s&&s.lastId,c,c&&c.id,t,null,new xi(a)),s.integrate(e,0),a=[])};r.forEach((n=>{if(null===n)a.push(n);else switch(n.constructor){case Number:case Object:case Boolean:case Array:case String:a.push(n);break;default:switch(u(),n.constructor){case Uint8Array:case ArrayBuffer:s=new Mi(Vr(o,qr(l,o)),s,s&&s.lastId,c,c&&c.id,t,null,new mi(new Uint8Array(n))),s.integrate(e,0);break;case Cr:s=new Mi(Vr(o,qr(l,o)),s,s&&s.lastId,c,c&&c.id,t,null,new wi(n)),s.integrate(e,0);break;default:if(!(n instanceof Cs))throw new Error("Unexpected content type in insert operation");s=new Mi(Vr(o,qr(l,o)),s,s&&s.lastId,c,c&&c.id,t,null,new Pi(n)),s.integrate(e,0)}}})),u()},Ls=()=>hn("Length exceeded!"),Ps=(e,t,n,r)=>{if(n>t._length)throw Ls();if(0===n)return t._searchMarker&&Es(t._searchMarker,n,r.length),js(e,t,null,r);const s=n,i=Ss(t,n);let o=t._start;for(null!==i&&(o=i.p,0===(n-=i.index)&&(o=o.prev,n+=o&&o.countable&&!o.deleted?o.length:0));null!==o;o=o.right)if(!o.deleted&&o.countable){if(n<=o.length){n<o.length&&Zr(e,Vr(o.id.client,o.id.clock+n));break}n-=o.length}return t._searchMarker&&Es(t._searchMarker,s,r.length),js(e,t,o,r)},Rs=(e,t,n,r)=>{if(0===r)return;const s=n,i=r,o=Ss(t,n);let l=t._start;for(null!==o&&(l=o.p,n-=o.index);null!==l&&n>0;l=l.right)!l.deleted&&l.countable&&(n<l.length&&Zr(e,Vr(l.id.client,l.id.clock+n)),n-=l.length);for(;r>0&&null!==l;)l.deleted||(r<l.length&&Zr(e,Vr(l.id.client,l.id.clock+r)),l.delete(e),r-=l.length),l=l.right;if(r>0)throw Ls();t._searchMarker&&Es(t._searchMarker,s,-i+r)},Ms=(e,t,n)=>{const r=t._map.get(n);void 0!==r&&r.delete(e)},Ns=(e,t,n,r)=>{const s=t._map.get(n)||null,i=e.doc,o=i.clientID;let l;if(null==r)l=new xi([r]);else switch(r.constructor){case Number:case Object:case Boolean:case Array:case String:case Date:case BigInt:l=new xi([r]);break;case Uint8Array:l=new mi(r);break;case Cr:l=new wi(r);break;default:if(!(r instanceof Cs))throw new Error("Unexpected content type");l=new Pi(r)}new Mi(Vr(o,qr(i.store,o)),s,s&&s.lastId,null,null,t,n,l).integrate(e,0)},$s=(e,t)=>{e.doc??vs();const n=e._map.get(t);return void 0===n||n.deleted?void 0:n.content.getContent()[n.length-1]},Bs=e=>{const t={};return e.doc??vs(),e._map.forEach(((e,n)=>{e.deleted||(t[n]=e.content.getContent()[e.length-1])})),t},Fs=(e,t)=>{e.doc??vs();const n=e._map.get(t);return void 0!==n&&!n.deleted},Ws=e=>{return e.doc??vs(),t=e._map.entries(),n=e=>!e[1].deleted,gr((()=>{let e;do{e=t.next()}while(!e.done&&!n(e.value));return e}));var t,n};class Vs extends ms{}class Ks extends Cs{constructor(){super(),this._prelimContent=[],this._searchMarker=[]}static from(e){const t=new Ks;return t.push(e),t}_integrate(e,t){super._integrate(e,t),this.insert(0,this._prelimContent),this._prelimContent=null}_copy(){return new Ks}clone(){const e=new Ks;return e.insert(0,this.toArray().map((e=>e instanceof Cs?e.clone():e))),e}get length(){return this.doc??vs(),this._length}_callObserver(e,t){super._callObserver(e,t),xs(this,e,new Vs(this,e))}insert(e,t){null!==this.doc?ls(this.doc,(n=>{Ps(n,this,e,t)})):this._prelimContent.splice(e,0,...t)}push(e){null!==this.doc?ls(this.doc,(t=>{((e,t,n)=>{let r=(t._searchMarker||[]).reduce(((e,t)=>t.index>e.index?t:e),{index:0,p:t._start}).p;if(r)for(;r.right;)r=r.right;js(e,t,r,n)})(t,this,e)})):this._prelimContent.push(...e)}unshift(e){this.insert(0,e)}delete(e,t=1){null!==this.doc?ls(this.doc,(n=>{Rs(n,this,e,t)})):this._prelimContent.splice(e,t)}get(e){return Us(this,e)}toArray(){return As(this)}slice(e=0,t=this.length){return Is(this,e,t)}toJSON(){return this.map((e=>e instanceof Cs?e.toJSON():e))}map(e){return Os(this,e)}forEach(e){Ds(this,e)}[Symbol.iterator](){return Ts(this)}_write(e){e.writeTypeRef(Ai)}}class Hs extends ms{constructor(e,t,n){super(e,t),this.keysChanged=n}}class zs extends Cs{constructor(e){super(),this._prelimContent=null,this._prelimContent=void 0===e?new Map:new Map(e)}_integrate(e,t){super._integrate(e,t),this._prelimContent.forEach(((e,t)=>{this.set(t,e)})),this._prelimContent=null}_copy(){return new zs}clone(){const e=new zs;return this.forEach(((t,n)=>{e.set(n,t instanceof Cs?t.clone():t)})),e}_callObserver(e,t){xs(this,e,new Hs(this,e,t))}toJSON(){this.doc??vs();const e={};return this._map.forEach(((t,n)=>{if(!t.deleted){const r=t.content.getContent()[t.length-1];e[n]=r instanceof Cs?r.toJSON():r}})),e}get size(){return[...Ws(this)].length}keys(){return yr(Ws(this),(e=>e[0]))}values(){return yr(Ws(this),(e=>e[1].content.getContent()[e[1].length-1]))}entries(){return yr(Ws(this),(e=>[e[0],e[1].content.getContent()[e[1].length-1]]))}forEach(e){this.doc??vs(),this._map.forEach(((t,n)=>{t.deleted||e(t.content.getContent()[t.length-1],n,this)}))}[Symbol.iterator](){return this.entries()}delete(e){null!==this.doc?ls(this.doc,(t=>{Ms(t,this,e)})):this._prelimContent.delete(e)}set(e,t){return null!==this.doc?ls(this.doc,(n=>{Ns(n,this,e,t)})):this._prelimContent.set(e,t),t}get(e){return $s(this,e)}has(e){return Fs(this,e)}clear(){null!==this.doc?ls(this.doc,(e=>{this.forEach((function(t,n,r){Ms(e,r,n)}))})):this._prelimContent.clear()}_write(e){e.writeTypeRef(Di)}}const Js=(e,t)=>e===t||"object"==typeof e&&"object"==typeof t&&e&&t&&((e,t)=>e===t||Kn(e)===Kn(t)&&((e,t)=>{for(const n in e)if(!t(e[n],n))return!1;return!0})(e,((e,n)=>(void 0!==e||Hn(t,n))&&t[n]===e)))(e,t);class qs{constructor(e,t,n,r){this.left=e,this.right=t,this.index=n,this.currentAttributes=r}forward(){if(null===this.right&&pn(),this.right.content.constructor===ki)this.right.deleted||Xs(this.currentAttributes,this.right.content);else this.right.deleted||(this.index+=this.right.length);this.left=this.right,this.right=this.right.right}}const Ys=(e,t,n)=>{for(;null!==t.right&&n>0;){if(t.right.content.constructor===ki)t.right.deleted||Xs(t.currentAttributes,t.right.content);else t.right.deleted||(n<t.right.length&&Zr(e,Vr(t.right.id.client,t.right.id.clock+n)),t.index+=t.right.length,n-=t.right.length);t.left=t.right,t.right=t.right.right}return t},Gs=(e,t,n,r)=>{const s=new Map,i=r?Ss(t,n):null;if(i){const t=new qs(i.p.left,i.p,i.index,s);return Ys(e,t,n-i.index)}{const r=new qs(null,t._start,0,s);return Ys(e,r,n)}},Qs=(e,t,n,r)=>{for(;null!==n.right&&(!0===n.right.deleted||n.right.content.constructor===ki&&Js(r.get(n.right.content.key),n.right.content.value));)n.right.deleted||r.delete(n.right.content.key),n.forward();const s=e.doc,i=s.clientID;r.forEach(((r,o)=>{const l=n.left,c=n.right,a=new Mi(Vr(i,qr(s.store,i)),l,l&&l.lastId,c,c&&c.id,t,null,new ki(o,r));a.integrate(e,0),n.right=a,n.forward()}))},Xs=(e,t)=>{const{key:n,value:r}=t;null===r?e.delete(n):e.set(n,r)},Zs=(e,t)=>{for(;null!==e.right&&(e.right.deleted||e.right.content.constructor===ki&&Js(t[e.right.content.key]??null,e.right.content.value));)e.forward()},ei=(e,t,n,r)=>{const s=e.doc,i=s.clientID,o=new Map;for(const l in r){const c=r[l],a=n.currentAttributes.get(l)??null;if(!Js(a,c)){o.set(l,a);const{left:r,right:u}=n;n.right=new Mi(Vr(i,qr(s.store,i)),r,r&&r.lastId,u,u&&u.id,t,null,new ki(l,c)),n.right.integrate(e,0),n.forward()}}return o},ti=(e,t,n,r,s)=>{n.currentAttributes.forEach(((e,t)=>{void 0===s[t]&&(s[t]=null)}));const i=e.doc,o=i.clientID;Zs(n,s);const l=ei(e,t,n,s),c=r.constructor===String?new Ci(r):r instanceof Cs?new Pi(r):new _i(r);let{left:a,right:u,index:d}=n;t._searchMarker&&Es(t._searchMarker,n.index,c.getLength()),u=new Mi(Vr(o,qr(i.store,o)),a,a&&a.lastId,u,u&&u.id,t,null,c),u.integrate(e,0),n.right=u,n.index=d,n.forward(),Qs(e,t,n,l)},ni=(e,t,n,r,s)=>{const i=e.doc,o=i.clientID;Zs(n,s);const l=ei(e,t,n,s);e:for(;null!==n.right&&(r>0||l.size>0&&(n.right.deleted||n.right.content.constructor===ki));){if(!n.right.deleted)switch(n.right.content.constructor){case ki:{const{key:t,value:i}=n.right.content,o=s[t];if(void 0!==o){if(Js(o,i))l.delete(t);else{if(0===r)break e;l.set(t,i)}n.right.delete(e)}else n.currentAttributes.set(t,i);break}default:r<n.right.length&&Zr(e,Vr(n.right.id.client,n.right.id.clock+r)),r-=n.right.length}n.forward()}if(r>0){let s="";for(;r>0;r--)s+="\n";n.right=new Mi(Vr(o,qr(i.store,o)),n.left,n.left&&n.left.lastId,n.right,n.right&&n.right.id,t,null,new Ci(s)),n.right.integrate(e,0),n.forward()}Qs(e,t,n,l)},ri=(e,t,n,r,s)=>{let i=t;const o=bt();for(;i&&(!i.countable||i.deleted);){if(!i.deleted&&i.content.constructor===ki){const e=i.content;o.set(e.key,e)}i=i.right}let l=0,c=!1;for(;t!==i;){if(n===t&&(c=!0),!t.deleted){const n=t.content;switch(n.constructor){case ki:{const{key:i,value:a}=n,u=r.get(i)??null;o.get(i)===n&&u!==a||(t.delete(e),l++,c||(s.get(i)??null)!==a||u===a||(null===u?s.delete(i):s.set(i,u))),c||t.deleted||Xs(s,n);break}}}t=t.right}return l},si=e=>{let t=0;return ls(e.doc,(n=>{let r=e._start,s=e._start,i=bt();const o=vt(i);for(;s;){if(!1===s.deleted)if(s.content.constructor===ki)Xs(o,s.content);else t+=ri(n,r,s,i,o),i=vt(o),r=s;s=s.right}})),t},ii=e=>{const t=new Set,n=e.doc;for(const[r,s]of e.afterState.entries()){const i=e.beforeState.get(r)||0;s!==i&&ts(e,n.store.clients.get(r),i,s,(e=>{e.deleted||e.content.constructor!==ki||e.constructor===yi||t.add(e.parent)}))}ls(n,(n=>{vr(e,e.deleteSet,(e=>{if(e instanceof yi||!e.parent._hasFormatting||t.has(e.parent))return;const r=e.parent;e.content.constructor===ki?t.add(r):((e,t)=>{for(;t&&t.right&&(t.right.deleted||!t.right.countable);)t=t.right;const n=new Set;for(;t&&(t.deleted||!t.countable);){if(!t.deleted&&t.content.constructor===ki){const r=t.content.key;n.has(r)?t.delete(e):n.add(r)}t=t.left}})(n,e)}));for(const e of t)si(e)}))},oi=(e,t,n)=>{const r=n,s=vt(t.currentAttributes),i=t.right;for(;n>0&&null!==t.right;){if(!1===t.right.deleted)switch(t.right.content.constructor){case Pi:case _i:case Ci:n<t.right.length&&Zr(e,Vr(t.right.id.client,t.right.id.clock+n)),n-=t.right.length,t.right.delete(e)}t.forward()}i&&ri(e,i,t.right,s,t.currentAttributes);const o=(t.left||t.right).parent;return o._searchMarker&&Es(o._searchMarker,t.index,-r+n),t};class li extends ms{constructor(e,t,n){super(e,t),this.childListChanged=!1,this.keysChanged=new Set,n.forEach((e=>{null===e?this.childListChanged=!0:this.keysChanged.add(e)}))}get changes(){if(null===this._changes){const e={keys:this.keys,delta:this.delta,added:new Set,deleted:new Set};this._changes=e}return this._changes}get delta(){if(null===this._delta){const e=this.target.doc,t=[];ls(e,(e=>{const n=new Map,r=new Map;let s=this.target._start,i=null;const o={};let l="",c=0,a=0;const u=()=>{if(null!==i){let e=null;switch(i){case"delete":a>0&&(e={delete:a}),a=0;break;case"insert":("object"==typeof l||l.length>0)&&(e={insert:l},n.size>0&&(e.attributes={},n.forEach(((t,n)=>{null!==t&&(e.attributes[n]=t)})))),l="";break;case"retain":c>0&&(e={retain:c},(e=>{for(const t in e)return!1;return!0})(o)||(e.attributes=Fn({},o))),c=0}e&&t.push(e),i=null}};for(;null!==s;){switch(s.content.constructor){case Pi:case _i:this.adds(s)?this.deletes(s)||(u(),i="insert",l=s.content.getContent()[0],u()):this.deletes(s)?("delete"!==i&&(u(),i="delete"),a+=1):s.deleted||("retain"!==i&&(u(),i="retain"),c+=1);break;case Ci:this.adds(s)?this.deletes(s)||("insert"!==i&&(u(),i="insert"),l+=s.content.str):this.deletes(s)?("delete"!==i&&(u(),i="delete"),a+=s.length):s.deleted||("retain"!==i&&(u(),i="retain"),c+=s.length);break;case ki:{const{key:t,value:l}=s.content;if(this.adds(s)){if(!this.deletes(s)){const c=n.get(t)??null;Js(c,l)?null!==l&&s.delete(e):("retain"===i&&u(),Js(l,r.get(t)??null)?delete o[t]:o[t]=l)}}else if(this.deletes(s)){r.set(t,l);const e=n.get(t)??null;Js(e,l)||("retain"===i&&u(),o[t]=e)}else if(!s.deleted){r.set(t,l);const n=o[t];void 0!==n&&(Js(n,l)?null!==n&&s.delete(e):("retain"===i&&u(),null===l?delete o[t]:o[t]=l))}s.deleted||("insert"===i&&u(),Xs(n,s.content));break}}s=s.right}for(u();t.length>0;){const e=t[t.length-1];if(void 0===e.retain||void 0!==e.attributes)break;t.pop()}})),this._delta=t}return this._delta}}class ci extends Cs{constructor(e){super(),this._pending=void 0!==e?[()=>this.insert(0,e)]:[],this._searchMarker=[],this._hasFormatting=!1}get length(){return this.doc??vs(),this._length}_integrate(e,t){super._integrate(e,t);try{this._pending.forEach((e=>e()))}catch(e){}this._pending=null}_copy(){return new ci}clone(){const e=new ci;return e.applyDelta(this.toDelta()),e}_callObserver(e,t){super._callObserver(e,t);const n=new li(this,e,t);xs(this,e,n),!e.local&&this._hasFormatting&&(e._needFormattingCleanup=!0)}toString(){this.doc??vs();let e="",t=this._start;for(;null!==t;)!t.deleted&&t.countable&&t.content.constructor===Ci&&(e+=t.content.str),t=t.right;return e}toJSON(){return this.toString()}applyDelta(e,{sanitize:t=!0}={}){null!==this.doc?ls(this.doc,(n=>{const r=new qs(null,this._start,0,new Map);for(let s=0;s<e.length;s++){const i=e[s];if(void 0!==i.insert){const o=t||"string"!=typeof i.insert||s!==e.length-1||null!==r.right||"\n"!==i.insert.slice(-1)?i.insert:i.insert.slice(0,-1);("string"!=typeof o||o.length>0)&&ti(n,this,r,o,i.attributes||{})}else void 0!==i.retain?ni(n,this,r,i.retain,i.attributes||{}):void 0!==i.delete&&oi(n,r,i.delete)}})):this._pending.push((()=>this.applyDelta(e)))}toDelta(e,t,n){this.doc??vs();const r=[],s=new Map,i=this.doc;let o="",l=this._start;function c(){if(o.length>0){const e={};let t=!1;s.forEach(((n,r)=>{t=!0,e[r]=n}));const n={insert:o};t&&(n.attributes=e),r.push(n),o=""}}const a=()=>{for(;null!==l;){if(Kr(l,e)||void 0!==t&&Kr(l,t))switch(l.content.constructor){case Ci:{const r=s.get("ychange");void 0===e||Kr(l,e)?void 0===t||Kr(l,t)?void 0!==r&&(c(),s.delete("ychange")):void 0!==r&&r.user===l.id.client&&"added"===r.type||(c(),s.set("ychange",n?n("added",l.id):{type:"added"})):void 0!==r&&r.user===l.id.client&&"removed"===r.type||(c(),s.set("ychange",n?n("removed",l.id):{type:"removed"})),o+=l.content.str;break}case Pi:case _i:{c();const e={insert:l.content.getContent()[0]};if(s.size>0){const t={};e.attributes=t,s.forEach(((e,n)=>{t[n]=e}))}r.push(e);break}case ki:Kr(l,e)&&(c(),Xs(s,l.content))}l=l.right}c()};return e||t?ls(i,(n=>{e&&Hr(n,e),t&&Hr(n,t),a()}),"cleanup"):a(),r}insert(e,t,n){if(t.length<=0)return;const r=this.doc;null!==r?ls(r,(r=>{const s=Gs(r,this,e,!n);n||(n={},s.currentAttributes.forEach(((e,t)=>{n[t]=e}))),ti(r,this,s,t,n)})):this._pending.push((()=>this.insert(e,t,n)))}insertEmbed(e,t,n){const r=this.doc;null!==r?ls(r,(r=>{const s=Gs(r,this,e,!n);ti(r,this,s,t,n||{})})):this._pending.push((()=>this.insertEmbed(e,t,n||{})))}delete(e,t){if(0===t)return;const n=this.doc;null!==n?ls(n,(n=>{oi(n,Gs(n,this,e,!0),t)})):this._pending.push((()=>this.delete(e,t)))}format(e,t,n){if(0===t)return;const r=this.doc;null!==r?ls(r,(r=>{const s=Gs(r,this,e,!1);null!==s.right&&ni(r,this,s,t,n)})):this._pending.push((()=>this.format(e,t,n)))}removeAttribute(e){null!==this.doc?ls(this.doc,(t=>{Ms(t,this,e)})):this._pending.push((()=>this.removeAttribute(e)))}setAttribute(e,t){null!==this.doc?ls(this.doc,(n=>{Ns(n,this,e,t)})):this._pending.push((()=>this.setAttribute(e,t)))}getAttribute(e){return $s(this,e)}getAttributes(){return Bs(this)}_write(e){e.writeTypeRef(Oi)}}class ai{constructor(e,t=(()=>!0)){this._filter=t,this._root=e,this._currentNode=e._start,this._firstCall=!0,e.doc??vs()}[Symbol.iterator](){return this}next(){let e=this._currentNode,t=e&&e.content&&e.content.type;if(null!==e&&(!this._firstCall||e.deleted||!this._filter(t)))do{if(t=e.content.type,e.deleted||t.constructor!==di&&t.constructor!==ui||null===t._start)for(;null!==e;){const t=e.next;if(null!==t){e=t;break}e=e.parent===this._root?null:e.parent._item}else e=t._start}while(null!==e&&(e.deleted||!this._filter(e.content.type)));return this._firstCall=!1,null===e?{value:void 0,done:!0}:(this._currentNode=e,{value:e.content.type,done:!1})}}class ui extends Cs{constructor(){super(),this._prelimContent=[]}get firstChild(){const e=this._first;return e?e.content.getContent()[0]:null}_integrate(e,t){super._integrate(e,t),this.insert(0,this._prelimContent),this._prelimContent=null}_copy(){return new ui}clone(){const e=new ui;return e.insert(0,this.toArray().map((e=>e instanceof Cs?e.clone():e))),e}get length(){return this.doc??vs(),null===this._prelimContent?this._length:this._prelimContent.length}createTreeWalker(e){return new ai(this,e)}querySelector(e){e=e.toUpperCase();const t=new ai(this,(t=>t.nodeName&&t.nodeName.toUpperCase()===e)).next();return t.done?null:t.value}querySelectorAll(e){return e=e.toUpperCase(),Et(new ai(this,(t=>t.nodeName&&t.nodeName.toUpperCase()===e)))}_callObserver(e,t){xs(this,e,new hi(this,t,e))}toString(){return Os(this,(e=>e.toString())).join("")}toJSON(){return this.toString()}toDOM(e=document,t={},n){const r=e.createDocumentFragment();return void 0!==n&&n._createAssociation(r,this),Ds(this,(s=>{r.insertBefore(s.toDOM(e,t,n),null)})),r}insert(e,t){null!==this.doc?ls(this.doc,(n=>{Ps(n,this,e,t)})):this._prelimContent.splice(e,0,...t)}insertAfter(e,t){if(null!==this.doc)ls(this.doc,(n=>{const r=e&&e instanceof Cs?e._item:e;js(n,this,r,t)}));else{const n=this._prelimContent,r=null===e?0:n.findIndex((t=>t===e))+1;if(0===r&&null!==e)throw hn("Reference item not found");n.splice(r,0,...t)}}delete(e,t=1){null!==this.doc?ls(this.doc,(n=>{Rs(n,this,e,t)})):this._prelimContent.splice(e,t)}toArray(){return As(this)}push(e){this.insert(this.length,e)}unshift(e){this.insert(0,e)}get(e){return Us(this,e)}slice(e=0,t=this.length){return Is(this,e,t)}forEach(e){Ds(this,e)}_write(e){e.writeTypeRef(Ui)}}class di extends ui{constructor(e="UNDEFINED"){super(),this.nodeName=e,this._prelimAttrs=new Map}get nextSibling(){const e=this._item?this._item.next:null;return e?e.content.type:null}get prevSibling(){const e=this._item?this._item.prev:null;return e?e.content.type:null}_integrate(e,t){super._integrate(e,t),this._prelimAttrs.forEach(((e,t)=>{this.setAttribute(t,e)})),this._prelimAttrs=null}_copy(){return new di(this.nodeName)}clone(){const e=new di(this.nodeName);return((e,t)=>{for(const n in e)t(e[n],n)})(this.getAttributes(),((t,n)=>{"string"==typeof t&&e.setAttribute(n,t)})),e.insert(0,this.toArray().map((e=>e instanceof Cs?e.clone():e))),e}toString(){const e=this.getAttributes(),t=[],n=[];for(const t in e)n.push(t);n.sort();const r=n.length;for(let s=0;s<r;s++){const r=n[s];t.push(r+'="'+e[r]+'"')}const s=this.nodeName.toLocaleLowerCase();return`<${s}${t.length>0?" "+t.join(" "):""}>${super.toString()}</${s}>`}removeAttribute(e){null!==this.doc?ls(this.doc,(t=>{Ms(t,this,e)})):this._prelimAttrs.delete(e)}setAttribute(e,t){null!==this.doc?ls(this.doc,(n=>{Ns(n,this,e,t)})):this._prelimAttrs.set(e,t)}getAttribute(e){return $s(this,e)}hasAttribute(e){return Fs(this,e)}getAttributes(e){return e?((e,t)=>{const n={};return e._map.forEach(((e,r)=>{let s=e;for(;null!==s&&(!t.sv.has(s.id.client)||s.id.clock>=(t.sv.get(s.id.client)||0));)s=s.left;null!==s&&Kr(s,t)&&(n[r]=s.content.getContent()[s.length-1])})),n})(this,e):Bs(this)}toDOM(e=document,t={},n){const r=e.createElement(this.nodeName),s=this.getAttributes();for(const e in s){const t=s[e];"string"==typeof t&&r.setAttribute(e,t)}return Ds(this,(s=>{r.appendChild(s.toDOM(e,t,n))})),void 0!==n&&n._createAssociation(r,this),r}_write(e){e.writeTypeRef(Ti),e.writeKey(this.nodeName)}}class hi extends ms{constructor(e,t,n){super(e,n),this.childListChanged=!1,this.attributesChanged=new Set,t.forEach((e=>{null===e?this.childListChanged=!0:this.attributesChanged.add(e)}))}}class fi extends zs{constructor(e){super(),this.hookName=e}_copy(){return new fi(this.hookName)}clone(){const e=new fi(this.hookName);return this.forEach(((t,n)=>{e.set(n,t)})),e}toDOM(e=document,t={},n){const r=t[this.hookName];let s;return s=void 0!==r?r.createDom(this):document.createElement(this.hookName),s.setAttribute("data-yjs-hook",this.hookName),void 0!==n&&n._createAssociation(s,this),s}_write(e){e.writeTypeRef(ji),e.writeKey(this.hookName)}}class pi extends ci{get nextSibling(){const e=this._item?this._item.next:null;return e?e.content.type:null}get prevSibling(){const e=this._item?this._item.prev:null;return e?e.content.type:null}_copy(){return new pi}clone(){const e=new pi;return e.applyDelta(this.toDelta()),e}toDOM(e=document,t,n){const r=e.createTextNode(this.toString());return void 0!==n&&n._createAssociation(r,this),r}toString(){return this.toDelta().map((e=>{const t=[];for(const n in e.attributes){const r=[];for(const t in e.attributes[n])r.push({key:t,value:e.attributes[n][t]});r.sort(((e,t)=>e.key<t.key?-1:1)),t.push({nodeName:n,attrs:r})}t.sort(((e,t)=>e.nodeName<t.nodeName?-1:1));let n="";for(let e=0;e<t.length;e++){const r=t[e];n+=`<${r.nodeName}`;for(let e=0;e<r.attrs.length;e++){const t=r.attrs[e];n+=` ${t.key}="${t.value}"`}n+=">"}n+=e.insert;for(let e=t.length-1;e>=0;e--)n+=`</${t[e].nodeName}>`;return n})).join("")}toJSON(){return this.toString()}_write(e){e.writeTypeRef(Li)}}class gi{constructor(e,t){this.id=e,this.length=t}get deleted(){throw fn()}mergeWith(e){return!1}write(e,t,n){throw fn()}integrate(e,t){throw fn()}}class yi extends gi{get deleted(){return!0}delete(){}mergeWith(e){return this.constructor===e.constructor&&(this.length+=e.length,!0)}integrate(e,t){t>0&&(this.id.clock+=t,this.length-=t),Yr(e.doc.store,this)}write(e,t){e.writeInfo(0),e.writeLen(this.length-t)}getMissing(e,t){return null}}class mi{constructor(e){this.content=e}getLength(){return 1}getContent(){return[this.content]}isCountable(){return!0}copy(){return new mi(this.content)}splice(e){throw fn()}mergeWith(e){return!1}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeBuf(this.content)}getRef(){return 3}}class bi{constructor(e){this.len=e}getLength(){return this.len}getContent(){return[]}isCountable(){return!1}copy(){return new bi(this.len)}splice(e){const t=new bi(this.len-e);return this.len=e,t}mergeWith(e){return this.len+=e.len,!0}integrate(e,t){kr(e.deleteSet,t.id.client,t.id.clock,this.len),t.markDeleted()}delete(e){}gc(e){}write(e,t){e.writeLen(this.len-t)}getRef(){return 1}}const vi=(e,t)=>new Cr({guid:e,...t,shouldLoad:t.shouldLoad||t.autoLoad||!1});class wi{constructor(e){e._item,this.doc=e;const t={};this.opts=t,e.gc||(t.gc=!1),e.autoLoad&&(t.autoLoad=!0),null!==e.meta&&(t.meta=e.meta)}getLength(){return 1}getContent(){return[this.doc]}isCountable(){return!0}copy(){return new wi(vi(this.doc.guid,this.opts))}splice(e){throw fn()}mergeWith(e){return!1}integrate(e,t){this.doc._item=t,e.subdocsAdded.add(this.doc),this.doc.shouldLoad&&e.subdocsLoaded.add(this.doc)}delete(e){e.subdocsAdded.has(this.doc)?e.subdocsAdded.delete(this.doc):e.subdocsRemoved.add(this.doc)}gc(e){}write(e,t){e.writeString(this.doc.guid),e.writeAny(this.opts)}getRef(){return 9}}class _i{constructor(e){this.embed=e}getLength(){return 1}getContent(){return[this.embed]}isCountable(){return!0}copy(){return new _i(this.embed)}splice(e){throw fn()}mergeWith(e){return!1}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeJSON(this.embed)}getRef(){return 5}}class ki{constructor(e,t){this.key=e,this.value=t}getLength(){return 1}getContent(){return[]}isCountable(){return!1}copy(){return new ki(this.key,this.value)}splice(e){throw fn()}mergeWith(e){return!1}integrate(e,t){const n=t.parent;n._searchMarker=null,n._hasFormatting=!0}delete(e){}gc(e){}write(e,t){e.writeKey(this.key),e.writeJSON(this.value)}getRef(){return 6}}class Si{constructor(e){this.arr=e}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new Si(this.arr)}splice(e){const t=new Si(this.arr.slice(e));return this.arr=this.arr.slice(0,e),t}mergeWith(e){return this.arr=this.arr.concat(e.arr),!0}integrate(e,t){}delete(e){}gc(e){}write(e,t){const n=this.arr.length;e.writeLen(n-t);for(let r=t;r<n;r++){const t=this.arr[r];e.writeString(void 0===t?"undefined":JSON.stringify(t))}}getRef(){return 2}}const Ei="development"===Zn("node_env");class xi{constructor(e){this.arr=e,Ei&&Jn(e)}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new xi(this.arr)}splice(e){const t=new xi(this.arr.slice(e));return this.arr=this.arr.slice(0,e),t}mergeWith(e){return this.arr=this.arr.concat(e.arr),!0}integrate(e,t){}delete(e){}gc(e){}write(e,t){const n=this.arr.length;e.writeLen(n-t);for(let r=t;r<n;r++){const t=this.arr[r];e.writeAny(t)}}getRef(){return 8}}class Ci{constructor(e){this.str=e}getLength(){return this.str.length}getContent(){return this.str.split("")}isCountable(){return!0}copy(){return new Ci(this.str)}splice(e){const t=new Ci(this.str.slice(e));this.str=this.str.slice(0,e);const n=this.str.charCodeAt(e-1);return n>=55296&&n<=56319&&(this.str=this.str.slice(0,e-1)+"�",t.str="�"+t.str.slice(1)),t}mergeWith(e){return this.str+=e.str,!0}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeString(0===t?this.str:this.str.slice(t))}getRef(){return 4}}const Ii=[e=>new Ks,e=>new zs,e=>new ci,e=>new di(e.readKey()),e=>new ui,e=>new fi(e.readKey()),e=>new pi],Ai=0,Di=1,Oi=2,Ti=3,Ui=4,ji=5,Li=6;class Pi{constructor(e){this.type=e}getLength(){return 1}getContent(){return[this.type]}isCountable(){return!0}copy(){return new Pi(this.type._copy())}splice(e){throw fn()}mergeWith(e){return!1}integrate(e,t){this.type._integrate(e.doc,t)}delete(e){let t=this.type._start;for(;null!==t;)t.deleted?t.id.clock<(e.beforeState.get(t.id.client)||0)&&e._mergeStructs.push(t):t.delete(e),t=t.right;this.type._map.forEach((t=>{t.deleted?t.id.clock<(e.beforeState.get(t.id.client)||0)&&e._mergeStructs.push(t):t.delete(e)})),e.changed.delete(this.type)}gc(e){let t=this.type._start;for(;null!==t;)t.gc(e,!0),t=t.right;this.type._start=null,this.type._map.forEach((t=>{for(;null!==t;)t.gc(e,!0),t=t.left})),this.type._map=new Map}write(e,t){this.type._write(e)}getRef(){return 7}}const Ri=(e,t,n)=>{const{client:r,clock:s}=t.id,i=new Mi(Vr(r,s+n),t,Vr(r,s+n-1),t.right,t.rightOrigin,t.parent,t.parentSub,t.content.splice(n));return t.deleted&&i.markDeleted(),t.keep&&(i.keep=!0),null!==t.redone&&(i.redone=Vr(t.redone.client,t.redone.clock+n)),t.right=i,null!==i.right&&(i.right.left=i),e._mergeStructs.push(i),null!==i.parentSub&&null===i.right&&i.parent._map.set(i.parentSub,i),t.length=n,i};class Mi extends gi{constructor(e,t,n,r,s,i,o,l){super(e,l.getLength()),this.origin=n,this.left=t,this.right=r,this.rightOrigin=s,this.parent=i,this.parentSub=o,this.redone=null,this.content=l,this.info=this.content.isCountable()?2:0}set marker(e){(8&this.info)>0!==e&&(this.info^=8)}get marker(){return(8&this.info)>0}get keep(){return(1&this.info)>0}set keep(e){this.keep!==e&&(this.info^=1)}get countable(){return(2&this.info)>0}get deleted(){return(4&this.info)>0}set deleted(e){this.deleted!==e&&(this.info^=4)}markDeleted(){this.info|=4}getMissing(e,t){if(this.origin&&this.origin.client!==this.id.client&&this.origin.clock>=qr(t,this.origin.client))return this.origin.client;if(this.rightOrigin&&this.rightOrigin.client!==this.id.client&&this.rightOrigin.clock>=qr(t,this.rightOrigin.client))return this.rightOrigin.client;if(this.parent&&this.parent.constructor===Fr&&this.id.client!==this.parent.client&&this.parent.clock>=qr(t,this.parent.client))return this.parent.client;if(this.origin&&(this.left=es(e,t,this.origin),this.origin=this.left.lastId),this.rightOrigin&&(this.right=Zr(e,this.rightOrigin),this.rightOrigin=this.right.id),this.left&&this.left.constructor===yi||this.right&&this.right.constructor===yi)this.parent=null;else if(this.parent){if(this.parent.constructor===Fr){const e=Qr(t,this.parent);e.constructor===yi?this.parent=null:this.parent=e.content.type}}else this.left&&this.left.constructor===Mi?(this.parent=this.left.parent,this.parentSub=this.left.parentSub):this.right&&this.right.constructor===Mi&&(this.parent=this.right.parent,this.parentSub=this.right.parentSub);return null}integrate(e,t){if(t>0&&(this.id.clock+=t,this.left=es(e,e.doc.store,Vr(this.id.client,this.id.clock-1)),this.origin=this.left.lastId,this.content=this.content.splice(t),this.length-=t),this.parent){if(!this.left&&(!this.right||null!==this.right.left)||this.left&&this.left.right!==this.right){let t,n=this.left;if(null!==n)t=n.right;else if(null!==this.parentSub)for(t=this.parent._map.get(this.parentSub)||null;null!==t&&null!==t.left;)t=t.left;else t=this.parent._start;const r=new Set,s=new Set;for(;null!==t&&t!==this.right;){if(s.add(t),r.add(t),Wr(this.origin,t.origin)){if(t.id.client<this.id.client)n=t,r.clear();else if(Wr(this.rightOrigin,t.rightOrigin))break}else{if(null===t.origin||!s.has(Qr(e.doc.store,t.origin)))break;r.has(Qr(e.doc.store,t.origin))||(n=t,r.clear())}t=t.right}this.left=n}if(null!==this.left){const e=this.left.right;this.right=e,this.left.right=this}else{let e;if(null!==this.parentSub)for(e=this.parent._map.get(this.parentSub)||null;null!==e&&null!==e.left;)e=e.left;else e=this.parent._start,this.parent._start=this;this.right=e}null!==this.right?this.right.left=this:null!==this.parentSub&&(this.parent._map.set(this.parentSub,this),null!==this.left&&this.left.delete(e)),null===this.parentSub&&this.countable&&!this.deleted&&(this.parent._length+=this.length),Yr(e.doc.store,this),this.content.integrate(e,this),ss(e,this.parent,this.parentSub),(null!==this.parent._item&&this.parent._item.deleted||null!==this.parentSub&&null!==this.right)&&this.delete(e)}else new yi(this.id,this.length).integrate(e,0)}get next(){let e=this.right;for(;null!==e&&e.deleted;)e=e.right;return e}get prev(){let e=this.left;for(;null!==e&&e.deleted;)e=e.left;return e}get lastId(){return 1===this.length?this.id:Vr(this.id.client,this.id.clock+this.length-1)}mergeWith(e){if(this.constructor===e.constructor&&Wr(e.origin,this.lastId)&&this.right===e&&Wr(this.rightOrigin,e.rightOrigin)&&this.id.client===e.id.client&&this.id.clock+this.length===e.id.clock&&this.deleted===e.deleted&&null===this.redone&&null===e.redone&&this.content.constructor===e.content.constructor&&this.content.mergeWith(e.content)){const t=this.parent._searchMarker;return t&&t.forEach((t=>{t.p===e&&(t.p=this,!this.deleted&&this.countable&&(t.index-=this.length))})),e.keep&&(this.keep=!0),this.right=e.right,null!==this.right&&(this.right.left=this),this.length+=e.length,!0}return!1}delete(e){if(!this.deleted){const t=this.parent;this.countable&&null===this.parentSub&&(t._length-=this.length),this.markDeleted(),kr(e.deleteSet,this.id.client,this.id.clock,this.length),ss(e,t,this.parentSub),this.content.delete(e)}}gc(e,t){if(!this.deleted)throw pn();this.content.gc(e),t?((e,t,n)=>{const r=e.clients.get(t.id.client);r[Gr(r,t.id.clock)]=n})(e,this,new yi(this.id,this.length)):this.content=new bi(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:Lt)|(null===r?0:jt)|(null===s?0:32);if(e.writeInfo(i),null!==n&&e.writeLeftID(n),null!==r&&e.writeRightID(r),null===n&&null===r){const t=this.parent;if(void 0!==t._item){const n=t._item;if(null===n){const n=(e=>{for(const[t,n]of e.doc.share.entries())if(n===e)return t;throw pn()})(t);e.writeParentInfo(!0),e.writeString(n)}else e.writeParentInfo(!1),e.writeLeftID(n.id)}else t.constructor===String?(e.writeParentInfo(!0),e.writeString(t)):t.constructor===Fr?(e.writeParentInfo(!1),e.writeLeftID(t)):pn();null!==s&&e.writeString(s)}this.content.write(e,t)}}const Ni=(e,t)=>$i[31&t](e),$i=[()=>{pn()},e=>new bi(e.readLen()),e=>{const t=e.readLen(),n=[];for(let r=0;r<t;r++){const t=e.readString();"undefined"===t?n.push(void 0):n.push(JSON.parse(t))}return new Si(n)},e=>new mi(e.readBuf()),e=>new Ci(e.readString()),e=>new _i(e.readJSON()),e=>new ki(e.readKey(),e.readJSON()),e=>new Pi(Ii[e.readTypeRef()](e)),e=>{const t=e.readLen(),n=[];for(let r=0;r<t;r++)n.push(e.readAny());return new xi(n)},e=>new wi(vi(e.readString(),e.readAny())),()=>{pn()}];class Bi extends gi{get deleted(){return!0}delete(){}mergeWith(e){return this.constructor===e.constructor&&(this.length+=e.length,!0)}integrate(e,t){pn()}write(e,t){e.writeInfo(10),Yt(e.restEncoder,this.length-t)}getMissing(e,t){return null}}const Fi="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},Wi="__ $YJS$ __";function Vi(e,t,n){var r,s,i;if(!e.dx._allTables[t])return;const o=null===(i=null===(s=null===(r=e.table(t))||void 0===r?void 0:r.schema.yProps)||void 0===s?void 0:s.find((e=>e.prop===n)))||void 0===i?void 0:i.updatesTable;return o&&e.dx._allTables[o]?e.table(o):void 0}Fi[Wi],Fi[Wi]=!0;const Ki=new FinalizationRegistry((({cache:e,key:t})=>{delete e[t]}));function Hi(e){var t,n;return null!==(t=(n=e._novip)._docCache)&&void 0!==t?t:n._docCache={cache:{},get size(){return Object.keys(this.cache).length},find(e,t,n){const r=qi(e,t,n),s=this.cache[r];return s?s.deref():void 0},add(e){var t;const{parentTable:n,parentId:r,parentProp:s}=e.meta;if(!n||!s||null==r)throw new Error("Missing Dexie-related metadata in Y.Doc");const i=qi(n,r,s),o=null===(t=this.cache[i])||void 0===t?void 0:t.deref();o&&Ki.unregister(o),this.cache[i]=new WeakRef(e),Ki.register(e,{cache:this.cache,key:i},e)},delete(e){Ki.unregister(e);const t=qi(e.meta.parentTable,e.meta.parentId,e.meta.parentProp),n=this.cache[t];(null==n?void 0:n.deref())===e&&delete this.cache[t]}}}const zi=new WeakSet;function Ji(e){if(zi.has(e))throw new Error(`Y.Doc ${e.meta.parentId} has been destroyed`)}function qi(e,t,n){return`${e}[${t}].${n}`}let Yi=null;function Gi(e){Yi=e}function Qi(){}const Xi=new WeakMap;function Zi(){return e.Dexie.Events(null,"load","sync","error")}class eo{static getOrCreateDocument(e,t,n,r){var s,i;const o=Hi(e),l=null===(i=null===(s=e.table(t).schema.yProps)||void 0===s?void 0:s.find((e=>e.prop===n)))||void 0===i?void 0:i.updatesTable;if(!l)throw new Error(`Updates table for ${t}.${n} not found`);return function(e,t,n,r,s,i){let o=t.find(n,i,r);return o||(o=new Cr({meta:{db:e,updatesTable:s,parentProp:r,parentTable:n,parentId:i}}),t.add(o),o.on("destroy",(()=>{zi.add(o),t.delete(o)})),o)}(e,o,t,n,l,r)}static load(e,t){var n;let r=Xi.get(e);return r?(++r.refCount,null!=(null==t?void 0:t.gracePeriod)&&r.graceTimeout<t.gracePeriod&&(r.graceTimeout=t.gracePeriod),r.graceTimer&&(clearTimeout(r.graceTimer),r.graceTimer=null)):(r=new eo(e),r.graceTimeout=null!==(n=null==t?void 0:t.gracePeriod)&&void 0!==n?n:-1,Xi.set(e,r)),r}static release(e){if(!e||zi.has(e))return;const t=Xi.get(e);t?--t.refCount<=0&&(t.graceTimeout<0?t._release():t.graceTimer||(t.graceTimer=setTimeout((()=>{t.graceTimer=null,0===t.refCount&&t._release()}),t.graceTimeout))):e.destroy()}_release(){this.doc&&Promise.resolve(eo.on("beforeunload").fire(this)).finally((()=>{var e;0===this.refCount&&(null===(e=this.doc)||void 0===e||e.destroy())}))}static for(e){return Xi.get(e)}static get currentUpdateRow(){return Yi}get whenLoaded(){return this._whenLoaded||(this._whenLoaded=new Promise(((t,n)=>{this.doc?this.doc.isLoaded?t():this._error?n(this._error):zi.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):zi.has(this.doc)?n(new e.Dexie.AbortError("Document was destroyed before synced")):(this.on("sync",t),this.on("error",n),this.doc.on("destroy",(()=>n(new e.Dexie.AbortError("Document was destroyed before synced"))))):n(new Error("No Y.Doc associated with this provider"))}))),this._whenSynced}constructor(t){this.refCount=1,this.cleanupHandlers=[],this.graceTimeout=-1,this.doc=null,this.destroyed=!1,this.on=Zi(),this.doc=t,this.off=(e,t)=>{var n;return null===(n=this.on[e])||void 0===n?void 0:n.unsubscribe(t)},"dispose"in Symbol&&(this[Symbol.dispose]=()=>eo.release(t)),t.on("load",(()=>this.on("load").fire())),t.on("sync",(e=>!1!==e&&this.on("sync").fire())),t.on("destroy",this.destroy.bind(this)),this.on("error",(e=>{this._error=e}));const{db:n,parentTable:r,parentId:s,updatesTable:i}=t.meta||{};if(!n||!r||!i)throw new Error("Missing Dexie-related metadata in Y.Doc. Documents need to be obtained through Y.Doc properties from dexie queries.");if(!n.table(r)||!n.table(i))throw new Error(`Table ${r} or ${i} not found in db`);Ji(t),this.stopObserving=function(t,n,r,s,i,o){let l=0,c=!0;const a=e.liveQuery((()=>{Ji(n);const t=r.table(i);return Promise.all([(l>0?t.where("i").between(l,1/0,!1).toArray().then((t=>t.filter((t=>0===e.cmp(t.k,o))))):t.where({k:o}).toArray()).then((e=>e)),r.table(s).where(":id").equals(o).toArray()])})).subscribe((([e,r])=>{e.length>0&&(l=e[e.length-1].i),0!==r.length?(Ji(n),e.length>0&&ls(n,(()=>{e.forEach((e=>{try{Gi(e),Pr(n,e.u)}finally{Gi(null)}}))}),t,!1),c&&(c=!1,n.emit("load",[n]))):n.destroy()}),(e=>{t.on("error").fire(e)})),u=(e,n)=>{n!==t&&r.table(i).add({k:o,u:e,f:1}).then((e=>{e===l-1&&++l})).catch((e=>{t.on("error").fire(e)}))},d=()=>{a.unsubscribe(),n.off("updateV2",u),n.off("destroy",d)};return n.on("updateV2",u),n.on("destroy",d),d}(this,t,n,r,i,s),eo.on("new").fire(this)}destroy(){var e;Xi.delete(this.doc),this.doc=null,this.destroyed=!0,this.refCount=0,null===(e=this.stopObserving)||void 0===e||e.call(this),this.on=Zi(),this.cleanupHandlers.forEach((e=>e()))}addCleanupHandler(e){this.cleanupHandlers.push("function"==typeof e?e:()=>e.unsubscribe())}}function to(t,n){return r(this,void 0,void 0,(function*(){var s;const i={};let o,l=!1;for(const c of t)try{switch(c.type){case"u-s":{const e=Vi(n,c.table,c.prop);if(e){const t={k:c.k,u:c.u};c.r&&(t.r=c.r,o=c.r),i[e.name]=yield e.add(t)}break}case"u-ack":{const e=Vi(n,c.table,c.prop);e&&(yield n.transaction("rw",e,(t=>r(this,void 0,void 0,(function*(){let n=yield t.table(e.name).get(yt);yield t.table(e.name).put(Object.assign(Object.assign({},n||{i:yt}),{unsentFrom:Math.max((null==n?void 0:n.unsentFrom)||1,c.i+1)}))})))));break}case"u-reject":{const t=Vi(n,c.table,c.prop);if(!t)break;const r=null===(s=yield t.get(c.i))||void 0===s?void 0:s.k;if(null!=r){yield n.transaction("rw",t,(n=>(n.idbtrans._rejecting_y_ypdate=!0,t.where("i").aboveOrEqual(c.i).filter((t=>0===e.cmp(t.k,r)&&1==(1&(t.f||0)))).delete())));const s=eo.getDocCache(n.dx).find(c.table,r,c.prop);s&&s.destroy()}break}case"in-sync":{const e=eo.getDocCache(n.dx).find(c.table,c.k,c.prop);e&&!e.isSynced&&e.emit("sync",[!0,e]);break}case"y-complete-sync-done":o=c.yServerRev;break;case"outdated-server-rev":l=!0}}catch(e){}return{receivedUntils:i,resyncNeeded:l,yServerRevision:o}}))}eo.on=e.Dexie.Events(null,{new:[function(e,t){return e===Qi?t:function(){e.apply(this,arguments),t.apply(this,arguments)}}],beforeunload:[function(e,t){return e===Qi?t:function(){var n=e.apply(this,arguments);if(n&&"function"==typeof n.then){for(var r=this,s=arguments.length,i=new Array(s);s--;)i[s]=arguments[s];return n.then((function(){return t.apply(r,i)}))}return t.apply(this,arguments)}}]}),eo.getDocCache=Hi,e.Dexie.DexieYProvider?eo=e.Dexie.DexieYProvider||eo:e.Dexie.DexieYProvider=eo;const no=1,ro=2,so=3;function io(t,n,s){return r(this,arguments,void 0,(function*(t,n,{yDownloadedRealms:s,realms:c}){if(s&&c&&c.every((e=>"*"===s[e])))return;const a=yield xe(t),u={"Content-Type":"application/json",Accept:"application/octet-stream"};a&&(u.Authorization=`Bearer ${a.accessToken}`);const d=yield fetch(`${n}/y/download`,{body:nt.stringify({downloadedRealms:s||{}}),method:"POST",headers:u,credentials:"include"});if(!d.ok)throw new Error(`Failed to download Yjs documents from server. Status: ${d.status}`);yield async function(e,...t){var n,r,s;let i=e();for(let e=0;e<t.length;e++)i=t[e](i);try{for(var o,c=!0,a=l(i);!(n=(o=await a.next()).done);c=!0)o.value,c=!1}catch(e){r={error:e}}finally{try{c||n||!(s=a.return)||await s.call(a)}finally{if(r)throw r.error}}}(function(e){return function(){return o(this,arguments,(function*(){if(!e.body)throw new Error("Response body is not readable");const t=e.body.getReader();try{for(;;){const{done:e,value:n}=yield i(t.read());if(e)return yield i(void 0);yield yield i(n)}}finally{t.releaseLock()}}))}}(d),ve,(function(s){return o(this,arguments,(function*(){var o,c,a,u;let d=null,h=null,f=null,p=[];function g(e){return r(this,void 0,void 0,(function*(){const r=p[p.length-1];if(p.length>0){if(!d||!h||!f)throw new Error(`Protocol error from ${n}/y/download`);const e=Vi(t,h,f);e&&(yield e.bulkAdd(p)),p=[]}d&&(h&&f&&r||e)&&(yield t.$syncState.update("syncState",(t=>{const n=t.yDownloadedRealms||{};n[d]=e?"*":{tbl:h,prop:f,key:r.k},t.yDownloadedRealms=n})))}))}try{try{for(var y,m=!0,b=l(s);!(o=(y=yield i(b.next())).done);m=!0){u=y.value,m=!1;const e=new ae(u);for(;ue(e);)switch(he(e)){case no:yield i(g(!0)),d=pe(e);break;case ro:yield i(g(!1)),h=pe(e),f=pe(e);break;case so:{const t=be(e),n=de(e);p.push({k:t,u:n});break}}yield i(g(!1))}}catch(e){c={error:e}}finally{try{m||o||!(a=b.return)||(yield i(a.call(b)))}finally{if(c)throw c.error}}yield i(g(!0))}catch(t){throw t instanceof e.DexieError||(yield i(g(!1))),t}}))}))}))}const oo="currentSyncWorker";function lo(e,t,n,s){return co(e,t,n,s).then((t=>((null==s?void 0:s.justCheckIfNeeded)||e.syncStateChangedEvent.next({phase:"in-sync"}),t))).catch((i=>r(this,void 0,void 0,(function*(){return(null==s?void 0:s.justCheckIfNeeded)?Promise.reject(i):dt&&(null==s?void 0:s.retryImmediatelyOnFetchError)&&"TypeError"===(null==i?void 0:i.name)&&/fetch/.test(null==i?void 0:i.message)?(e.syncStateChangedEvent.next({phase:"error",error:i}),yield new Promise((e=>setTimeout(e,500))),yield lo(e,t,n,Object.assign(Object.assign({},s),{retryImmediatelyOnFetchError:!1}))):(yield e.$syncState.update("syncState",{timestamp:new Date,error:""+i}),e.syncStateChangedEvent.next({phase:dt?"error":"offline",error:new Error(""+(null==i?void 0:i.message)||i)}),Promise.reject(i))}))))}function co(e,t,n){return r(this,arguments,void 0,(function*(e,t,n,{isInitialSync:s,cancelToken:i,justCheckIfNeeded:o,purpose:l}={isInitialSync:!1}){var a;if(!(null===(a=e.cloud.options)||void 0===a?void 0:a.databaseUrl))throw new Error("Internal error: sync must not be called when no databaseUrl is configured");const{databaseUrl:u}=t,d=yield e.getCurrentUser(),h=d.isLoggedIn?k(e):[],f=h.map((t=>e.table(S(t.name)))),p=yield e.getPersistedSyncState(),g=d.isLoggedIn,y=g?function(e,t){const n=(null==t?void 0:t.syncedTables)||[];return k(e).filter((e=>!n.includes(e.name)))}(e,p):[];ut(i);const m=y.length>0;if(m){if(o)return!0;yield e.transaction("rw",y,(e=>r(this,void 0,void 0,(function*(){e.idbtrans.disableChangeTracking=!0,e.idbtrans.disableAccessControl=!0,yield function(e,t,n){return r(this,void 0,void 0,(function*(){const r=new Set(n||[]);for(const n of e)"members"===n.name?yield n.toCollection().modify((e=>{r.has(e.realmId)||e.userId&&e.userId!==c.userId||(e.userId=t.userId)})):"roles"===n.name||("realms"===n.name?yield n.toCollection().modify((e=>{r.has(e.realmId)||void 0!==e.owner&&e.owner!==c.userId||(e.owner=t.userId)})):yield n.toCollection().modify((e=>{e.realmId&&r.has(e.realmId)||(e.owner&&e.owner!==c.userId||(e.owner=t.userId),e.realmId&&e.realmId!==c.userId||(e.realmId=t.userId))})))}))}(y,d,null==p?void 0:p.realms)})))),ut(i)}const[b,v,w,{yMessages:_,lastUpdateIds:x}]=yield e.transaction("r",e.tables,(()=>r(this,void 0,void 0,(function*(){const t=yield e.getPersistedSyncState();let s=yield e.$baseRevs.toArray();s=s.filter((e=>h.some((t=>t.name===e.tableName))));let o=yield I(f,e);const l=yield function(e,t){return r(this,void 0,void 0,(function*(){const n=[],r={};for(const s of t)if(s.schema.yProps)for(const t of s.schema.yProps){const i=e.table(t.updatesTable),o=yield i.get(yt),l=(null==o?void 0:o.unsentFrom)||1,c=(null==o?void 0:o.receivedUntil)||0,a=Math.min(l,c+1),u=yield mt(i,a);u.length>0&&(r[i.name]=u[u.length-1].i);const d={};for(const e of u){const t=1==(1&(e.f||0));if(t&&e.i<l)continue;const n=JSON.stringify(e.k)+"/"+t;let r=d[n];r?(r.u.push(e.u),r.i=Math.max(e.i,r.i)):(d[n]=r={i:e.i,k:e.k,isLocal:t,u:[]},r.u.push(e.u))}for(const{k:e,isLocal:r,u:i,i:o}of Object.values(d)){const l=1===i.length?i[0]:hs(i);if(r)n.push({type:"u-c",table:s.name,prop:t.prop,k:e,u:l,i:o});else{const r=us(l);n.push({type:"sv",table:s.name,prop:t.prop,k:e,sv:r})}}}return{yMessages:n,lastUpdateIds:r}}))}(e,h);if(ut(i),m){const e=[...(null==p?void 0:p.realms)||[],...(null==p?void 0:p.inviteRealms)||[]],c=yield function(e,t,n,s){return r(this,void 0,void 0,(function*(){const i=`upload-${A(8)}`;if(t.isLoggedIn&&e.length>0){const o=new Set(s||[]);return(yield Promise.all(e.map((e=>r(this,void 0,void 0,(function*(){const{extractKey:r}=e.core.schema.primaryKey;if(!r)return{table:e.name,muts:[]};const s=n[e.name],l=(null==s?void 0:s.generatedGlobalId)?e.filter((e=>{return r(e),!o.has(e.realmId||"")&&(t=r(e),!(n=null==s?void 0:s.idPrefix)||"string"==typeof t&&t.startsWith(n));var t,n})):e.filter((e=>{const t=r(e);return!o.has(e.realmId||"")&&j(t)})),c=yield l.toArray();if(c.length>0){const n={type:"upsert",values:c,keys:c.map(r),userId:t.userId,txid:i};return{table:e.name,muts:[n]}}return{table:e.name,muts:[]}})))))).filter((e=>e.muts.length>0))}return[]}))}(y,d,n,e);return ut(i),o=o.concat(c),[o,t,s,l]}return[o,t,s,l]})))),C=b.some((e=>e.muts.some((e=>e.keys.length>0))))||_.some((e=>"u-c"===e.type));if(o)return C;if("push"===l&&!C)return!1;const D=ft(b,null==v?void 0:v.latestRevisions),O=(null==v?void 0:v.clientIdentity)||T(16);ut(i);const U=yield at(b,_,v,w,e,u,n,O,d),{done:L,newSyncState:P}=yield e.transaction("rw",e.tables,(t=>r(this,void 0,void 0,(function*(){t.idbtrans.disableChangeTracking=!0,t.idbtrans.disableAccessControl=!0;for(const e of Object.keys(n))U.schema[e]&&(n[e]=U.schema[e]);yield e.$syncState.put(n,"schema");const s=yield I(f,e,{since:D});for(const t of f){const n=E(t.name);if(s.some((e=>e.table===n&&e.muts.length>0))){if(D[n]){const r=D[n]||0;yield Promise.all([t.where("rev").belowOrEqual(r).delete(),e.$baseRevs.where(":id").between([n,-1/0],[n,r+1],!0,!0).reverse().offset(1).delete()])}}else yield Promise.all([t.clear(),e.$baseRevs.where({tableName:n}).delete()])}ft(s,D),yield ht(e,n,D,U.serverRevision);const i=yield e.getPersistedSyncState();yield function(e,t,n){return r(this,void 0,void 0,(function*(){const r=new Set,s=new Set,i=n?n.realms:[],o=n?n.inviteRealms:[],l=new Set(t.realms),c=new Set(t.realms.concat(t.inviteRealms));for(const e of i)l.has(e)||(s.add(e),c.has(e)||r.add(e));for(const e of o.concat(i))c.has(e)||r.add(e);if(r.size>0||s.size>0){const t=k(e);for(const e of t){let t=["realms","members","roles"].includes(e.name)?r:s;0!==t.size&&(e.schema.indexes.some((e=>"realmId"===e.keyPath||Array.isArray(e.keyPath)&&"realmId"===e.keyPath[0]))?yield e.where("realmId").anyOf([...t]).delete():yield e.filter((e=>!!(null==e?void 0:e.realmId)&&t.has(e.realmId))).delete())}}if(s.size>0&&(null==n?void 0:n.yDownloadedRealms))for(const e of s)delete n.yDownloadedRealms[e]}))}(e,U,i);const o=i||{syncedTables:[],latestRevisions:{},realms:[],inviteRealms:[],clientIdentity:O};g&&(o.syncedTables=h.map((e=>e.name)).concat(y.map((e=>e.name)))),o.latestRevisions=D,o.remoteDbId=U.dbId,o.initiallySynced=!0,o.realms=U.realms,o.inviteRealms=U.inviteRealms,o.serverRevision=U.serverRevision,o.yServerRevision=U.serverRevision,o.timestamp=new Date,delete o.error;const l=ao(U.changes,s);if(yield gt(l,e),U.yMessages){const{receivedUntils:t,resyncNeeded:n,yServerRevision:s}=yield to(U.yMessages,e);s&&(o.yServerRevision=s),yield function(e,t,n){return r(this,void 0,void 0,(function*(){var s,i,o,l,c;const a={};for(const[t,n]of Object.entries(e))null!==(s=a[t])&&void 0!==s||(a[t]={}),a[t].unsentFrom=n+1;for(const[e,n]of Object.entries(t))null!==(i=a[e])&&void 0!==i||(a[e]={}),a[e].receivedUntil=n;const u=Object.values(n.dx._dbSchema).filter((e=>e.yProps)).map((e=>e.yProps.map((e=>e.updatesTable)))).flat();for(const e of u){const t=a[e],s=null!==(o=null==t?void 0:t.unsentFrom)&&void 0!==o?o:1,i=null!==(c=null!==(l=null==t?void 0:t.receivedUntil)&&void 0!==l?l:(yield n.table(e).where("i").between(1,1/0).reverse().limit(1).primaryKeys())[0])&&void 0!==c?c:0;yield n.transaction("rw",e,(()=>r(this,void 0,void 0,(function*(){const t=yield n.table(e).get(yt);t?(t.unsentFrom=Math.max(s,t.unsentFrom||1),t.receivedUntil=Math.max(i,t.receivedUntil||0),yield n.table(e).put(t)):yield n.table(e).add({i:yt,unsentFrom:s,receivedUntil:i})}))))}}))}(x,t,e),n&&(o.yDownloadedRealms={})}return e.$syncState.put(o,"syncState"),{done:0===s.length,newSyncState:o}}))));if(!L)return yield ct(e),yield co(e,t,n,{isInitialSync:s,cancelToken:i});const R=Object.values(n).some((e=>{var t;return null===(t=e.yProps)||void 0===t?void 0:t.length})),M=!!U.yMessages;if(R&&M)try{yield io(e,u,P)}catch(e){}return e.syncCompleteEvent.next(),!1}))}function ao(e,t){const n={};R(n,e);const r={};return R(r,t),function(e,t){var n,r,s;for(const[i,o]of Object.entries(t))for(const[t,l]of Object.entries(o))switch(l.type){case"ups":{const r=null===(n=e[i])||void 0===n?void 0:n[t];if(r)switch(r.type){case"ups":case"upd":delete e[i][t]}}break;case"del":null===(r=e[i])||void 0===r||delete r[t];break;case"upd":{const n=null===(s=e[i])||void 0===s?void 0:s[t];if(n)switch(n.type){case"ups":for(const[e,t]of Object.entries(l.mod))O(n.val,e,t);break;case"del":break;case"upd":for(const e of Object.keys(l.mod))delete n.mod[e]}break}}}(n,r),function(e,t=""){t||(t=T(16));const n={};for(const[t,r]of Object.entries(e))for(const[e,s]of Object.entries(r)){const r=n[t]||(n[t]={});(r[s.type]||(r[s.type]=[])).push(Object.assign({key:e},s))}const r=[];for(const[e,s]of Object.entries(n)){const n={table:e,muts:[]};for(const[e,r]of Object.entries(s))switch(e){case"ups":{const e={type:"upsert",keys:r.map((e=>e.key)),values:r.map((e=>e.val)),txid:t};n.muts.push(e);break}case"upd":{const e={type:"update",keys:r.map((e=>e.key)),changeSpecs:r.map((e=>e.mod)),txid:t};n.muts.push(e);break}case"del":{const e={type:"delete",keys:r.map((e=>e.key)),txid:t};n.muts.push(e);break}}r.push(n)}return r}(n)}const uo=10,ho=1e4,fo=1e3;function po(s){const i=[],o=new t.BehaviorSubject(!0),l=new t.BehaviorSubject(null);let c=!1,a=new Array(uo).fill(0);return l.subscribe((()=>r(this,void 0,void 0,(function*(){if(!c&&i.length>0){c=!0,a.shift(),a.push(Date.now()),o.next(!1);try{yield function(){return r(this,void 0,void 0,(function*(){for(var o,l,c,a,u,d;i.length>0;){const h=i.shift();try{yield t.firstValueFrom(s.cloud.syncState.pipe(n.filter((({phase:e})=>"in-sync"===e||"error"===e))));const i=s.cloud.persistedSyncState.value;if(!h)continue;switch(h.type){case"token-expired":const t=s.cloud.currentUser.value,n=yield Ie(s.cloud.options.databaseUrl,t);yield s.table("$logins").update(t.userId,{accessToken:n.accessToken,accessTokenExpiration:n.accessTokenExpiration,claims:n.claims,license:n.license,data:n.data});break;case"realm-added":(null===(o=null==i?void 0:i.realms)||void 0===o?void 0:o.includes(h.realm))||(null===(l=null==i?void 0:i.inviteRealms)||void 0===l?void 0:l.includes(h.realm))||(yield s.cloud.sync({purpose:"pull",wait:!0}));break;case"realm-accepted":(null===(c=null==i?void 0:i.realms)||void 0===c?void 0:c.includes(h.realm))||(yield s.cloud.sync({purpose:"pull",wait:!0}));break;case"realm-removed":((null===(a=null==i?void 0:i.realms)||void 0===a?void 0:a.includes(h.realm))||(null===(u=null==i?void 0:i.inviteRealms)||void 0===u?void 0:u.includes(h.realm)))&&(yield s.cloud.sync({purpose:"pull",wait:!0}));break;case"realms-changed":yield s.cloud.sync({purpose:"pull",wait:!0});break;case"changes":if("error"===(null===(d=s.cloud.syncState.value)||void 0===d?void 0:d.phase)){y(s,"pull");break}yield s.transaction("rw",s.dx.tables,(t=>r(this,void 0,void 0,(function*(){t.idbtrans.disableChangeTracking=!0,t.idbtrans.disableAccessControl=!0;const[n,r,i]=yield Promise.all([s.getSchema(),s.getPersistedSyncState(),s.getCurrentUser()]);if(!r||!n||!i)return;if(h.baseRev!==r.serverRevision)return void("string"!=typeof h.baseRev||"bigint"!=typeof r.serverRevision&&"object"!=typeof r.serverRevision||y(s,"pull"));if((yield e.waitFor(_(r)))!==h.realmSetHash)return void y(s,"pull");let o=[];if(i.isLoggedIn){const e=k(s).map((e=>s.table(S(e.name))));o=yield I(e,s)}if(h.changes.length>0){const e=ao(h.changes,o);yield gt(e,s)}r.latestRevisions=ft(o,r.latestRevisions),r.serverRevision=h.newRev,yield ht(s,n,r.latestRevisions,h.newRev),yield s.$syncState.put(r,"syncState")}))))}}catch(e){}}}))}()}finally{a[a.length-1]-a[0]<ho&&(yield new Promise((e=>setTimeout(e,fo)))),c=!1,o.next(!0)}}})))),{enqueue:function(e){i.push(e),l.next(null)},readyToServe:o}}const go=new WeakMap,yo={members:"@id, [userId+realmId], [email+realmId], realmId",roles:"[realmId+name]",realms:"@realmId",$jobs:"",$syncState:"",$baseRevs:"[tableName+clientRev]",$logins:"claims.sub, lastLogin"};let mo=0;function bo(e){"vip"in e&&(e=e.vip);let n=go.get(e.cloud);if(!n){const r=new t.Subject;let s=new f(`syncstatechanged-${e.name}`),i=new f(`synccomplete-${e.name}`);r.id=++mo;let o=!1;n={get name(){return e.name},close:()=>e.close(),transaction:e.transaction.bind(e),table:e.table.bind(e),get tables(){return e.tables},cloud:e.cloud,get $jobs(){return e.table("$jobs")},get $syncState(){return e.table("$syncState")},get $baseRevs(){return e.table("$baseRevs")},get $logins(){return e.table("$logins")},get realms(){return e.realms},get members(){return e.members},get roles(){return e.roles},get initiallySynced(){return o},localSyncEvent:r,get syncStateChangedEvent(){return s},get syncCompleteEvent(){return i},dx:e};const l={getCurrentUser:()=>n.$logins.toArray().then((e=>e.find((e=>e.isLoggedIn))||c)),getPersistedSyncState:()=>n.$syncState.get("syncState"),getSchema:()=>n.$syncState.get("schema").then((e=>{if(e)for(const r of n.tables)r.schema.primKey&&r.schema.primKey.keyPath&&e[r.name]&&(e[r.name].primaryKey="string"==typeof(t=r.schema.primKey.keyPath)?t:t?"["+[].join.call(t,"+")+"]":"");var t;return e})),getOptions:()=>n.$syncState.get("options"),setInitiallySynced(e){o=e},reconfigure(){s=new f(`syncstatechanged-${e.name}`),i=new f(`synccomplete-${e.name}`)}};Object.assign(n,l),n.messageConsumer=po(n),n.messageProducer=new t.Subject,go.set(e.cloud,n)}return n}const vo=new WeakMap;class wo{constructor(e,t){vo.set(this,e),Object.assign(this,t)}static load(e,t){return e.table("$logins").get(t).then((n=>new wo(e,n||{userId:t,claims:{sub:t},lastLogin:new Date(0)})))}save(){return r(this,void 0,void 0,(function*(){vo.get(this).table("$logins").put(this)}))}}function _o(e,n){return t.firstValueFrom(t.from(e).pipe(t.filter(n)))}function ko(e){return r(this,void 0,void 0,(function*(){const t=yield So(e);if(t){if(!(yield function(e,t,n){return r(this,void 0,void 0,(function*(){const r=[{type:"warning",messageCode:"LOGOUT_CONFIRMATION",message:"{numUnsyncedChanges} unsynced changes will get lost!\n Logout anyway?",messageParams:{currentUserId:t,numUnsyncedChanges:n.toString()}}];return yield _e(e,{type:"logout-confirmation",title:"Confirm Logout",alerts:r,fields:{},submitLabel:"Confirm logout",cancelLabel:"Cancel"}).then((()=>!0)).catch((()=>!1))}))}(e.cloud.userInteraction,e.cloud.currentUserId,t)))throw new Error("User cancelled logout due to unsynced changes");yield So(e,{deleteUnsyncedData:!0})}}))}function So(e){return r(this,arguments,void 0,(function*(e,{deleteUnsyncedData:t=!1}={}){const[n,s]=yield e.dx.transaction("rw",e.dx.tables,(n=>r(this,void 0,void 0,(function*(){const r=n.idbtrans;r.disableChangeTracking=!0,r.disableAccessControl=!0;const s=n.storeNames.filter((e=>e.endsWith("_mutations"))),i=(yield Promise.all(s.map((e=>n.table(e).count())))).reduce(((e,t)=>e+t),0);if(i>0&&!t)return[i,!1];e.$syncState.delete("syncState");for(const t of e.dx.tables)"$jobs"!==t.name&&"$syncState"!==t.name&&t.clear();return[i,!0]}))));return s&&(yield _o(e.cloud.currentUser,(e=>e.userId===c.userId)),yield e.cloud.sync({purpose:"pull",wait:!0})),n}))}function Eo(e,...t){globalThis.console[e](...t)}function xo(e,t){return r(this,void 0,void 0,(function*(){var n;const s=yield e.getCurrentUser(),i=s.userId;if(s.isLoggedIn&&(!t||!t.email&&!t.userId)){if("ok"===((null===(n=s.license)||void 0===n?void 0:n.status)||"ok")&&s.accessToken&&(!s.accessTokenExpiration||s.accessTokenExpiration.getTime()>Date.now()))return!1;if(s.refreshToken&&(!s.refreshTokenExpiration||s.refreshTokenExpiration.getTime()>Date.now()))return yield xe(e),!1}const o=new wo(e,{claims:{},lastLogin:new Date(0)});return yield Ce(e.cloud.options.databaseUrl,o,e.cloud.options.fetchTokens||function(e){const{userInteraction:t}=e.cloud;return function(n){return r(this,arguments,void 0,(function*({public_key:n,hints:r}){var s;let i;const o=null===(s=e.cloud.options)||void 0===s?void 0:s.databaseUrl;if(!o)throw new Error("No database URL given.");if("demo"===(null==r?void 0:r.grant_type))i={demo_user:yield Se(t,"Enter a demo user email",(null==r?void 0:r.email)||(null==r?void 0:r.userId)),grant_type:"demo",scopes:["ACCESS_DB"],public_key:n};else if((null==r?void 0:r.otpId)&&r.otp)i={grant_type:"otp",otp_id:r.otpId,otp:r.otp,scopes:["ACCESS_DB"],public_key:n};else{const e=yield Se(t,"Enter email address",null==r?void 0:r.email);i=/@demo.local$/.test(e)?{demo_user:e,grant_type:"demo",scopes:["ACCESS_DB"],public_key:n}:{email:e,grant_type:"otp",scopes:["ACCESS_DB"]}}const l=yield fetch(`${o}/token`,{body:JSON.stringify(i),method:"post",headers:{"Content-Type":"application/json",mode:"cors"}});if(200!==l.status){const e=yield l.text();throw yield ke(t,"Token request failed",{type:"error",messageCode:"GENERIC_ERROR",message:e,messageParams:{}}).catch((()=>{})),new st(l,e)}const c=yield l.json();if("tokens"===c.type||"error"===c.type)return c;if("otp"===i.grant_type&&"email"in i){if("otp-sent"!==c.type)throw new Error(`Unexpected response from ${o}/token`);const e=yield Ee(t,i.email),r=Object.assign(Object.assign({},i),{otp:e||"",otp_id:c.otp_id,public_key:n});let s=yield fetch(`${o}/token`,{body:JSON.stringify(r),method:"post",headers:{"Content-Type":"application/json"},mode:"cors"});for(;401===s.status;){const e=yield s.text();r.otp=yield Ee(t,i.email,{type:"error",messageCode:"INVALID_OTP",message:e,messageParams:{}}),s=yield fetch(`${o}/token`,{body:JSON.stringify(r),method:"post",headers:{"Content-Type":"application/json"},mode:"cors"})}if(200!==s.status){const e=yield s.text();throw new st(s,e)}return yield s.json()}throw new Error(`Unexpected response from ${o}/token`)}))}}(e),e.cloud.userInteraction,t),i!==c.userId&&o.userId!==i&&(yield ko(e)),yield function(e,t){return r(this,void 0,void 0,(function*(){const n=e.table("$logins");yield e.transaction("rw",n,(e=>r(this,void 0,void 0,(function*(){const e=yield n.toArray();yield Promise.all(e.filter((e=>e.userId!==t.userId&&e.isLoggedIn)).map((e=>(e.isLoggedIn=!1,n.put(e))))),t.isLoggedIn=!0,t.lastLogin=new Date;try{yield t.save()}catch(e){try{"DataCloneError"===e.name&&(Eo("debug","Login context property names:",Object.keys(t)),Eo("debug","Login context property names:",Object.keys(t)),Eo("debug","Login context:",t),Eo("debug","Login context JSON:",JSON.stringify(t)))}catch(e){}throw e}})))),yield _o(e.cloud.currentUser,(e=>e.userId===t.userId))}))}(e,o),y(e,"pull"),o.userId!==i}))}const Co="undefined"!=typeof InstallTrigger,Io="undefined"!=typeof navigator&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\/|Edge\//.test(navigator.userAgent),Ao=Io?[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]:NaN,Do=Io&&Ao<=605||Co,Oo="undefined"!=typeof self&&"clients"in self&&!self.document;const{toString:To}={};function Uo(e){return To.call(e).slice(8,-1)}function jo(e,t){var n;return"delete"===t.type?t.keys:(null===(n=t.keys)||void 0===n?void 0:n.slice())||t.values.map(e.extractKey)}const Lo=/b|c|d|f|g|h|j|k|l|m|n|p|q|r|s|t|v|x|y|z/i;let Po=0;function Ro(e,t){const n=new Uint8Array(18),r=new Uint8Array(n.buffer,0,6),s=Date.now();Po>=s?++Po:Po=s,r[0]=Po/1099511627776,r[1]=Po/4294967296,r[2]=Po/16777216,r[3]=Po/65536,r[4]=Po/256,r[5]=Po;const i=new Uint8Array(n.buffer,6);crypto.getRandomValues(i);return e+$e(new Uint8Array(n.buffer))+(t||"")}function Mo(t){return{stack:"dbcore",name:"idGenerationMiddleware",level:1,create:n=>Object.assign(Object.assign({},n),{table:r=>{const s=n.table(r);return Object.assign(Object.assign({},s),{mutate:n=>{var i,o;const l=n.trans;if("versionchange"===l.mode&&(l.disableChangeTracking=!0,l.disableAccessControl=!0),l.disableChangeTracking)return s.mutate(n);if("add"===n.type||"put"===n.type){const l=null===(i=t.cloud.schema)||void 0===i?void 0:i[r];if(null==l?void 0:l.generatedGlobalId){if((null===(o=t.cloud.options)||void 0===o?void 0:o.databaseUrl)&&!t.initiallySynced){const e=jo(s.schema.primaryKey,n);return s.getMany({keys:e,trans:n.trans,cache:"immutable"}).then((t=>{if(t.length<e.length)throw new Error("Unable to create new objects without an initial sync having been performed.");return s.mutate(n)}))}return function(n,i){let o=null;const l=jo(s.schema.primaryKey,n);return l.forEach(((c,a)=>{if(void 0===c){const r=n.values[a].realmId||t.cloud.currentUserId,c=r.substr(r.length-3);l[a]=Ro(i,c),s.schema.primaryKey.outbound||(o||(o=n.values.slice()),o[a]=e.deepClone(o[a]),e.setByKeyPath(o[a],s.schema.primaryKey.keyPath,l[a]))}else if("string"!=typeof c||!c.startsWith(i)&&!c.startsWith("#"+i))throw new e.ConstraintError(`The ID "${c}" is not valid for table "${r}". Primary '@' keys requires the key to be prefixed with "${i}" (or "#${i}).\nIf you want to generate IDs programmatically, remove '@' from the schema to get rid of this constraint. Dexie Cloud supports custom IDs as long as they are random and globally unique.`)})),s.mutate(Object.assign(Object.assign({},n),{keys:l,values:o||n.values}))}(n,l.idPrefix)}if(null==l?void 0:l.markedForSync){jo(s.schema.primaryKey,n).forEach(((t,n)=>{if(!j(t)){const n=Array.isArray(t)?t.map(Uo).join(","):Uo(t);throw new e.ConstraintError(`Invalid primary key type ${n} for table ${r}. Tables marked for sync has primary keys of type string or Array of string (and optional numbers)`)}}))}}return s.mutate(n)}})}})}}let No=0;function $o(e,t){return function(n){const{readers:r,writers:s}=n.trans[t]||(n.trans[t]={writers:[],readers:[]}),i=s.length,o=(i>0?s[i-1].then((()=>e(n)),(()=>e(n))):e(n)).finally((()=>{r.splice(r.indexOf(o))}));return r.push(o),o}}function Bo(e,t){return function(n){const{readers:r,writers:s}=n.trans[t]||(n.trans[t]={writers:[],readers:[]});let i=(s.length>0?s[s.length-1].then((()=>e(n)),(()=>e(n))):r.length>0?(o=r,new Promise((e=>{0===o.length&&e([]);let t=o.length;const n=new Array(t);o.forEach(((r,s)=>Promise.resolve(r).then((e=>n[s]={status:"fulfilled",value:e}),(e=>n[s]={status:"rejected",reason:e})).then((()=>--t||e(n)))))}))).then((()=>e(n))):e(n)).finally((()=>{s.shift()}));var o;return s.push(i),i}}const Fo=new t.BehaviorSubject(new Set);function Wo(e){var t,n,r,s;return(null===(t=e.cloud.options)||void 0===t?void 0:t.disableEagerSync)||"ok"!==(null===(r=null===(n=e.cloud.currentUser.value)||void 0===n?void 0:n.license)||void 0===r?void 0:r.status)||!(null===(s=e.cloud.options)||void 0===s?void 0:s.databaseUrl)}function Vo({currentUserObservable:t,db:n}){return{stack:"dbcore",name:"MutationTrackingMiddleware",level:1,create:r=>{const s=new Set(r.schema.tables.map((e=>e.name))),i=r.schema.tables.filter((e=>!/^\$/.test(e.name))),o=new Map;for(const e of i){const t=`$${e.name}_mutations`;s.has(t)&&o.set(e.name,r.table(t))}return Object.assign(Object.assign({},r),{transaction:(e,s)=>{let i;if("readwrite"===s){const t=e.filter((e=>{var t,r;return null===(r=null===(t=n.cloud.schema)||void 0===t?void 0:t[e])||void 0===r?void 0:r.markedForSync})).map((e=>S(e)));i=r.transaction([...e,...t],s)}else i=r.transaction(e,s);if("readwrite"===s){i.txid=A(16),i.opCount=0,i.currentUser=t.value,Fo.value.add(i),Fo.next(Fo.value);const e=()=>{i.removeEventListener("complete",r),i.removeEventListener("error",e),i.removeEventListener("abort",e),Fo.value.delete(i),Fo.next(Fo.value)},r=()=>{i.mutationsAdded&&!Wo(n)&&y(n,"push"),e()};i.addEventListener("complete",r),i.addEventListener("error",e),i.addEventListener("abort",e)}return i},table:t=>{const s=r.table(t);if(/^\$/.test(t))return t.endsWith("_mutations")?Object.assign(Object.assign({},s),{mutate:e=>("add"!==e.type&&"put"!==e.type||(e.trans.mutationsAdded=!0),s.mutate(e))}):"$logins"===t?Object.assign(Object.assign({},s),{mutate:e=>s.mutate(e).then((t=>(e.trans.mutationsAdded=!0,t))).catch((e=>Promise.reject(e)))}):s;const{schema:i}=s,l=o.get(t);return l?function(e){const t="$lock"+ ++No;return Object.assign(Object.assign({},e),{count:$o(e.count,t),get:$o(e.get,t),getMany:$o(e.getMany,t),openCursor:$o(e.openCursor,t),query:$o(e.query,t),mutate:Bo(e.mutate,t)})}(Object.assign(Object.assign({},s),{mutate:e=>{var r,o,l;const a=e.trans;return a.txid?a.disableChangeTracking?s.mutate(e):(null===(o=null===(r=n.cloud.schema)||void 0===r?void 0:r[t])||void 0===o?void 0:o.markedForSync)&&(null===(l=a.currentUser)||void 0===l?void 0:l.isLoggedIn)?"deleteRange"===e.type?s.query({query:{range:e.range,index:i.primaryKey},trans:e.trans,values:!1}).then((t=>c({type:"delete",keys:t.result,trans:e.trans,criteria:{index:null,range:e.range}}))):c(e):s.mutate(e):s.mutate(e)}})):s;function c(r){var o,c;const a=r.trans,u=null===(c=null===(o=n.cloud.options)||void 0===o?void 0:o.unsyncedProperties)||void 0===c?void 0:c[t],{txid:d,currentUser:{userId:h}}=a,{type:f}=r,p=++a.opCount;function g(e){if(!u)return e;let t=e;for(const n of Object.keys(e))u.some((e=>n===e||n.startsWith(e+".")))&&(t===e&&(t=Object.assign({},e)),delete t[n]);return t}return s.mutate(r).then((t=>{var n;const{numFailures:s,failures:o}=t;let c="delete"===f?r.keys:t.results,y="values"in r?r.values:[],m="changeSpec"in r?r.changeSpec:void 0,b="updates"in r?r.updates:void 0,v=!(!b||!("upsert"in r))&&r.upsert;if(s&&(c=c.filter(((e,t)=>!o[t])),y=y.filter(((e,t)=>!o[t]))),u){if(y=y.map((e=>{const t=Object.assign({},e);for(const e of u)delete t[e];return t})),m&&(m=g(m),0===Object.keys(m).length))return t;if(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=c.length;n<s;++n)r.hasKey(c[n])&&(e.push(c[n]),t.push(y[n]));c=e,y=t}}}}const w=Date.now();let _="criteria"in r&&r.criteria?Object.assign(Object.assign({},r.criteria),{index:r.criteria.index===i.primaryKey.keyPath?null:r.criteria.index}):void 0;if(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:c,criteria:_,txid:d,userId:h}:"add"===r.type?{type:"insert",ts:w,opNo:p,keys:c,txid:d,userId:h,values:y}:v&&b?{type:"upsert",ts:w,opNo:p,keys:c,values:y,changeSpecs:b.changeSpecs.filter(((e,t)=>!o[t])),txid:d,userId:h}:_&&m?{type:"modify",ts:w,opNo:p,keys:c,criteria:_,changeSpec:m,txid:d,userId:h}:m?{type:"update",ts:w,opNo:p,keys:c,changeSpecs:c.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:c,values:y,txid:d,userId:h};return"isAdditionalChunk"in r&&r.isAdditionalChunk&&(k.isAdditionalChunk=!0),c.length>0||_?l.mutate({type:"add",trans:a,values:[k]}).then((()=>(a.mutationsAdded=!0,t))):t}))}}})}}}function Ko(e,t){return function(n,r){var s;const i=Object.assign(Object.assign({},yo),n);Object.keys(yo).forEach((e=>{const t=i[e];if(null==t)throw new Error(`Cannot delete table ${e} as it is needed for access control of Dexie Cloud`);if(!n[e])return;const r=t.split(",").map((e=>e.trim())),s=yo[e].split(",").map((e=>e.trim())),o=new Set(r.map((e=>e.replace(/([&*]|\+\+)/g,""))));if(r[0]!==s[0])throw new Error(`Cannot override primary key of table ${e}. Please declare it as {${e}: ${JSON.stringify(yo[e])}`);for(let t=1;t<s.length;++t){const n=s[t];o.has(n.replace(/([&*]|\+\+)/g,""))||(i[e]+=`,${n}`)}}));const o=t.cloud.schema||(t.cloud.schema={}),l=new Set;Object.keys(i).forEach((e=>{const t=i[e],n=o[e]||(o[e]={});null!=t?(/^\@/.test(t)&&(i[e]=i[e].substr(1),n.generatedGlobalId=!0,n.idPrefix=function(e,t){let n=e[0].toLocaleLowerCase();for(let t=1,s=e.length;t<s&&n.length<3;++t)(Lo.test(e[t])||(r=e[t])>="A"&&r<="Z")&&(n+=e[t].toLowerCase());for(var r,s,i;t.has(n);){if(/\d/g.test(n)){if(n=n.substr(0,n.length-1)+(n[n.length-1]+1),!(n.length>3))continue;n=n.substr(0,3)}else if(n.length<3){n+="2";continue}let e=1,r=n;for(;t.has(r)&&e<8;)s=n,r=(1&(i=e)?s[0].toUpperCase():s[0].toLowerCase())+(2&i?s[1].toUpperCase():s[1].toLowerCase())+(4&i?s[2].toUpperCase():s[2].toLowerCase()),++e;if(e<8)n=r;else{let e=n.charCodeAt(2)+1&127;n=n.substr(0,2)+String.fromCharCode(e)}}return n}(e,l),l.add(n.idPrefix)),/^\$/.test(e)||(i[`$${e}_mutations`]="++rev",n.markedForSync=!0),n.deleted&&(n.deleted=!1)):(n.deleted=!0,n.markedForSync=!1,i[`$${e}_mutations`]=null)}));const c=e.call(this,i,r);for(const[e,t]of Object.entries(r))if(null===(s=t.yProps)||void 0===s?void 0:s.length){const n=o[e];n&&(n.yProps=t.yProps.map((e=>e.prop)))}return c}}function Ho(e,t,n){return"undefined"!=typeof navigator&&navigator.locks?navigator.locks.request(e.name+"|"+t,(()=>n())):n()}const zo=new t.BehaviorSubject(!0),Jo=new t.BehaviorSubject(!0);zo.pipe(n.switchMap((e=>e?t.of(!0):t.of(!1).pipe(n.delay(2e4)))),n.distinctUntilChanged()).subscribe(Jo);const qo="undefined"!=typeof document?t.fromEvent(document,"visibilitychange"):t.of({}),Yo=qo.pipe(n.filter((()=>"hidden"===document.visibilityState))),Go=qo.pipe(n.filter((()=>"visible"===document.visibilityState))),Qo="undefined"!=typeof window?t.merge(Go,t.fromEvent(window,"mousedown"),t.fromEvent(window,"mousemove"),t.fromEvent(window,"keydown"),t.fromEvent(window,"wheel"),t.fromEvent(window,"touchmove")):t.of({});"undefined"!=typeof document&&t.merge(t.of(!0),Yo,Qo).pipe(n.map((()=>"visible"===document.visibilityState)),n.tap((e=>{zo.value!==e&&zo.next(e)})),n.switchMap((e=>e?t.of(0).pipe(n.delay(16e4),n.tap((()=>zo.next(!1)))):t.of(0)))).subscribe((()=>{}));class Xo extends Error{constructor(){super(...arguments),this.name="TokenExpiredError"}}const Zo=new WeakMap,el=3e4;class tl extends It{constructor(e){super(),this.doc=e,this.clientID=e.clientID,this.states=new Map,this.meta=new Map,this._checkInterval=setInterval((()=>{const e=Pn();null!==this.getLocalState()&&15e3<=e-this.meta.get(this.clientID).lastUpdated&&this.setLocalState(this.getLocalState());const t=[];this.meta.forEach(((n,r)=>{r!==this.clientID&&el<=e-n.lastUpdated&&this.states.has(r)&&t.push(r)})),t.length>0&&nl(this,t,"timeout")}),At(3e3)),e.on("destroy",(()=>{this.destroy()})),this.setLocalState({})}destroy(){this.emit("destroy",[this]),this.setLocalState(null),super.destroy(),clearInterval(this._checkInterval)}getLocalState(){return this.states.get(this.clientID)||null}setLocalState(e){const t=this.clientID,n=this.meta.get(t),r=void 0===n?0:n.clock+1,s=this.states.get(t);null===e?this.states.delete(t):this.states.set(t,e),this.meta.set(t,{clock:r,lastUpdated:Pn()});const i=[],o=[],l=[],c=[];null===e?c.push(t):null==s?null!=e&&i.push(t):(o.push(t),Yn(s,e)||l.push(t)),(i.length>0||l.length>0||c.length>0)&&this.emit("change",[{added:i,updated:l,removed:c},"local"]),this.emit("update",[{added:i,updated:o,removed:c},"local"])}setLocalStateField(e,t){const n=this.getLocalState();null!==n&&this.setLocalState({...n,[e]:t})}getStates(){return this.states}}const nl=(e,t,n)=>{const r=[];for(let n=0;n<t.length;n++){const s=t[n];if(e.states.has(s)){if(e.states.delete(s),s===e.clientID){const t=e.meta.get(s);e.meta.set(s,{clock:t.clock+1,lastUpdated:Pn()})}r.push(s)}}r.length>0&&(e.emit("change",[{added:[],updated:[],removed:r},n]),e.emit("update",[{added:[],updated:[],removed:r},n]))},rl=(e,t,n=e.states)=>{const r=t.length,s=Ht();Yt(s,r);for(let i=0;i<r;i++){const r=t[i],o=n.get(r)||null,l=e.meta.get(r).clock;Yt(s,r),Yt(s,l),Zt(s,JSON.stringify(o))}return zt(s)},sl=new WeakMap;function il(e){let n=sl.get(e);return n||(n=new t.Subject,sl.set(e,n)),n}class ol extends t.Observable{constructor(e,t,n,r,s,i,o,l){super((c=>new cl(e,t,n,r,s,l,c,i,o)))}}let ll=0;class cl extends t.Subscription{constructor(e,t,n,r,s,i,o,l,c){super((()=>this.teardown())),this.id=++ll,this.subscriptions=new Set,this.reconnecting=!1,this.db=e,this.databaseUrl=e.cloud.options.databaseUrl,this.rev=t,this.yrev=n,this.realmSetHash=r,this.clientIdentity=s,this.user=i,this.subscriber=o,this.lastUserActivity=new Date,this.messageProducer=l,this.webSocketStatus=c,this.connect()}teardown(){this.disconnect()}disconnect(){if(this.webSocketStatus.next("disconnected"),this.pinger&&(clearInterval(this.pinger),this.pinger=null),this.ws)try{this.ws.close()}catch(e){}this.ws=null;for(const e of this.subscriptions)e.unsubscribe();this.subscriptions.clear()}reconnect(){if(!this.reconnecting){this.reconnecting=!0;try{this.disconnect()}catch(e){}this.connect().catch((()=>{})).then((()=>this.reconnecting=!1))}}connect(){return r(this,void 0,void 0,(function*(){if(this.lastServerActivity=new Date,this.pauseUntil&&this.pauseUntil>new Date)return;if(this.ws)throw new Error("Called connect() when a connection is already open");if(!this.databaseUrl)throw new Error("Cannot connect without a database URL");if(this.closed)return;const n=this.user.accessTokenExpiration;if(n&&n<new Date)return void this.subscriber.error(new Xo);this.webSocketStatus.next("connecting"),this.pinger=setInterval((()=>r(this,void 0,void 0,(function*(){if(this.closed)this.teardown();else if(this.ws)try{this.ws.send(JSON.stringify({type:"ping"})),setTimeout((()=>{this.pinger&&(this.closed?this.teardown():this.lastServerActivity<new Date(Date.now()-2e4)&&this.reconnect())}),2e4)}catch(e){this.reconnect()}else this.reconnect()}))),3e4);const s=new URL(this.databaseUrl);s.protocol="http:"===s.protocol?"ws":"wss";const i=new URLSearchParams;if(this.subscriber.closed)return;i.set("v","2"),this.rev&&i.set("rev",this.rev),this.yrev&&i.set("yrev",this.yrev),i.set("realmsHash",this.realmSetHash),i.set("clientId",this.clientIdentity),i.set("dxcv",this.db.cloud.version),this.user.accessToken&&i.set("token",this.user.accessToken);const o=this.ws=new WebSocket(`${s}/changes?${i}`);o.binaryType="arraybuffer",o.onclose=e=>{this.pinger&&this.reconnect()},o.onmessage=e=>{if(this.pinger){this.lastServerActivity=new Date;try{const t="string"==typeof e.data?nt.parse(e.data):function(e){const t=new ae(e),n=pe(t);if("outdated-server-rev"===n)return{type:n};if("y-complete-sync-done"===n)return{type:n,yServerRev:pe(t)};const r=pe(t),s=pe(t);switch(n){case"u-ack":case"u-reject":return{type:n,table:r,prop:s,i:Number(ye(t))};default:{const e=be(t);switch(n){case"in-sync":case"doc-close":return{type:n,table:r,prop:s,k:e};case"aware":return{type:n,table:r,prop:s,k:e,u:de(t)};case"doc-open":return{type:n,table:r,prop:s,k:e,serverRev:be(t),sv:be(t)};case"sv":return{type:n,table:r,prop:s,k:e,sv:de(t)};case"u-c":return{type:n,table:r,prop:s,k:e,u:de(t),i:Number(ye(t))};case"u-s":return{type:n,table:r,prop:s,k:e,u:de(t),r:t.pos<t.arr.length&&pe(t)||void 0};default:throw new TypeError(`Unknown message type: ${n}`)}}}}(new Uint8Array(e.data));if("error"===t.type)throw new Error(`Error message from dexie-cloud: ${t.error}`);if("aware"===t.type){const e=eo.getDocCache(this.db.dx).find(t.table,t.k,t.prop);if(e){const n=(e=>Zo.get(e))(e);n&&((e,t,n)=>{const r=bn(t),s=Pn(),i=[],o=[],l=[],c=[],a=_n(r);for(let t=0;t<a;t++){const t=_n(r);let n=_n(r);const a=JSON.parse(Sn(r)),u=e.meta.get(t),d=e.states.get(t),h=void 0===u?0:u.clock;(h<n||h===n&&null===a&&e.states.has(t))&&(null===a?t===e.clientID&&null!=e.getLocalState()?n++:e.states.delete(t):e.states.set(t,a),e.meta.set(t,{clock:n,lastUpdated:s}),void 0===u&&null!==a?i.push(t):void 0!==u&&null===a?c.push(t):null!==a&&(Yn(a,d)||l.push(t),o.push(t)))}(i.length>0||l.length>0||c.length>0)&&e.emit("change",[{added:i,updated:l,removed:c},n]),(i.length>0||o.length>0||c.length>0)&&e.emit("update",[{added:i,updated:o,removed:c},n])})(n,t.u,"server")}}else if("pong"===t.type);else if("doc-open"===t.type){const e=eo.getDocCache(this.db.dx).find(t.table,t.k,t.prop);e&&il(e).next()}else"u-ack"===t.type||"u-reject"===t.type||"u-s"===t.type||"in-sync"===t.type||"outdated-server-rev"===t.type||"y-complete-sync-done"===t.type?to([t],this.db).then((e=>r(this,[e],void 0,(function*({resyncNeeded:e,yServerRevision:n,receivedUntils:r}){if(n&&(yield this.db.$syncState.update("syncState",{yServerRevision:n})),"u-s"===t.type&&r){const e=Vi(this.db,t.table,t.prop);if(e){const t=r[e.name];t&&(yield e.update(yt,{receivedUntil:t}))}}e&&(yield this.db.cloud.sync({purpose:"pull",wait:!0}))})))):this.subscriber.next(t)}catch(e){this.subscriber.error(e)}}};try{let n=!1;yield new Promise(((e,t)=>{o.onopen=t=>{n=!0,e(null)},o.onerror=e=>{if(n)this.reconnect();else{const n=e.error||new Error("WebSocket Error");this.subscriber.error(n),this.webSocketStatus.next("error"),t(n)}}})),this.subscriptions.add(this.messageProducer.subscribe((e=>{var t,n;this.closed||("ready"===e.type&&"connected"!==this.webSocketStatus.value&&this.webSocketStatus.next("connected"),"ready"===e.type?(this.rev=e.rev,null===(t=this.ws)||void 0===t||t.send(nt.stringify(e))):null===(n=this.ws)||void 0===n||n.send(ie(e)))}))),this.user.isLoggedIn&&!Wo(this.db)&&this.subscriptions.add(function(n){const s=C(n.tables.filter((e=>{var t,r;return(null===(r=null===(t=n.cloud.schema)||void 0===t?void 0:t[e.name])||void 0===r?void 0:r.markedForSync)&&e.schema.yProps})).map((e=>e.schema.yProps.map((t=>({table:e.name,ydocProp:t.prop,updatesTable:t.updatesTable}))))));return t.merge(...s.map((({table:s,ydocProp:i,updatesTable:o})=>{const l=n.table(o);return t.from(l.get(yt)).pipe(t.switchMap((n=>{let o=(null==n?void 0:n.unsentFrom)||1;return t.from(e.liveQuery((()=>r(this,void 0,void 0,(function*(){return(yield mt(l,o)).filter((e=>e.f&&1&e.f)).map((e=>({type:"u-c",table:s,prop:i,k:e.k,u:e.u,i:e.i})))}))))).pipe(t.tap((e=>{e.length>0&&(o=e.at(-1).i+1)})))})))}))).pipe(t.mergeMap((e=>e)))}(this.db).subscribe(this.db.messageProducer))}catch(e){this.pauseUntil=new Date(Date.now()+6e4)}}))}}class al extends Error{constructor(e){super("expired"===e?"License expired":"deactivated"===e?"User deactivated":"Invalid license"),this.name="InvalidLicenseError",e&&(this.license=e)}}function ul(e){return r(this,void 0,void 0,(function*(){var e;yield(e=3e3,new Promise((t=>setTimeout(t,e)))),yield t.firstValueFrom(Qo)}))}function dl(e){return r(this,void 0,void 0,(function*(){var t;return!(!(null===(t=e.cloud.options)||void 0===t?void 0:t.databaseUrl)||!e.cloud.schema)&&(yield lo(e,e.cloud.options,e.cloud.schema,{justCheckIfNeeded:!0}))}))}const hl=new WeakMap;function fl(e,t,n,s){const i=hl.get(e);if(i){if(i.pull||"push"===(null==s?void 0:s.purpose))return i.promise;{let r=!1;const o=e.cloud.syncState.subscribe((e=>{"pulling"===e.phase&&(r=!0)}));return i.promise.then((()=>{o.unsubscribe()})).catch((e=>(o.unsubscribe(),Promise.reject(e)))).then((()=>{if(!r)return fl(e,t,n,s)}))}}const o=function(){return r(this,void 0,void 0,(function*(){try{yield ct(e),yield Ho(e,oo,(()=>lo(e,t,n,s))),hl.delete(e)}catch(t){throw hl.delete(e),t}}))}();return hl.set(e,{promise:o,pull:"push"!==(null==s?void 0:s.purpose)}),o}const pl=1e3;function gl(e,t,n){let r=null,s={cancelled:!1},i=0,o=0;function l(r=1){setTimeout((()=>{const d=c?"pull":"push";o=Date.now(),fl(e,t,n,{cancelToken:s,retryImmediatelyOnFetchError:!0,purpose:d}).then((()=>{if(s.cancelled)h();else if(c||a)return c=!1,a=!1,l();u=!1,i=0,o=0})).catch((e=>{if(s.cancelled)h(),u=!1,i=0,o=0;else if(r<5){const e=[0,20,40,300,900][r]*pl;i=Date.now()+e,o=0,setTimeout((()=>l(r+1)),e)}else u=!1,i=0,o=0}))}),0)}let c=!1,a=!1,u=!1;const d=e=>{s.cancelled||("pull"===e&&(c=!0),"push"===e&&(a=!0),u?i||o>0&&Date.now():(u=!0,l()))},h=()=>{s.cancelled=!0,r&&r.unsubscribe()};return{start:()=>{r=e.localSyncEvent.subscribe((({purpose:e})=>{d(e||"pull")}))},stop:h}}function yl(e,t){if(e&&t&&t.unsyncedTables)for(const n of t.unsyncedTables)e[n]&&(e[n].markedForSync=!1)}var ml,bl,vl,wl,_l,kl={},Sl=[],El=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function xl(e,t){for(var n in t)e[n]=t[n];return e}function Cl(e){var t=e.parentNode;t&&t.removeChild(e)}function Il(e,t,n){var r,s,i,o={};for(i in t)"key"==i?r=t[i]:"ref"==i?s=t[i]:o[i]=t[i];if(arguments.length>2&&(o.children=arguments.length>3?ml.call(arguments,2):n),"function"==typeof e&&null!=e.defaultProps)for(i in e.defaultProps)void 0===o[i]&&(o[i]=e.defaultProps[i]);return Al(e,o,r,s,null)}function Al(e,t,n,r,s){var i={type:e,props:t,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==s?++vl:s};return null==s&&null!=bl.vnode&&bl.vnode(i),i}function Dl(e){return e.children}function Ol(e,t){this.props=e,this.context=t}function Tl(e,t){if(null==t)return e.__?Tl(e.__,e.__.__k.indexOf(e)+1):null;for(var n;t<e.__k.length;t++)if(null!=(n=e.__k[t])&&null!=n.__e)return n.__e;return"function"==typeof e.type?Tl(e):null}function Ul(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 Ul(e)}}function jl(e){(!e.__d&&(e.__d=!0)&&wl.push(e)&&!Ll.__r++||_l!==bl.debounceRendering)&&((_l=bl.debounceRendering)||setTimeout)(Ll)}function Ll(){for(var e;Ll.__r=wl.length;)e=wl.sort((function(e,t){return e.__v.__b-t.__v.__b})),wl=[],e.some((function(e){var t,n,r,s,i,o;e.__d&&(i=(s=(t=e).__v).__e,(o=t.__P)&&(n=[],(r=xl({},s)).__v=s.__v+1,Wl(o,s,r,t.__n,void 0!==o.ownerSVGElement,null!=s.__h?[i]:null,n,null==i?Tl(s):i,s.__h),Vl(n,s),s.__e!=i&&Ul(s)))}))}function Pl(e,t,n,r,s,i,o,l,c,a){var u,d,h,f,p,g,y,m=r&&r.__k||Sl,b=m.length;for(n.__k=[],u=0;u<t.length;u++)if(null!=(f=n.__k[u]=null==(f=t[u])||"boolean"==typeof f?null:"string"==typeof f||"number"==typeof f||"bigint"==typeof f?Al(null,f,null,null,f):Array.isArray(f)?Al(Dl,{children:f},null,null,null):f.__b>0?Al(f.type,f.props,f.key,null,f.__v):f)){if(f.__=n,f.__b=n.__b+1,null===(h=m[u])||h&&f.key==h.key&&f.type===h.type)m[u]=void 0;else for(d=0;d<b;d++){if((h=m[d])&&f.key==h.key&&f.type===h.type){m[d]=void 0;break}h=null}Wl(e,f,h=h||kl,s,i,o,l,c,a),p=f.__e,(d=f.ref)&&h.ref!=d&&(y||(y=[]),h.ref&&y.push(h.ref,null,f),y.push(d,f.__c||p,f)),null!=p?(null==g&&(g=p),"function"==typeof f.type&&f.__k===h.__k?f.__d=c=Rl(f,c,e):c=Ml(e,f,h,m,p,c),"function"==typeof n.type&&(n.__d=c)):c&&h.__e==c&&c.parentNode!=e&&(c=Tl(h))}for(n.__e=g,u=b;u--;)null!=m[u]&&("function"==typeof n.type&&null!=m[u].__e&&m[u].__e==n.__d&&(n.__d=Tl(r,u+1)),zl(m[u],m[u]));if(y)for(u=0;u<y.length;u++)Hl(y[u],y[++u],y[++u])}function Rl(e,t,n){for(var r,s=e.__k,i=0;s&&i<s.length;i++)(r=s[i])&&(r.__=e,t="function"==typeof r.type?Rl(r,t,n):Ml(n,r,r,s,r.__e,t));return t}function Ml(e,t,n,r,s,i){var o,l,c;if(void 0!==t.__d)o=t.__d,t.__d=void 0;else if(null==n||s!=i||null==s.parentNode)e:if(null==i||i.parentNode!==e)e.appendChild(s),o=null;else{for(l=i,c=0;(l=l.nextSibling)&&c<r.length;c+=2)if(l==s)break e;e.insertBefore(s,i),o=i}return void 0!==o?o:s.nextSibling}function Nl(e,t,n){"-"===t[0]?e.setProperty(t,n):e[t]=null==n?"":"number"!=typeof n||El.test(t)?n:n+"px"}function $l(e,t,n,r,s){var i;e:if("style"===t)if("string"==typeof n)e.style.cssText=n;else{if("string"==typeof r&&(e.style.cssText=r=""),r)for(t in r)n&&t in n||Nl(e.style,t,"");if(n)for(t in n)r&&n[t]===r[t]||Nl(e.style,t,n[t])}else if("o"===t[0]&&"n"===t[1])i=t!==(t=t.replace(/Capture$/,"")),t=t.toLowerCase()in e?t.toLowerCase().slice(2):t.slice(2),e.l||(e.l={}),e.l[t+i]=n,n?r||e.addEventListener(t,i?Fl:Bl,i):e.removeEventListener(t,i?Fl:Bl,i);else if("dangerouslySetInnerHTML"!==t){if(s)t=t.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if("href"!==t&&"list"!==t&&"form"!==t&&"tabIndex"!==t&&"download"!==t&&t in e)try{e[t]=null==n?"":n;break e}catch(e){}"function"==typeof n||(null!=n&&(!1!==n||"a"===t[0]&&"r"===t[1])?e.setAttribute(t,n):e.removeAttribute(t))}}function Bl(e){this.l[e.type+!1](bl.event?bl.event(e):e)}function Fl(e){this.l[e.type+!0](bl.event?bl.event(e):e)}function Wl(e,t,n,r,s,i,o,l,c){var a,u,d,h,f,p,g,y,m,b,v,w,_,k=t.type;if(void 0!==t.constructor)return null;null!=n.__h&&(c=n.__h,l=t.__e=n.__e,t.__h=null,i=[l]),(a=bl.__b)&&a(t);try{e:if("function"==typeof k){if(y=t.props,m=(a=k.contextType)&&r[a.__c],b=a?m?m.props.value:a.__:r,n.__c?g=(u=t.__c=n.__c).__=u.__E:("prototype"in k&&k.prototype.render?t.__c=u=new k(y,b):(t.__c=u=new Ol(y,b),u.constructor=k,u.render=Jl),m&&m.sub(u),u.props=y,u.state||(u.state={}),u.context=b,u.__n=r,d=u.__d=!0,u.__h=[]),null==u.__s&&(u.__s=u.state),null!=k.getDerivedStateFromProps&&(u.__s==u.state&&(u.__s=xl({},u.__s)),xl(u.__s,k.getDerivedStateFromProps(y,u.__s))),h=u.props,f=u.state,d)null==k.getDerivedStateFromProps&&null!=u.componentWillMount&&u.componentWillMount(),null!=u.componentDidMount&&u.__h.push(u.componentDidMount);else{if(null==k.getDerivedStateFromProps&&y!==h&&null!=u.componentWillReceiveProps&&u.componentWillReceiveProps(y,b),!u.__e&&null!=u.shouldComponentUpdate&&!1===u.shouldComponentUpdate(y,u.__s,b)||t.__v===n.__v){u.props=y,u.state=u.__s,t.__v!==n.__v&&(u.__d=!1),u.__v=t,t.__e=n.__e,t.__k=n.__k,t.__k.forEach((function(e){e&&(e.__=t)})),u.__h.length&&o.push(u);break e}null!=u.componentWillUpdate&&u.componentWillUpdate(y,u.__s,b),null!=u.componentDidUpdate&&u.__h.push((function(){u.componentDidUpdate(h,f,p)}))}if(u.context=b,u.props=y,u.__v=t,u.__P=e,v=bl.__r,w=0,"prototype"in k&&k.prototype.render)u.state=u.__s,u.__d=!1,v&&v(t),a=u.render(u.props,u.state,u.context);else do{u.__d=!1,v&&v(t),a=u.render(u.props,u.state,u.context),u.state=u.__s}while(u.__d&&++w<25);u.state=u.__s,null!=u.getChildContext&&(r=xl(xl({},r),u.getChildContext())),d||null==u.getSnapshotBeforeUpdate||(p=u.getSnapshotBeforeUpdate(h,f)),_=null!=a&&a.type===Dl&&null==a.key?a.props.children:a,Pl(e,Array.isArray(_)?_:[_],t,n,r,s,i,o,l,c),u.base=t.__e,t.__h=null,u.__h.length&&o.push(u),g&&(u.__E=u.__=null),u.__e=!1}else null==i&&t.__v===n.__v?(t.__k=n.__k,t.__e=n.__e):t.__e=Kl(n.__e,t,n,r,s,i,o,c);(a=bl.diffed)&&a(t)}catch(e){t.__v=null,(c||null!=i)&&(t.__e=l,t.__h=!!c,i[i.indexOf(l)]=null),bl.__e(e,t,n)}}function Vl(e,t){bl.__c&&bl.__c(t,e),e.some((function(t){try{e=t.__h,t.__h=[],e.some((function(e){e.call(t)}))}catch(e){bl.__e(e,t.__v)}}))}function Kl(e,t,n,r,s,i,o,l){var c,a,u,d=n.props,h=t.props,f=t.type,p=0;if("svg"===f&&(s=!0),null!=i)for(;p<i.length;p++)if((c=i[p])&&"setAttribute"in c==!!f&&(f?c.localName===f:3===c.nodeType)){e=c,i[p]=null;break}if(null==e){if(null===f)return document.createTextNode(h);e=s?document.createElementNS("http://www.w3.org/2000/svg",f):document.createElement(f,h.is&&h),i=null,l=!1}if(null===f)d===h||l&&e.data===h||(e.data=h);else{if(i=i&&ml.call(e.childNodes),a=(d=n.props||kl).dangerouslySetInnerHTML,u=h.dangerouslySetInnerHTML,!l){if(null!=i)for(d={},p=0;p<e.attributes.length;p++)d[e.attributes[p].name]=e.attributes[p].value;(u||a)&&(u&&(a&&u.__html==a.__html||u.__html===e.innerHTML)||(e.innerHTML=u&&u.__html||""))}if(function(e,t,n,r,s){var i;for(i in n)"children"===i||"key"===i||i in t||$l(e,i,null,n[i],r);for(i in t)s&&"function"!=typeof t[i]||"children"===i||"key"===i||"value"===i||"checked"===i||n[i]===t[i]||$l(e,i,t[i],n[i],r)}(e,h,d,s,l),u)t.__k=[];else if(p=t.props.children,Pl(e,Array.isArray(p)?p:[p],t,n,r,s&&"foreignObject"!==f,i,o,i?i[0]:n.__k&&Tl(n,0),l),null!=i)for(p=i.length;p--;)null!=i[p]&&Cl(i[p]);l||("value"in h&&void 0!==(p=h.value)&&(p!==e.value||"progress"===f&&!p||"option"===f&&p!==d.value)&&$l(e,"value",p,d.value,!1),"checked"in h&&void 0!==(p=h.checked)&&p!==e.checked&&$l(e,"checked",p,d.checked,!1))}return e}function Hl(e,t,n){try{"function"==typeof e?e(t):e.current=t}catch(e){bl.__e(e,n)}}function zl(e,t,n){var r,s;if(bl.unmount&&bl.unmount(e),(r=e.ref)&&(r.current&&r.current!==e.__e||Hl(r,null,t)),null!=(r=e.__c)){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(e){bl.__e(e,t)}r.base=r.__P=null}if(r=e.__k)for(s=0;s<r.length;s++)r[s]&&zl(r[s],t,"function"!=typeof e.type);n||null==e.__e||Cl(e.__e),e.__e=e.__d=void 0}function Jl(e,t,n){return this.constructor(e,n)}function ql(e,t,n){var r,s,i;bl.__&&bl.__(e,t),s=(r="function"==typeof n)?null:n&&n.__k||t.__k,i=[],Wl(t,e=(!r&&n||t).__k=Il(Dl,null,[e]),s||kl,kl,void 0!==t.ownerSVGElement,!r&&n?[n]:s?null:t.firstChild?ml.call(t.childNodes):null,i,!r&&n?n:s?s.__e:t.firstChild,r),Vl(i,e)}ml=Sl.slice,bl={__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}},vl=0,Ol.prototype.setState=function(e,t){var n;n=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=xl({},this.state),"function"==typeof e&&(e=e(xl({},n),this.props)),e&&xl(n,e),null!=e&&this.__v&&(t&&this.__h.push(t),jl(this))},Ol.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),jl(this))},Ol.prototype.render=Dl,wl=[],Ll.__r=0;const Yl={Error:{color:"red"},Alert:{error:{color:"red",fontWeight:"bold"},warning:{color:"#f80",fontWeight:"bold"},info:{color:"black"}},Darken:{position:"fixed",top:0,left:0,opacity:.5,backgroundColor:"#000",width:"100vw",height:"100vh",zIndex:150,webkitBackdropFilter:"blur(2px)",backdropFilter:"blur(2px)"},DialogOuter:{position:"fixed",top:0,left:0,width:"100vw",height:"100vh",zIndex:150,alignItems:"center",display:"flex",justifyContent:"center",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"}};function Gl({children:e,className:t}){return Il("div",{className:`dexie-dialog ${t||""}`},Il("div",{style:Yl.Darken}),Il("div",{style:Yl.DialogOuter},Il("div",{style:Yl.DialogInner},e)))}var Ql,Xl,Zl,ec,tc=0,nc=[],rc=[],sc=bl.__b,ic=bl.__r,oc=bl.diffed,lc=bl.__c,cc=bl.unmount;function ac(e,t){bl.__h&&bl.__h(Xl,e,tc||t),tc=0;var n=Xl.__H||(Xl.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({__V:rc}),n.__[e]}function uc(e){return tc=1,function(e,t,n){var r=ac(Ql++,2);if(r.t=e,!r.__c&&(r.__=[n?n(t):mc(void 0,t),function(e){var t=r.__N?r.__N[0]:r.__[0],n=r.t(t,e);t!==n&&(r.__N=[n,r.__[1]],r.__c.setState({}))}],r.__c=Xl,!Xl.u)){Xl.u=!0;var s=Xl.shouldComponentUpdate;Xl.shouldComponentUpdate=function(e,t,n){if(!r.__c.__H)return!0;var i=r.__c.__H.__.filter((function(e){return e.__c}));if(i.every((function(e){return!e.__N})))return!s||s.call(this,e,t,n);var o=!1;return i.forEach((function(e){if(e.__N){var t=e.__[0];e.__=e.__N,e.__N=void 0,t!==e.__[0]&&(o=!0)}})),!!o&&(!s||s.call(this,e,t,n))}}return r.__N||r.__}(mc,e)}function dc(e){return tc=5,function(e,t){var n=ac(Ql++,7);return yc(n.__H,t)?(n.__V=e(),n.i=t,n.__h=e,n.__V):n.__}((function(){return{current:e}}),[])}function hc(){for(var e;e=nc.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(pc),e.__H.__h.forEach(gc),e.__H.__h=[]}catch(t){e.__H.__h=[],bl.__e(t,e.__v)}}bl.__b=function(e){Xl=null,sc&&sc(e)},bl.__r=function(e){ic&&ic(e),Ql=0;var t=(Xl=e.__c).__H;t&&(Zl===Xl?(t.__h=[],Xl.__h=[],t.__.forEach((function(e){e.__N&&(e.__=e.__N),e.__V=rc,e.__N=e.i=void 0}))):(t.__h.forEach(pc),t.__h.forEach(gc),t.__h=[])),Zl=Xl},bl.diffed=function(e){oc&&oc(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(1!==nc.push(t)&&ec===bl.requestAnimationFrame||((ec=bl.requestAnimationFrame)||function(e){var t,n=function(){clearTimeout(r),fc&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,100);fc&&(t=requestAnimationFrame(n))})(hc)),t.__H.__.forEach((function(e){e.i&&(e.__H=e.i),e.__V!==rc&&(e.__=e.__V),e.i=void 0,e.__V=rc}))),Zl=Xl=null},bl.__c=function(e,t){t.some((function(e){try{e.__h.forEach(pc),e.__h=e.__h.filter((function(e){return!e.__||gc(e)}))}catch(n){t.some((function(e){e.__h&&(e.__h=[])})),t=[],bl.__e(n,e.__v)}})),lc&&lc(e,t)},bl.unmount=function(e){cc&&cc(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.forEach((function(e){try{pc(e)}catch(e){t=e}})),t&&bl.__e(t,n.__v))};var fc="function"==typeof requestAnimationFrame;function pc(e){var t=Xl,n=e.__c;"function"==typeof n&&(e.__c=void 0,n()),Xl=t}function gc(e){var t=Xl;e.__c=e.__(),Xl=t}function yc(e,t){return!e||e.length!==t.length||t.some((function(t,n){return t!==e[n]}))}function mc(e,t){return"function"==typeof t?t(e):t}function bc({title:e,type:t,alerts:n,fields:r,submitLabel:s,cancelLabel:i,onCancel:o,onSubmit:l}){const[c,a]=uc({}),u=dc(null);return function(e,t){var n=ac(Ql++,4);!bl.__s&&yc(n.__H,t)&&(n.__=e,n.i=t,Xl.__h.push(n))}((()=>{var e;return null===(e=u.current)||void 0===e?void 0:e.focus()}),[]),Il(Gl,{className:"dxc-login-dlg"},Il(Dl,null,Il("h3",{style:Yl.WindowHeader},e),n.map((e=>Il("p",{style:Yl.Alert[e.type]},function({message:e,messageCode:t,messageParams:n}){return e.replace(/\{\w+\}/gi,(e=>n[e.substring(1,e.length-1)]))}(e)))),Il("form",{onSubmit:e=>{e.preventDefault(),l(c)}},Object.entries(r).map((([e,{type:t,label:n,placeholder:r}],s)=>Il("label",{style:Yl.Label,key:s},n?`${n}: `:"",Il("input",{ref:0===s?u:void 0,type:t,name:e,autoComplete:"on",style:Yl.Input,autoFocus:!0,placeholder:r,value:c[e]||"",onInput:n=>{var r;const s=function(e,t){switch(e){case"email":return t.toLowerCase();case"otp":return t.toUpperCase();default:return t}}(t,null===(r=n.target)||void 0===r?void 0:r.value);let i=Object.assign(Object.assign({},c),{[e]:s});a(i),"otp"===t&&8===(null==s?void 0:s.trim().length)&&l(i)}})))))),Il("div",{style:Yl.ButtonsDiv},Il(Dl,null,Il("button",{type:"submit",style:Yl.PrimaryButton,onClick:()=>l(c)},s),i&&Il("button",{style:Yl.Button,onClick:o},i))))}class vc extends Ol{constructor(e){super(e),this.observer=e=>this.setState({userInteraction:e}),this.state={userInteraction:void 0}}componentDidMount(){this.subscription=t.from(this.props.db.cloud.userInteraction).subscribe(this.observer)}componentWillUnmount(){this.subscription&&(this.subscription.unsubscribe(),delete this.subscription)}render(e,{userInteraction:t}){return t?Il(bc,Object.assign({},t)):null}}function wc(e){const t=new WeakMap;return n=>{let r=t.get(n);return r||(r=e(n),t.set(n,r)),r}}const _c=wc((e=>new t.BehaviorSubject(c)));function kc(e,n){let r=n,s=t.from(e).pipe(t.map((e=>r=e)),t.share({resetOnRefCountZero:()=>t.timer(1e3)}));const i=new t.Observable((e=>{let t=!1;const n=s.subscribe({next(n){t=!0,e.next(n)},error(t){e.error(t)},complete(){e.complete()}});return t||n.closed||e.next(r),n}));return i.getValue=()=>r,i}const Sc=wc((t=>kc(e.liveQuery((()=>t.roles.where({realmId:"rlm-public"}).toArray().then((e=>{const t={};for(const n of e.slice().sort(((e,t)=>(e.sortOrder||0)-(t.sortOrder||0))))t[n.name]=n;return t})))),{}))),Ec=wc((t=>kc(_c(t._novip).pipe(n.switchMap((n=>e.liveQuery((()=>t.transaction("r","realms","members",(()=>Promise.all([t.members.where({userId:n.userId}).toArray(),t.realms.toArray(),n.userId]).then((([e,t,n])=>({selfMembers:e,realms:t,userId:n})))))))))),{selfMembers:[],realms:[],get userId(){return t.cloud.currentUserId}})));function xc(...e){if(0===e.length)return{};const t=e.reduce(((e,t)=>{const n=Object.assign({},e);for(const[e,r]of Object.entries(t))if(e in n&&n[e]){if("*"===n[e])continue;if("*"===r)n[e]="*";else if(Array.isArray(r)&&Array.isArray(n[e])){const t=n,s=t[e];t[e]=[...new Set([...s,...r])]}else if("object"==typeof r&&r&&"object"==typeof n[e]){const t=n[e];for(const[e,n]of Object.entries(r))"*"!==t[e]&&("*"===n?t[e]="*":Array.isArray(t[e])&&Array.isArray(n)&&(t[e]=[...new Set([...t[e],...n])]))}}else n[e]=t[e];return n}));return t}const Cc=wc((e=>function(e,n){let r;const s=e.pipe(t.map((e=>r=n(e))));return s.getValue=()=>void 0!==r?r:r=n(e.getValue()),s}(kc(t.combineLatest([Ec(e._novip),Sc(e._novip)]).pipe(n.map((([{selfMembers:e,realms:t,userId:n},r])=>({selfMembers:e,realms:t,userId:n,globalRoles:r})))),{selfMembers:[],realms:[],userId:c.userId,globalRoles:{}}),(({selfMembers:e,realms:t,userId:n,globalRoles:r})=>{const s=t.map((t=>{const s=e.filter((e=>e.realmId===t.realmId)),i=s.map((e=>e.permissions)).filter((e=>e)),o=C(s.map((e=>e.roles)).filter((e=>e))).map((e=>r[e])).filter((e=>e)).map((e=>e.permissions));return Object.assign(Object.assign({},t),{permissions:t.owner===n?{manage:"*"}:xc(...i,...o)})})).reduce(((e,t)=>Object.assign(Object.assign({},e),{[t.realmId]:t})),{[n]:{realmId:n,owner:n,name:n,permissions:{manage:"*"}}});return s}))));class Ic{constructor(e,t,n){this.permissions=e||{},this.tableName=t,this.isOwner=n}add(...e){var t;return"*"===this.permissions.manage||(!!(null===(t=this.permissions.manage)||void 0===t?void 0:t.includes(this.tableName))||("*"===this.permissions.add||!!e.every((e=>{var t;return null===(t=this.permissions.add)||void 0===t?void 0:t.includes(e)}))))}update(...e){var t,n;if(this.isOwner||"*"===this.permissions.manage)return!0;if(null===(t=this.permissions.manage)||void 0===t?void 0:t.includes(this.tableName))return!0;if("*"===this.permissions.update)return e.every((e=>"owner"!==e));const r=null===(n=this.permissions.update)||void 0===n?void 0:n[this.tableName];return"*"===r?e.every((e=>"owner"!==e)):e.every((e=>null==r?void 0:r.some((t=>t===e||"*"===t&&"owner"!==e))))}delete(){var e;return!(!this.isOwner&&"*"!==this.permissions.manage)||!!(null===(e=this.permissions.manage)||void 0===e?void 0:e.includes(this.tableName))}}const Ac=wc((s=>{const i=_c(s._novip).pipe(n.switchMap((t=>e.liveQuery((()=>s.members.where({email:t.email||""}).toArray()))))),o=Cc(s._novip),l=Ec(s._novip);return kc(t.combineLatest([i,l,o]).pipe(n.map((([e,t,n])=>{const i=(e,t)=>Object.assign(Object.assign({},e),{[t.id]:Object.assign(Object.assign({},t),{realm:n[t.realmId]})}),o=e.reduce(i,{}),l=t.selfMembers.reduce(i,o);return Object.values(l).filter((e=>!e.accepted)).map((e=>Object.assign(Object.assign({},e),{accept(){return r(this,void 0,void 0,(function*(){yield s.members.update(e.id,{accepted:new Date})}))},reject(){return r(this,void 0,void 0,(function*(){yield s.members.update(e.id,{rejected:new Date})}))}})))}))),[])}));function Dc(n){return s=>{var i;const o=s.doc;if(!o)throw new Error("Internal error: DexieYProvider.createYHandler called without a doc. This is unexpected.");const{parentTable:l}=o.meta||{};if(!(null===(i=n.cloud.schema)||void 0===i?void 0:i[l].markedForSync))return;let c;Object.defineProperty(s,"awareness",{get:()=>c||(c=function(n,s,i){const{parentTable:o,parentId:l,parentProp:c,updatesTable:a}=s.meta,u=new tl(s),d=il(s);return u.on("update",(({added:e,updated:t,removed:r},l)=>{const a=e.concat(t).concat(r),d=n.cloud.currentUser.value;if("server"!==l&&d.isLoggedIn&&!Wo(n)){const e=rl(u,a);n.messageProducer.next({type:"aware",table:o,prop:c,k:s.meta.parentId,u:e}),i.destroyed&&n.messageProducer.next({type:"doc-close",table:o,prop:c,k:s.meta.parentId})}})),u.on("destroy",(()=>{nl(u,[s.clientID],"provider destroyed")})),(()=>{r(this,void 0,void 0,(function*(){if(i.destroyed)return;let s=!1,u=1;const h=t.combineLatest([n.cloud.webSocketStatus,d.pipe(t.startWith(null))]).subscribe((([e])=>{if(i.destroyed)return;s="connected"===e;const t=n.cloud.currentUser.value;"connected"===e&&t.isLoggedIn&&!Wo(n)&&(++u,f().catch((e=>{})))}));function f(){return r(this,void 0,void 0,(function*(){const t=u,d=n.table(a),h=n.$syncState,[f,p]=yield n.transaction("r",h,d,(()=>r(this,void 0,void 0,(function*(){const e=yield d.get(yt),t=yield h.get("syncState");return[(null==e?void 0:e.receivedUntil)||0,(null==t?void 0:t.yServerRevision)||(null==t?void 0:t.serverRevision)]}))));if(i.destroyed||u!==t||!s)return;const g={type:"doc-open",table:o,prop:c,k:l,serverRev:p},y=yield d.where("i").between(f,1/0,!1).filter((t=>0===e.cmp(t.k,l)&&0==(1&(t.f||0)))).toArray();if(!i.destroyed&&u===t&&s){if(y.length>0){const e=hs(y.map((e=>e.u))),t=us(e);g.sv=t}n.messageProducer.next(g)}}))}i.addCleanupHandler(h)}))})(),u}(n,o,s),Zo.set(o,c),c)})}}const Oc={nameSuffix:!0};function Tc(s){const i=s.name,o=_c(s),l=[];let a=!1,u=null;s.on("ready",(s=>r(this,void 0,void 0,(function*(){try{yield function(s){return r(this,void 0,void 0,(function*(){var i,c,p,m,b,v,w;d=!1;const k=bo(s);"undefined"!=typeof window&&"undefined"!=typeof document&&((null===(i=k.cloud.options)||void 0===i?void 0:i.customLoginGui)||l.push(function(e){let t=!1;const n=document.createElement("div");return document.body?(document.body.appendChild(n),ql(Il(vc,{db:e.vip}),n)):addEventListener("DOMContentLoaded",(()=>{t||(document.body.appendChild(n),ql(Il(vc,{db:e.vip}),n))})),{unsubscribe(){try{n.remove()}catch(e){}t=!0},get closed(){return t}}}(s))),k.cloud.isServiceWorkerDB||l.push(function(e){let r=e.cloud.webSocketStatus.value;const s=e.cloud.webSocketStatus.pipe(n.switchMap((e=>{const s=r;r=e;const i=t.of(e);switch(e){case"disconnected":return zo.value?i.pipe(n.debounceTime(500)):i;case"connecting":return"not-started"===s||"error"===s?i:i.pipe(n.debounceTime(4e3));default:return i}})));return t.combineLatest([s,e.syncStateChangedEvent.pipe(n.startWith({phase:"initial"})),_c(e.dx._novip),Jo]).pipe(n.map((([t,n,r,s])=>{var i;if((null===(i=r.license)||void 0===i?void 0:i.status)&&"ok"!==r.license.status)return{phase:"offline",status:"offline",license:r.license.status};let{phase:o,error:l,progress:c}=n,a=t;return"error"===o&&(a="error"),"not-started"===t&&("pushing"!==o&&"pulling"!==o||(a="connecting")),"error"!==e.cloud.syncState.value.phase||"pushing"!==n.phase&&"pulling"!==n.phase||(a="connecting"),s||(a="disconnected"),{phase:o,error:l,progress:c,status:dt?a:"offline",license:"ok"}})))}(k).subscribe(s.cloud.syncState)),l.push(k.syncCompleteEvent.subscribe(f)),k.tables.every((e=>e.core))||function(){throw new e.SchemaError("Version increment needed to allow dexie-cloud change tracking")}();const S="serviceWorker"in navigator?yield navigator.serviceWorker.getRegistrations():[],[E,x]=yield k.transaction("rw",k.$syncState,(()=>r(this,void 0,void 0,(function*(){var e,t;const{options:n,schema:r}=k.cloud,[s,i,o]=yield Promise.all([k.getOptions(),k.getSchema(),k.getPersistedSyncState()]);if(a){if(!s||JSON.stringify(s)!==JSON.stringify(n)){if(!n)throw new Error("Internal error");const e=Object.assign({},n);delete e.fetchTokens,delete e.awarenessProtocol,yield k.$syncState.put(e,"options")}}else k.cloud.options=s||null;if((null===(e=k.cloud.options)||void 0===e?void 0:e.tryUseServiceWorker)&&"serviceWorker"in navigator&&S.length>0&&!Do?k.cloud.usingServiceWorker=!0:((null===(t=k.cloud.options)||void 0===t?void 0:t.tryUseServiceWorker)&&k.cloud.isServiceWorkerDB,k.cloud.usingServiceWorker=!1),yl(r,k.cloud.options),yl(i,k.cloud.options),r){if(!i||JSON.stringify(i)!==JSON.stringify(r)){const e=i||{};for(const[t,n]of Object.entries(r)){const r=e[t];r?(r.markedForSync=n.markedForSync,n.deleted=r.deleted,r.generatedGlobalId=n.generatedGlobalId):e[t]=Object.assign({},n)}yield k.$syncState.put(e,"schema"),Object.assign(r,e)}}else k.cloud.schema=i||null;return[null==o?void 0:o.initiallySynced,null==o?void 0:o.realms]}))));if(E&&k.setInitiallySynced(!0),function(t){var n,r;for(const s of t.tables)if(null===(r=null===(n=t.cloud.schema)||void 0===n?void 0:n[s.name])||void 0===r?void 0:r.markedForSync){if(s.schema.primKey.auto)throw new e.SchemaError(`Table ${s.name} is both autoIncremented and synced. Use db.cloud.configure({unsyncedTables: [${JSON.stringify(s.name)}]}) to blacklist it from sync`);if(!s.schema.primKey.keyPath)throw new e.SchemaError(`Table ${s.name} cannot be both synced and outbound. Use db.cloud.configure({unsyncedTables: [${JSON.stringify(s.name)}]}) to blacklist it from sync`)}}(k),h(),!k.cloud.isServiceWorkerDB){l.push(e.liveQuery((()=>k.getCurrentUser())).subscribe(o)),l.push(e.liveQuery((()=>k.getPersistedSyncState())).subscribe(k.cloud.persistedSyncState)),yield t.firstValueFrom(t.combineLatest([o.pipe(n.skip(1),n.take(1)),k.cloud.persistedSyncState.pipe(n.skip(1),n.take(1))]));const r=Dc(k);eo.on.new.subscribe(r),k.dx.once("close",(()=>{eo.on.new.unsubscribe(r)}))}let C=!1;const I=yield k.getCurrentUser(),A=null===(c=k.cloud.options)||void 0===c?void 0:c.requireAuth;A&&(k.cloud.isServiceWorkerDB?yield t.firstValueFrom(o.pipe(n.filter((e=>!!e.isLoggedIn)),n.take(1))):"object"==typeof A?(!I.isLoggedIn||A.userId&&I.userId!==A.userId||A.email&&I.email!==A.email)&&(C=yield xo(k,A)):I.isLoggedIn||(C=yield xo(k))),!I.isLoggedIn||x&&x.includes(I.userId)||(C=!0),u&&u.stop(),u=null,h();const D=(null===(p=k.cloud.options)||void 0===p?void 0:p.databaseUrl)&&(!E||C);D&&(yield function(e,t,n){return r(this,void 0,void 0,(function*(){yield Ho(e,oo,(()=>lo(e,t,n,{isInitialSync:!0})))}))}(k,k.cloud.options,k.cloud.schema),k.setInitiallySynced(!0)),h(),k.cloud.usingServiceWorker&&(null===(m=k.cloud.options)||void 0===m?void 0:m.databaseUrl)?(D||g(k,"push").catch((()=>{})),function(e){return r(this,void 0,void 0,(function*(){var t;try{const{periodicSync:n}=yield navigator.serviceWorker.ready;if(n)try{yield n.register(`dexie-cloud:${e.name}`,null===(t=e.cloud.options)||void 0===t?void 0:t.periodicSync)}catch(e){}}catch(e){}}))}(k).catch((()=>{}))):(null===(b=k.cloud.options)||void 0===b?void 0:b.databaseUrl)&&k.cloud.schema&&!k.cloud.isServiceWorkerDB&&(u=gl(k,k.cloud.options,k.cloud.schema),u.start(),D||y(k,"push")),h(),k.cloud.isServiceWorkerDB||l.push(t.fromEvent(self,"online").subscribe((()=>{k.syncStateChangedEvent.next({phase:"not-in-sync"}),Wo(k)||y(k,"push")})),t.fromEvent(self,"offline").subscribe((()=>{k.syncStateChangedEvent.next({phase:"offline"})}))),!(null===(v=k.cloud.options)||void 0===v?void 0:v.databaseUrl)||(null===(w=k.cloud.options)||void 0===w?void 0:w.disableWebSocket)||Oo||l.push(function(e){var s;if(!(null===(s=e.cloud.options)||void 0===s?void 0:s.databaseUrl))throw new Error("No database URL to connect WebSocket to");const i=e.messageConsumer.readyToServe.pipe(n.filter((e=>e)),n.switchMap((()=>e.getPersistedSyncState())),n.filter((e=>e&&e.serverRevision)),n.switchMap((e=>r(this,void 0,void 0,(function*(){return{type:"ready",rev:e.serverRevision,realmSetHash:yield _(e)}}))))),o=t.merge(i,e.messageProducer);return function s(){return e.cloud.persistedSyncState.pipe(n.filter((e=>null==e?void 0:e.serverRevision)),n.take(1),n.switchMap((t=>e.cloud.currentUser.pipe(n.map((e=>[e,t]))))),n.switchMap((([e,t])=>Jo.pipe(n.map((n=>[n?e:null,t]))))),n.switchMap((([r,s])=>(null==r?void 0:r.isLoggedIn)&&!(null==s?void 0:s.realms.includes(r.userId))?e.cloud.persistedSyncState.pipe(n.filter((e=>(null==e?void 0:e.realms.includes(r.userId))||!1)),n.take(1),n.map((e=>[r,e]))):new t.BehaviorSubject([r,s]))),n.switchMap((e=>r(this,[e],void 0,(function*([e,t]){return[e,yield _(t)]})))),n.distinctUntilChanged((([e,t],[n,r])=>e===n&&t===r)),n.switchMap((([n,r])=>{var i;return(null===(i=e.cloud.persistedSyncState)||void 0===i?void 0:i.value)?n?new ol(e,e.cloud.persistedSyncState.value.serverRevision,e.cloud.persistedSyncState.value.yServerRevision,r,e.cloud.persistedSyncState.value.clientIdentity,o,e.cloud.webSocketStatus,n):t.from([]):s()})),n.catchError((i=>"TokenExpiredError"===(null==i?void 0:i.name)?t.of(!0).pipe(n.switchMap((()=>r(this,void 0,void 0,(function*(){const t=yield e.getCurrentUser(),n=yield Ie(e.cloud.options.databaseUrl,t);yield e.table("$logins").update(t.userId,{accessToken:n.accessToken,accessTokenExpiration:n.accessTokenExpiration,claims:n.claims,license:n.license,data:n.data})})))),n.switchMap((()=>s()))):t.throwError((()=>i)))),n.catchError((r=>(e.cloud.webSocketStatus.next("error"),r instanceof al?t.throwError((()=>r)):t.from(ul()).pipe(n.switchMap((()=>s())))))))}().subscribe({next:t=>{t&&e.messageConsumer.enqueue(t)},error:e=>{},complete:()=>{}})}(k))}))}(s)}catch(e){}}))),!0);let d=!1;function h(){if(d)throw new e.DatabaseClosedError}s.once("close",(()=>{l.forEach((e=>e.unsubscribe())),l.splice(0,l.length),d=!0,u&&u.stop(),u=null,o.next(c)}));const f=new t.Subject;var p;s.cloud={version:"4.2.4",options:Object.assign({},Oc),schema:null,get currentUserId(){return o.value.userId||c.userId},currentUser:o,syncState:new t.BehaviorSubject({phase:"initial",status:"not-started"}),events:{syncComplete:f},persistedSyncState:new t.BehaviorSubject(void 0),userInteraction:new t.BehaviorSubject(void 0),webSocketStatus:new t.BehaviorSubject("not-started"),login(e){return r(this,void 0,void 0,(function*(){const t=bo(s);yield t.cloud.sync(),yield xo(t,e)}))},invites:Ac(s),roles:Sc(s),configure(e){e=s.cloud.options=Object.assign(Object.assign({},s.cloud.options),e),a=!0,e.databaseUrl&&e.nameSuffix&&(s.name=`${i}-${function(e){const t=new URL(e);return"/"===t.pathname?t.hostname.split(".")[0]:t.pathname.split("/")[1]}(e.databaseUrl)}`,bo(s).reconfigure()),yl(s.cloud.schema,s.cloud.options)},logout(){return r(this,arguments,void 0,(function*({force:e}={}){e?yield So(bo(s),{deleteUnsyncedData:!0}):yield ko(bo(s))}))},sync(){return r(this,arguments,void 0,(function*({wait:i,purpose:o}={wait:!0,purpose:"push"}){var l;void 0===i&&(i=!0);const c=bo(s);if("ok"!==((null===(l=c.cloud.currentUser.value.license)||void 0===l?void 0:l.status)||"ok")&&(yield xe(c)),"pull"===o){const e=c.cloud.persistedSyncState.value;if(y(c,o),i){const r=yield t.firstValueFrom(c.cloud.persistedSyncState.pipe(n.filter((t=>null!=(null==t?void 0:t.timestamp)&&(!e||t.timestamp>e.timestamp)))));if(null==r?void 0:r.error)throw new Error("Sync error: "+r.error)}}else if(yield dl(c)){const s=c.cloud.persistedSyncState.value;y(c,o),i&&(yield t.firstValueFrom(t.from(e.liveQuery((()=>r(this,void 0,void 0,(function*(){const e=yield dl(c),t=yield c.getPersistedSyncState();if((null==t?void 0:t.timestamp)!==(null==s?void 0:s.timestamp)&&(null==t?void 0:t.error))throw new Error("Sync error: "+t.error);return e}))))).pipe(n.filter((e=>!e)))))}}))},permissions:(e,t)=>function(e,t,r){if(!t)throw new TypeError("Cannot check permissions of undefined or null. A Dexie Cloud object with realmId and owner expected.");const{owner:s,realmId:i}=t;if(!r){if("function"!=typeof t.table)throw new TypeError("Missing 'table' argument to permissions and table could not be extracted from entity");r=t.table()}const o=Cc(e),l=t=>{const n=t[i||e.cloud.currentUserId];return n?new Ic(n.permissions,r,void 0===i||i===e.cloud.currentUserId||s===e.cloud.currentUserId):new Ic({},r,!s||s===e.cloud.currentUserId)},c=o.pipe(n.map(l));return c.getValue=()=>l(o.getValue()),c}(s._novip,e,t)},s.Version.prototype._parseStoresSpec=e.override(s.Version.prototype._parseStoresSpec,(e=>Ko(e,s))),s.Table.prototype.newId=function({colocateWith:e}={}){const t=e&&e.substr(e.length-3);return Ro(s.cloud.schema[this.name].idPrefix||"",t)},s.Table.prototype.idPrefix=function(){var e,t;return(null===(t=null===(e=this.db.cloud.schema)||void 0===e?void 0:e[this.name])||void 0===t?void 0:t.idPrefix)||""},s.use(Vo({currentUserObservable:s.cloud.currentUser,db:bo(s)})),s.use((p=bo(s),{stack:"dbcore",name:"implicitPropSetterMiddleware",level:1,create:e=>Object.assign(Object.assign({},e),{table:t=>{const n=e.table(t);return Object.assign(Object.assign({},n),{mutate:e=>{var r,s,i,o,l,a;const u=e.trans;if(u.disableChangeTracking)return n.mutate(e);const d=null!==(s=null===(r=u.currentUser)||void 0===r?void 0:r.userId)&&void 0!==s?s:c.userId;if((null===(o=null===(i=p.cloud.schema)||void 0===i?void 0:i[t])||void 0===o?void 0:o.markedForSync)&&("add"===e.type||"put"===e.type)){if("members"===t)for(const t of e.values)"string"==typeof t.email&&(t.email=t.email.trim().toLowerCase());for(const t of e.values){t.owner||(t.owner=d),t.realmId||(t.realmId=d);const r=null===(a=(l=n.schema.primaryKey).extractKey)||void 0===a?void 0:a.call(l,t);"string"==typeof r&&"#"===r[0]&&"put"===e.type&&(delete e.criteria,delete e.changeSpec,e.upsert||delete e.updates,t.$ts=Date.now())}}return n.mutate(e)}})}})})),s.use(Mo(bo(s)))}Tc.version="4.2.4",e.Cloud=Tc;const Uc=new Map;function jc(e){return e.startsWith("dexie-cloud:")&&e.split(":")[1]}const Lc=new Map;function Pc(t,n){let s=Lc.get(t+"/"+n);return s||(s=function t(n,s){return r(this,void 0,void 0,(function*(){var r;let i=Uc.get(n);if(!i){const r=new e(n,{addons:[Tc]});if(i=bo(r),i.cloud.isServiceWorkerDB=!0,r.on("versionchange",o),yield i.dx.open(),Uc.get(n))return i.close(),yield t(n,s);Uc.set(n,i)}if((null===(r=i.cloud.options)||void 0===r?void 0:r.databaseUrl)&&i.cloud.schema)try{yield fl(i,i.cloud.options,i.cloud.schema,{retryImmediatelyOnFetchError:!0,purpose:s})}catch(t){if(o(),t.name!==e.errnames.NoSuchDatabase)throw t}function o(){return i.dx.on.versionchange.unsubscribe(o),Uc.get(i.name)===i&&Uc.delete(i.name),i.dx.close(),!1}}))}(t,n).then((()=>{Lc.delete(t+"/"+n)})).catch((e=>(Lc.delete(t+"/"+n),Promise.reject(e)))),Lc.set(t+"/"+n,s)),s}Do||(self.addEventListener("sync",(e=>{const t=jc(e.tag);t&&e.waitUntil(Pc(t,"push"))})),self.addEventListener("periodicsync",(e=>{const t=jc(e.tag);t&&e.waitUntil(Pc(t,"pull"))})),self.addEventListener("message",(e=>{if("dexie-cloud-sync"===e.data.type){const{dbName:t}=e.data,n=(s=1)=>Pc(t,e.data.purpose||"pull").catch((e=>r(void 0,void 0,void 0,(function*(){if(3===s)throw e;var t;yield(t=6e4,new Promise((e=>setTimeout(e,t)))),n(s+1)}))));"waitUntil"in e?e.waitUntil(n().catch((e=>{}))):n().catch((e=>{}))}})))}));
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("dexie"),require("rxjs"),require("rxjs/operators")):"function"==typeof define&&define.amd?define(["dexie","rxjs","rxjs/operators"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Dexie,e.rxjs,e.rxjs.operators)}(this,function(e,t,n){"use strict";function r(e,t,n,r){return new(n||(n=Promise))(function(s,i){function o(e){try{c(r.next(e))}catch(e){i(e)}}function l(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,l)}c((r=r.apply(e,t||[])).next())})}function s(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function i(e){return this instanceof i?(this.v=e,this):new i(e)}function o(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,s=n.apply(e,t||[]),o=[];return r=Object.create(("function"==typeof AsyncIterator?AsyncIterator:Object).prototype),l("next"),l("throw"),l("return",function(e){return function(t){return Promise.resolve(t).then(e,d)}}),r[Symbol.asyncIterator]=function(){return this},r;function l(e,t){s[e]&&(r[e]=function(t){return new Promise(function(n,r){o.push([e,t,n,r])>1||c(e,t)})},t&&(r[e]=t(r[e])))}function c(e,t){try{!function(e){e.value instanceof i?Promise.resolve(e.value.v).then(a,d):u(o[0][2],e)}(s[e](t))}catch(e){u(o[0][3],e)}}function a(e){c("next",e)}function d(e){c("throw",e)}function u(e,t){e(t),o.shift(),o.length&&c(o[0][0],o[0][1])}}function l(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=s(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise(function(r,s){(function(e,t,n,r){Promise.resolve(r).then(function(t){e({value:t,done:n})},t)})(r,s,(t=e[n](t)).done,t.value)})}}}"function"==typeof SuppressedError&&SuppressedError;const c={userId:"unauthorized",name:"Unauthorized",claims:{sub:"unauthorized"},lastLogin:new Date(0)};try{Object.freeze(c),Object.freeze(c.claims)}catch(e){}const a={},d="undefined"!=typeof self&&self.document&&"undefined"!=typeof navigator&&navigator.serviceWorker;d&&d.ready.then(e=>a.registration=e),"undefined"!=typeof self&&"clients"in self&&!self.document&&addEventListener("message",e=>{var t,n;(null===(n=null===(t=e.data)||void 0===t?void 0:t.type)||void 0===n?void 0:n.startsWith("sw-broadcast-"))&&[...self.clients.matchAll({includeUncontrolled:!0})].forEach(t=>{var n;return t.id!==(null===(n=e.source)||void 0===n?void 0:n.id)&&t.postMessage(e.data)})});class u{constructor(e){this.name=e}subscribe(e){if(!d)return()=>{};const t=t=>{var n;(null===(n=t.data)||void 0===n?void 0:n.type)===`sw-broadcast-${this.name}`&&e(t.data.message)};return d.addEventListener("message",t),()=>d.removeEventListener("message",t)}postMessage(e){var t;"object"==typeof self.clients?[...self.clients.matchAll({includeUncontrolled:!0})].forEach(t=>t.postMessage({type:`sw-broadcast-${this.name}`,message:e})):a.registration&&(null===(t=a.registration.active)||void 0===t||t.postMessage({type:`sw-broadcast-${this.name}`,message:e}))}}const h=globalThis["lbc-events"]||(globalThis["lbc-events"]=new Map);class f extends t.Observable{constructor(e){const t="undefined"==typeof BroadcastChannel?new u(e):new BroadcastChannel(e);super(n=>{function r(e){n.next(e.detail)}function s(e){n.next(e.data)}let i;!function(e,t){h.has(e)?h.get(e).push(t):h.set(e,[t])}(`lbc-${e}`,r);try{t instanceof u?i=t.subscribe(e=>n.next(e)):t.addEventListener("message",s)}catch(e){}return()=>{!function(e,t){const n=h.get(e);if(n){const e=n.indexOf(t);-1!==e&&n.splice(e,1)}}(`lbc-${e}`,r),t instanceof u?i():t.removeEventListener("message",s)}}),this.name=e,this.bc=t}next(e){this.bc.postMessage(e);!function(e){const t=h.get(e.type);t&&t.forEach(t=>{try{t(e)}catch(e){}})}(new CustomEvent(`lbc-${this.name}`,{detail:e}))}}let p=!1;function g(e,t){return r(this,void 0,void 0,function*(){try{const n=yield navigator.serviceWorker.ready;if("push"===t&&n.sync&&(yield n.sync.register(`dexie-cloud:${e.name}`)),!n.active)throw new Error("Failed to trigger sync - there's no active service worker");return void n.active.postMessage({type:"dexie-cloud-sync",dbName:e.name,purpose:t})}catch(e){p||(p=!0)}})}function y(e,t){e.cloud.usingServiceWorker?g(e,t):e.localSyncEvent.next({purpose:t})}const m="fromBase64"in Uint8Array,v="toBase64"in Uint8Array.prototype,b="undefined"!=typeof Buffer?e=>Buffer.from(e,"base64"):m?e=>Uint8Array.fromBase64(e):e=>{const t=atob(e),n=t.length,r=new Uint8Array(n);for(var s=0;s<n;s++)r[s]=t.charCodeAt(s);return r},w="undefined"!=typeof Buffer?e=>ArrayBuffer.isView(e)?Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("base64"):Buffer.from(e).toString("base64"):v?e=>(ArrayBuffer.isView(e)?e:new Uint8Array(e)).toBase64():e=>{const t=ArrayBuffer.isView(e)?e:new Uint8Array(e),n=[];for(let e=0,r=t.length;e<r;e+=4096){const r=t.subarray(e,e+4096);n.push(String.fromCharCode.apply(null,r))}return btoa(n.join(""))};function _(e){return r(this,arguments,void 0,function*({realms:e,inviteRealms:t}){const n=JSON.stringify([...e.map(e=>({realmId:e,accepted:!0})),...t.map(e=>({realmId:e,accepted:!1}))].sort((e,t)=>e.realmId<t.realmId?-1:e.realmId>t.realmId?1:0)),r=(new TextEncoder).encode(n),s=yield crypto.subtle.digest("SHA-1",r);return w(s)})}function k(e){return Object.entries(e.cloud.schema||{}).filter(([,{markedForSync:e}])=>e).map(([t])=>e.tables.filter(({name:e})=>e===t)[0]).filter(e=>e)}function S(e){return`$${e}_mutations`}function x(e){var t;const n=null===(t=/^\$(.*)_mutations$/.exec(e))||void 0===t?void 0:t[1];if(!n)throw new Error(`Given mutationTable ${e} is not correct`);return n}const E=[].concat;function C(e){return E.apply([],e)}function I(e,t){return r(this,arguments,void 0,function*(e,t,{since:n={},limit:s=1/0}={}){const i=yield Promise.all(e.map(e=>r(this,void 0,void 0,function*(){const t=x(e.name),r=n[t];let i=r?e.where("rev").above(r):e;s<1/0&&(i=i.limit(s));let o=yield i.toArray();o=function(e){return e=e.map(e=>{if("modify"===e.type&&null===e.criteria.index){const t=Object.assign(Object.assign({},e),{criteria:void 0,changeSpec:void 0,type:"update",keys:e.keys,changeSpecs:[e.changeSpec]});return delete t.criteria,delete t.changeSpec,t}return e}),e}(o),o=function(e){const t=new Map;for(const n of e)if("update"===n.type){if(1!==n.keys.length||1!==n.changeSpecs.length)continue;const e=""+n.keys[0],r=n.changeSpecs[0];if(Object.values(r).some(e=>"object"==typeof e&&e&&"@@propmod"in e))continue;let s=t.get(e);s?s.push({txid:n.txid,updateSpec:r}):t.set(e,[{txid:n.txid,updateSpec:r}])}return e=e.filter(e=>{if("update"!==e.type)return!0;if(1!==e.keys.length||1!==e.changeSpecs.length)return!0;const n=e.changeSpecs[0];if(Object.values(n).some(e=>"object"==typeof e&&e&&"@@propmod"in e))return!0;const r=new Set(Object.keys(e.changeSpecs[0])),s=""+e.keys[0],i=t.get(s);if(!i)return!0;for(let t=i.length-1;t>=0;--t){const{txid:n,updateSpec:s}=i[t];if(n===e.txid)break;for(const e of Object.keys(s))r.delete(e)}return 0!==r.size}),e}(o);return o.map(e=>({table:t,mut:e}))}))),o=C(i).sort((e,t)=>e.mut.txid===t.mut.txid?e.mut.opNo-t.mut.opNo:e.mut.ts-t.mut.ts),l=[];let c=null,a=null;for(const{table:e,mut:t}of o)c&&c.table===e&&a===t.txid?c.muts.push(t):(c={table:e,muts:[t]},a=t.txid,l.push(c));return l})}function O(e){const t=new Uint8Array(e);if("undefined"!=typeof crypto)crypto.getRandomValues(t);else for(let n=0;n<e;n++)t[n]=Math.floor(256*Math.random());if("undefined"!=typeof Buffer&&Buffer.from)return Buffer.from(t).toString("base64");if("undefined"!=typeof btoa)return btoa(String.fromCharCode.apply(null,t));throw new Error("No btoa or Buffer available")}const A={}.hasOwnProperty;function D(e,t,n){if(e&&void 0!==t&&(!("isFrozen"in Object)||!Object.isFrozen(e)))if("string"!=typeof t&&"length"in t){!function(e){if(!e)throw new Error("Assertion Failed")}("string"!=typeof n&&"length"in n);for(var r=0,s=t.length;r<s;++r)D(e,t[r],n[r])}else{var i=t.indexOf(".");if(-1!==i){var o=t.substr(0,i),l=t.substr(i+1);if(""===l)void 0===n?Array.isArray(e)?isNaN(parseInt(o))||e.splice(parseInt(o),1):delete e[o]:e[o]=n;else{var c=e[o];c&&function(e,t){return A.call(e,t)}(e,o)||(c=e[o]={}),D(c,l,n)}}else void 0===n?Array.isArray(e)&&!isNaN(parseInt(t))?e.splice(t,1):delete e[t]:e[t]=n}}const T="undefined"!=typeof self&&"undefined"!=typeof crypto?(e,t=crypto.getRandomValues.bind(crypto))=>{const n=new Uint8Array(e);return t(n),self.btoa(String.fromCharCode.apply(null,n))}:"undefined"!=typeof Buffer?(e,t=U)=>{const n=Buffer.alloc(e);return t(n),n.toString("base64")}:()=>{throw new Error("No implementation of randomString was found")};function U(e){for(let t=0;t<e.length;++t)e[t]=Math.floor(256*Math.random())}function j(e){return"string"==typeof e||!!(Array.isArray(e)&&e.some(e=>j(e))&&e.every(P))}function P(e){return"string"==typeof e||"number"==typeof e||Array.isArray(e)&&e.every(P)}function L(e,t,n){const r=e[t]||(e[t]={}),s=n.keys.map(e=>"string"==typeof e?e:JSON.stringify(e));switch(n.type){case"insert":case"upsert":s.forEach((e,t)=>{r[e]={type:"ups",val:n.values[t]}});break;case"update":case"modify":s.forEach((e,t)=>{const s="update"===n.type?n.changeSpecs[t]:n.changeSpec,i=r[e];if(i)switch(i.type){case"ups":for(const[e,t]of Object.entries(s))D(i.val,e,t);break;case"del":break;case"upd":Object.assign(i.mod,s)}else r[e]={type:"upd",mod:s}});break;case"delete":s.forEach(e=>{r[e]={type:"del"}})}return e}function R(e,t){for(const{table:n,muts:r}of t)for(const t of r)L(e,n,t)}const M=Math.floor,$=Math.abs,N=(e,t)=>e<t?e:t,B=(e,t)=>e>t?e:t,F=e=>0!==e?e<0:1/e<0,W=64,H=128,V=127,z=Number.MAX_SAFE_INTEGER,K=Number.isInteger||(e=>"number"==typeof e&&isFinite(e)&&M(e)===e),J=()=>new Set,q=e=>e[e.length-1],G=(e,t)=>{for(let n=0;n<t.length;n++)e.push(t[n])},Y=Array.from,Q=Array.isArray,X=/^\s*/g,Z=/([A-Z])/g,ee=(e,t)=>(e=>e.replace(X,""))(e.replace(Z,e=>`${t}${(e=>e.toLowerCase())(e)}`)),te="undefined"!=typeof TextEncoder?new TextEncoder:null,ne=te?e=>te.encode(e):e=>{const t=unescape(encodeURIComponent(e)),n=t.length,r=new Uint8Array(n);for(let e=0;e<n;e++)r[e]=t.codePointAt(e);return r};let re="undefined"==typeof TextDecoder?null:new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});re&&1===re.decode(new Uint8Array).length&&(re=null);class se{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}}const ie=()=>new se,oe=e=>{const t=new Uint8Array((e=>{let t=e.cpos;for(let n=0;n<e.bufs.length;n++)t+=e.bufs[n].length;return t})(e));let n=0;for(let r=0;r<e.bufs.length;r++){const s=e.bufs[r];t.set(s,n),n+=s.length}return t.set(new Uint8Array(e.cbuf.buffer,0,e.cpos),n),t},le=(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},ce=le,ae=(e,t)=>{for(;t>V;)le(e,H|V&t),t=M(t/128);le(e,V&t)},de=(e,t)=>{const n=F(t);for(n&&(t=-t),le(e,(t>63?H:0)|(n?W:0)|63&t),t=M(t/64);t>0;)le(e,(t>V?H:0)|V&t),t=M(t/128)},ue=new Uint8Array(3e4),he=ue.length/3,fe=te&&te.encodeInto?(e,t)=>{if(t.length<he){const n=te.encodeInto(t,ue).written||0;ae(e,n);for(let t=0;t<n;t++)le(e,ue[t])}else ge(e,ne(t))}:(e,t)=>{const n=unescape(encodeURIComponent(t)),r=n.length;ae(e,r);for(let t=0;t<r;t++)le(e,n.codePointAt(t))},pe=(e,t)=>{const n=e.cbuf.length,r=e.cpos,s=N(n-r,t.length),i=t.length-s;e.cbuf.set(t.subarray(0,s),r),e.cpos+=s,i>0&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(B(2*n,i)),e.cbuf.set(t.subarray(s)),e.cpos=i)},ge=(e,t)=>{ae(e,t.byteLength),pe(e,t)},ye=(e,t)=>{((e,t)=>{const n=e.cbuf.length;n-e.cpos<t&&(e.bufs.push(new Uint8Array(e.cbuf.buffer,0,e.cpos)),e.cbuf=new Uint8Array(2*B(n,t)),e.cpos=0)})(e,t);const n=new DataView(e.cbuf.buffer,e.cpos,t);return e.cpos+=t,n},me=(e,t)=>ye(e,8).setBigUint64(0,t,!1),ve=new DataView(new ArrayBuffer(4)),be=(e,t)=>{switch(typeof t){case"string":le(e,119),fe(e,t);break;case"number":K(t)&&$(t)<=2147483647?(le(e,125),de(e,t)):(n=t,ve.setFloat32(0,n),ve.getFloat32(0)===n?(le(e,124),((e,t)=>{ye(e,4).setFloat32(0,t,!1)})(e,t)):(le(e,123),((e,t)=>{ye(e,8).setFloat64(0,t,!1)})(e,t)));break;case"bigint":le(e,122),((e,t)=>{ye(e,8).setBigInt64(0,t,!1)})(e,t);break;case"object":if(null===t)le(e,126);else if(Q(t)){le(e,117),ae(e,t.length);for(let n=0;n<t.length;n++)be(e,t[n])}else if(t instanceof Uint8Array)le(e,116),ge(e,t);else{le(e,118);const n=Object.keys(t);ae(e,n.length);for(let r=0;r<n.length;r++){const s=n[r];fe(e,s),be(e,t[s])}}break;case"boolean":le(e,t?120:121);break;default:le(e,127)}var n};class we extends se{constructor(e){super(),this.w=e,this.s=null,this.count=0}write(e){this.s===e?this.count++:(this.count>0&&ae(this,this.count-1),this.count=1,this.w(this,e),this.s=e)}}const _e=e=>{e.count>0&&(de(e.encoder,1===e.count?e.s:-e.s),e.count>1&&ae(e.encoder,e.count-2))};class ke{constructor(){this.encoder=new se,this.s=0,this.count=0}write(e){this.s===e?this.count++:(_e(this),this.count=1,this.s=e)}toUint8Array(){return _e(this),oe(this.encoder)}}const Se=e=>{if(e.count>0){const t=2*e.diff+(1===e.count?0:1);de(e.encoder,t),e.count>1&&ae(e.encoder,e.count-2)}};class xe{constructor(){this.encoder=new se,this.s=0,this.count=0,this.diff=0}write(e){this.diff===e-this.s?(this.s=e,this.count++):(Se(this),this.count=1,this.diff=e-this.s,this.s=e)}toUint8Array(){return Se(this),oe(this.encoder)}}class Ee{constructor(){this.sarr=[],this.s="",this.lensE=new ke}write(e){this.s+=e,this.s.length>19&&(this.sarr.push(this.s),this.s=""),this.lensE.write(e.length)}toUint8Array(){const e=new se;return this.sarr.push(this.s),this.s="",fe(e,this.sarr.join("")),pe(e,this.lensE.toUint8Array()),oe(e)}}const Ce=e=>new Error(e),Ie=()=>{throw Ce("Method unimplemented")},Oe=()=>{throw Ce("Unexpected case")},Ae=Ce("Unexpected end of array"),De=Ce("Integer out of Range");class Te{constructor(e){this.arr=e,this.pos=0}}const Ue=e=>new Te(e),je=e=>e.pos!==e.arr.length,Pe=e=>((e,t)=>{const n=new Uint8Array(e.arr.buffer,e.pos+e.arr.byteOffset,t);return e.pos+=t,n})(e,Re(e)),Le=e=>e.arr[e.pos++],Re=e=>{let t=0,n=1;const r=e.arr.length;for(;e.pos<r;){const r=e.arr[e.pos++];if(t+=(r&V)*n,n*=128,r<H)return t;if(t>z)throw De}throw Ae},Me=e=>{let t=e.arr[e.pos++],n=63&t,r=64;const s=(t&W)>0?-1:1;if(0===(t&H))return s*n;const i=e.arr.length;for(;e.pos<i;){if(t=e.arr[e.pos++],n+=(t&V)*r,r*=128,t<H)return s*n;if(n>z)throw De}throw Ae},$e=re?e=>re.decode(Pe(e)):e=>{let t=Re(e);if(0===t)return"";{let n=String.fromCodePoint(Le(e));if(--t<100)for(;t--;)n+=String.fromCodePoint(Le(e));else for(;t>0;){const r=t<1e4?t:1e4,s=e.arr.subarray(e.pos,e.pos+r);e.pos+=r,n+=String.fromCodePoint.apply(null,s),t-=r}return decodeURIComponent(escape(n))}},Ne=(e,t)=>{const n=new DataView(e.arr.buffer,e.arr.byteOffset+e.pos,t);return e.pos+=t,n},Be=e=>Ne(e,8).getBigUint64(0,!1),Fe=[e=>{},e=>null,Me,e=>Ne(e,4).getFloat32(0,!1),e=>Ne(e,8).getFloat64(0,!1),e=>Ne(e,8).getBigInt64(0,!1),e=>!1,e=>!0,$e,e=>{const t=Re(e),n={};for(let r=0;r<t;r++){n[$e(e)]=We(e)}return n},e=>{const t=Re(e),n=[];for(let r=0;r<t;r++)n.push(We(e));return n},Pe],We=e=>Fe[127-Le(e)](e);class He extends Te{constructor(e,t){super(e),this.reader=t,this.s=null,this.count=0}read(){return 0===this.count&&(this.s=this.reader(this),je(this)?this.count=Re(this)+1:this.count=-1),this.count--,this.s}}class Ve extends Te{constructor(e){super(e),this.s=0,this.count=0}read(){if(0===this.count){this.s=Me(this);const e=F(this.s);this.count=1,e&&(this.s=-this.s,this.count=Re(this)+2)}return this.count--,this.s}}class ze extends Te{constructor(e){super(e),this.s=0,this.count=0,this.diff=0}read(){if(0===this.count){const e=Me(this),t=1&e;this.diff=M(e/2),this.count=1,t&&(this.count=Re(this)+2)}return this.s+=this.diff,this.count--,this.s}}class Ke{constructor(e){this.decoder=new Ve(e),this.str=$e(this.decoder),this.spos=0}read(){const e=this.spos+this.decoder.read(),t=this.str.slice(this.spos,e);return this.spos=e,t}}async function*Je(e){let t=0,n=new Uint8Array(4),r=0,s=[],i=0;for await(const o of e){const e=new DataView(o.buffer,o.byteOffset,o.byteLength);let l=0;for(;l<o.byteLength;)switch(t){case 0:if(l+4>o.byteLength){for(const e of o.slice(l)){if(4===r)break;n[r++]=e,++l}if(r<4)break}else if(r>0&&r<4)for(const e of o.slice(l,l+4-r))n[r++]=e,++l;case 1:i=4===r?new DataView(n.buffer,0,4).getUint32(0,!1):e.getUint32(l,!1),r?r=0:l+=4;case 2:if(l>=o.byteLength){t=2;break}if(l+i>o.byteLength)s.push(o.slice(l)),i-=o.byteLength-l,t=2,l=o.byteLength;else{if(s.length>0){const e=new Uint8Array(s.reduce((e,t)=>e+t.byteLength,i));let t=0;for(const n of s)e.set(n,t),t+=n.byteLength;e.set(o.slice(l,l+i),t),s=[],yield e}else yield o.slice(l,l+i);l+=i,t=0}}}}class qe extends Error{constructor({title:e,message:t,messageCode:n,messageParams:r}){super(t),this.name="TokenErrorResponseError",this.title=e,this.messageCode=n,this.messageParams=r}}function Ge(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 Ye(e,t,...n){return Ge(e,{type:"message-alert",title:t,alerts:n,fields:{},submitLabel:"OK",cancelLabel:null})}function Qe(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 Ge(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 Xe(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 Ge(e,{type:"otp",title:"Enter OTP",alerts:r,fields:{otp:{type:"otp",label:"OTP",placeholder:"Paste OTP here"}}});return s})}function Ze(e){return r(this,void 0,void 0,function*(){var t,n,r;const s=yield e.getCurrentUser(),{accessToken:i,accessTokenExpiration:o,refreshToken:l,refreshTokenExpiration:c,claims:a}=s;if(!i)return null;if((null!==(t=null==o?void 0:o.getTime())&&void 0!==t?t:1/0)>Date.now()&&"ok"===((null===(n=s.license)||void 0===n?void 0:n.status)||"ok"))return s;if(!l)throw new Error("Refresh token missing");if((null!==(r=null==c?void 0:c.getTime())&&void 0!==r?r:1/0)<=Date.now())throw new Error("Refresh token has expired");const d=yield tt(e.cloud.options.databaseUrl,s);return yield e.table("$logins").update(a.sub,{accessToken:d.accessToken,accessTokenExpiration:d.accessTokenExpiration,claims:d.claims,license:d.license,data:d.data}),d})}function et(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 tt(t,n):yield function(t,n,s,i){return r(this,void 0,void 0,function*(){if(!crypto.subtle)throw"undefined"!=typeof location&&"http:"===location.protocol?new Error("Dexie Cloud Addon needs to use WebCrypto, but your browser has disabled it due to being served from an insecure location. Please serve it from https or http://localhost:<port> (See https://stackoverflow.com/questions/46670556/how-to-enable-crypto-subtle-for-unsecure-origins-in-chrome/46671627#46671627)"):new Error("This browser does not support WebCrypto.");const{privateKey:r,publicKey:o}=yield crypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:2048,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!1,["sign","verify"]);if(!r||!o)throw new Error("Could not generate RSA keypair");t.nonExportablePrivateKey=r;const l=function(e){const t=w(e);return function(e){let t="-----BEGIN PUBLIC KEY-----\n";for(;e.length>0;)t+=e.substring(0,64)+"\n",e=e.substring(64);return t+="-----END PUBLIC KEY-----",t}(t)}(yield crypto.subtle.exportKey("spki",o));t.publicKey=o;try{const e=yield n({public_key:l,hints:i});if("error"===e.type)throw new qe(e);if("tokens"!==e.type)throw new Error(`Unexpected response type from token endpoint: ${e.type}`);return t.accessToken=e.accessToken,t.accessTokenExpiration=new Date(e.accessTokenExpiration),t.refreshToken=e.refreshToken,e.refreshTokenExpiration&&(t.refreshTokenExpiration=new Date(e.refreshTokenExpiration)),t.userId=e.claims.sub,t.email=e.claims.email,t.name=e.claims.name,t.claims=e.claims,t.license={type:e.userType,status:e.claims.license||"ok"},t.data=e.data,null!=e.evalDaysLeft&&(t.license.evalDaysLeft=e.evalDaysLeft),null!=e.userValidUntil&&(t.license.validUntil=new Date(e.userValidUntil)),e.alerts&&e.alerts.length>0&&(yield Ge(s,{type:"message-alert",title:"Authentication Alert",fields:{},alerts:e.alerts})),t}catch(t){if(t instanceof qe)throw yield Ye(s,t.title,{type:"error",messageCode:t.messageCode,message:t.message,messageParams:{}}),t;let n="We're having a problem authenticating right now.";if(t instanceof TypeError){n=void 0!==typeof navigator&&!navigator.onLine?"You seem to be offline. Please connect to the internet and try again.":e.debug||"undefined"!=typeof location&&("localhost"===location.hostname||"127.0.0.1"===location.hostname)?`Could not connect to server. Please verify that your origin '${location.origin}' is whitelisted using \`npx dexie-cloud whitelist\``:"Could not connect to server. Please verify the connection.",yield Ye(s,"Authentication Failed",{type:"error",messageCode:"GENERIC_ERROR",message:n,messageParams:{}}).catch(()=>{})}throw t}})}(n,s,i,o)})}function tt(e,t){return r(this,void 0,void 0,function*(){if(!t.refreshToken)throw new Error("Cannot refresh token - refresh token is missing.");if(!t.nonExportablePrivateKey)throw new Error("login.nonExportablePrivateKey is missing - cannot sign refresh token without a private key.");const n=Date.now(),r="RSASSA-PKCS1-v1_5",s=(new TextEncoder).encode(t.refreshToken+n),i=yield crypto.subtle.sign(r,t.nonExportablePrivateKey,s),o=w(i),l={grant_type:"refresh_token",refresh_token:t.refreshToken,scopes:["ACCESS_DB"],signature:o,signing_algorithm:r,time_stamp:n},c=yield fetch(`${e}/token`,{body:JSON.stringify(l),method:"post",headers:{"Content-Type":"application/json"},mode:"cors"});if(200!==c.status)throw new Error(`RefreshToken: Status ${c.status} from ${e}/token`);const a=yield c.json();if("error"===a.type)throw new qe(a);return t.accessToken=a.accessToken,t.accessTokenExpiration=a.accessTokenExpiration?new Date(a.accessTokenExpiration):void 0,t.claims=a.claims,t.license={type:a.userType,status:a.claims.license||"ok"},null!=a.evalDaysLeft&&(t.license.evalDaysLeft=a.evalDaysLeft),null!=a.userValidUntil&&(t.license.validUntil=new Date(a.userValidUntil)),a.data&&(t.data=a.data),t})}const{toString:nt}={};const rt={replace:function(e){const t=Object.keys(e);let n=null;for(let e=0,r=t.length;e<r;++e)"$"===t[e][0]&&(n=n||[],n.push(t[e]));if(!n)return e;const r={...e};for(const e of n)delete r[e];for(const t of n)r["$"+t]=e[t];return r}};function st(...e){const t=e.reduce((e,t)=>({...e,...t}),e.reduce((e,t)=>({...t,...e}),{})),n=new WeakMap;return{stringify(e,r,s){const i=JSON.stringify(e,function(e){const s=this[e],i=function(e){const r=typeof e;switch(typeof e){case"object":case"function":{if(null===e)return null;const r=Object.getPrototypeOf(e);if(!r)return rt;let i=n.get(r);if(void 0!==i)return i;const o=(s=e,nt.call(s).slice(8,-1)),l=Object.entries(t).find(([t,n])=>{var r,s;return null!==(s=null===(r=null==n?void 0:n.test)||void 0===r?void 0:r.call(n,e,o))&&void 0!==s?s:t===o});return i=null==l?void 0:l[1],i||(i=Array.isArray(e)?null:"function"==typeof e?t.function||null:rt),n.set(r,i),i}default:return t[r]}var s}(s);return i?i.replace(s,r,t):s},s);return i},parse(e,n){const r=[];return JSON.parse(e,function(e,s){const i=null==s?void 0:s.$t;if(i){const e=t[i];s=e?e.revive(s,n,t):s}let o=r[r.length-1];if(o&&o[0]===s){s={...s};for(const e of o[1])delete s[e];for(const[e,t]of Object.entries(o[2]))s[e]=t;r.pop()}if(void 0===s||"$"===e[0]&&"$t"!==e){let t,n;o=r[r.length-1],o&&o[0]===this?(t=o[1],n=o[2]):r.push([this,t=[],n={}]),"$"===e[0]&&"$t"!==e?(t.push(e),n[e.substr(1)]=s):n[e]=void 0}return s})}}}const it={Blob:{test:(e,t)=>"Blob"===t,replace:(e,t)=>{const n=t.length;return t.push(e),{$t:"Blob",mimeType:e.type,i:n}},revive:({i:e,mimeType:t},n)=>new Blob([n[e]],{type:t})}};var ot={number:{replace:e=>{switch(!0){case isNaN(e):return{$t:"number",v:"NaN"};case e===1/0:return{$t:"number",v:"Infinity"};case e===-1/0:return{$t:"number",v:"-Infinity"};default:return e}},revive:({v:e})=>Number(e)}};const lt={bigint:{replace:e=>({$t:"bigint",v:""+e}),revive:e=>BigInt(e.v)}};var ct={Date:{replace:e=>({$t:"Date",v:isNaN(e.getTime())?"NaN":e.toISOString()}),revive:({v:e})=>new Date("NaN"===e?NaN:Date.parse(e))}},at={Set:{replace:e=>({$t:"Set",v:Array.from(e.entries())}),revive:({v:e})=>new Set(e)}},dt={Map:{replace:e=>({$t:"Map",v:Array.from(e.entries())}),revive:({v:e})=>new Map(e)}};const ut="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof global?global:void 0;var ht=["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","DataView","BigInt64Array","BigUint64Array"].reduce((e,t)=>({...e,[t]:{replace:(e,n,r)=>({$t:t,v:r.ArrayBuffer.replace(0===e.byteOffset&&e.byteLength===e.buffer.byteLength?e.buffer:e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength),n,r).v}),revive:({v:e},n,r)=>{const s=ut[t];return s&&new s(r.ArrayBuffer.revive({v:e},n,r))}}}),{});function ft(e){return function(e){for(var t="",n=0,r=e.length;n<r;n++)t+=yt[e[n]];return t}(w(e))}function pt(e){return b(function(e){if("string"!=typeof e)throw new Error("invalid decoder input: "+e);for(var t="",n=0,r=e.length;n<r;n++)t+=gt[e[n]];return t}(e))}const gt={"-":"=",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:"+","|":"/"},yt={};for(const e of Object.keys(gt))yt[gt[e]]=e;var mt={ArrayBuffer:{replace:e=>({$t:"ArrayBuffer",v:ft(e)}),revive:({v:e})=>{const t=pt(e);return t.buffer.byteLength===t.byteLength?t.buffer:t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}}};class vt{constructor(e,t){this.buf=e,this.type=t}}function bt(e){const t=new XMLHttpRequest;if(t.overrideMimeType("text/plain; charset=x-user-defined"),t.open("GET",URL.createObjectURL(e),!1),t.send(),200!==t.status&&0!==t.status)throw new Error("Bad Blob access: "+t.status);return t.responseText}function wt(e){const t=new Uint8Array(e.length);for(let n=0;n<e.length;++n)t[n]=e.charCodeAt(n);return t.buffer}var _t={Blob:{test:(e,t)=>"Blob"===t||e instanceof vt,replace:e=>({$t:"Blob",v:w(e instanceof vt?e.buf:wt(bt(e))),type:e.type}),revive:({type:e,v:t})=>{const n=b(t);return void 0!==typeof Blob?new Blob([n]):new vt(n.buffer,e)}}};const kt={...ot,...lt,...ct,...at,...dt,...ht,...mt,..._t};function St(e){return new Promise((t,n)=>{const r=new FileReader;r.onabort=e=>n(new Error("file read aborted")),r.onerror=e=>n(e.target.error),r.onload=e=>t(e.target.result),r.readAsArrayBuffer(e)})}var xt={undefined:{replace:()=>({$t:"undefined"}),revive:()=>{}}},Et={File:{test:(e,t)=>"File"===t,replace:e=>({$t:"File",v:w(wt(bt(e))),type:e.type,name:e.name,lastModified:new Date(e.lastModified).toISOString()}),revive:({type:e,v:t,name:n,lastModified:r})=>{const s=b(t);return new File([s],n,{type:e,lastModified:new Date(r).getTime()})}}};const Ct="function"==typeof BigInt&&"bigint"==typeof BigInt(0);class It{toString(){return this.v}constructor(e){this.v=e}}const Ot=Ct?{}:{bigint:{test:e=>e instanceof It,replace:e=>Object.assign({$t:"bigint"},e),revive:({v:e})=>new It(e)}},At=Object.assign(Object.assign(Object.assign(Object.assign({},xt),Ot),Et),{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)}}}),Dt=st(kt,At),Tt=function(...e){const t=st(kt,it,...e);return{toBinary(e){const[t,n]=this.stringify(e),r=new ArrayBuffer(4);return new DataView(r).setUint32(0,t.size),new Blob([r,t,n])},stringify(e){const n=[],r=t.stringify(e,n);return[new Blob(n.map(e=>{const t=new ArrayBuffer(4);return new DataView(t).setUint32(0,"byteLength"in e?e.byteLength:e.size),new Blob([t,e])})),r]},async parse(e,n){let r=0;const s=[],i=await St(n),o=new DataView(i);for(;r<i.byteLength;){const e=o.getUint32(r);r+=4;const t=i.slice(r,r+e);r+=e,s.push(t)}return t.parse(e,s)},async fromBinary(e){const t=new DataView(await St(e.slice(0,4))).getUint32(0),n=e.slice(4,t+4),r=await function(e){return new Promise((t,n)=>{const r=new FileReader;r.onabort=e=>n(new Error("file read aborted")),r.onerror=e=>n(e.target.error),r.onload=e=>t(e.target.result),r.readAsText(e)})}(e.slice(t+4));return await this.parse(r,n)}}}(At);class Ut extends Error{constructor(e,t){super(t||`${e.status} ${e.statusText}`),this.httpStatus=e.status}get name(){return"HttpError"}}function jt(t,n,r){const s=[];for(let i of r){const{table:r,muts:o}=i,l=t.tables.find(e=>e.name===r);if(!l)throw new Error(`Internal error: table ${r} not found in DBCore schema`);const{primaryKey:c}=l;let a=i;o.forEach((t,r)=>{const s=!c.outbound&&("upsert"===t.type||"insert"===t.type);t.keys.forEach((t,o)=>{if(Array.isArray(t)){a===i&&(a=Pt(i,s));const e=a.muts[r],n=JSON.stringify(t);e.keys[o]=n}else if("#"===t[0]){a===i&&(a=Pt(i,s));const l=a.muts[r];if(!n.isLoggedIn)throw new Error("Internal error: Cannot sync private IDs before authenticated");const d=`${t}:${n.userId}`;l.keys[o]=d,s&&e.setByKeyPath(l.values[o],c.keyPath,d)}})}),s.push(a)}return s}function Pt(e,t){return Object.assign(Object.assign({},e),{muts:t?e.muts.map(e=>"insert"!==e.type&&"upsert"!==e.type||!e.values?Object.assign(Object.assign({},e),{keys:e.keys.slice()}):Object.assign(Object.assign({},e),{keys:e.keys.slice(),values:e.values.slice()})):e.muts.map(e=>Object.assign(Object.assign({},e),{keys:e.keys.slice()}))})}let Lt=new WeakMap;function Rt(e){return r(this,void 0,void 0,function*(){var t,n;const r=(null!==(n=null===(t=Lt.get(e))||void 0===t?void 0:t.getTime())&&void 0!==n?n:0)-Date.now();r>0&&(yield new Promise(e=>setTimeout(e,r)))})}function Mt(e,t,n,s,i,o,l,c,a){return r(this,void 0,void 0,function*(){const r={Accept:"application/json, application/x-bison, application/x-bison-stream","Content-Type":"application/tson"},d=yield Ze(i),u=null==d?void 0:d.accessToken;u&&(r.Authorization=`Bearer ${u}`);const h={v:2,dbID:null==n?void 0:n.remoteDbId,clientIdentity:c,schema:l||{},lastPull:n?{serverRevision:n.serverRevision,yServerRevision:n.yServerRevision,realms:n.realms,inviteRealms:n.inviteRealms}:void 0,baseRevs:s,changes:jt(i.dx.core.schema,a,e),y:t,dxcv:i.cloud.version};i.syncStateChangedEvent.next({phase:"pushing"});const f=Dt.stringify(h),p=yield fetch(`${o}/sync`,{method:"post",headers:r,credentials:"include",body:f});if(i.syncStateChangedEvent.next({phase:"pulling"}),function(e,t){const n=t.headers.get("Ratelimit-Limit"),r=t.headers.get("Ratelimit-Remaining"),s=t.headers.get("Ratelimit-Reset");if(n&&r&&s){const t=Number(n),i=Math.max(0,Number(r)),o=Number(s);if(i<t/2){const t=Math.ceil(o/(i+1));Lt.set(e,new Date(Date.now()+1e3*t))}else Lt.delete(e)}}(i,p),!p.ok)throw new Ut(p);if("application/x-bison"===p.headers.get("content-type"))return Tt.fromBinary(yield p.blob());{const e=yield p.text();return Dt.parse(e)}})}function $t(t){if(null==t?void 0:t.cancelled)throw new e.AbortError("Operation was cancelled")}let Nt=!1;function Bt(e,t,n,s){return r(this,void 0,void 0,function*(){yield e.$baseRevs.bulkPut(Object.keys(t).filter(e=>t[e].markedForSync).map(e=>({tableName:e,clientRev:(n[e]||0)+1,serverRev:s}))),yield e.$baseRevs.where("tableName").noneOf(Object.keys(t).filter(e=>t[e].markedForSync)).delete()})}function Ft(e,t={}){for(const{table:n,muts:r}of e){const e=r.length>0?r[r.length-1].rev:null;t[n]=e||t[n]||0}return t}function Wt(t,n,s){return r(this,void 0,void 0,function*(){const r=yield t.bulkGet(n),i=[],o=[];n.forEach((n,l)=>{const c=r[l];if(c){for(const[r,i]of Object.entries(s[l]))if(r===t.schema.primKey.keyPath){if(0!==e.cmp(i,n))throw new Error("Cannot change primary key")}else e.setByKeyPath(c,r,i);i.push(n),o.push(c)}}),yield null==t.schema.primKey.keyPath?t.bulkPut(o,i):t.bulkPut(o)})}function Ht(t,n){return r(this,void 0,void 0,function*(){for(const{table:r,muts:s}of t){if(!n.dx._allTables[r])continue;const t=n.table(r),{primaryKey:i}=t.core.schema,o=e=>{switch(e[0]){case"[":if(e.endsWith("]"))try{return JSON.parse(e)}catch(e){}return e;case"#":return e.endsWith(":"+n.cloud.currentUserId)?e.substr(0,e.length-n.cloud.currentUserId.length-1):e;default:return e}};for(const n of s){const r=n.keys.map(o);switch(n.type){case"insert":i.outbound?yield t.bulkAdd(n.values,r):(r.forEach((t,r)=>{e.setByKeyPath(n.values[r],i.keyPath,t)}),yield t.bulkAdd(n.values));break;case"upsert":i.outbound?yield t.bulkPut(n.values,r):(r.forEach((t,r)=>{e.setByKeyPath(n.values[r],i.keyPath,t)}),yield t.bulkPut(n.values));break;case"modify":1===r.length?yield t.update(r[0],n.changeSpec):yield t.where(":id").anyOf(r).modify(n.changeSpec);break;case"update":yield Wt(t,r,n.changeSpecs);break;case"delete":yield t.bulkDelete(r)}}}})}"undefined"!=typeof self&&"undefined"!=typeof navigator&&(Nt=navigator.onLine,self.addEventListener("online",()=>Nt=!0),self.addEventListener("offline",()=>Nt=!1));const Vt="dexie-cloud-syncer";function zt(e,t){return e.where("i").between(t,1/0,!0).toArray()}const Kt=()=>new Map,Jt=e=>{const t=Kt();return e.forEach((e,n)=>{t.set(n,e)}),t},qt=(e,t,n)=>{let r=e.get(t);return void 0===r&&e.set(t,r=n()),r};class Gt{constructor(){this._observers=Kt()}on(e,t){return qt(this._observers,e,J).add(t),t}once(e,t){const n=(...r)=>{this.off(e,n),t(...r)};this.on(e,n)}off(e,t){const n=this._observers.get(e);void 0!==n&&(n.delete(t),0===n.size&&this._observers.delete(e))}emit(e,t){return Y((this._observers.get(e)||Kt()).values()).forEach(e=>e(...t))}destroy(){this._observers=Kt()}}class Yt{constructor(){this._observers=Kt()}on(e,t){qt(this._observers,e,J).add(t)}once(e,t){const n=(...r)=>{this.off(e,n),t(...r)};this.on(e,n)}off(e,t){const n=this._observers.get(e);void 0!==n&&(n.delete(t),0===n.size&&this._observers.delete(e))}emit(e,t){return Y((this._observers.get(e)||Kt()).values()).forEach(e=>e(...t))}destroy(){this._observers=Kt()}}const Qt=crypto.getRandomValues.bind(crypto),Xt=()=>Qt(new Uint32Array(1))[0],Zt=[1e7]+-1e3+-4e3+-8e3+-1e11,en=()=>Zt.replace(/[018]/g,e=>(e^Xt()&15>>e/4).toString(16)),tn=Date.now,nn=e=>new Promise(e);Promise.all.bind(Promise);const rn=e=>void 0===e?null:e;let sn=new class{constructor(){this.map=new Map}setItem(e,t){this.map.set(e,t)}getItem(e){return this.map.get(e)}},on=!0;try{"undefined"!=typeof localStorage&&localStorage&&(sn=localStorage,on=!1)}catch(Ml){}const ln=sn,cn=Object.assign,an=Object.keys,dn=e=>an(e).length,un=e=>an(e).length,hn=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),fn=Object.freeze,pn=e=>{for(const t in e){const n=e[t];"object"!=typeof n&&"function"!=typeof n||pn(e[t])}return fn(e)},gn=Symbol("Equality"),yn=(e,t,n=0)=>{try{for(;n<e.length;n++)e[n](...t)}finally{n<e.length&&yn(e,t,n+1)}},mn=(e,t)=>{if(e===t)return!0;if(null==e||null==t||e.constructor!==t.constructor)return!1;if(null!=e[gn])return e[gn](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)||!mn(e.get(n),t.get(n)))return!1;break;case Object:if(dn(e)!==dn(t))return!1;for(const n in e)if(!hn(e,n)||!mn(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(!mn(e[n],t[n]))return!1;break;default:return!1}return!0},vn="undefined"!=typeof process&&process.release&&/node|io\.js/.test(process.release.name)&&"[object process]"===Object.prototype.toString.call("undefined"!=typeof process?process:0);let bn;const wn=e=>(()=>{if(void 0===bn)if(vn){bn=Kt();const e=process.argv;let t=null;for(let n=0;n<e.length;n++){const r=e[n];"-"===r[0]?(null!==t&&bn.set(t,""),t=r):null!==t&&(bn.set(t,r),t=null)}null!==t&&bn.set(t,"")}else"object"==typeof location?(bn=Kt(),(location.search||"?").slice(1).split("&").forEach(e=>{if(0!==e.length){const[t,n]=e.split("=");bn.set(`--${ee(t,"-")}`,n),bn.set(`-${ee(t,"-")}`,n)}})):bn=Kt();return bn})().has(e),_n=e=>rn(vn?process.env[e.toUpperCase().replaceAll("-","_")]:ln.getItem(e)),kn=e=>wn("--"+e)||null!==_n(e);kn("production");var Sn;vn&&(Sn=process.env.FORCE_COLOR,["true","1","2"].includes(Sn))||!wn("--no-colors")&&!kn("no-color")&&(!vn||process.stdout.isTTY)&&(!vn||wn("--color")||null!==_n("COLORTERM")||(_n("TERM")||"").includes("color"));class xn{constructor(e,t){this.left=e,this.right=t}}const En=(e,t)=>new xn(e,t);"undefined"!=typeof DOMParser&&new DOMParser;const Cn=Symbol,In=Cn(),On=Cn(),An=Cn(),Dn=Cn(),Tn=Cn(),Un=Cn(),jn=Cn(),Pn=Cn(),Ln=Cn(),Rn=(En("font-weight","bold"),En("font-weight","normal"),En("color","blue"),En("color","green"),En("color","grey"),En("color","red"),En("color","purple"),En("color","orange"),En("color","black"),J()),Mn=e=>({[Symbol.iterator](){return this},next:e}),$n=(e,t)=>Mn(()=>{const{done:n,value:r}=e.next();return{done:n,value:n?void 0:t(r)}});class Nn{constructor(e,t){this.clock=e,this.len=t}}class Bn{constructor(){this.clients=new Map}}const Fn=(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])Sr(e,s,o.clock,o.len,n)}}),Wn=(e,t)=>{const n=e.clients.get(t.client);return void 0!==n&&null!==((e,t)=>{let n=0,r=e.length-1;for(;n<=r;){const s=M((n+r)/2),i=e[s],o=i.clock;if(o<=t){if(t<o+i.len)return s;n=s+1}else r=s-1}return null})(n,t.clock)},Hn=e=>{e.clients.forEach(e=>{let t,n;for(e.sort((e,t)=>e.clock-t.clock),t=1,n=1;t<e.length;t++){const r=e[n-1],s=e[t];r.clock+r.len>=s.clock?r.len=B(r.len,s.clock+s.len-r.clock):(n<t&&(e[n]=s),n++)}e.length=n})},Vn=(e,t,n,r)=>{qt(e.clients,t,()=>[]).push(new Nn(n,r))},zn=(e,t)=>{ae(e.restEncoder,t.clients.size),Y(t.clients.entries()).sort((e,t)=>t[0]-e[0]).forEach(([t,n])=>{e.resetDsCurVal(),ae(e.restEncoder,t);const r=n.length;ae(e.restEncoder,r);for(let t=0;t<r;t++){const r=n[t];e.writeDsClock(r.clock),e.writeDsLen(r.len)}})},Kn=(e,t,n)=>{const r=new Bn,s=Re(e.restDecoder);for(let i=0;i<s;i++){e.resetDsCurVal();const s=Re(e.restDecoder),i=Re(e.restDecoder),o=n.clients.get(s)||[],l=yr(n,s);for(let n=0;n<i;n++){const n=e.readDsClock(),i=n+e.readDsLen();if(n<l){l<i&&Vn(r,s,l,i-l);let e=vr(o,n),c=o[e];for(!c.deleted&&c.id.clock<n&&(o.splice(e+1,0,si(t,c,n-c.id.clock)),e++);e<o.length&&(c=o[e++],c.id.clock<i);)c.deleted||(i<c.id.clock+c.length&&o.splice(e,0,si(t,c,i-c.id.clock)),c.delete(t))}else Vn(r,s,n,i-n)}}if(r.clients.size>0){const e=new er;return ae(e.restEncoder,0),zn(e,r),e.toUint8Array()}return null},Jn=Xt;class qn extends Gt{constructor({guid:e=en(),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=Jn(),this.guid=e,this.collectionid=t,this.share=new Map,this.store=new pr,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=nn(e=>{this.on("load",()=>{this.isLoaded=!0,e(this)})});const l=()=>nn(e=>{const t=n=>{void 0!==n&&!0!==n||(this.off("sync",t),e())};this.on("sync",t)});this.on("sync",e=>{!1===e&&this.isSynced&&(this.whenSynced=l()),this.isSynced=void 0===e||!0===e,this.isSynced&&!this.isLoaded&&this.emit("load",[this])}),this.whenSynced=l()}load(){const e=this._item;null===e||this.shouldLoad||Ar(e.parent.doc,e=>{e.subdocsLoaded.add(this)},null,!0),this.shouldLoad=!0}getSubdocs(){return this.subdocs}getSubdocGuids(){return new Set(Y(this.subdocs).map(e=>e.guid))}transact(e,t=null){return Ar(this,e,t)}get(e,t=qr){const n=qt(this.share,e,()=>{const e=new t;return e._integrate(this,null),e}),r=n.constructor;if(t!==qr&&r!==t){if(r===qr){const r=new t;r._map=n._map,n._map.forEach(e=>{for(;null!==e;e=e.left)e.parent=r}),r._start=n._start;for(let e=r._start;null!==e;e=e.right)e.parent=r;return r._length=n._length,this.share.set(e,r),r._integrate(this,null),r}throw new Error(`Type with the name ${e} has already been defined with a different constructor`)}return n}getArray(e=""){return this.get(e,hs)}getText(e=""){return this.get(e,Ds)}getMap(e=""){return this.get(e,ps)}getXmlElement(e=""){return this.get(e,js)}getXmlFragment(e=""){return this.get(e,Us)}toJSON(){const e={};return this.share.forEach((t,n)=>{e[n]=t.toJSON()}),e}destroy(){this.isDestroyed=!0,Y(this.subdocs).forEach(e=>e.destroy());const e=this._item;if(null!==e){this._item=null;const t=e.content;t.doc=new qn({guid:this.guid,...t.opts,shouldLoad:!1}),t.doc._item=e,Ar(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 Gn{constructor(e){this.dsCurrVal=0,this.restDecoder=e}resetDsCurVal(){this.dsCurrVal=0}readDsClock(){return this.dsCurrVal+=Re(this.restDecoder),this.dsCurrVal}readDsLen(){const e=Re(this.restDecoder)+1;return this.dsCurrVal+=e,e}}class Yn extends Gn{constructor(e){super(e),this.keys=[],Re(e),this.keyClockDecoder=new ze(Pe(e)),this.clientDecoder=new Ve(Pe(e)),this.leftClockDecoder=new ze(Pe(e)),this.rightClockDecoder=new ze(Pe(e)),this.infoDecoder=new He(Pe(e),Le),this.stringDecoder=new Ke(Pe(e)),this.parentInfoDecoder=new He(Pe(e),Le),this.typeRefDecoder=new Ve(Pe(e)),this.lenDecoder=new Ve(Pe(e))}readLeftID(){return new ar(this.clientDecoder.read(),this.leftClockDecoder.read())}readRightID(){return new ar(this.clientDecoder.read(),this.rightClockDecoder.read())}readClient(){return this.clientDecoder.read()}readInfo(){return this.infoDecoder.read()}readString(){return this.stringDecoder.read()}readParentInfo(){return 1===this.parentInfoDecoder.read()}readTypeRef(){return this.typeRefDecoder.read()}readLen(){return this.lenDecoder.read()}readAny(){return We(this.restDecoder)}readBuf(){return Pe(this.restDecoder)}readJSON(){return We(this.restDecoder)}readKey(){const e=this.keyClockDecoder.read();if(e<this.keys.length)return this.keys[e];{const e=this.stringDecoder.read();return this.keys.push(e),e}}}class Qn{constructor(){this.restEncoder=ie()}toUint8Array(){return oe(this.restEncoder)}resetDsCurVal(){}writeDsClock(e){ae(this.restEncoder,e)}writeDsLen(e){ae(this.restEncoder,e)}}class Xn extends Qn{writeLeftID(e){ae(this.restEncoder,e.client),ae(this.restEncoder,e.clock)}writeRightID(e){ae(this.restEncoder,e.client),ae(this.restEncoder,e.clock)}writeClient(e){ae(this.restEncoder,e)}writeInfo(e){ce(this.restEncoder,e)}writeString(e){fe(this.restEncoder,e)}writeParentInfo(e){ae(this.restEncoder,e?1:0)}writeTypeRef(e){ae(this.restEncoder,e)}writeLen(e){ae(this.restEncoder,e)}writeAny(e){be(this.restEncoder,e)}writeBuf(e){ge(this.restEncoder,e)}writeJSON(e){fe(this.restEncoder,JSON.stringify(e))}writeKey(e){fe(this.restEncoder,e)}}class Zn{constructor(){this.restEncoder=ie(),this.dsCurrVal=0}toUint8Array(){return oe(this.restEncoder)}resetDsCurVal(){this.dsCurrVal=0}writeDsClock(e){const t=e-this.dsCurrVal;this.dsCurrVal=e,ae(this.restEncoder,t)}writeDsLen(e){0===e&&Oe(),ae(this.restEncoder,e-1),this.dsCurrVal+=e}}class er extends Zn{constructor(){super(),this.keyMap=new Map,this.keyClock=0,this.keyClockEncoder=new xe,this.clientEncoder=new ke,this.leftClockEncoder=new xe,this.rightClockEncoder=new xe,this.infoEncoder=new we(ce),this.stringEncoder=new Ee,this.parentInfoEncoder=new we(ce),this.typeRefEncoder=new ke,this.lenEncoder=new ke}toUint8Array(){const e=ie();return ae(e,0),ge(e,this.keyClockEncoder.toUint8Array()),ge(e,this.clientEncoder.toUint8Array()),ge(e,this.leftClockEncoder.toUint8Array()),ge(e,this.rightClockEncoder.toUint8Array()),ge(e,oe(this.infoEncoder)),ge(e,this.stringEncoder.toUint8Array()),ge(e,oe(this.parentInfoEncoder)),ge(e,this.typeRefEncoder.toUint8Array()),ge(e,this.lenEncoder.toUint8Array()),pe(e,oe(this.restEncoder)),oe(e)}writeLeftID(e){this.clientEncoder.write(e.client),this.leftClockEncoder.write(e.clock)}writeRightID(e){this.clientEncoder.write(e.client),this.rightClockEncoder.write(e.clock)}writeClient(e){this.clientEncoder.write(e)}writeInfo(e){this.infoEncoder.write(e)}writeString(e){this.stringEncoder.write(e)}writeParentInfo(e){this.parentInfoEncoder.write(e?1:0)}writeTypeRef(e){this.typeRefEncoder.write(e)}writeLen(e){this.lenEncoder.write(e)}writeAny(e){be(this.restEncoder,e)}writeBuf(e){ge(this.restEncoder,e)}writeJSON(e){be(this.restEncoder,e)}writeKey(e){const t=this.keyMap.get(e);void 0===t?(this.keyClockEncoder.write(this.keyClock++),this.stringEncoder.write(e)):this.keyClockEncoder.write(t)}}const tr=(e,t,n)=>{const r=new Map;n.forEach((e,n)=>{yr(t,n)>e&&r.set(n,e)}),gr(t).forEach((e,t)=>{n.has(t)||r.set(t,0)}),ae(e.restEncoder,r.size),Y(r.entries()).sort((e,t)=>t[0]-e[0]).forEach(([n,r])=>{((e,t,n,r)=>{r=B(r,t[0].id.clock);const s=vr(t,r);ae(e.restEncoder,t.length-s),e.writeClient(n),ae(e.restEncoder,r);const i=t[s];i.write(e,r-i.id.clock);for(let n=s+1;n<t.length;n++)t[n].write(e,0)})(e,t.clients.get(n),n,r)})},nr=(e,t,n,r=new Yn(e))=>Ar(t,e=>{e.local=!1;let t=!1;const n=e.doc,s=n.store,i=((e,t)=>{const n=Kt(),r=Re(e.restDecoder);for(let s=0;s<r;s++){const r=Re(e.restDecoder),s=new Array(r),i=e.readClient();let o=Re(e.restDecoder);n.set(i,{i:0,refs:s});for(let n=0;n<r;n++){const r=e.readInfo();switch(31&r){case 0:{const t=e.readLen();s[n]=new $s(ur(i,o),t),o+=t;break}case 10:{const t=Re(e.restDecoder);s[n]=new ci(ur(i,o),t),o+=t;break}default:{const l=!(192&r),c=new ii(ur(i,o),null,(r&H)===H?e.readLeftID():null,null,(r&W)===W?e.readRightID():null,l?e.readParentInfo()?t.get(e.readString()):e.readLeftID():null,!l||32&~r?null:e.readString(),oi(e,r));s[n]=c,o+=c.length}}}}return n})(r,n),o=((e,t,n)=>{const r=[];let s=Y(n.keys()).sort((e,t)=>e-t);if(0===s.length)return null;const i=()=>{if(0===s.length)return null;let e=n.get(s[s.length-1]);for(;e.refs.length===e.i;){if(s.pop(),!(s.length>0))return null;e=n.get(s[s.length-1])}return e};let o=i();if(null===o)return null;const l=new pr,c=new Map,a=(e,t)=>{const n=c.get(e);(null==n||n>t)&&c.set(e,t)};let d=o.refs[o.i++];const u=new Map,h=()=>{for(const e of r){const t=e.id.client,r=n.get(t);r?(r.i--,l.clients.set(t,r.refs.slice(r.i)),n.delete(t),r.i=0,r.refs=[]):l.clients.set(t,[e]),s=s.filter(e=>e!==t)}r.length=0};for(;;){if(d.constructor!==ci){const s=qt(u,d.id.client,()=>yr(t,d.id.client))-d.id.clock;if(s<0)r.push(d),a(d.id.client,d.id.clock-1),h();else{const i=d.getMissing(e,t);if(null!==i){r.push(d);const e=n.get(i)||{refs:[],i:0};if(e.refs.length!==e.i){d=e.refs[e.i++];continue}a(i,yr(t,i)),h()}else(0===s||s<d.length)&&(d.integrate(e,s),u.set(d.id.client,d.id.clock+d.length))}}if(r.length>0)d=r.pop();else if(null!==o&&o.i<o.refs.length)d=o.refs[o.i++];else{if(o=i(),null===o)break;d=o.refs[o.i++]}}if(l.clients.size>0){const e=new er;return tr(e,l,new Map),ae(e.restEncoder,0),{missing:c,update:e.toUint8Array()}}return null})(e,s,i),l=s.pendingStructs;if(l){for(const[e,n]of l.missing)if(n<yr(s,e)){t=!0;break}if(o){for(const[e,t]of o.missing){const n=l.missing.get(e);(null==n||n>t)&&l.missing.set(e,t)}l.update=Pr([l.update,o.update])}}else s.pendingStructs=o;const c=Kn(r,e,s);if(s.pendingDs){const t=new Yn(Ue(s.pendingDs));Re(t.restDecoder);const n=Kn(t,e,s);s.pendingDs=c&&n?Pr([c,n]):c||n}else s.pendingDs=c;if(t){const t=s.pendingStructs.update;s.pendingStructs=null,rr(e.doc,t)}},n,!1),rr=(e,t,n,r=Yn)=>{const s=Ue(t);nr(s,e,n,new r(s))};class sr{constructor(){this.l=[]}}const ir=()=>new sr,or=(e,t)=>e.l.push(t),lr=(e,t)=>{const n=e.l;n.length;e.l=n.filter(e=>t!==e),e.l.length},cr=(e,t,n)=>yn(e.l,[t,n]);class ar{constructor(e,t){this.client=e,this.clock=t}}const dr=(e,t)=>e===t||null!==e&&null!==t&&e.client===t.client&&e.clock===t.clock,ur=(e,t)=>new ar(e,t),hr=(e,t)=>void 0===t?!e.deleted:t.sv.has(e.id.client)&&(t.sv.get(e.id.client)||0)>e.id.clock&&!Wn(t.ds,e.id),fr=(e,t)=>{const n=qt(e.meta,fr,J),r=e.doc.store;n.has(t)||(t.sv.forEach((t,n)=>{t<yr(r,n)&&_r(e,ur(n,t))}),Fn(e,t.ds,e=>{}),n.add(t))};class pr{constructor(){this.clients=new Map,this.pendingStructs=null,this.pendingDs=null}}const gr=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},yr=(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},mr=(e,t)=>{let n=e.clients.get(t.id.client);if(void 0===n)n=[],e.clients.set(t.id.client,n);else{const e=n[n.length-1];if(e.id.clock+e.length!==t.id.clock)throw Oe()}n.push(t)},vr=(e,t)=>{let n=0,r=e.length-1,s=e[r],i=s.id.clock;if(i===t)return r;let o=M(t/(i+s.length-1)*r);for(;n<=r;){if(s=e[o],i=s.id.clock,i<=t){if(t<i+s.length)return o;n=o+1}else r=o-1;o=M((n+r)/2)}throw Oe()},br=(e,t)=>{const n=e.clients.get(t.client);return n[vr(n,t.clock)]},wr=(e,t,n)=>{const r=vr(t,n),s=t[r];return s.id.clock<n&&s instanceof ii?(t.splice(r+1,0,si(e,s,n-s.id.clock)),r+1):r},_r=(e,t)=>{const n=e.doc.store.clients.get(t.client);return n[wr(e,n,t.clock)]},kr=(e,t,n)=>{const r=t.clients.get(n.client),s=vr(r,n.clock),i=r[s];return n.clock!==i.id.clock+i.length-1&&i.constructor!==$s&&r.splice(s+1,0,si(e,i,n.clock-i.id.clock+1)),i},Sr=(e,t,n,r,s)=>{if(0===r)return;const i=n+r;let o,l=wr(e,t,n);do{o=t[l++],i<o.id.clock+o.length&&wr(e,t,i),s(o)}while(l<t.length&&t[l].id.clock<i)};class xr{constructor(e,t,n){this.doc=e,this.deleteSet=new Bn,this.beforeState=gr(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 Er=(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))&&(Hn(t.deleteSet),((e,t)=>{tr(e,t.doc.store,t.beforeState)})(e,t),zn(e,t.deleteSet),!0),Cr=(e,t,n)=>{const r=t._item;(null===r||r.id.clock<(e.beforeState.get(r.id.client)||0)&&!r.deleted)&&qt(e.changed,t,J).add(n)},Ir=(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 ii&&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},Or=(e,t)=>{if(t<e.length){const n=e[t],r=n.doc,s=r.store,i=n.deleteSet,o=n._mergeStructs;try{Hn(i),n.afterState=gr(n.doc.store),r.emit("beforeObserverCalls",[n,r]);const e=[];n.changed.forEach((t,r)=>e.push(()=>{null!==r._item&&r._item.deleted||r._callObserver(n,t)})),e.push(()=>{n.changedParentTypes.forEach((e,t)=>{t._dEH.l.length>0&&(null===t._item||!t._item.deleted)&&((e=e.filter(e=>null===e.target._item||!e.target._item.deleted)).forEach(e=>{e.currentTarget=t,e._path=null}),e.sort((e,t)=>e.path.length-t.path.length),cr(t._dEH,e,n))})}),e.push(()=>r.emit("afterTransaction",[n,r])),yn(e,[]),n._needFormattingCleanup&&Is(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=vr(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 ii&&s.deleted&&!s.keep&&n(s)&&s.gc(t,!1)}}}})(i,s,r.gcFilter),((e,t)=>{e.clients.forEach((e,n)=>{const r=t.clients.get(n);for(let t=e.length-1;t>=0;t--){const n=e[t];for(let e=N(r.length-1,1+vr(r,n.clock+n.len-1)),t=r[e];e>0&&t.id.clock>=n.clock;t=r[e])e-=1+Ir(r,e)}})})(i,s),n.afterState.forEach((e,t)=>{const r=n.beforeState.get(t)||0;if(r!==e){const e=s.clients.get(t),n=B(vr(e,r),1);for(let t=e.length-1;t>=n;)t-=1+Ir(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=vr(r,n);i+1<r.length&&Ir(r,i+1)>1||i>0&&Ir(r,i)}if(n.local||n.afterState.get(r.clientID)===n.beforeState.get(r.clientID)||(((...e)=>{Rn.forEach(t=>t.print(e))})(Pn,In,"[yjs] ",On,Un,"Changed the client-id because another client seems to be using it."),r.clientID=Jn()),r.emit("afterTransactionCleanup",[n,r]),r._observers.has("update")){const e=new Xn;Er(e,n)&&r.emit("update",[e.toUint8Array(),n.origin,r,n])}if(r._observers.has("updateV2")){const e=new er;Er(e,n)&&r.emit("updateV2",[e.toUint8Array(),n.origin,r,n])}const{subdocsAdded:l,subdocsLoaded:c,subdocsRemoved:a}=n;(l.size>0||a.size>0||c.size>0)&&(l.forEach(e=>{e.clientID=r.clientID,null==e.collectionid&&(e.collectionid=r.collectionid),r.subdocs.add(e)}),a.forEach(e=>r.subdocs.delete(e)),r.emit("subdocs",[{loaded:c,added:l,removed:a},r,n]),a.forEach(e=>e.destroy())),e.length<=t+1?(r._transactionCleanups=[],r.emit("afterAllTransactions",[r,e])):Or(e,t+1)}}},Ar=(e,t,n=null,r=!0)=>{const s=e._transactionCleanups;let i=!1,o=null;null===e._transaction&&(i=!0,e._transaction=new xr(e,n,r),s.push(e._transaction),1===s.length&&e.emit("beforeAllTransactions",[e]),e.emit("beforeTransaction",[e._transaction,e]));try{o=t(e._transaction)}finally{if(i){const t=e._transaction===s[0];e._transaction=null,t&&Or(s,0)}}return o};class Dr{constructor(e,t){this.gen=function*(e){const t=Re(e.restDecoder);for(let n=0;n<t;n++){const t=Re(e.restDecoder),n=e.readClient();let r=Re(e.restDecoder);for(let s=0;s<t;s++){const t=e.readInfo();if(10===t){const t=Re(e.restDecoder);yield new ci(ur(n,r),t),r+=t}else if(31&t){const s=!(192&t),i=new ii(ur(n,r),null,(t&H)===H?e.readLeftID():null,null,(t&W)===W?e.readRightID():null,s?e.readParentInfo()?e.readString():e.readLeftID():null,!s||32&~t?null:e.readString(),oi(e,t));yield i,r+=i.length}else{const t=e.readLen();yield new $s(ur(n,r),t),r+=t}}}}(e),this.curr=null,this.done=!1,this.filterSkips=t,this.next()}next(){do{this.curr=this.gen.next().value||null}while(this.filterSkips&&null!==this.curr&&this.curr.constructor===ci);return this.curr}}class Tr{constructor(e){this.currClient=0,this.startClock=0,this.written=0,this.encoder=e,this.clientStructs=[]}}const Ur=(e,t=Zn,n=Yn)=>{const r=new t,s=new Dr(new n(Ue(e)),!1);let i=s.curr;if(null!==i){let e=0,t=i.id.client,n=0!==i.id.clock,o=n?0:i.id.clock+i.length;for(;null!==i;i=s.next())t!==i.id.client&&(0!==o&&(e++,ae(r.restEncoder,t),ae(r.restEncoder,o)),t=i.id.client,o=0,n=0!==i.id.clock),i.constructor===ci&&(n=!0),n||(o=i.id.clock+i.length);0!==o&&(e++,ae(r.restEncoder,t),ae(r.restEncoder,o));const l=ie();return ae(l,e),((e,t)=>{pe(e,oe(t))})(l,r.restEncoder),r.restEncoder=l,r.toUint8Array()}return ae(r.restEncoder,0),r.toUint8Array()},jr=(e,t)=>{if(e.constructor===$s){const{client:n,clock:r}=e.id;return new $s(ur(n,r+t),e.length-t)}if(e.constructor===ci){const{client:n,clock:r}=e.id;return new ci(ur(n,r+t),e.length-t)}{const n=e,{client:r,clock:s}=n.id;return new ii(ur(r,s+t),null,ur(r,s+t-1),null,n.rightOrigin,n.parent,n.parentSub,n.content.splice(t))}},Pr=(e,t=Yn,n=er)=>{if(1===e.length)return e[0];const r=e.map(e=>new t(Ue(e)));let s=r.map(e=>new Dr(e,!0)),i=null;const o=new n,l=new Tr(o);for(;s=s.filter(e=>null!==e.curr),s.sort((e,t)=>{if(e.curr.id.client===t.curr.id.client){const n=e.curr.id.clock-t.curr.id.clock;return 0===n?e.curr.constructor===t.curr.constructor?0:e.curr.constructor===ci?1:-1:n}return t.curr.id.client-e.curr.id.client}),0!==s.length;){const e=s[0],t=e.curr.id.client;if(null!==i){let n=e.curr,r=!1;for(;null!==n&&n.id.clock+n.length<=i.struct.id.clock+i.struct.length&&n.id.client>=i.struct.id.client;)n=e.next(),r=!0;if(null===n||n.id.client!==t||r&&n.id.clock>i.struct.id.clock+i.struct.length)continue;if(t!==i.struct.id.client)Rr(l,i.struct,i.offset),i={struct:n,offset:0},e.next();else if(i.struct.id.clock+i.struct.length<n.id.clock)if(i.struct.constructor===ci)i.struct.length=n.id.clock+n.length-i.struct.id.clock;else{Rr(l,i.struct,i.offset);const e=n.id.clock-i.struct.id.clock-i.struct.length;i={struct:new ci(ur(t,i.struct.id.clock+i.struct.length),e),offset:0}}else{const t=i.struct.id.clock+i.struct.length-n.id.clock;t>0&&(i.struct.constructor===ci?i.struct.length-=t:n=jr(n,t)),i.struct.mergeWith(n)||(Rr(l,i.struct,i.offset),i={struct:n,offset:0},e.next())}}else i={struct:e.curr,offset:0},e.next();for(let n=e.curr;null!==n&&n.id.client===t&&n.id.clock===i.struct.id.clock+i.struct.length&&n.constructor!==ci;n=e.next())Rr(l,i.struct,i.offset),i={struct:n,offset:0}}null!==i&&(Rr(l,i.struct,i.offset),i=null),Mr(l);const c=r.map(e=>(e=>{const t=new Bn,n=Re(e.restDecoder);for(let r=0;r<n;r++){e.resetDsCurVal();const n=Re(e.restDecoder),r=Re(e.restDecoder);if(r>0){const s=qt(t.clients,n,()=>[]);for(let t=0;t<r;t++)s.push(new Nn(e.readDsClock(),e.readDsLen()))}}return t})(e)),a=(e=>{const t=new Bn;for(let n=0;n<e.length;n++)e[n].clients.forEach((r,s)=>{if(!t.clients.has(s)){const i=r.slice();for(let t=n+1;t<e.length;t++)G(i,e[t].clients.get(s)||[]);t.clients.set(s,i)}});return Hn(t),t})(c);return zn(o,a),o.toUint8Array()},Lr=e=>{e.written>0&&(e.clientStructs.push({written:e.written,restEncoder:oe(e.encoder.restEncoder)}),e.encoder.restEncoder=ie(),e.written=0)},Rr=(e,t,n)=>{e.written>0&&e.currClient!==t.id.client&&Lr(e),0===e.written&&(e.currClient=t.id.client,e.encoder.writeClient(t.id.client),ae(e.encoder.restEncoder,t.id.clock+n)),t.write(e.encoder,n),e.written++},Mr=e=>{Lr(e);const t=e.encoder.restEncoder;ae(t,e.clientStructs.length);for(let n=0;n<e.clientStructs.length;n++){const r=e.clientStructs[n];ae(t,r.written),pe(t,r.restEncoder)}},$r="You must not compute changes after the event-handler fired.";class Nr{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=Br(this.currentTarget,this.target))}deletes(e){return Wn(this.transaction.deleteSet,e.id)}get keys(){if(null===this._keys){if(0===this.transaction.doc._transactionCleanups.length)throw Ce($r);const e=new Map,t=this.target;this.transaction.changed.get(t).forEach(n=>{if(null!==n){const r=t._map.get(n);let s,i;if(this.adds(r)){let e=r.left;for(;null!==e&&this.adds(e);)e=e.left;if(this.deletes(r)){if(null===e||!this.deletes(e))return;s="delete",i=q(e.content.getContent())}else null!==e&&this.deletes(e)?(s="update",i=q(e.content.getContent())):(s="add",i=void 0)}else{if(!this.deletes(r))return;s="delete",i=q(r.content.getContent())}e.set(n,{action:s,oldValue:i})}}),this._keys=e}return this._keys}get delta(){return this.changes.delta}adds(e){return e.id.clock>=(this.transaction.beforeState.get(e.id.client)||0)}get changes(){let e=this._changes;if(null===e){if(0===this.transaction.doc._transactionCleanups.length)throw Ce($r);const t=this.target,n=J(),r=J(),s=[];e={added:n,deleted:r,delta:s,keys:this.keys};if(this.transaction.changed.get(t).has(null)){let e=null;const i=()=>{e&&s.push(e)};for(let s=t._start;null!==s;s=s.right)s.deleted?this.deletes(s)&&!this.adds(s)&&(null!==e&&void 0!==e.delete||(i(),e={delete:0}),e.delete+=s.length,r.add(s)):this.adds(s)?(null!==e&&void 0!==e.insert||(i(),e={insert:[]}),e.insert=e.insert.concat(s.content.getContent()),n.add(s)):(null!==e&&void 0!==e.retain||(i(),e={retain:0}),e.retain+=s.length);null!==e&&void 0===e.retain&&i()}this._changes=e}return e}}const Br=(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},Fr=()=>{((...e)=>{e.unshift(Pn),Rn.forEach(t=>t.print(e))})("Invalid access: Add Yjs type to a document before reading data.")};let Wr=0;class Hr{constructor(e,t){e.marker=!0,this.p=e,this.index=t,this.timestamp=Wr++}}const Vr=(e,t,n)=>{e.p.marker=!1,e.p=t,t.marker=!0,e.index=n,e.timestamp=Wr++},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)=>$(t-e.index)<$(t-n.index)?e:n);let r=e._start,s=0;for(null!==n&&(r=n.p,s=n.index,(e=>{e.timestamp=Wr++})(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&&$(n.index-s)<r.parent.length/80?(Vr(n,r,s),n):((e,t,n)=>{if(e.length>=80){const r=e.reduce((e,t)=>e.timestamp<t.timestamp?e:t);return Vr(r,t,n),r}{const r=new Hr(t,n);return e.push(r),r}})(e._searchMarker,r,s)},Kr=(e,t,n)=>{for(let r=e.length-1;r>=0;r--){const s=e[r];if(n>0){let t=s.p;for(t.marker=!1;t&&(t.deleted||!t.countable);)t=t.left,t&&!t.deleted&&t.countable&&(s.index-=t.length);if(null===t||!0===t.marker){e.splice(r,1);continue}s.p=t,t.marker=!0}(t<s.index||n>0&&t===s.index)&&(s.index=B(t,s.index+n))}},Jr=(e,t,n)=>{const r=e,s=t.changedParentTypes;for(;qt(s,e,()=>[]).push(n),null!==e._item;)e=e._item.parent;cr(r._eH,n,t)};class qr{constructor(){this._item=null,this._map=new Map,this._start=null,this.doc=null,this._length=0,this._eH=ir(),this._dEH=ir(),this._searchMarker=null}get parent(){return this._item?this._item.parent:null}_integrate(e,t){this.doc=e,this._item=t}_copy(){throw Ie()}clone(){throw Ie()}_write(e){}get _first(){let e=this._start;for(;null!==e&&e.deleted;)e=e.right;return e}_callObserver(e,t){!e.local&&this._searchMarker&&(this._searchMarker.length=0)}observe(e){or(this._eH,e)}observeDeep(e){or(this._dEH,e)}unobserve(e){lr(this._eH,e)}unobserveDeep(e){lr(this._dEH,e)}toJSON(){}}const Gr=(e,t,n)=>{e.doc??Fr(),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},Yr=e=>{e.doc??Fr();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},Qr=(e,t)=>{let n=0,r=e._start;for(e.doc??Fr();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}},Xr=(e,t)=>{const n=[];return Qr(e,(r,s)=>{n.push(t(r,s,e))}),n},Zr=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}}}},es=(e,t)=>{e.doc??Fr();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}},ts=(e,t,n,r)=>{let s=n;const i=e.doc,o=i.clientID,l=i.store,c=null===n?t._start:n.right;let a=[];const d=()=>{a.length>0&&(s=new ii(ur(o,yr(l,o)),s,s&&s.lastId,c,c&&c.id,t,null,new Js(a)),s.integrate(e,0),a=[])};r.forEach(n=>{if(null===n)a.push(n);else switch(n.constructor){case Number:case Object:case Boolean:case Array:case String:a.push(n);break;default:switch(d(),n.constructor){case Uint8Array:case ArrayBuffer:s=new ii(ur(o,yr(l,o)),s,s&&s.lastId,c,c&&c.id,t,null,new Ns(new Uint8Array(n))),s.integrate(e,0);break;case qn:s=new ii(ur(o,yr(l,o)),s,s&&s.lastId,c,c&&c.id,t,null,new Ws(n)),s.integrate(e,0);break;default:if(!(n instanceof qr))throw new Error("Unexpected content type in insert operation");s=new ii(ur(o,yr(l,o)),s,s&&s.lastId,c,c&&c.id,t,null,new ri(n)),s.integrate(e,0)}}}),d()},ns=()=>Ce("Length exceeded!"),rs=(e,t,n,r)=>{if(n>t._length)throw ns();if(0===n)return t._searchMarker&&Kr(t._searchMarker,n,r.length),ts(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&&_r(e,ur(o.id.client,o.id.clock+n));break}n-=o.length}return t._searchMarker&&Kr(t._searchMarker,s,r.length),ts(e,t,o,r)},ss=(e,t,n,r)=>{if(0===r)return;const s=n,i=r,o=zr(t,n);let l=t._start;for(null!==o&&(l=o.p,n-=o.index);null!==l&&n>0;l=l.right)!l.deleted&&l.countable&&(n<l.length&&_r(e,ur(l.id.client,l.id.clock+n)),n-=l.length);for(;r>0&&null!==l;)l.deleted||(r<l.length&&_r(e,ur(l.id.client,l.id.clock+r)),l.delete(e),r-=l.length),l=l.right;if(r>0)throw ns();t._searchMarker&&Kr(t._searchMarker,s,-i+r)},is=(e,t,n)=>{const r=t._map.get(n);void 0!==r&&r.delete(e)},os=(e,t,n,r)=>{const s=t._map.get(n)||null,i=e.doc,o=i.clientID;let l;if(null==r)l=new Js([r]);else switch(r.constructor){case Number:case Object:case Boolean:case Array:case String:case Date:case BigInt:l=new Js([r]);break;case Uint8Array:l=new Ns(r);break;case qn:l=new Ws(r);break;default:if(!(r instanceof qr))throw new Error("Unexpected content type");l=new ri(r)}new ii(ur(o,yr(i.store,o)),s,s&&s.lastId,null,null,t,n,l).integrate(e,0)},ls=(e,t)=>{e.doc??Fr();const n=e._map.get(t);return void 0===n||n.deleted?void 0:n.content.getContent()[n.length-1]},cs=e=>{const t={};return e.doc??Fr(),e._map.forEach((e,n)=>{e.deleted||(t[n]=e.content.getContent()[e.length-1])}),t},as=(e,t)=>{e.doc??Fr();const n=e._map.get(t);return void 0!==n&&!n.deleted},ds=e=>{return e.doc??Fr(),t=e._map.entries(),n=e=>!e[1].deleted,Mn(()=>{let e;do{e=t.next()}while(!e.done&&!n(e.value));return e});var t,n};class us extends Nr{}class hs extends qr{constructor(){super(),this._prelimContent=[],this._searchMarker=[]}static from(e){const t=new hs;return t.push(e),t}_integrate(e,t){super._integrate(e,t),this.insert(0,this._prelimContent),this._prelimContent=null}_copy(){return new hs}clone(){const e=new hs;return e.insert(0,this.toArray().map(e=>e instanceof qr?e.clone():e)),e}get length(){return this.doc??Fr(),this._length}_callObserver(e,t){super._callObserver(e,t),Jr(this,e,new us(this,e))}insert(e,t){null!==this.doc?Ar(this.doc,n=>{rs(n,this,e,t)}):this._prelimContent.splice(e,0,...t)}push(e){null!==this.doc?Ar(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;ts(e,t,r,n)})(t,this,e)}):this._prelimContent.push(...e)}unshift(e){this.insert(0,e)}delete(e,t=1){null!==this.doc?Ar(this.doc,n=>{ss(n,this,e,t)}):this._prelimContent.splice(e,t)}get(e){return es(this,e)}toArray(){return Yr(this)}slice(e=0,t=this.length){return Gr(this,e,t)}toJSON(){return this.map(e=>e instanceof qr?e.toJSON():e)}map(e){return Xr(this,e)}forEach(e){Qr(this,e)}[Symbol.iterator](){return Zr(this)}_write(e){e.writeTypeRef(Ys)}}class fs extends Nr{constructor(e,t,n){super(e,t),this.keysChanged=n}}class ps extends qr{constructor(e){super(),this._prelimContent=null,this._prelimContent=void 0===e?new Map:new Map(e)}_integrate(e,t){super._integrate(e,t),this._prelimContent.forEach((e,t)=>{this.set(t,e)}),this._prelimContent=null}_copy(){return new ps}clone(){const e=new ps;return this.forEach((t,n)=>{e.set(n,t instanceof qr?t.clone():t)}),e}_callObserver(e,t){Jr(this,e,new fs(this,e,t))}toJSON(){this.doc??Fr();const e={};return this._map.forEach((t,n)=>{if(!t.deleted){const r=t.content.getContent()[t.length-1];e[n]=r instanceof qr?r.toJSON():r}}),e}get size(){return[...ds(this)].length}keys(){return $n(ds(this),e=>e[0])}values(){return $n(ds(this),e=>e[1].content.getContent()[e[1].length-1])}entries(){return $n(ds(this),e=>[e[0],e[1].content.getContent()[e[1].length-1]])}forEach(e){this.doc??Fr(),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?Ar(this.doc,t=>{is(t,this,e)}):this._prelimContent.delete(e)}set(e,t){return null!==this.doc?Ar(this.doc,n=>{os(n,this,e,t)}):this._prelimContent.set(e,t),t}get(e){return ls(this,e)}has(e){return as(this,e)}clear(){null!==this.doc?Ar(this.doc,e=>{this.forEach(function(t,n,r){is(e,r,n)})}):this._prelimContent.clear()}_write(e){e.writeTypeRef(Qs)}}const gs=(e,t)=>e===t||"object"==typeof e&&"object"==typeof t&&e&&t&&((e,t)=>e===t||un(e)===un(t)&&((e,t)=>{for(const n in e)if(!t(e[n],n))return!1;return!0})(e,(e,n)=>(void 0!==e||hn(t,n))&&t[n]===e))(e,t);class ys{constructor(e,t,n,r){this.left=e,this.right=t,this.index=n,this.currentAttributes=r}forward(){if(null===this.right&&Oe(),this.right.content.constructor===Vs)this.right.deleted||ws(this.currentAttributes,this.right.content);else this.right.deleted||(this.index+=this.right.length);this.left=this.right,this.right=this.right.right}}const ms=(e,t,n)=>{for(;null!==t.right&&n>0;){if(t.right.content.constructor===Vs)t.right.deleted||ws(t.currentAttributes,t.right.content);else t.right.deleted||(n<t.right.length&&_r(e,ur(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},vs=(e,t,n,r)=>{const s=new Map,i=r?zr(t,n):null;if(i){const t=new ys(i.p.left,i.p,i.index,s);return ms(e,t,n-i.index)}{const r=new ys(null,t._start,0,s);return ms(e,r,n)}},bs=(e,t,n,r)=>{for(;null!==n.right&&(!0===n.right.deleted||n.right.content.constructor===Vs&&gs(r.get(n.right.content.key),n.right.content.value));)n.right.deleted||r.delete(n.right.content.key),n.forward();const s=e.doc,i=s.clientID;r.forEach((r,o)=>{const l=n.left,c=n.right,a=new ii(ur(i,yr(s.store,i)),l,l&&l.lastId,c,c&&c.id,t,null,new Vs(o,r));a.integrate(e,0),n.right=a,n.forward()})},ws=(e,t)=>{const{key:n,value:r}=t;null===r?e.delete(n):e.set(n,r)},_s=(e,t)=>{for(;null!==e.right&&(e.right.deleted||e.right.content.constructor===Vs&&gs(t[e.right.content.key]??null,e.right.content.value));)e.forward()},ks=(e,t,n,r)=>{const s=e.doc,i=s.clientID,o=new Map;for(const l in r){const c=r[l],a=n.currentAttributes.get(l)??null;if(!gs(a,c)){o.set(l,a);const{left:r,right:d}=n;n.right=new ii(ur(i,yr(s.store,i)),r,r&&r.lastId,d,d&&d.id,t,null,new Vs(l,c)),n.right.integrate(e,0),n.forward()}}return o},Ss=(e,t,n,r,s)=>{n.currentAttributes.forEach((e,t)=>{void 0===s[t]&&(s[t]=null)});const i=e.doc,o=i.clientID;_s(n,s);const l=ks(e,t,n,s),c=r.constructor===String?new qs(r):r instanceof qr?new ri(r):new Hs(r);let{left:a,right:d,index:u}=n;t._searchMarker&&Kr(t._searchMarker,n.index,c.getLength()),d=new ii(ur(o,yr(i.store,o)),a,a&&a.lastId,d,d&&d.id,t,null,c),d.integrate(e,0),n.right=d,n.index=u,n.forward(),bs(e,t,n,l)},xs=(e,t,n,r,s)=>{const i=e.doc,o=i.clientID;_s(n,s);const l=ks(e,t,n,s);e:for(;null!==n.right&&(r>0||l.size>0&&(n.right.deleted||n.right.content.constructor===Vs));){if(!n.right.deleted)switch(n.right.content.constructor){case Vs:{const{key:t,value:i}=n.right.content,o=s[t];if(void 0!==o){if(gs(o,i))l.delete(t);else{if(0===r)break e;l.set(t,i)}n.right.delete(e)}else n.currentAttributes.set(t,i);break}default:r<n.right.length&&_r(e,ur(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 ii(ur(o,yr(i.store,o)),n.left,n.left&&n.left.lastId,n.right,n.right&&n.right.id,t,null,new qs(s)),n.right.integrate(e,0),n.forward()}bs(e,t,n,l)},Es=(e,t,n,r,s)=>{let i=t;const o=Kt();for(;i&&(!i.countable||i.deleted);){if(!i.deleted&&i.content.constructor===Vs){const e=i.content;o.set(e.key,e)}i=i.right}let l=0,c=!1;for(;t!==i;){if(n===t&&(c=!0),!t.deleted){const n=t.content;switch(n.constructor){case Vs:{const{key:i,value:a}=n,d=r.get(i)??null;o.get(i)===n&&d!==a||(t.delete(e),l++,c||(s.get(i)??null)!==a||d===a||(null===d?s.delete(i):s.set(i,d))),c||t.deleted||ws(s,n);break}}}t=t.right}return l},Cs=e=>{let t=0;return Ar(e.doc,n=>{let r=e._start,s=e._start,i=Kt();const o=Jt(i);for(;s;){if(!1===s.deleted)if(s.content.constructor===Vs)ws(o,s.content);else t+=Es(n,r,s,i,o),i=Jt(o),r=s;s=s.right}}),t},Is=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&&Sr(e,n.store.clients.get(r),i,s,e=>{e.deleted||e.content.constructor!==Vs||e.constructor===$s||t.add(e.parent)})}Ar(n,n=>{Fn(e,e.deleteSet,e=>{if(e instanceof $s||!e.parent._hasFormatting||t.has(e.parent))return;const r=e.parent;e.content.constructor===Vs?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===Vs){const r=t.content.key;n.has(r)?t.delete(e):n.add(r)}t=t.left}})(n,e)});for(const e of t)Cs(e)})},Os=(e,t,n)=>{const r=n,s=Jt(t.currentAttributes),i=t.right;for(;n>0&&null!==t.right;){if(!1===t.right.deleted)switch(t.right.content.constructor){case ri:case Hs:case qs:n<t.right.length&&_r(e,ur(t.right.id.client,t.right.id.clock+n)),n-=t.right.length,t.right.delete(e)}t.forward()}i&&Es(e,i,t.right,s,t.currentAttributes);const o=(t.left||t.right).parent;return o._searchMarker&&Kr(o._searchMarker,t.index,-r+n),t};class As extends Nr{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=[];Ar(e,e=>{const n=new Map,r=new Map;let s=this.target._start,i=null;const o={};let l="",c=0,a=0;const d=()=>{if(null!==i){let e=null;switch(i){case"delete":a>0&&(e={delete:a}),a=0;break;case"insert":("object"==typeof l||l.length>0)&&(e={insert:l},n.size>0&&(e.attributes={},n.forEach((t,n)=>{null!==t&&(e.attributes[n]=t)}))),l="";break;case"retain":c>0&&(e={retain:c},(e=>{for(const t in e)return!1;return!0})(o)||(e.attributes=cn({},o))),c=0}e&&t.push(e),i=null}};for(;null!==s;){switch(s.content.constructor){case ri:case Hs:this.adds(s)?this.deletes(s)||(d(),i="insert",l=s.content.getContent()[0],d()):this.deletes(s)?("delete"!==i&&(d(),i="delete"),a+=1):s.deleted||("retain"!==i&&(d(),i="retain"),c+=1);break;case qs:this.adds(s)?this.deletes(s)||("insert"!==i&&(d(),i="insert"),l+=s.content.str):this.deletes(s)?("delete"!==i&&(d(),i="delete"),a+=s.length):s.deleted||("retain"!==i&&(d(),i="retain"),c+=s.length);break;case Vs:{const{key:t,value:l}=s.content;if(this.adds(s)){if(!this.deletes(s)){const c=n.get(t)??null;gs(c,l)?null!==l&&s.delete(e):("retain"===i&&d(),gs(l,r.get(t)??null)?delete o[t]:o[t]=l)}}else if(this.deletes(s)){r.set(t,l);const e=n.get(t)??null;gs(e,l)||("retain"===i&&d(),o[t]=e)}else if(!s.deleted){r.set(t,l);const n=o[t];void 0!==n&&(gs(n,l)?null!==n&&s.delete(e):("retain"===i&&d(),null===l?delete o[t]:o[t]=l))}s.deleted||("insert"===i&&d(),ws(n,s.content));break}}s=s.right}for(d();t.length>0;){const e=t[t.length-1];if(void 0===e.retain||void 0!==e.attributes)break;t.pop()}}),this._delta=t}return this._delta}}class Ds extends qr{constructor(e){super(),this._pending=void 0!==e?[()=>this.insert(0,e)]:[],this._searchMarker=[],this._hasFormatting=!1}get length(){return this.doc??Fr(),this._length}_integrate(e,t){super._integrate(e,t);try{this._pending.forEach(e=>e())}catch(e){}this._pending=null}_copy(){return new Ds}clone(){const e=new Ds;return e.applyDelta(this.toDelta()),e}_callObserver(e,t){super._callObserver(e,t);const n=new As(this,e,t);Jr(this,e,n),!e.local&&this._hasFormatting&&(e._needFormattingCleanup=!0)}toString(){this.doc??Fr();let e="",t=this._start;for(;null!==t;)!t.deleted&&t.countable&&t.content.constructor===qs&&(e+=t.content.str),t=t.right;return e}toJSON(){return this.toString()}applyDelta(e,{sanitize:t=!0}={}){null!==this.doc?Ar(this.doc,n=>{const r=new ys(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)&&Ss(n,this,r,o,i.attributes||{})}else void 0!==i.retain?xs(n,this,r,i.retain,i.attributes||{}):void 0!==i.delete&&Os(n,r,i.delete)}}):this._pending.push(()=>this.applyDelta(e))}toDelta(e,t,n){this.doc??Fr();const r=[],s=new Map,i=this.doc;let o="",l=this._start;function c(){if(o.length>0){const e={};let t=!1;s.forEach((n,r)=>{t=!0,e[r]=n});const n={insert:o};t&&(n.attributes=e),r.push(n),o=""}}const a=()=>{for(;null!==l;){if(hr(l,e)||void 0!==t&&hr(l,t))switch(l.content.constructor){case qs:{const r=s.get("ychange");void 0===e||hr(l,e)?void 0===t||hr(l,t)?void 0!==r&&(c(),s.delete("ychange")):void 0!==r&&r.user===l.id.client&&"added"===r.type||(c(),s.set("ychange",n?n("added",l.id):{type:"added"})):void 0!==r&&r.user===l.id.client&&"removed"===r.type||(c(),s.set("ychange",n?n("removed",l.id):{type:"removed"})),o+=l.content.str;break}case ri:case Hs:{c();const e={insert:l.content.getContent()[0]};if(s.size>0){const t={};e.attributes=t,s.forEach((e,n)=>{t[n]=e})}r.push(e);break}case Vs:hr(l,e)&&(c(),ws(s,l.content))}l=l.right}c()};return e||t?Ar(i,n=>{e&&fr(n,e),t&&fr(n,t),a()},"cleanup"):a(),r}insert(e,t,n){if(t.length<=0)return;const r=this.doc;null!==r?Ar(r,r=>{const s=vs(r,this,e,!n);n||(n={},s.currentAttributes.forEach((e,t)=>{n[t]=e})),Ss(r,this,s,t,n)}):this._pending.push(()=>this.insert(e,t,n))}insertEmbed(e,t,n){const r=this.doc;null!==r?Ar(r,r=>{const s=vs(r,this,e,!n);Ss(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?Ar(n,n=>{Os(n,vs(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?Ar(r,r=>{const s=vs(r,this,e,!1);null!==s.right&&xs(r,this,s,t,n)}):this._pending.push(()=>this.format(e,t,n))}removeAttribute(e){null!==this.doc?Ar(this.doc,t=>{is(t,this,e)}):this._pending.push(()=>this.removeAttribute(e))}setAttribute(e,t){null!==this.doc?Ar(this.doc,n=>{os(n,this,e,t)}):this._pending.push(()=>this.setAttribute(e,t))}getAttribute(e){return ls(this,e)}getAttributes(){return cs(this)}_write(e){e.writeTypeRef(Xs)}}class Ts{constructor(e,t=()=>!0){this._filter=t,this._root=e,this._currentNode=e._start,this._firstCall=!0,e.doc??Fr()}[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!==js&&t.constructor!==Us||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 Us extends qr{constructor(){super(),this._prelimContent=[]}get firstChild(){const e=this._first;return e?e.content.getContent()[0]:null}_integrate(e,t){super._integrate(e,t),this.insert(0,this._prelimContent),this._prelimContent=null}_copy(){return new Us}clone(){const e=new Us;return e.insert(0,this.toArray().map(e=>e instanceof qr?e.clone():e)),e}get length(){return this.doc??Fr(),null===this._prelimContent?this._length:this._prelimContent.length}createTreeWalker(e){return new Ts(this,e)}querySelector(e){e=e.toUpperCase();const t=new Ts(this,t=>t.nodeName&&t.nodeName.toUpperCase()===e).next();return t.done?null:t.value}querySelectorAll(e){return e=e.toUpperCase(),Y(new Ts(this,t=>t.nodeName&&t.nodeName.toUpperCase()===e))}_callObserver(e,t){Jr(this,e,new Ps(this,t,e))}toString(){return Xr(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),Qr(this,s=>{r.insertBefore(s.toDOM(e,t,n),null)}),r}insert(e,t){null!==this.doc?Ar(this.doc,n=>{rs(n,this,e,t)}):this._prelimContent.splice(e,0,...t)}insertAfter(e,t){if(null!==this.doc)Ar(this.doc,n=>{const r=e&&e instanceof qr?e._item:e;ts(n,this,r,t)});else{const n=this._prelimContent,r=null===e?0:n.findIndex(t=>t===e)+1;if(0===r&&null!==e)throw Ce("Reference item not found");n.splice(r,0,...t)}}delete(e,t=1){null!==this.doc?Ar(this.doc,n=>{ss(n,this,e,t)}):this._prelimContent.splice(e,t)}toArray(){return Yr(this)}push(e){this.insert(this.length,e)}unshift(e){this.insert(0,e)}get(e){return es(this,e)}slice(e=0,t=this.length){return Gr(this,e,t)}forEach(e){Qr(this,e)}_write(e){e.writeTypeRef(ei)}}class js extends Us{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 js(this.nodeName)}clone(){const e=new js(this.nodeName);return((e,t)=>{for(const n in e)t(e[n],n)})(this.getAttributes(),(t,n)=>{"string"==typeof t&&e.setAttribute(n,t)}),e.insert(0,this.toArray().map(e=>e instanceof qr?e.clone():e)),e}toString(){const e=this.getAttributes(),t=[],n=[];for(const t in e)n.push(t);n.sort();const r=n.length;for(let s=0;s<r;s++){const r=n[s];t.push(r+'="'+e[r]+'"')}const s=this.nodeName.toLocaleLowerCase();return`<${s}${t.length>0?" "+t.join(" "):""}>${super.toString()}</${s}>`}removeAttribute(e){null!==this.doc?Ar(this.doc,t=>{is(t,this,e)}):this._prelimAttrs.delete(e)}setAttribute(e,t){null!==this.doc?Ar(this.doc,n=>{os(n,this,e,t)}):this._prelimAttrs.set(e,t)}getAttribute(e){return ls(this,e)}hasAttribute(e){return as(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&&hr(s,t)&&(n[r]=s.content.getContent()[s.length-1])}),n})(this,e):cs(this)}toDOM(e=document,t={},n){const r=e.createElement(this.nodeName),s=this.getAttributes();for(const e in s){const t=s[e];"string"==typeof t&&r.setAttribute(e,t)}return Qr(this,s=>{r.appendChild(s.toDOM(e,t,n))}),void 0!==n&&n._createAssociation(r,this),r}_write(e){e.writeTypeRef(Zs),e.writeKey(this.nodeName)}}class Ps extends Nr{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 Ls extends ps{constructor(e){super(),this.hookName=e}_copy(){return new Ls(this.hookName)}clone(){const e=new Ls(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(ti),e.writeKey(this.hookName)}}class Rs extends Ds{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 Rs}clone(){const e=new Rs;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(ni)}}class Ms{constructor(e,t){this.id=e,this.length=t}get deleted(){throw Ie()}mergeWith(e){return!1}write(e,t,n){throw Ie()}integrate(e,t){throw Ie()}}class $s extends Ms{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),mr(e.doc.store,this)}write(e,t){e.writeInfo(0),e.writeLen(this.length-t)}getMissing(e,t){return null}}class Ns{constructor(e){this.content=e}getLength(){return 1}getContent(){return[this.content]}isCountable(){return!0}copy(){return new Ns(this.content)}splice(e){throw Ie()}mergeWith(e){return!1}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeBuf(this.content)}getRef(){return 3}}class Bs{constructor(e){this.len=e}getLength(){return this.len}getContent(){return[]}isCountable(){return!1}copy(){return new Bs(this.len)}splice(e){const t=new Bs(this.len-e);return this.len=e,t}mergeWith(e){return this.len+=e.len,!0}integrate(e,t){Vn(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 Fs=(e,t)=>new qn({guid:e,...t,shouldLoad:t.shouldLoad||t.autoLoad||!1});class Ws{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 Ws(Fs(this.doc.guid,this.opts))}splice(e){throw Ie()}mergeWith(e){return!1}integrate(e,t){this.doc._item=t,e.subdocsAdded.add(this.doc),this.doc.shouldLoad&&e.subdocsLoaded.add(this.doc)}delete(e){e.subdocsAdded.has(this.doc)?e.subdocsAdded.delete(this.doc):e.subdocsRemoved.add(this.doc)}gc(e){}write(e,t){e.writeString(this.doc.guid),e.writeAny(this.opts)}getRef(){return 9}}class Hs{constructor(e){this.embed=e}getLength(){return 1}getContent(){return[this.embed]}isCountable(){return!0}copy(){return new Hs(this.embed)}splice(e){throw Ie()}mergeWith(e){return!1}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeJSON(this.embed)}getRef(){return 5}}class Vs{constructor(e,t){this.key=e,this.value=t}getLength(){return 1}getContent(){return[]}isCountable(){return!1}copy(){return new Vs(this.key,this.value)}splice(e){throw Ie()}mergeWith(e){return!1}integrate(e,t){const n=t.parent;n._searchMarker=null,n._hasFormatting=!0}delete(e){}gc(e){}write(e,t){e.writeKey(this.key),e.writeJSON(this.value)}getRef(){return 6}}class 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 Ks="development"===_n("node_env");class Js{constructor(e){this.arr=e,Ks&&pn(e)}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new Js(this.arr)}splice(e){const t=new Js(this.arr.slice(e));return this.arr=this.arr.slice(0,e),t}mergeWith(e){return this.arr=this.arr.concat(e.arr),!0}integrate(e,t){}delete(e){}gc(e){}write(e,t){const n=this.arr.length;e.writeLen(n-t);for(let r=t;r<n;r++){const t=this.arr[r];e.writeAny(t)}}getRef(){return 8}}class qs{constructor(e){this.str=e}getLength(){return this.str.length}getContent(){return this.str.split("")}isCountable(){return!0}copy(){return new qs(this.str)}splice(e){const t=new qs(this.str.slice(e));this.str=this.str.slice(0,e);const n=this.str.charCodeAt(e-1);return n>=55296&&n<=56319&&(this.str=this.str.slice(0,e-1)+"�",t.str="�"+t.str.slice(1)),t}mergeWith(e){return this.str+=e.str,!0}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeString(0===t?this.str:this.str.slice(t))}getRef(){return 4}}const Gs=[e=>new hs,e=>new ps,e=>new Ds,e=>new js(e.readKey()),e=>new Us,e=>new Ls(e.readKey()),e=>new Rs],Ys=0,Qs=1,Xs=2,Zs=3,ei=4,ti=5,ni=6;class ri{constructor(e){this.type=e}getLength(){return 1}getContent(){return[this.type]}isCountable(){return!0}copy(){return new ri(this.type._copy())}splice(e){throw Ie()}mergeWith(e){return!1}integrate(e,t){this.type._integrate(e.doc,t)}delete(e){let t=this.type._start;for(;null!==t;)t.deleted?t.id.clock<(e.beforeState.get(t.id.client)||0)&&e._mergeStructs.push(t):t.delete(e),t=t.right;this.type._map.forEach(t=>{t.deleted?t.id.clock<(e.beforeState.get(t.id.client)||0)&&e._mergeStructs.push(t):t.delete(e)}),e.changed.delete(this.type)}gc(e){let t=this.type._start;for(;null!==t;)t.gc(e,!0),t=t.right;this.type._start=null,this.type._map.forEach(t=>{for(;null!==t;)t.gc(e,!0),t=t.left}),this.type._map=new Map}write(e,t){this.type._write(e)}getRef(){return 7}}const si=(e,t,n)=>{const{client:r,clock:s}=t.id,i=new ii(ur(r,s+n),t,ur(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=ur(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 ii extends Ms{constructor(e,t,n,r,s,i,o,l){super(e,l.getLength()),this.origin=n,this.left=t,this.right=r,this.rightOrigin=s,this.parent=i,this.parentSub=o,this.redone=null,this.content=l,this.info=this.content.isCountable()?2:0}set marker(e){(8&this.info)>0!==e&&(this.info^=8)}get marker(){return(8&this.info)>0}get keep(){return(1&this.info)>0}set keep(e){this.keep!==e&&(this.info^=1)}get countable(){return(2&this.info)>0}get deleted(){return(4&this.info)>0}set deleted(e){this.deleted!==e&&(this.info^=4)}markDeleted(){this.info|=4}getMissing(e,t){if(this.origin&&this.origin.client!==this.id.client&&this.origin.clock>=yr(t,this.origin.client))return this.origin.client;if(this.rightOrigin&&this.rightOrigin.client!==this.id.client&&this.rightOrigin.clock>=yr(t,this.rightOrigin.client))return this.rightOrigin.client;if(this.parent&&this.parent.constructor===ar&&this.id.client!==this.parent.client&&this.parent.clock>=yr(t,this.parent.client))return this.parent.client;if(this.origin&&(this.left=kr(e,t,this.origin),this.origin=this.left.lastId),this.rightOrigin&&(this.right=_r(e,this.rightOrigin),this.rightOrigin=this.right.id),this.left&&this.left.constructor===$s||this.right&&this.right.constructor===$s)this.parent=null;else if(this.parent){if(this.parent.constructor===ar){const e=br(t,this.parent);e.constructor===$s?this.parent=null:this.parent=e.content.type}}else this.left&&this.left.constructor===ii?(this.parent=this.left.parent,this.parentSub=this.left.parentSub):this.right&&this.right.constructor===ii&&(this.parent=this.right.parent,this.parentSub=this.right.parentSub);return null}integrate(e,t){if(t>0&&(this.id.clock+=t,this.left=kr(e,e.doc.store,ur(this.id.client,this.id.clock-1)),this.origin=this.left.lastId,this.content=this.content.splice(t),this.length-=t),this.parent){if(!this.left&&(!this.right||null!==this.right.left)||this.left&&this.left.right!==this.right){let t,n=this.left;if(null!==n)t=n.right;else if(null!==this.parentSub)for(t=this.parent._map.get(this.parentSub)||null;null!==t&&null!==t.left;)t=t.left;else t=this.parent._start;const r=new Set,s=new Set;for(;null!==t&&t!==this.right;){if(s.add(t),r.add(t),dr(this.origin,t.origin)){if(t.id.client<this.id.client)n=t,r.clear();else if(dr(this.rightOrigin,t.rightOrigin))break}else{if(null===t.origin||!s.has(br(e.doc.store,t.origin)))break;r.has(br(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),mr(e.doc.store,this),this.content.integrate(e,this),Cr(e,this.parent,this.parentSub),(null!==this.parent._item&&this.parent._item.deleted||null!==this.parentSub&&null!==this.right)&&this.delete(e)}else new $s(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:ur(this.id.client,this.id.clock+this.length-1)}mergeWith(e){if(this.constructor===e.constructor&&dr(e.origin,this.lastId)&&this.right===e&&dr(this.rightOrigin,e.rightOrigin)&&this.id.client===e.id.client&&this.id.clock+this.length===e.id.clock&&this.deleted===e.deleted&&null===this.redone&&null===e.redone&&this.content.constructor===e.content.constructor&&this.content.mergeWith(e.content)){const t=this.parent._searchMarker;return t&&t.forEach(t=>{t.p===e&&(t.p=this,!this.deleted&&this.countable&&(t.index-=this.length))}),e.keep&&(this.keep=!0),this.right=e.right,null!==this.right&&(this.right.left=this),this.length+=e.length,!0}return!1}delete(e){if(!this.deleted){const t=this.parent;this.countable&&null===this.parentSub&&(t._length-=this.length),this.markDeleted(),Vn(e.deleteSet,this.id.client,this.id.clock,this.length),Cr(e,t,this.parentSub),this.content.delete(e)}}gc(e,t){if(!this.deleted)throw Oe();this.content.gc(e),t?((e,t,n)=>{const r=e.clients.get(t.id.client);r[vr(r,t.id.clock)]=n})(e,this,new $s(this.id,this.length)):this.content=new Bs(this.length)}write(e,t){const n=t>0?ur(this.id.client,this.id.clock+t-1):this.origin,r=this.rightOrigin,s=this.parentSub,i=31&this.content.getRef()|(null===n?0:H)|(null===r?0:W)|(null===s?0:32);if(e.writeInfo(i),null!==n&&e.writeLeftID(n),null!==r&&e.writeRightID(r),null===n&&null===r){const t=this.parent;if(void 0!==t._item){const n=t._item;if(null===n){const n=(e=>{for(const[t,n]of e.doc.share.entries())if(n===e)return t;throw Oe()})(t);e.writeParentInfo(!0),e.writeString(n)}else e.writeParentInfo(!1),e.writeLeftID(n.id)}else t.constructor===String?(e.writeParentInfo(!0),e.writeString(t)):t.constructor===ar?(e.writeParentInfo(!1),e.writeLeftID(t)):Oe();null!==s&&e.writeString(s)}this.content.write(e,t)}}const oi=(e,t)=>li[31&t](e),li=[()=>{Oe()},e=>new Bs(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 Ns(e.readBuf()),e=>new qs(e.readString()),e=>new Hs(e.readJSON()),e=>new Vs(e.readKey(),e.readJSON()),e=>new ri(Gs[e.readTypeRef()](e)),e=>{const t=e.readLen(),n=[];for(let r=0;r<t;r++)n.push(e.readAny());return new Js(n)},e=>new Ws(Fs(e.readString(),e.readAny())),()=>{Oe()}];class ci extends Ms{get deleted(){return!0}delete(){}mergeWith(e){return this.constructor===e.constructor&&(this.length+=e.length,!0)}integrate(e,t){Oe()}write(e,t){e.writeInfo(10),ae(e.restEncoder,this.length-t)}getMissing(e,t){return null}}const ai="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},di="__ $YJS$ __";function ui(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}ai[di],ai[di]=!0;const hi=new FinalizationRegistry(({cache:e,key:t})=>{delete e[t]});function fi(e){var t,n;return null!==(t=(n=e._novip)._docCache)&&void 0!==t?t:n._docCache={cache:{},get size(){return Object.keys(this.cache).length},find(e,t,n){const r=yi(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=yi(n,r,s),o=null===(t=this.cache[i])||void 0===t?void 0:t.deref();o&&hi.unregister(o),this.cache[i]=new WeakRef(e),hi.register(e,{cache:this.cache,key:i},e)},delete(e){hi.unregister(e);const t=yi(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 pi=new WeakSet;function gi(e){if(pi.has(e))throw new Error(`Y.Doc ${e.meta.parentId} has been destroyed`)}function yi(e,t,n){return`${e}[${t}].${n}`}const{getByKeyPath:mi}=e.Dexie;let vi=null;function bi(e){vi=e}function wi(){}const _i=new WeakMap;function ki(){return e.Dexie.Events(null,"load","sync","error")}class Si{static getOrCreateDocument(e,t,n,r){var s,i;const o=fi(e),l=null===(i=null===(s=e.table(t).schema.yProps)||void 0===s?void 0:s.find(e=>e.prop===n))||void 0===i?void 0:i.updatesTable;if(!l)throw new Error(`Updates table for ${t}.${n} not found`);return function(e,t,n,r,s,i){let o=t.find(n,i,r);return o||(o=new qn({meta:{db:e,updatesTable:s,parentProp:r,parentTable:n,parentId:i}}),t.add(o),o.on("destroy",()=>{pi.add(o),t.delete(o)}),o)}(e,o,t,n,l,r)}static load(e,t){var n;let r=_i.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 Si(e),r.graceTimeout=null!==(n=null==t?void 0:t.gracePeriod)&&void 0!==n?n:-1,_i.set(e,r)),r}static release(e){if(!e||pi.has(e))return;const t=_i.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(Si.on("beforeunload").fire(this)).finally(()=>{var e;0===this.refCount&&(null===(e=this.doc)||void 0===e||e.destroy())})}static for(e){return _i.get(e)}static get currentUpdateRow(){return vi}get whenLoaded(){return this._whenLoaded||(this._whenLoaded=new Promise((t,n)=>{this.doc?this.doc.isLoaded?t():this._error?n(this._error):pi.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):pi.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=ki(),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]=()=>Si.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`);gi(t),this.stopObserving=function(t,n,r,s,i,o){let l=0,c=!0;const a=e.liveQuery(()=>{gi(n);const t=r.table(i);return Promise.all([(l>0?t.where("i").between(l,1/0,!1).toArray().then(t=>t.filter(t=>0===e.cmp(t.k,o))):t.where({k:o}).toArray()).then(e=>e),r.table(s).where(":id").equals(o).toArray()])}).subscribe(([e,r])=>{e.length>0&&(l=e[e.length-1].i),0!==r.length?(gi(n),e.length>0&&Ar(n,()=>{e.forEach(e=>{try{bi(e),rr(n,e.u)}finally{bi(null)}})},t,!1),c&&(c=!1,n.emit("load",[n]))):n.destroy()},e=>{t.on("error").fire(e)}),d=(e,n)=>{n!==t&&r.table(i).add({k:o,u:e,f:1}).then(e=>{e===l-1&&++l}).catch(e=>{t.on("error").fire(e)})},u=()=>{a.unsubscribe(),n.off("updateV2",d),n.off("destroy",u)};return n.on("updateV2",d),n.on("destroy",u),u}(this,t,n,r,i,s),Si.on("new").fire(this)}destroy(){var e;_i.delete(this.doc),this.doc=null,this.destroyed=!0,this.refCount=0,null===(e=this.stopObserving)||void 0===e||e.call(this),this.on=ki(),this.cleanupHandlers.forEach(e=>e())}addCleanupHandler(e){this.cleanupHandlers.push("function"==typeof e?e:()=>e.unsubscribe())}}function xi(t,n){return r(this,void 0,void 0,function*(){var s;const i={};let o,l=!1;for(const c of t)try{switch(c.type){case"u-s":{const e=ui(n,c.table,c.prop);if(e){const t={k:c.k,u:c.u};c.r&&(t.r=c.r,o=c.r),i[e.name]=yield e.add(t)}break}case"u-ack":{const e=ui(n,c.table,c.prop);e&&(yield n.transaction("rw",e,t=>r(this,void 0,void 0,function*(){let n=yield t.table(e.name).get(Vt);yield t.table(e.name).put(Object.assign(Object.assign({},n||{i:Vt}),{unsentFrom:Math.max((null==n?void 0:n.unsentFrom)||1,c.i+1)}))})));break}case"u-reject":{const t=ui(n,c.table,c.prop);if(!t)break;const r=null===(s=yield t.get(c.i))||void 0===s?void 0:s.k;if(null!=r){yield n.transaction("rw",t,n=>(n.idbtrans._rejecting_y_ypdate=!0,t.where("i").aboveOrEqual(c.i).filter(t=>0===e.cmp(t.k,r)&&!(1&~(t.f||0))).delete()));const s=Si.getDocCache(n.dx).find(c.table,r,c.prop);s&&s.destroy()}break}case"in-sync":{const e=Si.getDocCache(n.dx).find(c.table,c.k,c.prop);e&&!e.isSynced&&e.emit("sync",[!0,e]);break}case"y-complete-sync-done":o=c.yServerRev;break;case"outdated-server-rev":l=!0}}catch(e){}return{receivedUntils:i,resyncNeeded:l,yServerRevision:o}})}Si.on=e.Dexie.Events(null,{new:[function(e,t){return e===wi?t:function(){e.apply(this,arguments),t.apply(this,arguments)}}],beforeunload:[function(e,t){return e===wi?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)}}]}),Si.getDocCache=fi,e.Dexie.DexieYProvider?Si=e.Dexie.DexieYProvider||Si:e.Dexie.DexieYProvider=Si;function Ei(t,n,s){return r(this,arguments,void 0,function*(t,n,{yDownloadedRealms:s,realms:c}){if(s&&c&&c.every(e=>"*"===s[e]))return;const a=yield Ze(t),d={"Content-Type":"application/json",Accept:"application/octet-stream"};a&&(d.Authorization=`Bearer ${a.accessToken}`);const u=yield fetch(`${n}/y/download`,{body:Dt.stringify({downloadedRealms:s||{}}),method:"POST",headers:d,credentials:"include"});if(!u.ok)throw new Error(`Failed to download Yjs documents from server. Status: ${u.status}`);yield async function(e,...t){let n=e();for(let e=0;e<t.length;e++)n=t[e](n);for await(const e of n);}(function(e){return async function*(){if(!e.body)throw new Error("Response body is not readable");const t=e.body.getReader();try{for(;;){const{done:e,value:n}=await t.read();if(e)return;yield n}}finally{t.releaseLock()}}}(u),Je,function(s){return o(this,arguments,function*(){var o,c,a,d;let u=null,h=null,f=null,p=[];function g(e){return r(this,void 0,void 0,function*(){const r=p[p.length-1];if(p.length>0){if(!u||!h||!f)throw new Error(`Protocol error from ${n}/y/download`);const e=ui(t,h,f);e&&(yield e.bulkAdd(p)),p=[]}u&&(h&&f&&r||e)&&(yield t.$syncState.update("syncState",t=>{const n=t.yDownloadedRealms||{};n[u]=e?"*":{tbl:h,prop:f,key:r.k},t.yDownloadedRealms=n}))})}try{try{for(var y,m=!0,v=l(s);!(o=(y=yield i(v.next())).done);m=!0){d=y.value,m=!1;const e=new Te(d);for(;je(e);)switch(Le(e)){case 1:yield i(g(!0)),u=$e(e);break;case 2:yield i(g(!1)),h=$e(e),f=$e(e);break;case 3:{const t=We(e),n=Pe(e);p.push({k:t,u:n});break}}yield i(g(!1))}}catch(e){c={error:e}}finally{try{m||o||!(a=v.return)||(yield i(a.call(v)))}finally{if(c)throw c.error}}yield i(g(!0))}catch(t){throw t instanceof e.DexieError||(yield i(g(!1))),t}})})})}const Ci="currentSyncWorker";function Ii(e,t,n,s){return Oi(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):Nt&&(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 Ii(e,t,n,Object.assign(Object.assign({},s),{retryImmediatelyOnFetchError:!1}))):(yield e.$syncState.update("syncState",{timestamp:new Date,error:""+i}),e.syncStateChangedEvent.next({phase:Nt?"error":"offline",error:new Error(""+(null==i?void 0:i.message)||i)}),Promise.reject(i))}))}function Oi(e,t,n){return r(this,arguments,void 0,function*(e,t,n,{isInitialSync:s,cancelToken:i,justCheckIfNeeded:o,purpose:l}={isInitialSync:!1}){var a;if(!(null===(a=e.cloud.options)||void 0===a?void 0:a.databaseUrl))throw new Error("Internal error: sync must not be called when no databaseUrl is configured");const{databaseUrl:d}=t,u=yield e.getCurrentUser(),h=u.isLoggedIn?k(e):[],f=h.map(t=>e.table(S(t.name))),p=yield e.getPersistedSyncState(),g=u.isLoggedIn,y=g?function(e,t){const n=(null==t?void 0:t.syncedTables)||[];return k(e).filter(e=>!n.includes(e.name))}(e,p):[];$t(i);const m=y.length>0;if(m){if(o)return!0;yield e.transaction("rw",y,e=>r(this,void 0,void 0,function*(){e.idbtrans.disableChangeTracking=!0,e.idbtrans.disableAccessControl=!0,yield function(e,t,n){return r(this,void 0,void 0,function*(){const r=new Set(n||[]);for(const n of e)"members"===n.name?yield n.toCollection().modify(e=>{r.has(e.realmId)||e.userId&&e.userId!==c.userId||(e.userId=t.userId)}):"roles"===n.name||("realms"===n.name?yield n.toCollection().modify(e=>{r.has(e.realmId)||void 0!==e.owner&&e.owner!==c.userId||(e.owner=t.userId)}):yield n.toCollection().modify(e=>{e.realmId&&r.has(e.realmId)||(e.owner&&e.owner!==c.userId||(e.owner=t.userId),e.realmId&&e.realmId!==c.userId||(e.realmId=t.userId))}))})}(y,u,null==p?void 0:p.realms)})),$t(i)}const[v,b,w,{yMessages:_,lastUpdateIds:E}]=yield e.transaction("r",e.tables,()=>r(this,void 0,void 0,function*(){const t=yield e.getPersistedSyncState();let s=yield e.$baseRevs.toArray();s=s.filter(e=>h.some(t=>t.name===e.tableName));let o=yield I(f,e);const l=yield function(e,t){return r(this,void 0,void 0,function*(){const n=[],r={};for(const s of t)if(s.schema.yProps)for(const t of s.schema.yProps){const i=e.table(t.updatesTable),o=yield i.get(Vt),l=(null==o?void 0:o.unsentFrom)||1,c=(null==o?void 0:o.receivedUntil)||0,a=Math.min(l,c+1),d=yield zt(i,a);d.length>0&&(r[i.name]=d[d.length-1].i);const u={};for(const e of d){const t=!(1&~(e.f||0));if(t&&e.i<l)continue;const n=JSON.stringify(e.k)+"/"+t;let r=u[n];r?(r.u.push(e.u),r.i=Math.max(e.i,r.i)):(u[n]=r={i:e.i,k:e.k,isLocal:t,u:[]},r.u.push(e.u))}for(const{k:e,isLocal:r,u:i,i:o}of Object.values(u)){const l=1===i.length?i[0]:Pr(i);if(r)n.push({type:"u-c",table:s.name,prop:t.prop,k:e,u:l,i:o});else{const r=Ur(l);n.push({type:"sv",table:s.name,prop:t.prop,k:e,sv:r})}}}return{yMessages:n,lastUpdateIds:r}})}(e,h);if($t(i),m){const e=[...(null==p?void 0:p.realms)||[],...(null==p?void 0:p.inviteRealms)||[]],c=yield function(e,t,n,s){return r(this,void 0,void 0,function*(){const i=`upload-${O(8)}`;if(t.isLoggedIn&&e.length>0){const o=new Set(s||[]);return(yield Promise.all(e.map(e=>r(this,void 0,void 0,function*(){const{extractKey:r}=e.core.schema.primaryKey;if(!r)return{table:e.name,muts:[]};const s=n[e.name],l=(null==s?void 0:s.generatedGlobalId)?e.filter(e=>{return r(e),!o.has(e.realmId||"")&&(t=r(e),!(n=null==s?void 0:s.idPrefix)||"string"==typeof t&&t.startsWith(n));var t,n}):e.filter(e=>{const t=r(e);return!o.has(e.realmId||"")&&j(t)}),c=yield l.toArray();if(c.length>0){const n={type:"upsert",values:c,keys:c.map(r),userId:t.userId,txid:i};return{table:e.name,muts:[n]}}return{table:e.name,muts:[]}})))).filter(e=>e.muts.length>0)}return[]})}(y,u,n,e);return $t(i),o=o.concat(c),[o,t,s,l]}return[o,t,s,l]})),C=v.some(e=>e.muts.some(e=>e.keys.length>0))||_.some(e=>"u-c"===e.type);if(o)return C;if("push"===l&&!C)return!1;const A=Ft(v,null==b?void 0:b.latestRevisions),D=(null==b?void 0:b.clientIdentity)||T(16);$t(i);const U=yield Mt(v,_,b,w,e,d,n,D,u),{done:P,newSyncState:L}=yield e.transaction("rw",e.tables,t=>r(this,void 0,void 0,function*(){t.idbtrans.disableChangeTracking=!0,t.idbtrans.disableAccessControl=!0;for(const e of Object.keys(n))U.schema[e]&&(n[e]=U.schema[e]);yield e.$syncState.put(n,"schema");const s=yield I(f,e,{since:A});for(const t of f){const n=x(t.name);if(s.some(e=>e.table===n&&e.muts.length>0)){if(A[n]){const r=A[n]||0;yield Promise.all([t.where("rev").belowOrEqual(r).delete(),e.$baseRevs.where(":id").between([n,-1/0],[n,r+1],!0,!0).reverse().offset(1).delete()])}}else yield Promise.all([t.clear(),e.$baseRevs.where({tableName:n}).delete()])}Ft(s,A),yield Bt(e,n,A,U.serverRevision);const i=yield e.getPersistedSyncState();yield function(e,t,n){return r(this,void 0,void 0,function*(){const r=new Set,s=new Set,i=n?n.realms:[],o=n?n.inviteRealms:[],l=new Set(t.realms),c=new Set(t.realms.concat(t.inviteRealms));for(const e of i)l.has(e)||(s.add(e),c.has(e)||r.add(e));for(const e of o.concat(i))c.has(e)||r.add(e);if(r.size>0||s.size>0){const t=k(e);for(const e of t){let t=["realms","members","roles"].includes(e.name)?r:s;0!==t.size&&(e.schema.indexes.some(e=>"realmId"===e.keyPath||Array.isArray(e.keyPath)&&"realmId"===e.keyPath[0])?yield e.where("realmId").anyOf([...t]).delete():yield e.filter(e=>!!(null==e?void 0:e.realmId)&&t.has(e.realmId)).delete())}}if(s.size>0&&(null==n?void 0:n.yDownloadedRealms))for(const e of s)delete n.yDownloadedRealms[e]})}(e,U,i);const o=i||{syncedTables:[],latestRevisions:{},realms:[],inviteRealms:[],clientIdentity:D};g&&(o.syncedTables=h.map(e=>e.name).concat(y.map(e=>e.name))),o.latestRevisions=A,o.remoteDbId=U.dbId,o.initiallySynced=!0,o.realms=U.realms,o.inviteRealms=U.inviteRealms,o.serverRevision=U.serverRevision,o.yServerRevision=U.serverRevision,o.timestamp=new Date,delete o.error;const l=Ai(U.changes,s);if(yield Ht(l,e),U.yMessages){const{receivedUntils:t,resyncNeeded:n,yServerRevision:s}=yield xi(U.yMessages,e);s&&(o.yServerRevision=s),yield function(e,t,n){return r(this,void 0,void 0,function*(){var s,i,o,l,c;const a={};for(const[t,n]of Object.entries(e))null!==(s=a[t])&&void 0!==s||(a[t]={}),a[t].unsentFrom=n+1;for(const[e,n]of Object.entries(t))null!==(i=a[e])&&void 0!==i||(a[e]={}),a[e].receivedUntil=n;const d=Object.values(n.dx._dbSchema).filter(e=>e.yProps).map(e=>e.yProps.map(e=>e.updatesTable)).flat();for(const e of d){const t=a[e],s=null!==(o=null==t?void 0:t.unsentFrom)&&void 0!==o?o:1,i=null!==(c=null!==(l=null==t?void 0:t.receivedUntil)&&void 0!==l?l:(yield n.table(e).where("i").between(1,1/0).reverse().limit(1).primaryKeys())[0])&&void 0!==c?c:0;yield n.transaction("rw",e,()=>r(this,void 0,void 0,function*(){const t=yield n.table(e).get(Vt);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:Vt,unsentFrom:s,receivedUntil:i})}))}})}(E,t,e),n&&(o.yDownloadedRealms={})}return e.$syncState.put(o,"syncState"),{done:0===s.length,newSyncState:o}}));if(!P)return yield Rt(e),yield Oi(e,t,n,{isInitialSync:s,cancelToken:i});const R=Object.values(n).some(e=>{var t;return null===(t=e.yProps)||void 0===t?void 0:t.length}),M=!!U.yMessages;if(R&&M)try{yield Ei(e,d,L)}catch(e){}return e.syncCompleteEvent.next(),!1})}function Ai(e,t){const n={};R(n,e);const r={};return R(r,t),function(e,t){for(const[n,r]of Object.entries(t))for(const[t,s]of Object.entries(r))switch(s.type){case"ups":{const r=e[n]?.[t];if(r)switch(r.type){case"ups":case"upd":delete e[n][t]}}break;case"del":delete e[n]?.[t];break;case"upd":{const r=e[n]?.[t];if(r)switch(r.type){case"ups":for(const[e,t]of Object.entries(s.mod))D(r.val,e,t);break;case"del":break;case"upd":for(const e of Object.keys(s.mod))delete r.mod[e]}break}}}(n,r),function(e,t){const n={};for(const[t,r]of Object.entries(e))for(const[e,s]of Object.entries(r)){const r=n[t]||(n[t]={});(r[s.type]||(r[s.type]=[])).push({key:e,...s})}const r=[];for(const[e,s]of Object.entries(n)){const n={table:e,muts:[]};for(const[e,r]of Object.entries(s))switch(e){case"ups":{const e={type:"upsert",keys:r.map(e=>e.key),values:r.map(e=>e.val),txid:t};n.muts.push(e);break}case"upd":{const e={type:"update",keys:r.map(e=>e.key),changeSpecs:r.map(e=>e.mod),txid:t};n.muts.push(e);break}case"del":{const e={type:"delete",keys:r.map(e=>e.key),txid:t};n.muts.push(e);break}}r.push(n)}return r}(n)}function Di(s){const i=[],o=new t.BehaviorSubject(!0),l=new t.BehaviorSubject(null);let c=!1,a=new Array(10).fill(0);return l.subscribe(()=>r(this,void 0,void 0,function*(){if(!c&&i.length>0){c=!0,a.shift(),a.push(Date.now()),o.next(!1);try{yield function(){return r(this,void 0,void 0,function*(){for(var o,l,c,a,d,u;i.length>0;){const h=i.shift();try{yield t.firstValueFrom(s.cloud.syncState.pipe(n.filter(({phase:e})=>"in-sync"===e||"error"===e)));const i=s.cloud.persistedSyncState.value;if(!h)continue;switch(h.type){case"token-expired":const t=s.cloud.currentUser.value,n=yield tt(s.cloud.options.databaseUrl,t);yield s.table("$logins").update(t.userId,{accessToken:n.accessToken,accessTokenExpiration:n.accessTokenExpiration,claims:n.claims,license:n.license,data:n.data});break;case"realm-added":(null===(o=null==i?void 0:i.realms)||void 0===o?void 0:o.includes(h.realm))||(null===(l=null==i?void 0:i.inviteRealms)||void 0===l?void 0:l.includes(h.realm))||(yield s.cloud.sync({purpose:"pull",wait:!0}));break;case"realm-accepted":(null===(c=null==i?void 0:i.realms)||void 0===c?void 0:c.includes(h.realm))||(yield s.cloud.sync({purpose:"pull",wait:!0}));break;case"realm-removed":((null===(a=null==i?void 0:i.realms)||void 0===a?void 0:a.includes(h.realm))||(null===(d=null==i?void 0:i.inviteRealms)||void 0===d?void 0:d.includes(h.realm)))&&(yield s.cloud.sync({purpose:"pull",wait:!0}));break;case"realms-changed":yield s.cloud.sync({purpose:"pull",wait:!0});break;case"changes":if("error"===(null===(u=s.cloud.syncState.value)||void 0===u?void 0:u.phase)){y(s,"pull");break}yield s.transaction("rw",s.dx.tables,t=>r(this,void 0,void 0,function*(){t.idbtrans.disableChangeTracking=!0,t.idbtrans.disableAccessControl=!0;const[n,r,i]=yield Promise.all([s.getSchema(),s.getPersistedSyncState(),s.getCurrentUser()]);if(!r||!n||!i)return;if(h.baseRev!==r.serverRevision)return void("string"!=typeof h.baseRev||"bigint"!=typeof r.serverRevision&&"object"!=typeof r.serverRevision||y(s,"pull"));if((yield e.waitFor(_(r)))!==h.realmSetHash)return void y(s,"pull");let o=[];if(i.isLoggedIn){const e=k(s).map(e=>s.table(S(e.name)));o=yield I(e,s)}if(h.changes.length>0){const e=Ai(h.changes,o);yield Ht(e,s)}r.latestRevisions=Ft(o,r.latestRevisions),r.serverRevision=h.newRev,yield Bt(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))),c=!1,o.next(!0)}}})),{enqueue:function(e){i.push(e),l.next(null)},readyToServe:o}}const Ti=new WeakMap,Ui={members:"@id, [userId+realmId], [email+realmId], realmId",roles:"[realmId+name]",realms:"@realmId",$jobs:"",$syncState:"",$baseRevs:"[tableName+clientRev]",$logins:"claims.sub, lastLogin"};let ji=0;function Pi(e){"vip"in e&&(e=e.vip);let n=Ti.get(e.cloud);if(!n){const r=new t.Subject;let s=new f(`syncstatechanged-${e.name}`),i=new f(`synccomplete-${e.name}`);r.id=++ji;let o=!1;n={get name(){return e.name},close:()=>e.close(),transaction:e.transaction.bind(e),table:e.table.bind(e),get tables(){return e.tables},cloud:e.cloud,get $jobs(){return e.table("$jobs")},get $syncState(){return e.table("$syncState")},get $baseRevs(){return e.table("$baseRevs")},get $logins(){return e.table("$logins")},get realms(){return e.realms},get members(){return e.members},get roles(){return e.roles},get initiallySynced(){return o},localSyncEvent:r,get syncStateChangedEvent(){return s},get syncCompleteEvent(){return i},dx:e};const l={getCurrentUser:()=>n.$logins.toArray().then(e=>e.find(e=>e.isLoggedIn)||c),getPersistedSyncState:()=>n.$syncState.get("syncState"),getSchema:()=>n.$syncState.get("schema").then(e=>{if(e)for(const t of n.tables)t.schema.primKey&&t.schema.primKey.keyPath&&e[t.name]&&(e[t.name].primaryKey=Li(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,l),n.messageConsumer=Di(n),n.messageProducer=new t.Subject,Ti.set(e.cloud,n)}return n}function Li(e){return"string"==typeof e?e:e?"["+[].join.call(e,"+")+"]":""}const Ri=new WeakMap;class Mi{constructor(e,t){Ri.set(this,e),Object.assign(this,t)}static load(e,t){return e.table("$logins").get(t).then(n=>new Mi(e,n||{userId:t,claims:{sub:t},lastLogin:new Date(0)}))}save(){return r(this,void 0,void 0,function*(){Ri.get(this).table("$logins").put(this)})}}function $i(e,n){return t.firstValueFrom(t.from(e).pipe(t.filter(n)))}function Ni(e){return r(this,void 0,void 0,function*(){const t=yield Bi(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 Ge(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 Bi(e,{deleteUnsyncedData:!0})}})}function Bi(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 $i(e.cloud.currentUser,e=>e.userId===c.userId),yield e.cloud.sync({purpose:"pull",wait:!0})),n})}const Fi={popup_blocked:"The login popup was blocked by your browser. Please allow popups for this site and try again.",popup_closed:"The login popup was closed before completing authentication.",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 Wi extends Error{constructor(e,t,n){super(n||Fi[e]),this.name="OAuthError",this.code=e,this.provider=t}get userMessage(){return Fi[this.code]||this.message}}function Hi(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){if(400===e.status||401===e.status)try{const t=yield e.json();if("error"===t.type){if("INVALID_OTP"===t.messageCode)throw new Wi("expired_code",void 0,t.message);throw new qe(t)}}catch(e){if(e instanceof Wi||e instanceof qe)throw e}const t=yield e.text().catch(()=>e.statusText);throw new Wi("provider_error",void 0,`Token exchange failed: ${e.status} ${t}`)}const n=yield e.json();if("error"===n.type)throw new qe(n);if("tokens"!==n.type)throw new Wi("provider_error",void 0,`Unexpected response type: ${n.type}`);return n}catch(e){if(e instanceof Wi||e instanceof qe)throw e;if(e instanceof TypeError)throw new Wi("network_error");throw e}})}const Vi={providers:[],otpEnabled:!0};function zi(e){return r(this,void 0,void 0,function*(){const{databaseUrl:t,provider:n,usePopup:r=!0}=e;if(!r)throw new Error("Non-popup OAuth flow requires handleOAuthCallback after redirect");const s=function(){const e=new Uint8Array(32);return crypto.getRandomValues(e),Array.from(e,e=>e.toString(16).padStart(2,"0")).join("")}(),i=function(e,t){const n=new URL(`${e.databaseUrl}/oauth/login/${e.provider}`);n.searchParams.set("state",t);const r=e.redirectUri||("undefined"!=typeof window?window.location.origin:"");return r&&n.searchParams.set("redirect_uri",r),n.toString()}(e,s),{left:o,top:l}=function(e,t){var n,r,s,i,o,l;const c=null!==(n=window.screenLeft)&&void 0!==n?n:window.screenX,a=null!==(r=window.screenTop)&&void 0!==r?r:window.screenY,d=c+((null!==(i=null!==(s=window.innerWidth)&&void 0!==s?s:document.documentElement.clientWidth)&&void 0!==i?i:screen.width)-e)/2,u=a+((null!==(l=null!==(o=window.innerHeight)&&void 0!==o?o:document.documentElement.clientHeight)&&void 0!==l?l:screen.height)-t)/2;return{left:Math.max(0,d),top:Math.max(0,u)}}(500,600),c=window.open(i,"dexie-cloud-oauth",`width=500,height=600,left=${o},top=${l},menubar=no,toolbar=no,location=yes,status=no`);if(!c)throw new Wi("popup_blocked",n);return new Promise((e,r)=>{let i=!1;const o=o=>{const l=new URL(t).origin;if(o.origin!==l)return;if("object"!=typeof(c=o.data)||null===c||"dexie:oauthResult"!==c.type||"string"!=typeof c.provider||"string"!=typeof c.state)return;var c;const d=o.data;if(d.state===s){if(a(),i=!0,d.error){const e=function(e){const t=e.toLowerCase();if(t.includes("access_denied")||t.includes("access denied"))return"access_denied";if(t.includes("email")&&t.includes("verif"))return"email_not_verified";if(t.includes("expired"))return"expired_code";if(t.includes("state"))return"invalid_state";return"provider_error"}(d.error);return void r(new Wi(e,n,d.error))}d.code?e({code:d.code,provider:d.provider,state:d.state}):r(new Wi("provider_error",n,"No authorization code received"))}},l=setInterval(()=>{c.closed&&!i&&(a(),r(new Wi("popup_closed",n)))},500),a=()=>{window.removeEventListener("message",o),clearInterval(l);try{c.closed||c.close()}catch(e){}};window.addEventListener("message",o)})})}function Ki(t){const{userInteraction:n}=t.cloud;return function(s){return r(this,arguments,void 0,function*({public_key:s,hints:i}){var o,l;let c;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 Hi({databaseUrl:a,code:i.oauthCode,publicKey:s,scopes:["ACCESS_DB"]});if(null==i?void 0:i.provider)return yield Ji(t,s,i.provider);if("demo"===(null==i?void 0:i.grant_type)){c={demo_user:yield Qe(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)c={grant_type:"otp",otp_id:i.otpId,otp:i.otp,scopes:["ACCESS_DB"],public_key:s};else{const o=!1!==(null===(l=t.cloud.options)||void 0===l?void 0:l.socialAuth),d=yield function(e){return r(this,arguments,void 0,function*(e,t=!0){if(!t)return Vi;try{const t=yield fetch(`${e}/auth-providers`,{method:"GET",headers:{Accept:"application/json"},mode:"cors"});return 404===t.status?Vi:t.ok?yield t.json():Vi}catch(e){return Vi}})}(a,o);if(d.providers.length>0){const r=yield function(t,n,r,s="Choose login method",i=[]){return new Promise((o,l)=>{const c={type:"provider-selection",title:s,alerts:i,providers:n,otpEnabled:r,fields:{},submitLabel:void 0,cancelLabel:"Cancel",onSelectProvider:e=>{t.next(void 0),o({type:"provider",provider:e})},onSelectOtp:()=>{t.next(void 0),o({type:"otp"})},onCancel:()=>{t.next(void 0),l(new e.AbortError("User cancelled"))}};t.next(c)})}(n,d.providers,d.otpEnabled,"Sign in");if("provider"===r.type)return yield Ji(t,s,r.provider)}const u=yield Qe(n,"Enter email address",null==i?void 0:i.email);c=/@demo.local$/.test(u)?{demo_user:u,grant_type:"demo",scopes:["ACCESS_DB"],public_key:s}:{email:u,grant_type:"otp",scopes:["ACCESS_DB"]}}const d=yield fetch(`${a}/token`,{body:JSON.stringify(c),method:"post",headers:{"Content-Type":"application/json",mode:"cors"}});if(200!==d.status){const e=yield d.text();throw yield Ye(n,"Token request failed",{type:"error",messageCode:"GENERIC_ERROR",message:e,messageParams:{}}).catch(()=>{}),new Ut(d,e)}const u=yield d.json();if("tokens"===u.type||"error"===u.type)return u;if("otp"===c.grant_type&&"email"in c){if("otp-sent"!==u.type)throw new Error(`Unexpected response from ${a}/token`);const e=yield Xe(n,c.email),t=Object.assign(Object.assign({},c),{otp:e||"",otp_id:u.otp_id,public_key:s});let r=yield fetch(`${a}/token`,{body:JSON.stringify(t),method:"post",headers:{"Content-Type":"application/json"},mode:"cors"});for(;401===r.status;){const e=yield r.text();t.otp=yield Xe(n,c.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 Ut(r,e)}return yield r.json()}throw new Error(`Unexpected response from ${a}/token`)})}}function Ji(e,t,n){return r(this,void 0,void 0,function*(){var r,s,i;const o=null===(r=e.cloud.options)||void 0===r?void 0:r.databaseUrl;if(!o)throw new Error("No database URL given.");const{userInteraction:l}=e.cloud,c=!1!==(null===(s=e.cloud.options)||void 0===s?void 0:s.oauthPopup),a=(null===(i=e.cloud.options)||void 0===i?void 0:i.oauthRedirectUri)||("undefined"!=typeof window?window.location.origin:void 0);try{const e=yield zi({databaseUrl:o,provider:n,redirectUri:a,usePopup:c});return yield Hi({databaseUrl:o,code:e.code,publicKey:t,scopes:["ACCESS_DB"]})}catch(e){throw e instanceof Wi&&(yield Ye(l,"Authentication Failed",{type:"error",messageCode:"GENERIC_ERROR",message:e.userMessage,messageParams:{}}).catch(()=>{})),e}})}function qi(e,...t){globalThis.console[e](...t)}function Gi(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 Ze(e),!1}const o=new Mi(e,{claims:{},lastLogin:new Date(0)});return yield et(e.cloud.options.databaseUrl,o,e.cloud.options.fetchTokens||Ki(e),e.cloud.userInteraction,t),i!==c.userId&&o.userId!==i&&(yield Ni(e)),yield function(e,t){return r(this,void 0,void 0,function*(){const n=e.table("$logins");yield e.transaction("rw",n,e=>r(this,void 0,void 0,function*(){const e=yield n.toArray();yield Promise.all(e.filter(e=>e.userId!==t.userId&&e.isLoggedIn).map(e=>(e.isLoggedIn=!1,n.put(e)))),t.isLoggedIn=!0,t.lastLogin=new Date;try{yield t.save()}catch(e){try{"DataCloneError"===e.name&&(qi("debug","Login context property names:",Object.keys(t)),qi("debug","Login context property names:",Object.keys(t)),qi("debug","Login context:",t),qi("debug","Login context JSON:",JSON.stringify(t)))}catch(e){}throw e}})),yield $i(e.cloud.currentUser,e=>e.userId===t.userId)})}(e,o),y(e,"pull"),o.userId!==i})}const Yi="undefined"!=typeof InstallTrigger,Qi="undefined"!=typeof navigator&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\/|Edge\//.test(navigator.userAgent),Xi=Qi?[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]:NaN,Zi=Qi&&Xi<=605||Yi,eo="undefined"!=typeof self&&"clients"in self&&!self.document;const{toString:to}={};function no(e){return to.call(e).slice(8,-1)}function ro(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 so(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 io=/b|c|d|f|g|h|j|k|l|m|n|p|q|r|s|t|v|x|y|z/i;function oo(e){return e>="A"&&e<="Z"}let lo=0;function co(e,t){const n=new Uint8Array(18),r=new Uint8Array(n.buffer,0,6),s=Date.now();lo>=s?++lo:lo=s,r[0]=lo/1099511627776,r[1]=lo/4294967296,r[2]=lo/16777216,r[3]=lo/65536,r[4]=lo/256,r[5]=lo;const i=new Uint8Array(n.buffer,6);crypto.getRandomValues(i);return e+ft(new Uint8Array(n.buffer))+(t||"")}function ao(t){return{stack:"dbcore",name:"idGenerationMiddleware",level:1,create:n=>Object.assign(Object.assign({},n),{table:r=>{const s=n.table(r);return Object.assign(Object.assign({},s),{mutate:n=>{var i,o;const l=n.trans;if("versionchange"===l.mode&&(l.disableChangeTracking=!0,l.disableAccessControl=!0),l.disableChangeTracking)return s.mutate(n);if("add"===n.type||"put"===n.type){const l=null===(i=t.cloud.schema)||void 0===i?void 0:i[r];if(null==l?void 0:l.generatedGlobalId){if((null===(o=t.cloud.options)||void 0===o?void 0:o.databaseUrl)&&!t.initiallySynced){const e=ro(s.schema.primaryKey,n);return s.getMany({keys:e,trans:n.trans,cache:"immutable"}).then(t=>{if(t.length<e.length)throw new Error("Unable to create new objects without an initial sync having been performed.");return s.mutate(n)})}return function(n,i){let o=null;const l=ro(s.schema.primaryKey,n);return l.forEach((c,a)=>{if(void 0===c){const r=n.values[a].realmId||t.cloud.currentUserId,c=r.substr(r.length-3);l[a]=co(i,c),s.schema.primaryKey.outbound||(o||(o=n.values.slice()),o[a]=e.deepClone(o[a]),e.setByKeyPath(o[a],s.schema.primaryKey.keyPath,l[a]))}else if("string"!=typeof c||!c.startsWith(i)&&!c.startsWith("#"+i))throw new e.ConstraintError(`The ID "${c}" is not valid for table "${r}". Primary '@' keys requires the key to be prefixed with "${i}" (or "#${i}).\nIf you want to generate IDs programmatically, remove '@' from the schema to get rid of this constraint. Dexie Cloud supports custom IDs as long as they are random and globally unique.`)}),s.mutate(Object.assign(Object.assign({},n),{keys:l,values:o||n.values}))}(n,l.idPrefix)}if(null==l?void 0:l.markedForSync){ro(s.schema.primaryKey,n).forEach((t,n)=>{if(!j(t)){const n=Array.isArray(t)?t.map(no).join(","):no(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 uo=0;function ho(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 fo(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 po=new t.BehaviorSubject(new Set);function go(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 yo({currentUserObservable:t,db:n}){return{stack:"dbcore",name:"MutationTrackingMiddleware",level:1,create:r=>{const s=new Set(r.schema.tables.map(e=>e.name)),i=r.schema.tables.filter(e=>!/^\$/.test(e.name)),o=new Map;for(const e of i){const t=`$${e.name}_mutations`;s.has(t)&&o.set(e.name,r.table(t))}return Object.assign(Object.assign({},r),{transaction:(e,s)=>{let i;if("readwrite"===s){const t=e.filter(e=>{var t,r;return null===(r=null===(t=n.cloud.schema)||void 0===t?void 0:t[e])||void 0===r?void 0:r.markedForSync}).map(e=>S(e));i=r.transaction([...e,...t],s)}else i=r.transaction(e,s);if("readwrite"===s){i.txid=O(16),i.opCount=0,i.currentUser=t.value,po.value.add(i),po.next(po.value);const e=()=>{i.removeEventListener("complete",r),i.removeEventListener("error",e),i.removeEventListener("abort",e),po.value.delete(i),po.next(po.value)},r=()=>{i.mutationsAdded&&!go(n)&&y(n,"push"),e()};i.addEventListener("complete",r),i.addEventListener("error",e),i.addEventListener("abort",e)}return i},table:t=>{const s=r.table(t);if(/^\$/.test(t))return t.endsWith("_mutations")?Object.assign(Object.assign({},s),{mutate:e=>("add"!==e.type&&"put"!==e.type||(e.trans.mutationsAdded=!0),s.mutate(e))}):"$logins"===t?Object.assign(Object.assign({},s),{mutate:e=>s.mutate(e).then(t=>(e.trans.mutationsAdded=!0,t)).catch(e=>Promise.reject(e))}):s;const{schema:i}=s,l=o.get(t);return l?function(e){const t="$lock"+ ++uo;return Object.assign(Object.assign({},e),{count:ho(e.count,t),get:ho(e.get,t),getMany:ho(e.getMany,t),openCursor:ho(e.openCursor,t),query:ho(e.query,t),mutate:fo(e.mutate,t)})}(Object.assign(Object.assign({},s),{mutate:e=>{var r,o,l;const a=e.trans;return a.txid?a.disableChangeTracking?s.mutate(e):(null===(o=null===(r=n.cloud.schema)||void 0===r?void 0:r[t])||void 0===o?void 0:o.markedForSync)&&(null===(l=a.currentUser)||void 0===l?void 0:l.isLoggedIn)?"deleteRange"===e.type?s.query({query:{range:e.range,index:i.primaryKey},trans:e.trans,values:!1}).then(t=>c({type:"delete",keys:t.result,trans:e.trans,criteria:{index:null,range:e.range}})):c(e):s.mutate(e):s.mutate(e)}})):s;function c(r){var o,c;const a=r.trans,d=null===(c=null===(o=n.cloud.options)||void 0===o?void 0:o.unsyncedProperties)||void 0===c?void 0:c[t],{txid:u,currentUser:{userId:h}}=a,{type:f}=r,p=++a.opCount;function g(e){if(!d)return e;let t=e;for(const n of Object.keys(e))d.some(e=>n===e||n.startsWith(e+"."))&&(t===e&&(t=Object.assign({},e)),delete t[n]);return t}return s.mutate(r).then(t=>{var n;const{numFailures:s,failures:o}=t;let c="delete"===f?r.keys:t.results,y="values"in r?r.values:[],m="changeSpec"in r?r.changeSpec:void 0,v="updates"in r?r.updates:void 0,b=!(!v||!("upsert"in r))&&r.upsert;if(s&&(c=c.filter((e,t)=>!o[t]),y=y.filter((e,t)=>!o[t])),d){if(y=y.map(e=>{const t=Object.assign({},e);for(const e of d)delete t[e];return t}),m&&(m=g(m),0===Object.keys(m).length))return t;if(v){let t=v.changeSpecs.map(g),n={keys:[],changeSpecs:[]};const r=new e.RangeSet;let s=!1;if(!b){for(let e=0,i=t.length;e<i;++e)Object.keys(t[e]).length>0?(n.keys.push(v.keys[e]),n.changeSpecs.push(t[e]),r.addKey(v.keys[e])):s=!0;if(v=n,s){let e=[],t=[];for(let n=0,s=c.length;n<s;++n)r.hasKey(c[n])&&(e.push(c[n]),t.push(y[n]));c=e,y=t}}}}const w=Date.now();let _="criteria"in r&&r.criteria?Object.assign(Object.assign({},r.criteria),{index:r.criteria.index===i.primaryKey.keyPath?null:r.criteria.index}):void 0;if(d&&(null==_?void 0:_.index)){const e=null===(n=i.indexes.find(e=>e.name===_.index))||void 0===n?void 0:n.keyPath;(e?"string"==typeof e?[e]:e:[]).some(e=>null==d?void 0:d.includes(e))&&(_=void 0)}const k="delete"===r.type?{type:"delete",ts:w,opNo:p,keys:c,criteria:_,txid:u,userId:h}:"add"===r.type?{type:"insert",ts:w,opNo:p,keys:c,txid:u,userId:h,values:y}:b&&v?{type:"upsert",ts:w,opNo:p,keys:c,values:y,changeSpecs:v.changeSpecs.filter((e,t)=>!o[t]),txid:u,userId:h}:_&&m?{type:"modify",ts:w,opNo:p,keys:c,criteria:_,changeSpec:m,txid:u,userId:h}:m?{type:"update",ts:w,opNo:p,keys:c,changeSpecs:c.map(()=>m),txid:u,userId:h}:v?{type:"update",ts:w,opNo:p,keys:v.keys,changeSpecs:v.changeSpecs,txid:u,userId:h}:{type:"upsert",ts:w,opNo:p,keys:c,values:y,txid:u,userId:h};return"isAdditionalChunk"in r&&r.isAdditionalChunk&&(k.isAdditionalChunk=!0),c.length>0||_?l.mutate({type:"add",trans:a,values:[k]}).then(()=>(a.mutationsAdded=!0,t)):t})}}})}}}function mo(e,t){return function(n,r){var s;const i=Object.assign(Object.assign({},Ui),n);Object.keys(Ui).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=Ui[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(Ui[e])}`);for(let t=1;t<s.length;++t){const n=s[t];o.has(n.replace(/([&*]|\+\+)/g,""))||(i[e]+=`,${n}`)}});const o=t.cloud.schema||(t.cloud.schema={}),l=new Set;Object.keys(i).forEach(e=>{var t;const n=null===(t=i[e])||void 0===t?void 0:t.trim(),r=o[e]||(o[e]={});null!=n?(/^\@/.test(n)&&(i[e]=i[e].substr(1),r.generatedGlobalId=!0,r.idPrefix=function(e,t){let n=e[0].toLocaleLowerCase();for(let t=1,r=e.length;t<r&&n.length<3;++t)(io.test(e[t])||oo(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=so(n,e),++e;if(e<8)n=r;else{let e=n.charCodeAt(2)+1&127;n=n.substr(0,2)+String.fromCharCode(e)}}return n}(e,l),l.add(r.idPrefix)),/^\$/.test(e)||(i[`$${e}_mutations`]="++rev",r.markedForSync=!0),r.deleted&&(r.deleted=!1)):(r.deleted=!0,r.markedForSync=!1,i[`$${e}_mutations`]=null)});const c=e.call(this,i,r);for(const[e,t]of Object.entries(r))if(null===(s=t.yProps)||void 0===s?void 0:s.length){const n=o[e];n&&(n.yProps=t.yProps.map(e=>e.prop))}return c}}function vo(e,t,n){return"undefined"!=typeof navigator&&navigator.locks?navigator.locks.request(e.name+"|"+t,n):n()}const bo=new t.BehaviorSubject(!0),wo=new t.BehaviorSubject(!0);bo.pipe(n.switchMap(e=>e?t.of(!0):t.of(!1).pipe(n.delay(2e4))),n.distinctUntilChanged()).subscribe(wo);const _o="undefined"!=typeof document?t.fromEvent(document,"visibilitychange"):t.of({}),ko=_o.pipe(n.filter(()=>"hidden"===document.visibilityState)),So=_o.pipe(n.filter(()=>"visible"===document.visibilityState)),xo="undefined"!=typeof window?t.merge(So,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),ko,xo).pipe(n.map(()=>"visible"===document.visibilityState),n.tap(e=>{bo.value!==e&&bo.next(e)}),n.switchMap(e=>e?t.of(0).pipe(n.delay(16e4),n.tap(()=>bo.next(!1))):t.of(0))).subscribe(()=>{});class Eo extends Error{constructor(){super(...arguments),this.name="TokenExpiredError"}}const Co=new WeakMap,Io=3e4;class Oo extends Yt{constructor(e){super(),this.doc=e,this.clientID=e.clientID,this.states=new Map,this.meta=new Map,this._checkInterval=setInterval(()=>{const e=tn();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&&Io<=e-n.lastUpdated&&this.states.has(r)&&t.push(r)}),t.length>0&&Ao(this,t,"timeout")},M(3e3)),e.on("destroy",()=>{this.destroy()}),this.setLocalState({})}destroy(){this.emit("destroy",[this]),this.setLocalState(null),super.destroy(),clearInterval(this._checkInterval)}getLocalState(){return this.states.get(this.clientID)||null}setLocalState(e){const t=this.clientID,n=this.meta.get(t),r=void 0===n?0:n.clock+1,s=this.states.get(t);null===e?this.states.delete(t):this.states.set(t,e),this.meta.set(t,{clock:r,lastUpdated:tn()});const i=[],o=[],l=[],c=[];null===e?c.push(t):null==s?null!=e&&i.push(t):(o.push(t),mn(s,e)||l.push(t)),(i.length>0||l.length>0||c.length>0)&&this.emit("change",[{added:i,updated:l,removed:c},"local"]),this.emit("update",[{added:i,updated:o,removed:c},"local"])}setLocalStateField(e,t){const n=this.getLocalState();null!==n&&this.setLocalState({...n,[e]:t})}getStates(){return this.states}}const Ao=(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:tn()})}r.push(s)}}r.length>0&&(e.emit("change",[{added:[],updated:[],removed:r},n]),e.emit("update",[{added:[],updated:[],removed:r},n]))},Do=new WeakMap;function To(e){let n=Do.get(e);return n||(n=new t.Subject,Do.set(e,n)),n}class Uo extends t.Observable{constructor(e,t,n,r,s,i,o,l){super(c=>new Po(e,t,n,r,s,l,c,i,o))}}let jo=0;class Po extends t.Subscription{constructor(e,t,n,r,s,i,o,l,c){super(()=>this.teardown()),this.id=++jo,this.subscriptions=new Set,this.reconnecting=!1,this.db=e,this.databaseUrl=e.cloud.options.databaseUrl,this.rev=t,this.yrev=n,this.realmSetHash=r,this.clientIdentity=s,this.user=i,this.subscriber=o,this.lastUserActivity=new Date,this.messageProducer=l,this.webSocketStatus=c,this.connect()}teardown(){this.disconnect()}disconnect(){if(this.webSocketStatus.next("disconnected"),this.pinger&&(clearInterval(this.pinger),this.pinger=null),this.ws)try{this.ws.close()}catch(e){}this.ws=null;for(const e of this.subscriptions)e.unsubscribe();this.subscriptions.clear()}reconnect(){if(!this.reconnecting){this.reconnecting=!0;try{this.disconnect()}catch(e){}this.connect().catch(()=>{}).then(()=>this.reconnecting=!1)}}connect(){return r(this,void 0,void 0,function*(){if(this.lastServerActivity=new Date,this.pauseUntil&&this.pauseUntil>new Date)return;if(this.ws)throw new Error("Called connect() when a connection is already open");if(!this.databaseUrl)throw new Error("Cannot connect without a database URL");if(this.closed)return;const n=this.user.accessTokenExpiration;if(n&&n<new Date)return void this.subscriber.error(new Eo);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?Dt.parse(e.data):function(e){const t=new Te(e),n=$e(t);if("outdated-server-rev"===n)return{type:n};if("y-complete-sync-done"===n)return{type:n,yServerRev:$e(t)};const r=$e(t),s=$e(t);switch(n){case"u-ack":case"u-reject":return{type:n,table:r,prop:s,i:Number(Be(t))};default:{const e=We(t);switch(n){case"in-sync":case"doc-close":return{type:n,table:r,prop:s,k:e};case"aware":return{type:n,table:r,prop:s,k:e,u:Pe(t)};case"doc-open":return{type:n,table:r,prop:s,k:e,serverRev:We(t),sv:We(t)};case"sv":return{type:n,table:r,prop:s,k:e,sv:Pe(t)};case"u-c":return{type:n,table:r,prop:s,k:e,u:Pe(t),i:Number(Be(t))};case"u-s":return{type:n,table:r,prop:s,k:e,u:Pe(t),r:t.pos<t.arr.length&&$e(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=Si.getDocCache(this.db.dx).find(t.table,t.k,t.prop);if(e){const n=(e=>Co.get(e))(e);n&&((e,t,n)=>{const r=Ue(t),s=tn(),i=[],o=[],l=[],c=[],a=Re(r);for(let t=0;t<a;t++){const t=Re(r);let n=Re(r);const a=JSON.parse($e(r)),d=e.meta.get(t),u=e.states.get(t),h=void 0===d?0:d.clock;(h<n||h===n&&null===a&&e.states.has(t))&&(null===a?t===e.clientID&&null!=e.getLocalState()?n++:e.states.delete(t):e.states.set(t,a),e.meta.set(t,{clock:n,lastUpdated:s}),void 0===d&&null!==a?i.push(t):void 0!==d&&null===a?c.push(t):null!==a&&(mn(a,u)||l.push(t),o.push(t)))}(i.length>0||l.length>0||c.length>0)&&e.emit("change",[{added:i,updated:l,removed:c},n]),(i.length>0||o.length>0||c.length>0)&&e.emit("update",[{added:i,updated:o,removed:c},n])})(n,t.u,"server")}}else if("pong"===t.type);else if("doc-open"===t.type){const e=Si.getDocCache(this.db.dx).find(t.table,t.k,t.prop);e&&To(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?xi([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=ui(this.db,t.table,t.prop);if(e){const t=r[e.name];t&&(yield e.update(Vt,{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(Dt.stringify(e))):null===(n=this.ws)||void 0===n||n.send(function(e){const t=new se;switch(fe(t,e.type),"table"in e&&fe(t,e.table),"prop"in e&&fe(t,e.prop),e.type){case"u-ack":case"u-reject":me(t,BigInt(e.i));break;case"outdated-server-rev":break;case"y-complete-sync-done":fe(t,e.yServerRev);break;default:switch(be(t,e.k),e.type){case"aware":ge(t,e.u);break;case"doc-open":be(t,e.serverRev),be(t,e.sv);break;case"doc-close":break;case"sv":ge(t,e.sv);break;case"u-c":ge(t,e.u),me(t,BigInt(e.i));break;case"u-s":ge(t,e.u),fe(t,e.r||"")}}return oe(t)}(e)))})),this.user.isLoggedIn&&!go(this.db)&&this.subscriptions.add(function(n){const s=C(n.tables.filter(e=>{var t,r;return(null===(r=null===(t=n.cloud.schema)||void 0===t?void 0:t[e.name])||void 0===r?void 0:r.markedForSync)&&e.schema.yProps}).map(e=>e.schema.yProps.map(t=>({table:e.name,ydocProp:t.prop,updatesTable:t.updatesTable}))));return t.merge(...s.map(({table:s,ydocProp:i,updatesTable:o})=>{const l=n.table(o);return t.from(l.get(Vt)).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(l,o)).filter(e=>e.f&&1&e.f).map(e=>({type:"u-c",table:s,prop:i,k:e.k,u:e.u,i:e.i}))}))).pipe(t.tap(e=>{e.length>0&&(o=e.at(-1).i+1)}))}))})).pipe(t.mergeMap(e=>e))}(this.db).subscribe(this.db.messageProducer))}catch(e){this.pauseUntil=new Date(Date.now()+6e4)}})}}class Lo extends Error{constructor(e){super("expired"===e?"License expired":"deactivated"===e?"User deactivated":"Invalid license"),this.name="InvalidLicenseError",e&&(this.license=e)}}function Ro(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 Mo(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 Ii(e,e.cloud.options,e.cloud.schema,{justCheckIfNeeded:!0}))})}const $o=new WeakMap;function No(e,t,n,s){const i=$o.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 No(e,t,n,s)})}}const o=function(){return r(this,void 0,void 0,function*(){try{yield Rt(e),yield vo(e,Ci,()=>Ii(e,t,n,s)),$o.delete(e)}catch(t){throw $o.delete(e),t}})}();return $o.set(e,{promise:o,pull:"push"!==(null==s?void 0:s.purpose)}),o}function Bo(e,t,n){let r=null,s={cancelled:!1},i=0,o=0;function l(r=1){setTimeout(()=>{const u=c?"pull":"push";o=Date.now(),No(e,t,n,{cancelToken:s,retryImmediatelyOnFetchError:!0,purpose:u}).then(()=>{if(s.cancelled)h();else if(c||a)return c=!1,a=!1,l();d=!1,i=0,o=0}).catch(e=>{if(s.cancelled)h(),d=!1,i=0,o=0;else if(r<5){const e=1e3*[0,20,40,300,900][r];i=Date.now()+e,o=0,setTimeout(()=>l(r+1),e)}else d=!1,i=0,o=0})},0)}let c=!1,a=!1,d=!1;const u=e=>{s.cancelled||("pull"===e&&(c=!0),"push"===e&&(a=!0),d?i||o>0&&Date.now():(d=!0,l()))},h=()=>{s.cancelled=!0,r&&r.unsubscribe()};return{start:()=>{r=e.localSyncEvent.subscribe(({purpose:e})=>{u(e||"pull")})},stop:h}}function Fo(e,t){if(e&&t&&t.unsyncedTables)for(const n of t.unsyncedTables)e[n]&&(e[n].markedForSync=!1)}var Wo,Ho,Vo,zo,Ko,Jo,qo,Go,Yo,Qo,Xo,Zo={},el=[],tl=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,nl=Array.isArray;function rl(e,t){for(var n in t)e[n]=t[n];return e}function sl(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function il(e,t,n){var r,s,i,o={};for(i in t)"key"==i?r=t[i]:"ref"==i?s=t[i]:o[i]=t[i];if(arguments.length>2&&(o.children=arguments.length>3?Wo.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 ol(e,o,r,s,null)}function ol(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?++Vo:s,__i:-1,__u:0};return null==s&&null!=Ho.vnode&&Ho.vnode(i),i}function ll(e){return e.children}function cl(e,t){this.props=e,this.context=t}function al(e,t){if(null==t)return e.__?al(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?al(e):null}function dl(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 dl(e)}}function ul(e){(!e.__d&&(e.__d=!0)&&zo.push(e)&&!hl.__r++||Ko!=Ho.debounceRendering)&&((Ko=Ho.debounceRendering)||Jo)(hl)}function hl(){for(var e,t,n,r,s,i,o,l=1;zo.length;)zo.length>l&&zo.sort(qo),e=zo.shift(),l=zo.length,e.__d&&(n=void 0,r=void 0,s=(r=(t=e).__v).__e,i=[],o=[],t.__P&&((n=rl({},r)).__v=r.__v+1,Ho.vnode&&Ho.vnode(n),bl(t.__P,n,r,t.__n,t.__P.namespaceURI,32&r.__u?[s]:null,i,null==s?al(r):s,!!(32&r.__u),o),n.__v=r.__v,n.__.__k[n.__i]=n,_l(i,n,o),r.__e=r.__=null,n.__e!=s&&dl(n)));hl.__r=0}function fl(e,t,n,r,s,i,o,l,c,a,d){var u,h,f,p,g,y,m,v=r&&r.__k||el,b=t.length;for(c=function(e,t,n,r,s){var i,o,l,c,a,d=n.length,u=d,h=0;for(e.__k=new Array(s),i=0;i<s;i++)null!=(o=t[i])&&"boolean"!=typeof o&&"function"!=typeof o?("string"==typeof o||"number"==typeof o||"bigint"==typeof o||o.constructor==String?o=e.__k[i]=ol(null,o,null,null,null):nl(o)?o=e.__k[i]=ol(ll,{children:o},null,null,null):null==o.constructor&&o.__b>0?o=e.__k[i]=ol(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):e.__k[i]=o,c=i+h,o.__=e,o.__b=e.__b+1,-1!=(a=o.__i=gl(o,n,c,u))&&(u--,(l=n[a])&&(l.__u|=2)),null==l||null==l.__v?(-1==a&&(s>d?h--:s<d&&h++),"function"!=typeof o.type&&(o.__u|=4)):a!=c&&(a==c-1?h--:a==c+1?h++:(a>c?h--:h++,o.__u|=4))):e.__k[i]=null;if(u)for(i=0;i<d;i++)null!=(l=n[i])&&!(2&l.__u)&&(l.__e==r&&(r=al(l)),El(l,l));return r}(n,t,v,c,b),u=0;u<b;u++)null!=(f=n.__k[u])&&(h=-1==f.__i?Zo:v[f.__i]||Zo,f.__i=u,y=bl(e,f,h,s,i,o,l,c,a,d),p=f.__e,f.ref&&h.ref!=f.ref&&(h.ref&&xl(h.ref,null,f),d.push(f.ref,f.__c||p,f)),null==g&&null!=p&&(g=p),(m=!!(4&f.__u))||h.__k===f.__k?c=pl(f,c,e,m):"function"==typeof f.type&&void 0!==y?c=y:p&&(c=p.nextSibling),f.__u&=-7);return n.__e=g,c}function pl(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=pl(s[i],t,n,r));return t}e.__e!=t&&(r&&(t&&e.type&&!t.parentNode&&(t=al(e)),n.insertBefore(e.__e,t||null)),t=e.__e);do{t=t&&t.nextSibling}while(null!=t&&8==t.nodeType);return t}function gl(e,t,n,r){var s,i,o,l=e.key,c=e.type,a=t[n],d=null!=a&&!(2&a.__u);if(null===a&&null==l||d&&l==a.key&&c==a.type)return n;if(r>(d?1:0))for(s=n-1,i=n+1;s>=0||i<t.length;)if(null!=(a=t[o=s>=0?s--:i++])&&!(2&a.__u)&&l==a.key&&c==a.type)return o;return-1}function yl(e,t,n){"-"==t[0]?e.setProperty(t,null==n?"":n):e[t]=null==n?"":"number"!=typeof n||tl.test(t)?n:n+"px"}function ml(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||yl(e.style,t,"");if(n)for(t in n)r&&n[t]==r[t]||yl(e.style,t,n[t])}else if("o"==t[0]&&"n"==t[1])i=t!=(t=t.replace(Go,"$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=Yo,e.addEventListener(t,i?Xo:Qo,i)):e.removeEventListener(t,i?Xo:Qo,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 vl(e){return function(t){if(this.l){var n=this.l[t.type+e];if(null==t.t)t.t=Yo++;else if(t.t<n.u)return;return n(Ho.event?Ho.event(t):t)}}}function bl(e,t,n,r,s,i,o,l,c,a){var d,u,h,f,p,g,y,m,v,b,w,_,k,S,x,E,C,I=t.type;if(null!=t.constructor)return null;128&n.__u&&(c=!!(32&n.__u),i=[l=t.__e=n.__e]),(d=Ho.__b)&&d(t);e:if("function"==typeof I)try{if(m=t.props,v="prototype"in I&&I.prototype.render,b=(d=I.contextType)&&r[d.__c],w=d?b?b.props.value:d.__:r,n.__c?y=(u=t.__c=n.__c).__=u.__E:(v?t.__c=u=new I(m,w):(t.__c=u=new cl(m,w),u.constructor=I,u.render=Cl),b&&b.sub(u),u.state||(u.state={}),u.__n=r,h=u.__d=!0,u.__h=[],u._sb=[]),v&&null==u.__s&&(u.__s=u.state),v&&null!=I.getDerivedStateFromProps&&(u.__s==u.state&&(u.__s=rl({},u.__s)),rl(u.__s,I.getDerivedStateFromProps(m,u.__s))),f=u.props,p=u.state,u.__v=t,h)v&&null==I.getDerivedStateFromProps&&null!=u.componentWillMount&&u.componentWillMount(),v&&null!=u.componentDidMount&&u.__h.push(u.componentDidMount);else{if(v&&null==I.getDerivedStateFromProps&&m!==f&&null!=u.componentWillReceiveProps&&u.componentWillReceiveProps(m,w),t.__v==n.__v||!u.__e&&null!=u.shouldComponentUpdate&&!1===u.shouldComponentUpdate(m,u.__s,w)){for(t.__v!=n.__v&&(u.props=m,u.state=u.__s,u.__d=!1),t.__e=n.__e,t.__k=n.__k,t.__k.some(function(e){e&&(e.__=t)}),_=0;_<u._sb.length;_++)u.__h.push(u._sb[_]);u._sb=[],u.__h.length&&o.push(u);break e}null!=u.componentWillUpdate&&u.componentWillUpdate(m,u.__s,w),v&&null!=u.componentDidUpdate&&u.__h.push(function(){u.componentDidUpdate(f,p,g)})}if(u.context=w,u.props=m,u.__P=e,u.__e=!1,k=Ho.__r,S=0,v){for(u.state=u.__s,u.__d=!1,k&&k(t),d=u.render(u.props,u.state,u.context),x=0;x<u._sb.length;x++)u.__h.push(u._sb[x]);u._sb=[]}else do{u.__d=!1,k&&k(t),d=u.render(u.props,u.state,u.context),u.state=u.__s}while(u.__d&&++S<25);u.state=u.__s,null!=u.getChildContext&&(r=rl(rl({},r),u.getChildContext())),v&&!h&&null!=u.getSnapshotBeforeUpdate&&(g=u.getSnapshotBeforeUpdate(f,p)),E=d,null!=d&&d.type===ll&&null==d.key&&(E=kl(d.props.children)),l=fl(e,nl(E)?E:[E],t,n,r,s,i,o,l,c,a),u.base=t.__e,t.__u&=-161,u.__h.length&&o.push(u),y&&(u.__E=u.__=null)}catch(e){if(t.__v=null,c||null!=i)if(e.then){for(t.__u|=c?160:128;l&&8==l.nodeType&&l.nextSibling;)l=l.nextSibling;i[i.indexOf(l)]=null,t.__e=l}else{for(C=i.length;C--;)sl(i[C]);wl(t)}else t.__e=n.__e,t.__k=n.__k,e.then||wl(t);Ho.__e(e,t,n)}else null==i&&t.__v==n.__v?(t.__k=n.__k,t.__e=n.__e):l=t.__e=Sl(n.__e,t,n,r,s,i,o,c,a);return(d=Ho.diffed)&&d(t),128&t.__u?void 0:l}function wl(e){e&&e.__c&&(e.__c.__e=!0),e&&e.__k&&e.__k.forEach(wl)}function _l(e,t,n){for(var r=0;r<n.length;r++)xl(n[r],n[++r],n[++r]);Ho.__c&&Ho.__c(t,e),e.some(function(t){try{e=t.__h,t.__h=[],e.some(function(e){e.call(t)})}catch(e){Ho.__e(e,t.__v)}})}function kl(e){return"object"!=typeof e||null==e||e.__b&&e.__b>0?e:nl(e)?e.map(kl):rl({},e)}function Sl(e,t,n,r,s,i,o,l,c){var a,d,u,h,f,p,g,y=n.props||Zo,m=t.props,v=t.type;if("svg"==v?s="http://www.w3.org/2000/svg":"math"==v?s="http://www.w3.org/1998/Math/MathML":s||(s="http://www.w3.org/1999/xhtml"),null!=i)for(a=0;a<i.length;a++)if((f=i[a])&&"setAttribute"in f==!!v&&(v?f.localName==v:3==f.nodeType)){e=f,i[a]=null;break}if(null==e){if(null==v)return document.createTextNode(m);e=document.createElementNS(s,v,m.is&&m),l&&(Ho.__m&&Ho.__m(t,i),l=!1),i=null}if(null==v)y===m||l&&e.data==m||(e.data=m);else{if(i=i&&Wo.call(e.childNodes),!l&&null!=i)for(y={},a=0;a<e.attributes.length;a++)y[(f=e.attributes[a]).name]=f.value;for(a in y)if(f=y[a],"children"==a);else if("dangerouslySetInnerHTML"==a)u=f;else if(!(a in m)){if("value"==a&&"defaultValue"in m||"checked"==a&&"defaultChecked"in m)continue;ml(e,a,null,f,s)}for(a in m)f=m[a],"children"==a?h=f:"dangerouslySetInnerHTML"==a?d=f:"value"==a?p=f:"checked"==a?g=f:l&&"function"!=typeof f||y[a]===f||ml(e,a,f,y[a],s);if(d)l||u&&(d.__html==u.__html||d.__html==e.innerHTML)||(e.innerHTML=d.__html),t.__k=[];else if(u&&(e.innerHTML=""),fl("template"==t.type?e.content:e,nl(h)?h:[h],t,n,r,"foreignObject"==v?"http://www.w3.org/1999/xhtml":s,i,o,i?i[0]:n.__k&&al(n,0),l,c),null!=i)for(a=i.length;a--;)sl(i[a]);l||(a="value","progress"==v&&null==p?e.removeAttribute("value"):null!=p&&(p!==e[a]||"progress"==v&&!p||"option"==v&&p!=y[a])&&ml(e,a,p,y[a],s),a="checked",null!=g&&g!=e[a]&&ml(e,a,g,y[a],s))}return e}function xl(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){Ho.__e(e,n)}}function El(e,t,n){var r,s;if(Ho.unmount&&Ho.unmount(e),(r=e.ref)&&(r.current&&r.current!=e.__e||xl(r,null,t)),null!=(r=e.__c)){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(e){Ho.__e(e,t)}r.base=r.__P=null}if(r=e.__k)for(s=0;s<r.length;s++)r[s]&&El(r[s],t,n||"function"!=typeof e.type);n||sl(e.__e),e.__c=e.__=e.__e=void 0}function Cl(e,t,n){return this.constructor(e,n)}function Il(e,t,n){var r,s,i;t==document&&(t=document.documentElement),Ho.__&&Ho.__(e,t),r=!1?null:t.__k,s=[],i=[],bl(t,e=t.__k=il(ll,null,[e]),r||Zo,Zo,t.namespaceURI,r?null:t.firstChild?Wo.call(t.childNodes):null,s,r?r.__e:t.firstChild,false,i),_l(s,e,i)}Wo=el.slice,Ho={__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}},Vo=0,cl.prototype.setState=function(e,t){var n;n=null!=this.__s&&this.__s!=this.state?this.__s:this.__s=rl({},this.state),"function"==typeof e&&(e=e(rl({},n),this.props)),e&&rl(n,e),null!=e&&this.__v&&(t&&this._sb.push(t),ul(this))},cl.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),ul(this))},cl.prototype.render=ll,zo=[],Jo="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,qo=function(e,t){return e.__v.__b-t.__v.__b},hl.__r=0,Go=/(PointerCapture)$|Capture$/i,Yo=0,Qo=vl(!1),Xo=vl(!0);const Ol={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},ProviderButtonText:{flex:1,textAlign:"left"},ProviderGoogle:{backgroundColor:"#ffffff",border:"1px solid #dadce0",color:"#3c4043"},ProviderGitHub:{backgroundColor:"#24292e",border:"1px solid #24292e",color:"#ffffff"},ProviderMicrosoft:{backgroundColor:"#ffffff",border:"1px solid #8c8c8c",color:"#5e5e5e"},ProviderApple:{backgroundColor:"#000000",border:"1px solid #000000",color:"#ffffff"},ProviderCustom:{backgroundColor:"#4f46e5",border:"1px solid #4f46e5",color:"#ffffff"},Divider:{display:"flex",alignItems:"center",margin:"20px 0",color:"#6b7280",fontSize:"13px"},DividerLine:{flex:1,height:"1px",backgroundColor:"#e5e7eb"},DividerText:{padding:"0 12px",color:"#9ca3af"},OtpButton:{display:"flex",alignItems:"center",justifyContent:"center",width:"100%",padding:"12px 16px",border:"1px solid #d1d5db",borderRadius:"6px",backgroundColor:"#f9fafb",cursor:"pointer",fontSize:"14px",fontWeight:"500",color:"#374151",transition:"all 0.2s ease",gap:"12px"},CancelButtonRow:{display:"flex",justifyContent:"center",marginTop:"16px"}};function Al({children:e,className:t}){return il("div",{className:`dexie-dialog ${t||""}`},il("div",{style:Ol.Darken}),il("div",{style:Ol.DialogOuter},il("div",{style:Ol.DialogInner},e)))}var Dl,Tl,Ul,jl,Pl=0,Ll=[],Rl=Ho,Ml=Rl.__b,$l=Rl.__r,Nl=Rl.diffed,Bl=Rl.__c,Fl=Rl.unmount,Wl=Rl.__;function Hl(e,t){Rl.__h&&Rl.__h(Tl,e,Pl||t),Pl=0;var n=Tl.__H||(Tl.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({}),n.__[e]}function Vl(e){return Pl=1,function(e,t){var n=Hl(Dl++,2);if(n.t=e,!n.__c&&(n.__=[Xl(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=Tl,!Tl.__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};Tl.__f=!0;var s=Tl.shouldComponentUpdate,i=Tl.componentWillUpdate;Tl.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)},Tl.shouldComponentUpdate=r}return n.__N||n.__}(Xl,e)}function zl(e){return Pl=5,function(e,t){var n=Hl(Dl++,7);return Ql(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}(function(){return{current:e}},[])}function Kl(){for(var e;e=Ll.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(Gl),e.__H.__h.forEach(Yl),e.__H.__h=[]}catch(t){e.__H.__h=[],Rl.__e(t,e.__v)}}Rl.__b=function(e){Tl=null,Ml&&Ml(e)},Rl.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),Wl&&Wl(e,t)},Rl.__r=function(e){$l&&$l(e),Dl=0;var t=(Tl=e.__c).__H;t&&(Ul===Tl?(t.__h=[],Tl.__h=[],t.__.forEach(function(e){e.__N&&(e.__=e.__N),e.u=e.__N=void 0})):(t.__h.forEach(Gl),t.__h.forEach(Yl),t.__h=[],Dl=0)),Ul=Tl},Rl.diffed=function(e){Nl&&Nl(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(1!==Ll.push(t)&&jl===Rl.requestAnimationFrame||((jl=Rl.requestAnimationFrame)||ql)(Kl)),t.__H.__.forEach(function(e){e.u&&(e.__H=e.u),e.u=void 0})),Ul=Tl=null},Rl.__c=function(e,t){t.some(function(e){try{e.__h.forEach(Gl),e.__h=e.__h.filter(function(e){return!e.__||Yl(e)})}catch(n){t.some(function(e){e.__h&&(e.__h=[])}),t=[],Rl.__e(n,e.__v)}}),Bl&&Bl(e,t)},Rl.unmount=function(e){Fl&&Fl(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.forEach(function(e){try{Gl(e)}catch(e){t=e}}),n.__H=void 0,t&&Rl.__e(t,n.__v))};var Jl="function"==typeof requestAnimationFrame;function ql(e){var t,n=function(){clearTimeout(r),Jl&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,35);Jl&&(t=requestAnimationFrame(n))}function Gl(e){var t=Tl,n=e.__c;"function"==typeof n&&(e.__c=void 0,n()),Tl=t}function Yl(e){var t=Tl;e.__c=e.__(),Tl=t}function Ql(e,t){return!e||e.length!==t.length||t.some(function(t,n){return t!==e[n]})}function Xl(e,t){return"function"==typeof t?t(e):t}function Zl({message:e,messageCode:t,messageParams:n}){return e.replace(/\{\w+\}/gi,e=>n[e.substring(1,e.length-1)])}function ec({title:e,type:t,alerts:n,fields:r,submitLabel:s,cancelLabel:i,onCancel:o,onSubmit:l}){const[c,a]=Vl({}),d=zl(null);return function(e,t){var n=Hl(Dl++,4);!Rl.__s&&Ql(n.__H,t)&&(n.__=e,n.u=t,Tl.__h.push(n))}(()=>{var e;return null===(e=d.current)||void 0===e?void 0:e.focus()},[]),il(Al,{className:"dxc-login-dlg"},il(ll,null,il("h3",{style:Ol.WindowHeader},e),n.map(e=>il("p",{style:Ol.Alert[e.type]},Zl(e))),il("form",{onSubmit:e=>{e.preventDefault(),l(c)}},Object.entries(r).map(([e,{type:t,label:n,placeholder:r}],s)=>il("label",{style:Ol.Label,key:s},n?`${n}: `:"",il("input",{ref:0===s?d:void 0,type:t,name:e,autoComplete:"on",style:Ol.Input,autoFocus:!0,placeholder:r,value:c[e]||"",onInput:n=>{var r;const s=function(e,t){switch(e){case"email":return t.toLowerCase();case"otp":return t.toUpperCase();default:return t}}(t,null===(r=n.target)||void 0===r?void 0:r.value);let i=Object.assign(Object.assign({},c),{[e]:s});a(i),"otp"===t&&8===(null==s?void 0:s.trim().length)&&l(i)}}))))),il("div",{style:Ol.ButtonsDiv},il(ll,null,il("button",{type:"submit",style:Ol.PrimaryButton,onClick:()=>l(c)},s),i&&il("button",{style:Ol.Button,onClick:o},i))))}const tc={google:'<svg viewBox="0 0 24 24" width="20" height="20"><path fill="#4285F4" d="M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z"/><path fill="#34A853" d="M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z"/><path fill="#FBBC05" d="M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z"/><path fill="#EA4335" d="M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z"/></svg>',github:'<svg viewBox="0 0 24 24" width="20" height="20" fill="currentColor"><path d="M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0024 12c0-6.63-5.37-12-12-12z"/></svg>',microsoft:'<svg viewBox="0 0 24 24" width="20" height="20"><rect fill="#F25022" x="1" y="1" width="10" height="10"/><rect fill="#00A4EF" x="1" y="13" width="10" height="10"/><rect fill="#7FBA00" x="13" y="1" width="10" height="10"/><rect fill="#FFB900" x="13" y="13" width="10" height="10"/></svg>',apple:'<svg viewBox="0 0 24 24" width="20" height="20" fill="currentColor"><path d="M18.71 19.5c-.83 1.24-1.71 2.45-3.05 2.47-1.34.03-1.77-.79-3.29-.79-1.53 0-2 .77-3.27.82-1.31.05-2.3-1.32-3.14-2.53C4.25 17 2.94 12.45 4.7 9.39c.87-1.52 2.43-2.48 4.12-2.51 1.28-.02 2.5.87 3.29.87.78 0 2.26-1.07 3.81-.91.65.03 2.47.26 3.64 1.98-.09.06-2.17 1.28-2.15 3.81.03 3.02 2.65 4.03 2.68 4.04-.03.07-.42 1.44-1.38 2.83M13 3.5c.73-.83 1.94-1.46 2.94-1.5.13 1.17-.34 2.35-1.04 3.19-.69.85-1.83 1.51-2.95 1.42-.15-1.15.41-2.35 1.05-3.11z"/></svg>'};function nc({provider:e,onClick:t}){const{type:n,name:r,displayName:s,iconUrl:i}=e,o=function(e){const t=Object.assign({},Ol.ProviderButton);switch(e){case"google":return Object.assign(Object.assign({},t),Ol.ProviderGoogle);case"github":return Object.assign(Object.assign({},t),Ol.ProviderGitHub);case"microsoft":return Object.assign(Object.assign({},t),Ol.ProviderMicrosoft);case"apple":return Object.assign(Object.assign({},t),Ol.ProviderApple);default:return Object.assign(Object.assign({},t),Ol.ProviderCustom)}}(n),l=`Continue with ${s}`,c=tc[n]||"";return il("button",{type:"button",style:o,onClick:t,class:`dxc-provider-btn dxc-provider-${n}`,"aria-label":l},i?il("img",{src:i,alt:"",style:Ol.ProviderButtonIcon,"aria-hidden":"true"}):c?il("span",{style:Ol.ProviderButtonIcon,"aria-hidden":"true",dangerouslySetInnerHTML:{__html:c}}):null,il("span",{style:Ol.ProviderButtonText},l))}function rc({onClick:e}){return il("button",{type:"button",style:Ol.OtpButton,onClick:e,class:"dxc-otp-btn","aria-label":"Continue with email"},il("span",{style:Ol.ProviderButtonIcon,"aria-hidden":"true",dangerouslySetInnerHTML:{__html:'<svg viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="2"><rect x="2" y="4" width="20" height="16" rx="2"/><path d="M22 6L12 13 2 6"/></svg>'}}),il("span",{style:Ol.ProviderButtonText},"Continue with email"))}function sc(){return il("div",{style:Ol.Divider},il("div",{style:Ol.DividerLine}),il("span",{style:Ol.DividerText},"or"),il("div",{style:Ol.DividerLine}))}function ic({title:e,alerts:t,providers:n,otpEnabled:r,cancelLabel:s,onSelectProvider:i,onSelectOtp:o,onCancel:l}){return il(Al,{className:"dxc-provider-selection-dlg"},il(ll,null,il("h3",{style:Ol.WindowHeader},e),t.map((e,t)=>il("p",{key:t,style:Ol.Alert[e.type]},Zl(e))),il("div",{class:"dxc-providers"},n.map(e=>il(nc,{key:e.name,provider:e,onClick:()=>i(e.name)}))),r&&n.length>0&&il(ll,null,il(sc,null),il(rc,{onClick:o})),r&&0===n.length&&il(rc,{onClick:o}),s&&il("div",{style:Ol.CancelButtonRow},il("button",{type:"button",style:Ol.Button,onClick:l},s))))}class oc extends cl{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?"provider-selection"===t.type?il(ic,Object.assign({},t)):il(ec,Object.assign({},t)):null}}function lc(e){const t=new WeakMap;return n=>{let r=t.get(n);return r||(r=e(n),t.set(n,r)),r}}const cc=lc(e=>new t.BehaviorSubject(c));function ac(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 dc=lc(t=>ac(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})),{})),uc=lc(t=>ac(cc(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 hc(...e){if(0===e.length)return{};const t=e.reduce((e,t)=>{const n=Object.assign({},e);for(const[e,r]of Object.entries(t))if(e in n&&n[e]){if("*"===n[e])continue;if("*"===r)n[e]="*";else if(Array.isArray(r)&&Array.isArray(n[e])){const t=n,s=t[e];t[e]=[...new Set([...s,...r])]}else if("object"==typeof r&&r&&"object"==typeof n[e]){const t=n[e];for(const[e,n]of Object.entries(r))"*"!==t[e]&&("*"===n?t[e]="*":Array.isArray(t[e])&&Array.isArray(n)&&(t[e]=[...new Set([...t[e],...n])]))}}else n[e]=t[e];return n});return t}const fc=lc(e=>function(e,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}(ac(t.combineLatest([uc(e._novip),dc(e._novip)]).pipe(n.map(([{selfMembers:e,realms:t,userId:n},r])=>({selfMembers:e,realms:t,userId:n,globalRoles:r}))),{selfMembers:[],realms:[],userId:c.userId,globalRoles:{}}),({selfMembers:e,realms:t,userId:n,globalRoles:r})=>{const s=t.map(t=>{const s=e.filter(e=>e.realmId===t.realmId),i=s.map(e=>e.permissions).filter(e=>e),o=C(s.map(e=>e.roles).filter(e=>e)).map(e=>r[e]).filter(e=>e).map(e=>e.permissions);return Object.assign(Object.assign({},t),{permissions:t.owner===n?{manage:"*"}:hc(...i,...o)})}).reduce((e,t)=>Object.assign(Object.assign({},e),{[t.realmId]:t}),{[n]:{realmId:n,owner:n,name:n,permissions:{manage:"*"}}});return s}));class pc{constructor(e,t,n){this.permissions=e||{},this.tableName=t,this.isOwner=n}add(...e){var t;return"*"===this.permissions.manage||(!!(null===(t=this.permissions.manage)||void 0===t?void 0:t.includes(this.tableName))||("*"===this.permissions.add||!!e.every(e=>{var t;return null===(t=this.permissions.add)||void 0===t?void 0:t.includes(e)})))}update(...e){var t,n;if(this.isOwner||"*"===this.permissions.manage)return!0;if(null===(t=this.permissions.manage)||void 0===t?void 0:t.includes(this.tableName))return!0;if("*"===this.permissions.update)return e.every(e=>"owner"!==e);const r=null===(n=this.permissions.update)||void 0===n?void 0:n[this.tableName];return"*"===r?e.every(e=>"owner"!==e):e.every(e=>null==r?void 0:r.some(t=>t===e||"*"===t&&"owner"!==e))}delete(){var e;return!(!this.isOwner&&"*"!==this.permissions.manage)||!!(null===(e=this.permissions.manage)||void 0===e?void 0:e.includes(this.tableName))}}const gc=lc(s=>{const i=cc(s._novip).pipe(n.switchMap(t=>e.liveQuery(()=>s.members.where({email:t.email||""}).toArray()))),o=fc(s._novip),l=uc(s._novip);return ac(t.combineLatest([i,l,o]).pipe(n.map(([e,t,n])=>{const i=(e,t)=>Object.assign(Object.assign({},e),{[t.id]:Object.assign(Object.assign({},t),{realm:n[t.realmId]})}),o=e.reduce(i,{}),l=t.selfMembers.reduce(i,o);return Object.values(l).filter(e=>!e.accepted).map(e=>Object.assign(Object.assign({},e),{accept(){return r(this,void 0,void 0,function*(){yield s.members.update(e.id,{accepted:new Date})})},reject(){return r(this,void 0,void 0,function*(){yield s.members.update(e.id,{rejected:new Date})})}}))})),[])});function yc(n){return s=>{var i;const o=s.doc;if(!o)throw new Error("Internal error: DexieYProvider.createYHandler called without a doc. This is unexpected.");const{parentTable:l}=o.meta||{};if(!(null===(i=n.cloud.schema)||void 0===i?void 0:i[l].markedForSync))return;let c;Object.defineProperty(s,"awareness",{get:()=>c||(c=function(n,s,i){const{parentTable:o,parentId:l,parentProp:c,updatesTable:a}=s.meta,d=new Oo(s),u=To(s);return d.on("update",({added:e,updated:t,removed:r},l)=>{const a=e.concat(t).concat(r),u=n.cloud.currentUser.value;if("server"!==l&&u.isLoggedIn&&!go(n)){const e=((e,t,n=e.states)=>{const r=t.length,s=ie();ae(s,r);for(let i=0;i<r;i++){const r=t[i],o=n.get(r)||null,l=e.meta.get(r).clock;ae(s,r),ae(s,l),fe(s,JSON.stringify(o))}return oe(s)})(d,a);n.messageProducer.next({type:"aware",table:o,prop:c,k:s.meta.parentId,u:e}),i.destroyed&&n.messageProducer.next({type:"doc-close",table:o,prop:c,k:s.meta.parentId})}}),d.on("destroy",()=>{Ao(d,[s.clientID],"provider destroyed")}),(()=>{r(this,void 0,void 0,function*(){if(i.destroyed)return;let s=!1,d=1;const h=t.combineLatest([n.cloud.webSocketStatus,u.pipe(t.startWith(null))]).subscribe(([e])=>{if(i.destroyed)return;s="connected"===e;const t=n.cloud.currentUser.value;"connected"===e&&t.isLoggedIn&&!go(n)&&(++d,f().catch(e=>{}))});function f(){return r(this,void 0,void 0,function*(){const t=d,u=n.table(a),h=n.$syncState,[f,p]=yield n.transaction("r",h,u,()=>r(this,void 0,void 0,function*(){const e=yield u.get(Vt),t=yield h.get("syncState");return[(null==e?void 0:e.receivedUntil)||0,(null==t?void 0:t.yServerRevision)||(null==t?void 0:t.serverRevision)]}));if(i.destroyed||d!==t||!s)return;const g={type:"doc-open",table:o,prop:c,k:l,serverRev:p},y=yield u.where("i").between(f,1/0,!1).filter(t=>0===e.cmp(t.k,l)&&!(1&(t.f||0))).toArray();if(!i.destroyed&&d===t&&s){if(y.length>0){const e=Pr(y.map(e=>e.u)),t=Ur(e);g.sv=t}n.messageProducer.next(g)}})}i.addCleanupHandler(h)})})(),d}(n,o,s),Co.set(o,c),c)})}}const mc={nameSuffix:!0};function vc(s){const i=s.name,o=cc(s),l=[];let a=!1,d=null;s.on("ready",s=>r(this,void 0,void 0,function*(){try{yield function(s){return r(this,void 0,void 0,function*(){var i,c,p,m,v,b,w;u=!1;const k=Pi(s);"undefined"!=typeof window&&"undefined"!=typeof document&&((null===(i=k.cloud.options)||void 0===i?void 0:i.customLoginGui)||l.push(function(e){let t=!1;const n=document.createElement("div");return document.body?(document.body.appendChild(n),Il(il(oc,{db:e.vip}),n)):addEventListener("DOMContentLoaded",()=>{t||(document.body.appendChild(n),Il(il(oc,{db:e.vip}),n))}),{unsubscribe(){try{n.remove()}catch(e){}t=!0},get closed(){return t}}}(s))),k.cloud.isServiceWorkerDB||l.push(function(e){let r=e.cloud.webSocketStatus.value;const s=e.cloud.webSocketStatus.pipe(n.switchMap(e=>{const s=r;r=e;const i=t.of(e);switch(e){case"disconnected":return bo.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"})),cc(e.dx._novip),wo]).pipe(n.map(([t,n,r,s])=>{var i;if((null===(i=r.license)||void 0===i?void 0:i.status)&&"ok"!==r.license.status)return{phase:"offline",status:"offline",license:r.license.status};let{phase:o,error:l,progress:c}=n,a=t;return"error"===o&&(a="error"),"not-started"===t&&("pushing"!==o&&"pulling"!==o||(a="connecting")),"error"!==e.cloud.syncState.value.phase||"pushing"!==n.phase&&"pulling"!==n.phase||(a="connecting"),s||(a="disconnected"),{phase:o,error:l,progress:c,status:Nt?a:"offline",license:"ok"}}))}(k).subscribe(s.cloud.syncState)),l.push(k.syncCompleteEvent.subscribe(f)),k.tables.every(e=>e.core)||function(){throw new e.SchemaError("Version increment needed to allow dexie-cloud change tracking")}();const S="serviceWorker"in navigator?yield navigator.serviceWorker.getRegistrations():[],[x,E]=yield k.transaction("rw",k.$syncState,()=>r(this,void 0,void 0,function*(){var e,t;const{options:n,schema:r}=k.cloud,[s,i,o]=yield Promise.all([k.getOptions(),k.getSchema(),k.getPersistedSyncState()]);if(a){if(!s||JSON.stringify(s)!==JSON.stringify(n)){if(!n)throw new Error("Internal error");const e=Object.assign({},n);delete e.fetchTokens,delete e.awarenessProtocol,yield k.$syncState.put(e,"options")}}else k.cloud.options=s||null;if((null===(e=k.cloud.options)||void 0===e?void 0:e.tryUseServiceWorker)&&"serviceWorker"in navigator&&S.length>0&&!Zi?k.cloud.usingServiceWorker=!0:((null===(t=k.cloud.options)||void 0===t?void 0:t.tryUseServiceWorker)&&k.cloud.isServiceWorkerDB,k.cloud.usingServiceWorker=!1),Fo(r,k.cloud.options),Fo(i,k.cloud.options),r){if(!i||JSON.stringify(i)!==JSON.stringify(r)){const e=i||{};for(const[t,n]of Object.entries(r)){const r=e[t];r?(r.markedForSync=n.markedForSync,n.deleted=r.deleted,r.generatedGlobalId=n.generatedGlobalId):e[t]=Object.assign({},n)}yield k.$syncState.put(e,"schema"),Object.assign(r,e)}}else k.cloud.schema=i||null;return[null==o?void 0:o.initiallySynced,null==o?void 0:o.realms]}));if(x&&k.setInitiallySynced(!0),function(t){var n,r;for(const s of t.tables)if(null===(r=null===(n=t.cloud.schema)||void 0===n?void 0:n[s.name])||void 0===r?void 0:r.markedForSync){if(s.schema.primKey.auto)throw new e.SchemaError(`Table ${s.name} is both autoIncremented and synced. Use db.cloud.configure({unsyncedTables: [${JSON.stringify(s.name)}]}) to blacklist it from sync`);if(!s.schema.primKey.keyPath)throw new e.SchemaError(`Table ${s.name} cannot be both synced and outbound. Use db.cloud.configure({unsyncedTables: [${JSON.stringify(s.name)}]}) to blacklist it from sync`)}}(k),h(),!k.cloud.isServiceWorkerDB){l.push(e.liveQuery(()=>k.getCurrentUser()).subscribe(o)),l.push(e.liveQuery(()=>k.getPersistedSyncState()).subscribe(k.cloud.persistedSyncState)),yield t.firstValueFrom(t.combineLatest([o.pipe(n.skip(1),n.take(1)),k.cloud.persistedSyncState.pipe(n.skip(1),n.take(1))]));const r=yc(k);Si.on.new.subscribe(r),k.dx.once("close",()=>{Si.on.new.unsubscribe(r)})}let C=!1;const I=yield k.getCurrentUser(),O=null===(c=k.cloud.options)||void 0===c?void 0:c.requireAuth;O&&(k.cloud.isServiceWorkerDB?yield t.firstValueFrom(o.pipe(n.filter(e=>!!e.isLoggedIn),n.take(1))):"object"==typeof O?(!I.isLoggedIn||O.userId&&I.userId!==O.userId||O.email&&I.email!==O.email)&&(C=yield Gi(k,O)):I.isLoggedIn||(C=yield Gi(k))),!I.isLoggedIn||E&&E.includes(I.userId)||(C=!0),d&&d.stop(),d=null,h();const A=(null===(p=k.cloud.options)||void 0===p?void 0:p.databaseUrl)&&(!x||C);A&&(yield function(e,t,n){return r(this,void 0,void 0,function*(){yield vo(e,Ci,()=>Ii(e,t,n,{isInitialSync:!0}))})}(k,k.cloud.options,k.cloud.schema),k.setInitiallySynced(!0)),h(),k.cloud.usingServiceWorker&&(null===(m=k.cloud.options)||void 0===m?void 0:m.databaseUrl)?(A||g(k,"push").catch(()=>{}),function(e){return r(this,void 0,void 0,function*(){var t;try{const{periodicSync:n}=yield navigator.serviceWorker.ready;if(n)try{yield n.register(`dexie-cloud:${e.name}`,null===(t=e.cloud.options)||void 0===t?void 0:t.periodicSync)}catch(e){}}catch(e){}})}(k).catch(()=>{})):(null===(v=k.cloud.options)||void 0===v?void 0:v.databaseUrl)&&k.cloud.schema&&!k.cloud.isServiceWorkerDB&&(d=Bo(k,k.cloud.options,k.cloud.schema),d.start(),A||y(k,"push")),h(),k.cloud.isServiceWorkerDB||l.push(t.fromEvent(self,"online").subscribe(()=>{k.syncStateChangedEvent.next({phase:"not-in-sync"}),go(k)||y(k,"push")}),t.fromEvent(self,"offline").subscribe(()=>{k.syncStateChangedEvent.next({phase:"offline"})})),!(null===(b=k.cloud.options)||void 0===b?void 0:b.databaseUrl)||(null===(w=k.cloud.options)||void 0===w?void 0:w.disableWebSocket)||eo||l.push(function(e){var s;if(!(null===(s=e.cloud.options)||void 0===s?void 0:s.databaseUrl))throw new Error("No database URL to connect WebSocket to");const i=e.messageConsumer.readyToServe.pipe(n.filter(e=>e),n.switchMap(()=>e.getPersistedSyncState()),n.filter(e=>e&&e.serverRevision),n.switchMap(e=>r(this,void 0,void 0,function*(){return{type:"ready",rev:e.serverRevision,realmSetHash:yield _(e)}}))),o=t.merge(i,e.messageProducer);return function s(){return e.cloud.persistedSyncState.pipe(n.filter(e=>null==e?void 0:e.serverRevision),n.take(1),n.switchMap(t=>e.cloud.currentUser.pipe(n.map(e=>[e,t]))),n.switchMap(([e,t])=>wo.pipe(n.map(n=>[n?e:null,t]))),n.switchMap(([r,s])=>(null==r?void 0:r.isLoggedIn)&&!(null==s?void 0:s.realms.includes(r.userId))?e.cloud.persistedSyncState.pipe(n.filter(e=>(null==e?void 0:e.realms.includes(r.userId))||!1),n.take(1),n.map(e=>[r,e])):new t.BehaviorSubject([r,s])),n.switchMap(e=>r(this,[e],void 0,function*([e,t]){return[e,yield _(t)]})),n.distinctUntilChanged(([e,t],[n,r])=>e===n&&t===r),n.switchMap(([n,r])=>{var i;return(null===(i=e.cloud.persistedSyncState)||void 0===i?void 0:i.value)?n?new Uo(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 tt(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 Lo?t.throwError(()=>r):t.from(Ro()).pipe(n.switchMap(()=>s())))))}().subscribe({next:t=>{t&&e.messageConsumer.enqueue(t)},error:e=>{},complete:()=>{}})}(k))})}(s)}catch(e){}}),!0);let u=!1;function h(){if(u)throw new e.DatabaseClosedError}s.once("close",()=>{l.forEach(e=>e.unsubscribe()),l.splice(0,l.length),u=!0,d&&d.stop(),d=null,o.next(c)});const f=new t.Subject;var p;s.cloud={version:"4.3.0",options:Object.assign({},mc),schema:null,get currentUserId(){return o.value.userId||c.userId},currentUser:o,syncState:new t.BehaviorSubject({phase:"initial",status:"not-started"}),events:{syncComplete:f},persistedSyncState:new t.BehaviorSubject(void 0),userInteraction:new t.BehaviorSubject(void 0),webSocketStatus:new t.BehaviorSubject("not-started"),login(e){return r(this,void 0,void 0,function*(){const t=Pi(s);yield t.cloud.sync(),yield Gi(t,e)})},invites:gc(s),roles:dc(s),configure(e){e=s.cloud.options=Object.assign(Object.assign({},s.cloud.options),e),a=!0,e.databaseUrl&&e.nameSuffix&&(s.name=`${i}-${function(e){const t=new URL(e);return"/"===t.pathname?t.hostname.split(".")[0]:t.pathname.split("/")[1]}(e.databaseUrl)}`,Pi(s).reconfigure()),Fo(s.cloud.schema,s.cloud.options)},logout(){return r(this,arguments,void 0,function*({force:e}={}){e?yield Bi(Pi(s),{deleteUnsyncedData:!0}):yield Ni(Pi(s))})},sync(){return r(this,arguments,void 0,function*({wait:i,purpose:o}={wait:!0,purpose:"push"}){var l;void 0===i&&(i=!0);const c=Pi(s);if("ok"!==((null===(l=c.cloud.currentUser.value.license)||void 0===l?void 0:l.status)||"ok")&&(yield Ze(c)),"pull"===o){const e=c.cloud.persistedSyncState.value;if(y(c,o),i){const r=yield t.firstValueFrom(c.cloud.persistedSyncState.pipe(n.filter(t=>null!=(null==t?void 0:t.timestamp)&&(!e||t.timestamp>e.timestamp))));if(null==r?void 0:r.error)throw new Error("Sync error: "+r.error)}}else if(yield Mo(c)){const s=c.cloud.persistedSyncState.value;y(c,o),i&&(yield t.firstValueFrom(t.from(e.liveQuery(()=>r(this,void 0,void 0,function*(){const e=yield Mo(c),t=yield c.getPersistedSyncState();if((null==t?void 0:t.timestamp)!==(null==s?void 0:s.timestamp)&&(null==t?void 0:t.error))throw new Error("Sync error: "+t.error);return e}))).pipe(n.filter(e=>!e))))}})},permissions:(e,t)=>function(e,t,r){if(!t)throw new TypeError("Cannot check permissions of undefined or null. A Dexie Cloud object with realmId and owner expected.");const{owner:s,realmId:i}=t;if(!r){if("function"!=typeof t.table)throw new TypeError("Missing 'table' argument to permissions and table could not be extracted from entity");r=t.table()}const o=fc(e),l=t=>{const n=t[i||e.cloud.currentUserId];return n?new pc(n.permissions,r,void 0===i||i===e.cloud.currentUserId||s===e.cloud.currentUserId):new pc({},r,!s||s===e.cloud.currentUserId)},c=o.pipe(n.map(l));return c.getValue=()=>l(o.getValue()),c}(s._novip,e,t)},s.Version.prototype._parseStoresSpec=e.override(s.Version.prototype._parseStoresSpec,e=>mo(e,s)),s.Table.prototype.newId=function({colocateWith:e}={}){const t=e&&e.substr(e.length-3);return co(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(yo({currentUserObservable:s.cloud.currentUser,db:Pi(s)})),s.use((p=Pi(s),{stack:"dbcore",name:"implicitPropSetterMiddleware",level:1,create:e=>Object.assign(Object.assign({},e),{table:t=>{const n=e.table(t);return Object.assign(Object.assign({},n),{mutate:e=>{var r,s,i,o,l,a;const d=e.trans;if(d.disableChangeTracking)return n.mutate(e);const u=null!==(s=null===(r=d.currentUser)||void 0===r?void 0:r.userId)&&void 0!==s?s:c.userId;if((null===(o=null===(i=p.cloud.schema)||void 0===i?void 0:i[t])||void 0===o?void 0:o.markedForSync)&&("add"===e.type||"put"===e.type)){if("members"===t)for(const t of e.values)"string"==typeof t.email&&(t.email=t.email.trim().toLowerCase());for(const t of e.values){t.owner||(t.owner=u),t.realmId||(t.realmId=u);const r=null===(a=(l=n.schema.primaryKey).extractKey)||void 0===a?void 0:a.call(l,t);"string"==typeof r&&"#"===r[0]&&"put"===e.type&&(delete e.criteria,delete e.changeSpec,e.upsert||delete e.updates,t.$ts=Date.now())}}return n.mutate(e)}})}})})),s.use(ao(Pi(s)))}vc.version="4.3.0",e.Cloud=vc;const bc=new Map;function wc(e){return e.startsWith("dexie-cloud:")&&e.split(":")[1]}const _c=new Map;function kc(t,n){let s=_c.get(t+"/"+n);return s||(s=function t(n,s){return r(this,void 0,void 0,function*(){var r;let i=bc.get(n);if(!i){const r=new e(n,{addons:[vc]});if(i=Pi(r),i.cloud.isServiceWorkerDB=!0,r.on("versionchange",o),yield i.dx.open(),bc.get(n))return i.close(),yield t(n,s);bc.set(n,i)}if((null===(r=i.cloud.options)||void 0===r?void 0:r.databaseUrl)&&i.cloud.schema)try{yield No(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),bc.get(i.name)===i&&bc.delete(i.name),i.dx.close(),!1}})}(t,n).then(()=>{_c.delete(t+"/"+n)}).catch(e=>(_c.delete(t+"/"+n),Promise.reject(e))),_c.set(t+"/"+n,s)),s}Zi||(self.addEventListener("sync",e=>{const t=wc(e.tag);t&&e.waitUntil(kc(t,"push"))}),self.addEventListener("periodicsync",e=>{const t=wc(e.tag);t&&e.waitUntil(kc(t,"pull"))}),self.addEventListener("message",e=>{if("dexie-cloud-sync"===e.data.type){const{dbName:t}=e.data,n=(s=1)=>kc(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