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

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