dexie-cloud-addon 4.1.0-beta.44 → 4.1.0-beta.45

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