dexie-cloud-addon 4.1.0-beta.48 → 4.1.0-beta.49

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("dexie"),require("rxjs")):"function"==typeof define&&define.amd?define(["exports","dexie","rxjs"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).DexieCloud={},e.Dexie,e.rxjs)}(this,(function(e,t,n){"use strict";var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},r(e,t)};function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}function i(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))}function s(e,t){var n,r,o,i,s={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function a(i){return function(a){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;s;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return s.label++,{value:i[1],done:!1};case 5:s.label++,r=i[1],i=[0];continue;case 7:i=s.ops.pop(),s.trys.pop();continue;default:if(!(o=s.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){s=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){s.label=i[1];break}if(6===i[0]&&s.label<o[1]){s.label=o[1],o=i;break}if(o&&s.label<o[2]){s.label=o[2],s.ops.push(i);break}o[2]&&s.ops.pop(),s.trys.pop();continue}i=t.call(e,s)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,a])}}}function a(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 c(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),s=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)s.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return s}function l(e,t,n){if(n||2===arguments.length)for(var r,o=0,i=t.length;o<i;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))}function u(e){return this instanceof u?(this.v=e,this):new u(e)}function d(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,o=n.apply(e,t||[]),i=[];return r={},s("next"),s("throw"),s("return"),r[Symbol.asyncIterator]=function(){return this},r;function s(e){o[e]&&(r[e]=function(t){return new Promise((function(n,r){i.push([e,t,n,r])>1||a(e,t)}))})}function a(e,t){try{!function(e){e.value instanceof u?Promise.resolve(e.value.v).then(c,l):d(i[0][2],e)}(o[e](t))}catch(e){d(i[0][3],e)}}function c(e){a("next",e)}function l(e){a("throw",e)}function d(e,t){e(t),i.shift(),i.length&&a(i[0][0],i[0][1])}}function f(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=a(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,o){(function(e,t,n,r){Promise.resolve(r).then((function(t){e({value:t,done:n})}),t)})(r,o,(t=e[n](t)).done,t.value)}))}}}const p={}.hasOwnProperty;function y(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,o=t.length;r<o;++r)y(e,t[r],n[r])}else{var i=t.indexOf(".");if(-1!==i){var s=t.substr(0,i),a=t.substr(i+1);if(""===a)void 0===n?Array.isArray(e)?isNaN(parseInt(s))||e.splice(parseInt(s),1):delete e[s]:e[s]=n;else{var c=e[s];c&&function(e,t){return p.call(e,t)}(e,s)||(c=e[s]={}),y(c,a,n)}}else void 0===n?Array.isArray(e)&&!isNaN(parseInt(t))?e.splice(t,1):delete e[t]:e[t]=n}}const h="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=v)=>{const n=Buffer.alloc(e);return t(n),n.toString("base64")}:()=>{throw new Error("No implementation of randomString was found")};function v(e){for(let t=0;t<e.length;++t)e[t]=Math.floor(256*Math.random())}function m(e){return"string"==typeof e||!!(Array.isArray(e)&&e.some((e=>m(e)))&&e.every(b))}function b(e){return"string"==typeof e||"number"==typeof e||Array.isArray(e)&&e.every(b)}function g(e,t,n){const r=e[t]||(e[t]={}),o=n.keys.map((e=>"string"==typeof e?e:JSON.stringify(e)));switch(n.type){case"insert":case"upsert":o.forEach(((e,t)=>{r[e]={type:"ups",val:n.values[t]}}));break;case"update":case"modify":o.forEach(((e,t)=>{const o="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(o))y(i.val,e,t);break;case"del":break;case"upd":Object.assign(i.mod,o)}else r[e]={type:"upd",mod:o}}));break;case"delete":o.forEach((e=>{r[e]={type:"del"}}))}return e}function _(e,t){for(const{table:n,muts:r}of t)for(const t of r)g(e,n,t)}const w=Math.floor,k=Math.abs,S=(e,t)=>e>t?e:t,x=128,I=127,E=Number.MAX_SAFE_INTEGER,O=Number.isInteger||(e=>"number"==typeof e&&isFinite(e)&&w(e)===e),T=Array.isArray,j="undefined"!=typeof TextEncoder?new TextEncoder:null,A=j?e=>j.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 C="undefined"==typeof TextDecoder?null:new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});C&&1===C.decode(new Uint8Array).length&&(C=null);class P{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}}const U=(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},D=(e,t)=>{for(;t>I;)U(e,x|I&t),t=w(t/128);U(e,I&t)},$=new Uint8Array(3e4),L=$.length/3,R=j&&j.encodeInto?(e,t)=>{if(t.length<L){const n=j.encodeInto(t,$).written||0;D(e,n);for(let t=0;t<n;t++)U(e,$[t])}else N(e,A(t))}:(e,t)=>{const n=unescape(encodeURIComponent(t)),r=n.length;D(e,r);for(let t=0;t<r;t++)U(e,n.codePointAt(t))},N=(e,t)=>{D(e,t.byteLength),((e,t)=>{const n=e.cbuf.length,r=e.cpos,o=((e,t)=>e<t?e:t)(n-r,t.length),i=t.length-o;e.cbuf.set(t.subarray(0,o),r),e.cpos+=o,i>0&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(S(2*n,i)),e.cbuf.set(t.subarray(o)),e.cpos=i)})(e,t)},B=(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*S(n,t)),e.cpos=0)})(e,t);const n=new DataView(e.cbuf.buffer,e.cpos,t);return e.cpos+=t,n},M=(e,t)=>B(e,8).setBigUint64(0,t,!1),F=new DataView(new ArrayBuffer(4)),W=(e,t)=>{switch(typeof t){case"string":U(e,119),R(e,t);break;case"number":O(t)&&k(t)<=2147483647?(U(e,125),((e,t)=>{const n=(e=>0!==e?e<0:1/e<0)(t);for(n&&(t=-t),U(e,(t>63?x:0)|(n?64:0)|63&t),t=w(t/64);t>0;)U(e,(t>I?x:0)|I&t),t=w(t/128)})(e,t)):(n=t,F.setFloat32(0,n),F.getFloat32(0)===n?(U(e,124),((e,t)=>{B(e,4).setFloat32(0,t,!1)})(e,t)):(U(e,123),((e,t)=>{B(e,8).setFloat64(0,t,!1)})(e,t)));break;case"bigint":U(e,122),((e,t)=>{B(e,8).setBigInt64(0,t,!1)})(e,t);break;case"object":if(null===t)U(e,126);else if(T(t)){U(e,117),D(e,t.length);for(let n=0;n<t.length;n++)W(e,t[n])}else if(t instanceof Uint8Array)U(e,116),N(e,t);else{U(e,118);const n=Object.keys(t);D(e,n.length);for(let r=0;r<n.length;r++){const o=n[r];R(e,o),W(e,t[o])}}break;case"boolean":U(e,t?120:121);break;default:U(e,127)}var n};function V(e){const t=new P;switch(R(t,e.type),"table"in e&&R(t,e.table),"prop"in e&&R(t,e.prop),e.type){case"u-ack":case"u-reject":M(t,BigInt(e.i));break;case"outdated-server-rev":break;case"y-complete-sync-done":R(t,e.yServerRev);break;default:switch(W(t,e.k),e.type){case"aware":N(t,e.u);break;case"doc-open":W(t,e.serverRev),W(t,e.sv);break;case"doc-close":break;case"sv":N(t,e.sv);break;case"u-c":N(t,e.u),M(t,BigInt(e.i));break;case"u-s":N(t,e.u),R(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 o=e.bufs[r];t.set(o,n),n+=o.length}return t.set(new Uint8Array(e.cbuf.buffer,0,e.cpos),n),t})(t)}const K=e=>new Error(e),H=K("Unexpected end of array"),z=K("Integer out of Range");class q{constructor(e){this.arr=e,this.pos=0}}const Y=e=>e.pos!==e.arr.length,J=e=>((e,t)=>{const n=new Uint8Array(e.arr.buffer,e.pos+e.arr.byteOffset,t);return e.pos+=t,n})(e,Q(e)),G=e=>e.arr[e.pos++],Q=e=>{let t=0,n=1;const r=e.arr.length;for(;e.pos<r;){const r=e.arr[e.pos++];if(t+=(r&I)*n,n*=128,r<x)return t;if(t>E)throw z}throw H},X=C?e=>C.decode(J(e)):e=>{let t=Q(e);if(0===t)return"";{let n=String.fromCodePoint(G(e));if(--t<100)for(;t--;)n+=String.fromCodePoint(G(e));else for(;t>0;){const r=t<1e4?t:1e4,o=e.arr.subarray(e.pos,e.pos+r);e.pos+=r,n+=String.fromCodePoint.apply(null,o),t-=r}return decodeURIComponent(escape(n))}},Z=(e,t)=>{const n=new DataView(e.arr.buffer,e.arr.byteOffset+e.pos,t);return e.pos+=t,n},ee=e=>Z(e,8).getBigUint64(0,!1),te=[e=>{},e=>null,e=>{let t=e.arr[e.pos++],n=63&t,r=64;const o=(64&t)>0?-1:1;if(0==(t&x))return o*n;const i=e.arr.length;for(;e.pos<i;){if(t=e.arr[e.pos++],n+=(t&I)*r,r*=128,t<x)return o*n;if(n>E)throw z}throw H},e=>Z(e,4).getFloat32(0,!1),e=>Z(e,8).getFloat64(0,!1),e=>Z(e,8).getBigInt64(0,!1),e=>!1,e=>!0,X,e=>{const t=Q(e),n={};for(let r=0;r<t;r++){n[X(e)]=ne(e)}return n},e=>{const t=Q(e),n=[];for(let r=0;r<t;r++)n.push(ne(e));return n},J],ne=e=>te[127-G(e)](e);function re(e){return d(this,arguments,(function*(){var t,n,r,o;let i=0,s=new Uint8Array(4),a=0,c=[],l=0;try{for(var d,p=!0,y=f(e);!(t=(d=yield u(y.next())).done);p=!0){o=d.value,p=!1;const e=o,t=new DataView(e.buffer,e.byteOffset,e.byteLength);let n=0;for(;n<e.byteLength;)switch(i){case 0:if(n+4>e.byteLength){for(const t of e.slice(n)){if(4===a)break;s[a++]=t,++n}if(a<4)break}else if(a>0&&a<4)for(const t of e.slice(n,n+4-a))s[a++]=t,++n;case 1:l=4===a?new DataView(s.buffer,0,4).getUint32(0,!1):t.getUint32(n,!1),a?a=0:n+=4;case 2:if(n>=e.byteLength){i=2;break}if(n+l>e.byteLength)c.push(e.slice(n)),l-=e.byteLength-n,i=2,n=e.byteLength;else{if(c.length>0){const t=new Uint8Array(c.reduce(((e,t)=>e+t.byteLength),l));let r=0;for(const e of c)t.set(e,r),r+=e.byteLength;t.set(e.slice(n,n+l),r),c=[],yield yield u(t)}else yield yield u(e.slice(n,n+l));n+=l,i=0}}}}catch(e){n={error:e}}finally{try{p||t||!(r=y.return)||(yield u(r.call(y)))}finally{if(n)throw n.error}}}))}function oe(e){return"function"==typeof e}function ie(e){return function(t){if(function(e){return oe(null==e?void 0:e.lift)}(t))return t.lift((function(t){try{return e(t,this)}catch(e){this.error(e)}}));throw new TypeError("Unable to lift unknown Observable type")}}var se=function(e){return e&&"number"==typeof e.length&&"function"!=typeof e};function ae(e){return oe(null==e?void 0:e.then)}var ce,le,ue=(ce=function(e){return function(t){e(this),this.message=t?t.length+" errors occurred during unsubscription:\n"+t.map((function(e,t){return t+1+") "+e.toString()})).join("\n "):"",this.name="UnsubscriptionError",this.errors=t}},(le=ce((function(e){Error.call(e),e.stack=(new Error).stack}))).prototype=Object.create(Error.prototype),le.prototype.constructor=le,le);function de(e,t){if(e){var n=e.indexOf(t);0<=n&&e.splice(n,1)}}var fe=function(){function e(e){this.initialTeardown=e,this.closed=!1,this._parentage=null,this._finalizers=null}var t;return e.prototype.unsubscribe=function(){var e,t,n,r,o;if(!this.closed){this.closed=!0;var i=this._parentage;if(i)if(this._parentage=null,Array.isArray(i))try{for(var s=a(i),u=s.next();!u.done;u=s.next()){u.value.remove(this)}}catch(t){e={error:t}}finally{try{u&&!u.done&&(t=s.return)&&t.call(s)}finally{if(e)throw e.error}}else i.remove(this);var d=this.initialTeardown;if(oe(d))try{d()}catch(e){o=e instanceof ue?e.errors:[e]}var f=this._finalizers;if(f){this._finalizers=null;try{for(var p=a(f),y=p.next();!y.done;y=p.next()){var h=y.value;try{ye(h)}catch(e){o=null!=o?o:[],e instanceof ue?o=l(l([],c(o)),c(e.errors)):o.push(e)}}}catch(e){n={error:e}}finally{try{y&&!y.done&&(r=p.return)&&r.call(p)}finally{if(n)throw n.error}}}if(o)throw new ue(o)}},e.prototype.add=function(t){var n;if(t&&t!==this)if(this.closed)ye(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=null!==(n=this._finalizers)&&void 0!==n?n:[]).push(t)}},e.prototype._hasParent=function(e){var t=this._parentage;return t===e||Array.isArray(t)&&t.includes(e)},e.prototype._addParent=function(e){var t=this._parentage;this._parentage=Array.isArray(t)?(t.push(e),t):t?[t,e]:e},e.prototype._removeParent=function(e){var t=this._parentage;t===e?this._parentage=null:Array.isArray(t)&&de(t,e)},e.prototype.remove=function(t){var n=this._finalizers;n&&de(n,t),t instanceof e&&t._removeParent(this)},e.EMPTY=((t=new e).closed=!0,t),e}();function pe(e){return e instanceof fe||e&&"closed"in e&&oe(e.remove)&&oe(e.add)&&oe(e.unsubscribe)}function ye(e){oe(e)?e():e.unsubscribe()}fe.EMPTY;var he={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},ve={setTimeout:function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var o=ve.delegate;return(null==o?void 0:o.setTimeout)?o.setTimeout.apply(o,l([e,t],c(n))):setTimeout.apply(void 0,l([e,t],c(n)))},clearTimeout:function(e){var t=ve.delegate;return((null==t?void 0:t.clearTimeout)||clearTimeout)(e)},delegate:void 0};function me(e){ve.setTimeout((function(){throw e}))}function be(){}var ge=function(e){function t(t){var n=e.call(this)||this;return n.isStopped=!1,t?(n.destination=t,pe(t)&&t.add(n)):n.destination=Ie,n}return o(t,e),t.create=function(e,t,n){return new Se(e,t,n)},t.prototype.next=function(e){this.isStopped||this._next(e)},t.prototype.error=function(e){this.isStopped||(this.isStopped=!0,this._error(e))},t.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},t.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,e.prototype.unsubscribe.call(this),this.destination=null)},t.prototype._next=function(e){this.destination.next(e)},t.prototype._error=function(e){try{this.destination.error(e)}finally{this.unsubscribe()}},t.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},t}(fe),_e=Function.prototype.bind;function we(e,t){return _e.call(e,t)}var ke=function(){function e(e){this.partialObserver=e}return e.prototype.next=function(e){var t=this.partialObserver;if(t.next)try{t.next(e)}catch(e){xe(e)}},e.prototype.error=function(e){var t=this.partialObserver;if(t.error)try{t.error(e)}catch(e){xe(e)}else xe(e)},e.prototype.complete=function(){var e=this.partialObserver;if(e.complete)try{e.complete()}catch(e){xe(e)}},e}(),Se=function(e){function t(t,n,r){var o,i,s=e.call(this)||this;oe(t)||!t?o={next:null!=t?t:void 0,error:null!=n?n:void 0,complete:null!=r?r:void 0}:s&&he.useDeprecatedNextContext?((i=Object.create(t)).unsubscribe=function(){return s.unsubscribe()},o={next:t.next&&we(t.next,i),error:t.error&&we(t.error,i),complete:t.complete&&we(t.complete,i)}):o=t;return s.destination=new ke(o),s}return o(t,e),t}(ge);function xe(e){me(e)}var Ie={closed:!0,next:be,error:function(e){throw e},complete:be},Ee="function"==typeof Symbol&&Symbol.observable||"@@observable";function Oe(e){return e}var Te=function(){function e(e){e&&(this._subscribe=e)}return e.prototype.lift=function(t){var n=new e;return n.source=this,n.operator=t,n},e.prototype.subscribe=function(e,t,n){var r,o=this,i=(r=e)&&r instanceof ge||function(e){return e&&oe(e.next)&&oe(e.error)&&oe(e.complete)}(r)&&pe(r)?e:new Se(e,t,n);return function(){var e=o,t=e.operator,n=e.source;i.add(t?t.call(i,n):n?o._subscribe(i):o._trySubscribe(i))}(),i},e.prototype._trySubscribe=function(e){try{return this._subscribe(e)}catch(t){e.error(t)}},e.prototype.forEach=function(e,t){var n=this;return new(t=je(t))((function(t,r){var o=new Se({next:function(t){try{e(t)}catch(e){r(e),o.unsubscribe()}},error:r,complete:t});n.subscribe(o)}))},e.prototype._subscribe=function(e){var t;return null===(t=this.source)||void 0===t?void 0:t.subscribe(e)},e.prototype[Ee]=function(){return this},e.prototype.pipe=function(){for(var e,t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return(0===(e=t).length?Oe:1===e.length?e[0]:function(t){return e.reduce((function(e,t){return t(e)}),t)})(this)},e.prototype.toPromise=function(e){var t=this;return new(e=je(e))((function(e,n){var r;t.subscribe((function(e){return r=e}),(function(e){return n(e)}),(function(){return e(r)}))}))},e.create=function(t){return new e(t)},e}();function je(e){var t;return null!==(t=null!=e?e:he.Promise)&&void 0!==t?t:Promise}function Ae(e){return oe(e[Ee])}function Ce(e){return Symbol.asyncIterator&&oe(null==e?void 0:e[Symbol.asyncIterator])}function Pe(e){return new TypeError("You provided "+(null!==e&&"object"==typeof e?"an invalid object":"'"+e+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}var Ue="function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator";function De(e){return oe(null==e?void 0:e[Ue])}function $e(e){return d(this,arguments,(function(){var t,n,r;return s(this,(function(o){switch(o.label){case 0:t=e.getReader(),o.label=1;case 1:o.trys.push([1,,9,10]),o.label=2;case 2:return[4,u(t.read())];case 3:return n=o.sent(),r=n.value,n.done?[4,u(void 0)]:[3,5];case 4:return[2,o.sent()];case 5:return[4,u(r)];case 6:return[4,o.sent()];case 7:return o.sent(),[3,2];case 8:return[3,10];case 9:return t.releaseLock(),[7];case 10:return[2]}}))}))}function Le(e){return oe(null==e?void 0:e.getReader)}function Re(e){if(e instanceof Te)return e;if(null!=e){if(Ae(e))return o=e,new Te((function(e){var t=o[Ee]();if(oe(t.subscribe))return t.subscribe(e);throw new TypeError("Provided object does not correctly implement Symbol.observable")}));if(se(e))return r=e,new Te((function(e){for(var t=0;t<r.length&&!e.closed;t++)e.next(r[t]);e.complete()}));if(ae(e))return n=e,new Te((function(e){n.then((function(t){e.closed||(e.next(t),e.complete())}),(function(t){return e.error(t)})).then(null,me)}));if(Ce(e))return Ne(e);if(De(e))return t=e,new Te((function(e){var n,r;try{for(var o=a(t),i=o.next();!i.done;i=o.next()){var s=i.value;if(e.next(s),e.closed)return}}catch(e){n={error:e}}finally{try{i&&!i.done&&(r=o.return)&&r.call(o)}finally{if(n)throw n.error}}e.complete()}));if(Le(e))return Ne($e(e))}var t,n,r,o;throw Pe(e)}function Ne(e){return new Te((function(t){(function(e,t){var n,r,o,a;return i(this,void 0,void 0,(function(){var i,c;return s(this,(function(s){switch(s.label){case 0:s.trys.push([0,5,6,11]),n=f(e),s.label=1;case 1:return[4,n.next()];case 2:if((r=s.sent()).done)return[3,4];if(i=r.value,t.next(i),t.closed)return[2];s.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return c=s.sent(),o={error:c},[3,11];case 6:return s.trys.push([6,,9,10]),r&&!r.done&&(a=n.return)?[4,a.call(n)]:[3,8];case 7:s.sent(),s.label=8;case 8:return[3,10];case 9:if(o)throw o.error;return[7];case 10:return[7];case 11:return t.complete(),[2]}}))}))})(e,t).catch((function(e){return t.error(e)}))}))}function Be(e,t,n,r,o){return new Me(e,t,n,r,o)}var Me=function(e){function t(t,n,r,o,i,s){var a=e.call(this,t)||this;return a.onFinalize=i,a.shouldUnsubscribe=s,a._next=n?function(e){try{n(e)}catch(e){t.error(e)}}:e.prototype._next,a._error=o?function(e){try{o(e)}catch(e){t.error(e)}finally{this.unsubscribe()}}:e.prototype._error,a._complete=r?function(){try{r()}catch(e){t.error(e)}finally{this.unsubscribe()}}:e.prototype._complete,a}return o(t,e),t.prototype.unsubscribe=function(){var t;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var n=this.closed;e.prototype.unsubscribe.call(this),!n&&(null===(t=this.onFinalize)||void 0===t||t.call(this))}},t}(ge),Fe=function(e){function t(t,n){return e.call(this)||this}return o(t,e),t.prototype.schedule=function(e,t){return this},t}(fe),We={setInterval:function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var o=We.delegate;return(null==o?void 0:o.setInterval)?o.setInterval.apply(o,l([e,t],c(n))):setInterval.apply(void 0,l([e,t],c(n)))},clearInterval:function(e){var t=We.delegate;return((null==t?void 0:t.clearInterval)||clearInterval)(e)},delegate:void 0},Ve=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.scheduler=t,r.work=n,r.pending=!1,r}return o(t,e),t.prototype.schedule=function(e,t){if(void 0===t&&(t=0),this.closed)return this;this.state=e;var n=this.id,r=this.scheduler;return null!=n&&(this.id=this.recycleAsyncId(r,n,t)),this.pending=!0,this.delay=t,this.id=this.id||this.requestAsyncId(r,this.id,t),this},t.prototype.requestAsyncId=function(e,t,n){return void 0===n&&(n=0),We.setInterval(e.flush.bind(e,this),n)},t.prototype.recycleAsyncId=function(e,t,n){if(void 0===n&&(n=0),null!=n&&this.delay===n&&!1===this.pending)return t;We.clearInterval(t)},t.prototype.execute=function(e,t){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;var n=this._execute(e,t);if(n)return n;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))},t.prototype._execute=function(e,t){var n,r=!1;try{this.work(e)}catch(e){r=!0,n=e||new Error("Scheduled action threw falsy error")}if(r)return this.unsubscribe(),n},t.prototype.unsubscribe=function(){if(!this.closed){var t=this.id,n=this.scheduler,r=n.actions;this.work=this.state=this.scheduler=null,this.pending=!1,de(r,this),null!=t&&(this.id=this.recycleAsyncId(n,t,null)),this.delay=null,e.prototype.unsubscribe.call(this)}},t}(Fe),Ke={now:function(){return(Ke.delegate||Date).now()},delegate:void 0},He=function(){function e(t,n){void 0===n&&(n=e.now),this.schedulerActionCtor=t,this.now=n}return e.prototype.schedule=function(e,t,n){return void 0===t&&(t=0),new this.schedulerActionCtor(this,e).schedule(n,t)},e.now=Ke.now,e}(),ze=new(function(e){function t(t,n){void 0===n&&(n=He.now);var r=e.call(this,t,n)||this;return r.actions=[],r._active=!1,r._scheduled=void 0,r}return o(t,e),t.prototype.flush=function(e){var t=this.actions;if(this._active)t.push(e);else{var n;this._active=!0;do{if(n=e.execute(e.state,e.delay))break}while(e=t.shift());if(this._active=!1,n){for(;e=t.shift();)e.unsubscribe();throw n}}},t}(He))(Ve),qe=ze;function Ye(e){return e&&oe(e.schedule)}function Je(e,t,n){void 0===e&&(e=0),void 0===n&&(n=qe);var r=-1;return null!=t&&(Ye(t)?n=t:r=t),new Te((function(t){var o,i=(o=e)instanceof Date&&!isNaN(o)?+e-n.now():e;i<0&&(i=0);var s=0;return n.schedule((function(){t.closed||(t.next(s++),0<=r?this.schedule(void 0,r):t.complete())}),i)}))}function Ge(e){return Ye((t=e)[t.length-1])?e.pop():void 0;var t}function Qe(e,t,n,r,o){void 0===r&&(r=0),void 0===o&&(o=!1);var i=t.schedule((function(){n(),o?e.add(this.schedule(null,r)):this.unsubscribe()}),r);if(e.add(i),!o)return i}function Xe(e){return ie((function(t,n){var r,o=null,i=!1;o=t.subscribe(Be(n,void 0,void 0,(function(s){r=Re(e(s,Xe(e)(t))),o?(o.unsubscribe(),o=null,r.subscribe(n)):i=!0}))),i&&(o.unsubscribe(),o=null,r.subscribe(n))}))}function Ze(e,t){return void 0===t&&(t=0),ie((function(n,r){n.subscribe(Be(r,(function(n){return Qe(r,e,(function(){return r.next(n)}),t)}),(function(){return Qe(r,e,(function(){return r.complete()}),t)}),(function(n){return Qe(r,e,(function(){return r.error(n)}),t)})))}))}function et(e,t){return void 0===t&&(t=0),ie((function(n,r){r.add(e.schedule((function(){return n.subscribe(r)}),t))}))}function tt(e,t){if(!e)throw new Error("Iterable cannot be null");return new Te((function(n){Qe(n,t,(function(){var r=e[Symbol.asyncIterator]();Qe(n,t,(function(){r.next().then((function(e){e.done?n.complete():n.next(e.value)}))}),0,!0)}))}))}function nt(e,t){if(null!=e){if(Ae(e))return function(e,t){return Re(e).pipe(et(t),Ze(t))}(e,t);if(se(e))return function(e,t){return new Te((function(n){var r=0;return t.schedule((function(){r===e.length?n.complete():(n.next(e[r++]),n.closed||this.schedule())}))}))}(e,t);if(ae(e))return function(e,t){return Re(e).pipe(et(t),Ze(t))}(e,t);if(Ce(e))return tt(e,t);if(De(e))return function(e,t){return new Te((function(n){var r;return Qe(n,t,(function(){r=e[Ue](),Qe(n,t,(function(){var e,t,o;try{t=(e=r.next()).value,o=e.done}catch(e){return void n.error(e)}o?n.complete():n.next(t)}),0,!0)})),function(){return oe(null==r?void 0:r.return)&&r.return()}}))}(e,t);if(Le(e))return function(e,t){return tt($e(e),t)}(e,t)}throw Pe(e)}function rt(e,t){return ie((function(n,r){var o=0;n.subscribe(Be(r,(function(n){r.next(e.call(t,n,o++))})))}))}function ot(e,t,n){return void 0===n&&(n=1/0),oe(t)?ot((function(n,r){return rt((function(e,o){return t(n,e,r,o)}))(Re(e(n,r)))}),n):("number"==typeof t&&(n=t),ie((function(t,r){return function(e,t,n,r,o,i,s,a){var c=[],l=0,u=0,d=!1,f=function(){!d||c.length||l||t.complete()},p=function(e){return l<r?y(e):c.push(e)},y=function(e){i&&t.next(e),l++;var a=!1;Re(n(e,u++)).subscribe(Be(t,(function(e){null==o||o(e),i?p(e):t.next(e)}),(function(){a=!0}),void 0,(function(){if(a)try{l--;for(var e=function(){var e=c.shift();s?Qe(t,s,(function(){return y(e)})):y(e)};c.length&&l<r;)e();f()}catch(e){t.error(e)}})))};return e.subscribe(Be(t,p,(function(){d=!0,f()}))),function(){null==a||a()}}(t,r,e,n)})))}function it(){return void 0===(e=1)&&(e=1/0),ot(Oe,e);var e}function st(e,t){return void 0===t&&(t=ze),ie((function(n,r){var o=null,i=null,s=null,a=function(){if(o){o.unsubscribe(),o=null;var e=i;i=null,r.next(e)}};function c(){var n=s+e,i=t.now();if(i<n)return o=this.schedule(void 0,n-i),void r.add(o);a()}n.subscribe(Be(r,(function(n){i=n,s=t.now(),o||(o=t.schedule(c,e),r.add(o))}),(function(){a(),r.complete()}),void 0,(function(){i=o=null})))}))}function at(){for(var e,t,n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];return it()((e=n,(t=Ge(n))?nt(e,t):Re(e)))}var ct=new Te((function(e){return e.complete()}));function lt(e){return e<=0?function(){return ct}:ie((function(t,n){var r=0;t.subscribe(Be(n,(function(t){++r<=e&&(n.next(t),e<=r&&n.complete())})))}))}function ut(e,t){return t?function(n){return at(t.pipe(lt(1),ie((function(e,t){e.subscribe(Be(t,be))}))),n.pipe(ut(e)))}:ot((function(t,n){return e(t,n).pipe(lt(1),function(e){return rt((function(){return e}))}(t))}))}function dt(e,t){void 0===t&&(t=ze);var n=Je(e,t);return ut((function(){return n}))}function ft(e,t){return void 0===t&&(t=Oe),e=null!=e?e:pt,ie((function(n,r){var o,i=!0;n.subscribe(Be(r,(function(n){var s=t(n);!i&&e(o,s)||(i=!1,o=s,r.next(n))})))}))}function pt(e,t){return e===t}function yt(e,t){return ie((function(n,r){var o=0;n.subscribe(Be(r,(function(n){return e.call(t,n,o++)&&r.next(n)})))}))}function ht(e){return yt((function(t,n){return e<=n}))}function vt(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=Ge(e);return ie((function(t,r){(n?at(e,t,n):at(e,t)).subscribe(r)}))}function mt(e,t){return ie((function(n,r){var o=null,i=0,s=!1,a=function(){return s&&!o&&r.complete()};n.subscribe(Be(r,(function(n){null==o||o.unsubscribe();var s=0,c=i++;Re(e(n,c)).subscribe(o=Be(r,(function(e){return r.next(t?t(n,e,c,s++):e)}),(function(){o=null,a()})))}),(function(){s=!0,a()})))}))}function bt(e,t,n){var r=oe(e)||t||n?{next:e,error:t,complete:n}:e;return r?ie((function(e,t){var n;null===(n=r.subscribe)||void 0===n||n.call(r);var o=!0;e.subscribe(Be(t,(function(e){var n;null===(n=r.next)||void 0===n||n.call(r,e),t.next(e)}),(function(){var e;o=!1,null===(e=r.complete)||void 0===e||e.call(r),t.complete()}),(function(e){var n;o=!1,null===(n=r.error)||void 0===n||n.call(r,e),t.error(e)}),(function(){var e,t;o&&(null===(e=r.unsubscribe)||void 0===e||e.call(r)),null===(t=r.finalize)||void 0===t||t.call(r)})))})):Oe}let gt=!1;function _t(e,t){return i(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){gt||(gt=!0)}}))}function wt(e,t){e.cloud.usingServiceWorker?_t(e,t):e.localSyncEvent.next({purpose:t})}const kt="fromBase64"in Uint8Array,St="toBase64"in Uint8Array.prototype,xt="undefined"!=typeof Buffer?e=>Buffer.from(e,"base64"):kt?e=>Uint8Array.fromBase64(e):e=>{const t=atob(e),n=t.length,r=new Uint8Array(n);for(var o=0;o<n;o++)r[o]=t.charCodeAt(o);return r},It="undefined"!=typeof Buffer?e=>ArrayBuffer.isView(e)?Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("base64"):Buffer.from(e).toString("base64"):St?e=>(ArrayBuffer.isView(e)?e:new Uint8Array(e)).toBase64():e=>{const t=ArrayBuffer.isView(e)?e:new Uint8Array(e),n=[];for(let e=0,r=t.length;e<r;e+=4096){const r=t.subarray(e,e+4096);n.push(String.fromCharCode.apply(null,r))}return btoa(n.join(""))};class Et 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 Ot(e,n){return new Promise(((r,o)=>{const i=Object.assign(Object.assign({submitLabel:"Submit",cancelLabel:"Cancel"},n),{onSubmit:t=>{e.next(void 0),r(t)},onCancel:()=>{e.next(void 0),o(new t.AbortError("User cancelled"))}});e.next(i)}))}function Tt(e,t,...n){return Ot(e,{type:"message-alert",title:t,alerts:n,fields:{},submitLabel:"OK",cancelLabel:null})}function jt(e,t,n){return i(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 Ot(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 At(e,t,n){return i(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:o}=yield Ot(e,{type:"otp",title:"Enter OTP",alerts:r,fields:{otp:{type:"otp",label:"OTP",placeholder:"Paste OTP here"}}});return o}))}function Ct(e){return i(this,void 0,void 0,(function*(){var t,n,r;const o=yield e.getCurrentUser(),{accessToken:i,accessTokenExpiration:s,refreshToken:a,refreshTokenExpiration:c,claims:l}=o;if(!i)return null;if((null!==(t=null==s?void 0:s.getTime())&&void 0!==t?t:1/0)>Date.now()&&"ok"===((null===(n=o.license)||void 0===n?void 0:n.status)||"ok"))return o;if(!a)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 Ut(e.cloud.options.databaseUrl,o);return yield e.table("$logins").update(l.sub,{accessToken:u.accessToken,accessTokenExpiration:u.accessTokenExpiration,claims:u.claims,license:u.license,data:u.data}),u}))}function Pt(e,n,r,o,s){return i(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 Ut(e,n):yield function(e,n,r,o){return i(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:i,publicKey:s}=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(!i||!s)throw new Error("Could not generate RSA keypair");e.nonExportablePrivateKey=i;const a=function(e){const t=It(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",s));e.publicKey=s;try{const t=yield n({public_key:a,hints:o});if("error"===t.type)throw new Et(t);if("tokens"!==t.type)throw new Error(`Unexpected response type from token endpoint: ${t.type}`);return e.accessToken=t.accessToken,e.accessTokenExpiration=new Date(t.accessTokenExpiration),e.refreshToken=t.refreshToken,t.refreshTokenExpiration&&(e.refreshTokenExpiration=new Date(t.refreshTokenExpiration)),e.userId=t.claims.sub,e.email=t.claims.email,e.name=t.claims.name,e.claims=t.claims,e.license={type:t.userType,status:t.claims.license||"ok"},e.data=t.data,null!=t.evalDaysLeft&&(e.license.evalDaysLeft=t.evalDaysLeft),null!=t.userValidUntil&&(e.license.validUntil=new Date(t.userValidUntil)),t.alerts&&t.alerts.length>0&&(yield Ot(r,{type:"message-alert",title:"Authentication Alert",fields:{},alerts:t.alerts})),e}catch(e){if(e instanceof Et)throw yield Tt(r,e.title,{type:"error",messageCode:e.messageCode,message:e.message,messageParams:{}}),e;let n="We're having a problem authenticating right now.";if(e instanceof TypeError){n=void 0!==typeof navigator&&!navigator.onLine?"You seem to be offline. Please connect to the internet and try again.":t.debug||"undefined"!=typeof location&&("localhost"===location.hostname||"127.0.0.1"===location.hostname)?`Could not connect to server. Please verify that your origin '${location.origin}' is whitelisted using \`npx dexie-cloud whitelist\``:"Could not connect to server. Please verify the connection.",yield Tt(r,"Authentication Failed",{type:"error",messageCode:"GENERIC_ERROR",message:n,messageParams:{}}).catch((()=>{}))}throw e}}))}(n,r,o,s)}))}function Ut(e,t){return i(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",o=(new TextEncoder).encode(t.refreshToken+n),i=yield crypto.subtle.sign(r,t.nonExportablePrivateKey,o),s=It(i),a={grant_type:"refresh_token",refresh_token:t.refreshToken,scopes:["ACCESS_DB"],signature:s,signing_algorithm:r,time_stamp:n},c=yield fetch(`${e}/token`,{body:JSON.stringify(a),method:"post",headers:{"Content-Type":"application/json"},mode:"cors"});if(200!==c.status)throw new Error(`RefreshToken: Status ${c.status} from ${e}/token`);const l=yield c.json();if("error"===l.type)throw new Et(l);return t.accessToken=l.accessToken,t.accessTokenExpiration=l.accessTokenExpiration?new Date(l.accessTokenExpiration):void 0,t.claims=l.claims,t.license={type:l.userType,status:l.claims.license||"ok"},null!=l.evalDaysLeft&&(t.license.evalDaysLeft=l.evalDaysLeft),null!=l.userValidUntil&&(t.license.validUntil=new Date(l.userValidUntil)),l.data&&(t.data=l.data),t}))}const Dt=new WeakMap;class $t{constructor(e,t){Dt.set(this,e),Object.assign(this,t)}static load(e,t){return e.table("$logins").get(t).then((n=>new $t(e,n||{userId:t,claims:{sub:t},lastLogin:new Date(0)})))}save(){return i(this,void 0,void 0,(function*(){Dt.get(this).table("$logins").put(this)}))}}const Lt={userId:"unauthorized",name:"Unauthorized",claims:{sub:"unauthorized"},lastLogin:new Date(0)};try{Object.freeze(Lt),Object.freeze(Lt.claims)}catch(e){}function Rt(e,t){return n.firstValueFrom(n.from(e).pipe(n.filter(t)))}function Nt(e){return i(this,void 0,void 0,(function*(){const t=yield Bt(e);if(t){if(!(yield function(e,t,n){return i(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 Ot(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 Bt(e,{deleteUnsyncedData:!0})}}))}function Bt(e){return i(this,arguments,void 0,(function*(e,{deleteUnsyncedData:t=!1}={}){const[n,r]=yield e.dx.transaction("rw",e.dx.tables,(n=>i(this,void 0,void 0,(function*(){const r=n.idbtrans;r.disableChangeTracking=!0,r.disableAccessControl=!0;const o=n.storeNames.filter((e=>e.endsWith("_mutations"))),i=(yield Promise.all(o.map((e=>n.table(e).count())))).reduce(((e,t)=>e+t),0);if(i>0&&!t)return[i,!1];e.$syncState.delete("syncState");for(const t of e.dx.tables)"$jobs"!==t.name&&"$syncState"!==t.name&&t.clear();return[i,!0]}))));return r&&(yield Rt(e.cloud.currentUser,(e=>e.userId===Lt.userId)),yield e.cloud.sync({purpose:"pull",wait:!0})),n}))}class Mt extends Error{constructor(e,t){super(t||`${e.status} ${e.statusText}`),this.httpStatus=e.status}get name(){return"HttpError"}}function Ft(e,...t){globalThis.console[e](...t)}function Wt(e,t){return i(this,void 0,void 0,(function*(){var n;const r=yield e.getCurrentUser(),o=r.userId;if(r.isLoggedIn&&(!t||!t.email&&!t.userId)){if("ok"===((null===(n=r.license)||void 0===n?void 0:n.status)||"ok")&&r.accessToken&&(!r.accessTokenExpiration||r.accessTokenExpiration.getTime()>Date.now()))return!1;if(r.refreshToken&&(!r.refreshTokenExpiration||r.refreshTokenExpiration.getTime()>Date.now()))return yield Ct(e),!1}const s=new $t(e,{claims:{},lastLogin:new Date(0)});return yield Pt(e.cloud.options.databaseUrl,s,e.cloud.options.fetchTokens||function(e){const{userInteraction:t}=e.cloud;return function(n){return i(this,arguments,void 0,(function*({public_key:n,hints:r}){var o;let i;const s=null===(o=e.cloud.options)||void 0===o?void 0:o.databaseUrl;if(!s)throw new Error("No database URL given.");if("demo"===(null==r?void 0:r.grant_type))i={demo_user:yield jt(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 jt(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 a=yield fetch(`${s}/token`,{body:JSON.stringify(i),method:"post",headers:{"Content-Type":"application/json",mode:"cors"}});if(200!==a.status){const e=yield a.text();throw yield Tt(t,"Token request failed",{type:"error",messageCode:"GENERIC_ERROR",message:e,messageParams:{}}).catch((()=>{})),new Mt(a,e)}const c=yield a.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 ${s}/token`);const e=yield At(t,i.email),r=Object.assign(Object.assign({},i),{otp:e||"",otp_id:c.otp_id,public_key:n});let o=yield fetch(`${s}/token`,{body:JSON.stringify(r),method:"post",headers:{"Content-Type":"application/json"},mode:"cors"});for(;401===o.status;){const e=yield o.text();r.otp=yield At(t,i.email,{type:"error",messageCode:"INVALID_OTP",message:e,messageParams:{}}),o=yield fetch(`${s}/token`,{body:JSON.stringify(r),method:"post",headers:{"Content-Type":"application/json"},mode:"cors"})}if(200!==o.status){const e=yield o.text();throw new Mt(o,e)}return yield o.json()}throw new Error(`Unexpected response from ${s}/token`)}))}}(e),e.cloud.userInteraction,t),o!==Lt.userId&&s.userId!==o&&(yield Nt(e)),yield function(e,t){return i(this,void 0,void 0,(function*(){const n=e.table("$logins");yield e.transaction("rw",n,(e=>i(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&&(Ft("debug","Login context property names:",Object.keys(t)),Ft("debug","Login context property names:",Object.keys(t)),Ft("debug","Login context:",t),Ft("debug","Login context JSON:",JSON.stringify(t)))}catch(e){}throw e}})))),yield Rt(e.cloud.currentUser,(e=>e.userId===t.userId))}))}(e,s),wt(e,"pull"),s.userId!==o}))}const Vt={},Kt="undefined"!=typeof self&&self.document&&"undefined"!=typeof navigator&&navigator.serviceWorker;Kt&&Kt.ready.then((e=>Vt.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 Ht{constructor(e){this.name=e}subscribe(e){if(!Kt)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 Kt.addEventListener("message",t),()=>Kt.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}))):Vt.registration&&(null===(t=Vt.registration.active)||void 0===t||t.postMessage({type:`sw-broadcast-${this.name}`,message:e}))}}const zt=globalThis["lbc-events"]||(globalThis["lbc-events"]=new Map);class qt extends n.Observable{constructor(e){const t="undefined"==typeof BroadcastChannel?new Ht(e):new BroadcastChannel(e);super((n=>{function r(e){n.next(e.detail)}function o(e){n.next(e.data)}let i;!function(e,t){zt.has(e)?zt.get(e).push(t):zt.set(e,[t])}(`lbc-${e}`,r);try{t instanceof Ht?i=t.subscribe((e=>n.next(e))):t.addEventListener("message",o)}catch(e){}return()=>{!function(e,t){const n=zt.get(e);if(n){const e=n.indexOf(t);-1!==e&&n.splice(e,1)}}(`lbc-${e}`,r),t instanceof Ht?i():t.removeEventListener("message",o)}})),this.name=e,this.bc=t}next(e){this.bc.postMessage(e);!function(e){const t=zt.get(e.type);t&&t.forEach((t=>{try{t(e)}catch(e){}}))}(new CustomEvent(`lbc-${this.name}`,{detail:e}))}}function Yt(e){return i(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),o=yield crypto.subtle.digest("SHA-1",r);return It(o)}))}function Jt(e){return Object.entries(e.cloud.schema||{}).filter((([,{markedForSync:e}])=>e)).map((([t])=>e.tables.filter((({name:e})=>e===t))[0])).filter((e=>e))}function Gt(e){return`$${e}_mutations`}function Qt(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 Xt=[].concat;function Zt(e){return Xt.apply([],e)}function en(e,t){return i(this,arguments,void 0,(function*(e,t,{since:n={},limit:r=1/0}={}){const o=Zt(yield Promise.all(e.map((e=>i(this,void 0,void 0,(function*(){const t=Qt(e.name),o=n[t];let i=o?e.where("rev").above(o):e;r<1/0&&(i=i.limit(r));return(yield i.toArray()).map((e=>({table:t,mut:e})))})))))).sort(((e,t)=>e.mut.txid===t.mut.txid?e.mut.opNo-t.mut.opNo:e.mut.ts-t.mut.ts)),s=[];let a=null,c=null;for(const{table:e,mut:t}of o)a&&a.table===e&&c===t.txid?a.muts.push(t):(a={table:e,muts:[t]},c=t.txid,s.push(a));return s}))}function tn(e){const t=new Uint8Array(e);if("undefined"!=typeof crypto)crypto.getRandomValues(t);else for(let n=0;n<e;n++)t[n]=Math.floor(256*Math.random());if("undefined"!=typeof Buffer&&Buffer.from)return Buffer.from(t).toString("base64");if("undefined"!=typeof btoa)return btoa(String.fromCharCode.apply(null,t));throw new Error("No btoa or Buffer available")}const{toString:nn}={};const rn={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 on(...e){const t=e.reduce(((e,t)=>({...e,...t})),e.reduce(((e,t)=>({...t,...e})),{})),n=new WeakMap;return{stringify(e,r,o){const i=JSON.stringify(e,(function(e){const o=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 rn;let i=n.get(r);if(void 0!==i)return i;const s=(o=e,nn.call(o).slice(8,-1)),a=Object.entries(t).find((([t,n])=>{var r,o;return null!==(o=null===(r=null==n?void 0:n.test)||void 0===r?void 0:r.call(n,e,s))&&void 0!==o?o:t===s}));return i=null==a?void 0:a[1],i||(i=Array.isArray(e)?null:"function"==typeof e?t.function||null:rn),n.set(r,i),i}default:return t[r]}var o}(o);return i?i.replace(o,r,t):o}),o);return i},parse(e,n){const r=[];return JSON.parse(e,(function(e,o){const i=null==o?void 0:o.$t;if(i){const e=t[i];o=e?e.revive(o,n,t):o}let s=r[r.length-1];if(s&&s[0]===o){o={...o};for(const e of s[1])delete o[e];for(const[e,t]of Object.entries(s[2]))o[e]=t;r.pop()}if(void 0===o||"$"===e[0]&&"$t"!==e){let t,n;s=r[r.length-1],s&&s[0]===this?(t=s[1],n=s[2]):r.push([this,t=[],n={}]),"$"===e[0]&&"$t"!==e?(t.push(e),n[e.substr(1)]=o):n[e]=void 0}return o}))}}}const sn={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 an={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 cn={bigint:{replace:e=>({$t:"bigint",v:""+e}),revive:e=>BigInt(e.v)}};var ln={Date:{replace:e=>({$t:"Date",v:isNaN(e.getTime())?"NaN":e.toISOString()}),revive:({v:e})=>new Date("NaN"===e?NaN:Date.parse(e))}},un={Set:{replace:e=>({$t:"Set",v:Array.from(e.entries())}),revive:({v:e})=>new Set(e)}},dn={Map:{replace:e=>({$t:"Map",v:Array.from(e.entries())}),revive:({v:e})=>new Map(e)}};const fn="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof global?global:void 0;var pn=["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 o=fn[t];return o&&new o(r.ArrayBuffer.revive({v:e},n,r))}}})),{});function yn(e){return function(e){for(var t="",n=0,r=e.length;n<r;n++)t+=mn[e[n]];return t}(It(e))}function hn(e){return xt(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+=vn[e[n]];return t}(e))}const vn={"-":"=",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:"+","|":"/"},mn={};for(const e of Object.keys(vn))mn[vn[e]]=e;var bn={ArrayBuffer:{replace:e=>({$t:"ArrayBuffer",v:yn(e)}),revive:({v:e})=>{const t=hn(e);return t.buffer.byteLength===t.byteLength?t.buffer:t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}}};class gn{constructor(e,t){this.buf=e,this.type=t}}function _n(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 wn(e){const t=new Uint8Array(e.length);for(let n=0;n<e.length;++n)t[n]=e.charCodeAt(n);return t.buffer}var kn={Blob:{test:(e,t)=>"Blob"===t||e instanceof gn,replace:e=>({$t:"Blob",v:It(e instanceof gn?e.buf:wn(_n(e))),type:e.type}),revive:({type:e,v:t})=>{const n=xt(t);return void 0!==typeof Blob?new Blob([n]):new gn(n.buffer,e)}}};const Sn={...an,...cn,...ln,...un,...dn,...pn,...bn,...kn};function xn(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 In={undefined:{replace:()=>({$t:"undefined"}),revive:()=>{}}},En={File:{test:(e,t)=>"File"===t,replace:e=>({$t:"File",v:It(wn(_n(e))),type:e.type,name:e.name,lastModified:new Date(e.lastModified).toISOString()}),revive:({type:e,v:t,name:n,lastModified:r})=>{const o=xt(t);return new File([o],n,{type:e,lastModified:new Date(r).getTime()})}}};const On="function"==typeof BigInt&&"bigint"==typeof BigInt(0);class Tn{toString(){return this.v}constructor(e){this.v=e}}const jn=On?{}:{bigint:{test:e=>e instanceof Tn,replace:e=>Object.assign({$t:"bigint"},e),revive:({v:e})=>new Tn(e)}},An=Object.assign(Object.assign(Object.assign(Object.assign({},In),jn),En),{PropModification:{test:e=>e instanceof t.PropModification,replace:e=>Object.assign({$t:"PropModification"},e["@@propmod"]),revive:e=>{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 o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}(e,["$t"]);return new t.PropModification(n)}}}),Cn=on(Sn,An),Pn=function(...e){const t=on(Sn,sn,...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),o=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[o,r]},async parse(e,n){let r=0;const o=[],i=await xn(n),s=new DataView(i);for(;r<i.byteLength;){const e=s.getUint32(r);r+=4;const t=i.slice(r,r+e);r+=e,o.push(t)}return t.parse(e,o)},async fromBinary(e){const t=new DataView(await xn(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)}}}(An);function Un(e,n,r){const o=[];for(let i of r){const{table:r,muts:s}=i,a=e.tables.find((e=>e.name===r));if(!a)throw new Error(`Internal error: table ${r} not found in DBCore schema`);const{primaryKey:c}=a;let l=i;s.forEach(((e,r)=>{const o=!c.outbound&&("upsert"===e.type||"insert"===e.type);e.keys.forEach(((e,s)=>{if(Array.isArray(e)){l===i&&(l=Dn(i,o));const t=l.muts[r],n=JSON.stringify(e);t.keys[s]=n}else if("#"===e[0]){l===i&&(l=Dn(i,o));const a=l.muts[r];if(!n.isLoggedIn)throw new Error("Internal error: Cannot sync private IDs before authenticated");const u=`${e}:${n.userId}`;a.keys[s]=u,o&&t.setByKeyPath(a.values[s],c.keyPath,u)}}))})),o.push(l)}return o}function Dn(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 $n=new WeakMap;function Ln(e){return i(this,void 0,void 0,(function*(){var t,n;const r=(null!==(n=null===(t=$n.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 Rn(e,t,n,r,o,s,a,c,l){return i(this,void 0,void 0,(function*(){const i={Accept:"application/json, application/x-bison, application/x-bison-stream","Content-Type":"application/tson"},u=yield Ct(o),d=null==u?void 0:u.accessToken;d&&(i.Authorization=`Bearer ${d}`);const f={v:2,dbID:null==n?void 0:n.remoteDbId,clientIdentity:c,schema:a||{},lastPull:n?{serverRevision:n.serverRevision,yServerRevision:n.yServerRevision,realms:n.realms,inviteRealms:n.inviteRealms}:void 0,baseRevs:r,changes:Un(o.dx.core.schema,l,e),y:t,dxcv:o.cloud.version};o.syncStateChangedEvent.next({phase:"pushing"});const p=Cn.stringify(f),y=yield fetch(`${s}/sync`,{method:"post",headers:i,credentials:"include",body:p});if(o.syncStateChangedEvent.next({phase:"pulling"}),function(e,t){const n=t.headers.get("Ratelimit-Limit"),r=t.headers.get("Ratelimit-Remaining"),o=t.headers.get("Ratelimit-Reset");if(n&&r&&o){const t=Number(n),i=Math.max(0,Number(r)),s=Number(o);if(i<t/2){const t=Math.ceil(s/(i+1));$n.set(e,new Date(Date.now()+1e3*t))}else $n.delete(e)}}(o,y),!y.ok)throw new Mt(y);if("application/x-bison"===y.headers.get("content-type"))return Pn.fromBinary(yield y.blob());{const e=yield y.text();return Cn.parse(e)}}))}function Nn(e){if(null==e?void 0:e.cancelled)throw new t.AbortError("Operation was cancelled")}let Bn=!1;function Mn(e,t,n,r){return i(this,void 0,void 0,(function*(){yield e.$baseRevs.bulkPut(Object.keys(t).filter((e=>t[e].markedForSync)).map((e=>({tableName:e,clientRev:(n[e]||0)+1,serverRev:r}))))}))}function Fn(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 Wn(e,n,r){return i(this,void 0,void 0,(function*(){const o=yield e.bulkGet(n),i=[],s=[];n.forEach(((n,a)=>{const c=o[a];if(c){for(const[o,i]of Object.entries(r[a]))if(o===e.schema.primKey.keyPath){if(0!==t.cmp(i,n))throw new Error("Cannot change primary key")}else t.setByKeyPath(c,o,i);i.push(n),s.push(c)}})),yield null==e.schema.primKey.keyPath?e.bulkPut(s,i):e.bulkPut(s)}))}function Vn(e,n){return i(this,void 0,void 0,(function*(){for(const{table:r,muts:o}of e){if(!n.dx._allTables[r])continue;const e=n.table(r),{primaryKey:i}=e.core.schema,s=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 o){const r=n.keys.map(s);switch(n.type){case"insert":i.outbound?yield e.bulkAdd(n.values,r):(r.forEach(((e,r)=>{t.setByKeyPath(n.values[r],i.keyPath,e)})),yield e.bulkAdd(n.values));break;case"upsert":i.outbound?yield e.bulkPut(n.values,r):(r.forEach(((e,r)=>{t.setByKeyPath(n.values[r],i.keyPath,e)})),yield e.bulkPut(n.values));break;case"modify":1===r.length?yield e.update(r[0],n.changeSpec):yield e.where(":id").anyOf(r).modify(n.changeSpec);break;case"update":yield Wn(e,r,n.changeSpecs);break;case"delete":yield e.bulkDelete(r)}}}}))}"undefined"!=typeof self&&"undefined"!=typeof navigator&&(Bn=navigator.onLine,self.addEventListener("online",(()=>Bn=!0)),self.addEventListener("offline",(()=>Bn=!1)));const Kn="dexie-cloud-syncer";function Hn(e,t){return e.where("i").between(t,1/0,!0).toArray()}function zn(e){const t=e.dx._options.Y;if(!t)throw new Error("Y library not supplied to Dexie constructor");return t}function qn(e,t,n){var r,o,i;if(!e.dx._allTables[t])return;const s=null===(i=null===(o=null===(r=e.table(t))||void 0===r?void 0:r.schema.yProps)||void 0===o?void 0:o.find((e=>e.prop===n)))||void 0===i?void 0:i.updatesTable;return s&&e.dx._allTables[s]?e.table(s):void 0}function Yn(e,n){return i(this,void 0,void 0,(function*(){var r;const o={};let s,a=!1;for(const c of e)try{switch(c.type){case"u-s":{const e=qn(n,c.table,c.prop);if(e){const t={k:c.k,u:c.u};c.r&&(t.r=c.r,s=c.r),o[e.name]=yield e.add(t)}break}case"u-ack":{const e=qn(n,c.table,c.prop);e&&(yield n.transaction("rw",e,(t=>i(this,void 0,void 0,(function*(){let n=yield t.table(e.name).get(Kn);yield t.table(e.name).put(Object.assign(Object.assign({},n||{i:Kn}),{unsentFrom:Math.max((null==n?void 0:n.unsentFrom)||1,c.i+1)}))})))));break}case"u-reject":{const e=qn(n,c.table,c.prop);if(!e)break;const o=null===(r=yield e.get(c.i))||void 0===r?void 0:r.k;if(null!=o){yield n.transaction("rw",e,(n=>(n.idbtrans._rejecting_y_ypdate=!0,e.where("i").aboveOrEqual(c.i).filter((e=>0===t.cmp(e.k,o)&&1==(1&(e.f||0)))).delete())));const r=t.DexieYProvider.getDocCache(n.dx).find(c.table,o,c.prop);r&&r.destroy()}break}case"in-sync":{const e=t.DexieYProvider.getDocCache(n.dx).find(c.table,c.k,c.prop);e&&!e.isSynced&&e.emit("sync",[!0]);break}case"y-complete-sync-done":s=c.yServerRev;break;case"outdated-server-rev":a=!0}}catch(e){}return{receivedUntils:o,resyncNeeded:a,yServerRevision:s}}))}const Jn=1,Gn=2,Qn=3;function Xn(e,n,r){return i(this,arguments,void 0,(function*(e,n,{yDownloadedRealms:r,realms:o}){if(r&&o&&o.every((e=>"*"===r[e])))return;const s=yield Ct(e),a={"Content-Type":"application/json",Accept:"application/octet-stream"};s&&(a.Authorization=`Bearer ${s.accessToken}`);const c=yield fetch(`${n}/y/download`,{body:Cn.stringify({downloadedRealms:r||{}}),method:"POST",headers:a,credentials:"include"});if(!c.ok)throw new Error(`Failed to download Yjs documents from server. Status: ${c.status}`);yield async function(e,...t){var n,r,o;let i=e();for(let e=0;e<t.length;e++)i=t[e](i);try{for(var s,a=!0,c=f(i);!(n=(s=await c.next()).done);a=!0)s.value,a=!1}catch(e){r={error:e}}finally{try{a||n||!(o=c.return)||await o.call(c)}finally{if(r)throw r.error}}}(function(e){return function(){return d(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 u(t.read());if(e)return yield u(void 0);yield yield u(n)}}finally{t.releaseLock()}}))}}(c),re,(function(r){return d(this,arguments,(function*(){var o,s,a,c;let l=null,d=null,p=null,y=[];function h(t){return i(this,void 0,void 0,(function*(){const r=y[y.length-1];if(y.length>0){if(!l||!d||!p)throw new Error(`Protocol error from ${n}/y/download`);const t=qn(e,d,p);t&&(yield t.bulkAdd(y)),y=[]}l&&(d&&p&&r||t)&&(yield e.$syncState.update("syncState",(e=>{const n=e.yDownloadedRealms||{};n[l]=t?"*":{tbl:d,prop:p,key:r.k},e.yDownloadedRealms=n})))}))}try{try{for(var v,m=!0,b=f(r);!(o=(v=yield u(b.next())).done);m=!0){c=v.value,m=!1;const e=new q(c);for(;Y(e);)switch(G(e)){case Jn:yield u(h(!0)),l=X(e);break;case Gn:yield u(h(!1)),d=X(e),p=X(e);break;case Qn:{const t=ne(e),n=J(e);y.push({k:t,u:n});break}}yield u(h(!1))}}catch(e){s={error:e}}finally{try{m||o||!(a=b.return)||(yield u(a.call(b)))}finally{if(s)throw s.error}}yield u(h(!0))}catch(e){throw e instanceof t.DexieError||(yield u(h(!1))),e}}))}))}))}const Zn="currentSyncWorker";function er(e,t,n,r){return tr(e,t,n,r).then((t=>((null==r?void 0:r.justCheckIfNeeded)||e.syncStateChangedEvent.next({phase:"in-sync"}),t))).catch((o=>i(this,void 0,void 0,(function*(){return(null==r?void 0:r.justCheckIfNeeded)?Promise.reject(o):Bn&&(null==r?void 0:r.retryImmediatelyOnFetchError)&&"TypeError"===(null==o?void 0:o.name)&&/fetch/.test(null==o?void 0:o.message)?(e.syncStateChangedEvent.next({phase:"error",error:o}),yield new Promise((e=>setTimeout(e,500))),yield er(e,t,n,Object.assign(Object.assign({},r),{retryImmediatelyOnFetchError:!1}))):(yield e.$syncState.update("syncState",{timestamp:new Date,error:""+o}),e.syncStateChangedEvent.next({phase:Bn?"error":"offline",error:new Error(""+(null==o?void 0:o.message)||o)}),Promise.reject(o))}))))}function tr(e,t,n){return i(this,arguments,void 0,(function*(e,t,n,{isInitialSync:r,cancelToken:o,justCheckIfNeeded:s,purpose:a}={isInitialSync:!1}){var c;if(!(null===(c=e.cloud.options)||void 0===c?void 0:c.databaseUrl))throw new Error("Internal error: sync must not be called when no databaseUrl is configured");const{databaseUrl:l}=t,u=yield e.getCurrentUser(),d=u.isLoggedIn?Jt(e):[],f=d.map((t=>e.table(Gt(t.name)))),p=yield e.getPersistedSyncState(),y=u.isLoggedIn,v=y?function(e,t){const n=(null==t?void 0:t.syncedTables)||[];return Jt(e).filter((e=>!n.includes(e.name)))}(e,p):[];Nn(o);const b=v.length>0;if(b){if(s)return!0;yield e.transaction("rw",v,(e=>i(this,void 0,void 0,(function*(){e.idbtrans.disableChangeTracking=!0,e.idbtrans.disableAccessControl=!0,yield function(e,t,n){return i(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!==Lt.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!==Lt.userId||(e.owner=t.userId)})):yield n.toCollection().modify((e=>{e.realmId&&r.has(e.realmId)||(e.owner&&e.owner!==Lt.userId||(e.owner=t.userId),e.realmId&&e.realmId!==Lt.userId||(e.realmId=t.userId))})))}))}(v,u,null==p?void 0:p.realms)})))),Nn(o)}const[g,_,w,{yMessages:k,lastUpdateIds:S}]=yield e.transaction("r",e.tables,(()=>i(this,void 0,void 0,(function*(){const t=yield e.getPersistedSyncState(),r=yield e.$baseRevs.toArray();let s=yield en(f,e);const a=yield function(e,t){return i(this,void 0,void 0,(function*(){const n=[],r={};for(const o of t)if(o.schema.yProps)for(const t of o.schema.yProps){const i=zn(e),s=e.table(t.updatesTable),a=yield s.get(Kn),c=(null==a?void 0:a.unsentFrom)||1,l=(null==a?void 0:a.receivedUntil)||0,u=Math.min(c,l+1),d=yield Hn(s,u);d.length>0&&(r[s.name]=d[d.length-1].i);const f={};for(const e of d){const t=1==(1&(e.f||0));if(t&&e.i<c)continue;const n=JSON.stringify(e.k)+"/"+t;let r=f[n];r?(r.u.push(e.u),r.i=Math.max(e.i,r.i)):(f[n]=r={i:e.i,k:e.k,isLocal:t,u:[]},r.u.push(e.u))}for(const{k:e,isLocal:r,u:s,i:a}of Object.values(f)){const c=1===s.length?s[0]:i.mergeUpdatesV2(s);if(r)n.push({type:"u-c",table:o.name,prop:t.prop,k:e,u:c,i:a});else{const r=i.encodeStateVectorFromUpdateV2(c);n.push({type:"sv",table:o.name,prop:t.prop,k:e,sv:r})}}}return{yMessages:n,lastUpdateIds:r}}))}(e,d);if(Nn(o),b){const e=[...(null==p?void 0:p.realms)||[],...(null==p?void 0:p.inviteRealms)||[]],c=yield function(e,t,n,r){return i(this,void 0,void 0,(function*(){const o=`upload-${tn(8)}`;if(t.isLoggedIn&&e.length>0){const s=new Set(r||[]);return(yield Promise.all(e.map((e=>i(this,void 0,void 0,(function*(){const{extractKey:r}=e.core.schema.primaryKey;if(!r)return{table:e.name,muts:[]};const i=n[e.name],a=(null==i?void 0:i.generatedGlobalId)?e.filter((e=>{return r(e),!s.has(e.realmId||"")&&(t=r(e),!(n=null==i?void 0:i.idPrefix)||"string"==typeof t&&t.startsWith(n));var t,n})):e.filter((e=>{const t=r(e);return!s.has(e.realmId||"")&&m(t)})),c=yield a.toArray();if(c.length>0){const n={type:"upsert",values:c,keys:c.map(r),userId:t.userId,txid:o};return{table:e.name,muts:[n]}}return{table:e.name,muts:[]}})))))).filter((e=>e.muts.length>0))}return[]}))}(v,u,n,e);return Nn(o),s=s.concat(c),[s,t,r,a]}return[s,t,r,a]})))),x=g.some((e=>e.muts.some((e=>e.keys.length>0))))||k.some((e=>"u-c"===e.type));if(s)return x;if("push"===a&&!x)return!1;const I=Fn(g,null==_?void 0:_.latestRevisions),E=(null==_?void 0:_.clientIdentity)||h(16);Nn(o);const O=yield Rn(g,k,_,w,e,l,n,E,u),{done:T,newSyncState:j}=yield e.transaction("rw",e.tables,(t=>i(this,void 0,void 0,(function*(){t.idbtrans.disableChangeTracking=!0,t.idbtrans.disableAccessControl=!0;for(const e of Object.keys(n))O.schema[e]&&(n[e]=O.schema[e]);yield e.$syncState.put(n,"schema");const r=yield en(f,e,{since:I});for(const t of f){const n=Qt(t.name);if(r.some((e=>e.table===n&&e.muts.length>0))){if(I[n]){const r=I[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()])}Fn(r,I),yield Mn(e,n,I,O.serverRevision);const o=yield e.getPersistedSyncState();yield function(e,t,n){return i(this,void 0,void 0,(function*(){const r=new Set,o=new Set,i=n?n.realms:[],s=n?n.inviteRealms:[],a=new Set(t.realms),c=new Set(t.realms.concat(t.inviteRealms));for(const e of i)a.has(e)||(o.add(e),c.has(e)||r.add(e));for(const e of s.concat(i))c.has(e)||r.add(e);if(r.size>0||o.size>0){const t=Jt(e);for(const e of t){let t=["realms","members","roles"].includes(e.name)?r:o;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(o.size>0&&(null==n?void 0:n.yDownloadedRealms))for(const e of o)delete n.yDownloadedRealms[e]}))}(e,O,o);const s=o||{syncedTables:[],latestRevisions:{},realms:[],inviteRealms:[],clientIdentity:E};y&&(s.syncedTables=d.map((e=>e.name)).concat(v.map((e=>e.name)))),s.latestRevisions=I,s.remoteDbId=O.dbId,s.initiallySynced=!0,s.realms=O.realms,s.inviteRealms=O.inviteRealms,s.serverRevision=O.serverRevision,s.yServerRevision=O.serverRevision,s.timestamp=new Date,delete s.error;const a=nr(O.changes,r);if(yield Vn(a,e),O.yMessages){const{receivedUntils:t,resyncNeeded:n,yServerRevision:r}=yield Yn(O.yMessages,e);r&&(s.yServerRevision=r),yield function(e,t,n){return i(this,void 0,void 0,(function*(){var r,o,s,a,c;const l={};for(const[t,n]of Object.entries(e))null!==(r=l[t])&&void 0!==r||(l[t]={}),l[t].unsentFrom=n+1;for(const[e,n]of Object.entries(t))null!==(o=l[e])&&void 0!==o||(l[e]={}),l[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=l[e],r=null!==(s=null==t?void 0:t.unsentFrom)&&void 0!==s?s:1,o=null!==(c=null!==(a=null==t?void 0:t.receivedUntil)&&void 0!==a?a:(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,(()=>i(this,void 0,void 0,(function*(){const t=yield n.table(e).get(Kn);t?(t.unsentFrom=Math.max(r,t.unsentFrom||1),t.receivedUntil=Math.max(o,t.receivedUntil||0),yield n.table(e).put(t)):yield n.table(e).add({i:Kn,unsentFrom:r,receivedUntil:o})}))))}}))}(S,t,e),n&&(s.yDownloadedRealms={})}return e.$syncState.put(s,"syncState"),{done:0===r.length,newSyncState:s}}))));if(!T)return yield Ln(e),yield tr(e,t,n,{isInitialSync:r,cancelToken:o});const A=Object.values(n).some((e=>{var t;return null===(t=e.yProps)||void 0===t?void 0:t.length})),C=!!O.yMessages;if(A&&C)try{yield Xn(e,l,j)}catch(e){}return e.syncCompleteEvent.next(),!1}))}function nr(e,t){const n={};_(n,e);const r={};return _(r,t),function(e,t){var n,r,o;for(const[i,s]of Object.entries(t))for(const[t,a]of Object.entries(s))switch(a.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===(o=e[i])||void 0===o?void 0:o[t];if(n)switch(n.type){case"ups":for(const[e,t]of Object.entries(a.mod))y(n.val,e,t);break;case"del":break;case"upd":for(const e of Object.keys(a.mod))delete n.mod[e]}break}}}(n,r),function(e,t=""){t||(t=h(16));const n={};for(const[t,r]of Object.entries(e))for(const[e,o]of Object.entries(r)){const r=n[t]||(n[t]={});(r[o.type]||(r[o.type]=[])).push(Object.assign({key:e},o))}const r=[];for(const[e,o]of Object.entries(n)){const n={table:e,muts:[]};for(const[e,r]of Object.entries(o))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 rr=10,or=1e4,ir=1e3;function sr(e){const r=[],o=new n.BehaviorSubject(!0),s=new n.BehaviorSubject(null);let a=!1,c=new Array(rr).fill(0);return s.subscribe((()=>i(this,void 0,void 0,(function*(){if(!a&&r.length>0){a=!0,c.shift(),c.push(Date.now()),o.next(!1);try{yield function(){return i(this,void 0,void 0,(function*(){for(var o,s,a,c,l,u;r.length>0;){const d=r.shift();try{yield n.firstValueFrom(e.cloud.syncState.pipe(yt((({phase:e})=>"in-sync"===e||"error"===e))));const r=e.cloud.persistedSyncState.value;if(!d)continue;switch(d.type){case"token-expired":const n=e.cloud.currentUser.value,f=yield Ut(e.cloud.options.databaseUrl,n);yield e.table("$logins").update(n.userId,{accessToken:f.accessToken,accessTokenExpiration:f.accessTokenExpiration,claims:f.claims,license:f.license,data:f.data});break;case"realm-added":(null===(o=null==r?void 0:r.realms)||void 0===o?void 0:o.includes(d.realm))||(null===(s=null==r?void 0:r.inviteRealms)||void 0===s?void 0:s.includes(d.realm))||(yield e.cloud.sync({purpose:"pull",wait:!0}));break;case"realm-accepted":(null===(a=null==r?void 0:r.realms)||void 0===a?void 0:a.includes(d.realm))||(yield e.cloud.sync({purpose:"pull",wait:!0}));break;case"realm-removed":((null===(c=null==r?void 0:r.realms)||void 0===c?void 0:c.includes(d.realm))||(null===(l=null==r?void 0:r.inviteRealms)||void 0===l?void 0:l.includes(d.realm)))&&(yield e.cloud.sync({purpose:"pull",wait:!0}));break;case"realms-changed":yield e.cloud.sync({purpose:"pull",wait:!0});break;case"changes":if("error"===(null===(u=e.cloud.syncState.value)||void 0===u?void 0:u.phase)){wt(e,"pull");break}yield e.transaction("rw",e.dx.tables,(n=>i(this,void 0,void 0,(function*(){n.idbtrans.disableChangeTracking=!0,n.idbtrans.disableAccessControl=!0;const[r,o,i]=yield Promise.all([e.getSchema(),e.getPersistedSyncState(),e.getCurrentUser()]);if(!o||!r||!i)return;if(d.baseRev!==o.serverRevision)return void("string"!=typeof d.baseRev||"bigint"!=typeof o.serverRevision&&"object"!=typeof o.serverRevision||wt(e,"pull"));if((yield t.waitFor(Yt(o)))!==d.realmSetHash)return void wt(e,"pull");let s=[];if(i.isLoggedIn){const t=Jt(e).map((t=>e.table(Gt(t.name))));s=yield en(t,e)}if(d.changes.length>0){const t=nr(d.changes,s);yield Vn(t,e)}o.latestRevisions=Fn(s,o.latestRevisions),o.serverRevision=d.newRev,yield Mn(e,r,o.latestRevisions,d.newRev),yield e.$syncState.put(o,"syncState")}))))}}catch(e){}}}))}()}finally{c[c.length-1]-c[0]<or&&(yield new Promise((e=>setTimeout(e,ir)))),a=!1,o.next(!0)}}})))),{enqueue:function(e){r.push(e),s.next(null)},readyToServe:o}}const ar=new WeakMap,cr={members:"@id, [userId+realmId], [email+realmId], realmId",roles:"[realmId+name]",realms:"@realmId",$jobs:"",$syncState:"",$baseRevs:"[tableName+clientRev]",$logins:"claims.sub, lastLogin"};let lr=0;function ur(e){"vip"in e&&(e=e.vip);let t=ar.get(e.cloud);if(!t){const r=new n.Subject;let o=new qt(`syncstatechanged-${e.name}`),i=new qt(`synccomplete-${e.name}`);r.id=++lr;let s=!1;t={get name(){return e.name},close:()=>e.close(),transaction:e.transaction.bind(e),table:e.table.bind(e),get tables(){return e.tables},cloud:e.cloud,get $jobs(){return e.table("$jobs")},get $syncState(){return e.table("$syncState")},get $baseRevs(){return e.table("$baseRevs")},get $logins(){return e.table("$logins")},get realms(){return e.realms},get members(){return e.members},get roles(){return e.roles},get initiallySynced(){return s},localSyncEvent:r,get syncStateChangedEvent(){return o},get syncCompleteEvent(){return i},dx:e};const a={getCurrentUser:()=>t.$logins.toArray().then((e=>e.find((e=>e.isLoggedIn))||Lt)),getPersistedSyncState:()=>t.$syncState.get("syncState"),getSchema:()=>t.$syncState.get("schema").then((e=>{if(e)for(const r of t.tables)r.schema.primKey&&r.schema.primKey.keyPath&&e[r.name]&&(e[r.name].primaryKey="string"==typeof(n=r.schema.primKey.keyPath)?n:n?"["+[].join.call(n,"+")+"]":"");var n;return e})),getOptions:()=>t.$syncState.get("options"),setInitiallySynced(e){s=e},reconfigure(){o=new qt(`syncstatechanged-${e.name}`),i=new qt(`synccomplete-${e.name}`)}};Object.assign(t,a),t.messageConsumer=sr(t),t.messageProducer=new n.Subject,ar.set(e.cloud,t)}return t}const dr="undefined"!=typeof InstallTrigger,fr="undefined"!=typeof navigator&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\/|Edge\//.test(navigator.userAgent),pr=fr?[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]:NaN,yr=fr&&pr<=605||dr,hr="undefined"!=typeof self&&"clients"in self&&!self.document;const{toString:vr}={};function mr(e){return vr.call(e).slice(8,-1)}function br(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 gr=/b|c|d|f|g|h|j|k|l|m|n|p|q|r|s|t|v|x|y|z/i;let _r=0;function wr(e,t){const n=new Uint8Array(18),r=new Uint8Array(n.buffer,0,6),o=Date.now();_r>=o?++_r:_r=o,r[0]=_r/1099511627776,r[1]=_r/4294967296,r[2]=_r/16777216,r[3]=_r/65536,r[4]=_r/256,r[5]=_r;const i=new Uint8Array(n.buffer,6);crypto.getRandomValues(i);return e+yn(new Uint8Array(n.buffer))+(t||"")}function kr(e){return{stack:"dbcore",name:"idGenerationMiddleware",level:1,create:n=>Object.assign(Object.assign({},n),{table:r=>{const o=n.table(r);return Object.assign(Object.assign({},o),{mutate:n=>{var i,s;const a=n.trans;if("versionchange"===a.mode&&(a.disableChangeTracking=!0,a.disableAccessControl=!0),a.disableChangeTracking)return o.mutate(n);if("add"===n.type||"put"===n.type){const a=null===(i=e.cloud.schema)||void 0===i?void 0:i[r];if(null==a?void 0:a.generatedGlobalId){if((null===(s=e.cloud.options)||void 0===s?void 0:s.databaseUrl)&&!e.initiallySynced){const e=br(o.schema.primaryKey,n);return o.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 o.mutate(n)}))}return function(n,i){let s=null;const a=br(o.schema.primaryKey,n);return a.forEach(((c,l)=>{if(void 0===c){const r=n.values[l].realmId||e.cloud.currentUserId,c=r.substr(r.length-3);a[l]=wr(i,c),o.schema.primaryKey.outbound||(s||(s=n.values.slice()),s[l]=t.deepClone(s[l]),t.setByKeyPath(s[l],o.schema.primaryKey.keyPath,a[l]))}else if("string"!=typeof c||!c.startsWith(i)&&!c.startsWith("#"+i))throw new t.ConstraintError(`The ID "${c}" is not valid for table "${r}". Primary '@' keys requires the key to be prefixed with "${i}" (or "#${i}).\nIf you want to generate IDs programmatically, remove '@' from the schema to get rid of this constraint. Dexie Cloud supports custom IDs as long as they are random and globally unique.`)})),o.mutate(Object.assign(Object.assign({},n),{keys:a,values:s||n.values}))}(n,a.idPrefix)}if(null==a?void 0:a.markedForSync){br(o.schema.primaryKey,n).forEach(((e,n)=>{if(!m(e)){const n=Array.isArray(e)?e.map(mr).join(","):mr(e);throw new t.ConstraintError(`Invalid primary key type ${n} for table ${r}. Tables marked for sync has primary keys of type string or Array of string (and optional numbers)`)}}))}}return o.mutate(n)}})}})}}let Sr=0;function xr(e,t){return function(n){const{readers:r,writers:o}=n.trans[t]||(n.trans[t]={writers:[],readers:[]}),i=o.length,s=(i>0?o[i-1].then((()=>e(n)),(()=>e(n))):e(n)).finally((()=>{r.splice(r.indexOf(s))}));return r.push(s),s}}function Ir(e,t){return function(n){const{readers:r,writers:o}=n.trans[t]||(n.trans[t]={writers:[],readers:[]});let i=(o.length>0?o[o.length-1].then((()=>e(n)),(()=>e(n))):r.length>0?(s=r,new Promise((e=>{0===s.length&&e([]);let t=s.length;const n=new Array(t);s.forEach(((r,o)=>Promise.resolve(r).then((e=>n[o]={status:"fulfilled",value:e}),(e=>n[o]={status:"rejected",reason:e})).then((()=>--t||e(n)))))}))).then((()=>e(n))):e(n)).finally((()=>{o.shift()}));var s;return o.push(i),i}}const Er=new n.BehaviorSubject(new Set);function Or(e){var t,n,r,o;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===(o=e.cloud.options)||void 0===o?void 0:o.databaseUrl)}function Tr({currentUserObservable:e,db:n}){return{stack:"dbcore",name:"MutationTrackingMiddleware",level:1,create:r=>{const o=new Set(r.schema.tables.map((e=>e.name))),i=r.schema.tables.filter((e=>!/^\$/.test(e.name))),s=new Map;for(const e of i){const t=`$${e.name}_mutations`;o.has(t)&&s.set(e.name,r.table(t))}return Object.assign(Object.assign({},r),{transaction:(t,o)=>{let i;if("readwrite"===o){const e=t.filter((e=>{var t,r;return null===(r=null===(t=n.cloud.schema)||void 0===t?void 0:t[e])||void 0===r?void 0:r.markedForSync})).map((e=>Gt(e)));i=r.transaction([...t,...e],o)}else i=r.transaction(t,o);if("readwrite"===o){i.txid=tn(16),i.opCount=0,i.currentUser=e.value,Er.value.add(i),Er.next(Er.value);const t=()=>{i.removeEventListener("complete",r),i.removeEventListener("error",t),i.removeEventListener("abort",t),Er.value.delete(i),Er.next(Er.value)},r=()=>{i.mutationsAdded&&!Or(n)&&wt(n,"push"),t()};i.addEventListener("complete",r),i.addEventListener("error",t),i.addEventListener("abort",t)}return i},table:e=>{const o=r.table(e);if(/^\$/.test(e))return e.endsWith("_mutations")?Object.assign(Object.assign({},o),{mutate:e=>("add"!==e.type&&"put"!==e.type||(e.trans.mutationsAdded=!0),o.mutate(e))}):"$logins"===e?Object.assign(Object.assign({},o),{mutate:e=>o.mutate(e).then((t=>(e.trans.mutationsAdded=!0,t))).catch((e=>Promise.reject(e)))}):o;const{schema:i}=o,a=s.get(e);return a?function(e){const t="$lock"+ ++Sr;return Object.assign(Object.assign({},e),{count:xr(e.count,t),get:xr(e.get,t),getMany:xr(e.getMany,t),openCursor:xr(e.openCursor,t),query:xr(e.query,t),mutate:Ir(e.mutate,t)})}(Object.assign(Object.assign({},o),{mutate:t=>{var r,s,a;const l=t.trans;return l.txid?l.disableChangeTracking?o.mutate(t):(null===(s=null===(r=n.cloud.schema)||void 0===r?void 0:r[e])||void 0===s?void 0:s.markedForSync)&&(null===(a=l.currentUser)||void 0===a?void 0:a.isLoggedIn)?"deleteRange"===t.type?o.query({query:{range:t.range,index:i.primaryKey},trans:t.trans,values:!1}).then((e=>c({type:"delete",keys:e.result,trans:t.trans,criteria:{index:null,range:t.range}}))):c(t):o.mutate(t):o.mutate(t)}})):o;function c(r){var s,c;const l=r.trans,u=null===(c=null===(s=n.cloud.options)||void 0===s?void 0:s.unsyncedProperties)||void 0===c?void 0:c[e],{txid:d,currentUser:{userId:f}}=l,{type:p}=r,y=++l.opCount;function h(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 o.mutate(r).then((e=>{var n;const{numFailures:o,failures:s}=e;let c="delete"===p?r.keys:e.results,v="values"in r?r.values:[],m="changeSpec"in r?r.changeSpec:void 0,b="updates"in r?r.updates:void 0;if(o&&(c=c.filter(((e,t)=>!s[t])),v=v.filter(((e,t)=>!s[t]))),u){if(v=v.map((e=>{const t=Object.assign({},e);for(const e of u)delete t[e];return t})),m&&(m=h(m),0===Object.keys(m).length))return e;if(b){let e=b.changeSpecs.map(h),n={keys:[],changeSpecs:[]};const r=new t.RangeSet;let o=!1;for(let t=0,i=e.length;t<i;++t)Object.keys(e[t]).length>0?(n.keys.push(b.keys[t]),n.changeSpecs.push(e[t]),r.addKey(b.keys[t])):o=!0;if(b=n,o){let e=[],t=[];for(let n=0,o=c.length;n<o;++n)r.hasKey(c[n])&&(e.push(c[n]),t.push(v[n]));c=e,v=t}}}const g=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 w="delete"===r.type?{type:"delete",ts:g,opNo:y,keys:c,criteria:_,txid:d,userId:f}:"add"===r.type?{type:"insert",ts:g,opNo:y,keys:c,txid:d,userId:f,values:v}:_&&m?{type:"modify",ts:g,opNo:y,keys:c,criteria:_,changeSpec:m,txid:d,userId:f}:m?{type:"update",ts:g,opNo:y,keys:c,changeSpecs:c.map((()=>m)),txid:d,userId:f}:b?{type:"update",ts:g,opNo:y,keys:b.keys,changeSpecs:b.changeSpecs,txid:d,userId:f}:{type:"upsert",ts:g,opNo:y,keys:c,values:v,txid:d,userId:f};return"isAdditionalChunk"in r&&r.isAdditionalChunk&&(w.isAdditionalChunk=!0),c.length>0||_?a.mutate({type:"add",trans:l,values:[w]}).then((()=>(l.mutationsAdded=!0,e))):e}))}}})}}}function jr(e,t){return function(n,r){var o;const i=Object.assign(Object.assign({},cr),n);Object.keys(cr).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())),o=cr[e].split(",").map((e=>e.trim())),s=new Set(r.map((e=>e.replace(/([&*]|\+\+)/g,""))));if(r[0]!==o[0])throw new Error(`Cannot override primary key of table ${e}. Please declare it as {${e}: ${JSON.stringify(cr[e])}`);for(let t=1;t<o.length;++t){const n=o[t];s.has(n.replace(/([&*]|\+\+)/g,""))||(i[e]+=`,${n}`)}}));const s=t.cloud.schema||(t.cloud.schema={}),a=new Set;Object.keys(i).forEach((e=>{const t=i[e],n=s[e]||(s[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,o=e.length;t<o&&n.length<3;++t)(gr.test(e[t])||(r=e[t])>="A"&&r<="Z")&&(n+=e[t].toLowerCase());for(var r,o,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;)o=n,r=(1&(i=e)?o[0].toUpperCase():o[0].toLowerCase())+(2&i?o[1].toUpperCase():o[1].toLowerCase())+(4&i?o[2].toUpperCase():o[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,a),a.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===(o=t.yProps)||void 0===o?void 0:o.length){const n=s[e];n&&(n.yProps=t.yProps.map((e=>e.prop)))}return c}}function Ar(e,t,n){return"undefined"!=typeof navigator&&navigator.locks?navigator.locks.request(e.name+"|"+t,(()=>n())):n()}const Cr=new n.BehaviorSubject(!0),Pr=new n.BehaviorSubject(!0);Cr.pipe(mt((e=>e?n.of(!0):n.of(!1).pipe(dt(2e4)))),ft()).subscribe(Pr);const Ur="undefined"!=typeof document?n.fromEvent(document,"visibilitychange"):n.of({}),Dr=Ur.pipe(yt((()=>"hidden"===document.visibilityState))),$r=Ur.pipe(yt((()=>"visible"===document.visibilityState))),Lr="undefined"!=typeof window?n.merge($r,n.fromEvent(window,"mousedown"),n.fromEvent(window,"mousemove"),n.fromEvent(window,"keydown"),n.fromEvent(window,"wheel"),n.fromEvent(window,"touchmove")):n.of({});"undefined"!=typeof document&&n.merge(n.of(!0),Dr,Lr).pipe(rt((()=>"visible"===document.visibilityState)),bt((e=>{Cr.value!==e&&Cr.next(e)})),mt((e=>e?n.of(0).pipe(dt(16e4),bt((()=>Cr.next(!1)))):n.of(0)))).subscribe((()=>{}));class Rr extends Error{constructor(){super(...arguments),this.name="TokenExpiredError"}}function Nr(e){var n,r;if(!(null===(n=e.cloud.options)||void 0===n?void 0:n.awarenessProtocol))throw new t.MissingAPIError('awarenessProtocol was not provided to db.cloud.configure(). Please import * as awarenessProtocol from "y-protocols/awareness".');return null===(r=e.cloud.options)||void 0===r?void 0:r.awarenessProtocol}const Br=new WeakMap,Mr=new WeakMap;function Fr(e){let t=Mr.get(e);return t||(t=new n.Subject,Mr.set(e,t)),t}class Wr extends n.Observable{constructor(e,t,n,r,o,i,s,a){super((c=>new Kr(e,t,n,r,o,a,c,i,s)))}}let Vr=0;class Kr extends n.Subscription{constructor(e,t,n,r,o,i,s,a,c){super((()=>this.teardown())),this.id=++Vr,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=o,this.user=i,this.subscriber=s,this.lastUserActivity=new Date,this.messageProducer=a,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 i(this,void 0,void 0,(function*(){if(this.lastServerActivity=new Date,this.pauseUntil&&this.pauseUntil>new Date)return;if(this.ws)throw new Error("Called connect() when a connection is already open");if(!this.databaseUrl)throw new Error("Cannot connect without a database URL");if(this.closed)return;const e=this.user.accessTokenExpiration;if(e&&e<new Date)return void this.subscriber.error(new Rr);this.webSocketStatus.next("connecting"),this.pinger=setInterval((()=>i(this,void 0,void 0,(function*(){if(this.closed)this.teardown();else if(this.ws)try{this.ws.send(JSON.stringify({type:"ping"})),setTimeout((()=>{this.pinger&&(this.closed?this.teardown():this.lastServerActivity<new Date(Date.now()-2e4)&&this.reconnect())}),2e4)}catch(e){this.reconnect()}else this.reconnect()}))),3e4);const r=new URL(this.databaseUrl);r.protocol="http:"===r.protocol?"ws":"wss";const o=new URLSearchParams;if(this.subscriber.closed)return;o.set("v","2"),this.rev&&o.set("rev",this.rev),this.yrev&&o.set("yrev",this.yrev),o.set("realmsHash",this.realmSetHash),o.set("clientId",this.clientIdentity),o.set("dxcv",this.db.cloud.version),this.user.accessToken&&o.set("token",this.user.accessToken);const s=this.ws=new WebSocket(`${r}/changes?${o}`);s.binaryType="arraybuffer",s.onclose=e=>{this.pinger&&this.reconnect()},s.onmessage=e=>{if(this.pinger){this.lastServerActivity=new Date;try{const n="string"==typeof e.data?Cn.parse(e.data):function(e){const t=new q(e),n=X(t);if("outdated-server-rev"===n)return{type:n};if("y-complete-sync-done"===n)return{type:n,yServerRev:X(t)};const r=X(t),o=X(t);switch(n){case"u-ack":case"u-reject":return{type:n,table:r,prop:o,i:Number(ee(t))};default:{const e=ne(t);switch(n){case"in-sync":case"doc-close":return{type:n,table:r,prop:o,k:e};case"aware":return{type:n,table:r,prop:o,k:e,u:J(t)};case"doc-open":return{type:n,table:r,prop:o,k:e,serverRev:ne(t),sv:ne(t)};case"sv":return{type:n,table:r,prop:o,k:e,sv:J(t)};case"u-c":return{type:n,table:r,prop:o,k:e,u:J(t),i:Number(ee(t))};case"u-s":return{type:n,table:r,prop:o,k:e,u:J(t),r:t.pos<t.arr.length&&X(t)||void 0};default:throw new TypeError(`Unknown message type: ${n}`)}}}}(new Uint8Array(e.data));if("error"===n.type)throw new Error(`Error message from dexie-cloud: ${n.error}`);if("aware"===n.type){const e=t.DexieYProvider.getDocCache(this.db.dx).find(n.table,n.k,n.prop);if(e){const t=(e=>Br.get(e))(e);if(t){Nr(this.db).applyAwarenessUpdate(t,n.u,"server")}}}else if("pong"===n.type);else if("doc-open"===n.type){const e=t.DexieYProvider.getDocCache(this.db.dx).find(n.table,n.k,n.prop);e&&Fr(e).next()}else"u-ack"===n.type||"u-reject"===n.type||"u-s"===n.type||"in-sync"===n.type||"outdated-server-rev"===n.type||"y-complete-sync-done"===n.type?Yn([n],this.db).then((e=>i(this,[e],void 0,(function*({resyncNeeded:e,yServerRevision:t,receivedUntils:r}){if(t&&(yield this.db.$syncState.update("syncState",{yServerRevision:t})),"u-s"===n.type&&r){const e=qn(this.db,n.table,n.prop);if(e){const t=r[e.name];t&&(yield e.update(Kn,{receivedUntil:t}))}}e&&(yield this.db.cloud.sync({purpose:"pull",wait:!0}))})))):this.subscriber.next(n)}catch(e){this.subscriber.error(e)}}};try{let e=!1;yield new Promise(((t,n)=>{s.onopen=n=>{e=!0,t(null)},s.onerror=t=>{if(e)this.reconnect();else{const e=t.error||new Error("WebSocket Error");this.subscriber.error(e),this.webSocketStatus.next("error"),n(e)}}})),this.subscriptions.add(this.messageProducer.subscribe((e=>{var t,n;this.closed||("ready"===e.type&&"connected"!==this.webSocketStatus.value&&this.webSocketStatus.next("connected"),"ready"===e.type?(this.rev=e.rev,null===(t=this.ws)||void 0===t||t.send(Cn.stringify(e))):null===(n=this.ws)||void 0===n||n.send(V(e)))}))),this.user.isLoggedIn&&!Or(this.db)&&this.subscriptions.add(function(e){const r=Zt(e.tables.filter((t=>{var n,r;return(null===(r=null===(n=e.cloud.schema)||void 0===n?void 0:n[t.name])||void 0===r?void 0:r.markedForSync)&&t.schema.yProps})).map((e=>e.schema.yProps.map((t=>({table:e.name,ydocProp:t.prop,updatesTable:t.updatesTable}))))));return n.merge(...r.map((({table:r,ydocProp:o,updatesTable:s})=>{const a=e.table(s);return n.from(a.get(Kn)).pipe(n.switchMap((e=>{let s=(null==e?void 0:e.unsentFrom)||1;return n.from(t.liveQuery((()=>i(this,void 0,void 0,(function*(){return(yield Hn(a,s)).filter((e=>e.f&&1&e.f)).map((e=>({type:"u-c",table:r,prop:o,k:e.k,u:e.u,i:e.i})))}))))).pipe(n.tap((e=>{e.length>0&&(s=e.at(-1).i+1)})))})))}))).pipe(n.mergeMap((e=>e)))}(this.db).subscribe(this.db.messageProducer))}catch(e){this.pauseUntil=new Date(Date.now()+6e4)}}))}}class Hr extends Error{constructor(e){super("expired"===e?"License expired":"deactivated"===e?"User deactivated":"Invalid license"),this.name="InvalidLicenseError",e&&(this.license=e)}}function zr(e){return i(this,void 0,void 0,(function*(){var e;yield(e=3e3,new Promise((t=>setTimeout(t,e)))),yield n.firstValueFrom(Lr)}))}function qr(e){return i(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 er(e,e.cloud.options,e.cloud.schema,{justCheckIfNeeded:!0}))}))}const Yr=new WeakMap;function Jr(e,t,n,r){const o=Yr.get(e);if(o){if(o.pull||"push"===(null==r?void 0:r.purpose))return o.promise;{let i=!1;const s=e.cloud.syncState.subscribe((e=>{"pulling"===e.phase&&(i=!0)}));return o.promise.then((()=>{s.unsubscribe()})).catch((e=>(s.unsubscribe(),Promise.reject(e)))).then((()=>{if(!i)return Jr(e,t,n,r)}))}}const s=function(){return i(this,void 0,void 0,(function*(){try{yield Ln(e),yield Ar(e,Zn,(()=>er(e,t,n,r))),Yr.delete(e)}catch(t){throw Yr.delete(e),t}}))}();return Yr.set(e,{promise:s,pull:"push"!==(null==r?void 0:r.purpose)}),s}const Gr=1e3;function Qr(e,t,n){let r=null,o={cancelled:!1},i=0,s=0;function a(r=1){setTimeout((()=>{const f=c?"pull":"push";s=Date.now(),Jr(e,t,n,{cancelToken:o,retryImmediatelyOnFetchError:!0,purpose:f}).then((()=>{if(o.cancelled)d();else if(c||l)return c=!1,l=!1,a();u=!1,i=0,s=0})).catch((e=>{if(o.cancelled)d(),u=!1,i=0,s=0;else if(r<5){const e=[0,20,40,300,900][r]*Gr;i=Date.now()+e,s=0,setTimeout((()=>a(r+1)),e)}else u=!1,i=0,s=0}))}),0)}let c=!1,l=!1,u=!1;const d=()=>{o.cancelled=!0,r&&r.unsubscribe()};return{start:()=>{r=e.localSyncEvent.subscribe((({purpose:e})=>{(e=>{o.cancelled||("pull"===e&&(c=!0),"push"===e&&(l=!0),u?i||s>0&&Date.now():(u=!0,a()))})(e||"pull")}))},stop:d}}function Xr(e,t){if(e&&t&&t.unsyncedTables)for(const n of t.unsyncedTables)e[n]&&(e[n].markedForSync=!1)}var Zr,eo,to,no,ro,oo={},io=[],so=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function ao(e,t){for(var n in t)e[n]=t[n];return e}function co(e){var t=e.parentNode;t&&t.removeChild(e)}function lo(e,t,n){var r,o,i,s={};for(i in t)"key"==i?r=t[i]:"ref"==i?o=t[i]:s[i]=t[i];if(arguments.length>2&&(s.children=arguments.length>3?Zr.call(arguments,2):n),"function"==typeof e&&null!=e.defaultProps)for(i in e.defaultProps)void 0===s[i]&&(s[i]=e.defaultProps[i]);return uo(e,s,r,o,null)}function uo(e,t,n,r,o){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==o?++to:o};return null==o&&null!=eo.vnode&&eo.vnode(i),i}function fo(e){return e.children}function po(e,t){this.props=e,this.context=t}function yo(e,t){if(null==t)return e.__?yo(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?yo(e):null}function ho(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 ho(e)}}function vo(e){(!e.__d&&(e.__d=!0)&&no.push(e)&&!mo.__r++||ro!==eo.debounceRendering)&&((ro=eo.debounceRendering)||setTimeout)(mo)}function mo(){for(var e;mo.__r=no.length;)e=no.sort((function(e,t){return e.__v.__b-t.__v.__b})),no=[],e.some((function(e){var t,n,r,o,i,s;e.__d&&(i=(o=(t=e).__v).__e,(s=t.__P)&&(n=[],(r=ao({},o)).__v=o.__v+1,Io(s,o,r,t.__n,void 0!==s.ownerSVGElement,null!=o.__h?[i]:null,n,null==i?yo(o):i,o.__h),Eo(n,o),o.__e!=i&&ho(o)))}))}function bo(e,t,n,r,o,i,s,a,c,l){var u,d,f,p,y,h,v,m=r&&r.__k||io,b=m.length;for(n.__k=[],u=0;u<t.length;u++)if(null!=(p=n.__k[u]=null==(p=t[u])||"boolean"==typeof p?null:"string"==typeof p||"number"==typeof p||"bigint"==typeof p?uo(null,p,null,null,p):Array.isArray(p)?uo(fo,{children:p},null,null,null):p.__b>0?uo(p.type,p.props,p.key,null,p.__v):p)){if(p.__=n,p.__b=n.__b+1,null===(f=m[u])||f&&p.key==f.key&&p.type===f.type)m[u]=void 0;else for(d=0;d<b;d++){if((f=m[d])&&p.key==f.key&&p.type===f.type){m[d]=void 0;break}f=null}Io(e,p,f=f||oo,o,i,s,a,c,l),y=p.__e,(d=p.ref)&&f.ref!=d&&(v||(v=[]),f.ref&&v.push(f.ref,null,p),v.push(d,p.__c||y,p)),null!=y?(null==h&&(h=y),"function"==typeof p.type&&p.__k===f.__k?p.__d=c=go(p,c,e):c=_o(e,p,f,m,y,c),"function"==typeof n.type&&(n.__d=c)):c&&f.__e==c&&c.parentNode!=e&&(c=yo(f))}for(n.__e=h,u=b;u--;)null!=m[u]&&("function"==typeof n.type&&null!=m[u].__e&&m[u].__e==n.__d&&(n.__d=yo(r,u+1)),jo(m[u],m[u]));if(v)for(u=0;u<v.length;u++)To(v[u],v[++u],v[++u])}function go(e,t,n){for(var r,o=e.__k,i=0;o&&i<o.length;i++)(r=o[i])&&(r.__=e,t="function"==typeof r.type?go(r,t,n):_o(n,r,r,o,r.__e,t));return t}function _o(e,t,n,r,o,i){var s,a,c;if(void 0!==t.__d)s=t.__d,t.__d=void 0;else if(null==n||o!=i||null==o.parentNode)e:if(null==i||i.parentNode!==e)e.appendChild(o),s=null;else{for(a=i,c=0;(a=a.nextSibling)&&c<r.length;c+=2)if(a==o)break e;e.insertBefore(o,i),s=i}return void 0!==s?s:o.nextSibling}function wo(e,t,n){"-"===t[0]?e.setProperty(t,n):e[t]=null==n?"":"number"!=typeof n||so.test(t)?n:n+"px"}function ko(e,t,n,r,o){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||wo(e.style,t,"");if(n)for(t in n)r&&n[t]===r[t]||wo(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?xo:So,i):e.removeEventListener(t,i?xo:So,i);else if("dangerouslySetInnerHTML"!==t){if(o)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 So(e){this.l[e.type+!1](eo.event?eo.event(e):e)}function xo(e){this.l[e.type+!0](eo.event?eo.event(e):e)}function Io(e,t,n,r,o,i,s,a,c){var l,u,d,f,p,y,h,v,m,b,g,_,w,k=t.type;if(void 0!==t.constructor)return null;null!=n.__h&&(c=n.__h,a=t.__e=n.__e,t.__h=null,i=[a]),(l=eo.__b)&&l(t);try{e:if("function"==typeof k){if(v=t.props,m=(l=k.contextType)&&r[l.__c],b=l?m?m.props.value:l.__:r,n.__c?h=(u=t.__c=n.__c).__=u.__E:("prototype"in k&&k.prototype.render?t.__c=u=new k(v,b):(t.__c=u=new po(v,b),u.constructor=k,u.render=Ao),m&&m.sub(u),u.props=v,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=ao({},u.__s)),ao(u.__s,k.getDerivedStateFromProps(v,u.__s))),f=u.props,p=u.state,d)null==k.getDerivedStateFromProps&&null!=u.componentWillMount&&u.componentWillMount(),null!=u.componentDidMount&&u.__h.push(u.componentDidMount);else{if(null==k.getDerivedStateFromProps&&v!==f&&null!=u.componentWillReceiveProps&&u.componentWillReceiveProps(v,b),!u.__e&&null!=u.shouldComponentUpdate&&!1===u.shouldComponentUpdate(v,u.__s,b)||t.__v===n.__v){u.props=v,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&&s.push(u);break e}null!=u.componentWillUpdate&&u.componentWillUpdate(v,u.__s,b),null!=u.componentDidUpdate&&u.__h.push((function(){u.componentDidUpdate(f,p,y)}))}if(u.context=b,u.props=v,u.__v=t,u.__P=e,g=eo.__r,_=0,"prototype"in k&&k.prototype.render)u.state=u.__s,u.__d=!1,g&&g(t),l=u.render(u.props,u.state,u.context);else do{u.__d=!1,g&&g(t),l=u.render(u.props,u.state,u.context),u.state=u.__s}while(u.__d&&++_<25);u.state=u.__s,null!=u.getChildContext&&(r=ao(ao({},r),u.getChildContext())),d||null==u.getSnapshotBeforeUpdate||(y=u.getSnapshotBeforeUpdate(f,p)),w=null!=l&&l.type===fo&&null==l.key?l.props.children:l,bo(e,Array.isArray(w)?w:[w],t,n,r,o,i,s,a,c),u.base=t.__e,t.__h=null,u.__h.length&&s.push(u),h&&(u.__E=u.__=null),u.__e=!1}else null==i&&t.__v===n.__v?(t.__k=n.__k,t.__e=n.__e):t.__e=Oo(n.__e,t,n,r,o,i,s,c);(l=eo.diffed)&&l(t)}catch(e){t.__v=null,(c||null!=i)&&(t.__e=a,t.__h=!!c,i[i.indexOf(a)]=null),eo.__e(e,t,n)}}function Eo(e,t){eo.__c&&eo.__c(t,e),e.some((function(t){try{e=t.__h,t.__h=[],e.some((function(e){e.call(t)}))}catch(e){eo.__e(e,t.__v)}}))}function Oo(e,t,n,r,o,i,s,a){var c,l,u,d=n.props,f=t.props,p=t.type,y=0;if("svg"===p&&(o=!0),null!=i)for(;y<i.length;y++)if((c=i[y])&&"setAttribute"in c==!!p&&(p?c.localName===p:3===c.nodeType)){e=c,i[y]=null;break}if(null==e){if(null===p)return document.createTextNode(f);e=o?document.createElementNS("http://www.w3.org/2000/svg",p):document.createElement(p,f.is&&f),i=null,a=!1}if(null===p)d===f||a&&e.data===f||(e.data=f);else{if(i=i&&Zr.call(e.childNodes),l=(d=n.props||oo).dangerouslySetInnerHTML,u=f.dangerouslySetInnerHTML,!a){if(null!=i)for(d={},y=0;y<e.attributes.length;y++)d[e.attributes[y].name]=e.attributes[y].value;(u||l)&&(u&&(l&&u.__html==l.__html||u.__html===e.innerHTML)||(e.innerHTML=u&&u.__html||""))}if(function(e,t,n,r,o){var i;for(i in n)"children"===i||"key"===i||i in t||ko(e,i,null,n[i],r);for(i in t)o&&"function"!=typeof t[i]||"children"===i||"key"===i||"value"===i||"checked"===i||n[i]===t[i]||ko(e,i,t[i],n[i],r)}(e,f,d,o,a),u)t.__k=[];else if(y=t.props.children,bo(e,Array.isArray(y)?y:[y],t,n,r,o&&"foreignObject"!==p,i,s,i?i[0]:n.__k&&yo(n,0),a),null!=i)for(y=i.length;y--;)null!=i[y]&&co(i[y]);a||("value"in f&&void 0!==(y=f.value)&&(y!==e.value||"progress"===p&&!y||"option"===p&&y!==d.value)&&ko(e,"value",y,d.value,!1),"checked"in f&&void 0!==(y=f.checked)&&y!==e.checked&&ko(e,"checked",y,d.checked,!1))}return e}function To(e,t,n){try{"function"==typeof e?e(t):e.current=t}catch(e){eo.__e(e,n)}}function jo(e,t,n){var r,o;if(eo.unmount&&eo.unmount(e),(r=e.ref)&&(r.current&&r.current!==e.__e||To(r,null,t)),null!=(r=e.__c)){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(e){eo.__e(e,t)}r.base=r.__P=null}if(r=e.__k)for(o=0;o<r.length;o++)r[o]&&jo(r[o],t,"function"!=typeof e.type);n||null==e.__e||co(e.__e),e.__e=e.__d=void 0}function Ao(e,t,n){return this.constructor(e,n)}function Co(e,t,n){var r,o,i;eo.__&&eo.__(e,t),o=(r="function"==typeof n)?null:n&&n.__k||t.__k,i=[],Io(t,e=(!r&&n||t).__k=lo(fo,null,[e]),o||oo,oo,void 0!==t.ownerSVGElement,!r&&n?[n]:o?null:t.firstChild?Zr.call(t.childNodes):null,i,!r&&n?n:o?o.__e:t.firstChild,r),Eo(i,e)}Zr=io.slice,eo={__e:function(e,t,n,r){for(var o,i,s;t=t.__;)if((o=t.__c)&&!o.__)try{if((i=o.constructor)&&null!=i.getDerivedStateFromError&&(o.setState(i.getDerivedStateFromError(e)),s=o.__d),null!=o.componentDidCatch&&(o.componentDidCatch(e,r||{}),s=o.__d),s)return o.__E=o}catch(t){e=t}throw e}},to=0,po.prototype.setState=function(e,t){var n;n=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=ao({},this.state),"function"==typeof e&&(e=e(ao({},n),this.props)),e&&ao(n,e),null!=e&&this.__v&&(t&&this.__h.push(t),vo(this))},po.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),vo(this))},po.prototype.render=fo,no=[],mo.__r=0;const Po={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"},DialogInner:{position:"relative",color:"#222",backgroundColor:"#fff",padding:"30px",marginBottom:"2em",maxWidth:"90%",maxHeight:"90%",overflowY:"auto",border:"3px solid #3d3d5d",borderRadius:"8px",boxShadow:"0 0 80px 10px #666",width:"auto",fontFamily:"sans-serif"},Input:{height:"35px",width:"17em",borderColor:"#ccf4",outline:"none",fontSize:"17pt",padding:"8px"}};function Uo({children:e,className:t}){return lo("div",{className:t},lo("div",{style:Po.Darken}),lo("div",{style:Po.DialogOuter},lo("div",{style:Po.DialogInner},e)))}var Do,$o,Lo,Ro,No=0,Bo=[],Mo=[],Fo=eo.__b,Wo=eo.__r,Vo=eo.diffed,Ko=eo.__c,Ho=eo.unmount;function zo(e,t){eo.__h&&eo.__h($o,e,No||t),No=0;var n=$o.__H||($o.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({__V:Mo}),n.__[e]}function qo(e){return No=1,function(e,t,n){var r=zo(Do++,2);if(r.t=e,!r.__c&&(r.__=[n?n(t):ei(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=$o,!$o.u)){$o.u=!0;var o=$o.shouldComponentUpdate;$o.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!o||o.call(this,e,t,n);var s=!1;return i.forEach((function(e){if(e.__N){var t=e.__[0];e.__=e.__N,e.__N=void 0,t!==e.__[0]&&(s=!0)}})),!!s&&(!o||o.call(this,e,t,n))}}return r.__N||r.__}(ei,e)}function Yo(e){return No=5,function(e,t){var n=zo(Do++,7);return Zo(n.__H,t)?(n.__V=e(),n.i=t,n.__h=e,n.__V):n.__}((function(){return{current:e}}),[])}function Jo(){for(var e;e=Bo.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(Qo),e.__H.__h.forEach(Xo),e.__H.__h=[]}catch(t){e.__H.__h=[],eo.__e(t,e.__v)}}eo.__b=function(e){$o=null,Fo&&Fo(e)},eo.__r=function(e){Wo&&Wo(e),Do=0;var t=($o=e.__c).__H;t&&(Lo===$o?(t.__h=[],$o.__h=[],t.__.forEach((function(e){e.__N&&(e.__=e.__N),e.__V=Mo,e.__N=e.i=void 0}))):(t.__h.forEach(Qo),t.__h.forEach(Xo),t.__h=[])),Lo=$o},eo.diffed=function(e){Vo&&Vo(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(1!==Bo.push(t)&&Ro===eo.requestAnimationFrame||((Ro=eo.requestAnimationFrame)||function(e){var t,n=function(){clearTimeout(r),Go&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,100);Go&&(t=requestAnimationFrame(n))})(Jo)),t.__H.__.forEach((function(e){e.i&&(e.__H=e.i),e.__V!==Mo&&(e.__=e.__V),e.i=void 0,e.__V=Mo}))),Lo=$o=null},eo.__c=function(e,t){t.some((function(e){try{e.__h.forEach(Qo),e.__h=e.__h.filter((function(e){return!e.__||Xo(e)}))}catch(n){t.some((function(e){e.__h&&(e.__h=[])})),t=[],eo.__e(n,e.__v)}})),Ko&&Ko(e,t)},eo.unmount=function(e){Ho&&Ho(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.forEach((function(e){try{Qo(e)}catch(e){t=e}})),t&&eo.__e(t,n.__v))};var Go="function"==typeof requestAnimationFrame;function Qo(e){var t=$o,n=e.__c;"function"==typeof n&&(e.__c=void 0,n()),$o=t}function Xo(e){var t=$o;e.__c=e.__(),$o=t}function Zo(e,t){return!e||e.length!==t.length||t.some((function(t,n){return t!==e[n]}))}function ei(e,t){return"function"==typeof t?t(e):t}function ti({message:e,messageCode:t,messageParams:n}){return e.replace(/\{\w+\}/gi,(e=>n[e.substring(1,e.length-1)]))}function ni({title:e,type:t,alerts:n,fields:r,submitLabel:o,cancelLabel:i,onCancel:s,onSubmit:a}){const[c,l]=qo({}),u=Yo(null);return function(e,t){var n=zo(Do++,4);!eo.__s&&Zo(n.__H,t)&&(n.__=e,n.i=t,$o.__h.push(n))}((()=>{var e;return null===(e=u.current)||void 0===e?void 0:e.focus()}),[]),lo(Uo,{className:"dxc-login-dlg"},lo(fo,null,lo("h3",{style:Po.WindowHeader},e),n.map((e=>lo("p",{style:Po.Alert[e.type]},ti(e)))),lo("form",{onSubmit:e=>{e.preventDefault(),a(c)}},Object.entries(r).map((([e,{type:t,label:n,placeholder:r}],o)=>lo("label",{style:Po.Label,key:o},n?`${n}: `:"",lo("input",{ref:0===o?u:void 0,type:t,name:e,autoComplete:"on",style:Po.Input,autoFocus:!0,placeholder:r,value:c[e]||"",onInput:n=>{var r;const o=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]:o});l(i),"otp"===t&&8===(null==o?void 0:o.trim().length)&&a(i)}})))))),lo("div",{style:Po.ButtonsDiv},lo(fo,null,lo("button",{type:"submit",style:Po.Button,onClick:()=>a(c)},o),i&&lo("button",{style:Po.Button,onClick:s},i))))}class ri extends po{constructor(e){super(e),this.observer=e=>this.setState({userInteraction:e}),this.state={userInteraction:void 0}}componentDidMount(){this.subscription=n.from(this.props.db.cloud.userInteraction).subscribe(this.observer)}componentWillUnmount(){this.subscription&&(this.subscription.unsubscribe(),delete this.subscription)}render(e,{userInteraction:t}){return t?lo(ni,Object.assign({},t)):null}}function oi(e){const t=new WeakMap;return n=>{let r=t.get(n);return r||(r=e(n),t.set(n,r)),r}}const ii=oi((e=>new n.BehaviorSubject(Lt)));function si(e,t){let r=t,o=n.from(e).pipe(n.map((e=>r=e)),n.share({resetOnRefCountZero:()=>n.timer(1e3)}));const i=new n.Observable((e=>{let t=!1;const n=o.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 ai=oi((e=>si(t.liveQuery((()=>e.roles.where({realmId:"rlm-public"}).toArray().then((e=>{const t={};for(const n of e.slice().sort(((e,t)=>(e.sortOrder||0)-(t.sortOrder||0))))t[n.name]=n;return t})))),{}))),ci=oi((e=>si(ii(e._novip).pipe(mt((n=>t.liveQuery((()=>e.transaction("r","realms","members",(()=>Promise.all([e.members.where({userId:n.userId}).toArray(),e.realms.toArray(),n.userId]).then((([e,t,n])=>({selfMembers:e,realms:t,userId:n})))))))))),{selfMembers:[],realms:[],get userId(){return e.cloud.currentUserId}})));function li(...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,o=t[e];t[e]=[...new Set([...o,...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 ui=oi((e=>function(e,t){let r;const o=e.pipe(n.map((e=>r=t(e))));return o.getValue=()=>void 0!==r?r:r=t(e.getValue()),o}(si(n.combineLatest([ci(e._novip),ai(e._novip)]).pipe(rt((([{selfMembers:e,realms:t,userId:n},r])=>({selfMembers:e,realms:t,userId:n,globalRoles:r})))),{selfMembers:[],realms:[],userId:Lt.userId,globalRoles:{}}),(({selfMembers:e,realms:t,userId:n,globalRoles:r})=>{const o=t.map((t=>{const o=e.filter((e=>e.realmId===t.realmId)),i=o.map((e=>e.permissions)).filter((e=>e)),s=Zt(o.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:"*"}:li(...i,...s)})})).reduce(((e,t)=>Object.assign(Object.assign({},e),{[t.realmId]:t})),{[n]:{realmId:n,owner:n,name:n,permissions:{manage:"*"}}});return o}))));class di{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 fi=oi((e=>{const r=ii(e._novip).pipe(mt((n=>t.liveQuery((()=>e.members.where({email:n.email||""}).toArray()))))),o=ui(e._novip),s=ci(e._novip);return si(n.combineLatest([r,s,o]).pipe(rt((([t,n,r])=>{const o=(e,t)=>Object.assign(Object.assign({},e),{[t.id]:Object.assign(Object.assign({},t),{realm:r[t.realmId]})}),s=t.reduce(o,{}),a=n.selfMembers.reduce(o,s);return Object.values(a).filter((e=>!e.accepted)).map((t=>Object.assign(Object.assign({},t),{accept(){return i(this,void 0,void 0,(function*(){yield e.members.update(t.id,{accepted:new Date})}))},reject(){return i(this,void 0,void 0,(function*(){yield e.members.update(t.id,{rejected:new Date})}))}})))}))),[])}));function pi(e){return r=>{var o;const s=r.doc,{parentTable:a}=s.meta||{};if(!(null===(o=e.cloud.schema)||void 0===o?void 0:o[a].markedForSync))return;let c;Object.defineProperty(r,"awareness",{get:()=>c||(c=function(e,r,o){const{parentTable:s,parentId:a,parentProp:c,updatesTable:l}=r.meta,u=Nr(e),d=new u.Awareness(r),f=Fr(r);return d.on("update",(({added:t,updated:n,removed:i},a)=>{const l=t.concat(n).concat(i),f=e.cloud.currentUser.value;if("server"!==a&&f.isLoggedIn&&!Or(e)){const t=u.encodeAwarenessUpdate(d,l);e.messageProducer.next({type:"aware",table:s,prop:c,k:r.meta.parentId,u:t}),o.destroyed&&e.messageProducer.next({type:"doc-close",table:s,prop:c,k:r.meta.parentId})}})),d.on("destroy",(()=>{u.removeAwarenessStates(d,[r.clientID],"provider destroyed")})),(()=>{i(this,void 0,void 0,(function*(){if(o.destroyed)return;let r=!1,u=1;const d=n.combineLatest([e.cloud.webSocketStatus,f.pipe(n.startWith(null))]).subscribe((([t])=>{if(o.destroyed)return;r="connected"===t;const n=e.cloud.currentUser.value;"connected"===t&&n.isLoggedIn&&!Or(e)&&(++u,p().catch((e=>{})))}));function p(){return i(this,void 0,void 0,(function*(){const n=u,d=e.table(l),f=e.$syncState,[p,y]=yield e.transaction("r",f,d,(()=>i(this,void 0,void 0,(function*(){const e=yield d.get(Kn),t=yield f.get("syncState");return[(null==e?void 0:e.receivedUntil)||0,(null==t?void 0:t.yServerRevision)||(null==t?void 0:t.serverRevision)]}))));if(o.destroyed||u!==n||!r)return;const h={type:"doc-open",table:s,prop:c,k:a,serverRev:y},v=yield d.where("i").between(p,1/0,!1).filter((e=>0===t.cmp(e.k,a)&&0==(1&(e.f||0)))).toArray();if(!o.destroyed&&u===n&&r){if(v.length>0){const t=zn(e),n=t.mergeUpdatesV2(v.map((e=>e.u))),r=t.encodeStateVectorFromUpdateV2(n);h.sv=r}e.messageProducer.next(h)}}))}o.addCleanupHandler(d)}))})(),d}(e,s,r),Br.set(s,c),c)})}}const yi={},hi=new WeakMap,vi=bi("tx"),mi=bi("unload");function bi(e){let n=null,r=!1,o=new Map;return{name:e,run(){return i(this,void 0,void 0,(function*(){!r&&o.size>0&&(r=!0,n&&(yield n.catch((()=>{}))),setTimeout((()=>{r=!1;const e=o;o=new Map,n=function(e){return i(this,void 0,void 0,(function*(){for(const{db:n,parentId:r,triggers:o,parentTable:i,prop:s}of e.values()){const e=t.DexieYProvider.getOrCreateDocument(n,i,s,r);try{const n=t.DexieYProvider.load(e);yield n.whenLoaded;for(const t of o)yield t(e,r)}catch(e){null==e||e.name}finally{t.DexieYProvider.release(e)}}}))}(e).finally((()=>{n=null}))}),0))}))},enqueue(e,t,n,r,i){const s=`${e.name}:${t}:${n}:${r}`;let a=o.get(s);a||(a={db:e,parentTable:t,parentId:n,prop:r,triggers:new Set},o.set(s,a)),a.triggers.add(i)}}}function gi(){vi.run()}function _i(){mi.run()}const wi={nameSuffix:!0};function ki(e){const r=e.name,o=ii(e),s=[];let a=!1,c=null;e.on("ready",(e=>i(this,void 0,void 0,(function*(){try{yield function(e){return i(this,void 0,void 0,(function*(){var r,f,p,y,h,v,m;l=!1;const b=ur(e);"undefined"!=typeof window&&"undefined"!=typeof document&&((null===(r=b.cloud.options)||void 0===r?void 0:r.customLoginGui)||s.push(function(e){let t=!1;const n=document.createElement("div");return document.body?(document.body.appendChild(n),Co(lo(ri,{db:e.vip}),n)):addEventListener("DOMContentLoaded",(()=>{t||(document.body.appendChild(n),Co(lo(ri,{db:e.vip}),n))})),{unsubscribe(){try{n.remove()}catch(e){}t=!0},get closed(){return t}}}(e))),b.cloud.isServiceWorkerDB||s.push(function(e){let t=e.cloud.webSocketStatus.value;const r=e.cloud.webSocketStatus.pipe(mt((e=>{const r=t;t=e;const o=n.of(e);switch(e){case"disconnected":return Cr.value?o.pipe(st(500)):o;case"connecting":return"not-started"===r||"error"===r?o:o.pipe(st(4e3));default:return o}})));return n.combineLatest([r,e.syncStateChangedEvent.pipe(vt({phase:"initial"})),ii(e.dx._novip),Pr]).pipe(rt((([t,n,r,o])=>{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:s,error:a,progress:c}=n,l=t;return"error"===s&&(l="error"),"not-started"===t&&("pushing"!==s&&"pulling"!==s||(l="connecting")),"error"!==e.cloud.syncState.value.phase||"pushing"!==n.phase&&"pulling"!==n.phase||(l="connecting"),o||(l="disconnected"),{phase:s,error:a,progress:c,status:Bn?l:"offline",license:"ok"}})))}(b).subscribe(e.cloud.syncState)),s.push(b.syncCompleteEvent.subscribe(d)),b.tables.every((e=>e.core))||function(){throw new t.SchemaError("Version increment needed to allow dexie-cloud change tracking")}();const g="serviceWorker"in navigator?yield navigator.serviceWorker.getRegistrations():[],[_,w]=yield b.transaction("rw",b.$syncState,(()=>i(this,void 0,void 0,(function*(){var e,t;const{options:n,schema:r}=b.cloud,[o,i,s]=yield Promise.all([b.getOptions(),b.getSchema(),b.getPersistedSyncState()]);if(a){if(!o||JSON.stringify(o)!==JSON.stringify(n)){if(!n)throw new Error("Internal error");const e=Object.assign({},n);delete e.fetchTokens,delete e.awarenessProtocol,yield b.$syncState.put(e,"options")}}else b.cloud.options=o||null;if((null===(e=b.cloud.options)||void 0===e?void 0:e.tryUseServiceWorker)&&"serviceWorker"in navigator&&g.length>0&&!yr?b.cloud.usingServiceWorker=!0:((null===(t=b.cloud.options)||void 0===t?void 0:t.tryUseServiceWorker)&&b.cloud.isServiceWorkerDB,b.cloud.usingServiceWorker=!1),Xr(r,b.cloud.options),Xr(i,b.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 b.$syncState.put(e,"schema"),Object.assign(r,e)}}else b.cloud.schema=i||null;return[null==s?void 0:s.initiallySynced,null==s?void 0:s.realms]}))));if(_&&b.setInitiallySynced(!0),function(e){var n,r;for(const o of e.tables)if(null===(r=null===(n=e.cloud.schema)||void 0===n?void 0:n[o.name])||void 0===r?void 0:r.markedForSync){if(o.schema.primKey.auto)throw new t.SchemaError(`Table ${o.name} is both autoIncremented and synced. Use db.cloud.configure({unsyncedTables: [${JSON.stringify(o.name)}]}) to blacklist it from sync`);if(!o.schema.primKey.keyPath)throw new t.SchemaError(`Table ${o.name} cannot be both synced and outbound. Use db.cloud.configure({unsyncedTables: [${JSON.stringify(o.name)}]}) to blacklist it from sync`)}}(b),u(),!b.cloud.isServiceWorkerDB){s.push(t.liveQuery((()=>b.getCurrentUser())).subscribe(o)),s.push(t.liveQuery((()=>b.getPersistedSyncState())).subscribe(b.cloud.persistedSyncState)),yield n.firstValueFrom(n.combineLatest([o.pipe(ht(1),lt(1)),b.cloud.persistedSyncState.pipe(ht(1),lt(1))]));const e=pi(b);b.dx.on("y",e),b.dx.once("close",(()=>{var t;null===(t=b.dx.on.y)||void 0===t||t.unsubscribe(e)}))}let k=!1;const S=yield b.getCurrentUser(),x=null===(f=b.cloud.options)||void 0===f?void 0:f.requireAuth;x&&(b.cloud.isServiceWorkerDB?yield n.firstValueFrom(o.pipe(yt((e=>!!e.isLoggedIn)),lt(1))):"object"==typeof x?(!S.isLoggedIn||x.userId&&S.userId!==x.userId||x.email&&S.email!==x.email)&&(k=yield Wt(b,x)):S.isLoggedIn||(k=yield Wt(b))),!S.isLoggedIn||w&&w.includes(S.userId)||(k=!0),c&&c.stop(),c=null,u();const I=(null===(p=b.cloud.options)||void 0===p?void 0:p.databaseUrl)&&(!_||k);I&&(yield function(e,t,n){return i(this,void 0,void 0,(function*(){yield Ar(e,Zn,(()=>er(e,t,n,{isInitialSync:!0})))}))}(b,b.cloud.options,b.cloud.schema),b.setInitiallySynced(!0)),u(),b.cloud.usingServiceWorker&&(null===(y=b.cloud.options)||void 0===y?void 0:y.databaseUrl)?(I||_t(b,"push").catch((()=>{})),function(e){return i(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){}}))}(b).catch((()=>{}))):(null===(h=b.cloud.options)||void 0===h?void 0:h.databaseUrl)&&b.cloud.schema&&!b.cloud.isServiceWorkerDB&&(c=Qr(b,b.cloud.options,b.cloud.schema),c.start(),I||wt(b,"push")),u(),b.cloud.isServiceWorkerDB||s.push(n.fromEvent(self,"online").subscribe((()=>{b.syncStateChangedEvent.next({phase:"not-in-sync"}),Or(b)||wt(b,"push")})),n.fromEvent(self,"offline").subscribe((()=>{b.syncStateChangedEvent.next({phase:"offline"})}))),!(null===(v=b.cloud.options)||void 0===v?void 0:v.databaseUrl)||(null===(m=b.cloud.options)||void 0===m?void 0:m.disableWebSocket)||hr||s.push(function(e){var t;if(!(null===(t=e.cloud.options)||void 0===t?void 0:t.databaseUrl))throw new Error("No database URL to connect WebSocket to");const r=e.messageConsumer.readyToServe.pipe(yt((e=>e)),mt((()=>e.getPersistedSyncState())),yt((e=>e&&e.serverRevision)),mt((e=>i(this,void 0,void 0,(function*(){return{type:"ready",rev:e.serverRevision,realmSetHash:yield Yt(e)}}))))),o=n.merge(r,e.messageProducer);return function t(){return e.cloud.persistedSyncState.pipe(yt((e=>null==e?void 0:e.serverRevision)),lt(1),mt((t=>e.cloud.currentUser.pipe(rt((e=>[e,t]))))),mt((([e,t])=>Pr.pipe(rt((n=>[n?e:null,t]))))),mt((([t,r])=>(null==t?void 0:t.isLoggedIn)&&!(null==r?void 0:r.realms.includes(t.userId))?e.cloud.persistedSyncState.pipe(yt((e=>(null==e?void 0:e.realms.includes(t.userId))||!1)),lt(1),rt((e=>[t,e]))):new n.BehaviorSubject([t,r]))),mt((e=>i(this,[e],void 0,(function*([e,t]){return[e,yield Yt(t)]})))),ft((([e,t],[n,r])=>e===n&&t===r)),mt((([r,i])=>{var s;return(null===(s=e.cloud.persistedSyncState)||void 0===s?void 0:s.value)?r?new Wr(e,e.cloud.persistedSyncState.value.serverRevision,e.cloud.persistedSyncState.value.yServerRevision,i,e.cloud.persistedSyncState.value.clientIdentity,o,e.cloud.webSocketStatus,r):n.from([]):t()})),Xe((r=>"TokenExpiredError"===(null==r?void 0:r.name)?n.of(!0).pipe(mt((()=>i(this,void 0,void 0,(function*(){const t=yield e.getCurrentUser(),n=yield Ut(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})})))),mt((()=>t()))):n.throwError((()=>r)))),Xe((r=>(e.cloud.webSocketStatus.next("error"),r instanceof Hr?n.throwError((()=>r)):n.from(zr()).pipe(mt((()=>t())))))))}().subscribe({next:t=>{t&&e.messageConsumer.enqueue(t)},error:e=>{},complete:()=>{}})}(b))}))}(e)}catch(e){}}))),!0);let l=!1;function u(){if(l)throw new t.DatabaseClosedError}e.once("close",(()=>{s.forEach((e=>e.unsubscribe())),s.splice(0,s.length),l=!0,c&&c.stop(),c=null,o.next(Lt)}));const d=new n.Subject;var f;e.cloud={version:"4.1.0-beta.48",options:Object.assign({},wi),schema:null,get currentUserId(){return o.value.userId||Lt.userId},currentUser:o,syncState:new n.BehaviorSubject({phase:"initial",status:"not-started"}),events:{syncComplete:d},persistedSyncState:new n.BehaviorSubject(void 0),userInteraction:new n.BehaviorSubject(void 0),webSocketStatus:new n.BehaviorSubject("not-started"),login(t){return i(this,void 0,void 0,(function*(){const n=ur(e);yield n.cloud.sync(),yield Wt(n,t)}))},invites:fi(e),roles:ai(e),configure(t){t=e.cloud.options=Object.assign(Object.assign({},e.cloud.options),t),a=!0,t.databaseUrl&&t.nameSuffix&&(e.name=`${r}-${function(e){const t=new URL(e);return"/"===t.pathname?t.hostname.split(".")[0]:t.pathname.split("/")[1]}(t.databaseUrl)}`,ur(e).reconfigure()),Xr(e.cloud.schema,e.cloud.options)},logout(){return i(this,arguments,void 0,(function*({force:t}={}){t?yield Bt(ur(e),{deleteUnsyncedData:!0}):yield Nt(ur(e))}))},sync(){return i(this,arguments,void 0,(function*({wait:r,purpose:o}={wait:!0,purpose:"push"}){var s;void 0===r&&(r=!0);const a=ur(e);if("ok"!==((null===(s=a.cloud.currentUser.value.license)||void 0===s?void 0:s.status)||"ok")&&(yield Ct(a)),"pull"===o){const e=a.cloud.persistedSyncState.value;if(wt(a,o),r){const t=yield n.firstValueFrom(a.cloud.persistedSyncState.pipe(yt((t=>null!=(null==t?void 0:t.timestamp)&&(!e||t.timestamp>e.timestamp)))));if(null==t?void 0:t.error)throw new Error("Sync error: "+t.error)}}else if(yield qr(a)){const e=a.cloud.persistedSyncState.value;wt(a,o),r&&(yield n.firstValueFrom(n.from(t.liveQuery((()=>i(this,void 0,void 0,(function*(){const t=yield qr(a),n=yield a.getPersistedSyncState();if((null==n?void 0:n.timestamp)!==(null==e?void 0:e.timestamp)&&(null==n?void 0:n.error))throw new Error("Sync error: "+n.error);return t}))))).pipe(yt((e=>!e)))))}}))},permissions:(t,n)=>function(e,t,n){if(!t)throw new TypeError("Cannot check permissions of undefined or null. A Dexie Cloud object with realmId and owner expected.");const{owner:r,realmId:o}=t;if(!n){if("function"!=typeof t.table)throw new TypeError("Missing 'table' argument to permissions and table could not be extracted from entity");n=t.table()}const i=ui(e),s=t=>{const i=t[o||e.cloud.currentUserId];return i?new di(i.permissions,n,void 0===o||o===e.cloud.currentUserId||r===e.cloud.currentUserId):new di({},n,!r||r===e.cloud.currentUserId)},a=i.pipe(rt(s));return a.getValue=()=>s(i.getValue()),a}(e._novip,t,n)},e.Version.prototype._parseStoresSpec=t.override(e.Version.prototype._parseStoresSpec,(t=>jr(t,e))),e.Table.prototype.newId=function({colocateWith:t}={}){const n=t&&t.substr(t.length-3);return wr(e.cloud.schema[this.name].idPrefix||"",n)},e.Table.prototype.idPrefix=function(){var e,t;return(null===(t=null===(e=this.db.cloud.schema)||void 0===e?void 0:e[this.name])||void 0===t?void 0:t.idPrefix)||""},e.use(Tr({currentUserObservable:e.cloud.currentUser,db:ur(e)})),e.use((f=ur(e),{stack:"dbcore",name:"implicitPropSetterMiddleware",level:1,create:e=>Object.assign(Object.assign({},e),{table:t=>{const n=e.table(t);return Object.assign(Object.assign({},n),{mutate:e=>{var r,o,i,s,a,c;const l=e.trans;if(l.disableChangeTracking)return n.mutate(e);const u=null!==(o=null===(r=l.currentUser)||void 0===r?void 0:r.userId)&&void 0!==o?o:Lt.userId;if((null===(s=null===(i=f.cloud.schema)||void 0===i?void 0:i[t])||void 0===s?void 0:s.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===(c=(a=n.schema.primaryKey).extractKey)||void 0===c?void 0:c.call(a,t);"string"==typeof r&&"#"===r[0]&&"put"===e.type&&(delete e.criteria,delete e.changeSpec,delete e.updates,t.$ts=Date.now())}}return n.mutate(e)}})}})})),e.use(kr(ur(e)))}ki.version="4.1.0-beta.48",t.Cloud=ki,e.default=ki,e.defineYDocTrigger=function(e,n,r){var o,i;const s=null===(i=null===(o=e.schema.yProps)||void 0===o?void 0:o.find((e=>e.prop===n)))||void 0===i?void 0:i.updatesTable;if(!s)throw new Error(`Table ${e.name} does not have a Yjs property named ${n}`);yi[s]={trigger:r,parentTable:e.name,prop:n};const a=e.db._novip;let c=hi.get(a);c||(c=(e=>({stack:"dbcore",level:10,name:"yTriggerMiddleware",create:n=>Object.assign(Object.assign({},n),{transaction:(e,t,r)=>{const o=n.transaction(e,t,r);return"readonly"===t?o:e.some((e=>yi[e]))?(o.addEventListener("complete",gi),o):o},table:r=>{const o=n.table(r),i=yi[r];if(!i)return o;const{trigger:s,parentTable:a,prop:c}=i;return Object.assign(Object.assign({},o),{mutate(n){var r;switch(n.type){case"add":for(const o of n.values){if(null==o.k)continue;const n=o.k,i=t.DexieYProvider.getDocCache(e).find(a,n,c);(i&&(null===(r=t.DexieYProvider.for(i))||void 0===r?void 0:r.refCount)?mi:vi).enqueue(e,a,n,c,s)}break;case"delete":n.trans._rejecting_y_ypdate&&o.getMany({keys:n.keys,trans:n.trans,cache:"immutable"}).then((n=>{const r=new t.RangeSet;for(const{k:e}of n)null!=e&&r.addKey(e);for(const t of r)vi.enqueue(e,a,t.from,c,s)}))}return o.mutate(n)}})}})}))(a),hi.set(a,c)),a.use(c),t.DexieYProvider.on("beforeunload",_i)},e.dexieCloud=ki,e.getTiedObjectId=function(e){return e.startsWith("rlm~")?e.substr(4):null},e.getTiedRealmId=function(e){return"rlm~"+e},e.resolveText=ti,Object.defineProperty(e,"__esModule",{value:!0})}));
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("dexie"),require("rxjs")):"function"==typeof define&&define.amd?define(["exports","dexie","rxjs"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).DexieCloud={},e.Dexie,e.rxjs)}(this,(function(e,t,n){"use strict";var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},r(e,t)};function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}function i(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))}function s(e,t){var n,r,o,i,s={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function a(i){return function(a){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;s;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return s.label++,{value:i[1],done:!1};case 5:s.label++,r=i[1],i=[0];continue;case 7:i=s.ops.pop(),s.trys.pop();continue;default:if(!(o=s.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){s=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){s.label=i[1];break}if(6===i[0]&&s.label<o[1]){s.label=o[1],o=i;break}if(o&&s.label<o[2]){s.label=o[2],s.ops.push(i);break}o[2]&&s.ops.pop(),s.trys.pop();continue}i=t.call(e,s)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,a])}}}function a(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 c(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),s=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)s.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return s}function l(e,t,n){if(n||2===arguments.length)for(var r,o=0,i=t.length;o<i;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))}function u(e){return this instanceof u?(this.v=e,this):new u(e)}function d(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,o=n.apply(e,t||[]),i=[];return r={},s("next"),s("throw"),s("return"),r[Symbol.asyncIterator]=function(){return this},r;function s(e){o[e]&&(r[e]=function(t){return new Promise((function(n,r){i.push([e,t,n,r])>1||a(e,t)}))})}function a(e,t){try{!function(e){e.value instanceof u?Promise.resolve(e.value.v).then(c,l):d(i[0][2],e)}(o[e](t))}catch(e){d(i[0][3],e)}}function c(e){a("next",e)}function l(e){a("throw",e)}function d(e,t){e(t),i.shift(),i.length&&a(i[0][0],i[0][1])}}function f(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=a(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,o){(function(e,t,n,r){Promise.resolve(r).then((function(t){e({value:t,done:n})}),t)})(r,o,(t=e[n](t)).done,t.value)}))}}}const p={}.hasOwnProperty;function y(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,o=t.length;r<o;++r)y(e,t[r],n[r])}else{var i=t.indexOf(".");if(-1!==i){var s=t.substr(0,i),a=t.substr(i+1);if(""===a)void 0===n?Array.isArray(e)?isNaN(parseInt(s))||e.splice(parseInt(s),1):delete e[s]:e[s]=n;else{var c=e[s];c&&function(e,t){return p.call(e,t)}(e,s)||(c=e[s]={}),y(c,a,n)}}else void 0===n?Array.isArray(e)&&!isNaN(parseInt(t))?e.splice(t,1):delete e[t]:e[t]=n}}const h="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=v)=>{const n=Buffer.alloc(e);return t(n),n.toString("base64")}:()=>{throw new Error("No implementation of randomString was found")};function v(e){for(let t=0;t<e.length;++t)e[t]=Math.floor(256*Math.random())}function m(e){return"string"==typeof e||!!(Array.isArray(e)&&e.some((e=>m(e)))&&e.every(b))}function b(e){return"string"==typeof e||"number"==typeof e||Array.isArray(e)&&e.every(b)}function g(e,t,n){const r=e[t]||(e[t]={}),o=n.keys.map((e=>"string"==typeof e?e:JSON.stringify(e)));switch(n.type){case"insert":case"upsert":o.forEach(((e,t)=>{r[e]={type:"ups",val:n.values[t]}}));break;case"update":case"modify":o.forEach(((e,t)=>{const o="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(o))y(i.val,e,t);break;case"del":break;case"upd":Object.assign(i.mod,o)}else r[e]={type:"upd",mod:o}}));break;case"delete":o.forEach((e=>{r[e]={type:"del"}}))}return e}function _(e,t){for(const{table:n,muts:r}of t)for(const t of r)g(e,n,t)}const w=Math.floor,k=Math.abs,S=(e,t)=>e>t?e:t,x=128,I=127,E=Number.MAX_SAFE_INTEGER,O=Number.isInteger||(e=>"number"==typeof e&&isFinite(e)&&w(e)===e),T=Array.isArray,j="undefined"!=typeof TextEncoder?new TextEncoder:null,A=j?e=>j.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 C="undefined"==typeof TextDecoder?null:new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});C&&1===C.decode(new Uint8Array).length&&(C=null);class P{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}}const U=(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},D=(e,t)=>{for(;t>I;)U(e,x|I&t),t=w(t/128);U(e,I&t)},$=new Uint8Array(3e4),L=$.length/3,R=j&&j.encodeInto?(e,t)=>{if(t.length<L){const n=j.encodeInto(t,$).written||0;D(e,n);for(let t=0;t<n;t++)U(e,$[t])}else N(e,A(t))}:(e,t)=>{const n=unescape(encodeURIComponent(t)),r=n.length;D(e,r);for(let t=0;t<r;t++)U(e,n.codePointAt(t))},N=(e,t)=>{D(e,t.byteLength),((e,t)=>{const n=e.cbuf.length,r=e.cpos,o=((e,t)=>e<t?e:t)(n-r,t.length),i=t.length-o;e.cbuf.set(t.subarray(0,o),r),e.cpos+=o,i>0&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(S(2*n,i)),e.cbuf.set(t.subarray(o)),e.cpos=i)})(e,t)},B=(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*S(n,t)),e.cpos=0)})(e,t);const n=new DataView(e.cbuf.buffer,e.cpos,t);return e.cpos+=t,n},M=(e,t)=>B(e,8).setBigUint64(0,t,!1),F=new DataView(new ArrayBuffer(4)),W=(e,t)=>{switch(typeof t){case"string":U(e,119),R(e,t);break;case"number":O(t)&&k(t)<=2147483647?(U(e,125),((e,t)=>{const n=(e=>0!==e?e<0:1/e<0)(t);for(n&&(t=-t),U(e,(t>63?x:0)|(n?64:0)|63&t),t=w(t/64);t>0;)U(e,(t>I?x:0)|I&t),t=w(t/128)})(e,t)):(n=t,F.setFloat32(0,n),F.getFloat32(0)===n?(U(e,124),((e,t)=>{B(e,4).setFloat32(0,t,!1)})(e,t)):(U(e,123),((e,t)=>{B(e,8).setFloat64(0,t,!1)})(e,t)));break;case"bigint":U(e,122),((e,t)=>{B(e,8).setBigInt64(0,t,!1)})(e,t);break;case"object":if(null===t)U(e,126);else if(T(t)){U(e,117),D(e,t.length);for(let n=0;n<t.length;n++)W(e,t[n])}else if(t instanceof Uint8Array)U(e,116),N(e,t);else{U(e,118);const n=Object.keys(t);D(e,n.length);for(let r=0;r<n.length;r++){const o=n[r];R(e,o),W(e,t[o])}}break;case"boolean":U(e,t?120:121);break;default:U(e,127)}var n};function V(e){const t=new P;switch(R(t,e.type),"table"in e&&R(t,e.table),"prop"in e&&R(t,e.prop),e.type){case"u-ack":case"u-reject":M(t,BigInt(e.i));break;case"outdated-server-rev":break;case"y-complete-sync-done":R(t,e.yServerRev);break;default:switch(W(t,e.k),e.type){case"aware":N(t,e.u);break;case"doc-open":W(t,e.serverRev),W(t,e.sv);break;case"doc-close":break;case"sv":N(t,e.sv);break;case"u-c":N(t,e.u),M(t,BigInt(e.i));break;case"u-s":N(t,e.u),R(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 o=e.bufs[r];t.set(o,n),n+=o.length}return t.set(new Uint8Array(e.cbuf.buffer,0,e.cpos),n),t})(t)}const K=e=>new Error(e),H=K("Unexpected end of array"),z=K("Integer out of Range");class q{constructor(e){this.arr=e,this.pos=0}}const Y=e=>e.pos!==e.arr.length,J=e=>((e,t)=>{const n=new Uint8Array(e.arr.buffer,e.pos+e.arr.byteOffset,t);return e.pos+=t,n})(e,Q(e)),G=e=>e.arr[e.pos++],Q=e=>{let t=0,n=1;const r=e.arr.length;for(;e.pos<r;){const r=e.arr[e.pos++];if(t+=(r&I)*n,n*=128,r<x)return t;if(t>E)throw z}throw H},X=C?e=>C.decode(J(e)):e=>{let t=Q(e);if(0===t)return"";{let n=String.fromCodePoint(G(e));if(--t<100)for(;t--;)n+=String.fromCodePoint(G(e));else for(;t>0;){const r=t<1e4?t:1e4,o=e.arr.subarray(e.pos,e.pos+r);e.pos+=r,n+=String.fromCodePoint.apply(null,o),t-=r}return decodeURIComponent(escape(n))}},Z=(e,t)=>{const n=new DataView(e.arr.buffer,e.arr.byteOffset+e.pos,t);return e.pos+=t,n},ee=e=>Z(e,8).getBigUint64(0,!1),te=[e=>{},e=>null,e=>{let t=e.arr[e.pos++],n=63&t,r=64;const o=(64&t)>0?-1:1;if(0==(t&x))return o*n;const i=e.arr.length;for(;e.pos<i;){if(t=e.arr[e.pos++],n+=(t&I)*r,r*=128,t<x)return o*n;if(n>E)throw z}throw H},e=>Z(e,4).getFloat32(0,!1),e=>Z(e,8).getFloat64(0,!1),e=>Z(e,8).getBigInt64(0,!1),e=>!1,e=>!0,X,e=>{const t=Q(e),n={};for(let r=0;r<t;r++){n[X(e)]=ne(e)}return n},e=>{const t=Q(e),n=[];for(let r=0;r<t;r++)n.push(ne(e));return n},J],ne=e=>te[127-G(e)](e);function re(e){return d(this,arguments,(function*(){var t,n,r,o;let i=0,s=new Uint8Array(4),a=0,c=[],l=0;try{for(var d,p=!0,y=f(e);!(t=(d=yield u(y.next())).done);p=!0){o=d.value,p=!1;const e=o,t=new DataView(e.buffer,e.byteOffset,e.byteLength);let n=0;for(;n<e.byteLength;)switch(i){case 0:if(n+4>e.byteLength){for(const t of e.slice(n)){if(4===a)break;s[a++]=t,++n}if(a<4)break}else if(a>0&&a<4)for(const t of e.slice(n,n+4-a))s[a++]=t,++n;case 1:l=4===a?new DataView(s.buffer,0,4).getUint32(0,!1):t.getUint32(n,!1),a?a=0:n+=4;case 2:if(n>=e.byteLength){i=2;break}if(n+l>e.byteLength)c.push(e.slice(n)),l-=e.byteLength-n,i=2,n=e.byteLength;else{if(c.length>0){const t=new Uint8Array(c.reduce(((e,t)=>e+t.byteLength),l));let r=0;for(const e of c)t.set(e,r),r+=e.byteLength;t.set(e.slice(n,n+l),r),c=[],yield yield u(t)}else yield yield u(e.slice(n,n+l));n+=l,i=0}}}}catch(e){n={error:e}}finally{try{p||t||!(r=y.return)||(yield u(r.call(y)))}finally{if(n)throw n.error}}}))}function oe(e){return"function"==typeof e}function ie(e){return function(t){if(function(e){return oe(null==e?void 0:e.lift)}(t))return t.lift((function(t){try{return e(t,this)}catch(e){this.error(e)}}));throw new TypeError("Unable to lift unknown Observable type")}}var se=function(e){return e&&"number"==typeof e.length&&"function"!=typeof e};function ae(e){return oe(null==e?void 0:e.then)}var ce,le,ue=(ce=function(e){return function(t){e(this),this.message=t?t.length+" errors occurred during unsubscription:\n"+t.map((function(e,t){return t+1+") "+e.toString()})).join("\n "):"",this.name="UnsubscriptionError",this.errors=t}},(le=ce((function(e){Error.call(e),e.stack=(new Error).stack}))).prototype=Object.create(Error.prototype),le.prototype.constructor=le,le);function de(e,t){if(e){var n=e.indexOf(t);0<=n&&e.splice(n,1)}}var fe=function(){function e(e){this.initialTeardown=e,this.closed=!1,this._parentage=null,this._finalizers=null}var t;return e.prototype.unsubscribe=function(){var e,t,n,r,o;if(!this.closed){this.closed=!0;var i=this._parentage;if(i)if(this._parentage=null,Array.isArray(i))try{for(var s=a(i),u=s.next();!u.done;u=s.next()){u.value.remove(this)}}catch(t){e={error:t}}finally{try{u&&!u.done&&(t=s.return)&&t.call(s)}finally{if(e)throw e.error}}else i.remove(this);var d=this.initialTeardown;if(oe(d))try{d()}catch(e){o=e instanceof ue?e.errors:[e]}var f=this._finalizers;if(f){this._finalizers=null;try{for(var p=a(f),y=p.next();!y.done;y=p.next()){var h=y.value;try{ye(h)}catch(e){o=null!=o?o:[],e instanceof ue?o=l(l([],c(o)),c(e.errors)):o.push(e)}}}catch(e){n={error:e}}finally{try{y&&!y.done&&(r=p.return)&&r.call(p)}finally{if(n)throw n.error}}}if(o)throw new ue(o)}},e.prototype.add=function(t){var n;if(t&&t!==this)if(this.closed)ye(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=null!==(n=this._finalizers)&&void 0!==n?n:[]).push(t)}},e.prototype._hasParent=function(e){var t=this._parentage;return t===e||Array.isArray(t)&&t.includes(e)},e.prototype._addParent=function(e){var t=this._parentage;this._parentage=Array.isArray(t)?(t.push(e),t):t?[t,e]:e},e.prototype._removeParent=function(e){var t=this._parentage;t===e?this._parentage=null:Array.isArray(t)&&de(t,e)},e.prototype.remove=function(t){var n=this._finalizers;n&&de(n,t),t instanceof e&&t._removeParent(this)},e.EMPTY=((t=new e).closed=!0,t),e}();function pe(e){return e instanceof fe||e&&"closed"in e&&oe(e.remove)&&oe(e.add)&&oe(e.unsubscribe)}function ye(e){oe(e)?e():e.unsubscribe()}fe.EMPTY;var he={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},ve={setTimeout:function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var o=ve.delegate;return(null==o?void 0:o.setTimeout)?o.setTimeout.apply(o,l([e,t],c(n))):setTimeout.apply(void 0,l([e,t],c(n)))},clearTimeout:function(e){var t=ve.delegate;return((null==t?void 0:t.clearTimeout)||clearTimeout)(e)},delegate:void 0};function me(e){ve.setTimeout((function(){throw e}))}function be(){}var ge=function(e){function t(t){var n=e.call(this)||this;return n.isStopped=!1,t?(n.destination=t,pe(t)&&t.add(n)):n.destination=Ie,n}return o(t,e),t.create=function(e,t,n){return new Se(e,t,n)},t.prototype.next=function(e){this.isStopped||this._next(e)},t.prototype.error=function(e){this.isStopped||(this.isStopped=!0,this._error(e))},t.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},t.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,e.prototype.unsubscribe.call(this),this.destination=null)},t.prototype._next=function(e){this.destination.next(e)},t.prototype._error=function(e){try{this.destination.error(e)}finally{this.unsubscribe()}},t.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},t}(fe),_e=Function.prototype.bind;function we(e,t){return _e.call(e,t)}var ke=function(){function e(e){this.partialObserver=e}return e.prototype.next=function(e){var t=this.partialObserver;if(t.next)try{t.next(e)}catch(e){xe(e)}},e.prototype.error=function(e){var t=this.partialObserver;if(t.error)try{t.error(e)}catch(e){xe(e)}else xe(e)},e.prototype.complete=function(){var e=this.partialObserver;if(e.complete)try{e.complete()}catch(e){xe(e)}},e}(),Se=function(e){function t(t,n,r){var o,i,s=e.call(this)||this;oe(t)||!t?o={next:null!=t?t:void 0,error:null!=n?n:void 0,complete:null!=r?r:void 0}:s&&he.useDeprecatedNextContext?((i=Object.create(t)).unsubscribe=function(){return s.unsubscribe()},o={next:t.next&&we(t.next,i),error:t.error&&we(t.error,i),complete:t.complete&&we(t.complete,i)}):o=t;return s.destination=new ke(o),s}return o(t,e),t}(ge);function xe(e){me(e)}var Ie={closed:!0,next:be,error:function(e){throw e},complete:be},Ee="function"==typeof Symbol&&Symbol.observable||"@@observable";function Oe(e){return e}var Te=function(){function e(e){e&&(this._subscribe=e)}return e.prototype.lift=function(t){var n=new e;return n.source=this,n.operator=t,n},e.prototype.subscribe=function(e,t,n){var r,o=this,i=(r=e)&&r instanceof ge||function(e){return e&&oe(e.next)&&oe(e.error)&&oe(e.complete)}(r)&&pe(r)?e:new Se(e,t,n);return function(){var e=o,t=e.operator,n=e.source;i.add(t?t.call(i,n):n?o._subscribe(i):o._trySubscribe(i))}(),i},e.prototype._trySubscribe=function(e){try{return this._subscribe(e)}catch(t){e.error(t)}},e.prototype.forEach=function(e,t){var n=this;return new(t=je(t))((function(t,r){var o=new Se({next:function(t){try{e(t)}catch(e){r(e),o.unsubscribe()}},error:r,complete:t});n.subscribe(o)}))},e.prototype._subscribe=function(e){var t;return null===(t=this.source)||void 0===t?void 0:t.subscribe(e)},e.prototype[Ee]=function(){return this},e.prototype.pipe=function(){for(var e,t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return(0===(e=t).length?Oe:1===e.length?e[0]:function(t){return e.reduce((function(e,t){return t(e)}),t)})(this)},e.prototype.toPromise=function(e){var t=this;return new(e=je(e))((function(e,n){var r;t.subscribe((function(e){return r=e}),(function(e){return n(e)}),(function(){return e(r)}))}))},e.create=function(t){return new e(t)},e}();function je(e){var t;return null!==(t=null!=e?e:he.Promise)&&void 0!==t?t:Promise}function Ae(e){return oe(e[Ee])}function Ce(e){return Symbol.asyncIterator&&oe(null==e?void 0:e[Symbol.asyncIterator])}function Pe(e){return new TypeError("You provided "+(null!==e&&"object"==typeof e?"an invalid object":"'"+e+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}var Ue="function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator";function De(e){return oe(null==e?void 0:e[Ue])}function $e(e){return d(this,arguments,(function(){var t,n,r;return s(this,(function(o){switch(o.label){case 0:t=e.getReader(),o.label=1;case 1:o.trys.push([1,,9,10]),o.label=2;case 2:return[4,u(t.read())];case 3:return n=o.sent(),r=n.value,n.done?[4,u(void 0)]:[3,5];case 4:return[2,o.sent()];case 5:return[4,u(r)];case 6:return[4,o.sent()];case 7:return o.sent(),[3,2];case 8:return[3,10];case 9:return t.releaseLock(),[7];case 10:return[2]}}))}))}function Le(e){return oe(null==e?void 0:e.getReader)}function Re(e){if(e instanceof Te)return e;if(null!=e){if(Ae(e))return o=e,new Te((function(e){var t=o[Ee]();if(oe(t.subscribe))return t.subscribe(e);throw new TypeError("Provided object does not correctly implement Symbol.observable")}));if(se(e))return r=e,new Te((function(e){for(var t=0;t<r.length&&!e.closed;t++)e.next(r[t]);e.complete()}));if(ae(e))return n=e,new Te((function(e){n.then((function(t){e.closed||(e.next(t),e.complete())}),(function(t){return e.error(t)})).then(null,me)}));if(Ce(e))return Ne(e);if(De(e))return t=e,new Te((function(e){var n,r;try{for(var o=a(t),i=o.next();!i.done;i=o.next()){var s=i.value;if(e.next(s),e.closed)return}}catch(e){n={error:e}}finally{try{i&&!i.done&&(r=o.return)&&r.call(o)}finally{if(n)throw n.error}}e.complete()}));if(Le(e))return Ne($e(e))}var t,n,r,o;throw Pe(e)}function Ne(e){return new Te((function(t){(function(e,t){var n,r,o,a;return i(this,void 0,void 0,(function(){var i,c;return s(this,(function(s){switch(s.label){case 0:s.trys.push([0,5,6,11]),n=f(e),s.label=1;case 1:return[4,n.next()];case 2:if((r=s.sent()).done)return[3,4];if(i=r.value,t.next(i),t.closed)return[2];s.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return c=s.sent(),o={error:c},[3,11];case 6:return s.trys.push([6,,9,10]),r&&!r.done&&(a=n.return)?[4,a.call(n)]:[3,8];case 7:s.sent(),s.label=8;case 8:return[3,10];case 9:if(o)throw o.error;return[7];case 10:return[7];case 11:return t.complete(),[2]}}))}))})(e,t).catch((function(e){return t.error(e)}))}))}function Be(e,t,n,r,o){return new Me(e,t,n,r,o)}var Me=function(e){function t(t,n,r,o,i,s){var a=e.call(this,t)||this;return a.onFinalize=i,a.shouldUnsubscribe=s,a._next=n?function(e){try{n(e)}catch(e){t.error(e)}}:e.prototype._next,a._error=o?function(e){try{o(e)}catch(e){t.error(e)}finally{this.unsubscribe()}}:e.prototype._error,a._complete=r?function(){try{r()}catch(e){t.error(e)}finally{this.unsubscribe()}}:e.prototype._complete,a}return o(t,e),t.prototype.unsubscribe=function(){var t;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var n=this.closed;e.prototype.unsubscribe.call(this),!n&&(null===(t=this.onFinalize)||void 0===t||t.call(this))}},t}(ge),Fe=function(e){function t(t,n){return e.call(this)||this}return o(t,e),t.prototype.schedule=function(e,t){return this},t}(fe),We={setInterval:function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var o=We.delegate;return(null==o?void 0:o.setInterval)?o.setInterval.apply(o,l([e,t],c(n))):setInterval.apply(void 0,l([e,t],c(n)))},clearInterval:function(e){var t=We.delegate;return((null==t?void 0:t.clearInterval)||clearInterval)(e)},delegate:void 0},Ve=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.scheduler=t,r.work=n,r.pending=!1,r}return o(t,e),t.prototype.schedule=function(e,t){if(void 0===t&&(t=0),this.closed)return this;this.state=e;var n=this.id,r=this.scheduler;return null!=n&&(this.id=this.recycleAsyncId(r,n,t)),this.pending=!0,this.delay=t,this.id=this.id||this.requestAsyncId(r,this.id,t),this},t.prototype.requestAsyncId=function(e,t,n){return void 0===n&&(n=0),We.setInterval(e.flush.bind(e,this),n)},t.prototype.recycleAsyncId=function(e,t,n){if(void 0===n&&(n=0),null!=n&&this.delay===n&&!1===this.pending)return t;We.clearInterval(t)},t.prototype.execute=function(e,t){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;var n=this._execute(e,t);if(n)return n;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))},t.prototype._execute=function(e,t){var n,r=!1;try{this.work(e)}catch(e){r=!0,n=e||new Error("Scheduled action threw falsy error")}if(r)return this.unsubscribe(),n},t.prototype.unsubscribe=function(){if(!this.closed){var t=this.id,n=this.scheduler,r=n.actions;this.work=this.state=this.scheduler=null,this.pending=!1,de(r,this),null!=t&&(this.id=this.recycleAsyncId(n,t,null)),this.delay=null,e.prototype.unsubscribe.call(this)}},t}(Fe),Ke={now:function(){return(Ke.delegate||Date).now()},delegate:void 0},He=function(){function e(t,n){void 0===n&&(n=e.now),this.schedulerActionCtor=t,this.now=n}return e.prototype.schedule=function(e,t,n){return void 0===t&&(t=0),new this.schedulerActionCtor(this,e).schedule(n,t)},e.now=Ke.now,e}(),ze=new(function(e){function t(t,n){void 0===n&&(n=He.now);var r=e.call(this,t,n)||this;return r.actions=[],r._active=!1,r._scheduled=void 0,r}return o(t,e),t.prototype.flush=function(e){var t=this.actions;if(this._active)t.push(e);else{var n;this._active=!0;do{if(n=e.execute(e.state,e.delay))break}while(e=t.shift());if(this._active=!1,n){for(;e=t.shift();)e.unsubscribe();throw n}}},t}(He))(Ve),qe=ze;function Ye(e){return e&&oe(e.schedule)}function Je(e,t,n){void 0===e&&(e=0),void 0===n&&(n=qe);var r=-1;return null!=t&&(Ye(t)?n=t:r=t),new Te((function(t){var o,i=(o=e)instanceof Date&&!isNaN(o)?+e-n.now():e;i<0&&(i=0);var s=0;return n.schedule((function(){t.closed||(t.next(s++),0<=r?this.schedule(void 0,r):t.complete())}),i)}))}function Ge(e){return Ye((t=e)[t.length-1])?e.pop():void 0;var t}function Qe(e,t,n,r,o){void 0===r&&(r=0),void 0===o&&(o=!1);var i=t.schedule((function(){n(),o?e.add(this.schedule(null,r)):this.unsubscribe()}),r);if(e.add(i),!o)return i}function Xe(e){return ie((function(t,n){var r,o=null,i=!1;o=t.subscribe(Be(n,void 0,void 0,(function(s){r=Re(e(s,Xe(e)(t))),o?(o.unsubscribe(),o=null,r.subscribe(n)):i=!0}))),i&&(o.unsubscribe(),o=null,r.subscribe(n))}))}function Ze(e,t){return void 0===t&&(t=0),ie((function(n,r){n.subscribe(Be(r,(function(n){return Qe(r,e,(function(){return r.next(n)}),t)}),(function(){return Qe(r,e,(function(){return r.complete()}),t)}),(function(n){return Qe(r,e,(function(){return r.error(n)}),t)})))}))}function et(e,t){return void 0===t&&(t=0),ie((function(n,r){r.add(e.schedule((function(){return n.subscribe(r)}),t))}))}function tt(e,t){if(!e)throw new Error("Iterable cannot be null");return new Te((function(n){Qe(n,t,(function(){var r=e[Symbol.asyncIterator]();Qe(n,t,(function(){r.next().then((function(e){e.done?n.complete():n.next(e.value)}))}),0,!0)}))}))}function nt(e,t){if(null!=e){if(Ae(e))return function(e,t){return Re(e).pipe(et(t),Ze(t))}(e,t);if(se(e))return function(e,t){return new Te((function(n){var r=0;return t.schedule((function(){r===e.length?n.complete():(n.next(e[r++]),n.closed||this.schedule())}))}))}(e,t);if(ae(e))return function(e,t){return Re(e).pipe(et(t),Ze(t))}(e,t);if(Ce(e))return tt(e,t);if(De(e))return function(e,t){return new Te((function(n){var r;return Qe(n,t,(function(){r=e[Ue](),Qe(n,t,(function(){var e,t,o;try{t=(e=r.next()).value,o=e.done}catch(e){return void n.error(e)}o?n.complete():n.next(t)}),0,!0)})),function(){return oe(null==r?void 0:r.return)&&r.return()}}))}(e,t);if(Le(e))return function(e,t){return tt($e(e),t)}(e,t)}throw Pe(e)}function rt(e,t){return ie((function(n,r){var o=0;n.subscribe(Be(r,(function(n){r.next(e.call(t,n,o++))})))}))}function ot(e,t,n){return void 0===n&&(n=1/0),oe(t)?ot((function(n,r){return rt((function(e,o){return t(n,e,r,o)}))(Re(e(n,r)))}),n):("number"==typeof t&&(n=t),ie((function(t,r){return function(e,t,n,r,o,i,s,a){var c=[],l=0,u=0,d=!1,f=function(){!d||c.length||l||t.complete()},p=function(e){return l<r?y(e):c.push(e)},y=function(e){i&&t.next(e),l++;var a=!1;Re(n(e,u++)).subscribe(Be(t,(function(e){null==o||o(e),i?p(e):t.next(e)}),(function(){a=!0}),void 0,(function(){if(a)try{l--;for(var e=function(){var e=c.shift();s?Qe(t,s,(function(){return y(e)})):y(e)};c.length&&l<r;)e();f()}catch(e){t.error(e)}})))};return e.subscribe(Be(t,p,(function(){d=!0,f()}))),function(){null==a||a()}}(t,r,e,n)})))}function it(){return void 0===(e=1)&&(e=1/0),ot(Oe,e);var e}function st(e,t){return void 0===t&&(t=ze),ie((function(n,r){var o=null,i=null,s=null,a=function(){if(o){o.unsubscribe(),o=null;var e=i;i=null,r.next(e)}};function c(){var n=s+e,i=t.now();if(i<n)return o=this.schedule(void 0,n-i),void r.add(o);a()}n.subscribe(Be(r,(function(n){i=n,s=t.now(),o||(o=t.schedule(c,e),r.add(o))}),(function(){a(),r.complete()}),void 0,(function(){i=o=null})))}))}function at(){for(var e,t,n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];return it()((e=n,(t=Ge(n))?nt(e,t):Re(e)))}var ct=new Te((function(e){return e.complete()}));function lt(e){return e<=0?function(){return ct}:ie((function(t,n){var r=0;t.subscribe(Be(n,(function(t){++r<=e&&(n.next(t),e<=r&&n.complete())})))}))}function ut(e,t){return t?function(n){return at(t.pipe(lt(1),ie((function(e,t){e.subscribe(Be(t,be))}))),n.pipe(ut(e)))}:ot((function(t,n){return e(t,n).pipe(lt(1),function(e){return rt((function(){return e}))}(t))}))}function dt(e,t){void 0===t&&(t=ze);var n=Je(e,t);return ut((function(){return n}))}function ft(e,t){return void 0===t&&(t=Oe),e=null!=e?e:pt,ie((function(n,r){var o,i=!0;n.subscribe(Be(r,(function(n){var s=t(n);!i&&e(o,s)||(i=!1,o=s,r.next(n))})))}))}function pt(e,t){return e===t}function yt(e,t){return ie((function(n,r){var o=0;n.subscribe(Be(r,(function(n){return e.call(t,n,o++)&&r.next(n)})))}))}function ht(e){return yt((function(t,n){return e<=n}))}function vt(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=Ge(e);return ie((function(t,r){(n?at(e,t,n):at(e,t)).subscribe(r)}))}function mt(e,t){return ie((function(n,r){var o=null,i=0,s=!1,a=function(){return s&&!o&&r.complete()};n.subscribe(Be(r,(function(n){null==o||o.unsubscribe();var s=0,c=i++;Re(e(n,c)).subscribe(o=Be(r,(function(e){return r.next(t?t(n,e,c,s++):e)}),(function(){o=null,a()})))}),(function(){s=!0,a()})))}))}function bt(e,t,n){var r=oe(e)||t||n?{next:e,error:t,complete:n}:e;return r?ie((function(e,t){var n;null===(n=r.subscribe)||void 0===n||n.call(r);var o=!0;e.subscribe(Be(t,(function(e){var n;null===(n=r.next)||void 0===n||n.call(r,e),t.next(e)}),(function(){var e;o=!1,null===(e=r.complete)||void 0===e||e.call(r),t.complete()}),(function(e){var n;o=!1,null===(n=r.error)||void 0===n||n.call(r,e),t.error(e)}),(function(){var e,t;o&&(null===(e=r.unsubscribe)||void 0===e||e.call(r)),null===(t=r.finalize)||void 0===t||t.call(r)})))})):Oe}let gt=!1;function _t(e,t){return i(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){gt||(gt=!0)}}))}function wt(e,t){e.cloud.usingServiceWorker?_t(e,t):e.localSyncEvent.next({purpose:t})}const kt="fromBase64"in Uint8Array,St="toBase64"in Uint8Array.prototype,xt="undefined"!=typeof Buffer?e=>Buffer.from(e,"base64"):kt?e=>Uint8Array.fromBase64(e):e=>{const t=atob(e),n=t.length,r=new Uint8Array(n);for(var o=0;o<n;o++)r[o]=t.charCodeAt(o);return r},It="undefined"!=typeof Buffer?e=>ArrayBuffer.isView(e)?Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("base64"):Buffer.from(e).toString("base64"):St?e=>(ArrayBuffer.isView(e)?e:new Uint8Array(e)).toBase64():e=>{const t=ArrayBuffer.isView(e)?e:new Uint8Array(e),n=[];for(let e=0,r=t.length;e<r;e+=4096){const r=t.subarray(e,e+4096);n.push(String.fromCharCode.apply(null,r))}return btoa(n.join(""))};class Et 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 Ot(e,n){return new Promise(((r,o)=>{const i=Object.assign(Object.assign({submitLabel:"Submit",cancelLabel:"Cancel"},n),{onSubmit:t=>{e.next(void 0),r(t)},onCancel:()=>{e.next(void 0),o(new t.AbortError("User cancelled"))}});e.next(i)}))}function Tt(e,t,...n){return Ot(e,{type:"message-alert",title:t,alerts:n,fields:{},submitLabel:"OK",cancelLabel:null})}function jt(e,t,n){return i(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 Ot(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 At(e,t,n){return i(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:o}=yield Ot(e,{type:"otp",title:"Enter OTP",alerts:r,fields:{otp:{type:"otp",label:"OTP",placeholder:"Paste OTP here"}}});return o}))}function Ct(e){return i(this,void 0,void 0,(function*(){var t,n,r;const o=yield e.getCurrentUser(),{accessToken:i,accessTokenExpiration:s,refreshToken:a,refreshTokenExpiration:c,claims:l}=o;if(!i)return null;if((null!==(t=null==s?void 0:s.getTime())&&void 0!==t?t:1/0)>Date.now()&&"ok"===((null===(n=o.license)||void 0===n?void 0:n.status)||"ok"))return o;if(!a)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 Ut(e.cloud.options.databaseUrl,o);return yield e.table("$logins").update(l.sub,{accessToken:u.accessToken,accessTokenExpiration:u.accessTokenExpiration,claims:u.claims,license:u.license,data:u.data}),u}))}function Pt(e,n,r,o,s){return i(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 Ut(e,n):yield function(e,n,r,o){return i(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:i,publicKey:s}=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(!i||!s)throw new Error("Could not generate RSA keypair");e.nonExportablePrivateKey=i;const a=function(e){const t=It(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",s));e.publicKey=s;try{const t=yield n({public_key:a,hints:o});if("error"===t.type)throw new Et(t);if("tokens"!==t.type)throw new Error(`Unexpected response type from token endpoint: ${t.type}`);return e.accessToken=t.accessToken,e.accessTokenExpiration=new Date(t.accessTokenExpiration),e.refreshToken=t.refreshToken,t.refreshTokenExpiration&&(e.refreshTokenExpiration=new Date(t.refreshTokenExpiration)),e.userId=t.claims.sub,e.email=t.claims.email,e.name=t.claims.name,e.claims=t.claims,e.license={type:t.userType,status:t.claims.license||"ok"},e.data=t.data,null!=t.evalDaysLeft&&(e.license.evalDaysLeft=t.evalDaysLeft),null!=t.userValidUntil&&(e.license.validUntil=new Date(t.userValidUntil)),t.alerts&&t.alerts.length>0&&(yield Ot(r,{type:"message-alert",title:"Authentication Alert",fields:{},alerts:t.alerts})),e}catch(e){if(e instanceof Et)throw yield Tt(r,e.title,{type:"error",messageCode:e.messageCode,message:e.message,messageParams:{}}),e;let n="We're having a problem authenticating right now.";if(e instanceof TypeError){n=void 0!==typeof navigator&&!navigator.onLine?"You seem to be offline. Please connect to the internet and try again.":t.debug||"undefined"!=typeof location&&("localhost"===location.hostname||"127.0.0.1"===location.hostname)?`Could not connect to server. Please verify that your origin '${location.origin}' is whitelisted using \`npx dexie-cloud whitelist\``:"Could not connect to server. Please verify the connection.",yield Tt(r,"Authentication Failed",{type:"error",messageCode:"GENERIC_ERROR",message:n,messageParams:{}}).catch((()=>{}))}throw e}}))}(n,r,o,s)}))}function Ut(e,t){return i(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",o=(new TextEncoder).encode(t.refreshToken+n),i=yield crypto.subtle.sign(r,t.nonExportablePrivateKey,o),s=It(i),a={grant_type:"refresh_token",refresh_token:t.refreshToken,scopes:["ACCESS_DB"],signature:s,signing_algorithm:r,time_stamp:n},c=yield fetch(`${e}/token`,{body:JSON.stringify(a),method:"post",headers:{"Content-Type":"application/json"},mode:"cors"});if(200!==c.status)throw new Error(`RefreshToken: Status ${c.status} from ${e}/token`);const l=yield c.json();if("error"===l.type)throw new Et(l);return t.accessToken=l.accessToken,t.accessTokenExpiration=l.accessTokenExpiration?new Date(l.accessTokenExpiration):void 0,t.claims=l.claims,t.license={type:l.userType,status:l.claims.license||"ok"},null!=l.evalDaysLeft&&(t.license.evalDaysLeft=l.evalDaysLeft),null!=l.userValidUntil&&(t.license.validUntil=new Date(l.userValidUntil)),l.data&&(t.data=l.data),t}))}const Dt=new WeakMap;class $t{constructor(e,t){Dt.set(this,e),Object.assign(this,t)}static load(e,t){return e.table("$logins").get(t).then((n=>new $t(e,n||{userId:t,claims:{sub:t},lastLogin:new Date(0)})))}save(){return i(this,void 0,void 0,(function*(){Dt.get(this).table("$logins").put(this)}))}}const Lt={userId:"unauthorized",name:"Unauthorized",claims:{sub:"unauthorized"},lastLogin:new Date(0)};try{Object.freeze(Lt),Object.freeze(Lt.claims)}catch(e){}function Rt(e,t){return n.firstValueFrom(n.from(e).pipe(n.filter(t)))}function Nt(e){return i(this,void 0,void 0,(function*(){const t=yield Bt(e);if(t){if(!(yield function(e,t,n){return i(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 Ot(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 Bt(e,{deleteUnsyncedData:!0})}}))}function Bt(e){return i(this,arguments,void 0,(function*(e,{deleteUnsyncedData:t=!1}={}){const[n,r]=yield e.dx.transaction("rw",e.dx.tables,(n=>i(this,void 0,void 0,(function*(){const r=n.idbtrans;r.disableChangeTracking=!0,r.disableAccessControl=!0;const o=n.storeNames.filter((e=>e.endsWith("_mutations"))),i=(yield Promise.all(o.map((e=>n.table(e).count())))).reduce(((e,t)=>e+t),0);if(i>0&&!t)return[i,!1];e.$syncState.delete("syncState");for(const t of e.dx.tables)"$jobs"!==t.name&&"$syncState"!==t.name&&t.clear();return[i,!0]}))));return r&&(yield Rt(e.cloud.currentUser,(e=>e.userId===Lt.userId)),yield e.cloud.sync({purpose:"pull",wait:!0})),n}))}class Mt extends Error{constructor(e,t){super(t||`${e.status} ${e.statusText}`),this.httpStatus=e.status}get name(){return"HttpError"}}function Ft(e,...t){globalThis.console[e](...t)}function Wt(e,t){return i(this,void 0,void 0,(function*(){var n;const r=yield e.getCurrentUser(),o=r.userId;if(r.isLoggedIn&&(!t||!t.email&&!t.userId)){if("ok"===((null===(n=r.license)||void 0===n?void 0:n.status)||"ok")&&r.accessToken&&(!r.accessTokenExpiration||r.accessTokenExpiration.getTime()>Date.now()))return!1;if(r.refreshToken&&(!r.refreshTokenExpiration||r.refreshTokenExpiration.getTime()>Date.now()))return yield Ct(e),!1}const s=new $t(e,{claims:{},lastLogin:new Date(0)});return yield Pt(e.cloud.options.databaseUrl,s,e.cloud.options.fetchTokens||function(e){const{userInteraction:t}=e.cloud;return function(n){return i(this,arguments,void 0,(function*({public_key:n,hints:r}){var o;let i;const s=null===(o=e.cloud.options)||void 0===o?void 0:o.databaseUrl;if(!s)throw new Error("No database URL given.");if("demo"===(null==r?void 0:r.grant_type))i={demo_user:yield jt(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 jt(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 a=yield fetch(`${s}/token`,{body:JSON.stringify(i),method:"post",headers:{"Content-Type":"application/json",mode:"cors"}});if(200!==a.status){const e=yield a.text();throw yield Tt(t,"Token request failed",{type:"error",messageCode:"GENERIC_ERROR",message:e,messageParams:{}}).catch((()=>{})),new Mt(a,e)}const c=yield a.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 ${s}/token`);const e=yield At(t,i.email),r=Object.assign(Object.assign({},i),{otp:e||"",otp_id:c.otp_id,public_key:n});let o=yield fetch(`${s}/token`,{body:JSON.stringify(r),method:"post",headers:{"Content-Type":"application/json"},mode:"cors"});for(;401===o.status;){const e=yield o.text();r.otp=yield At(t,i.email,{type:"error",messageCode:"INVALID_OTP",message:e,messageParams:{}}),o=yield fetch(`${s}/token`,{body:JSON.stringify(r),method:"post",headers:{"Content-Type":"application/json"},mode:"cors"})}if(200!==o.status){const e=yield o.text();throw new Mt(o,e)}return yield o.json()}throw new Error(`Unexpected response from ${s}/token`)}))}}(e),e.cloud.userInteraction,t),o!==Lt.userId&&s.userId!==o&&(yield Nt(e)),yield function(e,t){return i(this,void 0,void 0,(function*(){const n=e.table("$logins");yield e.transaction("rw",n,(e=>i(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&&(Ft("debug","Login context property names:",Object.keys(t)),Ft("debug","Login context property names:",Object.keys(t)),Ft("debug","Login context:",t),Ft("debug","Login context JSON:",JSON.stringify(t)))}catch(e){}throw e}})))),yield Rt(e.cloud.currentUser,(e=>e.userId===t.userId))}))}(e,s),wt(e,"pull"),s.userId!==o}))}const Vt={},Kt="undefined"!=typeof self&&self.document&&"undefined"!=typeof navigator&&navigator.serviceWorker;Kt&&Kt.ready.then((e=>Vt.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 Ht{constructor(e){this.name=e}subscribe(e){if(!Kt)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 Kt.addEventListener("message",t),()=>Kt.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}))):Vt.registration&&(null===(t=Vt.registration.active)||void 0===t||t.postMessage({type:`sw-broadcast-${this.name}`,message:e}))}}const zt=globalThis["lbc-events"]||(globalThis["lbc-events"]=new Map);class qt extends n.Observable{constructor(e){const t="undefined"==typeof BroadcastChannel?new Ht(e):new BroadcastChannel(e);super((n=>{function r(e){n.next(e.detail)}function o(e){n.next(e.data)}let i;!function(e,t){zt.has(e)?zt.get(e).push(t):zt.set(e,[t])}(`lbc-${e}`,r);try{t instanceof Ht?i=t.subscribe((e=>n.next(e))):t.addEventListener("message",o)}catch(e){}return()=>{!function(e,t){const n=zt.get(e);if(n){const e=n.indexOf(t);-1!==e&&n.splice(e,1)}}(`lbc-${e}`,r),t instanceof Ht?i():t.removeEventListener("message",o)}})),this.name=e,this.bc=t}next(e){this.bc.postMessage(e);!function(e){const t=zt.get(e.type);t&&t.forEach((t=>{try{t(e)}catch(e){}}))}(new CustomEvent(`lbc-${this.name}`,{detail:e}))}}function Yt(e){return i(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),o=yield crypto.subtle.digest("SHA-1",r);return It(o)}))}function Jt(e){return Object.entries(e.cloud.schema||{}).filter((([,{markedForSync:e}])=>e)).map((([t])=>e.tables.filter((({name:e})=>e===t))[0])).filter((e=>e))}function Gt(e){return`$${e}_mutations`}function Qt(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 Xt=[].concat;function Zt(e){return Xt.apply([],e)}function en(e,t){return i(this,arguments,void 0,(function*(e,t,{since:n={},limit:r=1/0}={}){const o=Zt(yield Promise.all(e.map((e=>i(this,void 0,void 0,(function*(){const t=Qt(e.name),o=n[t];let i=o?e.where("rev").above(o):e;r<1/0&&(i=i.limit(r));return(yield i.toArray()).map((e=>({table:t,mut:e})))})))))).sort(((e,t)=>e.mut.txid===t.mut.txid?e.mut.opNo-t.mut.opNo:e.mut.ts-t.mut.ts)),s=[];let a=null,c=null;for(const{table:e,mut:t}of o)a&&a.table===e&&c===t.txid?a.muts.push(t):(a={table:e,muts:[t]},c=t.txid,s.push(a));return s}))}function tn(e){const t=new Uint8Array(e);if("undefined"!=typeof crypto)crypto.getRandomValues(t);else for(let n=0;n<e;n++)t[n]=Math.floor(256*Math.random());if("undefined"!=typeof Buffer&&Buffer.from)return Buffer.from(t).toString("base64");if("undefined"!=typeof btoa)return btoa(String.fromCharCode.apply(null,t));throw new Error("No btoa or Buffer available")}const{toString:nn}={};const rn={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 on(...e){const t=e.reduce(((e,t)=>({...e,...t})),e.reduce(((e,t)=>({...t,...e})),{})),n=new WeakMap;return{stringify(e,r,o){const i=JSON.stringify(e,(function(e){const o=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 rn;let i=n.get(r);if(void 0!==i)return i;const s=(o=e,nn.call(o).slice(8,-1)),a=Object.entries(t).find((([t,n])=>{var r,o;return null!==(o=null===(r=null==n?void 0:n.test)||void 0===r?void 0:r.call(n,e,s))&&void 0!==o?o:t===s}));return i=null==a?void 0:a[1],i||(i=Array.isArray(e)?null:"function"==typeof e?t.function||null:rn),n.set(r,i),i}default:return t[r]}var o}(o);return i?i.replace(o,r,t):o}),o);return i},parse(e,n){const r=[];return JSON.parse(e,(function(e,o){const i=null==o?void 0:o.$t;if(i){const e=t[i];o=e?e.revive(o,n,t):o}let s=r[r.length-1];if(s&&s[0]===o){o={...o};for(const e of s[1])delete o[e];for(const[e,t]of Object.entries(s[2]))o[e]=t;r.pop()}if(void 0===o||"$"===e[0]&&"$t"!==e){let t,n;s=r[r.length-1],s&&s[0]===this?(t=s[1],n=s[2]):r.push([this,t=[],n={}]),"$"===e[0]&&"$t"!==e?(t.push(e),n[e.substr(1)]=o):n[e]=void 0}return o}))}}}const sn={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 an={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 cn={bigint:{replace:e=>({$t:"bigint",v:""+e}),revive:e=>BigInt(e.v)}};var ln={Date:{replace:e=>({$t:"Date",v:isNaN(e.getTime())?"NaN":e.toISOString()}),revive:({v:e})=>new Date("NaN"===e?NaN:Date.parse(e))}},un={Set:{replace:e=>({$t:"Set",v:Array.from(e.entries())}),revive:({v:e})=>new Set(e)}},dn={Map:{replace:e=>({$t:"Map",v:Array.from(e.entries())}),revive:({v:e})=>new Map(e)}};const fn="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof global?global:void 0;var pn=["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 o=fn[t];return o&&new o(r.ArrayBuffer.revive({v:e},n,r))}}})),{});function yn(e){return function(e){for(var t="",n=0,r=e.length;n<r;n++)t+=mn[e[n]];return t}(It(e))}function hn(e){return xt(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+=vn[e[n]];return t}(e))}const vn={"-":"=",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:"+","|":"/"},mn={};for(const e of Object.keys(vn))mn[vn[e]]=e;var bn={ArrayBuffer:{replace:e=>({$t:"ArrayBuffer",v:yn(e)}),revive:({v:e})=>{const t=hn(e);return t.buffer.byteLength===t.byteLength?t.buffer:t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}}};class gn{constructor(e,t){this.buf=e,this.type=t}}function _n(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 wn(e){const t=new Uint8Array(e.length);for(let n=0;n<e.length;++n)t[n]=e.charCodeAt(n);return t.buffer}var kn={Blob:{test:(e,t)=>"Blob"===t||e instanceof gn,replace:e=>({$t:"Blob",v:It(e instanceof gn?e.buf:wn(_n(e))),type:e.type}),revive:({type:e,v:t})=>{const n=xt(t);return void 0!==typeof Blob?new Blob([n]):new gn(n.buffer,e)}}};const Sn={...an,...cn,...ln,...un,...dn,...pn,...bn,...kn};function xn(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 In={undefined:{replace:()=>({$t:"undefined"}),revive:()=>{}}},En={File:{test:(e,t)=>"File"===t,replace:e=>({$t:"File",v:It(wn(_n(e))),type:e.type,name:e.name,lastModified:new Date(e.lastModified).toISOString()}),revive:({type:e,v:t,name:n,lastModified:r})=>{const o=xt(t);return new File([o],n,{type:e,lastModified:new Date(r).getTime()})}}};const On="function"==typeof BigInt&&"bigint"==typeof BigInt(0);class Tn{toString(){return this.v}constructor(e){this.v=e}}const jn=On?{}:{bigint:{test:e=>e instanceof Tn,replace:e=>Object.assign({$t:"bigint"},e),revive:({v:e})=>new Tn(e)}},An=Object.assign(Object.assign(Object.assign(Object.assign({},In),jn),En),{PropModification:{test:e=>e instanceof t.PropModification,replace:e=>Object.assign({$t:"PropModification"},e["@@propmod"]),revive:e=>{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 o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}(e,["$t"]);return new t.PropModification(n)}}}),Cn=on(Sn,An),Pn=function(...e){const t=on(Sn,sn,...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),o=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[o,r]},async parse(e,n){let r=0;const o=[],i=await xn(n),s=new DataView(i);for(;r<i.byteLength;){const e=s.getUint32(r);r+=4;const t=i.slice(r,r+e);r+=e,o.push(t)}return t.parse(e,o)},async fromBinary(e){const t=new DataView(await xn(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)}}}(An);function Un(e,n,r){const o=[];for(let i of r){const{table:r,muts:s}=i,a=e.tables.find((e=>e.name===r));if(!a)throw new Error(`Internal error: table ${r} not found in DBCore schema`);const{primaryKey:c}=a;let l=i;s.forEach(((e,r)=>{const o=!c.outbound&&("upsert"===e.type||"insert"===e.type);e.keys.forEach(((e,s)=>{if(Array.isArray(e)){l===i&&(l=Dn(i,o));const t=l.muts[r],n=JSON.stringify(e);t.keys[s]=n}else if("#"===e[0]){l===i&&(l=Dn(i,o));const a=l.muts[r];if(!n.isLoggedIn)throw new Error("Internal error: Cannot sync private IDs before authenticated");const u=`${e}:${n.userId}`;a.keys[s]=u,o&&t.setByKeyPath(a.values[s],c.keyPath,u)}}))})),o.push(l)}return o}function Dn(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 $n=new WeakMap;function Ln(e){return i(this,void 0,void 0,(function*(){var t,n;const r=(null!==(n=null===(t=$n.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 Rn(e,t,n,r,o,s,a,c,l){return i(this,void 0,void 0,(function*(){const i={Accept:"application/json, application/x-bison, application/x-bison-stream","Content-Type":"application/tson"},u=yield Ct(o),d=null==u?void 0:u.accessToken;d&&(i.Authorization=`Bearer ${d}`);const f={v:2,dbID:null==n?void 0:n.remoteDbId,clientIdentity:c,schema:a||{},lastPull:n?{serverRevision:n.serverRevision,yServerRevision:n.yServerRevision,realms:n.realms,inviteRealms:n.inviteRealms}:void 0,baseRevs:r,changes:Un(o.dx.core.schema,l,e),y:t,dxcv:o.cloud.version};o.syncStateChangedEvent.next({phase:"pushing"});const p=Cn.stringify(f),y=yield fetch(`${s}/sync`,{method:"post",headers:i,credentials:"include",body:p});if(o.syncStateChangedEvent.next({phase:"pulling"}),function(e,t){const n=t.headers.get("Ratelimit-Limit"),r=t.headers.get("Ratelimit-Remaining"),o=t.headers.get("Ratelimit-Reset");if(n&&r&&o){const t=Number(n),i=Math.max(0,Number(r)),s=Number(o);if(i<t/2){const t=Math.ceil(s/(i+1));$n.set(e,new Date(Date.now()+1e3*t))}else $n.delete(e)}}(o,y),!y.ok)throw new Mt(y);if("application/x-bison"===y.headers.get("content-type"))return Pn.fromBinary(yield y.blob());{const e=yield y.text();return Cn.parse(e)}}))}function Nn(e){if(null==e?void 0:e.cancelled)throw new t.AbortError("Operation was cancelled")}let Bn=!1;function Mn(e,t,n,r){return i(this,void 0,void 0,(function*(){yield e.$baseRevs.bulkPut(Object.keys(t).filter((e=>t[e].markedForSync)).map((e=>({tableName:e,clientRev:(n[e]||0)+1,serverRev:r})))),yield e.$baseRevs.where("tableName").noneOf(Object.keys(t).filter((e=>t[e].markedForSync))).delete()}))}function Fn(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 Wn(e,n,r){return i(this,void 0,void 0,(function*(){const o=yield e.bulkGet(n),i=[],s=[];n.forEach(((n,a)=>{const c=o[a];if(c){for(const[o,i]of Object.entries(r[a]))if(o===e.schema.primKey.keyPath){if(0!==t.cmp(i,n))throw new Error("Cannot change primary key")}else t.setByKeyPath(c,o,i);i.push(n),s.push(c)}})),yield null==e.schema.primKey.keyPath?e.bulkPut(s,i):e.bulkPut(s)}))}function Vn(e,n){return i(this,void 0,void 0,(function*(){for(const{table:r,muts:o}of e){if(!n.dx._allTables[r])continue;const e=n.table(r),{primaryKey:i}=e.core.schema,s=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 o){const r=n.keys.map(s);switch(n.type){case"insert":i.outbound?yield e.bulkAdd(n.values,r):(r.forEach(((e,r)=>{t.setByKeyPath(n.values[r],i.keyPath,e)})),yield e.bulkAdd(n.values));break;case"upsert":i.outbound?yield e.bulkPut(n.values,r):(r.forEach(((e,r)=>{t.setByKeyPath(n.values[r],i.keyPath,e)})),yield e.bulkPut(n.values));break;case"modify":1===r.length?yield e.update(r[0],n.changeSpec):yield e.where(":id").anyOf(r).modify(n.changeSpec);break;case"update":yield Wn(e,r,n.changeSpecs);break;case"delete":yield e.bulkDelete(r)}}}}))}"undefined"!=typeof self&&"undefined"!=typeof navigator&&(Bn=navigator.onLine,self.addEventListener("online",(()=>Bn=!0)),self.addEventListener("offline",(()=>Bn=!1)));const Kn="dexie-cloud-syncer";function Hn(e,t){return e.where("i").between(t,1/0,!0).toArray()}function zn(e){const t=e.dx._options.Y;if(!t)throw new Error("Y library not supplied to Dexie constructor");return t}function qn(e,t,n){var r,o,i;if(!e.dx._allTables[t])return;const s=null===(i=null===(o=null===(r=e.table(t))||void 0===r?void 0:r.schema.yProps)||void 0===o?void 0:o.find((e=>e.prop===n)))||void 0===i?void 0:i.updatesTable;return s&&e.dx._allTables[s]?e.table(s):void 0}function Yn(e,n){return i(this,void 0,void 0,(function*(){var r;const o={};let s,a=!1;for(const c of e)try{switch(c.type){case"u-s":{const e=qn(n,c.table,c.prop);if(e){const t={k:c.k,u:c.u};c.r&&(t.r=c.r,s=c.r),o[e.name]=yield e.add(t)}break}case"u-ack":{const e=qn(n,c.table,c.prop);e&&(yield n.transaction("rw",e,(t=>i(this,void 0,void 0,(function*(){let n=yield t.table(e.name).get(Kn);yield t.table(e.name).put(Object.assign(Object.assign({},n||{i:Kn}),{unsentFrom:Math.max((null==n?void 0:n.unsentFrom)||1,c.i+1)}))})))));break}case"u-reject":{const e=qn(n,c.table,c.prop);if(!e)break;const o=null===(r=yield e.get(c.i))||void 0===r?void 0:r.k;if(null!=o){yield n.transaction("rw",e,(n=>(n.idbtrans._rejecting_y_ypdate=!0,e.where("i").aboveOrEqual(c.i).filter((e=>0===t.cmp(e.k,o)&&1==(1&(e.f||0)))).delete())));const r=t.DexieYProvider.getDocCache(n.dx).find(c.table,o,c.prop);r&&r.destroy()}break}case"in-sync":{const e=t.DexieYProvider.getDocCache(n.dx).find(c.table,c.k,c.prop);e&&!e.isSynced&&e.emit("sync",[!0]);break}case"y-complete-sync-done":s=c.yServerRev;break;case"outdated-server-rev":a=!0}}catch(e){}return{receivedUntils:o,resyncNeeded:a,yServerRevision:s}}))}const Jn=1,Gn=2,Qn=3;function Xn(e,n,r){return i(this,arguments,void 0,(function*(e,n,{yDownloadedRealms:r,realms:o}){if(r&&o&&o.every((e=>"*"===r[e])))return;const s=yield Ct(e),a={"Content-Type":"application/json",Accept:"application/octet-stream"};s&&(a.Authorization=`Bearer ${s.accessToken}`);const c=yield fetch(`${n}/y/download`,{body:Cn.stringify({downloadedRealms:r||{}}),method:"POST",headers:a,credentials:"include"});if(!c.ok)throw new Error(`Failed to download Yjs documents from server. Status: ${c.status}`);yield async function(e,...t){var n,r,o;let i=e();for(let e=0;e<t.length;e++)i=t[e](i);try{for(var s,a=!0,c=f(i);!(n=(s=await c.next()).done);a=!0)s.value,a=!1}catch(e){r={error:e}}finally{try{a||n||!(o=c.return)||await o.call(c)}finally{if(r)throw r.error}}}(function(e){return function(){return d(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 u(t.read());if(e)return yield u(void 0);yield yield u(n)}}finally{t.releaseLock()}}))}}(c),re,(function(r){return d(this,arguments,(function*(){var o,s,a,c;let l=null,d=null,p=null,y=[];function h(t){return i(this,void 0,void 0,(function*(){const r=y[y.length-1];if(y.length>0){if(!l||!d||!p)throw new Error(`Protocol error from ${n}/y/download`);const t=qn(e,d,p);t&&(yield t.bulkAdd(y)),y=[]}l&&(d&&p&&r||t)&&(yield e.$syncState.update("syncState",(e=>{const n=e.yDownloadedRealms||{};n[l]=t?"*":{tbl:d,prop:p,key:r.k},e.yDownloadedRealms=n})))}))}try{try{for(var v,m=!0,b=f(r);!(o=(v=yield u(b.next())).done);m=!0){c=v.value,m=!1;const e=new q(c);for(;Y(e);)switch(G(e)){case Jn:yield u(h(!0)),l=X(e);break;case Gn:yield u(h(!1)),d=X(e),p=X(e);break;case Qn:{const t=ne(e),n=J(e);y.push({k:t,u:n});break}}yield u(h(!1))}}catch(e){s={error:e}}finally{try{m||o||!(a=b.return)||(yield u(a.call(b)))}finally{if(s)throw s.error}}yield u(h(!0))}catch(e){throw e instanceof t.DexieError||(yield u(h(!1))),e}}))}))}))}const Zn="currentSyncWorker";function er(e,t,n,r){return tr(e,t,n,r).then((t=>((null==r?void 0:r.justCheckIfNeeded)||e.syncStateChangedEvent.next({phase:"in-sync"}),t))).catch((o=>i(this,void 0,void 0,(function*(){return(null==r?void 0:r.justCheckIfNeeded)?Promise.reject(o):Bn&&(null==r?void 0:r.retryImmediatelyOnFetchError)&&"TypeError"===(null==o?void 0:o.name)&&/fetch/.test(null==o?void 0:o.message)?(e.syncStateChangedEvent.next({phase:"error",error:o}),yield new Promise((e=>setTimeout(e,500))),yield er(e,t,n,Object.assign(Object.assign({},r),{retryImmediatelyOnFetchError:!1}))):(yield e.$syncState.update("syncState",{timestamp:new Date,error:""+o}),e.syncStateChangedEvent.next({phase:Bn?"error":"offline",error:new Error(""+(null==o?void 0:o.message)||o)}),Promise.reject(o))}))))}function tr(e,t,n){return i(this,arguments,void 0,(function*(e,t,n,{isInitialSync:r,cancelToken:o,justCheckIfNeeded:s,purpose:a}={isInitialSync:!1}){var c;if(!(null===(c=e.cloud.options)||void 0===c?void 0:c.databaseUrl))throw new Error("Internal error: sync must not be called when no databaseUrl is configured");const{databaseUrl:l}=t,u=yield e.getCurrentUser(),d=u.isLoggedIn?Jt(e):[],f=d.map((t=>e.table(Gt(t.name)))),p=yield e.getPersistedSyncState(),y=u.isLoggedIn,v=y?function(e,t){const n=(null==t?void 0:t.syncedTables)||[];return Jt(e).filter((e=>!n.includes(e.name)))}(e,p):[];Nn(o);const b=v.length>0;if(b){if(s)return!0;yield e.transaction("rw",v,(e=>i(this,void 0,void 0,(function*(){e.idbtrans.disableChangeTracking=!0,e.idbtrans.disableAccessControl=!0,yield function(e,t,n){return i(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!==Lt.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!==Lt.userId||(e.owner=t.userId)})):yield n.toCollection().modify((e=>{e.realmId&&r.has(e.realmId)||(e.owner&&e.owner!==Lt.userId||(e.owner=t.userId),e.realmId&&e.realmId!==Lt.userId||(e.realmId=t.userId))})))}))}(v,u,null==p?void 0:p.realms)})))),Nn(o)}const[g,_,w,{yMessages:k,lastUpdateIds:S}]=yield e.transaction("r",e.tables,(()=>i(this,void 0,void 0,(function*(){const t=yield e.getPersistedSyncState();let r=yield e.$baseRevs.toArray();r=r.filter((e=>d.some((t=>t.name===e.tableName))));let s=yield en(f,e);const a=yield function(e,t){return i(this,void 0,void 0,(function*(){const n=[],r={};for(const o of t)if(o.schema.yProps)for(const t of o.schema.yProps){const i=zn(e),s=e.table(t.updatesTable),a=yield s.get(Kn),c=(null==a?void 0:a.unsentFrom)||1,l=(null==a?void 0:a.receivedUntil)||0,u=Math.min(c,l+1),d=yield Hn(s,u);d.length>0&&(r[s.name]=d[d.length-1].i);const f={};for(const e of d){const t=1==(1&(e.f||0));if(t&&e.i<c)continue;const n=JSON.stringify(e.k)+"/"+t;let r=f[n];r?(r.u.push(e.u),r.i=Math.max(e.i,r.i)):(f[n]=r={i:e.i,k:e.k,isLocal:t,u:[]},r.u.push(e.u))}for(const{k:e,isLocal:r,u:s,i:a}of Object.values(f)){const c=1===s.length?s[0]:i.mergeUpdatesV2(s);if(r)n.push({type:"u-c",table:o.name,prop:t.prop,k:e,u:c,i:a});else{const r=i.encodeStateVectorFromUpdateV2(c);n.push({type:"sv",table:o.name,prop:t.prop,k:e,sv:r})}}}return{yMessages:n,lastUpdateIds:r}}))}(e,d);if(Nn(o),b){const e=[...(null==p?void 0:p.realms)||[],...(null==p?void 0:p.inviteRealms)||[]],c=yield function(e,t,n,r){return i(this,void 0,void 0,(function*(){const o=`upload-${tn(8)}`;if(t.isLoggedIn&&e.length>0){const s=new Set(r||[]);return(yield Promise.all(e.map((e=>i(this,void 0,void 0,(function*(){const{extractKey:r}=e.core.schema.primaryKey;if(!r)return{table:e.name,muts:[]};const i=n[e.name],a=(null==i?void 0:i.generatedGlobalId)?e.filter((e=>{return r(e),!s.has(e.realmId||"")&&(t=r(e),!(n=null==i?void 0:i.idPrefix)||"string"==typeof t&&t.startsWith(n));var t,n})):e.filter((e=>{const t=r(e);return!s.has(e.realmId||"")&&m(t)})),c=yield a.toArray();if(c.length>0){const n={type:"upsert",values:c,keys:c.map(r),userId:t.userId,txid:o};return{table:e.name,muts:[n]}}return{table:e.name,muts:[]}})))))).filter((e=>e.muts.length>0))}return[]}))}(v,u,n,e);return Nn(o),s=s.concat(c),[s,t,r,a]}return[s,t,r,a]})))),x=g.some((e=>e.muts.some((e=>e.keys.length>0))))||k.some((e=>"u-c"===e.type));if(s)return x;if("push"===a&&!x)return!1;const I=Fn(g,null==_?void 0:_.latestRevisions),E=(null==_?void 0:_.clientIdentity)||h(16);Nn(o);const O=yield Rn(g,k,_,w,e,l,n,E,u),{done:T,newSyncState:j}=yield e.transaction("rw",e.tables,(t=>i(this,void 0,void 0,(function*(){t.idbtrans.disableChangeTracking=!0,t.idbtrans.disableAccessControl=!0;for(const e of Object.keys(n))O.schema[e]&&(n[e]=O.schema[e]);yield e.$syncState.put(n,"schema");const r=yield en(f,e,{since:I});for(const t of f){const n=Qt(t.name);if(r.some((e=>e.table===n&&e.muts.length>0))){if(I[n]){const r=I[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()])}Fn(r,I),yield Mn(e,n,I,O.serverRevision);const o=yield e.getPersistedSyncState();yield function(e,t,n){return i(this,void 0,void 0,(function*(){const r=new Set,o=new Set,i=n?n.realms:[],s=n?n.inviteRealms:[],a=new Set(t.realms),c=new Set(t.realms.concat(t.inviteRealms));for(const e of i)a.has(e)||(o.add(e),c.has(e)||r.add(e));for(const e of s.concat(i))c.has(e)||r.add(e);if(r.size>0||o.size>0){const t=Jt(e);for(const e of t){let t=["realms","members","roles"].includes(e.name)?r:o;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(o.size>0&&(null==n?void 0:n.yDownloadedRealms))for(const e of o)delete n.yDownloadedRealms[e]}))}(e,O,o);const s=o||{syncedTables:[],latestRevisions:{},realms:[],inviteRealms:[],clientIdentity:E};y&&(s.syncedTables=d.map((e=>e.name)).concat(v.map((e=>e.name)))),s.latestRevisions=I,s.remoteDbId=O.dbId,s.initiallySynced=!0,s.realms=O.realms,s.inviteRealms=O.inviteRealms,s.serverRevision=O.serverRevision,s.yServerRevision=O.serverRevision,s.timestamp=new Date,delete s.error;const a=nr(O.changes,r);if(yield Vn(a,e),O.yMessages){const{receivedUntils:t,resyncNeeded:n,yServerRevision:r}=yield Yn(O.yMessages,e);r&&(s.yServerRevision=r),yield function(e,t,n){return i(this,void 0,void 0,(function*(){var r,o,s,a,c;const l={};for(const[t,n]of Object.entries(e))null!==(r=l[t])&&void 0!==r||(l[t]={}),l[t].unsentFrom=n+1;for(const[e,n]of Object.entries(t))null!==(o=l[e])&&void 0!==o||(l[e]={}),l[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=l[e],r=null!==(s=null==t?void 0:t.unsentFrom)&&void 0!==s?s:1,o=null!==(c=null!==(a=null==t?void 0:t.receivedUntil)&&void 0!==a?a:(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,(()=>i(this,void 0,void 0,(function*(){const t=yield n.table(e).get(Kn);t?(t.unsentFrom=Math.max(r,t.unsentFrom||1),t.receivedUntil=Math.max(o,t.receivedUntil||0),yield n.table(e).put(t)):yield n.table(e).add({i:Kn,unsentFrom:r,receivedUntil:o})}))))}}))}(S,t,e),n&&(s.yDownloadedRealms={})}return e.$syncState.put(s,"syncState"),{done:0===r.length,newSyncState:s}}))));if(!T)return yield Ln(e),yield tr(e,t,n,{isInitialSync:r,cancelToken:o});const A=Object.values(n).some((e=>{var t;return null===(t=e.yProps)||void 0===t?void 0:t.length})),C=!!O.yMessages;if(A&&C)try{yield Xn(e,l,j)}catch(e){}return e.syncCompleteEvent.next(),!1}))}function nr(e,t){const n={};_(n,e);const r={};return _(r,t),function(e,t){var n,r,o;for(const[i,s]of Object.entries(t))for(const[t,a]of Object.entries(s))switch(a.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===(o=e[i])||void 0===o?void 0:o[t];if(n)switch(n.type){case"ups":for(const[e,t]of Object.entries(a.mod))y(n.val,e,t);break;case"del":break;case"upd":for(const e of Object.keys(a.mod))delete n.mod[e]}break}}}(n,r),function(e,t=""){t||(t=h(16));const n={};for(const[t,r]of Object.entries(e))for(const[e,o]of Object.entries(r)){const r=n[t]||(n[t]={});(r[o.type]||(r[o.type]=[])).push(Object.assign({key:e},o))}const r=[];for(const[e,o]of Object.entries(n)){const n={table:e,muts:[]};for(const[e,r]of Object.entries(o))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 rr=10,or=1e4,ir=1e3;function sr(e){const r=[],o=new n.BehaviorSubject(!0),s=new n.BehaviorSubject(null);let a=!1,c=new Array(rr).fill(0);return s.subscribe((()=>i(this,void 0,void 0,(function*(){if(!a&&r.length>0){a=!0,c.shift(),c.push(Date.now()),o.next(!1);try{yield function(){return i(this,void 0,void 0,(function*(){for(var o,s,a,c,l,u;r.length>0;){const d=r.shift();try{yield n.firstValueFrom(e.cloud.syncState.pipe(yt((({phase:e})=>"in-sync"===e||"error"===e))));const r=e.cloud.persistedSyncState.value;if(!d)continue;switch(d.type){case"token-expired":const n=e.cloud.currentUser.value,f=yield Ut(e.cloud.options.databaseUrl,n);yield e.table("$logins").update(n.userId,{accessToken:f.accessToken,accessTokenExpiration:f.accessTokenExpiration,claims:f.claims,license:f.license,data:f.data});break;case"realm-added":(null===(o=null==r?void 0:r.realms)||void 0===o?void 0:o.includes(d.realm))||(null===(s=null==r?void 0:r.inviteRealms)||void 0===s?void 0:s.includes(d.realm))||(yield e.cloud.sync({purpose:"pull",wait:!0}));break;case"realm-accepted":(null===(a=null==r?void 0:r.realms)||void 0===a?void 0:a.includes(d.realm))||(yield e.cloud.sync({purpose:"pull",wait:!0}));break;case"realm-removed":((null===(c=null==r?void 0:r.realms)||void 0===c?void 0:c.includes(d.realm))||(null===(l=null==r?void 0:r.inviteRealms)||void 0===l?void 0:l.includes(d.realm)))&&(yield e.cloud.sync({purpose:"pull",wait:!0}));break;case"realms-changed":yield e.cloud.sync({purpose:"pull",wait:!0});break;case"changes":if("error"===(null===(u=e.cloud.syncState.value)||void 0===u?void 0:u.phase)){wt(e,"pull");break}yield e.transaction("rw",e.dx.tables,(n=>i(this,void 0,void 0,(function*(){n.idbtrans.disableChangeTracking=!0,n.idbtrans.disableAccessControl=!0;const[r,o,i]=yield Promise.all([e.getSchema(),e.getPersistedSyncState(),e.getCurrentUser()]);if(!o||!r||!i)return;if(d.baseRev!==o.serverRevision)return void("string"!=typeof d.baseRev||"bigint"!=typeof o.serverRevision&&"object"!=typeof o.serverRevision||wt(e,"pull"));if((yield t.waitFor(Yt(o)))!==d.realmSetHash)return void wt(e,"pull");let s=[];if(i.isLoggedIn){const t=Jt(e).map((t=>e.table(Gt(t.name))));s=yield en(t,e)}if(d.changes.length>0){const t=nr(d.changes,s);yield Vn(t,e)}o.latestRevisions=Fn(s,o.latestRevisions),o.serverRevision=d.newRev,yield Mn(e,r,o.latestRevisions,d.newRev),yield e.$syncState.put(o,"syncState")}))))}}catch(e){}}}))}()}finally{c[c.length-1]-c[0]<or&&(yield new Promise((e=>setTimeout(e,ir)))),a=!1,o.next(!0)}}})))),{enqueue:function(e){r.push(e),s.next(null)},readyToServe:o}}const ar=new WeakMap,cr={members:"@id, [userId+realmId], [email+realmId], realmId",roles:"[realmId+name]",realms:"@realmId",$jobs:"",$syncState:"",$baseRevs:"[tableName+clientRev]",$logins:"claims.sub, lastLogin"};let lr=0;function ur(e){"vip"in e&&(e=e.vip);let t=ar.get(e.cloud);if(!t){const r=new n.Subject;let o=new qt(`syncstatechanged-${e.name}`),i=new qt(`synccomplete-${e.name}`);r.id=++lr;let s=!1;t={get name(){return e.name},close:()=>e.close(),transaction:e.transaction.bind(e),table:e.table.bind(e),get tables(){return e.tables},cloud:e.cloud,get $jobs(){return e.table("$jobs")},get $syncState(){return e.table("$syncState")},get $baseRevs(){return e.table("$baseRevs")},get $logins(){return e.table("$logins")},get realms(){return e.realms},get members(){return e.members},get roles(){return e.roles},get initiallySynced(){return s},localSyncEvent:r,get syncStateChangedEvent(){return o},get syncCompleteEvent(){return i},dx:e};const a={getCurrentUser:()=>t.$logins.toArray().then((e=>e.find((e=>e.isLoggedIn))||Lt)),getPersistedSyncState:()=>t.$syncState.get("syncState"),getSchema:()=>t.$syncState.get("schema").then((e=>{if(e)for(const r of t.tables)r.schema.primKey&&r.schema.primKey.keyPath&&e[r.name]&&(e[r.name].primaryKey="string"==typeof(n=r.schema.primKey.keyPath)?n:n?"["+[].join.call(n,"+")+"]":"");var n;return e})),getOptions:()=>t.$syncState.get("options"),setInitiallySynced(e){s=e},reconfigure(){o=new qt(`syncstatechanged-${e.name}`),i=new qt(`synccomplete-${e.name}`)}};Object.assign(t,a),t.messageConsumer=sr(t),t.messageProducer=new n.Subject,ar.set(e.cloud,t)}return t}const dr="undefined"!=typeof InstallTrigger,fr="undefined"!=typeof navigator&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\/|Edge\//.test(navigator.userAgent),pr=fr?[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]:NaN,yr=fr&&pr<=605||dr,hr="undefined"!=typeof self&&"clients"in self&&!self.document;const{toString:vr}={};function mr(e){return vr.call(e).slice(8,-1)}function br(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 gr=/b|c|d|f|g|h|j|k|l|m|n|p|q|r|s|t|v|x|y|z/i;let _r=0;function wr(e,t){const n=new Uint8Array(18),r=new Uint8Array(n.buffer,0,6),o=Date.now();_r>=o?++_r:_r=o,r[0]=_r/1099511627776,r[1]=_r/4294967296,r[2]=_r/16777216,r[3]=_r/65536,r[4]=_r/256,r[5]=_r;const i=new Uint8Array(n.buffer,6);crypto.getRandomValues(i);return e+yn(new Uint8Array(n.buffer))+(t||"")}function kr(e){return{stack:"dbcore",name:"idGenerationMiddleware",level:1,create:n=>Object.assign(Object.assign({},n),{table:r=>{const o=n.table(r);return Object.assign(Object.assign({},o),{mutate:n=>{var i,s;const a=n.trans;if("versionchange"===a.mode&&(a.disableChangeTracking=!0,a.disableAccessControl=!0),a.disableChangeTracking)return o.mutate(n);if("add"===n.type||"put"===n.type){const a=null===(i=e.cloud.schema)||void 0===i?void 0:i[r];if(null==a?void 0:a.generatedGlobalId){if((null===(s=e.cloud.options)||void 0===s?void 0:s.databaseUrl)&&!e.initiallySynced){const e=br(o.schema.primaryKey,n);return o.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 o.mutate(n)}))}return function(n,i){let s=null;const a=br(o.schema.primaryKey,n);return a.forEach(((c,l)=>{if(void 0===c){const r=n.values[l].realmId||e.cloud.currentUserId,c=r.substr(r.length-3);a[l]=wr(i,c),o.schema.primaryKey.outbound||(s||(s=n.values.slice()),s[l]=t.deepClone(s[l]),t.setByKeyPath(s[l],o.schema.primaryKey.keyPath,a[l]))}else if("string"!=typeof c||!c.startsWith(i)&&!c.startsWith("#"+i))throw new t.ConstraintError(`The ID "${c}" is not valid for table "${r}". Primary '@' keys requires the key to be prefixed with "${i}" (or "#${i}).\nIf you want to generate IDs programmatically, remove '@' from the schema to get rid of this constraint. Dexie Cloud supports custom IDs as long as they are random and globally unique.`)})),o.mutate(Object.assign(Object.assign({},n),{keys:a,values:s||n.values}))}(n,a.idPrefix)}if(null==a?void 0:a.markedForSync){br(o.schema.primaryKey,n).forEach(((e,n)=>{if(!m(e)){const n=Array.isArray(e)?e.map(mr).join(","):mr(e);throw new t.ConstraintError(`Invalid primary key type ${n} for table ${r}. Tables marked for sync has primary keys of type string or Array of string (and optional numbers)`)}}))}}return o.mutate(n)}})}})}}let Sr=0;function xr(e,t){return function(n){const{readers:r,writers:o}=n.trans[t]||(n.trans[t]={writers:[],readers:[]}),i=o.length,s=(i>0?o[i-1].then((()=>e(n)),(()=>e(n))):e(n)).finally((()=>{r.splice(r.indexOf(s))}));return r.push(s),s}}function Ir(e,t){return function(n){const{readers:r,writers:o}=n.trans[t]||(n.trans[t]={writers:[],readers:[]});let i=(o.length>0?o[o.length-1].then((()=>e(n)),(()=>e(n))):r.length>0?(s=r,new Promise((e=>{0===s.length&&e([]);let t=s.length;const n=new Array(t);s.forEach(((r,o)=>Promise.resolve(r).then((e=>n[o]={status:"fulfilled",value:e}),(e=>n[o]={status:"rejected",reason:e})).then((()=>--t||e(n)))))}))).then((()=>e(n))):e(n)).finally((()=>{o.shift()}));var s;return o.push(i),i}}const Er=new n.BehaviorSubject(new Set);function Or(e){var t,n,r,o;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===(o=e.cloud.options)||void 0===o?void 0:o.databaseUrl)}function Tr({currentUserObservable:e,db:n}){return{stack:"dbcore",name:"MutationTrackingMiddleware",level:1,create:r=>{const o=new Set(r.schema.tables.map((e=>e.name))),i=r.schema.tables.filter((e=>!/^\$/.test(e.name))),s=new Map;for(const e of i){const t=`$${e.name}_mutations`;o.has(t)&&s.set(e.name,r.table(t))}return Object.assign(Object.assign({},r),{transaction:(t,o)=>{let i;if("readwrite"===o){const e=t.filter((e=>{var t,r;return null===(r=null===(t=n.cloud.schema)||void 0===t?void 0:t[e])||void 0===r?void 0:r.markedForSync})).map((e=>Gt(e)));i=r.transaction([...t,...e],o)}else i=r.transaction(t,o);if("readwrite"===o){i.txid=tn(16),i.opCount=0,i.currentUser=e.value,Er.value.add(i),Er.next(Er.value);const t=()=>{i.removeEventListener("complete",r),i.removeEventListener("error",t),i.removeEventListener("abort",t),Er.value.delete(i),Er.next(Er.value)},r=()=>{i.mutationsAdded&&!Or(n)&&wt(n,"push"),t()};i.addEventListener("complete",r),i.addEventListener("error",t),i.addEventListener("abort",t)}return i},table:e=>{const o=r.table(e);if(/^\$/.test(e))return e.endsWith("_mutations")?Object.assign(Object.assign({},o),{mutate:e=>("add"!==e.type&&"put"!==e.type||(e.trans.mutationsAdded=!0),o.mutate(e))}):"$logins"===e?Object.assign(Object.assign({},o),{mutate:e=>o.mutate(e).then((t=>(e.trans.mutationsAdded=!0,t))).catch((e=>Promise.reject(e)))}):o;const{schema:i}=o,a=s.get(e);return a?function(e){const t="$lock"+ ++Sr;return Object.assign(Object.assign({},e),{count:xr(e.count,t),get:xr(e.get,t),getMany:xr(e.getMany,t),openCursor:xr(e.openCursor,t),query:xr(e.query,t),mutate:Ir(e.mutate,t)})}(Object.assign(Object.assign({},o),{mutate:t=>{var r,s,a;const l=t.trans;return l.txid?l.disableChangeTracking?o.mutate(t):(null===(s=null===(r=n.cloud.schema)||void 0===r?void 0:r[e])||void 0===s?void 0:s.markedForSync)&&(null===(a=l.currentUser)||void 0===a?void 0:a.isLoggedIn)?"deleteRange"===t.type?o.query({query:{range:t.range,index:i.primaryKey},trans:t.trans,values:!1}).then((e=>c({type:"delete",keys:e.result,trans:t.trans,criteria:{index:null,range:t.range}}))):c(t):o.mutate(t):o.mutate(t)}})):o;function c(r){var s,c;const l=r.trans,u=null===(c=null===(s=n.cloud.options)||void 0===s?void 0:s.unsyncedProperties)||void 0===c?void 0:c[e],{txid:d,currentUser:{userId:f}}=l,{type:p}=r,y=++l.opCount;function h(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 o.mutate(r).then((e=>{var n;const{numFailures:o,failures:s}=e;let c="delete"===p?r.keys:e.results,v="values"in r?r.values:[],m="changeSpec"in r?r.changeSpec:void 0,b="updates"in r?r.updates:void 0;if(o&&(c=c.filter(((e,t)=>!s[t])),v=v.filter(((e,t)=>!s[t]))),u){if(v=v.map((e=>{const t=Object.assign({},e);for(const e of u)delete t[e];return t})),m&&(m=h(m),0===Object.keys(m).length))return e;if(b){let e=b.changeSpecs.map(h),n={keys:[],changeSpecs:[]};const r=new t.RangeSet;let o=!1;for(let t=0,i=e.length;t<i;++t)Object.keys(e[t]).length>0?(n.keys.push(b.keys[t]),n.changeSpecs.push(e[t]),r.addKey(b.keys[t])):o=!0;if(b=n,o){let e=[],t=[];for(let n=0,o=c.length;n<o;++n)r.hasKey(c[n])&&(e.push(c[n]),t.push(v[n]));c=e,v=t}}}const g=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 w="delete"===r.type?{type:"delete",ts:g,opNo:y,keys:c,criteria:_,txid:d,userId:f}:"add"===r.type?{type:"insert",ts:g,opNo:y,keys:c,txid:d,userId:f,values:v}:_&&m?{type:"modify",ts:g,opNo:y,keys:c,criteria:_,changeSpec:m,txid:d,userId:f}:m?{type:"update",ts:g,opNo:y,keys:c,changeSpecs:c.map((()=>m)),txid:d,userId:f}:b?{type:"update",ts:g,opNo:y,keys:b.keys,changeSpecs:b.changeSpecs,txid:d,userId:f}:{type:"upsert",ts:g,opNo:y,keys:c,values:v,txid:d,userId:f};return"isAdditionalChunk"in r&&r.isAdditionalChunk&&(w.isAdditionalChunk=!0),c.length>0||_?a.mutate({type:"add",trans:l,values:[w]}).then((()=>(l.mutationsAdded=!0,e))):e}))}}})}}}function jr(e,t){return function(n,r){var o;const i=Object.assign(Object.assign({},cr),n);Object.keys(cr).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())),o=cr[e].split(",").map((e=>e.trim())),s=new Set(r.map((e=>e.replace(/([&*]|\+\+)/g,""))));if(r[0]!==o[0])throw new Error(`Cannot override primary key of table ${e}. Please declare it as {${e}: ${JSON.stringify(cr[e])}`);for(let t=1;t<o.length;++t){const n=o[t];s.has(n.replace(/([&*]|\+\+)/g,""))||(i[e]+=`,${n}`)}}));const s=t.cloud.schema||(t.cloud.schema={}),a=new Set;Object.keys(i).forEach((e=>{const t=i[e],n=s[e]||(s[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,o=e.length;t<o&&n.length<3;++t)(gr.test(e[t])||(r=e[t])>="A"&&r<="Z")&&(n+=e[t].toLowerCase());for(var r,o,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;)o=n,r=(1&(i=e)?o[0].toUpperCase():o[0].toLowerCase())+(2&i?o[1].toUpperCase():o[1].toLowerCase())+(4&i?o[2].toUpperCase():o[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,a),a.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===(o=t.yProps)||void 0===o?void 0:o.length){const n=s[e];n&&(n.yProps=t.yProps.map((e=>e.prop)))}return c}}function Ar(e,t,n){return"undefined"!=typeof navigator&&navigator.locks?navigator.locks.request(e.name+"|"+t,(()=>n())):n()}const Cr=new n.BehaviorSubject(!0),Pr=new n.BehaviorSubject(!0);Cr.pipe(mt((e=>e?n.of(!0):n.of(!1).pipe(dt(2e4)))),ft()).subscribe(Pr);const Ur="undefined"!=typeof document?n.fromEvent(document,"visibilitychange"):n.of({}),Dr=Ur.pipe(yt((()=>"hidden"===document.visibilityState))),$r=Ur.pipe(yt((()=>"visible"===document.visibilityState))),Lr="undefined"!=typeof window?n.merge($r,n.fromEvent(window,"mousedown"),n.fromEvent(window,"mousemove"),n.fromEvent(window,"keydown"),n.fromEvent(window,"wheel"),n.fromEvent(window,"touchmove")):n.of({});"undefined"!=typeof document&&n.merge(n.of(!0),Dr,Lr).pipe(rt((()=>"visible"===document.visibilityState)),bt((e=>{Cr.value!==e&&Cr.next(e)})),mt((e=>e?n.of(0).pipe(dt(16e4),bt((()=>Cr.next(!1)))):n.of(0)))).subscribe((()=>{}));class Rr extends Error{constructor(){super(...arguments),this.name="TokenExpiredError"}}function Nr(e){var n,r;if(!(null===(n=e.cloud.options)||void 0===n?void 0:n.awarenessProtocol))throw new t.MissingAPIError('awarenessProtocol was not provided to db.cloud.configure(). Please import * as awarenessProtocol from "y-protocols/awareness".');return null===(r=e.cloud.options)||void 0===r?void 0:r.awarenessProtocol}const Br=new WeakMap,Mr=new WeakMap;function Fr(e){let t=Mr.get(e);return t||(t=new n.Subject,Mr.set(e,t)),t}class Wr extends n.Observable{constructor(e,t,n,r,o,i,s,a){super((c=>new Kr(e,t,n,r,o,a,c,i,s)))}}let Vr=0;class Kr extends n.Subscription{constructor(e,t,n,r,o,i,s,a,c){super((()=>this.teardown())),this.id=++Vr,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=o,this.user=i,this.subscriber=s,this.lastUserActivity=new Date,this.messageProducer=a,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 i(this,void 0,void 0,(function*(){if(this.lastServerActivity=new Date,this.pauseUntil&&this.pauseUntil>new Date)return;if(this.ws)throw new Error("Called connect() when a connection is already open");if(!this.databaseUrl)throw new Error("Cannot connect without a database URL");if(this.closed)return;const e=this.user.accessTokenExpiration;if(e&&e<new Date)return void this.subscriber.error(new Rr);this.webSocketStatus.next("connecting"),this.pinger=setInterval((()=>i(this,void 0,void 0,(function*(){if(this.closed)this.teardown();else if(this.ws)try{this.ws.send(JSON.stringify({type:"ping"})),setTimeout((()=>{this.pinger&&(this.closed?this.teardown():this.lastServerActivity<new Date(Date.now()-2e4)&&this.reconnect())}),2e4)}catch(e){this.reconnect()}else this.reconnect()}))),3e4);const r=new URL(this.databaseUrl);r.protocol="http:"===r.protocol?"ws":"wss";const o=new URLSearchParams;if(this.subscriber.closed)return;o.set("v","2"),this.rev&&o.set("rev",this.rev),this.yrev&&o.set("yrev",this.yrev),o.set("realmsHash",this.realmSetHash),o.set("clientId",this.clientIdentity),o.set("dxcv",this.db.cloud.version),this.user.accessToken&&o.set("token",this.user.accessToken);const s=this.ws=new WebSocket(`${r}/changes?${o}`);s.binaryType="arraybuffer",s.onclose=e=>{this.pinger&&this.reconnect()},s.onmessage=e=>{if(this.pinger){this.lastServerActivity=new Date;try{const n="string"==typeof e.data?Cn.parse(e.data):function(e){const t=new q(e),n=X(t);if("outdated-server-rev"===n)return{type:n};if("y-complete-sync-done"===n)return{type:n,yServerRev:X(t)};const r=X(t),o=X(t);switch(n){case"u-ack":case"u-reject":return{type:n,table:r,prop:o,i:Number(ee(t))};default:{const e=ne(t);switch(n){case"in-sync":case"doc-close":return{type:n,table:r,prop:o,k:e};case"aware":return{type:n,table:r,prop:o,k:e,u:J(t)};case"doc-open":return{type:n,table:r,prop:o,k:e,serverRev:ne(t),sv:ne(t)};case"sv":return{type:n,table:r,prop:o,k:e,sv:J(t)};case"u-c":return{type:n,table:r,prop:o,k:e,u:J(t),i:Number(ee(t))};case"u-s":return{type:n,table:r,prop:o,k:e,u:J(t),r:t.pos<t.arr.length&&X(t)||void 0};default:throw new TypeError(`Unknown message type: ${n}`)}}}}(new Uint8Array(e.data));if("error"===n.type)throw new Error(`Error message from dexie-cloud: ${n.error}`);if("aware"===n.type){const e=t.DexieYProvider.getDocCache(this.db.dx).find(n.table,n.k,n.prop);if(e){const t=(e=>Br.get(e))(e);if(t){Nr(this.db).applyAwarenessUpdate(t,n.u,"server")}}}else if("pong"===n.type);else if("doc-open"===n.type){const e=t.DexieYProvider.getDocCache(this.db.dx).find(n.table,n.k,n.prop);e&&Fr(e).next()}else"u-ack"===n.type||"u-reject"===n.type||"u-s"===n.type||"in-sync"===n.type||"outdated-server-rev"===n.type||"y-complete-sync-done"===n.type?Yn([n],this.db).then((e=>i(this,[e],void 0,(function*({resyncNeeded:e,yServerRevision:t,receivedUntils:r}){if(t&&(yield this.db.$syncState.update("syncState",{yServerRevision:t})),"u-s"===n.type&&r){const e=qn(this.db,n.table,n.prop);if(e){const t=r[e.name];t&&(yield e.update(Kn,{receivedUntil:t}))}}e&&(yield this.db.cloud.sync({purpose:"pull",wait:!0}))})))):this.subscriber.next(n)}catch(e){this.subscriber.error(e)}}};try{let e=!1;yield new Promise(((t,n)=>{s.onopen=n=>{e=!0,t(null)},s.onerror=t=>{if(e)this.reconnect();else{const e=t.error||new Error("WebSocket Error");this.subscriber.error(e),this.webSocketStatus.next("error"),n(e)}}})),this.subscriptions.add(this.messageProducer.subscribe((e=>{var t,n;this.closed||("ready"===e.type&&"connected"!==this.webSocketStatus.value&&this.webSocketStatus.next("connected"),"ready"===e.type?(this.rev=e.rev,null===(t=this.ws)||void 0===t||t.send(Cn.stringify(e))):null===(n=this.ws)||void 0===n||n.send(V(e)))}))),this.user.isLoggedIn&&!Or(this.db)&&this.subscriptions.add(function(e){const r=Zt(e.tables.filter((t=>{var n,r;return(null===(r=null===(n=e.cloud.schema)||void 0===n?void 0:n[t.name])||void 0===r?void 0:r.markedForSync)&&t.schema.yProps})).map((e=>e.schema.yProps.map((t=>({table:e.name,ydocProp:t.prop,updatesTable:t.updatesTable}))))));return n.merge(...r.map((({table:r,ydocProp:o,updatesTable:s})=>{const a=e.table(s);return n.from(a.get(Kn)).pipe(n.switchMap((e=>{let s=(null==e?void 0:e.unsentFrom)||1;return n.from(t.liveQuery((()=>i(this,void 0,void 0,(function*(){return(yield Hn(a,s)).filter((e=>e.f&&1&e.f)).map((e=>({type:"u-c",table:r,prop:o,k:e.k,u:e.u,i:e.i})))}))))).pipe(n.tap((e=>{e.length>0&&(s=e.at(-1).i+1)})))})))}))).pipe(n.mergeMap((e=>e)))}(this.db).subscribe(this.db.messageProducer))}catch(e){this.pauseUntil=new Date(Date.now()+6e4)}}))}}class Hr extends Error{constructor(e){super("expired"===e?"License expired":"deactivated"===e?"User deactivated":"Invalid license"),this.name="InvalidLicenseError",e&&(this.license=e)}}function zr(e){return i(this,void 0,void 0,(function*(){var e;yield(e=3e3,new Promise((t=>setTimeout(t,e)))),yield n.firstValueFrom(Lr)}))}function qr(e){return i(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 er(e,e.cloud.options,e.cloud.schema,{justCheckIfNeeded:!0}))}))}const Yr=new WeakMap;function Jr(e,t,n,r){const o=Yr.get(e);if(o){if(o.pull||"push"===(null==r?void 0:r.purpose))return o.promise;{let i=!1;const s=e.cloud.syncState.subscribe((e=>{"pulling"===e.phase&&(i=!0)}));return o.promise.then((()=>{s.unsubscribe()})).catch((e=>(s.unsubscribe(),Promise.reject(e)))).then((()=>{if(!i)return Jr(e,t,n,r)}))}}const s=function(){return i(this,void 0,void 0,(function*(){try{yield Ln(e),yield Ar(e,Zn,(()=>er(e,t,n,r))),Yr.delete(e)}catch(t){throw Yr.delete(e),t}}))}();return Yr.set(e,{promise:s,pull:"push"!==(null==r?void 0:r.purpose)}),s}const Gr=1e3;function Qr(e,t,n){let r=null,o={cancelled:!1},i=0,s=0;function a(r=1){setTimeout((()=>{const f=c?"pull":"push";s=Date.now(),Jr(e,t,n,{cancelToken:o,retryImmediatelyOnFetchError:!0,purpose:f}).then((()=>{if(o.cancelled)d();else if(c||l)return c=!1,l=!1,a();u=!1,i=0,s=0})).catch((e=>{if(o.cancelled)d(),u=!1,i=0,s=0;else if(r<5){const e=[0,20,40,300,900][r]*Gr;i=Date.now()+e,s=0,setTimeout((()=>a(r+1)),e)}else u=!1,i=0,s=0}))}),0)}let c=!1,l=!1,u=!1;const d=()=>{o.cancelled=!0,r&&r.unsubscribe()};return{start:()=>{r=e.localSyncEvent.subscribe((({purpose:e})=>{(e=>{o.cancelled||("pull"===e&&(c=!0),"push"===e&&(l=!0),u?i||s>0&&Date.now():(u=!0,a()))})(e||"pull")}))},stop:d}}function Xr(e,t){if(e&&t&&t.unsyncedTables)for(const n of t.unsyncedTables)e[n]&&(e[n].markedForSync=!1)}var Zr,eo,to,no,ro,oo={},io=[],so=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function ao(e,t){for(var n in t)e[n]=t[n];return e}function co(e){var t=e.parentNode;t&&t.removeChild(e)}function lo(e,t,n){var r,o,i,s={};for(i in t)"key"==i?r=t[i]:"ref"==i?o=t[i]:s[i]=t[i];if(arguments.length>2&&(s.children=arguments.length>3?Zr.call(arguments,2):n),"function"==typeof e&&null!=e.defaultProps)for(i in e.defaultProps)void 0===s[i]&&(s[i]=e.defaultProps[i]);return uo(e,s,r,o,null)}function uo(e,t,n,r,o){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==o?++to:o};return null==o&&null!=eo.vnode&&eo.vnode(i),i}function fo(e){return e.children}function po(e,t){this.props=e,this.context=t}function yo(e,t){if(null==t)return e.__?yo(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?yo(e):null}function ho(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 ho(e)}}function vo(e){(!e.__d&&(e.__d=!0)&&no.push(e)&&!mo.__r++||ro!==eo.debounceRendering)&&((ro=eo.debounceRendering)||setTimeout)(mo)}function mo(){for(var e;mo.__r=no.length;)e=no.sort((function(e,t){return e.__v.__b-t.__v.__b})),no=[],e.some((function(e){var t,n,r,o,i,s;e.__d&&(i=(o=(t=e).__v).__e,(s=t.__P)&&(n=[],(r=ao({},o)).__v=o.__v+1,Io(s,o,r,t.__n,void 0!==s.ownerSVGElement,null!=o.__h?[i]:null,n,null==i?yo(o):i,o.__h),Eo(n,o),o.__e!=i&&ho(o)))}))}function bo(e,t,n,r,o,i,s,a,c,l){var u,d,f,p,y,h,v,m=r&&r.__k||io,b=m.length;for(n.__k=[],u=0;u<t.length;u++)if(null!=(p=n.__k[u]=null==(p=t[u])||"boolean"==typeof p?null:"string"==typeof p||"number"==typeof p||"bigint"==typeof p?uo(null,p,null,null,p):Array.isArray(p)?uo(fo,{children:p},null,null,null):p.__b>0?uo(p.type,p.props,p.key,null,p.__v):p)){if(p.__=n,p.__b=n.__b+1,null===(f=m[u])||f&&p.key==f.key&&p.type===f.type)m[u]=void 0;else for(d=0;d<b;d++){if((f=m[d])&&p.key==f.key&&p.type===f.type){m[d]=void 0;break}f=null}Io(e,p,f=f||oo,o,i,s,a,c,l),y=p.__e,(d=p.ref)&&f.ref!=d&&(v||(v=[]),f.ref&&v.push(f.ref,null,p),v.push(d,p.__c||y,p)),null!=y?(null==h&&(h=y),"function"==typeof p.type&&p.__k===f.__k?p.__d=c=go(p,c,e):c=_o(e,p,f,m,y,c),"function"==typeof n.type&&(n.__d=c)):c&&f.__e==c&&c.parentNode!=e&&(c=yo(f))}for(n.__e=h,u=b;u--;)null!=m[u]&&("function"==typeof n.type&&null!=m[u].__e&&m[u].__e==n.__d&&(n.__d=yo(r,u+1)),jo(m[u],m[u]));if(v)for(u=0;u<v.length;u++)To(v[u],v[++u],v[++u])}function go(e,t,n){for(var r,o=e.__k,i=0;o&&i<o.length;i++)(r=o[i])&&(r.__=e,t="function"==typeof r.type?go(r,t,n):_o(n,r,r,o,r.__e,t));return t}function _o(e,t,n,r,o,i){var s,a,c;if(void 0!==t.__d)s=t.__d,t.__d=void 0;else if(null==n||o!=i||null==o.parentNode)e:if(null==i||i.parentNode!==e)e.appendChild(o),s=null;else{for(a=i,c=0;(a=a.nextSibling)&&c<r.length;c+=2)if(a==o)break e;e.insertBefore(o,i),s=i}return void 0!==s?s:o.nextSibling}function wo(e,t,n){"-"===t[0]?e.setProperty(t,n):e[t]=null==n?"":"number"!=typeof n||so.test(t)?n:n+"px"}function ko(e,t,n,r,o){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||wo(e.style,t,"");if(n)for(t in n)r&&n[t]===r[t]||wo(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?xo:So,i):e.removeEventListener(t,i?xo:So,i);else if("dangerouslySetInnerHTML"!==t){if(o)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 So(e){this.l[e.type+!1](eo.event?eo.event(e):e)}function xo(e){this.l[e.type+!0](eo.event?eo.event(e):e)}function Io(e,t,n,r,o,i,s,a,c){var l,u,d,f,p,y,h,v,m,b,g,_,w,k=t.type;if(void 0!==t.constructor)return null;null!=n.__h&&(c=n.__h,a=t.__e=n.__e,t.__h=null,i=[a]),(l=eo.__b)&&l(t);try{e:if("function"==typeof k){if(v=t.props,m=(l=k.contextType)&&r[l.__c],b=l?m?m.props.value:l.__:r,n.__c?h=(u=t.__c=n.__c).__=u.__E:("prototype"in k&&k.prototype.render?t.__c=u=new k(v,b):(t.__c=u=new po(v,b),u.constructor=k,u.render=Ao),m&&m.sub(u),u.props=v,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=ao({},u.__s)),ao(u.__s,k.getDerivedStateFromProps(v,u.__s))),f=u.props,p=u.state,d)null==k.getDerivedStateFromProps&&null!=u.componentWillMount&&u.componentWillMount(),null!=u.componentDidMount&&u.__h.push(u.componentDidMount);else{if(null==k.getDerivedStateFromProps&&v!==f&&null!=u.componentWillReceiveProps&&u.componentWillReceiveProps(v,b),!u.__e&&null!=u.shouldComponentUpdate&&!1===u.shouldComponentUpdate(v,u.__s,b)||t.__v===n.__v){u.props=v,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&&s.push(u);break e}null!=u.componentWillUpdate&&u.componentWillUpdate(v,u.__s,b),null!=u.componentDidUpdate&&u.__h.push((function(){u.componentDidUpdate(f,p,y)}))}if(u.context=b,u.props=v,u.__v=t,u.__P=e,g=eo.__r,_=0,"prototype"in k&&k.prototype.render)u.state=u.__s,u.__d=!1,g&&g(t),l=u.render(u.props,u.state,u.context);else do{u.__d=!1,g&&g(t),l=u.render(u.props,u.state,u.context),u.state=u.__s}while(u.__d&&++_<25);u.state=u.__s,null!=u.getChildContext&&(r=ao(ao({},r),u.getChildContext())),d||null==u.getSnapshotBeforeUpdate||(y=u.getSnapshotBeforeUpdate(f,p)),w=null!=l&&l.type===fo&&null==l.key?l.props.children:l,bo(e,Array.isArray(w)?w:[w],t,n,r,o,i,s,a,c),u.base=t.__e,t.__h=null,u.__h.length&&s.push(u),h&&(u.__E=u.__=null),u.__e=!1}else null==i&&t.__v===n.__v?(t.__k=n.__k,t.__e=n.__e):t.__e=Oo(n.__e,t,n,r,o,i,s,c);(l=eo.diffed)&&l(t)}catch(e){t.__v=null,(c||null!=i)&&(t.__e=a,t.__h=!!c,i[i.indexOf(a)]=null),eo.__e(e,t,n)}}function Eo(e,t){eo.__c&&eo.__c(t,e),e.some((function(t){try{e=t.__h,t.__h=[],e.some((function(e){e.call(t)}))}catch(e){eo.__e(e,t.__v)}}))}function Oo(e,t,n,r,o,i,s,a){var c,l,u,d=n.props,f=t.props,p=t.type,y=0;if("svg"===p&&(o=!0),null!=i)for(;y<i.length;y++)if((c=i[y])&&"setAttribute"in c==!!p&&(p?c.localName===p:3===c.nodeType)){e=c,i[y]=null;break}if(null==e){if(null===p)return document.createTextNode(f);e=o?document.createElementNS("http://www.w3.org/2000/svg",p):document.createElement(p,f.is&&f),i=null,a=!1}if(null===p)d===f||a&&e.data===f||(e.data=f);else{if(i=i&&Zr.call(e.childNodes),l=(d=n.props||oo).dangerouslySetInnerHTML,u=f.dangerouslySetInnerHTML,!a){if(null!=i)for(d={},y=0;y<e.attributes.length;y++)d[e.attributes[y].name]=e.attributes[y].value;(u||l)&&(u&&(l&&u.__html==l.__html||u.__html===e.innerHTML)||(e.innerHTML=u&&u.__html||""))}if(function(e,t,n,r,o){var i;for(i in n)"children"===i||"key"===i||i in t||ko(e,i,null,n[i],r);for(i in t)o&&"function"!=typeof t[i]||"children"===i||"key"===i||"value"===i||"checked"===i||n[i]===t[i]||ko(e,i,t[i],n[i],r)}(e,f,d,o,a),u)t.__k=[];else if(y=t.props.children,bo(e,Array.isArray(y)?y:[y],t,n,r,o&&"foreignObject"!==p,i,s,i?i[0]:n.__k&&yo(n,0),a),null!=i)for(y=i.length;y--;)null!=i[y]&&co(i[y]);a||("value"in f&&void 0!==(y=f.value)&&(y!==e.value||"progress"===p&&!y||"option"===p&&y!==d.value)&&ko(e,"value",y,d.value,!1),"checked"in f&&void 0!==(y=f.checked)&&y!==e.checked&&ko(e,"checked",y,d.checked,!1))}return e}function To(e,t,n){try{"function"==typeof e?e(t):e.current=t}catch(e){eo.__e(e,n)}}function jo(e,t,n){var r,o;if(eo.unmount&&eo.unmount(e),(r=e.ref)&&(r.current&&r.current!==e.__e||To(r,null,t)),null!=(r=e.__c)){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(e){eo.__e(e,t)}r.base=r.__P=null}if(r=e.__k)for(o=0;o<r.length;o++)r[o]&&jo(r[o],t,"function"!=typeof e.type);n||null==e.__e||co(e.__e),e.__e=e.__d=void 0}function Ao(e,t,n){return this.constructor(e,n)}function Co(e,t,n){var r,o,i;eo.__&&eo.__(e,t),o=(r="function"==typeof n)?null:n&&n.__k||t.__k,i=[],Io(t,e=(!r&&n||t).__k=lo(fo,null,[e]),o||oo,oo,void 0!==t.ownerSVGElement,!r&&n?[n]:o?null:t.firstChild?Zr.call(t.childNodes):null,i,!r&&n?n:o?o.__e:t.firstChild,r),Eo(i,e)}Zr=io.slice,eo={__e:function(e,t,n,r){for(var o,i,s;t=t.__;)if((o=t.__c)&&!o.__)try{if((i=o.constructor)&&null!=i.getDerivedStateFromError&&(o.setState(i.getDerivedStateFromError(e)),s=o.__d),null!=o.componentDidCatch&&(o.componentDidCatch(e,r||{}),s=o.__d),s)return o.__E=o}catch(t){e=t}throw e}},to=0,po.prototype.setState=function(e,t){var n;n=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=ao({},this.state),"function"==typeof e&&(e=e(ao({},n),this.props)),e&&ao(n,e),null!=e&&this.__v&&(t&&this.__h.push(t),vo(this))},po.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),vo(this))},po.prototype.render=fo,no=[],mo.__r=0;const Po={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"},DialogInner:{position:"relative",color:"#222",backgroundColor:"#fff",padding:"30px",marginBottom:"2em",maxWidth:"90%",maxHeight:"90%",overflowY:"auto",border:"3px solid #3d3d5d",borderRadius:"8px",boxShadow:"0 0 80px 10px #666",width:"auto",fontFamily:"sans-serif"},Input:{height:"35px",width:"17em",borderColor:"#ccf4",outline:"none",fontSize:"17pt",padding:"8px"}};function Uo({children:e,className:t}){return lo("div",{className:t},lo("div",{style:Po.Darken}),lo("div",{style:Po.DialogOuter},lo("div",{style:Po.DialogInner},e)))}var Do,$o,Lo,Ro,No=0,Bo=[],Mo=[],Fo=eo.__b,Wo=eo.__r,Vo=eo.diffed,Ko=eo.__c,Ho=eo.unmount;function zo(e,t){eo.__h&&eo.__h($o,e,No||t),No=0;var n=$o.__H||($o.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({__V:Mo}),n.__[e]}function qo(e){return No=1,function(e,t,n){var r=zo(Do++,2);if(r.t=e,!r.__c&&(r.__=[n?n(t):ei(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=$o,!$o.u)){$o.u=!0;var o=$o.shouldComponentUpdate;$o.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!o||o.call(this,e,t,n);var s=!1;return i.forEach((function(e){if(e.__N){var t=e.__[0];e.__=e.__N,e.__N=void 0,t!==e.__[0]&&(s=!0)}})),!!s&&(!o||o.call(this,e,t,n))}}return r.__N||r.__}(ei,e)}function Yo(e){return No=5,function(e,t){var n=zo(Do++,7);return Zo(n.__H,t)?(n.__V=e(),n.i=t,n.__h=e,n.__V):n.__}((function(){return{current:e}}),[])}function Jo(){for(var e;e=Bo.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(Qo),e.__H.__h.forEach(Xo),e.__H.__h=[]}catch(t){e.__H.__h=[],eo.__e(t,e.__v)}}eo.__b=function(e){$o=null,Fo&&Fo(e)},eo.__r=function(e){Wo&&Wo(e),Do=0;var t=($o=e.__c).__H;t&&(Lo===$o?(t.__h=[],$o.__h=[],t.__.forEach((function(e){e.__N&&(e.__=e.__N),e.__V=Mo,e.__N=e.i=void 0}))):(t.__h.forEach(Qo),t.__h.forEach(Xo),t.__h=[])),Lo=$o},eo.diffed=function(e){Vo&&Vo(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(1!==Bo.push(t)&&Ro===eo.requestAnimationFrame||((Ro=eo.requestAnimationFrame)||function(e){var t,n=function(){clearTimeout(r),Go&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,100);Go&&(t=requestAnimationFrame(n))})(Jo)),t.__H.__.forEach((function(e){e.i&&(e.__H=e.i),e.__V!==Mo&&(e.__=e.__V),e.i=void 0,e.__V=Mo}))),Lo=$o=null},eo.__c=function(e,t){t.some((function(e){try{e.__h.forEach(Qo),e.__h=e.__h.filter((function(e){return!e.__||Xo(e)}))}catch(n){t.some((function(e){e.__h&&(e.__h=[])})),t=[],eo.__e(n,e.__v)}})),Ko&&Ko(e,t)},eo.unmount=function(e){Ho&&Ho(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.forEach((function(e){try{Qo(e)}catch(e){t=e}})),t&&eo.__e(t,n.__v))};var Go="function"==typeof requestAnimationFrame;function Qo(e){var t=$o,n=e.__c;"function"==typeof n&&(e.__c=void 0,n()),$o=t}function Xo(e){var t=$o;e.__c=e.__(),$o=t}function Zo(e,t){return!e||e.length!==t.length||t.some((function(t,n){return t!==e[n]}))}function ei(e,t){return"function"==typeof t?t(e):t}function ti({message:e,messageCode:t,messageParams:n}){return e.replace(/\{\w+\}/gi,(e=>n[e.substring(1,e.length-1)]))}function ni({title:e,type:t,alerts:n,fields:r,submitLabel:o,cancelLabel:i,onCancel:s,onSubmit:a}){const[c,l]=qo({}),u=Yo(null);return function(e,t){var n=zo(Do++,4);!eo.__s&&Zo(n.__H,t)&&(n.__=e,n.i=t,$o.__h.push(n))}((()=>{var e;return null===(e=u.current)||void 0===e?void 0:e.focus()}),[]),lo(Uo,{className:"dxc-login-dlg"},lo(fo,null,lo("h3",{style:Po.WindowHeader},e),n.map((e=>lo("p",{style:Po.Alert[e.type]},ti(e)))),lo("form",{onSubmit:e=>{e.preventDefault(),a(c)}},Object.entries(r).map((([e,{type:t,label:n,placeholder:r}],o)=>lo("label",{style:Po.Label,key:o},n?`${n}: `:"",lo("input",{ref:0===o?u:void 0,type:t,name:e,autoComplete:"on",style:Po.Input,autoFocus:!0,placeholder:r,value:c[e]||"",onInput:n=>{var r;const o=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]:o});l(i),"otp"===t&&8===(null==o?void 0:o.trim().length)&&a(i)}})))))),lo("div",{style:Po.ButtonsDiv},lo(fo,null,lo("button",{type:"submit",style:Po.Button,onClick:()=>a(c)},o),i&&lo("button",{style:Po.Button,onClick:s},i))))}class ri extends po{constructor(e){super(e),this.observer=e=>this.setState({userInteraction:e}),this.state={userInteraction:void 0}}componentDidMount(){this.subscription=n.from(this.props.db.cloud.userInteraction).subscribe(this.observer)}componentWillUnmount(){this.subscription&&(this.subscription.unsubscribe(),delete this.subscription)}render(e,{userInteraction:t}){return t?lo(ni,Object.assign({},t)):null}}function oi(e){const t=new WeakMap;return n=>{let r=t.get(n);return r||(r=e(n),t.set(n,r)),r}}const ii=oi((e=>new n.BehaviorSubject(Lt)));function si(e,t){let r=t,o=n.from(e).pipe(n.map((e=>r=e)),n.share({resetOnRefCountZero:()=>n.timer(1e3)}));const i=new n.Observable((e=>{let t=!1;const n=o.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 ai=oi((e=>si(t.liveQuery((()=>e.roles.where({realmId:"rlm-public"}).toArray().then((e=>{const t={};for(const n of e.slice().sort(((e,t)=>(e.sortOrder||0)-(t.sortOrder||0))))t[n.name]=n;return t})))),{}))),ci=oi((e=>si(ii(e._novip).pipe(mt((n=>t.liveQuery((()=>e.transaction("r","realms","members",(()=>Promise.all([e.members.where({userId:n.userId}).toArray(),e.realms.toArray(),n.userId]).then((([e,t,n])=>({selfMembers:e,realms:t,userId:n})))))))))),{selfMembers:[],realms:[],get userId(){return e.cloud.currentUserId}})));function li(...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,o=t[e];t[e]=[...new Set([...o,...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 ui=oi((e=>function(e,t){let r;const o=e.pipe(n.map((e=>r=t(e))));return o.getValue=()=>void 0!==r?r:r=t(e.getValue()),o}(si(n.combineLatest([ci(e._novip),ai(e._novip)]).pipe(rt((([{selfMembers:e,realms:t,userId:n},r])=>({selfMembers:e,realms:t,userId:n,globalRoles:r})))),{selfMembers:[],realms:[],userId:Lt.userId,globalRoles:{}}),(({selfMembers:e,realms:t,userId:n,globalRoles:r})=>{const o=t.map((t=>{const o=e.filter((e=>e.realmId===t.realmId)),i=o.map((e=>e.permissions)).filter((e=>e)),s=Zt(o.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:"*"}:li(...i,...s)})})).reduce(((e,t)=>Object.assign(Object.assign({},e),{[t.realmId]:t})),{[n]:{realmId:n,owner:n,name:n,permissions:{manage:"*"}}});return o}))));class di{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 fi=oi((e=>{const r=ii(e._novip).pipe(mt((n=>t.liveQuery((()=>e.members.where({email:n.email||""}).toArray()))))),o=ui(e._novip),s=ci(e._novip);return si(n.combineLatest([r,s,o]).pipe(rt((([t,n,r])=>{const o=(e,t)=>Object.assign(Object.assign({},e),{[t.id]:Object.assign(Object.assign({},t),{realm:r[t.realmId]})}),s=t.reduce(o,{}),a=n.selfMembers.reduce(o,s);return Object.values(a).filter((e=>!e.accepted)).map((t=>Object.assign(Object.assign({},t),{accept(){return i(this,void 0,void 0,(function*(){yield e.members.update(t.id,{accepted:new Date})}))},reject(){return i(this,void 0,void 0,(function*(){yield e.members.update(t.id,{rejected:new Date})}))}})))}))),[])}));function pi(e){return r=>{var o;const s=r.doc,{parentTable:a}=s.meta||{};if(!(null===(o=e.cloud.schema)||void 0===o?void 0:o[a].markedForSync))return;let c;Object.defineProperty(r,"awareness",{get:()=>c||(c=function(e,r,o){const{parentTable:s,parentId:a,parentProp:c,updatesTable:l}=r.meta,u=Nr(e),d=new u.Awareness(r),f=Fr(r);return d.on("update",(({added:t,updated:n,removed:i},a)=>{const l=t.concat(n).concat(i),f=e.cloud.currentUser.value;if("server"!==a&&f.isLoggedIn&&!Or(e)){const t=u.encodeAwarenessUpdate(d,l);e.messageProducer.next({type:"aware",table:s,prop:c,k:r.meta.parentId,u:t}),o.destroyed&&e.messageProducer.next({type:"doc-close",table:s,prop:c,k:r.meta.parentId})}})),d.on("destroy",(()=>{u.removeAwarenessStates(d,[r.clientID],"provider destroyed")})),(()=>{i(this,void 0,void 0,(function*(){if(o.destroyed)return;let r=!1,u=1;const d=n.combineLatest([e.cloud.webSocketStatus,f.pipe(n.startWith(null))]).subscribe((([t])=>{if(o.destroyed)return;r="connected"===t;const n=e.cloud.currentUser.value;"connected"===t&&n.isLoggedIn&&!Or(e)&&(++u,p().catch((e=>{})))}));function p(){return i(this,void 0,void 0,(function*(){const n=u,d=e.table(l),f=e.$syncState,[p,y]=yield e.transaction("r",f,d,(()=>i(this,void 0,void 0,(function*(){const e=yield d.get(Kn),t=yield f.get("syncState");return[(null==e?void 0:e.receivedUntil)||0,(null==t?void 0:t.yServerRevision)||(null==t?void 0:t.serverRevision)]}))));if(o.destroyed||u!==n||!r)return;const h={type:"doc-open",table:s,prop:c,k:a,serverRev:y},v=yield d.where("i").between(p,1/0,!1).filter((e=>0===t.cmp(e.k,a)&&0==(1&(e.f||0)))).toArray();if(!o.destroyed&&u===n&&r){if(v.length>0){const t=zn(e),n=t.mergeUpdatesV2(v.map((e=>e.u))),r=t.encodeStateVectorFromUpdateV2(n);h.sv=r}e.messageProducer.next(h)}}))}o.addCleanupHandler(d)}))})(),d}(e,s,r),Br.set(s,c),c)})}}const yi={},hi=new WeakMap,vi=bi("tx"),mi=bi("unload");function bi(e){let n=null,r=!1,o=new Map;return{name:e,run(){return i(this,void 0,void 0,(function*(){!r&&o.size>0&&(r=!0,n&&(yield n.catch((()=>{}))),setTimeout((()=>{r=!1;const e=o;o=new Map,n=function(e){return i(this,void 0,void 0,(function*(){for(const{db:n,parentId:r,triggers:o,parentTable:i,prop:s}of e.values()){const e=t.DexieYProvider.getOrCreateDocument(n,i,s,r);try{const n=t.DexieYProvider.load(e);yield n.whenLoaded;for(const t of o)yield t(e,r)}catch(e){null==e||e.name}finally{t.DexieYProvider.release(e)}}}))}(e).finally((()=>{n=null}))}),0))}))},enqueue(e,t,n,r,i){const s=`${e.name}:${t}:${n}:${r}`;let a=o.get(s);a||(a={db:e,parentTable:t,parentId:n,prop:r,triggers:new Set},o.set(s,a)),a.triggers.add(i)}}}function gi(){vi.run()}function _i(){mi.run()}const wi={nameSuffix:!0};function ki(e){const r=e.name,o=ii(e),s=[];let a=!1,c=null;e.on("ready",(e=>i(this,void 0,void 0,(function*(){try{yield function(e){return i(this,void 0,void 0,(function*(){var r,f,p,y,h,v,m;l=!1;const b=ur(e);"undefined"!=typeof window&&"undefined"!=typeof document&&((null===(r=b.cloud.options)||void 0===r?void 0:r.customLoginGui)||s.push(function(e){let t=!1;const n=document.createElement("div");return document.body?(document.body.appendChild(n),Co(lo(ri,{db:e.vip}),n)):addEventListener("DOMContentLoaded",(()=>{t||(document.body.appendChild(n),Co(lo(ri,{db:e.vip}),n))})),{unsubscribe(){try{n.remove()}catch(e){}t=!0},get closed(){return t}}}(e))),b.cloud.isServiceWorkerDB||s.push(function(e){let t=e.cloud.webSocketStatus.value;const r=e.cloud.webSocketStatus.pipe(mt((e=>{const r=t;t=e;const o=n.of(e);switch(e){case"disconnected":return Cr.value?o.pipe(st(500)):o;case"connecting":return"not-started"===r||"error"===r?o:o.pipe(st(4e3));default:return o}})));return n.combineLatest([r,e.syncStateChangedEvent.pipe(vt({phase:"initial"})),ii(e.dx._novip),Pr]).pipe(rt((([t,n,r,o])=>{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:s,error:a,progress:c}=n,l=t;return"error"===s&&(l="error"),"not-started"===t&&("pushing"!==s&&"pulling"!==s||(l="connecting")),"error"!==e.cloud.syncState.value.phase||"pushing"!==n.phase&&"pulling"!==n.phase||(l="connecting"),o||(l="disconnected"),{phase:s,error:a,progress:c,status:Bn?l:"offline",license:"ok"}})))}(b).subscribe(e.cloud.syncState)),s.push(b.syncCompleteEvent.subscribe(d)),b.tables.every((e=>e.core))||function(){throw new t.SchemaError("Version increment needed to allow dexie-cloud change tracking")}();const g="serviceWorker"in navigator?yield navigator.serviceWorker.getRegistrations():[],[_,w]=yield b.transaction("rw",b.$syncState,(()=>i(this,void 0,void 0,(function*(){var e,t;const{options:n,schema:r}=b.cloud,[o,i,s]=yield Promise.all([b.getOptions(),b.getSchema(),b.getPersistedSyncState()]);if(a){if(!o||JSON.stringify(o)!==JSON.stringify(n)){if(!n)throw new Error("Internal error");const e=Object.assign({},n);delete e.fetchTokens,delete e.awarenessProtocol,yield b.$syncState.put(e,"options")}}else b.cloud.options=o||null;if((null===(e=b.cloud.options)||void 0===e?void 0:e.tryUseServiceWorker)&&"serviceWorker"in navigator&&g.length>0&&!yr?b.cloud.usingServiceWorker=!0:((null===(t=b.cloud.options)||void 0===t?void 0:t.tryUseServiceWorker)&&b.cloud.isServiceWorkerDB,b.cloud.usingServiceWorker=!1),Xr(r,b.cloud.options),Xr(i,b.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 b.$syncState.put(e,"schema"),Object.assign(r,e)}}else b.cloud.schema=i||null;return[null==s?void 0:s.initiallySynced,null==s?void 0:s.realms]}))));if(_&&b.setInitiallySynced(!0),function(e){var n,r;for(const o of e.tables)if(null===(r=null===(n=e.cloud.schema)||void 0===n?void 0:n[o.name])||void 0===r?void 0:r.markedForSync){if(o.schema.primKey.auto)throw new t.SchemaError(`Table ${o.name} is both autoIncremented and synced. Use db.cloud.configure({unsyncedTables: [${JSON.stringify(o.name)}]}) to blacklist it from sync`);if(!o.schema.primKey.keyPath)throw new t.SchemaError(`Table ${o.name} cannot be both synced and outbound. Use db.cloud.configure({unsyncedTables: [${JSON.stringify(o.name)}]}) to blacklist it from sync`)}}(b),u(),!b.cloud.isServiceWorkerDB){s.push(t.liveQuery((()=>b.getCurrentUser())).subscribe(o)),s.push(t.liveQuery((()=>b.getPersistedSyncState())).subscribe(b.cloud.persistedSyncState)),yield n.firstValueFrom(n.combineLatest([o.pipe(ht(1),lt(1)),b.cloud.persistedSyncState.pipe(ht(1),lt(1))]));const e=pi(b);b.dx.on("y",e),b.dx.once("close",(()=>{var t;null===(t=b.dx.on.y)||void 0===t||t.unsubscribe(e)}))}let k=!1;const S=yield b.getCurrentUser(),x=null===(f=b.cloud.options)||void 0===f?void 0:f.requireAuth;x&&(b.cloud.isServiceWorkerDB?yield n.firstValueFrom(o.pipe(yt((e=>!!e.isLoggedIn)),lt(1))):"object"==typeof x?(!S.isLoggedIn||x.userId&&S.userId!==x.userId||x.email&&S.email!==x.email)&&(k=yield Wt(b,x)):S.isLoggedIn||(k=yield Wt(b))),!S.isLoggedIn||w&&w.includes(S.userId)||(k=!0),c&&c.stop(),c=null,u();const I=(null===(p=b.cloud.options)||void 0===p?void 0:p.databaseUrl)&&(!_||k);I&&(yield function(e,t,n){return i(this,void 0,void 0,(function*(){yield Ar(e,Zn,(()=>er(e,t,n,{isInitialSync:!0})))}))}(b,b.cloud.options,b.cloud.schema),b.setInitiallySynced(!0)),u(),b.cloud.usingServiceWorker&&(null===(y=b.cloud.options)||void 0===y?void 0:y.databaseUrl)?(I||_t(b,"push").catch((()=>{})),function(e){return i(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){}}))}(b).catch((()=>{}))):(null===(h=b.cloud.options)||void 0===h?void 0:h.databaseUrl)&&b.cloud.schema&&!b.cloud.isServiceWorkerDB&&(c=Qr(b,b.cloud.options,b.cloud.schema),c.start(),I||wt(b,"push")),u(),b.cloud.isServiceWorkerDB||s.push(n.fromEvent(self,"online").subscribe((()=>{b.syncStateChangedEvent.next({phase:"not-in-sync"}),Or(b)||wt(b,"push")})),n.fromEvent(self,"offline").subscribe((()=>{b.syncStateChangedEvent.next({phase:"offline"})}))),!(null===(v=b.cloud.options)||void 0===v?void 0:v.databaseUrl)||(null===(m=b.cloud.options)||void 0===m?void 0:m.disableWebSocket)||hr||s.push(function(e){var t;if(!(null===(t=e.cloud.options)||void 0===t?void 0:t.databaseUrl))throw new Error("No database URL to connect WebSocket to");const r=e.messageConsumer.readyToServe.pipe(yt((e=>e)),mt((()=>e.getPersistedSyncState())),yt((e=>e&&e.serverRevision)),mt((e=>i(this,void 0,void 0,(function*(){return{type:"ready",rev:e.serverRevision,realmSetHash:yield Yt(e)}}))))),o=n.merge(r,e.messageProducer);return function t(){return e.cloud.persistedSyncState.pipe(yt((e=>null==e?void 0:e.serverRevision)),lt(1),mt((t=>e.cloud.currentUser.pipe(rt((e=>[e,t]))))),mt((([e,t])=>Pr.pipe(rt((n=>[n?e:null,t]))))),mt((([t,r])=>(null==t?void 0:t.isLoggedIn)&&!(null==r?void 0:r.realms.includes(t.userId))?e.cloud.persistedSyncState.pipe(yt((e=>(null==e?void 0:e.realms.includes(t.userId))||!1)),lt(1),rt((e=>[t,e]))):new n.BehaviorSubject([t,r]))),mt((e=>i(this,[e],void 0,(function*([e,t]){return[e,yield Yt(t)]})))),ft((([e,t],[n,r])=>e===n&&t===r)),mt((([r,i])=>{var s;return(null===(s=e.cloud.persistedSyncState)||void 0===s?void 0:s.value)?r?new Wr(e,e.cloud.persistedSyncState.value.serverRevision,e.cloud.persistedSyncState.value.yServerRevision,i,e.cloud.persistedSyncState.value.clientIdentity,o,e.cloud.webSocketStatus,r):n.from([]):t()})),Xe((r=>"TokenExpiredError"===(null==r?void 0:r.name)?n.of(!0).pipe(mt((()=>i(this,void 0,void 0,(function*(){const t=yield e.getCurrentUser(),n=yield Ut(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})})))),mt((()=>t()))):n.throwError((()=>r)))),Xe((r=>(e.cloud.webSocketStatus.next("error"),r instanceof Hr?n.throwError((()=>r)):n.from(zr()).pipe(mt((()=>t())))))))}().subscribe({next:t=>{t&&e.messageConsumer.enqueue(t)},error:e=>{},complete:()=>{}})}(b))}))}(e)}catch(e){}}))),!0);let l=!1;function u(){if(l)throw new t.DatabaseClosedError}e.once("close",(()=>{s.forEach((e=>e.unsubscribe())),s.splice(0,s.length),l=!0,c&&c.stop(),c=null,o.next(Lt)}));const d=new n.Subject;var f;e.cloud={version:"4.1.0-beta.49",options:Object.assign({},wi),schema:null,get currentUserId(){return o.value.userId||Lt.userId},currentUser:o,syncState:new n.BehaviorSubject({phase:"initial",status:"not-started"}),events:{syncComplete:d},persistedSyncState:new n.BehaviorSubject(void 0),userInteraction:new n.BehaviorSubject(void 0),webSocketStatus:new n.BehaviorSubject("not-started"),login(t){return i(this,void 0,void 0,(function*(){const n=ur(e);yield n.cloud.sync(),yield Wt(n,t)}))},invites:fi(e),roles:ai(e),configure(t){t=e.cloud.options=Object.assign(Object.assign({},e.cloud.options),t),a=!0,t.databaseUrl&&t.nameSuffix&&(e.name=`${r}-${function(e){const t=new URL(e);return"/"===t.pathname?t.hostname.split(".")[0]:t.pathname.split("/")[1]}(t.databaseUrl)}`,ur(e).reconfigure()),Xr(e.cloud.schema,e.cloud.options)},logout(){return i(this,arguments,void 0,(function*({force:t}={}){t?yield Bt(ur(e),{deleteUnsyncedData:!0}):yield Nt(ur(e))}))},sync(){return i(this,arguments,void 0,(function*({wait:r,purpose:o}={wait:!0,purpose:"push"}){var s;void 0===r&&(r=!0);const a=ur(e);if("ok"!==((null===(s=a.cloud.currentUser.value.license)||void 0===s?void 0:s.status)||"ok")&&(yield Ct(a)),"pull"===o){const e=a.cloud.persistedSyncState.value;if(wt(a,o),r){const t=yield n.firstValueFrom(a.cloud.persistedSyncState.pipe(yt((t=>null!=(null==t?void 0:t.timestamp)&&(!e||t.timestamp>e.timestamp)))));if(null==t?void 0:t.error)throw new Error("Sync error: "+t.error)}}else if(yield qr(a)){const e=a.cloud.persistedSyncState.value;wt(a,o),r&&(yield n.firstValueFrom(n.from(t.liveQuery((()=>i(this,void 0,void 0,(function*(){const t=yield qr(a),n=yield a.getPersistedSyncState();if((null==n?void 0:n.timestamp)!==(null==e?void 0:e.timestamp)&&(null==n?void 0:n.error))throw new Error("Sync error: "+n.error);return t}))))).pipe(yt((e=>!e)))))}}))},permissions:(t,n)=>function(e,t,n){if(!t)throw new TypeError("Cannot check permissions of undefined or null. A Dexie Cloud object with realmId and owner expected.");const{owner:r,realmId:o}=t;if(!n){if("function"!=typeof t.table)throw new TypeError("Missing 'table' argument to permissions and table could not be extracted from entity");n=t.table()}const i=ui(e),s=t=>{const i=t[o||e.cloud.currentUserId];return i?new di(i.permissions,n,void 0===o||o===e.cloud.currentUserId||r===e.cloud.currentUserId):new di({},n,!r||r===e.cloud.currentUserId)},a=i.pipe(rt(s));return a.getValue=()=>s(i.getValue()),a}(e._novip,t,n)},e.Version.prototype._parseStoresSpec=t.override(e.Version.prototype._parseStoresSpec,(t=>jr(t,e))),e.Table.prototype.newId=function({colocateWith:t}={}){const n=t&&t.substr(t.length-3);return wr(e.cloud.schema[this.name].idPrefix||"",n)},e.Table.prototype.idPrefix=function(){var e,t;return(null===(t=null===(e=this.db.cloud.schema)||void 0===e?void 0:e[this.name])||void 0===t?void 0:t.idPrefix)||""},e.use(Tr({currentUserObservable:e.cloud.currentUser,db:ur(e)})),e.use((f=ur(e),{stack:"dbcore",name:"implicitPropSetterMiddleware",level:1,create:e=>Object.assign(Object.assign({},e),{table:t=>{const n=e.table(t);return Object.assign(Object.assign({},n),{mutate:e=>{var r,o,i,s,a,c;const l=e.trans;if(l.disableChangeTracking)return n.mutate(e);const u=null!==(o=null===(r=l.currentUser)||void 0===r?void 0:r.userId)&&void 0!==o?o:Lt.userId;if((null===(s=null===(i=f.cloud.schema)||void 0===i?void 0:i[t])||void 0===s?void 0:s.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===(c=(a=n.schema.primaryKey).extractKey)||void 0===c?void 0:c.call(a,t);"string"==typeof r&&"#"===r[0]&&"put"===e.type&&(delete e.criteria,delete e.changeSpec,delete e.updates,t.$ts=Date.now())}}return n.mutate(e)}})}})})),e.use(kr(ur(e)))}ki.version="4.1.0-beta.49",t.Cloud=ki,e.default=ki,e.defineYDocTrigger=function(e,n,r){var o,i;const s=null===(i=null===(o=e.schema.yProps)||void 0===o?void 0:o.find((e=>e.prop===n)))||void 0===i?void 0:i.updatesTable;if(!s)throw new Error(`Table ${e.name} does not have a Yjs property named ${n}`);yi[s]={trigger:r,parentTable:e.name,prop:n};const a=e.db._novip;let c=hi.get(a);c||(c=(e=>({stack:"dbcore",level:10,name:"yTriggerMiddleware",create:n=>Object.assign(Object.assign({},n),{transaction:(e,t,r)=>{const o=n.transaction(e,t,r);return"readonly"===t?o:e.some((e=>yi[e]))?(o.addEventListener("complete",gi),o):o},table:r=>{const o=n.table(r),i=yi[r];if(!i)return o;const{trigger:s,parentTable:a,prop:c}=i;return Object.assign(Object.assign({},o),{mutate(n){var r;switch(n.type){case"add":for(const o of n.values){if(null==o.k)continue;const n=o.k,i=t.DexieYProvider.getDocCache(e).find(a,n,c);(i&&(null===(r=t.DexieYProvider.for(i))||void 0===r?void 0:r.refCount)?mi:vi).enqueue(e,a,n,c,s)}break;case"delete":n.trans._rejecting_y_ypdate&&o.getMany({keys:n.keys,trans:n.trans,cache:"immutable"}).then((n=>{const r=new t.RangeSet;for(const{k:e}of n)null!=e&&r.addKey(e);for(const t of r)vi.enqueue(e,a,t.from,c,s)}))}return o.mutate(n)}})}})}))(a),hi.set(a,c)),a.use(c),t.DexieYProvider.on("beforeunload",_i)},e.dexieCloud=ki,e.getTiedObjectId=function(e){return e.startsWith("rlm~")?e.substr(4):null},e.getTiedRealmId=function(e){return"rlm~"+e},e.resolveText=ti,Object.defineProperty(e,"__esModule",{value:!0})}));
2
2
  //# sourceMappingURL=dexie-cloud-addon.min.js.map