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