dexie-cloud-addon 4.1.0-beta.48 → 4.1.0-beta.49
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 +9 -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 +9 -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 +9 -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 +9 -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 +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e,{PropModification as t,cmp as n,DexieYProvider as r,RangeSet as o,liveQuery as i}from"dexie";import{Observable as s,BehaviorSubject as a,firstValueFrom as c,Subject as l,from as u,filter as d,fromEvent as f,of as p,merge as y,switchMap as h,tap as v,mergeMap as m,Subscription as b,throwError as g,combineLatest as _,map as w,share as k,timer as S,startWith as x}from"rxjs";var I=function(e,t){return I=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},I(e,t)};function E(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}I(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}function O(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))}function A(e,t){var n,r,o,i,s={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function a(i){return function(a){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;s;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return s.label++,{value:i[1],done:!1};case 5:s.label++,r=i[1],i=[0];continue;case 7:i=s.ops.pop(),s.trys.pop();continue;default:if(!(o=s.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){s=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){s.label=i[1];break}if(6===i[0]&&s.label<o[1]){s.label=o[1],o=i;break}if(o&&s.label<o[2]){s.label=o[2],s.ops.push(i);break}o[2]&&s.ops.pop(),s.trys.pop();continue}i=t.call(e,s)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,a])}}}function T(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function U(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),s=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)s.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return s}function C(e,t,n){if(n||2===arguments.length)for(var r,o=0,i=t.length;o<i;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))}function P(e){return this instanceof P?(this.v=e,this):new P(e)}function j(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,o=n.apply(e,t||[]),i=[];return r={},s("next"),s("throw"),s("return"),r[Symbol.asyncIterator]=function(){return this},r;function s(e){o[e]&&(r[e]=function(t){return new Promise((function(n,r){i.push([e,t,n,r])>1||a(e,t)}))})}function a(e,t){try{!function(e){e.value instanceof P?Promise.resolve(e.value.v).then(c,l):u(i[0][2],e)}(o[e](t))}catch(e){u(i[0][3],e)}}function c(e){a("next",e)}function l(e){a("throw",e)}function u(e,t){e(t),i.shift(),i.length&&a(i[0][0],i[0][1])}}function $(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=T(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise((function(r,o){(function(e,t,n,r){Promise.resolve(r).then((function(t){e({value:t,done:n})}),t)})(r,o,(t=e[n](t)).done,t.value)}))}}}const D={userId:"unauthorized",name:"Unauthorized",claims:{sub:"unauthorized"},lastLogin:new Date(0)};try{Object.freeze(D),Object.freeze(D.claims)}catch(e){}const L={},R="undefined"!=typeof self&&self.document&&"undefined"!=typeof navigator&&navigator.serviceWorker;R&&R.ready.then((e=>L.registration=e)),"undefined"!=typeof self&&"clients"in self&&!self.document&&addEventListener("message",(e=>{var t,n;(null===(n=null===(t=e.data)||void 0===t?void 0:t.type)||void 0===n?void 0:n.startsWith("sw-broadcast-"))&&[...self.clients.matchAll({includeUncontrolled:!0})].forEach((t=>{var n;return t.id!==(null===(n=e.source)||void 0===n?void 0:n.id)&&t.postMessage(e.data)}))}));class N{constructor(e){this.name=e}subscribe(e){if(!R)return()=>{};const t=t=>{var n;(null===(n=t.data)||void 0===n?void 0:n.type)===`sw-broadcast-${this.name}`&&e(t.data.message)};return R.addEventListener("message",t),()=>R.removeEventListener("message",t)}postMessage(e){var t;"object"==typeof self.clients?[...self.clients.matchAll({includeUncontrolled:!0})].forEach((t=>t.postMessage({type:`sw-broadcast-${this.name}`,message:e}))):L.registration&&(null===(t=L.registration.active)||void 0===t||t.postMessage({type:`sw-broadcast-${this.name}`,message:e}))}}const B=globalThis["lbc-events"]||(globalThis["lbc-events"]=new Map);class M extends s{constructor(e){const t="undefined"==typeof BroadcastChannel?new N(e):new BroadcastChannel(e);super((n=>{function r(e){n.next(e.detail)}function o(e){n.next(e.data)}let i;!function(e,t){B.has(e)?B.get(e).push(t):B.set(e,[t])}(`lbc-${e}`,r);try{t instanceof N?i=t.subscribe((e=>n.next(e))):t.addEventListener("message",o)}catch(e){}return()=>{!function(e,t){const n=B.get(e);if(n){const e=n.indexOf(t);-1!==e&&n.splice(e,1)}}(`lbc-${e}`,r),t instanceof N?i():t.removeEventListener("message",o)}})),this.name=e,this.bc=t}next(e){this.bc.postMessage(e);!function(e){const t=B.get(e.type);t&&t.forEach((t=>{try{t(e)}catch(e){}}))}(new CustomEvent(`lbc-${this.name}`,{detail:e}))}}function F(e){return"function"==typeof e}function W(e){return function(t){if(function(e){return F(null==e?void 0:e.lift)}(t))return t.lift((function(t){try{return e(t,this)}catch(e){this.error(e)}}));throw new TypeError("Unable to lift unknown Observable type")}}var V=function(e){return e&&"number"==typeof e.length&&"function"!=typeof e};function K(e){return F(null==e?void 0:e.then)}var H,z,q=(H=function(e){return function(t){e(this),this.message=t?t.length+" errors occurred during unsubscription:\n"+t.map((function(e,t){return t+1+") "+e.toString()})).join("\n "):"",this.name="UnsubscriptionError",this.errors=t}},(z=H((function(e){Error.call(e),e.stack=(new Error).stack}))).prototype=Object.create(Error.prototype),z.prototype.constructor=z,z);function J(e,t){if(e){var n=e.indexOf(t);0<=n&&e.splice(n,1)}}var G=function(){function e(e){this.initialTeardown=e,this.closed=!1,this._parentage=null,this._finalizers=null}var t;return e.prototype.unsubscribe=function(){var e,t,n,r,o;if(!this.closed){this.closed=!0;var i=this._parentage;if(i)if(this._parentage=null,Array.isArray(i))try{for(var s=T(i),a=s.next();!a.done;a=s.next()){a.value.remove(this)}}catch(t){e={error:t}}finally{try{a&&!a.done&&(t=s.return)&&t.call(s)}finally{if(e)throw e.error}}else i.remove(this);var c=this.initialTeardown;if(F(c))try{c()}catch(e){o=e instanceof q?e.errors:[e]}var l=this._finalizers;if(l){this._finalizers=null;try{for(var u=T(l),d=u.next();!d.done;d=u.next()){var f=d.value;try{X(f)}catch(e){o=null!=o?o:[],e instanceof q?o=C(C([],U(o)),U(e.errors)):o.push(e)}}}catch(e){n={error:e}}finally{try{d&&!d.done&&(r=u.return)&&r.call(u)}finally{if(n)throw n.error}}}if(o)throw new q(o)}},e.prototype.add=function(t){var n;if(t&&t!==this)if(this.closed)X(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=null!==(n=this._finalizers)&&void 0!==n?n:[]).push(t)}},e.prototype._hasParent=function(e){var t=this._parentage;return t===e||Array.isArray(t)&&t.includes(e)},e.prototype._addParent=function(e){var t=this._parentage;this._parentage=Array.isArray(t)?(t.push(e),t):t?[t,e]:e},e.prototype._removeParent=function(e){var t=this._parentage;t===e?this._parentage=null:Array.isArray(t)&&J(t,e)},e.prototype.remove=function(t){var n=this._finalizers;n&&J(n,t),t instanceof e&&t._removeParent(this)},e.EMPTY=((t=new e).closed=!0,t),e}();function Y(e){return e instanceof G||e&&"closed"in e&&F(e.remove)&&F(e.add)&&F(e.unsubscribe)}function X(e){F(e)?e():e.unsubscribe()}G.EMPTY;var Z={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},Q={setTimeout:function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var o=Q.delegate;return(null==o?void 0:o.setTimeout)?o.setTimeout.apply(o,C([e,t],U(n))):setTimeout.apply(void 0,C([e,t],U(n)))},clearTimeout:function(e){var t=Q.delegate;return((null==t?void 0:t.clearTimeout)||clearTimeout)(e)},delegate:void 0};function ee(e){Q.setTimeout((function(){throw e}))}function te(){}var ne=function(e){function t(t){var n=e.call(this)||this;return n.isStopped=!1,t?(n.destination=t,Y(t)&&t.add(n)):n.destination=ce,n}return E(t,e),t.create=function(e,t,n){return new se(e,t,n)},t.prototype.next=function(e){this.isStopped||this._next(e)},t.prototype.error=function(e){this.isStopped||(this.isStopped=!0,this._error(e))},t.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},t.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,e.prototype.unsubscribe.call(this),this.destination=null)},t.prototype._next=function(e){this.destination.next(e)},t.prototype._error=function(e){try{this.destination.error(e)}finally{this.unsubscribe()}},t.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},t}(G),re=Function.prototype.bind;function oe(e,t){return re.call(e,t)}var ie=function(){function e(e){this.partialObserver=e}return e.prototype.next=function(e){var t=this.partialObserver;if(t.next)try{t.next(e)}catch(e){ae(e)}},e.prototype.error=function(e){var t=this.partialObserver;if(t.error)try{t.error(e)}catch(e){ae(e)}else ae(e)},e.prototype.complete=function(){var e=this.partialObserver;if(e.complete)try{e.complete()}catch(e){ae(e)}},e}(),se=function(e){function t(t,n,r){var o,i,s=e.call(this)||this;F(t)||!t?o={next:null!=t?t:void 0,error:null!=n?n:void 0,complete:null!=r?r:void 0}:s&&Z.useDeprecatedNextContext?((i=Object.create(t)).unsubscribe=function(){return s.unsubscribe()},o={next:t.next&&oe(t.next,i),error:t.error&&oe(t.error,i),complete:t.complete&&oe(t.complete,i)}):o=t;return s.destination=new ie(o),s}return E(t,e),t}(ne);function ae(e){ee(e)}var ce={closed:!0,next:te,error:function(e){throw e},complete:te},le="function"==typeof Symbol&&Symbol.observable||"@@observable";function ue(e){return e}var de=function(){function e(e){e&&(this._subscribe=e)}return e.prototype.lift=function(t){var n=new e;return n.source=this,n.operator=t,n},e.prototype.subscribe=function(e,t,n){var r,o=this,i=(r=e)&&r instanceof ne||function(e){return e&&F(e.next)&&F(e.error)&&F(e.complete)}(r)&&Y(r)?e:new se(e,t,n);return function(){var e=o,t=e.operator,n=e.source;i.add(t?t.call(i,n):n?o._subscribe(i):o._trySubscribe(i))}(),i},e.prototype._trySubscribe=function(e){try{return this._subscribe(e)}catch(t){e.error(t)}},e.prototype.forEach=function(e,t){var n=this;return new(t=fe(t))((function(t,r){var o=new se({next:function(t){try{e(t)}catch(e){r(e),o.unsubscribe()}},error:r,complete:t});n.subscribe(o)}))},e.prototype._subscribe=function(e){var t;return null===(t=this.source)||void 0===t?void 0:t.subscribe(e)},e.prototype[le]=function(){return this},e.prototype.pipe=function(){for(var e,t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return(0===(e=t).length?ue:1===e.length?e[0]:function(t){return e.reduce((function(e,t){return t(e)}),t)})(this)},e.prototype.toPromise=function(e){var t=this;return new(e=fe(e))((function(e,n){var r;t.subscribe((function(e){return r=e}),(function(e){return n(e)}),(function(){return e(r)}))}))},e.create=function(t){return new e(t)},e}();function fe(e){var t;return null!==(t=null!=e?e:Z.Promise)&&void 0!==t?t:Promise}function pe(e){return F(e[le])}function ye(e){return Symbol.asyncIterator&&F(null==e?void 0:e[Symbol.asyncIterator])}function he(e){return new TypeError("You provided "+(null!==e&&"object"==typeof e?"an invalid object":"'"+e+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}var ve="function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator";function me(e){return F(null==e?void 0:e[ve])}function be(e){return j(this,arguments,(function(){var t,n,r;return A(this,(function(o){switch(o.label){case 0:t=e.getReader(),o.label=1;case 1:o.trys.push([1,,9,10]),o.label=2;case 2:return[4,P(t.read())];case 3:return n=o.sent(),r=n.value,n.done?[4,P(void 0)]:[3,5];case 4:return[2,o.sent()];case 5:return[4,P(r)];case 6:return[4,o.sent()];case 7:return o.sent(),[3,2];case 8:return[3,10];case 9:return t.releaseLock(),[7];case 10:return[2]}}))}))}function ge(e){return F(null==e?void 0:e.getReader)}function _e(e){if(e instanceof de)return e;if(null!=e){if(pe(e))return o=e,new de((function(e){var t=o[le]();if(F(t.subscribe))return t.subscribe(e);throw new TypeError("Provided object does not correctly implement Symbol.observable")}));if(V(e))return r=e,new de((function(e){for(var t=0;t<r.length&&!e.closed;t++)e.next(r[t]);e.complete()}));if(K(e))return n=e,new de((function(e){n.then((function(t){e.closed||(e.next(t),e.complete())}),(function(t){return e.error(t)})).then(null,ee)}));if(ye(e))return we(e);if(me(e))return t=e,new de((function(e){var n,r;try{for(var o=T(t),i=o.next();!i.done;i=o.next()){var s=i.value;if(e.next(s),e.closed)return}}catch(e){n={error:e}}finally{try{i&&!i.done&&(r=o.return)&&r.call(o)}finally{if(n)throw n.error}}e.complete()}));if(ge(e))return we(be(e))}var t,n,r,o;throw he(e)}function we(e){return new de((function(t){(function(e,t){var n,r,o,i;return O(this,void 0,void 0,(function(){var s,a;return A(this,(function(c){switch(c.label){case 0:c.trys.push([0,5,6,11]),n=$(e),c.label=1;case 1:return[4,n.next()];case 2:if((r=c.sent()).done)return[3,4];if(s=r.value,t.next(s),t.closed)return[2];c.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return a=c.sent(),o={error:a},[3,11];case 6:return c.trys.push([6,,9,10]),r&&!r.done&&(i=n.return)?[4,i.call(n)]:[3,8];case 7:c.sent(),c.label=8;case 8:return[3,10];case 9:if(o)throw o.error;return[7];case 10:return[7];case 11:return t.complete(),[2]}}))}))})(e,t).catch((function(e){return t.error(e)}))}))}function ke(e,t,n,r,o){return new Se(e,t,n,r,o)}var Se=function(e){function t(t,n,r,o,i,s){var a=e.call(this,t)||this;return a.onFinalize=i,a.shouldUnsubscribe=s,a._next=n?function(e){try{n(e)}catch(e){t.error(e)}}:e.prototype._next,a._error=o?function(e){try{o(e)}catch(e){t.error(e)}finally{this.unsubscribe()}}:e.prototype._error,a._complete=r?function(){try{r()}catch(e){t.error(e)}finally{this.unsubscribe()}}:e.prototype._complete,a}return E(t,e),t.prototype.unsubscribe=function(){var t;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var n=this.closed;e.prototype.unsubscribe.call(this),!n&&(null===(t=this.onFinalize)||void 0===t||t.call(this))}},t}(ne),xe=function(e){function t(t,n){return e.call(this)||this}return E(t,e),t.prototype.schedule=function(e,t){return this},t}(G),Ie={setInterval:function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var o=Ie.delegate;return(null==o?void 0:o.setInterval)?o.setInterval.apply(o,C([e,t],U(n))):setInterval.apply(void 0,C([e,t],U(n)))},clearInterval:function(e){var t=Ie.delegate;return((null==t?void 0:t.clearInterval)||clearInterval)(e)},delegate:void 0},Ee=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.scheduler=t,r.work=n,r.pending=!1,r}return E(t,e),t.prototype.schedule=function(e,t){if(void 0===t&&(t=0),this.closed)return this;this.state=e;var n=this.id,r=this.scheduler;return null!=n&&(this.id=this.recycleAsyncId(r,n,t)),this.pending=!0,this.delay=t,this.id=this.id||this.requestAsyncId(r,this.id,t),this},t.prototype.requestAsyncId=function(e,t,n){return void 0===n&&(n=0),Ie.setInterval(e.flush.bind(e,this),n)},t.prototype.recycleAsyncId=function(e,t,n){if(void 0===n&&(n=0),null!=n&&this.delay===n&&!1===this.pending)return t;Ie.clearInterval(t)},t.prototype.execute=function(e,t){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;var n=this._execute(e,t);if(n)return n;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))},t.prototype._execute=function(e,t){var n,r=!1;try{this.work(e)}catch(e){r=!0,n=e||new Error("Scheduled action threw falsy error")}if(r)return this.unsubscribe(),n},t.prototype.unsubscribe=function(){if(!this.closed){var t=this.id,n=this.scheduler,r=n.actions;this.work=this.state=this.scheduler=null,this.pending=!1,J(r,this),null!=t&&(this.id=this.recycleAsyncId(n,t,null)),this.delay=null,e.prototype.unsubscribe.call(this)}},t}(xe),Oe={now:function(){return(Oe.delegate||Date).now()},delegate:void 0},Ae=function(){function e(t,n){void 0===n&&(n=e.now),this.schedulerActionCtor=t,this.now=n}return e.prototype.schedule=function(e,t,n){return void 0===t&&(t=0),new this.schedulerActionCtor(this,e).schedule(n,t)},e.now=Oe.now,e}(),Te=new(function(e){function t(t,n){void 0===n&&(n=Ae.now);var r=e.call(this,t,n)||this;return r.actions=[],r._active=!1,r._scheduled=void 0,r}return E(t,e),t.prototype.flush=function(e){var t=this.actions;if(this._active)t.push(e);else{var n;this._active=!0;do{if(n=e.execute(e.state,e.delay))break}while(e=t.shift());if(this._active=!1,n){for(;e=t.shift();)e.unsubscribe();throw n}}},t}(Ae))(Ee),Ue=Te;function Ce(e){return e&&F(e.schedule)}function Pe(e,t,n){void 0===e&&(e=0),void 0===n&&(n=Ue);var r=-1;return null!=t&&(Ce(t)?n=t:r=t),new de((function(t){var o,i=(o=e)instanceof Date&&!isNaN(o)?+e-n.now():e;i<0&&(i=0);var s=0;return n.schedule((function(){t.closed||(t.next(s++),0<=r?this.schedule(void 0,r):t.complete())}),i)}))}function je(e){return Ce((t=e)[t.length-1])?e.pop():void 0;var t}function $e(e,t,n,r,o){void 0===r&&(r=0),void 0===o&&(o=!1);var i=t.schedule((function(){n(),o?e.add(this.schedule(null,r)):this.unsubscribe()}),r);if(e.add(i),!o)return i}function De(e){return W((function(t,n){var r,o=null,i=!1;o=t.subscribe(ke(n,void 0,void 0,(function(s){r=_e(e(s,De(e)(t))),o?(o.unsubscribe(),o=null,r.subscribe(n)):i=!0}))),i&&(o.unsubscribe(),o=null,r.subscribe(n))}))}function Le(e,t){return void 0===t&&(t=0),W((function(n,r){n.subscribe(ke(r,(function(n){return $e(r,e,(function(){return r.next(n)}),t)}),(function(){return $e(r,e,(function(){return r.complete()}),t)}),(function(n){return $e(r,e,(function(){return r.error(n)}),t)})))}))}function Re(e,t){return void 0===t&&(t=0),W((function(n,r){r.add(e.schedule((function(){return n.subscribe(r)}),t))}))}function Ne(e,t){if(!e)throw new Error("Iterable cannot be null");return new de((function(n){$e(n,t,(function(){var r=e[Symbol.asyncIterator]();$e(n,t,(function(){r.next().then((function(e){e.done?n.complete():n.next(e.value)}))}),0,!0)}))}))}function Be(e,t){if(null!=e){if(pe(e))return function(e,t){return _e(e).pipe(Re(t),Le(t))}(e,t);if(V(e))return function(e,t){return new de((function(n){var r=0;return t.schedule((function(){r===e.length?n.complete():(n.next(e[r++]),n.closed||this.schedule())}))}))}(e,t);if(K(e))return function(e,t){return _e(e).pipe(Re(t),Le(t))}(e,t);if(ye(e))return Ne(e,t);if(me(e))return function(e,t){return new de((function(n){var r;return $e(n,t,(function(){r=e[ve](),$e(n,t,(function(){var e,t,o;try{t=(e=r.next()).value,o=e.done}catch(e){return void n.error(e)}o?n.complete():n.next(t)}),0,!0)})),function(){return F(null==r?void 0:r.return)&&r.return()}}))}(e,t);if(ge(e))return function(e,t){return Ne(be(e),t)}(e,t)}throw he(e)}function Me(e,t){return W((function(n,r){var o=0;n.subscribe(ke(r,(function(n){r.next(e.call(t,n,o++))})))}))}function Fe(e,t,n){return void 0===n&&(n=1/0),F(t)?Fe((function(n,r){return Me((function(e,o){return t(n,e,r,o)}))(_e(e(n,r)))}),n):("number"==typeof t&&(n=t),W((function(t,r){return function(e,t,n,r,o,i,s,a){var c=[],l=0,u=0,d=!1,f=function(){!d||c.length||l||t.complete()},p=function(e){return l<r?y(e):c.push(e)},y=function(e){i&&t.next(e),l++;var a=!1;_e(n(e,u++)).subscribe(ke(t,(function(e){null==o||o(e),i?p(e):t.next(e)}),(function(){a=!0}),void 0,(function(){if(a)try{l--;for(var e=function(){var e=c.shift();s?$e(t,s,(function(){return y(e)})):y(e)};c.length&&l<r;)e();f()}catch(e){t.error(e)}})))};return e.subscribe(ke(t,p,(function(){d=!0,f()}))),function(){null==a||a()}}(t,r,e,n)})))}function We(){return void 0===(e=1)&&(e=1/0),Fe(ue,e);var e}function Ve(e,t){return void 0===t&&(t=Te),W((function(n,r){var o=null,i=null,s=null,a=function(){if(o){o.unsubscribe(),o=null;var e=i;i=null,r.next(e)}};function c(){var n=s+e,i=t.now();if(i<n)return o=this.schedule(void 0,n-i),void r.add(o);a()}n.subscribe(ke(r,(function(n){i=n,s=t.now(),o||(o=t.schedule(c,e),r.add(o))}),(function(){a(),r.complete()}),void 0,(function(){i=o=null})))}))}function Ke(){for(var e,t,n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];return We()((e=n,(t=je(n))?Be(e,t):_e(e)))}var He=new de((function(e){return e.complete()}));function ze(e){return e<=0?function(){return He}:W((function(t,n){var r=0;t.subscribe(ke(n,(function(t){++r<=e&&(n.next(t),e<=r&&n.complete())})))}))}function qe(e,t){return t?function(n){return Ke(t.pipe(ze(1),W((function(e,t){e.subscribe(ke(t,te))}))),n.pipe(qe(e)))}:Fe((function(t,n){return e(t,n).pipe(ze(1),function(e){return Me((function(){return e}))}(t))}))}function Je(e,t){void 0===t&&(t=Te);var n=Pe(e,t);return qe((function(){return n}))}function Ge(e,t){return void 0===t&&(t=ue),e=null!=e?e:Ye,W((function(n,r){var o,i=!0;n.subscribe(ke(r,(function(n){var s=t(n);!i&&e(o,s)||(i=!1,o=s,r.next(n))})))}))}function Ye(e,t){return e===t}function Xe(e,t){return W((function(n,r){var o=0;n.subscribe(ke(r,(function(n){return e.call(t,n,o++)&&r.next(n)})))}))}function Ze(e){return Xe((function(t,n){return e<=n}))}function Qe(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=je(e);return W((function(t,r){(n?Ke(e,t,n):Ke(e,t)).subscribe(r)}))}function et(e,t){return W((function(n,r){var o=null,i=0,s=!1,a=function(){return s&&!o&&r.complete()};n.subscribe(ke(r,(function(n){null==o||o.unsubscribe();var s=0,c=i++;_e(e(n,c)).subscribe(o=ke(r,(function(e){return r.next(t?t(n,e,c,s++):e)}),(function(){o=null,a()})))}),(function(){s=!0,a()})))}))}function tt(e,t,n){var r=F(e)||t||n?{next:e,error:t,complete:n}:e;return r?W((function(e,t){var n;null===(n=r.subscribe)||void 0===n||n.call(r);var o=!0;e.subscribe(ke(t,(function(e){var n;null===(n=r.next)||void 0===n||n.call(r,e),t.next(e)}),(function(){var e;o=!1,null===(e=r.complete)||void 0===e||e.call(r),t.complete()}),(function(e){var n;o=!1,null===(n=r.error)||void 0===n||n.call(r,e),t.error(e)}),(function(){var e,t;o&&(null===(e=r.unsubscribe)||void 0===e||e.call(r)),null===(t=r.finalize)||void 0===t||t.call(r)})))})):ue}let nt=!1;function rt(e,t){return O(this,void 0,void 0,(function*(){try{const n=yield navigator.serviceWorker.ready;if("push"===t&&n.sync&&(yield n.sync.register(`dexie-cloud:${e.name}`)),!n.active)throw new Error("Failed to trigger sync - there's no active service worker");return void n.active.postMessage({type:"dexie-cloud-sync",dbName:e.name,purpose:t})}catch(e){nt||(nt=!0)}}))}function ot(e,t){e.cloud.usingServiceWorker?rt(e,t):e.localSyncEvent.next({purpose:t})}const it="fromBase64"in Uint8Array,st="toBase64"in Uint8Array.prototype,at="undefined"!=typeof Buffer?e=>Buffer.from(e,"base64"):it?e=>Uint8Array.fromBase64(e):e=>{const t=atob(e),n=t.length,r=new Uint8Array(n);for(var o=0;o<n;o++)r[o]=t.charCodeAt(o);return r},ct="undefined"!=typeof Buffer?e=>ArrayBuffer.isView(e)?Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("base64"):Buffer.from(e).toString("base64"):st?e=>(ArrayBuffer.isView(e)?e:new Uint8Array(e)).toBase64():e=>{const t=ArrayBuffer.isView(e)?e:new Uint8Array(e),n=[];for(let e=0,r=t.length;e<r;e+=4096){const r=t.subarray(e,e+4096);n.push(String.fromCharCode.apply(null,r))}return btoa(n.join(""))};function lt(e){return O(this,arguments,void 0,(function*({realms:e,inviteRealms:t}){const n=JSON.stringify([...e.map((e=>({realmId:e,accepted:!0}))),...t.map((e=>({realmId:e,accepted:!1})))].sort(((e,t)=>e.realmId<t.realmId?-1:e.realmId>t.realmId?1:0))),r=(new TextEncoder).encode(n),o=yield crypto.subtle.digest("SHA-1",r);return ct(o)}))}function ut(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 dt(e){return`$${e}_mutations`}function ft(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 pt=[].concat;function yt(e){return pt.apply([],e)}function ht(e,t){return O(this,arguments,void 0,(function*(e,t,{since:n={},limit:r=1/0}={}){const o=yt(yield Promise.all(e.map((e=>O(this,void 0,void 0,(function*(){const t=ft(e.name),o=n[t];let i=o?e.where("rev").above(o):e;r<1/0&&(i=i.limit(r));return(yield i.toArray()).map((e=>({table:t,mut:e})))})))))).sort(((e,t)=>e.mut.txid===t.mut.txid?e.mut.opNo-t.mut.opNo:e.mut.ts-t.mut.ts)),i=[];let s=null,a=null;for(const{table:e,mut:t}of o)s&&s.table===e&&a===t.txid?s.muts.push(t):(s={table:e,muts:[t]},a=t.txid,i.push(s));return i}))}function vt(e){const t=new Uint8Array(e);if("undefined"!=typeof crypto)crypto.getRandomValues(t);else for(let n=0;n<e;n++)t[n]=Math.floor(256*Math.random());if("undefined"!=typeof Buffer&&Buffer.from)return Buffer.from(t).toString("base64");if("undefined"!=typeof btoa)return btoa(String.fromCharCode.apply(null,t));throw new Error("No btoa or Buffer available")}const mt={}.hasOwnProperty;function bt(e,t,n){if(e&&void 0!==t&&(!("isFrozen"in Object)||!Object.isFrozen(e)))if("string"!=typeof t&&"length"in t){!function(e){if(!e)throw new Error("Assertion Failed")}("string"!=typeof n&&"length"in n);for(var r=0,o=t.length;r<o;++r)bt(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 mt.call(e,t)}(e,s)||(c=e[s]={}),bt(c,a,n)}}else void 0===n?Array.isArray(e)&&!isNaN(parseInt(t))?e.splice(t,1):delete e[t]:e[t]=n}}const gt="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=_t)=>{const n=Buffer.alloc(e);return t(n),n.toString("base64")}:()=>{throw new Error("No implementation of randomString was found")};function _t(e){for(let t=0;t<e.length;++t)e[t]=Math.floor(256*Math.random())}function wt(e){return"string"==typeof e||!!(Array.isArray(e)&&e.some((e=>wt(e)))&&e.every(kt))}function kt(e){return"string"==typeof e||"number"==typeof e||Array.isArray(e)&&e.every(kt)}function St(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))bt(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 xt(e,t){for(const{table:n,muts:r}of t)for(const t of r)St(e,n,t)}const It=Math.floor,Et=Math.abs,Ot=(e,t)=>e>t?e:t,At=128,Tt=127,Ut=Number.MAX_SAFE_INTEGER,Ct=Number.isInteger||(e=>"number"==typeof e&&isFinite(e)&&It(e)===e),Pt=Array.isArray,jt="undefined"!=typeof TextEncoder?new TextEncoder:null,$t=jt?e=>jt.encode(e):e=>{const t=unescape(encodeURIComponent(e)),n=t.length,r=new Uint8Array(n);for(let e=0;e<n;e++)r[e]=t.codePointAt(e);return r};let Dt="undefined"==typeof TextDecoder?null:new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});Dt&&1===Dt.decode(new Uint8Array).length&&(Dt=null);class Lt{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}}const Rt=(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},Nt=(e,t)=>{for(;t>Tt;)Rt(e,At|Tt&t),t=It(t/128);Rt(e,Tt&t)},Bt=new Uint8Array(3e4),Mt=Bt.length/3,Ft=jt&&jt.encodeInto?(e,t)=>{if(t.length<Mt){const n=jt.encodeInto(t,Bt).written||0;Nt(e,n);for(let t=0;t<n;t++)Rt(e,Bt[t])}else Wt(e,$t(t))}:(e,t)=>{const n=unescape(encodeURIComponent(t)),r=n.length;Nt(e,r);for(let t=0;t<r;t++)Rt(e,n.codePointAt(t))},Wt=(e,t)=>{Nt(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(Ot(2*n,i)),e.cbuf.set(t.subarray(o)),e.cpos=i)})(e,t)},Vt=(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*Ot(n,t)),e.cpos=0)})(e,t);const n=new DataView(e.cbuf.buffer,e.cpos,t);return e.cpos+=t,n},Kt=(e,t)=>Vt(e,8).setBigUint64(0,t,!1),Ht=new DataView(new ArrayBuffer(4)),zt=(e,t)=>{switch(typeof t){case"string":Rt(e,119),Ft(e,t);break;case"number":Ct(t)&&Et(t)<=2147483647?(Rt(e,125),((e,t)=>{const n=(e=>0!==e?e<0:1/e<0)(t);for(n&&(t=-t),Rt(e,(t>63?At:0)|(n?64:0)|63&t),t=It(t/64);t>0;)Rt(e,(t>Tt?At:0)|Tt&t),t=It(t/128)})(e,t)):(n=t,Ht.setFloat32(0,n),Ht.getFloat32(0)===n?(Rt(e,124),((e,t)=>{Vt(e,4).setFloat32(0,t,!1)})(e,t)):(Rt(e,123),((e,t)=>{Vt(e,8).setFloat64(0,t,!1)})(e,t)));break;case"bigint":Rt(e,122),((e,t)=>{Vt(e,8).setBigInt64(0,t,!1)})(e,t);break;case"object":if(null===t)Rt(e,126);else if(Pt(t)){Rt(e,117),Nt(e,t.length);for(let n=0;n<t.length;n++)zt(e,t[n])}else if(t instanceof Uint8Array)Rt(e,116),Wt(e,t);else{Rt(e,118);const n=Object.keys(t);Nt(e,n.length);for(let r=0;r<n.length;r++){const o=n[r];Ft(e,o),zt(e,t[o])}}break;case"boolean":Rt(e,t?120:121);break;default:Rt(e,127)}var n};function qt(e){const t=new Lt;switch(Ft(t,e.type),"table"in e&&Ft(t,e.table),"prop"in e&&Ft(t,e.prop),e.type){case"u-ack":case"u-reject":Kt(t,BigInt(e.i));break;case"outdated-server-rev":break;case"y-complete-sync-done":Ft(t,e.yServerRev);break;default:switch(zt(t,e.k),e.type){case"aware":Wt(t,e.u);break;case"doc-open":zt(t,e.serverRev),zt(t,e.sv);break;case"doc-close":break;case"sv":Wt(t,e.sv);break;case"u-c":Wt(t,e.u),Kt(t,BigInt(e.i));break;case"u-s":Wt(t,e.u),Ft(t,e.r||"")}}return(e=>{const t=new Uint8Array((e=>{let t=e.cpos;for(let n=0;n<e.bufs.length;n++)t+=e.bufs[n].length;return t})(e));let n=0;for(let r=0;r<e.bufs.length;r++){const o=e.bufs[r];t.set(o,n),n+=o.length}return t.set(new Uint8Array(e.cbuf.buffer,0,e.cpos),n),t})(t)}const Jt=e=>new Error(e),Gt=Jt("Unexpected end of array"),Yt=Jt("Integer out of Range");class Xt{constructor(e){this.arr=e,this.pos=0}}const Zt=e=>e.pos!==e.arr.length,Qt=e=>((e,t)=>{const n=new Uint8Array(e.arr.buffer,e.pos+e.arr.byteOffset,t);return e.pos+=t,n})(e,tn(e)),en=e=>e.arr[e.pos++],tn=e=>{let t=0,n=1;const r=e.arr.length;for(;e.pos<r;){const r=e.arr[e.pos++];if(t+=(r&Tt)*n,n*=128,r<At)return t;if(t>Ut)throw Yt}throw Gt},nn=Dt?e=>Dt.decode(Qt(e)):e=>{let t=tn(e);if(0===t)return"";{let n=String.fromCodePoint(en(e));if(--t<100)for(;t--;)n+=String.fromCodePoint(en(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))}},rn=(e,t)=>{const n=new DataView(e.arr.buffer,e.arr.byteOffset+e.pos,t);return e.pos+=t,n},on=e=>rn(e,8).getBigUint64(0,!1),sn=[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&At))return o*n;const i=e.arr.length;for(;e.pos<i;){if(t=e.arr[e.pos++],n+=(t&Tt)*r,r*=128,t<At)return o*n;if(n>Ut)throw Yt}throw Gt},e=>rn(e,4).getFloat32(0,!1),e=>rn(e,8).getFloat64(0,!1),e=>rn(e,8).getBigInt64(0,!1),e=>!1,e=>!0,nn,e=>{const t=tn(e),n={};for(let r=0;r<t;r++){n[nn(e)]=an(e)}return n},e=>{const t=tn(e),n=[];for(let r=0;r<t;r++)n.push(an(e));return n},Qt],an=e=>sn[127-en(e)](e);function cn(e){return j(this,arguments,(function*(){var t,n,r,o;let i=0,s=new Uint8Array(4),a=0,c=[],l=0;try{for(var u,d=!0,f=$(e);!(t=(u=yield P(f.next())).done);d=!0){o=u.value,d=!1;const e=o,t=new DataView(e.buffer,e.byteOffset,e.byteLength);let n=0;for(;n<e.byteLength;)switch(i){case 0:if(n+4>e.byteLength){for(const t of e.slice(n)){if(4===a)break;s[a++]=t,++n}if(a<4)break}else if(a>0&&a<4)for(const t of e.slice(n,n+4-a))s[a++]=t,++n;case 1:l=4===a?new DataView(s.buffer,0,4).getUint32(0,!1):t.getUint32(n,!1),a?a=0:n+=4;case 2:if(n>=e.byteLength){i=2;break}if(n+l>e.byteLength)c.push(e.slice(n)),l-=e.byteLength-n,i=2,n=e.byteLength;else{if(c.length>0){const t=new Uint8Array(c.reduce(((e,t)=>e+t.byteLength),l));let r=0;for(const e of c)t.set(e,r),r+=e.byteLength;t.set(e.slice(n,n+l),r),c=[],yield yield P(t)}else yield yield P(e.slice(n,n+l));n+=l,i=0}}}}catch(e){n={error:e}}finally{try{d||t||!(r=f.return)||(yield P(r.call(f)))}finally{if(n)throw n.error}}}))}class ln 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 un(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 dn(e,t,...n){return un(e,{type:"message-alert",title:t,alerts:n,fields:{},submitLabel:"OK",cancelLabel:null})}function fn(e,t,n){return O(this,void 0,void 0,(function*(){let r=n||"";for(;!r||!/^[\w-+.]+@([\w-]+\.)+[\w-]{2,10}(\sas\s[\w-+.]+@([\w-]+\.)+[\w-]{2,10})?$/.test(r);)r=(yield un(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 pn(e,t,n){return O(this,void 0,void 0,(function*(){const r=[{type:"info",messageCode:"OTP_SENT",message:"A One-Time password has been sent to {email}",messageParams:{email:t}}];n&&r.push(n);const{otp:o}=yield un(e,{type:"otp",title:"Enter OTP",alerts:r,fields:{otp:{type:"otp",label:"OTP",placeholder:"Paste OTP here"}}});return o}))}function yn(e){return O(this,void 0,void 0,(function*(){var t,n,r;const o=yield e.getCurrentUser(),{accessToken:i,accessTokenExpiration:s,refreshToken:a,refreshTokenExpiration:c,claims:l}=o;if(!i)return null;if((null!==(t=null==s?void 0:s.getTime())&&void 0!==t?t:1/0)>Date.now()&&"ok"===((null===(n=o.license)||void 0===n?void 0:n.status)||"ok"))return o;if(!a)throw new Error("Refresh token missing");if((null!==(r=null==c?void 0:c.getTime())&&void 0!==r?r:1/0)<=Date.now())throw new Error("Refresh token has expired");const u=yield vn(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,data:u.data}),u}))}function hn(t,n,r,o,i){return O(this,void 0,void 0,(function*(){return n.accessToken&&n.accessTokenExpiration.getTime()>Date.now()?n:n.refreshToken&&(!n.refreshTokenExpiration||n.refreshTokenExpiration.getTime()>Date.now())?yield vn(t,n):yield function(t,n,r,o){return O(this,void 0,void 0,(function*(){if(!crypto.subtle)throw"undefined"!=typeof location&&"http:"===location.protocol?new Error("Dexie Cloud Addon needs to use WebCrypto, but your browser has disabled it due to being served from an insecure location. Please serve it from https or http://localhost:<port> (See https://stackoverflow.com/questions/46670556/how-to-enable-crypto-subtle-for-unsecure-origins-in-chrome/46671627#46671627)"):new Error("This browser does not support WebCrypto.");const{privateKey:i,publicKey:s}=yield crypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:2048,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!1,["sign","verify"]);if(!i||!s)throw new Error("Could not generate RSA keypair");t.nonExportablePrivateKey=i;const a=function(e){const t=ct(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 ln(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 un(r,{type:"message-alert",title:"Authentication Alert",fields:{},alerts:e.alerts})),t}catch(t){if(t instanceof ln)throw yield dn(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 dn(r,"Authentication Failed",{type:"error",messageCode:"GENERIC_ERROR",message:n,messageParams:{}}).catch((()=>{}))}throw t}}))}(n,r,o,i)}))}function vn(e,t){return O(this,void 0,void 0,(function*(){if(!t.refreshToken)throw new Error("Cannot refresh token - refresh token is missing.");if(!t.nonExportablePrivateKey)throw new Error("login.nonExportablePrivateKey is missing - cannot sign refresh token without a private key.");const n=Date.now(),r="RSASSA-PKCS1-v1_5",o=(new TextEncoder).encode(t.refreshToken+n),i=yield crypto.subtle.sign(r,t.nonExportablePrivateKey,o),s=ct(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 ln(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:mn}={};const bn={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 gn(...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 bn;let i=n.get(r);if(void 0!==i)return i;const s=(o=e,mn.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:bn),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 _n={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 wn={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 kn={bigint:{replace:e=>({$t:"bigint",v:""+e}),revive:e=>BigInt(e.v)}};var Sn={Date:{replace:e=>({$t:"Date",v:isNaN(e.getTime())?"NaN":e.toISOString()}),revive:({v:e})=>new Date("NaN"===e?NaN:Date.parse(e))}},xn={Set:{replace:e=>({$t:"Set",v:Array.from(e.entries())}),revive:({v:e})=>new Set(e)}},In={Map:{replace:e=>({$t:"Map",v:Array.from(e.entries())}),revive:({v:e})=>new Map(e)}};const En="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof global?global:void 0;var On=["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","DataView","BigInt64Array","BigUint64Array"].reduce(((e,t)=>({...e,[t]:{replace:(e,n,r)=>({$t:t,v:r.ArrayBuffer.replace(0===e.byteOffset&&e.byteLength===e.buffer.byteLength?e.buffer:e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength),n,r).v}),revive:({v:e},n,r)=>{const o=En[t];return o&&new o(r.ArrayBuffer.revive({v:e},n,r))}}})),{});function An(e){return function(e){for(var t="",n=0,r=e.length;n<r;n++)t+=Cn[e[n]];return t}(ct(e))}function Tn(e){return at(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+=Un[e[n]];return t}(e))}const Un={"-":"=",0:"A",1:"B",2:"C",3:"D",4:"E",5:"F",6:"G",7:"H",8:"I",9:"J",A:"K",B:"L",C:"M",D:"N",E:"O",F:"P",G:"Q",H:"R",I:"S",J:"T",K:"U",L:"V",M:"W",N:"X",O:"Y",P:"Z",Q:"a",R:"b",S:"c",T:"d",U:"e",V:"f",W:"g",X:"h",Y:"i",Z:"j",_:"k",a:"l",b:"m",c:"n",d:"o",e:"p",f:"q",g:"r",h:"s",i:"t",j:"u",k:"v",l:"w",m:"x",n:"y",o:"z",p:"0",q:"1",r:"2",s:"3",t:"4",u:"5",v:"6",w:"7",x:"8",y:"9",z:"+","|":"/"},Cn={};for(const e of Object.keys(Un))Cn[Un[e]]=e;var Pn={ArrayBuffer:{replace:e=>({$t:"ArrayBuffer",v:An(e)}),revive:({v:e})=>{const t=Tn(e);return t.buffer.byteLength===t.byteLength?t.buffer:t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}}};class jn{constructor(e,t){this.buf=e,this.type=t}}function $n(e){const t=new XMLHttpRequest;if(t.overrideMimeType("text/plain; charset=x-user-defined"),t.open("GET",URL.createObjectURL(e),!1),t.send(),200!==t.status&&0!==t.status)throw new Error("Bad Blob access: "+t.status);return t.responseText}function Dn(e){const t=new Uint8Array(e.length);for(let n=0;n<e.length;++n)t[n]=e.charCodeAt(n);return t.buffer}var Ln={Blob:{test:(e,t)=>"Blob"===t||e instanceof jn,replace:e=>({$t:"Blob",v:ct(e instanceof jn?e.buf:Dn($n(e))),type:e.type}),revive:({type:e,v:t})=>{const n=at(t);return void 0!==typeof Blob?new Blob([n]):new jn(n.buffer,e)}}};const Rn={...wn,...kn,...Sn,...xn,...In,...On,...Pn,...Ln};function Nn(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 Bn={undefined:{replace:()=>({$t:"undefined"}),revive:()=>{}}},Mn={File:{test:(e,t)=>"File"===t,replace:e=>({$t:"File",v:ct(Dn($n(e))),type:e.type,name:e.name,lastModified:new Date(e.lastModified).toISOString()}),revive:({type:e,v:t,name:n,lastModified:r})=>{const o=at(t);return new File([o],n,{type:e,lastModified:new Date(r).getTime()})}}};const Fn="function"==typeof BigInt&&"bigint"==typeof BigInt(0);class Wn{toString(){return this.v}constructor(e){this.v=e}}const Vn=Fn?{}:{bigint:{test:e=>e instanceof Wn,replace:e=>Object.assign({$t:"bigint"},e),revive:({v:e})=>new Wn(e)}},Kn=Object.assign(Object.assign(Object.assign(Object.assign({},Bn),Vn),Mn),{PropModification:{test:e=>e instanceof t,replace:e=>Object.assign({$t:"PropModification"},e["@@propmod"]),revive:e=>{var n=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}(e,["$t"]);return new t(n)}}}),Hn=gn(Rn,Kn),zn=function(...e){const t=gn(Rn,_n,...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 Nn(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 Nn(e.slice(0,4))).getUint32(0),n=e.slice(4,t+4),r=await function(e){return new Promise(((t,n)=>{const r=new FileReader;r.onabort=e=>n(new Error("file read aborted")),r.onerror=e=>n(e.target.error),r.onload=e=>t(e.target.result),r.readAsText(e)}))}(e.slice(t+4));return await this.parse(r,n)}}}(Kn);class qn extends Error{constructor(e,t){super(t||`${e.status} ${e.statusText}`),this.httpStatus=e.status}get name(){return"HttpError"}}function Jn(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=Gn(i,o));const e=l.muts[r],n=JSON.stringify(t);e.keys[s]=n}else if("#"===t[0]){l===i&&(l=Gn(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 Gn(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 Yn=new WeakMap;function Xn(e){return O(this,void 0,void 0,(function*(){var t,n;const r=(null!==(n=null===(t=Yn.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 Zn(e,t,n,r,o,i,s,a,c){return O(this,void 0,void 0,(function*(){const l={Accept:"application/json, application/x-bison, application/x-bison-stream","Content-Type":"application/tson"},u=yield yn(o),d=null==u?void 0:u.accessToken;d&&(l.Authorization=`Bearer ${d}`);const f={v:2,dbID:null==n?void 0:n.remoteDbId,clientIdentity:a,schema:s||{},lastPull:n?{serverRevision:n.serverRevision,yServerRevision:n.yServerRevision,realms:n.realms,inviteRealms:n.inviteRealms}:void 0,baseRevs:r,changes:Jn(o.dx.core.schema,c,e),y:t,dxcv:o.cloud.version};o.syncStateChangedEvent.next({phase:"pushing"});const p=Hn.stringify(f),y=yield fetch(`${i}/sync`,{method:"post",headers:l,credentials:"include",body:p});if(o.syncStateChangedEvent.next({phase:"pulling"}),function(e,t){const n=t.headers.get("Ratelimit-Limit"),r=t.headers.get("Ratelimit-Remaining"),o=t.headers.get("Ratelimit-Reset");if(n&&r&&o){const t=Number(n),i=Math.max(0,Number(r)),s=Number(o);if(i<t/2){const t=Math.ceil(s/(i+1));Yn.set(e,new Date(Date.now()+1e3*t))}else Yn.delete(e)}}(o,y),!y.ok)throw new qn(y);if("application/x-bison"===y.headers.get("content-type"))return zn.fromBinary(yield y.blob());{const e=yield y.text();return Hn.parse(e)}}))}function Qn(t){if(null==t?void 0:t.cancelled)throw new e.AbortError("Operation was cancelled")}let er=!1;function tr(e,t,n,r){return O(this,void 0,void 0,(function*(){yield e.$baseRevs.bulkPut(Object.keys(t).filter((e=>t[e].markedForSync)).map((e=>({tableName:e,clientRev:(n[e]||0)+1,serverRev:r}))))}))}function nr(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 rr(t,r,o){return O(this,void 0,void 0,(function*(){const i=yield t.bulkGet(r),s=[],a=[];r.forEach(((r,c)=>{const l=i[c];if(l){for(const[i,s]of Object.entries(o[c]))if(i===t.schema.primKey.keyPath){if(0!==n(s,r))throw new Error("Cannot change primary key")}else e.setByKeyPath(l,i,s);s.push(r),a.push(l)}})),yield null==t.schema.primKey.keyPath?t.bulkPut(a,s):t.bulkPut(a)}))}function or(t,n){return O(this,void 0,void 0,(function*(){for(const{table:r,muts:o}of t){if(!n.dx._allTables[r])continue;const t=n.table(r),{primaryKey:i}=t.core.schema,s=e=>{switch(e[0]){case"[":if(e.endsWith("]"))try{return JSON.parse(e)}catch(e){}return e;case"#":return e.endsWith(":"+n.cloud.currentUserId)?e.substr(0,e.length-n.cloud.currentUserId.length-1):e;default:return e}};for(const n of o){const r=n.keys.map(s);switch(n.type){case"insert":i.outbound?yield t.bulkAdd(n.values,r):(r.forEach(((t,r)=>{e.setByKeyPath(n.values[r],i.keyPath,t)})),yield t.bulkAdd(n.values));break;case"upsert":i.outbound?yield t.bulkPut(n.values,r):(r.forEach(((t,r)=>{e.setByKeyPath(n.values[r],i.keyPath,t)})),yield t.bulkPut(n.values));break;case"modify":1===r.length?yield t.update(r[0],n.changeSpec):yield t.where(":id").anyOf(r).modify(n.changeSpec);break;case"update":yield rr(t,r,n.changeSpecs);break;case"delete":yield t.bulkDelete(r)}}}}))}"undefined"!=typeof self&&"undefined"!=typeof navigator&&(er=navigator.onLine,self.addEventListener("online",(()=>er=!0)),self.addEventListener("offline",(()=>er=!1)));const ir="dexie-cloud-syncer";function sr(e,t){return e.where("i").between(t,1/0,!0).toArray()}function ar(e){const t=e.dx._options.Y;if(!t)throw new Error("Y library not supplied to Dexie constructor");return t}function cr(e,t,n){var r,o,i;if(!e.dx._allTables[t])return;const s=null===(i=null===(o=null===(r=e.table(t))||void 0===r?void 0:r.schema.yProps)||void 0===o?void 0:o.find((e=>e.prop===n)))||void 0===i?void 0:i.updatesTable;return s&&e.dx._allTables[s]?e.table(s):void 0}function lr(e,t){return O(this,void 0,void 0,(function*(){var o;const i={};let s,a=!1;for(const c of e)try{switch(c.type){case"u-s":{const e=cr(t,c.table,c.prop);if(e){const t={k:c.k,u:c.u};c.r&&(t.r=c.r,s=c.r),i[e.name]=yield e.add(t)}break}case"u-ack":{const e=cr(t,c.table,c.prop);e&&(yield t.transaction("rw",e,(t=>O(this,void 0,void 0,(function*(){let n=yield t.table(e.name).get(ir);yield t.table(e.name).put(Object.assign(Object.assign({},n||{i:ir}),{unsentFrom:Math.max((null==n?void 0:n.unsentFrom)||1,c.i+1)}))})))));break}case"u-reject":{const e=cr(t,c.table,c.prop);if(!e)break;const i=null===(o=yield e.get(c.i))||void 0===o?void 0:o.k;if(null!=i){yield t.transaction("rw",e,(t=>(t.idbtrans._rejecting_y_ypdate=!0,e.where("i").aboveOrEqual(c.i).filter((e=>0===n(e.k,i)&&1==(1&(e.f||0)))).delete())));const o=r.getDocCache(t.dx).find(c.table,i,c.prop);o&&o.destroy()}break}case"in-sync":{const e=r.getDocCache(t.dx).find(c.table,c.k,c.prop);e&&!e.isSynced&&e.emit("sync",[!0]);break}case"y-complete-sync-done":s=c.yServerRev;break;case"outdated-server-rev":a=!0}}catch(e){}return{receivedUntils:i,resyncNeeded:a,yServerRevision:s}}))}const ur=1,dr=2,fr=3;function pr(t,n,r){return O(this,arguments,void 0,(function*(t,n,{yDownloadedRealms:r,realms:o}){if(r&&o&&o.every((e=>"*"===r[e])))return;const i=yield yn(t),s={"Content-Type":"application/json",Accept:"application/octet-stream"};i&&(s.Authorization=`Bearer ${i.accessToken}`);const a=yield fetch(`${n}/y/download`,{body:Hn.stringify({downloadedRealms:r||{}}),method:"POST",headers:s,credentials:"include"});if(!a.ok)throw new Error(`Failed to download Yjs documents from server. Status: ${a.status}`);yield async function(e,...t){var n,r,o;let i=e();for(let e=0;e<t.length;e++)i=t[e](i);try{for(var s,a=!0,c=$(i);!(n=(s=await c.next()).done);a=!0)s.value,a=!1}catch(e){r={error:e}}finally{try{a||n||!(o=c.return)||await o.call(c)}finally{if(r)throw r.error}}}(function(e){return function(){return j(this,arguments,(function*(){if(!e.body)throw new Error("Response body is not readable");const t=e.body.getReader();try{for(;;){const{done:e,value:n}=yield P(t.read());if(e)return yield P(void 0);yield yield P(n)}}finally{t.releaseLock()}}))}}(a),cn,(function(r){return j(this,arguments,(function*(){var o,i,s,a;let c=null,l=null,u=null,d=[];function f(e){return O(this,void 0,void 0,(function*(){const r=d[d.length-1];if(d.length>0){if(!c||!l||!u)throw new Error(`Protocol error from ${n}/y/download`);const e=cr(t,l,u);e&&(yield e.bulkAdd(d)),d=[]}c&&(l&&u&&r||e)&&(yield t.$syncState.update("syncState",(t=>{const n=t.yDownloadedRealms||{};n[c]=e?"*":{tbl:l,prop:u,key:r.k},t.yDownloadedRealms=n})))}))}try{try{for(var p,y=!0,h=$(r);!(o=(p=yield P(h.next())).done);y=!0){a=p.value,y=!1;const e=new Xt(a);for(;Zt(e);)switch(en(e)){case ur:yield P(f(!0)),c=nn(e);break;case dr:yield P(f(!1)),l=nn(e),u=nn(e);break;case fr:{const t=an(e),n=Qt(e);d.push({k:t,u:n});break}}yield P(f(!1))}}catch(e){i={error:e}}finally{try{y||o||!(s=h.return)||(yield P(s.call(h)))}finally{if(i)throw i.error}}yield P(f(!0))}catch(t){throw t instanceof e.DexieError||(yield P(f(!1))),t}}))}))}))}const yr="currentSyncWorker";function hr(e,t,n,r){return vr(e,t,n,r).then((t=>((null==r?void 0:r.justCheckIfNeeded)||e.syncStateChangedEvent.next({phase:"in-sync"}),t))).catch((o=>O(this,void 0,void 0,(function*(){return(null==r?void 0:r.justCheckIfNeeded)?Promise.reject(o):er&&(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 hr(e,t,n,Object.assign(Object.assign({},r),{retryImmediatelyOnFetchError:!1}))):(yield e.$syncState.update("syncState",{timestamp:new Date,error:""+o}),e.syncStateChangedEvent.next({phase:er?"error":"offline",error:new Error(""+(null==o?void 0:o.message)||o)}),Promise.reject(o))}))))}function vr(e,t,n){return O(this,arguments,void 0,(function*(e,t,n,{isInitialSync:r,cancelToken:o,justCheckIfNeeded:i,purpose:s}={isInitialSync:!1}){var a;if(!(null===(a=e.cloud.options)||void 0===a?void 0:a.databaseUrl))throw new Error("Internal error: sync must not be called when no databaseUrl is configured");const{databaseUrl:c}=t,l=yield e.getCurrentUser(),u=l.isLoggedIn?ut(e):[],d=u.map((t=>e.table(dt(t.name)))),f=yield e.getPersistedSyncState(),p=l.isLoggedIn,y=p?function(e,t){const n=(null==t?void 0:t.syncedTables)||[];return ut(e).filter((e=>!n.includes(e.name)))}(e,f):[];Qn(o);const h=y.length>0;if(h){if(i)return!0;yield e.transaction("rw",y,(e=>O(this,void 0,void 0,(function*(){e.idbtrans.disableChangeTracking=!0,e.idbtrans.disableAccessControl=!0,yield function(e,t,n){return O(this,void 0,void 0,(function*(){const r=new Set(n||[]);for(const n of e)"members"===n.name?yield n.toCollection().modify((e=>{r.has(e.realmId)||e.userId&&e.userId!==D.userId||(e.userId=t.userId)})):"roles"===n.name||("realms"===n.name?yield n.toCollection().modify((e=>{r.has(e.realmId)||void 0!==e.owner&&e.owner!==D.userId||(e.owner=t.userId)})):yield n.toCollection().modify((e=>{e.realmId&&r.has(e.realmId)||(e.owner&&e.owner!==D.userId||(e.owner=t.userId),e.realmId&&e.realmId!==D.userId||(e.realmId=t.userId))})))}))}(y,l,null==f?void 0:f.realms)})))),Qn(o)}const[v,m,b,{yMessages:g,lastUpdateIds:_}]=yield e.transaction("r",e.tables,(()=>O(this,void 0,void 0,(function*(){const t=yield e.getPersistedSyncState(),r=yield e.$baseRevs.toArray();let i=yield ht(d,e);const s=yield function(e,t){return O(this,void 0,void 0,(function*(){const n=[],r={};for(const o of t)if(o.schema.yProps)for(const t of o.schema.yProps){const i=ar(e),s=e.table(t.updatesTable),a=yield s.get(ir),c=(null==a?void 0:a.unsentFrom)||1,l=(null==a?void 0:a.receivedUntil)||0,u=Math.min(c,l+1),d=yield sr(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(Qn(o),h){const e=[...(null==f?void 0:f.realms)||[],...(null==f?void 0:f.inviteRealms)||[]],a=yield function(e,t,n,r){return O(this,void 0,void 0,(function*(){const o=`upload-${vt(8)}`;if(t.isLoggedIn&&e.length>0){const i=new Set(r||[]);return(yield Promise.all(e.map((e=>O(this,void 0,void 0,(function*(){const{extractKey:r}=e.core.schema.primaryKey;if(!r)return{table:e.name,muts:[]};const s=n[e.name],a=(null==s?void 0:s.generatedGlobalId)?e.filter((e=>{return r(e),!i.has(e.realmId||"")&&(t=r(e),!(n=null==s?void 0:s.idPrefix)||"string"==typeof t&&t.startsWith(n));var t,n})):e.filter((e=>{const t=r(e);return!i.has(e.realmId||"")&&wt(t)})),c=yield a.toArray();if(c.length>0){const n={type:"upsert",values:c,keys:c.map(r),userId:t.userId,txid:o};return{table:e.name,muts:[n]}}return{table:e.name,muts:[]}})))))).filter((e=>e.muts.length>0))}return[]}))}(y,l,n,e);return Qn(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=nr(v,null==m?void 0:m.latestRevisions),S=(null==m?void 0:m.clientIdentity)||gt(16);Qn(o);const x=yield Zn(v,g,m,b,e,c,n,S,l),{done:I,newSyncState:E}=yield e.transaction("rw",e.tables,(t=>O(this,void 0,void 0,(function*(){t.idbtrans.disableChangeTracking=!0,t.idbtrans.disableAccessControl=!0;for(const e of Object.keys(n))x.schema[e]&&(n[e]=x.schema[e]);yield e.$syncState.put(n,"schema");const r=yield ht(d,e,{since:k});for(const t of d){const n=ft(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()])}nr(r,k),yield tr(e,n,k,x.serverRevision);const o=yield e.getPersistedSyncState();yield function(e,t,n){return O(this,void 0,void 0,(function*(){const r=new Set,o=new Set,i=n?n.realms:[],s=n?n.inviteRealms:[],a=new Set(t.realms),c=new Set(t.realms.concat(t.inviteRealms));for(const e of i)a.has(e)||(o.add(e),c.has(e)||r.add(e));for(const e of s.concat(i))c.has(e)||r.add(e);if(r.size>0||o.size>0){const t=ut(e);for(const e of t){let t=["realms","members","roles"].includes(e.name)?r:o;0!==t.size&&(e.schema.indexes.some((e=>"realmId"===e.keyPath||Array.isArray(e.keyPath)&&"realmId"===e.keyPath[0]))?yield e.where("realmId").anyOf([...t]).delete():yield e.filter((e=>!!(null==e?void 0:e.realmId)&&t.has(e.realmId))).delete())}}if(o.size>0&&(null==n?void 0:n.yDownloadedRealms))for(const e of o)delete n.yDownloadedRealms[e]}))}(e,x,o);const i=o||{syncedTables:[],latestRevisions:{},realms:[],inviteRealms:[],clientIdentity:S};p&&(i.syncedTables=u.map((e=>e.name)).concat(y.map((e=>e.name)))),i.latestRevisions=k,i.remoteDbId=x.dbId,i.initiallySynced=!0,i.realms=x.realms,i.inviteRealms=x.inviteRealms,i.serverRevision=x.serverRevision,i.yServerRevision=x.serverRevision,i.timestamp=new Date,delete i.error;const s=mr(x.changes,r);if(yield or(s,e),x.yMessages){const{receivedUntils:t,resyncNeeded:n,yServerRevision:r}=yield lr(x.yMessages,e);r&&(i.yServerRevision=r),yield function(e,t,n){return O(this,void 0,void 0,(function*(){var r,o,i,s,a;const c={};for(const[t,n]of Object.entries(e))null!==(r=c[t])&&void 0!==r||(c[t]={}),c[t].unsentFrom=n+1;for(const[e,n]of Object.entries(t))null!==(o=c[e])&&void 0!==o||(c[e]={}),c[e].receivedUntil=n;const l=Object.values(n.dx._dbSchema).filter((e=>e.yProps)).map((e=>e.yProps.map((e=>e.updatesTable)))).flat();for(const e of l){const t=c[e],r=null!==(i=null==t?void 0:t.unsentFrom)&&void 0!==i?i:1,o=null!==(a=null!==(s=null==t?void 0:t.receivedUntil)&&void 0!==s?s:(yield n.table(e).where("i").between(1,1/0).reverse().limit(1).primaryKeys())[0])&&void 0!==a?a:0;yield n.transaction("rw",e,(()=>O(this,void 0,void 0,(function*(){const t=yield n.table(e).get(ir);t?(t.unsentFrom=Math.max(r,t.unsentFrom||1),t.receivedUntil=Math.max(o,t.receivedUntil||0),yield n.table(e).put(t)):yield n.table(e).add({i:ir,unsentFrom:r,receivedUntil:o})}))))}}))}(_,t,e),n&&(i.yDownloadedRealms={})}return e.$syncState.put(i,"syncState"),{done:0===r.length,newSyncState:i}}))));if(!I)return yield Xn(e),yield vr(e,t,n,{isInitialSync:r,cancelToken:o});const A=Object.values(n).some((e=>{var t;return null===(t=e.yProps)||void 0===t?void 0:t.length})),T=!!x.yMessages;if(A&&T)try{yield pr(e,c,E)}catch(e){}return e.syncCompleteEvent.next(),!1}))}function mr(e,t){const n={};xt(n,e);const r={};return xt(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))bt(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=gt(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 br=10,gr=1e4,_r=1e3;function wr(t){const n=[],r=new a(!0),o=new a(null);let i=!1,s=new Array(br).fill(0);return o.subscribe((()=>O(this,void 0,void 0,(function*(){if(!i&&n.length>0){i=!0,s.shift(),s.push(Date.now()),r.next(!1);try{yield function(){return O(this,void 0,void 0,(function*(){for(var r,o,i,s,a,l;n.length>0;){const u=n.shift();try{yield c(t.cloud.syncState.pipe(Xe((({phase:e})=>"in-sync"===e||"error"===e))));const n=t.cloud.persistedSyncState.value;if(!u)continue;switch(u.type){case"token-expired":const c=t.cloud.currentUser.value,d=yield vn(t.cloud.options.databaseUrl,c);yield t.table("$logins").update(c.userId,{accessToken:d.accessToken,accessTokenExpiration:d.accessTokenExpiration,claims:d.claims,license:d.license,data:d.data});break;case"realm-added":(null===(r=null==n?void 0:n.realms)||void 0===r?void 0:r.includes(u.realm))||(null===(o=null==n?void 0:n.inviteRealms)||void 0===o?void 0:o.includes(u.realm))||(yield t.cloud.sync({purpose:"pull",wait:!0}));break;case"realm-accepted":(null===(i=null==n?void 0:n.realms)||void 0===i?void 0:i.includes(u.realm))||(yield t.cloud.sync({purpose:"pull",wait:!0}));break;case"realm-removed":((null===(s=null==n?void 0:n.realms)||void 0===s?void 0:s.includes(u.realm))||(null===(a=null==n?void 0:n.inviteRealms)||void 0===a?void 0:a.includes(u.realm)))&&(yield t.cloud.sync({purpose:"pull",wait:!0}));break;case"realms-changed":yield t.cloud.sync({purpose:"pull",wait:!0});break;case"changes":if("error"===(null===(l=t.cloud.syncState.value)||void 0===l?void 0:l.phase)){ot(t,"pull");break}yield t.transaction("rw",t.dx.tables,(n=>O(this,void 0,void 0,(function*(){n.idbtrans.disableChangeTracking=!0,n.idbtrans.disableAccessControl=!0;const[r,o,i]=yield Promise.all([t.getSchema(),t.getPersistedSyncState(),t.getCurrentUser()]);if(!o||!r||!i)return;if(u.baseRev!==o.serverRevision)return void("string"!=typeof u.baseRev||"bigint"!=typeof o.serverRevision&&"object"!=typeof o.serverRevision||ot(t,"pull"));if((yield e.waitFor(lt(o)))!==u.realmSetHash)return void ot(t,"pull");let s=[];if(i.isLoggedIn){const e=ut(t).map((e=>t.table(dt(e.name))));s=yield ht(e,t)}if(u.changes.length>0){const e=mr(u.changes,s);yield or(e,t)}o.latestRevisions=nr(s,o.latestRevisions),o.serverRevision=u.newRev,yield tr(t,r,o.latestRevisions,u.newRev),yield t.$syncState.put(o,"syncState")}))))}}catch(e){}}}))}()}finally{s[s.length-1]-s[0]<gr&&(yield new Promise((e=>setTimeout(e,_r)))),i=!1,r.next(!0)}}})))),{enqueue:function(e){n.push(e),o.next(null)},readyToServe:r}}const kr=new WeakMap,Sr={members:"@id, [userId+realmId], [email+realmId], realmId",roles:"[realmId+name]",realms:"@realmId",$jobs:"",$syncState:"",$baseRevs:"[tableName+clientRev]",$logins:"claims.sub, lastLogin"};let xr=0;function Ir(e){"vip"in e&&(e=e.vip);let t=kr.get(e.cloud);if(!t){const n=new l;let r=new M(`syncstatechanged-${e.name}`),o=new M(`synccomplete-${e.name}`);n.id=++xr;let i=!1;t={get name(){return e.name},close:()=>e.close(),transaction:e.transaction.bind(e),table:e.table.bind(e),get tables(){return e.tables},cloud:e.cloud,get $jobs(){return e.table("$jobs")},get $syncState(){return e.table("$syncState")},get $baseRevs(){return e.table("$baseRevs")},get $logins(){return e.table("$logins")},get realms(){return e.realms},get members(){return e.members},get roles(){return e.roles},get initiallySynced(){return i},localSyncEvent:n,get syncStateChangedEvent(){return r},get syncCompleteEvent(){return o},dx:e};const s={getCurrentUser:()=>t.$logins.toArray().then((e=>e.find((e=>e.isLoggedIn))||D)),getPersistedSyncState:()=>t.$syncState.get("syncState"),getSchema:()=>t.$syncState.get("schema").then((e=>{if(e)for(const r of t.tables)r.schema.primKey&&r.schema.primKey.keyPath&&e[r.name]&&(e[r.name].primaryKey="string"==typeof(n=r.schema.primKey.keyPath)?n:n?"["+[].join.call(n,"+")+"]":"");var n;return e})),getOptions:()=>t.$syncState.get("options"),setInitiallySynced(e){i=e},reconfigure(){r=new M(`syncstatechanged-${e.name}`),o=new M(`synccomplete-${e.name}`)}};Object.assign(t,s),t.messageConsumer=wr(t),t.messageProducer=new l,kr.set(e.cloud,t)}return t}const Er=new WeakMap;class Or{constructor(e,t){Er.set(this,e),Object.assign(this,t)}static load(e,t){return e.table("$logins").get(t).then((n=>new Or(e,n||{userId:t,claims:{sub:t},lastLogin:new Date(0)})))}save(){return O(this,void 0,void 0,(function*(){Er.get(this).table("$logins").put(this)}))}}function Ar(e,t){return c(u(e).pipe(d(t)))}function Tr(e){return O(this,void 0,void 0,(function*(){const t=yield Ur(e);if(t){if(!(yield function(e,t,n){return O(this,void 0,void 0,(function*(){const r=[{type:"warning",messageCode:"LOGOUT_CONFIRMATION",message:"{numUnsyncedChanges} unsynced changes will get lost!\n Logout anyway?",messageParams:{currentUserId:t,numUnsyncedChanges:n.toString()}}];return yield un(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 Ur(e,{deleteUnsyncedData:!0})}}))}function Ur(e){return O(this,arguments,void 0,(function*(e,{deleteUnsyncedData:t=!1}={}){const[n,r]=yield e.dx.transaction("rw",e.dx.tables,(n=>O(this,void 0,void 0,(function*(){const r=n.idbtrans;r.disableChangeTracking=!0,r.disableAccessControl=!0;const o=n.storeNames.filter((e=>e.endsWith("_mutations"))),i=(yield Promise.all(o.map((e=>n.table(e).count())))).reduce(((e,t)=>e+t),0);if(i>0&&!t)return[i,!1];e.$syncState.delete("syncState");for(const t of e.dx.tables)"$jobs"!==t.name&&"$syncState"!==t.name&&t.clear();return[i,!0]}))));return r&&(yield Ar(e.cloud.currentUser,(e=>e.userId===D.userId)),yield e.cloud.sync({purpose:"pull",wait:!0})),n}))}function Cr(e,...t){globalThis.console[e](...t)}function Pr(e,t){return O(this,void 0,void 0,(function*(){var n;const r=yield e.getCurrentUser(),o=r.userId;if(r.isLoggedIn&&(!t||!t.email&&!t.userId)){if("ok"===((null===(n=r.license)||void 0===n?void 0:n.status)||"ok")&&r.accessToken&&(!r.accessTokenExpiration||r.accessTokenExpiration.getTime()>Date.now()))return!1;if(r.refreshToken&&(!r.refreshTokenExpiration||r.refreshTokenExpiration.getTime()>Date.now()))return yield yn(e),!1}const i=new Or(e,{claims:{},lastLogin:new Date(0)});return yield hn(e.cloud.options.databaseUrl,i,e.cloud.options.fetchTokens||function(e){const{userInteraction:t}=e.cloud;return function(n){return O(this,arguments,void 0,(function*({public_key:n,hints:r}){var o;let i;const s=null===(o=e.cloud.options)||void 0===o?void 0:o.databaseUrl;if(!s)throw new Error("No database URL given.");if("demo"===(null==r?void 0:r.grant_type))i={demo_user:yield fn(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 fn(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 dn(t,"Token request failed",{type:"error",messageCode:"GENERIC_ERROR",message:e,messageParams:{}}).catch((()=>{})),new qn(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 pn(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 pn(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 qn(o,e)}return yield o.json()}throw new Error(`Unexpected response from ${s}/token`)}))}}(e),e.cloud.userInteraction,t),o!==D.userId&&i.userId!==o&&(yield Tr(e)),yield function(e,t){return O(this,void 0,void 0,(function*(){const n=e.table("$logins");yield e.transaction("rw",n,(e=>O(this,void 0,void 0,(function*(){const e=yield n.toArray();yield Promise.all(e.filter((e=>e.userId!==t.userId&&e.isLoggedIn)).map((e=>(e.isLoggedIn=!1,n.put(e))))),t.isLoggedIn=!0,t.lastLogin=new Date;try{yield t.save()}catch(e){try{"DataCloneError"===e.name&&(Cr("debug","Login context property names:",Object.keys(t)),Cr("debug","Login context property names:",Object.keys(t)),Cr("debug","Login context:",t),Cr("debug","Login context JSON:",JSON.stringify(t)))}catch(e){}throw e}})))),yield Ar(e.cloud.currentUser,(e=>e.userId===t.userId))}))}(e,i),ot(e,"pull"),i.userId!==o}))}const jr="undefined"!=typeof InstallTrigger,$r="undefined"!=typeof navigator&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\/|Edge\//.test(navigator.userAgent),Dr=$r?[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]:NaN,Lr=$r&&Dr<=605||jr,Rr="undefined"!=typeof self&&"clients"in self&&!self.document;const{toString:Nr}={};function Br(e){return Nr.call(e).slice(8,-1)}function Mr(e,t){var n;return"delete"===t.type?t.keys:(null===(n=t.keys)||void 0===n?void 0:n.slice())||t.values.map(e.extractKey)}const Fr=/b|c|d|f|g|h|j|k|l|m|n|p|q|r|s|t|v|x|y|z/i;let Wr=0;function Vr(e,t){const n=new Uint8Array(18),r=new Uint8Array(n.buffer,0,6),o=Date.now();Wr>=o?++Wr:Wr=o,r[0]=Wr/1099511627776,r[1]=Wr/4294967296,r[2]=Wr/16777216,r[3]=Wr/65536,r[4]=Wr/256,r[5]=Wr;const i=new Uint8Array(n.buffer,6);crypto.getRandomValues(i);return e+An(new Uint8Array(n.buffer))+(t||"")}function Kr(t){return{stack:"dbcore",name:"idGenerationMiddleware",level:1,create:n=>Object.assign(Object.assign({},n),{table:r=>{const o=n.table(r);return Object.assign(Object.assign({},o),{mutate:n=>{var i,s;const a=n.trans;if("versionchange"===a.mode&&(a.disableChangeTracking=!0,a.disableAccessControl=!0),a.disableChangeTracking)return o.mutate(n);if("add"===n.type||"put"===n.type){const a=null===(i=t.cloud.schema)||void 0===i?void 0:i[r];if(null==a?void 0:a.generatedGlobalId){if((null===(s=t.cloud.options)||void 0===s?void 0:s.databaseUrl)&&!t.initiallySynced){const e=Mr(o.schema.primaryKey,n);return o.getMany({keys:e,trans:n.trans,cache:"immutable"}).then((t=>{if(t.length<e.length)throw new Error("Unable to create new objects without an initial sync having been performed.");return o.mutate(n)}))}return function(n,i){let s=null;const a=Mr(o.schema.primaryKey,n);return a.forEach(((c,l)=>{if(void 0===c){const r=n.values[l].realmId||t.cloud.currentUserId,c=r.substr(r.length-3);a[l]=Vr(i,c),o.schema.primaryKey.outbound||(s||(s=n.values.slice()),s[l]=e.deepClone(s[l]),e.setByKeyPath(s[l],o.schema.primaryKey.keyPath,a[l]))}else if("string"!=typeof c||!c.startsWith(i)&&!c.startsWith("#"+i))throw new e.ConstraintError(`The ID "${c}" is not valid for table "${r}". Primary '@' keys requires the key to be prefixed with "${i}" (or "#${i}).\nIf you want to generate IDs programmatically, remove '@' from the schema to get rid of this constraint. Dexie Cloud supports custom IDs as long as they are random and globally unique.`)})),o.mutate(Object.assign(Object.assign({},n),{keys:a,values:s||n.values}))}(n,a.idPrefix)}if(null==a?void 0:a.markedForSync){Mr(o.schema.primaryKey,n).forEach(((t,n)=>{if(!wt(t)){const n=Array.isArray(t)?t.map(Br).join(","):Br(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 Hr=0;function zr(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 qr(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 Jr=new a(new Set);function Gr(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 Yr({currentUserObservable:e,db:t}){return{stack:"dbcore",name:"MutationTrackingMiddleware",level:1,create:n=>{const r=new Set(n.schema.tables.map((e=>e.name))),i=n.schema.tables.filter((e=>!/^\$/.test(e.name))),s=new Map;for(const e of i){const t=`$${e.name}_mutations`;r.has(t)&&s.set(e.name,n.table(t))}return Object.assign(Object.assign({},n),{transaction:(r,o)=>{let i;if("readwrite"===o){const e=r.filter((e=>{var n,r;return null===(r=null===(n=t.cloud.schema)||void 0===n?void 0:n[e])||void 0===r?void 0:r.markedForSync})).map((e=>dt(e)));i=n.transaction([...r,...e],o)}else i=n.transaction(r,o);if("readwrite"===o){i.txid=vt(16),i.opCount=0,i.currentUser=e.value,Jr.value.add(i),Jr.next(Jr.value);const n=()=>{i.removeEventListener("complete",r),i.removeEventListener("error",n),i.removeEventListener("abort",n),Jr.value.delete(i),Jr.next(Jr.value)},r=()=>{i.mutationsAdded&&!Gr(t)&&ot(t,"push"),n()};i.addEventListener("complete",r),i.addEventListener("error",n),i.addEventListener("abort",n)}return i},table:e=>{const r=n.table(e);if(/^\$/.test(e))return e.endsWith("_mutations")?Object.assign(Object.assign({},r),{mutate:e=>("add"!==e.type&&"put"!==e.type||(e.trans.mutationsAdded=!0),r.mutate(e))}):"$logins"===e?Object.assign(Object.assign({},r),{mutate:e=>r.mutate(e).then((t=>(e.trans.mutationsAdded=!0,t))).catch((e=>Promise.reject(e)))}):r;const{schema:i}=r,a=s.get(e);return a?function(e){const t="$lock"+ ++Hr;return Object.assign(Object.assign({},e),{count:zr(e.count,t),get:zr(e.get,t),getMany:zr(e.getMany,t),openCursor:zr(e.openCursor,t),query:zr(e.query,t),mutate:qr(e.mutate,t)})}(Object.assign(Object.assign({},r),{mutate:n=>{var o,s,a;const l=n.trans;return l.txid?l.disableChangeTracking?r.mutate(n):(null===(s=null===(o=t.cloud.schema)||void 0===o?void 0:o[e])||void 0===s?void 0:s.markedForSync)&&(null===(a=l.currentUser)||void 0===a?void 0:a.isLoggedIn)?"deleteRange"===n.type?r.query({query:{range:n.range,index:i.primaryKey},trans:n.trans,values:!1}).then((e=>c({type:"delete",keys:e.result,trans:n.trans,criteria:{index:null,range:n.range}}))):c(n):r.mutate(n):r.mutate(n)}})):r;function c(n){var s,c;const l=n.trans,u=null===(c=null===(s=t.cloud.options)||void 0===s?void 0:s.unsyncedProperties)||void 0===c?void 0:c[e],{txid:d,currentUser:{userId:f}}=l,{type:p}=n,y=++l.opCount;function h(e){if(!u)return e;let t=e;for(const n of Object.keys(e))u.some((e=>n===e||n.startsWith(e+".")))&&(t===e&&(t=Object.assign({},e)),delete t[n]);return t}return r.mutate(n).then((e=>{var t;const{numFailures:r,failures:s}=e;let c="delete"===p?n.keys:e.results,v="values"in n?n.values:[],m="changeSpec"in n?n.changeSpec:void 0,b="updates"in n?n.updates:void 0;if(r&&(c=c.filter(((e,t)=>!s[t])),v=v.filter(((e,t)=>!s[t]))),u){if(v=v.map((e=>{const t=Object.assign({},e);for(const e of u)delete t[e];return t})),m&&(m=h(m),0===Object.keys(m).length))return e;if(b){let e=b.changeSpecs.map(h),t={keys:[],changeSpecs:[]};const n=new o;let r=!1;for(let o=0,i=e.length;o<i;++o)Object.keys(e[o]).length>0?(t.keys.push(b.keys[o]),t.changeSpecs.push(e[o]),n.addKey(b.keys[o])):r=!0;if(b=t,r){let e=[],t=[];for(let r=0,o=c.length;r<o;++r)n.hasKey(c[r])&&(e.push(c[r]),t.push(v[r]));c=e,v=t}}}const g=Date.now();let _="criteria"in n&&n.criteria?Object.assign(Object.assign({},n.criteria),{index:n.criteria.index===i.primaryKey.keyPath?null:n.criteria.index}):void 0;if(u&&(null==_?void 0:_.index)){const e=null===(t=i.indexes.find((e=>e.name===_.index)))||void 0===t?void 0:t.keyPath;(e?"string"==typeof e?[e]:e:[]).some((e=>null==u?void 0:u.includes(e)))&&(_=void 0)}const w="delete"===n.type?{type:"delete",ts:g,opNo:y,keys:c,criteria:_,txid:d,userId:f}:"add"===n.type?{type:"insert",ts:g,opNo:y,keys:c,txid:d,userId:f,values:v}:_&&m?{type:"modify",ts:g,opNo:y,keys:c,criteria:_,changeSpec:m,txid:d,userId:f}:m?{type:"update",ts:g,opNo:y,keys:c,changeSpecs:c.map((()=>m)),txid:d,userId:f}:b?{type:"update",ts:g,opNo:y,keys:b.keys,changeSpecs:b.changeSpecs,txid:d,userId:f}:{type:"upsert",ts:g,opNo:y,keys:c,values:v,txid:d,userId:f};return"isAdditionalChunk"in n&&n.isAdditionalChunk&&(w.isAdditionalChunk=!0),c.length>0||_?a.mutate({type:"add",trans:l,values:[w]}).then((()=>(l.mutationsAdded=!0,e))):e}))}}})}}}function Xr(e,t){return function(n,r){var o;const i=Object.assign(Object.assign({},Sr),n);Object.keys(Sr).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=Sr[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(Sr[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)(Fr.test(e[t])||(r=e[t])>="A"&&r<="Z")&&(n+=e[t].toLowerCase());for(var r,o,i;t.has(n);){if(/\d/g.test(n)){if(n=n.substr(0,n.length-1)+(n[n.length-1]+1),!(n.length>3))continue;n=n.substr(0,3)}else if(n.length<3){n+="2";continue}let e=1,r=n;for(;t.has(r)&&e<8;)o=n,r=(1&(i=e)?o[0].toUpperCase():o[0].toLowerCase())+(2&i?o[1].toUpperCase():o[1].toLowerCase())+(4&i?o[2].toUpperCase():o[2].toLowerCase()),++e;if(e<8)n=r;else{let e=n.charCodeAt(2)+1&127;n=n.substr(0,2)+String.fromCharCode(e)}}return n}(e,a),a.add(n.idPrefix)),/^\$/.test(e)||(i[`$${e}_mutations`]="++rev",n.markedForSync=!0),n.deleted&&(n.deleted=!1)):(n.deleted=!0,n.markedForSync=!1,i[`$${e}_mutations`]=null)}));const c=e.call(this,i,r);for(const[e,t]of Object.entries(r))if(null===(o=t.yProps)||void 0===o?void 0:o.length){const n=s[e];n&&(n.yProps=t.yProps.map((e=>e.prop)))}return c}}function Zr(e,t,n){return"undefined"!=typeof navigator&&navigator.locks?navigator.locks.request(e.name+"|"+t,(()=>n())):n()}const Qr=new a(!0),eo=new a(!0);Qr.pipe(et((e=>e?p(!0):p(!1).pipe(Je(2e4)))),Ge()).subscribe(eo);const to="undefined"!=typeof document?f(document,"visibilitychange"):p({}),no=to.pipe(Xe((()=>"hidden"===document.visibilityState))),ro=to.pipe(Xe((()=>"visible"===document.visibilityState))),oo="undefined"!=typeof window?y(ro,f(window,"mousedown"),f(window,"mousemove"),f(window,"keydown"),f(window,"wheel"),f(window,"touchmove")):p({});"undefined"!=typeof document&&y(p(!0),no,oo).pipe(Me((()=>"visible"===document.visibilityState)),tt((e=>{Qr.value!==e&&Qr.next(e)})),et((e=>e?p(0).pipe(Je(16e4),tt((()=>Qr.next(!1)))):p(0)))).subscribe((()=>{}));class io extends Error{constructor(){super(...arguments),this.name="TokenExpiredError"}}function so(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 ao=new WeakMap,co=new WeakMap;function lo(e){let t=co.get(e);return t||(t=new l,co.set(e,t)),t}class uo extends s{constructor(e,t,n,r,o,i,s,a){super((c=>new po(e,t,n,r,o,a,c,i,s)))}}let fo=0;class po extends b{constructor(e,t,n,r,o,i,s,a,c){super((()=>this.teardown())),this.id=++fo,this.subscriptions=new Set,this.reconnecting=!1,this.db=e,this.databaseUrl=e.cloud.options.databaseUrl,this.rev=t,this.yrev=n,this.realmSetHash=r,this.clientIdentity=o,this.user=i,this.subscriber=s,this.lastUserActivity=new Date,this.messageProducer=a,this.webSocketStatus=c,this.connect()}teardown(){this.disconnect()}disconnect(){if(this.webSocketStatus.next("disconnected"),this.pinger&&(clearInterval(this.pinger),this.pinger=null),this.ws)try{this.ws.close()}catch(e){}this.ws=null;for(const e of this.subscriptions)e.unsubscribe();this.subscriptions.clear()}reconnect(){if(!this.reconnecting){this.reconnecting=!0;try{this.disconnect()}catch(e){}this.connect().catch((()=>{})).then((()=>this.reconnecting=!1))}}connect(){return O(this,void 0,void 0,(function*(){if(this.lastServerActivity=new Date,this.pauseUntil&&this.pauseUntil>new Date)return;if(this.ws)throw new Error("Called connect() when a connection is already open");if(!this.databaseUrl)throw new Error("Cannot connect without a database URL");if(this.closed)return;const e=this.user.accessTokenExpiration;if(e&&e<new Date)return void this.subscriber.error(new io);this.webSocketStatus.next("connecting"),this.pinger=setInterval((()=>O(this,void 0,void 0,(function*(){if(this.closed)this.teardown();else if(this.ws)try{this.ws.send(JSON.stringify({type:"ping"})),setTimeout((()=>{this.pinger&&(this.closed?this.teardown():this.lastServerActivity<new Date(Date.now()-2e4)&&this.reconnect())}),2e4)}catch(e){this.reconnect()}else this.reconnect()}))),3e4);const t=new URL(this.databaseUrl);t.protocol="http:"===t.protocol?"ws":"wss";const n=new URLSearchParams;if(this.subscriber.closed)return;n.set("v","2"),this.rev&&n.set("rev",this.rev),this.yrev&&n.set("yrev",this.yrev),n.set("realmsHash",this.realmSetHash),n.set("clientId",this.clientIdentity),n.set("dxcv",this.db.cloud.version),this.user.accessToken&&n.set("token",this.user.accessToken);const o=this.ws=new WebSocket(`${t}/changes?${n}`);o.binaryType="arraybuffer",o.onclose=e=>{this.pinger&&this.reconnect()},o.onmessage=e=>{if(this.pinger){this.lastServerActivity=new Date;try{const t="string"==typeof e.data?Hn.parse(e.data):function(e){const t=new Xt(e),n=nn(t);if("outdated-server-rev"===n)return{type:n};if("y-complete-sync-done"===n)return{type:n,yServerRev:nn(t)};const r=nn(t),o=nn(t);switch(n){case"u-ack":case"u-reject":return{type:n,table:r,prop:o,i:Number(on(t))};default:{const e=an(t);switch(n){case"in-sync":case"doc-close":return{type:n,table:r,prop:o,k:e};case"aware":return{type:n,table:r,prop:o,k:e,u:Qt(t)};case"doc-open":return{type:n,table:r,prop:o,k:e,serverRev:an(t),sv:an(t)};case"sv":return{type:n,table:r,prop:o,k:e,sv:Qt(t)};case"u-c":return{type:n,table:r,prop:o,k:e,u:Qt(t),i:Number(on(t))};case"u-s":return{type:n,table:r,prop:o,k:e,u:Qt(t),r:t.pos<t.arr.length&&nn(t)||void 0};default:throw new TypeError(`Unknown message type: ${n}`)}}}}(new Uint8Array(e.data));if("error"===t.type)throw new Error(`Error message from dexie-cloud: ${t.error}`);if("aware"===t.type){const e=r.getDocCache(this.db.dx).find(t.table,t.k,t.prop);if(e){const n=(e=>ao.get(e))(e);if(n){so(this.db).applyAwarenessUpdate(n,t.u,"server")}}}else if("pong"===t.type);else if("doc-open"===t.type){const e=r.getDocCache(this.db.dx).find(t.table,t.k,t.prop);e&&lo(e).next()}else"u-ack"===t.type||"u-reject"===t.type||"u-s"===t.type||"in-sync"===t.type||"outdated-server-rev"===t.type||"y-complete-sync-done"===t.type?lr([t],this.db).then((e=>O(this,[e],void 0,(function*({resyncNeeded:e,yServerRevision:n,receivedUntils:r}){if(n&&(yield this.db.$syncState.update("syncState",{yServerRevision:n})),"u-s"===t.type&&r){const e=cr(this.db,t.table,t.prop);if(e){const t=r[e.name];t&&(yield e.update(ir,{receivedUntil:t}))}}e&&(yield this.db.cloud.sync({purpose:"pull",wait:!0}))})))):this.subscriber.next(t)}catch(e){this.subscriber.error(e)}}};try{let e=!1;yield new Promise(((t,n)=>{o.onopen=n=>{e=!0,t(null)},o.onerror=t=>{if(e)this.reconnect();else{const e=t.error||new Error("WebSocket Error");this.subscriber.error(e),this.webSocketStatus.next("error"),n(e)}}})),this.subscriptions.add(this.messageProducer.subscribe((e=>{var t,n;this.closed||("ready"===e.type&&"connected"!==this.webSocketStatus.value&&this.webSocketStatus.next("connected"),"ready"===e.type?(this.rev=e.rev,null===(t=this.ws)||void 0===t||t.send(Hn.stringify(e))):null===(n=this.ws)||void 0===n||n.send(qt(e)))}))),this.user.isLoggedIn&&!Gr(this.db)&&this.subscriptions.add(function(e){const t=yt(e.tables.filter((t=>{var n,r;return(null===(r=null===(n=e.cloud.schema)||void 0===n?void 0:n[t.name])||void 0===r?void 0:r.markedForSync)&&t.schema.yProps})).map((e=>e.schema.yProps.map((t=>({table:e.name,ydocProp:t.prop,updatesTable:t.updatesTable}))))));return y(...t.map((({table:t,ydocProp:n,updatesTable:r})=>{const o=e.table(r);return u(o.get(ir)).pipe(h((e=>{let r=(null==e?void 0:e.unsentFrom)||1;return u(i((()=>O(this,void 0,void 0,(function*(){return(yield sr(o,r)).filter((e=>e.f&&1&e.f)).map((e=>({type:"u-c",table:t,prop:n,k:e.k,u:e.u,i:e.i})))}))))).pipe(v((e=>{e.length>0&&(r=e.at(-1).i+1)})))})))}))).pipe(m((e=>e)))}(this.db).subscribe(this.db.messageProducer))}catch(e){this.pauseUntil=new Date(Date.now()+6e4)}}))}}class yo extends Error{constructor(e){super("expired"===e?"License expired":"deactivated"===e?"User deactivated":"Invalid license"),this.name="InvalidLicenseError",e&&(this.license=e)}}function ho(e){return O(this,void 0,void 0,(function*(){var e;yield(e=3e3,new Promise((t=>setTimeout(t,e)))),yield c(oo)}))}function vo(e){return O(this,void 0,void 0,(function*(){var t;return!(!(null===(t=e.cloud.options)||void 0===t?void 0:t.databaseUrl)||!e.cloud.schema)&&(yield hr(e,e.cloud.options,e.cloud.schema,{justCheckIfNeeded:!0}))}))}const mo=new WeakMap;function bo(e,t,n,r){const o=mo.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 bo(e,t,n,r)}))}}const i=function(){return O(this,void 0,void 0,(function*(){try{yield Xn(e),yield Zr(e,yr,(()=>hr(e,t,n,r))),mo.delete(e)}catch(t){throw mo.delete(e),t}}))}();return mo.set(e,{promise:i,pull:"push"!==(null==r?void 0:r.purpose)}),i}const go=1e3;function _o(e,t,n){let r=null,o={cancelled:!1},i=0,s=0;function a(r=1){setTimeout((()=>{const d=c?"pull":"push";s=Date.now(),bo(e,t,n,{cancelToken:o,retryImmediatelyOnFetchError:!0,purpose:d}).then((()=>{if(o.cancelled)f();else if(c||l)return c=!1,l=!1,a();u=!1,i=0,s=0})).catch((e=>{if(o.cancelled)f(),u=!1,i=0,s=0;else if(r<5){const e=[0,20,40,300,900][r]*go;i=Date.now()+e,s=0,setTimeout((()=>a(r+1)),e)}else u=!1,i=0,s=0}))}),0)}let c=!1,l=!1,u=!1;const d=e=>{o.cancelled||("pull"===e&&(c=!0),"push"===e&&(l=!0),u?i||s>0&&Date.now():(u=!0,a()))},f=()=>{o.cancelled=!0,r&&r.unsubscribe()};return{start:()=>{r=e.localSyncEvent.subscribe((({purpose:e})=>{d(e||"pull")}))},stop:f}}function wo(e,t){if(e&&t&&t.unsyncedTables)for(const n of t.unsyncedTables)e[n]&&(e[n].markedForSync=!1)}var ko,So,xo,Io,Eo,Oo={},Ao=[],To=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function Uo(e,t){for(var n in t)e[n]=t[n];return e}function Co(e){var t=e.parentNode;t&&t.removeChild(e)}function Po(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?ko.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 jo(e,s,r,o,null)}function jo(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?++xo:o};return null==o&&null!=So.vnode&&So.vnode(i),i}function $o(e){return e.children}function Do(e,t){this.props=e,this.context=t}function Lo(e,t){if(null==t)return e.__?Lo(e.__,e.__.__k.indexOf(e)+1):null;for(var n;t<e.__k.length;t++)if(null!=(n=e.__k[t])&&null!=n.__e)return n.__e;return"function"==typeof e.type?Lo(e):null}function Ro(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 Ro(e)}}function No(e){(!e.__d&&(e.__d=!0)&&Io.push(e)&&!Bo.__r++||Eo!==So.debounceRendering)&&((Eo=So.debounceRendering)||setTimeout)(Bo)}function Bo(){for(var e;Bo.__r=Io.length;)e=Io.sort((function(e,t){return e.__v.__b-t.__v.__b})),Io=[],e.some((function(e){var t,n,r,o,i,s;e.__d&&(i=(o=(t=e).__v).__e,(s=t.__P)&&(n=[],(r=Uo({},o)).__v=o.__v+1,qo(s,o,r,t.__n,void 0!==s.ownerSVGElement,null!=o.__h?[i]:null,n,null==i?Lo(o):i,o.__h),Jo(n,o),o.__e!=i&&Ro(o)))}))}function Mo(e,t,n,r,o,i,s,a,c,l){var u,d,f,p,y,h,v,m=r&&r.__k||Ao,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?jo(null,p,null,null,p):Array.isArray(p)?jo($o,{children:p},null,null,null):p.__b>0?jo(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}qo(e,p,f=f||Oo,o,i,s,a,c,l),y=p.__e,(d=p.ref)&&f.ref!=d&&(v||(v=[]),f.ref&&v.push(f.ref,null,p),v.push(d,p.__c||y,p)),null!=y?(null==h&&(h=y),"function"==typeof p.type&&p.__k===f.__k?p.__d=c=Fo(p,c,e):c=Wo(e,p,f,m,y,c),"function"==typeof n.type&&(n.__d=c)):c&&f.__e==c&&c.parentNode!=e&&(c=Lo(f))}for(n.__e=h,u=b;u--;)null!=m[u]&&("function"==typeof n.type&&null!=m[u].__e&&m[u].__e==n.__d&&(n.__d=Lo(r,u+1)),Xo(m[u],m[u]));if(v)for(u=0;u<v.length;u++)Yo(v[u],v[++u],v[++u])}function Fo(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?Fo(r,t,n):Wo(n,r,r,o,r.__e,t));return t}function Wo(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 Vo(e,t,n){"-"===t[0]?e.setProperty(t,n):e[t]=null==n?"":"number"!=typeof n||To.test(t)?n:n+"px"}function Ko(e,t,n,r,o){var i;e:if("style"===t)if("string"==typeof n)e.style.cssText=n;else{if("string"==typeof r&&(e.style.cssText=r=""),r)for(t in r)n&&t in n||Vo(e.style,t,"");if(n)for(t in n)r&&n[t]===r[t]||Vo(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?zo:Ho,i):e.removeEventListener(t,i?zo:Ho,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 Ho(e){this.l[e.type+!1](So.event?So.event(e):e)}function zo(e){this.l[e.type+!0](So.event?So.event(e):e)}function qo(e,t,n,r,o,i,s,a,c){var l,u,d,f,p,y,h,v,m,b,g,_,w,k=t.type;if(void 0!==t.constructor)return null;null!=n.__h&&(c=n.__h,a=t.__e=n.__e,t.__h=null,i=[a]),(l=So.__b)&&l(t);try{e:if("function"==typeof k){if(v=t.props,m=(l=k.contextType)&&r[l.__c],b=l?m?m.props.value:l.__:r,n.__c?h=(u=t.__c=n.__c).__=u.__E:("prototype"in k&&k.prototype.render?t.__c=u=new k(v,b):(t.__c=u=new Do(v,b),u.constructor=k,u.render=Zo),m&&m.sub(u),u.props=v,u.state||(u.state={}),u.context=b,u.__n=r,d=u.__d=!0,u.__h=[]),null==u.__s&&(u.__s=u.state),null!=k.getDerivedStateFromProps&&(u.__s==u.state&&(u.__s=Uo({},u.__s)),Uo(u.__s,k.getDerivedStateFromProps(v,u.__s))),f=u.props,p=u.state,d)null==k.getDerivedStateFromProps&&null!=u.componentWillMount&&u.componentWillMount(),null!=u.componentDidMount&&u.__h.push(u.componentDidMount);else{if(null==k.getDerivedStateFromProps&&v!==f&&null!=u.componentWillReceiveProps&&u.componentWillReceiveProps(v,b),!u.__e&&null!=u.shouldComponentUpdate&&!1===u.shouldComponentUpdate(v,u.__s,b)||t.__v===n.__v){u.props=v,u.state=u.__s,t.__v!==n.__v&&(u.__d=!1),u.__v=t,t.__e=n.__e,t.__k=n.__k,t.__k.forEach((function(e){e&&(e.__=t)})),u.__h.length&&s.push(u);break e}null!=u.componentWillUpdate&&u.componentWillUpdate(v,u.__s,b),null!=u.componentDidUpdate&&u.__h.push((function(){u.componentDidUpdate(f,p,y)}))}if(u.context=b,u.props=v,u.__v=t,u.__P=e,g=So.__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=Uo(Uo({},r),u.getChildContext())),d||null==u.getSnapshotBeforeUpdate||(y=u.getSnapshotBeforeUpdate(f,p)),w=null!=l&&l.type===$o&&null==l.key?l.props.children:l,Mo(e,Array.isArray(w)?w:[w],t,n,r,o,i,s,a,c),u.base=t.__e,t.__h=null,u.__h.length&&s.push(u),h&&(u.__E=u.__=null),u.__e=!1}else null==i&&t.__v===n.__v?(t.__k=n.__k,t.__e=n.__e):t.__e=Go(n.__e,t,n,r,o,i,s,c);(l=So.diffed)&&l(t)}catch(e){t.__v=null,(c||null!=i)&&(t.__e=a,t.__h=!!c,i[i.indexOf(a)]=null),So.__e(e,t,n)}}function Jo(e,t){So.__c&&So.__c(t,e),e.some((function(t){try{e=t.__h,t.__h=[],e.some((function(e){e.call(t)}))}catch(e){So.__e(e,t.__v)}}))}function Go(e,t,n,r,o,i,s,a){var c,l,u,d=n.props,f=t.props,p=t.type,y=0;if("svg"===p&&(o=!0),null!=i)for(;y<i.length;y++)if((c=i[y])&&"setAttribute"in c==!!p&&(p?c.localName===p:3===c.nodeType)){e=c,i[y]=null;break}if(null==e){if(null===p)return document.createTextNode(f);e=o?document.createElementNS("http://www.w3.org/2000/svg",p):document.createElement(p,f.is&&f),i=null,a=!1}if(null===p)d===f||a&&e.data===f||(e.data=f);else{if(i=i&&ko.call(e.childNodes),l=(d=n.props||Oo).dangerouslySetInnerHTML,u=f.dangerouslySetInnerHTML,!a){if(null!=i)for(d={},y=0;y<e.attributes.length;y++)d[e.attributes[y].name]=e.attributes[y].value;(u||l)&&(u&&(l&&u.__html==l.__html||u.__html===e.innerHTML)||(e.innerHTML=u&&u.__html||""))}if(function(e,t,n,r,o){var i;for(i in n)"children"===i||"key"===i||i in t||Ko(e,i,null,n[i],r);for(i in t)o&&"function"!=typeof t[i]||"children"===i||"key"===i||"value"===i||"checked"===i||n[i]===t[i]||Ko(e,i,t[i],n[i],r)}(e,f,d,o,a),u)t.__k=[];else if(y=t.props.children,Mo(e,Array.isArray(y)?y:[y],t,n,r,o&&"foreignObject"!==p,i,s,i?i[0]:n.__k&&Lo(n,0),a),null!=i)for(y=i.length;y--;)null!=i[y]&&Co(i[y]);a||("value"in f&&void 0!==(y=f.value)&&(y!==e.value||"progress"===p&&!y||"option"===p&&y!==d.value)&&Ko(e,"value",y,d.value,!1),"checked"in f&&void 0!==(y=f.checked)&&y!==e.checked&&Ko(e,"checked",y,d.checked,!1))}return e}function Yo(e,t,n){try{"function"==typeof e?e(t):e.current=t}catch(e){So.__e(e,n)}}function Xo(e,t,n){var r,o;if(So.unmount&&So.unmount(e),(r=e.ref)&&(r.current&&r.current!==e.__e||Yo(r,null,t)),null!=(r=e.__c)){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(e){So.__e(e,t)}r.base=r.__P=null}if(r=e.__k)for(o=0;o<r.length;o++)r[o]&&Xo(r[o],t,"function"!=typeof e.type);n||null==e.__e||Co(e.__e),e.__e=e.__d=void 0}function Zo(e,t,n){return this.constructor(e,n)}function Qo(e,t,n){var r,o,i;So.__&&So.__(e,t),o=(r="function"==typeof n)?null:n&&n.__k||t.__k,i=[],qo(t,e=(!r&&n||t).__k=Po($o,null,[e]),o||Oo,Oo,void 0!==t.ownerSVGElement,!r&&n?[n]:o?null:t.firstChild?ko.call(t.childNodes):null,i,!r&&n?n:o?o.__e:t.firstChild,r),Jo(i,e)}ko=Ao.slice,So={__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}},xo=0,Do.prototype.setState=function(e,t){var n;n=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=Uo({},this.state),"function"==typeof e&&(e=e(Uo({},n),this.props)),e&&Uo(n,e),null!=e&&this.__v&&(t&&this.__h.push(t),No(this))},Do.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),No(this))},Do.prototype.render=$o,Io=[],Bo.__r=0;const ei={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 ti({children:e,className:t}){return Po("div",{className:t},Po("div",{style:ei.Darken}),Po("div",{style:ei.DialogOuter},Po("div",{style:ei.DialogInner},e)))}var ni,ri,oi,ii,si=0,ai=[],ci=[],li=So.__b,ui=So.__r,di=So.diffed,fi=So.__c,pi=So.unmount;function yi(e,t){So.__h&&So.__h(ri,e,si||t),si=0;var n=ri.__H||(ri.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({__V:ci}),n.__[e]}function hi(e){return si=1,function(e,t,n){var r=yi(ni++,2);if(r.t=e,!r.__c&&(r.__=[n?n(t):ki(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=ri,!ri.u)){ri.u=!0;var o=ri.shouldComponentUpdate;ri.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.__}(ki,e)}function vi(e){return si=5,function(e,t){var n=yi(ni++,7);return wi(n.__H,t)?(n.__V=e(),n.i=t,n.__h=e,n.__V):n.__}((function(){return{current:e}}),[])}function mi(){for(var e;e=ai.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(gi),e.__H.__h.forEach(_i),e.__H.__h=[]}catch(t){e.__H.__h=[],So.__e(t,e.__v)}}So.__b=function(e){ri=null,li&&li(e)},So.__r=function(e){ui&&ui(e),ni=0;var t=(ri=e.__c).__H;t&&(oi===ri?(t.__h=[],ri.__h=[],t.__.forEach((function(e){e.__N&&(e.__=e.__N),e.__V=ci,e.__N=e.i=void 0}))):(t.__h.forEach(gi),t.__h.forEach(_i),t.__h=[])),oi=ri},So.diffed=function(e){di&&di(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(1!==ai.push(t)&&ii===So.requestAnimationFrame||((ii=So.requestAnimationFrame)||function(e){var t,n=function(){clearTimeout(r),bi&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,100);bi&&(t=requestAnimationFrame(n))})(mi)),t.__H.__.forEach((function(e){e.i&&(e.__H=e.i),e.__V!==ci&&(e.__=e.__V),e.i=void 0,e.__V=ci}))),oi=ri=null},So.__c=function(e,t){t.some((function(e){try{e.__h.forEach(gi),e.__h=e.__h.filter((function(e){return!e.__||_i(e)}))}catch(n){t.some((function(e){e.__h&&(e.__h=[])})),t=[],So.__e(n,e.__v)}})),fi&&fi(e,t)},So.unmount=function(e){pi&&pi(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.forEach((function(e){try{gi(e)}catch(e){t=e}})),t&&So.__e(t,n.__v))};var bi="function"==typeof requestAnimationFrame;function gi(e){var t=ri,n=e.__c;"function"==typeof n&&(e.__c=void 0,n()),ri=t}function _i(e){var t=ri;e.__c=e.__(),ri=t}function wi(e,t){return!e||e.length!==t.length||t.some((function(t,n){return t!==e[n]}))}function ki(e,t){return"function"==typeof t?t(e):t}function Si({title:e,type:t,alerts:n,fields:r,submitLabel:o,cancelLabel:i,onCancel:s,onSubmit:a}){const[c,l]=hi({}),u=vi(null);return function(e,t){var n=yi(ni++,4);!So.__s&&wi(n.__H,t)&&(n.__=e,n.i=t,ri.__h.push(n))}((()=>{var e;return null===(e=u.current)||void 0===e?void 0:e.focus()}),[]),Po(ti,{className:"dxc-login-dlg"},Po($o,null,Po("h3",{style:ei.WindowHeader},e),n.map((e=>Po("p",{style:ei.Alert[e.type]},function({message:e,messageCode:t,messageParams:n}){return e.replace(/\{\w+\}/gi,(e=>n[e.substring(1,e.length-1)]))}(e)))),Po("form",{onSubmit:e=>{e.preventDefault(),a(c)}},Object.entries(r).map((([e,{type:t,label:n,placeholder:r}],o)=>Po("label",{style:ei.Label,key:o},n?`${n}: `:"",Po("input",{ref:0===o?u:void 0,type:t,name:e,autoComplete:"on",style:ei.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)}})))))),Po("div",{style:ei.ButtonsDiv},Po($o,null,Po("button",{type:"submit",style:ei.Button,onClick:()=>a(c)},o),i&&Po("button",{style:ei.Button,onClick:s},i))))}class xi extends Do{constructor(e){super(e),this.observer=e=>this.setState({userInteraction:e}),this.state={userInteraction:void 0}}componentDidMount(){this.subscription=u(this.props.db.cloud.userInteraction).subscribe(this.observer)}componentWillUnmount(){this.subscription&&(this.subscription.unsubscribe(),delete this.subscription)}render(e,{userInteraction:t}){return t?Po(Si,Object.assign({},t)):null}}function Ii(e){const t=new WeakMap;return n=>{let r=t.get(n);return r||(r=e(n),t.set(n,r)),r}}const Ei=Ii((e=>new a(D)));function Oi(e,t){let n=t,r=u(e).pipe(w((e=>n=e)),k({resetOnRefCountZero:()=>S(1e3)}));const o=new s((e=>{let t=!1;const o=r.subscribe({next(n){t=!0,e.next(n)},error(t){e.error(t)},complete(){e.complete()}});return t||o.closed||e.next(n),o}));return o.getValue=()=>n,o}const Ai=Ii((e=>Oi(i((()=>e.roles.where({realmId:"rlm-public"}).toArray().then((e=>{const t={};for(const n of e.slice().sort(((e,t)=>(e.sortOrder||0)-(t.sortOrder||0))))t[n.name]=n;return t})))),{}))),Ti=Ii((e=>Oi(Ei(e._novip).pipe(et((t=>i((()=>e.transaction("r","realms","members",(()=>Promise.all([e.members.where({userId:t.userId}).toArray(),e.realms.toArray(),t.userId]).then((([e,t,n])=>({selfMembers:e,realms:t,userId:n})))))))))),{selfMembers:[],realms:[],get userId(){return e.cloud.currentUserId}})));function Ui(...e){if(0===e.length)return{};const t=e.reduce(((e,t)=>{const n=Object.assign({},e);for(const[e,r]of Object.entries(t))if(e in n&&n[e]){if("*"===n[e])continue;if("*"===r)n[e]="*";else if(Array.isArray(r)&&Array.isArray(n[e])){const t=n,o=t[e];t[e]=[...new Set([...o,...r])]}else if("object"==typeof r&&r&&"object"==typeof n[e]){const t=n[e];for(const[e,n]of Object.entries(r))"*"!==t[e]&&("*"===n?t[e]="*":Array.isArray(t[e])&&Array.isArray(n)&&(t[e]=[...new Set([...t[e],...n])]))}}else n[e]=t[e];return n}));return t}const Ci=Ii((e=>function(e,t){let n;const r=e.pipe(w((e=>n=t(e))));return r.getValue=()=>void 0!==n?n:n=t(e.getValue()),r}(Oi(_([Ti(e._novip),Ai(e._novip)]).pipe(Me((([{selfMembers:e,realms:t,userId:n},r])=>({selfMembers:e,realms:t,userId:n,globalRoles:r})))),{selfMembers:[],realms:[],userId:D.userId,globalRoles:{}}),(({selfMembers:e,realms:t,userId:n,globalRoles:r})=>{const o=t.map((t=>{const o=e.filter((e=>e.realmId===t.realmId)),i=o.map((e=>e.permissions)).filter((e=>e)),s=yt(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:"*"}:Ui(...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 Pi{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 ji=Ii((e=>{const t=Ei(e._novip).pipe(et((t=>i((()=>e.members.where({email:t.email||""}).toArray()))))),n=Ci(e._novip),r=Ti(e._novip);return Oi(_([t,r,n]).pipe(Me((([t,n,r])=>{const o=(e,t)=>Object.assign(Object.assign({},e),{[t.id]:Object.assign(Object.assign({},t),{realm:r[t.realmId]})}),i=t.reduce(o,{}),s=n.selfMembers.reduce(o,i);return Object.values(s).filter((e=>!e.accepted)).map((t=>Object.assign(Object.assign({},t),{accept(){return O(this,void 0,void 0,(function*(){yield e.members.update(t.id,{accepted:new Date})}))},reject(){return O(this,void 0,void 0,(function*(){yield e.members.update(t.id,{rejected:new Date})}))}})))}))),[])}));function $i(e){return t=>{var r;const o=t.doc,{parentTable:i}=o.meta||{};if(!(null===(r=e.cloud.schema)||void 0===r?void 0:r[i].markedForSync))return;let s;Object.defineProperty(t,"awareness",{get:()=>s||(s=function(e,t,r){const{parentTable:o,parentId:i,parentProp:s,updatesTable:a}=t.meta,c=so(e),l=new c.Awareness(t),u=lo(t);return l.on("update",(({added:n,updated:i,removed:a},u)=>{const d=n.concat(i).concat(a),f=e.cloud.currentUser.value;if("server"!==u&&f.isLoggedIn&&!Gr(e)){const n=c.encodeAwarenessUpdate(l,d);e.messageProducer.next({type:"aware",table:o,prop:s,k:t.meta.parentId,u:n}),r.destroyed&&e.messageProducer.next({type:"doc-close",table:o,prop:s,k:t.meta.parentId})}})),l.on("destroy",(()=>{c.removeAwarenessStates(l,[t.clientID],"provider destroyed")})),(()=>{O(this,void 0,void 0,(function*(){if(r.destroyed)return;let t=!1,c=1;const l=_([e.cloud.webSocketStatus,u.pipe(x(null))]).subscribe((([n])=>{if(r.destroyed)return;t="connected"===n;const o=e.cloud.currentUser.value;"connected"===n&&o.isLoggedIn&&!Gr(e)&&(++c,d().catch((e=>{})))}));function d(){return O(this,void 0,void 0,(function*(){const l=c,u=e.table(a),d=e.$syncState,[f,p]=yield e.transaction("r",d,u,(()=>O(this,void 0,void 0,(function*(){const e=yield u.get(ir),t=yield d.get("syncState");return[(null==e?void 0:e.receivedUntil)||0,(null==t?void 0:t.yServerRevision)||(null==t?void 0:t.serverRevision)]}))));if(r.destroyed||c!==l||!t)return;const y={type:"doc-open",table:o,prop:s,k:i,serverRev:p},h=yield u.where("i").between(f,1/0,!1).filter((e=>0===n(e.k,i)&&0==(1&(e.f||0)))).toArray();if(!r.destroyed&&c===l&&t){if(h.length>0){const t=ar(e),n=t.mergeUpdatesV2(h.map((e=>e.u))),r=t.encodeStateVectorFromUpdateV2(n);y.sv=r}e.messageProducer.next(y)}}))}r.addCleanupHandler(l)}))})(),l}(e,o,t),ao.set(o,s),s)})}}const Di={nameSuffix:!0};function Li(t){const n=t.name,r=Ei(t),o=[];let s=!1,d=null;t.on("ready",(t=>O(this,void 0,void 0,(function*(){try{yield function(t){return O(this,void 0,void 0,(function*(){var n,l,b,w,k,S,x;h=!1;const I=Ir(t);"undefined"!=typeof window&&"undefined"!=typeof document&&((null===(n=I.cloud.options)||void 0===n?void 0:n.customLoginGui)||o.push(function(e){let t=!1;const n=document.createElement("div");return document.body?(document.body.appendChild(n),Qo(Po(xi,{db:e.vip}),n)):addEventListener("DOMContentLoaded",(()=>{t||(document.body.appendChild(n),Qo(Po(xi,{db:e.vip}),n))})),{unsubscribe(){try{n.remove()}catch(e){}t=!0},get closed(){return t}}}(t))),I.cloud.isServiceWorkerDB||o.push(function(e){let t=e.cloud.webSocketStatus.value;const n=e.cloud.webSocketStatus.pipe(et((e=>{const n=t;t=e;const r=p(e);switch(e){case"disconnected":return Qr.value?r.pipe(Ve(500)):r;case"connecting":return"not-started"===n||"error"===n?r:r.pipe(Ve(4e3));default:return r}})));return _([n,e.syncStateChangedEvent.pipe(Qe({phase:"initial"})),Ei(e.dx._novip),eo]).pipe(Me((([t,n,r,o])=>{var i;if((null===(i=r.license)||void 0===i?void 0:i.status)&&"ok"!==r.license.status)return{phase:"offline",status:"offline",license:r.license.status};let{phase:s,error:a,progress:c}=n,l=t;return"error"===s&&(l="error"),"not-started"===t&&("pushing"!==s&&"pulling"!==s||(l="connecting")),"error"!==e.cloud.syncState.value.phase||"pushing"!==n.phase&&"pulling"!==n.phase||(l="connecting"),o||(l="disconnected"),{phase:s,error:a,progress:c,status:er?l:"offline",license:"ok"}})))}(I).subscribe(t.cloud.syncState)),o.push(I.syncCompleteEvent.subscribe(m)),I.tables.every((e=>e.core))||function(){throw new e.SchemaError("Version increment needed to allow dexie-cloud change tracking")}();const E="serviceWorker"in navigator?yield navigator.serviceWorker.getRegistrations():[],[A,T]=yield I.transaction("rw",I.$syncState,(()=>O(this,void 0,void 0,(function*(){var e,t;const{options:n,schema:r}=I.cloud,[o,i,a]=yield Promise.all([I.getOptions(),I.getSchema(),I.getPersistedSyncState()]);if(s){if(!o||JSON.stringify(o)!==JSON.stringify(n)){if(!n)throw new Error("Internal error");const e=Object.assign({},n);delete e.fetchTokens,delete e.awarenessProtocol,yield I.$syncState.put(e,"options")}}else I.cloud.options=o||null;if((null===(e=I.cloud.options)||void 0===e?void 0:e.tryUseServiceWorker)&&"serviceWorker"in navigator&&E.length>0&&!Lr?I.cloud.usingServiceWorker=!0:((null===(t=I.cloud.options)||void 0===t?void 0:t.tryUseServiceWorker)&&I.cloud.isServiceWorkerDB,I.cloud.usingServiceWorker=!1),wo(r,I.cloud.options),wo(i,I.cloud.options),r){if(!i||JSON.stringify(i)!==JSON.stringify(r)){const e=i||{};for(const[t,n]of Object.entries(r)){const r=e[t];r?(r.markedForSync=n.markedForSync,n.deleted=r.deleted,r.generatedGlobalId=n.generatedGlobalId):e[t]=Object.assign({},n)}yield I.$syncState.put(e,"schema"),Object.assign(r,e)}}else I.cloud.schema=i||null;return[null==a?void 0:a.initiallySynced,null==a?void 0:a.realms]}))));if(A&&I.setInitiallySynced(!0),function(t){var n,r;for(const o of t.tables)if(null===(r=null===(n=t.cloud.schema)||void 0===n?void 0:n[o.name])||void 0===r?void 0:r.markedForSync){if(o.schema.primKey.auto)throw new e.SchemaError(`Table ${o.name} is both autoIncremented and synced. Use db.cloud.configure({unsyncedTables: [${JSON.stringify(o.name)}]}) to blacklist it from sync`);if(!o.schema.primKey.keyPath)throw new e.SchemaError(`Table ${o.name} cannot be both synced and outbound. Use db.cloud.configure({unsyncedTables: [${JSON.stringify(o.name)}]}) to blacklist it from sync`)}}(I),v(),!I.cloud.isServiceWorkerDB){o.push(i((()=>I.getCurrentUser())).subscribe(r)),o.push(i((()=>I.getPersistedSyncState())).subscribe(I.cloud.persistedSyncState)),yield c(_([r.pipe(Ze(1),ze(1)),I.cloud.persistedSyncState.pipe(Ze(1),ze(1))]));const e=$i(I);I.dx.on("y",e),I.dx.once("close",(()=>{var t;null===(t=I.dx.on.y)||void 0===t||t.unsubscribe(e)}))}let U=!1;const C=yield I.getCurrentUser(),P=null===(l=I.cloud.options)||void 0===l?void 0:l.requireAuth;P&&(I.cloud.isServiceWorkerDB?yield c(r.pipe(Xe((e=>!!e.isLoggedIn)),ze(1))):"object"==typeof P?(!C.isLoggedIn||P.userId&&C.userId!==P.userId||P.email&&C.email!==P.email)&&(U=yield Pr(I,P)):C.isLoggedIn||(U=yield Pr(I))),!C.isLoggedIn||T&&T.includes(C.userId)||(U=!0),d&&d.stop(),d=null,v();const j=(null===(b=I.cloud.options)||void 0===b?void 0:b.databaseUrl)&&(!A||U);j&&(yield function(e,t,n){return O(this,void 0,void 0,(function*(){yield Zr(e,yr,(()=>hr(e,t,n,{isInitialSync:!0})))}))}(I,I.cloud.options,I.cloud.schema),I.setInitiallySynced(!0)),v(),I.cloud.usingServiceWorker&&(null===(w=I.cloud.options)||void 0===w?void 0:w.databaseUrl)?(j||rt(I,"push").catch((()=>{})),function(e){return O(this,void 0,void 0,(function*(){var t;try{const{periodicSync:n}=yield navigator.serviceWorker.ready;if(n)try{yield n.register(`dexie-cloud:${e.name}`,null===(t=e.cloud.options)||void 0===t?void 0:t.periodicSync)}catch(e){}}catch(e){}}))}(I).catch((()=>{}))):(null===(k=I.cloud.options)||void 0===k?void 0:k.databaseUrl)&&I.cloud.schema&&!I.cloud.isServiceWorkerDB&&(d=_o(I,I.cloud.options,I.cloud.schema),d.start(),j||ot(I,"push")),v(),I.cloud.isServiceWorkerDB||o.push(f(self,"online").subscribe((()=>{I.syncStateChangedEvent.next({phase:"not-in-sync"}),Gr(I)||ot(I,"push")})),f(self,"offline").subscribe((()=>{I.syncStateChangedEvent.next({phase:"offline"})}))),!(null===(S=I.cloud.options)||void 0===S?void 0:S.databaseUrl)||(null===(x=I.cloud.options)||void 0===x?void 0:x.disableWebSocket)||Rr||o.push(function(e){var t;if(!(null===(t=e.cloud.options)||void 0===t?void 0:t.databaseUrl))throw new Error("No database URL to connect WebSocket to");const n=e.messageConsumer.readyToServe.pipe(Xe((e=>e)),et((()=>e.getPersistedSyncState())),Xe((e=>e&&e.serverRevision)),et((e=>O(this,void 0,void 0,(function*(){return{type:"ready",rev:e.serverRevision,realmSetHash:yield lt(e)}}))))),r=y(n,e.messageProducer);return function t(){return e.cloud.persistedSyncState.pipe(Xe((e=>null==e?void 0:e.serverRevision)),ze(1),et((t=>e.cloud.currentUser.pipe(Me((e=>[e,t]))))),et((([e,t])=>eo.pipe(Me((n=>[n?e:null,t]))))),et((([t,n])=>(null==t?void 0:t.isLoggedIn)&&!(null==n?void 0:n.realms.includes(t.userId))?e.cloud.persistedSyncState.pipe(Xe((e=>(null==e?void 0:e.realms.includes(t.userId))||!1)),ze(1),Me((e=>[t,e]))):new a([t,n]))),et((e=>O(this,[e],void 0,(function*([e,t]){return[e,yield lt(t)]})))),Ge((([e,t],[n,r])=>e===n&&t===r)),et((([n,o])=>{var i;return(null===(i=e.cloud.persistedSyncState)||void 0===i?void 0:i.value)?n?new uo(e,e.cloud.persistedSyncState.value.serverRevision,e.cloud.persistedSyncState.value.yServerRevision,o,e.cloud.persistedSyncState.value.clientIdentity,r,e.cloud.webSocketStatus,n):u([]):t()})),De((n=>"TokenExpiredError"===(null==n?void 0:n.name)?p(!0).pipe(et((()=>O(this,void 0,void 0,(function*(){const t=yield e.getCurrentUser(),n=yield vn(e.cloud.options.databaseUrl,t);yield e.table("$logins").update(t.userId,{accessToken:n.accessToken,accessTokenExpiration:n.accessTokenExpiration,claims:n.claims,license:n.license,data:n.data})})))),et((()=>t()))):g((()=>n)))),De((n=>(e.cloud.webSocketStatus.next("error"),n instanceof yo?g((()=>n)):u(ho()).pipe(et((()=>t())))))))}().subscribe({next:t=>{t&&e.messageConsumer.enqueue(t)},error:e=>{},complete:()=>{}})}(I))}))}(t)}catch(e){}}))),!0);let h=!1;function v(){if(h)throw new e.DatabaseClosedError}t.once("close",(()=>{o.forEach((e=>e.unsubscribe())),o.splice(0,o.length),h=!0,d&&d.stop(),d=null,r.next(D)}));const m=new l;var b;t.cloud={version:"4.1.0-beta.48",options:Object.assign({},Di),schema:null,get currentUserId(){return r.value.userId||D.userId},currentUser:r,syncState:new a({phase:"initial",status:"not-started"}),events:{syncComplete:m},persistedSyncState:new a(void 0),userInteraction:new a(void 0),webSocketStatus:new a("not-started"),login(e){return O(this,void 0,void 0,(function*(){const n=Ir(t);yield n.cloud.sync(),yield Pr(n,e)}))},invites:ji(t),roles:Ai(t),configure(e){e=t.cloud.options=Object.assign(Object.assign({},t.cloud.options),e),s=!0,e.databaseUrl&&e.nameSuffix&&(t.name=`${n}-${function(e){const t=new URL(e);return"/"===t.pathname?t.hostname.split(".")[0]:t.pathname.split("/")[1]}(e.databaseUrl)}`,Ir(t).reconfigure()),wo(t.cloud.schema,t.cloud.options)},logout(){return O(this,arguments,void 0,(function*({force:e}={}){e?yield Ur(Ir(t),{deleteUnsyncedData:!0}):yield Tr(Ir(t))}))},sync(){return O(this,arguments,void 0,(function*({wait:e,purpose:n}={wait:!0,purpose:"push"}){var r;void 0===e&&(e=!0);const o=Ir(t);if("ok"!==((null===(r=o.cloud.currentUser.value.license)||void 0===r?void 0:r.status)||"ok")&&(yield yn(o)),"pull"===n){const t=o.cloud.persistedSyncState.value;if(ot(o,n),e){const e=yield c(o.cloud.persistedSyncState.pipe(Xe((e=>null!=(null==e?void 0:e.timestamp)&&(!t||e.timestamp>t.timestamp)))));if(null==e?void 0:e.error)throw new Error("Sync error: "+e.error)}}else if(yield vo(o)){const t=o.cloud.persistedSyncState.value;ot(o,n),e&&(yield c(u(i((()=>O(this,void 0,void 0,(function*(){const e=yield vo(o),n=yield o.getPersistedSyncState();if((null==n?void 0:n.timestamp)!==(null==t?void 0:t.timestamp)&&(null==n?void 0:n.error))throw new Error("Sync error: "+n.error);return e}))))).pipe(Xe((e=>!e)))))}}))},permissions:(e,n)=>function(e,t,n){if(!t)throw new TypeError("Cannot check permissions of undefined or null. A Dexie Cloud object with realmId and owner expected.");const{owner:r,realmId:o}=t;if(!n){if("function"!=typeof t.table)throw new TypeError("Missing 'table' argument to permissions and table could not be extracted from entity");n=t.table()}const i=Ci(e),s=t=>{const i=t[o||e.cloud.currentUserId];return i?new Pi(i.permissions,n,void 0===o||o===e.cloud.currentUserId||r===e.cloud.currentUserId):new Pi({},n,!r||r===e.cloud.currentUserId)},a=i.pipe(Me(s));return a.getValue=()=>s(i.getValue()),a}(t._novip,e,n)},t.Version.prototype._parseStoresSpec=e.override(t.Version.prototype._parseStoresSpec,(e=>Xr(e,t))),t.Table.prototype.newId=function({colocateWith:e}={}){const n=e&&e.substr(e.length-3);return Vr(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(Yr({currentUserObservable:t.cloud.currentUser,db:Ir(t)})),t.use((b=Ir(t),{stack:"dbcore",name:"implicitPropSetterMiddleware",level:1,create:e=>Object.assign(Object.assign({},e),{table:t=>{const n=e.table(t);return Object.assign(Object.assign({},n),{mutate:e=>{var r,o,i,s,a,c;const l=e.trans;if(l.disableChangeTracking)return n.mutate(e);const u=null!==(o=null===(r=l.currentUser)||void 0===r?void 0:r.userId)&&void 0!==o?o:D.userId;if((null===(s=null===(i=b.cloud.schema)||void 0===i?void 0:i[t])||void 0===s?void 0:s.markedForSync)&&("add"===e.type||"put"===e.type)){if("members"===t)for(const t of e.values)"string"==typeof t.email&&(t.email=t.email.trim().toLowerCase());for(const t of e.values){t.owner||(t.owner=u),t.realmId||(t.realmId=u);const r=null===(c=(a=n.schema.primaryKey).extractKey)||void 0===c?void 0:c.call(a,t);"string"==typeof r&&"#"===r[0]&&"put"===e.type&&(delete e.criteria,delete e.changeSpec,delete e.updates,t.$ts=Date.now())}}return n.mutate(e)}})}})})),t.use(Kr(Ir(t)))}Li.version="4.1.0-beta.48",e.Cloud=Li;const Ri=new Map;function Ni(e){return e.startsWith("dexie-cloud:")&&e.split(":")[1]}const Bi=new Map;function Mi(t,n){let r=Bi.get(t+"/"+n);return r||(r=function t(n,r){return O(this,void 0,void 0,(function*(){var o;let i=Ri.get(n);if(!i){const o=new e(n,{addons:[Li]});if(i=Ir(o),i.cloud.isServiceWorkerDB=!0,o.on("versionchange",s),yield i.dx.open(),Ri.get(n))return i.close(),yield t(n,r);Ri.set(n,i)}if((null===(o=i.cloud.options)||void 0===o?void 0:o.databaseUrl)&&i.cloud.schema)try{yield bo(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),Ri.get(i.name)===i&&Ri.delete(i.name),i.dx.close(),!1}}))}(t,n).then((()=>{Bi.delete(t+"/"+n)})).catch((e=>(Bi.delete(t+"/"+n),Promise.reject(e)))),Bi.set(t+"/"+n,r)),r}Lr||(self.addEventListener("sync",(e=>{const t=Ni(e.tag);t&&e.waitUntil(Mi(t,"push"))})),self.addEventListener("periodicsync",(e=>{const t=Ni(e.tag);t&&e.waitUntil(Mi(t,"pull"))})),self.addEventListener("message",(e=>{if("dexie-cloud-sync"===e.data.type){const{dbName:t}=e.data,n=(r=1)=>Mi(t,e.data.purpose||"pull").catch((e=>O(void 0,void 0,void 0,(function*(){if(3===r)throw e;var t;yield(t=6e4,new Promise((e=>setTimeout(e,t)))),n(r+1)}))));"waitUntil"in e?e.waitUntil(n().catch((e=>{}))):n().catch((e=>{}))}})));
|
|
1
|
+
import e,{PropModification as t,cmp as n,DexieYProvider as r,RangeSet as o,liveQuery as i}from"dexie";import{Observable as s,BehaviorSubject as a,firstValueFrom as c,Subject as l,from as u,filter as d,fromEvent as f,of as p,merge as y,switchMap as h,tap as v,mergeMap as m,Subscription as b,throwError as g,combineLatest as _,map as w,share as k,timer as S,startWith as x}from"rxjs";var I=function(e,t){return I=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},I(e,t)};function E(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}I(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}function O(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))}function A(e,t){var n,r,o,i,s={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function a(i){return function(a){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;s;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return s.label++,{value:i[1],done:!1};case 5:s.label++,r=i[1],i=[0];continue;case 7:i=s.ops.pop(),s.trys.pop();continue;default:if(!(o=s.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){s=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){s.label=i[1];break}if(6===i[0]&&s.label<o[1]){s.label=o[1],o=i;break}if(o&&s.label<o[2]){s.label=o[2],s.ops.push(i);break}o[2]&&s.ops.pop(),s.trys.pop();continue}i=t.call(e,s)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,a])}}}function T(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function U(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),s=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)s.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return s}function C(e,t,n){if(n||2===arguments.length)for(var r,o=0,i=t.length;o<i;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))}function P(e){return this instanceof P?(this.v=e,this):new P(e)}function j(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,o=n.apply(e,t||[]),i=[];return r={},s("next"),s("throw"),s("return"),r[Symbol.asyncIterator]=function(){return this},r;function s(e){o[e]&&(r[e]=function(t){return new Promise((function(n,r){i.push([e,t,n,r])>1||a(e,t)}))})}function a(e,t){try{!function(e){e.value instanceof P?Promise.resolve(e.value.v).then(c,l):u(i[0][2],e)}(o[e](t))}catch(e){u(i[0][3],e)}}function c(e){a("next",e)}function l(e){a("throw",e)}function u(e,t){e(t),i.shift(),i.length&&a(i[0][0],i[0][1])}}function $(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=T(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise((function(r,o){(function(e,t,n,r){Promise.resolve(r).then((function(t){e({value:t,done:n})}),t)})(r,o,(t=e[n](t)).done,t.value)}))}}}const D={userId:"unauthorized",name:"Unauthorized",claims:{sub:"unauthorized"},lastLogin:new Date(0)};try{Object.freeze(D),Object.freeze(D.claims)}catch(e){}const R={},L="undefined"!=typeof self&&self.document&&"undefined"!=typeof navigator&&navigator.serviceWorker;L&&L.ready.then((e=>R.registration=e)),"undefined"!=typeof self&&"clients"in self&&!self.document&&addEventListener("message",(e=>{var t,n;(null===(n=null===(t=e.data)||void 0===t?void 0:t.type)||void 0===n?void 0:n.startsWith("sw-broadcast-"))&&[...self.clients.matchAll({includeUncontrolled:!0})].forEach((t=>{var n;return t.id!==(null===(n=e.source)||void 0===n?void 0:n.id)&&t.postMessage(e.data)}))}));class N{constructor(e){this.name=e}subscribe(e){if(!L)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 L.addEventListener("message",t),()=>L.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}))):R.registration&&(null===(t=R.registration.active)||void 0===t||t.postMessage({type:`sw-broadcast-${this.name}`,message:e}))}}const B=globalThis["lbc-events"]||(globalThis["lbc-events"]=new Map);class M extends s{constructor(e){const t="undefined"==typeof BroadcastChannel?new N(e):new BroadcastChannel(e);super((n=>{function r(e){n.next(e.detail)}function o(e){n.next(e.data)}let i;!function(e,t){B.has(e)?B.get(e).push(t):B.set(e,[t])}(`lbc-${e}`,r);try{t instanceof N?i=t.subscribe((e=>n.next(e))):t.addEventListener("message",o)}catch(e){}return()=>{!function(e,t){const n=B.get(e);if(n){const e=n.indexOf(t);-1!==e&&n.splice(e,1)}}(`lbc-${e}`,r),t instanceof N?i():t.removeEventListener("message",o)}})),this.name=e,this.bc=t}next(e){this.bc.postMessage(e);!function(e){const t=B.get(e.type);t&&t.forEach((t=>{try{t(e)}catch(e){}}))}(new CustomEvent(`lbc-${this.name}`,{detail:e}))}}function F(e){return"function"==typeof e}function W(e){return function(t){if(function(e){return F(null==e?void 0:e.lift)}(t))return t.lift((function(t){try{return e(t,this)}catch(e){this.error(e)}}));throw new TypeError("Unable to lift unknown Observable type")}}var V=function(e){return e&&"number"==typeof e.length&&"function"!=typeof e};function K(e){return F(null==e?void 0:e.then)}var H,z,q=(H=function(e){return function(t){e(this),this.message=t?t.length+" errors occurred during unsubscription:\n"+t.map((function(e,t){return t+1+") "+e.toString()})).join("\n "):"",this.name="UnsubscriptionError",this.errors=t}},(z=H((function(e){Error.call(e),e.stack=(new Error).stack}))).prototype=Object.create(Error.prototype),z.prototype.constructor=z,z);function J(e,t){if(e){var n=e.indexOf(t);0<=n&&e.splice(n,1)}}var G=function(){function e(e){this.initialTeardown=e,this.closed=!1,this._parentage=null,this._finalizers=null}var t;return e.prototype.unsubscribe=function(){var e,t,n,r,o;if(!this.closed){this.closed=!0;var i=this._parentage;if(i)if(this._parentage=null,Array.isArray(i))try{for(var s=T(i),a=s.next();!a.done;a=s.next()){a.value.remove(this)}}catch(t){e={error:t}}finally{try{a&&!a.done&&(t=s.return)&&t.call(s)}finally{if(e)throw e.error}}else i.remove(this);var c=this.initialTeardown;if(F(c))try{c()}catch(e){o=e instanceof q?e.errors:[e]}var l=this._finalizers;if(l){this._finalizers=null;try{for(var u=T(l),d=u.next();!d.done;d=u.next()){var f=d.value;try{X(f)}catch(e){o=null!=o?o:[],e instanceof q?o=C(C([],U(o)),U(e.errors)):o.push(e)}}}catch(e){n={error:e}}finally{try{d&&!d.done&&(r=u.return)&&r.call(u)}finally{if(n)throw n.error}}}if(o)throw new q(o)}},e.prototype.add=function(t){var n;if(t&&t!==this)if(this.closed)X(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=null!==(n=this._finalizers)&&void 0!==n?n:[]).push(t)}},e.prototype._hasParent=function(e){var t=this._parentage;return t===e||Array.isArray(t)&&t.includes(e)},e.prototype._addParent=function(e){var t=this._parentage;this._parentage=Array.isArray(t)?(t.push(e),t):t?[t,e]:e},e.prototype._removeParent=function(e){var t=this._parentage;t===e?this._parentage=null:Array.isArray(t)&&J(t,e)},e.prototype.remove=function(t){var n=this._finalizers;n&&J(n,t),t instanceof e&&t._removeParent(this)},e.EMPTY=((t=new e).closed=!0,t),e}();function Y(e){return e instanceof G||e&&"closed"in e&&F(e.remove)&&F(e.add)&&F(e.unsubscribe)}function X(e){F(e)?e():e.unsubscribe()}G.EMPTY;var Z={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},Q={setTimeout:function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var o=Q.delegate;return(null==o?void 0:o.setTimeout)?o.setTimeout.apply(o,C([e,t],U(n))):setTimeout.apply(void 0,C([e,t],U(n)))},clearTimeout:function(e){var t=Q.delegate;return((null==t?void 0:t.clearTimeout)||clearTimeout)(e)},delegate:void 0};function ee(e){Q.setTimeout((function(){throw e}))}function te(){}var ne=function(e){function t(t){var n=e.call(this)||this;return n.isStopped=!1,t?(n.destination=t,Y(t)&&t.add(n)):n.destination=ce,n}return E(t,e),t.create=function(e,t,n){return new se(e,t,n)},t.prototype.next=function(e){this.isStopped||this._next(e)},t.prototype.error=function(e){this.isStopped||(this.isStopped=!0,this._error(e))},t.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},t.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,e.prototype.unsubscribe.call(this),this.destination=null)},t.prototype._next=function(e){this.destination.next(e)},t.prototype._error=function(e){try{this.destination.error(e)}finally{this.unsubscribe()}},t.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},t}(G),re=Function.prototype.bind;function oe(e,t){return re.call(e,t)}var ie=function(){function e(e){this.partialObserver=e}return e.prototype.next=function(e){var t=this.partialObserver;if(t.next)try{t.next(e)}catch(e){ae(e)}},e.prototype.error=function(e){var t=this.partialObserver;if(t.error)try{t.error(e)}catch(e){ae(e)}else ae(e)},e.prototype.complete=function(){var e=this.partialObserver;if(e.complete)try{e.complete()}catch(e){ae(e)}},e}(),se=function(e){function t(t,n,r){var o,i,s=e.call(this)||this;F(t)||!t?o={next:null!=t?t:void 0,error:null!=n?n:void 0,complete:null!=r?r:void 0}:s&&Z.useDeprecatedNextContext?((i=Object.create(t)).unsubscribe=function(){return s.unsubscribe()},o={next:t.next&&oe(t.next,i),error:t.error&&oe(t.error,i),complete:t.complete&&oe(t.complete,i)}):o=t;return s.destination=new ie(o),s}return E(t,e),t}(ne);function ae(e){ee(e)}var ce={closed:!0,next:te,error:function(e){throw e},complete:te},le="function"==typeof Symbol&&Symbol.observable||"@@observable";function ue(e){return e}var de=function(){function e(e){e&&(this._subscribe=e)}return e.prototype.lift=function(t){var n=new e;return n.source=this,n.operator=t,n},e.prototype.subscribe=function(e,t,n){var r,o=this,i=(r=e)&&r instanceof ne||function(e){return e&&F(e.next)&&F(e.error)&&F(e.complete)}(r)&&Y(r)?e:new se(e,t,n);return function(){var e=o,t=e.operator,n=e.source;i.add(t?t.call(i,n):n?o._subscribe(i):o._trySubscribe(i))}(),i},e.prototype._trySubscribe=function(e){try{return this._subscribe(e)}catch(t){e.error(t)}},e.prototype.forEach=function(e,t){var n=this;return new(t=fe(t))((function(t,r){var o=new se({next:function(t){try{e(t)}catch(e){r(e),o.unsubscribe()}},error:r,complete:t});n.subscribe(o)}))},e.prototype._subscribe=function(e){var t;return null===(t=this.source)||void 0===t?void 0:t.subscribe(e)},e.prototype[le]=function(){return this},e.prototype.pipe=function(){for(var e,t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return(0===(e=t).length?ue:1===e.length?e[0]:function(t){return e.reduce((function(e,t){return t(e)}),t)})(this)},e.prototype.toPromise=function(e){var t=this;return new(e=fe(e))((function(e,n){var r;t.subscribe((function(e){return r=e}),(function(e){return n(e)}),(function(){return e(r)}))}))},e.create=function(t){return new e(t)},e}();function fe(e){var t;return null!==(t=null!=e?e:Z.Promise)&&void 0!==t?t:Promise}function pe(e){return F(e[le])}function ye(e){return Symbol.asyncIterator&&F(null==e?void 0:e[Symbol.asyncIterator])}function he(e){return new TypeError("You provided "+(null!==e&&"object"==typeof e?"an invalid object":"'"+e+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}var ve="function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator";function me(e){return F(null==e?void 0:e[ve])}function be(e){return j(this,arguments,(function(){var t,n,r;return A(this,(function(o){switch(o.label){case 0:t=e.getReader(),o.label=1;case 1:o.trys.push([1,,9,10]),o.label=2;case 2:return[4,P(t.read())];case 3:return n=o.sent(),r=n.value,n.done?[4,P(void 0)]:[3,5];case 4:return[2,o.sent()];case 5:return[4,P(r)];case 6:return[4,o.sent()];case 7:return o.sent(),[3,2];case 8:return[3,10];case 9:return t.releaseLock(),[7];case 10:return[2]}}))}))}function ge(e){return F(null==e?void 0:e.getReader)}function _e(e){if(e instanceof de)return e;if(null!=e){if(pe(e))return o=e,new de((function(e){var t=o[le]();if(F(t.subscribe))return t.subscribe(e);throw new TypeError("Provided object does not correctly implement Symbol.observable")}));if(V(e))return r=e,new de((function(e){for(var t=0;t<r.length&&!e.closed;t++)e.next(r[t]);e.complete()}));if(K(e))return n=e,new de((function(e){n.then((function(t){e.closed||(e.next(t),e.complete())}),(function(t){return e.error(t)})).then(null,ee)}));if(ye(e))return we(e);if(me(e))return t=e,new de((function(e){var n,r;try{for(var o=T(t),i=o.next();!i.done;i=o.next()){var s=i.value;if(e.next(s),e.closed)return}}catch(e){n={error:e}}finally{try{i&&!i.done&&(r=o.return)&&r.call(o)}finally{if(n)throw n.error}}e.complete()}));if(ge(e))return we(be(e))}var t,n,r,o;throw he(e)}function we(e){return new de((function(t){(function(e,t){var n,r,o,i;return O(this,void 0,void 0,(function(){var s,a;return A(this,(function(c){switch(c.label){case 0:c.trys.push([0,5,6,11]),n=$(e),c.label=1;case 1:return[4,n.next()];case 2:if((r=c.sent()).done)return[3,4];if(s=r.value,t.next(s),t.closed)return[2];c.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return a=c.sent(),o={error:a},[3,11];case 6:return c.trys.push([6,,9,10]),r&&!r.done&&(i=n.return)?[4,i.call(n)]:[3,8];case 7:c.sent(),c.label=8;case 8:return[3,10];case 9:if(o)throw o.error;return[7];case 10:return[7];case 11:return t.complete(),[2]}}))}))})(e,t).catch((function(e){return t.error(e)}))}))}function ke(e,t,n,r,o){return new Se(e,t,n,r,o)}var Se=function(e){function t(t,n,r,o,i,s){var a=e.call(this,t)||this;return a.onFinalize=i,a.shouldUnsubscribe=s,a._next=n?function(e){try{n(e)}catch(e){t.error(e)}}:e.prototype._next,a._error=o?function(e){try{o(e)}catch(e){t.error(e)}finally{this.unsubscribe()}}:e.prototype._error,a._complete=r?function(){try{r()}catch(e){t.error(e)}finally{this.unsubscribe()}}:e.prototype._complete,a}return E(t,e),t.prototype.unsubscribe=function(){var t;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var n=this.closed;e.prototype.unsubscribe.call(this),!n&&(null===(t=this.onFinalize)||void 0===t||t.call(this))}},t}(ne),xe=function(e){function t(t,n){return e.call(this)||this}return E(t,e),t.prototype.schedule=function(e,t){return this},t}(G),Ie={setInterval:function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var o=Ie.delegate;return(null==o?void 0:o.setInterval)?o.setInterval.apply(o,C([e,t],U(n))):setInterval.apply(void 0,C([e,t],U(n)))},clearInterval:function(e){var t=Ie.delegate;return((null==t?void 0:t.clearInterval)||clearInterval)(e)},delegate:void 0},Ee=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.scheduler=t,r.work=n,r.pending=!1,r}return E(t,e),t.prototype.schedule=function(e,t){if(void 0===t&&(t=0),this.closed)return this;this.state=e;var n=this.id,r=this.scheduler;return null!=n&&(this.id=this.recycleAsyncId(r,n,t)),this.pending=!0,this.delay=t,this.id=this.id||this.requestAsyncId(r,this.id,t),this},t.prototype.requestAsyncId=function(e,t,n){return void 0===n&&(n=0),Ie.setInterval(e.flush.bind(e,this),n)},t.prototype.recycleAsyncId=function(e,t,n){if(void 0===n&&(n=0),null!=n&&this.delay===n&&!1===this.pending)return t;Ie.clearInterval(t)},t.prototype.execute=function(e,t){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;var n=this._execute(e,t);if(n)return n;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))},t.prototype._execute=function(e,t){var n,r=!1;try{this.work(e)}catch(e){r=!0,n=e||new Error("Scheduled action threw falsy error")}if(r)return this.unsubscribe(),n},t.prototype.unsubscribe=function(){if(!this.closed){var t=this.id,n=this.scheduler,r=n.actions;this.work=this.state=this.scheduler=null,this.pending=!1,J(r,this),null!=t&&(this.id=this.recycleAsyncId(n,t,null)),this.delay=null,e.prototype.unsubscribe.call(this)}},t}(xe),Oe={now:function(){return(Oe.delegate||Date).now()},delegate:void 0},Ae=function(){function e(t,n){void 0===n&&(n=e.now),this.schedulerActionCtor=t,this.now=n}return e.prototype.schedule=function(e,t,n){return void 0===t&&(t=0),new this.schedulerActionCtor(this,e).schedule(n,t)},e.now=Oe.now,e}(),Te=new(function(e){function t(t,n){void 0===n&&(n=Ae.now);var r=e.call(this,t,n)||this;return r.actions=[],r._active=!1,r._scheduled=void 0,r}return E(t,e),t.prototype.flush=function(e){var t=this.actions;if(this._active)t.push(e);else{var n;this._active=!0;do{if(n=e.execute(e.state,e.delay))break}while(e=t.shift());if(this._active=!1,n){for(;e=t.shift();)e.unsubscribe();throw n}}},t}(Ae))(Ee),Ue=Te;function Ce(e){return e&&F(e.schedule)}function Pe(e,t,n){void 0===e&&(e=0),void 0===n&&(n=Ue);var r=-1;return null!=t&&(Ce(t)?n=t:r=t),new de((function(t){var o,i=(o=e)instanceof Date&&!isNaN(o)?+e-n.now():e;i<0&&(i=0);var s=0;return n.schedule((function(){t.closed||(t.next(s++),0<=r?this.schedule(void 0,r):t.complete())}),i)}))}function je(e){return Ce((t=e)[t.length-1])?e.pop():void 0;var t}function $e(e,t,n,r,o){void 0===r&&(r=0),void 0===o&&(o=!1);var i=t.schedule((function(){n(),o?e.add(this.schedule(null,r)):this.unsubscribe()}),r);if(e.add(i),!o)return i}function De(e){return W((function(t,n){var r,o=null,i=!1;o=t.subscribe(ke(n,void 0,void 0,(function(s){r=_e(e(s,De(e)(t))),o?(o.unsubscribe(),o=null,r.subscribe(n)):i=!0}))),i&&(o.unsubscribe(),o=null,r.subscribe(n))}))}function Re(e,t){return void 0===t&&(t=0),W((function(n,r){n.subscribe(ke(r,(function(n){return $e(r,e,(function(){return r.next(n)}),t)}),(function(){return $e(r,e,(function(){return r.complete()}),t)}),(function(n){return $e(r,e,(function(){return r.error(n)}),t)})))}))}function Le(e,t){return void 0===t&&(t=0),W((function(n,r){r.add(e.schedule((function(){return n.subscribe(r)}),t))}))}function Ne(e,t){if(!e)throw new Error("Iterable cannot be null");return new de((function(n){$e(n,t,(function(){var r=e[Symbol.asyncIterator]();$e(n,t,(function(){r.next().then((function(e){e.done?n.complete():n.next(e.value)}))}),0,!0)}))}))}function Be(e,t){if(null!=e){if(pe(e))return function(e,t){return _e(e).pipe(Le(t),Re(t))}(e,t);if(V(e))return function(e,t){return new de((function(n){var r=0;return t.schedule((function(){r===e.length?n.complete():(n.next(e[r++]),n.closed||this.schedule())}))}))}(e,t);if(K(e))return function(e,t){return _e(e).pipe(Le(t),Re(t))}(e,t);if(ye(e))return Ne(e,t);if(me(e))return function(e,t){return new de((function(n){var r;return $e(n,t,(function(){r=e[ve](),$e(n,t,(function(){var e,t,o;try{t=(e=r.next()).value,o=e.done}catch(e){return void n.error(e)}o?n.complete():n.next(t)}),0,!0)})),function(){return F(null==r?void 0:r.return)&&r.return()}}))}(e,t);if(ge(e))return function(e,t){return Ne(be(e),t)}(e,t)}throw he(e)}function Me(e,t){return W((function(n,r){var o=0;n.subscribe(ke(r,(function(n){r.next(e.call(t,n,o++))})))}))}function Fe(e,t,n){return void 0===n&&(n=1/0),F(t)?Fe((function(n,r){return Me((function(e,o){return t(n,e,r,o)}))(_e(e(n,r)))}),n):("number"==typeof t&&(n=t),W((function(t,r){return function(e,t,n,r,o,i,s,a){var c=[],l=0,u=0,d=!1,f=function(){!d||c.length||l||t.complete()},p=function(e){return l<r?y(e):c.push(e)},y=function(e){i&&t.next(e),l++;var a=!1;_e(n(e,u++)).subscribe(ke(t,(function(e){null==o||o(e),i?p(e):t.next(e)}),(function(){a=!0}),void 0,(function(){if(a)try{l--;for(var e=function(){var e=c.shift();s?$e(t,s,(function(){return y(e)})):y(e)};c.length&&l<r;)e();f()}catch(e){t.error(e)}})))};return e.subscribe(ke(t,p,(function(){d=!0,f()}))),function(){null==a||a()}}(t,r,e,n)})))}function We(){return void 0===(e=1)&&(e=1/0),Fe(ue,e);var e}function Ve(e,t){return void 0===t&&(t=Te),W((function(n,r){var o=null,i=null,s=null,a=function(){if(o){o.unsubscribe(),o=null;var e=i;i=null,r.next(e)}};function c(){var n=s+e,i=t.now();if(i<n)return o=this.schedule(void 0,n-i),void r.add(o);a()}n.subscribe(ke(r,(function(n){i=n,s=t.now(),o||(o=t.schedule(c,e),r.add(o))}),(function(){a(),r.complete()}),void 0,(function(){i=o=null})))}))}function Ke(){for(var e,t,n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];return We()((e=n,(t=je(n))?Be(e,t):_e(e)))}var He=new de((function(e){return e.complete()}));function ze(e){return e<=0?function(){return He}:W((function(t,n){var r=0;t.subscribe(ke(n,(function(t){++r<=e&&(n.next(t),e<=r&&n.complete())})))}))}function qe(e,t){return t?function(n){return Ke(t.pipe(ze(1),W((function(e,t){e.subscribe(ke(t,te))}))),n.pipe(qe(e)))}:Fe((function(t,n){return e(t,n).pipe(ze(1),function(e){return Me((function(){return e}))}(t))}))}function Je(e,t){void 0===t&&(t=Te);var n=Pe(e,t);return qe((function(){return n}))}function Ge(e,t){return void 0===t&&(t=ue),e=null!=e?e:Ye,W((function(n,r){var o,i=!0;n.subscribe(ke(r,(function(n){var s=t(n);!i&&e(o,s)||(i=!1,o=s,r.next(n))})))}))}function Ye(e,t){return e===t}function Xe(e,t){return W((function(n,r){var o=0;n.subscribe(ke(r,(function(n){return e.call(t,n,o++)&&r.next(n)})))}))}function Ze(e){return Xe((function(t,n){return e<=n}))}function Qe(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=je(e);return W((function(t,r){(n?Ke(e,t,n):Ke(e,t)).subscribe(r)}))}function et(e,t){return W((function(n,r){var o=null,i=0,s=!1,a=function(){return s&&!o&&r.complete()};n.subscribe(ke(r,(function(n){null==o||o.unsubscribe();var s=0,c=i++;_e(e(n,c)).subscribe(o=ke(r,(function(e){return r.next(t?t(n,e,c,s++):e)}),(function(){o=null,a()})))}),(function(){s=!0,a()})))}))}function tt(e,t,n){var r=F(e)||t||n?{next:e,error:t,complete:n}:e;return r?W((function(e,t){var n;null===(n=r.subscribe)||void 0===n||n.call(r);var o=!0;e.subscribe(ke(t,(function(e){var n;null===(n=r.next)||void 0===n||n.call(r,e),t.next(e)}),(function(){var e;o=!1,null===(e=r.complete)||void 0===e||e.call(r),t.complete()}),(function(e){var n;o=!1,null===(n=r.error)||void 0===n||n.call(r,e),t.error(e)}),(function(){var e,t;o&&(null===(e=r.unsubscribe)||void 0===e||e.call(r)),null===(t=r.finalize)||void 0===t||t.call(r)})))})):ue}let nt=!1;function rt(e,t){return O(this,void 0,void 0,(function*(){try{const n=yield navigator.serviceWorker.ready;if("push"===t&&n.sync&&(yield n.sync.register(`dexie-cloud:${e.name}`)),!n.active)throw new Error("Failed to trigger sync - there's no active service worker");return void n.active.postMessage({type:"dexie-cloud-sync",dbName:e.name,purpose:t})}catch(e){nt||(nt=!0)}}))}function ot(e,t){e.cloud.usingServiceWorker?rt(e,t):e.localSyncEvent.next({purpose:t})}const it="fromBase64"in Uint8Array,st="toBase64"in Uint8Array.prototype,at="undefined"!=typeof Buffer?e=>Buffer.from(e,"base64"):it?e=>Uint8Array.fromBase64(e):e=>{const t=atob(e),n=t.length,r=new Uint8Array(n);for(var o=0;o<n;o++)r[o]=t.charCodeAt(o);return r},ct="undefined"!=typeof Buffer?e=>ArrayBuffer.isView(e)?Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("base64"):Buffer.from(e).toString("base64"):st?e=>(ArrayBuffer.isView(e)?e:new Uint8Array(e)).toBase64():e=>{const t=ArrayBuffer.isView(e)?e:new Uint8Array(e),n=[];for(let e=0,r=t.length;e<r;e+=4096){const r=t.subarray(e,e+4096);n.push(String.fromCharCode.apply(null,r))}return btoa(n.join(""))};function lt(e){return O(this,arguments,void 0,(function*({realms:e,inviteRealms:t}){const n=JSON.stringify([...e.map((e=>({realmId:e,accepted:!0}))),...t.map((e=>({realmId:e,accepted:!1})))].sort(((e,t)=>e.realmId<t.realmId?-1:e.realmId>t.realmId?1:0))),r=(new TextEncoder).encode(n),o=yield crypto.subtle.digest("SHA-1",r);return ct(o)}))}function ut(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 dt(e){return`$${e}_mutations`}function ft(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 pt=[].concat;function yt(e){return pt.apply([],e)}function ht(e,t){return O(this,arguments,void 0,(function*(e,t,{since:n={},limit:r=1/0}={}){const o=yt(yield Promise.all(e.map((e=>O(this,void 0,void 0,(function*(){const t=ft(e.name),o=n[t];let i=o?e.where("rev").above(o):e;r<1/0&&(i=i.limit(r));return(yield i.toArray()).map((e=>({table:t,mut:e})))})))))).sort(((e,t)=>e.mut.txid===t.mut.txid?e.mut.opNo-t.mut.opNo:e.mut.ts-t.mut.ts)),i=[];let s=null,a=null;for(const{table:e,mut:t}of o)s&&s.table===e&&a===t.txid?s.muts.push(t):(s={table:e,muts:[t]},a=t.txid,i.push(s));return i}))}function vt(e){const t=new Uint8Array(e);if("undefined"!=typeof crypto)crypto.getRandomValues(t);else for(let n=0;n<e;n++)t[n]=Math.floor(256*Math.random());if("undefined"!=typeof Buffer&&Buffer.from)return Buffer.from(t).toString("base64");if("undefined"!=typeof btoa)return btoa(String.fromCharCode.apply(null,t));throw new Error("No btoa or Buffer available")}const mt={}.hasOwnProperty;function bt(e,t,n){if(e&&void 0!==t&&(!("isFrozen"in Object)||!Object.isFrozen(e)))if("string"!=typeof t&&"length"in t){!function(e){if(!e)throw new Error("Assertion Failed")}("string"!=typeof n&&"length"in n);for(var r=0,o=t.length;r<o;++r)bt(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 mt.call(e,t)}(e,s)||(c=e[s]={}),bt(c,a,n)}}else void 0===n?Array.isArray(e)&&!isNaN(parseInt(t))?e.splice(t,1):delete e[t]:e[t]=n}}const gt="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=_t)=>{const n=Buffer.alloc(e);return t(n),n.toString("base64")}:()=>{throw new Error("No implementation of randomString was found")};function _t(e){for(let t=0;t<e.length;++t)e[t]=Math.floor(256*Math.random())}function wt(e){return"string"==typeof e||!!(Array.isArray(e)&&e.some((e=>wt(e)))&&e.every(kt))}function kt(e){return"string"==typeof e||"number"==typeof e||Array.isArray(e)&&e.every(kt)}function St(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))bt(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 xt(e,t){for(const{table:n,muts:r}of t)for(const t of r)St(e,n,t)}const It=Math.floor,Et=Math.abs,Ot=(e,t)=>e>t?e:t,At=128,Tt=127,Ut=Number.MAX_SAFE_INTEGER,Ct=Number.isInteger||(e=>"number"==typeof e&&isFinite(e)&&It(e)===e),Pt=Array.isArray,jt="undefined"!=typeof TextEncoder?new TextEncoder:null,$t=jt?e=>jt.encode(e):e=>{const t=unescape(encodeURIComponent(e)),n=t.length,r=new Uint8Array(n);for(let e=0;e<n;e++)r[e]=t.codePointAt(e);return r};let Dt="undefined"==typeof TextDecoder?null:new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});Dt&&1===Dt.decode(new Uint8Array).length&&(Dt=null);class Rt{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}}const Lt=(e,t)=>{const n=e.cbuf.length;e.cpos===n&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(2*n),e.cpos=0),e.cbuf[e.cpos++]=t},Nt=(e,t)=>{for(;t>Tt;)Lt(e,At|Tt&t),t=It(t/128);Lt(e,Tt&t)},Bt=new Uint8Array(3e4),Mt=Bt.length/3,Ft=jt&&jt.encodeInto?(e,t)=>{if(t.length<Mt){const n=jt.encodeInto(t,Bt).written||0;Nt(e,n);for(let t=0;t<n;t++)Lt(e,Bt[t])}else Wt(e,$t(t))}:(e,t)=>{const n=unescape(encodeURIComponent(t)),r=n.length;Nt(e,r);for(let t=0;t<r;t++)Lt(e,n.codePointAt(t))},Wt=(e,t)=>{Nt(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(Ot(2*n,i)),e.cbuf.set(t.subarray(o)),e.cpos=i)})(e,t)},Vt=(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*Ot(n,t)),e.cpos=0)})(e,t);const n=new DataView(e.cbuf.buffer,e.cpos,t);return e.cpos+=t,n},Kt=(e,t)=>Vt(e,8).setBigUint64(0,t,!1),Ht=new DataView(new ArrayBuffer(4)),zt=(e,t)=>{switch(typeof t){case"string":Lt(e,119),Ft(e,t);break;case"number":Ct(t)&&Et(t)<=2147483647?(Lt(e,125),((e,t)=>{const n=(e=>0!==e?e<0:1/e<0)(t);for(n&&(t=-t),Lt(e,(t>63?At:0)|(n?64:0)|63&t),t=It(t/64);t>0;)Lt(e,(t>Tt?At:0)|Tt&t),t=It(t/128)})(e,t)):(n=t,Ht.setFloat32(0,n),Ht.getFloat32(0)===n?(Lt(e,124),((e,t)=>{Vt(e,4).setFloat32(0,t,!1)})(e,t)):(Lt(e,123),((e,t)=>{Vt(e,8).setFloat64(0,t,!1)})(e,t)));break;case"bigint":Lt(e,122),((e,t)=>{Vt(e,8).setBigInt64(0,t,!1)})(e,t);break;case"object":if(null===t)Lt(e,126);else if(Pt(t)){Lt(e,117),Nt(e,t.length);for(let n=0;n<t.length;n++)zt(e,t[n])}else if(t instanceof Uint8Array)Lt(e,116),Wt(e,t);else{Lt(e,118);const n=Object.keys(t);Nt(e,n.length);for(let r=0;r<n.length;r++){const o=n[r];Ft(e,o),zt(e,t[o])}}break;case"boolean":Lt(e,t?120:121);break;default:Lt(e,127)}var n};function qt(e){const t=new Rt;switch(Ft(t,e.type),"table"in e&&Ft(t,e.table),"prop"in e&&Ft(t,e.prop),e.type){case"u-ack":case"u-reject":Kt(t,BigInt(e.i));break;case"outdated-server-rev":break;case"y-complete-sync-done":Ft(t,e.yServerRev);break;default:switch(zt(t,e.k),e.type){case"aware":Wt(t,e.u);break;case"doc-open":zt(t,e.serverRev),zt(t,e.sv);break;case"doc-close":break;case"sv":Wt(t,e.sv);break;case"u-c":Wt(t,e.u),Kt(t,BigInt(e.i));break;case"u-s":Wt(t,e.u),Ft(t,e.r||"")}}return(e=>{const t=new Uint8Array((e=>{let t=e.cpos;for(let n=0;n<e.bufs.length;n++)t+=e.bufs[n].length;return t})(e));let n=0;for(let r=0;r<e.bufs.length;r++){const o=e.bufs[r];t.set(o,n),n+=o.length}return t.set(new Uint8Array(e.cbuf.buffer,0,e.cpos),n),t})(t)}const Jt=e=>new Error(e),Gt=Jt("Unexpected end of array"),Yt=Jt("Integer out of Range");class Xt{constructor(e){this.arr=e,this.pos=0}}const Zt=e=>e.pos!==e.arr.length,Qt=e=>((e,t)=>{const n=new Uint8Array(e.arr.buffer,e.pos+e.arr.byteOffset,t);return e.pos+=t,n})(e,tn(e)),en=e=>e.arr[e.pos++],tn=e=>{let t=0,n=1;const r=e.arr.length;for(;e.pos<r;){const r=e.arr[e.pos++];if(t+=(r&Tt)*n,n*=128,r<At)return t;if(t>Ut)throw Yt}throw Gt},nn=Dt?e=>Dt.decode(Qt(e)):e=>{let t=tn(e);if(0===t)return"";{let n=String.fromCodePoint(en(e));if(--t<100)for(;t--;)n+=String.fromCodePoint(en(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))}},rn=(e,t)=>{const n=new DataView(e.arr.buffer,e.arr.byteOffset+e.pos,t);return e.pos+=t,n},on=e=>rn(e,8).getBigUint64(0,!1),sn=[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&At))return o*n;const i=e.arr.length;for(;e.pos<i;){if(t=e.arr[e.pos++],n+=(t&Tt)*r,r*=128,t<At)return o*n;if(n>Ut)throw Yt}throw Gt},e=>rn(e,4).getFloat32(0,!1),e=>rn(e,8).getFloat64(0,!1),e=>rn(e,8).getBigInt64(0,!1),e=>!1,e=>!0,nn,e=>{const t=tn(e),n={};for(let r=0;r<t;r++){n[nn(e)]=an(e)}return n},e=>{const t=tn(e),n=[];for(let r=0;r<t;r++)n.push(an(e));return n},Qt],an=e=>sn[127-en(e)](e);function cn(e){return j(this,arguments,(function*(){var t,n,r,o;let i=0,s=new Uint8Array(4),a=0,c=[],l=0;try{for(var u,d=!0,f=$(e);!(t=(u=yield P(f.next())).done);d=!0){o=u.value,d=!1;const e=o,t=new DataView(e.buffer,e.byteOffset,e.byteLength);let n=0;for(;n<e.byteLength;)switch(i){case 0:if(n+4>e.byteLength){for(const t of e.slice(n)){if(4===a)break;s[a++]=t,++n}if(a<4)break}else if(a>0&&a<4)for(const t of e.slice(n,n+4-a))s[a++]=t,++n;case 1:l=4===a?new DataView(s.buffer,0,4).getUint32(0,!1):t.getUint32(n,!1),a?a=0:n+=4;case 2:if(n>=e.byteLength){i=2;break}if(n+l>e.byteLength)c.push(e.slice(n)),l-=e.byteLength-n,i=2,n=e.byteLength;else{if(c.length>0){const t=new Uint8Array(c.reduce(((e,t)=>e+t.byteLength),l));let r=0;for(const e of c)t.set(e,r),r+=e.byteLength;t.set(e.slice(n,n+l),r),c=[],yield yield P(t)}else yield yield P(e.slice(n,n+l));n+=l,i=0}}}}catch(e){n={error:e}}finally{try{d||t||!(r=f.return)||(yield P(r.call(f)))}finally{if(n)throw n.error}}}))}class ln 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 un(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 dn(e,t,...n){return un(e,{type:"message-alert",title:t,alerts:n,fields:{},submitLabel:"OK",cancelLabel:null})}function fn(e,t,n){return O(this,void 0,void 0,(function*(){let r=n||"";for(;!r||!/^[\w-+.]+@([\w-]+\.)+[\w-]{2,10}(\sas\s[\w-+.]+@([\w-]+\.)+[\w-]{2,10})?$/.test(r);)r=(yield un(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 pn(e,t,n){return O(this,void 0,void 0,(function*(){const r=[{type:"info",messageCode:"OTP_SENT",message:"A One-Time password has been sent to {email}",messageParams:{email:t}}];n&&r.push(n);const{otp:o}=yield un(e,{type:"otp",title:"Enter OTP",alerts:r,fields:{otp:{type:"otp",label:"OTP",placeholder:"Paste OTP here"}}});return o}))}function yn(e){return O(this,void 0,void 0,(function*(){var t,n,r;const o=yield e.getCurrentUser(),{accessToken:i,accessTokenExpiration:s,refreshToken:a,refreshTokenExpiration:c,claims:l}=o;if(!i)return null;if((null!==(t=null==s?void 0:s.getTime())&&void 0!==t?t:1/0)>Date.now()&&"ok"===((null===(n=o.license)||void 0===n?void 0:n.status)||"ok"))return o;if(!a)throw new Error("Refresh token missing");if((null!==(r=null==c?void 0:c.getTime())&&void 0!==r?r:1/0)<=Date.now())throw new Error("Refresh token has expired");const u=yield vn(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,data:u.data}),u}))}function hn(t,n,r,o,i){return O(this,void 0,void 0,(function*(){return n.accessToken&&n.accessTokenExpiration.getTime()>Date.now()?n:n.refreshToken&&(!n.refreshTokenExpiration||n.refreshTokenExpiration.getTime()>Date.now())?yield vn(t,n):yield function(t,n,r,o){return O(this,void 0,void 0,(function*(){if(!crypto.subtle)throw"undefined"!=typeof location&&"http:"===location.protocol?new Error("Dexie Cloud Addon needs to use WebCrypto, but your browser has disabled it due to being served from an insecure location. Please serve it from https or http://localhost:<port> (See https://stackoverflow.com/questions/46670556/how-to-enable-crypto-subtle-for-unsecure-origins-in-chrome/46671627#46671627)"):new Error("This browser does not support WebCrypto.");const{privateKey:i,publicKey:s}=yield crypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:2048,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!1,["sign","verify"]);if(!i||!s)throw new Error("Could not generate RSA keypair");t.nonExportablePrivateKey=i;const a=function(e){const t=ct(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 ln(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 un(r,{type:"message-alert",title:"Authentication Alert",fields:{},alerts:e.alerts})),t}catch(t){if(t instanceof ln)throw yield dn(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 dn(r,"Authentication Failed",{type:"error",messageCode:"GENERIC_ERROR",message:n,messageParams:{}}).catch((()=>{}))}throw t}}))}(n,r,o,i)}))}function vn(e,t){return O(this,void 0,void 0,(function*(){if(!t.refreshToken)throw new Error("Cannot refresh token - refresh token is missing.");if(!t.nonExportablePrivateKey)throw new Error("login.nonExportablePrivateKey is missing - cannot sign refresh token without a private key.");const n=Date.now(),r="RSASSA-PKCS1-v1_5",o=(new TextEncoder).encode(t.refreshToken+n),i=yield crypto.subtle.sign(r,t.nonExportablePrivateKey,o),s=ct(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 ln(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:mn}={};const bn={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 gn(...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 bn;let i=n.get(r);if(void 0!==i)return i;const s=(o=e,mn.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:bn),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 _n={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 wn={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 kn={bigint:{replace:e=>({$t:"bigint",v:""+e}),revive:e=>BigInt(e.v)}};var Sn={Date:{replace:e=>({$t:"Date",v:isNaN(e.getTime())?"NaN":e.toISOString()}),revive:({v:e})=>new Date("NaN"===e?NaN:Date.parse(e))}},xn={Set:{replace:e=>({$t:"Set",v:Array.from(e.entries())}),revive:({v:e})=>new Set(e)}},In={Map:{replace:e=>({$t:"Map",v:Array.from(e.entries())}),revive:({v:e})=>new Map(e)}};const En="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof global?global:void 0;var On=["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","DataView","BigInt64Array","BigUint64Array"].reduce(((e,t)=>({...e,[t]:{replace:(e,n,r)=>({$t:t,v:r.ArrayBuffer.replace(0===e.byteOffset&&e.byteLength===e.buffer.byteLength?e.buffer:e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength),n,r).v}),revive:({v:e},n,r)=>{const o=En[t];return o&&new o(r.ArrayBuffer.revive({v:e},n,r))}}})),{});function An(e){return function(e){for(var t="",n=0,r=e.length;n<r;n++)t+=Cn[e[n]];return t}(ct(e))}function Tn(e){return at(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+=Un[e[n]];return t}(e))}const Un={"-":"=",0:"A",1:"B",2:"C",3:"D",4:"E",5:"F",6:"G",7:"H",8:"I",9:"J",A:"K",B:"L",C:"M",D:"N",E:"O",F:"P",G:"Q",H:"R",I:"S",J:"T",K:"U",L:"V",M:"W",N:"X",O:"Y",P:"Z",Q:"a",R:"b",S:"c",T:"d",U:"e",V:"f",W:"g",X:"h",Y:"i",Z:"j",_:"k",a:"l",b:"m",c:"n",d:"o",e:"p",f:"q",g:"r",h:"s",i:"t",j:"u",k:"v",l:"w",m:"x",n:"y",o:"z",p:"0",q:"1",r:"2",s:"3",t:"4",u:"5",v:"6",w:"7",x:"8",y:"9",z:"+","|":"/"},Cn={};for(const e of Object.keys(Un))Cn[Un[e]]=e;var Pn={ArrayBuffer:{replace:e=>({$t:"ArrayBuffer",v:An(e)}),revive:({v:e})=>{const t=Tn(e);return t.buffer.byteLength===t.byteLength?t.buffer:t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}}};class jn{constructor(e,t){this.buf=e,this.type=t}}function $n(e){const t=new XMLHttpRequest;if(t.overrideMimeType("text/plain; charset=x-user-defined"),t.open("GET",URL.createObjectURL(e),!1),t.send(),200!==t.status&&0!==t.status)throw new Error("Bad Blob access: "+t.status);return t.responseText}function Dn(e){const t=new Uint8Array(e.length);for(let n=0;n<e.length;++n)t[n]=e.charCodeAt(n);return t.buffer}var Rn={Blob:{test:(e,t)=>"Blob"===t||e instanceof jn,replace:e=>({$t:"Blob",v:ct(e instanceof jn?e.buf:Dn($n(e))),type:e.type}),revive:({type:e,v:t})=>{const n=at(t);return void 0!==typeof Blob?new Blob([n]):new jn(n.buffer,e)}}};const Ln={...wn,...kn,...Sn,...xn,...In,...On,...Pn,...Rn};function Nn(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 Bn={undefined:{replace:()=>({$t:"undefined"}),revive:()=>{}}},Mn={File:{test:(e,t)=>"File"===t,replace:e=>({$t:"File",v:ct(Dn($n(e))),type:e.type,name:e.name,lastModified:new Date(e.lastModified).toISOString()}),revive:({type:e,v:t,name:n,lastModified:r})=>{const o=at(t);return new File([o],n,{type:e,lastModified:new Date(r).getTime()})}}};const Fn="function"==typeof BigInt&&"bigint"==typeof BigInt(0);class Wn{toString(){return this.v}constructor(e){this.v=e}}const Vn=Fn?{}:{bigint:{test:e=>e instanceof Wn,replace:e=>Object.assign({$t:"bigint"},e),revive:({v:e})=>new Wn(e)}},Kn=Object.assign(Object.assign(Object.assign(Object.assign({},Bn),Vn),Mn),{PropModification:{test:e=>e instanceof t,replace:e=>Object.assign({$t:"PropModification"},e["@@propmod"]),revive:e=>{var n=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}(e,["$t"]);return new t(n)}}}),Hn=gn(Ln,Kn),zn=function(...e){const t=gn(Ln,_n,...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 Nn(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 Nn(e.slice(0,4))).getUint32(0),n=e.slice(4,t+4),r=await function(e){return new Promise(((t,n)=>{const r=new FileReader;r.onabort=e=>n(new Error("file read aborted")),r.onerror=e=>n(e.target.error),r.onload=e=>t(e.target.result),r.readAsText(e)}))}(e.slice(t+4));return await this.parse(r,n)}}}(Kn);class qn extends Error{constructor(e,t){super(t||`${e.status} ${e.statusText}`),this.httpStatus=e.status}get name(){return"HttpError"}}function Jn(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=Gn(i,o));const e=l.muts[r],n=JSON.stringify(t);e.keys[s]=n}else if("#"===t[0]){l===i&&(l=Gn(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 Gn(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 Yn=new WeakMap;function Xn(e){return O(this,void 0,void 0,(function*(){var t,n;const r=(null!==(n=null===(t=Yn.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 Zn(e,t,n,r,o,i,s,a,c){return O(this,void 0,void 0,(function*(){const l={Accept:"application/json, application/x-bison, application/x-bison-stream","Content-Type":"application/tson"},u=yield yn(o),d=null==u?void 0:u.accessToken;d&&(l.Authorization=`Bearer ${d}`);const f={v:2,dbID:null==n?void 0:n.remoteDbId,clientIdentity:a,schema:s||{},lastPull:n?{serverRevision:n.serverRevision,yServerRevision:n.yServerRevision,realms:n.realms,inviteRealms:n.inviteRealms}:void 0,baseRevs:r,changes:Jn(o.dx.core.schema,c,e),y:t,dxcv:o.cloud.version};o.syncStateChangedEvent.next({phase:"pushing"});const p=Hn.stringify(f),y=yield fetch(`${i}/sync`,{method:"post",headers:l,credentials:"include",body:p});if(o.syncStateChangedEvent.next({phase:"pulling"}),function(e,t){const n=t.headers.get("Ratelimit-Limit"),r=t.headers.get("Ratelimit-Remaining"),o=t.headers.get("Ratelimit-Reset");if(n&&r&&o){const t=Number(n),i=Math.max(0,Number(r)),s=Number(o);if(i<t/2){const t=Math.ceil(s/(i+1));Yn.set(e,new Date(Date.now()+1e3*t))}else Yn.delete(e)}}(o,y),!y.ok)throw new qn(y);if("application/x-bison"===y.headers.get("content-type"))return zn.fromBinary(yield y.blob());{const e=yield y.text();return Hn.parse(e)}}))}function Qn(t){if(null==t?void 0:t.cancelled)throw new e.AbortError("Operation was cancelled")}let er=!1;function tr(e,t,n,r){return O(this,void 0,void 0,(function*(){yield e.$baseRevs.bulkPut(Object.keys(t).filter((e=>t[e].markedForSync)).map((e=>({tableName:e,clientRev:(n[e]||0)+1,serverRev:r})))),yield e.$baseRevs.where("tableName").noneOf(Object.keys(t).filter((e=>t[e].markedForSync))).delete()}))}function nr(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 rr(t,r,o){return O(this,void 0,void 0,(function*(){const i=yield t.bulkGet(r),s=[],a=[];r.forEach(((r,c)=>{const l=i[c];if(l){for(const[i,s]of Object.entries(o[c]))if(i===t.schema.primKey.keyPath){if(0!==n(s,r))throw new Error("Cannot change primary key")}else e.setByKeyPath(l,i,s);s.push(r),a.push(l)}})),yield null==t.schema.primKey.keyPath?t.bulkPut(a,s):t.bulkPut(a)}))}function or(t,n){return O(this,void 0,void 0,(function*(){for(const{table:r,muts:o}of t){if(!n.dx._allTables[r])continue;const t=n.table(r),{primaryKey:i}=t.core.schema,s=e=>{switch(e[0]){case"[":if(e.endsWith("]"))try{return JSON.parse(e)}catch(e){}return e;case"#":return e.endsWith(":"+n.cloud.currentUserId)?e.substr(0,e.length-n.cloud.currentUserId.length-1):e;default:return e}};for(const n of o){const r=n.keys.map(s);switch(n.type){case"insert":i.outbound?yield t.bulkAdd(n.values,r):(r.forEach(((t,r)=>{e.setByKeyPath(n.values[r],i.keyPath,t)})),yield t.bulkAdd(n.values));break;case"upsert":i.outbound?yield t.bulkPut(n.values,r):(r.forEach(((t,r)=>{e.setByKeyPath(n.values[r],i.keyPath,t)})),yield t.bulkPut(n.values));break;case"modify":1===r.length?yield t.update(r[0],n.changeSpec):yield t.where(":id").anyOf(r).modify(n.changeSpec);break;case"update":yield rr(t,r,n.changeSpecs);break;case"delete":yield t.bulkDelete(r)}}}}))}"undefined"!=typeof self&&"undefined"!=typeof navigator&&(er=navigator.onLine,self.addEventListener("online",(()=>er=!0)),self.addEventListener("offline",(()=>er=!1)));const ir="dexie-cloud-syncer";function sr(e,t){return e.where("i").between(t,1/0,!0).toArray()}function ar(e){const t=e.dx._options.Y;if(!t)throw new Error("Y library not supplied to Dexie constructor");return t}function cr(e,t,n){var r,o,i;if(!e.dx._allTables[t])return;const s=null===(i=null===(o=null===(r=e.table(t))||void 0===r?void 0:r.schema.yProps)||void 0===o?void 0:o.find((e=>e.prop===n)))||void 0===i?void 0:i.updatesTable;return s&&e.dx._allTables[s]?e.table(s):void 0}function lr(e,t){return O(this,void 0,void 0,(function*(){var o;const i={};let s,a=!1;for(const c of e)try{switch(c.type){case"u-s":{const e=cr(t,c.table,c.prop);if(e){const t={k:c.k,u:c.u};c.r&&(t.r=c.r,s=c.r),i[e.name]=yield e.add(t)}break}case"u-ack":{const e=cr(t,c.table,c.prop);e&&(yield t.transaction("rw",e,(t=>O(this,void 0,void 0,(function*(){let n=yield t.table(e.name).get(ir);yield t.table(e.name).put(Object.assign(Object.assign({},n||{i:ir}),{unsentFrom:Math.max((null==n?void 0:n.unsentFrom)||1,c.i+1)}))})))));break}case"u-reject":{const e=cr(t,c.table,c.prop);if(!e)break;const i=null===(o=yield e.get(c.i))||void 0===o?void 0:o.k;if(null!=i){yield t.transaction("rw",e,(t=>(t.idbtrans._rejecting_y_ypdate=!0,e.where("i").aboveOrEqual(c.i).filter((e=>0===n(e.k,i)&&1==(1&(e.f||0)))).delete())));const o=r.getDocCache(t.dx).find(c.table,i,c.prop);o&&o.destroy()}break}case"in-sync":{const e=r.getDocCache(t.dx).find(c.table,c.k,c.prop);e&&!e.isSynced&&e.emit("sync",[!0]);break}case"y-complete-sync-done":s=c.yServerRev;break;case"outdated-server-rev":a=!0}}catch(e){}return{receivedUntils:i,resyncNeeded:a,yServerRevision:s}}))}const ur=1,dr=2,fr=3;function pr(t,n,r){return O(this,arguments,void 0,(function*(t,n,{yDownloadedRealms:r,realms:o}){if(r&&o&&o.every((e=>"*"===r[e])))return;const i=yield yn(t),s={"Content-Type":"application/json",Accept:"application/octet-stream"};i&&(s.Authorization=`Bearer ${i.accessToken}`);const a=yield fetch(`${n}/y/download`,{body:Hn.stringify({downloadedRealms:r||{}}),method:"POST",headers:s,credentials:"include"});if(!a.ok)throw new Error(`Failed to download Yjs documents from server. Status: ${a.status}`);yield async function(e,...t){var n,r,o;let i=e();for(let e=0;e<t.length;e++)i=t[e](i);try{for(var s,a=!0,c=$(i);!(n=(s=await c.next()).done);a=!0)s.value,a=!1}catch(e){r={error:e}}finally{try{a||n||!(o=c.return)||await o.call(c)}finally{if(r)throw r.error}}}(function(e){return function(){return j(this,arguments,(function*(){if(!e.body)throw new Error("Response body is not readable");const t=e.body.getReader();try{for(;;){const{done:e,value:n}=yield P(t.read());if(e)return yield P(void 0);yield yield P(n)}}finally{t.releaseLock()}}))}}(a),cn,(function(r){return j(this,arguments,(function*(){var o,i,s,a;let c=null,l=null,u=null,d=[];function f(e){return O(this,void 0,void 0,(function*(){const r=d[d.length-1];if(d.length>0){if(!c||!l||!u)throw new Error(`Protocol error from ${n}/y/download`);const e=cr(t,l,u);e&&(yield e.bulkAdd(d)),d=[]}c&&(l&&u&&r||e)&&(yield t.$syncState.update("syncState",(t=>{const n=t.yDownloadedRealms||{};n[c]=e?"*":{tbl:l,prop:u,key:r.k},t.yDownloadedRealms=n})))}))}try{try{for(var p,y=!0,h=$(r);!(o=(p=yield P(h.next())).done);y=!0){a=p.value,y=!1;const e=new Xt(a);for(;Zt(e);)switch(en(e)){case ur:yield P(f(!0)),c=nn(e);break;case dr:yield P(f(!1)),l=nn(e),u=nn(e);break;case fr:{const t=an(e),n=Qt(e);d.push({k:t,u:n});break}}yield P(f(!1))}}catch(e){i={error:e}}finally{try{y||o||!(s=h.return)||(yield P(s.call(h)))}finally{if(i)throw i.error}}yield P(f(!0))}catch(t){throw t instanceof e.DexieError||(yield P(f(!1))),t}}))}))}))}const yr="currentSyncWorker";function hr(e,t,n,r){return vr(e,t,n,r).then((t=>((null==r?void 0:r.justCheckIfNeeded)||e.syncStateChangedEvent.next({phase:"in-sync"}),t))).catch((o=>O(this,void 0,void 0,(function*(){return(null==r?void 0:r.justCheckIfNeeded)?Promise.reject(o):er&&(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 hr(e,t,n,Object.assign(Object.assign({},r),{retryImmediatelyOnFetchError:!1}))):(yield e.$syncState.update("syncState",{timestamp:new Date,error:""+o}),e.syncStateChangedEvent.next({phase:er?"error":"offline",error:new Error(""+(null==o?void 0:o.message)||o)}),Promise.reject(o))}))))}function vr(e,t,n){return O(this,arguments,void 0,(function*(e,t,n,{isInitialSync:r,cancelToken:o,justCheckIfNeeded:i,purpose:s}={isInitialSync:!1}){var a;if(!(null===(a=e.cloud.options)||void 0===a?void 0:a.databaseUrl))throw new Error("Internal error: sync must not be called when no databaseUrl is configured");const{databaseUrl:c}=t,l=yield e.getCurrentUser(),u=l.isLoggedIn?ut(e):[],d=u.map((t=>e.table(dt(t.name)))),f=yield e.getPersistedSyncState(),p=l.isLoggedIn,y=p?function(e,t){const n=(null==t?void 0:t.syncedTables)||[];return ut(e).filter((e=>!n.includes(e.name)))}(e,f):[];Qn(o);const h=y.length>0;if(h){if(i)return!0;yield e.transaction("rw",y,(e=>O(this,void 0,void 0,(function*(){e.idbtrans.disableChangeTracking=!0,e.idbtrans.disableAccessControl=!0,yield function(e,t,n){return O(this,void 0,void 0,(function*(){const r=new Set(n||[]);for(const n of e)"members"===n.name?yield n.toCollection().modify((e=>{r.has(e.realmId)||e.userId&&e.userId!==D.userId||(e.userId=t.userId)})):"roles"===n.name||("realms"===n.name?yield n.toCollection().modify((e=>{r.has(e.realmId)||void 0!==e.owner&&e.owner!==D.userId||(e.owner=t.userId)})):yield n.toCollection().modify((e=>{e.realmId&&r.has(e.realmId)||(e.owner&&e.owner!==D.userId||(e.owner=t.userId),e.realmId&&e.realmId!==D.userId||(e.realmId=t.userId))})))}))}(y,l,null==f?void 0:f.realms)})))),Qn(o)}const[v,m,b,{yMessages:g,lastUpdateIds:_}]=yield e.transaction("r",e.tables,(()=>O(this,void 0,void 0,(function*(){const t=yield e.getPersistedSyncState();let r=yield e.$baseRevs.toArray();r=r.filter((e=>u.some((t=>t.name===e.tableName))));let i=yield ht(d,e);const s=yield function(e,t){return O(this,void 0,void 0,(function*(){const n=[],r={};for(const o of t)if(o.schema.yProps)for(const t of o.schema.yProps){const i=ar(e),s=e.table(t.updatesTable),a=yield s.get(ir),c=(null==a?void 0:a.unsentFrom)||1,l=(null==a?void 0:a.receivedUntil)||0,u=Math.min(c,l+1),d=yield sr(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(Qn(o),h){const e=[...(null==f?void 0:f.realms)||[],...(null==f?void 0:f.inviteRealms)||[]],a=yield function(e,t,n,r){return O(this,void 0,void 0,(function*(){const o=`upload-${vt(8)}`;if(t.isLoggedIn&&e.length>0){const i=new Set(r||[]);return(yield Promise.all(e.map((e=>O(this,void 0,void 0,(function*(){const{extractKey:r}=e.core.schema.primaryKey;if(!r)return{table:e.name,muts:[]};const s=n[e.name],a=(null==s?void 0:s.generatedGlobalId)?e.filter((e=>{return r(e),!i.has(e.realmId||"")&&(t=r(e),!(n=null==s?void 0:s.idPrefix)||"string"==typeof t&&t.startsWith(n));var t,n})):e.filter((e=>{const t=r(e);return!i.has(e.realmId||"")&&wt(t)})),c=yield a.toArray();if(c.length>0){const n={type:"upsert",values:c,keys:c.map(r),userId:t.userId,txid:o};return{table:e.name,muts:[n]}}return{table:e.name,muts:[]}})))))).filter((e=>e.muts.length>0))}return[]}))}(y,l,n,e);return Qn(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=nr(v,null==m?void 0:m.latestRevisions),S=(null==m?void 0:m.clientIdentity)||gt(16);Qn(o);const x=yield Zn(v,g,m,b,e,c,n,S,l),{done:I,newSyncState:E}=yield e.transaction("rw",e.tables,(t=>O(this,void 0,void 0,(function*(){t.idbtrans.disableChangeTracking=!0,t.idbtrans.disableAccessControl=!0;for(const e of Object.keys(n))x.schema[e]&&(n[e]=x.schema[e]);yield e.$syncState.put(n,"schema");const r=yield ht(d,e,{since:k});for(const t of d){const n=ft(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()])}nr(r,k),yield tr(e,n,k,x.serverRevision);const o=yield e.getPersistedSyncState();yield function(e,t,n){return O(this,void 0,void 0,(function*(){const r=new Set,o=new Set,i=n?n.realms:[],s=n?n.inviteRealms:[],a=new Set(t.realms),c=new Set(t.realms.concat(t.inviteRealms));for(const e of i)a.has(e)||(o.add(e),c.has(e)||r.add(e));for(const e of s.concat(i))c.has(e)||r.add(e);if(r.size>0||o.size>0){const t=ut(e);for(const e of t){let t=["realms","members","roles"].includes(e.name)?r:o;0!==t.size&&(e.schema.indexes.some((e=>"realmId"===e.keyPath||Array.isArray(e.keyPath)&&"realmId"===e.keyPath[0]))?yield e.where("realmId").anyOf([...t]).delete():yield e.filter((e=>!!(null==e?void 0:e.realmId)&&t.has(e.realmId))).delete())}}if(o.size>0&&(null==n?void 0:n.yDownloadedRealms))for(const e of o)delete n.yDownloadedRealms[e]}))}(e,x,o);const i=o||{syncedTables:[],latestRevisions:{},realms:[],inviteRealms:[],clientIdentity:S};p&&(i.syncedTables=u.map((e=>e.name)).concat(y.map((e=>e.name)))),i.latestRevisions=k,i.remoteDbId=x.dbId,i.initiallySynced=!0,i.realms=x.realms,i.inviteRealms=x.inviteRealms,i.serverRevision=x.serverRevision,i.yServerRevision=x.serverRevision,i.timestamp=new Date,delete i.error;const s=mr(x.changes,r);if(yield or(s,e),x.yMessages){const{receivedUntils:t,resyncNeeded:n,yServerRevision:r}=yield lr(x.yMessages,e);r&&(i.yServerRevision=r),yield function(e,t,n){return O(this,void 0,void 0,(function*(){var r,o,i,s,a;const c={};for(const[t,n]of Object.entries(e))null!==(r=c[t])&&void 0!==r||(c[t]={}),c[t].unsentFrom=n+1;for(const[e,n]of Object.entries(t))null!==(o=c[e])&&void 0!==o||(c[e]={}),c[e].receivedUntil=n;const l=Object.values(n.dx._dbSchema).filter((e=>e.yProps)).map((e=>e.yProps.map((e=>e.updatesTable)))).flat();for(const e of l){const t=c[e],r=null!==(i=null==t?void 0:t.unsentFrom)&&void 0!==i?i:1,o=null!==(a=null!==(s=null==t?void 0:t.receivedUntil)&&void 0!==s?s:(yield n.table(e).where("i").between(1,1/0).reverse().limit(1).primaryKeys())[0])&&void 0!==a?a:0;yield n.transaction("rw",e,(()=>O(this,void 0,void 0,(function*(){const t=yield n.table(e).get(ir);t?(t.unsentFrom=Math.max(r,t.unsentFrom||1),t.receivedUntil=Math.max(o,t.receivedUntil||0),yield n.table(e).put(t)):yield n.table(e).add({i:ir,unsentFrom:r,receivedUntil:o})}))))}}))}(_,t,e),n&&(i.yDownloadedRealms={})}return e.$syncState.put(i,"syncState"),{done:0===r.length,newSyncState:i}}))));if(!I)return yield Xn(e),yield vr(e,t,n,{isInitialSync:r,cancelToken:o});const A=Object.values(n).some((e=>{var t;return null===(t=e.yProps)||void 0===t?void 0:t.length})),T=!!x.yMessages;if(A&&T)try{yield pr(e,c,E)}catch(e){}return e.syncCompleteEvent.next(),!1}))}function mr(e,t){const n={};xt(n,e);const r={};return xt(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))bt(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=gt(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 br=10,gr=1e4,_r=1e3;function wr(t){const n=[],r=new a(!0),o=new a(null);let i=!1,s=new Array(br).fill(0);return o.subscribe((()=>O(this,void 0,void 0,(function*(){if(!i&&n.length>0){i=!0,s.shift(),s.push(Date.now()),r.next(!1);try{yield function(){return O(this,void 0,void 0,(function*(){for(var r,o,i,s,a,l;n.length>0;){const u=n.shift();try{yield c(t.cloud.syncState.pipe(Xe((({phase:e})=>"in-sync"===e||"error"===e))));const n=t.cloud.persistedSyncState.value;if(!u)continue;switch(u.type){case"token-expired":const c=t.cloud.currentUser.value,d=yield vn(t.cloud.options.databaseUrl,c);yield t.table("$logins").update(c.userId,{accessToken:d.accessToken,accessTokenExpiration:d.accessTokenExpiration,claims:d.claims,license:d.license,data:d.data});break;case"realm-added":(null===(r=null==n?void 0:n.realms)||void 0===r?void 0:r.includes(u.realm))||(null===(o=null==n?void 0:n.inviteRealms)||void 0===o?void 0:o.includes(u.realm))||(yield t.cloud.sync({purpose:"pull",wait:!0}));break;case"realm-accepted":(null===(i=null==n?void 0:n.realms)||void 0===i?void 0:i.includes(u.realm))||(yield t.cloud.sync({purpose:"pull",wait:!0}));break;case"realm-removed":((null===(s=null==n?void 0:n.realms)||void 0===s?void 0:s.includes(u.realm))||(null===(a=null==n?void 0:n.inviteRealms)||void 0===a?void 0:a.includes(u.realm)))&&(yield t.cloud.sync({purpose:"pull",wait:!0}));break;case"realms-changed":yield t.cloud.sync({purpose:"pull",wait:!0});break;case"changes":if("error"===(null===(l=t.cloud.syncState.value)||void 0===l?void 0:l.phase)){ot(t,"pull");break}yield t.transaction("rw",t.dx.tables,(n=>O(this,void 0,void 0,(function*(){n.idbtrans.disableChangeTracking=!0,n.idbtrans.disableAccessControl=!0;const[r,o,i]=yield Promise.all([t.getSchema(),t.getPersistedSyncState(),t.getCurrentUser()]);if(!o||!r||!i)return;if(u.baseRev!==o.serverRevision)return void("string"!=typeof u.baseRev||"bigint"!=typeof o.serverRevision&&"object"!=typeof o.serverRevision||ot(t,"pull"));if((yield e.waitFor(lt(o)))!==u.realmSetHash)return void ot(t,"pull");let s=[];if(i.isLoggedIn){const e=ut(t).map((e=>t.table(dt(e.name))));s=yield ht(e,t)}if(u.changes.length>0){const e=mr(u.changes,s);yield or(e,t)}o.latestRevisions=nr(s,o.latestRevisions),o.serverRevision=u.newRev,yield tr(t,r,o.latestRevisions,u.newRev),yield t.$syncState.put(o,"syncState")}))))}}catch(e){}}}))}()}finally{s[s.length-1]-s[0]<gr&&(yield new Promise((e=>setTimeout(e,_r)))),i=!1,r.next(!0)}}})))),{enqueue:function(e){n.push(e),o.next(null)},readyToServe:r}}const kr=new WeakMap,Sr={members:"@id, [userId+realmId], [email+realmId], realmId",roles:"[realmId+name]",realms:"@realmId",$jobs:"",$syncState:"",$baseRevs:"[tableName+clientRev]",$logins:"claims.sub, lastLogin"};let xr=0;function Ir(e){"vip"in e&&(e=e.vip);let t=kr.get(e.cloud);if(!t){const n=new l;let r=new M(`syncstatechanged-${e.name}`),o=new M(`synccomplete-${e.name}`);n.id=++xr;let i=!1;t={get name(){return e.name},close:()=>e.close(),transaction:e.transaction.bind(e),table:e.table.bind(e),get tables(){return e.tables},cloud:e.cloud,get $jobs(){return e.table("$jobs")},get $syncState(){return e.table("$syncState")},get $baseRevs(){return e.table("$baseRevs")},get $logins(){return e.table("$logins")},get realms(){return e.realms},get members(){return e.members},get roles(){return e.roles},get initiallySynced(){return i},localSyncEvent:n,get syncStateChangedEvent(){return r},get syncCompleteEvent(){return o},dx:e};const s={getCurrentUser:()=>t.$logins.toArray().then((e=>e.find((e=>e.isLoggedIn))||D)),getPersistedSyncState:()=>t.$syncState.get("syncState"),getSchema:()=>t.$syncState.get("schema").then((e=>{if(e)for(const r of t.tables)r.schema.primKey&&r.schema.primKey.keyPath&&e[r.name]&&(e[r.name].primaryKey="string"==typeof(n=r.schema.primKey.keyPath)?n:n?"["+[].join.call(n,"+")+"]":"");var n;return e})),getOptions:()=>t.$syncState.get("options"),setInitiallySynced(e){i=e},reconfigure(){r=new M(`syncstatechanged-${e.name}`),o=new M(`synccomplete-${e.name}`)}};Object.assign(t,s),t.messageConsumer=wr(t),t.messageProducer=new l,kr.set(e.cloud,t)}return t}const Er=new WeakMap;class Or{constructor(e,t){Er.set(this,e),Object.assign(this,t)}static load(e,t){return e.table("$logins").get(t).then((n=>new Or(e,n||{userId:t,claims:{sub:t},lastLogin:new Date(0)})))}save(){return O(this,void 0,void 0,(function*(){Er.get(this).table("$logins").put(this)}))}}function Ar(e,t){return c(u(e).pipe(d(t)))}function Tr(e){return O(this,void 0,void 0,(function*(){const t=yield Ur(e);if(t){if(!(yield function(e,t,n){return O(this,void 0,void 0,(function*(){const r=[{type:"warning",messageCode:"LOGOUT_CONFIRMATION",message:"{numUnsyncedChanges} unsynced changes will get lost!\n Logout anyway?",messageParams:{currentUserId:t,numUnsyncedChanges:n.toString()}}];return yield un(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 Ur(e,{deleteUnsyncedData:!0})}}))}function Ur(e){return O(this,arguments,void 0,(function*(e,{deleteUnsyncedData:t=!1}={}){const[n,r]=yield e.dx.transaction("rw",e.dx.tables,(n=>O(this,void 0,void 0,(function*(){const r=n.idbtrans;r.disableChangeTracking=!0,r.disableAccessControl=!0;const o=n.storeNames.filter((e=>e.endsWith("_mutations"))),i=(yield Promise.all(o.map((e=>n.table(e).count())))).reduce(((e,t)=>e+t),0);if(i>0&&!t)return[i,!1];e.$syncState.delete("syncState");for(const t of e.dx.tables)"$jobs"!==t.name&&"$syncState"!==t.name&&t.clear();return[i,!0]}))));return r&&(yield Ar(e.cloud.currentUser,(e=>e.userId===D.userId)),yield e.cloud.sync({purpose:"pull",wait:!0})),n}))}function Cr(e,...t){globalThis.console[e](...t)}function Pr(e,t){return O(this,void 0,void 0,(function*(){var n;const r=yield e.getCurrentUser(),o=r.userId;if(r.isLoggedIn&&(!t||!t.email&&!t.userId)){if("ok"===((null===(n=r.license)||void 0===n?void 0:n.status)||"ok")&&r.accessToken&&(!r.accessTokenExpiration||r.accessTokenExpiration.getTime()>Date.now()))return!1;if(r.refreshToken&&(!r.refreshTokenExpiration||r.refreshTokenExpiration.getTime()>Date.now()))return yield yn(e),!1}const i=new Or(e,{claims:{},lastLogin:new Date(0)});return yield hn(e.cloud.options.databaseUrl,i,e.cloud.options.fetchTokens||function(e){const{userInteraction:t}=e.cloud;return function(n){return O(this,arguments,void 0,(function*({public_key:n,hints:r}){var o;let i;const s=null===(o=e.cloud.options)||void 0===o?void 0:o.databaseUrl;if(!s)throw new Error("No database URL given.");if("demo"===(null==r?void 0:r.grant_type))i={demo_user:yield fn(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 fn(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 dn(t,"Token request failed",{type:"error",messageCode:"GENERIC_ERROR",message:e,messageParams:{}}).catch((()=>{})),new qn(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 pn(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 pn(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 qn(o,e)}return yield o.json()}throw new Error(`Unexpected response from ${s}/token`)}))}}(e),e.cloud.userInteraction,t),o!==D.userId&&i.userId!==o&&(yield Tr(e)),yield function(e,t){return O(this,void 0,void 0,(function*(){const n=e.table("$logins");yield e.transaction("rw",n,(e=>O(this,void 0,void 0,(function*(){const e=yield n.toArray();yield Promise.all(e.filter((e=>e.userId!==t.userId&&e.isLoggedIn)).map((e=>(e.isLoggedIn=!1,n.put(e))))),t.isLoggedIn=!0,t.lastLogin=new Date;try{yield t.save()}catch(e){try{"DataCloneError"===e.name&&(Cr("debug","Login context property names:",Object.keys(t)),Cr("debug","Login context property names:",Object.keys(t)),Cr("debug","Login context:",t),Cr("debug","Login context JSON:",JSON.stringify(t)))}catch(e){}throw e}})))),yield Ar(e.cloud.currentUser,(e=>e.userId===t.userId))}))}(e,i),ot(e,"pull"),i.userId!==o}))}const jr="undefined"!=typeof InstallTrigger,$r="undefined"!=typeof navigator&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\/|Edge\//.test(navigator.userAgent),Dr=$r?[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]:NaN,Rr=$r&&Dr<=605||jr,Lr="undefined"!=typeof self&&"clients"in self&&!self.document;const{toString:Nr}={};function Br(e){return Nr.call(e).slice(8,-1)}function Mr(e,t){var n;return"delete"===t.type?t.keys:(null===(n=t.keys)||void 0===n?void 0:n.slice())||t.values.map(e.extractKey)}const Fr=/b|c|d|f|g|h|j|k|l|m|n|p|q|r|s|t|v|x|y|z/i;let Wr=0;function Vr(e,t){const n=new Uint8Array(18),r=new Uint8Array(n.buffer,0,6),o=Date.now();Wr>=o?++Wr:Wr=o,r[0]=Wr/1099511627776,r[1]=Wr/4294967296,r[2]=Wr/16777216,r[3]=Wr/65536,r[4]=Wr/256,r[5]=Wr;const i=new Uint8Array(n.buffer,6);crypto.getRandomValues(i);return e+An(new Uint8Array(n.buffer))+(t||"")}function Kr(t){return{stack:"dbcore",name:"idGenerationMiddleware",level:1,create:n=>Object.assign(Object.assign({},n),{table:r=>{const o=n.table(r);return Object.assign(Object.assign({},o),{mutate:n=>{var i,s;const a=n.trans;if("versionchange"===a.mode&&(a.disableChangeTracking=!0,a.disableAccessControl=!0),a.disableChangeTracking)return o.mutate(n);if("add"===n.type||"put"===n.type){const a=null===(i=t.cloud.schema)||void 0===i?void 0:i[r];if(null==a?void 0:a.generatedGlobalId){if((null===(s=t.cloud.options)||void 0===s?void 0:s.databaseUrl)&&!t.initiallySynced){const e=Mr(o.schema.primaryKey,n);return o.getMany({keys:e,trans:n.trans,cache:"immutable"}).then((t=>{if(t.length<e.length)throw new Error("Unable to create new objects without an initial sync having been performed.");return o.mutate(n)}))}return function(n,i){let s=null;const a=Mr(o.schema.primaryKey,n);return a.forEach(((c,l)=>{if(void 0===c){const r=n.values[l].realmId||t.cloud.currentUserId,c=r.substr(r.length-3);a[l]=Vr(i,c),o.schema.primaryKey.outbound||(s||(s=n.values.slice()),s[l]=e.deepClone(s[l]),e.setByKeyPath(s[l],o.schema.primaryKey.keyPath,a[l]))}else if("string"!=typeof c||!c.startsWith(i)&&!c.startsWith("#"+i))throw new e.ConstraintError(`The ID "${c}" is not valid for table "${r}". Primary '@' keys requires the key to be prefixed with "${i}" (or "#${i}).\nIf you want to generate IDs programmatically, remove '@' from the schema to get rid of this constraint. Dexie Cloud supports custom IDs as long as they are random and globally unique.`)})),o.mutate(Object.assign(Object.assign({},n),{keys:a,values:s||n.values}))}(n,a.idPrefix)}if(null==a?void 0:a.markedForSync){Mr(o.schema.primaryKey,n).forEach(((t,n)=>{if(!wt(t)){const n=Array.isArray(t)?t.map(Br).join(","):Br(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 Hr=0;function zr(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 qr(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 Jr=new a(new Set);function Gr(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 Yr({currentUserObservable:e,db:t}){return{stack:"dbcore",name:"MutationTrackingMiddleware",level:1,create:n=>{const r=new Set(n.schema.tables.map((e=>e.name))),i=n.schema.tables.filter((e=>!/^\$/.test(e.name))),s=new Map;for(const e of i){const t=`$${e.name}_mutations`;r.has(t)&&s.set(e.name,n.table(t))}return Object.assign(Object.assign({},n),{transaction:(r,o)=>{let i;if("readwrite"===o){const e=r.filter((e=>{var n,r;return null===(r=null===(n=t.cloud.schema)||void 0===n?void 0:n[e])||void 0===r?void 0:r.markedForSync})).map((e=>dt(e)));i=n.transaction([...r,...e],o)}else i=n.transaction(r,o);if("readwrite"===o){i.txid=vt(16),i.opCount=0,i.currentUser=e.value,Jr.value.add(i),Jr.next(Jr.value);const n=()=>{i.removeEventListener("complete",r),i.removeEventListener("error",n),i.removeEventListener("abort",n),Jr.value.delete(i),Jr.next(Jr.value)},r=()=>{i.mutationsAdded&&!Gr(t)&&ot(t,"push"),n()};i.addEventListener("complete",r),i.addEventListener("error",n),i.addEventListener("abort",n)}return i},table:e=>{const r=n.table(e);if(/^\$/.test(e))return e.endsWith("_mutations")?Object.assign(Object.assign({},r),{mutate:e=>("add"!==e.type&&"put"!==e.type||(e.trans.mutationsAdded=!0),r.mutate(e))}):"$logins"===e?Object.assign(Object.assign({},r),{mutate:e=>r.mutate(e).then((t=>(e.trans.mutationsAdded=!0,t))).catch((e=>Promise.reject(e)))}):r;const{schema:i}=r,a=s.get(e);return a?function(e){const t="$lock"+ ++Hr;return Object.assign(Object.assign({},e),{count:zr(e.count,t),get:zr(e.get,t),getMany:zr(e.getMany,t),openCursor:zr(e.openCursor,t),query:zr(e.query,t),mutate:qr(e.mutate,t)})}(Object.assign(Object.assign({},r),{mutate:n=>{var o,s,a;const l=n.trans;return l.txid?l.disableChangeTracking?r.mutate(n):(null===(s=null===(o=t.cloud.schema)||void 0===o?void 0:o[e])||void 0===s?void 0:s.markedForSync)&&(null===(a=l.currentUser)||void 0===a?void 0:a.isLoggedIn)?"deleteRange"===n.type?r.query({query:{range:n.range,index:i.primaryKey},trans:n.trans,values:!1}).then((e=>c({type:"delete",keys:e.result,trans:n.trans,criteria:{index:null,range:n.range}}))):c(n):r.mutate(n):r.mutate(n)}})):r;function c(n){var s,c;const l=n.trans,u=null===(c=null===(s=t.cloud.options)||void 0===s?void 0:s.unsyncedProperties)||void 0===c?void 0:c[e],{txid:d,currentUser:{userId:f}}=l,{type:p}=n,y=++l.opCount;function h(e){if(!u)return e;let t=e;for(const n of Object.keys(e))u.some((e=>n===e||n.startsWith(e+".")))&&(t===e&&(t=Object.assign({},e)),delete t[n]);return t}return r.mutate(n).then((e=>{var t;const{numFailures:r,failures:s}=e;let c="delete"===p?n.keys:e.results,v="values"in n?n.values:[],m="changeSpec"in n?n.changeSpec:void 0,b="updates"in n?n.updates:void 0;if(r&&(c=c.filter(((e,t)=>!s[t])),v=v.filter(((e,t)=>!s[t]))),u){if(v=v.map((e=>{const t=Object.assign({},e);for(const e of u)delete t[e];return t})),m&&(m=h(m),0===Object.keys(m).length))return e;if(b){let e=b.changeSpecs.map(h),t={keys:[],changeSpecs:[]};const n=new o;let r=!1;for(let o=0,i=e.length;o<i;++o)Object.keys(e[o]).length>0?(t.keys.push(b.keys[o]),t.changeSpecs.push(e[o]),n.addKey(b.keys[o])):r=!0;if(b=t,r){let e=[],t=[];for(let r=0,o=c.length;r<o;++r)n.hasKey(c[r])&&(e.push(c[r]),t.push(v[r]));c=e,v=t}}}const g=Date.now();let _="criteria"in n&&n.criteria?Object.assign(Object.assign({},n.criteria),{index:n.criteria.index===i.primaryKey.keyPath?null:n.criteria.index}):void 0;if(u&&(null==_?void 0:_.index)){const e=null===(t=i.indexes.find((e=>e.name===_.index)))||void 0===t?void 0:t.keyPath;(e?"string"==typeof e?[e]:e:[]).some((e=>null==u?void 0:u.includes(e)))&&(_=void 0)}const w="delete"===n.type?{type:"delete",ts:g,opNo:y,keys:c,criteria:_,txid:d,userId:f}:"add"===n.type?{type:"insert",ts:g,opNo:y,keys:c,txid:d,userId:f,values:v}:_&&m?{type:"modify",ts:g,opNo:y,keys:c,criteria:_,changeSpec:m,txid:d,userId:f}:m?{type:"update",ts:g,opNo:y,keys:c,changeSpecs:c.map((()=>m)),txid:d,userId:f}:b?{type:"update",ts:g,opNo:y,keys:b.keys,changeSpecs:b.changeSpecs,txid:d,userId:f}:{type:"upsert",ts:g,opNo:y,keys:c,values:v,txid:d,userId:f};return"isAdditionalChunk"in n&&n.isAdditionalChunk&&(w.isAdditionalChunk=!0),c.length>0||_?a.mutate({type:"add",trans:l,values:[w]}).then((()=>(l.mutationsAdded=!0,e))):e}))}}})}}}function Xr(e,t){return function(n,r){var o;const i=Object.assign(Object.assign({},Sr),n);Object.keys(Sr).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=Sr[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(Sr[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)(Fr.test(e[t])||(r=e[t])>="A"&&r<="Z")&&(n+=e[t].toLowerCase());for(var r,o,i;t.has(n);){if(/\d/g.test(n)){if(n=n.substr(0,n.length-1)+(n[n.length-1]+1),!(n.length>3))continue;n=n.substr(0,3)}else if(n.length<3){n+="2";continue}let e=1,r=n;for(;t.has(r)&&e<8;)o=n,r=(1&(i=e)?o[0].toUpperCase():o[0].toLowerCase())+(2&i?o[1].toUpperCase():o[1].toLowerCase())+(4&i?o[2].toUpperCase():o[2].toLowerCase()),++e;if(e<8)n=r;else{let e=n.charCodeAt(2)+1&127;n=n.substr(0,2)+String.fromCharCode(e)}}return n}(e,a),a.add(n.idPrefix)),/^\$/.test(e)||(i[`$${e}_mutations`]="++rev",n.markedForSync=!0),n.deleted&&(n.deleted=!1)):(n.deleted=!0,n.markedForSync=!1,i[`$${e}_mutations`]=null)}));const c=e.call(this,i,r);for(const[e,t]of Object.entries(r))if(null===(o=t.yProps)||void 0===o?void 0:o.length){const n=s[e];n&&(n.yProps=t.yProps.map((e=>e.prop)))}return c}}function Zr(e,t,n){return"undefined"!=typeof navigator&&navigator.locks?navigator.locks.request(e.name+"|"+t,(()=>n())):n()}const Qr=new a(!0),eo=new a(!0);Qr.pipe(et((e=>e?p(!0):p(!1).pipe(Je(2e4)))),Ge()).subscribe(eo);const to="undefined"!=typeof document?f(document,"visibilitychange"):p({}),no=to.pipe(Xe((()=>"hidden"===document.visibilityState))),ro=to.pipe(Xe((()=>"visible"===document.visibilityState))),oo="undefined"!=typeof window?y(ro,f(window,"mousedown"),f(window,"mousemove"),f(window,"keydown"),f(window,"wheel"),f(window,"touchmove")):p({});"undefined"!=typeof document&&y(p(!0),no,oo).pipe(Me((()=>"visible"===document.visibilityState)),tt((e=>{Qr.value!==e&&Qr.next(e)})),et((e=>e?p(0).pipe(Je(16e4),tt((()=>Qr.next(!1)))):p(0)))).subscribe((()=>{}));class io extends Error{constructor(){super(...arguments),this.name="TokenExpiredError"}}function so(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 ao=new WeakMap,co=new WeakMap;function lo(e){let t=co.get(e);return t||(t=new l,co.set(e,t)),t}class uo extends s{constructor(e,t,n,r,o,i,s,a){super((c=>new po(e,t,n,r,o,a,c,i,s)))}}let fo=0;class po extends b{constructor(e,t,n,r,o,i,s,a,c){super((()=>this.teardown())),this.id=++fo,this.subscriptions=new Set,this.reconnecting=!1,this.db=e,this.databaseUrl=e.cloud.options.databaseUrl,this.rev=t,this.yrev=n,this.realmSetHash=r,this.clientIdentity=o,this.user=i,this.subscriber=s,this.lastUserActivity=new Date,this.messageProducer=a,this.webSocketStatus=c,this.connect()}teardown(){this.disconnect()}disconnect(){if(this.webSocketStatus.next("disconnected"),this.pinger&&(clearInterval(this.pinger),this.pinger=null),this.ws)try{this.ws.close()}catch(e){}this.ws=null;for(const e of this.subscriptions)e.unsubscribe();this.subscriptions.clear()}reconnect(){if(!this.reconnecting){this.reconnecting=!0;try{this.disconnect()}catch(e){}this.connect().catch((()=>{})).then((()=>this.reconnecting=!1))}}connect(){return O(this,void 0,void 0,(function*(){if(this.lastServerActivity=new Date,this.pauseUntil&&this.pauseUntil>new Date)return;if(this.ws)throw new Error("Called connect() when a connection is already open");if(!this.databaseUrl)throw new Error("Cannot connect without a database URL");if(this.closed)return;const e=this.user.accessTokenExpiration;if(e&&e<new Date)return void this.subscriber.error(new io);this.webSocketStatus.next("connecting"),this.pinger=setInterval((()=>O(this,void 0,void 0,(function*(){if(this.closed)this.teardown();else if(this.ws)try{this.ws.send(JSON.stringify({type:"ping"})),setTimeout((()=>{this.pinger&&(this.closed?this.teardown():this.lastServerActivity<new Date(Date.now()-2e4)&&this.reconnect())}),2e4)}catch(e){this.reconnect()}else this.reconnect()}))),3e4);const t=new URL(this.databaseUrl);t.protocol="http:"===t.protocol?"ws":"wss";const n=new URLSearchParams;if(this.subscriber.closed)return;n.set("v","2"),this.rev&&n.set("rev",this.rev),this.yrev&&n.set("yrev",this.yrev),n.set("realmsHash",this.realmSetHash),n.set("clientId",this.clientIdentity),n.set("dxcv",this.db.cloud.version),this.user.accessToken&&n.set("token",this.user.accessToken);const o=this.ws=new WebSocket(`${t}/changes?${n}`);o.binaryType="arraybuffer",o.onclose=e=>{this.pinger&&this.reconnect()},o.onmessage=e=>{if(this.pinger){this.lastServerActivity=new Date;try{const t="string"==typeof e.data?Hn.parse(e.data):function(e){const t=new Xt(e),n=nn(t);if("outdated-server-rev"===n)return{type:n};if("y-complete-sync-done"===n)return{type:n,yServerRev:nn(t)};const r=nn(t),o=nn(t);switch(n){case"u-ack":case"u-reject":return{type:n,table:r,prop:o,i:Number(on(t))};default:{const e=an(t);switch(n){case"in-sync":case"doc-close":return{type:n,table:r,prop:o,k:e};case"aware":return{type:n,table:r,prop:o,k:e,u:Qt(t)};case"doc-open":return{type:n,table:r,prop:o,k:e,serverRev:an(t),sv:an(t)};case"sv":return{type:n,table:r,prop:o,k:e,sv:Qt(t)};case"u-c":return{type:n,table:r,prop:o,k:e,u:Qt(t),i:Number(on(t))};case"u-s":return{type:n,table:r,prop:o,k:e,u:Qt(t),r:t.pos<t.arr.length&&nn(t)||void 0};default:throw new TypeError(`Unknown message type: ${n}`)}}}}(new Uint8Array(e.data));if("error"===t.type)throw new Error(`Error message from dexie-cloud: ${t.error}`);if("aware"===t.type){const e=r.getDocCache(this.db.dx).find(t.table,t.k,t.prop);if(e){const n=(e=>ao.get(e))(e);if(n){so(this.db).applyAwarenessUpdate(n,t.u,"server")}}}else if("pong"===t.type);else if("doc-open"===t.type){const e=r.getDocCache(this.db.dx).find(t.table,t.k,t.prop);e&&lo(e).next()}else"u-ack"===t.type||"u-reject"===t.type||"u-s"===t.type||"in-sync"===t.type||"outdated-server-rev"===t.type||"y-complete-sync-done"===t.type?lr([t],this.db).then((e=>O(this,[e],void 0,(function*({resyncNeeded:e,yServerRevision:n,receivedUntils:r}){if(n&&(yield this.db.$syncState.update("syncState",{yServerRevision:n})),"u-s"===t.type&&r){const e=cr(this.db,t.table,t.prop);if(e){const t=r[e.name];t&&(yield e.update(ir,{receivedUntil:t}))}}e&&(yield this.db.cloud.sync({purpose:"pull",wait:!0}))})))):this.subscriber.next(t)}catch(e){this.subscriber.error(e)}}};try{let e=!1;yield new Promise(((t,n)=>{o.onopen=n=>{e=!0,t(null)},o.onerror=t=>{if(e)this.reconnect();else{const e=t.error||new Error("WebSocket Error");this.subscriber.error(e),this.webSocketStatus.next("error"),n(e)}}})),this.subscriptions.add(this.messageProducer.subscribe((e=>{var t,n;this.closed||("ready"===e.type&&"connected"!==this.webSocketStatus.value&&this.webSocketStatus.next("connected"),"ready"===e.type?(this.rev=e.rev,null===(t=this.ws)||void 0===t||t.send(Hn.stringify(e))):null===(n=this.ws)||void 0===n||n.send(qt(e)))}))),this.user.isLoggedIn&&!Gr(this.db)&&this.subscriptions.add(function(e){const t=yt(e.tables.filter((t=>{var n,r;return(null===(r=null===(n=e.cloud.schema)||void 0===n?void 0:n[t.name])||void 0===r?void 0:r.markedForSync)&&t.schema.yProps})).map((e=>e.schema.yProps.map((t=>({table:e.name,ydocProp:t.prop,updatesTable:t.updatesTable}))))));return y(...t.map((({table:t,ydocProp:n,updatesTable:r})=>{const o=e.table(r);return u(o.get(ir)).pipe(h((e=>{let r=(null==e?void 0:e.unsentFrom)||1;return u(i((()=>O(this,void 0,void 0,(function*(){return(yield sr(o,r)).filter((e=>e.f&&1&e.f)).map((e=>({type:"u-c",table:t,prop:n,k:e.k,u:e.u,i:e.i})))}))))).pipe(v((e=>{e.length>0&&(r=e.at(-1).i+1)})))})))}))).pipe(m((e=>e)))}(this.db).subscribe(this.db.messageProducer))}catch(e){this.pauseUntil=new Date(Date.now()+6e4)}}))}}class yo extends Error{constructor(e){super("expired"===e?"License expired":"deactivated"===e?"User deactivated":"Invalid license"),this.name="InvalidLicenseError",e&&(this.license=e)}}function ho(e){return O(this,void 0,void 0,(function*(){var e;yield(e=3e3,new Promise((t=>setTimeout(t,e)))),yield c(oo)}))}function vo(e){return O(this,void 0,void 0,(function*(){var t;return!(!(null===(t=e.cloud.options)||void 0===t?void 0:t.databaseUrl)||!e.cloud.schema)&&(yield hr(e,e.cloud.options,e.cloud.schema,{justCheckIfNeeded:!0}))}))}const mo=new WeakMap;function bo(e,t,n,r){const o=mo.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 bo(e,t,n,r)}))}}const i=function(){return O(this,void 0,void 0,(function*(){try{yield Xn(e),yield Zr(e,yr,(()=>hr(e,t,n,r))),mo.delete(e)}catch(t){throw mo.delete(e),t}}))}();return mo.set(e,{promise:i,pull:"push"!==(null==r?void 0:r.purpose)}),i}const go=1e3;function _o(e,t,n){let r=null,o={cancelled:!1},i=0,s=0;function a(r=1){setTimeout((()=>{const d=c?"pull":"push";s=Date.now(),bo(e,t,n,{cancelToken:o,retryImmediatelyOnFetchError:!0,purpose:d}).then((()=>{if(o.cancelled)f();else if(c||l)return c=!1,l=!1,a();u=!1,i=0,s=0})).catch((e=>{if(o.cancelled)f(),u=!1,i=0,s=0;else if(r<5){const e=[0,20,40,300,900][r]*go;i=Date.now()+e,s=0,setTimeout((()=>a(r+1)),e)}else u=!1,i=0,s=0}))}),0)}let c=!1,l=!1,u=!1;const d=e=>{o.cancelled||("pull"===e&&(c=!0),"push"===e&&(l=!0),u?i||s>0&&Date.now():(u=!0,a()))},f=()=>{o.cancelled=!0,r&&r.unsubscribe()};return{start:()=>{r=e.localSyncEvent.subscribe((({purpose:e})=>{d(e||"pull")}))},stop:f}}function wo(e,t){if(e&&t&&t.unsyncedTables)for(const n of t.unsyncedTables)e[n]&&(e[n].markedForSync=!1)}var ko,So,xo,Io,Eo,Oo={},Ao=[],To=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function Uo(e,t){for(var n in t)e[n]=t[n];return e}function Co(e){var t=e.parentNode;t&&t.removeChild(e)}function Po(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?ko.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 jo(e,s,r,o,null)}function jo(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?++xo:o};return null==o&&null!=So.vnode&&So.vnode(i),i}function $o(e){return e.children}function Do(e,t){this.props=e,this.context=t}function Ro(e,t){if(null==t)return e.__?Ro(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?Ro(e):null}function Lo(e){var t,n;if(null!=(e=e.__)&&null!=e.__c){for(e.__e=e.__c.base=null,t=0;t<e.__k.length;t++)if(null!=(n=e.__k[t])&&null!=n.__e){e.__e=e.__c.base=n.__e;break}return Lo(e)}}function No(e){(!e.__d&&(e.__d=!0)&&Io.push(e)&&!Bo.__r++||Eo!==So.debounceRendering)&&((Eo=So.debounceRendering)||setTimeout)(Bo)}function Bo(){for(var e;Bo.__r=Io.length;)e=Io.sort((function(e,t){return e.__v.__b-t.__v.__b})),Io=[],e.some((function(e){var t,n,r,o,i,s;e.__d&&(i=(o=(t=e).__v).__e,(s=t.__P)&&(n=[],(r=Uo({},o)).__v=o.__v+1,qo(s,o,r,t.__n,void 0!==s.ownerSVGElement,null!=o.__h?[i]:null,n,null==i?Ro(o):i,o.__h),Jo(n,o),o.__e!=i&&Lo(o)))}))}function Mo(e,t,n,r,o,i,s,a,c,l){var u,d,f,p,y,h,v,m=r&&r.__k||Ao,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?jo(null,p,null,null,p):Array.isArray(p)?jo($o,{children:p},null,null,null):p.__b>0?jo(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}qo(e,p,f=f||Oo,o,i,s,a,c,l),y=p.__e,(d=p.ref)&&f.ref!=d&&(v||(v=[]),f.ref&&v.push(f.ref,null,p),v.push(d,p.__c||y,p)),null!=y?(null==h&&(h=y),"function"==typeof p.type&&p.__k===f.__k?p.__d=c=Fo(p,c,e):c=Wo(e,p,f,m,y,c),"function"==typeof n.type&&(n.__d=c)):c&&f.__e==c&&c.parentNode!=e&&(c=Ro(f))}for(n.__e=h,u=b;u--;)null!=m[u]&&("function"==typeof n.type&&null!=m[u].__e&&m[u].__e==n.__d&&(n.__d=Ro(r,u+1)),Xo(m[u],m[u]));if(v)for(u=0;u<v.length;u++)Yo(v[u],v[++u],v[++u])}function Fo(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?Fo(r,t,n):Wo(n,r,r,o,r.__e,t));return t}function Wo(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 Vo(e,t,n){"-"===t[0]?e.setProperty(t,n):e[t]=null==n?"":"number"!=typeof n||To.test(t)?n:n+"px"}function Ko(e,t,n,r,o){var i;e:if("style"===t)if("string"==typeof n)e.style.cssText=n;else{if("string"==typeof r&&(e.style.cssText=r=""),r)for(t in r)n&&t in n||Vo(e.style,t,"");if(n)for(t in n)r&&n[t]===r[t]||Vo(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?zo:Ho,i):e.removeEventListener(t,i?zo:Ho,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 Ho(e){this.l[e.type+!1](So.event?So.event(e):e)}function zo(e){this.l[e.type+!0](So.event?So.event(e):e)}function qo(e,t,n,r,o,i,s,a,c){var l,u,d,f,p,y,h,v,m,b,g,_,w,k=t.type;if(void 0!==t.constructor)return null;null!=n.__h&&(c=n.__h,a=t.__e=n.__e,t.__h=null,i=[a]),(l=So.__b)&&l(t);try{e:if("function"==typeof k){if(v=t.props,m=(l=k.contextType)&&r[l.__c],b=l?m?m.props.value:l.__:r,n.__c?h=(u=t.__c=n.__c).__=u.__E:("prototype"in k&&k.prototype.render?t.__c=u=new k(v,b):(t.__c=u=new Do(v,b),u.constructor=k,u.render=Zo),m&&m.sub(u),u.props=v,u.state||(u.state={}),u.context=b,u.__n=r,d=u.__d=!0,u.__h=[]),null==u.__s&&(u.__s=u.state),null!=k.getDerivedStateFromProps&&(u.__s==u.state&&(u.__s=Uo({},u.__s)),Uo(u.__s,k.getDerivedStateFromProps(v,u.__s))),f=u.props,p=u.state,d)null==k.getDerivedStateFromProps&&null!=u.componentWillMount&&u.componentWillMount(),null!=u.componentDidMount&&u.__h.push(u.componentDidMount);else{if(null==k.getDerivedStateFromProps&&v!==f&&null!=u.componentWillReceiveProps&&u.componentWillReceiveProps(v,b),!u.__e&&null!=u.shouldComponentUpdate&&!1===u.shouldComponentUpdate(v,u.__s,b)||t.__v===n.__v){u.props=v,u.state=u.__s,t.__v!==n.__v&&(u.__d=!1),u.__v=t,t.__e=n.__e,t.__k=n.__k,t.__k.forEach((function(e){e&&(e.__=t)})),u.__h.length&&s.push(u);break e}null!=u.componentWillUpdate&&u.componentWillUpdate(v,u.__s,b),null!=u.componentDidUpdate&&u.__h.push((function(){u.componentDidUpdate(f,p,y)}))}if(u.context=b,u.props=v,u.__v=t,u.__P=e,g=So.__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=Uo(Uo({},r),u.getChildContext())),d||null==u.getSnapshotBeforeUpdate||(y=u.getSnapshotBeforeUpdate(f,p)),w=null!=l&&l.type===$o&&null==l.key?l.props.children:l,Mo(e,Array.isArray(w)?w:[w],t,n,r,o,i,s,a,c),u.base=t.__e,t.__h=null,u.__h.length&&s.push(u),h&&(u.__E=u.__=null),u.__e=!1}else null==i&&t.__v===n.__v?(t.__k=n.__k,t.__e=n.__e):t.__e=Go(n.__e,t,n,r,o,i,s,c);(l=So.diffed)&&l(t)}catch(e){t.__v=null,(c||null!=i)&&(t.__e=a,t.__h=!!c,i[i.indexOf(a)]=null),So.__e(e,t,n)}}function Jo(e,t){So.__c&&So.__c(t,e),e.some((function(t){try{e=t.__h,t.__h=[],e.some((function(e){e.call(t)}))}catch(e){So.__e(e,t.__v)}}))}function Go(e,t,n,r,o,i,s,a){var c,l,u,d=n.props,f=t.props,p=t.type,y=0;if("svg"===p&&(o=!0),null!=i)for(;y<i.length;y++)if((c=i[y])&&"setAttribute"in c==!!p&&(p?c.localName===p:3===c.nodeType)){e=c,i[y]=null;break}if(null==e){if(null===p)return document.createTextNode(f);e=o?document.createElementNS("http://www.w3.org/2000/svg",p):document.createElement(p,f.is&&f),i=null,a=!1}if(null===p)d===f||a&&e.data===f||(e.data=f);else{if(i=i&&ko.call(e.childNodes),l=(d=n.props||Oo).dangerouslySetInnerHTML,u=f.dangerouslySetInnerHTML,!a){if(null!=i)for(d={},y=0;y<e.attributes.length;y++)d[e.attributes[y].name]=e.attributes[y].value;(u||l)&&(u&&(l&&u.__html==l.__html||u.__html===e.innerHTML)||(e.innerHTML=u&&u.__html||""))}if(function(e,t,n,r,o){var i;for(i in n)"children"===i||"key"===i||i in t||Ko(e,i,null,n[i],r);for(i in t)o&&"function"!=typeof t[i]||"children"===i||"key"===i||"value"===i||"checked"===i||n[i]===t[i]||Ko(e,i,t[i],n[i],r)}(e,f,d,o,a),u)t.__k=[];else if(y=t.props.children,Mo(e,Array.isArray(y)?y:[y],t,n,r,o&&"foreignObject"!==p,i,s,i?i[0]:n.__k&&Ro(n,0),a),null!=i)for(y=i.length;y--;)null!=i[y]&&Co(i[y]);a||("value"in f&&void 0!==(y=f.value)&&(y!==e.value||"progress"===p&&!y||"option"===p&&y!==d.value)&&Ko(e,"value",y,d.value,!1),"checked"in f&&void 0!==(y=f.checked)&&y!==e.checked&&Ko(e,"checked",y,d.checked,!1))}return e}function Yo(e,t,n){try{"function"==typeof e?e(t):e.current=t}catch(e){So.__e(e,n)}}function Xo(e,t,n){var r,o;if(So.unmount&&So.unmount(e),(r=e.ref)&&(r.current&&r.current!==e.__e||Yo(r,null,t)),null!=(r=e.__c)){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(e){So.__e(e,t)}r.base=r.__P=null}if(r=e.__k)for(o=0;o<r.length;o++)r[o]&&Xo(r[o],t,"function"!=typeof e.type);n||null==e.__e||Co(e.__e),e.__e=e.__d=void 0}function Zo(e,t,n){return this.constructor(e,n)}function Qo(e,t,n){var r,o,i;So.__&&So.__(e,t),o=(r="function"==typeof n)?null:n&&n.__k||t.__k,i=[],qo(t,e=(!r&&n||t).__k=Po($o,null,[e]),o||Oo,Oo,void 0!==t.ownerSVGElement,!r&&n?[n]:o?null:t.firstChild?ko.call(t.childNodes):null,i,!r&&n?n:o?o.__e:t.firstChild,r),Jo(i,e)}ko=Ao.slice,So={__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}},xo=0,Do.prototype.setState=function(e,t){var n;n=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=Uo({},this.state),"function"==typeof e&&(e=e(Uo({},n),this.props)),e&&Uo(n,e),null!=e&&this.__v&&(t&&this.__h.push(t),No(this))},Do.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),No(this))},Do.prototype.render=$o,Io=[],Bo.__r=0;const ei={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 ti({children:e,className:t}){return Po("div",{className:t},Po("div",{style:ei.Darken}),Po("div",{style:ei.DialogOuter},Po("div",{style:ei.DialogInner},e)))}var ni,ri,oi,ii,si=0,ai=[],ci=[],li=So.__b,ui=So.__r,di=So.diffed,fi=So.__c,pi=So.unmount;function yi(e,t){So.__h&&So.__h(ri,e,si||t),si=0;var n=ri.__H||(ri.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({__V:ci}),n.__[e]}function hi(e){return si=1,function(e,t,n){var r=yi(ni++,2);if(r.t=e,!r.__c&&(r.__=[n?n(t):ki(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=ri,!ri.u)){ri.u=!0;var o=ri.shouldComponentUpdate;ri.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.__}(ki,e)}function vi(e){return si=5,function(e,t){var n=yi(ni++,7);return wi(n.__H,t)?(n.__V=e(),n.i=t,n.__h=e,n.__V):n.__}((function(){return{current:e}}),[])}function mi(){for(var e;e=ai.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(gi),e.__H.__h.forEach(_i),e.__H.__h=[]}catch(t){e.__H.__h=[],So.__e(t,e.__v)}}So.__b=function(e){ri=null,li&&li(e)},So.__r=function(e){ui&&ui(e),ni=0;var t=(ri=e.__c).__H;t&&(oi===ri?(t.__h=[],ri.__h=[],t.__.forEach((function(e){e.__N&&(e.__=e.__N),e.__V=ci,e.__N=e.i=void 0}))):(t.__h.forEach(gi),t.__h.forEach(_i),t.__h=[])),oi=ri},So.diffed=function(e){di&&di(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(1!==ai.push(t)&&ii===So.requestAnimationFrame||((ii=So.requestAnimationFrame)||function(e){var t,n=function(){clearTimeout(r),bi&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,100);bi&&(t=requestAnimationFrame(n))})(mi)),t.__H.__.forEach((function(e){e.i&&(e.__H=e.i),e.__V!==ci&&(e.__=e.__V),e.i=void 0,e.__V=ci}))),oi=ri=null},So.__c=function(e,t){t.some((function(e){try{e.__h.forEach(gi),e.__h=e.__h.filter((function(e){return!e.__||_i(e)}))}catch(n){t.some((function(e){e.__h&&(e.__h=[])})),t=[],So.__e(n,e.__v)}})),fi&&fi(e,t)},So.unmount=function(e){pi&&pi(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.forEach((function(e){try{gi(e)}catch(e){t=e}})),t&&So.__e(t,n.__v))};var bi="function"==typeof requestAnimationFrame;function gi(e){var t=ri,n=e.__c;"function"==typeof n&&(e.__c=void 0,n()),ri=t}function _i(e){var t=ri;e.__c=e.__(),ri=t}function wi(e,t){return!e||e.length!==t.length||t.some((function(t,n){return t!==e[n]}))}function ki(e,t){return"function"==typeof t?t(e):t}function Si({title:e,type:t,alerts:n,fields:r,submitLabel:o,cancelLabel:i,onCancel:s,onSubmit:a}){const[c,l]=hi({}),u=vi(null);return function(e,t){var n=yi(ni++,4);!So.__s&&wi(n.__H,t)&&(n.__=e,n.i=t,ri.__h.push(n))}((()=>{var e;return null===(e=u.current)||void 0===e?void 0:e.focus()}),[]),Po(ti,{className:"dxc-login-dlg"},Po($o,null,Po("h3",{style:ei.WindowHeader},e),n.map((e=>Po("p",{style:ei.Alert[e.type]},function({message:e,messageCode:t,messageParams:n}){return e.replace(/\{\w+\}/gi,(e=>n[e.substring(1,e.length-1)]))}(e)))),Po("form",{onSubmit:e=>{e.preventDefault(),a(c)}},Object.entries(r).map((([e,{type:t,label:n,placeholder:r}],o)=>Po("label",{style:ei.Label,key:o},n?`${n}: `:"",Po("input",{ref:0===o?u:void 0,type:t,name:e,autoComplete:"on",style:ei.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)}})))))),Po("div",{style:ei.ButtonsDiv},Po($o,null,Po("button",{type:"submit",style:ei.Button,onClick:()=>a(c)},o),i&&Po("button",{style:ei.Button,onClick:s},i))))}class xi extends Do{constructor(e){super(e),this.observer=e=>this.setState({userInteraction:e}),this.state={userInteraction:void 0}}componentDidMount(){this.subscription=u(this.props.db.cloud.userInteraction).subscribe(this.observer)}componentWillUnmount(){this.subscription&&(this.subscription.unsubscribe(),delete this.subscription)}render(e,{userInteraction:t}){return t?Po(Si,Object.assign({},t)):null}}function Ii(e){const t=new WeakMap;return n=>{let r=t.get(n);return r||(r=e(n),t.set(n,r)),r}}const Ei=Ii((e=>new a(D)));function Oi(e,t){let n=t,r=u(e).pipe(w((e=>n=e)),k({resetOnRefCountZero:()=>S(1e3)}));const o=new s((e=>{let t=!1;const o=r.subscribe({next(n){t=!0,e.next(n)},error(t){e.error(t)},complete(){e.complete()}});return t||o.closed||e.next(n),o}));return o.getValue=()=>n,o}const Ai=Ii((e=>Oi(i((()=>e.roles.where({realmId:"rlm-public"}).toArray().then((e=>{const t={};for(const n of e.slice().sort(((e,t)=>(e.sortOrder||0)-(t.sortOrder||0))))t[n.name]=n;return t})))),{}))),Ti=Ii((e=>Oi(Ei(e._novip).pipe(et((t=>i((()=>e.transaction("r","realms","members",(()=>Promise.all([e.members.where({userId:t.userId}).toArray(),e.realms.toArray(),t.userId]).then((([e,t,n])=>({selfMembers:e,realms:t,userId:n})))))))))),{selfMembers:[],realms:[],get userId(){return e.cloud.currentUserId}})));function Ui(...e){if(0===e.length)return{};const t=e.reduce(((e,t)=>{const n=Object.assign({},e);for(const[e,r]of Object.entries(t))if(e in n&&n[e]){if("*"===n[e])continue;if("*"===r)n[e]="*";else if(Array.isArray(r)&&Array.isArray(n[e])){const t=n,o=t[e];t[e]=[...new Set([...o,...r])]}else if("object"==typeof r&&r&&"object"==typeof n[e]){const t=n[e];for(const[e,n]of Object.entries(r))"*"!==t[e]&&("*"===n?t[e]="*":Array.isArray(t[e])&&Array.isArray(n)&&(t[e]=[...new Set([...t[e],...n])]))}}else n[e]=t[e];return n}));return t}const Ci=Ii((e=>function(e,t){let n;const r=e.pipe(w((e=>n=t(e))));return r.getValue=()=>void 0!==n?n:n=t(e.getValue()),r}(Oi(_([Ti(e._novip),Ai(e._novip)]).pipe(Me((([{selfMembers:e,realms:t,userId:n},r])=>({selfMembers:e,realms:t,userId:n,globalRoles:r})))),{selfMembers:[],realms:[],userId:D.userId,globalRoles:{}}),(({selfMembers:e,realms:t,userId:n,globalRoles:r})=>{const o=t.map((t=>{const o=e.filter((e=>e.realmId===t.realmId)),i=o.map((e=>e.permissions)).filter((e=>e)),s=yt(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:"*"}:Ui(...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 Pi{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 ji=Ii((e=>{const t=Ei(e._novip).pipe(et((t=>i((()=>e.members.where({email:t.email||""}).toArray()))))),n=Ci(e._novip),r=Ti(e._novip);return Oi(_([t,r,n]).pipe(Me((([t,n,r])=>{const o=(e,t)=>Object.assign(Object.assign({},e),{[t.id]:Object.assign(Object.assign({},t),{realm:r[t.realmId]})}),i=t.reduce(o,{}),s=n.selfMembers.reduce(o,i);return Object.values(s).filter((e=>!e.accepted)).map((t=>Object.assign(Object.assign({},t),{accept(){return O(this,void 0,void 0,(function*(){yield e.members.update(t.id,{accepted:new Date})}))},reject(){return O(this,void 0,void 0,(function*(){yield e.members.update(t.id,{rejected:new Date})}))}})))}))),[])}));function $i(e){return t=>{var r;const o=t.doc,{parentTable:i}=o.meta||{};if(!(null===(r=e.cloud.schema)||void 0===r?void 0:r[i].markedForSync))return;let s;Object.defineProperty(t,"awareness",{get:()=>s||(s=function(e,t,r){const{parentTable:o,parentId:i,parentProp:s,updatesTable:a}=t.meta,c=so(e),l=new c.Awareness(t),u=lo(t);return l.on("update",(({added:n,updated:i,removed:a},u)=>{const d=n.concat(i).concat(a),f=e.cloud.currentUser.value;if("server"!==u&&f.isLoggedIn&&!Gr(e)){const n=c.encodeAwarenessUpdate(l,d);e.messageProducer.next({type:"aware",table:o,prop:s,k:t.meta.parentId,u:n}),r.destroyed&&e.messageProducer.next({type:"doc-close",table:o,prop:s,k:t.meta.parentId})}})),l.on("destroy",(()=>{c.removeAwarenessStates(l,[t.clientID],"provider destroyed")})),(()=>{O(this,void 0,void 0,(function*(){if(r.destroyed)return;let t=!1,c=1;const l=_([e.cloud.webSocketStatus,u.pipe(x(null))]).subscribe((([n])=>{if(r.destroyed)return;t="connected"===n;const o=e.cloud.currentUser.value;"connected"===n&&o.isLoggedIn&&!Gr(e)&&(++c,d().catch((e=>{})))}));function d(){return O(this,void 0,void 0,(function*(){const l=c,u=e.table(a),d=e.$syncState,[f,p]=yield e.transaction("r",d,u,(()=>O(this,void 0,void 0,(function*(){const e=yield u.get(ir),t=yield d.get("syncState");return[(null==e?void 0:e.receivedUntil)||0,(null==t?void 0:t.yServerRevision)||(null==t?void 0:t.serverRevision)]}))));if(r.destroyed||c!==l||!t)return;const y={type:"doc-open",table:o,prop:s,k:i,serverRev:p},h=yield u.where("i").between(f,1/0,!1).filter((e=>0===n(e.k,i)&&0==(1&(e.f||0)))).toArray();if(!r.destroyed&&c===l&&t){if(h.length>0){const t=ar(e),n=t.mergeUpdatesV2(h.map((e=>e.u))),r=t.encodeStateVectorFromUpdateV2(n);y.sv=r}e.messageProducer.next(y)}}))}r.addCleanupHandler(l)}))})(),l}(e,o,t),ao.set(o,s),s)})}}const Di={nameSuffix:!0};function Ri(t){const n=t.name,r=Ei(t),o=[];let s=!1,d=null;t.on("ready",(t=>O(this,void 0,void 0,(function*(){try{yield function(t){return O(this,void 0,void 0,(function*(){var n,l,b,w,k,S,x;h=!1;const I=Ir(t);"undefined"!=typeof window&&"undefined"!=typeof document&&((null===(n=I.cloud.options)||void 0===n?void 0:n.customLoginGui)||o.push(function(e){let t=!1;const n=document.createElement("div");return document.body?(document.body.appendChild(n),Qo(Po(xi,{db:e.vip}),n)):addEventListener("DOMContentLoaded",(()=>{t||(document.body.appendChild(n),Qo(Po(xi,{db:e.vip}),n))})),{unsubscribe(){try{n.remove()}catch(e){}t=!0},get closed(){return t}}}(t))),I.cloud.isServiceWorkerDB||o.push(function(e){let t=e.cloud.webSocketStatus.value;const n=e.cloud.webSocketStatus.pipe(et((e=>{const n=t;t=e;const r=p(e);switch(e){case"disconnected":return Qr.value?r.pipe(Ve(500)):r;case"connecting":return"not-started"===n||"error"===n?r:r.pipe(Ve(4e3));default:return r}})));return _([n,e.syncStateChangedEvent.pipe(Qe({phase:"initial"})),Ei(e.dx._novip),eo]).pipe(Me((([t,n,r,o])=>{var i;if((null===(i=r.license)||void 0===i?void 0:i.status)&&"ok"!==r.license.status)return{phase:"offline",status:"offline",license:r.license.status};let{phase:s,error:a,progress:c}=n,l=t;return"error"===s&&(l="error"),"not-started"===t&&("pushing"!==s&&"pulling"!==s||(l="connecting")),"error"!==e.cloud.syncState.value.phase||"pushing"!==n.phase&&"pulling"!==n.phase||(l="connecting"),o||(l="disconnected"),{phase:s,error:a,progress:c,status:er?l:"offline",license:"ok"}})))}(I).subscribe(t.cloud.syncState)),o.push(I.syncCompleteEvent.subscribe(m)),I.tables.every((e=>e.core))||function(){throw new e.SchemaError("Version increment needed to allow dexie-cloud change tracking")}();const E="serviceWorker"in navigator?yield navigator.serviceWorker.getRegistrations():[],[A,T]=yield I.transaction("rw",I.$syncState,(()=>O(this,void 0,void 0,(function*(){var e,t;const{options:n,schema:r}=I.cloud,[o,i,a]=yield Promise.all([I.getOptions(),I.getSchema(),I.getPersistedSyncState()]);if(s){if(!o||JSON.stringify(o)!==JSON.stringify(n)){if(!n)throw new Error("Internal error");const e=Object.assign({},n);delete e.fetchTokens,delete e.awarenessProtocol,yield I.$syncState.put(e,"options")}}else I.cloud.options=o||null;if((null===(e=I.cloud.options)||void 0===e?void 0:e.tryUseServiceWorker)&&"serviceWorker"in navigator&&E.length>0&&!Rr?I.cloud.usingServiceWorker=!0:((null===(t=I.cloud.options)||void 0===t?void 0:t.tryUseServiceWorker)&&I.cloud.isServiceWorkerDB,I.cloud.usingServiceWorker=!1),wo(r,I.cloud.options),wo(i,I.cloud.options),r){if(!i||JSON.stringify(i)!==JSON.stringify(r)){const e=i||{};for(const[t,n]of Object.entries(r)){const r=e[t];r?(r.markedForSync=n.markedForSync,n.deleted=r.deleted,r.generatedGlobalId=n.generatedGlobalId):e[t]=Object.assign({},n)}yield I.$syncState.put(e,"schema"),Object.assign(r,e)}}else I.cloud.schema=i||null;return[null==a?void 0:a.initiallySynced,null==a?void 0:a.realms]}))));if(A&&I.setInitiallySynced(!0),function(t){var n,r;for(const o of t.tables)if(null===(r=null===(n=t.cloud.schema)||void 0===n?void 0:n[o.name])||void 0===r?void 0:r.markedForSync){if(o.schema.primKey.auto)throw new e.SchemaError(`Table ${o.name} is both autoIncremented and synced. Use db.cloud.configure({unsyncedTables: [${JSON.stringify(o.name)}]}) to blacklist it from sync`);if(!o.schema.primKey.keyPath)throw new e.SchemaError(`Table ${o.name} cannot be both synced and outbound. Use db.cloud.configure({unsyncedTables: [${JSON.stringify(o.name)}]}) to blacklist it from sync`)}}(I),v(),!I.cloud.isServiceWorkerDB){o.push(i((()=>I.getCurrentUser())).subscribe(r)),o.push(i((()=>I.getPersistedSyncState())).subscribe(I.cloud.persistedSyncState)),yield c(_([r.pipe(Ze(1),ze(1)),I.cloud.persistedSyncState.pipe(Ze(1),ze(1))]));const e=$i(I);I.dx.on("y",e),I.dx.once("close",(()=>{var t;null===(t=I.dx.on.y)||void 0===t||t.unsubscribe(e)}))}let U=!1;const C=yield I.getCurrentUser(),P=null===(l=I.cloud.options)||void 0===l?void 0:l.requireAuth;P&&(I.cloud.isServiceWorkerDB?yield c(r.pipe(Xe((e=>!!e.isLoggedIn)),ze(1))):"object"==typeof P?(!C.isLoggedIn||P.userId&&C.userId!==P.userId||P.email&&C.email!==P.email)&&(U=yield Pr(I,P)):C.isLoggedIn||(U=yield Pr(I))),!C.isLoggedIn||T&&T.includes(C.userId)||(U=!0),d&&d.stop(),d=null,v();const j=(null===(b=I.cloud.options)||void 0===b?void 0:b.databaseUrl)&&(!A||U);j&&(yield function(e,t,n){return O(this,void 0,void 0,(function*(){yield Zr(e,yr,(()=>hr(e,t,n,{isInitialSync:!0})))}))}(I,I.cloud.options,I.cloud.schema),I.setInitiallySynced(!0)),v(),I.cloud.usingServiceWorker&&(null===(w=I.cloud.options)||void 0===w?void 0:w.databaseUrl)?(j||rt(I,"push").catch((()=>{})),function(e){return O(this,void 0,void 0,(function*(){var t;try{const{periodicSync:n}=yield navigator.serviceWorker.ready;if(n)try{yield n.register(`dexie-cloud:${e.name}`,null===(t=e.cloud.options)||void 0===t?void 0:t.periodicSync)}catch(e){}}catch(e){}}))}(I).catch((()=>{}))):(null===(k=I.cloud.options)||void 0===k?void 0:k.databaseUrl)&&I.cloud.schema&&!I.cloud.isServiceWorkerDB&&(d=_o(I,I.cloud.options,I.cloud.schema),d.start(),j||ot(I,"push")),v(),I.cloud.isServiceWorkerDB||o.push(f(self,"online").subscribe((()=>{I.syncStateChangedEvent.next({phase:"not-in-sync"}),Gr(I)||ot(I,"push")})),f(self,"offline").subscribe((()=>{I.syncStateChangedEvent.next({phase:"offline"})}))),!(null===(S=I.cloud.options)||void 0===S?void 0:S.databaseUrl)||(null===(x=I.cloud.options)||void 0===x?void 0:x.disableWebSocket)||Lr||o.push(function(e){var t;if(!(null===(t=e.cloud.options)||void 0===t?void 0:t.databaseUrl))throw new Error("No database URL to connect WebSocket to");const n=e.messageConsumer.readyToServe.pipe(Xe((e=>e)),et((()=>e.getPersistedSyncState())),Xe((e=>e&&e.serverRevision)),et((e=>O(this,void 0,void 0,(function*(){return{type:"ready",rev:e.serverRevision,realmSetHash:yield lt(e)}}))))),r=y(n,e.messageProducer);return function t(){return e.cloud.persistedSyncState.pipe(Xe((e=>null==e?void 0:e.serverRevision)),ze(1),et((t=>e.cloud.currentUser.pipe(Me((e=>[e,t]))))),et((([e,t])=>eo.pipe(Me((n=>[n?e:null,t]))))),et((([t,n])=>(null==t?void 0:t.isLoggedIn)&&!(null==n?void 0:n.realms.includes(t.userId))?e.cloud.persistedSyncState.pipe(Xe((e=>(null==e?void 0:e.realms.includes(t.userId))||!1)),ze(1),Me((e=>[t,e]))):new a([t,n]))),et((e=>O(this,[e],void 0,(function*([e,t]){return[e,yield lt(t)]})))),Ge((([e,t],[n,r])=>e===n&&t===r)),et((([n,o])=>{var i;return(null===(i=e.cloud.persistedSyncState)||void 0===i?void 0:i.value)?n?new uo(e,e.cloud.persistedSyncState.value.serverRevision,e.cloud.persistedSyncState.value.yServerRevision,o,e.cloud.persistedSyncState.value.clientIdentity,r,e.cloud.webSocketStatus,n):u([]):t()})),De((n=>"TokenExpiredError"===(null==n?void 0:n.name)?p(!0).pipe(et((()=>O(this,void 0,void 0,(function*(){const t=yield e.getCurrentUser(),n=yield vn(e.cloud.options.databaseUrl,t);yield e.table("$logins").update(t.userId,{accessToken:n.accessToken,accessTokenExpiration:n.accessTokenExpiration,claims:n.claims,license:n.license,data:n.data})})))),et((()=>t()))):g((()=>n)))),De((n=>(e.cloud.webSocketStatus.next("error"),n instanceof yo?g((()=>n)):u(ho()).pipe(et((()=>t())))))))}().subscribe({next:t=>{t&&e.messageConsumer.enqueue(t)},error:e=>{},complete:()=>{}})}(I))}))}(t)}catch(e){}}))),!0);let h=!1;function v(){if(h)throw new e.DatabaseClosedError}t.once("close",(()=>{o.forEach((e=>e.unsubscribe())),o.splice(0,o.length),h=!0,d&&d.stop(),d=null,r.next(D)}));const m=new l;var b;t.cloud={version:"4.1.0-beta.49",options:Object.assign({},Di),schema:null,get currentUserId(){return r.value.userId||D.userId},currentUser:r,syncState:new a({phase:"initial",status:"not-started"}),events:{syncComplete:m},persistedSyncState:new a(void 0),userInteraction:new a(void 0),webSocketStatus:new a("not-started"),login(e){return O(this,void 0,void 0,(function*(){const n=Ir(t);yield n.cloud.sync(),yield Pr(n,e)}))},invites:ji(t),roles:Ai(t),configure(e){e=t.cloud.options=Object.assign(Object.assign({},t.cloud.options),e),s=!0,e.databaseUrl&&e.nameSuffix&&(t.name=`${n}-${function(e){const t=new URL(e);return"/"===t.pathname?t.hostname.split(".")[0]:t.pathname.split("/")[1]}(e.databaseUrl)}`,Ir(t).reconfigure()),wo(t.cloud.schema,t.cloud.options)},logout(){return O(this,arguments,void 0,(function*({force:e}={}){e?yield Ur(Ir(t),{deleteUnsyncedData:!0}):yield Tr(Ir(t))}))},sync(){return O(this,arguments,void 0,(function*({wait:e,purpose:n}={wait:!0,purpose:"push"}){var r;void 0===e&&(e=!0);const o=Ir(t);if("ok"!==((null===(r=o.cloud.currentUser.value.license)||void 0===r?void 0:r.status)||"ok")&&(yield yn(o)),"pull"===n){const t=o.cloud.persistedSyncState.value;if(ot(o,n),e){const e=yield c(o.cloud.persistedSyncState.pipe(Xe((e=>null!=(null==e?void 0:e.timestamp)&&(!t||e.timestamp>t.timestamp)))));if(null==e?void 0:e.error)throw new Error("Sync error: "+e.error)}}else if(yield vo(o)){const t=o.cloud.persistedSyncState.value;ot(o,n),e&&(yield c(u(i((()=>O(this,void 0,void 0,(function*(){const e=yield vo(o),n=yield o.getPersistedSyncState();if((null==n?void 0:n.timestamp)!==(null==t?void 0:t.timestamp)&&(null==n?void 0:n.error))throw new Error("Sync error: "+n.error);return e}))))).pipe(Xe((e=>!e)))))}}))},permissions:(e,n)=>function(e,t,n){if(!t)throw new TypeError("Cannot check permissions of undefined or null. A Dexie Cloud object with realmId and owner expected.");const{owner:r,realmId:o}=t;if(!n){if("function"!=typeof t.table)throw new TypeError("Missing 'table' argument to permissions and table could not be extracted from entity");n=t.table()}const i=Ci(e),s=t=>{const i=t[o||e.cloud.currentUserId];return i?new Pi(i.permissions,n,void 0===o||o===e.cloud.currentUserId||r===e.cloud.currentUserId):new Pi({},n,!r||r===e.cloud.currentUserId)},a=i.pipe(Me(s));return a.getValue=()=>s(i.getValue()),a}(t._novip,e,n)},t.Version.prototype._parseStoresSpec=e.override(t.Version.prototype._parseStoresSpec,(e=>Xr(e,t))),t.Table.prototype.newId=function({colocateWith:e}={}){const n=e&&e.substr(e.length-3);return Vr(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(Yr({currentUserObservable:t.cloud.currentUser,db:Ir(t)})),t.use((b=Ir(t),{stack:"dbcore",name:"implicitPropSetterMiddleware",level:1,create:e=>Object.assign(Object.assign({},e),{table:t=>{const n=e.table(t);return Object.assign(Object.assign({},n),{mutate:e=>{var r,o,i,s,a,c;const l=e.trans;if(l.disableChangeTracking)return n.mutate(e);const u=null!==(o=null===(r=l.currentUser)||void 0===r?void 0:r.userId)&&void 0!==o?o:D.userId;if((null===(s=null===(i=b.cloud.schema)||void 0===i?void 0:i[t])||void 0===s?void 0:s.markedForSync)&&("add"===e.type||"put"===e.type)){if("members"===t)for(const t of e.values)"string"==typeof t.email&&(t.email=t.email.trim().toLowerCase());for(const t of e.values){t.owner||(t.owner=u),t.realmId||(t.realmId=u);const r=null===(c=(a=n.schema.primaryKey).extractKey)||void 0===c?void 0:c.call(a,t);"string"==typeof r&&"#"===r[0]&&"put"===e.type&&(delete e.criteria,delete e.changeSpec,delete e.updates,t.$ts=Date.now())}}return n.mutate(e)}})}})})),t.use(Kr(Ir(t)))}Ri.version="4.1.0-beta.49",e.Cloud=Ri;const Li=new Map;function Ni(e){return e.startsWith("dexie-cloud:")&&e.split(":")[1]}const Bi=new Map;function Mi(t,n){let r=Bi.get(t+"/"+n);return r||(r=function t(n,r){return O(this,void 0,void 0,(function*(){var o;let i=Li.get(n);if(!i){const o=new e(n,{addons:[Ri]});if(i=Ir(o),i.cloud.isServiceWorkerDB=!0,o.on("versionchange",s),yield i.dx.open(),Li.get(n))return i.close(),yield t(n,r);Li.set(n,i)}if((null===(o=i.cloud.options)||void 0===o?void 0:o.databaseUrl)&&i.cloud.schema)try{yield bo(i,i.cloud.options,i.cloud.schema,{retryImmediatelyOnFetchError:!0,purpose:r})}catch(t){if(s(),t.name!==e.errnames.NoSuchDatabase)throw t}function s(){return i.dx.on.versionchange.unsubscribe(s),Li.get(i.name)===i&&Li.delete(i.name),i.dx.close(),!1}}))}(t,n).then((()=>{Bi.delete(t+"/"+n)})).catch((e=>(Bi.delete(t+"/"+n),Promise.reject(e)))),Bi.set(t+"/"+n,r)),r}Rr||(self.addEventListener("sync",(e=>{const t=Ni(e.tag);t&&e.waitUntil(Mi(t,"push"))})),self.addEventListener("periodicsync",(e=>{const t=Ni(e.tag);t&&e.waitUntil(Mi(t,"pull"))})),self.addEventListener("message",(e=>{if("dexie-cloud-sync"===e.data.type){const{dbName:t}=e.data,n=(r=1)=>Mi(t,e.data.purpose||"pull").catch((e=>O(void 0,void 0,void 0,(function*(){if(3===r)throw e;var t;yield(t=6e4,new Promise((e=>setTimeout(e,t)))),n(r+1)}))));"waitUntil"in e?e.waitUntil(n().catch((e=>{}))):n().catch((e=>{}))}})));
|
|
2
2
|
//# sourceMappingURL=service-worker.min.js.map
|