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