dexie-cloud-addon 4.1.0-alpha.10 → 4.1.0-alpha.12

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
- import e,{PropModification as t,cmp as n,DexieYProvider as r,liveQuery as o}from"dexie";import{firstValueFrom as i,from as s,filter as a,Observable as c,BehaviorSubject as l,Subject as u,fromEvent as d,of as f,merge as p,switchMap as h,tap as y,mergeMap as v,Subscription as m,throwError as b,combineLatest as g,map as _,share as w,timer as k}from"rxjs";var S=function(e,t){return S=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])},S(e,t)};function x(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}S(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 E(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 O(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 A(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 T(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 C(e){return this instanceof C?(this.v=e,this):new C(e)}function U(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 C?Promise.resolve(e.value.v).then(c,l):u(i[0][2],e)}(o[e](t))}catch(e){u(i[0][3],e)}}function c(e){a("next",e)}function l(e){a("throw",e)}function u(e,t){e(t),i.shift(),i.length&&a(i[0][0],i[0][1])}}function P(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=O(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)}))}}}function j(e){if(!e)throw new Error("Assertion Failed")}const $={}.hasOwnProperty;function D(e,t,n){if(e&&void 0!==t&&(!("isFrozen"in Object)||!Object.isFrozen(e)))if("string"!=typeof t&&"length"in t){j("string"!=typeof n&&"length"in n);for(var r=0,o=t.length;r<o;++r)D(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 $.call(e,t)}(e,s)||(c=e[s]={}),D(c,a,n)}}else void 0===n?Array.isArray(e)&&!isNaN(parseInt(t))?e.splice(t,1):delete e[t]:e[t]=n}}const L="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=R)=>{const n=Buffer.alloc(e);return t(n),n.toString("base64")}:()=>{throw new Error("No implementation of randomString was found")};function R(e){for(let t=0;t<e.length;++t)e[t]=Math.floor(256*Math.random())}function N(e){return"string"==typeof e||!!(Array.isArray(e)&&e.some((e=>N(e)))&&e.every(B))}function B(e){return"string"==typeof e||"number"==typeof e||Array.isArray(e)&&e.every(B)}function M(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))D(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 F(e,t){for(const{table:n,muts:r}of t)for(const t of r)M(e,n,t)}const W=Math.floor,V=Math.abs,K=(e,t)=>e>t?e:t,H=128,z=127,q=Number.MAX_SAFE_INTEGER,J=Number.isInteger||(e=>"number"==typeof e&&isFinite(e)&&W(e)===e),G=Array.isArray,Y="undefined"!=typeof TextEncoder?new TextEncoder:null,X=Y?e=>Y.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 Z="undefined"==typeof TextDecoder?null:new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});Z&&1===Z.decode(new Uint8Array).length&&(Z=null);class Q{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}}const ee=(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},te=(e,t)=>{for(;t>z;)ee(e,H|z&t),t=W(t/128);ee(e,z&t)},ne=new Uint8Array(3e4),re=ne.length/3,oe=Y&&Y.encodeInto?(e,t)=>{if(t.length<re){const n=Y.encodeInto(t,ne).written||0;te(e,n);for(let t=0;t<n;t++)ee(e,ne[t])}else ie(e,X(t))}:(e,t)=>{const n=unescape(encodeURIComponent(t)),r=n.length;te(e,r);for(let t=0;t<r;t++)ee(e,n.codePointAt(t))},ie=(e,t)=>{te(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(K(2*n,i)),e.cbuf.set(t.subarray(o)),e.cpos=i)})(e,t)},se=(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*K(n,t)),e.cpos=0)})(e,t);const n=new DataView(e.cbuf.buffer,e.cpos,t);return e.cpos+=t,n},ae=(e,t)=>se(e,8).setBigUint64(0,t,!1),ce=new DataView(new ArrayBuffer(4)),le=(e,t)=>{switch(typeof t){case"string":ee(e,119),oe(e,t);break;case"number":J(t)&&V(t)<=2147483647?(ee(e,125),((e,t)=>{const n=(e=>0!==e?e<0:1/e<0)(t);for(n&&(t=-t),ee(e,(t>63?H:0)|(n?64:0)|63&t),t=W(t/64);t>0;)ee(e,(t>z?H:0)|z&t),t=W(t/128)})(e,t)):(n=t,ce.setFloat32(0,n),ce.getFloat32(0)===n?(ee(e,124),((e,t)=>{se(e,4).setFloat32(0,t,!1)})(e,t)):(ee(e,123),((e,t)=>{se(e,8).setFloat64(0,t,!1)})(e,t)));break;case"bigint":ee(e,122),((e,t)=>{se(e,8).setBigInt64(0,t,!1)})(e,t);break;case"object":if(null===t)ee(e,126);else if(G(t)){ee(e,117),te(e,t.length);for(let n=0;n<t.length;n++)le(e,t[n])}else if(t instanceof Uint8Array)ee(e,116),ie(e,t);else{ee(e,118);const n=Object.keys(t);te(e,n.length);for(let r=0;r<n.length;r++){const o=n[r];oe(e,o),le(e,t[o])}}break;case"boolean":ee(e,t?120:121);break;default:ee(e,127)}var n};function ue(e){const t=new Q;switch(oe(t,e.type),oe(t,e.table),oe(t,e.prop),e.type){case"u-ack":case"u-reject":ae(t,BigInt(e.i));break;default:switch(le(t,e.k),e.type){case"aware":case"u-s":ie(t,e.u);break;case"doc-open":le(t,e.serverRev),le(t,e.sv);break;case"doc-close":break;case"sv":ie(t,e.sv);break;case"u-c":ie(t,e.u),ae(t,BigInt(e.i))}}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 de=e=>new Error(e),fe=de("Unexpected end of array"),pe=de("Integer out of Range");class he{constructor(e){this.arr=e,this.pos=0}}const ye=e=>e.pos!==e.arr.length,ve=e=>((e,t)=>{const n=new Uint8Array(e.arr.buffer,e.pos+e.arr.byteOffset,t);return e.pos+=t,n})(e,be(e)),me=e=>e.arr[e.pos++],be=e=>{let t=0,n=1;const r=e.arr.length;for(;e.pos<r;){const r=e.arr[e.pos++];if(t+=(r&z)*n,n*=128,r<H)return t;if(t>q)throw pe}throw fe},ge=Z?e=>Z.decode(ve(e)):e=>{let t=be(e);if(0===t)return"";{let n=String.fromCodePoint(me(e));if(--t<100)for(;t--;)n+=String.fromCodePoint(me(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))}},_e=(e,t)=>{const n=new DataView(e.arr.buffer,e.arr.byteOffset+e.pos,t);return e.pos+=t,n},we=e=>_e(e,8).getBigUint64(0,!1),ke=[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&H))return o*n;const i=e.arr.length;for(;e.pos<i;){if(t=e.arr[e.pos++],n+=(t&z)*r,r*=128,t<H)return o*n;if(n>q)throw pe}throw fe},e=>_e(e,4).getFloat32(0,!1),e=>_e(e,8).getFloat64(0,!1),e=>_e(e,8).getBigInt64(0,!1),e=>!1,e=>!0,ge,e=>{const t=be(e),n={};for(let r=0;r<t;r++){n[ge(e)]=Se(e)}return n},e=>{const t=be(e),n=[];for(let r=0;r<t;r++)n.push(Se(e));return n},ve],Se=e=>ke[127-me(e)](e);function xe(e){return U(this,arguments,(function*(){var t,n,r,o;let i=0,s=new Uint8Array(4),a=0,c=[],l=0;try{for(var u,d=!0,f=P(e);!(t=(u=yield C(f.next())).done);d=!0){o=u.value,d=!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 C(t)}else yield yield C(e.slice(n,n+l));n+=l,i=0}}}}catch(e){n={error:e}}finally{try{d||t||!(r=f.return)||(yield C(r.call(f)))}finally{if(n)throw n.error}}}))}function Ie(e){return"function"==typeof e}function Ee(e){return function(t){if(function(e){return Ie(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 Oe=function(e){return e&&"number"==typeof e.length&&"function"!=typeof e};function Ae(e){return Ie(null==e?void 0:e.then)}var Te,Ce,Ue=(Te=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}},(Ce=Te((function(e){Error.call(e),e.stack=(new Error).stack}))).prototype=Object.create(Error.prototype),Ce.prototype.constructor=Ce,Ce);function Pe(e,t){if(e){var n=e.indexOf(t);0<=n&&e.splice(n,1)}}var je=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=O(i),a=s.next();!a.done;a=s.next()){a.value.remove(this)}}catch(t){e={error:t}}finally{try{a&&!a.done&&(t=s.return)&&t.call(s)}finally{if(e)throw e.error}}else i.remove(this);var c=this.initialTeardown;if(Ie(c))try{c()}catch(e){o=e instanceof Ue?e.errors:[e]}var l=this._finalizers;if(l){this._finalizers=null;try{for(var u=O(l),d=u.next();!d.done;d=u.next()){var f=d.value;try{De(f)}catch(e){o=null!=o?o:[],e instanceof Ue?o=T(T([],A(o)),A(e.errors)):o.push(e)}}}catch(e){n={error:e}}finally{try{d&&!d.done&&(r=u.return)&&r.call(u)}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)De(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)&&Pe(t,e)},e.prototype.remove=function(t){var n=this._finalizers;n&&Pe(n,t),t instanceof e&&t._removeParent(this)},e.EMPTY=((t=new e).closed=!0,t),e}();function $e(e){return e instanceof je||e&&"closed"in e&&Ie(e.remove)&&Ie(e.add)&&Ie(e.unsubscribe)}function De(e){Ie(e)?e():e.unsubscribe()}je.EMPTY;var Le={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},Re={setTimeout:function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var o=Re.delegate;return(null==o?void 0:o.setTimeout)?o.setTimeout.apply(o,T([e,t],A(n))):setTimeout.apply(void 0,T([e,t],A(n)))},clearTimeout:function(e){var t=Re.delegate;return((null==t?void 0:t.clearTimeout)||clearTimeout)(e)},delegate:void 0};function Ne(e){Re.setTimeout((function(){throw e}))}function Be(){}var Me=function(e){function t(t){var n=e.call(this)||this;return n.isStopped=!1,t?(n.destination=t,$e(t)&&t.add(n)):n.destination=ze,n}return x(t,e),t.create=function(e,t,n){return new Ke(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}(je),Fe=Function.prototype.bind;function We(e,t){return Fe.call(e,t)}var Ve=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){He(e)}},e.prototype.error=function(e){var t=this.partialObserver;if(t.error)try{t.error(e)}catch(e){He(e)}else He(e)},e.prototype.complete=function(){var e=this.partialObserver;if(e.complete)try{e.complete()}catch(e){He(e)}},e}(),Ke=function(e){function t(t,n,r){var o,i,s=e.call(this)||this;Ie(t)||!t?o={next:null!=t?t:void 0,error:null!=n?n:void 0,complete:null!=r?r:void 0}:s&&Le.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 Ve(o),s}return x(t,e),t}(Me);function He(e){Ne(e)}var ze={closed:!0,next:Be,error:function(e){throw e},complete:Be},qe="function"==typeof Symbol&&Symbol.observable||"@@observable";function Je(e){return e}var Ge=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 Me||function(e){return e&&Ie(e.next)&&Ie(e.error)&&Ie(e.complete)}(r)&&$e(r)?e:new Ke(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=Ye(t))((function(t,r){var o=new Ke({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[qe]=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?Je: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=Ye(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 Ye(e){var t;return null!==(t=null!=e?e:Le.Promise)&&void 0!==t?t:Promise}function Xe(e){return Ie(e[qe])}function Ze(e){return Symbol.asyncIterator&&Ie(null==e?void 0:e[Symbol.asyncIterator])}function Qe(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 et="function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator";function tt(e){return Ie(null==e?void 0:e[et])}function nt(e){return U(this,arguments,(function(){var t,n,r;return E(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,C(t.read())];case 3:return n=o.sent(),r=n.value,n.done?[4,C(void 0)]:[3,5];case 4:return[2,o.sent()];case 5:return[4,C(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 rt(e){return Ie(null==e?void 0:e.getReader)}function ot(e){if(e instanceof Ge)return e;if(null!=e){if(Xe(e))return o=e,new Ge((function(e){var t=o[qe]();if(Ie(t.subscribe))return t.subscribe(e);throw new TypeError("Provided object does not correctly implement Symbol.observable")}));if(Oe(e))return r=e,new Ge((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 Ge((function(e){n.then((function(t){e.closed||(e.next(t),e.complete())}),(function(t){return e.error(t)})).then(null,Ne)}));if(Ze(e))return it(e);if(tt(e))return t=e,new Ge((function(e){var n,r;try{for(var o=O(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(rt(e))return it(nt(e))}var t,n,r,o;throw Qe(e)}function it(e){return new Ge((function(t){(function(e,t){var n,r,o,i;return I(this,void 0,void 0,(function(){var s,a;return E(this,(function(c){switch(c.label){case 0:c.trys.push([0,5,6,11]),n=P(e),c.label=1;case 1:return[4,n.next()];case 2:if((r=c.sent()).done)return[3,4];if(s=r.value,t.next(s),t.closed)return[2];c.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return a=c.sent(),o={error:a},[3,11];case 6:return c.trys.push([6,,9,10]),r&&!r.done&&(i=n.return)?[4,i.call(n)]:[3,8];case 7:c.sent(),c.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 st(e,t,n,r,o){return new at(e,t,n,r,o)}var at=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 x(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}(Me),ct=function(e){function t(t,n){return e.call(this)||this}return x(t,e),t.prototype.schedule=function(e,t){return this},t}(je),lt={setInterval:function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var o=lt.delegate;return(null==o?void 0:o.setInterval)?o.setInterval.apply(o,T([e,t],A(n))):setInterval.apply(void 0,T([e,t],A(n)))},clearInterval:function(e){var t=lt.delegate;return((null==t?void 0:t.clearInterval)||clearInterval)(e)},delegate:void 0},ut=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 x(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),lt.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;lt.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,Pe(r,this),null!=t&&(this.id=this.recycleAsyncId(n,t,null)),this.delay=null,e.prototype.unsubscribe.call(this)}},t}(ct),dt={now:function(){return(dt.delegate||Date).now()},delegate:void 0},ft=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=dt.now,e}(),pt=new(function(e){function t(t,n){void 0===n&&(n=ft.now);var r=e.call(this,t,n)||this;return r.actions=[],r._active=!1,r._scheduled=void 0,r}return x(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}(ft))(ut),ht=pt;function yt(e){return e&&Ie(e.schedule)}function vt(e,t,n){void 0===e&&(e=0),void 0===n&&(n=ht);var r=-1;return null!=t&&(yt(t)?n=t:r=t),new Ge((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 mt(e){return yt((t=e)[t.length-1])?e.pop():void 0;var t}function bt(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 gt(e){return Ee((function(t,n){var r,o=null,i=!1;o=t.subscribe(st(n,void 0,void 0,(function(s){r=ot(e(s,gt(e)(t))),o?(o.unsubscribe(),o=null,r.subscribe(n)):i=!0}))),i&&(o.unsubscribe(),o=null,r.subscribe(n))}))}function _t(e,t){return void 0===t&&(t=0),Ee((function(n,r){n.subscribe(st(r,(function(n){return bt(r,e,(function(){return r.next(n)}),t)}),(function(){return bt(r,e,(function(){return r.complete()}),t)}),(function(n){return bt(r,e,(function(){return r.error(n)}),t)})))}))}function wt(e,t){return void 0===t&&(t=0),Ee((function(n,r){r.add(e.schedule((function(){return n.subscribe(r)}),t))}))}function kt(e,t){if(!e)throw new Error("Iterable cannot be null");return new Ge((function(n){bt(n,t,(function(){var r=e[Symbol.asyncIterator]();bt(n,t,(function(){r.next().then((function(e){e.done?n.complete():n.next(e.value)}))}),0,!0)}))}))}function St(e,t){if(null!=e){if(Xe(e))return function(e,t){return ot(e).pipe(wt(t),_t(t))}(e,t);if(Oe(e))return function(e,t){return new Ge((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 ot(e).pipe(wt(t),_t(t))}(e,t);if(Ze(e))return kt(e,t);if(tt(e))return function(e,t){return new Ge((function(n){var r;return bt(n,t,(function(){r=e[et](),bt(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 Ie(null==r?void 0:r.return)&&r.return()}}))}(e,t);if(rt(e))return function(e,t){return kt(nt(e),t)}(e,t)}throw Qe(e)}function xt(e,t){return Ee((function(n,r){var o=0;n.subscribe(st(r,(function(n){r.next(e.call(t,n,o++))})))}))}function It(e,t,n){return void 0===n&&(n=1/0),Ie(t)?It((function(n,r){return xt((function(e,o){return t(n,e,r,o)}))(ot(e(n,r)))}),n):("number"==typeof t&&(n=t),Ee((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?h(e):c.push(e)},h=function(e){i&&t.next(e),l++;var a=!1;ot(n(e,u++)).subscribe(st(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?bt(t,s,(function(){return h(e)})):h(e)};c.length&&l<r;)e();f()}catch(e){t.error(e)}})))};return e.subscribe(st(t,p,(function(){d=!0,f()}))),function(){null==a||a()}}(t,r,e,n)})))}function Et(){return void 0===(e=1)&&(e=1/0),It(Je,e);var e}function Ot(e,t){return void 0===t&&(t=pt),Ee((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(st(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 Et()((e=n,(t=mt(n))?St(e,t):ot(e)))}var Tt=new Ge((function(e){return e.complete()}));function Ct(e){return e<=0?function(){return Tt}:Ee((function(t,n){var r=0;t.subscribe(st(n,(function(t){++r<=e&&(n.next(t),e<=r&&n.complete())})))}))}function Ut(e,t){return t?function(n){return At(t.pipe(Ct(1),Ee((function(e,t){e.subscribe(st(t,Be))}))),n.pipe(Ut(e)))}:It((function(t,n){return e(t,n).pipe(Ct(1),function(e){return xt((function(){return e}))}(t))}))}function Pt(e,t){void 0===t&&(t=pt);var n=vt(e,t);return Ut((function(){return n}))}function jt(e,t){return void 0===t&&(t=Je),e=null!=e?e:$t,Ee((function(n,r){var o,i=!0;n.subscribe(st(r,(function(n){var s=t(n);!i&&e(o,s)||(i=!1,o=s,r.next(n))})))}))}function $t(e,t){return e===t}function Dt(e,t){return Ee((function(n,r){var o=0;n.subscribe(st(r,(function(n){return e.call(t,n,o++)&&r.next(n)})))}))}function Lt(e){return Dt((function(t,n){return e<=n}))}function Rt(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=mt(e);return Ee((function(t,r){(n?At(e,t,n):At(e,t)).subscribe(r)}))}function Nt(e,t){return Ee((function(n,r){var o=null,i=0,s=!1,a=function(){return s&&!o&&r.complete()};n.subscribe(st(r,(function(n){null==o||o.unsubscribe();var s=0,c=i++;ot(e(n,c)).subscribe(o=st(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=Ie(e)||t||n?{next:e,error:t,complete:n}:e;return r?Ee((function(e,t){var n;null===(n=r.subscribe)||void 0===n||n.call(r);var o=!0;e.subscribe(st(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)})))})):Je}let Mt=!1;function Ft(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){Mt||(Mt=!0)}}))}function Wt(e,t){e.cloud.usingServiceWorker?Ft(e,t):e.localSyncEvent.next({purpose:t})}const Vt="undefined"!=typeof Buffer?e=>Buffer.from(e,"base64"):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},Kt="undefined"!=typeof Buffer?e=>ArrayBuffer.isView(e)?Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("base64"):Buffer.from(e).toString("base64"):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 Ht 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 zt(t,n){return new Promise(((r,o)=>{const i=Object.assign(Object.assign({submitLabel:"Submit",cancelLabel:"Cancel"},n),{onSubmit:e=>{t.next(void 0),r(e)},onCancel:()=>{t.next(void 0),o(new e.AbortError("User cancelled"))}});t.next(i)}))}function qt(e,t,...n){return zt(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 zt(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 Gt(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 zt(e,{type:"otp",title:"Enter OTP",alerts:r,fields:{otp:{type:"otp",label:"OTP",placeholder:"Paste OTP here"}}});return o}))}function Yt(e){var t,n,r;return I(this,void 0,void 0,(function*(){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 Zt(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}),u}))}function Xt(t,n,r,o,i){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 Zt(t,n):yield function(t,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");t.nonExportablePrivateKey=i;const a=function(e){const t=Kt(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));t.publicKey=s;try{const e=yield n({public_key:a,hints:o});if("error"===e.type)throw new Ht(e);if("tokens"!==e.type)throw new Error(`Unexpected response type from token endpoint: ${e.type}`);return t.accessToken=e.accessToken,t.accessTokenExpiration=new Date(e.accessTokenExpiration),t.refreshToken=e.refreshToken,e.refreshTokenExpiration&&(t.refreshTokenExpiration=new Date(e.refreshTokenExpiration)),t.userId=e.claims.sub,t.email=e.claims.email,t.name=e.claims.name,t.claims=e.claims,t.license={type:e.userType,status:e.claims.license||"ok"},t.data=e.data,null!=e.evalDaysLeft&&(t.license.evalDaysLeft=e.evalDaysLeft),null!=e.userValidUntil&&(t.license.validUntil=new Date(e.userValidUntil)),e.alerts&&e.alerts.length>0&&(yield zt(r,{type:"message-alert",title:"Authentication Alert",fields:{},alerts:e.alerts})),t}catch(t){if(t instanceof Ht)throw yield qt(r,t.title,{type:"error",messageCode:t.messageCode,message:t.message,messageParams:{}}),t;let n="We're having a problem authenticating right now.";if(t instanceof TypeError){n=void 0!==typeof navigator&&!navigator.onLine?"You seem to be offline. Please connect to the internet and try again.":e.debug||"undefined"!=typeof location&&("localhost"===location.hostname||"127.0.0.1"===location.hostname)?`Could not connect to server. Please verify that your origin '${location.origin}' is whitelisted using \`npx dexie-cloud whitelist\``:"Could not connect to server. Please verify the connection.",yield qt(r,"Authentication Failed",{type:"error",messageCode:"GENERIC_ERROR",message:n,messageParams:{}}).catch((()=>{}))}throw t}}))}(n,r,o,i)}))}function Zt(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=Kt(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 Ht(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 Qt=new WeakMap;class en{constructor(e,t){Qt.set(this,e),Object.assign(this,t)}static load(e,t){return e.table("$logins").get(t).then((n=>new en(e,n||{userId:t,claims:{sub:t},lastLogin:new Date(0)})))}save(){return I(this,void 0,void 0,(function*(){Qt.get(this).table("$logins").put(this)}))}}const tn={userId:"unauthorized",name:"Unauthorized",claims:{sub:"unauthorized"},lastLogin:new Date(0)};try{Object.freeze(tn),Object.freeze(tn.claims)}catch(e){}function nn(e,t){return i(s(e).pipe(a(t)))}function rn(e){return I(this,void 0,void 0,(function*(){const t=yield on(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 zt(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 on(e,{deleteUnsyncedData:!0})}}))}function on(e,{deleteUnsyncedData:t=!1}={}){return I(this,void 0,void 0,(function*(){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 nn(e.cloud.currentUser,(e=>e.userId===tn.userId)),yield e.cloud.sync({purpose:"pull",wait:!0})),n}))}class sn extends Error{constructor(e,t){super(t||`${e.status} ${e.statusText}`),this.httpStatus=e.status}get name(){return"HttpError"}}function an(e,...t){globalThis.console[e](...t)}function cn(e,t){var n;return I(this,void 0,void 0,(function*(){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 Yt(e),!1}const i=new en(e,{claims:{},lastLogin:new Date(0)});return yield Xt(e.cloud.options.databaseUrl,i,e.cloud.options.fetchTokens||function(e){const{userInteraction:t}=e.cloud;return function({public_key:n,hints:r}){var o;return I(this,void 0,void 0,(function*(){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 qt(t,"Token request failed",{type:"error",messageCode:"GENERIC_ERROR",message:e,messageParams:{}}).catch((()=>{})),new sn(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 Gt(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 Gt(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 sn(o,e)}return yield o.json()}throw new Error(`Unexpected response from ${s}/token`)}))}}(e),e.cloud.userInteraction,t),o!==tn.userId&&i.userId!==o&&(yield rn(e)),yield function(e,t){return I(this,void 0,void 0,(function*(){if(t.userId===e.cloud.currentUserId)return;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&&(an("debug","Login context property names:",Object.keys(t)),an("debug","Login context property names:",Object.keys(t)),an("debug","Login context:",t),an("debug","Login context JSON:",JSON.stringify(t)))}catch(e){}throw e}})))),yield nn(e.cloud.currentUser,(e=>e.userId===t.userId))}))}(e,i),Wt(e,"pull"),i.userId!==o}))}const ln={},un="undefined"!=typeof self&&self.document&&"undefined"!=typeof navigator&&navigator.serviceWorker;un&&un.ready.then((e=>ln.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 dn{constructor(e){this.name=e}subscribe(e){if(!un)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 un.addEventListener("message",t),()=>un.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}))):ln.registration&&(null===(t=ln.registration.active)||void 0===t||t.postMessage({type:`sw-broadcast-${this.name}`,message:e}))}}const fn=globalThis["lbc-events"]||(globalThis["lbc-events"]=new Map);class pn extends c{constructor(e){const t="undefined"==typeof BroadcastChannel?new dn(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){fn.has(e)?fn.get(e).push(t):fn.set(e,[t])}(`lbc-${e}`,r);try{t instanceof dn?i=t.subscribe((e=>n.next(e))):t.addEventListener("message",o)}catch(e){}return()=>{!function(e,t){const n=fn.get(e);if(n){const e=n.indexOf(t);-1!==e&&n.splice(e,1)}}(`lbc-${e}`,r),t instanceof dn?i():t.removeEventListener("message",o)}})),this.name=e,this.bc=t}next(e){this.bc.postMessage(e);!function(e){const t=fn.get(e.type);t&&t.forEach((t=>{try{t(e)}catch(e){}}))}(new CustomEvent(`lbc-${this.name}`,{detail:e}))}}function hn({realms:e,inviteRealms:t}){return I(this,void 0,void 0,(function*(){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 Kt(o)}))}function yn(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 vn(e){return`$${e}_mutations`}function mn(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 bn=[].concat;function gn(e){return bn.apply([],e)}function _n(e,t,{since:n={},limit:r=1/0}={}){return I(this,void 0,void 0,(function*(){const t=gn(yield Promise.all(e.map((e=>I(this,void 0,void 0,(function*(){const t=mn(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)),o=[];let i=null,s=null;for(const{table:e,mut:n}of t)i&&i.table===e&&s===n.txid?i.muts.push(n):(i={table:e,muts:[n]},s=n.txid,o.push(i));return o}))}function wn(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:kn}={};const Sn={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 xn(...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 Sn;let i=n.get(r);if(void 0!==i)return i;const s=(o=e,kn.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:Sn),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 In={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 En={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 On={bigint:{replace:e=>({$t:"bigint",v:""+e}),revive:e=>BigInt(e.v)}};var An={Date:{replace:e=>({$t:"Date",v:isNaN(e.getTime())?"NaN":e.toISOString()}),revive:({v:e})=>new Date("NaN"===e?NaN:Date.parse(e))}},Tn={Set:{replace:e=>({$t:"Set",v:Array.from(e.entries())}),revive:({v:e})=>new Set(e)}},Cn={Map:{replace:e=>({$t:"Map",v:Array.from(e.entries())}),revive:({v:e})=>new Map(e)}};const Un="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=Un[t];return o&&new o(r.ArrayBuffer.revive({v:e},n,r))}}})),{});function jn(e){return function(e){for(var t="",n=0,r=e.length;n<r;n++)t+=Ln[e[n]];return t}(Kt(e))}function $n(e){return Vt(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+=Dn[e[n]];return t}(e))}const Dn={"-":"=",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:"+","|":"/"},Ln={};for(const e of Object.keys(Dn))Ln[Dn[e]]=e;var Rn={ArrayBuffer:{replace:e=>({$t:"ArrayBuffer",v:jn(e)}),revive:({v:e})=>{const t=$n(e);return t.buffer.byteLength===t.byteLength?t.buffer:t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}}};class Nn{constructor(e,t){this.buf=e,this.type=t}}function Bn(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 Mn(e){const t=new Uint8Array(e.length);for(let n=0;n<e.length;++n)t[n]=e.charCodeAt(n);return t.buffer}var Fn={Blob:{test:(e,t)=>"Blob"===t||e instanceof Nn,replace:e=>({$t:"Blob",v:Kt(e instanceof Nn?e.buf:Mn(Bn(e))),type:e.type}),revive:({type:e,v:t})=>{const n=Vt(t);return void 0!==typeof Blob?new Blob([n]):new Nn(n.buffer,e)}}};const Wn={...En,...On,...An,...Tn,...Cn,...Pn,...Rn,...Fn};function Vn(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 Kn={undefined:{replace:()=>({$t:"undefined"}),revive:()=>{}}};const Hn="function"==typeof BigInt&&"bigint"==typeof BigInt(0);class zn{toString(){return this.v}constructor(e){this.v=e}}const qn=Object.assign(Object.assign(Object.assign({},Kn),Hn?{}:{bigint:{test:e=>e instanceof zn,replace:e=>Object.assign({$t:"bigint"},e),revive:({v:e})=>new zn(e)}}),{PropModification:{test:e=>e instanceof t,replace:e=>Object.assign({$t:"PropModification"},e),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(n)}}}),Jn=xn(Wn,qn),Gn=function(...e){const t=xn(Wn,In,...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 Vn(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 Vn(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)}}}(qn);function Yn(t,n,r){const o=[];for(let i of r){const{table:r,muts:s}=i,a=t.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(((t,r)=>{const o=!c.outbound&&("upsert"===t.type||"insert"===t.type);t.keys.forEach(((t,s)=>{if(Array.isArray(t)){l===i&&(l=Xn(i,o));const e=l.muts[r],n=JSON.stringify(t);e.keys[s]=n}else if("#"===t[0]){l===i&&(l=Xn(i,o));const a=l.muts[r];if(!n.isLoggedIn)throw new Error("Internal error: Cannot sync private IDs before authenticated");const u=`${t}:${n.userId}`;a.keys[s]=u,o&&e.setByKeyPath(a.values[s],c.keyPath,u)}}))})),o.push(l)}return o}function Xn(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 Zn=new WeakMap;function Qn(e){var t,n;return I(this,void 0,void 0,(function*(){const r=(null!==(n=null===(t=Zn.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 er(e,t,n,r,o,i,s,a,c){return I(this,void 0,void 0,(function*(){const l={Accept:"application/json, application/x-bison, application/x-bison-stream","Content-Type":"application/tson"},u=yield Yt(o),d=null==u?void 0:u.accessToken;d&&(l.Authorization=`Bearer ${d}`);const f={v:2,dbID:null==n?void 0:n.remoteDbId,clientIdentity:a,schema:s||{},lastPull:n?{serverRevision:n.serverRevision,realms:n.realms,inviteRealms:n.inviteRealms}:void 0,baseRevs:r,changes:Yn(o.dx.core.schema,c,e),y:t};o.syncStateChangedEvent.next({phase:"pushing"});const p=yield fetch(`${i}/sync`,{method:"post",headers:l,credentials:"include",body:Jn.stringify(f)});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));Zn.set(e,new Date(Date.now()+1e3*t))}else Zn.delete(e)}}(o,p),!p.ok)throw new sn(p);if("application/x-bison"===p.headers.get("content-type"))return Gn.fromBinary(yield p.blob());{const e=yield p.text();return Jn.parse(e)}}))}function tr(t){if(null==t?void 0:t.cancelled)throw new e.AbortError("Operation was cancelled")}let nr=!1;function rr(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 or(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 ir(t,r,o){return I(this,void 0,void 0,(function*(){const i=yield t.bulkGet(r),s=[],a=[];r.forEach(((r,c)=>{const l=i[c];if(l){for(const[i,s]of Object.entries(o[c]))if(i===t.schema.primKey.keyPath){if(0!==n(s,r))throw new Error("Cannot change primary key")}else e.setByKeyPath(l,i,s);s.push(r),a.push(l)}})),yield null==t.schema.primKey.keyPath?t.bulkPut(a,s):t.bulkPut(a)}))}function sr(t,n){return I(this,void 0,void 0,(function*(){for(const{table:r,muts:o}of t){const t=n.table(r);if(!t)continue;const{primaryKey:i}=t.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 t.bulkAdd(n.values,r):(r.forEach(((t,r)=>{e.setByKeyPath(n.values[r],i.keyPath,t)})),yield t.bulkAdd(n.values));break;case"upsert":i.outbound?yield t.bulkPut(n.values,r):(r.forEach(((t,r)=>{e.setByKeyPath(n.values[r],i.keyPath,t)})),yield t.bulkPut(n.values));break;case"modify":1===r.length?yield t.update(r[0],n.changeSpec):yield t.where(":id").anyOf(r).modify(n.changeSpec);break;case"update":yield ir(t,r,n.changeSpecs);break;case"delete":yield t.bulkDelete(r)}}}}))}"undefined"!=typeof self&&"undefined"!=typeof navigator&&(nr=navigator.onLine,self.addEventListener("online",(()=>nr=!0)),self.addEventListener("offline",(()=>nr=!1)));const ar="dexie-cloud-syncer";function cr(e,t){return e.where("i").between(t,1/0,!0).toArray()}function lr(e){const t=e.dx._options.Y;if(!t)throw new Error("Y library not supplied to Dexie constructor");return t}function ur(e,t,n){var r,o,i;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;if(!s)throw new Error(`No updatesTable found for ${t}.${n}`);return e.table(s)}function dr(e,t){return I(this,void 0,void 0,(function*(){const n={};for(const o of e)switch(o.type){case"u-s":{const e=ur(t,o.table,o.prop);n[e.name]=yield e.add({k:o.k,u:o.u});break}case"u-ack":{const e=ur(t,o.table,o.prop);yield t.transaction("rw",e,(t=>I(this,void 0,void 0,(function*(){let n=yield t.table(e.name).get(ar);yield t.table(e.name).put(Object.assign(Object.assign({},n||{i:ar}),{unsentFrom:Math.max((null==n?void 0:n.unsentFrom)||1,o.i+1)}))}))));break}case"u-reject":{const e=ur(t,o.table,o.prop);yield e.delete(o.i);break}case"in-sync":{const e=r.getDocCache(t.dx).find(o.table,o.k,o.prop);e&&!e.isSynced&&e.emit("sync",[!0]);break}}return n}))}const fr=1,pr=2,hr=3;function yr(t,n,{yDownloadedRealms:r,realms:o}){return I(this,void 0,void 0,(function*(){if(r&&o&&o.every((e=>"*"===r[e])))return;const i=yield Yt(t),s={"Content-Type":"application/json",Accept:"application/octet-stream"};i&&(s.Authorization=`Bearer ${i.accessToken}`);const a=yield fetch(`${n}/y/download`,{body:Jn.stringify({downloadedRealms:r||{}}),method:"POST",headers:s,credentials:"include"});if(!a.ok)throw new Error(`Failed to download Yjs documents from server. Status: ${a.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=P(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 U(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 C(t.read());if(e)return yield C(void 0);yield yield C(n)}}finally{t.releaseLock()}}))}}(a),xe,(function(r){return U(this,arguments,(function*(){var o,i,s,a;let c=null,l=null,u=null,d=[];function f(e){return I(this,void 0,void 0,(function*(){const r=d[d.length-1];if(d.length>0){if(!c||!l||!u)throw new Error(`Protocol error from ${n}/y/download`);const e=ur(t,l,u);yield e.bulkAdd(d),d=[]}c&&(l&&u&&r||e)&&(yield t.$syncState.update("syncState",(t=>{const n=t.yDownloadedRealms||{};n[c]=e?"*":{tbl:l,prop:u,key:r.k},t.yDownloadedRealms=n})))}))}try{try{for(var p,h=!0,y=P(r);!(o=(p=yield C(y.next())).done);h=!0){a=p.value,h=!1;const e=new he(a);for(;ye(e);)switch(me(e)){case fr:yield C(f(!0)),c=ge(e);break;case pr:yield C(f(!1)),l=ge(e),u=ge(e);break;case hr:{const t=Se(e),n=ve(e);d.push({k:t,u:n});break}}yield C(f(!1))}}catch(e){i={error:e}}finally{try{h||o||!(s=y.return)||(yield C(s.call(y)))}finally{if(i)throw i.error}}yield C(f(!0))}catch(t){throw t instanceof e.DexieError||(yield C(f(!1))),t}}))}))}))}const vr="currentSyncWorker";function mr(e,t,n,r){return br.apply(this,arguments).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):nr&&(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 mr(e,t,n,Object.assign(Object.assign({},r),{retryImmediatelyOnFetchError:!1}))):(yield e.$syncState.update("syncState",{timestamp:new Date,error:""+o}),e.syncStateChangedEvent.next({phase:nr?"error":"offline",error:new Error(""+(null==o?void 0:o.message)||o)}),Promise.reject(o))}))))}function br(e,t,n,{isInitialSync:r,cancelToken:o,justCheckIfNeeded:i,purpose:s}={isInitialSync:!1}){var a;return I(this,void 0,void 0,(function*(){if(!(null===(a=e.cloud.options)||void 0===a?void 0:a.databaseUrl))throw new Error("Internal error: sync must not be called when no databaseUrl is configured");const{databaseUrl:c}=t,l=yield e.getCurrentUser(),u=l.isLoggedIn?yn(e):[],d=u.map((t=>e.table(vn(t.name)))),f=yield e.getPersistedSyncState(),p=!r&&l.isLoggedIn,h=p?function(e,t){const n=(null==t?void 0:t.syncedTables)||[];return yn(e).filter((e=>!n.includes(e.name)))}(e,f):[];tr(o);const y=h.length>0;if(y){if(i)return!0;yield e.transaction("rw",h,(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!==tn.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!==tn.userId||(e.owner=t.userId)})):yield n.toCollection().modify((e=>{e.realmId&&r.has(e.realmId)||(e.owner&&e.owner!==tn.userId||(e.owner=t.userId),e.realmId&&e.realmId!==tn.userId||(e.realmId=t.userId))})))}))}(h,l,null==f?void 0:f.realms)})))),tr(o)}const[v,m,b,{yMessages:g,lastUpdateIds:_}]=yield e.transaction("r",e.tables,(()=>I(this,void 0,void 0,(function*(){const t=yield e.getPersistedSyncState(),r=yield e.$baseRevs.toArray();let i=yield _n(d);const s=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=lr(e),s=e.table(t.updatesTable),a=yield s.get(ar),c=(null==a?void 0:a.unsentFrom)||1,l=(null==a?void 0:a.receivedUntil)||0,u=Math.min(c,l+1),d=yield cr(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,u);if(tr(o),y){const e=[...(null==f?void 0:f.realms)||[],...(null==f?void 0:f.inviteRealms)||[]],a=yield function(e,t,n,r){return I(this,void 0,void 0,(function*(){const o=`upload-${wn(8)}`;if(t.isLoggedIn&&e.length>0){const i=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 s=n[e.name],a=(null==s?void 0:s.generatedGlobalId)?e.filter((e=>{return r(e),!i.has(e.realmId||"")&&(t=r(e),!(n=null==s?void 0:s.idPrefix)||"string"==typeof t&&t.startsWith(n));var t,n})):e.filter((e=>{const t=r(e);return!i.has(e.realmId||"")&&N(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[]}))}(h,l,n,e);return tr(o),i=i.concat(a),[i,t,r,s]}return[i,t,r,s]})))),w=v.some((e=>e.muts.some((e=>e.keys.length>0))))||g.some((e=>"u-c"===e.type));if(i)return w;if("push"===s&&!w)return!1;const k=or(v,null==m?void 0:m.latestRevisions),S=(null==m?void 0:m.clientIdentity)||L(16);tr(o);const x=yield er(v,g,m,b,e,c,n,S,l),{done:E,newSyncState:O}=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))x.schema[e]&&(n[e]=x.schema[e]);yield e.$syncState.put(n,"schema");const r=yield _n(d,0,{since:k});for(const t of d){const n=mn(t.name);if(r.some((e=>e.table===n&&e.muts.length>0))){if(k[n]){const r=k[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()])}or(r,k),yield rr(e,n,k,x.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=yn(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){const t={};for(const e of o)t[`yDownloadedRealms.${e}`]=void 0;yield e.$syncState.update("syncState",t)}}))}(e,x,o);const i=o||{syncedTables:[],latestRevisions:{},realms:[],inviteRealms:[],clientIdentity:S};p&&(i.syncedTables=u.map((e=>e.name)).concat(h.map((e=>e.name)))),i.latestRevisions=k,i.remoteDbId=x.dbId,i.initiallySynced=!0,i.realms=x.realms,i.inviteRealms=x.inviteRealms,i.serverRevision=x.serverRevision,i.timestamp=new Date,delete i.error;const s=gr(x.changes,r);if(yield sr(s,e),x.yMessages){const t=yield dr(x.yMessages,e);yield function(e,t,n,r){var o,i,s,a,c;return I(this,void 0,void 0,(function*(){const l={};for(const[t,n]of Object.entries(e))null!==(o=l[t])&&void 0!==o||(l[t]={}),l[t].unsentFrom=n+1;for(const[e,n]of Object.entries(t))null!==(i=l[e])&&void 0!==i||(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],o=null!==(s=null==t?void 0:t.unsentFrom)&&void 0!==s?s:1,i=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(ar);t?(t.unsentFrom=Math.max(o,t.unsentFrom||1),t.receivedUntil=Math.max(i,t.receivedUntil||0),t.serverRev=r,yield n.table(e).put(t)):yield n.table(e).add({i:ar,unsentFrom:o,receivedUntil:i,serverRev:r})}))))}}))}(_,t,e,x.serverRevision)}return e.$syncState.put(i,"syncState"),{done:0===r.length,newSyncState:i}}))));if(!E)return yield Qn(e),yield br(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})),T=!!x.yMessages;return A&&T&&(yield yr(e,c,O)),e.syncCompleteEvent.next(),!1}))}function gr(e,t){const n={};F(n,e);const r={};return F(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))D(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=L(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 _r=10,wr=1e4,kr=1e3;function Sr(t){const n=[],r=new l(!0),o=new l(null);let s=!1,a=new Array(_r).fill(0);return o.subscribe((()=>I(this,void 0,void 0,(function*(){if(!s&&n.length>0){s=!0,a.shift(),a.push(Date.now()),r.next(!1);try{yield function(){var r,o,s,a,c,l;return I(this,void 0,void 0,(function*(){for(;n.length>0;){const u=n.shift();try{yield i(t.cloud.syncState.pipe(Dt((({phase:e})=>"in-sync"===e||"error"===e))));const n=t.cloud.persistedSyncState.value;if(!u)continue;switch(u.type){case"token-expired":const i=t.cloud.currentUser.value,d=yield Zt(t.cloud.options.databaseUrl,i);yield t.table("$logins").update(i.userId,{accessToken:d.accessToken,accessTokenExpiration:d.accessTokenExpiration,claims:d.claims,license:d.license,data:d.data});break;case"realm-added":(null===(r=null==n?void 0:n.realms)||void 0===r?void 0:r.includes(u.realm))||(null===(o=null==n?void 0:n.inviteRealms)||void 0===o?void 0:o.includes(u.realm))||(yield t.cloud.sync({purpose:"pull",wait:!0}));break;case"realm-accepted":(null===(s=null==n?void 0:n.realms)||void 0===s?void 0:s.includes(u.realm))||(yield t.cloud.sync({purpose:"pull",wait:!0}));break;case"realm-removed":((null===(a=null==n?void 0:n.realms)||void 0===a?void 0:a.includes(u.realm))||(null===(c=null==n?void 0:n.inviteRealms)||void 0===c?void 0:c.includes(u.realm)))&&(yield t.cloud.sync({purpose:"pull",wait:!0}));break;case"realms-changed":yield t.cloud.sync({purpose:"pull",wait:!0});break;case"changes":if("error"===(null===(l=t.cloud.syncState.value)||void 0===l?void 0:l.phase)){Wt(t,"pull");break}yield t.transaction("rw",t.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([t.getSchema(),t.getPersistedSyncState(),t.getCurrentUser()]);if(!o||!r||!i)return;if(u.baseRev!==o.serverRevision)return void("string"!=typeof u.baseRev||"bigint"!=typeof o.serverRevision&&"object"!=typeof o.serverRevision||Wt(t,"pull"));if((yield e.waitFor(hn(o)))!==u.realmSetHash)return void Wt(t,"pull");let s=[];if(i.isLoggedIn){const e=yn(t).map((e=>t.table(vn(e.name))));s=yield _n(e)}if(u.changes.length>0){const e=gr(u.changes,s);yield sr(e,t)}o.latestRevisions=or(s,o.latestRevisions),o.serverRevision=u.newRev,yield rr(t,r,o.latestRevisions,u.newRev),yield t.$syncState.put(o,"syncState")}))))}}catch(e){}}}))}()}finally{a[a.length-1]-a[0]<wr&&(yield new Promise((e=>setTimeout(e,kr)))),s=!1,r.next(!0)}}})))),{enqueue:function(e){n.push(e),o.next(null)},readyToServe:r}}const xr=new WeakMap,Ir={members:"@id, [userId+realmId], [email+realmId], realmId",roles:"[realmId+name]",realms:"@realmId",$jobs:"",$syncState:"",$baseRevs:"[tableName+clientRev]",$logins:"claims.sub, lastLogin"};let Er=0;function Or(e){"vip"in e&&(e=e.vip);let t=xr.get(e.cloud);if(!t){const n=new u;let r=new pn(`syncstatechanged-${e.name}`),o=new pn(`synccomplete-${e.name}`);n.id=++Er;let i=!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 i},localSyncEvent:n,get syncStateChangedEvent(){return r},get syncCompleteEvent(){return o},dx:e};const s={getCurrentUser:()=>t.$logins.toArray().then((e=>e.find((e=>e.isLoggedIn))||tn)),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){i=e},reconfigure(){r=new pn(`syncstatechanged-${e.name}`),o=new pn(`synccomplete-${e.name}`)}};Object.assign(t,s),t.messageConsumer=Sr(t),t.messageProducer=new u,xr.set(e.cloud,t)}return t}const Ar="undefined"!=typeof InstallTrigger,Tr="undefined"!=typeof navigator&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\/|Edge\//.test(navigator.userAgent),Cr=Tr?[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]:NaN,Ur=Tr&&Cr<=605||Ar,Pr="undefined"!=typeof self&&"clients"in self&&!self.document;function jr(){throw new e.SchemaError("Version increment needed to allow dexie-cloud change tracking")}const{toString:$r}={};function Dr(e){return $r.call(e).slice(8,-1)}function Lr(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 Rr=/b|c|d|f|g|h|j|k|l|m|n|p|q|r|s|t|v|x|y|z/i;let Nr=0;function Br(e,t){const n=new Uint8Array(18),r=new Uint8Array(n.buffer,0,6),o=Date.now();Nr>=o?++Nr:Nr=o,r[0]=Nr/1099511627776,r[1]=Nr/4294967296,r[2]=Nr/16777216,r[3]=Nr/65536,r[4]=Nr/256,r[5]=Nr;const i=new Uint8Array(n.buffer,6);crypto.getRandomValues(i);return e+jn(new Uint8Array(n.buffer))+(t||"")}function Mr(t){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;if(n.trans.disableChangeTracking)return o.mutate(n);if("add"===n.type||"put"===n.type){const a=null===(i=t.cloud.schema)||void 0===i?void 0:i[r];if(null==a?void 0:a.generatedGlobalId){if((null===(s=t.cloud.options)||void 0===s?void 0:s.databaseUrl)&&!t.initiallySynced){const e=Lr(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=Lr(o.schema.primaryKey,n);return a.forEach(((c,l)=>{if(void 0===c){const r=n.values[l].realmId||t.cloud.currentUserId,c=r.substr(r.length-3);a[l]=Br(i,c),o.schema.primaryKey.outbound||(s||(s=n.values.slice()),s[l]=e.deepClone(s[l]),e.setByKeyPath(s[l],o.schema.primaryKey.keyPath,a[l]))}else if("string"!=typeof c||!c.startsWith(i)&&!c.startsWith("#"+i))throw new e.ConstraintError(`The ID "${c}" is not valid for table "${r}". Primary '@' keys requires the key to be prefixed with "${i}" (or "#${i}).\nIf you want to generate IDs programmatically, remove '@' from the schema to get rid of this constraint. Dexie Cloud supports custom IDs as long as they are random and globally unique.`)})),o.mutate(Object.assign(Object.assign({},n),{keys:a,values:s||n.values}))}(n,a.idPrefix)}if(null==a?void 0:a.markedForSync){Lr(o.schema.primaryKey,n).forEach(((t,n)=>{if(!N(t)){const n=Array.isArray(t)?t.map(Dr).join(","):Dr(t);throw new e.ConstraintError(`Invalid primary key type ${n} for table ${r}. Tables marked for sync has primary keys of type string or Array of string (and optional numbers)`)}}))}}return o.mutate(n)}})}})}}let Fr=0;function Wr(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 Vr(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 Kr=new l(new Set);function Hr(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 zr({currentUserObservable:e,db:t}){return{stack:"dbcore",name:"MutationTrackingMiddleware",level:1,create:n=>{const r=n.schema.tables.filter((e=>!/^\$/.test(e.name)));let o;try{o=new Map(r.map((e=>[e.name,n.table(`$${e.name}_mutations`)])))}catch(e){jr()}return Object.assign(Object.assign({},n),{transaction:(r,o)=>{let i;if("readwrite"===o){const e=r.filter((e=>{var n,r;return null===(r=null===(n=t.cloud.schema)||void 0===n?void 0:n[e])||void 0===r?void 0:r.markedForSync})).map((e=>vn(e)));i=n.transaction([...r,...e],o)}else i=n.transaction(r,o);if("readwrite"===o){i.txid=wn(16),i.opCount=0,i.currentUser=e.value,Kr.value.add(i),Kr.next(Kr.value);const n=()=>{i.removeEventListener("complete",r),i.removeEventListener("error",n),i.removeEventListener("abort",n),Kr.value.delete(i),Kr.next(Kr.value)},r=()=>{i.mutationsAdded&&!Hr(t)&&Wt(t,"push"),n()};i.addEventListener("complete",r),i.addEventListener("error",n),i.addEventListener("abort",n)}return i},table:e=>{const r=n.table(e);if(/^\$/.test(e))return e.endsWith("_mutations")?Object.assign(Object.assign({},r),{mutate:e=>("add"!==e.type&&"put"!==e.type||(e.trans.mutationsAdded=!0),r.mutate(e))}):"$logins"===e?Object.assign(Object.assign({},r),{mutate:e=>r.mutate(e).then((t=>(e.trans.mutationsAdded=!0,t))).catch((e=>Promise.reject(e)))}):r;const{schema:i}=r,s=o.get(e);return function(e){const t="$lock"+ ++Fr;return Object.assign(Object.assign({},e),{count:Wr(e.count,t),get:Wr(e.get,t),getMany:Wr(e.getMany,t),openCursor:Wr(e.openCursor,t),query:Wr(e.query,t),mutate:Vr(e.mutate,t)})}(Object.assign(Object.assign({},r),{mutate:n=>{var o,s,c;const l=n.trans;return l.txid?l.disableChangeTracking?r.mutate(n):(null===(s=null===(o=t.cloud.schema)||void 0===o?void 0:o[e])||void 0===s?void 0:s.markedForSync)&&(null===(c=l.currentUser)||void 0===c?void 0:c.isLoggedIn)?"deleteRange"===n.type?r.query({query:{range:n.range,index:i.primaryKey},trans:n.trans,values:!1}).then((e=>a({type:"delete",keys:e.result,trans:n.trans,criteria:{index:null,range:n.range}}))):a(n):r.mutate(n):r.mutate(n)}}));function a(e){const t=e.trans;t.mutationsAdded=!0;const{txid:n,currentUser:{userId:o}}=t,{type:a}=e,c=++t.opCount;return r.mutate(e).then((r=>{const{numFailures:l,failures:u}=r;let d="delete"===a?e.keys:r.results,f="values"in e?e.values:[],p="updates"in e&&e.updates;l&&(d=d.filter(((e,t)=>!u[t])),f=f.filter(((e,t)=>!u[t])));const h=Date.now(),y="criteria"in e&&e.criteria?Object.assign(Object.assign({},e.criteria),{index:e.criteria.index===i.primaryKey.keyPath?null:e.criteria.index}):void 0,v="delete"===e.type?{type:"delete",ts:h,opNo:c,keys:d,criteria:y,txid:n,userId:o}:"add"===e.type?{type:"insert",ts:h,opNo:c,keys:d,txid:n,userId:o,values:f}:y&&e.changeSpec?{type:"modify",ts:h,opNo:c,keys:d,criteria:y,changeSpec:e.changeSpec,txid:n,userId:o}:p?{type:"update",ts:h,opNo:c,keys:p.keys,changeSpecs:p.changeSpecs,txid:n,userId:o}:{type:"upsert",ts:h,opNo:c,keys:d,values:f,txid:n,userId:o};return"isAdditionalChunk"in e&&e.isAdditionalChunk&&(v.isAdditionalChunk=!0),d.length>0||y?s.mutate({type:"add",trans:t,values:[v]}).then((()=>r)):r}))}}})}}}function qr(e,t){return function(n,r){var o;const i=Object.assign(Object.assign({},Ir),n);Object.keys(Ir).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=Ir[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(Ir[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)(Rr.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}}const Jr=new l(!0),Gr=new l(!0);Jr.pipe(Nt((e=>e?f(!0):f(!1).pipe(Pt(2e4)))),jt()).subscribe(Gr);const Yr="undefined"!=typeof document?d(document,"visibilitychange"):f({}),Xr=Yr.pipe(Dt((()=>"hidden"===document.visibilityState))),Zr=Yr.pipe(Dt((()=>"visible"===document.visibilityState))),Qr="undefined"!=typeof window?p(Zr,d(window,"mousedown"),d(window,"mousemove"),d(window,"keydown"),d(window,"wheel"),d(window,"touchmove")):f({});"undefined"!=typeof document&&p(f(!0),Xr,Qr).pipe(xt((()=>"visible"===document.visibilityState)),Bt((e=>{Jr.value!==e&&Jr.next(e)})),Nt((e=>e?f(0).pipe(Pt(16e4),Bt((()=>Jr.next(!1)))):f(0)))).subscribe((()=>{}));class eo extends Error{constructor(){super(...arguments),this.name="TokenExpiredError"}}function to(t){var n,r;if(!(null===(n=t.cloud.options)||void 0===n?void 0:n.awarenessProtocol))throw new e.MissingAPIError('awarenessProtocol was not provided to db.cloud.configure(). Please import * as awarenessProtocol from "y-protocols/awareness".');return null===(r=t.cloud.options)||void 0===r?void 0:r.awarenessProtocol}const no=new WeakMap;class ro extends c{constructor(e,t,n,r,o,i,s){super((a=>new io(e,t,n,r,s,a,o,i)))}}let oo=0;class io extends m{constructor(e,t,n,r,o,i,s,a){super((()=>this.teardown())),this.id=++oo,this.subscriptions=new Set,this.reconnecting=!1,this.db=e,this.databaseUrl=e.cloud.options.databaseUrl,this.rev=t,this.realmSetHash=n,this.clientIdentity=r,this.user=o,this.subscriber=i,this.lastUserActivity=new Date,this.messageProducer=s,this.webSocketStatus=a,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 eo);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 t=new URL(this.databaseUrl);t.protocol="http:"===t.protocol?"ws":"wss";const n=new URLSearchParams;if(this.subscriber.closed)return;n.set("v","2"),n.set("rev",this.rev),n.set("realmsHash",this.realmSetHash),n.set("clientId",this.clientIdentity),this.user.accessToken&&n.set("token",this.user.accessToken);const i=this.ws=new WebSocket(`${t}/changes?${n}`);i.binaryType="arraybuffer",i.onclose=e=>{this.pinger&&this.reconnect()},i.onmessage=e=>{if(this.pinger){this.lastServerActivity=new Date;try{const t="string"==typeof e.data?Jn.parse(e.data):function(e){const t=new he(e),n=ge(t),r=ge(t),o=ge(t);switch(n){case"u-ack":case"u-reject":return{type:n,table:r,prop:o,i:Number(we(t))};default:{const e=Se(t);switch(n){case"in-sync":case"doc-close":return{type:n,table:r,prop:o,k:e};case"aware":case"u-s":return{type:n,table:r,prop:o,k:e,u:ve(t)};case"doc-open":return{type:n,table:r,prop:o,k:e,serverRev:Se(t),sv:Se(t)};case"sv":return{type:n,table:r,prop:o,k:e,sv:ve(t)};case"u-c":return{type:n,table:r,prop:o,k:e,u:ve(t),i:Number(we(t))};default:throw new TypeError(`Unknown message type: ${n}`)}}}}(new Uint8Array(e.data));if("error"===t.type)throw new Error(`Error message from dexie-cloud: ${t.error}`);if("rev"===t.type)this.rev=t.rev;else if("aware"===t.type){const e=r.getDocCache(this.db.dx).find(t.table,t.k,t.prop);if(e){const n=(e=>no.get(e))(e);if(n){to(this.db).applyAwarenessUpdate(n,t.u,"server")}}}else"u-ack"===t.type||"u-reject"===t.type||"u-s"===t.type||"in-sync"===t.type?dr([t],this.db):"pong"!==t.type&&this.subscriber.next(t)}catch(e){this.subscriber.error(e)}}};try{let e=!1;yield new Promise(((t,n)=>{i.onopen=n=>{e=!0,t(null)},i.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?null===(t=this.ws)||void 0===t||t.send(Jn.stringify(e)):null===(n=this.ws)||void 0===n||n.send(ue(e)))}))),this.user.isLoggedIn&&!Hr(this.db)&&this.subscriptions.add(function(e){const t=gn(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 p(...t.map((({table:t,ydocProp:n,updatesTable:r})=>{const i=e.table(r);return s(i.get(ar)).pipe(h((e=>{let r=(null==e?void 0:e.unsentFrom)||1;return s(o((()=>I(this,void 0,void 0,(function*(){return(yield cr(i,r)).filter((e=>e.f&&1&e.f)).map((e=>({type:"u-c",table:t,prop:n,k:e.k,u:e.u,i:e.i})))}))))).pipe(y((e=>{e.length>0&&(r=e.at(-1).i+1)})))})))}))).pipe(v((e=>e)),y((e=>{})))}(this.db).subscribe(this.db.messageProducer))}catch(e){this.pauseUntil=new Date(Date.now()+6e4)}}))}}class so extends Error{constructor(e){super("expired"===e?"License expired":"deactivated"===e?"User deactivated":"Invalid license"),this.name="InvalidLicenseError",e&&(this.license=e)}}function ao(e){return I(this,void 0,void 0,(function*(){var e;yield(e=3e3,new Promise((t=>setTimeout(t,e)))),yield i(Qr)}))}function co(e){var t;return I(this,void 0,void 0,(function*(){return!(!(null===(t=e.cloud.options)||void 0===t?void 0:t.databaseUrl)||!e.cloud.schema)&&(yield mr(e,e.cloud.options,e.cloud.schema,{justCheckIfNeeded:!0}))}))}const lo=new WeakMap;function uo(e,t,n,r){const o=lo.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 uo(e,t,n,r)}))}}const i=function(){return I(this,void 0,void 0,(function*(){try{if(yield Qn(e),e.cloud.isServiceWorkerDB)yield mr(e,t,n,r);else{if(e.cloud.usingServiceWorker)throw j(!1),new Error("Internal _syncIfPossible() - invalid precondition - should not have been called.");yield function(e,t,n){return"undefined"!=typeof navigator&&navigator.locks?navigator.locks.request(e.name+"|"+t,(()=>n())):n()}(e,vr,(()=>mr(e,t,n,r)))}lo.delete(e)}catch(t){throw lo.delete(e),t}}))}();return lo.set(e,{promise:i,pull:"push"!==(null==r?void 0:r.purpose)}),i}const fo=6e4;function po(e,t,n){let r=null,o={cancelled:!1},i=null,s=null;function a(r,l=1){setTimeout((()=>{i&&clearTimeout(i);const u="pull"===s?"pull":r;i=null,s=null,uo(e,t,n,{cancelToken:o,retryImmediatelyOnFetchError:!0,purpose:u}).catch((e=>{if(o.cancelled)c();else if(l<3){const e=s&&"pull"===s?"pull":r,t=setTimeout((()=>a(e,l+1)),[0,5,15][l]*fo);i&&clearTimeout(i),i=t,s=e}}))}),0)}const c=()=>{o.cancelled=!0,r&&r.unsubscribe()};return{start:()=>{r=e.localSyncEvent.subscribe((({purpose:e})=>{try{a(e||"pull")}catch(e){}}))},stop:c}}function ho(e,t){if(e&&t&&t.unsyncedTables)for(const n of t.unsyncedTables)e[n]&&(e[n].markedForSync=!1)}var yo,vo,mo,bo,go,_o={},wo=[],ko=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function So(e,t){for(var n in t)e[n]=t[n];return e}function xo(e){var t=e.parentNode;t&&t.removeChild(e)}function Io(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?yo.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 Eo(e,s,r,o,null)}function Eo(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?++mo:o};return null==o&&null!=vo.vnode&&vo.vnode(i),i}function Oo(e){return e.children}function Ao(e,t){this.props=e,this.context=t}function To(e,t){if(null==t)return e.__?To(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?To(e):null}function Co(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 Co(e)}}function Uo(e){(!e.__d&&(e.__d=!0)&&bo.push(e)&&!Po.__r++||go!==vo.debounceRendering)&&((go=vo.debounceRendering)||setTimeout)(Po)}function Po(){for(var e;Po.__r=bo.length;)e=bo.sort((function(e,t){return e.__v.__b-t.__v.__b})),bo=[],e.some((function(e){var t,n,r,o,i,s;e.__d&&(i=(o=(t=e).__v).__e,(s=t.__P)&&(n=[],(r=So({},o)).__v=o.__v+1,Mo(s,o,r,t.__n,void 0!==s.ownerSVGElement,null!=o.__h?[i]:null,n,null==i?To(o):i,o.__h),Fo(n,o),o.__e!=i&&Co(o)))}))}function jo(e,t,n,r,o,i,s,a,c,l){var u,d,f,p,h,y,v,m=r&&r.__k||wo,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?Eo(null,p,null,null,p):Array.isArray(p)?Eo(Oo,{children:p},null,null,null):p.__b>0?Eo(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}Mo(e,p,f=f||_o,o,i,s,a,c,l),h=p.__e,(d=p.ref)&&f.ref!=d&&(v||(v=[]),f.ref&&v.push(f.ref,null,p),v.push(d,p.__c||h,p)),null!=h?(null==y&&(y=h),"function"==typeof p.type&&p.__k===f.__k?p.__d=c=$o(p,c,e):c=Do(e,p,f,m,h,c),"function"==typeof n.type&&(n.__d=c)):c&&f.__e==c&&c.parentNode!=e&&(c=To(f))}for(n.__e=y,u=b;u--;)null!=m[u]&&("function"==typeof n.type&&null!=m[u].__e&&m[u].__e==n.__d&&(n.__d=To(r,u+1)),Ko(m[u],m[u]));if(v)for(u=0;u<v.length;u++)Vo(v[u],v[++u],v[++u])}function $o(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?$o(r,t,n):Do(n,r,r,o,r.__e,t));return t}function Do(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 Lo(e,t,n){"-"===t[0]?e.setProperty(t,n):e[t]=null==n?"":"number"!=typeof n||ko.test(t)?n:n+"px"}function Ro(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||Lo(e.style,t,"");if(n)for(t in n)r&&n[t]===r[t]||Lo(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?Bo:No,i):e.removeEventListener(t,i?Bo:No,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 No(e){this.l[e.type+!1](vo.event?vo.event(e):e)}function Bo(e){this.l[e.type+!0](vo.event?vo.event(e):e)}function Mo(e,t,n,r,o,i,s,a,c){var l,u,d,f,p,h,y,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=vo.__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?y=(u=t.__c=n.__c).__=u.__E:("prototype"in k&&k.prototype.render?t.__c=u=new k(v,b):(t.__c=u=new Ao(v,b),u.constructor=k,u.render=Ho),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=So({},u.__s)),So(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,h)}))}if(u.context=b,u.props=v,u.__v=t,u.__P=e,g=vo.__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=So(So({},r),u.getChildContext())),d||null==u.getSnapshotBeforeUpdate||(h=u.getSnapshotBeforeUpdate(f,p)),w=null!=l&&l.type===Oo&&null==l.key?l.props.children:l,jo(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),y&&(u.__E=u.__=null),u.__e=!1}else null==i&&t.__v===n.__v?(t.__k=n.__k,t.__e=n.__e):t.__e=Wo(n.__e,t,n,r,o,i,s,c);(l=vo.diffed)&&l(t)}catch(e){t.__v=null,(c||null!=i)&&(t.__e=a,t.__h=!!c,i[i.indexOf(a)]=null),vo.__e(e,t,n)}}function Fo(e,t){vo.__c&&vo.__c(t,e),e.some((function(t){try{e=t.__h,t.__h=[],e.some((function(e){e.call(t)}))}catch(e){vo.__e(e,t.__v)}}))}function Wo(e,t,n,r,o,i,s,a){var c,l,u,d=n.props,f=t.props,p=t.type,h=0;if("svg"===p&&(o=!0),null!=i)for(;h<i.length;h++)if((c=i[h])&&"setAttribute"in c==!!p&&(p?c.localName===p:3===c.nodeType)){e=c,i[h]=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&&yo.call(e.childNodes),l=(d=n.props||_o).dangerouslySetInnerHTML,u=f.dangerouslySetInnerHTML,!a){if(null!=i)for(d={},h=0;h<e.attributes.length;h++)d[e.attributes[h].name]=e.attributes[h].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||Ro(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]||Ro(e,i,t[i],n[i],r)}(e,f,d,o,a),u)t.__k=[];else if(h=t.props.children,jo(e,Array.isArray(h)?h:[h],t,n,r,o&&"foreignObject"!==p,i,s,i?i[0]:n.__k&&To(n,0),a),null!=i)for(h=i.length;h--;)null!=i[h]&&xo(i[h]);a||("value"in f&&void 0!==(h=f.value)&&(h!==e.value||"progress"===p&&!h||"option"===p&&h!==d.value)&&Ro(e,"value",h,d.value,!1),"checked"in f&&void 0!==(h=f.checked)&&h!==e.checked&&Ro(e,"checked",h,d.checked,!1))}return e}function Vo(e,t,n){try{"function"==typeof e?e(t):e.current=t}catch(e){vo.__e(e,n)}}function Ko(e,t,n){var r,o;if(vo.unmount&&vo.unmount(e),(r=e.ref)&&(r.current&&r.current!==e.__e||Vo(r,null,t)),null!=(r=e.__c)){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(e){vo.__e(e,t)}r.base=r.__P=null}if(r=e.__k)for(o=0;o<r.length;o++)r[o]&&Ko(r[o],t,"function"!=typeof e.type);n||null==e.__e||xo(e.__e),e.__e=e.__d=void 0}function Ho(e,t,n){return this.constructor(e,n)}function zo(e,t,n){var r,o,i;vo.__&&vo.__(e,t),o=(r="function"==typeof n)?null:n&&n.__k||t.__k,i=[],Mo(t,e=(!r&&n||t).__k=Io(Oo,null,[e]),o||_o,_o,void 0!==t.ownerSVGElement,!r&&n?[n]:o?null:t.firstChild?yo.call(t.childNodes):null,i,!r&&n?n:o?o.__e:t.firstChild,r),Fo(i,e)}yo=wo.slice,vo={__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}},mo=0,Ao.prototype.setState=function(e,t){var n;n=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=So({},this.state),"function"==typeof e&&(e=e(So({},n),this.props)),e&&So(n,e),null!=e&&this.__v&&(t&&this.__h.push(t),Uo(this))},Ao.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),Uo(this))},Ao.prototype.render=Oo,bo=[],Po.__r=0;const qo={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 Jo({children:e,className:t}){return Io("div",{className:t},Io("div",{style:qo.Darken}),Io("div",{style:qo.DialogOuter},Io("div",{style:qo.DialogInner},e)))}var Go,Yo,Xo,Zo,Qo=0,ei=[],ti=[],ni=vo.__b,ri=vo.__r,oi=vo.diffed,ii=vo.__c,si=vo.unmount;function ai(e,t){vo.__h&&vo.__h(Yo,e,Qo||t),Qo=0;var n=Yo.__H||(Yo.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({__V:ti}),n.__[e]}function ci(e){return Qo=1,function(e,t,n){var r=ai(Go++,2);if(r.t=e,!r.__c&&(r.__=[n?n(t):yi(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=Yo,!Yo.u)){Yo.u=!0;var o=Yo.shouldComponentUpdate;Yo.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.__}(yi,e)}function li(e){return Qo=5,function(e,t){var n=ai(Go++,7);return hi(n.__H,t)?(n.__V=e(),n.i=t,n.__h=e,n.__V):n.__}((function(){return{current:e}}),[])}function ui(){for(var e;e=ei.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(fi),e.__H.__h.forEach(pi),e.__H.__h=[]}catch(t){e.__H.__h=[],vo.__e(t,e.__v)}}vo.__b=function(e){Yo=null,ni&&ni(e)},vo.__r=function(e){ri&&ri(e),Go=0;var t=(Yo=e.__c).__H;t&&(Xo===Yo?(t.__h=[],Yo.__h=[],t.__.forEach((function(e){e.__N&&(e.__=e.__N),e.__V=ti,e.__N=e.i=void 0}))):(t.__h.forEach(fi),t.__h.forEach(pi),t.__h=[])),Xo=Yo},vo.diffed=function(e){oi&&oi(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(1!==ei.push(t)&&Zo===vo.requestAnimationFrame||((Zo=vo.requestAnimationFrame)||function(e){var t,n=function(){clearTimeout(r),di&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,100);di&&(t=requestAnimationFrame(n))})(ui)),t.__H.__.forEach((function(e){e.i&&(e.__H=e.i),e.__V!==ti&&(e.__=e.__V),e.i=void 0,e.__V=ti}))),Xo=Yo=null},vo.__c=function(e,t){t.some((function(e){try{e.__h.forEach(fi),e.__h=e.__h.filter((function(e){return!e.__||pi(e)}))}catch(n){t.some((function(e){e.__h&&(e.__h=[])})),t=[],vo.__e(n,e.__v)}})),ii&&ii(e,t)},vo.unmount=function(e){si&&si(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.forEach((function(e){try{fi(e)}catch(e){t=e}})),t&&vo.__e(t,n.__v))};var di="function"==typeof requestAnimationFrame;function fi(e){var t=Yo,n=e.__c;"function"==typeof n&&(e.__c=void 0,n()),Yo=t}function pi(e){var t=Yo;e.__c=e.__(),Yo=t}function hi(e,t){return!e||e.length!==t.length||t.some((function(t,n){return t!==e[n]}))}function yi(e,t){return"function"==typeof t?t(e):t}function vi({message:e,messageCode:t,messageParams:n}){return e.replace(/\{\w+\}/gi,(e=>n[e.substring(1,e.length-1)]))}function mi({title:e,type:t,alerts:n,fields:r,submitLabel:o,cancelLabel:i,onCancel:s,onSubmit:a}){const[c,l]=ci({}),u=li(null);return function(e,t){var n=ai(Go++,4);!vo.__s&&hi(n.__H,t)&&(n.__=e,n.i=t,Yo.__h.push(n))}((()=>{var e;return null===(e=u.current)||void 0===e?void 0:e.focus()}),[]),Io(Jo,{className:"dxc-login-dlg"},Io(Oo,null,Io("h3",{style:qo.WindowHeader},e),n.map((e=>Io("p",{style:qo.Alert[e.type]},vi(e)))),Io("form",{onSubmit:e=>{e.preventDefault(),a(c)}},Object.entries(r).map((([e,{type:t,label:n,placeholder:r}],o)=>Io("label",{style:qo.Label,key:o},n?`${n}: `:"",Io("input",{ref:0===o?u:void 0,type:t,name:e,autoComplete:"on",style:qo.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)}})))))),Io("div",{style:qo.ButtonsDiv},Io(Oo,null,Io("button",{type:"submit",style:qo.Button,onClick:()=>a(c)},o),i&&Io("button",{style:qo.Button,onClick:s},i))))}class bi extends Ao{constructor(e){super(e),this.observer=e=>this.setState({userInteraction:e}),this.state={userInteraction:void 0}}componentDidMount(){this.subscription=s(this.props.db.cloud.userInteraction).subscribe(this.observer)}componentWillUnmount(){this.subscription&&(this.subscription.unsubscribe(),delete this.subscription)}render(e,{userInteraction:t}){return t?Io(mi,Object.assign({},t)):null}}function gi(e){const t=new WeakMap;return n=>{let r=t.get(n);return r||(r=e(n),t.set(n,r)),r}}const _i=gi((e=>new l(tn)));function wi(e,t){let n=t,r=s(e).pipe(_((e=>n=e)),w({resetOnRefCountZero:()=>k(1e3)}));const o=new c((e=>{let t=!1;const o=r.subscribe({next(n){t=!0,e.next(n)},error(t){e.error(t)},complete(){e.complete()}});return t||o.closed||e.next(n),o}));return o.getValue=()=>n,o}const ki=gi((e=>wi(o((()=>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})))),{}))),Si=gi((e=>wi(_i(e._novip).pipe(Nt((t=>o((()=>e.transaction("r","realms","members",(()=>Promise.all([e.members.where({userId:t.userId}).toArray(),e.realms.toArray(),t.userId]).then((([e,t,n])=>({selfMembers:e,realms:t,userId:n})))))))))),{selfMembers:[],realms:[],get userId(){return e.cloud.currentUserId}})));function xi(...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 Ii=gi((e=>function(e,t){let n;const r=e.pipe(_((e=>n=t(e))));return r.getValue=()=>void 0!==n?n:n=t(e.getValue()),r}(wi(g([Si(e._novip),ki(e._novip)]).pipe(xt((([{selfMembers:e,realms:t,userId:n},r])=>({selfMembers:e,realms:t,userId:n,globalRoles:r})))),{selfMembers:[],realms:[],userId:tn.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=gn(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:"*"}:xi(...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 Ei{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 Oi=gi((e=>{const t=_i(e._novip).pipe(Nt((t=>o((()=>e.members.where({email:t.email||""}).toArray()))))),n=Ii(e._novip),r=Si(e._novip);return wi(g([t,r,n]).pipe(xt((([t,n,r])=>{const o=(e,t)=>Object.assign(Object.assign({},e),{[t.id]:Object.assign(Object.assign({},t),{realm:r[t.realmId]})}),i=t.reduce(o,{}),s=n.selfMembers.reduce(o,i);return Object.values(s).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 Ai(e){return t=>{var r;const o=to(e),i=t.doc,{parentTable:s,parentId:a,parentProp:c,updatesTable:l}=i.meta;if(!(null===(r=e.cloud.schema)||void 0===r?void 0:r[s].markedForSync))return;let u=new o.Awareness(i);no.set(i,u),t.awareness=u,u.on("update",(({added:n,updated:r,removed:a},l)=>{const d=n.concat(r).concat(a),f=e.cloud.currentUser.value;if("server"!==l&&f.isLoggedIn&&!Hr(e)){const n=o.encodeAwarenessUpdate(u,d);e.messageProducer.next({type:"aware",table:s,prop:c,k:i.meta.parentId,u:n}),t.destroyed&&e.messageProducer.next({type:"doc-close",table:s,prop:c,k:i.meta.parentId})}})),u.on("destroy",(()=>{o.removeAwarenessStates(u,[i.clientID],"provider destroyed")})),t.on("load",(()=>I(this,void 0,void 0,(function*(){if(t.destroyed)return;let r=!1,o=1;const i=e.cloud.webSocketStatus.subscribe((i=>{if(t.destroyed)return;r="connected"===i;const u=e.cloud.currentUser.value;"connected"===i&&u.isLoggedIn&&!Hr(e)&&(++o,function(i){return I(this,void 0,void 0,(function*(){const i=o,u=e.table(l),d=yield u.get(ar);if(t.destroyed||o!==i||!r)return;const f=(null==d?void 0:d.receivedUntil)||0,p={type:"doc-open",table:s,prop:c,k:a,serverRev:null==d?void 0:d.serverRev},h=yield u.where("i").between(f,1/0,!1).filter((e=>0===n(e.k,a)&&0==(1&(e.f||0)))).toArray();if(!t.destroyed&&o===i&&r){if(h.length>0){const t=lr(e),n=t.mergeUpdatesV2(h.map((e=>e.u))),r=t.encodeStateVectorFromUpdateV2(n);p.sv=r}e.messageProducer.next(p)}}))}().catch((e=>{})))}));t.addCleanupHandler(i)}))))}}function Ti(e){return"rlm~"+e}function Ci(e){return e.startsWith("rlm~")?e.substr(4):null}const Ui={nameSuffix:!0};function Pi(t){const n=t.name,r=_i(t),a=[];let c=!1,h=null;t.on("ready",(t=>I(this,void 0,void 0,(function*(){try{yield function(t){var n,u,_,w,k,S,x;return I(this,void 0,void 0,(function*(){y=!1;const E=Or(t);"undefined"!=typeof window&&"undefined"!=typeof document&&((null===(n=E.cloud.options)||void 0===n?void 0:n.customLoginGui)||a.push(function(e){let t=!1;const n=document.createElement("div");return document.body?(document.body.appendChild(n),zo(Io(bi,{db:e.vip}),n)):addEventListener("DOMContentLoaded",(()=>{t||(document.body.appendChild(n),zo(Io(bi,{db:e.vip}),n))})),{unsubscribe(){try{n.remove()}catch(e){}t=!0},get closed(){return t}}}(t))),E.cloud.isServiceWorkerDB||a.push(function(e){let t=e.cloud.webSocketStatus.value;const n=e.cloud.webSocketStatus.pipe(Nt((e=>{const n=t;t=e;const r=f(e);switch(e){case"disconnected":return Jr.value?r.pipe(Ot(500)):r;case"connecting":return"not-started"===n||"error"===n?r:r.pipe(Ot(4e3));default:return r}})));return g([n,e.syncStateChangedEvent.pipe(Rt({phase:"initial"})),_i(e.dx._novip),Gr]).pipe(xt((([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:nr?l:"offline",license:"ok"}})))}(E).subscribe(t.cloud.syncState)),a.push(E.syncCompleteEvent.subscribe(m)),E.tables.every((e=>e.core))||jr();const O="serviceWorker"in navigator?yield navigator.serviceWorker.getRegistrations():[],[A,T]=yield E.transaction("rw",E.$syncState,(()=>I(this,void 0,void 0,(function*(){var e,t;const{options:n,schema:r}=E.cloud,[o,i,s]=yield Promise.all([E.getOptions(),E.getSchema(),E.getPersistedSyncState()]);if(c){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 E.$syncState.put(e,"options")}}else E.cloud.options=o||null;if((null===(e=E.cloud.options)||void 0===e?void 0:e.tryUseServiceWorker)&&"serviceWorker"in navigator&&O.length>0&&!Ur?E.cloud.usingServiceWorker=!0:((null===(t=E.cloud.options)||void 0===t?void 0:t.tryUseServiceWorker)&&E.cloud.isServiceWorkerDB,E.cloud.usingServiceWorker=!1),ho(r,E.cloud.options),ho(i,E.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 E.$syncState.put(e,"schema"),Object.assign(r,e)}}else E.cloud.schema=i||null;return[null==s?void 0:s.initiallySynced,null==s?void 0:s.realms]}))));if(A&&E.setInitiallySynced(!0),function(t){var n,r;for(const o of t.tables)if(null===(r=null===(n=t.cloud.schema)||void 0===n?void 0:n[o.name])||void 0===r?void 0:r.markedForSync){if(o.schema.primKey.auto)throw new e.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 e.SchemaError(`Table ${o.name} cannot be both synced and outbound. Use db.cloud.configure({unsyncedTables: [${JSON.stringify(o.name)}]}) to blacklist it from sync`)}}(E),(null===(u=E.cloud.options)||void 0===u?void 0:u.databaseUrl)&&!A&&(yield function(e,t,n){return I(this,void 0,void 0,(function*(){yield mr(e,t,n,{isInitialSync:!0})}))}(E,E.cloud.options,E.cloud.schema),E.setInitiallySynced(!0)),v(),!E.cloud.isServiceWorkerDB){a.push(o((()=>E.getCurrentUser())).subscribe(r)),a.push(o((()=>E.getPersistedSyncState())).subscribe(E.cloud.persistedSyncState)),yield i(g([r.pipe(Lt(1),Ct(1)),E.cloud.persistedSyncState.pipe(Lt(1),Ct(1))]));const e=Ai(E);E.dx.on("y",e),E.dx.once("close",(()=>{var t;null===(t=E.dx.on.y)||void 0===t||t.unsubscribe(e)}))}let C=!1;const U=yield E.getCurrentUser(),P=null===(_=E.cloud.options)||void 0===_?void 0:_.requireAuth;P&&("object"==typeof P?(!U.isLoggedIn||P.userId&&U.userId!==P.userId||P.email&&U.email!==P.email)&&(C=yield cn(E,P)):U.isLoggedIn||(C=yield cn(E))),!U.isLoggedIn||T&&T.includes(U.userId)||(C=!0),h&&h.stop(),h=null,v(),E.cloud.usingServiceWorker&&(null===(w=E.cloud.options)||void 0===w?void 0:w.databaseUrl)?(Ft(E,C?"pull":"push").catch((()=>{})),function(e){var t;return I(this,void 0,void 0,(function*(){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){}}))}(E).catch((()=>{}))):(null===(k=E.cloud.options)||void 0===k?void 0:k.databaseUrl)&&E.cloud.schema&&!E.cloud.isServiceWorkerDB&&(h=po(E,E.cloud.options,E.cloud.schema),h.start(),Wt(E,C?"pull":"push")),v(),E.cloud.isServiceWorkerDB||a.push(d(self,"online").subscribe((()=>{E.syncStateChangedEvent.next({phase:"not-in-sync"}),Hr(E)||Wt(E,"push")})),d(self,"offline").subscribe((()=>{E.syncStateChangedEvent.next({phase:"offline"})}))),!(null===(S=E.cloud.options)||void 0===S?void 0:S.databaseUrl)||(null===(x=E.cloud.options)||void 0===x?void 0:x.disableWebSocket)||Pr||a.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 n=e.messageConsumer.readyToServe.pipe(Dt((e=>e)),Nt((()=>e.getPersistedSyncState())),Dt((e=>e&&e.serverRevision)),Nt((e=>I(this,void 0,void 0,(function*(){return{type:"ready",rev:e.serverRevision,realmSetHash:yield hn(e)}}))))),r=p(n,e.messageProducer);return function t(){return e.cloud.persistedSyncState.pipe(Dt((e=>null==e?void 0:e.serverRevision)),Ct(1),Nt((t=>e.cloud.currentUser.pipe(xt((e=>[e,t]))))),Nt((([e,t])=>Gr.pipe(xt((n=>[n?e:null,t]))))),Nt((([t,n])=>(null==t?void 0:t.isLoggedIn)&&!(null==n?void 0:n.realms.includes(t.userId))?e.cloud.persistedSyncState.pipe(Dt((e=>(null==e?void 0:e.realms.includes(t.userId))||!1)),Ct(1),xt((e=>[t,e]))):new l([t,n]))),Nt((([e,t])=>I(this,void 0,void 0,(function*(){return[e,yield hn(t)]})))),jt((([e,t],[n,r])=>e===n&&t===r)),Nt((([n,o])=>{var i;return(null===(i=e.cloud.persistedSyncState)||void 0===i?void 0:i.value)?n?new ro(e,e.cloud.persistedSyncState.value.serverRevision,o,e.cloud.persistedSyncState.value.clientIdentity,r,e.cloud.webSocketStatus,n):s([]):t()})),gt((n=>"TokenExpiredError"===(null==n?void 0:n.name)?f(!0).pipe(Nt((()=>I(this,void 0,void 0,(function*(){const t=yield e.getCurrentUser(),n=yield Zt(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})})))),Nt((()=>t()))):b((()=>n)))),gt((n=>(e.cloud.webSocketStatus.next("error"),n instanceof so?b((()=>n)):s(ao()).pipe(Nt((()=>t())))))))}().subscribe({next:t=>{t&&e.messageConsumer.enqueue(t)},error:e=>{},complete:()=>{}})}(E))}))}(t)}catch(e){}}))),!0);let y=!1;function v(){if(y)throw new e.DatabaseClosedError}t.once("close",(()=>{a.forEach((e=>e.unsubscribe())),a.splice(0,a.length),y=!0,h&&h.stop(),h=null,r.next(tn)}));const m=new u;var _;t.cloud={version:"4.1.0-alpha.10",options:Object.assign({},Ui),schema:null,get currentUserId(){return r.value.userId||tn.userId},currentUser:r,syncState:new l({phase:"initial",status:"not-started"}),events:{syncComplete:m},persistedSyncState:new l(void 0),userInteraction:new l(void 0),webSocketStatus:new l("not-started"),login(e){return I(this,void 0,void 0,(function*(){const n=Or(t);yield n.cloud.sync(),yield cn(n,e)}))},invites:Oi(t),roles:ki(t),configure(e){e=t.cloud.options=Object.assign(Object.assign({},t.cloud.options),e),c=!0,e.databaseUrl&&e.nameSuffix&&(t.name=`${n}-${function(e){const t=new URL(e);return"/"===t.pathname?t.hostname.split(".")[0]:t.pathname.split("/")[1]}(e.databaseUrl)}`,Or(t).reconfigure()),ho(t.cloud.schema,t.cloud.options)},logout({force:e}={}){return I(this,void 0,void 0,(function*(){e?yield on(Or(t),{deleteUnsyncedData:!0}):yield rn(Or(t))}))},sync({wait:e,purpose:n}={wait:!0,purpose:"push"}){var r;return I(this,void 0,void 0,(function*(){void 0===e&&(e=!0);const a=Or(t);if("ok"!==((null===(r=a.cloud.currentUser.value.license)||void 0===r?void 0:r.status)||"ok")&&(yield Yt(a)),"pull"===n){const t=a.cloud.persistedSyncState.value;if(Wt(a,n),e){const e=yield i(a.cloud.persistedSyncState.pipe(Dt((e=>null!=(null==e?void 0:e.timestamp)&&(!t||e.timestamp>t.timestamp)))));if(null==e?void 0:e.error)throw new Error("Sync error: "+e.error)}}else if(yield co(a)){const t=a.cloud.persistedSyncState.value;Wt(a,n),e&&(yield i(s(o((()=>I(this,void 0,void 0,(function*(){const e=yield co(a),n=yield a.getPersistedSyncState();if((null==n?void 0:n.timestamp)!==(null==t?void 0:t.timestamp)&&(null==n?void 0:n.error))throw new Error("Sync error: "+n.error);return e}))))).pipe(Dt((e=>!e)))))}}))},permissions:(e,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=Ii(e),s=t=>{const i=t[o||e.cloud.currentUserId];return i?new Ei(i.permissions,n,void 0===o||o===e.cloud.currentUserId||r===e.cloud.currentUserId):new Ei({},n,!r||r===e.cloud.currentUserId)},a=i.pipe(xt(s));return a.getValue=()=>s(i.getValue()),a}(t._novip,e,n)},t.Version.prototype._parseStoresSpec=e.override(t.Version.prototype._parseStoresSpec,(e=>qr(e,t))),t.Table.prototype.newId=function({colocateWith:e}={}){const n=e&&e.substr(e.length-3);return Br(t.cloud.schema[this.name].idPrefix||"",n)},t.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)||""},t.use(zr({currentUserObservable:t.cloud.currentUser,db:Or(t)})),t.use((_=Or(t),{stack:"dbcore",name:"implicitPropSetterMiddleware",level:1,create:t=>Object.assign(Object.assign({},t),{table:n=>{const r=t.table(n);return Object.assign(Object.assign({},r),{mutate:t=>{var o,i,s,a;if(t.trans.disableChangeTracking)return r.mutate(t);const c=t.trans;if(null===(i=null===(o=_.cloud.schema)||void 0===o?void 0:o[n])||void 0===i?void 0:i.markedForSync){if("versionchange"===c.mode)return Promise.reject(new e.UpgradeError(`Dexie Cloud Addon: Cannot upgrade or populate synced table "${n}". See https://dexie.org/cloud/docs/best-practices`));if("add"===t.type||"put"===t.type){if("members"===n)for(const e of t.values)"string"==typeof e.email&&(e.email=e.email.trim().toLowerCase());for(const e of t.values){e.owner||(e.owner=c.currentUser.userId),e.realmId||(e.realmId=c.currentUser.userId);const n=null===(a=(s=r.schema.primaryKey).extractKey)||void 0===a?void 0:a.call(s,e);"string"==typeof n&&"#"===n[0]&&"put"===t.type&&(delete t.criteria,delete t.changeSpec,delete t.updates,e.$ts=Date.now())}}}return r.mutate(t)}})}})})),t.use(Mr(Or(t)))}Pi.version="4.1.0-alpha.10",e.Cloud=Pi;export{Pi as default,Pi as dexieCloud,Ci as getTiedObjectId,Ti as getTiedRealmId,vi as resolveText};
1
+ import e,{PropModification as t,cmp as n,DexieYProvider as r,liveQuery as o,RangeSet as i}from"dexie";import{firstValueFrom as s,from as a,filter as c,Observable as l,BehaviorSubject as u,Subject as d,fromEvent as f,of as p,merge as h,switchMap as y,tap as v,mergeMap as m,Subscription as b,throwError as g,combineLatest as _,map as w,share as k,timer as S}from"rxjs";var x=function(e,t){return x=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])},x(e,t)};function I(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}x(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}function E(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 O(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 T(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 A(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 C(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 P(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):u(i[0][2],e)}(o[e](t))}catch(e){u(i[0][3],e)}}function c(e){a("next",e)}function l(e){a("throw",e)}function u(e,t){e(t),i.shift(),i.length&&a(i[0][0],i[0][1])}}function j(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=T(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)}))}}}function $(e){if(!e)throw new Error("Assertion Failed")}const D={}.hasOwnProperty;function L(e,t,n){if(e&&void 0!==t&&(!("isFrozen"in Object)||!Object.isFrozen(e)))if("string"!=typeof t&&"length"in t){$("string"!=typeof n&&"length"in n);for(var r=0,o=t.length;r<o;++r)L(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 D.call(e,t)}(e,s)||(c=e[s]={}),L(c,a,n)}}else void 0===n?Array.isArray(e)&&!isNaN(parseInt(t))?e.splice(t,1):delete e[t]:e[t]=n}}const R="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=N)=>{const n=Buffer.alloc(e);return t(n),n.toString("base64")}:()=>{throw new Error("No implementation of randomString was found")};function N(e){for(let t=0;t<e.length;++t)e[t]=Math.floor(256*Math.random())}function B(e){return"string"==typeof e||!!(Array.isArray(e)&&e.some((e=>B(e)))&&e.every(M))}function M(e){return"string"==typeof e||"number"==typeof e||Array.isArray(e)&&e.every(M)}function F(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))L(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 W(e,t){for(const{table:n,muts:r}of t)for(const t of r)F(e,n,t)}const V=Math.floor,K=Math.abs,H=(e,t)=>e>t?e:t,z=128,q=127,J=Number.MAX_SAFE_INTEGER,G=Number.isInteger||(e=>"number"==typeof e&&isFinite(e)&&V(e)===e),Y=Array.isArray,X="undefined"!=typeof TextEncoder?new TextEncoder:null,Z=X?e=>X.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 Q="undefined"==typeof TextDecoder?null:new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});Q&&1===Q.decode(new Uint8Array).length&&(Q=null);class ee{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}}const te=(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},ne=(e,t)=>{for(;t>q;)te(e,z|q&t),t=V(t/128);te(e,q&t)},re=new Uint8Array(3e4),oe=re.length/3,ie=X&&X.encodeInto?(e,t)=>{if(t.length<oe){const n=X.encodeInto(t,re).written||0;ne(e,n);for(let t=0;t<n;t++)te(e,re[t])}else se(e,Z(t))}:(e,t)=>{const n=unescape(encodeURIComponent(t)),r=n.length;ne(e,r);for(let t=0;t<r;t++)te(e,n.codePointAt(t))},se=(e,t)=>{ne(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(H(2*n,i)),e.cbuf.set(t.subarray(o)),e.cpos=i)})(e,t)},ae=(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*H(n,t)),e.cpos=0)})(e,t);const n=new DataView(e.cbuf.buffer,e.cpos,t);return e.cpos+=t,n},ce=(e,t)=>ae(e,8).setBigUint64(0,t,!1),le=new DataView(new ArrayBuffer(4)),ue=(e,t)=>{switch(typeof t){case"string":te(e,119),ie(e,t);break;case"number":G(t)&&K(t)<=2147483647?(te(e,125),((e,t)=>{const n=(e=>0!==e?e<0:1/e<0)(t);for(n&&(t=-t),te(e,(t>63?z:0)|(n?64:0)|63&t),t=V(t/64);t>0;)te(e,(t>q?z:0)|q&t),t=V(t/128)})(e,t)):(n=t,le.setFloat32(0,n),le.getFloat32(0)===n?(te(e,124),((e,t)=>{ae(e,4).setFloat32(0,t,!1)})(e,t)):(te(e,123),((e,t)=>{ae(e,8).setFloat64(0,t,!1)})(e,t)));break;case"bigint":te(e,122),((e,t)=>{ae(e,8).setBigInt64(0,t,!1)})(e,t);break;case"object":if(null===t)te(e,126);else if(Y(t)){te(e,117),ne(e,t.length);for(let n=0;n<t.length;n++)ue(e,t[n])}else if(t instanceof Uint8Array)te(e,116),se(e,t);else{te(e,118);const n=Object.keys(t);ne(e,n.length);for(let r=0;r<n.length;r++){const o=n[r];ie(e,o),ue(e,t[o])}}break;case"boolean":te(e,t?120:121);break;default:te(e,127)}var n};function de(e){const t=new ee;switch(ie(t,e.type),ie(t,e.table),ie(t,e.prop),e.type){case"u-ack":case"u-reject":ce(t,BigInt(e.i));break;default:switch(ue(t,e.k),e.type){case"aware":case"u-s":se(t,e.u);break;case"doc-open":ue(t,e.serverRev),ue(t,e.sv);break;case"doc-close":break;case"sv":se(t,e.sv);break;case"u-c":se(t,e.u),ce(t,BigInt(e.i))}}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 fe=e=>new Error(e),pe=fe("Unexpected end of array"),he=fe("Integer out of Range");class ye{constructor(e){this.arr=e,this.pos=0}}const ve=e=>e.pos!==e.arr.length,me=e=>((e,t)=>{const n=new Uint8Array(e.arr.buffer,e.pos+e.arr.byteOffset,t);return e.pos+=t,n})(e,ge(e)),be=e=>e.arr[e.pos++],ge=e=>{let t=0,n=1;const r=e.arr.length;for(;e.pos<r;){const r=e.arr[e.pos++];if(t+=(r&q)*n,n*=128,r<z)return t;if(t>J)throw he}throw pe},_e=Q?e=>Q.decode(me(e)):e=>{let t=ge(e);if(0===t)return"";{let n=String.fromCodePoint(be(e));if(--t<100)for(;t--;)n+=String.fromCodePoint(be(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))}},we=(e,t)=>{const n=new DataView(e.arr.buffer,e.arr.byteOffset+e.pos,t);return e.pos+=t,n},ke=e=>we(e,8).getBigUint64(0,!1),Se=[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&z))return o*n;const i=e.arr.length;for(;e.pos<i;){if(t=e.arr[e.pos++],n+=(t&q)*r,r*=128,t<z)return o*n;if(n>J)throw he}throw pe},e=>we(e,4).getFloat32(0,!1),e=>we(e,8).getFloat64(0,!1),e=>we(e,8).getBigInt64(0,!1),e=>!1,e=>!0,_e,e=>{const t=ge(e),n={};for(let r=0;r<t;r++){n[_e(e)]=xe(e)}return n},e=>{const t=ge(e),n=[];for(let r=0;r<t;r++)n.push(xe(e));return n},me],xe=e=>Se[127-be(e)](e);function Ie(e){return P(this,arguments,(function*(){var t,n,r,o;let i=0,s=new Uint8Array(4),a=0,c=[],l=0;try{for(var u,d=!0,f=j(e);!(t=(u=yield U(f.next())).done);d=!0){o=u.value,d=!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{d||t||!(r=f.return)||(yield U(r.call(f)))}finally{if(n)throw n.error}}}))}function Ee(e){return"function"==typeof e}function Oe(e){return function(t){if(function(e){return Ee(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 Te=function(e){return e&&"number"==typeof e.length&&"function"!=typeof e};function Ae(e){return Ee(null==e?void 0:e.then)}var Ce,Ue,Pe=(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}},(Ue=Ce((function(e){Error.call(e),e.stack=(new Error).stack}))).prototype=Object.create(Error.prototype),Ue.prototype.constructor=Ue,Ue);function je(e,t){if(e){var n=e.indexOf(t);0<=n&&e.splice(n,1)}}var $e=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=T(i),a=s.next();!a.done;a=s.next()){a.value.remove(this)}}catch(t){e={error:t}}finally{try{a&&!a.done&&(t=s.return)&&t.call(s)}finally{if(e)throw e.error}}else i.remove(this);var c=this.initialTeardown;if(Ee(c))try{c()}catch(e){o=e instanceof Pe?e.errors:[e]}var l=this._finalizers;if(l){this._finalizers=null;try{for(var u=T(l),d=u.next();!d.done;d=u.next()){var f=d.value;try{Le(f)}catch(e){o=null!=o?o:[],e instanceof Pe?o=C(C([],A(o)),A(e.errors)):o.push(e)}}}catch(e){n={error:e}}finally{try{d&&!d.done&&(r=u.return)&&r.call(u)}finally{if(n)throw n.error}}}if(o)throw new Pe(o)}},e.prototype.add=function(t){var n;if(t&&t!==this)if(this.closed)Le(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)&&je(t,e)},e.prototype.remove=function(t){var n=this._finalizers;n&&je(n,t),t instanceof e&&t._removeParent(this)},e.EMPTY=((t=new e).closed=!0,t),e}();function De(e){return e instanceof $e||e&&"closed"in e&&Ee(e.remove)&&Ee(e.add)&&Ee(e.unsubscribe)}function Le(e){Ee(e)?e():e.unsubscribe()}$e.EMPTY;var Re={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},Ne={setTimeout:function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var o=Ne.delegate;return(null==o?void 0:o.setTimeout)?o.setTimeout.apply(o,C([e,t],A(n))):setTimeout.apply(void 0,C([e,t],A(n)))},clearTimeout:function(e){var t=Ne.delegate;return((null==t?void 0:t.clearTimeout)||clearTimeout)(e)},delegate:void 0};function Be(e){Ne.setTimeout((function(){throw e}))}function Me(){}var Fe=function(e){function t(t){var n=e.call(this)||this;return n.isStopped=!1,t?(n.destination=t,De(t)&&t.add(n)):n.destination=qe,n}return I(t,e),t.create=function(e,t,n){return new He(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}($e),We=Function.prototype.bind;function Ve(e,t){return We.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){ze(e)}},e.prototype.error=function(e){var t=this.partialObserver;if(t.error)try{t.error(e)}catch(e){ze(e)}else ze(e)},e.prototype.complete=function(){var e=this.partialObserver;if(e.complete)try{e.complete()}catch(e){ze(e)}},e}(),He=function(e){function t(t,n,r){var o,i,s=e.call(this)||this;Ee(t)||!t?o={next:null!=t?t:void 0,error:null!=n?n:void 0,complete:null!=r?r:void 0}:s&&Re.useDeprecatedNextContext?((i=Object.create(t)).unsubscribe=function(){return s.unsubscribe()},o={next:t.next&&Ve(t.next,i),error:t.error&&Ve(t.error,i),complete:t.complete&&Ve(t.complete,i)}):o=t;return s.destination=new Ke(o),s}return I(t,e),t}(Fe);function ze(e){Be(e)}var qe={closed:!0,next:Me,error:function(e){throw e},complete:Me},Je="function"==typeof Symbol&&Symbol.observable||"@@observable";function Ge(e){return e}var Ye=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 Fe||function(e){return e&&Ee(e.next)&&Ee(e.error)&&Ee(e.complete)}(r)&&De(r)?e:new He(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=Xe(t))((function(t,r){var o=new He({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[Je]=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?Ge: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=Xe(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 Xe(e){var t;return null!==(t=null!=e?e:Re.Promise)&&void 0!==t?t:Promise}function Ze(e){return Ee(e[Je])}function Qe(e){return Symbol.asyncIterator&&Ee(null==e?void 0:e[Symbol.asyncIterator])}function et(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 tt="function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator";function nt(e){return Ee(null==e?void 0:e[tt])}function rt(e){return P(this,arguments,(function(){var t,n,r;return O(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 ot(e){return Ee(null==e?void 0:e.getReader)}function it(e){if(e instanceof Ye)return e;if(null!=e){if(Ze(e))return o=e,new Ye((function(e){var t=o[Je]();if(Ee(t.subscribe))return t.subscribe(e);throw new TypeError("Provided object does not correctly implement Symbol.observable")}));if(Te(e))return r=e,new Ye((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 Ye((function(e){n.then((function(t){e.closed||(e.next(t),e.complete())}),(function(t){return e.error(t)})).then(null,Be)}));if(Qe(e))return st(e);if(nt(e))return t=e,new Ye((function(e){var n,r;try{for(var o=T(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(ot(e))return st(rt(e))}var t,n,r,o;throw et(e)}function st(e){return new Ye((function(t){(function(e,t){var n,r,o,i;return E(this,void 0,void 0,(function(){var s,a;return O(this,(function(c){switch(c.label){case 0:c.trys.push([0,5,6,11]),n=j(e),c.label=1;case 1:return[4,n.next()];case 2:if((r=c.sent()).done)return[3,4];if(s=r.value,t.next(s),t.closed)return[2];c.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return a=c.sent(),o={error:a},[3,11];case 6:return c.trys.push([6,,9,10]),r&&!r.done&&(i=n.return)?[4,i.call(n)]:[3,8];case 7:c.sent(),c.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 at(e,t,n,r,o){return new ct(e,t,n,r,o)}var ct=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 I(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}(Fe),lt=function(e){function t(t,n){return e.call(this)||this}return I(t,e),t.prototype.schedule=function(e,t){return this},t}($e),ut={setInterval:function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var o=ut.delegate;return(null==o?void 0:o.setInterval)?o.setInterval.apply(o,C([e,t],A(n))):setInterval.apply(void 0,C([e,t],A(n)))},clearInterval:function(e){var t=ut.delegate;return((null==t?void 0:t.clearInterval)||clearInterval)(e)},delegate:void 0},dt=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 I(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),ut.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;ut.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,je(r,this),null!=t&&(this.id=this.recycleAsyncId(n,t,null)),this.delay=null,e.prototype.unsubscribe.call(this)}},t}(lt),ft={now:function(){return(ft.delegate||Date).now()},delegate:void 0},pt=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=ft.now,e}(),ht=new(function(e){function t(t,n){void 0===n&&(n=pt.now);var r=e.call(this,t,n)||this;return r.actions=[],r._active=!1,r._scheduled=void 0,r}return I(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}(pt))(dt),yt=ht;function vt(e){return e&&Ee(e.schedule)}function mt(e,t,n){void 0===e&&(e=0),void 0===n&&(n=yt);var r=-1;return null!=t&&(vt(t)?n=t:r=t),new Ye((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 bt(e){return vt((t=e)[t.length-1])?e.pop():void 0;var t}function gt(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 _t(e){return Oe((function(t,n){var r,o=null,i=!1;o=t.subscribe(at(n,void 0,void 0,(function(s){r=it(e(s,_t(e)(t))),o?(o.unsubscribe(),o=null,r.subscribe(n)):i=!0}))),i&&(o.unsubscribe(),o=null,r.subscribe(n))}))}function wt(e,t){return void 0===t&&(t=0),Oe((function(n,r){n.subscribe(at(r,(function(n){return gt(r,e,(function(){return r.next(n)}),t)}),(function(){return gt(r,e,(function(){return r.complete()}),t)}),(function(n){return gt(r,e,(function(){return r.error(n)}),t)})))}))}function kt(e,t){return void 0===t&&(t=0),Oe((function(n,r){r.add(e.schedule((function(){return n.subscribe(r)}),t))}))}function St(e,t){if(!e)throw new Error("Iterable cannot be null");return new Ye((function(n){gt(n,t,(function(){var r=e[Symbol.asyncIterator]();gt(n,t,(function(){r.next().then((function(e){e.done?n.complete():n.next(e.value)}))}),0,!0)}))}))}function xt(e,t){if(null!=e){if(Ze(e))return function(e,t){return it(e).pipe(kt(t),wt(t))}(e,t);if(Te(e))return function(e,t){return new Ye((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 it(e).pipe(kt(t),wt(t))}(e,t);if(Qe(e))return St(e,t);if(nt(e))return function(e,t){return new Ye((function(n){var r;return gt(n,t,(function(){r=e[tt](),gt(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 Ee(null==r?void 0:r.return)&&r.return()}}))}(e,t);if(ot(e))return function(e,t){return St(rt(e),t)}(e,t)}throw et(e)}function It(e,t){return Oe((function(n,r){var o=0;n.subscribe(at(r,(function(n){r.next(e.call(t,n,o++))})))}))}function Et(e,t,n){return void 0===n&&(n=1/0),Ee(t)?Et((function(n,r){return It((function(e,o){return t(n,e,r,o)}))(it(e(n,r)))}),n):("number"==typeof t&&(n=t),Oe((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?h(e):c.push(e)},h=function(e){i&&t.next(e),l++;var a=!1;it(n(e,u++)).subscribe(at(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?gt(t,s,(function(){return h(e)})):h(e)};c.length&&l<r;)e();f()}catch(e){t.error(e)}})))};return e.subscribe(at(t,p,(function(){d=!0,f()}))),function(){null==a||a()}}(t,r,e,n)})))}function Ot(){return void 0===(e=1)&&(e=1/0),Et(Ge,e);var e}function Tt(e,t){return void 0===t&&(t=ht),Oe((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(at(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 Ot()((e=n,(t=bt(n))?xt(e,t):it(e)))}var Ct=new Ye((function(e){return e.complete()}));function Ut(e){return e<=0?function(){return Ct}:Oe((function(t,n){var r=0;t.subscribe(at(n,(function(t){++r<=e&&(n.next(t),e<=r&&n.complete())})))}))}function Pt(e,t){return t?function(n){return At(t.pipe(Ut(1),Oe((function(e,t){e.subscribe(at(t,Me))}))),n.pipe(Pt(e)))}:Et((function(t,n){return e(t,n).pipe(Ut(1),function(e){return It((function(){return e}))}(t))}))}function jt(e,t){void 0===t&&(t=ht);var n=mt(e,t);return Pt((function(){return n}))}function $t(e,t){return void 0===t&&(t=Ge),e=null!=e?e:Dt,Oe((function(n,r){var o,i=!0;n.subscribe(at(r,(function(n){var s=t(n);!i&&e(o,s)||(i=!1,o=s,r.next(n))})))}))}function Dt(e,t){return e===t}function Lt(e,t){return Oe((function(n,r){var o=0;n.subscribe(at(r,(function(n){return e.call(t,n,o++)&&r.next(n)})))}))}function Rt(e){return Lt((function(t,n){return e<=n}))}function Nt(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=bt(e);return Oe((function(t,r){(n?At(e,t,n):At(e,t)).subscribe(r)}))}function Bt(e,t){return Oe((function(n,r){var o=null,i=0,s=!1,a=function(){return s&&!o&&r.complete()};n.subscribe(at(r,(function(n){null==o||o.unsubscribe();var s=0,c=i++;it(e(n,c)).subscribe(o=at(r,(function(e){return r.next(t?t(n,e,c,s++):e)}),(function(){o=null,a()})))}),(function(){s=!0,a()})))}))}function Mt(e,t,n){var r=Ee(e)||t||n?{next:e,error:t,complete:n}:e;return r?Oe((function(e,t){var n;null===(n=r.subscribe)||void 0===n||n.call(r);var o=!0;e.subscribe(at(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)})))})):Ge}let Ft=!1;function Wt(e,t){return E(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){Ft||(Ft=!0)}}))}function Vt(e,t){e.cloud.usingServiceWorker?Wt(e,t):e.localSyncEvent.next({purpose:t})}const Kt="undefined"!=typeof Buffer?e=>Buffer.from(e,"base64"):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},Ht="undefined"!=typeof Buffer?e=>ArrayBuffer.isView(e)?Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("base64"):Buffer.from(e).toString("base64"):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 zt 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 qt(t,n){return new Promise(((r,o)=>{const i=Object.assign(Object.assign({submitLabel:"Submit",cancelLabel:"Cancel"},n),{onSubmit:e=>{t.next(void 0),r(e)},onCancel:()=>{t.next(void 0),o(new e.AbortError("User cancelled"))}});t.next(i)}))}function Jt(e,t,...n){return qt(e,{type:"message-alert",title:t,alerts:n,fields:{},submitLabel:"OK",cancelLabel:null})}function Gt(e,t,n){return E(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 qt(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 Yt(e,t,n){return E(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 qt(e,{type:"otp",title:"Enter OTP",alerts:r,fields:{otp:{type:"otp",label:"OTP",placeholder:"Paste OTP here"}}});return o}))}function Xt(e){var t,n,r;return E(this,void 0,void 0,(function*(){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 Qt(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}),u}))}function Zt(t,n,r,o,i){return E(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 Qt(t,n):yield function(t,n,r,o){return E(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");t.nonExportablePrivateKey=i;const a=function(e){const t=Ht(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));t.publicKey=s;try{const e=yield n({public_key:a,hints:o});if("error"===e.type)throw new zt(e);if("tokens"!==e.type)throw new Error(`Unexpected response type from token endpoint: ${e.type}`);return t.accessToken=e.accessToken,t.accessTokenExpiration=new Date(e.accessTokenExpiration),t.refreshToken=e.refreshToken,e.refreshTokenExpiration&&(t.refreshTokenExpiration=new Date(e.refreshTokenExpiration)),t.userId=e.claims.sub,t.email=e.claims.email,t.name=e.claims.name,t.claims=e.claims,t.license={type:e.userType,status:e.claims.license||"ok"},t.data=e.data,null!=e.evalDaysLeft&&(t.license.evalDaysLeft=e.evalDaysLeft),null!=e.userValidUntil&&(t.license.validUntil=new Date(e.userValidUntil)),e.alerts&&e.alerts.length>0&&(yield qt(r,{type:"message-alert",title:"Authentication Alert",fields:{},alerts:e.alerts})),t}catch(t){if(t instanceof zt)throw yield Jt(r,t.title,{type:"error",messageCode:t.messageCode,message:t.message,messageParams:{}}),t;let n="We're having a problem authenticating right now.";if(t instanceof TypeError){n=void 0!==typeof navigator&&!navigator.onLine?"You seem to be offline. Please connect to the internet and try again.":e.debug||"undefined"!=typeof location&&("localhost"===location.hostname||"127.0.0.1"===location.hostname)?`Could not connect to server. Please verify that your origin '${location.origin}' is whitelisted using \`npx dexie-cloud whitelist\``:"Could not connect to server. Please verify the connection.",yield Jt(r,"Authentication Failed",{type:"error",messageCode:"GENERIC_ERROR",message:n,messageParams:{}}).catch((()=>{}))}throw t}}))}(n,r,o,i)}))}function Qt(e,t){return E(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=Ht(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 zt(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 en=new WeakMap;class tn{constructor(e,t){en.set(this,e),Object.assign(this,t)}static load(e,t){return e.table("$logins").get(t).then((n=>new tn(e,n||{userId:t,claims:{sub:t},lastLogin:new Date(0)})))}save(){return E(this,void 0,void 0,(function*(){en.get(this).table("$logins").put(this)}))}}const nn={userId:"unauthorized",name:"Unauthorized",claims:{sub:"unauthorized"},lastLogin:new Date(0)};try{Object.freeze(nn),Object.freeze(nn.claims)}catch(e){}function rn(e,t){return s(a(e).pipe(c(t)))}function on(e){return E(this,void 0,void 0,(function*(){const t=yield sn(e);if(t){if(!(yield function(e,t,n){return E(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 qt(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 sn(e,{deleteUnsyncedData:!0})}}))}function sn(e,{deleteUnsyncedData:t=!1}={}){return E(this,void 0,void 0,(function*(){const[n,r]=yield e.dx.transaction("rw",e.dx.tables,(n=>E(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 rn(e.cloud.currentUser,(e=>e.userId===nn.userId)),yield e.cloud.sync({purpose:"pull",wait:!0})),n}))}class an extends Error{constructor(e,t){super(t||`${e.status} ${e.statusText}`),this.httpStatus=e.status}get name(){return"HttpError"}}function cn(e,...t){globalThis.console[e](...t)}function ln(e,t){var n;return E(this,void 0,void 0,(function*(){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 Xt(e),!1}const i=new tn(e,{claims:{},lastLogin:new Date(0)});return yield Zt(e.cloud.options.databaseUrl,i,e.cloud.options.fetchTokens||function(e){const{userInteraction:t}=e.cloud;return function({public_key:n,hints:r}){var o;return E(this,void 0,void 0,(function*(){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 Gt(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 Gt(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 Jt(t,"Token request failed",{type:"error",messageCode:"GENERIC_ERROR",message:e,messageParams:{}}).catch((()=>{})),new an(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 Yt(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 Yt(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 an(o,e)}return yield o.json()}throw new Error(`Unexpected response from ${s}/token`)}))}}(e),e.cloud.userInteraction,t),o!==nn.userId&&i.userId!==o&&(yield on(e)),yield function(e,t){return E(this,void 0,void 0,(function*(){if(t.userId===e.cloud.currentUserId)return;const n=e.table("$logins");yield e.transaction("rw",n,(e=>E(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&&(cn("debug","Login context property names:",Object.keys(t)),cn("debug","Login context property names:",Object.keys(t)),cn("debug","Login context:",t),cn("debug","Login context JSON:",JSON.stringify(t)))}catch(e){}throw e}})))),yield rn(e.cloud.currentUser,(e=>e.userId===t.userId))}))}(e,i),Vt(e,"pull"),i.userId!==o}))}const un={},dn="undefined"!=typeof self&&self.document&&"undefined"!=typeof navigator&&navigator.serviceWorker;dn&&dn.ready.then((e=>un.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 fn{constructor(e){this.name=e}subscribe(e){if(!dn)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 dn.addEventListener("message",t),()=>dn.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}))):un.registration&&(null===(t=un.registration.active)||void 0===t||t.postMessage({type:`sw-broadcast-${this.name}`,message:e}))}}const pn=globalThis["lbc-events"]||(globalThis["lbc-events"]=new Map);class hn extends l{constructor(e){const t="undefined"==typeof BroadcastChannel?new fn(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){pn.has(e)?pn.get(e).push(t):pn.set(e,[t])}(`lbc-${e}`,r);try{t instanceof fn?i=t.subscribe((e=>n.next(e))):t.addEventListener("message",o)}catch(e){}return()=>{!function(e,t){const n=pn.get(e);if(n){const e=n.indexOf(t);-1!==e&&n.splice(e,1)}}(`lbc-${e}`,r),t instanceof fn?i():t.removeEventListener("message",o)}})),this.name=e,this.bc=t}next(e){this.bc.postMessage(e);!function(e){const t=pn.get(e.type);t&&t.forEach((t=>{try{t(e)}catch(e){}}))}(new CustomEvent(`lbc-${this.name}`,{detail:e}))}}function yn({realms:e,inviteRealms:t}){return E(this,void 0,void 0,(function*(){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 Ht(o)}))}function vn(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 mn(e){return`$${e}_mutations`}function bn(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 gn=[].concat;function _n(e){return gn.apply([],e)}function wn(e,t,{since:n={},limit:r=1/0}={}){return E(this,void 0,void 0,(function*(){const t=_n(yield Promise.all(e.map((e=>E(this,void 0,void 0,(function*(){const t=bn(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)),o=[];let i=null,s=null;for(const{table:e,mut:n}of t)i&&i.table===e&&s===n.txid?i.muts.push(n):(i={table:e,muts:[n]},s=n.txid,o.push(i));return o}))}function kn(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:Sn}={};const xn={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 In(...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 xn;let i=n.get(r);if(void 0!==i)return i;const s=(o=e,Sn.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:xn),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 En={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 On={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 Tn={bigint:{replace:e=>({$t:"bigint",v:""+e}),revive:e=>BigInt(e.v)}};var An={Date:{replace:e=>({$t:"Date",v:isNaN(e.getTime())?"NaN":e.toISOString()}),revive:({v:e})=>new Date("NaN"===e?NaN:Date.parse(e))}},Cn={Set:{replace:e=>({$t:"Set",v:Array.from(e.entries())}),revive:({v:e})=>new Set(e)}},Un={Map:{replace:e=>({$t:"Map",v:Array.from(e.entries())}),revive:({v:e})=>new Map(e)}};const Pn="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof global?global:void 0;var jn=["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=Pn[t];return o&&new o(r.ArrayBuffer.revive({v:e},n,r))}}})),{});function $n(e){return function(e){for(var t="",n=0,r=e.length;n<r;n++)t+=Rn[e[n]];return t}(Ht(e))}function Dn(e){return Kt(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+=Ln[e[n]];return t}(e))}const Ln={"-":"=",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:"+","|":"/"},Rn={};for(const e of Object.keys(Ln))Rn[Ln[e]]=e;var Nn={ArrayBuffer:{replace:e=>({$t:"ArrayBuffer",v:$n(e)}),revive:({v:e})=>{const t=Dn(e);return t.buffer.byteLength===t.byteLength?t.buffer:t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}}};class Bn{constructor(e,t){this.buf=e,this.type=t}}function Mn(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 Fn(e){const t=new Uint8Array(e.length);for(let n=0;n<e.length;++n)t[n]=e.charCodeAt(n);return t.buffer}var Wn={Blob:{test:(e,t)=>"Blob"===t||e instanceof Bn,replace:e=>({$t:"Blob",v:Ht(e instanceof Bn?e.buf:Fn(Mn(e))),type:e.type}),revive:({type:e,v:t})=>{const n=Kt(t);return void 0!==typeof Blob?new Blob([n]):new Bn(n.buffer,e)}}};const Vn={...On,...Tn,...An,...Cn,...Un,...jn,...Nn,...Wn};function Kn(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 Hn={undefined:{replace:()=>({$t:"undefined"}),revive:()=>{}}};const zn="function"==typeof BigInt&&"bigint"==typeof BigInt(0);class qn{toString(){return this.v}constructor(e){this.v=e}}const Jn=Object.assign(Object.assign(Object.assign({},Hn),zn?{}:{bigint:{test:e=>e instanceof qn,replace:e=>Object.assign({$t:"bigint"},e),revive:({v:e})=>new qn(e)}}),{PropModification:{test:e=>e instanceof t,replace:e=>Object.assign({$t:"PropModification"},e),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(n)}}}),Gn=In(Vn,Jn),Yn=function(...e){const t=In(Vn,En,...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 Kn(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 Kn(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)}}}(Jn);function Xn(t,n,r){const o=[];for(let i of r){const{table:r,muts:s}=i,a=t.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(((t,r)=>{const o=!c.outbound&&("upsert"===t.type||"insert"===t.type);t.keys.forEach(((t,s)=>{if(Array.isArray(t)){l===i&&(l=Zn(i,o));const e=l.muts[r],n=JSON.stringify(t);e.keys[s]=n}else if("#"===t[0]){l===i&&(l=Zn(i,o));const a=l.muts[r];if(!n.isLoggedIn)throw new Error("Internal error: Cannot sync private IDs before authenticated");const u=`${t}:${n.userId}`;a.keys[s]=u,o&&e.setByKeyPath(a.values[s],c.keyPath,u)}}))})),o.push(l)}return o}function Zn(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 Qn=new WeakMap;function er(e){var t,n;return E(this,void 0,void 0,(function*(){const r=(null!==(n=null===(t=Qn.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 tr(e,t,n,r,o,i,s,a,c){return E(this,void 0,void 0,(function*(){const l={Accept:"application/json, application/x-bison, application/x-bison-stream","Content-Type":"application/tson"},u=yield Xt(o),d=null==u?void 0:u.accessToken;d&&(l.Authorization=`Bearer ${d}`);const f={v:2,dbID:null==n?void 0:n.remoteDbId,clientIdentity:a,schema:s||{},lastPull:n?{serverRevision:n.serverRevision,realms:n.realms,inviteRealms:n.inviteRealms}:void 0,baseRevs:r,changes:Xn(o.dx.core.schema,c,e),y:t};o.syncStateChangedEvent.next({phase:"pushing"});const p=yield fetch(`${i}/sync`,{method:"post",headers:l,credentials:"include",body:Gn.stringify(f)});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));Qn.set(e,new Date(Date.now()+1e3*t))}else Qn.delete(e)}}(o,p),!p.ok)throw new an(p);if("application/x-bison"===p.headers.get("content-type"))return Yn.fromBinary(yield p.blob());{const e=yield p.text();return Gn.parse(e)}}))}function nr(t){if(null==t?void 0:t.cancelled)throw new e.AbortError("Operation was cancelled")}let rr=!1;function or(e,t,n,r){return E(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 ir(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 sr(t,r,o){return E(this,void 0,void 0,(function*(){const i=yield t.bulkGet(r),s=[],a=[];r.forEach(((r,c)=>{const l=i[c];if(l){for(const[i,s]of Object.entries(o[c]))if(i===t.schema.primKey.keyPath){if(0!==n(s,r))throw new Error("Cannot change primary key")}else e.setByKeyPath(l,i,s);s.push(r),a.push(l)}})),yield null==t.schema.primKey.keyPath?t.bulkPut(a,s):t.bulkPut(a)}))}function ar(t,n){return E(this,void 0,void 0,(function*(){for(const{table:r,muts:o}of t){const t=n.table(r);if(!t)continue;const{primaryKey:i}=t.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 t.bulkAdd(n.values,r):(r.forEach(((t,r)=>{e.setByKeyPath(n.values[r],i.keyPath,t)})),yield t.bulkAdd(n.values));break;case"upsert":i.outbound?yield t.bulkPut(n.values,r):(r.forEach(((t,r)=>{e.setByKeyPath(n.values[r],i.keyPath,t)})),yield t.bulkPut(n.values));break;case"modify":1===r.length?yield t.update(r[0],n.changeSpec):yield t.where(":id").anyOf(r).modify(n.changeSpec);break;case"update":yield sr(t,r,n.changeSpecs);break;case"delete":yield t.bulkDelete(r)}}}}))}"undefined"!=typeof self&&"undefined"!=typeof navigator&&(rr=navigator.onLine,self.addEventListener("online",(()=>rr=!0)),self.addEventListener("offline",(()=>rr=!1)));const cr="dexie-cloud-syncer";function lr(e,t){return e.where("i").between(t,1/0,!0).toArray()}function ur(e){const t=e.dx._options.Y;if(!t)throw new Error("Y library not supplied to Dexie constructor");return t}function dr(e,t,n){var r,o,i;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;if(!s)throw new Error(`No updatesTable found for ${t}.${n}`);return e.table(s)}function fr(e,t){var o;return E(this,void 0,void 0,(function*(){const i={};for(const s of e)switch(s.type){case"u-s":{const e=dr(t,s.table,s.prop);i[e.name]=yield e.add({k:s.k,u:s.u});break}case"u-ack":{const e=dr(t,s.table,s.prop);yield t.transaction("rw",e,(t=>E(this,void 0,void 0,(function*(){let n=yield t.table(e.name).get(cr);yield t.table(e.name).put(Object.assign(Object.assign({},n||{i:cr}),{unsentFrom:Math.max((null==n?void 0:n.unsentFrom)||1,s.i+1)}))}))));break}case"u-reject":{const e=dr(t,s.table,s.prop),i=null===(o=yield e.get(s.i))||void 0===o?void 0:o.k;if(null!=i){yield t.transaction("rw",e,(t=>(t.idbtrans._rejecting_y_ypdate=!0,e.where("i").aboveOrEqual(s.i).filter((e=>0===n(e.k,i)&&1==(1&(e.f||0)))).delete())));const o=r.getDocCache(t.dx).find(s.table,i,s.prop);o&&o.destroy()}break}case"in-sync":{const e=r.getDocCache(t.dx).find(s.table,s.k,s.prop);e&&!e.isSynced&&e.emit("sync",[!0]);break}}return i}))}const pr=1,hr=2,yr=3;function vr(t,n,{yDownloadedRealms:r,realms:o}){return E(this,void 0,void 0,(function*(){if(r&&o&&o.every((e=>"*"===r[e])))return;const i=yield Xt(t),s={"Content-Type":"application/json",Accept:"application/octet-stream"};i&&(s.Authorization=`Bearer ${i.accessToken}`);const a=yield fetch(`${n}/y/download`,{body:Gn.stringify({downloadedRealms:r||{}}),method:"POST",headers:s,credentials:"include"});if(!a.ok)throw new Error(`Failed to download Yjs documents from server. Status: ${a.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=j(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 P(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()}}))}}(a),Ie,(function(r){return P(this,arguments,(function*(){var o,i,s,a;let c=null,l=null,u=null,d=[];function f(e){return E(this,void 0,void 0,(function*(){const r=d[d.length-1];if(d.length>0){if(!c||!l||!u)throw new Error(`Protocol error from ${n}/y/download`);const e=dr(t,l,u);yield e.bulkAdd(d),d=[]}c&&(l&&u&&r||e)&&(yield t.$syncState.update("syncState",(t=>{const n=t.yDownloadedRealms||{};n[c]=e?"*":{tbl:l,prop:u,key:r.k},t.yDownloadedRealms=n})))}))}try{try{for(var p,h=!0,y=j(r);!(o=(p=yield U(y.next())).done);h=!0){a=p.value,h=!1;const e=new ye(a);for(;ve(e);)switch(be(e)){case pr:yield U(f(!0)),c=_e(e);break;case hr:yield U(f(!1)),l=_e(e),u=_e(e);break;case yr:{const t=xe(e),n=me(e);d.push({k:t,u:n});break}}yield U(f(!1))}}catch(e){i={error:e}}finally{try{h||o||!(s=y.return)||(yield U(s.call(y)))}finally{if(i)throw i.error}}yield U(f(!0))}catch(t){throw t instanceof e.DexieError||(yield U(f(!1))),t}}))}))}))}const mr="currentSyncWorker";function br(e,t,n,r){return gr.apply(this,arguments).then((t=>((null==r?void 0:r.justCheckIfNeeded)||e.syncStateChangedEvent.next({phase:"in-sync"}),t))).catch((o=>E(this,void 0,void 0,(function*(){return(null==r?void 0:r.justCheckIfNeeded)?Promise.reject(o):rr&&(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 br(e,t,n,Object.assign(Object.assign({},r),{retryImmediatelyOnFetchError:!1}))):(yield e.$syncState.update("syncState",{timestamp:new Date,error:""+o}),e.syncStateChangedEvent.next({phase:rr?"error":"offline",error:new Error(""+(null==o?void 0:o.message)||o)}),Promise.reject(o))}))))}function gr(e,t,n,{isInitialSync:r,cancelToken:o,justCheckIfNeeded:i,purpose:s}={isInitialSync:!1}){var a;return E(this,void 0,void 0,(function*(){if(!(null===(a=e.cloud.options)||void 0===a?void 0:a.databaseUrl))throw new Error("Internal error: sync must not be called when no databaseUrl is configured");const{databaseUrl:c}=t,l=yield e.getCurrentUser(),u=l.isLoggedIn?vn(e):[],d=u.map((t=>e.table(mn(t.name)))),f=yield e.getPersistedSyncState(),p=!r&&l.isLoggedIn,h=p?function(e,t){const n=(null==t?void 0:t.syncedTables)||[];return vn(e).filter((e=>!n.includes(e.name)))}(e,f):[];nr(o);const y=h.length>0;if(y){if(i)return!0;yield e.transaction("rw",h,(e=>E(this,void 0,void 0,(function*(){e.idbtrans.disableChangeTracking=!0,e.idbtrans.disableAccessControl=!0,yield function(e,t,n){return E(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!==nn.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!==nn.userId||(e.owner=t.userId)})):yield n.toCollection().modify((e=>{e.realmId&&r.has(e.realmId)||(e.owner&&e.owner!==nn.userId||(e.owner=t.userId),e.realmId&&e.realmId!==nn.userId||(e.realmId=t.userId))})))}))}(h,l,null==f?void 0:f.realms)})))),nr(o)}const[v,m,b,{yMessages:g,lastUpdateIds:_}]=yield e.transaction("r",e.tables,(()=>E(this,void 0,void 0,(function*(){const t=yield e.getPersistedSyncState(),r=yield e.$baseRevs.toArray();let i=yield wn(d);const s=yield function(e,t){return E(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=ur(e),s=e.table(t.updatesTable),a=yield s.get(cr),c=(null==a?void 0:a.unsentFrom)||1,l=(null==a?void 0:a.receivedUntil)||0,u=Math.min(c,l+1),d=yield lr(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,u);if(nr(o),y){const e=[...(null==f?void 0:f.realms)||[],...(null==f?void 0:f.inviteRealms)||[]],a=yield function(e,t,n,r){return E(this,void 0,void 0,(function*(){const o=`upload-${kn(8)}`;if(t.isLoggedIn&&e.length>0){const i=new Set(r||[]);return(yield Promise.all(e.map((e=>E(this,void 0,void 0,(function*(){const{extractKey:r}=e.core.schema.primaryKey;if(!r)return{table:e.name,muts:[]};const s=n[e.name],a=(null==s?void 0:s.generatedGlobalId)?e.filter((e=>{return r(e),!i.has(e.realmId||"")&&(t=r(e),!(n=null==s?void 0:s.idPrefix)||"string"==typeof t&&t.startsWith(n));var t,n})):e.filter((e=>{const t=r(e);return!i.has(e.realmId||"")&&B(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[]}))}(h,l,n,e);return nr(o),i=i.concat(a),[i,t,r,s]}return[i,t,r,s]})))),w=v.some((e=>e.muts.some((e=>e.keys.length>0))))||g.some((e=>"u-c"===e.type));if(i)return w;if("push"===s&&!w)return!1;const k=ir(v,null==m?void 0:m.latestRevisions),S=(null==m?void 0:m.clientIdentity)||R(16);nr(o);const x=yield tr(v,g,m,b,e,c,n,S,l),{done:I,newSyncState:O}=yield e.transaction("rw",e.tables,(t=>E(this,void 0,void 0,(function*(){t.idbtrans.disableChangeTracking=!0,t.idbtrans.disableAccessControl=!0;for(const e of Object.keys(n))x.schema[e]&&(n[e]=x.schema[e]);yield e.$syncState.put(n,"schema");const r=yield wn(d,0,{since:k});for(const t of d){const n=bn(t.name);if(r.some((e=>e.table===n&&e.muts.length>0))){if(k[n]){const r=k[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()])}ir(r,k),yield or(e,n,k,x.serverRevision);const o=yield e.getPersistedSyncState();yield function(e,t,n){return E(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=vn(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){const t={};for(const e of o)t[`yDownloadedRealms.${e}`]=void 0;yield e.$syncState.update("syncState",t)}}))}(e,x,o);const i=o||{syncedTables:[],latestRevisions:{},realms:[],inviteRealms:[],clientIdentity:S};p&&(i.syncedTables=u.map((e=>e.name)).concat(h.map((e=>e.name)))),i.latestRevisions=k,i.remoteDbId=x.dbId,i.initiallySynced=!0,i.realms=x.realms,i.inviteRealms=x.inviteRealms,i.serverRevision=x.serverRevision,i.timestamp=new Date,delete i.error;const s=_r(x.changes,r);if(yield ar(s,e),x.yMessages){const t=yield fr(x.yMessages,e);yield function(e,t,n,r){var o,i,s,a,c;return E(this,void 0,void 0,(function*(){const l={};for(const[t,n]of Object.entries(e))null!==(o=l[t])&&void 0!==o||(l[t]={}),l[t].unsentFrom=n+1;for(const[e,n]of Object.entries(t))null!==(i=l[e])&&void 0!==i||(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],o=null!==(s=null==t?void 0:t.unsentFrom)&&void 0!==s?s:1,i=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,(()=>E(this,void 0,void 0,(function*(){const t=yield n.table(e).get(cr);t?(t.unsentFrom=Math.max(o,t.unsentFrom||1),t.receivedUntil=Math.max(i,t.receivedUntil||0),t.serverRev=r,yield n.table(e).put(t)):yield n.table(e).add({i:cr,unsentFrom:o,receivedUntil:i,serverRev:r})}))))}}))}(_,t,e,x.serverRevision)}return e.$syncState.put(i,"syncState"),{done:0===r.length,newSyncState:i}}))));if(!I)return yield er(e),yield gr(e,t,n,{isInitialSync:r,cancelToken:o});const T=Object.values(n).some((e=>{var t;return null===(t=e.yProps)||void 0===t?void 0:t.length})),A=!!x.yMessages;return T&&A&&(yield vr(e,c,O)),e.syncCompleteEvent.next(),!1}))}function _r(e,t){const n={};W(n,e);const r={};return W(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))L(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=R(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 wr=10,kr=1e4,Sr=1e3;function xr(t){const n=[],r=new u(!0),o=new u(null);let i=!1,a=new Array(wr).fill(0);return o.subscribe((()=>E(this,void 0,void 0,(function*(){if(!i&&n.length>0){i=!0,a.shift(),a.push(Date.now()),r.next(!1);try{yield function(){var r,o,i,a,c,l;return E(this,void 0,void 0,(function*(){for(;n.length>0;){const u=n.shift();try{yield s(t.cloud.syncState.pipe(Lt((({phase:e})=>"in-sync"===e||"error"===e))));const n=t.cloud.persistedSyncState.value;if(!u)continue;switch(u.type){case"token-expired":const s=t.cloud.currentUser.value,d=yield Qt(t.cloud.options.databaseUrl,s);yield t.table("$logins").update(s.userId,{accessToken:d.accessToken,accessTokenExpiration:d.accessTokenExpiration,claims:d.claims,license:d.license,data:d.data});break;case"realm-added":(null===(r=null==n?void 0:n.realms)||void 0===r?void 0:r.includes(u.realm))||(null===(o=null==n?void 0:n.inviteRealms)||void 0===o?void 0:o.includes(u.realm))||(yield t.cloud.sync({purpose:"pull",wait:!0}));break;case"realm-accepted":(null===(i=null==n?void 0:n.realms)||void 0===i?void 0:i.includes(u.realm))||(yield t.cloud.sync({purpose:"pull",wait:!0}));break;case"realm-removed":((null===(a=null==n?void 0:n.realms)||void 0===a?void 0:a.includes(u.realm))||(null===(c=null==n?void 0:n.inviteRealms)||void 0===c?void 0:c.includes(u.realm)))&&(yield t.cloud.sync({purpose:"pull",wait:!0}));break;case"realms-changed":yield t.cloud.sync({purpose:"pull",wait:!0});break;case"changes":if("error"===(null===(l=t.cloud.syncState.value)||void 0===l?void 0:l.phase)){Vt(t,"pull");break}yield t.transaction("rw",t.dx.tables,(n=>E(this,void 0,void 0,(function*(){n.idbtrans.disableChangeTracking=!0,n.idbtrans.disableAccessControl=!0;const[r,o,i]=yield Promise.all([t.getSchema(),t.getPersistedSyncState(),t.getCurrentUser()]);if(!o||!r||!i)return;if(u.baseRev!==o.serverRevision)return void("string"!=typeof u.baseRev||"bigint"!=typeof o.serverRevision&&"object"!=typeof o.serverRevision||Vt(t,"pull"));if((yield e.waitFor(yn(o)))!==u.realmSetHash)return void Vt(t,"pull");let s=[];if(i.isLoggedIn){const e=vn(t).map((e=>t.table(mn(e.name))));s=yield wn(e)}if(u.changes.length>0){const e=_r(u.changes,s);yield ar(e,t)}o.latestRevisions=ir(s,o.latestRevisions),o.serverRevision=u.newRev,yield or(t,r,o.latestRevisions,u.newRev),yield t.$syncState.put(o,"syncState")}))))}}catch(e){}}}))}()}finally{a[a.length-1]-a[0]<kr&&(yield new Promise((e=>setTimeout(e,Sr)))),i=!1,r.next(!0)}}})))),{enqueue:function(e){n.push(e),o.next(null)},readyToServe:r}}const Ir=new WeakMap,Er={members:"@id, [userId+realmId], [email+realmId], realmId",roles:"[realmId+name]",realms:"@realmId",$jobs:"",$syncState:"",$baseRevs:"[tableName+clientRev]",$logins:"claims.sub, lastLogin"};let Or=0;function Tr(e){"vip"in e&&(e=e.vip);let t=Ir.get(e.cloud);if(!t){const n=new d;let r=new hn(`syncstatechanged-${e.name}`),o=new hn(`synccomplete-${e.name}`);n.id=++Or;let i=!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 i},localSyncEvent:n,get syncStateChangedEvent(){return r},get syncCompleteEvent(){return o},dx:e};const s={getCurrentUser:()=>t.$logins.toArray().then((e=>e.find((e=>e.isLoggedIn))||nn)),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){i=e},reconfigure(){r=new hn(`syncstatechanged-${e.name}`),o=new hn(`synccomplete-${e.name}`)}};Object.assign(t,s),t.messageConsumer=xr(t),t.messageProducer=new d,Ir.set(e.cloud,t)}return t}const Ar="undefined"!=typeof InstallTrigger,Cr="undefined"!=typeof navigator&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\/|Edge\//.test(navigator.userAgent),Ur=Cr?[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]:NaN,Pr=Cr&&Ur<=605||Ar,jr="undefined"!=typeof self&&"clients"in self&&!self.document;function $r(){throw new e.SchemaError("Version increment needed to allow dexie-cloud change tracking")}const{toString:Dr}={};function Lr(e){return Dr.call(e).slice(8,-1)}function Rr(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 Nr=/b|c|d|f|g|h|j|k|l|m|n|p|q|r|s|t|v|x|y|z/i;let Br=0;function Mr(e,t){const n=new Uint8Array(18),r=new Uint8Array(n.buffer,0,6),o=Date.now();Br>=o?++Br:Br=o,r[0]=Br/1099511627776,r[1]=Br/4294967296,r[2]=Br/16777216,r[3]=Br/65536,r[4]=Br/256,r[5]=Br;const i=new Uint8Array(n.buffer,6);crypto.getRandomValues(i);return e+$n(new Uint8Array(n.buffer))+(t||"")}function Fr(t){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;if(n.trans.disableChangeTracking)return o.mutate(n);if("add"===n.type||"put"===n.type){const a=null===(i=t.cloud.schema)||void 0===i?void 0:i[r];if(null==a?void 0:a.generatedGlobalId){if((null===(s=t.cloud.options)||void 0===s?void 0:s.databaseUrl)&&!t.initiallySynced){const e=Rr(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=Rr(o.schema.primaryKey,n);return a.forEach(((c,l)=>{if(void 0===c){const r=n.values[l].realmId||t.cloud.currentUserId,c=r.substr(r.length-3);a[l]=Mr(i,c),o.schema.primaryKey.outbound||(s||(s=n.values.slice()),s[l]=e.deepClone(s[l]),e.setByKeyPath(s[l],o.schema.primaryKey.keyPath,a[l]))}else if("string"!=typeof c||!c.startsWith(i)&&!c.startsWith("#"+i))throw new e.ConstraintError(`The ID "${c}" is not valid for table "${r}". Primary '@' keys requires the key to be prefixed with "${i}" (or "#${i}).\nIf you want to generate IDs programmatically, remove '@' from the schema to get rid of this constraint. Dexie Cloud supports custom IDs as long as they are random and globally unique.`)})),o.mutate(Object.assign(Object.assign({},n),{keys:a,values:s||n.values}))}(n,a.idPrefix)}if(null==a?void 0:a.markedForSync){Rr(o.schema.primaryKey,n).forEach(((t,n)=>{if(!B(t)){const n=Array.isArray(t)?t.map(Lr).join(","):Lr(t);throw new e.ConstraintError(`Invalid primary key type ${n} for table ${r}. Tables marked for sync has primary keys of type string or Array of string (and optional numbers)`)}}))}}return o.mutate(n)}})}})}}let Wr=0;function Vr(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 Kr(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 Hr=new u(new Set);function zr(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 qr({currentUserObservable:e,db:t}){return{stack:"dbcore",name:"MutationTrackingMiddleware",level:1,create:n=>{const r=n.schema.tables.filter((e=>!/^\$/.test(e.name)));let o;try{o=new Map(r.map((e=>[e.name,n.table(`$${e.name}_mutations`)])))}catch(e){$r()}return Object.assign(Object.assign({},n),{transaction:(r,o)=>{let i;if("readwrite"===o){const e=r.filter((e=>{var n,r;return null===(r=null===(n=t.cloud.schema)||void 0===n?void 0:n[e])||void 0===r?void 0:r.markedForSync})).map((e=>mn(e)));i=n.transaction([...r,...e],o)}else i=n.transaction(r,o);if("readwrite"===o){i.txid=kn(16),i.opCount=0,i.currentUser=e.value,Hr.value.add(i),Hr.next(Hr.value);const n=()=>{i.removeEventListener("complete",r),i.removeEventListener("error",n),i.removeEventListener("abort",n),Hr.value.delete(i),Hr.next(Hr.value)},r=()=>{i.mutationsAdded&&!zr(t)&&Vt(t,"push"),n()};i.addEventListener("complete",r),i.addEventListener("error",n),i.addEventListener("abort",n)}return i},table:e=>{const r=n.table(e);if(/^\$/.test(e))return e.endsWith("_mutations")?Object.assign(Object.assign({},r),{mutate:e=>("add"!==e.type&&"put"!==e.type||(e.trans.mutationsAdded=!0),r.mutate(e))}):"$logins"===e?Object.assign(Object.assign({},r),{mutate:e=>r.mutate(e).then((t=>(e.trans.mutationsAdded=!0,t))).catch((e=>Promise.reject(e)))}):r;const{schema:i}=r,s=o.get(e);return function(e){const t="$lock"+ ++Wr;return Object.assign(Object.assign({},e),{count:Vr(e.count,t),get:Vr(e.get,t),getMany:Vr(e.getMany,t),openCursor:Vr(e.openCursor,t),query:Vr(e.query,t),mutate:Kr(e.mutate,t)})}(Object.assign(Object.assign({},r),{mutate:n=>{var o,s,c;const l=n.trans;return l.txid?l.disableChangeTracking?r.mutate(n):(null===(s=null===(o=t.cloud.schema)||void 0===o?void 0:o[e])||void 0===s?void 0:s.markedForSync)&&(null===(c=l.currentUser)||void 0===c?void 0:c.isLoggedIn)?"deleteRange"===n.type?r.query({query:{range:n.range,index:i.primaryKey},trans:n.trans,values:!1}).then((e=>a({type:"delete",keys:e.result,trans:n.trans,criteria:{index:null,range:n.range}}))):a(n):r.mutate(n):r.mutate(n)}}));function a(e){const t=e.trans;t.mutationsAdded=!0;const{txid:n,currentUser:{userId:o}}=t,{type:a}=e,c=++t.opCount;return r.mutate(e).then((r=>{const{numFailures:l,failures:u}=r;let d="delete"===a?e.keys:r.results,f="values"in e?e.values:[],p="updates"in e&&e.updates;l&&(d=d.filter(((e,t)=>!u[t])),f=f.filter(((e,t)=>!u[t])));const h=Date.now(),y="criteria"in e&&e.criteria?Object.assign(Object.assign({},e.criteria),{index:e.criteria.index===i.primaryKey.keyPath?null:e.criteria.index}):void 0,v="delete"===e.type?{type:"delete",ts:h,opNo:c,keys:d,criteria:y,txid:n,userId:o}:"add"===e.type?{type:"insert",ts:h,opNo:c,keys:d,txid:n,userId:o,values:f}:y&&e.changeSpec?{type:"modify",ts:h,opNo:c,keys:d,criteria:y,changeSpec:e.changeSpec,txid:n,userId:o}:p?{type:"update",ts:h,opNo:c,keys:p.keys,changeSpecs:p.changeSpecs,txid:n,userId:o}:{type:"upsert",ts:h,opNo:c,keys:d,values:f,txid:n,userId:o};return"isAdditionalChunk"in e&&e.isAdditionalChunk&&(v.isAdditionalChunk=!0),d.length>0||y?s.mutate({type:"add",trans:t,values:[v]}).then((()=>r)):r}))}}})}}}function Jr(e,t){return function(n,r){var o;const i=Object.assign(Object.assign({},Er),n);Object.keys(Er).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=Er[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(Er[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)(Nr.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}}const Gr=new u(!0),Yr=new u(!0);Gr.pipe(Bt((e=>e?p(!0):p(!1).pipe(jt(2e4)))),$t()).subscribe(Yr);const Xr="undefined"!=typeof document?f(document,"visibilitychange"):p({}),Zr=Xr.pipe(Lt((()=>"hidden"===document.visibilityState))),Qr=Xr.pipe(Lt((()=>"visible"===document.visibilityState))),eo="undefined"!=typeof window?h(Qr,f(window,"mousedown"),f(window,"mousemove"),f(window,"keydown"),f(window,"wheel"),f(window,"touchmove")):p({});"undefined"!=typeof document&&h(p(!0),Zr,eo).pipe(It((()=>"visible"===document.visibilityState)),Mt((e=>{Gr.value!==e&&Gr.next(e)})),Bt((e=>e?p(0).pipe(jt(16e4),Mt((()=>Gr.next(!1)))):p(0)))).subscribe((()=>{}));class to extends Error{constructor(){super(...arguments),this.name="TokenExpiredError"}}function no(t){var n,r;if(!(null===(n=t.cloud.options)||void 0===n?void 0:n.awarenessProtocol))throw new e.MissingAPIError('awarenessProtocol was not provided to db.cloud.configure(). Please import * as awarenessProtocol from "y-protocols/awareness".');return null===(r=t.cloud.options)||void 0===r?void 0:r.awarenessProtocol}const ro=new WeakMap;class oo extends l{constructor(e,t,n,r,o,i,s){super((a=>new so(e,t,n,r,s,a,o,i)))}}let io=0;class so extends b{constructor(e,t,n,r,o,i,s,a){super((()=>this.teardown())),this.id=++io,this.subscriptions=new Set,this.reconnecting=!1,this.db=e,this.databaseUrl=e.cloud.options.databaseUrl,this.rev=t,this.realmSetHash=n,this.clientIdentity=r,this.user=o,this.subscriber=i,this.lastUserActivity=new Date,this.messageProducer=s,this.webSocketStatus=a,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 E(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 to);this.webSocketStatus.next("connecting"),this.pinger=setInterval((()=>E(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 t=new URL(this.databaseUrl);t.protocol="http:"===t.protocol?"ws":"wss";const n=new URLSearchParams;if(this.subscriber.closed)return;n.set("v","2"),n.set("rev",this.rev),n.set("realmsHash",this.realmSetHash),n.set("clientId",this.clientIdentity),this.user.accessToken&&n.set("token",this.user.accessToken);const i=this.ws=new WebSocket(`${t}/changes?${n}`);i.binaryType="arraybuffer",i.onclose=e=>{this.pinger&&this.reconnect()},i.onmessage=e=>{if(this.pinger){this.lastServerActivity=new Date;try{const t="string"==typeof e.data?Gn.parse(e.data):function(e){const t=new ye(e),n=_e(t),r=_e(t),o=_e(t);switch(n){case"u-ack":case"u-reject":return{type:n,table:r,prop:o,i:Number(ke(t))};default:{const e=xe(t);switch(n){case"in-sync":case"doc-close":return{type:n,table:r,prop:o,k:e};case"aware":case"u-s":return{type:n,table:r,prop:o,k:e,u:me(t)};case"doc-open":return{type:n,table:r,prop:o,k:e,serverRev:xe(t),sv:xe(t)};case"sv":return{type:n,table:r,prop:o,k:e,sv:me(t)};case"u-c":return{type:n,table:r,prop:o,k:e,u:me(t),i:Number(ke(t))};default:throw new TypeError(`Unknown message type: ${n}`)}}}}(new Uint8Array(e.data));if("error"===t.type)throw new Error(`Error message from dexie-cloud: ${t.error}`);if("rev"===t.type)this.rev=t.rev;else if("aware"===t.type){const e=r.getDocCache(this.db.dx).find(t.table,t.k,t.prop);if(e){const n=(e=>ro.get(e))(e);if(n){no(this.db).applyAwarenessUpdate(n,t.u,"server")}}}else"u-ack"===t.type||"u-reject"===t.type||"u-s"===t.type||"in-sync"===t.type?fr([t],this.db):"pong"!==t.type&&this.subscriber.next(t)}catch(e){this.subscriber.error(e)}}};try{let e=!1;yield new Promise(((t,n)=>{i.onopen=n=>{e=!0,t(null)},i.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?null===(t=this.ws)||void 0===t||t.send(Gn.stringify(e)):null===(n=this.ws)||void 0===n||n.send(de(e)))}))),this.user.isLoggedIn&&!zr(this.db)&&this.subscriptions.add(function(e){const t=_n(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 h(...t.map((({table:t,ydocProp:n,updatesTable:r})=>{const i=e.table(r);return a(i.get(cr)).pipe(y((e=>{let r=(null==e?void 0:e.unsentFrom)||1;return a(o((()=>E(this,void 0,void 0,(function*(){return(yield lr(i,r)).filter((e=>e.f&&1&e.f)).map((e=>({type:"u-c",table:t,prop:n,k:e.k,u:e.u,i:e.i})))}))))).pipe(v((e=>{e.length>0&&(r=e.at(-1).i+1)})))})))}))).pipe(m((e=>e)),v((e=>{})))}(this.db).subscribe(this.db.messageProducer))}catch(e){this.pauseUntil=new Date(Date.now()+6e4)}}))}}class ao extends Error{constructor(e){super("expired"===e?"License expired":"deactivated"===e?"User deactivated":"Invalid license"),this.name="InvalidLicenseError",e&&(this.license=e)}}function co(e){return E(this,void 0,void 0,(function*(){var e;yield(e=3e3,new Promise((t=>setTimeout(t,e)))),yield s(eo)}))}function lo(e){var t;return E(this,void 0,void 0,(function*(){return!(!(null===(t=e.cloud.options)||void 0===t?void 0:t.databaseUrl)||!e.cloud.schema)&&(yield br(e,e.cloud.options,e.cloud.schema,{justCheckIfNeeded:!0}))}))}const uo=new WeakMap;function fo(e,t,n,r){const o=uo.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 fo(e,t,n,r)}))}}const i=function(){return E(this,void 0,void 0,(function*(){try{if(yield er(e),e.cloud.isServiceWorkerDB)yield br(e,t,n,r);else{if(e.cloud.usingServiceWorker)throw $(!1),new Error("Internal _syncIfPossible() - invalid precondition - should not have been called.");yield function(e,t,n){return"undefined"!=typeof navigator&&navigator.locks?navigator.locks.request(e.name+"|"+t,(()=>n())):n()}(e,mr,(()=>br(e,t,n,r)))}uo.delete(e)}catch(t){throw uo.delete(e),t}}))}();return uo.set(e,{promise:i,pull:"push"!==(null==r?void 0:r.purpose)}),i}const po=6e4;function ho(e,t,n){let r=null,o={cancelled:!1},i=null,s=null;function a(r,l=1){setTimeout((()=>{i&&clearTimeout(i);const u="pull"===s?"pull":r;i=null,s=null,fo(e,t,n,{cancelToken:o,retryImmediatelyOnFetchError:!0,purpose:u}).catch((e=>{if(o.cancelled)c();else if(l<3){const e=s&&"pull"===s?"pull":r,t=setTimeout((()=>a(e,l+1)),[0,5,15][l]*po);i&&clearTimeout(i),i=t,s=e}}))}),0)}const c=()=>{o.cancelled=!0,r&&r.unsubscribe()};return{start:()=>{r=e.localSyncEvent.subscribe((({purpose:e})=>{try{a(e||"pull")}catch(e){}}))},stop:c}}function yo(e,t){if(e&&t&&t.unsyncedTables)for(const n of t.unsyncedTables)e[n]&&(e[n].markedForSync=!1)}var vo,mo,bo,go,_o,wo={},ko=[],So=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function xo(e,t){for(var n in t)e[n]=t[n];return e}function Io(e){var t=e.parentNode;t&&t.removeChild(e)}function Eo(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?vo.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 Oo(e,s,r,o,null)}function Oo(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?++bo:o};return null==o&&null!=mo.vnode&&mo.vnode(i),i}function To(e){return e.children}function Ao(e,t){this.props=e,this.context=t}function Co(e,t){if(null==t)return e.__?Co(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?Co(e):null}function Uo(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 Uo(e)}}function Po(e){(!e.__d&&(e.__d=!0)&&go.push(e)&&!jo.__r++||_o!==mo.debounceRendering)&&((_o=mo.debounceRendering)||setTimeout)(jo)}function jo(){for(var e;jo.__r=go.length;)e=go.sort((function(e,t){return e.__v.__b-t.__v.__b})),go=[],e.some((function(e){var t,n,r,o,i,s;e.__d&&(i=(o=(t=e).__v).__e,(s=t.__P)&&(n=[],(r=xo({},o)).__v=o.__v+1,Fo(s,o,r,t.__n,void 0!==s.ownerSVGElement,null!=o.__h?[i]:null,n,null==i?Co(o):i,o.__h),Wo(n,o),o.__e!=i&&Uo(o)))}))}function $o(e,t,n,r,o,i,s,a,c,l){var u,d,f,p,h,y,v,m=r&&r.__k||ko,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?Oo(null,p,null,null,p):Array.isArray(p)?Oo(To,{children:p},null,null,null):p.__b>0?Oo(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}Fo(e,p,f=f||wo,o,i,s,a,c,l),h=p.__e,(d=p.ref)&&f.ref!=d&&(v||(v=[]),f.ref&&v.push(f.ref,null,p),v.push(d,p.__c||h,p)),null!=h?(null==y&&(y=h),"function"==typeof p.type&&p.__k===f.__k?p.__d=c=Do(p,c,e):c=Lo(e,p,f,m,h,c),"function"==typeof n.type&&(n.__d=c)):c&&f.__e==c&&c.parentNode!=e&&(c=Co(f))}for(n.__e=y,u=b;u--;)null!=m[u]&&("function"==typeof n.type&&null!=m[u].__e&&m[u].__e==n.__d&&(n.__d=Co(r,u+1)),Ho(m[u],m[u]));if(v)for(u=0;u<v.length;u++)Ko(v[u],v[++u],v[++u])}function Do(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?Do(r,t,n):Lo(n,r,r,o,r.__e,t));return t}function Lo(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 Ro(e,t,n){"-"===t[0]?e.setProperty(t,n):e[t]=null==n?"":"number"!=typeof n||So.test(t)?n:n+"px"}function No(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||Ro(e.style,t,"");if(n)for(t in n)r&&n[t]===r[t]||Ro(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?Mo:Bo,i):e.removeEventListener(t,i?Mo:Bo,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 Bo(e){this.l[e.type+!1](mo.event?mo.event(e):e)}function Mo(e){this.l[e.type+!0](mo.event?mo.event(e):e)}function Fo(e,t,n,r,o,i,s,a,c){var l,u,d,f,p,h,y,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=mo.__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?y=(u=t.__c=n.__c).__=u.__E:("prototype"in k&&k.prototype.render?t.__c=u=new k(v,b):(t.__c=u=new Ao(v,b),u.constructor=k,u.render=zo),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=xo({},u.__s)),xo(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,h)}))}if(u.context=b,u.props=v,u.__v=t,u.__P=e,g=mo.__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=xo(xo({},r),u.getChildContext())),d||null==u.getSnapshotBeforeUpdate||(h=u.getSnapshotBeforeUpdate(f,p)),w=null!=l&&l.type===To&&null==l.key?l.props.children:l,$o(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),y&&(u.__E=u.__=null),u.__e=!1}else null==i&&t.__v===n.__v?(t.__k=n.__k,t.__e=n.__e):t.__e=Vo(n.__e,t,n,r,o,i,s,c);(l=mo.diffed)&&l(t)}catch(e){t.__v=null,(c||null!=i)&&(t.__e=a,t.__h=!!c,i[i.indexOf(a)]=null),mo.__e(e,t,n)}}function Wo(e,t){mo.__c&&mo.__c(t,e),e.some((function(t){try{e=t.__h,t.__h=[],e.some((function(e){e.call(t)}))}catch(e){mo.__e(e,t.__v)}}))}function Vo(e,t,n,r,o,i,s,a){var c,l,u,d=n.props,f=t.props,p=t.type,h=0;if("svg"===p&&(o=!0),null!=i)for(;h<i.length;h++)if((c=i[h])&&"setAttribute"in c==!!p&&(p?c.localName===p:3===c.nodeType)){e=c,i[h]=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&&vo.call(e.childNodes),l=(d=n.props||wo).dangerouslySetInnerHTML,u=f.dangerouslySetInnerHTML,!a){if(null!=i)for(d={},h=0;h<e.attributes.length;h++)d[e.attributes[h].name]=e.attributes[h].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||No(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]||No(e,i,t[i],n[i],r)}(e,f,d,o,a),u)t.__k=[];else if(h=t.props.children,$o(e,Array.isArray(h)?h:[h],t,n,r,o&&"foreignObject"!==p,i,s,i?i[0]:n.__k&&Co(n,0),a),null!=i)for(h=i.length;h--;)null!=i[h]&&Io(i[h]);a||("value"in f&&void 0!==(h=f.value)&&(h!==e.value||"progress"===p&&!h||"option"===p&&h!==d.value)&&No(e,"value",h,d.value,!1),"checked"in f&&void 0!==(h=f.checked)&&h!==e.checked&&No(e,"checked",h,d.checked,!1))}return e}function Ko(e,t,n){try{"function"==typeof e?e(t):e.current=t}catch(e){mo.__e(e,n)}}function Ho(e,t,n){var r,o;if(mo.unmount&&mo.unmount(e),(r=e.ref)&&(r.current&&r.current!==e.__e||Ko(r,null,t)),null!=(r=e.__c)){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(e){mo.__e(e,t)}r.base=r.__P=null}if(r=e.__k)for(o=0;o<r.length;o++)r[o]&&Ho(r[o],t,"function"!=typeof e.type);n||null==e.__e||Io(e.__e),e.__e=e.__d=void 0}function zo(e,t,n){return this.constructor(e,n)}function qo(e,t,n){var r,o,i;mo.__&&mo.__(e,t),o=(r="function"==typeof n)?null:n&&n.__k||t.__k,i=[],Fo(t,e=(!r&&n||t).__k=Eo(To,null,[e]),o||wo,wo,void 0!==t.ownerSVGElement,!r&&n?[n]:o?null:t.firstChild?vo.call(t.childNodes):null,i,!r&&n?n:o?o.__e:t.firstChild,r),Wo(i,e)}vo=ko.slice,mo={__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}},bo=0,Ao.prototype.setState=function(e,t){var n;n=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=xo({},this.state),"function"==typeof e&&(e=e(xo({},n),this.props)),e&&xo(n,e),null!=e&&this.__v&&(t&&this.__h.push(t),Po(this))},Ao.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),Po(this))},Ao.prototype.render=To,go=[],jo.__r=0;const Jo={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 Go({children:e,className:t}){return Eo("div",{className:t},Eo("div",{style:Jo.Darken}),Eo("div",{style:Jo.DialogOuter},Eo("div",{style:Jo.DialogInner},e)))}var Yo,Xo,Zo,Qo,ei=0,ti=[],ni=[],ri=mo.__b,oi=mo.__r,ii=mo.diffed,si=mo.__c,ai=mo.unmount;function ci(e,t){mo.__h&&mo.__h(Xo,e,ei||t),ei=0;var n=Xo.__H||(Xo.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({__V:ni}),n.__[e]}function li(e){return ei=1,function(e,t,n){var r=ci(Yo++,2);if(r.t=e,!r.__c&&(r.__=[n?n(t):vi(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=Xo,!Xo.u)){Xo.u=!0;var o=Xo.shouldComponentUpdate;Xo.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.__}(vi,e)}function ui(e){return ei=5,function(e,t){var n=ci(Yo++,7);return yi(n.__H,t)?(n.__V=e(),n.i=t,n.__h=e,n.__V):n.__}((function(){return{current:e}}),[])}function di(){for(var e;e=ti.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(pi),e.__H.__h.forEach(hi),e.__H.__h=[]}catch(t){e.__H.__h=[],mo.__e(t,e.__v)}}mo.__b=function(e){Xo=null,ri&&ri(e)},mo.__r=function(e){oi&&oi(e),Yo=0;var t=(Xo=e.__c).__H;t&&(Zo===Xo?(t.__h=[],Xo.__h=[],t.__.forEach((function(e){e.__N&&(e.__=e.__N),e.__V=ni,e.__N=e.i=void 0}))):(t.__h.forEach(pi),t.__h.forEach(hi),t.__h=[])),Zo=Xo},mo.diffed=function(e){ii&&ii(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(1!==ti.push(t)&&Qo===mo.requestAnimationFrame||((Qo=mo.requestAnimationFrame)||function(e){var t,n=function(){clearTimeout(r),fi&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,100);fi&&(t=requestAnimationFrame(n))})(di)),t.__H.__.forEach((function(e){e.i&&(e.__H=e.i),e.__V!==ni&&(e.__=e.__V),e.i=void 0,e.__V=ni}))),Zo=Xo=null},mo.__c=function(e,t){t.some((function(e){try{e.__h.forEach(pi),e.__h=e.__h.filter((function(e){return!e.__||hi(e)}))}catch(n){t.some((function(e){e.__h&&(e.__h=[])})),t=[],mo.__e(n,e.__v)}})),si&&si(e,t)},mo.unmount=function(e){ai&&ai(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.forEach((function(e){try{pi(e)}catch(e){t=e}})),t&&mo.__e(t,n.__v))};var fi="function"==typeof requestAnimationFrame;function pi(e){var t=Xo,n=e.__c;"function"==typeof n&&(e.__c=void 0,n()),Xo=t}function hi(e){var t=Xo;e.__c=e.__(),Xo=t}function yi(e,t){return!e||e.length!==t.length||t.some((function(t,n){return t!==e[n]}))}function vi(e,t){return"function"==typeof t?t(e):t}function mi({message:e,messageCode:t,messageParams:n}){return e.replace(/\{\w+\}/gi,(e=>n[e.substring(1,e.length-1)]))}function bi({title:e,type:t,alerts:n,fields:r,submitLabel:o,cancelLabel:i,onCancel:s,onSubmit:a}){const[c,l]=li({}),u=ui(null);return function(e,t){var n=ci(Yo++,4);!mo.__s&&yi(n.__H,t)&&(n.__=e,n.i=t,Xo.__h.push(n))}((()=>{var e;return null===(e=u.current)||void 0===e?void 0:e.focus()}),[]),Eo(Go,{className:"dxc-login-dlg"},Eo(To,null,Eo("h3",{style:Jo.WindowHeader},e),n.map((e=>Eo("p",{style:Jo.Alert[e.type]},mi(e)))),Eo("form",{onSubmit:e=>{e.preventDefault(),a(c)}},Object.entries(r).map((([e,{type:t,label:n,placeholder:r}],o)=>Eo("label",{style:Jo.Label,key:o},n?`${n}: `:"",Eo("input",{ref:0===o?u:void 0,type:t,name:e,autoComplete:"on",style:Jo.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)}})))))),Eo("div",{style:Jo.ButtonsDiv},Eo(To,null,Eo("button",{type:"submit",style:Jo.Button,onClick:()=>a(c)},o),i&&Eo("button",{style:Jo.Button,onClick:s},i))))}class gi extends Ao{constructor(e){super(e),this.observer=e=>this.setState({userInteraction:e}),this.state={userInteraction:void 0}}componentDidMount(){this.subscription=a(this.props.db.cloud.userInteraction).subscribe(this.observer)}componentWillUnmount(){this.subscription&&(this.subscription.unsubscribe(),delete this.subscription)}render(e,{userInteraction:t}){return t?Eo(bi,Object.assign({},t)):null}}function _i(e){const t=new WeakMap;return n=>{let r=t.get(n);return r||(r=e(n),t.set(n,r)),r}}const wi=_i((e=>new u(nn)));function ki(e,t){let n=t,r=a(e).pipe(w((e=>n=e)),k({resetOnRefCountZero:()=>S(1e3)}));const o=new l((e=>{let t=!1;const o=r.subscribe({next(n){t=!0,e.next(n)},error(t){e.error(t)},complete(){e.complete()}});return t||o.closed||e.next(n),o}));return o.getValue=()=>n,o}const Si=_i((e=>ki(o((()=>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})))),{}))),xi=_i((e=>ki(wi(e._novip).pipe(Bt((t=>o((()=>e.transaction("r","realms","members",(()=>Promise.all([e.members.where({userId:t.userId}).toArray(),e.realms.toArray(),t.userId]).then((([e,t,n])=>({selfMembers:e,realms:t,userId:n})))))))))),{selfMembers:[],realms:[],get userId(){return e.cloud.currentUserId}})));function Ii(...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 Ei=_i((e=>function(e,t){let n;const r=e.pipe(w((e=>n=t(e))));return r.getValue=()=>void 0!==n?n:n=t(e.getValue()),r}(ki(_([xi(e._novip),Si(e._novip)]).pipe(It((([{selfMembers:e,realms:t,userId:n},r])=>({selfMembers:e,realms:t,userId:n,globalRoles:r})))),{selfMembers:[],realms:[],userId:nn.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=_n(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:"*"}:Ii(...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 Oi{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 Ti=_i((e=>{const t=wi(e._novip).pipe(Bt((t=>o((()=>e.members.where({email:t.email||""}).toArray()))))),n=Ei(e._novip),r=xi(e._novip);return ki(_([t,r,n]).pipe(It((([t,n,r])=>{const o=(e,t)=>Object.assign(Object.assign({},e),{[t.id]:Object.assign(Object.assign({},t),{realm:r[t.realmId]})}),i=t.reduce(o,{}),s=n.selfMembers.reduce(o,i);return Object.values(s).filter((e=>!e.accepted)).map((t=>Object.assign(Object.assign({},t),{accept(){return E(this,void 0,void 0,(function*(){yield e.members.update(t.id,{accepted:new Date})}))},reject(){return E(this,void 0,void 0,(function*(){yield e.members.update(t.id,{rejected:new Date})}))}})))}))),[])}));function Ai(e){return t=>{var r;const o=t.doc,{parentTable:i}=o.meta||{};if(!(null===(r=e.cloud.schema)||void 0===r?void 0:r[i].markedForSync))return;let s;Object.defineProperty(t,"awareness",{get:()=>s||(ro.set(o,s),s=function(e,t,r){const{parentTable:o,parentId:i,parentProp:s,updatesTable:a}=t.meta,c=no(e),l=new c.Awareness(t);return l.on("update",(({added:n,updated:i,removed:a},u)=>{const d=n.concat(i).concat(a),f=e.cloud.currentUser.value;if("server"!==u&&f.isLoggedIn&&!zr(e)){const n=c.encodeAwarenessUpdate(l,d);e.messageProducer.next({type:"aware",table:o,prop:s,k:t.meta.parentId,u:n}),r.destroyed&&e.messageProducer.next({type:"doc-close",table:o,prop:s,k:t.meta.parentId})}})),l.on("destroy",(()=>{c.removeAwarenessStates(l,[t.clientID],"provider destroyed")})),(()=>{E(this,void 0,void 0,(function*(){if(r.destroyed)return;let t=!1,c=1;const l=e.cloud.webSocketStatus.subscribe((n=>{if(r.destroyed)return;t="connected"===n;const o=e.cloud.currentUser.value;"connected"===n&&o.isLoggedIn&&!zr(e)&&(++c,u().catch((e=>{})))}));function u(l){return E(this,void 0,void 0,(function*(){const l=c,u=e.table(a),d=yield u.get(cr);if(r.destroyed||c!==l||!t)return;const f=(null==d?void 0:d.receivedUntil)||0,p={type:"doc-open",table:o,prop:s,k:i,serverRev:null==d?void 0:d.serverRev},h=yield u.where("i").between(f,1/0,!1).filter((e=>0===n(e.k,i)&&0==(1&(e.f||0)))).toArray();if(!r.destroyed&&c===l&&t){if(h.length>0){const t=ur(e),n=t.mergeUpdatesV2(h.map((e=>e.u))),r=t.encodeStateVectorFromUpdateV2(n);p.sv=r}e.messageProducer.next(p)}}))}r.addCleanupHandler(l)}))})(),l}(e,o,t),s)})}}function Ci(e){return"rlm~"+e}function Ui(e){return e.startsWith("rlm~")?e.substr(4):null}const Pi={nameSuffix:!0};function ji(t){const n=t.name,r=wi(t),i=[];let c=!1,l=null;t.on("ready",(t=>E(this,void 0,void 0,(function*(){try{yield function(t){var n,d,b,w,k,S,x;return E(this,void 0,void 0,(function*(){y=!1;const I=Tr(t);"undefined"!=typeof window&&"undefined"!=typeof document&&((null===(n=I.cloud.options)||void 0===n?void 0:n.customLoginGui)||i.push(function(e){let t=!1;const n=document.createElement("div");return document.body?(document.body.appendChild(n),qo(Eo(gi,{db:e.vip}),n)):addEventListener("DOMContentLoaded",(()=>{t||(document.body.appendChild(n),qo(Eo(gi,{db:e.vip}),n))})),{unsubscribe(){try{n.remove()}catch(e){}t=!0},get closed(){return t}}}(t))),I.cloud.isServiceWorkerDB||i.push(function(e){let t=e.cloud.webSocketStatus.value;const n=e.cloud.webSocketStatus.pipe(Bt((e=>{const n=t;t=e;const r=p(e);switch(e){case"disconnected":return Gr.value?r.pipe(Tt(500)):r;case"connecting":return"not-started"===n||"error"===n?r:r.pipe(Tt(4e3));default:return r}})));return _([n,e.syncStateChangedEvent.pipe(Nt({phase:"initial"})),wi(e.dx._novip),Yr]).pipe(It((([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:rr?l:"offline",license:"ok"}})))}(I).subscribe(t.cloud.syncState)),i.push(I.syncCompleteEvent.subscribe(m)),I.tables.every((e=>e.core))||$r();const O="serviceWorker"in navigator?yield navigator.serviceWorker.getRegistrations():[],[T,A]=yield I.transaction("rw",I.$syncState,(()=>E(this,void 0,void 0,(function*(){var e,t;const{options:n,schema:r}=I.cloud,[o,i,s]=yield Promise.all([I.getOptions(),I.getSchema(),I.getPersistedSyncState()]);if(c){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 I.$syncState.put(e,"options")}}else I.cloud.options=o||null;if((null===(e=I.cloud.options)||void 0===e?void 0:e.tryUseServiceWorker)&&"serviceWorker"in navigator&&O.length>0&&!Pr?I.cloud.usingServiceWorker=!0:((null===(t=I.cloud.options)||void 0===t?void 0:t.tryUseServiceWorker)&&I.cloud.isServiceWorkerDB,I.cloud.usingServiceWorker=!1),yo(r,I.cloud.options),yo(i,I.cloud.options),r){if(!i||JSON.stringify(i)!==JSON.stringify(r)){const e=i||{};for(const[t,n]of Object.entries(r)){const r=e[t];r?(r.markedForSync=n.markedForSync,n.deleted=r.deleted,r.generatedGlobalId=n.generatedGlobalId):e[t]=Object.assign({},n)}yield I.$syncState.put(e,"schema"),Object.assign(r,e)}}else I.cloud.schema=i||null;return[null==s?void 0:s.initiallySynced,null==s?void 0:s.realms]}))));if(T&&I.setInitiallySynced(!0),function(t){var n,r;for(const o of t.tables)if(null===(r=null===(n=t.cloud.schema)||void 0===n?void 0:n[o.name])||void 0===r?void 0:r.markedForSync){if(o.schema.primKey.auto)throw new e.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 e.SchemaError(`Table ${o.name} cannot be both synced and outbound. Use db.cloud.configure({unsyncedTables: [${JSON.stringify(o.name)}]}) to blacklist it from sync`)}}(I),(null===(d=I.cloud.options)||void 0===d?void 0:d.databaseUrl)&&!T&&(yield function(e,t,n){return E(this,void 0,void 0,(function*(){yield br(e,t,n,{isInitialSync:!0})}))}(I,I.cloud.options,I.cloud.schema),I.setInitiallySynced(!0)),v(),!I.cloud.isServiceWorkerDB){i.push(o((()=>I.getCurrentUser())).subscribe(r)),i.push(o((()=>I.getPersistedSyncState())).subscribe(I.cloud.persistedSyncState)),yield s(_([r.pipe(Rt(1),Ut(1)),I.cloud.persistedSyncState.pipe(Rt(1),Ut(1))]));const e=Ai(I);I.dx.on("y",e),I.dx.once("close",(()=>{var t;null===(t=I.dx.on.y)||void 0===t||t.unsubscribe(e)}))}let C=!1;const U=yield I.getCurrentUser(),P=null===(b=I.cloud.options)||void 0===b?void 0:b.requireAuth;P&&("object"==typeof P?(!U.isLoggedIn||P.userId&&U.userId!==P.userId||P.email&&U.email!==P.email)&&(C=yield ln(I,P)):U.isLoggedIn||(C=yield ln(I))),!U.isLoggedIn||A&&A.includes(U.userId)||(C=!0),l&&l.stop(),l=null,v(),I.cloud.usingServiceWorker&&(null===(w=I.cloud.options)||void 0===w?void 0:w.databaseUrl)?(Wt(I,C?"pull":"push").catch((()=>{})),function(e){var t;return E(this,void 0,void 0,(function*(){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){}}))}(I).catch((()=>{}))):(null===(k=I.cloud.options)||void 0===k?void 0:k.databaseUrl)&&I.cloud.schema&&!I.cloud.isServiceWorkerDB&&(l=ho(I,I.cloud.options,I.cloud.schema),l.start(),Vt(I,C?"pull":"push")),v(),I.cloud.isServiceWorkerDB||i.push(f(self,"online").subscribe((()=>{I.syncStateChangedEvent.next({phase:"not-in-sync"}),zr(I)||Vt(I,"push")})),f(self,"offline").subscribe((()=>{I.syncStateChangedEvent.next({phase:"offline"})}))),!(null===(S=I.cloud.options)||void 0===S?void 0:S.databaseUrl)||(null===(x=I.cloud.options)||void 0===x?void 0:x.disableWebSocket)||jr||i.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 n=e.messageConsumer.readyToServe.pipe(Lt((e=>e)),Bt((()=>e.getPersistedSyncState())),Lt((e=>e&&e.serverRevision)),Bt((e=>E(this,void 0,void 0,(function*(){return{type:"ready",rev:e.serverRevision,realmSetHash:yield yn(e)}}))))),r=h(n,e.messageProducer);return function t(){return e.cloud.persistedSyncState.pipe(Lt((e=>null==e?void 0:e.serverRevision)),Ut(1),Bt((t=>e.cloud.currentUser.pipe(It((e=>[e,t]))))),Bt((([e,t])=>Yr.pipe(It((n=>[n?e:null,t]))))),Bt((([t,n])=>(null==t?void 0:t.isLoggedIn)&&!(null==n?void 0:n.realms.includes(t.userId))?e.cloud.persistedSyncState.pipe(Lt((e=>(null==e?void 0:e.realms.includes(t.userId))||!1)),Ut(1),It((e=>[t,e]))):new u([t,n]))),Bt((([e,t])=>E(this,void 0,void 0,(function*(){return[e,yield yn(t)]})))),$t((([e,t],[n,r])=>e===n&&t===r)),Bt((([n,o])=>{var i;return(null===(i=e.cloud.persistedSyncState)||void 0===i?void 0:i.value)?n?new oo(e,e.cloud.persistedSyncState.value.serverRevision,o,e.cloud.persistedSyncState.value.clientIdentity,r,e.cloud.webSocketStatus,n):a([]):t()})),_t((n=>"TokenExpiredError"===(null==n?void 0:n.name)?p(!0).pipe(Bt((()=>E(this,void 0,void 0,(function*(){const t=yield e.getCurrentUser(),n=yield Qt(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})})))),Bt((()=>t()))):g((()=>n)))),_t((n=>(e.cloud.webSocketStatus.next("error"),n instanceof ao?g((()=>n)):a(co()).pipe(Bt((()=>t())))))))}().subscribe({next:t=>{t&&e.messageConsumer.enqueue(t)},error:e=>{},complete:()=>{}})}(I))}))}(t)}catch(e){}}))),!0);let y=!1;function v(){if(y)throw new e.DatabaseClosedError}t.once("close",(()=>{i.forEach((e=>e.unsubscribe())),i.splice(0,i.length),y=!0,l&&l.stop(),l=null,r.next(nn)}));const m=new d;var b;t.cloud={version:"4.1.0-alpha.12",options:Object.assign({},Pi),schema:null,get currentUserId(){return r.value.userId||nn.userId},currentUser:r,syncState:new u({phase:"initial",status:"not-started"}),events:{syncComplete:m},persistedSyncState:new u(void 0),userInteraction:new u(void 0),webSocketStatus:new u("not-started"),login(e){return E(this,void 0,void 0,(function*(){const n=Tr(t);yield n.cloud.sync(),yield ln(n,e)}))},invites:Ti(t),roles:Si(t),configure(e){e=t.cloud.options=Object.assign(Object.assign({},t.cloud.options),e),c=!0,e.databaseUrl&&e.nameSuffix&&(t.name=`${n}-${function(e){const t=new URL(e);return"/"===t.pathname?t.hostname.split(".")[0]:t.pathname.split("/")[1]}(e.databaseUrl)}`,Tr(t).reconfigure()),yo(t.cloud.schema,t.cloud.options)},logout({force:e}={}){return E(this,void 0,void 0,(function*(){e?yield sn(Tr(t),{deleteUnsyncedData:!0}):yield on(Tr(t))}))},sync({wait:e,purpose:n}={wait:!0,purpose:"push"}){var r;return E(this,void 0,void 0,(function*(){void 0===e&&(e=!0);const i=Tr(t);if("ok"!==((null===(r=i.cloud.currentUser.value.license)||void 0===r?void 0:r.status)||"ok")&&(yield Xt(i)),"pull"===n){const t=i.cloud.persistedSyncState.value;if(Vt(i,n),e){const e=yield s(i.cloud.persistedSyncState.pipe(Lt((e=>null!=(null==e?void 0:e.timestamp)&&(!t||e.timestamp>t.timestamp)))));if(null==e?void 0:e.error)throw new Error("Sync error: "+e.error)}}else if(yield lo(i)){const t=i.cloud.persistedSyncState.value;Vt(i,n),e&&(yield s(a(o((()=>E(this,void 0,void 0,(function*(){const e=yield lo(i),n=yield i.getPersistedSyncState();if((null==n?void 0:n.timestamp)!==(null==t?void 0:t.timestamp)&&(null==n?void 0:n.error))throw new Error("Sync error: "+n.error);return e}))))).pipe(Lt((e=>!e)))))}}))},permissions:(e,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=Ei(e),s=t=>{const i=t[o||e.cloud.currentUserId];return i?new Oi(i.permissions,n,void 0===o||o===e.cloud.currentUserId||r===e.cloud.currentUserId):new Oi({},n,!r||r===e.cloud.currentUserId)},a=i.pipe(It(s));return a.getValue=()=>s(i.getValue()),a}(t._novip,e,n)},t.Version.prototype._parseStoresSpec=e.override(t.Version.prototype._parseStoresSpec,(e=>Jr(e,t))),t.Table.prototype.newId=function({colocateWith:e}={}){const n=e&&e.substr(e.length-3);return Mr(t.cloud.schema[this.name].idPrefix||"",n)},t.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)||""},t.use(qr({currentUserObservable:t.cloud.currentUser,db:Tr(t)})),t.use((b=Tr(t),{stack:"dbcore",name:"implicitPropSetterMiddleware",level:1,create:t=>Object.assign(Object.assign({},t),{table:n=>{const r=t.table(n);return Object.assign(Object.assign({},r),{mutate:t=>{var o,i,s,a;if(t.trans.disableChangeTracking)return r.mutate(t);const c=t.trans;if(null===(i=null===(o=b.cloud.schema)||void 0===o?void 0:o[n])||void 0===i?void 0:i.markedForSync){if("versionchange"===c.mode)return Promise.reject(new e.UpgradeError(`Dexie Cloud Addon: Cannot upgrade or populate synced table "${n}". See https://dexie.org/cloud/docs/best-practices`));if("add"===t.type||"put"===t.type){if("members"===n)for(const e of t.values)"string"==typeof e.email&&(e.email=e.email.trim().toLowerCase());for(const e of t.values){e.owner||(e.owner=c.currentUser.userId),e.realmId||(e.realmId=c.currentUser.userId);const n=null===(a=(s=r.schema.primaryKey).extractKey)||void 0===a?void 0:a.call(s,e);"string"==typeof n&&"#"===n[0]&&"put"===t.type&&(delete t.criteria,delete t.changeSpec,delete t.updates,e.$ts=Date.now())}}}return r.mutate(t)}})}})})),t.use(Fr(Tr(t)))}ji.version="4.1.0-alpha.12",e.Cloud=ji;const $i={},Di=new WeakSet,Li=new WeakMap;let Ri=null,Ni=!1,Bi=[];function Mi(e){const t=e._options.Y;if(!t)throw new Error("Y library not supplied to Dexie constructor");return t}function Fi(e,t,n){var r;(null!==(r=Bi[e])&&void 0!==r?r:Bi[e]=[]).push({parentId:t,trigger:n})}function Wi(){return E(this,void 0,void 0,(function*(){!Ni&&Bi.length>0&&(Ni=!0,Ri&&(yield Ri.catch((()=>{}))),setTimeout((()=>{Ni=!1;const e=Bi;Bi=[],Ri=function(e){return E(this,void 0,void 0,(function*(){for(const{db:t,parentId:n,trigger:r,updatesTable:o}of e){const e=yield t.table(o).where({k:n}).toArray(),i=Mi(t),s=new i.Doc;for(const t of e)i.applyUpdateV2(s,t);try{yield r(s,n)}catch(e){}}}))}(e).finally((()=>Ri=null))}),0))}))}function Vi(e,t,n){e.on("updateV2",((r,o)=>{n(e,t)}))}function Ki(e,t,n){var o,s;const a=null===(s=null===(o=e.schema.yProps)||void 0===o?void 0:o.find((e=>e.prop===t)))||void 0===s?void 0:s.updatesTable;if(!a)throw new Error(`Table ${e.name} does not have a Yjs property named ${t}`);$i[a]={trigger:n,parentTable:e.name,prop:t};const c=e.db._novip;let l=Li.get(c);l||(l=(e=>({stack:"dbcore",level:10,name:"yTriggerMiddleware",create:t=>Object.assign(Object.assign({},t),{transaction:(e,n,r)=>{const o=t.transaction(e,n,r);return o.addEventListener("complete",Wi),o},table:n=>{const o=t.table(n),s=$i[n];if(!s)return o;const{trigger:a,parentTable:c,prop:l}=s;return Object.assign(Object.assign({},o),{mutate(t){switch(t.type){case"add":for(const i of t.values){const t=o.schema.primaryKey.extractKey(i),s=r.getDocCache(e).find(c,t,l);s?Di.has(s)||(Vi(s,t,a),Di.add(s)):Fi(n,t,a)}break;case"delete":t.trans._rejecting_y_ypdate&&o.getMany({keys:t.keys,trans:t.trans,cache:"immutable"}).then((e=>{const t=new i;for(const{k:n}of e)t.addKey(n);for(const e of t)Fi(n,e,a)}))}return o.mutate(t)}})}})}))(c),Li.set(c,l)),c.use(l)}export{ji as default,Ki as defineYDocTrigger,ji as dexieCloud,Ui as getTiedObjectId,Ci as getTiedRealmId,mi as resolveText};
2
2
  //# sourceMappingURL=dexie-cloud-addon.min.js.map