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

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