dexie-cloud-addon 4.1.0-beta.36 → 4.1.0-beta.37
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.
- package/README.md +22 -2
- package/dist/modern/dexie-cloud-addon.js +3 -3
- package/dist/modern/dexie-cloud-addon.min.js +1 -1
- package/dist/modern/service-worker.js +3 -3
- package/dist/modern/service-worker.min.js +1 -1
- package/dist/umd/dexie-cloud-addon.js +3 -3
- package/dist/umd/dexie-cloud-addon.min.js +1 -1
- package/dist/umd/service-worker.js +3 -3
- package/dist/umd/service-worker.min.js +1 -1
- package/package.json +1 -1
|
@@ -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{j(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)j(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 j(e){b(e)?e():e.unsubscribe()}E.EMPTY;var A={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&&A.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:A.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 je(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 Ae(e){return je((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="undefined"!=typeof Buffer?e=>Buffer.from(e,"base64"):e=>{const t=atob(e),n=t.length,r=new Uint8Array(n);for(var o=0;o<n;o++)r[o]=t.charCodeAt(o);return r},Re="undefined"!=typeof Buffer?e=>ArrayBuffer.isView(e)?Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("base64"):Buffer.from(e).toString("base64"):e=>{const t=ArrayBuffer.isView(e)?e:new Uint8Array(e),n=[];for(let e=0,r=t.length;e<r;e+=4096){const r=t.subarray(e,e+4096);n.push(String.fromCharCode.apply(null,r))}return btoa(n.join(""))};function Ne(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 Re(o)}))}function Be(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 Me(e){return`$${e}_mutations`}function Fe(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 We=[].concat;function Ve(e){return We.apply([],e)}function Ke(e,t){return o(this,arguments,void 0,(function*(e,t,{since:n={},limit:r=1/0}={}){const i=Ve(yield Promise.all(e.map((e=>o(this,void 0,void 0,(function*(){const t=Fe(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 He(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 ze={}.hasOwnProperty;function qe(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)qe(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 ze.call(e,t)}(e,s)||(c=e[s]={}),qe(c,a,n)}}else void 0===n?Array.isArray(e)&&!isNaN(parseInt(t))?e.splice(t,1):delete e[t]:e[t]=n}}const Je="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=Ge)=>{const n=Buffer.alloc(e);return t(n),n.toString("base64")}:()=>{throw new Error("No implementation of randomString was found")};function Ge(e){for(let t=0;t<e.length;++t)e[t]=Math.floor(256*Math.random())}function Ye(e){return"string"==typeof e||!!(Array.isArray(e)&&e.some((e=>Ye(e)))&&e.every(Qe))}function Qe(e){return"string"==typeof e||"number"==typeof e||Array.isArray(e)&&e.every(Qe)}function Xe(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))qe(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 Ze(e,t){for(const{table:n,muts:r}of t)for(const t of r)Xe(e,n,t)}const et=Math.floor,tt=Math.abs,nt=(e,t)=>e>t?e:t,rt=128,ot=127,it=Number.MAX_SAFE_INTEGER,st=Number.isInteger||(e=>"number"==typeof e&&isFinite(e)&&et(e)===e),at=Array.isArray,ct="undefined"!=typeof TextEncoder?new TextEncoder:null,lt=ct?e=>ct.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 ut="undefined"==typeof TextDecoder?null:new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});ut&&1===ut.decode(new Uint8Array).length&&(ut=null);class dt{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}}const ft=(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},pt=(e,t)=>{for(;t>ot;)ft(e,rt|ot&t),t=et(t/128);ft(e,ot&t)},yt=new Uint8Array(3e4),ht=yt.length/3,vt=ct&&ct.encodeInto?(e,t)=>{if(t.length<ht){const n=ct.encodeInto(t,yt).written||0;pt(e,n);for(let t=0;t<n;t++)ft(e,yt[t])}else mt(e,lt(t))}:(e,t)=>{const n=unescape(encodeURIComponent(t)),r=n.length;pt(e,r);for(let t=0;t<r;t++)ft(e,n.codePointAt(t))},mt=(e,t)=>{pt(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(nt(2*n,i)),e.cbuf.set(t.subarray(o)),e.cpos=i)})(e,t)},bt=(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*nt(n,t)),e.cpos=0)})(e,t);const n=new DataView(e.cbuf.buffer,e.cpos,t);return e.cpos+=t,n},gt=(e,t)=>bt(e,8).setBigUint64(0,t,!1),_t=new DataView(new ArrayBuffer(4)),wt=(e,t)=>{switch(typeof t){case"string":ft(e,119),vt(e,t);break;case"number":st(t)&&tt(t)<=2147483647?(ft(e,125),((e,t)=>{const n=(e=>0!==e?e<0:1/e<0)(t);for(n&&(t=-t),ft(e,(t>63?rt:0)|(n?64:0)|63&t),t=et(t/64);t>0;)ft(e,(t>ot?rt:0)|ot&t),t=et(t/128)})(e,t)):(n=t,_t.setFloat32(0,n),_t.getFloat32(0)===n?(ft(e,124),((e,t)=>{bt(e,4).setFloat32(0,t,!1)})(e,t)):(ft(e,123),((e,t)=>{bt(e,8).setFloat64(0,t,!1)})(e,t)));break;case"bigint":ft(e,122),((e,t)=>{bt(e,8).setBigInt64(0,t,!1)})(e,t);break;case"object":if(null===t)ft(e,126);else if(at(t)){ft(e,117),pt(e,t.length);for(let n=0;n<t.length;n++)wt(e,t[n])}else if(t instanceof Uint8Array)ft(e,116),mt(e,t);else{ft(e,118);const n=Object.keys(t);pt(e,n.length);for(let r=0;r<n.length;r++){const o=n[r];vt(e,o),wt(e,t[o])}}break;case"boolean":ft(e,t?120:121);break;default:ft(e,127)}var n};function kt(e){const t=new dt;switch(vt(t,e.type),"table"in e&&vt(t,e.table),"prop"in e&&vt(t,e.prop),e.type){case"u-ack":case"u-reject":gt(t,BigInt(e.i));break;case"outdated-server-rev":break;case"y-complete-sync-done":vt(t,e.yServerRev);break;default:switch(wt(t,e.k),e.type){case"aware":case"u-s":mt(t,e.u);break;case"doc-open":wt(t,e.serverRev),wt(t,e.sv);break;case"doc-close":break;case"sv":mt(t,e.sv);break;case"u-c":mt(t,e.u),gt(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 St=e=>new Error(e),xt=St("Unexpected end of array"),It=St("Integer out of Range");class Et{constructor(e){this.arr=e,this.pos=0}}const Ot=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,Tt(e)),At=e=>e.arr[e.pos++],Tt=e=>{let t=0,n=1;const r=e.arr.length;for(;e.pos<r;){const r=e.arr[e.pos++];if(t+=(r&ot)*n,n*=128,r<rt)return t;if(t>it)throw It}throw xt},Ut=ut?e=>ut.decode(jt(e)):e=>{let t=Tt(e);if(0===t)return"";{let n=String.fromCodePoint(At(e));if(--t<100)for(;t--;)n+=String.fromCodePoint(At(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))}},Ct=(e,t)=>{const n=new DataView(e.arr.buffer,e.arr.byteOffset+e.pos,t);return e.pos+=t,n},Pt=e=>Ct(e,8).getBigUint64(0,!1),$t=[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&rt))return o*n;const i=e.arr.length;for(;e.pos<i;){if(t=e.arr[e.pos++],n+=(t&ot)*r,r*=128,t<rt)return o*n;if(n>it)throw It}throw xt},e=>Ct(e,4).getFloat32(0,!1),e=>Ct(e,8).getFloat64(0,!1),e=>Ct(e,8).getBigInt64(0,!1),e=>!1,e=>!0,Ut,e=>{const t=Tt(e),n={};for(let r=0;r<t;r++){n[Ut(e)]=Dt(e)}return n},e=>{const t=Tt(e),n=[];for(let r=0;r<t;r++)n.push(Dt(e));return n},jt],Dt=e=>$t[127-At(e)](e);function Lt(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 Rt 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 Nt(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 Bt(e,t,...n){return Nt(e,{type:"message-alert",title:t,alerts:n,fields:{},submitLabel:"OK",cancelLabel:null})}function Mt(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 Nt(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 Ft(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 Nt(e,{type:"otp",title:"Enter OTP",alerts:r,fields:{otp:{type:"otp",label:"OTP",placeholder:"Paste OTP here"}}});return o}))}function Wt(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 Kt(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 Vt(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 Kt(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=Re(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 Rt(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 Nt(r,{type:"message-alert",title:"Authentication Alert",fields:{},alerts:e.alerts})),t}catch(t){if(t instanceof Rt)throw yield Bt(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 Bt(r,"Authentication Failed",{type:"error",messageCode:"GENERIC_ERROR",message:n,messageParams:{}}).catch((()=>{}))}throw t}}))}(n,r,i,s)}))}function Kt(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=Re(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 Rt(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:Ht}={};const zt={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 qt(...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 zt;let i=n.get(r);if(void 0!==i)return i;const s=(o=e,Ht.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:zt),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 Jt={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 Gt={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 Yt={bigint:{replace:e=>({$t:"bigint",v:""+e}),revive:e=>BigInt(e.v)}};var Qt={Date:{replace:e=>({$t:"Date",v:isNaN(e.getTime())?"NaN":e.toISOString()}),revive:({v:e})=>new Date("NaN"===e?NaN:Date.parse(e))}},Xt={Set:{replace:e=>({$t:"Set",v:Array.from(e.entries())}),revive:({v:e})=>new Set(e)}},Zt={Map:{replace:e=>({$t:"Map",v:Array.from(e.entries())}),revive:({v:e})=>new Map(e)}};const en="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof global?global:void 0;var tn=["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=en[t];return o&&new o(r.ArrayBuffer.revive({v:e},n,r))}}})),{});function nn(e){return function(e){for(var t="",n=0,r=e.length;n<r;n++)t+=sn[e[n]];return t}(Re(e))}function rn(e){return Le(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+=on[e[n]];return t}(e))}const on={"-":"=",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:"+","|":"/"},sn={};for(const e of Object.keys(on))sn[on[e]]=e;var an={ArrayBuffer:{replace:e=>({$t:"ArrayBuffer",v:nn(e)}),revive:({v:e})=>{const t=rn(e);return t.buffer.byteLength===t.byteLength?t.buffer:t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}}};class cn{constructor(e,t){this.buf=e,this.type=t}}function ln(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 un(e){const t=new Uint8Array(e.length);for(let n=0;n<e.length;++n)t[n]=e.charCodeAt(n);return t.buffer}var dn={Blob:{test:(e,t)=>"Blob"===t||e instanceof cn,replace:e=>({$t:"Blob",v:Re(e instanceof cn?e.buf:un(ln(e))),type:e.type}),revive:({type:e,v:t})=>{const n=Le(t);return void 0!==typeof Blob?new Blob([n]):new cn(n.buffer,e)}}};const fn={...Gt,...Yt,...Qt,...Xt,...Zt,...tn,...an,...dn};function pn(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 yn={undefined:{replace:()=>({$t:"undefined"}),revive:()=>{}}};const hn="function"==typeof BigInt&&"bigint"==typeof BigInt(0);class vn{toString(){return this.v}constructor(e){this.v=e}}const mn=Object.assign(Object.assign(Object.assign({},yn),hn?{}:{bigint:{test:e=>e instanceof vn,replace:e=>Object.assign({$t:"bigint"},e),revive:({v:e})=>new vn(e)}}),{PropModification:{test:t=>t instanceof e.PropModification,replace:e=>Object.assign({$t:"PropModification"},e),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)}}}),bn=qt(fn,mn),gn=function(...e){const t=qt(fn,Jt,...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 pn(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 pn(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)}}}(mn);class _n extends Error{constructor(e,t){super(t||`${e.status} ${e.statusText}`),this.httpStatus=e.status}get name(){return"HttpError"}}function wn(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=kn(i,o));const e=l.muts[r],n=JSON.stringify(t);e.keys[s]=n}else if("#"===t[0]){l===i&&(l=kn(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 kn(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 Sn=new WeakMap;function xn(e){return o(this,void 0,void 0,(function*(){var t,n;const r=(null!==(n=null===(t=Sn.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 In(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 Wt(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:wn(i.dx.core.schema,l,e),y:t};i.syncStateChangedEvent.next({phase:"pushing"});const p=yield fetch(`${s}/sync`,{method:"post",headers:o,credentials:"include",body:bn.stringify(f)});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));Sn.set(e,new Date(Date.now()+1e3*t))}else Sn.delete(e)}}(i,p),!p.ok)throw new _n(p);if("application/x-bison"===p.headers.get("content-type"))return gn.fromBinary(yield p.blob());{const e=yield p.text();return bn.parse(e)}}))}function En(t){if(null==t?void 0:t.cancelled)throw new e.AbortError("Operation was cancelled")}let On=!1;function jn(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 An(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 Tn(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 Un(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 Tn(t,r,n.changeSpecs);break;case"delete":yield t.bulkDelete(r)}}}}))}"undefined"!=typeof self&&"undefined"!=typeof navigator&&(On=navigator.onLine,self.addEventListener("online",(()=>On=!0)),self.addEventListener("offline",(()=>On=!1)));const Cn="dexie-cloud-syncer";function Pn(e,t){return e.where("i").between(t,1/0,!0).toArray()}function $n(e){const t=e.dx._options.Y;if(!t)throw new Error("Y library not supplied to Dexie constructor");return t}function Dn(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 Ln(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=Dn(n,c.table,c.prop);i[e.name]=yield e.add({k:c.k,u:c.u});break}case"u-ack":{const e=Dn(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(Cn);yield t.table(e.name).put(Object.assign(Object.assign({},n||{i:Cn}),{unsentFrom:Math.max((null==n?void 0:n.unsentFrom)||1,c.i+1)}))}))));break}case"u-reject":{const t=Dn(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 Rn=1,Nn=2,Bn=3;function Mn(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 Wt(t),a={"Content-Type":"application/json",Accept:"application/octet-stream"};s&&(a.Authorization=`Bearer ${s.accessToken}`);const c=yield fetch(`${n}/y/download`,{body:bn.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),Lt,(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=Dn(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 Et(c);for(;Ot(e);)switch(At(e)){case Rn:yield l(h(!0)),u=Ut(e);break;case Nn:yield l(h(!1)),f=Ut(e),p=Ut(e);break;case Bn:{const t=Dt(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 Fn="currentSyncWorker";function Wn(e,t,n,r){return Vn(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):On&&(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 Wn(e,t,n,Object.assign(Object.assign({},r),{retryImmediatelyOnFetchError:!1}))):(yield e.$syncState.update("syncState",{timestamp:new Date,error:""+i}),e.syncStateChangedEvent.next({phase:On?"error":"offline",error:new Error(""+(null==i?void 0:i.message)||i)}),Promise.reject(i))}))))}function Vn(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?Be(e):[],p=d.map((t=>e.table(Me(t.name)))),y=yield e.getPersistedSyncState(),h=u.isLoggedIn,v=h?function(e,t){const n=(null==t?void 0:t.syncedTables)||[];return Be(e).filter((e=>!n.includes(e.name)))}(e,y):[];En(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)})))),En(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 Ke(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=$n(e),s=e.table(t.updatesTable),a=yield s.get(Cn),c=(null==a?void 0:a.unsentFrom)||1,l=(null==a?void 0:a.receivedUntil)||0,u=Math.min(c,l+1),d=yield Pn(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(En(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-${He(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||"")&&Ye(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 En(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=An(b,null==g?void 0:g.latestRevisions),I=(null==g?void 0:g.clientIdentity)||Je(16);En(i);const E=yield In(b,w,g,_,e,l,n,I,u),{done:O,newSyncState:j}=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 Ke(p,e,{since:x});for(const t of p){const n=Fe(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()])}An(r,x),yield jn(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=Be(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=Kn(E.changes,r);if(yield Un(a,e),E.yMessages){const{receivedUntils:t,resyncNeeded:n,yServerRevision:r}=yield Ln(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(Cn);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:Cn,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 xn(e),yield Vn(e,t,n,{isInitialSync:r,cancelToken:i});const A=Object.values(n).some((e=>{var t;return null===(t=e.yProps)||void 0===t?void 0:t.length})),T=!!E.yMessages;return A&&T&&(yield Mn(e,l,j)),e.syncCompleteEvent.next(),!1}))}function Kn(e,t){const n={};Ze(n,e);const r={};return Ze(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))qe(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=Je(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 Hn=10,zn=1e4,qn=1e3;function Jn(n){const r=[],i=new t.BehaviorSubject(!0),s=new t.BehaviorSubject(null);let a=!1,c=new Array(Hn).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(je((({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 Kt(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(Ne(o)))!==d.realmSetHash)return void De(n,"pull");let s=[];if(i.isLoggedIn){const e=Be(n).map((e=>n.table(Me(e.name))));s=yield Ke(e,n)}if(d.changes.length>0){const e=Kn(d.changes,s);yield Un(e,n)}o.latestRevisions=An(s,o.latestRevisions),o.serverRevision=d.newRev,yield jn(n,r,o.latestRevisions,d.newRev),yield n.$syncState.put(o,"syncState")}))))}}catch(e){}}}))}()}finally{c[c.length-1]-c[0]<zn&&(yield new Promise((e=>setTimeout(e,qn)))),a=!1,i.next(!0)}}})))),{enqueue:function(e){r.push(e),s.next(null)},readyToServe:i}}const Gn=new WeakMap,Yn={members:"@id, [userId+realmId], [email+realmId], realmId",roles:"[realmId+name]",realms:"@realmId",$jobs:"",$syncState:"",$baseRevs:"[tableName+clientRev]",$logins:"claims.sub, lastLogin"};let Qn=0;function Xn(e){"vip"in e&&(e=e.vip);let n=Gn.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=++Qn;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=Jn(n),n.messageProducer=new t.Subject,Gn.set(e.cloud,n)}return n}const Zn=new WeakMap;class er{constructor(e,t){Zn.set(this,e),Object.assign(this,t)}static load(e,t){return e.table("$logins").get(t).then((n=>new er(e,n||{userId:t,claims:{sub:t},lastLogin:new Date(0)})))}save(){return o(this,void 0,void 0,(function*(){Zn.get(this).table("$logins").put(this)}))}}function tr(e,n){return t.firstValueFrom(t.from(e).pipe(t.filter(n)))}function nr(e){return o(this,void 0,void 0,(function*(){const t=yield rr(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 Nt(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 rr(e,{deleteUnsyncedData:!0})}}))}function rr(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 tr(e.cloud.currentUser,(e=>e.userId===f.userId)),yield e.cloud.sync({purpose:"pull",wait:!0})),n}))}function or(e,...t){globalThis.console[e](...t)}function ir(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 Wt(e),!1}const s=new er(e,{claims:{},lastLogin:new Date(0)});return yield Vt(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 Mt(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 Mt(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 Bt(t,"Token request failed",{type:"error",messageCode:"GENERIC_ERROR",message:e,messageParams:{}}).catch((()=>{})),new _n(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 Ft(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 Ft(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 _n(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 nr(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&&(or("debug","Login context property names:",Object.keys(t)),or("debug","Login context property names:",Object.keys(t)),or("debug","Login context:",t),or("debug","Login context JSON:",JSON.stringify(t)))}catch(e){}throw e}})))),yield tr(e.cloud.currentUser,(e=>e.userId===t.userId))}))}(e,s),De(e,"pull"),s.userId!==i}))}const sr="undefined"!=typeof InstallTrigger,ar="undefined"!=typeof navigator&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\/|Edge\//.test(navigator.userAgent),cr=ar?[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]:NaN,lr=ar&&cr<=605||sr,ur="undefined"!=typeof self&&"clients"in self&&!self.document;function dr(){throw new e.SchemaError("Version increment needed to allow dexie-cloud change tracking")}const{toString:fr}={};function pr(e){return fr.call(e).slice(8,-1)}function yr(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 hr=/b|c|d|f|g|h|j|k|l|m|n|p|q|r|s|t|v|x|y|z/i;let vr=0;function mr(e,t){const n=new Uint8Array(18),r=new Uint8Array(n.buffer,0,6),o=Date.now();vr>=o?++vr:vr=o,r[0]=vr/1099511627776,r[1]=vr/4294967296,r[2]=vr/16777216,r[3]=vr/65536,r[4]=vr/256,r[5]=vr;const i=new Uint8Array(n.buffer,6);crypto.getRandomValues(i);return e+nn(new Uint8Array(n.buffer))+(t||"")}function br(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=yr(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=yr(o.schema.primaryKey,n);return a.forEach(((c,l)=>{if(void 0===c){const r=n.values[l].realmId||t.cloud.currentUserId,c=r.substr(r.length-3);a[l]=mr(i,c),o.schema.primaryKey.outbound||(s||(s=n.values.slice()),s[l]=e.deepClone(s[l]),e.setByKeyPath(s[l],o.schema.primaryKey.keyPath,a[l]))}else if("string"!=typeof c||!c.startsWith(i)&&!c.startsWith("#"+i))throw new e.ConstraintError(`The ID "${c}" is not valid for table "${r}". Primary '@' keys requires the key to be prefixed with "${i}" (or "#${i}).\nIf you want to generate IDs programmatically, remove '@' from the schema to get rid of this constraint. Dexie Cloud supports custom IDs as long as they are random and globally unique.`)})),o.mutate(Object.assign(Object.assign({},n),{keys:a,values:s||n.values}))}(n,a.idPrefix)}if(null==a?void 0:a.markedForSync){yr(o.schema.primaryKey,n).forEach(((t,n)=>{if(!Ye(t)){const n=Array.isArray(t)?t.map(pr).join(","):pr(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 gr=0;function _r(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 wr(e,t){return function(n){const{readers:r,writers:o}=n.trans[t]||(n.trans[t]={writers:[],readers:[]});let i=(o.length>0?o[o.length-1].then((()=>e(n)),(()=>e(n))):r.length>0?(s=r,new Promise((e=>{0===s.length&&e([]);let t=s.length;const n=new Array(t);s.forEach(((r,o)=>Promise.resolve(r).then((e=>n[o]={status:"fulfilled",value:e}),(e=>n[o]={status:"rejected",reason:e})).then((()=>--t||e(n)))))}))).then((()=>e(n))):e(n)).finally((()=>{o.shift()}));var s;return o.push(i),i}}const kr=new t.BehaviorSubject(new Set);function Sr(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 xr({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){dr()}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=>Me(e)));i=r.transaction([...e,...t],o)}else i=r.transaction(e,o);if("readwrite"===o){i.txid=He(16),i.opCount=0,i.currentUser=t.value,kr.value.add(i),kr.next(kr.value);const e=()=>{i.removeEventListener("complete",r),i.removeEventListener("error",e),i.removeEventListener("abort",e),kr.value.delete(i),kr.next(kr.value)},r=()=>{i.mutationsAdded&&!Sr(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"+ ++gr;return Object.assign(Object.assign({},e),{count:_r(e.count,t),get:_r(e.get,t),getMany:_r(e.getMany,t),openCursor:_r(e.openCursor,t),query:_r(e.query,t),mutate:wr(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 Ir(e,t){return function(n,r){var o;const i=Object.assign(Object.assign({},Yn),n);Object.keys(Yn).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=Yn[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(Yn[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)(hr.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 Er(e,t,n){return"undefined"!=typeof navigator&&navigator.locks?navigator.locks.request(e.name+"|"+t,(()=>n())):n()}const Or=new t.BehaviorSubject(!0),jr=new t.BehaviorSubject(!0);Or.pipe(Ue((e=>e?t.of(!0):t.of(!1).pipe(Ie(2e4)))),Ee()).subscribe(jr);const Ar="undefined"!=typeof document?t.fromEvent(document,"visibilitychange"):t.of({}),Tr=Ar.pipe(je((()=>"hidden"===document.visibilityState))),Ur=Ar.pipe(je((()=>"visible"===document.visibilityState))),Cr="undefined"!=typeof window?t.merge(Ur,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),Tr,Cr).pipe(me((()=>"visible"===document.visibilityState)),Ce((e=>{Or.value!==e&&Or.next(e)})),Ue((e=>e?t.of(0).pipe(Ie(16e4),Ce((()=>Or.next(!1)))):t.of(0)))).subscribe((()=>{}));class Pr extends Error{constructor(){super(...arguments),this.name="TokenExpiredError"}}function $r(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 Dr=new WeakMap,Lr=new WeakMap;function Rr(e){let n=Lr.get(e);return n||(n=new t.Subject,Lr.set(e,n)),n}class Nr extends t.Observable{constructor(e,t,n,r,o,i,s){super((a=>new Mr(e,t,n,r,s,a,o,i)))}}let Br=0;class Mr extends t.Subscription{constructor(e,t,n,r,o,i,s,a){super((()=>this.teardown())),this.id=++Br,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 Pr);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?bn.parse(t.data):function(e){const t=new Et(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(Pt(t))};default:{const e=Dt(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:Dt(t),sv:Dt(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(Pt(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=>Dr.get(e))(t);if(e){$r(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)Ln([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&&Rr(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(bn.stringify(e))):null===(n=this.ws)||void 0===n||n.send(kt(e)))}))),this.user.isLoggedIn&&!Sr(this.db)&&this.subscriptions.add(function(n){const r=Ve(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(Cn)).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 Pn(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 Fr extends Error{constructor(e){super("expired"===e?"License expired":"deactivated"===e?"User deactivated":"Invalid license"),this.name="InvalidLicenseError",e&&(this.license=e)}}function Wr(e){return o(this,void 0,void 0,(function*(){var e;yield(e=3e3,new Promise((t=>setTimeout(t,e)))),yield t.firstValueFrom(Cr)}))}function Vr(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 Wn(e,e.cloud.options,e.cloud.schema,{justCheckIfNeeded:!0}))}))}const Kr=new WeakMap;function Hr(e,t,n,r){const i=Kr.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 Hr(e,t,n,r)}))}}const s=function(){return o(this,void 0,void 0,(function*(){try{yield xn(e),yield Er(e,Fn,(()=>Wn(e,t,n,r))),Kr.delete(e)}catch(t){throw Kr.delete(e),t}}))}();return Kr.set(e,{promise:s,pull:"push"!==(null==r?void 0:r.purpose)}),s}const zr=6e4;function qr(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,Hr(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]*zr);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 Jr(e,t){if(e&&t&&t.unsyncedTables)for(const n of t.unsyncedTables)e[n]&&(e[n].markedForSync=!1)}var Gr,Yr,Qr,Xr,Zr,eo={},to=[],no=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function ro(e,t){for(var n in t)e[n]=t[n];return e}function oo(e){var t=e.parentNode;t&&t.removeChild(e)}function io(e,t,n){var r,o,i,s={};for(i in t)"key"==i?r=t[i]:"ref"==i?o=t[i]:s[i]=t[i];if(arguments.length>2&&(s.children=arguments.length>3?Gr.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 so(e,s,r,o,null)}function so(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?++Qr:o};return null==o&&null!=Yr.vnode&&Yr.vnode(i),i}function ao(e){return e.children}function co(e,t){this.props=e,this.context=t}function lo(e,t){if(null==t)return e.__?lo(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?lo(e):null}function uo(e){var t,n;if(null!=(e=e.__)&&null!=e.__c){for(e.__e=e.__c.base=null,t=0;t<e.__k.length;t++)if(null!=(n=e.__k[t])&&null!=n.__e){e.__e=e.__c.base=n.__e;break}return uo(e)}}function fo(e){(!e.__d&&(e.__d=!0)&&Xr.push(e)&&!po.__r++||Zr!==Yr.debounceRendering)&&((Zr=Yr.debounceRendering)||setTimeout)(po)}function po(){for(var e;po.__r=Xr.length;)e=Xr.sort((function(e,t){return e.__v.__b-t.__v.__b})),Xr=[],e.some((function(e){var t,n,r,o,i,s;e.__d&&(i=(o=(t=e).__v).__e,(s=t.__P)&&(n=[],(r=ro({},o)).__v=o.__v+1,wo(s,o,r,t.__n,void 0!==s.ownerSVGElement,null!=o.__h?[i]:null,n,null==i?lo(o):i,o.__h),ko(n,o),o.__e!=i&&uo(o)))}))}function yo(e,t,n,r,o,i,s,a,c,l){var u,d,f,p,y,h,v,m=r&&r.__k||to,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?so(null,p,null,null,p):Array.isArray(p)?so(ao,{children:p},null,null,null):p.__b>0?so(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}wo(e,p,f=f||eo,o,i,s,a,c,l),y=p.__e,(d=p.ref)&&f.ref!=d&&(v||(v=[]),f.ref&&v.push(f.ref,null,p),v.push(d,p.__c||y,p)),null!=y?(null==h&&(h=y),"function"==typeof p.type&&p.__k===f.__k?p.__d=c=ho(p,c,e):c=vo(e,p,f,m,y,c),"function"==typeof n.type&&(n.__d=c)):c&&f.__e==c&&c.parentNode!=e&&(c=lo(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=lo(r,u+1)),Io(m[u],m[u]));if(v)for(u=0;u<v.length;u++)xo(v[u],v[++u],v[++u])}function ho(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?ho(r,t,n):vo(n,r,r,o,r.__e,t));return t}function vo(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 mo(e,t,n){"-"===t[0]?e.setProperty(t,n):e[t]=null==n?"":"number"!=typeof n||no.test(t)?n:n+"px"}function bo(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||mo(e.style,t,"");if(n)for(t in n)r&&n[t]===r[t]||mo(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?_o:go,i):e.removeEventListener(t,i?_o:go,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 go(e){this.l[e.type+!1](Yr.event?Yr.event(e):e)}function _o(e){this.l[e.type+!0](Yr.event?Yr.event(e):e)}function wo(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=Yr.__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 co(v,b),u.constructor=k,u.render=Eo),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=ro({},u.__s)),ro(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=Yr.__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=ro(ro({},r),u.getChildContext())),d||null==u.getSnapshotBeforeUpdate||(y=u.getSnapshotBeforeUpdate(f,p)),w=null!=l&&l.type===ao&&null==l.key?l.props.children:l,yo(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=So(n.__e,t,n,r,o,i,s,c);(l=Yr.diffed)&&l(t)}catch(e){t.__v=null,(c||null!=i)&&(t.__e=a,t.__h=!!c,i[i.indexOf(a)]=null),Yr.__e(e,t,n)}}function ko(e,t){Yr.__c&&Yr.__c(t,e),e.some((function(t){try{e=t.__h,t.__h=[],e.some((function(e){e.call(t)}))}catch(e){Yr.__e(e,t.__v)}}))}function So(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&&Gr.call(e.childNodes),l=(d=n.props||eo).dangerouslySetInnerHTML,u=f.dangerouslySetInnerHTML,!a){if(null!=i)for(d={},y=0;y<e.attributes.length;y++)d[e.attributes[y].name]=e.attributes[y].value;(u||l)&&(u&&(l&&u.__html==l.__html||u.__html===e.innerHTML)||(e.innerHTML=u&&u.__html||""))}if(function(e,t,n,r,o){var i;for(i in n)"children"===i||"key"===i||i in t||bo(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]||bo(e,i,t[i],n[i],r)}(e,f,d,o,a),u)t.__k=[];else if(y=t.props.children,yo(e,Array.isArray(y)?y:[y],t,n,r,o&&"foreignObject"!==p,i,s,i?i[0]:n.__k&&lo(n,0),a),null!=i)for(y=i.length;y--;)null!=i[y]&&oo(i[y]);a||("value"in f&&void 0!==(y=f.value)&&(y!==e.value||"progress"===p&&!y||"option"===p&&y!==d.value)&&bo(e,"value",y,d.value,!1),"checked"in f&&void 0!==(y=f.checked)&&y!==e.checked&&bo(e,"checked",y,d.checked,!1))}return e}function xo(e,t,n){try{"function"==typeof e?e(t):e.current=t}catch(e){Yr.__e(e,n)}}function Io(e,t,n){var r,o;if(Yr.unmount&&Yr.unmount(e),(r=e.ref)&&(r.current&&r.current!==e.__e||xo(r,null,t)),null!=(r=e.__c)){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(e){Yr.__e(e,t)}r.base=r.__P=null}if(r=e.__k)for(o=0;o<r.length;o++)r[o]&&Io(r[o],t,"function"!=typeof e.type);n||null==e.__e||oo(e.__e),e.__e=e.__d=void 0}function Eo(e,t,n){return this.constructor(e,n)}function Oo(e,t,n){var r,o,i;Yr.__&&Yr.__(e,t),o=(r="function"==typeof n)?null:n&&n.__k||t.__k,i=[],wo(t,e=(!r&&n||t).__k=io(ao,null,[e]),o||eo,eo,void 0!==t.ownerSVGElement,!r&&n?[n]:o?null:t.firstChild?Gr.call(t.childNodes):null,i,!r&&n?n:o?o.__e:t.firstChild,r),ko(i,e)}Gr=to.slice,Yr={__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}},Qr=0,co.prototype.setState=function(e,t){var n;n=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=ro({},this.state),"function"==typeof e&&(e=e(ro({},n),this.props)),e&&ro(n,e),null!=e&&this.__v&&(t&&this.__h.push(t),fo(this))},co.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),fo(this))},co.prototype.render=ao,Xr=[],po.__r=0;const jo={Error:{color:"red"},Alert:{error:{color:"red",fontWeight:"bold"},warning:{color:"#f80",fontWeight:"bold"},info:{color:"black"}},Darken:{position:"fixed",top:0,left:0,opacity:.5,backgroundColor:"#000",width:"100vw",height:"100vh",zIndex:150,webkitBackdropFilter:"blur(2px)",backdropFilter:"blur(2px)"},DialogOuter:{position:"fixed",top:0,left:0,width:"100vw",height:"100vh",zIndex:150,alignItems:"center",display:"flex",justifyContent:"center"},DialogInner:{position:"relative",color:"#222",backgroundColor:"#fff",padding:"30px",marginBottom:"2em",maxWidth:"90%",maxHeight:"90%",overflowY:"auto",border:"3px solid #3d3d5d",borderRadius:"8px",boxShadow:"0 0 80px 10px #666",width:"auto",fontFamily:"sans-serif"},Input:{height:"35px",width:"17em",borderColor:"#ccf4",outline:"none",fontSize:"17pt",padding:"8px"}};function Ao({children:e,className:t}){return io("div",{className:t},io("div",{style:jo.Darken}),io("div",{style:jo.DialogOuter},io("div",{style:jo.DialogInner},e)))}var To,Uo,Co,Po,$o=0,Do=[],Lo=[],Ro=Yr.__b,No=Yr.__r,Bo=Yr.diffed,Mo=Yr.__c,Fo=Yr.unmount;function Wo(e,t){Yr.__h&&Yr.__h(Uo,e,$o||t),$o=0;var n=Uo.__H||(Uo.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({__V:Lo}),n.__[e]}function Vo(e){return $o=1,function(e,t,n){var r=Wo(To++,2);if(r.t=e,!r.__c&&(r.__=[n?n(t):Yo(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=Uo,!Uo.u)){Uo.u=!0;var o=Uo.shouldComponentUpdate;Uo.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.__}(Yo,e)}function Ko(e){return $o=5,function(e,t){var n=Wo(To++,7);return Go(n.__H,t)?(n.__V=e(),n.i=t,n.__h=e,n.__V):n.__}((function(){return{current:e}}),[])}function Ho(){for(var e;e=Do.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(qo),e.__H.__h.forEach(Jo),e.__H.__h=[]}catch(t){e.__H.__h=[],Yr.__e(t,e.__v)}}Yr.__b=function(e){Uo=null,Ro&&Ro(e)},Yr.__r=function(e){No&&No(e),To=0;var t=(Uo=e.__c).__H;t&&(Co===Uo?(t.__h=[],Uo.__h=[],t.__.forEach((function(e){e.__N&&(e.__=e.__N),e.__V=Lo,e.__N=e.i=void 0}))):(t.__h.forEach(qo),t.__h.forEach(Jo),t.__h=[])),Co=Uo},Yr.diffed=function(e){Bo&&Bo(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(1!==Do.push(t)&&Po===Yr.requestAnimationFrame||((Po=Yr.requestAnimationFrame)||function(e){var t,n=function(){clearTimeout(r),zo&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,100);zo&&(t=requestAnimationFrame(n))})(Ho)),t.__H.__.forEach((function(e){e.i&&(e.__H=e.i),e.__V!==Lo&&(e.__=e.__V),e.i=void 0,e.__V=Lo}))),Co=Uo=null},Yr.__c=function(e,t){t.some((function(e){try{e.__h.forEach(qo),e.__h=e.__h.filter((function(e){return!e.__||Jo(e)}))}catch(n){t.some((function(e){e.__h&&(e.__h=[])})),t=[],Yr.__e(n,e.__v)}})),Mo&&Mo(e,t)},Yr.unmount=function(e){Fo&&Fo(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.forEach((function(e){try{qo(e)}catch(e){t=e}})),t&&Yr.__e(t,n.__v))};var zo="function"==typeof requestAnimationFrame;function qo(e){var t=Uo,n=e.__c;"function"==typeof n&&(e.__c=void 0,n()),Uo=t}function Jo(e){var t=Uo;e.__c=e.__(),Uo=t}function Go(e,t){return!e||e.length!==t.length||t.some((function(t,n){return t!==e[n]}))}function Yo(e,t){return"function"==typeof t?t(e):t}function Qo({title:e,type:t,alerts:n,fields:r,submitLabel:o,cancelLabel:i,onCancel:s,onSubmit:a}){const[c,l]=Vo({}),u=Ko(null);return function(e,t){var n=Wo(To++,4);!Yr.__s&&Go(n.__H,t)&&(n.__=e,n.i=t,Uo.__h.push(n))}((()=>{var e;return null===(e=u.current)||void 0===e?void 0:e.focus()}),[]),io(Ao,{className:"dxc-login-dlg"},io(ao,null,io("h3",{style:jo.WindowHeader},e),n.map((e=>io("p",{style:jo.Alert[e.type]},function({message:e,messageCode:t,messageParams:n}){return e.replace(/\{\w+\}/gi,(e=>n[e.substring(1,e.length-1)]))}(e)))),io("form",{onSubmit:e=>{e.preventDefault(),a(c)}},Object.entries(r).map((([e,{type:t,label:n,placeholder:r}],o)=>io("label",{style:jo.Label,key:o},n?`${n}: `:"",io("input",{ref:0===o?u:void 0,type:t,name:e,autoComplete:"on",style:jo.Input,autoFocus:!0,placeholder:r,value:c[e]||"",onInput:n=>{var r;const o=function(e,t){switch(e){case"email":return t.toLowerCase();case"otp":return t.toUpperCase();default:return t}}(t,null===(r=n.target)||void 0===r?void 0:r.value);let i=Object.assign(Object.assign({},c),{[e]:o});l(i),"otp"===t&&8===(null==o?void 0:o.trim().length)&&a(i)}})))))),io("div",{style:jo.ButtonsDiv},io(ao,null,io("button",{type:"submit",style:jo.Button,onClick:()=>a(c)},o),i&&io("button",{style:jo.Button,onClick:s},i))))}class Xo extends co{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?io(Qo,Object.assign({},t)):null}}function Zo(e){const t=new WeakMap;return n=>{let r=t.get(n);return r||(r=e(n),t.set(n,r)),r}}const ei=Zo((e=>new t.BehaviorSubject(f)));function ti(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 ni=Zo((t=>ti(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})))),{}))),ri=Zo((t=>ti(ei(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 oi(...e){if(0===e.length)return{};const t=e.reduce(((e,t)=>{const n=Object.assign({},e);for(const[e,r]of Object.entries(t))if(e in n&&n[e]){if("*"===n[e])continue;if("*"===r)n[e]="*";else if(Array.isArray(r)&&Array.isArray(n[e])){const t=n,o=t[e];t[e]=[...new Set([...o,...r])]}else if("object"==typeof r&&r&&"object"==typeof n[e]){const t=n[e];for(const[e,n]of Object.entries(r))"*"!==t[e]&&("*"===n?t[e]="*":Array.isArray(t[e])&&Array.isArray(n)&&(t[e]=[...new Set([...t[e],...n])]))}}else n[e]=t[e];return n}));return t}const ii=Zo((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}(ti(t.combineLatest([ri(e._novip),ni(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=Ve(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:"*"}:oi(...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 si{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 ai=Zo((n=>{const r=ei(n._novip).pipe(Ue((t=>e.liveQuery((()=>n.members.where({email:t.email||""}).toArray()))))),i=ii(n._novip),s=ri(n._novip);return ti(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 ci(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=$r(n),d=new u.Awareness(r),f=Rr(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&&!Sr(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&&!Sr(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(Cn),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=$n(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),Dr.set(s,c),c)})}}const li={nameSuffix:!0};function ui(n){const r=n.name,i=ei(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=Xn(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),Oo(io(Xo,{db:e.vip}),n)):addEventListener("DOMContentLoaded",(()=>{t||(document.body.appendChild(n),Oo(io(Xo,{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 Or.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"})),ei(e.dx._novip),jr]).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:On?l:"offline",license:"ok"}})))}(b).subscribe(n.cloud.syncState)),s.push(b.syncCompleteEvent.subscribe(d)),b.tables.every((e=>e.core))||dr();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&&!lr?b.cloud.usingServiceWorker=!0:((null===(t=b.cloud.options)||void 0===t?void 0:t.tryUseServiceWorker)&&b.cloud.isServiceWorkerDB,b.cloud.usingServiceWorker=!1),Jr(r,b.cloud.options),Jr(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(Ae(1),Se(1)),b.cloud.persistedSyncState.pipe(Ae(1),Se(1))]));const n=ci(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(je((e=>!!e.isLoggedIn)),Se(1))):"object"==typeof x?(!S.isLoggedIn||x.userId&&S.userId!==x.userId||x.email&&S.email!==x.email)&&(k=yield ir(b,x)):S.isLoggedIn||(k=yield ir(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 Er(e,Fn,(()=>Wn(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=qr(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"}),Sr(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)||ur||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(je((e=>e)),Ue((()=>e.getPersistedSyncState())),je((e=>e&&e.serverRevision)),Ue((e=>o(this,void 0,void 0,(function*(){return{type:"ready",rev:e.serverRevision,realmSetHash:yield Ne(e)}}))))),i=t.merge(r,e.messageProducer);return function n(){return e.cloud.persistedSyncState.pipe(je((e=>null==e?void 0:e.serverRevision)),Se(1),Ue((t=>e.cloud.currentUser.pipe(me((e=>[e,t]))))),Ue((([e,t])=>jr.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(je((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 Ne(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 Nr(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 Kt(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 Fr?t.throwError((()=>r)):t.from(Wr()).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.36",options:Object.assign({},li),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=Xn(n);yield t.cloud.sync(),yield ir(t,e)}))},invites:ai(n),roles:ni(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)}`,Xn(n).reconfigure()),Jr(n.cloud.schema,n.cloud.options)},logout(){return o(this,arguments,void 0,(function*({force:e}={}){e?yield rr(Xn(n),{deleteUnsyncedData:!0}):yield nr(Xn(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=Xn(n);if("ok"!==((null===(s=a.cloud.currentUser.value.license)||void 0===s?void 0:s.status)||"ok")&&(yield Wt(a)),"pull"===i){const e=a.cloud.persistedSyncState.value;if(De(a,i),r){const n=yield t.firstValueFrom(a.cloud.persistedSyncState.pipe(je((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 Vr(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 Vr(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(je((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=ii(e),s=t=>{const i=t[o||e.cloud.currentUserId];return i?new si(i.permissions,n,void 0===o||o===e.cloud.currentUserId||r===e.cloud.currentUserId):new si({},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=>Ir(e,n))),n.Table.prototype.newId=function({colocateWith:e}={}){const t=e&&e.substr(e.length-3);return mr(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(xr({currentUserObservable:n.cloud.currentUser,db:Xn(n)})),n.use((p=Xn(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(br(Xn(n)))}ui.version="4.1.0-beta.36",e.Cloud=ui;const di=new Map;function fi(e){return e.startsWith("dexie-cloud:")&&e.split(":")[1]}const pi=new Map;function yi(t,n){let r=pi.get(t+"/"+n);return r||(r=function t(n,r){return o(this,void 0,void 0,(function*(){var o;let i=di.get(n);if(!i){const o=new e(n,{addons:[ui]});if(i=Xn(o),i.cloud.isServiceWorkerDB=!0,o.on("versionchange",s),yield i.dx.open(),di.get(n))return i.close(),yield t(n,r);di.set(n,i)}if((null===(o=i.cloud.options)||void 0===o?void 0:o.databaseUrl)&&i.cloud.schema)try{yield Hr(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),di.get(i.name)===i&&di.delete(i.name),i.dx.close(),!1}}))}(t,n).then((()=>{pi.delete(t+"/"+n)})).catch((e=>(pi.delete(t+"/"+n),Promise.reject(e)))),pi.set(t+"/"+n,r)),r}lr||(self.addEventListener("sync",(e=>{const t=fi(e.tag);t&&e.waitUntil(yi(t,"push"))})),self.addEventListener("periodicsync",(e=>{const t=fi(e.tag);t&&e.waitUntil(yi(t,"pull"))})),self.addEventListener("message",(e=>{if("dexie-cloud-sync"===e.data.type){const{dbName:t}=e.data,n=(r=1)=>yi(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{j(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)j(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 j(e){b(e)?e():e.unsubscribe()}E.EMPTY;var A={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&&A.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:A.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 je(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 Ae(e){return je((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="undefined"!=typeof Buffer?e=>Buffer.from(e,"base64"):e=>{const t=atob(e),n=t.length,r=new Uint8Array(n);for(var o=0;o<n;o++)r[o]=t.charCodeAt(o);return r},Re="undefined"!=typeof Buffer?e=>ArrayBuffer.isView(e)?Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("base64"):Buffer.from(e).toString("base64"):e=>{const t=ArrayBuffer.isView(e)?e:new Uint8Array(e),n=[];for(let e=0,r=t.length;e<r;e+=4096){const r=t.subarray(e,e+4096);n.push(String.fromCharCode.apply(null,r))}return btoa(n.join(""))};function Ne(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 Re(o)}))}function Be(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 Me(e){return`$${e}_mutations`}function Fe(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 We=[].concat;function Ve(e){return We.apply([],e)}function Ke(e,t){return o(this,arguments,void 0,(function*(e,t,{since:n={},limit:r=1/0}={}){const i=Ve(yield Promise.all(e.map((e=>o(this,void 0,void 0,(function*(){const t=Fe(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 He(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 ze={}.hasOwnProperty;function qe(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)qe(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 ze.call(e,t)}(e,s)||(c=e[s]={}),qe(c,a,n)}}else void 0===n?Array.isArray(e)&&!isNaN(parseInt(t))?e.splice(t,1):delete e[t]:e[t]=n}}const Je="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=Ge)=>{const n=Buffer.alloc(e);return t(n),n.toString("base64")}:()=>{throw new Error("No implementation of randomString was found")};function Ge(e){for(let t=0;t<e.length;++t)e[t]=Math.floor(256*Math.random())}function Ye(e){return"string"==typeof e||!!(Array.isArray(e)&&e.some((e=>Ye(e)))&&e.every(Qe))}function Qe(e){return"string"==typeof e||"number"==typeof e||Array.isArray(e)&&e.every(Qe)}function Xe(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))qe(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 Ze(e,t){for(const{table:n,muts:r}of t)for(const t of r)Xe(e,n,t)}const et=Math.floor,tt=Math.abs,nt=(e,t)=>e>t?e:t,rt=128,ot=127,it=Number.MAX_SAFE_INTEGER,st=Number.isInteger||(e=>"number"==typeof e&&isFinite(e)&&et(e)===e),at=Array.isArray,ct="undefined"!=typeof TextEncoder?new TextEncoder:null,lt=ct?e=>ct.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 ut="undefined"==typeof TextDecoder?null:new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});ut&&1===ut.decode(new Uint8Array).length&&(ut=null);class dt{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}}const ft=(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},pt=(e,t)=>{for(;t>ot;)ft(e,rt|ot&t),t=et(t/128);ft(e,ot&t)},yt=new Uint8Array(3e4),ht=yt.length/3,vt=ct&&ct.encodeInto?(e,t)=>{if(t.length<ht){const n=ct.encodeInto(t,yt).written||0;pt(e,n);for(let t=0;t<n;t++)ft(e,yt[t])}else mt(e,lt(t))}:(e,t)=>{const n=unescape(encodeURIComponent(t)),r=n.length;pt(e,r);for(let t=0;t<r;t++)ft(e,n.codePointAt(t))},mt=(e,t)=>{pt(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(nt(2*n,i)),e.cbuf.set(t.subarray(o)),e.cpos=i)})(e,t)},bt=(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*nt(n,t)),e.cpos=0)})(e,t);const n=new DataView(e.cbuf.buffer,e.cpos,t);return e.cpos+=t,n},gt=(e,t)=>bt(e,8).setBigUint64(0,t,!1),_t=new DataView(new ArrayBuffer(4)),wt=(e,t)=>{switch(typeof t){case"string":ft(e,119),vt(e,t);break;case"number":st(t)&&tt(t)<=2147483647?(ft(e,125),((e,t)=>{const n=(e=>0!==e?e<0:1/e<0)(t);for(n&&(t=-t),ft(e,(t>63?rt:0)|(n?64:0)|63&t),t=et(t/64);t>0;)ft(e,(t>ot?rt:0)|ot&t),t=et(t/128)})(e,t)):(n=t,_t.setFloat32(0,n),_t.getFloat32(0)===n?(ft(e,124),((e,t)=>{bt(e,4).setFloat32(0,t,!1)})(e,t)):(ft(e,123),((e,t)=>{bt(e,8).setFloat64(0,t,!1)})(e,t)));break;case"bigint":ft(e,122),((e,t)=>{bt(e,8).setBigInt64(0,t,!1)})(e,t);break;case"object":if(null===t)ft(e,126);else if(at(t)){ft(e,117),pt(e,t.length);for(let n=0;n<t.length;n++)wt(e,t[n])}else if(t instanceof Uint8Array)ft(e,116),mt(e,t);else{ft(e,118);const n=Object.keys(t);pt(e,n.length);for(let r=0;r<n.length;r++){const o=n[r];vt(e,o),wt(e,t[o])}}break;case"boolean":ft(e,t?120:121);break;default:ft(e,127)}var n};function kt(e){const t=new dt;switch(vt(t,e.type),"table"in e&&vt(t,e.table),"prop"in e&&vt(t,e.prop),e.type){case"u-ack":case"u-reject":gt(t,BigInt(e.i));break;case"outdated-server-rev":break;case"y-complete-sync-done":vt(t,e.yServerRev);break;default:switch(wt(t,e.k),e.type){case"aware":case"u-s":mt(t,e.u);break;case"doc-open":wt(t,e.serverRev),wt(t,e.sv);break;case"doc-close":break;case"sv":mt(t,e.sv);break;case"u-c":mt(t,e.u),gt(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 St=e=>new Error(e),xt=St("Unexpected end of array"),It=St("Integer out of Range");class Et{constructor(e){this.arr=e,this.pos=0}}const Ot=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,Tt(e)),At=e=>e.arr[e.pos++],Tt=e=>{let t=0,n=1;const r=e.arr.length;for(;e.pos<r;){const r=e.arr[e.pos++];if(t+=(r&ot)*n,n*=128,r<rt)return t;if(t>it)throw It}throw xt},Ut=ut?e=>ut.decode(jt(e)):e=>{let t=Tt(e);if(0===t)return"";{let n=String.fromCodePoint(At(e));if(--t<100)for(;t--;)n+=String.fromCodePoint(At(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))}},Ct=(e,t)=>{const n=new DataView(e.arr.buffer,e.arr.byteOffset+e.pos,t);return e.pos+=t,n},Pt=e=>Ct(e,8).getBigUint64(0,!1),$t=[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&rt))return o*n;const i=e.arr.length;for(;e.pos<i;){if(t=e.arr[e.pos++],n+=(t&ot)*r,r*=128,t<rt)return o*n;if(n>it)throw It}throw xt},e=>Ct(e,4).getFloat32(0,!1),e=>Ct(e,8).getFloat64(0,!1),e=>Ct(e,8).getBigInt64(0,!1),e=>!1,e=>!0,Ut,e=>{const t=Tt(e),n={};for(let r=0;r<t;r++){n[Ut(e)]=Dt(e)}return n},e=>{const t=Tt(e),n=[];for(let r=0;r<t;r++)n.push(Dt(e));return n},jt],Dt=e=>$t[127-At(e)](e);function Lt(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 Rt 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 Nt(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 Bt(e,t,...n){return Nt(e,{type:"message-alert",title:t,alerts:n,fields:{},submitLabel:"OK",cancelLabel:null})}function Mt(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 Nt(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 Ft(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 Nt(e,{type:"otp",title:"Enter OTP",alerts:r,fields:{otp:{type:"otp",label:"OTP",placeholder:"Paste OTP here"}}});return o}))}function Wt(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 Kt(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 Vt(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 Kt(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=Re(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 Rt(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 Nt(r,{type:"message-alert",title:"Authentication Alert",fields:{},alerts:e.alerts})),t}catch(t){if(t instanceof Rt)throw yield Bt(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 Bt(r,"Authentication Failed",{type:"error",messageCode:"GENERIC_ERROR",message:n,messageParams:{}}).catch((()=>{}))}throw t}}))}(n,r,i,s)}))}function Kt(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=Re(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 Rt(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:Ht}={};const zt={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 qt(...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 zt;let i=n.get(r);if(void 0!==i)return i;const s=(o=e,Ht.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:zt),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 Jt={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 Gt={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 Yt={bigint:{replace:e=>({$t:"bigint",v:""+e}),revive:e=>BigInt(e.v)}};var Qt={Date:{replace:e=>({$t:"Date",v:isNaN(e.getTime())?"NaN":e.toISOString()}),revive:({v:e})=>new Date("NaN"===e?NaN:Date.parse(e))}},Xt={Set:{replace:e=>({$t:"Set",v:Array.from(e.entries())}),revive:({v:e})=>new Set(e)}},Zt={Map:{replace:e=>({$t:"Map",v:Array.from(e.entries())}),revive:({v:e})=>new Map(e)}};const en="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof global?global:void 0;var tn=["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=en[t];return o&&new o(r.ArrayBuffer.revive({v:e},n,r))}}})),{});function nn(e){return function(e){for(var t="",n=0,r=e.length;n<r;n++)t+=sn[e[n]];return t}(Re(e))}function rn(e){return Le(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+=on[e[n]];return t}(e))}const on={"-":"=",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:"+","|":"/"},sn={};for(const e of Object.keys(on))sn[on[e]]=e;var an={ArrayBuffer:{replace:e=>({$t:"ArrayBuffer",v:nn(e)}),revive:({v:e})=>{const t=rn(e);return t.buffer.byteLength===t.byteLength?t.buffer:t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}}};class cn{constructor(e,t){this.buf=e,this.type=t}}function ln(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 un(e){const t=new Uint8Array(e.length);for(let n=0;n<e.length;++n)t[n]=e.charCodeAt(n);return t.buffer}var dn={Blob:{test:(e,t)=>"Blob"===t||e instanceof cn,replace:e=>({$t:"Blob",v:Re(e instanceof cn?e.buf:un(ln(e))),type:e.type}),revive:({type:e,v:t})=>{const n=Le(t);return void 0!==typeof Blob?new Blob([n]):new cn(n.buffer,e)}}};const fn={...Gt,...Yt,...Qt,...Xt,...Zt,...tn,...an,...dn};function pn(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 yn={undefined:{replace:()=>({$t:"undefined"}),revive:()=>{}}};const hn="function"==typeof BigInt&&"bigint"==typeof BigInt(0);class vn{toString(){return this.v}constructor(e){this.v=e}}const mn=Object.assign(Object.assign(Object.assign({},yn),hn?{}:{bigint:{test:e=>e instanceof vn,replace:e=>Object.assign({$t:"bigint"},e),revive:({v:e})=>new vn(e)}}),{PropModification:{test:t=>t instanceof e.PropModification,replace:e=>Object.assign({$t:"PropModification"},e),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)}}}),bn=qt(fn,mn),gn=function(...e){const t=qt(fn,Jt,...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 pn(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 pn(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)}}}(mn);class _n extends Error{constructor(e,t){super(t||`${e.status} ${e.statusText}`),this.httpStatus=e.status}get name(){return"HttpError"}}function wn(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=kn(i,o));const e=l.muts[r],n=JSON.stringify(t);e.keys[s]=n}else if("#"===t[0]){l===i&&(l=kn(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 kn(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 Sn=new WeakMap;function xn(e){return o(this,void 0,void 0,(function*(){var t,n;const r=(null!==(n=null===(t=Sn.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 In(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 Wt(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:wn(i.dx.core.schema,l,e),y:t};i.syncStateChangedEvent.next({phase:"pushing"});const p=yield fetch(`${s}/sync`,{method:"post",headers:o,credentials:"include",body:bn.stringify(f)});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));Sn.set(e,new Date(Date.now()+1e3*t))}else Sn.delete(e)}}(i,p),!p.ok)throw new _n(p);if("application/x-bison"===p.headers.get("content-type"))return gn.fromBinary(yield p.blob());{const e=yield p.text();return bn.parse(e)}}))}function En(t){if(null==t?void 0:t.cancelled)throw new e.AbortError("Operation was cancelled")}let On=!1;function jn(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 An(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 Tn(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 Un(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 Tn(t,r,n.changeSpecs);break;case"delete":yield t.bulkDelete(r)}}}}))}"undefined"!=typeof self&&"undefined"!=typeof navigator&&(On=navigator.onLine,self.addEventListener("online",(()=>On=!0)),self.addEventListener("offline",(()=>On=!1)));const Cn="dexie-cloud-syncer";function Pn(e,t){return e.where("i").between(t,1/0,!0).toArray()}function $n(e){const t=e.dx._options.Y;if(!t)throw new Error("Y library not supplied to Dexie constructor");return t}function Dn(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 Ln(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=Dn(n,c.table,c.prop);i[e.name]=yield e.add({k:c.k,u:c.u});break}case"u-ack":{const e=Dn(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(Cn);yield t.table(e.name).put(Object.assign(Object.assign({},n||{i:Cn}),{unsentFrom:Math.max((null==n?void 0:n.unsentFrom)||1,c.i+1)}))}))));break}case"u-reject":{const t=Dn(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 Rn=1,Nn=2,Bn=3;function Mn(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 Wt(t),a={"Content-Type":"application/json",Accept:"application/octet-stream"};s&&(a.Authorization=`Bearer ${s.accessToken}`);const c=yield fetch(`${n}/y/download`,{body:bn.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),Lt,(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=Dn(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 Et(c);for(;Ot(e);)switch(At(e)){case Rn:yield l(h(!0)),u=Ut(e);break;case Nn:yield l(h(!1)),f=Ut(e),p=Ut(e);break;case Bn:{const t=Dt(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 Fn="currentSyncWorker";function Wn(e,t,n,r){return Vn(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):On&&(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 Wn(e,t,n,Object.assign(Object.assign({},r),{retryImmediatelyOnFetchError:!1}))):(yield e.$syncState.update("syncState",{timestamp:new Date,error:""+i}),e.syncStateChangedEvent.next({phase:On?"error":"offline",error:new Error(""+(null==i?void 0:i.message)||i)}),Promise.reject(i))}))))}function Vn(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?Be(e):[],p=d.map((t=>e.table(Me(t.name)))),y=yield e.getPersistedSyncState(),h=u.isLoggedIn,v=h?function(e,t){const n=(null==t?void 0:t.syncedTables)||[];return Be(e).filter((e=>!n.includes(e.name)))}(e,y):[];En(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)})))),En(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 Ke(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=$n(e),s=e.table(t.updatesTable),a=yield s.get(Cn),c=(null==a?void 0:a.unsentFrom)||1,l=(null==a?void 0:a.receivedUntil)||0,u=Math.min(c,l+1),d=yield Pn(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(En(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-${He(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||"")&&Ye(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 En(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=An(b,null==g?void 0:g.latestRevisions),I=(null==g?void 0:g.clientIdentity)||Je(16);En(i);const E=yield In(b,w,g,_,e,l,n,I,u),{done:O,newSyncState:j}=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 Ke(p,e,{since:x});for(const t of p){const n=Fe(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()])}An(r,x),yield jn(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=Be(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=Kn(E.changes,r);if(yield Un(a,e),E.yMessages){const{receivedUntils:t,resyncNeeded:n,yServerRevision:r}=yield Ln(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(Cn);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:Cn,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 xn(e),yield Vn(e,t,n,{isInitialSync:r,cancelToken:i});const A=Object.values(n).some((e=>{var t;return null===(t=e.yProps)||void 0===t?void 0:t.length})),T=!!E.yMessages;return A&&T&&(yield Mn(e,l,j)),e.syncCompleteEvent.next(),!1}))}function Kn(e,t){const n={};Ze(n,e);const r={};return Ze(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))qe(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=Je(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 Hn=10,zn=1e4,qn=1e3;function Jn(n){const r=[],i=new t.BehaviorSubject(!0),s=new t.BehaviorSubject(null);let a=!1,c=new Array(Hn).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(je((({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 Kt(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(Ne(o)))!==d.realmSetHash)return void De(n,"pull");let s=[];if(i.isLoggedIn){const e=Be(n).map((e=>n.table(Me(e.name))));s=yield Ke(e,n)}if(d.changes.length>0){const e=Kn(d.changes,s);yield Un(e,n)}o.latestRevisions=An(s,o.latestRevisions),o.serverRevision=d.newRev,yield jn(n,r,o.latestRevisions,d.newRev),yield n.$syncState.put(o,"syncState")}))))}}catch(e){}}}))}()}finally{c[c.length-1]-c[0]<zn&&(yield new Promise((e=>setTimeout(e,qn)))),a=!1,i.next(!0)}}})))),{enqueue:function(e){r.push(e),s.next(null)},readyToServe:i}}const Gn=new WeakMap,Yn={members:"@id, [userId+realmId], [email+realmId], realmId",roles:"[realmId+name]",realms:"@realmId",$jobs:"",$syncState:"",$baseRevs:"[tableName+clientRev]",$logins:"claims.sub, lastLogin"};let Qn=0;function Xn(e){"vip"in e&&(e=e.vip);let n=Gn.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=++Qn;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=Jn(n),n.messageProducer=new t.Subject,Gn.set(e.cloud,n)}return n}const Zn=new WeakMap;class er{constructor(e,t){Zn.set(this,e),Object.assign(this,t)}static load(e,t){return e.table("$logins").get(t).then((n=>new er(e,n||{userId:t,claims:{sub:t},lastLogin:new Date(0)})))}save(){return o(this,void 0,void 0,(function*(){Zn.get(this).table("$logins").put(this)}))}}function tr(e,n){return t.firstValueFrom(t.from(e).pipe(t.filter(n)))}function nr(e){return o(this,void 0,void 0,(function*(){const t=yield rr(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 Nt(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 rr(e,{deleteUnsyncedData:!0})}}))}function rr(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 tr(e.cloud.currentUser,(e=>e.userId===f.userId)),yield e.cloud.sync({purpose:"pull",wait:!0})),n}))}function or(e,...t){globalThis.console[e](...t)}function ir(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 Wt(e),!1}const s=new er(e,{claims:{},lastLogin:new Date(0)});return yield Vt(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 Mt(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 Mt(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 Bt(t,"Token request failed",{type:"error",messageCode:"GENERIC_ERROR",message:e,messageParams:{}}).catch((()=>{})),new _n(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 Ft(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 Ft(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 _n(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 nr(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&&(or("debug","Login context property names:",Object.keys(t)),or("debug","Login context property names:",Object.keys(t)),or("debug","Login context:",t),or("debug","Login context JSON:",JSON.stringify(t)))}catch(e){}throw e}})))),yield tr(e.cloud.currentUser,(e=>e.userId===t.userId))}))}(e,s),De(e,"pull"),s.userId!==i}))}const sr="undefined"!=typeof InstallTrigger,ar="undefined"!=typeof navigator&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\/|Edge\//.test(navigator.userAgent),cr=ar?[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]:NaN,lr=ar&&cr<=605||sr,ur="undefined"!=typeof self&&"clients"in self&&!self.document;function dr(){throw new e.SchemaError("Version increment needed to allow dexie-cloud change tracking")}const{toString:fr}={};function pr(e){return fr.call(e).slice(8,-1)}function yr(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 hr=/b|c|d|f|g|h|j|k|l|m|n|p|q|r|s|t|v|x|y|z/i;let vr=0;function mr(e,t){const n=new Uint8Array(18),r=new Uint8Array(n.buffer,0,6),o=Date.now();vr>=o?++vr:vr=o,r[0]=vr/1099511627776,r[1]=vr/4294967296,r[2]=vr/16777216,r[3]=vr/65536,r[4]=vr/256,r[5]=vr;const i=new Uint8Array(n.buffer,6);crypto.getRandomValues(i);return e+nn(new Uint8Array(n.buffer))+(t||"")}function br(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=yr(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=yr(o.schema.primaryKey,n);return a.forEach(((c,l)=>{if(void 0===c){const r=n.values[l].realmId||t.cloud.currentUserId,c=r.substr(r.length-3);a[l]=mr(i,c),o.schema.primaryKey.outbound||(s||(s=n.values.slice()),s[l]=e.deepClone(s[l]),e.setByKeyPath(s[l],o.schema.primaryKey.keyPath,a[l]))}else if("string"!=typeof c||!c.startsWith(i)&&!c.startsWith("#"+i))throw new e.ConstraintError(`The ID "${c}" is not valid for table "${r}". Primary '@' keys requires the key to be prefixed with "${i}" (or "#${i}).\nIf you want to generate IDs programmatically, remove '@' from the schema to get rid of this constraint. Dexie Cloud supports custom IDs as long as they are random and globally unique.`)})),o.mutate(Object.assign(Object.assign({},n),{keys:a,values:s||n.values}))}(n,a.idPrefix)}if(null==a?void 0:a.markedForSync){yr(o.schema.primaryKey,n).forEach(((t,n)=>{if(!Ye(t)){const n=Array.isArray(t)?t.map(pr).join(","):pr(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 gr=0;function _r(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 wr(e,t){return function(n){const{readers:r,writers:o}=n.trans[t]||(n.trans[t]={writers:[],readers:[]});let i=(o.length>0?o[o.length-1].then((()=>e(n)),(()=>e(n))):r.length>0?(s=r,new Promise((e=>{0===s.length&&e([]);let t=s.length;const n=new Array(t);s.forEach(((r,o)=>Promise.resolve(r).then((e=>n[o]={status:"fulfilled",value:e}),(e=>n[o]={status:"rejected",reason:e})).then((()=>--t||e(n)))))}))).then((()=>e(n))):e(n)).finally((()=>{o.shift()}));var s;return o.push(i),i}}const kr=new t.BehaviorSubject(new Set);function Sr(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 xr({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){dr()}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=>Me(e)));i=r.transaction([...e,...t],o)}else i=r.transaction(e,o);if("readwrite"===o){i.txid=He(16),i.opCount=0,i.currentUser=t.value,kr.value.add(i),kr.next(kr.value);const e=()=>{i.removeEventListener("complete",r),i.removeEventListener("error",e),i.removeEventListener("abort",e),kr.value.delete(i),kr.next(kr.value)},r=()=>{i.mutationsAdded&&!Sr(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"+ ++gr;return Object.assign(Object.assign({},e),{count:_r(e.count,t),get:_r(e.get,t),getMany:_r(e.getMany,t),openCursor:_r(e.openCursor,t),query:_r(e.query,t),mutate:wr(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 Ir(e,t){return function(n,r){var o;const i=Object.assign(Object.assign({},Yn),n);Object.keys(Yn).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=Yn[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(Yn[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)(hr.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 Er(e,t,n){return"undefined"!=typeof navigator&&navigator.locks?navigator.locks.request(e.name+"|"+t,(()=>n())):n()}const Or=new t.BehaviorSubject(!0),jr=new t.BehaviorSubject(!0);Or.pipe(Ue((e=>e?t.of(!0):t.of(!1).pipe(Ie(2e4)))),Ee()).subscribe(jr);const Ar="undefined"!=typeof document?t.fromEvent(document,"visibilitychange"):t.of({}),Tr=Ar.pipe(je((()=>"hidden"===document.visibilityState))),Ur=Ar.pipe(je((()=>"visible"===document.visibilityState))),Cr="undefined"!=typeof window?t.merge(Ur,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),Tr,Cr).pipe(me((()=>"visible"===document.visibilityState)),Ce((e=>{Or.value!==e&&Or.next(e)})),Ue((e=>e?t.of(0).pipe(Ie(16e4),Ce((()=>Or.next(!1)))):t.of(0)))).subscribe((()=>{}));class Pr extends Error{constructor(){super(...arguments),this.name="TokenExpiredError"}}function $r(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 Dr=new WeakMap,Lr=new WeakMap;function Rr(e){let n=Lr.get(e);return n||(n=new t.Subject,Lr.set(e,n)),n}class Nr extends t.Observable{constructor(e,t,n,r,o,i,s){super((a=>new Mr(e,t,n,r,s,a,o,i)))}}let Br=0;class Mr extends t.Subscription{constructor(e,t,n,r,o,i,s,a){super((()=>this.teardown())),this.id=++Br,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 Pr);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?bn.parse(t.data):function(e){const t=new Et(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(Pt(t))};default:{const e=Dt(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:Dt(t),sv:Dt(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(Pt(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=>Dr.get(e))(t);if(e){$r(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)Ln([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&&Rr(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(bn.stringify(e))):null===(n=this.ws)||void 0===n||n.send(kt(e)))}))),this.user.isLoggedIn&&!Sr(this.db)&&this.subscriptions.add(function(n){const r=Ve(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(Cn)).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 Pn(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 Fr extends Error{constructor(e){super("expired"===e?"License expired":"deactivated"===e?"User deactivated":"Invalid license"),this.name="InvalidLicenseError",e&&(this.license=e)}}function Wr(e){return o(this,void 0,void 0,(function*(){var e;yield(e=3e3,new Promise((t=>setTimeout(t,e)))),yield t.firstValueFrom(Cr)}))}function Vr(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 Wn(e,e.cloud.options,e.cloud.schema,{justCheckIfNeeded:!0}))}))}const Kr=new WeakMap;function Hr(e,t,n,r){const i=Kr.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 Hr(e,t,n,r)}))}}const s=function(){return o(this,void 0,void 0,(function*(){try{yield xn(e),yield Er(e,Fn,(()=>Wn(e,t,n,r))),Kr.delete(e)}catch(t){throw Kr.delete(e),t}}))}();return Kr.set(e,{promise:s,pull:"push"!==(null==r?void 0:r.purpose)}),s}const zr=6e4;function qr(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,Hr(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]*zr);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 Jr(e,t){if(e&&t&&t.unsyncedTables)for(const n of t.unsyncedTables)e[n]&&(e[n].markedForSync=!1)}var Gr,Yr,Qr,Xr,Zr,eo={},to=[],no=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function ro(e,t){for(var n in t)e[n]=t[n];return e}function oo(e){var t=e.parentNode;t&&t.removeChild(e)}function io(e,t,n){var r,o,i,s={};for(i in t)"key"==i?r=t[i]:"ref"==i?o=t[i]:s[i]=t[i];if(arguments.length>2&&(s.children=arguments.length>3?Gr.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 so(e,s,r,o,null)}function so(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?++Qr:o};return null==o&&null!=Yr.vnode&&Yr.vnode(i),i}function ao(e){return e.children}function co(e,t){this.props=e,this.context=t}function lo(e,t){if(null==t)return e.__?lo(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?lo(e):null}function uo(e){var t,n;if(null!=(e=e.__)&&null!=e.__c){for(e.__e=e.__c.base=null,t=0;t<e.__k.length;t++)if(null!=(n=e.__k[t])&&null!=n.__e){e.__e=e.__c.base=n.__e;break}return uo(e)}}function fo(e){(!e.__d&&(e.__d=!0)&&Xr.push(e)&&!po.__r++||Zr!==Yr.debounceRendering)&&((Zr=Yr.debounceRendering)||setTimeout)(po)}function po(){for(var e;po.__r=Xr.length;)e=Xr.sort((function(e,t){return e.__v.__b-t.__v.__b})),Xr=[],e.some((function(e){var t,n,r,o,i,s;e.__d&&(i=(o=(t=e).__v).__e,(s=t.__P)&&(n=[],(r=ro({},o)).__v=o.__v+1,wo(s,o,r,t.__n,void 0!==s.ownerSVGElement,null!=o.__h?[i]:null,n,null==i?lo(o):i,o.__h),ko(n,o),o.__e!=i&&uo(o)))}))}function yo(e,t,n,r,o,i,s,a,c,l){var u,d,f,p,y,h,v,m=r&&r.__k||to,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?so(null,p,null,null,p):Array.isArray(p)?so(ao,{children:p},null,null,null):p.__b>0?so(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}wo(e,p,f=f||eo,o,i,s,a,c,l),y=p.__e,(d=p.ref)&&f.ref!=d&&(v||(v=[]),f.ref&&v.push(f.ref,null,p),v.push(d,p.__c||y,p)),null!=y?(null==h&&(h=y),"function"==typeof p.type&&p.__k===f.__k?p.__d=c=ho(p,c,e):c=vo(e,p,f,m,y,c),"function"==typeof n.type&&(n.__d=c)):c&&f.__e==c&&c.parentNode!=e&&(c=lo(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=lo(r,u+1)),Io(m[u],m[u]));if(v)for(u=0;u<v.length;u++)xo(v[u],v[++u],v[++u])}function ho(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?ho(r,t,n):vo(n,r,r,o,r.__e,t));return t}function vo(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 mo(e,t,n){"-"===t[0]?e.setProperty(t,n):e[t]=null==n?"":"number"!=typeof n||no.test(t)?n:n+"px"}function bo(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||mo(e.style,t,"");if(n)for(t in n)r&&n[t]===r[t]||mo(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?_o:go,i):e.removeEventListener(t,i?_o:go,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 go(e){this.l[e.type+!1](Yr.event?Yr.event(e):e)}function _o(e){this.l[e.type+!0](Yr.event?Yr.event(e):e)}function wo(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=Yr.__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 co(v,b),u.constructor=k,u.render=Eo),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=ro({},u.__s)),ro(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=Yr.__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=ro(ro({},r),u.getChildContext())),d||null==u.getSnapshotBeforeUpdate||(y=u.getSnapshotBeforeUpdate(f,p)),w=null!=l&&l.type===ao&&null==l.key?l.props.children:l,yo(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=So(n.__e,t,n,r,o,i,s,c);(l=Yr.diffed)&&l(t)}catch(e){t.__v=null,(c||null!=i)&&(t.__e=a,t.__h=!!c,i[i.indexOf(a)]=null),Yr.__e(e,t,n)}}function ko(e,t){Yr.__c&&Yr.__c(t,e),e.some((function(t){try{e=t.__h,t.__h=[],e.some((function(e){e.call(t)}))}catch(e){Yr.__e(e,t.__v)}}))}function So(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&&Gr.call(e.childNodes),l=(d=n.props||eo).dangerouslySetInnerHTML,u=f.dangerouslySetInnerHTML,!a){if(null!=i)for(d={},y=0;y<e.attributes.length;y++)d[e.attributes[y].name]=e.attributes[y].value;(u||l)&&(u&&(l&&u.__html==l.__html||u.__html===e.innerHTML)||(e.innerHTML=u&&u.__html||""))}if(function(e,t,n,r,o){var i;for(i in n)"children"===i||"key"===i||i in t||bo(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]||bo(e,i,t[i],n[i],r)}(e,f,d,o,a),u)t.__k=[];else if(y=t.props.children,yo(e,Array.isArray(y)?y:[y],t,n,r,o&&"foreignObject"!==p,i,s,i?i[0]:n.__k&&lo(n,0),a),null!=i)for(y=i.length;y--;)null!=i[y]&&oo(i[y]);a||("value"in f&&void 0!==(y=f.value)&&(y!==e.value||"progress"===p&&!y||"option"===p&&y!==d.value)&&bo(e,"value",y,d.value,!1),"checked"in f&&void 0!==(y=f.checked)&&y!==e.checked&&bo(e,"checked",y,d.checked,!1))}return e}function xo(e,t,n){try{"function"==typeof e?e(t):e.current=t}catch(e){Yr.__e(e,n)}}function Io(e,t,n){var r,o;if(Yr.unmount&&Yr.unmount(e),(r=e.ref)&&(r.current&&r.current!==e.__e||xo(r,null,t)),null!=(r=e.__c)){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(e){Yr.__e(e,t)}r.base=r.__P=null}if(r=e.__k)for(o=0;o<r.length;o++)r[o]&&Io(r[o],t,"function"!=typeof e.type);n||null==e.__e||oo(e.__e),e.__e=e.__d=void 0}function Eo(e,t,n){return this.constructor(e,n)}function Oo(e,t,n){var r,o,i;Yr.__&&Yr.__(e,t),o=(r="function"==typeof n)?null:n&&n.__k||t.__k,i=[],wo(t,e=(!r&&n||t).__k=io(ao,null,[e]),o||eo,eo,void 0!==t.ownerSVGElement,!r&&n?[n]:o?null:t.firstChild?Gr.call(t.childNodes):null,i,!r&&n?n:o?o.__e:t.firstChild,r),ko(i,e)}Gr=to.slice,Yr={__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}},Qr=0,co.prototype.setState=function(e,t){var n;n=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=ro({},this.state),"function"==typeof e&&(e=e(ro({},n),this.props)),e&&ro(n,e),null!=e&&this.__v&&(t&&this.__h.push(t),fo(this))},co.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),fo(this))},co.prototype.render=ao,Xr=[],po.__r=0;const jo={Error:{color:"red"},Alert:{error:{color:"red",fontWeight:"bold"},warning:{color:"#f80",fontWeight:"bold"},info:{color:"black"}},Darken:{position:"fixed",top:0,left:0,opacity:.5,backgroundColor:"#000",width:"100vw",height:"100vh",zIndex:150,webkitBackdropFilter:"blur(2px)",backdropFilter:"blur(2px)"},DialogOuter:{position:"fixed",top:0,left:0,width:"100vw",height:"100vh",zIndex:150,alignItems:"center",display:"flex",justifyContent:"center"},DialogInner:{position:"relative",color:"#222",backgroundColor:"#fff",padding:"30px",marginBottom:"2em",maxWidth:"90%",maxHeight:"90%",overflowY:"auto",border:"3px solid #3d3d5d",borderRadius:"8px",boxShadow:"0 0 80px 10px #666",width:"auto",fontFamily:"sans-serif"},Input:{height:"35px",width:"17em",borderColor:"#ccf4",outline:"none",fontSize:"17pt",padding:"8px"}};function Ao({children:e,className:t}){return io("div",{className:t},io("div",{style:jo.Darken}),io("div",{style:jo.DialogOuter},io("div",{style:jo.DialogInner},e)))}var To,Uo,Co,Po,$o=0,Do=[],Lo=[],Ro=Yr.__b,No=Yr.__r,Bo=Yr.diffed,Mo=Yr.__c,Fo=Yr.unmount;function Wo(e,t){Yr.__h&&Yr.__h(Uo,e,$o||t),$o=0;var n=Uo.__H||(Uo.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({__V:Lo}),n.__[e]}function Vo(e){return $o=1,function(e,t,n){var r=Wo(To++,2);if(r.t=e,!r.__c&&(r.__=[n?n(t):Yo(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=Uo,!Uo.u)){Uo.u=!0;var o=Uo.shouldComponentUpdate;Uo.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.__}(Yo,e)}function Ko(e){return $o=5,function(e,t){var n=Wo(To++,7);return Go(n.__H,t)?(n.__V=e(),n.i=t,n.__h=e,n.__V):n.__}((function(){return{current:e}}),[])}function Ho(){for(var e;e=Do.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(qo),e.__H.__h.forEach(Jo),e.__H.__h=[]}catch(t){e.__H.__h=[],Yr.__e(t,e.__v)}}Yr.__b=function(e){Uo=null,Ro&&Ro(e)},Yr.__r=function(e){No&&No(e),To=0;var t=(Uo=e.__c).__H;t&&(Co===Uo?(t.__h=[],Uo.__h=[],t.__.forEach((function(e){e.__N&&(e.__=e.__N),e.__V=Lo,e.__N=e.i=void 0}))):(t.__h.forEach(qo),t.__h.forEach(Jo),t.__h=[])),Co=Uo},Yr.diffed=function(e){Bo&&Bo(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(1!==Do.push(t)&&Po===Yr.requestAnimationFrame||((Po=Yr.requestAnimationFrame)||function(e){var t,n=function(){clearTimeout(r),zo&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,100);zo&&(t=requestAnimationFrame(n))})(Ho)),t.__H.__.forEach((function(e){e.i&&(e.__H=e.i),e.__V!==Lo&&(e.__=e.__V),e.i=void 0,e.__V=Lo}))),Co=Uo=null},Yr.__c=function(e,t){t.some((function(e){try{e.__h.forEach(qo),e.__h=e.__h.filter((function(e){return!e.__||Jo(e)}))}catch(n){t.some((function(e){e.__h&&(e.__h=[])})),t=[],Yr.__e(n,e.__v)}})),Mo&&Mo(e,t)},Yr.unmount=function(e){Fo&&Fo(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.forEach((function(e){try{qo(e)}catch(e){t=e}})),t&&Yr.__e(t,n.__v))};var zo="function"==typeof requestAnimationFrame;function qo(e){var t=Uo,n=e.__c;"function"==typeof n&&(e.__c=void 0,n()),Uo=t}function Jo(e){var t=Uo;e.__c=e.__(),Uo=t}function Go(e,t){return!e||e.length!==t.length||t.some((function(t,n){return t!==e[n]}))}function Yo(e,t){return"function"==typeof t?t(e):t}function Qo({title:e,type:t,alerts:n,fields:r,submitLabel:o,cancelLabel:i,onCancel:s,onSubmit:a}){const[c,l]=Vo({}),u=Ko(null);return function(e,t){var n=Wo(To++,4);!Yr.__s&&Go(n.__H,t)&&(n.__=e,n.i=t,Uo.__h.push(n))}((()=>{var e;return null===(e=u.current)||void 0===e?void 0:e.focus()}),[]),io(Ao,{className:"dxc-login-dlg"},io(ao,null,io("h3",{style:jo.WindowHeader},e),n.map((e=>io("p",{style:jo.Alert[e.type]},function({message:e,messageCode:t,messageParams:n}){return e.replace(/\{\w+\}/gi,(e=>n[e.substring(1,e.length-1)]))}(e)))),io("form",{onSubmit:e=>{e.preventDefault(),a(c)}},Object.entries(r).map((([e,{type:t,label:n,placeholder:r}],o)=>io("label",{style:jo.Label,key:o},n?`${n}: `:"",io("input",{ref:0===o?u:void 0,type:t,name:e,autoComplete:"on",style:jo.Input,autoFocus:!0,placeholder:r,value:c[e]||"",onInput:n=>{var r;const o=function(e,t){switch(e){case"email":return t.toLowerCase();case"otp":return t.toUpperCase();default:return t}}(t,null===(r=n.target)||void 0===r?void 0:r.value);let i=Object.assign(Object.assign({},c),{[e]:o});l(i),"otp"===t&&8===(null==o?void 0:o.trim().length)&&a(i)}})))))),io("div",{style:jo.ButtonsDiv},io(ao,null,io("button",{type:"submit",style:jo.Button,onClick:()=>a(c)},o),i&&io("button",{style:jo.Button,onClick:s},i))))}class Xo extends co{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?io(Qo,Object.assign({},t)):null}}function Zo(e){const t=new WeakMap;return n=>{let r=t.get(n);return r||(r=e(n),t.set(n,r)),r}}const ei=Zo((e=>new t.BehaviorSubject(f)));function ti(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 ni=Zo((t=>ti(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})))),{}))),ri=Zo((t=>ti(ei(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 oi(...e){if(0===e.length)return{};const t=e.reduce(((e,t)=>{const n=Object.assign({},e);for(const[e,r]of Object.entries(t))if(e in n&&n[e]){if("*"===n[e])continue;if("*"===r)n[e]="*";else if(Array.isArray(r)&&Array.isArray(n[e])){const t=n,o=t[e];t[e]=[...new Set([...o,...r])]}else if("object"==typeof r&&r&&"object"==typeof n[e]){const t=n[e];for(const[e,n]of Object.entries(r))"*"!==t[e]&&("*"===n?t[e]="*":Array.isArray(t[e])&&Array.isArray(n)&&(t[e]=[...new Set([...t[e],...n])]))}}else n[e]=t[e];return n}));return t}const ii=Zo((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}(ti(t.combineLatest([ri(e._novip),ni(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=Ve(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:"*"}:oi(...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 si{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 ai=Zo((n=>{const r=ei(n._novip).pipe(Ue((t=>e.liveQuery((()=>n.members.where({email:t.email||""}).toArray()))))),i=ii(n._novip),s=ri(n._novip);return ti(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 ci(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=$r(n),d=new u.Awareness(r),f=Rr(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&&!Sr(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&&!Sr(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(Cn),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=$n(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),Dr.set(s,c),c)})}}const li={nameSuffix:!0};function ui(n){const r=n.name,i=ei(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=Xn(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),Oo(io(Xo,{db:e.vip}),n)):addEventListener("DOMContentLoaded",(()=>{t||(document.body.appendChild(n),Oo(io(Xo,{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 Or.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"})),ei(e.dx._novip),jr]).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:On?l:"offline",license:"ok"}})))}(b).subscribe(n.cloud.syncState)),s.push(b.syncCompleteEvent.subscribe(d)),b.tables.every((e=>e.core))||dr();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&&!lr?b.cloud.usingServiceWorker=!0:((null===(t=b.cloud.options)||void 0===t?void 0:t.tryUseServiceWorker)&&b.cloud.isServiceWorkerDB,b.cloud.usingServiceWorker=!1),Jr(r,b.cloud.options),Jr(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(Ae(1),Se(1)),b.cloud.persistedSyncState.pipe(Ae(1),Se(1))]));const n=ci(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(je((e=>!!e.isLoggedIn)),Se(1))):"object"==typeof x?(!S.isLoggedIn||x.userId&&S.userId!==x.userId||x.email&&S.email!==x.email)&&(k=yield ir(b,x)):S.isLoggedIn||(k=yield ir(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 Er(e,Fn,(()=>Wn(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=qr(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"}),Sr(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)||ur||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(je((e=>e)),Ue((()=>e.getPersistedSyncState())),je((e=>e&&e.serverRevision)),Ue((e=>o(this,void 0,void 0,(function*(){return{type:"ready",rev:e.serverRevision,realmSetHash:yield Ne(e)}}))))),i=t.merge(r,e.messageProducer);return function n(){return e.cloud.persistedSyncState.pipe(je((e=>null==e?void 0:e.serverRevision)),Se(1),Ue((t=>e.cloud.currentUser.pipe(me((e=>[e,t]))))),Ue((([e,t])=>jr.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(je((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 Ne(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 Nr(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 Kt(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 Fr?t.throwError((()=>r)):t.from(Wr()).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.37",options:Object.assign({},li),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=Xn(n);yield t.cloud.sync(),yield ir(t,e)}))},invites:ai(n),roles:ni(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)}`,Xn(n).reconfigure()),Jr(n.cloud.schema,n.cloud.options)},logout(){return o(this,arguments,void 0,(function*({force:e}={}){e?yield rr(Xn(n),{deleteUnsyncedData:!0}):yield nr(Xn(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=Xn(n);if("ok"!==((null===(s=a.cloud.currentUser.value.license)||void 0===s?void 0:s.status)||"ok")&&(yield Wt(a)),"pull"===i){const e=a.cloud.persistedSyncState.value;if(De(a,i),r){const n=yield t.firstValueFrom(a.cloud.persistedSyncState.pipe(je((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 Vr(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 Vr(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(je((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=ii(e),s=t=>{const i=t[o||e.cloud.currentUserId];return i?new si(i.permissions,n,void 0===o||o===e.cloud.currentUserId||r===e.cloud.currentUserId):new si({},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=>Ir(e,n))),n.Table.prototype.newId=function({colocateWith:e}={}){const t=e&&e.substr(e.length-3);return mr(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(xr({currentUserObservable:n.cloud.currentUser,db:Xn(n)})),n.use((p=Xn(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(br(Xn(n)))}ui.version="4.1.0-beta.37",e.Cloud=ui;const di=new Map;function fi(e){return e.startsWith("dexie-cloud:")&&e.split(":")[1]}const pi=new Map;function yi(t,n){let r=pi.get(t+"/"+n);return r||(r=function t(n,r){return o(this,void 0,void 0,(function*(){var o;let i=di.get(n);if(!i){const o=new e(n,{addons:[ui]});if(i=Xn(o),i.cloud.isServiceWorkerDB=!0,o.on("versionchange",s),yield i.dx.open(),di.get(n))return i.close(),yield t(n,r);di.set(n,i)}if((null===(o=i.cloud.options)||void 0===o?void 0:o.databaseUrl)&&i.cloud.schema)try{yield Hr(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),di.get(i.name)===i&&di.delete(i.name),i.dx.close(),!1}}))}(t,n).then((()=>{pi.delete(t+"/"+n)})).catch((e=>(pi.delete(t+"/"+n),Promise.reject(e)))),pi.set(t+"/"+n,r)),r}lr||(self.addEventListener("sync",(e=>{const t=fi(e.tag);t&&e.waitUntil(yi(t,"push"))})),self.addEventListener("periodicsync",(e=>{const t=fi(e.tag);t&&e.waitUntil(yi(t,"pull"))})),self.addEventListener("message",(e=>{if("dexie-cloud-sync"===e.data.type){const{dbName:t}=e.data,n=(r=1)=>yi(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
|