dexie-cloud-addon 4.1.0-alpha.8 → 4.1.0-alpha.9

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