dexie-cloud-addon 4.1.0-beta.48 → 4.2.0-alpha.1
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/define-ydoc-trigger.d.ts +2 -1
- package/dist/modern/dexie-cloud-addon.js +11098 -331
- 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 +10998 -231
- 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 +1 -1
- package/dist/modern/yjs/YTable.d.ts +2 -1
- package/dist/modern/yjs/createYHandler.d.ts +1 -4
- package/dist/modern/yjs/importDexieYProvider.d.ts +1 -0
- package/dist/modern/yjs/listUpdatesSince.d.ts +2 -1
- package/dist/modern/yjs/reopenDocSignal.d.ts +1 -1
- package/dist/umd/define-ydoc-trigger.d.ts +2 -1
- package/dist/umd/dexie-cloud-addon.js +11097 -330
- 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 +11100 -333
- 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 +1 -1
- package/dist/umd/yjs/YTable.d.ts +2 -1
- package/dist/umd/yjs/createYHandler.d.ts +1 -4
- package/dist/umd/yjs/importDexieYProvider.d.ts +1 -0
- package/dist/umd/yjs/listUpdatesSince.d.ts +2 -1
- package/dist/umd/yjs/reopenDocSignal.d.ts +1 -1
- package/package.json +7 -3
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("dexie"),require("rxjs")):"function"==typeof define&&define.amd?define(["dexie","rxjs"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Dexie,e.rxjs)}(this,(function(e,t){"use strict";var n=function(e,t){return n=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])},n(e,t)};function r(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}function o(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))}function i(e,t){var n,r,o,i,s={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function a(i){return function(a){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;s;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return s.label++,{value:i[1],done:!1};case 5:s.label++,r=i[1],i=[0];continue;case 7:i=s.ops.pop(),s.trys.pop();continue;default:if(!(o=s.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){s=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){s.label=i[1];break}if(6===i[0]&&s.label<o[1]){s.label=o[1],o=i;break}if(o&&s.label<o[2]){s.label=o[2],s.ops.push(i);break}o[2]&&s.ops.pop(),s.trys.pop();continue}i=t.call(e,s)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,a])}}}function s(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 a(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),s=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)s.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return s}function c(e,t,n){if(n||2===arguments.length)for(var r,o=0,i=t.length;o<i;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))}function l(e){return this instanceof l?(this.v=e,this):new l(e)}function u(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 l?Promise.resolve(e.value.v).then(c,u):d(i[0][2],e)}(o[e](t))}catch(e){d(i[0][3],e)}}function c(e){a("next",e)}function u(e){a("throw",e)}function d(e,t){e(t),i.shift(),i.length&&a(i[0][0],i[0][1])}}function d(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=s(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise((function(r,o){(function(e,t,n,r){Promise.resolve(r).then((function(t){e({value:t,done:n})}),t)})(r,o,(t=e[n](t)).done,t.value)}))}}}const f={userId:"unauthorized",name:"Unauthorized",claims:{sub:"unauthorized"},lastLogin:new Date(0)};try{Object.freeze(f),Object.freeze(f.claims)}catch(e){}const p={},y="undefined"!=typeof self&&self.document&&"undefined"!=typeof navigator&&navigator.serviceWorker;y&&y.ready.then((e=>p.registration=e)),"undefined"!=typeof self&&"clients"in self&&!self.document&&addEventListener("message",(e=>{var t,n;(null===(n=null===(t=e.data)||void 0===t?void 0:t.type)||void 0===n?void 0:n.startsWith("sw-broadcast-"))&&[...self.clients.matchAll({includeUncontrolled:!0})].forEach((t=>{var n;return t.id!==(null===(n=e.source)||void 0===n?void 0:n.id)&&t.postMessage(e.data)}))}));class h{constructor(e){this.name=e}subscribe(e){if(!y)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 y.addEventListener("message",t),()=>y.removeEventListener("message",t)}postMessage(e){var t;"object"==typeof self.clients?[...self.clients.matchAll({includeUncontrolled:!0})].forEach((t=>t.postMessage({type:`sw-broadcast-${this.name}`,message:e}))):p.registration&&(null===(t=p.registration.active)||void 0===t||t.postMessage({type:`sw-broadcast-${this.name}`,message:e}))}}const v=globalThis["lbc-events"]||(globalThis["lbc-events"]=new Map);class m extends t.Observable{constructor(e){const t="undefined"==typeof BroadcastChannel?new h(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){v.has(e)?v.get(e).push(t):v.set(e,[t])}(`lbc-${e}`,r);try{t instanceof h?i=t.subscribe((e=>n.next(e))):t.addEventListener("message",o)}catch(e){}return()=>{!function(e,t){const n=v.get(e);if(n){const e=n.indexOf(t);-1!==e&&n.splice(e,1)}}(`lbc-${e}`,r),t instanceof h?i():t.removeEventListener("message",o)}})),this.name=e,this.bc=t}next(e){this.bc.postMessage(e);!function(e){const t=v.get(e.type);t&&t.forEach((t=>{try{t(e)}catch(e){}}))}(new CustomEvent(`lbc-${this.name}`,{detail:e}))}}function b(e){return"function"==typeof e}function g(e){return function(t){if(function(e){return b(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 _=function(e){return e&&"number"==typeof e.length&&"function"!=typeof e};function w(e){return b(null==e?void 0:e.then)}var k,S,x=(k=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}},(S=k((function(e){Error.call(e),e.stack=(new Error).stack}))).prototype=Object.create(Error.prototype),S.prototype.constructor=S,S);function I(e,t){if(e){var n=e.indexOf(t);0<=n&&e.splice(n,1)}}var E=function(){function e(e){this.initialTeardown=e,this.closed=!1,this._parentage=null,this._finalizers=null}var t;return e.prototype.unsubscribe=function(){var e,t,n,r,o;if(!this.closed){this.closed=!0;var i=this._parentage;if(i)if(this._parentage=null,Array.isArray(i))try{for(var l=s(i),u=l.next();!u.done;u=l.next()){u.value.remove(this)}}catch(t){e={error:t}}finally{try{u&&!u.done&&(t=l.return)&&t.call(l)}finally{if(e)throw e.error}}else i.remove(this);var d=this.initialTeardown;if(b(d))try{d()}catch(e){o=e instanceof x?e.errors:[e]}var f=this._finalizers;if(f){this._finalizers=null;try{for(var p=s(f),y=p.next();!y.done;y=p.next()){var h=y.value;try{A(h)}catch(e){o=null!=o?o:[],e instanceof x?o=c(c([],a(o)),a(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 x(o)}},e.prototype.add=function(t){var n;if(t&&t!==this)if(this.closed)A(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)&&I(t,e)},e.prototype.remove=function(t){var n=this._finalizers;n&&I(n,t),t instanceof e&&t._removeParent(this)},e.EMPTY=((t=new e).closed=!0,t),e}();function O(e){return e instanceof E||e&&"closed"in e&&b(e.remove)&&b(e.add)&&b(e.unsubscribe)}function A(e){b(e)?e():e.unsubscribe()}E.EMPTY;var j={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},T={setTimeout:function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var o=T.delegate;return(null==o?void 0:o.setTimeout)?o.setTimeout.apply(o,c([e,t],a(n))):setTimeout.apply(void 0,c([e,t],a(n)))},clearTimeout:function(e){var t=T.delegate;return((null==t?void 0:t.clearTimeout)||clearTimeout)(e)},delegate:void 0};function U(e){T.setTimeout((function(){throw e}))}function C(){}var P=function(e){function t(t){var n=e.call(this)||this;return n.isStopped=!1,t?(n.destination=t,O(t)&&t.add(n)):n.destination=B,n}return r(t,e),t.create=function(e,t,n){return new R(e,t,n)},t.prototype.next=function(e){this.isStopped||this._next(e)},t.prototype.error=function(e){this.isStopped||(this.isStopped=!0,this._error(e))},t.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},t.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,e.prototype.unsubscribe.call(this),this.destination=null)},t.prototype._next=function(e){this.destination.next(e)},t.prototype._error=function(e){try{this.destination.error(e)}finally{this.unsubscribe()}},t.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},t}(E),D=Function.prototype.bind;function $(e,t){return D.call(e,t)}var L=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){N(e)}},e.prototype.error=function(e){var t=this.partialObserver;if(t.error)try{t.error(e)}catch(e){N(e)}else N(e)},e.prototype.complete=function(){var e=this.partialObserver;if(e.complete)try{e.complete()}catch(e){N(e)}},e}(),R=function(e){function t(t,n,r){var o,i,s=e.call(this)||this;b(t)||!t?o={next:null!=t?t:void 0,error:null!=n?n:void 0,complete:null!=r?r:void 0}:s&&j.useDeprecatedNextContext?((i=Object.create(t)).unsubscribe=function(){return s.unsubscribe()},o={next:t.next&&$(t.next,i),error:t.error&&$(t.error,i),complete:t.complete&&$(t.complete,i)}):o=t;return s.destination=new L(o),s}return r(t,e),t}(P);function N(e){U(e)}var B={closed:!0,next:C,error:function(e){throw e},complete:C},M="function"==typeof Symbol&&Symbol.observable||"@@observable";function F(e){return e}var W=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 P||function(e){return e&&b(e.next)&&b(e.error)&&b(e.complete)}(r)&&O(r)?e:new R(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=V(t))((function(t,r){var o=new R({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[M]=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?F: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=V(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 V(e){var t;return null!==(t=null!=e?e:j.Promise)&&void 0!==t?t:Promise}function K(e){return b(e[M])}function H(e){return Symbol.asyncIterator&&b(null==e?void 0:e[Symbol.asyncIterator])}function z(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 q="function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator";function J(e){return b(null==e?void 0:e[q])}function G(e){return u(this,arguments,(function(){var t,n,r;return i(this,(function(o){switch(o.label){case 0:t=e.getReader(),o.label=1;case 1:o.trys.push([1,,9,10]),o.label=2;case 2:return[4,l(t.read())];case 3:return n=o.sent(),r=n.value,n.done?[4,l(void 0)]:[3,5];case 4:return[2,o.sent()];case 5:return[4,l(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 Y(e){return b(null==e?void 0:e.getReader)}function Q(e){if(e instanceof W)return e;if(null!=e){if(K(e))return o=e,new W((function(e){var t=o[M]();if(b(t.subscribe))return t.subscribe(e);throw new TypeError("Provided object does not correctly implement Symbol.observable")}));if(_(e))return r=e,new W((function(e){for(var t=0;t<r.length&&!e.closed;t++)e.next(r[t]);e.complete()}));if(w(e))return n=e,new W((function(e){n.then((function(t){e.closed||(e.next(t),e.complete())}),(function(t){return e.error(t)})).then(null,U)}));if(H(e))return X(e);if(J(e))return t=e,new W((function(e){var n,r;try{for(var o=s(t),i=o.next();!i.done;i=o.next()){var a=i.value;if(e.next(a),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(Y(e))return X(G(e))}var t,n,r,o;throw z(e)}function X(e){return new W((function(t){(function(e,t){var n,r,s,a;return o(this,void 0,void 0,(function(){var o,c;return i(this,(function(i){switch(i.label){case 0:i.trys.push([0,5,6,11]),n=d(e),i.label=1;case 1:return[4,n.next()];case 2:if((r=i.sent()).done)return[3,4];if(o=r.value,t.next(o),t.closed)return[2];i.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return c=i.sent(),s={error:c},[3,11];case 6:return i.trys.push([6,,9,10]),r&&!r.done&&(a=n.return)?[4,a.call(n)]:[3,8];case 7:i.sent(),i.label=8;case 8:return[3,10];case 9:if(s)throw s.error;return[7];case 10:return[7];case 11:return t.complete(),[2]}}))}))})(e,t).catch((function(e){return t.error(e)}))}))}function Z(e,t,n,r,o){return new ee(e,t,n,r,o)}var ee=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 r(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}(P),te=function(e){function t(t,n){return e.call(this)||this}return r(t,e),t.prototype.schedule=function(e,t){return this},t}(E),ne={setInterval:function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var o=ne.delegate;return(null==o?void 0:o.setInterval)?o.setInterval.apply(o,c([e,t],a(n))):setInterval.apply(void 0,c([e,t],a(n)))},clearInterval:function(e){var t=ne.delegate;return((null==t?void 0:t.clearInterval)||clearInterval)(e)},delegate:void 0},re=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 r(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),ne.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;ne.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,I(r,this),null!=t&&(this.id=this.recycleAsyncId(n,t,null)),this.delay=null,e.prototype.unsubscribe.call(this)}},t}(te),oe={now:function(){return(oe.delegate||Date).now()},delegate:void 0},ie=function(){function e(t,n){void 0===n&&(n=e.now),this.schedulerActionCtor=t,this.now=n}return e.prototype.schedule=function(e,t,n){return void 0===t&&(t=0),new this.schedulerActionCtor(this,e).schedule(n,t)},e.now=oe.now,e}(),se=new(function(e){function t(t,n){void 0===n&&(n=ie.now);var r=e.call(this,t,n)||this;return r.actions=[],r._active=!1,r._scheduled=void 0,r}return r(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}(ie))(re),ae=se;function ce(e){return e&&b(e.schedule)}function le(e,t,n){void 0===e&&(e=0),void 0===n&&(n=ae);var r=-1;return null!=t&&(ce(t)?n=t:r=t),new W((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 ue(e){return ce((t=e)[t.length-1])?e.pop():void 0;var t}function de(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 fe(e){return g((function(t,n){var r,o=null,i=!1;o=t.subscribe(Z(n,void 0,void 0,(function(s){r=Q(e(s,fe(e)(t))),o?(o.unsubscribe(),o=null,r.subscribe(n)):i=!0}))),i&&(o.unsubscribe(),o=null,r.subscribe(n))}))}function pe(e,t){return void 0===t&&(t=0),g((function(n,r){n.subscribe(Z(r,(function(n){return de(r,e,(function(){return r.next(n)}),t)}),(function(){return de(r,e,(function(){return r.complete()}),t)}),(function(n){return de(r,e,(function(){return r.error(n)}),t)})))}))}function ye(e,t){return void 0===t&&(t=0),g((function(n,r){r.add(e.schedule((function(){return n.subscribe(r)}),t))}))}function he(e,t){if(!e)throw new Error("Iterable cannot be null");return new W((function(n){de(n,t,(function(){var r=e[Symbol.asyncIterator]();de(n,t,(function(){r.next().then((function(e){e.done?n.complete():n.next(e.value)}))}),0,!0)}))}))}function ve(e,t){if(null!=e){if(K(e))return function(e,t){return Q(e).pipe(ye(t),pe(t))}(e,t);if(_(e))return function(e,t){return new W((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(w(e))return function(e,t){return Q(e).pipe(ye(t),pe(t))}(e,t);if(H(e))return he(e,t);if(J(e))return function(e,t){return new W((function(n){var r;return de(n,t,(function(){r=e[q](),de(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 b(null==r?void 0:r.return)&&r.return()}}))}(e,t);if(Y(e))return function(e,t){return he(G(e),t)}(e,t)}throw z(e)}function me(e,t){return g((function(n,r){var o=0;n.subscribe(Z(r,(function(n){r.next(e.call(t,n,o++))})))}))}function be(e,t,n){return void 0===n&&(n=1/0),b(t)?be((function(n,r){return me((function(e,o){return t(n,e,r,o)}))(Q(e(n,r)))}),n):("number"==typeof t&&(n=t),g((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;Q(n(e,u++)).subscribe(Z(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?de(t,s,(function(){return y(e)})):y(e)};c.length&&l<r;)e();f()}catch(e){t.error(e)}})))};return e.subscribe(Z(t,p,(function(){d=!0,f()}))),function(){null==a||a()}}(t,r,e,n)})))}function ge(){return void 0===(e=1)&&(e=1/0),be(F,e);var e}function _e(e,t){return void 0===t&&(t=se),g((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(Z(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 we(){for(var e,t,n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];return ge()((e=n,(t=ue(n))?ve(e,t):Q(e)))}var ke=new W((function(e){return e.complete()}));function Se(e){return e<=0?function(){return ke}:g((function(t,n){var r=0;t.subscribe(Z(n,(function(t){++r<=e&&(n.next(t),e<=r&&n.complete())})))}))}function xe(e,t){return t?function(n){return we(t.pipe(Se(1),g((function(e,t){e.subscribe(Z(t,C))}))),n.pipe(xe(e)))}:be((function(t,n){return e(t,n).pipe(Se(1),function(e){return me((function(){return e}))}(t))}))}function Ie(e,t){void 0===t&&(t=se);var n=le(e,t);return xe((function(){return n}))}function Ee(e,t){return void 0===t&&(t=F),e=null!=e?e:Oe,g((function(n,r){var o,i=!0;n.subscribe(Z(r,(function(n){var s=t(n);!i&&e(o,s)||(i=!1,o=s,r.next(n))})))}))}function Oe(e,t){return e===t}function Ae(e,t){return g((function(n,r){var o=0;n.subscribe(Z(r,(function(n){return e.call(t,n,o++)&&r.next(n)})))}))}function je(e){return Ae((function(t,n){return e<=n}))}function Te(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=ue(e);return g((function(t,r){(n?we(e,t,n):we(e,t)).subscribe(r)}))}function Ue(e,t){return g((function(n,r){var o=null,i=0,s=!1,a=function(){return s&&!o&&r.complete()};n.subscribe(Z(r,(function(n){null==o||o.unsubscribe();var s=0,c=i++;Q(e(n,c)).subscribe(o=Z(r,(function(e){return r.next(t?t(n,e,c,s++):e)}),(function(){o=null,a()})))}),(function(){s=!0,a()})))}))}function Ce(e,t,n){var r=b(e)||t||n?{next:e,error:t,complete:n}:e;return r?g((function(e,t){var n;null===(n=r.subscribe)||void 0===n||n.call(r);var o=!0;e.subscribe(Z(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)})))})):F}let Pe=!1;function De(e,t){return o(this,void 0,void 0,(function*(){try{const n=yield navigator.serviceWorker.ready;if("push"===t&&n.sync&&(yield n.sync.register(`dexie-cloud:${e.name}`)),!n.active)throw new Error("Failed to trigger sync - there's no active service worker");return void n.active.postMessage({type:"dexie-cloud-sync",dbName:e.name,purpose:t})}catch(e){Pe||(Pe=!0)}}))}function $e(e,t){e.cloud.usingServiceWorker?De(e,t):e.localSyncEvent.next({purpose:t})}const Le="fromBase64"in Uint8Array,Re="toBase64"in Uint8Array.prototype,Ne="undefined"!=typeof Buffer?e=>Buffer.from(e,"base64"):Le?e=>Uint8Array.fromBase64(e):e=>{const t=atob(e),n=t.length,r=new Uint8Array(n);for(var o=0;o<n;o++)r[o]=t.charCodeAt(o);return r},Be="undefined"!=typeof Buffer?e=>ArrayBuffer.isView(e)?Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("base64"):Buffer.from(e).toString("base64"):Re?e=>(ArrayBuffer.isView(e)?e:new Uint8Array(e)).toBase64():e=>{const t=ArrayBuffer.isView(e)?e:new Uint8Array(e),n=[];for(let e=0,r=t.length;e<r;e+=4096){const r=t.subarray(e,e+4096);n.push(String.fromCharCode.apply(null,r))}return btoa(n.join(""))};function Me(e){return o(this,arguments,void 0,(function*({realms:e,inviteRealms:t}){const n=JSON.stringify([...e.map((e=>({realmId:e,accepted:!0}))),...t.map((e=>({realmId:e,accepted:!1})))].sort(((e,t)=>e.realmId<t.realmId?-1:e.realmId>t.realmId?1:0))),r=(new TextEncoder).encode(n),o=yield crypto.subtle.digest("SHA-1",r);return Be(o)}))}function Fe(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 We(e){return`$${e}_mutations`}function Ve(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 Ke=[].concat;function He(e){return Ke.apply([],e)}function ze(e,t){return o(this,arguments,void 0,(function*(e,t,{since:n={},limit:r=1/0}={}){const i=He(yield Promise.all(e.map((e=>o(this,void 0,void 0,(function*(){const t=Ve(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 i)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 qe(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 Je={}.hasOwnProperty;function Ge(e,t,n){if(e&&void 0!==t&&(!("isFrozen"in Object)||!Object.isFrozen(e)))if("string"!=typeof t&&"length"in t){!function(e){if(!e)throw new Error("Assertion Failed")}("string"!=typeof n&&"length"in n);for(var r=0,o=t.length;r<o;++r)Ge(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 Je.call(e,t)}(e,s)||(c=e[s]={}),Ge(c,a,n)}}else void 0===n?Array.isArray(e)&&!isNaN(parseInt(t))?e.splice(t,1):delete e[t]:e[t]=n}}const Ye="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=Qe)=>{const n=Buffer.alloc(e);return t(n),n.toString("base64")}:()=>{throw new Error("No implementation of randomString was found")};function Qe(e){for(let t=0;t<e.length;++t)e[t]=Math.floor(256*Math.random())}function Xe(e){return"string"==typeof e||!!(Array.isArray(e)&&e.some((e=>Xe(e)))&&e.every(Ze))}function Ze(e){return"string"==typeof e||"number"==typeof e||Array.isArray(e)&&e.every(Ze)}function et(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))Ge(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 tt(e,t){for(const{table:n,muts:r}of t)for(const t of r)et(e,n,t)}const nt=Math.floor,rt=Math.abs,ot=(e,t)=>e>t?e:t,it=128,st=127,at=Number.MAX_SAFE_INTEGER,ct=Number.isInteger||(e=>"number"==typeof e&&isFinite(e)&&nt(e)===e),lt=Array.isArray,ut="undefined"!=typeof TextEncoder?new TextEncoder:null,dt=ut?e=>ut.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 ft="undefined"==typeof TextDecoder?null:new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});ft&&1===ft.decode(new Uint8Array).length&&(ft=null);class pt{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}}const yt=(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},ht=(e,t)=>{for(;t>st;)yt(e,it|st&t),t=nt(t/128);yt(e,st&t)},vt=new Uint8Array(3e4),mt=vt.length/3,bt=ut&&ut.encodeInto?(e,t)=>{if(t.length<mt){const n=ut.encodeInto(t,vt).written||0;ht(e,n);for(let t=0;t<n;t++)yt(e,vt[t])}else gt(e,dt(t))}:(e,t)=>{const n=unescape(encodeURIComponent(t)),r=n.length;ht(e,r);for(let t=0;t<r;t++)yt(e,n.codePointAt(t))},gt=(e,t)=>{ht(e,t.byteLength),((e,t)=>{const n=e.cbuf.length,r=e.cpos,o=((e,t)=>e<t?e:t)(n-r,t.length),i=t.length-o;e.cbuf.set(t.subarray(0,o),r),e.cpos+=o,i>0&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(ot(2*n,i)),e.cbuf.set(t.subarray(o)),e.cpos=i)})(e,t)},_t=(e,t)=>{((e,t)=>{const n=e.cbuf.length;n-e.cpos<t&&(e.bufs.push(new Uint8Array(e.cbuf.buffer,0,e.cpos)),e.cbuf=new Uint8Array(2*ot(n,t)),e.cpos=0)})(e,t);const n=new DataView(e.cbuf.buffer,e.cpos,t);return e.cpos+=t,n},wt=(e,t)=>_t(e,8).setBigUint64(0,t,!1),kt=new DataView(new ArrayBuffer(4)),St=(e,t)=>{switch(typeof t){case"string":yt(e,119),bt(e,t);break;case"number":ct(t)&&rt(t)<=2147483647?(yt(e,125),((e,t)=>{const n=(e=>0!==e?e<0:1/e<0)(t);for(n&&(t=-t),yt(e,(t>63?it:0)|(n?64:0)|63&t),t=nt(t/64);t>0;)yt(e,(t>st?it:0)|st&t),t=nt(t/128)})(e,t)):(n=t,kt.setFloat32(0,n),kt.getFloat32(0)===n?(yt(e,124),((e,t)=>{_t(e,4).setFloat32(0,t,!1)})(e,t)):(yt(e,123),((e,t)=>{_t(e,8).setFloat64(0,t,!1)})(e,t)));break;case"bigint":yt(e,122),((e,t)=>{_t(e,8).setBigInt64(0,t,!1)})(e,t);break;case"object":if(null===t)yt(e,126);else if(lt(t)){yt(e,117),ht(e,t.length);for(let n=0;n<t.length;n++)St(e,t[n])}else if(t instanceof Uint8Array)yt(e,116),gt(e,t);else{yt(e,118);const n=Object.keys(t);ht(e,n.length);for(let r=0;r<n.length;r++){const o=n[r];bt(e,o),St(e,t[o])}}break;case"boolean":yt(e,t?120:121);break;default:yt(e,127)}var n};function xt(e){const t=new pt;switch(bt(t,e.type),"table"in e&&bt(t,e.table),"prop"in e&&bt(t,e.prop),e.type){case"u-ack":case"u-reject":wt(t,BigInt(e.i));break;case"outdated-server-rev":break;case"y-complete-sync-done":bt(t,e.yServerRev);break;default:switch(St(t,e.k),e.type){case"aware":gt(t,e.u);break;case"doc-open":St(t,e.serverRev),St(t,e.sv);break;case"doc-close":break;case"sv":gt(t,e.sv);break;case"u-c":gt(t,e.u),wt(t,BigInt(e.i));break;case"u-s":gt(t,e.u),bt(t,e.r||"")}}return(e=>{const t=new Uint8Array((e=>{let t=e.cpos;for(let n=0;n<e.bufs.length;n++)t+=e.bufs[n].length;return t})(e));let n=0;for(let r=0;r<e.bufs.length;r++){const o=e.bufs[r];t.set(o,n),n+=o.length}return t.set(new Uint8Array(e.cbuf.buffer,0,e.cpos),n),t})(t)}const It=e=>new Error(e),Et=It("Unexpected end of array"),Ot=It("Integer out of Range");class At{constructor(e){this.arr=e,this.pos=0}}const jt=e=>e.pos!==e.arr.length,Tt=e=>((e,t)=>{const n=new Uint8Array(e.arr.buffer,e.pos+e.arr.byteOffset,t);return e.pos+=t,n})(e,Ct(e)),Ut=e=>e.arr[e.pos++],Ct=e=>{let t=0,n=1;const r=e.arr.length;for(;e.pos<r;){const r=e.arr[e.pos++];if(t+=(r&st)*n,n*=128,r<it)return t;if(t>at)throw Ot}throw Et},Pt=ft?e=>ft.decode(Tt(e)):e=>{let t=Ct(e);if(0===t)return"";{let n=String.fromCodePoint(Ut(e));if(--t<100)for(;t--;)n+=String.fromCodePoint(Ut(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))}},Dt=(e,t)=>{const n=new DataView(e.arr.buffer,e.arr.byteOffset+e.pos,t);return e.pos+=t,n},$t=e=>Dt(e,8).getBigUint64(0,!1),Lt=[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&it))return o*n;const i=e.arr.length;for(;e.pos<i;){if(t=e.arr[e.pos++],n+=(t&st)*r,r*=128,t<it)return o*n;if(n>at)throw Ot}throw Et},e=>Dt(e,4).getFloat32(0,!1),e=>Dt(e,8).getFloat64(0,!1),e=>Dt(e,8).getBigInt64(0,!1),e=>!1,e=>!0,Pt,e=>{const t=Ct(e),n={};for(let r=0;r<t;r++){n[Pt(e)]=Rt(e)}return n},e=>{const t=Ct(e),n=[];for(let r=0;r<t;r++)n.push(Rt(e));return n},Tt],Rt=e=>Lt[127-Ut(e)](e);function Nt(e){return u(this,arguments,(function*(){var t,n,r,o;let i=0,s=new Uint8Array(4),a=0,c=[],u=0;try{for(var f,p=!0,y=d(e);!(t=(f=yield l(y.next())).done);p=!0){o=f.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:u=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+u>e.byteLength)c.push(e.slice(n)),u-=e.byteLength-n,i=2,n=e.byteLength;else{if(c.length>0){const t=new Uint8Array(c.reduce(((e,t)=>e+t.byteLength),u));let r=0;for(const e of c)t.set(e,r),r+=e.byteLength;t.set(e.slice(n,n+u),r),c=[],yield yield l(t)}else yield yield l(e.slice(n,n+u));n+=u,i=0}}}}catch(e){n={error:e}}finally{try{p||t||!(r=y.return)||(yield l(r.call(y)))}finally{if(n)throw n.error}}}))}class Bt 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 Mt(t,n){return new Promise(((r,o)=>{const i=Object.assign(Object.assign({submitLabel:"Submit",cancelLabel:"Cancel"},n),{onSubmit:e=>{t.next(void 0),r(e)},onCancel:()=>{t.next(void 0),o(new e.AbortError("User cancelled"))}});t.next(i)}))}function Ft(e,t,...n){return Mt(e,{type:"message-alert",title:t,alerts:n,fields:{},submitLabel:"OK",cancelLabel:null})}function Wt(e,t,n){return o(this,void 0,void 0,(function*(){let r=n||"";for(;!r||!/^[\w-+.]+@([\w-]+\.)+[\w-]{2,10}(\sas\s[\w-+.]+@([\w-]+\.)+[\w-]{2,10})?$/.test(r);)r=(yield Mt(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 Vt(e,t,n){return o(this,void 0,void 0,(function*(){const r=[{type:"info",messageCode:"OTP_SENT",message:"A One-Time password has been sent to {email}",messageParams:{email:t}}];n&&r.push(n);const{otp:o}=yield Mt(e,{type:"otp",title:"Enter OTP",alerts:r,fields:{otp:{type:"otp",label:"OTP",placeholder:"Paste OTP here"}}});return o}))}function Kt(e){return o(this,void 0,void 0,(function*(){var t,n,r;const o=yield e.getCurrentUser(),{accessToken:i,accessTokenExpiration:s,refreshToken:a,refreshTokenExpiration:c,claims:l}=o;if(!i)return null;if((null!==(t=null==s?void 0:s.getTime())&&void 0!==t?t:1/0)>Date.now()&&"ok"===((null===(n=o.license)||void 0===n?void 0:n.status)||"ok"))return o;if(!a)throw new Error("Refresh token missing");if((null!==(r=null==c?void 0:c.getTime())&&void 0!==r?r:1/0)<=Date.now())throw new Error("Refresh token has expired");const u=yield zt(e.cloud.options.databaseUrl,o);return yield e.table("$logins").update(l.sub,{accessToken:u.accessToken,accessTokenExpiration:u.accessTokenExpiration,claims:u.claims,license:u.license,data:u.data}),u}))}function Ht(t,n,r,i,s){return o(this,void 0,void 0,(function*(){return n.accessToken&&n.accessTokenExpiration.getTime()>Date.now()?n:n.refreshToken&&(!n.refreshTokenExpiration||n.refreshTokenExpiration.getTime()>Date.now())?yield zt(t,n):yield function(t,n,r,i){return o(this,void 0,void 0,(function*(){if(!crypto.subtle)throw"undefined"!=typeof location&&"http:"===location.protocol?new Error("Dexie Cloud Addon needs to use WebCrypto, but your browser has disabled it due to being served from an insecure location. Please serve it from https or http://localhost:<port> (See https://stackoverflow.com/questions/46670556/how-to-enable-crypto-subtle-for-unsecure-origins-in-chrome/46671627#46671627)"):new Error("This browser does not support WebCrypto.");const{privateKey:o,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(!o||!s)throw new Error("Could not generate RSA keypair");t.nonExportablePrivateKey=o;const a=function(e){const t=Be(e);return function(e){let t="-----BEGIN PUBLIC KEY-----\n";for(;e.length>0;)t+=e.substring(0,64)+"\n",e=e.substring(64);return t+="-----END PUBLIC KEY-----",t}(t)}(yield crypto.subtle.exportKey("spki",s));t.publicKey=s;try{const e=yield n({public_key:a,hints:i});if("error"===e.type)throw new Bt(e);if("tokens"!==e.type)throw new Error(`Unexpected response type from token endpoint: ${e.type}`);return t.accessToken=e.accessToken,t.accessTokenExpiration=new Date(e.accessTokenExpiration),t.refreshToken=e.refreshToken,e.refreshTokenExpiration&&(t.refreshTokenExpiration=new Date(e.refreshTokenExpiration)),t.userId=e.claims.sub,t.email=e.claims.email,t.name=e.claims.name,t.claims=e.claims,t.license={type:e.userType,status:e.claims.license||"ok"},t.data=e.data,null!=e.evalDaysLeft&&(t.license.evalDaysLeft=e.evalDaysLeft),null!=e.userValidUntil&&(t.license.validUntil=new Date(e.userValidUntil)),e.alerts&&e.alerts.length>0&&(yield Mt(r,{type:"message-alert",title:"Authentication Alert",fields:{},alerts:e.alerts})),t}catch(t){if(t instanceof Bt)throw yield Ft(r,t.title,{type:"error",messageCode:t.messageCode,message:t.message,messageParams:{}}),t;let n="We're having a problem authenticating right now.";if(t instanceof TypeError){n=void 0!==typeof navigator&&!navigator.onLine?"You seem to be offline. Please connect to the internet and try again.":e.debug||"undefined"!=typeof location&&("localhost"===location.hostname||"127.0.0.1"===location.hostname)?`Could not connect to server. Please verify that your origin '${location.origin}' is whitelisted using \`npx dexie-cloud whitelist\``:"Could not connect to server. Please verify the connection.",yield Ft(r,"Authentication Failed",{type:"error",messageCode:"GENERIC_ERROR",message:n,messageParams:{}}).catch((()=>{}))}throw t}}))}(n,r,i,s)}))}function zt(e,t){return o(this,void 0,void 0,(function*(){if(!t.refreshToken)throw new Error("Cannot refresh token - refresh token is missing.");if(!t.nonExportablePrivateKey)throw new Error("login.nonExportablePrivateKey is missing - cannot sign refresh token without a private key.");const n=Date.now(),r="RSASSA-PKCS1-v1_5",o=(new TextEncoder).encode(t.refreshToken+n),i=yield crypto.subtle.sign(r,t.nonExportablePrivateKey,o),s=Be(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 Bt(l);return t.accessToken=l.accessToken,t.accessTokenExpiration=l.accessTokenExpiration?new Date(l.accessTokenExpiration):void 0,t.claims=l.claims,t.license={type:l.userType,status:l.claims.license||"ok"},null!=l.evalDaysLeft&&(t.license.evalDaysLeft=l.evalDaysLeft),null!=l.userValidUntil&&(t.license.validUntil=new Date(l.userValidUntil)),l.data&&(t.data=l.data),t}))}const{toString:qt}={};const Jt={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 Gt(...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 Jt;let i=n.get(r);if(void 0!==i)return i;const s=(o=e,qt.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:Jt),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 Yt={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 Qt={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 Xt={bigint:{replace:e=>({$t:"bigint",v:""+e}),revive:e=>BigInt(e.v)}};var Zt={Date:{replace:e=>({$t:"Date",v:isNaN(e.getTime())?"NaN":e.toISOString()}),revive:({v:e})=>new Date("NaN"===e?NaN:Date.parse(e))}},en={Set:{replace:e=>({$t:"Set",v:Array.from(e.entries())}),revive:({v:e})=>new Set(e)}},tn={Map:{replace:e=>({$t:"Map",v:Array.from(e.entries())}),revive:({v:e})=>new Map(e)}};const nn="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof global?global:void 0;var rn=["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=nn[t];return o&&new o(r.ArrayBuffer.revive({v:e},n,r))}}})),{});function on(e){return function(e){for(var t="",n=0,r=e.length;n<r;n++)t+=cn[e[n]];return t}(Be(e))}function sn(e){return Ne(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+=an[e[n]];return t}(e))}const an={"-":"=",0:"A",1:"B",2:"C",3:"D",4:"E",5:"F",6:"G",7:"H",8:"I",9:"J",A:"K",B:"L",C:"M",D:"N",E:"O",F:"P",G:"Q",H:"R",I:"S",J:"T",K:"U",L:"V",M:"W",N:"X",O:"Y",P:"Z",Q:"a",R:"b",S:"c",T:"d",U:"e",V:"f",W:"g",X:"h",Y:"i",Z:"j",_:"k",a:"l",b:"m",c:"n",d:"o",e:"p",f:"q",g:"r",h:"s",i:"t",j:"u",k:"v",l:"w",m:"x",n:"y",o:"z",p:"0",q:"1",r:"2",s:"3",t:"4",u:"5",v:"6",w:"7",x:"8",y:"9",z:"+","|":"/"},cn={};for(const e of Object.keys(an))cn[an[e]]=e;var ln={ArrayBuffer:{replace:e=>({$t:"ArrayBuffer",v:on(e)}),revive:({v:e})=>{const t=sn(e);return t.buffer.byteLength===t.byteLength?t.buffer:t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}}};class un{constructor(e,t){this.buf=e,this.type=t}}function dn(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 fn(e){const t=new Uint8Array(e.length);for(let n=0;n<e.length;++n)t[n]=e.charCodeAt(n);return t.buffer}var pn={Blob:{test:(e,t)=>"Blob"===t||e instanceof un,replace:e=>({$t:"Blob",v:Be(e instanceof un?e.buf:fn(dn(e))),type:e.type}),revive:({type:e,v:t})=>{const n=Ne(t);return void 0!==typeof Blob?new Blob([n]):new un(n.buffer,e)}}};const yn={...Qt,...Xt,...Zt,...en,...tn,...rn,...ln,...pn};function hn(e){return new Promise(((t,n)=>{const r=new FileReader;r.onabort=e=>n(new Error("file read aborted")),r.onerror=e=>n(e.target.error),r.onload=e=>t(e.target.result),r.readAsArrayBuffer(e)}))}var vn={undefined:{replace:()=>({$t:"undefined"}),revive:()=>{}}},mn={File:{test:(e,t)=>"File"===t,replace:e=>({$t:"File",v:Be(fn(dn(e))),type:e.type,name:e.name,lastModified:new Date(e.lastModified).toISOString()}),revive:({type:e,v:t,name:n,lastModified:r})=>{const o=Ne(t);return new File([o],n,{type:e,lastModified:new Date(r).getTime()})}}};const bn="function"==typeof BigInt&&"bigint"==typeof BigInt(0);class gn{toString(){return this.v}constructor(e){this.v=e}}const _n=bn?{}:{bigint:{test:e=>e instanceof gn,replace:e=>Object.assign({$t:"bigint"},e),revive:({v:e})=>new gn(e)}},wn=Object.assign(Object.assign(Object.assign(Object.assign({},vn),_n),mn),{PropModification:{test:t=>t instanceof e.PropModification,replace:e=>Object.assign({$t:"PropModification"},e["@@propmod"]),revive:t=>{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}(t,["$t"]);return new e.PropModification(n)}}}),kn=Gt(yn,wn),Sn=function(...e){const t=Gt(yn,Yt,...e);return{toBinary(e){const[t,n]=this.stringify(e),r=new ArrayBuffer(4);return new DataView(r).setUint32(0,t.size),new Blob([r,t,n])},stringify(e){const n=[],r=t.stringify(e,n),o=new Blob(n.map((e=>{const t=new ArrayBuffer(4);return new DataView(t).setUint32(0,"byteLength"in e?e.byteLength:e.size),new Blob([t,e])})));return[o,r]},async parse(e,n){let r=0;const o=[],i=await hn(n),s=new DataView(i);for(;r<i.byteLength;){const e=s.getUint32(r);r+=4;const t=i.slice(r,r+e);r+=e,o.push(t)}return t.parse(e,o)},async fromBinary(e){const t=new DataView(await hn(e.slice(0,4))).getUint32(0),n=e.slice(4,t+4),r=await function(e){return new Promise(((t,n)=>{const r=new FileReader;r.onabort=e=>n(new Error("file read aborted")),r.onerror=e=>n(e.target.error),r.onload=e=>t(e.target.result),r.readAsText(e)}))}(e.slice(t+4));return await this.parse(r,n)}}}(wn);class xn extends Error{constructor(e,t){super(t||`${e.status} ${e.statusText}`),this.httpStatus=e.status}get name(){return"HttpError"}}function In(t,n,r){const o=[];for(let i of r){const{table:r,muts:s}=i,a=t.tables.find((e=>e.name===r));if(!a)throw new Error(`Internal error: table ${r} not found in DBCore schema`);const{primaryKey:c}=a;let l=i;s.forEach(((t,r)=>{const o=!c.outbound&&("upsert"===t.type||"insert"===t.type);t.keys.forEach(((t,s)=>{if(Array.isArray(t)){l===i&&(l=En(i,o));const e=l.muts[r],n=JSON.stringify(t);e.keys[s]=n}else if("#"===t[0]){l===i&&(l=En(i,o));const a=l.muts[r];if(!n.isLoggedIn)throw new Error("Internal error: Cannot sync private IDs before authenticated");const u=`${t}:${n.userId}`;a.keys[s]=u,o&&e.setByKeyPath(a.values[s],c.keyPath,u)}}))})),o.push(l)}return o}function En(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 On=new WeakMap;function An(e){return o(this,void 0,void 0,(function*(){var t,n;const r=(null!==(n=null===(t=On.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 jn(e,t,n,r,i,s,a,c,l){return o(this,void 0,void 0,(function*(){const o={Accept:"application/json, application/x-bison, application/x-bison-stream","Content-Type":"application/tson"},u=yield Kt(i),d=null==u?void 0:u.accessToken;d&&(o.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:In(i.dx.core.schema,l,e),y:t,dxcv:i.cloud.version};i.syncStateChangedEvent.next({phase:"pushing"});const p=kn.stringify(f),y=yield fetch(`${s}/sync`,{method:"post",headers:o,credentials:"include",body:p});if(i.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));On.set(e,new Date(Date.now()+1e3*t))}else On.delete(e)}}(i,y),!y.ok)throw new xn(y);if("application/x-bison"===y.headers.get("content-type"))return Sn.fromBinary(yield y.blob());{const e=yield y.text();return kn.parse(e)}}))}function Tn(t){if(null==t?void 0:t.cancelled)throw new e.AbortError("Operation was cancelled")}let Un=!1;function Cn(e,t,n,r){return o(this,void 0,void 0,(function*(){yield e.$baseRevs.bulkPut(Object.keys(t).filter((e=>t[e].markedForSync)).map((e=>({tableName:e,clientRev:(n[e]||0)+1,serverRev:r}))))}))}function Pn(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 Dn(t,n,r){return o(this,void 0,void 0,(function*(){const o=yield t.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===t.schema.primKey.keyPath){if(0!==e.cmp(i,n))throw new Error("Cannot change primary key")}else e.setByKeyPath(c,o,i);i.push(n),s.push(c)}})),yield null==t.schema.primKey.keyPath?t.bulkPut(s,i):t.bulkPut(s)}))}function $n(t,n){return o(this,void 0,void 0,(function*(){for(const{table:r,muts:o}of t){if(!n.dx._allTables[r])continue;const t=n.table(r),{primaryKey:i}=t.core.schema,s=e=>{switch(e[0]){case"[":if(e.endsWith("]"))try{return JSON.parse(e)}catch(e){}return e;case"#":return e.endsWith(":"+n.cloud.currentUserId)?e.substr(0,e.length-n.cloud.currentUserId.length-1):e;default:return e}};for(const n of o){const r=n.keys.map(s);switch(n.type){case"insert":i.outbound?yield t.bulkAdd(n.values,r):(r.forEach(((t,r)=>{e.setByKeyPath(n.values[r],i.keyPath,t)})),yield t.bulkAdd(n.values));break;case"upsert":i.outbound?yield t.bulkPut(n.values,r):(r.forEach(((t,r)=>{e.setByKeyPath(n.values[r],i.keyPath,t)})),yield t.bulkPut(n.values));break;case"modify":1===r.length?yield t.update(r[0],n.changeSpec):yield t.where(":id").anyOf(r).modify(n.changeSpec);break;case"update":yield Dn(t,r,n.changeSpecs);break;case"delete":yield t.bulkDelete(r)}}}}))}"undefined"!=typeof self&&"undefined"!=typeof navigator&&(Un=navigator.onLine,self.addEventListener("online",(()=>Un=!0)),self.addEventListener("offline",(()=>Un=!1)));const Ln="dexie-cloud-syncer";function Rn(e,t){return e.where("i").between(t,1/0,!0).toArray()}function Nn(e){const t=e.dx._options.Y;if(!t)throw new Error("Y library not supplied to Dexie constructor");return t}function Bn(e,t,n){var r,o,i;if(!e.dx._allTables[t])return;const s=null===(i=null===(o=null===(r=e.table(t))||void 0===r?void 0:r.schema.yProps)||void 0===o?void 0:o.find((e=>e.prop===n)))||void 0===i?void 0:i.updatesTable;return s&&e.dx._allTables[s]?e.table(s):void 0}function Mn(t,n){return o(this,void 0,void 0,(function*(){var r;const i={};let s,a=!1;for(const c of t)try{switch(c.type){case"u-s":{const e=Bn(n,c.table,c.prop);if(e){const t={k:c.k,u:c.u};c.r&&(t.r=c.r,s=c.r),i[e.name]=yield e.add(t)}break}case"u-ack":{const e=Bn(n,c.table,c.prop);e&&(yield n.transaction("rw",e,(t=>o(this,void 0,void 0,(function*(){let n=yield t.table(e.name).get(Ln);yield t.table(e.name).put(Object.assign(Object.assign({},n||{i:Ln}),{unsentFrom:Math.max((null==n?void 0:n.unsentFrom)||1,c.i+1)}))})))));break}case"u-reject":{const t=Bn(n,c.table,c.prop);if(!t)break;const o=null===(r=yield t.get(c.i))||void 0===r?void 0:r.k;if(null!=o){yield n.transaction("rw",t,(n=>(n.idbtrans._rejecting_y_ypdate=!0,t.where("i").aboveOrEqual(c.i).filter((t=>0===e.cmp(t.k,o)&&1==(1&(t.f||0)))).delete())));const r=e.DexieYProvider.getDocCache(n.dx).find(c.table,o,c.prop);r&&r.destroy()}break}case"in-sync":{const t=e.DexieYProvider.getDocCache(n.dx).find(c.table,c.k,c.prop);t&&!t.isSynced&&t.emit("sync",[!0]);break}case"y-complete-sync-done":s=c.yServerRev;break;case"outdated-server-rev":a=!0}}catch(e){}return{receivedUntils:i,resyncNeeded:a,yServerRevision:s}}))}const Fn=1,Wn=2,Vn=3;function Kn(t,n,r){return o(this,arguments,void 0,(function*(t,n,{yDownloadedRealms:r,realms:i}){if(r&&i&&i.every((e=>"*"===r[e])))return;const s=yield Kt(t),a={"Content-Type":"application/json",Accept:"application/octet-stream"};s&&(a.Authorization=`Bearer ${s.accessToken}`);const c=yield fetch(`${n}/y/download`,{body:kn.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=d(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 u(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 l(t.read());if(e)return yield l(void 0);yield yield l(n)}}finally{t.releaseLock()}}))}}(c),Nt,(function(r){return u(this,arguments,(function*(){var i,s,a,c;let u=null,f=null,p=null,y=[];function h(e){return o(this,void 0,void 0,(function*(){const r=y[y.length-1];if(y.length>0){if(!u||!f||!p)throw new Error(`Protocol error from ${n}/y/download`);const e=Bn(t,f,p);e&&(yield e.bulkAdd(y)),y=[]}u&&(f&&p&&r||e)&&(yield t.$syncState.update("syncState",(t=>{const n=t.yDownloadedRealms||{};n[u]=e?"*":{tbl:f,prop:p,key:r.k},t.yDownloadedRealms=n})))}))}try{try{for(var v,m=!0,b=d(r);!(i=(v=yield l(b.next())).done);m=!0){c=v.value,m=!1;const e=new At(c);for(;jt(e);)switch(Ut(e)){case Fn:yield l(h(!0)),u=Pt(e);break;case Wn:yield l(h(!1)),f=Pt(e),p=Pt(e);break;case Vn:{const t=Rt(e),n=Tt(e);y.push({k:t,u:n});break}}yield l(h(!1))}}catch(e){s={error:e}}finally{try{m||i||!(a=b.return)||(yield l(a.call(b)))}finally{if(s)throw s.error}}yield l(h(!0))}catch(t){throw t instanceof e.DexieError||(yield l(h(!1))),t}}))}))}))}const Hn="currentSyncWorker";function zn(e,t,n,r){return qn(e,t,n,r).then((t=>((null==r?void 0:r.justCheckIfNeeded)||e.syncStateChangedEvent.next({phase:"in-sync"}),t))).catch((i=>o(this,void 0,void 0,(function*(){return(null==r?void 0:r.justCheckIfNeeded)?Promise.reject(i):Un&&(null==r?void 0:r.retryImmediatelyOnFetchError)&&"TypeError"===(null==i?void 0:i.name)&&/fetch/.test(null==i?void 0:i.message)?(e.syncStateChangedEvent.next({phase:"error",error:i}),yield new Promise((e=>setTimeout(e,500))),yield zn(e,t,n,Object.assign(Object.assign({},r),{retryImmediatelyOnFetchError:!1}))):(yield e.$syncState.update("syncState",{timestamp:new Date,error:""+i}),e.syncStateChangedEvent.next({phase:Un?"error":"offline",error:new Error(""+(null==i?void 0:i.message)||i)}),Promise.reject(i))}))))}function qn(e,t,n){return o(this,arguments,void 0,(function*(e,t,n,{isInitialSync:r,cancelToken:i,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?Fe(e):[],p=d.map((t=>e.table(We(t.name)))),y=yield e.getPersistedSyncState(),h=u.isLoggedIn,v=h?function(e,t){const n=(null==t?void 0:t.syncedTables)||[];return Fe(e).filter((e=>!n.includes(e.name)))}(e,y):[];Tn(i);const m=v.length>0;if(m){if(s)return!0;yield e.transaction("rw",v,(e=>o(this,void 0,void 0,(function*(){e.idbtrans.disableChangeTracking=!0,e.idbtrans.disableAccessControl=!0,yield function(e,t,n){return o(this,void 0,void 0,(function*(){const r=new Set(n||[]);for(const n of e)"members"===n.name?yield n.toCollection().modify((e=>{r.has(e.realmId)||e.userId&&e.userId!==f.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!==f.userId||(e.owner=t.userId)})):yield n.toCollection().modify((e=>{e.realmId&&r.has(e.realmId)||(e.owner&&e.owner!==f.userId||(e.owner=t.userId),e.realmId&&e.realmId!==f.userId||(e.realmId=t.userId))})))}))}(v,u,null==y?void 0:y.realms)})))),Tn(i)}const[b,g,_,{yMessages:w,lastUpdateIds:k}]=yield e.transaction("r",e.tables,(()=>o(this,void 0,void 0,(function*(){const t=yield e.getPersistedSyncState(),r=yield e.$baseRevs.toArray();let s=yield ze(p,e);const a=yield function(e,t){return o(this,void 0,void 0,(function*(){const n=[],r={};for(const o of t)if(o.schema.yProps)for(const t of o.schema.yProps){const i=Nn(e),s=e.table(t.updatesTable),a=yield s.get(Ln),c=(null==a?void 0:a.unsentFrom)||1,l=(null==a?void 0:a.receivedUntil)||0,u=Math.min(c,l+1),d=yield Rn(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(Tn(i),m){const e=[...(null==y?void 0:y.realms)||[],...(null==y?void 0:y.inviteRealms)||[]],c=yield function(e,t,n,r){return o(this,void 0,void 0,(function*(){const i=`upload-${qe(8)}`;if(t.isLoggedIn&&e.length>0){const s=new Set(r||[]);return(yield Promise.all(e.map((e=>o(this,void 0,void 0,(function*(){const{extractKey:r}=e.core.schema.primaryKey;if(!r)return{table:e.name,muts:[]};const o=n[e.name],a=(null==o?void 0:o.generatedGlobalId)?e.filter((e=>{return r(e),!s.has(e.realmId||"")&&(t=r(e),!(n=null==o?void 0:o.idPrefix)||"string"==typeof t&&t.startsWith(n));var t,n})):e.filter((e=>{const t=r(e);return!s.has(e.realmId||"")&&Xe(t)})),c=yield a.toArray();if(c.length>0){const n={type:"upsert",values:c,keys:c.map(r),userId:t.userId,txid:i};return{table:e.name,muts:[n]}}return{table:e.name,muts:[]}})))))).filter((e=>e.muts.length>0))}return[]}))}(v,u,n,e);return Tn(i),s=s.concat(c),[s,t,r,a]}return[s,t,r,a]})))),S=b.some((e=>e.muts.some((e=>e.keys.length>0))))||w.some((e=>"u-c"===e.type));if(s)return S;if("push"===a&&!S)return!1;const x=Pn(b,null==g?void 0:g.latestRevisions),I=(null==g?void 0:g.clientIdentity)||Ye(16);Tn(i);const E=yield jn(b,w,g,_,e,l,n,I,u),{done:O,newSyncState:A}=yield e.transaction("rw",e.tables,(t=>o(this,void 0,void 0,(function*(){t.idbtrans.disableChangeTracking=!0,t.idbtrans.disableAccessControl=!0;for(const e of Object.keys(n))E.schema[e]&&(n[e]=E.schema[e]);yield e.$syncState.put(n,"schema");const r=yield ze(p,e,{since:x});for(const t of p){const n=Ve(t.name);if(r.some((e=>e.table===n&&e.muts.length>0))){if(x[n]){const r=x[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()])}Pn(r,x),yield Cn(e,n,x,E.serverRevision);const i=yield e.getPersistedSyncState();yield function(e,t,n){return o(this,void 0,void 0,(function*(){const r=new Set,o=new Set,i=n?n.realms:[],s=n?n.inviteRealms:[],a=new Set(t.realms),c=new Set(t.realms.concat(t.inviteRealms));for(const e of i)a.has(e)||(o.add(e),c.has(e)||r.add(e));for(const e of s.concat(i))c.has(e)||r.add(e);if(r.size>0||o.size>0){const t=Fe(e);for(const e of t){let t=["realms","members","roles"].includes(e.name)?r:o;0!==t.size&&(e.schema.indexes.some((e=>"realmId"===e.keyPath||Array.isArray(e.keyPath)&&"realmId"===e.keyPath[0]))?yield e.where("realmId").anyOf([...t]).delete():yield e.filter((e=>!!(null==e?void 0:e.realmId)&&t.has(e.realmId))).delete())}}if(o.size>0&&(null==n?void 0:n.yDownloadedRealms))for(const e of o)delete n.yDownloadedRealms[e]}))}(e,E,i);const s=i||{syncedTables:[],latestRevisions:{},realms:[],inviteRealms:[],clientIdentity:I};h&&(s.syncedTables=d.map((e=>e.name)).concat(v.map((e=>e.name)))),s.latestRevisions=x,s.remoteDbId=E.dbId,s.initiallySynced=!0,s.realms=E.realms,s.inviteRealms=E.inviteRealms,s.serverRevision=E.serverRevision,s.yServerRevision=E.serverRevision,s.timestamp=new Date,delete s.error;const a=Jn(E.changes,r);if(yield $n(a,e),E.yMessages){const{receivedUntils:t,resyncNeeded:n,yServerRevision:r}=yield Mn(E.yMessages,e);r&&(s.yServerRevision=r),yield function(e,t,n){return o(this,void 0,void 0,(function*(){var r,i,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!==(i=l[e])&&void 0!==i||(l[e]={}),l[e].receivedUntil=n;const u=Object.values(n.dx._dbSchema).filter((e=>e.yProps)).map((e=>e.yProps.map((e=>e.updatesTable)))).flat();for(const e of u){const t=l[e],r=null!==(s=null==t?void 0:t.unsentFrom)&&void 0!==s?s:1,i=null!==(c=null!==(a=null==t?void 0:t.receivedUntil)&&void 0!==a?a:(yield n.table(e).where("i").between(1,1/0).reverse().limit(1).primaryKeys())[0])&&void 0!==c?c:0;yield n.transaction("rw",e,(()=>o(this,void 0,void 0,(function*(){const t=yield n.table(e).get(Ln);t?(t.unsentFrom=Math.max(r,t.unsentFrom||1),t.receivedUntil=Math.max(i,t.receivedUntil||0),yield n.table(e).put(t)):yield n.table(e).add({i:Ln,unsentFrom:r,receivedUntil:i})}))))}}))}(k,t,e),n&&(s.yDownloadedRealms={})}return e.$syncState.put(s,"syncState"),{done:0===r.length,newSyncState:s}}))));if(!O)return yield An(e),yield qn(e,t,n,{isInitialSync:r,cancelToken:i});const j=Object.values(n).some((e=>{var t;return null===(t=e.yProps)||void 0===t?void 0:t.length})),T=!!E.yMessages;if(j&&T)try{yield Kn(e,l,A)}catch(e){}return e.syncCompleteEvent.next(),!1}))}function Jn(e,t){const n={};tt(n,e);const r={};return tt(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))Ge(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=Ye(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 Gn=10,Yn=1e4,Qn=1e3;function Xn(n){const r=[],i=new t.BehaviorSubject(!0),s=new t.BehaviorSubject(null);let a=!1,c=new Array(Gn).fill(0);return s.subscribe((()=>o(this,void 0,void 0,(function*(){if(!a&&r.length>0){a=!0,c.shift(),c.push(Date.now()),i.next(!1);try{yield function(){return o(this,void 0,void 0,(function*(){for(var i,s,a,c,l,u;r.length>0;){const d=r.shift();try{yield t.firstValueFrom(n.cloud.syncState.pipe(Ae((({phase:e})=>"in-sync"===e||"error"===e))));const r=n.cloud.persistedSyncState.value;if(!d)continue;switch(d.type){case"token-expired":const t=n.cloud.currentUser.value,f=yield zt(n.cloud.options.databaseUrl,t);yield n.table("$logins").update(t.userId,{accessToken:f.accessToken,accessTokenExpiration:f.accessTokenExpiration,claims:f.claims,license:f.license,data:f.data});break;case"realm-added":(null===(i=null==r?void 0:r.realms)||void 0===i?void 0:i.includes(d.realm))||(null===(s=null==r?void 0:r.inviteRealms)||void 0===s?void 0:s.includes(d.realm))||(yield n.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 n.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 n.cloud.sync({purpose:"pull",wait:!0}));break;case"realms-changed":yield n.cloud.sync({purpose:"pull",wait:!0});break;case"changes":if("error"===(null===(u=n.cloud.syncState.value)||void 0===u?void 0:u.phase)){$e(n,"pull");break}yield n.transaction("rw",n.dx.tables,(t=>o(this,void 0,void 0,(function*(){t.idbtrans.disableChangeTracking=!0,t.idbtrans.disableAccessControl=!0;const[r,o,i]=yield Promise.all([n.getSchema(),n.getPersistedSyncState(),n.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||$e(n,"pull"));if((yield e.waitFor(Me(o)))!==d.realmSetHash)return void $e(n,"pull");let s=[];if(i.isLoggedIn){const e=Fe(n).map((e=>n.table(We(e.name))));s=yield ze(e,n)}if(d.changes.length>0){const e=Jn(d.changes,s);yield $n(e,n)}o.latestRevisions=Pn(s,o.latestRevisions),o.serverRevision=d.newRev,yield Cn(n,r,o.latestRevisions,d.newRev),yield n.$syncState.put(o,"syncState")}))))}}catch(e){}}}))}()}finally{c[c.length-1]-c[0]<Yn&&(yield new Promise((e=>setTimeout(e,Qn)))),a=!1,i.next(!0)}}})))),{enqueue:function(e){r.push(e),s.next(null)},readyToServe:i}}const Zn=new WeakMap,er={members:"@id, [userId+realmId], [email+realmId], realmId",roles:"[realmId+name]",realms:"@realmId",$jobs:"",$syncState:"",$baseRevs:"[tableName+clientRev]",$logins:"claims.sub, lastLogin"};let tr=0;function nr(e){"vip"in e&&(e=e.vip);let n=Zn.get(e.cloud);if(!n){const r=new t.Subject;let o=new m(`syncstatechanged-${e.name}`),i=new m(`synccomplete-${e.name}`);r.id=++tr;let s=!1;n={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:()=>n.$logins.toArray().then((e=>e.find((e=>e.isLoggedIn))||f)),getPersistedSyncState:()=>n.$syncState.get("syncState"),getSchema:()=>n.$syncState.get("schema").then((e=>{if(e)for(const r of n.tables)r.schema.primKey&&r.schema.primKey.keyPath&&e[r.name]&&(e[r.name].primaryKey="string"==typeof(t=r.schema.primKey.keyPath)?t:t?"["+[].join.call(t,"+")+"]":"");var t;return e})),getOptions:()=>n.$syncState.get("options"),setInitiallySynced(e){s=e},reconfigure(){o=new m(`syncstatechanged-${e.name}`),i=new m(`synccomplete-${e.name}`)}};Object.assign(n,a),n.messageConsumer=Xn(n),n.messageProducer=new t.Subject,Zn.set(e.cloud,n)}return n}const rr=new WeakMap;class or{constructor(e,t){rr.set(this,e),Object.assign(this,t)}static load(e,t){return e.table("$logins").get(t).then((n=>new or(e,n||{userId:t,claims:{sub:t},lastLogin:new Date(0)})))}save(){return o(this,void 0,void 0,(function*(){rr.get(this).table("$logins").put(this)}))}}function ir(e,n){return t.firstValueFrom(t.from(e).pipe(t.filter(n)))}function sr(e){return o(this,void 0,void 0,(function*(){const t=yield ar(e);if(t){if(!(yield function(e,t,n){return o(this,void 0,void 0,(function*(){const r=[{type:"warning",messageCode:"LOGOUT_CONFIRMATION",message:"{numUnsyncedChanges} unsynced changes will get lost!\n Logout anyway?",messageParams:{currentUserId:t,numUnsyncedChanges:n.toString()}}];return yield Mt(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 ar(e,{deleteUnsyncedData:!0})}}))}function ar(e){return o(this,arguments,void 0,(function*(e,{deleteUnsyncedData:t=!1}={}){const[n,r]=yield e.dx.transaction("rw",e.dx.tables,(n=>o(this,void 0,void 0,(function*(){const r=n.idbtrans;r.disableChangeTracking=!0,r.disableAccessControl=!0;const o=n.storeNames.filter((e=>e.endsWith("_mutations"))),i=(yield Promise.all(o.map((e=>n.table(e).count())))).reduce(((e,t)=>e+t),0);if(i>0&&!t)return[i,!1];e.$syncState.delete("syncState");for(const t of e.dx.tables)"$jobs"!==t.name&&"$syncState"!==t.name&&t.clear();return[i,!0]}))));return r&&(yield ir(e.cloud.currentUser,(e=>e.userId===f.userId)),yield e.cloud.sync({purpose:"pull",wait:!0})),n}))}function cr(e,...t){globalThis.console[e](...t)}function lr(e,t){return o(this,void 0,void 0,(function*(){var n;const r=yield e.getCurrentUser(),i=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 Kt(e),!1}const s=new or(e,{claims:{},lastLogin:new Date(0)});return yield Ht(e.cloud.options.databaseUrl,s,e.cloud.options.fetchTokens||function(e){const{userInteraction:t}=e.cloud;return function(n){return o(this,arguments,void 0,(function*({public_key:n,hints:r}){var o;let i;const s=null===(o=e.cloud.options)||void 0===o?void 0:o.databaseUrl;if(!s)throw new Error("No database URL given.");if("demo"===(null==r?void 0:r.grant_type))i={demo_user:yield Wt(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 Wt(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 Ft(t,"Token request failed",{type:"error",messageCode:"GENERIC_ERROR",message:e,messageParams:{}}).catch((()=>{})),new xn(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 Vt(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 Vt(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 xn(o,e)}return yield o.json()}throw new Error(`Unexpected response from ${s}/token`)}))}}(e),e.cloud.userInteraction,t),i!==f.userId&&s.userId!==i&&(yield sr(e)),yield function(e,t){return o(this,void 0,void 0,(function*(){const n=e.table("$logins");yield e.transaction("rw",n,(e=>o(this,void 0,void 0,(function*(){const e=yield n.toArray();yield Promise.all(e.filter((e=>e.userId!==t.userId&&e.isLoggedIn)).map((e=>(e.isLoggedIn=!1,n.put(e))))),t.isLoggedIn=!0,t.lastLogin=new Date;try{yield t.save()}catch(e){try{"DataCloneError"===e.name&&(cr("debug","Login context property names:",Object.keys(t)),cr("debug","Login context property names:",Object.keys(t)),cr("debug","Login context:",t),cr("debug","Login context JSON:",JSON.stringify(t)))}catch(e){}throw e}})))),yield ir(e.cloud.currentUser,(e=>e.userId===t.userId))}))}(e,s),$e(e,"pull"),s.userId!==i}))}const ur="undefined"!=typeof InstallTrigger,dr="undefined"!=typeof navigator&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\/|Edge\//.test(navigator.userAgent),fr=dr?[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]:NaN,pr=dr&&fr<=605||ur,yr="undefined"!=typeof self&&"clients"in self&&!self.document;const{toString:hr}={};function vr(e){return hr.call(e).slice(8,-1)}function mr(e,t){var n;return"delete"===t.type?t.keys:(null===(n=t.keys)||void 0===n?void 0:n.slice())||t.values.map(e.extractKey)}const br=/b|c|d|f|g|h|j|k|l|m|n|p|q|r|s|t|v|x|y|z/i;let gr=0;function _r(e,t){const n=new Uint8Array(18),r=new Uint8Array(n.buffer,0,6),o=Date.now();gr>=o?++gr:gr=o,r[0]=gr/1099511627776,r[1]=gr/4294967296,r[2]=gr/16777216,r[3]=gr/65536,r[4]=gr/256,r[5]=gr;const i=new Uint8Array(n.buffer,6);crypto.getRandomValues(i);return e+on(new Uint8Array(n.buffer))+(t||"")}function wr(t){return{stack:"dbcore",name:"idGenerationMiddleware",level:1,create:n=>Object.assign(Object.assign({},n),{table:r=>{const o=n.table(r);return Object.assign(Object.assign({},o),{mutate:n=>{var i,s;const a=n.trans;if("versionchange"===a.mode&&(a.disableChangeTracking=!0,a.disableAccessControl=!0),a.disableChangeTracking)return o.mutate(n);if("add"===n.type||"put"===n.type){const a=null===(i=t.cloud.schema)||void 0===i?void 0:i[r];if(null==a?void 0:a.generatedGlobalId){if((null===(s=t.cloud.options)||void 0===s?void 0:s.databaseUrl)&&!t.initiallySynced){const e=mr(o.schema.primaryKey,n);return o.getMany({keys:e,trans:n.trans,cache:"immutable"}).then((t=>{if(t.length<e.length)throw new Error("Unable to create new objects without an initial sync having been performed.");return o.mutate(n)}))}return function(n,i){let s=null;const a=mr(o.schema.primaryKey,n);return a.forEach(((c,l)=>{if(void 0===c){const r=n.values[l].realmId||t.cloud.currentUserId,c=r.substr(r.length-3);a[l]=_r(i,c),o.schema.primaryKey.outbound||(s||(s=n.values.slice()),s[l]=e.deepClone(s[l]),e.setByKeyPath(s[l],o.schema.primaryKey.keyPath,a[l]))}else if("string"!=typeof c||!c.startsWith(i)&&!c.startsWith("#"+i))throw new e.ConstraintError(`The ID "${c}" is not valid for table "${r}". Primary '@' keys requires the key to be prefixed with "${i}" (or "#${i}).\nIf you want to generate IDs programmatically, remove '@' from the schema to get rid of this constraint. Dexie Cloud supports custom IDs as long as they are random and globally unique.`)})),o.mutate(Object.assign(Object.assign({},n),{keys:a,values:s||n.values}))}(n,a.idPrefix)}if(null==a?void 0:a.markedForSync){mr(o.schema.primaryKey,n).forEach(((t,n)=>{if(!Xe(t)){const n=Array.isArray(t)?t.map(vr).join(","):vr(t);throw new e.ConstraintError(`Invalid primary key type ${n} for table ${r}. Tables marked for sync has primary keys of type string or Array of string (and optional numbers)`)}}))}}return o.mutate(n)}})}})}}let kr=0;function Sr(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 xr(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 Ir=new t.BehaviorSubject(new Set);function Er(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 Or({currentUserObservable:t,db:n}){return{stack:"dbcore",name:"MutationTrackingMiddleware",level:1,create:r=>{const o=new Set(r.schema.tables.map((e=>e.name))),i=r.schema.tables.filter((e=>!/^\$/.test(e.name))),s=new Map;for(const e of i){const t=`$${e.name}_mutations`;o.has(t)&&s.set(e.name,r.table(t))}return Object.assign(Object.assign({},r),{transaction:(e,o)=>{let i;if("readwrite"===o){const t=e.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=>We(e)));i=r.transaction([...e,...t],o)}else i=r.transaction(e,o);if("readwrite"===o){i.txid=qe(16),i.opCount=0,i.currentUser=t.value,Ir.value.add(i),Ir.next(Ir.value);const e=()=>{i.removeEventListener("complete",r),i.removeEventListener("error",e),i.removeEventListener("abort",e),Ir.value.delete(i),Ir.next(Ir.value)},r=()=>{i.mutationsAdded&&!Er(n)&&$e(n,"push"),e()};i.addEventListener("complete",r),i.addEventListener("error",e),i.addEventListener("abort",e)}return i},table:t=>{const o=r.table(t);if(/^\$/.test(t))return t.endsWith("_mutations")?Object.assign(Object.assign({},o),{mutate:e=>("add"!==e.type&&"put"!==e.type||(e.trans.mutationsAdded=!0),o.mutate(e))}):"$logins"===t?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:i}=o,a=s.get(t);return a?function(e){const t="$lock"+ ++kr;return Object.assign(Object.assign({},e),{count:Sr(e.count,t),get:Sr(e.get,t),getMany:Sr(e.getMany,t),openCursor:Sr(e.openCursor,t),query:Sr(e.query,t),mutate:xr(e.mutate,t)})}(Object.assign(Object.assign({},o),{mutate:e=>{var r,s,a;const l=e.trans;return l.txid?l.disableChangeTracking?o.mutate(e):(null===(s=null===(r=n.cloud.schema)||void 0===r?void 0:r[t])||void 0===s?void 0:s.markedForSync)&&(null===(a=l.currentUser)||void 0===a?void 0:a.isLoggedIn)?"deleteRange"===e.type?o.query({query:{range:e.range,index:i.primaryKey},trans:e.trans,values:!1}).then((t=>c({type:"delete",keys:t.result,trans:e.trans,criteria:{index:null,range:e.range}}))):c(e):o.mutate(e):o.mutate(e)}})):o;function c(r){var s,c;const l=r.trans,u=null===(c=null===(s=n.cloud.options)||void 0===s?void 0:s.unsyncedProperties)||void 0===c?void 0:c[t],{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((t=>{var n;const{numFailures:o,failures:s}=t;let c="delete"===p?r.keys:t.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)=>!s[t])),v=v.filter(((e,t)=>!s[t]))),u){if(v=v.map((e=>{const t=Object.assign({},e);for(const e of u)delete t[e];return t})),m&&(m=h(m),0===Object.keys(m).length))return t;if(b){let t=b.changeSpecs.map(h),n={keys:[],changeSpecs:[]};const r=new e.RangeSet;let o=!1;for(let e=0,i=t.length;e<i;++e)Object.keys(t[e]).length>0?(n.keys.push(b.keys[e]),n.changeSpecs.push(t[e]),r.addKey(b.keys[e])):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===i.primaryKey.keyPath?null:r.criteria.index}):void 0;if(u&&(null==_?void 0:_.index)){const e=null===(n=i.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,t))):t}))}}})}}}function Ar(e,t){return function(n,r){var o;const i=Object.assign(Object.assign({},er),n);Object.keys(er).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=er[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(er[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)(br.test(e[t])||(r=e[t])>="A"&&r<="Z")&&(n+=e[t].toLowerCase());for(var r,o,i;t.has(n);){if(/\d/g.test(n)){if(n=n.substr(0,n.length-1)+(n[n.length-1]+1),!(n.length>3))continue;n=n.substr(0,3)}else if(n.length<3){n+="2";continue}let e=1,r=n;for(;t.has(r)&&e<8;)o=n,r=(1&(i=e)?o[0].toUpperCase():o[0].toLowerCase())+(2&i?o[1].toUpperCase():o[1].toLowerCase())+(4&i?o[2].toUpperCase():o[2].toLowerCase()),++e;if(e<8)n=r;else{let e=n.charCodeAt(2)+1&127;n=n.substr(0,2)+String.fromCharCode(e)}}return n}(e,a),a.add(n.idPrefix)),/^\$/.test(e)||(i[`$${e}_mutations`]="++rev",n.markedForSync=!0),n.deleted&&(n.deleted=!1)):(n.deleted=!0,n.markedForSync=!1,i[`$${e}_mutations`]=null)}));const c=e.call(this,i,r);for(const[e,t]of Object.entries(r))if(null===(o=t.yProps)||void 0===o?void 0:o.length){const n=s[e];n&&(n.yProps=t.yProps.map((e=>e.prop)))}return c}}function jr(e,t,n){return"undefined"!=typeof navigator&&navigator.locks?navigator.locks.request(e.name+"|"+t,(()=>n())):n()}const Tr=new t.BehaviorSubject(!0),Ur=new t.BehaviorSubject(!0);Tr.pipe(Ue((e=>e?t.of(!0):t.of(!1).pipe(Ie(2e4)))),Ee()).subscribe(Ur);const Cr="undefined"!=typeof document?t.fromEvent(document,"visibilitychange"):t.of({}),Pr=Cr.pipe(Ae((()=>"hidden"===document.visibilityState))),Dr=Cr.pipe(Ae((()=>"visible"===document.visibilityState))),$r="undefined"!=typeof window?t.merge(Dr,t.fromEvent(window,"mousedown"),t.fromEvent(window,"mousemove"),t.fromEvent(window,"keydown"),t.fromEvent(window,"wheel"),t.fromEvent(window,"touchmove")):t.of({});"undefined"!=typeof document&&t.merge(t.of(!0),Pr,$r).pipe(me((()=>"visible"===document.visibilityState)),Ce((e=>{Tr.value!==e&&Tr.next(e)})),Ue((e=>e?t.of(0).pipe(Ie(16e4),Ce((()=>Tr.next(!1)))):t.of(0)))).subscribe((()=>{}));class Lr extends Error{constructor(){super(...arguments),this.name="TokenExpiredError"}}function Rr(t){var n,r;if(!(null===(n=t.cloud.options)||void 0===n?void 0:n.awarenessProtocol))throw new e.MissingAPIError('awarenessProtocol was not provided to db.cloud.configure(). Please import * as awarenessProtocol from "y-protocols/awareness".');return null===(r=t.cloud.options)||void 0===r?void 0:r.awarenessProtocol}const Nr=new WeakMap,Br=new WeakMap;function Mr(e){let n=Br.get(e);return n||(n=new t.Subject,Br.set(e,n)),n}class Fr extends t.Observable{constructor(e,t,n,r,o,i,s,a){super((c=>new Vr(e,t,n,r,o,a,c,i,s)))}}let Wr=0;class Vr extends t.Subscription{constructor(e,t,n,r,o,i,s,a,c){super((()=>this.teardown())),this.id=++Wr,this.subscriptions=new Set,this.reconnecting=!1,this.db=e,this.databaseUrl=e.cloud.options.databaseUrl,this.rev=t,this.yrev=n,this.realmSetHash=r,this.clientIdentity=o,this.user=i,this.subscriber=s,this.lastUserActivity=new Date,this.messageProducer=a,this.webSocketStatus=c,this.connect()}teardown(){this.disconnect()}disconnect(){if(this.webSocketStatus.next("disconnected"),this.pinger&&(clearInterval(this.pinger),this.pinger=null),this.ws)try{this.ws.close()}catch(e){}this.ws=null;for(const e of this.subscriptions)e.unsubscribe();this.subscriptions.clear()}reconnect(){if(!this.reconnecting){this.reconnecting=!0;try{this.disconnect()}catch(e){}this.connect().catch((()=>{})).then((()=>this.reconnecting=!1))}}connect(){return o(this,void 0,void 0,(function*(){if(this.lastServerActivity=new Date,this.pauseUntil&&this.pauseUntil>new Date)return;if(this.ws)throw new Error("Called connect() when a connection is already open");if(!this.databaseUrl)throw new Error("Cannot connect without a database URL");if(this.closed)return;const n=this.user.accessTokenExpiration;if(n&&n<new Date)return void this.subscriber.error(new Lr);this.webSocketStatus.next("connecting"),this.pinger=setInterval((()=>o(this,void 0,void 0,(function*(){if(this.closed)this.teardown();else if(this.ws)try{this.ws.send(JSON.stringify({type:"ping"})),setTimeout((()=>{this.pinger&&(this.closed?this.teardown():this.lastServerActivity<new Date(Date.now()-2e4)&&this.reconnect())}),2e4)}catch(e){this.reconnect()}else this.reconnect()}))),3e4);const r=new URL(this.databaseUrl);r.protocol="http:"===r.protocol?"ws":"wss";const i=new URLSearchParams;if(this.subscriber.closed)return;i.set("v","2"),this.rev&&i.set("rev",this.rev),this.yrev&&i.set("yrev",this.yrev),i.set("realmsHash",this.realmSetHash),i.set("clientId",this.clientIdentity),i.set("dxcv",this.db.cloud.version),this.user.accessToken&&i.set("token",this.user.accessToken);const s=this.ws=new WebSocket(`${r}/changes?${i}`);s.binaryType="arraybuffer",s.onclose=e=>{this.pinger&&this.reconnect()},s.onmessage=t=>{if(this.pinger){this.lastServerActivity=new Date;try{const n="string"==typeof t.data?kn.parse(t.data):function(e){const t=new At(e),n=Pt(t);if("outdated-server-rev"===n)return{type:n};if("y-complete-sync-done"===n)return{type:n,yServerRev:Pt(t)};const r=Pt(t),o=Pt(t);switch(n){case"u-ack":case"u-reject":return{type:n,table:r,prop:o,i:Number($t(t))};default:{const e=Rt(t);switch(n){case"in-sync":case"doc-close":return{type:n,table:r,prop:o,k:e};case"aware":return{type:n,table:r,prop:o,k:e,u:Tt(t)};case"doc-open":return{type:n,table:r,prop:o,k:e,serverRev:Rt(t),sv:Rt(t)};case"sv":return{type:n,table:r,prop:o,k:e,sv:Tt(t)};case"u-c":return{type:n,table:r,prop:o,k:e,u:Tt(t),i:Number($t(t))};case"u-s":return{type:n,table:r,prop:o,k:e,u:Tt(t),r:t.pos<t.arr.length&&Pt(t)||void 0};default:throw new TypeError(`Unknown message type: ${n}`)}}}}(new Uint8Array(t.data));if("error"===n.type)throw new Error(`Error message from dexie-cloud: ${n.error}`);if("aware"===n.type){const t=e.DexieYProvider.getDocCache(this.db.dx).find(n.table,n.k,n.prop);if(t){const e=(e=>Nr.get(e))(t);if(e){Rr(this.db).applyAwarenessUpdate(e,n.u,"server")}}}else if("pong"===n.type);else if("doc-open"===n.type){const t=e.DexieYProvider.getDocCache(this.db.dx).find(n.table,n.k,n.prop);t&&Mr(t).next()}else"u-ack"===n.type||"u-reject"===n.type||"u-s"===n.type||"in-sync"===n.type||"outdated-server-rev"===n.type||"y-complete-sync-done"===n.type?Mn([n],this.db).then((e=>o(this,[e],void 0,(function*({resyncNeeded:e,yServerRevision:t,receivedUntils:r}){if(t&&(yield this.db.$syncState.update("syncState",{yServerRevision:t})),"u-s"===n.type&&r){const e=Bn(this.db,n.table,n.prop);if(e){const t=r[e.name];t&&(yield e.update(Ln,{receivedUntil:t}))}}e&&(yield this.db.cloud.sync({purpose:"pull",wait:!0}))})))):this.subscriber.next(n)}catch(e){this.subscriber.error(e)}}};try{let n=!1;yield new Promise(((e,t)=>{s.onopen=t=>{n=!0,e(null)},s.onerror=e=>{if(n)this.reconnect();else{const n=e.error||new Error("WebSocket Error");this.subscriber.error(n),this.webSocketStatus.next("error"),t(n)}}})),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(kn.stringify(e))):null===(n=this.ws)||void 0===n||n.send(xt(e)))}))),this.user.isLoggedIn&&!Er(this.db)&&this.subscriptions.add(function(n){const r=He(n.tables.filter((e=>{var t,r;return(null===(r=null===(t=n.cloud.schema)||void 0===t?void 0:t[e.name])||void 0===r?void 0:r.markedForSync)&&e.schema.yProps})).map((e=>e.schema.yProps.map((t=>({table:e.name,ydocProp:t.prop,updatesTable:t.updatesTable}))))));return t.merge(...r.map((({table:r,ydocProp:i,updatesTable:s})=>{const a=n.table(s);return t.from(a.get(Ln)).pipe(t.switchMap((n=>{let s=(null==n?void 0:n.unsentFrom)||1;return t.from(e.liveQuery((()=>o(this,void 0,void 0,(function*(){return(yield Rn(a,s)).filter((e=>e.f&&1&e.f)).map((e=>({type:"u-c",table:r,prop:i,k:e.k,u:e.u,i:e.i})))}))))).pipe(t.tap((e=>{e.length>0&&(s=e.at(-1).i+1)})))})))}))).pipe(t.mergeMap((e=>e)))}(this.db).subscribe(this.db.messageProducer))}catch(e){this.pauseUntil=new Date(Date.now()+6e4)}}))}}class Kr extends Error{constructor(e){super("expired"===e?"License expired":"deactivated"===e?"User deactivated":"Invalid license"),this.name="InvalidLicenseError",e&&(this.license=e)}}function Hr(e){return o(this,void 0,void 0,(function*(){var e;yield(e=3e3,new Promise((t=>setTimeout(t,e)))),yield t.firstValueFrom($r)}))}function zr(e){return o(this,void 0,void 0,(function*(){var t;return!(!(null===(t=e.cloud.options)||void 0===t?void 0:t.databaseUrl)||!e.cloud.schema)&&(yield zn(e,e.cloud.options,e.cloud.schema,{justCheckIfNeeded:!0}))}))}const qr=new WeakMap;function Jr(e,t,n,r){const i=qr.get(e);if(i){if(i.pull||"push"===(null==r?void 0:r.purpose))return i.promise;{let o=!1;const s=e.cloud.syncState.subscribe((e=>{"pulling"===e.phase&&(o=!0)}));return i.promise.then((()=>{s.unsubscribe()})).catch((e=>(s.unsubscribe(),Promise.reject(e)))).then((()=>{if(!o)return Jr(e,t,n,r)}))}}const s=function(){return o(this,void 0,void 0,(function*(){try{yield An(e),yield jr(e,Hn,(()=>zn(e,t,n,r))),qr.delete(e)}catch(t){throw qr.delete(e),t}}))}();return qr.set(e,{promise:s,pull:"push"!==(null==r?void 0:r.purpose)}),s}const Gr=1e3;function Yr(e,t,n){let r=null,o={cancelled:!1},i=0,s=0;function a(r=1){setTimeout((()=>{const d=c?"pull":"push";s=Date.now(),Jr(e,t,n,{cancelToken:o,retryImmediatelyOnFetchError:!0,purpose:d}).then((()=>{if(o.cancelled)f();else if(c||l)return c=!1,l=!1,a();u=!1,i=0,s=0})).catch((e=>{if(o.cancelled)f(),u=!1,i=0,s=0;else if(r<5){const e=[0,20,40,300,900][r]*Gr;i=Date.now()+e,s=0,setTimeout((()=>a(r+1)),e)}else u=!1,i=0,s=0}))}),0)}let c=!1,l=!1,u=!1;const d=e=>{o.cancelled||("pull"===e&&(c=!0),"push"===e&&(l=!0),u?i||s>0&&Date.now():(u=!0,a()))},f=()=>{o.cancelled=!0,r&&r.unsubscribe()};return{start:()=>{r=e.localSyncEvent.subscribe((({purpose:e})=>{d(e||"pull")}))},stop:f}}function Qr(e,t){if(e&&t&&t.unsyncedTables)for(const n of t.unsyncedTables)e[n]&&(e[n].markedForSync=!1)}var Xr,Zr,eo,to,no,ro={},oo=[],io=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function so(e,t){for(var n in t)e[n]=t[n];return e}function ao(e){var t=e.parentNode;t&&t.removeChild(e)}function co(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?Xr.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 lo(e,s,r,o,null)}function lo(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?++eo:o};return null==o&&null!=Zr.vnode&&Zr.vnode(i),i}function uo(e){return e.children}function fo(e,t){this.props=e,this.context=t}function po(e,t){if(null==t)return e.__?po(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?po(e):null}function yo(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 yo(e)}}function ho(e){(!e.__d&&(e.__d=!0)&&to.push(e)&&!vo.__r++||no!==Zr.debounceRendering)&&((no=Zr.debounceRendering)||setTimeout)(vo)}function vo(){for(var e;vo.__r=to.length;)e=to.sort((function(e,t){return e.__v.__b-t.__v.__b})),to=[],e.some((function(e){var t,n,r,o,i,s;e.__d&&(i=(o=(t=e).__v).__e,(s=t.__P)&&(n=[],(r=so({},o)).__v=o.__v+1,xo(s,o,r,t.__n,void 0!==s.ownerSVGElement,null!=o.__h?[i]:null,n,null==i?po(o):i,o.__h),Io(n,o),o.__e!=i&&yo(o)))}))}function mo(e,t,n,r,o,i,s,a,c,l){var u,d,f,p,y,h,v,m=r&&r.__k||oo,b=m.length;for(n.__k=[],u=0;u<t.length;u++)if(null!=(p=n.__k[u]=null==(p=t[u])||"boolean"==typeof p?null:"string"==typeof p||"number"==typeof p||"bigint"==typeof p?lo(null,p,null,null,p):Array.isArray(p)?lo(uo,{children:p},null,null,null):p.__b>0?lo(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}xo(e,p,f=f||ro,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=bo(p,c,e):c=go(e,p,f,m,y,c),"function"==typeof n.type&&(n.__d=c)):c&&f.__e==c&&c.parentNode!=e&&(c=po(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=po(r,u+1)),Ao(m[u],m[u]));if(v)for(u=0;u<v.length;u++)Oo(v[u],v[++u],v[++u])}function bo(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?bo(r,t,n):go(n,r,r,o,r.__e,t));return t}function go(e,t,n,r,o,i){var s,a,c;if(void 0!==t.__d)s=t.__d,t.__d=void 0;else if(null==n||o!=i||null==o.parentNode)e:if(null==i||i.parentNode!==e)e.appendChild(o),s=null;else{for(a=i,c=0;(a=a.nextSibling)&&c<r.length;c+=2)if(a==o)break e;e.insertBefore(o,i),s=i}return void 0!==s?s:o.nextSibling}function _o(e,t,n){"-"===t[0]?e.setProperty(t,n):e[t]=null==n?"":"number"!=typeof n||io.test(t)?n:n+"px"}function wo(e,t,n,r,o){var i;e:if("style"===t)if("string"==typeof n)e.style.cssText=n;else{if("string"==typeof r&&(e.style.cssText=r=""),r)for(t in r)n&&t in n||_o(e.style,t,"");if(n)for(t in n)r&&n[t]===r[t]||_o(e.style,t,n[t])}else if("o"===t[0]&&"n"===t[1])i=t!==(t=t.replace(/Capture$/,"")),t=t.toLowerCase()in e?t.toLowerCase().slice(2):t.slice(2),e.l||(e.l={}),e.l[t+i]=n,n?r||e.addEventListener(t,i?So:ko,i):e.removeEventListener(t,i?So:ko,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 ko(e){this.l[e.type+!1](Zr.event?Zr.event(e):e)}function So(e){this.l[e.type+!0](Zr.event?Zr.event(e):e)}function xo(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=Zr.__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 fo(v,b),u.constructor=k,u.render=jo),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=so({},u.__s)),so(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=Zr.__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=so(so({},r),u.getChildContext())),d||null==u.getSnapshotBeforeUpdate||(y=u.getSnapshotBeforeUpdate(f,p)),w=null!=l&&l.type===uo&&null==l.key?l.props.children:l,mo(e,Array.isArray(w)?w:[w],t,n,r,o,i,s,a,c),u.base=t.__e,t.__h=null,u.__h.length&&s.push(u),h&&(u.__E=u.__=null),u.__e=!1}else null==i&&t.__v===n.__v?(t.__k=n.__k,t.__e=n.__e):t.__e=Eo(n.__e,t,n,r,o,i,s,c);(l=Zr.diffed)&&l(t)}catch(e){t.__v=null,(c||null!=i)&&(t.__e=a,t.__h=!!c,i[i.indexOf(a)]=null),Zr.__e(e,t,n)}}function Io(e,t){Zr.__c&&Zr.__c(t,e),e.some((function(t){try{e=t.__h,t.__h=[],e.some((function(e){e.call(t)}))}catch(e){Zr.__e(e,t.__v)}}))}function Eo(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&&Xr.call(e.childNodes),l=(d=n.props||ro).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||wo(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]||wo(e,i,t[i],n[i],r)}(e,f,d,o,a),u)t.__k=[];else if(y=t.props.children,mo(e,Array.isArray(y)?y:[y],t,n,r,o&&"foreignObject"!==p,i,s,i?i[0]:n.__k&&po(n,0),a),null!=i)for(y=i.length;y--;)null!=i[y]&&ao(i[y]);a||("value"in f&&void 0!==(y=f.value)&&(y!==e.value||"progress"===p&&!y||"option"===p&&y!==d.value)&&wo(e,"value",y,d.value,!1),"checked"in f&&void 0!==(y=f.checked)&&y!==e.checked&&wo(e,"checked",y,d.checked,!1))}return e}function Oo(e,t,n){try{"function"==typeof e?e(t):e.current=t}catch(e){Zr.__e(e,n)}}function Ao(e,t,n){var r,o;if(Zr.unmount&&Zr.unmount(e),(r=e.ref)&&(r.current&&r.current!==e.__e||Oo(r,null,t)),null!=(r=e.__c)){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(e){Zr.__e(e,t)}r.base=r.__P=null}if(r=e.__k)for(o=0;o<r.length;o++)r[o]&&Ao(r[o],t,"function"!=typeof e.type);n||null==e.__e||ao(e.__e),e.__e=e.__d=void 0}function jo(e,t,n){return this.constructor(e,n)}function To(e,t,n){var r,o,i;Zr.__&&Zr.__(e,t),o=(r="function"==typeof n)?null:n&&n.__k||t.__k,i=[],xo(t,e=(!r&&n||t).__k=co(uo,null,[e]),o||ro,ro,void 0!==t.ownerSVGElement,!r&&n?[n]:o?null:t.firstChild?Xr.call(t.childNodes):null,i,!r&&n?n:o?o.__e:t.firstChild,r),Io(i,e)}Xr=oo.slice,Zr={__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}},eo=0,fo.prototype.setState=function(e,t){var n;n=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=so({},this.state),"function"==typeof e&&(e=e(so({},n),this.props)),e&&so(n,e),null!=e&&this.__v&&(t&&this.__h.push(t),ho(this))},fo.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),ho(this))},fo.prototype.render=uo,to=[],vo.__r=0;const Uo={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 Co({children:e,className:t}){return co("div",{className:t},co("div",{style:Uo.Darken}),co("div",{style:Uo.DialogOuter},co("div",{style:Uo.DialogInner},e)))}var Po,Do,$o,Lo,Ro=0,No=[],Bo=[],Mo=Zr.__b,Fo=Zr.__r,Wo=Zr.diffed,Vo=Zr.__c,Ko=Zr.unmount;function Ho(e,t){Zr.__h&&Zr.__h(Do,e,Ro||t),Ro=0;var n=Do.__H||(Do.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({__V:Bo}),n.__[e]}function zo(e){return Ro=1,function(e,t,n){var r=Ho(Po++,2);if(r.t=e,!r.__c&&(r.__=[n?n(t):Zo(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=Do,!Do.u)){Do.u=!0;var o=Do.shouldComponentUpdate;Do.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.__}(Zo,e)}function qo(e){return Ro=5,function(e,t){var n=Ho(Po++,7);return Xo(n.__H,t)?(n.__V=e(),n.i=t,n.__h=e,n.__V):n.__}((function(){return{current:e}}),[])}function Jo(){for(var e;e=No.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(Yo),e.__H.__h.forEach(Qo),e.__H.__h=[]}catch(t){e.__H.__h=[],Zr.__e(t,e.__v)}}Zr.__b=function(e){Do=null,Mo&&Mo(e)},Zr.__r=function(e){Fo&&Fo(e),Po=0;var t=(Do=e.__c).__H;t&&($o===Do?(t.__h=[],Do.__h=[],t.__.forEach((function(e){e.__N&&(e.__=e.__N),e.__V=Bo,e.__N=e.i=void 0}))):(t.__h.forEach(Yo),t.__h.forEach(Qo),t.__h=[])),$o=Do},Zr.diffed=function(e){Wo&&Wo(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(1!==No.push(t)&&Lo===Zr.requestAnimationFrame||((Lo=Zr.requestAnimationFrame)||function(e){var t,n=function(){clearTimeout(r),Go&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,100);Go&&(t=requestAnimationFrame(n))})(Jo)),t.__H.__.forEach((function(e){e.i&&(e.__H=e.i),e.__V!==Bo&&(e.__=e.__V),e.i=void 0,e.__V=Bo}))),$o=Do=null},Zr.__c=function(e,t){t.some((function(e){try{e.__h.forEach(Yo),e.__h=e.__h.filter((function(e){return!e.__||Qo(e)}))}catch(n){t.some((function(e){e.__h&&(e.__h=[])})),t=[],Zr.__e(n,e.__v)}})),Vo&&Vo(e,t)},Zr.unmount=function(e){Ko&&Ko(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.forEach((function(e){try{Yo(e)}catch(e){t=e}})),t&&Zr.__e(t,n.__v))};var Go="function"==typeof requestAnimationFrame;function Yo(e){var t=Do,n=e.__c;"function"==typeof n&&(e.__c=void 0,n()),Do=t}function Qo(e){var t=Do;e.__c=e.__(),Do=t}function Xo(e,t){return!e||e.length!==t.length||t.some((function(t,n){return t!==e[n]}))}function Zo(e,t){return"function"==typeof t?t(e):t}function ei({title:e,type:t,alerts:n,fields:r,submitLabel:o,cancelLabel:i,onCancel:s,onSubmit:a}){const[c,l]=zo({}),u=qo(null);return function(e,t){var n=Ho(Po++,4);!Zr.__s&&Xo(n.__H,t)&&(n.__=e,n.i=t,Do.__h.push(n))}((()=>{var e;return null===(e=u.current)||void 0===e?void 0:e.focus()}),[]),co(Co,{className:"dxc-login-dlg"},co(uo,null,co("h3",{style:Uo.WindowHeader},e),n.map((e=>co("p",{style:Uo.Alert[e.type]},function({message:e,messageCode:t,messageParams:n}){return e.replace(/\{\w+\}/gi,(e=>n[e.substring(1,e.length-1)]))}(e)))),co("form",{onSubmit:e=>{e.preventDefault(),a(c)}},Object.entries(r).map((([e,{type:t,label:n,placeholder:r}],o)=>co("label",{style:Uo.Label,key:o},n?`${n}: `:"",co("input",{ref:0===o?u:void 0,type:t,name:e,autoComplete:"on",style:Uo.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)}})))))),co("div",{style:Uo.ButtonsDiv},co(uo,null,co("button",{type:"submit",style:Uo.Button,onClick:()=>a(c)},o),i&&co("button",{style:Uo.Button,onClick:s},i))))}class ti extends fo{constructor(e){super(e),this.observer=e=>this.setState({userInteraction:e}),this.state={userInteraction:void 0}}componentDidMount(){this.subscription=t.from(this.props.db.cloud.userInteraction).subscribe(this.observer)}componentWillUnmount(){this.subscription&&(this.subscription.unsubscribe(),delete this.subscription)}render(e,{userInteraction:t}){return t?co(ei,Object.assign({},t)):null}}function ni(e){const t=new WeakMap;return n=>{let r=t.get(n);return r||(r=e(n),t.set(n,r)),r}}const ri=ni((e=>new t.BehaviorSubject(f)));function oi(e,n){let r=n,o=t.from(e).pipe(t.map((e=>r=e)),t.share({resetOnRefCountZero:()=>t.timer(1e3)}));const i=new t.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 ii=ni((t=>oi(e.liveQuery((()=>t.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})))),{}))),si=ni((t=>oi(ri(t._novip).pipe(Ue((n=>e.liveQuery((()=>t.transaction("r","realms","members",(()=>Promise.all([t.members.where({userId:n.userId}).toArray(),t.realms.toArray(),n.userId]).then((([e,t,n])=>({selfMembers:e,realms:t,userId:n})))))))))),{selfMembers:[],realms:[],get userId(){return t.cloud.currentUserId}})));function ai(...e){if(0===e.length)return{};const t=e.reduce(((e,t)=>{const n=Object.assign({},e);for(const[e,r]of Object.entries(t))if(e in n&&n[e]){if("*"===n[e])continue;if("*"===r)n[e]="*";else if(Array.isArray(r)&&Array.isArray(n[e])){const t=n,o=t[e];t[e]=[...new Set([...o,...r])]}else if("object"==typeof r&&r&&"object"==typeof n[e]){const t=n[e];for(const[e,n]of Object.entries(r))"*"!==t[e]&&("*"===n?t[e]="*":Array.isArray(t[e])&&Array.isArray(n)&&(t[e]=[...new Set([...t[e],...n])]))}}else n[e]=t[e];return n}));return t}const ci=ni((e=>function(e,n){let r;const o=e.pipe(t.map((e=>r=n(e))));return o.getValue=()=>void 0!==r?r:r=n(e.getValue()),o}(oi(t.combineLatest([si(e._novip),ii(e._novip)]).pipe(me((([{selfMembers:e,realms:t,userId:n},r])=>({selfMembers:e,realms:t,userId:n,globalRoles:r})))),{selfMembers:[],realms:[],userId:f.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=He(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:"*"}:ai(...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 li{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 ui=ni((n=>{const r=ri(n._novip).pipe(Ue((t=>e.liveQuery((()=>n.members.where({email:t.email||""}).toArray()))))),i=ci(n._novip),s=si(n._novip);return oi(t.combineLatest([r,s,i]).pipe(me((([e,t,r])=>{const i=(e,t)=>Object.assign(Object.assign({},e),{[t.id]:Object.assign(Object.assign({},t),{realm:r[t.realmId]})}),s=e.reduce(i,{}),a=t.selfMembers.reduce(i,s);return Object.values(a).filter((e=>!e.accepted)).map((e=>Object.assign(Object.assign({},e),{accept(){return o(this,void 0,void 0,(function*(){yield n.members.update(e.id,{accepted:new Date})}))},reject(){return o(this,void 0,void 0,(function*(){yield n.members.update(e.id,{rejected:new Date})}))}})))}))),[])}));function di(n){return r=>{var i;const s=r.doc,{parentTable:a}=s.meta||{};if(!(null===(i=n.cloud.schema)||void 0===i?void 0:i[a].markedForSync))return;let c;Object.defineProperty(r,"awareness",{get:()=>c||(c=function(n,r,i){const{parentTable:s,parentId:a,parentProp:c,updatesTable:l}=r.meta,u=Rr(n),d=new u.Awareness(r),f=Mr(r);return d.on("update",(({added:e,updated:t,removed:o},a)=>{const l=e.concat(t).concat(o),f=n.cloud.currentUser.value;if("server"!==a&&f.isLoggedIn&&!Er(n)){const e=u.encodeAwarenessUpdate(d,l);n.messageProducer.next({type:"aware",table:s,prop:c,k:r.meta.parentId,u:e}),i.destroyed&&n.messageProducer.next({type:"doc-close",table:s,prop:c,k:r.meta.parentId})}})),d.on("destroy",(()=>{u.removeAwarenessStates(d,[r.clientID],"provider destroyed")})),(()=>{o(this,void 0,void 0,(function*(){if(i.destroyed)return;let r=!1,u=1;const d=t.combineLatest([n.cloud.webSocketStatus,f.pipe(t.startWith(null))]).subscribe((([e])=>{if(i.destroyed)return;r="connected"===e;const t=n.cloud.currentUser.value;"connected"===e&&t.isLoggedIn&&!Er(n)&&(++u,p().catch((e=>{})))}));function p(){return o(this,void 0,void 0,(function*(){const t=u,d=n.table(l),f=n.$syncState,[p,y]=yield n.transaction("r",f,d,(()=>o(this,void 0,void 0,(function*(){const e=yield d.get(Ln),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(i.destroyed||u!==t||!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((t=>0===e.cmp(t.k,a)&&0==(1&(t.f||0)))).toArray();if(!i.destroyed&&u===t&&r){if(v.length>0){const e=Nn(n),t=e.mergeUpdatesV2(v.map((e=>e.u))),r=e.encodeStateVectorFromUpdateV2(t);h.sv=r}n.messageProducer.next(h)}}))}i.addCleanupHandler(d)}))})(),d}(n,s,r),Nr.set(s,c),c)})}}const fi={nameSuffix:!0};function pi(n){const r=n.name,i=ri(n),s=[];let a=!1,c=null;n.on("ready",(n=>o(this,void 0,void 0,(function*(){try{yield function(n){return o(this,void 0,void 0,(function*(){var r,f,p,y,h,v,m;l=!1;const b=nr(n);"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(co(ti,{db:e.vip}),n)):addEventListener("DOMContentLoaded",(()=>{t||(document.body.appendChild(n),To(co(ti,{db:e.vip}),n))})),{unsubscribe(){try{n.remove()}catch(e){}t=!0},get closed(){return t}}}(n))),b.cloud.isServiceWorkerDB||s.push(function(e){let n=e.cloud.webSocketStatus.value;const r=e.cloud.webSocketStatus.pipe(Ue((e=>{const r=n;n=e;const o=t.of(e);switch(e){case"disconnected":return Tr.value?o.pipe(_e(500)):o;case"connecting":return"not-started"===r||"error"===r?o:o.pipe(_e(4e3));default:return o}})));return t.combineLatest([r,e.syncStateChangedEvent.pipe(Te({phase:"initial"})),ri(e.dx._novip),Ur]).pipe(me((([t,n,r,o])=>{var i;if((null===(i=r.license)||void 0===i?void 0:i.status)&&"ok"!==r.license.status)return{phase:"offline",status:"offline",license:r.license.status};let{phase:s,error:a,progress:c}=n,l=t;return"error"===s&&(l="error"),"not-started"===t&&("pushing"!==s&&"pulling"!==s||(l="connecting")),"error"!==e.cloud.syncState.value.phase||"pushing"!==n.phase&&"pulling"!==n.phase||(l="connecting"),o||(l="disconnected"),{phase:s,error:a,progress:c,status:Un?l:"offline",license:"ok"}})))}(b).subscribe(n.cloud.syncState)),s.push(b.syncCompleteEvent.subscribe(d)),b.tables.every((e=>e.core))||function(){throw new e.SchemaError("Version increment needed to allow dexie-cloud change tracking")}();const g="serviceWorker"in navigator?yield navigator.serviceWorker.getRegistrations():[],[_,w]=yield b.transaction("rw",b.$syncState,(()=>o(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&&!pr?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(t){var n,r;for(const o of t.tables)if(null===(r=null===(n=t.cloud.schema)||void 0===n?void 0:n[o.name])||void 0===r?void 0:r.markedForSync){if(o.schema.primKey.auto)throw new e.SchemaError(`Table ${o.name} is both autoIncremented and synced. Use db.cloud.configure({unsyncedTables: [${JSON.stringify(o.name)}]}) to blacklist it from sync`);if(!o.schema.primKey.keyPath)throw new e.SchemaError(`Table ${o.name} cannot be both synced and outbound. Use db.cloud.configure({unsyncedTables: [${JSON.stringify(o.name)}]}) to blacklist it from sync`)}}(b),u(),!b.cloud.isServiceWorkerDB){s.push(e.liveQuery((()=>b.getCurrentUser())).subscribe(i)),s.push(e.liveQuery((()=>b.getPersistedSyncState())).subscribe(b.cloud.persistedSyncState)),yield t.firstValueFrom(t.combineLatest([i.pipe(je(1),Se(1)),b.cloud.persistedSyncState.pipe(je(1),Se(1))]));const n=di(b);b.dx.on("y",n),b.dx.once("close",(()=>{var e;null===(e=b.dx.on.y)||void 0===e||e.unsubscribe(n)}))}let k=!1;const S=yield b.getCurrentUser(),x=null===(f=b.cloud.options)||void 0===f?void 0:f.requireAuth;x&&(b.cloud.isServiceWorkerDB?yield t.firstValueFrom(i.pipe(Ae((e=>!!e.isLoggedIn)),Se(1))):"object"==typeof x?(!S.isLoggedIn||x.userId&&S.userId!==x.userId||x.email&&S.email!==x.email)&&(k=yield lr(b,x)):S.isLoggedIn||(k=yield lr(b))),!S.isLoggedIn||w&&w.includes(S.userId)||(k=!0),c&&c.stop(),c=null,u();const I=(null===(p=b.cloud.options)||void 0===p?void 0:p.databaseUrl)&&(!_||k);I&&(yield function(e,t,n){return o(this,void 0,void 0,(function*(){yield jr(e,Hn,(()=>zn(e,t,n,{isInitialSync:!0})))}))}(b,b.cloud.options,b.cloud.schema),b.setInitiallySynced(!0)),u(),b.cloud.usingServiceWorker&&(null===(y=b.cloud.options)||void 0===y?void 0:y.databaseUrl)?(I||De(b,"push").catch((()=>{})),function(e){return o(this,void 0,void 0,(function*(){var t;try{const{periodicSync:n}=yield navigator.serviceWorker.ready;if(n)try{yield n.register(`dexie-cloud:${e.name}`,null===(t=e.cloud.options)||void 0===t?void 0:t.periodicSync)}catch(e){}}catch(e){}}))}(b).catch((()=>{}))):(null===(h=b.cloud.options)||void 0===h?void 0:h.databaseUrl)&&b.cloud.schema&&!b.cloud.isServiceWorkerDB&&(c=Yr(b,b.cloud.options,b.cloud.schema),c.start(),I||$e(b,"push")),u(),b.cloud.isServiceWorkerDB||s.push(t.fromEvent(self,"online").subscribe((()=>{b.syncStateChangedEvent.next({phase:"not-in-sync"}),Er(b)||$e(b,"push")})),t.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)||yr||s.push(function(e){var n;if(!(null===(n=e.cloud.options)||void 0===n?void 0:n.databaseUrl))throw new Error("No database URL to connect WebSocket to");const r=e.messageConsumer.readyToServe.pipe(Ae((e=>e)),Ue((()=>e.getPersistedSyncState())),Ae((e=>e&&e.serverRevision)),Ue((e=>o(this,void 0,void 0,(function*(){return{type:"ready",rev:e.serverRevision,realmSetHash:yield Me(e)}}))))),i=t.merge(r,e.messageProducer);return function n(){return e.cloud.persistedSyncState.pipe(Ae((e=>null==e?void 0:e.serverRevision)),Se(1),Ue((t=>e.cloud.currentUser.pipe(me((e=>[e,t]))))),Ue((([e,t])=>Ur.pipe(me((n=>[n?e:null,t]))))),Ue((([n,r])=>(null==n?void 0:n.isLoggedIn)&&!(null==r?void 0:r.realms.includes(n.userId))?e.cloud.persistedSyncState.pipe(Ae((e=>(null==e?void 0:e.realms.includes(n.userId))||!1)),Se(1),me((e=>[n,e]))):new t.BehaviorSubject([n,r]))),Ue((e=>o(this,[e],void 0,(function*([e,t]){return[e,yield Me(t)]})))),Ee((([e,t],[n,r])=>e===n&&t===r)),Ue((([r,o])=>{var s;return(null===(s=e.cloud.persistedSyncState)||void 0===s?void 0:s.value)?r?new Fr(e,e.cloud.persistedSyncState.value.serverRevision,e.cloud.persistedSyncState.value.yServerRevision,o,e.cloud.persistedSyncState.value.clientIdentity,i,e.cloud.webSocketStatus,r):t.from([]):n()})),fe((r=>"TokenExpiredError"===(null==r?void 0:r.name)?t.of(!0).pipe(Ue((()=>o(this,void 0,void 0,(function*(){const t=yield e.getCurrentUser(),n=yield zt(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})})))),Ue((()=>n()))):t.throwError((()=>r)))),fe((r=>(e.cloud.webSocketStatus.next("error"),r instanceof Kr?t.throwError((()=>r)):t.from(Hr()).pipe(Ue((()=>n())))))))}().subscribe({next:t=>{t&&e.messageConsumer.enqueue(t)},error:e=>{},complete:()=>{}})}(b))}))}(n)}catch(e){}}))),!0);let l=!1;function u(){if(l)throw new e.DatabaseClosedError}n.once("close",(()=>{s.forEach((e=>e.unsubscribe())),s.splice(0,s.length),l=!0,c&&c.stop(),c=null,i.next(f)}));const d=new t.Subject;var p;n.cloud={version:"4.1.0-beta.48",options:Object.assign({},fi),schema:null,get currentUserId(){return i.value.userId||f.userId},currentUser:i,syncState:new t.BehaviorSubject({phase:"initial",status:"not-started"}),events:{syncComplete:d},persistedSyncState:new t.BehaviorSubject(void 0),userInteraction:new t.BehaviorSubject(void 0),webSocketStatus:new t.BehaviorSubject("not-started"),login(e){return o(this,void 0,void 0,(function*(){const t=nr(n);yield t.cloud.sync(),yield lr(t,e)}))},invites:ui(n),roles:ii(n),configure(e){e=n.cloud.options=Object.assign(Object.assign({},n.cloud.options),e),a=!0,e.databaseUrl&&e.nameSuffix&&(n.name=`${r}-${function(e){const t=new URL(e);return"/"===t.pathname?t.hostname.split(".")[0]:t.pathname.split("/")[1]}(e.databaseUrl)}`,nr(n).reconfigure()),Qr(n.cloud.schema,n.cloud.options)},logout(){return o(this,arguments,void 0,(function*({force:e}={}){e?yield ar(nr(n),{deleteUnsyncedData:!0}):yield sr(nr(n))}))},sync(){return o(this,arguments,void 0,(function*({wait:r,purpose:i}={wait:!0,purpose:"push"}){var s;void 0===r&&(r=!0);const a=nr(n);if("ok"!==((null===(s=a.cloud.currentUser.value.license)||void 0===s?void 0:s.status)||"ok")&&(yield Kt(a)),"pull"===i){const e=a.cloud.persistedSyncState.value;if($e(a,i),r){const n=yield t.firstValueFrom(a.cloud.persistedSyncState.pipe(Ae((t=>null!=(null==t?void 0:t.timestamp)&&(!e||t.timestamp>e.timestamp)))));if(null==n?void 0:n.error)throw new Error("Sync error: "+n.error)}}else if(yield zr(a)){const n=a.cloud.persistedSyncState.value;$e(a,i),r&&(yield t.firstValueFrom(t.from(e.liveQuery((()=>o(this,void 0,void 0,(function*(){const e=yield zr(a),t=yield a.getPersistedSyncState();if((null==t?void 0:t.timestamp)!==(null==n?void 0:n.timestamp)&&(null==t?void 0:t.error))throw new Error("Sync error: "+t.error);return e}))))).pipe(Ae((e=>!e)))))}}))},permissions:(e,t)=>function(e,t,n){if(!t)throw new TypeError("Cannot check permissions of undefined or null. A Dexie Cloud object with realmId and owner expected.");const{owner:r,realmId:o}=t;if(!n){if("function"!=typeof t.table)throw new TypeError("Missing 'table' argument to permissions and table could not be extracted from entity");n=t.table()}const i=ci(e),s=t=>{const i=t[o||e.cloud.currentUserId];return i?new li(i.permissions,n,void 0===o||o===e.cloud.currentUserId||r===e.cloud.currentUserId):new li({},n,!r||r===e.cloud.currentUserId)},a=i.pipe(me(s));return a.getValue=()=>s(i.getValue()),a}(n._novip,e,t)},n.Version.prototype._parseStoresSpec=e.override(n.Version.prototype._parseStoresSpec,(e=>Ar(e,n))),n.Table.prototype.newId=function({colocateWith:e}={}){const t=e&&e.substr(e.length-3);return _r(n.cloud.schema[this.name].idPrefix||"",t)},n.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)||""},n.use(Or({currentUserObservable:n.cloud.currentUser,db:nr(n)})),n.use((p=nr(n),{stack:"dbcore",name:"implicitPropSetterMiddleware",level:1,create:e=>Object.assign(Object.assign({},e),{table:t=>{const n=e.table(t);return Object.assign(Object.assign({},n),{mutate:e=>{var r,o,i,s,a,c;const l=e.trans;if(l.disableChangeTracking)return n.mutate(e);const u=null!==(o=null===(r=l.currentUser)||void 0===r?void 0:r.userId)&&void 0!==o?o:f.userId;if((null===(s=null===(i=p.cloud.schema)||void 0===i?void 0:i[t])||void 0===s?void 0:s.markedForSync)&&("add"===e.type||"put"===e.type)){if("members"===t)for(const t of e.values)"string"==typeof t.email&&(t.email=t.email.trim().toLowerCase());for(const t of e.values){t.owner||(t.owner=u),t.realmId||(t.realmId=u);const r=null===(c=(a=n.schema.primaryKey).extractKey)||void 0===c?void 0:c.call(a,t);"string"==typeof r&&"#"===r[0]&&"put"===e.type&&(delete e.criteria,delete e.changeSpec,delete e.updates,t.$ts=Date.now())}}return n.mutate(e)}})}})})),n.use(wr(nr(n)))}pi.version="4.1.0-beta.48",e.Cloud=pi;const yi=new Map;function hi(e){return e.startsWith("dexie-cloud:")&&e.split(":")[1]}const vi=new Map;function mi(t,n){let r=vi.get(t+"/"+n);return r||(r=function t(n,r){return o(this,void 0,void 0,(function*(){var o;let i=yi.get(n);if(!i){const o=new e(n,{addons:[pi]});if(i=nr(o),i.cloud.isServiceWorkerDB=!0,o.on("versionchange",s),yield i.dx.open(),yi.get(n))return i.close(),yield t(n,r);yi.set(n,i)}if((null===(o=i.cloud.options)||void 0===o?void 0:o.databaseUrl)&&i.cloud.schema)try{yield Jr(i,i.cloud.options,i.cloud.schema,{retryImmediatelyOnFetchError:!0,purpose:r})}catch(t){if(s(),t.name!==e.errnames.NoSuchDatabase)throw t}function s(){return i.dx.on.versionchange.unsubscribe(s),yi.get(i.name)===i&&yi.delete(i.name),i.dx.close(),!1}}))}(t,n).then((()=>{vi.delete(t+"/"+n)})).catch((e=>(vi.delete(t+"/"+n),Promise.reject(e)))),vi.set(t+"/"+n,r)),r}pr||(self.addEventListener("sync",(e=>{const t=hi(e.tag);t&&e.waitUntil(mi(t,"push"))})),self.addEventListener("periodicsync",(e=>{const t=hi(e.tag);t&&e.waitUntil(mi(t,"pull"))})),self.addEventListener("message",(e=>{if("dexie-cloud-sync"===e.data.type){const{dbName:t}=e.data,n=(r=1)=>mi(t,e.data.purpose||"pull").catch((e=>o(void 0,void 0,void 0,(function*(){if(3===r)throw e;var t;yield(t=6e4,new Promise((e=>setTimeout(e,t)))),n(r+1)}))));"waitUntil"in e?e.waitUntil(n().catch((e=>{}))):n().catch((e=>{}))}})))}));
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("dexie"),require("rxjs")):"function"==typeof define&&define.amd?define(["dexie","rxjs"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Dexie,e.rxjs)}(this,(function(e,t){"use strict";var n=function(e,t){return n=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])},n(e,t)};function r(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}function i(e,t,n,r){return new(n||(n=Promise))((function(i,s){function o(e){try{l(r.next(e))}catch(e){s(e)}}function c(e){try{l(r.throw(e))}catch(e){s(e)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,c)}l((r=r.apply(e,t||[])).next())}))}function s(e,t){var n,r,i,s,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return s={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s;function c(s){return function(c){return function(s){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&s[0]?r.return:s[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,s[1])).done)return i;switch(r=0,i&&(s=[2&s[0],i.value]),s[0]){case 0:case 1:i=s;break;case 4:return o.label++,{value:s[1],done:!1};case 5:o.label++,r=s[1],s=[0];continue;case 7:s=o.ops.pop(),o.trys.pop();continue;default:if(!(i=o.trys,(i=i.length>0&&i[i.length-1])||6!==s[0]&&2!==s[0])){o=0;continue}if(3===s[0]&&(!i||s[1]>i[0]&&s[1]<i[3])){o.label=s[1];break}if(6===s[0]&&o.label<i[1]){o.label=i[1],i=s;break}if(i&&o.label<i[2]){o.label=i[2],o.ops.push(s);break}i[2]&&o.ops.pop(),o.trys.pop();continue}s=t.call(e,o)}catch(e){s=[6,e],r=0}finally{n=i=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,c])}}}function o(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,i,s=n.call(e),o=[];try{for(;(void 0===t||t-- >0)&&!(r=s.next()).done;)o.push(r.value)}catch(e){i={error:e}}finally{try{r&&!r.done&&(n=s.return)&&n.call(s)}finally{if(i)throw i.error}}return o}function l(e,t,n){if(n||2===arguments.length)for(var r,i=0,s=t.length;i<s;i++)!r&&i in t||(r||(r=Array.prototype.slice.call(t,0,i)),r[i]=t[i]);return e.concat(r||Array.prototype.slice.call(t))}function a(e){return this instanceof a?(this.v=e,this):new a(e)}function u(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,i=n.apply(e,t||[]),s=[];return r={},o("next"),o("throw"),o("return"),r[Symbol.asyncIterator]=function(){return this},r;function o(e){i[e]&&(r[e]=function(t){return new Promise((function(n,r){s.push([e,t,n,r])>1||c(e,t)}))})}function c(e,t){try{!function(e){e.value instanceof a?Promise.resolve(e.value.v).then(l,u):d(s[0][2],e)}(i[e](t))}catch(e){d(s[0][3],e)}}function l(e){c("next",e)}function u(e){c("throw",e)}function d(e,t){e(t),s.shift(),s.length&&c(s[0][0],s[0][1])}}function d(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=o(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,i){(function(e,t,n,r){Promise.resolve(r).then((function(t){e({value:t,done:n})}),t)})(r,i,(t=e[n](t)).done,t.value)}))}}}const h={userId:"unauthorized",name:"Unauthorized",claims:{sub:"unauthorized"},lastLogin:new Date(0)};try{Object.freeze(h),Object.freeze(h.claims)}catch(e){}const f={},p="undefined"!=typeof self&&self.document&&"undefined"!=typeof navigator&&navigator.serviceWorker;p&&p.ready.then((e=>f.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 g{constructor(e){this.name=e}subscribe(e){if(!p)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 p.addEventListener("message",t),()=>p.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}))):f.registration&&(null===(t=f.registration.active)||void 0===t||t.postMessage({type:`sw-broadcast-${this.name}`,message:e}))}}const y=globalThis["lbc-events"]||(globalThis["lbc-events"]=new Map);class v extends t.Observable{constructor(e){const t="undefined"==typeof BroadcastChannel?new g(e):new BroadcastChannel(e);super((n=>{function r(e){n.next(e.detail)}function i(e){n.next(e.data)}let s;!function(e,t){y.has(e)?y.get(e).push(t):y.set(e,[t])}(`lbc-${e}`,r);try{t instanceof g?s=t.subscribe((e=>n.next(e))):t.addEventListener("message",i)}catch(e){}return()=>{!function(e,t){const n=y.get(e);if(n){const e=n.indexOf(t);-1!==e&&n.splice(e,1)}}(`lbc-${e}`,r),t instanceof g?s():t.removeEventListener("message",i)}})),this.name=e,this.bc=t}next(e){this.bc.postMessage(e);!function(e){const t=y.get(e.type);t&&t.forEach((t=>{try{t(e)}catch(e){}}))}(new CustomEvent(`lbc-${this.name}`,{detail:e}))}}function m(e){return"function"==typeof e}function b(e){return function(t){if(function(e){return m(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 w=function(e){return e&&"number"==typeof e.length&&"function"!=typeof e};function _(e){return m(null==e?void 0:e.then)}var k,S,E=(k=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}},(S=k((function(e){Error.call(e),e.stack=(new Error).stack}))).prototype=Object.create(Error.prototype),S.prototype.constructor=S,S);function x(e,t){if(e){var n=e.indexOf(t);0<=n&&e.splice(n,1)}}var I=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,i;if(!this.closed){this.closed=!0;var s=this._parentage;if(s)if(this._parentage=null,Array.isArray(s))try{for(var a=o(s),u=a.next();!u.done;u=a.next()){u.value.remove(this)}}catch(t){e={error:t}}finally{try{u&&!u.done&&(t=a.return)&&t.call(a)}finally{if(e)throw e.error}}else s.remove(this);var d=this.initialTeardown;if(m(d))try{d()}catch(e){i=e instanceof E?e.errors:[e]}var h=this._finalizers;if(h){this._finalizers=null;try{for(var f=o(h),p=f.next();!p.done;p=f.next()){var g=p.value;try{A(g)}catch(e){i=null!=i?i:[],e instanceof E?i=l(l([],c(i)),c(e.errors)):i.push(e)}}}catch(e){n={error:e}}finally{try{p&&!p.done&&(r=f.return)&&r.call(f)}finally{if(n)throw n.error}}}if(i)throw new E(i)}},e.prototype.add=function(t){var n;if(t&&t!==this)if(this.closed)A(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)&&x(t,e)},e.prototype.remove=function(t){var n=this._finalizers;n&&x(n,t),t instanceof e&&t._removeParent(this)},e.EMPTY=((t=new e).closed=!0,t),e}();function C(e){return e instanceof I||e&&"closed"in e&&m(e.remove)&&m(e.add)&&m(e.unsubscribe)}function A(e){m(e)?e():e.unsubscribe()}I.EMPTY;var O={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},D={setTimeout:function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var i=D.delegate;return(null==i?void 0:i.setTimeout)?i.setTimeout.apply(i,l([e,t],c(n))):setTimeout.apply(void 0,l([e,t],c(n)))},clearTimeout:function(e){var t=D.delegate;return((null==t?void 0:t.clearTimeout)||clearTimeout)(e)},delegate:void 0};function T(e){D.setTimeout((function(){throw e}))}function U(){}var j=function(e){function t(t){var n=e.call(this)||this;return n.isStopped=!1,t?(n.destination=t,C(t)&&t.add(n)):n.destination=M,n}return r(t,e),t.create=function(e,t,n){return new N(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}(I),P=Function.prototype.bind;function L(e,t){return P.call(e,t)}var R=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){$(e)}},e.prototype.error=function(e){var t=this.partialObserver;if(t.error)try{t.error(e)}catch(e){$(e)}else $(e)},e.prototype.complete=function(){var e=this.partialObserver;if(e.complete)try{e.complete()}catch(e){$(e)}},e}(),N=function(e){function t(t,n,r){var i,s,o=e.call(this)||this;m(t)||!t?i={next:null!=t?t:void 0,error:null!=n?n:void 0,complete:null!=r?r:void 0}:o&&O.useDeprecatedNextContext?((s=Object.create(t)).unsubscribe=function(){return o.unsubscribe()},i={next:t.next&&L(t.next,s),error:t.error&&L(t.error,s),complete:t.complete&&L(t.complete,s)}):i=t;return o.destination=new R(i),o}return r(t,e),t}(j);function $(e){T(e)}var M={closed:!0,next:U,error:function(e){throw e},complete:U},B="function"==typeof Symbol&&Symbol.observable||"@@observable";function F(e){return e}var W=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,i=this,s=(r=e)&&r instanceof j||function(e){return e&&m(e.next)&&m(e.error)&&m(e.complete)}(r)&&C(r)?e:new N(e,t,n);return function(){var e=i,t=e.operator,n=e.source;s.add(t?t.call(s,n):n?i._subscribe(s):i._trySubscribe(s))}(),s},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=V(t))((function(t,r){var i=new N({next:function(t){try{e(t)}catch(e){r(e),i.unsubscribe()}},error:r,complete:t});n.subscribe(i)}))},e.prototype._subscribe=function(e){var t;return null===(t=this.source)||void 0===t?void 0:t.subscribe(e)},e.prototype[B]=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?F: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=V(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 V(e){var t;return null!==(t=null!=e?e:O.Promise)&&void 0!==t?t:Promise}function K(e){return m(e[B])}function H(e){return Symbol.asyncIterator&&m(null==e?void 0:e[Symbol.asyncIterator])}function z(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 J="function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator";function q(e){return m(null==e?void 0:e[J])}function Y(e){return u(this,arguments,(function(){var t,n,r;return s(this,(function(i){switch(i.label){case 0:t=e.getReader(),i.label=1;case 1:i.trys.push([1,,9,10]),i.label=2;case 2:return[4,a(t.read())];case 3:return n=i.sent(),r=n.value,n.done?[4,a(void 0)]:[3,5];case 4:return[2,i.sent()];case 5:return[4,a(r)];case 6:return[4,i.sent()];case 7:return i.sent(),[3,2];case 8:return[3,10];case 9:return t.releaseLock(),[7];case 10:return[2]}}))}))}function G(e){return m(null==e?void 0:e.getReader)}function Q(e){if(e instanceof W)return e;if(null!=e){if(K(e))return i=e,new W((function(e){var t=i[B]();if(m(t.subscribe))return t.subscribe(e);throw new TypeError("Provided object does not correctly implement Symbol.observable")}));if(w(e))return r=e,new W((function(e){for(var t=0;t<r.length&&!e.closed;t++)e.next(r[t]);e.complete()}));if(_(e))return n=e,new W((function(e){n.then((function(t){e.closed||(e.next(t),e.complete())}),(function(t){return e.error(t)})).then(null,T)}));if(H(e))return X(e);if(q(e))return t=e,new W((function(e){var n,r;try{for(var i=o(t),s=i.next();!s.done;s=i.next()){var c=s.value;if(e.next(c),e.closed)return}}catch(e){n={error:e}}finally{try{s&&!s.done&&(r=i.return)&&r.call(i)}finally{if(n)throw n.error}}e.complete()}));if(G(e))return X(Y(e))}var t,n,r,i;throw z(e)}function X(e){return new W((function(t){(function(e,t){var n,r,o,c;return i(this,void 0,void 0,(function(){var i,l;return s(this,(function(s){switch(s.label){case 0:s.trys.push([0,5,6,11]),n=d(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 l=s.sent(),o={error:l},[3,11];case 6:return s.trys.push([6,,9,10]),r&&!r.done&&(c=n.return)?[4,c.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 Z(e,t,n,r,i){return new ee(e,t,n,r,i)}var ee=function(e){function t(t,n,r,i,s,o){var c=e.call(this,t)||this;return c.onFinalize=s,c.shouldUnsubscribe=o,c._next=n?function(e){try{n(e)}catch(e){t.error(e)}}:e.prototype._next,c._error=i?function(e){try{i(e)}catch(e){t.error(e)}finally{this.unsubscribe()}}:e.prototype._error,c._complete=r?function(){try{r()}catch(e){t.error(e)}finally{this.unsubscribe()}}:e.prototype._complete,c}return r(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}(j),te=function(e){function t(t,n){return e.call(this)||this}return r(t,e),t.prototype.schedule=function(e,t){return this},t}(I),ne={setInterval:function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var i=ne.delegate;return(null==i?void 0:i.setInterval)?i.setInterval.apply(i,l([e,t],c(n))):setInterval.apply(void 0,l([e,t],c(n)))},clearInterval:function(e){var t=ne.delegate;return((null==t?void 0:t.clearInterval)||clearInterval)(e)},delegate:void 0},re=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 r(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),ne.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;ne.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,x(r,this),null!=t&&(this.id=this.recycleAsyncId(n,t,null)),this.delay=null,e.prototype.unsubscribe.call(this)}},t}(te),ie={now:function(){return(ie.delegate||Date).now()},delegate:void 0},se=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=ie.now,e}(),oe=new(function(e){function t(t,n){void 0===n&&(n=se.now);var r=e.call(this,t,n)||this;return r.actions=[],r._active=!1,r._scheduled=void 0,r}return r(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}(se))(re),ce=oe;function le(e){return e&&m(e.schedule)}function ae(e,t,n){void 0===e&&(e=0),void 0===n&&(n=ce);var r=-1;return null!=t&&(le(t)?n=t:r=t),new W((function(t){var i,s=(i=e)instanceof Date&&!isNaN(i)?+e-n.now():e;s<0&&(s=0);var o=0;return n.schedule((function(){t.closed||(t.next(o++),0<=r?this.schedule(void 0,r):t.complete())}),s)}))}function ue(e){return le((t=e)[t.length-1])?e.pop():void 0;var t}function de(e,t,n,r,i){void 0===r&&(r=0),void 0===i&&(i=!1);var s=t.schedule((function(){n(),i?e.add(this.schedule(null,r)):this.unsubscribe()}),r);if(e.add(s),!i)return s}function he(e){return b((function(t,n){var r,i=null,s=!1;i=t.subscribe(Z(n,void 0,void 0,(function(o){r=Q(e(o,he(e)(t))),i?(i.unsubscribe(),i=null,r.subscribe(n)):s=!0}))),s&&(i.unsubscribe(),i=null,r.subscribe(n))}))}function fe(e,t){return void 0===t&&(t=0),b((function(n,r){n.subscribe(Z(r,(function(n){return de(r,e,(function(){return r.next(n)}),t)}),(function(){return de(r,e,(function(){return r.complete()}),t)}),(function(n){return de(r,e,(function(){return r.error(n)}),t)})))}))}function pe(e,t){return void 0===t&&(t=0),b((function(n,r){r.add(e.schedule((function(){return n.subscribe(r)}),t))}))}function ge(e,t){if(!e)throw new Error("Iterable cannot be null");return new W((function(n){de(n,t,(function(){var r=e[Symbol.asyncIterator]();de(n,t,(function(){r.next().then((function(e){e.done?n.complete():n.next(e.value)}))}),0,!0)}))}))}function ye(e,t){if(null!=e){if(K(e))return function(e,t){return Q(e).pipe(pe(t),fe(t))}(e,t);if(w(e))return function(e,t){return new W((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(_(e))return function(e,t){return Q(e).pipe(pe(t),fe(t))}(e,t);if(H(e))return ge(e,t);if(q(e))return function(e,t){return new W((function(n){var r;return de(n,t,(function(){r=e[J](),de(n,t,(function(){var e,t,i;try{t=(e=r.next()).value,i=e.done}catch(e){return void n.error(e)}i?n.complete():n.next(t)}),0,!0)})),function(){return m(null==r?void 0:r.return)&&r.return()}}))}(e,t);if(G(e))return function(e,t){return ge(Y(e),t)}(e,t)}throw z(e)}function ve(e,t){return b((function(n,r){var i=0;n.subscribe(Z(r,(function(n){r.next(e.call(t,n,i++))})))}))}function me(e,t,n){return void 0===n&&(n=1/0),m(t)?me((function(n,r){return ve((function(e,i){return t(n,e,r,i)}))(Q(e(n,r)))}),n):("number"==typeof t&&(n=t),b((function(t,r){return function(e,t,n,r,i,s,o,c){var l=[],a=0,u=0,d=!1,h=function(){!d||l.length||a||t.complete()},f=function(e){return a<r?p(e):l.push(e)},p=function(e){s&&t.next(e),a++;var c=!1;Q(n(e,u++)).subscribe(Z(t,(function(e){null==i||i(e),s?f(e):t.next(e)}),(function(){c=!0}),void 0,(function(){if(c)try{a--;for(var e=function(){var e=l.shift();o?de(t,o,(function(){return p(e)})):p(e)};l.length&&a<r;)e();h()}catch(e){t.error(e)}})))};return e.subscribe(Z(t,f,(function(){d=!0,h()}))),function(){null==c||c()}}(t,r,e,n)})))}function be(){return void 0===(e=1)&&(e=1/0),me(F,e);var e}function we(e,t){return void 0===t&&(t=oe),b((function(n,r){var i=null,s=null,o=null,c=function(){if(i){i.unsubscribe(),i=null;var e=s;s=null,r.next(e)}};function l(){var n=o+e,s=t.now();if(s<n)return i=this.schedule(void 0,n-s),void r.add(i);c()}n.subscribe(Z(r,(function(n){s=n,o=t.now(),i||(i=t.schedule(l,e),r.add(i))}),(function(){c(),r.complete()}),void 0,(function(){s=i=null})))}))}function _e(){for(var e,t,n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];return be()((e=n,(t=ue(n))?ye(e,t):Q(e)))}var ke=new W((function(e){return e.complete()}));function Se(e){return e<=0?function(){return ke}:b((function(t,n){var r=0;t.subscribe(Z(n,(function(t){++r<=e&&(n.next(t),e<=r&&n.complete())})))}))}function Ee(e,t){return t?function(n){return _e(t.pipe(Se(1),b((function(e,t){e.subscribe(Z(t,U))}))),n.pipe(Ee(e)))}:me((function(t,n){return e(t,n).pipe(Se(1),function(e){return ve((function(){return e}))}(t))}))}function xe(e,t){void 0===t&&(t=oe);var n=ae(e,t);return Ee((function(){return n}))}function Ie(e,t){return void 0===t&&(t=F),e=null!=e?e:Ce,b((function(n,r){var i,s=!0;n.subscribe(Z(r,(function(n){var o=t(n);!s&&e(i,o)||(s=!1,i=o,r.next(n))})))}))}function Ce(e,t){return e===t}function Ae(e,t){return b((function(n,r){var i=0;n.subscribe(Z(r,(function(n){return e.call(t,n,i++)&&r.next(n)})))}))}function Oe(e){return Ae((function(t,n){return e<=n}))}function De(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=ue(e);return b((function(t,r){(n?_e(e,t,n):_e(e,t)).subscribe(r)}))}function Te(e,t){return b((function(n,r){var i=null,s=0,o=!1,c=function(){return o&&!i&&r.complete()};n.subscribe(Z(r,(function(n){null==i||i.unsubscribe();var o=0,l=s++;Q(e(n,l)).subscribe(i=Z(r,(function(e){return r.next(t?t(n,e,l,o++):e)}),(function(){i=null,c()})))}),(function(){o=!0,c()})))}))}function Ue(e,t,n){var r=m(e)||t||n?{next:e,error:t,complete:n}:e;return r?b((function(e,t){var n;null===(n=r.subscribe)||void 0===n||n.call(r);var i=!0;e.subscribe(Z(t,(function(e){var n;null===(n=r.next)||void 0===n||n.call(r,e),t.next(e)}),(function(){var e;i=!1,null===(e=r.complete)||void 0===e||e.call(r),t.complete()}),(function(e){var n;i=!1,null===(n=r.error)||void 0===n||n.call(r,e),t.error(e)}),(function(){var e,t;i&&(null===(e=r.unsubscribe)||void 0===e||e.call(r)),null===(t=r.finalize)||void 0===t||t.call(r)})))})):F}let je=!1;function Pe(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){je||(je=!0)}}))}function Le(e,t){e.cloud.usingServiceWorker?Pe(e,t):e.localSyncEvent.next({purpose:t})}const Re="fromBase64"in Uint8Array,Ne="toBase64"in Uint8Array.prototype,$e="undefined"!=typeof Buffer?e=>Buffer.from(e,"base64"):Re?e=>Uint8Array.fromBase64(e):e=>{const t=atob(e),n=t.length,r=new Uint8Array(n);for(var i=0;i<n;i++)r[i]=t.charCodeAt(i);return r},Me="undefined"!=typeof Buffer?e=>ArrayBuffer.isView(e)?Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("base64"):Buffer.from(e).toString("base64"):Ne?e=>(ArrayBuffer.isView(e)?e:new Uint8Array(e)).toBase64():e=>{const t=ArrayBuffer.isView(e)?e:new Uint8Array(e),n=[];for(let e=0,r=t.length;e<r;e+=4096){const r=t.subarray(e,e+4096);n.push(String.fromCharCode.apply(null,r))}return btoa(n.join(""))};function Be(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),i=yield crypto.subtle.digest("SHA-1",r);return Me(i)}))}function Fe(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 We(e){return`$${e}_mutations`}function Ve(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 Ke=[].concat;function He(e){return Ke.apply([],e)}function ze(e,t){return i(this,arguments,void 0,(function*(e,t,{since:n={},limit:r=1/0}={}){const s=He(yield Promise.all(e.map((e=>i(this,void 0,void 0,(function*(){const t=Ve(e.name),i=n[t];let s=i?e.where("rev").above(i):e;r<1/0&&(s=s.limit(r));return(yield s.toArray()).map((e=>({table:t,mut:e})))})))))).sort(((e,t)=>e.mut.txid===t.mut.txid?e.mut.opNo-t.mut.opNo:e.mut.ts-t.mut.ts)),o=[];let c=null,l=null;for(const{table:e,mut:t}of s)c&&c.table===e&&l===t.txid?c.muts.push(t):(c={table:e,muts:[t]},l=t.txid,o.push(c));return o}))}function Je(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 qe={}.hasOwnProperty;function Ye(e,t,n){if(e&&void 0!==t&&(!("isFrozen"in Object)||!Object.isFrozen(e)))if("string"!=typeof t&&"length"in t){!function(e){if(!e)throw new Error("Assertion Failed")}("string"!=typeof n&&"length"in n);for(var r=0,i=t.length;r<i;++r)Ye(e,t[r],n[r])}else{var s=t.indexOf(".");if(-1!==s){var o=t.substr(0,s),c=t.substr(s+1);if(""===c)void 0===n?Array.isArray(e)?isNaN(parseInt(o))||e.splice(parseInt(o),1):delete e[o]:e[o]=n;else{var l=e[o];l&&function(e,t){return qe.call(e,t)}(e,o)||(l=e[o]={}),Ye(l,c,n)}}else void 0===n?Array.isArray(e)&&!isNaN(parseInt(t))?e.splice(t,1):delete e[t]:e[t]=n}}const Ge="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=Qe)=>{const n=Buffer.alloc(e);return t(n),n.toString("base64")}:()=>{throw new Error("No implementation of randomString was found")};function Qe(e){for(let t=0;t<e.length;++t)e[t]=Math.floor(256*Math.random())}function Xe(e){return"string"==typeof e||!!(Array.isArray(e)&&e.some((e=>Xe(e)))&&e.every(Ze))}function Ze(e){return"string"==typeof e||"number"==typeof e||Array.isArray(e)&&e.every(Ze)}function et(e,t,n){const r=e[t]||(e[t]={}),i=n.keys.map((e=>"string"==typeof e?e:JSON.stringify(e)));switch(n.type){case"insert":case"upsert":i.forEach(((e,t)=>{r[e]={type:"ups",val:n.values[t]}}));break;case"update":case"modify":i.forEach(((e,t)=>{const i="update"===n.type?n.changeSpecs[t]:n.changeSpec,s=r[e];if(s)switch(s.type){case"ups":for(const[e,t]of Object.entries(i))Ye(s.val,e,t);break;case"del":break;case"upd":Object.assign(s.mod,i)}else r[e]={type:"upd",mod:i}}));break;case"delete":i.forEach((e=>{r[e]={type:"del"}}))}return e}function tt(e,t){for(const{table:n,muts:r}of t)for(const t of r)et(e,n,t)}const nt=Math.floor,rt=Math.abs,it=(e,t)=>e>t?e:t,st=128,ot=127,ct=Number.MAX_SAFE_INTEGER,lt=Number.isInteger||(e=>"number"==typeof e&&isFinite(e)&&nt(e)===e),at=Array.isArray,ut="undefined"!=typeof TextEncoder?new TextEncoder:null,dt=ut?e=>ut.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 ht="undefined"==typeof TextDecoder?null:new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});ht&&1===ht.decode(new Uint8Array).length&&(ht=null);let ft=class{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}};const pt=(e,t)=>{const n=e.cbuf.length;e.cpos===n&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(2*n),e.cpos=0),e.cbuf[e.cpos++]=t},gt=(e,t)=>{for(;t>ot;)pt(e,st|ot&t),t=nt(t/128);pt(e,ot&t)},yt=new Uint8Array(3e4),vt=yt.length/3,mt=ut&&ut.encodeInto?(e,t)=>{if(t.length<vt){const n=ut.encodeInto(t,yt).written||0;gt(e,n);for(let t=0;t<n;t++)pt(e,yt[t])}else bt(e,dt(t))}:(e,t)=>{const n=unescape(encodeURIComponent(t)),r=n.length;gt(e,r);for(let t=0;t<r;t++)pt(e,n.codePointAt(t))},bt=(e,t)=>{gt(e,t.byteLength),((e,t)=>{const n=e.cbuf.length,r=e.cpos,i=((e,t)=>e<t?e:t)(n-r,t.length),s=t.length-i;e.cbuf.set(t.subarray(0,i),r),e.cpos+=i,s>0&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(it(2*n,s)),e.cbuf.set(t.subarray(i)),e.cpos=s)})(e,t)},wt=(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*it(n,t)),e.cpos=0)})(e,t);const n=new DataView(e.cbuf.buffer,e.cpos,t);return e.cpos+=t,n},_t=(e,t)=>wt(e,8).setBigUint64(0,t,!1),kt=new DataView(new ArrayBuffer(4)),St=(e,t)=>{switch(typeof t){case"string":pt(e,119),mt(e,t);break;case"number":lt(t)&&rt(t)<=2147483647?(pt(e,125),((e,t)=>{const n=(e=>0!==e?e<0:1/e<0)(t);for(n&&(t=-t),pt(e,(t>63?st:0)|(n?64:0)|63&t),t=nt(t/64);t>0;)pt(e,(t>ot?st:0)|ot&t),t=nt(t/128)})(e,t)):(n=t,kt.setFloat32(0,n),kt.getFloat32(0)===n?(pt(e,124),((e,t)=>{wt(e,4).setFloat32(0,t,!1)})(e,t)):(pt(e,123),((e,t)=>{wt(e,8).setFloat64(0,t,!1)})(e,t)));break;case"bigint":pt(e,122),((e,t)=>{wt(e,8).setBigInt64(0,t,!1)})(e,t);break;case"object":if(null===t)pt(e,126);else if(at(t)){pt(e,117),gt(e,t.length);for(let n=0;n<t.length;n++)St(e,t[n])}else if(t instanceof Uint8Array)pt(e,116),bt(e,t);else{pt(e,118);const n=Object.keys(t);gt(e,n.length);for(let r=0;r<n.length;r++){const i=n[r];mt(e,i),St(e,t[i])}}break;case"boolean":pt(e,t?120:121);break;default:pt(e,127)}var n};function Et(e){const t=new ft;switch(mt(t,e.type),"table"in e&&mt(t,e.table),"prop"in e&&mt(t,e.prop),e.type){case"u-ack":case"u-reject":_t(t,BigInt(e.i));break;case"outdated-server-rev":break;case"y-complete-sync-done":mt(t,e.yServerRev);break;default:switch(St(t,e.k),e.type){case"aware":bt(t,e.u);break;case"doc-open":St(t,e.serverRev),St(t,e.sv);break;case"doc-close":break;case"sv":bt(t,e.sv);break;case"u-c":bt(t,e.u),_t(t,BigInt(e.i));break;case"u-s":bt(t,e.u),mt(t,e.r||"")}}return(e=>{const t=new Uint8Array((e=>{let t=e.cpos;for(let n=0;n<e.bufs.length;n++)t+=e.bufs[n].length;return t})(e));let n=0;for(let r=0;r<e.bufs.length;r++){const i=e.bufs[r];t.set(i,n),n+=i.length}return t.set(new Uint8Array(e.cbuf.buffer,0,e.cpos),n),t})(t)}const xt=e=>new Error(e),It=xt("Unexpected end of array"),Ct=xt("Integer out of Range");let At=class{constructor(e){this.arr=e,this.pos=0}};const Ot=e=>e.pos!==e.arr.length,Dt=e=>((e,t)=>{const n=new Uint8Array(e.arr.buffer,e.pos+e.arr.byteOffset,t);return e.pos+=t,n})(e,Ut(e)),Tt=e=>e.arr[e.pos++],Ut=e=>{let t=0,n=1;const r=e.arr.length;for(;e.pos<r;){const r=e.arr[e.pos++];if(t+=(r&ot)*n,n*=128,r<st)return t;if(t>ct)throw Ct}throw It},jt=ht?e=>ht.decode(Dt(e)):e=>{let t=Ut(e);if(0===t)return"";{let n=String.fromCodePoint(Tt(e));if(--t<100)for(;t--;)n+=String.fromCodePoint(Tt(e));else for(;t>0;){const r=t<1e4?t:1e4,i=e.arr.subarray(e.pos,e.pos+r);e.pos+=r,n+=String.fromCodePoint.apply(null,i),t-=r}return decodeURIComponent(escape(n))}},Pt=(e,t)=>{const n=new DataView(e.arr.buffer,e.arr.byteOffset+e.pos,t);return e.pos+=t,n},Lt=e=>Pt(e,8).getBigUint64(0,!1),Rt=[e=>{},e=>null,e=>{let t=e.arr[e.pos++],n=63&t,r=64;const i=(64&t)>0?-1:1;if(0==(t&st))return i*n;const s=e.arr.length;for(;e.pos<s;){if(t=e.arr[e.pos++],n+=(t&ot)*r,r*=128,t<st)return i*n;if(n>ct)throw Ct}throw It},e=>Pt(e,4).getFloat32(0,!1),e=>Pt(e,8).getFloat64(0,!1),e=>Pt(e,8).getBigInt64(0,!1),e=>!1,e=>!0,jt,e=>{const t=Ut(e),n={};for(let r=0;r<t;r++){n[jt(e)]=Nt(e)}return n},e=>{const t=Ut(e),n=[];for(let r=0;r<t;r++)n.push(Nt(e));return n},Dt],Nt=e=>Rt[127-Tt(e)](e);function $t(e){return u(this,arguments,(function*(){var t,n,r,i;let s=0,o=new Uint8Array(4),c=0,l=[],u=0;try{for(var h,f=!0,p=d(e);!(t=(h=yield a(p.next())).done);f=!0){i=h.value,f=!1;const e=i,t=new DataView(e.buffer,e.byteOffset,e.byteLength);let n=0;for(;n<e.byteLength;)switch(s){case 0:if(n+4>e.byteLength){for(const t of e.slice(n)){if(4===c)break;o[c++]=t,++n}if(c<4)break}else if(c>0&&c<4)for(const t of e.slice(n,n+4-c))o[c++]=t,++n;case 1:u=4===c?new DataView(o.buffer,0,4).getUint32(0,!1):t.getUint32(n,!1),c?c=0:n+=4;case 2:if(n>=e.byteLength){s=2;break}if(n+u>e.byteLength)l.push(e.slice(n)),u-=e.byteLength-n,s=2,n=e.byteLength;else{if(l.length>0){const t=new Uint8Array(l.reduce(((e,t)=>e+t.byteLength),u));let r=0;for(const e of l)t.set(e,r),r+=e.byteLength;t.set(e.slice(n,n+u),r),l=[],yield yield a(t)}else yield yield a(e.slice(n,n+u));n+=u,s=0}}}}catch(e){n={error:e}}finally{try{f||t||!(r=p.return)||(yield a(r.call(p)))}finally{if(n)throw n.error}}}))}class Mt 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 Bt(t,n){return new Promise(((r,i)=>{const s=Object.assign(Object.assign({submitLabel:"Submit",cancelLabel:"Cancel"},n),{onSubmit:e=>{t.next(void 0),r(e)},onCancel:()=>{t.next(void 0),i(new e.AbortError("User cancelled"))}});t.next(s)}))}function Ft(e,t,...n){return Bt(e,{type:"message-alert",title:t,alerts:n,fields:{},submitLabel:"OK",cancelLabel:null})}function Wt(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 Bt(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 Vt(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:i}=yield Bt(e,{type:"otp",title:"Enter OTP",alerts:r,fields:{otp:{type:"otp",label:"OTP",placeholder:"Paste OTP here"}}});return i}))}function Kt(e){return i(this,void 0,void 0,(function*(){var t,n,r;const i=yield e.getCurrentUser(),{accessToken:s,accessTokenExpiration:o,refreshToken:c,refreshTokenExpiration:l,claims:a}=i;if(!s)return null;if((null!==(t=null==o?void 0:o.getTime())&&void 0!==t?t:1/0)>Date.now()&&"ok"===((null===(n=i.license)||void 0===n?void 0:n.status)||"ok"))return i;if(!c)throw new Error("Refresh token missing");if((null!==(r=null==l?void 0:l.getTime())&&void 0!==r?r:1/0)<=Date.now())throw new Error("Refresh token has expired");const u=yield zt(e.cloud.options.databaseUrl,i);return yield e.table("$logins").update(a.sub,{accessToken:u.accessToken,accessTokenExpiration:u.accessTokenExpiration,claims:u.claims,license:u.license,data:u.data}),u}))}function Ht(t,n,r,s,o){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 zt(t,n):yield function(t,n,r,s){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:o}=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||!o)throw new Error("Could not generate RSA keypair");t.nonExportablePrivateKey=i;const c=function(e){const t=Me(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",o));t.publicKey=o;try{const e=yield n({public_key:c,hints:s});if("error"===e.type)throw new Mt(e);if("tokens"!==e.type)throw new Error(`Unexpected response type from token endpoint: ${e.type}`);return t.accessToken=e.accessToken,t.accessTokenExpiration=new Date(e.accessTokenExpiration),t.refreshToken=e.refreshToken,e.refreshTokenExpiration&&(t.refreshTokenExpiration=new Date(e.refreshTokenExpiration)),t.userId=e.claims.sub,t.email=e.claims.email,t.name=e.claims.name,t.claims=e.claims,t.license={type:e.userType,status:e.claims.license||"ok"},t.data=e.data,null!=e.evalDaysLeft&&(t.license.evalDaysLeft=e.evalDaysLeft),null!=e.userValidUntil&&(t.license.validUntil=new Date(e.userValidUntil)),e.alerts&&e.alerts.length>0&&(yield Bt(r,{type:"message-alert",title:"Authentication Alert",fields:{},alerts:e.alerts})),t}catch(t){if(t instanceof Mt)throw yield Ft(r,t.title,{type:"error",messageCode:t.messageCode,message:t.message,messageParams:{}}),t;let n="We're having a problem authenticating right now.";if(t instanceof TypeError){n=void 0!==typeof navigator&&!navigator.onLine?"You seem to be offline. Please connect to the internet and try again.":e.debug||"undefined"!=typeof location&&("localhost"===location.hostname||"127.0.0.1"===location.hostname)?`Could not connect to server. Please verify that your origin '${location.origin}' is whitelisted using \`npx dexie-cloud whitelist\``:"Could not connect to server. Please verify the connection.",yield Ft(r,"Authentication Failed",{type:"error",messageCode:"GENERIC_ERROR",message:n,messageParams:{}}).catch((()=>{}))}throw t}}))}(n,r,s,o)}))}function zt(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",i=(new TextEncoder).encode(t.refreshToken+n),s=yield crypto.subtle.sign(r,t.nonExportablePrivateKey,i),o=Me(s),c={grant_type:"refresh_token",refresh_token:t.refreshToken,scopes:["ACCESS_DB"],signature:o,signing_algorithm:r,time_stamp:n},l=yield fetch(`${e}/token`,{body:JSON.stringify(c),method:"post",headers:{"Content-Type":"application/json"},mode:"cors"});if(200!==l.status)throw new Error(`RefreshToken: Status ${l.status} from ${e}/token`);const a=yield l.json();if("error"===a.type)throw new Mt(a);return t.accessToken=a.accessToken,t.accessTokenExpiration=a.accessTokenExpiration?new Date(a.accessTokenExpiration):void 0,t.claims=a.claims,t.license={type:a.userType,status:a.claims.license||"ok"},null!=a.evalDaysLeft&&(t.license.evalDaysLeft=a.evalDaysLeft),null!=a.userValidUntil&&(t.license.validUntil=new Date(a.userValidUntil)),a.data&&(t.data=a.data),t}))}const{toString:Jt}={};const qt={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 Yt(...e){const t=e.reduce(((e,t)=>({...e,...t})),e.reduce(((e,t)=>({...t,...e})),{})),n=new WeakMap;return{stringify(e,r,i){const s=JSON.stringify(e,(function(e){const i=this[e],s=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 qt;let s=n.get(r);if(void 0!==s)return s;const o=(i=e,Jt.call(i).slice(8,-1)),c=Object.entries(t).find((([t,n])=>{var r,i;return null!==(i=null===(r=null==n?void 0:n.test)||void 0===r?void 0:r.call(n,e,o))&&void 0!==i?i:t===o}));return s=null==c?void 0:c[1],s||(s=Array.isArray(e)?null:"function"==typeof e?t.function||null:qt),n.set(r,s),s}default:return t[r]}var i}(i);return s?s.replace(i,r,t):i}),i);return s},parse(e,n){const r=[];return JSON.parse(e,(function(e,i){const s=null==i?void 0:i.$t;if(s){const e=t[s];i=e?e.revive(i,n,t):i}let o=r[r.length-1];if(o&&o[0]===i){i={...i};for(const e of o[1])delete i[e];for(const[e,t]of Object.entries(o[2]))i[e]=t;r.pop()}if(void 0===i||"$"===e[0]&&"$t"!==e){let t,n;o=r[r.length-1],o&&o[0]===this?(t=o[1],n=o[2]):r.push([this,t=[],n={}]),"$"===e[0]&&"$t"!==e?(t.push(e),n[e.substr(1)]=i):n[e]=void 0}return i}))}}}const Gt={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 Qt={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 Xt={bigint:{replace:e=>({$t:"bigint",v:""+e}),revive:e=>BigInt(e.v)}};var Zt={Date:{replace:e=>({$t:"Date",v:isNaN(e.getTime())?"NaN":e.toISOString()}),revive:({v:e})=>new Date("NaN"===e?NaN:Date.parse(e))}},en={Set:{replace:e=>({$t:"Set",v:Array.from(e.entries())}),revive:({v:e})=>new Set(e)}},tn={Map:{replace:e=>({$t:"Map",v:Array.from(e.entries())}),revive:({v:e})=>new Map(e)}};const nn="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof global?global:void 0;var rn=["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 i=nn[t];return i&&new i(r.ArrayBuffer.revive({v:e},n,r))}}})),{});function sn(e){return function(e){for(var t="",n=0,r=e.length;n<r;n++)t+=ln[e[n]];return t}(Me(e))}function on(e){return $e(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+=cn[e[n]];return t}(e))}const cn={"-":"=",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:"+","|":"/"},ln={};for(const e of Object.keys(cn))ln[cn[e]]=e;var an={ArrayBuffer:{replace:e=>({$t:"ArrayBuffer",v:sn(e)}),revive:({v:e})=>{const t=on(e);return t.buffer.byteLength===t.byteLength?t.buffer:t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}}};class un{constructor(e,t){this.buf=e,this.type=t}}function dn(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 hn(e){const t=new Uint8Array(e.length);for(let n=0;n<e.length;++n)t[n]=e.charCodeAt(n);return t.buffer}var fn={Blob:{test:(e,t)=>"Blob"===t||e instanceof un,replace:e=>({$t:"Blob",v:Me(e instanceof un?e.buf:hn(dn(e))),type:e.type}),revive:({type:e,v:t})=>{const n=$e(t);return void 0!==typeof Blob?new Blob([n]):new un(n.buffer,e)}}};const pn={...Qt,...Xt,...Zt,...en,...tn,...rn,...an,...fn};function gn(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 yn={undefined:{replace:()=>({$t:"undefined"}),revive:()=>{}}},vn={File:{test:(e,t)=>"File"===t,replace:e=>({$t:"File",v:Me(hn(dn(e))),type:e.type,name:e.name,lastModified:new Date(e.lastModified).toISOString()}),revive:({type:e,v:t,name:n,lastModified:r})=>{const i=$e(t);return new File([i],n,{type:e,lastModified:new Date(r).getTime()})}}};const mn="function"==typeof BigInt&&"bigint"==typeof BigInt(0);class bn{toString(){return this.v}constructor(e){this.v=e}}const wn=mn?{}:{bigint:{test:e=>e instanceof bn,replace:e=>Object.assign({$t:"bigint"},e),revive:({v:e})=>new bn(e)}},_n=Object.assign(Object.assign(Object.assign(Object.assign({},yn),wn),vn),{PropModification:{test:t=>t instanceof e.PropModification,replace:e=>Object.assign({$t:"PropModification"},e["@@propmod"]),revive:t=>{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 i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n}(t,["$t"]);return new e.PropModification(n)}}}),kn=Yt(pn,_n),Sn=function(...e){const t=Yt(pn,Gt,...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),i=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[i,r]},async parse(e,n){let r=0;const i=[],s=await gn(n),o=new DataView(s);for(;r<s.byteLength;){const e=o.getUint32(r);r+=4;const t=s.slice(r,r+e);r+=e,i.push(t)}return t.parse(e,i)},async fromBinary(e){const t=new DataView(await gn(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)}}}(_n);class En extends Error{constructor(e,t){super(t||`${e.status} ${e.statusText}`),this.httpStatus=e.status}get name(){return"HttpError"}}function xn(t,n,r){const i=[];for(let s of r){const{table:r,muts:o}=s,c=t.tables.find((e=>e.name===r));if(!c)throw new Error(`Internal error: table ${r} not found in DBCore schema`);const{primaryKey:l}=c;let a=s;o.forEach(((t,r)=>{const i=!l.outbound&&("upsert"===t.type||"insert"===t.type);t.keys.forEach(((t,o)=>{if(Array.isArray(t)){a===s&&(a=In(s,i));const e=a.muts[r],n=JSON.stringify(t);e.keys[o]=n}else if("#"===t[0]){a===s&&(a=In(s,i));const c=a.muts[r];if(!n.isLoggedIn)throw new Error("Internal error: Cannot sync private IDs before authenticated");const u=`${t}:${n.userId}`;c.keys[o]=u,i&&e.setByKeyPath(c.values[o],l.keyPath,u)}}))})),i.push(a)}return i}function In(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 Cn=new WeakMap;function An(e){return i(this,void 0,void 0,(function*(){var t,n;const r=(null!==(n=null===(t=Cn.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 On(e,t,n,r,s,o,c,l,a){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 Kt(s),d=null==u?void 0:u.accessToken;d&&(i.Authorization=`Bearer ${d}`);const h={v:2,dbID:null==n?void 0:n.remoteDbId,clientIdentity:l,schema:c||{},lastPull:n?{serverRevision:n.serverRevision,yServerRevision:n.yServerRevision,realms:n.realms,inviteRealms:n.inviteRealms}:void 0,baseRevs:r,changes:xn(s.dx.core.schema,a,e),y:t,dxcv:s.cloud.version};s.syncStateChangedEvent.next({phase:"pushing"});const f=kn.stringify(h),p=yield fetch(`${o}/sync`,{method:"post",headers:i,credentials:"include",body:f});if(s.syncStateChangedEvent.next({phase:"pulling"}),function(e,t){const n=t.headers.get("Ratelimit-Limit"),r=t.headers.get("Ratelimit-Remaining"),i=t.headers.get("Ratelimit-Reset");if(n&&r&&i){const t=Number(n),s=Math.max(0,Number(r)),o=Number(i);if(s<t/2){const t=Math.ceil(o/(s+1));Cn.set(e,new Date(Date.now()+1e3*t))}else Cn.delete(e)}}(s,p),!p.ok)throw new En(p);if("application/x-bison"===p.headers.get("content-type"))return Sn.fromBinary(yield p.blob());{const e=yield p.text();return kn.parse(e)}}))}function Dn(t){if(null==t?void 0:t.cancelled)throw new e.AbortError("Operation was cancelled")}let Tn=!1;function Un(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})))),yield e.$baseRevs.where("tableName").noneOf(Object.keys(t).filter((e=>t[e].markedForSync))).delete()}))}function jn(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 Pn(t,n,r){return i(this,void 0,void 0,(function*(){const i=yield t.bulkGet(n),s=[],o=[];n.forEach(((n,c)=>{const l=i[c];if(l){for(const[i,s]of Object.entries(r[c]))if(i===t.schema.primKey.keyPath){if(0!==e.cmp(s,n))throw new Error("Cannot change primary key")}else e.setByKeyPath(l,i,s);s.push(n),o.push(l)}})),yield null==t.schema.primKey.keyPath?t.bulkPut(o,s):t.bulkPut(o)}))}function Ln(t,n){return i(this,void 0,void 0,(function*(){for(const{table:r,muts:i}of t){if(!n.dx._allTables[r])continue;const t=n.table(r),{primaryKey:s}=t.core.schema,o=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 i){const r=n.keys.map(o);switch(n.type){case"insert":s.outbound?yield t.bulkAdd(n.values,r):(r.forEach(((t,r)=>{e.setByKeyPath(n.values[r],s.keyPath,t)})),yield t.bulkAdd(n.values));break;case"upsert":s.outbound?yield t.bulkPut(n.values,r):(r.forEach(((t,r)=>{e.setByKeyPath(n.values[r],s.keyPath,t)})),yield t.bulkPut(n.values));break;case"modify":1===r.length?yield t.update(r[0],n.changeSpec):yield t.where(":id").anyOf(r).modify(n.changeSpec);break;case"update":yield Pn(t,r,n.changeSpecs);break;case"delete":yield t.bulkDelete(r)}}}}))}"undefined"!=typeof self&&"undefined"!=typeof navigator&&(Tn=navigator.onLine,self.addEventListener("online",(()=>Tn=!0)),self.addEventListener("offline",(()=>Tn=!1)));const Rn="dexie-cloud-syncer";function Nn(e,t){return e.where("i").between(t,1/0,!0).toArray()}const $n=()=>new Map,Mn=e=>{const t=$n();return e.forEach(((e,n)=>{t.set(n,e)})),t},Bn=(e,t,n)=>{let r=e.get(t);return void 0===r&&e.set(t,r=n()),r},Fn=()=>new Set,Wn=e=>e[e.length-1],Vn=(e,t)=>{for(let n=0;n<t.length;n++)e.push(t[n])},Kn=Array.from,Hn=Array.isArray;class zn{constructor(){this._observers=$n()}on(e,t){return Bn(this._observers,e,Fn).add(t),t}once(e,t){const n=(...r)=>{this.off(e,n),t(...r)};this.on(e,n)}off(e,t){const n=this._observers.get(e);void 0!==n&&(n.delete(t),0===n.size&&this._observers.delete(e))}emit(e,t){return Kn((this._observers.get(e)||$n()).values()).forEach((e=>e(...t)))}destroy(){this._observers=$n()}}const Jn=Math.floor,qn=Math.abs,Yn=(e,t)=>e<t?e:t,Gn=(e,t)=>e>t?e:t,Qn=e=>0!==e?e<0:1/e<0,Xn=64,Zn=128,er=127,tr=Number.MAX_SAFE_INTEGER,nr=Number.isInteger||(e=>"number"==typeof e&&isFinite(e)&&Jn(e)===e),rr=/^\s*/g,ir=/([A-Z])/g,sr=(e,t)=>(e=>e.replace(rr,""))(e.replace(ir,(e=>`${t}${(e=>e.toLowerCase())(e)}`))),or="undefined"!=typeof TextEncoder?new TextEncoder:null,cr=or?e=>or.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 lr="undefined"==typeof TextDecoder?null:new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});lr&&1===lr.decode(new Uint8Array).length&&(lr=null);class ar{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}}const ur=()=>new ar,dr=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 i=e.bufs[r];t.set(i,n),n+=i.length}return t.set(new Uint8Array(e.cbuf.buffer,0,e.cpos),n),t},hr=(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},fr=hr,pr=(e,t)=>{for(;t>er;)hr(e,Zn|er&t),t=Jn(t/128);hr(e,er&t)},gr=(e,t)=>{const n=Qn(t);for(n&&(t=-t),hr(e,(t>63?Zn:0)|(n?Xn:0)|63&t),t=Jn(t/64);t>0;)hr(e,(t>er?Zn:0)|er&t),t=Jn(t/128)},yr=new Uint8Array(3e4),vr=yr.length/3,mr=or&&or.encodeInto?(e,t)=>{if(t.length<vr){const n=or.encodeInto(t,yr).written||0;pr(e,n);for(let t=0;t<n;t++)hr(e,yr[t])}else wr(e,cr(t))}:(e,t)=>{const n=unescape(encodeURIComponent(t)),r=n.length;pr(e,r);for(let t=0;t<r;t++)hr(e,n.codePointAt(t))},br=(e,t)=>{const n=e.cbuf.length,r=e.cpos,i=Yn(n-r,t.length),s=t.length-i;e.cbuf.set(t.subarray(0,i),r),e.cpos+=i,s>0&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(Gn(2*n,s)),e.cbuf.set(t.subarray(i)),e.cpos=s)},wr=(e,t)=>{pr(e,t.byteLength),br(e,t)},_r=(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*Gn(n,t)),e.cpos=0)})(e,t);const n=new DataView(e.cbuf.buffer,e.cpos,t);return e.cpos+=t,n},kr=new DataView(new ArrayBuffer(4)),Sr=(e,t)=>{switch(typeof t){case"string":hr(e,119),mr(e,t);break;case"number":nr(t)&&qn(t)<=2147483647?(hr(e,125),gr(e,t)):(n=t,kr.setFloat32(0,n),kr.getFloat32(0)===n?(hr(e,124),((e,t)=>{_r(e,4).setFloat32(0,t,!1)})(e,t)):(hr(e,123),((e,t)=>{_r(e,8).setFloat64(0,t,!1)})(e,t)));break;case"bigint":hr(e,122),((e,t)=>{_r(e,8).setBigInt64(0,t,!1)})(e,t);break;case"object":if(null===t)hr(e,126);else if(Hn(t)){hr(e,117),pr(e,t.length);for(let n=0;n<t.length;n++)Sr(e,t[n])}else if(t instanceof Uint8Array)hr(e,116),wr(e,t);else{hr(e,118);const n=Object.keys(t);pr(e,n.length);for(let r=0;r<n.length;r++){const i=n[r];mr(e,i),Sr(e,t[i])}}break;case"boolean":hr(e,t?120:121);break;default:hr(e,127)}var n};class Er extends ar{constructor(e){super(),this.w=e,this.s=null,this.count=0}write(e){this.s===e?this.count++:(this.count>0&&pr(this,this.count-1),this.count=1,this.w(this,e),this.s=e)}}const xr=e=>{e.count>0&&(gr(e.encoder,1===e.count?e.s:-e.s),e.count>1&&pr(e.encoder,e.count-2))};class Ir{constructor(){this.encoder=new ar,this.s=0,this.count=0}write(e){this.s===e?this.count++:(xr(this),this.count=1,this.s=e)}toUint8Array(){return xr(this),dr(this.encoder)}}const Cr=e=>{if(e.count>0){const t=2*e.diff+(1===e.count?0:1);gr(e.encoder,t),e.count>1&&pr(e.encoder,e.count-2)}};class Ar{constructor(){this.encoder=new ar,this.s=0,this.count=0,this.diff=0}write(e){this.diff===e-this.s?(this.s=e,this.count++):(Cr(this),this.count=1,this.diff=e-this.s,this.s=e)}toUint8Array(){return Cr(this),dr(this.encoder)}}class Or{constructor(){this.sarr=[],this.s="",this.lensE=new Ir}write(e){this.s+=e,this.s.length>19&&(this.sarr.push(this.s),this.s=""),this.lensE.write(e.length)}toUint8Array(){const e=new ar;return this.sarr.push(this.s),this.s="",mr(e,this.sarr.join("")),br(e,this.lensE.toUint8Array()),dr(e)}}const Dr=e=>new Error(e),Tr=()=>{throw Dr("Method unimplemented")},Ur=()=>{throw Dr("Unexpected case")},jr=Dr("Unexpected end of array"),Pr=Dr("Integer out of Range");class Lr{constructor(e){this.arr=e,this.pos=0}}const Rr=e=>new Lr(e),Nr=e=>((e,t)=>{const n=new Uint8Array(e.arr.buffer,e.pos+e.arr.byteOffset,t);return e.pos+=t,n})(e,Mr(e)),$r=e=>e.arr[e.pos++],Mr=e=>{let t=0,n=1;const r=e.arr.length;for(;e.pos<r;){const r=e.arr[e.pos++];if(t+=(r&er)*n,n*=128,r<Zn)return t;if(t>tr)throw Pr}throw jr},Br=e=>{let t=e.arr[e.pos++],n=63&t,r=64;const i=(t&Xn)>0?-1:1;if(0==(t&Zn))return i*n;const s=e.arr.length;for(;e.pos<s;){if(t=e.arr[e.pos++],n+=(t&er)*r,r*=128,t<Zn)return i*n;if(n>tr)throw Pr}throw jr},Fr=lr?e=>lr.decode(Nr(e)):e=>{let t=Mr(e);if(0===t)return"";{let n=String.fromCodePoint($r(e));if(--t<100)for(;t--;)n+=String.fromCodePoint($r(e));else for(;t>0;){const r=t<1e4?t:1e4,i=e.arr.subarray(e.pos,e.pos+r);e.pos+=r,n+=String.fromCodePoint.apply(null,i),t-=r}return decodeURIComponent(escape(n))}},Wr=(e,t)=>{const n=new DataView(e.arr.buffer,e.arr.byteOffset+e.pos,t);return e.pos+=t,n},Vr=[e=>{},e=>null,Br,e=>Wr(e,4).getFloat32(0,!1),e=>Wr(e,8).getFloat64(0,!1),e=>Wr(e,8).getBigInt64(0,!1),e=>!1,e=>!0,Fr,e=>{const t=Mr(e),n={};for(let r=0;r<t;r++){n[Fr(e)]=Kr(e)}return n},e=>{const t=Mr(e),n=[];for(let r=0;r<t;r++)n.push(Kr(e));return n},Nr],Kr=e=>Vr[127-$r(e)](e);class Hr extends Lr{constructor(e,t){super(e),this.reader=t,this.s=null,this.count=0}read(){var e;return 0===this.count&&(this.s=this.reader(this),(e=this).pos!==e.arr.length?this.count=Mr(this)+1:this.count=-1),this.count--,this.s}}class zr extends Lr{constructor(e){super(e),this.s=0,this.count=0}read(){if(0===this.count){this.s=Br(this);const e=Qn(this.s);this.count=1,e&&(this.s=-this.s,this.count=Mr(this)+2)}return this.count--,this.s}}class Jr extends Lr{constructor(e){super(e),this.s=0,this.count=0,this.diff=0}read(){if(0===this.count){const e=Br(this),t=1&e;this.diff=Jn(e/2),this.count=1,t&&(this.count=Mr(this)+2)}return this.s+=this.diff,this.count--,this.s}}class qr{constructor(e){this.decoder=new zr(e),this.str=Fr(this.decoder),this.spos=0}read(){const e=this.spos+this.decoder.read(),t=this.str.slice(this.spos,e);return this.spos=e,t}}const Yr=crypto.getRandomValues.bind(crypto),Gr=()=>Yr(new Uint32Array(1))[0],Qr=[1e7]+-1e3+-4e3+-8e3+-1e11,Xr=()=>Qr.replace(/[018]/g,(e=>(e^Gr()&15>>e/4).toString(16))),Zr=e=>new Promise(e);Promise.all.bind(Promise);const ei=e=>void 0===e?null:e;let ti=new class{constructor(){this.map=new Map}setItem(e,t){this.map.set(e,t)}getItem(e){return this.map.get(e)}},ni=!0;try{"undefined"!=typeof localStorage&&localStorage&&(ti=localStorage,ni=!1)}catch(ya){}const ri=ti,ii=Object.assign,si=Object.keys,oi=e=>si(e).length,ci=(e,t)=>e===t||oi(e)===oi(t)&&((e,t)=>{for(const n in e)if(!t(e[n],n))return!1;return!0})(e,((e,n)=>(void 0!==e||((e,t)=>Object.prototype.hasOwnProperty.call(e,t))(t,n))&&t[n]===e)),li=Object.freeze,ai=e=>{for(const t in e){const n=e[t];"object"!=typeof n&&"function"!=typeof n||ai(e[t])}return li(e)},ui=(e,t,n=0)=>{try{for(;n<e.length;n++)e[n](...t)}finally{n<e.length&&ui(e,t,n+1)}},di="undefined"!=typeof process&&process.release&&/node|io\.js/.test(process.release.name)&&"[object process]"===Object.prototype.toString.call("undefined"!=typeof process?process:0);let hi;const fi=e=>(()=>{if(void 0===hi)if(di){hi=$n();const e=process.argv;let t=null;for(let n=0;n<e.length;n++){const r=e[n];"-"===r[0]?(null!==t&&hi.set(t,""),t=r):null!==t&&(hi.set(t,r),t=null)}null!==t&&hi.set(t,"")}else"object"==typeof location?(hi=$n(),(location.search||"?").slice(1).split("&").forEach((e=>{if(0!==e.length){const[t,n]=e.split("=");hi.set(`--${sr(t,"-")}`,n),hi.set(`-${sr(t,"-")}`,n)}}))):hi=$n();return hi})().has(e),pi=e=>ei(di?process.env[e.toUpperCase().replaceAll("-","_")]:ri.getItem(e)),gi=e=>fi("--"+e)||null!==pi(e);gi("production");var yi;di&&(yi=process.env.FORCE_COLOR,["true","1","2"].includes(yi))||!fi("--no-colors")&&!gi("no-color")&&(!di||process.stdout.isTTY)&&(!di||fi("--color")||null!==pi("COLORTERM")||(pi("TERM")||"").includes("color"));class vi{constructor(e,t){this.left=e,this.right=t}}const mi=(e,t)=>new vi(e,t);"undefined"!=typeof DOMParser&&new DOMParser;const bi=Symbol,wi=bi(),_i=bi(),ki=bi(),Si=bi(),Ei=bi(),xi=bi(),Ii=bi(),Ci=bi(),Ai=bi(),Oi=(mi("font-weight","bold"),mi("font-weight","normal"),mi("color","blue"),mi("color","green"),mi("color","grey"),mi("color","red"),mi("color","purple"),mi("color","orange"),mi("color","black"),Fn()),Di=e=>({[Symbol.iterator](){return this},next:e}),Ti=(e,t)=>Di((()=>{const{done:n,value:r}=e.next();return{done:n,value:n?void 0:t(r)}}));class Ui{constructor(e,t){this.clock=e,this.len=t}}class ji{constructor(){this.clients=new Map}}const Pi=(e,t,n)=>t.clients.forEach(((t,r)=>{const i=e.doc.store.clients.get(r);if(null!=i){const r=i[i.length-1],s=r.id.clock+r.length;for(let r=0,o=t[r];r<t.length&&o.clock<s;o=t[++r])ys(e,i,o.clock,o.len,n)}})),Li=(e,t)=>{const n=e.clients.get(t.client);return void 0!==n&&null!==((e,t)=>{let n=0,r=e.length-1;for(;n<=r;){const i=Jn((n+r)/2),s=e[i],o=s.clock;if(o<=t){if(t<o+s.len)return i;n=i+1}else r=i-1}return null})(n,t.clock)},Ri=e=>{e.clients.forEach((e=>{let t,n;for(e.sort(((e,t)=>e.clock-t.clock)),t=1,n=1;t<e.length;t++){const r=e[n-1],i=e[t];r.clock+r.len>=i.clock?r.len=Gn(r.len,i.clock+i.len-r.clock):(n<t&&(e[n]=i),n++)}e.length=n}))},Ni=(e,t,n,r)=>{Bn(e.clients,t,(()=>[])).push(new Ui(n,r))},$i=(e,t)=>{pr(e.restEncoder,t.clients.size),Kn(t.clients.entries()).sort(((e,t)=>t[0]-e[0])).forEach((([t,n])=>{e.resetDsCurVal(),pr(e.restEncoder,t);const r=n.length;pr(e.restEncoder,r);for(let t=0;t<r;t++){const r=n[t];e.writeDsClock(r.clock),e.writeDsLen(r.len)}}))},Mi=(e,t,n)=>{const r=new ji,i=Mr(e.restDecoder);for(let s=0;s<i;s++){e.resetDsCurVal();const i=Mr(e.restDecoder),s=Mr(e.restDecoder),o=n.clients.get(i)||[],c=as(n,i);for(let n=0;n<s;n++){const n=e.readDsClock(),s=n+e.readDsLen();if(n<c){c<s&&Ni(r,i,c,s-c);let e=ds(o,n),l=o[e];for(!l.deleted&&l.id.clock<n&&(o.splice(e+1,0,Xo(t,l,n-l.id.clock)),e++);e<o.length&&(l=o[e++],l.id.clock<s);)l.deleted||(s<l.id.clock+l.length&&o.splice(e,0,Xo(t,l,s-l.id.clock)),l.delete(t))}else Ni(r,i,n,s-n)}}if(r.clients.size>0){const e=new Ji;return pr(e.restEncoder,0),$i(e,r),e.toUint8Array()}return null},Bi=Gr;class Fi extends zn{constructor({guid:e=Xr(),collectionid:t=null,gc:n=!0,gcFilter:r=(()=>!0),meta:i=null,autoLoad:s=!1,shouldLoad:o=!0}={}){super(),this.gc=n,this.gcFilter=r,this.clientID=Bi(),this.guid=e,this.collectionid=t,this.share=new Map,this.store=new cs,this._transaction=null,this._transactionCleanups=[],this.subdocs=new Set,this._item=null,this.shouldLoad=o,this.autoLoad=s,this.meta=i,this.isLoaded=!1,this.isSynced=!1,this.isDestroyed=!1,this.whenLoaded=Zr((e=>{this.on("load",(()=>{this.isLoaded=!0,e(this)}))}));const c=()=>Zr((e=>{const t=n=>{void 0!==n&&!0!==n||(this.off("sync",t),e())};this.on("sync",t)}));this.on("sync",(e=>{!1===e&&this.isSynced&&(this.whenSynced=c()),this.isSynced=void 0===e||!0===e,this.isSynced&&!this.isLoaded&&this.emit("load",[this])})),this.whenSynced=c()}load(){const e=this._item;null===e||this.shouldLoad||ks(e.parent.doc,(e=>{e.subdocsLoaded.add(this)}),null,!0),this.shouldLoad=!0}getSubdocs(){return this.subdocs}getSubdocGuids(){return new Set(Kn(this.subdocs).map((e=>e.guid)))}transact(e,t=null){return ks(this,e,t)}get(e,t=Fs){const n=Bn(this.share,e,(()=>{const e=new t;return e._integrate(this,null),e})),r=n.constructor;if(t!==Fs&&r!==t){if(r===Fs){const r=new t;r._map=n._map,n._map.forEach((e=>{for(;null!==e;e=e.left)e.parent=r})),r._start=n._start;for(let e=r._start;null!==e;e=e.right)e.parent=r;return r._length=n._length,this.share.set(e,r),r._integrate(this,null),r}throw new Error(`Type with the name ${e} has already been defined with a different constructor`)}return n}getArray(e=""){return this.get(e,so)}getText(e=""){return this.get(e,Eo)}getMap(e=""){return this.get(e,co)}getXmlElement(e=""){return this.get(e,Co)}getXmlFragment(e=""){return this.get(e,Io)}toJSON(){const e={};return this.share.forEach(((t,n)=>{e[n]=t.toJSON()})),e}destroy(){this.isDestroyed=!0,Kn(this.subdocs).forEach((e=>e.destroy()));const e=this._item;if(null!==e){this._item=null;const t=e.content;t.doc=new Fi({guid:this.guid,...t.opts,shouldLoad:!1}),t.doc._item=e,ks(e.parent.doc,(n=>{const r=t.doc;e.deleted||n.subdocsAdded.add(r),n.subdocsRemoved.add(this)}),null,!0)}this.emit("destroyed",[!0]),this.emit("destroy",[this]),super.destroy()}}class Wi{constructor(e){this.dsCurrVal=0,this.restDecoder=e}resetDsCurVal(){this.dsCurrVal=0}readDsClock(){return this.dsCurrVal+=Mr(this.restDecoder),this.dsCurrVal}readDsLen(){const e=Mr(this.restDecoder)+1;return this.dsCurrVal+=e,e}}class Vi extends Wi{constructor(e){super(e),this.keys=[],Mr(e),this.keyClockDecoder=new Jr(Nr(e)),this.clientDecoder=new zr(Nr(e)),this.leftClockDecoder=new Jr(Nr(e)),this.rightClockDecoder=new Jr(Nr(e)),this.infoDecoder=new Hr(Nr(e),$r),this.stringDecoder=new qr(Nr(e)),this.parentInfoDecoder=new Hr(Nr(e),$r),this.typeRefDecoder=new zr(Nr(e)),this.lenDecoder=new zr(Nr(e))}readLeftID(){return new ns(this.clientDecoder.read(),this.leftClockDecoder.read())}readRightID(){return new ns(this.clientDecoder.read(),this.rightClockDecoder.read())}readClient(){return this.clientDecoder.read()}readInfo(){return this.infoDecoder.read()}readString(){return this.stringDecoder.read()}readParentInfo(){return 1===this.parentInfoDecoder.read()}readTypeRef(){return this.typeRefDecoder.read()}readLen(){return this.lenDecoder.read()}readAny(){return Kr(this.restDecoder)}readBuf(){return Nr(this.restDecoder)}readJSON(){return Kr(this.restDecoder)}readKey(){const e=this.keyClockDecoder.read();if(e<this.keys.length)return this.keys[e];{const e=this.stringDecoder.read();return this.keys.push(e),e}}}class Ki{constructor(){this.restEncoder=ur()}toUint8Array(){return dr(this.restEncoder)}resetDsCurVal(){}writeDsClock(e){pr(this.restEncoder,e)}writeDsLen(e){pr(this.restEncoder,e)}}class Hi extends Ki{writeLeftID(e){pr(this.restEncoder,e.client),pr(this.restEncoder,e.clock)}writeRightID(e){pr(this.restEncoder,e.client),pr(this.restEncoder,e.clock)}writeClient(e){pr(this.restEncoder,e)}writeInfo(e){fr(this.restEncoder,e)}writeString(e){mr(this.restEncoder,e)}writeParentInfo(e){pr(this.restEncoder,e?1:0)}writeTypeRef(e){pr(this.restEncoder,e)}writeLen(e){pr(this.restEncoder,e)}writeAny(e){Sr(this.restEncoder,e)}writeBuf(e){wr(this.restEncoder,e)}writeJSON(e){mr(this.restEncoder,JSON.stringify(e))}writeKey(e){mr(this.restEncoder,e)}}class zi{constructor(){this.restEncoder=ur(),this.dsCurrVal=0}toUint8Array(){return dr(this.restEncoder)}resetDsCurVal(){this.dsCurrVal=0}writeDsClock(e){const t=e-this.dsCurrVal;this.dsCurrVal=e,pr(this.restEncoder,t)}writeDsLen(e){0===e&&Ur(),pr(this.restEncoder,e-1),this.dsCurrVal+=e}}class Ji extends zi{constructor(){super(),this.keyMap=new Map,this.keyClock=0,this.keyClockEncoder=new Ar,this.clientEncoder=new Ir,this.leftClockEncoder=new Ar,this.rightClockEncoder=new Ar,this.infoEncoder=new Er(fr),this.stringEncoder=new Or,this.parentInfoEncoder=new Er(fr),this.typeRefEncoder=new Ir,this.lenEncoder=new Ir}toUint8Array(){const e=ur();return pr(e,0),wr(e,this.keyClockEncoder.toUint8Array()),wr(e,this.clientEncoder.toUint8Array()),wr(e,this.leftClockEncoder.toUint8Array()),wr(e,this.rightClockEncoder.toUint8Array()),wr(e,dr(this.infoEncoder)),wr(e,this.stringEncoder.toUint8Array()),wr(e,dr(this.parentInfoEncoder)),wr(e,this.typeRefEncoder.toUint8Array()),wr(e,this.lenEncoder.toUint8Array()),br(e,dr(this.restEncoder)),dr(e)}writeLeftID(e){this.clientEncoder.write(e.client),this.leftClockEncoder.write(e.clock)}writeRightID(e){this.clientEncoder.write(e.client),this.rightClockEncoder.write(e.clock)}writeClient(e){this.clientEncoder.write(e)}writeInfo(e){this.infoEncoder.write(e)}writeString(e){this.stringEncoder.write(e)}writeParentInfo(e){this.parentInfoEncoder.write(e?1:0)}writeTypeRef(e){this.typeRefEncoder.write(e)}writeLen(e){this.lenEncoder.write(e)}writeAny(e){Sr(this.restEncoder,e)}writeBuf(e){wr(this.restEncoder,e)}writeJSON(e){Sr(this.restEncoder,e)}writeKey(e){const t=this.keyMap.get(e);void 0===t?(this.keyClockEncoder.write(this.keyClock++),this.stringEncoder.write(e)):this.keyClockEncoder.write(t)}}const qi=(e,t,n)=>{const r=new Map;n.forEach(((e,n)=>{as(t,n)>e&&r.set(n,e)})),ls(t).forEach(((e,t)=>{n.has(t)||r.set(t,0)})),pr(e.restEncoder,r.size),Kn(r.entries()).sort(((e,t)=>t[0]-e[0])).forEach((([n,r])=>{((e,t,n,r)=>{r=Gn(r,t[0].id.clock);const i=ds(t,r);pr(e.restEncoder,t.length-i),e.writeClient(n),pr(e.restEncoder,r);const s=t[i];s.write(e,r-s.id.clock);for(let n=i+1;n<t.length;n++)t[n].write(e,0)})(e,t.clients.get(n),n,r)}))},Yi=(e,t,n,r=new Vi(e))=>ks(t,(e=>{e.local=!1;let t=!1;const n=e.doc,i=n.store,s=((e,t)=>{const n=$n(),r=Mr(e.restDecoder);for(let i=0;i<r;i++){const r=Mr(e.restDecoder),i=new Array(r),s=e.readClient();let o=Mr(e.restDecoder);n.set(s,{i:0,refs:i});for(let n=0;n<r;n++){const r=e.readInfo();switch(31&r){case 0:{const t=e.readLen();i[n]=new Uo(is(s,o),t),o+=t;break}case 10:{const t=Mr(e.restDecoder);i[n]=new nc(is(s,o),t),o+=t;break}default:{const c=0==(192&r),l=new Zo(is(s,o),null,(r&Zn)===Zn?e.readLeftID():null,null,(r&Xn)===Xn?e.readRightID():null,c?e.readParentInfo()?t.get(e.readString()):e.readLeftID():null,c&&32==(32&r)?e.readString():null,ec(e,r));i[n]=l,o+=l.length}}}}return n})(r,n),o=((e,t,n)=>{const r=[];let i=Kn(n.keys()).sort(((e,t)=>e-t));if(0===i.length)return null;const s=()=>{if(0===i.length)return null;let e=n.get(i[i.length-1]);for(;e.refs.length===e.i;){if(i.pop(),!(i.length>0))return null;e=n.get(i[i.length-1])}return e};let o=s();if(null===o)return null;const c=new cs,l=new Map,a=(e,t)=>{const n=l.get(e);(null==n||n>t)&&l.set(e,t)};let u=o.refs[o.i++];const d=new Map,h=()=>{for(const e of r){const t=e.id.client,r=n.get(t);r?(r.i--,c.clients.set(t,r.refs.slice(r.i)),n.delete(t),r.i=0,r.refs=[]):c.clients.set(t,[e]),i=i.filter((e=>e!==t))}r.length=0};for(;;){if(u.constructor!==nc){const i=Bn(d,u.id.client,(()=>as(t,u.id.client)))-u.id.clock;if(i<0)r.push(u),a(u.id.client,u.id.clock-1),h();else{const s=u.getMissing(e,t);if(null!==s){r.push(u);const e=n.get(s)||{refs:[],i:0};if(e.refs.length!==e.i){u=e.refs[e.i++];continue}a(s,as(t,s)),h()}else(0===i||i<u.length)&&(u.integrate(e,i),d.set(u.id.client,u.id.clock+u.length))}}if(r.length>0)u=r.pop();else if(null!==o&&o.i<o.refs.length)u=o.refs[o.i++];else{if(o=s(),null===o)break;u=o.refs[o.i++]}}if(c.clients.size>0){const e=new Ji;return qi(e,c,new Map),pr(e.restEncoder,0),{missing:l,update:e.toUint8Array()}}return null})(e,i,s),c=i.pendingStructs;if(c){for(const[e,n]of c.missing)if(n<as(i,e)){t=!0;break}if(o){for(const[e,t]of o.missing){const n=c.missing.get(e);(null==n||n>t)&&c.missing.set(e,t)}c.update=Cs([c.update,o.update])}}else i.pendingStructs=o;const l=Mi(r,e,i);if(i.pendingDs){const t=new Vi(Rr(i.pendingDs));Mr(t.restDecoder);const n=Mi(t,e,i);i.pendingDs=l&&n?Cs([l,n]):l||n}else i.pendingDs=l;if(t){const t=i.pendingStructs.update;i.pendingStructs=null,Gi(e.doc,t)}}),n,!1),Gi=(e,t,n,r=Vi)=>{const i=Rr(t);Yi(i,e,n,new r(i))};class Qi{constructor(){this.l=[]}}const Xi=()=>new Qi,Zi=(e,t)=>e.l.push(t),es=(e,t)=>{const n=e.l;n.length;e.l=n.filter((e=>t!==e)),e.l.length},ts=(e,t,n)=>ui(e.l,[t,n]);class ns{constructor(e,t){this.client=e,this.clock=t}}const rs=(e,t)=>e===t||null!==e&&null!==t&&e.client===t.client&&e.clock===t.clock,is=(e,t)=>new ns(e,t),ss=(e,t)=>void 0===t?!e.deleted:t.sv.has(e.id.client)&&(t.sv.get(e.id.client)||0)>e.id.clock&&!Li(t.ds,e.id),os=(e,t)=>{const n=Bn(e.meta,os,Fn),r=e.doc.store;n.has(t)||(t.sv.forEach(((t,n)=>{t<as(r,n)&&ps(e,is(n,t))})),Pi(e,t.ds,(e=>{})),n.add(t))};class cs{constructor(){this.clients=new Map,this.pendingStructs=null,this.pendingDs=null}}const ls=e=>{const t=new Map;return e.clients.forEach(((e,n)=>{const r=e[e.length-1];t.set(n,r.id.clock+r.length)})),t},as=(e,t)=>{const n=e.clients.get(t);if(void 0===n)return 0;const r=n[n.length-1];return r.id.clock+r.length},us=(e,t)=>{let n=e.clients.get(t.id.client);if(void 0===n)n=[],e.clients.set(t.id.client,n);else{const e=n[n.length-1];if(e.id.clock+e.length!==t.id.clock)throw Ur()}n.push(t)},ds=(e,t)=>{let n=0,r=e.length-1,i=e[r],s=i.id.clock;if(s===t)return r;let o=Jn(t/(s+i.length-1)*r);for(;n<=r;){if(i=e[o],s=i.id.clock,s<=t){if(t<s+i.length)return o;n=o+1}else r=o-1;o=Jn((n+r)/2)}throw Ur()},hs=(e,t)=>{const n=e.clients.get(t.client);return n[ds(n,t.clock)]},fs=(e,t,n)=>{const r=ds(t,n),i=t[r];return i.id.clock<n&&i instanceof Zo?(t.splice(r+1,0,Xo(e,i,n-i.id.clock)),r+1):r},ps=(e,t)=>{const n=e.doc.store.clients.get(t.client);return n[fs(e,n,t.clock)]},gs=(e,t,n)=>{const r=t.clients.get(n.client),i=ds(r,n.clock),s=r[i];return n.clock!==s.id.clock+s.length-1&&s.constructor!==Uo&&r.splice(i+1,0,Xo(e,s,n.clock-s.id.clock+1)),s},ys=(e,t,n,r,i)=>{if(0===r)return;const s=n+r;let o,c=fs(e,t,n);do{o=t[c++],s<o.id.clock+o.length&&fs(e,t,s),i(o)}while(c<t.length&&t[c].id.clock<s)};class vs{constructor(e,t,n){this.doc=e,this.deleteSet=new ji,this.beforeState=ls(e.store),this.afterState=new Map,this.changed=new Map,this.changedParentTypes=new Map,this._mergeStructs=[],this.origin=t,this.meta=new Map,this.local=n,this.subdocsAdded=new Set,this.subdocsRemoved=new Set,this.subdocsLoaded=new Set,this._needFormattingCleanup=!1}}const ms=(e,t)=>!(0===t.deleteSet.clients.size&&!((e,t)=>{for(const[n,r]of e)if(t(r,n))return!0;return!1})(t.afterState,((e,n)=>t.beforeState.get(n)!==e)))&&(Ri(t.deleteSet),((e,t)=>{qi(e,t.doc.store,t.beforeState)})(e,t),$i(e,t.deleteSet),!0),bs=(e,t,n)=>{const r=t._item;(null===r||r.id.clock<(e.beforeState.get(r.id.client)||0)&&!r.deleted)&&Bn(e.changed,t,Fn).add(n)},ws=(e,t)=>{let n=e[t],r=e[t-1],i=t;for(;i>0&&(r.deleted===n.deleted&&r.constructor===n.constructor&&r.mergeWith(n));n=r,r=e[--i-1])n instanceof Zo&&null!==n.parentSub&&n.parent._map.get(n.parentSub)===n&&n.parent._map.set(n.parentSub,r);const s=t-i;return s&&e.splice(t+1-s,s),s},_s=(e,t)=>{if(t<e.length){const n=e[t],r=n.doc,i=r.store,s=n.deleteSet,o=n._mergeStructs;try{Ri(s),n.afterState=ls(n.doc.store),r.emit("beforeObserverCalls",[n,r]);const e=[];n.changed.forEach(((t,r)=>e.push((()=>{null!==r._item&&r._item.deleted||r._callObserver(n,t)})))),e.push((()=>{n.changedParentTypes.forEach(((e,t)=>{t._dEH.l.length>0&&(null===t._item||!t._item.deleted)&&((e=e.filter((e=>null===e.target._item||!e.target._item.deleted))).forEach((e=>{e.currentTarget=t,e._path=null})),e.sort(((e,t)=>e.path.length-t.path.length)),ts(t._dEH,e,n))}))})),e.push((()=>r.emit("afterTransaction",[n,r]))),ui(e,[]),n._needFormattingCleanup&&_o(n)}finally{r.gc&&((e,t,n)=>{for(const[r,i]of e.clients.entries()){const e=t.clients.get(r);for(let r=i.length-1;r>=0;r--){const s=i[r],o=s.clock+s.len;for(let r=ds(e,s.clock),i=e[r];r<e.length&&i.id.clock<o;i=e[++r]){const i=e[r];if(s.clock+s.len<=i.id.clock)break;i instanceof Zo&&i.deleted&&!i.keep&&n(i)&&i.gc(t,!1)}}}})(s,i,r.gcFilter),((e,t)=>{e.clients.forEach(((e,n)=>{const r=t.clients.get(n);for(let t=e.length-1;t>=0;t--){const n=e[t];for(let e=Yn(r.length-1,1+ds(r,n.clock+n.len-1)),t=r[e];e>0&&t.id.clock>=n.clock;t=r[e])e-=1+ws(r,e)}}))})(s,i),n.afterState.forEach(((e,t)=>{const r=n.beforeState.get(t)||0;if(r!==e){const e=i.clients.get(t),n=Gn(ds(e,r),1);for(let t=e.length-1;t>=n;)t-=1+ws(e,t)}}));for(let e=o.length-1;e>=0;e--){const{client:t,clock:n}=o[e].id,r=i.clients.get(t),s=ds(r,n);s+1<r.length&&ws(r,s+1)>1||s>0&&ws(r,s)}if(n.local||n.afterState.get(r.clientID)===n.beforeState.get(r.clientID)||(((...e)=>{Oi.forEach((t=>t.print(e)))})(Ci,wi,"[yjs] ",_i,xi,"Changed the client-id because another client seems to be using it."),r.clientID=Bi()),r.emit("afterTransactionCleanup",[n,r]),r._observers.has("update")){const e=new Hi;ms(e,n)&&r.emit("update",[e.toUint8Array(),n.origin,r,n])}if(r._observers.has("updateV2")){const e=new Ji;ms(e,n)&&r.emit("updateV2",[e.toUint8Array(),n.origin,r,n])}const{subdocsAdded:c,subdocsLoaded:l,subdocsRemoved:a}=n;(c.size>0||a.size>0||l.size>0)&&(c.forEach((e=>{e.clientID=r.clientID,null==e.collectionid&&(e.collectionid=r.collectionid),r.subdocs.add(e)})),a.forEach((e=>r.subdocs.delete(e))),r.emit("subdocs",[{loaded:l,added:c,removed:a},r,n]),a.forEach((e=>e.destroy()))),e.length<=t+1?(r._transactionCleanups=[],r.emit("afterAllTransactions",[r,e])):_s(e,t+1)}}},ks=(e,t,n=null,r=!0)=>{const i=e._transactionCleanups;let s=!1,o=null;null===e._transaction&&(s=!0,e._transaction=new vs(e,n,r),i.push(e._transaction),1===i.length&&e.emit("beforeAllTransactions",[e]),e.emit("beforeTransaction",[e._transaction,e]));try{o=t(e._transaction)}finally{if(s){const t=e._transaction===i[0];e._transaction=null,t&&_s(i,0)}}return o};class Ss{constructor(e,t){this.gen=function*(e){const t=Mr(e.restDecoder);for(let n=0;n<t;n++){const t=Mr(e.restDecoder),n=e.readClient();let r=Mr(e.restDecoder);for(let i=0;i<t;i++){const t=e.readInfo();if(10===t){const t=Mr(e.restDecoder);yield new nc(is(n,r),t),r+=t}else if(0!=(31&t)){const i=0==(192&t),s=new Zo(is(n,r),null,(t&Zn)===Zn?e.readLeftID():null,null,(t&Xn)===Xn?e.readRightID():null,i?e.readParentInfo()?e.readString():e.readLeftID():null,i&&32==(32&t)?e.readString():null,ec(e,t));yield s,r+=s.length}else{const t=e.readLen();yield new Uo(is(n,r),t),r+=t}}}}(e),this.curr=null,this.done=!1,this.filterSkips=t,this.next()}next(){do{this.curr=this.gen.next().value||null}while(this.filterSkips&&null!==this.curr&&this.curr.constructor===nc);return this.curr}}class Es{constructor(e){this.currClient=0,this.startClock=0,this.written=0,this.encoder=e,this.clientStructs=[]}}const xs=(e,t=zi,n=Vi)=>{const r=new t,i=new Ss(new n(Rr(e)),!1);let s=i.curr;if(null!==s){let e=0,t=s.id.client,n=0!==s.id.clock,o=n?0:s.id.clock+s.length;for(;null!==s;s=i.next())t!==s.id.client&&(0!==o&&(e++,pr(r.restEncoder,t),pr(r.restEncoder,o)),t=s.id.client,o=0,n=0!==s.id.clock),s.constructor===nc&&(n=!0),n||(o=s.id.clock+s.length);0!==o&&(e++,pr(r.restEncoder,t),pr(r.restEncoder,o));const c=ur();return pr(c,e),((e,t)=>{br(e,dr(t))})(c,r.restEncoder),r.restEncoder=c,r.toUint8Array()}return pr(r.restEncoder,0),r.toUint8Array()},Is=(e,t)=>{if(e.constructor===Uo){const{client:n,clock:r}=e.id;return new Uo(is(n,r+t),e.length-t)}if(e.constructor===nc){const{client:n,clock:r}=e.id;return new nc(is(n,r+t),e.length-t)}{const n=e,{client:r,clock:i}=n.id;return new Zo(is(r,i+t),null,is(r,i+t-1),null,n.rightOrigin,n.parent,n.parentSub,n.content.splice(t))}},Cs=(e,t=Vi,n=Ji)=>{if(1===e.length)return e[0];const r=e.map((e=>new t(Rr(e))));let i=r.map((e=>new Ss(e,!0))),s=null;const o=new n,c=new Es(o);for(;i=i.filter((e=>null!==e.curr)),i.sort(((e,t)=>{if(e.curr.id.client===t.curr.id.client){const n=e.curr.id.clock-t.curr.id.clock;return 0===n?e.curr.constructor===t.curr.constructor?0:e.curr.constructor===nc?1:-1:n}return t.curr.id.client-e.curr.id.client})),0!==i.length;){const e=i[0],t=e.curr.id.client;if(null!==s){let n=e.curr,r=!1;for(;null!==n&&n.id.clock+n.length<=s.struct.id.clock+s.struct.length&&n.id.client>=s.struct.id.client;)n=e.next(),r=!0;if(null===n||n.id.client!==t||r&&n.id.clock>s.struct.id.clock+s.struct.length)continue;if(t!==s.struct.id.client)Os(c,s.struct,s.offset),s={struct:n,offset:0},e.next();else if(s.struct.id.clock+s.struct.length<n.id.clock)if(s.struct.constructor===nc)s.struct.length=n.id.clock+n.length-s.struct.id.clock;else{Os(c,s.struct,s.offset);const e=n.id.clock-s.struct.id.clock-s.struct.length;s={struct:new nc(is(t,s.struct.id.clock+s.struct.length),e),offset:0}}else{const t=s.struct.id.clock+s.struct.length-n.id.clock;t>0&&(s.struct.constructor===nc?s.struct.length-=t:n=Is(n,t)),s.struct.mergeWith(n)||(Os(c,s.struct,s.offset),s={struct:n,offset:0},e.next())}}else s={struct:e.curr,offset:0},e.next();for(let n=e.curr;null!==n&&n.id.client===t&&n.id.clock===s.struct.id.clock+s.struct.length&&n.constructor!==nc;n=e.next())Os(c,s.struct,s.offset),s={struct:n,offset:0}}null!==s&&(Os(c,s.struct,s.offset),s=null),Ds(c);const l=r.map((e=>(e=>{const t=new ji,n=Mr(e.restDecoder);for(let r=0;r<n;r++){e.resetDsCurVal();const n=Mr(e.restDecoder),r=Mr(e.restDecoder);if(r>0){const i=Bn(t.clients,n,(()=>[]));for(let t=0;t<r;t++)i.push(new Ui(e.readDsClock(),e.readDsLen()))}}return t})(e))),a=(e=>{const t=new ji;for(let n=0;n<e.length;n++)e[n].clients.forEach(((r,i)=>{if(!t.clients.has(i)){const s=r.slice();for(let t=n+1;t<e.length;t++)Vn(s,e[t].clients.get(i)||[]);t.clients.set(i,s)}}));return Ri(t),t})(l);return $i(o,a),o.toUint8Array()},As=e=>{e.written>0&&(e.clientStructs.push({written:e.written,restEncoder:dr(e.encoder.restEncoder)}),e.encoder.restEncoder=ur(),e.written=0)},Os=(e,t,n)=>{e.written>0&&e.currClient!==t.id.client&&As(e),0===e.written&&(e.currClient=t.id.client,e.encoder.writeClient(t.id.client),pr(e.encoder.restEncoder,t.id.clock+n)),t.write(e.encoder,n),e.written++},Ds=e=>{As(e);const t=e.encoder.restEncoder;pr(t,e.clientStructs.length);for(let n=0;n<e.clientStructs.length;n++){const r=e.clientStructs[n];pr(t,r.written),br(t,r.restEncoder)}},Ts="You must not compute changes after the event-handler fired.";class Us{constructor(e,t){this.target=e,this.currentTarget=e,this.transaction=t,this._changes=null,this._keys=null,this._delta=null,this._path=null}get path(){return this._path||(this._path=js(this.currentTarget,this.target))}deletes(e){return Li(this.transaction.deleteSet,e.id)}get keys(){if(null===this._keys){if(0===this.transaction.doc._transactionCleanups.length)throw Dr(Ts);const e=new Map,t=this.target;this.transaction.changed.get(t).forEach((n=>{if(null!==n){const r=t._map.get(n);let i,s;if(this.adds(r)){let e=r.left;for(;null!==e&&this.adds(e);)e=e.left;if(this.deletes(r)){if(null===e||!this.deletes(e))return;i="delete",s=Wn(e.content.getContent())}else null!==e&&this.deletes(e)?(i="update",s=Wn(e.content.getContent())):(i="add",s=void 0)}else{if(!this.deletes(r))return;i="delete",s=Wn(r.content.getContent())}e.set(n,{action:i,oldValue:s})}})),this._keys=e}return this._keys}get delta(){return this.changes.delta}adds(e){return e.id.clock>=(this.transaction.beforeState.get(e.id.client)||0)}get changes(){let e=this._changes;if(null===e){if(0===this.transaction.doc._transactionCleanups.length)throw Dr(Ts);const t=this.target,n=Fn(),r=Fn(),i=[];e={added:n,deleted:r,delta:i,keys:this.keys};if(this.transaction.changed.get(t).has(null)){let e=null;const s=()=>{e&&i.push(e)};for(let i=t._start;null!==i;i=i.right)i.deleted?this.deletes(i)&&!this.adds(i)&&(null!==e&&void 0!==e.delete||(s(),e={delete:0}),e.delete+=i.length,r.add(i)):this.adds(i)?(null!==e&&void 0!==e.insert||(s(),e={insert:[]}),e.insert=e.insert.concat(i.content.getContent()),n.add(i)):(null!==e&&void 0!==e.retain||(s(),e={retain:0}),e.retain+=i.length);null!==e&&void 0===e.retain&&s()}this._changes=e}return e}}const js=(e,t)=>{const n=[];for(;null!==t._item&&t!==e;){if(null!==t._item.parentSub)n.unshift(t._item.parentSub);else{let e=0,r=t._item.parent._start;for(;r!==t._item&&null!==r;)!r.deleted&&r.countable&&(e+=r.length),r=r.right;n.unshift(e)}t=t._item.parent}return n},Ps=()=>{((...e)=>{e.unshift(Ci),Oi.forEach((t=>t.print(e)))})("Invalid access: Add Yjs type to a document before reading data.")};let Ls=0;class Rs{constructor(e,t){e.marker=!0,this.p=e,this.index=t,this.timestamp=Ls++}}const Ns=(e,t,n)=>{e.p.marker=!1,e.p=t,t.marker=!0,e.index=n,e.timestamp=Ls++},$s=(e,t)=>{if(null===e._start||0===t||null===e._searchMarker)return null;const n=0===e._searchMarker.length?null:e._searchMarker.reduce(((e,n)=>qn(t-e.index)<qn(t-n.index)?e:n));let r=e._start,i=0;for(null!==n&&(r=n.p,i=n.index,(e=>{e.timestamp=Ls++})(n));null!==r.right&&i<t;){if(!r.deleted&&r.countable){if(t<i+r.length)break;i+=r.length}r=r.right}for(;null!==r.left&&i>t;)r=r.left,!r.deleted&&r.countable&&(i-=r.length);for(;null!==r.left&&r.left.id.client===r.id.client&&r.left.id.clock+r.left.length===r.id.clock;)r=r.left,!r.deleted&&r.countable&&(i-=r.length);return null!==n&&qn(n.index-i)<r.parent.length/80?(Ns(n,r,i),n):((e,t,n)=>{if(e.length>=80){const r=e.reduce(((e,t)=>e.timestamp<t.timestamp?e:t));return Ns(r,t,n),r}{const r=new Rs(t,n);return e.push(r),r}})(e._searchMarker,r,i)},Ms=(e,t,n)=>{for(let r=e.length-1;r>=0;r--){const i=e[r];if(n>0){let t=i.p;for(t.marker=!1;t&&(t.deleted||!t.countable);)t=t.left,t&&!t.deleted&&t.countable&&(i.index-=t.length);if(null===t||!0===t.marker){e.splice(r,1);continue}i.p=t,t.marker=!0}(t<i.index||n>0&&t===i.index)&&(i.index=Gn(t,i.index+n))}},Bs=(e,t,n)=>{const r=e,i=t.changedParentTypes;for(;Bn(i,e,(()=>[])).push(n),null!==e._item;)e=e._item.parent;ts(r._eH,n,t)};class Fs{constructor(){this._item=null,this._map=new Map,this._start=null,this.doc=null,this._length=0,this._eH=Xi(),this._dEH=Xi(),this._searchMarker=null}get parent(){return this._item?this._item.parent:null}_integrate(e,t){this.doc=e,this._item=t}_copy(){throw Tr()}clone(){throw Tr()}_write(e){}get _first(){let e=this._start;for(;null!==e&&e.deleted;)e=e.right;return e}_callObserver(e,t){!e.local&&this._searchMarker&&(this._searchMarker.length=0)}observe(e){Zi(this._eH,e)}observeDeep(e){Zi(this._dEH,e)}unobserve(e){es(this._eH,e)}unobserveDeep(e){es(this._dEH,e)}toJSON(){}}const Ws=(e,t,n)=>{e.doc??Ps(),t<0&&(t=e._length+t),n<0&&(n=e._length+n);let r=n-t;const i=[];let s=e._start;for(;null!==s&&r>0;){if(s.countable&&!s.deleted){const e=s.content.getContent();if(e.length<=t)t-=e.length;else{for(let n=t;n<e.length&&r>0;n++)i.push(e[n]),r--;t=0}}s=s.right}return i},Vs=e=>{e.doc??Ps();const t=[];let n=e._start;for(;null!==n;){if(n.countable&&!n.deleted){const e=n.content.getContent();for(let n=0;n<e.length;n++)t.push(e[n])}n=n.right}return t},Ks=(e,t)=>{let n=0,r=e._start;for(e.doc??Ps();null!==r;){if(r.countable&&!r.deleted){const i=r.content.getContent();for(let r=0;r<i.length;r++)t(i[r],n++,e)}r=r.right}},Hs=(e,t)=>{const n=[];return Ks(e,((r,i)=>{n.push(t(r,i,e))})),n},zs=e=>{let t=e._start,n=null,r=0;return{[Symbol.iterator](){return this},next:()=>{if(null===n){for(;null!==t&&t.deleted;)t=t.right;if(null===t)return{done:!0,value:void 0};n=t.content.getContent(),r=0,t=t.right}const e=n[r++];return n.length<=r&&(n=null),{done:!1,value:e}}}},Js=(e,t)=>{e.doc??Ps();const n=$s(e,t);let r=e._start;for(null!==n&&(r=n.p,t-=n.index);null!==r;r=r.right)if(!r.deleted&&r.countable){if(t<r.length)return r.content.getContent()[t];t-=r.length}},qs=(e,t,n,r)=>{let i=n;const s=e.doc,o=s.clientID,c=s.store,l=null===n?t._start:n.right;let a=[];const u=()=>{a.length>0&&(i=new Zo(is(o,as(c,o)),i,i&&i.lastId,l,l&&l.id,t,null,new Fo(a)),i.integrate(e,0),a=[])};r.forEach((n=>{if(null===n)a.push(n);else switch(n.constructor){case Number:case Object:case Boolean:case Array:case String:a.push(n);break;default:switch(u(),n.constructor){case Uint8Array:case ArrayBuffer:i=new Zo(is(o,as(c,o)),i,i&&i.lastId,l,l&&l.id,t,null,new jo(new Uint8Array(n))),i.integrate(e,0);break;case Fi:i=new Zo(is(o,as(c,o)),i,i&&i.lastId,l,l&&l.id,t,null,new Ro(n)),i.integrate(e,0);break;default:if(!(n instanceof Fs))throw new Error("Unexpected content type in insert operation");i=new Zo(is(o,as(c,o)),i,i&&i.lastId,l,l&&l.id,t,null,new Qo(n)),i.integrate(e,0)}}})),u()},Ys=()=>Dr("Length exceeded!"),Gs=(e,t,n,r)=>{if(n>t._length)throw Ys();if(0===n)return t._searchMarker&&Ms(t._searchMarker,n,r.length),qs(e,t,null,r);const i=n,s=$s(t,n);let o=t._start;for(null!==s&&(o=s.p,0===(n-=s.index)&&(o=o.prev,n+=o&&o.countable&&!o.deleted?o.length:0));null!==o;o=o.right)if(!o.deleted&&o.countable){if(n<=o.length){n<o.length&&ps(e,is(o.id.client,o.id.clock+n));break}n-=o.length}return t._searchMarker&&Ms(t._searchMarker,i,r.length),qs(e,t,o,r)},Qs=(e,t,n,r)=>{if(0===r)return;const i=n,s=r,o=$s(t,n);let c=t._start;for(null!==o&&(c=o.p,n-=o.index);null!==c&&n>0;c=c.right)!c.deleted&&c.countable&&(n<c.length&&ps(e,is(c.id.client,c.id.clock+n)),n-=c.length);for(;r>0&&null!==c;)c.deleted||(r<c.length&&ps(e,is(c.id.client,c.id.clock+r)),c.delete(e),r-=c.length),c=c.right;if(r>0)throw Ys();t._searchMarker&&Ms(t._searchMarker,i,-s+r)},Xs=(e,t,n)=>{const r=t._map.get(n);void 0!==r&&r.delete(e)},Zs=(e,t,n,r)=>{const i=t._map.get(n)||null,s=e.doc,o=s.clientID;let c;if(null==r)c=new Fo([r]);else switch(r.constructor){case Number:case Object:case Boolean:case Array:case String:case Date:case BigInt:c=new Fo([r]);break;case Uint8Array:c=new jo(r);break;case Fi:c=new Ro(r);break;default:if(!(r instanceof Fs))throw new Error("Unexpected content type");c=new Qo(r)}new Zo(is(o,as(s.store,o)),i,i&&i.lastId,null,null,t,n,c).integrate(e,0)},eo=(e,t)=>{e.doc??Ps();const n=e._map.get(t);return void 0===n||n.deleted?void 0:n.content.getContent()[n.length-1]},to=e=>{const t={};return e.doc??Ps(),e._map.forEach(((e,n)=>{e.deleted||(t[n]=e.content.getContent()[e.length-1])})),t},no=(e,t)=>{e.doc??Ps();const n=e._map.get(t);return void 0!==n&&!n.deleted},ro=e=>(e.doc??Ps(),((e,t)=>Di((()=>{let n;do{n=e.next()}while(!n.done&&!t(n.value));return n})))(e._map.entries(),(e=>!e[1].deleted)));class io extends Us{}class so extends Fs{constructor(){super(),this._prelimContent=[],this._searchMarker=[]}static from(e){const t=new so;return t.push(e),t}_integrate(e,t){super._integrate(e,t),this.insert(0,this._prelimContent),this._prelimContent=null}_copy(){return new so}clone(){const e=new so;return e.insert(0,this.toArray().map((e=>e instanceof Fs?e.clone():e))),e}get length(){return this.doc??Ps(),this._length}_callObserver(e,t){super._callObserver(e,t),Bs(this,e,new io(this,e))}insert(e,t){null!==this.doc?ks(this.doc,(n=>{Gs(n,this,e,t)})):this._prelimContent.splice(e,0,...t)}push(e){null!==this.doc?ks(this.doc,(t=>{((e,t,n)=>{let r=(t._searchMarker||[]).reduce(((e,t)=>t.index>e.index?t:e),{index:0,p:t._start}).p;if(r)for(;r.right;)r=r.right;qs(e,t,r,n)})(t,this,e)})):this._prelimContent.push(...e)}unshift(e){this.insert(0,e)}delete(e,t=1){null!==this.doc?ks(this.doc,(n=>{Qs(n,this,e,t)})):this._prelimContent.splice(e,t)}get(e){return Js(this,e)}toArray(){return Vs(this)}slice(e=0,t=this.length){return Ws(this,e,t)}toJSON(){return this.map((e=>e instanceof Fs?e.toJSON():e))}map(e){return Hs(this,e)}forEach(e){Ks(this,e)}[Symbol.iterator](){return zs(this)}_write(e){e.writeTypeRef(Ko)}}class oo extends Us{constructor(e,t,n){super(e,t),this.keysChanged=n}}class co extends Fs{constructor(e){super(),this._prelimContent=null,this._prelimContent=void 0===e?new Map:new Map(e)}_integrate(e,t){super._integrate(e,t),this._prelimContent.forEach(((e,t)=>{this.set(t,e)})),this._prelimContent=null}_copy(){return new co}clone(){const e=new co;return this.forEach(((t,n)=>{e.set(n,t instanceof Fs?t.clone():t)})),e}_callObserver(e,t){Bs(this,e,new oo(this,e,t))}toJSON(){this.doc??Ps();const e={};return this._map.forEach(((t,n)=>{if(!t.deleted){const r=t.content.getContent()[t.length-1];e[n]=r instanceof Fs?r.toJSON():r}})),e}get size(){return[...ro(this)].length}keys(){return Ti(ro(this),(e=>e[0]))}values(){return Ti(ro(this),(e=>e[1].content.getContent()[e[1].length-1]))}entries(){return Ti(ro(this),(e=>[e[0],e[1].content.getContent()[e[1].length-1]]))}forEach(e){this.doc??Ps(),this._map.forEach(((t,n)=>{t.deleted||e(t.content.getContent()[t.length-1],n,this)}))}[Symbol.iterator](){return this.entries()}delete(e){null!==this.doc?ks(this.doc,(t=>{Xs(t,this,e)})):this._prelimContent.delete(e)}set(e,t){return null!==this.doc?ks(this.doc,(n=>{Zs(n,this,e,t)})):this._prelimContent.set(e,t),t}get(e){return eo(this,e)}has(e){return no(this,e)}clear(){null!==this.doc?ks(this.doc,(e=>{this.forEach((function(t,n,r){Xs(e,r,n)}))})):this._prelimContent.clear()}_write(e){e.writeTypeRef(Ho)}}const lo=(e,t)=>e===t||"object"==typeof e&&"object"==typeof t&&e&&t&&ci(e,t);class ao{constructor(e,t,n,r){this.left=e,this.right=t,this.index=n,this.currentAttributes=r}forward(){if(null===this.right&&Ur(),this.right.content.constructor===$o)this.right.deleted||po(this.currentAttributes,this.right.content);else this.right.deleted||(this.index+=this.right.length);this.left=this.right,this.right=this.right.right}}const uo=(e,t,n)=>{for(;null!==t.right&&n>0;){if(t.right.content.constructor===$o)t.right.deleted||po(t.currentAttributes,t.right.content);else t.right.deleted||(n<t.right.length&&ps(e,is(t.right.id.client,t.right.id.clock+n)),t.index+=t.right.length,n-=t.right.length);t.left=t.right,t.right=t.right.right}return t},ho=(e,t,n,r)=>{const i=new Map,s=r?$s(t,n):null;if(s){const t=new ao(s.p.left,s.p,s.index,i);return uo(e,t,n-s.index)}{const r=new ao(null,t._start,0,i);return uo(e,r,n)}},fo=(e,t,n,r)=>{for(;null!==n.right&&(!0===n.right.deleted||n.right.content.constructor===$o&&lo(r.get(n.right.content.key),n.right.content.value));)n.right.deleted||r.delete(n.right.content.key),n.forward();const i=e.doc,s=i.clientID;r.forEach(((r,o)=>{const c=n.left,l=n.right,a=new Zo(is(s,as(i.store,s)),c,c&&c.lastId,l,l&&l.id,t,null,new $o(o,r));a.integrate(e,0),n.right=a,n.forward()}))},po=(e,t)=>{const{key:n,value:r}=t;null===r?e.delete(n):e.set(n,r)},go=(e,t)=>{for(;null!==e.right&&(e.right.deleted||e.right.content.constructor===$o&&lo(t[e.right.content.key]??null,e.right.content.value));)e.forward()},yo=(e,t,n,r)=>{const i=e.doc,s=i.clientID,o=new Map;for(const c in r){const l=r[c],a=n.currentAttributes.get(c)??null;if(!lo(a,l)){o.set(c,a);const{left:r,right:u}=n;n.right=new Zo(is(s,as(i.store,s)),r,r&&r.lastId,u,u&&u.id,t,null,new $o(c,l)),n.right.integrate(e,0),n.forward()}}return o},vo=(e,t,n,r,i)=>{n.currentAttributes.forEach(((e,t)=>{void 0===i[t]&&(i[t]=null)}));const s=e.doc,o=s.clientID;go(n,i);const c=yo(e,t,n,i),l=r.constructor===String?new Wo(r):r instanceof Fs?new Qo(r):new No(r);let{left:a,right:u,index:d}=n;t._searchMarker&&Ms(t._searchMarker,n.index,l.getLength()),u=new Zo(is(o,as(s.store,o)),a,a&&a.lastId,u,u&&u.id,t,null,l),u.integrate(e,0),n.right=u,n.index=d,n.forward(),fo(e,t,n,c)},mo=(e,t,n,r,i)=>{const s=e.doc,o=s.clientID;go(n,i);const c=yo(e,t,n,i);e:for(;null!==n.right&&(r>0||c.size>0&&(n.right.deleted||n.right.content.constructor===$o));){if(!n.right.deleted)switch(n.right.content.constructor){case $o:{const{key:t,value:s}=n.right.content,o=i[t];if(void 0!==o){if(lo(o,s))c.delete(t);else{if(0===r)break e;c.set(t,s)}n.right.delete(e)}else n.currentAttributes.set(t,s);break}default:r<n.right.length&&ps(e,is(n.right.id.client,n.right.id.clock+r)),r-=n.right.length}n.forward()}if(r>0){let i="";for(;r>0;r--)i+="\n";n.right=new Zo(is(o,as(s.store,o)),n.left,n.left&&n.left.lastId,n.right,n.right&&n.right.id,t,null,new Wo(i)),n.right.integrate(e,0),n.forward()}fo(e,t,n,c)},bo=(e,t,n,r,i)=>{let s=t;const o=$n();for(;s&&(!s.countable||s.deleted);){if(!s.deleted&&s.content.constructor===$o){const e=s.content;o.set(e.key,e)}s=s.right}let c=0,l=!1;for(;t!==s;){if(n===t&&(l=!0),!t.deleted){const n=t.content;switch(n.constructor){case $o:{const{key:s,value:a}=n,u=r.get(s)??null;o.get(s)===n&&u!==a||(t.delete(e),c++,l||(i.get(s)??null)!==a||u===a||(null===u?i.delete(s):i.set(s,u))),l||t.deleted||po(i,n);break}}}t=t.right}return c},wo=e=>{let t=0;return ks(e.doc,(n=>{let r=e._start,i=e._start,s=$n();const o=Mn(s);for(;i;){if(!1===i.deleted)if(i.content.constructor===$o)po(o,i.content);else t+=bo(n,r,i,s,o),s=Mn(o),r=i;i=i.right}})),t},_o=e=>{const t=new Set,n=e.doc;for(const[r,i]of e.afterState.entries()){const s=e.beforeState.get(r)||0;i!==s&&ys(e,n.store.clients.get(r),s,i,(e=>{e.deleted||e.content.constructor!==$o||e.constructor===Uo||t.add(e.parent)}))}ks(n,(n=>{Pi(e,e.deleteSet,(e=>{if(e instanceof Uo||!e.parent._hasFormatting||t.has(e.parent))return;const r=e.parent;e.content.constructor===$o?t.add(r):((e,t)=>{for(;t&&t.right&&(t.right.deleted||!t.right.countable);)t=t.right;const n=new Set;for(;t&&(t.deleted||!t.countable);){if(!t.deleted&&t.content.constructor===$o){const r=t.content.key;n.has(r)?t.delete(e):n.add(r)}t=t.left}})(n,e)}));for(const e of t)wo(e)}))},ko=(e,t,n)=>{const r=n,i=Mn(t.currentAttributes),s=t.right;for(;n>0&&null!==t.right;){if(!1===t.right.deleted)switch(t.right.content.constructor){case Qo:case No:case Wo:n<t.right.length&&ps(e,is(t.right.id.client,t.right.id.clock+n)),n-=t.right.length,t.right.delete(e)}t.forward()}s&&bo(e,s,t.right,i,t.currentAttributes);const o=(t.left||t.right).parent;return o._searchMarker&&Ms(o._searchMarker,t.index,-r+n),t};class So extends Us{constructor(e,t,n){super(e,t),this.childListChanged=!1,this.keysChanged=new Set,n.forEach((e=>{null===e?this.childListChanged=!0:this.keysChanged.add(e)}))}get changes(){if(null===this._changes){const e={keys:this.keys,delta:this.delta,added:new Set,deleted:new Set};this._changes=e}return this._changes}get delta(){if(null===this._delta){const e=this.target.doc,t=[];ks(e,(e=>{const n=new Map,r=new Map;let i=this.target._start,s=null;const o={};let c="",l=0,a=0;const u=()=>{if(null!==s){let e=null;switch(s){case"delete":a>0&&(e={delete:a}),a=0;break;case"insert":("object"==typeof c||c.length>0)&&(e={insert:c},n.size>0&&(e.attributes={},n.forEach(((t,n)=>{null!==t&&(e.attributes[n]=t)})))),c="";break;case"retain":l>0&&(e={retain:l},(e=>{for(const t in e)return!1;return!0})(o)||(e.attributes=ii({},o))),l=0}e&&t.push(e),s=null}};for(;null!==i;){switch(i.content.constructor){case Qo:case No:this.adds(i)?this.deletes(i)||(u(),s="insert",c=i.content.getContent()[0],u()):this.deletes(i)?("delete"!==s&&(u(),s="delete"),a+=1):i.deleted||("retain"!==s&&(u(),s="retain"),l+=1);break;case Wo:this.adds(i)?this.deletes(i)||("insert"!==s&&(u(),s="insert"),c+=i.content.str):this.deletes(i)?("delete"!==s&&(u(),s="delete"),a+=i.length):i.deleted||("retain"!==s&&(u(),s="retain"),l+=i.length);break;case $o:{const{key:t,value:c}=i.content;if(this.adds(i)){if(!this.deletes(i)){const l=n.get(t)??null;lo(l,c)?null!==c&&i.delete(e):("retain"===s&&u(),lo(c,r.get(t)??null)?delete o[t]:o[t]=c)}}else if(this.deletes(i)){r.set(t,c);const e=n.get(t)??null;lo(e,c)||("retain"===s&&u(),o[t]=e)}else if(!i.deleted){r.set(t,c);const n=o[t];void 0!==n&&(lo(n,c)?null!==n&&i.delete(e):("retain"===s&&u(),null===c?delete o[t]:o[t]=c))}i.deleted||("insert"===s&&u(),po(n,i.content));break}}i=i.right}for(u();t.length>0;){const e=t[t.length-1];if(void 0===e.retain||void 0!==e.attributes)break;t.pop()}})),this._delta=t}return this._delta}}class Eo extends Fs{constructor(e){super(),this._pending=void 0!==e?[()=>this.insert(0,e)]:[],this._searchMarker=[],this._hasFormatting=!1}get length(){return this.doc??Ps(),this._length}_integrate(e,t){super._integrate(e,t);try{this._pending.forEach((e=>e()))}catch(e){}this._pending=null}_copy(){return new Eo}clone(){const e=new Eo;return e.applyDelta(this.toDelta()),e}_callObserver(e,t){super._callObserver(e,t);const n=new So(this,e,t);Bs(this,e,n),!e.local&&this._hasFormatting&&(e._needFormattingCleanup=!0)}toString(){this.doc??Ps();let e="",t=this._start;for(;null!==t;)!t.deleted&&t.countable&&t.content.constructor===Wo&&(e+=t.content.str),t=t.right;return e}toJSON(){return this.toString()}applyDelta(e,{sanitize:t=!0}={}){null!==this.doc?ks(this.doc,(n=>{const r=new ao(null,this._start,0,new Map);for(let i=0;i<e.length;i++){const s=e[i];if(void 0!==s.insert){const o=t||"string"!=typeof s.insert||i!==e.length-1||null!==r.right||"\n"!==s.insert.slice(-1)?s.insert:s.insert.slice(0,-1);("string"!=typeof o||o.length>0)&&vo(n,this,r,o,s.attributes||{})}else void 0!==s.retain?mo(n,this,r,s.retain,s.attributes||{}):void 0!==s.delete&&ko(n,r,s.delete)}})):this._pending.push((()=>this.applyDelta(e)))}toDelta(e,t,n){this.doc??Ps();const r=[],i=new Map,s=this.doc;let o="",c=this._start;function l(){if(o.length>0){const e={};let t=!1;i.forEach(((n,r)=>{t=!0,e[r]=n}));const n={insert:o};t&&(n.attributes=e),r.push(n),o=""}}const a=()=>{for(;null!==c;){if(ss(c,e)||void 0!==t&&ss(c,t))switch(c.content.constructor){case Wo:{const r=i.get("ychange");void 0===e||ss(c,e)?void 0===t||ss(c,t)?void 0!==r&&(l(),i.delete("ychange")):void 0!==r&&r.user===c.id.client&&"added"===r.type||(l(),i.set("ychange",n?n("added",c.id):{type:"added"})):void 0!==r&&r.user===c.id.client&&"removed"===r.type||(l(),i.set("ychange",n?n("removed",c.id):{type:"removed"})),o+=c.content.str;break}case Qo:case No:{l();const e={insert:c.content.getContent()[0]};if(i.size>0){const t={};e.attributes=t,i.forEach(((e,n)=>{t[n]=e}))}r.push(e);break}case $o:ss(c,e)&&(l(),po(i,c.content))}c=c.right}l()};return e||t?ks(s,(n=>{e&&os(n,e),t&&os(n,t),a()}),"cleanup"):a(),r}insert(e,t,n){if(t.length<=0)return;const r=this.doc;null!==r?ks(r,(r=>{const i=ho(r,this,e,!n);n||(n={},i.currentAttributes.forEach(((e,t)=>{n[t]=e}))),vo(r,this,i,t,n)})):this._pending.push((()=>this.insert(e,t,n)))}insertEmbed(e,t,n){const r=this.doc;null!==r?ks(r,(r=>{const i=ho(r,this,e,!n);vo(r,this,i,t,n||{})})):this._pending.push((()=>this.insertEmbed(e,t,n||{})))}delete(e,t){if(0===t)return;const n=this.doc;null!==n?ks(n,(n=>{ko(n,ho(n,this,e,!0),t)})):this._pending.push((()=>this.delete(e,t)))}format(e,t,n){if(0===t)return;const r=this.doc;null!==r?ks(r,(r=>{const i=ho(r,this,e,!1);null!==i.right&&mo(r,this,i,t,n)})):this._pending.push((()=>this.format(e,t,n)))}removeAttribute(e){null!==this.doc?ks(this.doc,(t=>{Xs(t,this,e)})):this._pending.push((()=>this.removeAttribute(e)))}setAttribute(e,t){null!==this.doc?ks(this.doc,(n=>{Zs(n,this,e,t)})):this._pending.push((()=>this.setAttribute(e,t)))}getAttribute(e){return eo(this,e)}getAttributes(){return to(this)}_write(e){e.writeTypeRef(zo)}}class xo{constructor(e,t=(()=>!0)){this._filter=t,this._root=e,this._currentNode=e._start,this._firstCall=!0,e.doc??Ps()}[Symbol.iterator](){return this}next(){let e=this._currentNode,t=e&&e.content&&e.content.type;if(null!==e&&(!this._firstCall||e.deleted||!this._filter(t)))do{if(t=e.content.type,e.deleted||t.constructor!==Co&&t.constructor!==Io||null===t._start)for(;null!==e;){const t=e.next;if(null!==t){e=t;break}e=e.parent===this._root?null:e.parent._item}else e=t._start}while(null!==e&&(e.deleted||!this._filter(e.content.type)));return this._firstCall=!1,null===e?{value:void 0,done:!0}:(this._currentNode=e,{value:e.content.type,done:!1})}}class Io extends Fs{constructor(){super(),this._prelimContent=[]}get firstChild(){const e=this._first;return e?e.content.getContent()[0]:null}_integrate(e,t){super._integrate(e,t),this.insert(0,this._prelimContent),this._prelimContent=null}_copy(){return new Io}clone(){const e=new Io;return e.insert(0,this.toArray().map((e=>e instanceof Fs?e.clone():e))),e}get length(){return this.doc??Ps(),null===this._prelimContent?this._length:this._prelimContent.length}createTreeWalker(e){return new xo(this,e)}querySelector(e){e=e.toUpperCase();const t=new xo(this,(t=>t.nodeName&&t.nodeName.toUpperCase()===e)).next();return t.done?null:t.value}querySelectorAll(e){return e=e.toUpperCase(),Kn(new xo(this,(t=>t.nodeName&&t.nodeName.toUpperCase()===e)))}_callObserver(e,t){Bs(this,e,new Ao(this,t,e))}toString(){return Hs(this,(e=>e.toString())).join("")}toJSON(){return this.toString()}toDOM(e=document,t={},n){const r=e.createDocumentFragment();return void 0!==n&&n._createAssociation(r,this),Ks(this,(i=>{r.insertBefore(i.toDOM(e,t,n),null)})),r}insert(e,t){null!==this.doc?ks(this.doc,(n=>{Gs(n,this,e,t)})):this._prelimContent.splice(e,0,...t)}insertAfter(e,t){if(null!==this.doc)ks(this.doc,(n=>{const r=e&&e instanceof Fs?e._item:e;qs(n,this,r,t)}));else{const n=this._prelimContent,r=null===e?0:n.findIndex((t=>t===e))+1;if(0===r&&null!==e)throw Dr("Reference item not found");n.splice(r,0,...t)}}delete(e,t=1){null!==this.doc?ks(this.doc,(n=>{Qs(n,this,e,t)})):this._prelimContent.splice(e,t)}toArray(){return Vs(this)}push(e){this.insert(this.length,e)}unshift(e){this.insert(0,e)}get(e){return Js(this,e)}slice(e=0,t=this.length){return Ws(this,e,t)}forEach(e){Ks(this,e)}_write(e){e.writeTypeRef(qo)}}class Co extends Io{constructor(e="UNDEFINED"){super(),this.nodeName=e,this._prelimAttrs=new Map}get nextSibling(){const e=this._item?this._item.next:null;return e?e.content.type:null}get prevSibling(){const e=this._item?this._item.prev:null;return e?e.content.type:null}_integrate(e,t){super._integrate(e,t),this._prelimAttrs.forEach(((e,t)=>{this.setAttribute(t,e)})),this._prelimAttrs=null}_copy(){return new Co(this.nodeName)}clone(){const e=new Co(this.nodeName);return((e,t)=>{for(const n in e)t(e[n],n)})(this.getAttributes(),((t,n)=>{"string"==typeof t&&e.setAttribute(n,t)})),e.insert(0,this.toArray().map((e=>e instanceof Fs?e.clone():e))),e}toString(){const e=this.getAttributes(),t=[],n=[];for(const t in e)n.push(t);n.sort();const r=n.length;for(let i=0;i<r;i++){const r=n[i];t.push(r+'="'+e[r]+'"')}const i=this.nodeName.toLocaleLowerCase();return`<${i}${t.length>0?" "+t.join(" "):""}>${super.toString()}</${i}>`}removeAttribute(e){null!==this.doc?ks(this.doc,(t=>{Xs(t,this,e)})):this._prelimAttrs.delete(e)}setAttribute(e,t){null!==this.doc?ks(this.doc,(n=>{Zs(n,this,e,t)})):this._prelimAttrs.set(e,t)}getAttribute(e){return eo(this,e)}hasAttribute(e){return no(this,e)}getAttributes(e){return e?((e,t)=>{const n={};return e._map.forEach(((e,r)=>{let i=e;for(;null!==i&&(!t.sv.has(i.id.client)||i.id.clock>=(t.sv.get(i.id.client)||0));)i=i.left;null!==i&&ss(i,t)&&(n[r]=i.content.getContent()[i.length-1])})),n})(this,e):to(this)}toDOM(e=document,t={},n){const r=e.createElement(this.nodeName),i=this.getAttributes();for(const e in i){const t=i[e];"string"==typeof t&&r.setAttribute(e,t)}return Ks(this,(i=>{r.appendChild(i.toDOM(e,t,n))})),void 0!==n&&n._createAssociation(r,this),r}_write(e){e.writeTypeRef(Jo),e.writeKey(this.nodeName)}}class Ao extends Us{constructor(e,t,n){super(e,n),this.childListChanged=!1,this.attributesChanged=new Set,t.forEach((e=>{null===e?this.childListChanged=!0:this.attributesChanged.add(e)}))}}class Oo extends co{constructor(e){super(),this.hookName=e}_copy(){return new Oo(this.hookName)}clone(){const e=new Oo(this.hookName);return this.forEach(((t,n)=>{e.set(n,t)})),e}toDOM(e=document,t={},n){const r=t[this.hookName];let i;return i=void 0!==r?r.createDom(this):document.createElement(this.hookName),i.setAttribute("data-yjs-hook",this.hookName),void 0!==n&&n._createAssociation(i,this),i}_write(e){e.writeTypeRef(Yo),e.writeKey(this.hookName)}}class Do extends Eo{get nextSibling(){const e=this._item?this._item.next:null;return e?e.content.type:null}get prevSibling(){const e=this._item?this._item.prev:null;return e?e.content.type:null}_copy(){return new Do}clone(){const e=new Do;return e.applyDelta(this.toDelta()),e}toDOM(e=document,t,n){const r=e.createTextNode(this.toString());return void 0!==n&&n._createAssociation(r,this),r}toString(){return this.toDelta().map((e=>{const t=[];for(const n in e.attributes){const r=[];for(const t in e.attributes[n])r.push({key:t,value:e.attributes[n][t]});r.sort(((e,t)=>e.key<t.key?-1:1)),t.push({nodeName:n,attrs:r})}t.sort(((e,t)=>e.nodeName<t.nodeName?-1:1));let n="";for(let e=0;e<t.length;e++){const r=t[e];n+=`<${r.nodeName}`;for(let e=0;e<r.attrs.length;e++){const t=r.attrs[e];n+=` ${t.key}="${t.value}"`}n+=">"}n+=e.insert;for(let e=t.length-1;e>=0;e--)n+=`</${t[e].nodeName}>`;return n})).join("")}toJSON(){return this.toString()}_write(e){e.writeTypeRef(Go)}}class To{constructor(e,t){this.id=e,this.length=t}get deleted(){throw Tr()}mergeWith(e){return!1}write(e,t,n){throw Tr()}integrate(e,t){throw Tr()}}class Uo extends To{get deleted(){return!0}delete(){}mergeWith(e){return this.constructor===e.constructor&&(this.length+=e.length,!0)}integrate(e,t){t>0&&(this.id.clock+=t,this.length-=t),us(e.doc.store,this)}write(e,t){e.writeInfo(0),e.writeLen(this.length-t)}getMissing(e,t){return null}}class jo{constructor(e){this.content=e}getLength(){return 1}getContent(){return[this.content]}isCountable(){return!0}copy(){return new jo(this.content)}splice(e){throw Tr()}mergeWith(e){return!1}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeBuf(this.content)}getRef(){return 3}}class Po{constructor(e){this.len=e}getLength(){return this.len}getContent(){return[]}isCountable(){return!1}copy(){return new Po(this.len)}splice(e){const t=new Po(this.len-e);return this.len=e,t}mergeWith(e){return this.len+=e.len,!0}integrate(e,t){Ni(e.deleteSet,t.id.client,t.id.clock,this.len),t.markDeleted()}delete(e){}gc(e){}write(e,t){e.writeLen(this.len-t)}getRef(){return 1}}const Lo=(e,t)=>new Fi({guid:e,...t,shouldLoad:t.shouldLoad||t.autoLoad||!1});class Ro{constructor(e){e._item,this.doc=e;const t={};this.opts=t,e.gc||(t.gc=!1),e.autoLoad&&(t.autoLoad=!0),null!==e.meta&&(t.meta=e.meta)}getLength(){return 1}getContent(){return[this.doc]}isCountable(){return!0}copy(){return new Ro(Lo(this.doc.guid,this.opts))}splice(e){throw Tr()}mergeWith(e){return!1}integrate(e,t){this.doc._item=t,e.subdocsAdded.add(this.doc),this.doc.shouldLoad&&e.subdocsLoaded.add(this.doc)}delete(e){e.subdocsAdded.has(this.doc)?e.subdocsAdded.delete(this.doc):e.subdocsRemoved.add(this.doc)}gc(e){}write(e,t){e.writeString(this.doc.guid),e.writeAny(this.opts)}getRef(){return 9}}class No{constructor(e){this.embed=e}getLength(){return 1}getContent(){return[this.embed]}isCountable(){return!0}copy(){return new No(this.embed)}splice(e){throw Tr()}mergeWith(e){return!1}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeJSON(this.embed)}getRef(){return 5}}class $o{constructor(e,t){this.key=e,this.value=t}getLength(){return 1}getContent(){return[]}isCountable(){return!1}copy(){return new $o(this.key,this.value)}splice(e){throw Tr()}mergeWith(e){return!1}integrate(e,t){const n=t.parent;n._searchMarker=null,n._hasFormatting=!0}delete(e){}gc(e){}write(e,t){e.writeKey(this.key),e.writeJSON(this.value)}getRef(){return 6}}class Mo{constructor(e){this.arr=e}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new Mo(this.arr)}splice(e){const t=new Mo(this.arr.slice(e));return this.arr=this.arr.slice(0,e),t}mergeWith(e){return this.arr=this.arr.concat(e.arr),!0}integrate(e,t){}delete(e){}gc(e){}write(e,t){const n=this.arr.length;e.writeLen(n-t);for(let r=t;r<n;r++){const t=this.arr[r];e.writeString(void 0===t?"undefined":JSON.stringify(t))}}getRef(){return 2}}const Bo="development"===pi("node_env");class Fo{constructor(e){this.arr=e,Bo&&ai(e)}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new Fo(this.arr)}splice(e){const t=new Fo(this.arr.slice(e));return this.arr=this.arr.slice(0,e),t}mergeWith(e){return this.arr=this.arr.concat(e.arr),!0}integrate(e,t){}delete(e){}gc(e){}write(e,t){const n=this.arr.length;e.writeLen(n-t);for(let r=t;r<n;r++){const t=this.arr[r];e.writeAny(t)}}getRef(){return 8}}class Wo{constructor(e){this.str=e}getLength(){return this.str.length}getContent(){return this.str.split("")}isCountable(){return!0}copy(){return new Wo(this.str)}splice(e){const t=new Wo(this.str.slice(e));this.str=this.str.slice(0,e);const n=this.str.charCodeAt(e-1);return n>=55296&&n<=56319&&(this.str=this.str.slice(0,e-1)+"�",t.str="�"+t.str.slice(1)),t}mergeWith(e){return this.str+=e.str,!0}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeString(0===t?this.str:this.str.slice(t))}getRef(){return 4}}const Vo=[e=>new so,e=>new co,e=>new Eo,e=>new Co(e.readKey()),e=>new Io,e=>new Oo(e.readKey()),e=>new Do],Ko=0,Ho=1,zo=2,Jo=3,qo=4,Yo=5,Go=6;class Qo{constructor(e){this.type=e}getLength(){return 1}getContent(){return[this.type]}isCountable(){return!0}copy(){return new Qo(this.type._copy())}splice(e){throw Tr()}mergeWith(e){return!1}integrate(e,t){this.type._integrate(e.doc,t)}delete(e){let t=this.type._start;for(;null!==t;)t.deleted?t.id.clock<(e.beforeState.get(t.id.client)||0)&&e._mergeStructs.push(t):t.delete(e),t=t.right;this.type._map.forEach((t=>{t.deleted?t.id.clock<(e.beforeState.get(t.id.client)||0)&&e._mergeStructs.push(t):t.delete(e)})),e.changed.delete(this.type)}gc(e){let t=this.type._start;for(;null!==t;)t.gc(e,!0),t=t.right;this.type._start=null,this.type._map.forEach((t=>{for(;null!==t;)t.gc(e,!0),t=t.left})),this.type._map=new Map}write(e,t){this.type._write(e)}getRef(){return 7}}const Xo=(e,t,n)=>{const{client:r,clock:i}=t.id,s=new Zo(is(r,i+n),t,is(r,i+n-1),t.right,t.rightOrigin,t.parent,t.parentSub,t.content.splice(n));return t.deleted&&s.markDeleted(),t.keep&&(s.keep=!0),null!==t.redone&&(s.redone=is(t.redone.client,t.redone.clock+n)),t.right=s,null!==s.right&&(s.right.left=s),e._mergeStructs.push(s),null!==s.parentSub&&null===s.right&&s.parent._map.set(s.parentSub,s),t.length=n,s};class Zo extends To{constructor(e,t,n,r,i,s,o,c){super(e,c.getLength()),this.origin=n,this.left=t,this.right=r,this.rightOrigin=i,this.parent=s,this.parentSub=o,this.redone=null,this.content=c,this.info=this.content.isCountable()?2:0}set marker(e){(8&this.info)>0!==e&&(this.info^=8)}get marker(){return(8&this.info)>0}get keep(){return(1&this.info)>0}set keep(e){this.keep!==e&&(this.info^=1)}get countable(){return(2&this.info)>0}get deleted(){return(4&this.info)>0}set deleted(e){this.deleted!==e&&(this.info^=4)}markDeleted(){this.info|=4}getMissing(e,t){if(this.origin&&this.origin.client!==this.id.client&&this.origin.clock>=as(t,this.origin.client))return this.origin.client;if(this.rightOrigin&&this.rightOrigin.client!==this.id.client&&this.rightOrigin.clock>=as(t,this.rightOrigin.client))return this.rightOrigin.client;if(this.parent&&this.parent.constructor===ns&&this.id.client!==this.parent.client&&this.parent.clock>=as(t,this.parent.client))return this.parent.client;if(this.origin&&(this.left=gs(e,t,this.origin),this.origin=this.left.lastId),this.rightOrigin&&(this.right=ps(e,this.rightOrigin),this.rightOrigin=this.right.id),this.left&&this.left.constructor===Uo||this.right&&this.right.constructor===Uo)this.parent=null;else if(this.parent){if(this.parent.constructor===ns){const e=hs(t,this.parent);e.constructor===Uo?this.parent=null:this.parent=e.content.type}}else this.left&&this.left.constructor===Zo?(this.parent=this.left.parent,this.parentSub=this.left.parentSub):this.right&&this.right.constructor===Zo&&(this.parent=this.right.parent,this.parentSub=this.right.parentSub);return null}integrate(e,t){if(t>0&&(this.id.clock+=t,this.left=gs(e,e.doc.store,is(this.id.client,this.id.clock-1)),this.origin=this.left.lastId,this.content=this.content.splice(t),this.length-=t),this.parent){if(!this.left&&(!this.right||null!==this.right.left)||this.left&&this.left.right!==this.right){let t,n=this.left;if(null!==n)t=n.right;else if(null!==this.parentSub)for(t=this.parent._map.get(this.parentSub)||null;null!==t&&null!==t.left;)t=t.left;else t=this.parent._start;const r=new Set,i=new Set;for(;null!==t&&t!==this.right;){if(i.add(t),r.add(t),rs(this.origin,t.origin)){if(t.id.client<this.id.client)n=t,r.clear();else if(rs(this.rightOrigin,t.rightOrigin))break}else{if(null===t.origin||!i.has(hs(e.doc.store,t.origin)))break;r.has(hs(e.doc.store,t.origin))||(n=t,r.clear())}t=t.right}this.left=n}if(null!==this.left){const e=this.left.right;this.right=e,this.left.right=this}else{let e;if(null!==this.parentSub)for(e=this.parent._map.get(this.parentSub)||null;null!==e&&null!==e.left;)e=e.left;else e=this.parent._start,this.parent._start=this;this.right=e}null!==this.right?this.right.left=this:null!==this.parentSub&&(this.parent._map.set(this.parentSub,this),null!==this.left&&this.left.delete(e)),null===this.parentSub&&this.countable&&!this.deleted&&(this.parent._length+=this.length),us(e.doc.store,this),this.content.integrate(e,this),bs(e,this.parent,this.parentSub),(null!==this.parent._item&&this.parent._item.deleted||null!==this.parentSub&&null!==this.right)&&this.delete(e)}else new Uo(this.id,this.length).integrate(e,0)}get next(){let e=this.right;for(;null!==e&&e.deleted;)e=e.right;return e}get prev(){let e=this.left;for(;null!==e&&e.deleted;)e=e.left;return e}get lastId(){return 1===this.length?this.id:is(this.id.client,this.id.clock+this.length-1)}mergeWith(e){if(this.constructor===e.constructor&&rs(e.origin,this.lastId)&&this.right===e&&rs(this.rightOrigin,e.rightOrigin)&&this.id.client===e.id.client&&this.id.clock+this.length===e.id.clock&&this.deleted===e.deleted&&null===this.redone&&null===e.redone&&this.content.constructor===e.content.constructor&&this.content.mergeWith(e.content)){const t=this.parent._searchMarker;return t&&t.forEach((t=>{t.p===e&&(t.p=this,!this.deleted&&this.countable&&(t.index-=this.length))})),e.keep&&(this.keep=!0),this.right=e.right,null!==this.right&&(this.right.left=this),this.length+=e.length,!0}return!1}delete(e){if(!this.deleted){const t=this.parent;this.countable&&null===this.parentSub&&(t._length-=this.length),this.markDeleted(),Ni(e.deleteSet,this.id.client,this.id.clock,this.length),bs(e,t,this.parentSub),this.content.delete(e)}}gc(e,t){if(!this.deleted)throw Ur();this.content.gc(e),t?((e,t,n)=>{const r=e.clients.get(t.id.client);r[ds(r,t.id.clock)]=n})(e,this,new Uo(this.id,this.length)):this.content=new Po(this.length)}write(e,t){const n=t>0?is(this.id.client,this.id.clock+t-1):this.origin,r=this.rightOrigin,i=this.parentSub,s=31&this.content.getRef()|(null===n?0:Zn)|(null===r?0:Xn)|(null===i?0:32);if(e.writeInfo(s),null!==n&&e.writeLeftID(n),null!==r&&e.writeRightID(r),null===n&&null===r){const t=this.parent;if(void 0!==t._item){const n=t._item;if(null===n){const n=(e=>{for(const[t,n]of e.doc.share.entries())if(n===e)return t;throw Ur()})(t);e.writeParentInfo(!0),e.writeString(n)}else e.writeParentInfo(!1),e.writeLeftID(n.id)}else t.constructor===String?(e.writeParentInfo(!0),e.writeString(t)):t.constructor===ns?(e.writeParentInfo(!1),e.writeLeftID(t)):Ur();null!==i&&e.writeString(i)}this.content.write(e,t)}}const ec=(e,t)=>tc[31&t](e),tc=[()=>{Ur()},e=>new Po(e.readLen()),e=>{const t=e.readLen(),n=[];for(let r=0;r<t;r++){const t=e.readString();"undefined"===t?n.push(void 0):n.push(JSON.parse(t))}return new Mo(n)},e=>new jo(e.readBuf()),e=>new Wo(e.readString()),e=>new No(e.readJSON()),e=>new $o(e.readKey(),e.readJSON()),e=>new Qo(Vo[e.readTypeRef()](e)),e=>{const t=e.readLen(),n=[];for(let r=0;r<t;r++)n.push(e.readAny());return new Fo(n)},e=>new Ro(Lo(e.readString(),e.readAny())),()=>{Ur()}];class nc extends To{get deleted(){return!0}delete(){}mergeWith(e){return this.constructor===e.constructor&&(this.length+=e.length,!0)}integrate(e,t){Ur()}write(e,t){e.writeInfo(10),pr(e.restEncoder,this.length-t)}getMissing(e,t){return null}}const rc="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},ic="__ $YJS$ __";function sc(e,t,n){var r,i,s;if(!e.dx._allTables[t])return;const o=null===(s=null===(i=null===(r=e.table(t))||void 0===r?void 0:r.schema.yProps)||void 0===i?void 0:i.find((e=>e.prop===n)))||void 0===s?void 0:s.updatesTable;return o&&e.dx._allTables[o]?e.table(o):void 0}rc[ic],rc[ic]=!0;const oc=new FinalizationRegistry((({cache:e,key:t})=>{delete e[t]}));function cc(e){var t,n;return null!==(t=(n=e._novip)._docCache)&&void 0!==t?t:n._docCache={cache:{},get size(){return Object.keys(this.cache).length},find(e,t,n){const r=uc(e,t,n),i=this.cache[r];return i?i.deref():void 0},add(e){var t;const{parentTable:n,parentId:r,parentProp:i}=e.meta;if(!n||!i||null==r)throw new Error("Missing Dexie-related metadata in Y.Doc");const s=uc(n,r,i),o=null===(t=this.cache[s])||void 0===t?void 0:t.deref();o&&oc.unregister(o),this.cache[s]=new WeakRef(e),oc.register(e,{cache:this.cache,key:s},e)},delete(e){oc.unregister(e);const t=uc(e.meta.parentTable,e.meta.parentId,e.meta.parentProp),n=this.cache[t];(null==n?void 0:n.deref())===e&&delete this.cache[t]}}}const lc=new WeakSet;function ac(e){if(lc.has(e))throw new Error(`Y.Doc ${e.meta.parentId} has been destroyed`)}function uc(e,t,n){return`${e}[${t}].${n}`}let dc=null;function hc(e){dc=e}function fc(){}const pc=new WeakMap;function gc(){return e.Dexie.Events(null,"load","sync","error")}class yc{static getOrCreateDocument(e,t,n,r){var i,s;const o=cc(e),c=null===(s=null===(i=e.table(t).schema.yProps)||void 0===i?void 0:i.find((e=>e.prop===n)))||void 0===s?void 0:s.updatesTable;if(!c)throw new Error(`Updates table for ${t}.${n} not found`);return function(e,t,n,r,i,s){let o=t.find(n,s,r);return o||(o=new Fi({meta:{db:e,updatesTable:i,parentProp:r,parentTable:n,parentId:s}}),t.add(o),o.on("destroy",(()=>{lc.add(o),t.delete(o)})),o)}(e,o,t,n,c,r)}static load(e,t){var n;let r=pc.get(e);return r?(++r.refCount,null!=(null==t?void 0:t.gracePeriod)&&r.graceTimeout<t.gracePeriod&&(r.graceTimeout=t.gracePeriod),r.graceTimer&&(clearTimeout(r.graceTimer),r.graceTimer=null)):(r=new yc(e),r.graceTimeout=null!==(n=null==t?void 0:t.gracePeriod)&&void 0!==n?n:-1,pc.set(e,r)),r}static release(e){if(!e||lc.has(e))return;const t=pc.get(e);t?--t.refCount<=0&&(t.graceTimeout<0?t._release():t.graceTimer||(t.graceTimer=setTimeout((()=>{t.graceTimer=null,0===t.refCount&&t._release()}),t.graceTimeout))):e.destroy()}_release(){this.doc&&Promise.resolve(yc.on("beforeunload").fire(this)).finally((()=>{var e;0===this.refCount&&(null===(e=this.doc)||void 0===e||e.destroy())}))}static for(e){return pc.get(e)}static get currentUpdateRow(){return dc}get whenLoaded(){return this._whenLoaded||(this._whenLoaded=new Promise(((t,n)=>{this.doc?this.doc.isLoaded?t():this._error?n(this._error):lc.has(this.doc)?n(new e.Dexie.AbortError("Document was destroyed before loaded")):(this.on("load",t),this.on("error",n),this.doc.on("destroy",(()=>n(new e.Dexie.AbortError("Document was destroyed before loaded"))))):n(new Error("No Y.Doc associated with this provider"))}))),this._whenLoaded}get whenSynced(){return this._whenSynced||(this._whenSynced=new Promise(((t,n)=>{this.doc?this.doc.isSynced?t():this._error?n(this._error):lc.has(this.doc)?n(new e.Dexie.AbortError("Document was destroyed before synced")):(this.on("sync",t),this.on("error",n),this.doc.on("destroy",(()=>n(new e.Dexie.AbortError("Document was destroyed before synced"))))):n(new Error("No Y.Doc associated with this provider"))}))),this._whenSynced}constructor(t){this.refCount=1,this.cleanupHandlers=[],this.graceTimeout=-1,this.doc=null,this.destroyed=!1,this.on=gc(),this.doc=t,this.off=(e,t)=>{var n;return null===(n=this.on[e])||void 0===n?void 0:n.unsubscribe(t)},"dispose"in Symbol&&(this[Symbol.dispose]=()=>yc.release(t)),t.on("load",(()=>this.on("load").fire())),t.on("sync",(e=>!1!==e&&this.on("sync").fire())),t.on("destroy",this.destroy.bind(this)),this.on("error",(e=>{this._error=e}));const{db:n,parentTable:r,parentId:i,updatesTable:s}=t.meta||{};if(!n||!r||!s)throw new Error("Missing Dexie-related metadata in Y.Doc. Documents need to be obtained through Y.Doc properties from dexie queries.");if(!n.table(r)||!n.table(s))throw new Error(`Table ${r} or ${s} not found in db`);ac(t),this.stopObserving=function(t,n,r,i,s,o){let c=0,l=!0;const a=e.liveQuery((()=>{ac(n);const t=r.table(s);return Promise.all([(c>0?t.where("i").between(c,1/0,!1).toArray().then((t=>t.filter((t=>0===e.cmp(t.k,o))))):t.where({k:o}).toArray()).then((e=>e)),r.table(i).where(":id").equals(o).toArray()])})).subscribe((([e,r])=>{e.length>0&&(c=e[e.length-1].i),0!==r.length?(ac(n),e.length>0&&ks(n,(()=>{e.forEach((e=>{try{hc(e),Gi(n,e.u)}finally{hc(null)}}))}),t,!1),l&&(l=!1,n.emit("load",[n]))):n.destroy()}),(e=>{t.on("error").fire(e)})),u=(e,n)=>{n!==t&&r.table(s).add({k:o,u:e,f:1}).then((e=>{e===c-1&&++c})).catch((e=>{t.on("error").fire(e)}))},d=()=>{a.unsubscribe(),n.off("updateV2",u),n.off("destroy",d)};return n.on("updateV2",u),n.on("destroy",d),d}(this,t,n,r,s,i),yc.on("new").fire(this)}destroy(){var e;pc.delete(this.doc),this.doc=null,this.destroyed=!0,this.refCount=0,null===(e=this.stopObserving)||void 0===e||e.call(this),this.on=gc(),this.cleanupHandlers.forEach((e=>e()))}addCleanupHandler(e){this.cleanupHandlers.push("function"==typeof e?e:()=>e.unsubscribe())}}function vc(t,n){return i(this,void 0,void 0,(function*(){var r;const s={};let o,c=!1;for(const l of t)try{switch(l.type){case"u-s":{const e=sc(n,l.table,l.prop);if(e){const t={k:l.k,u:l.u};l.r&&(t.r=l.r,o=l.r),s[e.name]=yield e.add(t)}break}case"u-ack":{const e=sc(n,l.table,l.prop);e&&(yield n.transaction("rw",e,(t=>i(this,void 0,void 0,(function*(){let n=yield t.table(e.name).get(Rn);yield t.table(e.name).put(Object.assign(Object.assign({},n||{i:Rn}),{unsentFrom:Math.max((null==n?void 0:n.unsentFrom)||1,l.i+1)}))})))));break}case"u-reject":{const t=sc(n,l.table,l.prop);if(!t)break;const i=null===(r=yield t.get(l.i))||void 0===r?void 0:r.k;if(null!=i){yield n.transaction("rw",t,(n=>(n.idbtrans._rejecting_y_ypdate=!0,t.where("i").aboveOrEqual(l.i).filter((t=>0===e.cmp(t.k,i)&&1==(1&(t.f||0)))).delete())));const r=yc.getDocCache(n.dx).find(l.table,i,l.prop);r&&r.destroy()}break}case"in-sync":{const e=yc.getDocCache(n.dx).find(l.table,l.k,l.prop);e&&!e.isSynced&&e.emit("sync",[!0,e]);break}case"y-complete-sync-done":o=l.yServerRev;break;case"outdated-server-rev":c=!0}}catch(e){}return{receivedUntils:s,resyncNeeded:c,yServerRevision:o}}))}yc.on=e.Dexie.Events(null,{new:[function(e,t){return e===fc?t:function(){e.apply(this,arguments),t.apply(this,arguments)}}],beforeunload:[function(e,t){return e===fc?t:function(){var n=e.apply(this,arguments);if(n&&"function"==typeof n.then){for(var r=this,i=arguments.length,s=new Array(i);i--;)s[i]=arguments[i];return n.then((function(){return t.apply(r,s)}))}return t.apply(this,arguments)}}]}),yc.getDocCache=cc,e.Dexie.DexieYProvider=yc;const mc=1,bc=2,wc=3;function _c(t,n,r){return i(this,arguments,void 0,(function*(t,n,{yDownloadedRealms:r,realms:s}){if(r&&s&&s.every((e=>"*"===r[e])))return;const o=yield Kt(t),c={"Content-Type":"application/json",Accept:"application/octet-stream"};o&&(c.Authorization=`Bearer ${o.accessToken}`);const l=yield fetch(`${n}/y/download`,{body:kn.stringify({downloadedRealms:r||{}}),method:"POST",headers:c,credentials:"include"});if(!l.ok)throw new Error(`Failed to download Yjs documents from server. Status: ${l.status}`);yield async function(e,...t){var n,r,i;let s=e();for(let e=0;e<t.length;e++)s=t[e](s);try{for(var o,c=!0,l=d(s);!(n=(o=await l.next()).done);c=!0)o.value,c=!1}catch(e){r={error:e}}finally{try{c||n||!(i=l.return)||await i.call(l)}finally{if(r)throw r.error}}}(function(e){return function(){return u(this,arguments,(function*(){if(!e.body)throw new Error("Response body is not readable");const t=e.body.getReader();try{for(;;){const{done:e,value:n}=yield a(t.read());if(e)return yield a(void 0);yield yield a(n)}}finally{t.releaseLock()}}))}}(l),$t,(function(r){return u(this,arguments,(function*(){var s,o,c,l;let u=null,h=null,f=null,p=[];function g(e){return i(this,void 0,void 0,(function*(){const r=p[p.length-1];if(p.length>0){if(!u||!h||!f)throw new Error(`Protocol error from ${n}/y/download`);const e=sc(t,h,f);e&&(yield e.bulkAdd(p)),p=[]}u&&(h&&f&&r||e)&&(yield t.$syncState.update("syncState",(t=>{const n=t.yDownloadedRealms||{};n[u]=e?"*":{tbl:h,prop:f,key:r.k},t.yDownloadedRealms=n})))}))}try{try{for(var y,v=!0,m=d(r);!(s=(y=yield a(m.next())).done);v=!0){l=y.value,v=!1;const e=new At(l);for(;Ot(e);)switch(Tt(e)){case mc:yield a(g(!0)),u=jt(e);break;case bc:yield a(g(!1)),h=jt(e),f=jt(e);break;case wc:{const t=Nt(e),n=Dt(e);p.push({k:t,u:n});break}}yield a(g(!1))}}catch(e){o={error:e}}finally{try{v||s||!(c=m.return)||(yield a(c.call(m)))}finally{if(o)throw o.error}}yield a(g(!0))}catch(t){throw t instanceof e.DexieError||(yield a(g(!1))),t}}))}))}))}const kc="currentSyncWorker";function Sc(e,t,n,r){return Ec(e,t,n,r).then((t=>((null==r?void 0:r.justCheckIfNeeded)||e.syncStateChangedEvent.next({phase:"in-sync"}),t))).catch((s=>i(this,void 0,void 0,(function*(){return(null==r?void 0:r.justCheckIfNeeded)?Promise.reject(s):Tn&&(null==r?void 0:r.retryImmediatelyOnFetchError)&&"TypeError"===(null==s?void 0:s.name)&&/fetch/.test(null==s?void 0:s.message)?(e.syncStateChangedEvent.next({phase:"error",error:s}),yield new Promise((e=>setTimeout(e,500))),yield Sc(e,t,n,Object.assign(Object.assign({},r),{retryImmediatelyOnFetchError:!1}))):(yield e.$syncState.update("syncState",{timestamp:new Date,error:""+s}),e.syncStateChangedEvent.next({phase:Tn?"error":"offline",error:new Error(""+(null==s?void 0:s.message)||s)}),Promise.reject(s))}))))}function Ec(e,t,n){return i(this,arguments,void 0,(function*(e,t,n,{isInitialSync:r,cancelToken:s,justCheckIfNeeded:o,purpose:c}={isInitialSync:!1}){var l;if(!(null===(l=e.cloud.options)||void 0===l?void 0:l.databaseUrl))throw new Error("Internal error: sync must not be called when no databaseUrl is configured");const{databaseUrl:a}=t,u=yield e.getCurrentUser(),d=u.isLoggedIn?Fe(e):[],f=d.map((t=>e.table(We(t.name)))),p=yield e.getPersistedSyncState(),g=u.isLoggedIn,y=g?function(e,t){const n=(null==t?void 0:t.syncedTables)||[];return Fe(e).filter((e=>!n.includes(e.name)))}(e,p):[];Dn(s);const v=y.length>0;if(v){if(o)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!==h.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!==h.userId||(e.owner=t.userId)})):yield n.toCollection().modify((e=>{e.realmId&&r.has(e.realmId)||(e.owner&&e.owner!==h.userId||(e.owner=t.userId),e.realmId&&e.realmId!==h.userId||(e.realmId=t.userId))})))}))}(y,u,null==p?void 0:p.realms)})))),Dn(s)}const[m,b,w,{yMessages:_,lastUpdateIds:k}]=yield e.transaction("r",e.tables,(()=>i(this,void 0,void 0,(function*(){const t=yield e.getPersistedSyncState();let r=yield e.$baseRevs.toArray();r=r.filter((e=>d.some((t=>t.name===e.tableName))));let o=yield ze(f,e);const c=yield function(e,t){return i(this,void 0,void 0,(function*(){const n=[],r={};for(const i of t)if(i.schema.yProps)for(const t of i.schema.yProps){const s=e.table(t.updatesTable),o=yield s.get(Rn),c=(null==o?void 0:o.unsentFrom)||1,l=(null==o?void 0:o.receivedUntil)||0,a=Math.min(c,l+1),u=yield Nn(s,a);u.length>0&&(r[s.name]=u[u.length-1].i);const d={};for(const e of u){const t=1==(1&(e.f||0));if(t&&e.i<c)continue;const n=JSON.stringify(e.k)+"/"+t;let r=d[n];r?(r.u.push(e.u),r.i=Math.max(e.i,r.i)):(d[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:o}of Object.values(d)){const c=1===s.length?s[0]:Cs(s);if(r)n.push({type:"u-c",table:i.name,prop:t.prop,k:e,u:c,i:o});else{const r=xs(c);n.push({type:"sv",table:i.name,prop:t.prop,k:e,sv:r})}}}return{yMessages:n,lastUpdateIds:r}}))}(e,d);if(Dn(s),v){const e=[...(null==p?void 0:p.realms)||[],...(null==p?void 0:p.inviteRealms)||[]],l=yield function(e,t,n,r){return i(this,void 0,void 0,(function*(){const s=`upload-${Je(8)}`;if(t.isLoggedIn&&e.length>0){const o=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],c=(null==i?void 0:i.generatedGlobalId)?e.filter((e=>{return r(e),!o.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!o.has(e.realmId||"")&&Xe(t)})),l=yield c.toArray();if(l.length>0){const n={type:"upsert",values:l,keys:l.map(r),userId:t.userId,txid:s};return{table:e.name,muts:[n]}}return{table:e.name,muts:[]}})))))).filter((e=>e.muts.length>0))}return[]}))}(y,u,n,e);return Dn(s),o=o.concat(l),[o,t,r,c]}return[o,t,r,c]})))),S=m.some((e=>e.muts.some((e=>e.keys.length>0))))||_.some((e=>"u-c"===e.type));if(o)return S;if("push"===c&&!S)return!1;const E=jn(m,null==b?void 0:b.latestRevisions),x=(null==b?void 0:b.clientIdentity)||Ge(16);Dn(s);const I=yield On(m,_,b,w,e,a,n,x,u),{done:C,newSyncState:A}=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))I.schema[e]&&(n[e]=I.schema[e]);yield e.$syncState.put(n,"schema");const r=yield ze(f,e,{since:E});for(const t of f){const n=Ve(t.name);if(r.some((e=>e.table===n&&e.muts.length>0))){if(E[n]){const r=E[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()])}jn(r,E),yield Un(e,n,E,I.serverRevision);const s=yield e.getPersistedSyncState();yield function(e,t,n){return i(this,void 0,void 0,(function*(){const r=new Set,i=new Set,s=n?n.realms:[],o=n?n.inviteRealms:[],c=new Set(t.realms),l=new Set(t.realms.concat(t.inviteRealms));for(const e of s)c.has(e)||(i.add(e),l.has(e)||r.add(e));for(const e of o.concat(s))l.has(e)||r.add(e);if(r.size>0||i.size>0){const t=Fe(e);for(const e of t){let t=["realms","members","roles"].includes(e.name)?r:i;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(i.size>0&&(null==n?void 0:n.yDownloadedRealms))for(const e of i)delete n.yDownloadedRealms[e]}))}(e,I,s);const o=s||{syncedTables:[],latestRevisions:{},realms:[],inviteRealms:[],clientIdentity:x};g&&(o.syncedTables=d.map((e=>e.name)).concat(y.map((e=>e.name)))),o.latestRevisions=E,o.remoteDbId=I.dbId,o.initiallySynced=!0,o.realms=I.realms,o.inviteRealms=I.inviteRealms,o.serverRevision=I.serverRevision,o.yServerRevision=I.serverRevision,o.timestamp=new Date,delete o.error;const c=xc(I.changes,r);if(yield Ln(c,e),I.yMessages){const{receivedUntils:t,resyncNeeded:n,yServerRevision:r}=yield vc(I.yMessages,e);r&&(o.yServerRevision=r),yield function(e,t,n){return i(this,void 0,void 0,(function*(){var r,s,o,c,l;const a={};for(const[t,n]of Object.entries(e))null!==(r=a[t])&&void 0!==r||(a[t]={}),a[t].unsentFrom=n+1;for(const[e,n]of Object.entries(t))null!==(s=a[e])&&void 0!==s||(a[e]={}),a[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=a[e],r=null!==(o=null==t?void 0:t.unsentFrom)&&void 0!==o?o: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(Rn);t?(t.unsentFrom=Math.max(r,t.unsentFrom||1),t.receivedUntil=Math.max(s,t.receivedUntil||0),yield n.table(e).put(t)):yield n.table(e).add({i:Rn,unsentFrom:r,receivedUntil:s})}))))}}))}(k,t,e),n&&(o.yDownloadedRealms={})}return e.$syncState.put(o,"syncState"),{done:0===r.length,newSyncState:o}}))));if(!C)return yield An(e),yield Ec(e,t,n,{isInitialSync:r,cancelToken:s});const O=Object.values(n).some((e=>{var t;return null===(t=e.yProps)||void 0===t?void 0:t.length})),D=!!I.yMessages;if(O&&D)try{yield _c(e,a,A)}catch(e){}return e.syncCompleteEvent.next(),!1}))}function xc(e,t){const n={};tt(n,e);const r={};return tt(r,t),function(e,t){var n,r,i;for(const[s,o]of Object.entries(t))for(const[t,c]of Object.entries(o))switch(c.type){case"ups":{const r=null===(n=e[s])||void 0===n?void 0:n[t];if(r)switch(r.type){case"ups":case"upd":delete e[s][t]}}break;case"del":null===(r=e[s])||void 0===r||delete r[t];break;case"upd":{const n=null===(i=e[s])||void 0===i?void 0:i[t];if(n)switch(n.type){case"ups":for(const[e,t]of Object.entries(c.mod))Ye(n.val,e,t);break;case"del":break;case"upd":for(const e of Object.keys(c.mod))delete n.mod[e]}break}}}(n,r),function(e,t=""){t||(t=Ge(16));const n={};for(const[t,r]of Object.entries(e))for(const[e,i]of Object.entries(r)){const r=n[t]||(n[t]={});(r[i.type]||(r[i.type]=[])).push(Object.assign({key:e},i))}const r=[];for(const[e,i]of Object.entries(n)){const n={table:e,muts:[]};for(const[e,r]of Object.entries(i))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 Ic=10,Cc=1e4,Ac=1e3;function Oc(n){const r=[],s=new t.BehaviorSubject(!0),o=new t.BehaviorSubject(null);let c=!1,l=new Array(Ic).fill(0);return o.subscribe((()=>i(this,void 0,void 0,(function*(){if(!c&&r.length>0){c=!0,l.shift(),l.push(Date.now()),s.next(!1);try{yield function(){return i(this,void 0,void 0,(function*(){for(var s,o,c,l,a,u;r.length>0;){const d=r.shift();try{yield t.firstValueFrom(n.cloud.syncState.pipe(Ae((({phase:e})=>"in-sync"===e||"error"===e))));const r=n.cloud.persistedSyncState.value;if(!d)continue;switch(d.type){case"token-expired":const t=n.cloud.currentUser.value,h=yield zt(n.cloud.options.databaseUrl,t);yield n.table("$logins").update(t.userId,{accessToken:h.accessToken,accessTokenExpiration:h.accessTokenExpiration,claims:h.claims,license:h.license,data:h.data});break;case"realm-added":(null===(s=null==r?void 0:r.realms)||void 0===s?void 0:s.includes(d.realm))||(null===(o=null==r?void 0:r.inviteRealms)||void 0===o?void 0:o.includes(d.realm))||(yield n.cloud.sync({purpose:"pull",wait:!0}));break;case"realm-accepted":(null===(c=null==r?void 0:r.realms)||void 0===c?void 0:c.includes(d.realm))||(yield n.cloud.sync({purpose:"pull",wait:!0}));break;case"realm-removed":((null===(l=null==r?void 0:r.realms)||void 0===l?void 0:l.includes(d.realm))||(null===(a=null==r?void 0:r.inviteRealms)||void 0===a?void 0:a.includes(d.realm)))&&(yield n.cloud.sync({purpose:"pull",wait:!0}));break;case"realms-changed":yield n.cloud.sync({purpose:"pull",wait:!0});break;case"changes":if("error"===(null===(u=n.cloud.syncState.value)||void 0===u?void 0:u.phase)){Le(n,"pull");break}yield n.transaction("rw",n.dx.tables,(t=>i(this,void 0,void 0,(function*(){t.idbtrans.disableChangeTracking=!0,t.idbtrans.disableAccessControl=!0;const[r,i,s]=yield Promise.all([n.getSchema(),n.getPersistedSyncState(),n.getCurrentUser()]);if(!i||!r||!s)return;if(d.baseRev!==i.serverRevision)return void("string"!=typeof d.baseRev||"bigint"!=typeof i.serverRevision&&"object"!=typeof i.serverRevision||Le(n,"pull"));if((yield e.waitFor(Be(i)))!==d.realmSetHash)return void Le(n,"pull");let o=[];if(s.isLoggedIn){const e=Fe(n).map((e=>n.table(We(e.name))));o=yield ze(e,n)}if(d.changes.length>0){const e=xc(d.changes,o);yield Ln(e,n)}i.latestRevisions=jn(o,i.latestRevisions),i.serverRevision=d.newRev,yield Un(n,r,i.latestRevisions,d.newRev),yield n.$syncState.put(i,"syncState")}))))}}catch(e){}}}))}()}finally{l[l.length-1]-l[0]<Cc&&(yield new Promise((e=>setTimeout(e,Ac)))),c=!1,s.next(!0)}}})))),{enqueue:function(e){r.push(e),o.next(null)},readyToServe:s}}const Dc=new WeakMap,Tc={members:"@id, [userId+realmId], [email+realmId], realmId",roles:"[realmId+name]",realms:"@realmId",$jobs:"",$syncState:"",$baseRevs:"[tableName+clientRev]",$logins:"claims.sub, lastLogin"};let Uc=0;function jc(e){"vip"in e&&(e=e.vip);let n=Dc.get(e.cloud);if(!n){const r=new t.Subject;let i=new v(`syncstatechanged-${e.name}`),s=new v(`synccomplete-${e.name}`);r.id=++Uc;let o=!1;n={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 o},localSyncEvent:r,get syncStateChangedEvent(){return i},get syncCompleteEvent(){return s},dx:e};const c={getCurrentUser:()=>n.$logins.toArray().then((e=>e.find((e=>e.isLoggedIn))||h)),getPersistedSyncState:()=>n.$syncState.get("syncState"),getSchema:()=>n.$syncState.get("schema").then((e=>{if(e)for(const r of n.tables)r.schema.primKey&&r.schema.primKey.keyPath&&e[r.name]&&(e[r.name].primaryKey="string"==typeof(t=r.schema.primKey.keyPath)?t:t?"["+[].join.call(t,"+")+"]":"");var t;return e})),getOptions:()=>n.$syncState.get("options"),setInitiallySynced(e){o=e},reconfigure(){i=new v(`syncstatechanged-${e.name}`),s=new v(`synccomplete-${e.name}`)}};Object.assign(n,c),n.messageConsumer=Oc(n),n.messageProducer=new t.Subject,Dc.set(e.cloud,n)}return n}const Pc=new WeakMap;class Lc{constructor(e,t){Pc.set(this,e),Object.assign(this,t)}static load(e,t){return e.table("$logins").get(t).then((n=>new Lc(e,n||{userId:t,claims:{sub:t},lastLogin:new Date(0)})))}save(){return i(this,void 0,void 0,(function*(){Pc.get(this).table("$logins").put(this)}))}}function Rc(e,n){return t.firstValueFrom(t.from(e).pipe(t.filter(n)))}function Nc(e){return i(this,void 0,void 0,(function*(){const t=yield $c(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 Bt(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 $c(e,{deleteUnsyncedData:!0})}}))}function $c(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 i=n.storeNames.filter((e=>e.endsWith("_mutations"))),s=(yield Promise.all(i.map((e=>n.table(e).count())))).reduce(((e,t)=>e+t),0);if(s>0&&!t)return[s,!1];e.$syncState.delete("syncState");for(const t of e.dx.tables)"$jobs"!==t.name&&"$syncState"!==t.name&&t.clear();return[s,!0]}))));return r&&(yield Rc(e.cloud.currentUser,(e=>e.userId===h.userId)),yield e.cloud.sync({purpose:"pull",wait:!0})),n}))}function Mc(e,...t){globalThis.console[e](...t)}function Bc(e,t){return i(this,void 0,void 0,(function*(){var n;const r=yield e.getCurrentUser(),s=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 Kt(e),!1}const o=new Lc(e,{claims:{},lastLogin:new Date(0)});return yield Ht(e.cloud.options.databaseUrl,o,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 i;let s;const o=null===(i=e.cloud.options)||void 0===i?void 0:i.databaseUrl;if(!o)throw new Error("No database URL given.");if("demo"===(null==r?void 0:r.grant_type))s={demo_user:yield Wt(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)s={grant_type:"otp",otp_id:r.otpId,otp:r.otp,scopes:["ACCESS_DB"],public_key:n};else{const e=yield Wt(t,"Enter email address",null==r?void 0:r.email);s=/@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 c=yield fetch(`${o}/token`,{body:JSON.stringify(s),method:"post",headers:{"Content-Type":"application/json",mode:"cors"}});if(200!==c.status){const e=yield c.text();throw yield Ft(t,"Token request failed",{type:"error",messageCode:"GENERIC_ERROR",message:e,messageParams:{}}).catch((()=>{})),new En(c,e)}const l=yield c.json();if("tokens"===l.type||"error"===l.type)return l;if("otp"===s.grant_type&&"email"in s){if("otp-sent"!==l.type)throw new Error(`Unexpected response from ${o}/token`);const e=yield Vt(t,s.email),r=Object.assign(Object.assign({},s),{otp:e||"",otp_id:l.otp_id,public_key:n});let i=yield fetch(`${o}/token`,{body:JSON.stringify(r),method:"post",headers:{"Content-Type":"application/json"},mode:"cors"});for(;401===i.status;){const e=yield i.text();r.otp=yield Vt(t,s.email,{type:"error",messageCode:"INVALID_OTP",message:e,messageParams:{}}),i=yield fetch(`${o}/token`,{body:JSON.stringify(r),method:"post",headers:{"Content-Type":"application/json"},mode:"cors"})}if(200!==i.status){const e=yield i.text();throw new En(i,e)}return yield i.json()}throw new Error(`Unexpected response from ${o}/token`)}))}}(e),e.cloud.userInteraction,t),s!==h.userId&&o.userId!==s&&(yield Nc(e)),yield function(e,t){return i(this,void 0,void 0,(function*(){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&&(Mc("debug","Login context property names:",Object.keys(t)),Mc("debug","Login context property names:",Object.keys(t)),Mc("debug","Login context:",t),Mc("debug","Login context JSON:",JSON.stringify(t)))}catch(e){}throw e}})))),yield Rc(e.cloud.currentUser,(e=>e.userId===t.userId))}))}(e,o),Le(e,"pull"),o.userId!==s}))}const Fc="undefined"!=typeof InstallTrigger,Wc="undefined"!=typeof navigator&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\/|Edge\//.test(navigator.userAgent),Vc=Wc?[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]:NaN,Kc=Wc&&Vc<=605||Fc,Hc="undefined"!=typeof self&&"clients"in self&&!self.document;const{toString:zc}={};function Jc(e){return zc.call(e).slice(8,-1)}function qc(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 Yc=/b|c|d|f|g|h|j|k|l|m|n|p|q|r|s|t|v|x|y|z/i;let Gc=0;function Qc(e,t){const n=new Uint8Array(18),r=new Uint8Array(n.buffer,0,6),i=Date.now();Gc>=i?++Gc:Gc=i,r[0]=Gc/1099511627776,r[1]=Gc/4294967296,r[2]=Gc/16777216,r[3]=Gc/65536,r[4]=Gc/256,r[5]=Gc;const s=new Uint8Array(n.buffer,6);crypto.getRandomValues(s);return e+sn(new Uint8Array(n.buffer))+(t||"")}function Xc(t){return{stack:"dbcore",name:"idGenerationMiddleware",level:1,create:n=>Object.assign(Object.assign({},n),{table:r=>{const i=n.table(r);return Object.assign(Object.assign({},i),{mutate:n=>{var s,o;const c=n.trans;if("versionchange"===c.mode&&(c.disableChangeTracking=!0,c.disableAccessControl=!0),c.disableChangeTracking)return i.mutate(n);if("add"===n.type||"put"===n.type){const c=null===(s=t.cloud.schema)||void 0===s?void 0:s[r];if(null==c?void 0:c.generatedGlobalId){if((null===(o=t.cloud.options)||void 0===o?void 0:o.databaseUrl)&&!t.initiallySynced){const e=qc(i.schema.primaryKey,n);return i.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 i.mutate(n)}))}return function(n,s){let o=null;const c=qc(i.schema.primaryKey,n);return c.forEach(((l,a)=>{if(void 0===l){const r=n.values[a].realmId||t.cloud.currentUserId,l=r.substr(r.length-3);c[a]=Qc(s,l),i.schema.primaryKey.outbound||(o||(o=n.values.slice()),o[a]=e.deepClone(o[a]),e.setByKeyPath(o[a],i.schema.primaryKey.keyPath,c[a]))}else if("string"!=typeof l||!l.startsWith(s)&&!l.startsWith("#"+s))throw new e.ConstraintError(`The ID "${l}" is not valid for table "${r}". Primary '@' keys requires the key to be prefixed with "${s}" (or "#${s}).\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.`)})),i.mutate(Object.assign(Object.assign({},n),{keys:c,values:o||n.values}))}(n,c.idPrefix)}if(null==c?void 0:c.markedForSync){qc(i.schema.primaryKey,n).forEach(((t,n)=>{if(!Xe(t)){const n=Array.isArray(t)?t.map(Jc).join(","):Jc(t);throw new e.ConstraintError(`Invalid primary key type ${n} for table ${r}. Tables marked for sync has primary keys of type string or Array of string (and optional numbers)`)}}))}}return i.mutate(n)}})}})}}let Zc=0;function el(e,t){return function(n){const{readers:r,writers:i}=n.trans[t]||(n.trans[t]={writers:[],readers:[]}),s=i.length,o=(s>0?i[s-1].then((()=>e(n)),(()=>e(n))):e(n)).finally((()=>{r.splice(r.indexOf(o))}));return r.push(o),o}}function tl(e,t){return function(n){const{readers:r,writers:i}=n.trans[t]||(n.trans[t]={writers:[],readers:[]});let s=(i.length>0?i[i.length-1].then((()=>e(n)),(()=>e(n))):r.length>0?(o=r,new Promise((e=>{0===o.length&&e([]);let t=o.length;const n=new Array(t);o.forEach(((r,i)=>Promise.resolve(r).then((e=>n[i]={status:"fulfilled",value:e}),(e=>n[i]={status:"rejected",reason:e})).then((()=>--t||e(n)))))}))).then((()=>e(n))):e(n)).finally((()=>{i.shift()}));var o;return i.push(s),s}}const nl=new t.BehaviorSubject(new Set);function rl(e){var t,n,r,i;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===(i=e.cloud.options)||void 0===i?void 0:i.databaseUrl)}function il({currentUserObservable:t,db:n}){return{stack:"dbcore",name:"MutationTrackingMiddleware",level:1,create:r=>{const i=new Set(r.schema.tables.map((e=>e.name))),s=r.schema.tables.filter((e=>!/^\$/.test(e.name))),o=new Map;for(const e of s){const t=`$${e.name}_mutations`;i.has(t)&&o.set(e.name,r.table(t))}return Object.assign(Object.assign({},r),{transaction:(e,i)=>{let s;if("readwrite"===i){const t=e.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=>We(e)));s=r.transaction([...e,...t],i)}else s=r.transaction(e,i);if("readwrite"===i){s.txid=Je(16),s.opCount=0,s.currentUser=t.value,nl.value.add(s),nl.next(nl.value);const e=()=>{s.removeEventListener("complete",r),s.removeEventListener("error",e),s.removeEventListener("abort",e),nl.value.delete(s),nl.next(nl.value)},r=()=>{s.mutationsAdded&&!rl(n)&&Le(n,"push"),e()};s.addEventListener("complete",r),s.addEventListener("error",e),s.addEventListener("abort",e)}return s},table:t=>{const i=r.table(t);if(/^\$/.test(t))return t.endsWith("_mutations")?Object.assign(Object.assign({},i),{mutate:e=>("add"!==e.type&&"put"!==e.type||(e.trans.mutationsAdded=!0),i.mutate(e))}):"$logins"===t?Object.assign(Object.assign({},i),{mutate:e=>i.mutate(e).then((t=>(e.trans.mutationsAdded=!0,t))).catch((e=>Promise.reject(e)))}):i;const{schema:s}=i,c=o.get(t);return c?function(e){const t="$lock"+ ++Zc;return Object.assign(Object.assign({},e),{count:el(e.count,t),get:el(e.get,t),getMany:el(e.getMany,t),openCursor:el(e.openCursor,t),query:el(e.query,t),mutate:tl(e.mutate,t)})}(Object.assign(Object.assign({},i),{mutate:e=>{var r,o,c;const a=e.trans;return a.txid?a.disableChangeTracking?i.mutate(e):(null===(o=null===(r=n.cloud.schema)||void 0===r?void 0:r[t])||void 0===o?void 0:o.markedForSync)&&(null===(c=a.currentUser)||void 0===c?void 0:c.isLoggedIn)?"deleteRange"===e.type?i.query({query:{range:e.range,index:s.primaryKey},trans:e.trans,values:!1}).then((t=>l({type:"delete",keys:t.result,trans:e.trans,criteria:{index:null,range:e.range}}))):l(e):i.mutate(e):i.mutate(e)}})):i;function l(r){var o,l;const a=r.trans,u=null===(l=null===(o=n.cloud.options)||void 0===o?void 0:o.unsyncedProperties)||void 0===l?void 0:l[t],{txid:d,currentUser:{userId:h}}=a,{type:f}=r,p=++a.opCount;function g(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 i.mutate(r).then((t=>{var n;const{numFailures:i,failures:o}=t;let l="delete"===f?r.keys:t.results,y="values"in r?r.values:[],v="changeSpec"in r?r.changeSpec:void 0,m="updates"in r?r.updates:void 0;if(i&&(l=l.filter(((e,t)=>!o[t])),y=y.filter(((e,t)=>!o[t]))),u){if(y=y.map((e=>{const t=Object.assign({},e);for(const e of u)delete t[e];return t})),v&&(v=g(v),0===Object.keys(v).length))return t;if(m){let t=m.changeSpecs.map(g),n={keys:[],changeSpecs:[]};const r=new e.RangeSet;let i=!1;for(let e=0,s=t.length;e<s;++e)Object.keys(t[e]).length>0?(n.keys.push(m.keys[e]),n.changeSpecs.push(t[e]),r.addKey(m.keys[e])):i=!0;if(m=n,i){let e=[],t=[];for(let n=0,i=l.length;n<i;++n)r.hasKey(l[n])&&(e.push(l[n]),t.push(y[n]));l=e,y=t}}}const b=Date.now();let w="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==w?void 0:w.index)){const e=null===(n=s.indexes.find((e=>e.name===w.index)))||void 0===n?void 0:n.keyPath;(e?"string"==typeof e?[e]:e:[]).some((e=>null==u?void 0:u.includes(e)))&&(w=void 0)}const _="delete"===r.type?{type:"delete",ts:b,opNo:p,keys:l,criteria:w,txid:d,userId:h}:"add"===r.type?{type:"insert",ts:b,opNo:p,keys:l,txid:d,userId:h,values:y}:w&&v?{type:"modify",ts:b,opNo:p,keys:l,criteria:w,changeSpec:v,txid:d,userId:h}:v?{type:"update",ts:b,opNo:p,keys:l,changeSpecs:l.map((()=>v)),txid:d,userId:h}:m?{type:"update",ts:b,opNo:p,keys:m.keys,changeSpecs:m.changeSpecs,txid:d,userId:h}:{type:"upsert",ts:b,opNo:p,keys:l,values:y,txid:d,userId:h};return"isAdditionalChunk"in r&&r.isAdditionalChunk&&(_.isAdditionalChunk=!0),l.length>0||w?c.mutate({type:"add",trans:a,values:[_]}).then((()=>(a.mutationsAdded=!0,t))):t}))}}})}}}function sl(e,t){return function(n,r){var i;const s=Object.assign(Object.assign({},Tc),n);Object.keys(Tc).forEach((e=>{const t=s[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())),i=Tc[e].split(",").map((e=>e.trim())),o=new Set(r.map((e=>e.replace(/([&*]|\+\+)/g,""))));if(r[0]!==i[0])throw new Error(`Cannot override primary key of table ${e}. Please declare it as {${e}: ${JSON.stringify(Tc[e])}`);for(let t=1;t<i.length;++t){const n=i[t];o.has(n.replace(/([&*]|\+\+)/g,""))||(s[e]+=`,${n}`)}}));const o=t.cloud.schema||(t.cloud.schema={}),c=new Set;Object.keys(s).forEach((e=>{const t=s[e],n=o[e]||(o[e]={});null!=t?(/^\@/.test(t)&&(s[e]=s[e].substr(1),n.generatedGlobalId=!0,n.idPrefix=function(e,t){let n=e[0].toLocaleLowerCase();for(let t=1,i=e.length;t<i&&n.length<3;++t)(Yc.test(e[t])||(r=e[t])>="A"&&r<="Z")&&(n+=e[t].toLowerCase());for(var r,i,s;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;)i=n,r=(1&(s=e)?i[0].toUpperCase():i[0].toLowerCase())+(2&s?i[1].toUpperCase():i[1].toLowerCase())+(4&s?i[2].toUpperCase():i[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,c),c.add(n.idPrefix)),/^\$/.test(e)||(s[`$${e}_mutations`]="++rev",n.markedForSync=!0),n.deleted&&(n.deleted=!1)):(n.deleted=!0,n.markedForSync=!1,s[`$${e}_mutations`]=null)}));const l=e.call(this,s,r);for(const[e,t]of Object.entries(r))if(null===(i=t.yProps)||void 0===i?void 0:i.length){const n=o[e];n&&(n.yProps=t.yProps.map((e=>e.prop)))}return l}}function ol(e,t,n){return"undefined"!=typeof navigator&&navigator.locks?navigator.locks.request(e.name+"|"+t,(()=>n())):n()}const cl=new t.BehaviorSubject(!0),ll=new t.BehaviorSubject(!0);cl.pipe(Te((e=>e?t.of(!0):t.of(!1).pipe(xe(2e4)))),Ie()).subscribe(ll);const al="undefined"!=typeof document?t.fromEvent(document,"visibilitychange"):t.of({}),ul=al.pipe(Ae((()=>"hidden"===document.visibilityState))),dl=al.pipe(Ae((()=>"visible"===document.visibilityState))),hl="undefined"!=typeof window?t.merge(dl,t.fromEvent(window,"mousedown"),t.fromEvent(window,"mousemove"),t.fromEvent(window,"keydown"),t.fromEvent(window,"wheel"),t.fromEvent(window,"touchmove")):t.of({});"undefined"!=typeof document&&t.merge(t.of(!0),ul,hl).pipe(ve((()=>"visible"===document.visibilityState)),Ue((e=>{cl.value!==e&&cl.next(e)})),Te((e=>e?t.of(0).pipe(xe(16e4),Ue((()=>cl.next(!1)))):t.of(0)))).subscribe((()=>{}));class fl extends Error{constructor(){super(...arguments),this.name="TokenExpiredError"}}function pl(t){var n,r;if(!(null===(n=t.cloud.options)||void 0===n?void 0:n.awarenessProtocol))throw new e.MissingAPIError('awarenessProtocol was not provided to db.cloud.configure(). Please import * as awarenessProtocol from "y-protocols/awareness".');return null===(r=t.cloud.options)||void 0===r?void 0:r.awarenessProtocol}const gl=new WeakMap,yl=new WeakMap;function vl(e){let n=yl.get(e);return n||(n=new t.Subject,yl.set(e,n)),n}class ml extends t.Observable{constructor(e,t,n,r,i,s,o,c){super((l=>new wl(e,t,n,r,i,c,l,s,o)))}}let bl=0;class wl extends t.Subscription{constructor(e,t,n,r,i,s,o,c,l){super((()=>this.teardown())),this.id=++bl,this.subscriptions=new Set,this.reconnecting=!1,this.db=e,this.databaseUrl=e.cloud.options.databaseUrl,this.rev=t,this.yrev=n,this.realmSetHash=r,this.clientIdentity=i,this.user=s,this.subscriber=o,this.lastUserActivity=new Date,this.messageProducer=c,this.webSocketStatus=l,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 n=this.user.accessTokenExpiration;if(n&&n<new Date)return void this.subscriber.error(new fl);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 s=new URLSearchParams;if(this.subscriber.closed)return;s.set("v","2"),this.rev&&s.set("rev",this.rev),this.yrev&&s.set("yrev",this.yrev),s.set("realmsHash",this.realmSetHash),s.set("clientId",this.clientIdentity),s.set("dxcv",this.db.cloud.version),this.user.accessToken&&s.set("token",this.user.accessToken);const o=this.ws=new WebSocket(`${r}/changes?${s}`);o.binaryType="arraybuffer",o.onclose=e=>{this.pinger&&this.reconnect()},o.onmessage=e=>{if(this.pinger){this.lastServerActivity=new Date;try{const t="string"==typeof e.data?kn.parse(e.data):function(e){const t=new At(e),n=jt(t);if("outdated-server-rev"===n)return{type:n};if("y-complete-sync-done"===n)return{type:n,yServerRev:jt(t)};const r=jt(t),i=jt(t);switch(n){case"u-ack":case"u-reject":return{type:n,table:r,prop:i,i:Number(Lt(t))};default:{const e=Nt(t);switch(n){case"in-sync":case"doc-close":return{type:n,table:r,prop:i,k:e};case"aware":return{type:n,table:r,prop:i,k:e,u:Dt(t)};case"doc-open":return{type:n,table:r,prop:i,k:e,serverRev:Nt(t),sv:Nt(t)};case"sv":return{type:n,table:r,prop:i,k:e,sv:Dt(t)};case"u-c":return{type:n,table:r,prop:i,k:e,u:Dt(t),i:Number(Lt(t))};case"u-s":return{type:n,table:r,prop:i,k:e,u:Dt(t),r:t.pos<t.arr.length&&jt(t)||void 0};default:throw new TypeError(`Unknown message type: ${n}`)}}}}(new Uint8Array(e.data));if("error"===t.type)throw new Error(`Error message from dexie-cloud: ${t.error}`);if("aware"===t.type){const e=yc.getDocCache(this.db.dx).find(t.table,t.k,t.prop);if(e){const n=(e=>gl.get(e))(e);if(n){pl(this.db).applyAwarenessUpdate(n,t.u,"server")}}}else if("pong"===t.type);else if("doc-open"===t.type){const e=yc.getDocCache(this.db.dx).find(t.table,t.k,t.prop);e&&vl(e).next()}else"u-ack"===t.type||"u-reject"===t.type||"u-s"===t.type||"in-sync"===t.type||"outdated-server-rev"===t.type||"y-complete-sync-done"===t.type?vc([t],this.db).then((e=>i(this,[e],void 0,(function*({resyncNeeded:e,yServerRevision:n,receivedUntils:r}){if(n&&(yield this.db.$syncState.update("syncState",{yServerRevision:n})),"u-s"===t.type&&r){const e=sc(this.db,t.table,t.prop);if(e){const t=r[e.name];t&&(yield e.update(Rn,{receivedUntil:t}))}}e&&(yield this.db.cloud.sync({purpose:"pull",wait:!0}))})))):this.subscriber.next(t)}catch(e){this.subscriber.error(e)}}};try{let n=!1;yield new Promise(((e,t)=>{o.onopen=t=>{n=!0,e(null)},o.onerror=e=>{if(n)this.reconnect();else{const n=e.error||new Error("WebSocket Error");this.subscriber.error(n),this.webSocketStatus.next("error"),t(n)}}})),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(kn.stringify(e))):null===(n=this.ws)||void 0===n||n.send(Et(e)))}))),this.user.isLoggedIn&&!rl(this.db)&&this.subscriptions.add(function(n){const r=He(n.tables.filter((e=>{var t,r;return(null===(r=null===(t=n.cloud.schema)||void 0===t?void 0:t[e.name])||void 0===r?void 0:r.markedForSync)&&e.schema.yProps})).map((e=>e.schema.yProps.map((t=>({table:e.name,ydocProp:t.prop,updatesTable:t.updatesTable}))))));return t.merge(...r.map((({table:r,ydocProp:s,updatesTable:o})=>{const c=n.table(o);return t.from(c.get(Rn)).pipe(t.switchMap((n=>{let o=(null==n?void 0:n.unsentFrom)||1;return t.from(e.liveQuery((()=>i(this,void 0,void 0,(function*(){return(yield Nn(c,o)).filter((e=>e.f&&1&e.f)).map((e=>({type:"u-c",table:r,prop:s,k:e.k,u:e.u,i:e.i})))}))))).pipe(t.tap((e=>{e.length>0&&(o=e.at(-1).i+1)})))})))}))).pipe(t.mergeMap((e=>e)))}(this.db).subscribe(this.db.messageProducer))}catch(e){this.pauseUntil=new Date(Date.now()+6e4)}}))}}class _l extends Error{constructor(e){super("expired"===e?"License expired":"deactivated"===e?"User deactivated":"Invalid license"),this.name="InvalidLicenseError",e&&(this.license=e)}}function kl(e){return i(this,void 0,void 0,(function*(){var e;yield(e=3e3,new Promise((t=>setTimeout(t,e)))),yield t.firstValueFrom(hl)}))}function Sl(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 Sc(e,e.cloud.options,e.cloud.schema,{justCheckIfNeeded:!0}))}))}const El=new WeakMap;function xl(e,t,n,r){const s=El.get(e);if(s){if(s.pull||"push"===(null==r?void 0:r.purpose))return s.promise;{let i=!1;const o=e.cloud.syncState.subscribe((e=>{"pulling"===e.phase&&(i=!0)}));return s.promise.then((()=>{o.unsubscribe()})).catch((e=>(o.unsubscribe(),Promise.reject(e)))).then((()=>{if(!i)return xl(e,t,n,r)}))}}const o=function(){return i(this,void 0,void 0,(function*(){try{yield An(e),yield ol(e,kc,(()=>Sc(e,t,n,r))),El.delete(e)}catch(t){throw El.delete(e),t}}))}();return El.set(e,{promise:o,pull:"push"!==(null==r?void 0:r.purpose)}),o}const Il=1e3;function Cl(e,t,n){let r=null,i={cancelled:!1},s=0,o=0;function c(r=1){setTimeout((()=>{const d=l?"pull":"push";o=Date.now(),xl(e,t,n,{cancelToken:i,retryImmediatelyOnFetchError:!0,purpose:d}).then((()=>{if(i.cancelled)h();else if(l||a)return l=!1,a=!1,c();u=!1,s=0,o=0})).catch((e=>{if(i.cancelled)h(),u=!1,s=0,o=0;else if(r<5){const e=[0,20,40,300,900][r]*Il;s=Date.now()+e,o=0,setTimeout((()=>c(r+1)),e)}else u=!1,s=0,o=0}))}),0)}let l=!1,a=!1,u=!1;const d=e=>{i.cancelled||("pull"===e&&(l=!0),"push"===e&&(a=!0),u?s||o>0&&Date.now():(u=!0,c()))},h=()=>{i.cancelled=!0,r&&r.unsubscribe()};return{start:()=>{r=e.localSyncEvent.subscribe((({purpose:e})=>{d(e||"pull")}))},stop:h}}function Al(e,t){if(e&&t&&t.unsyncedTables)for(const n of t.unsyncedTables)e[n]&&(e[n].markedForSync=!1)}var Ol,Dl,Tl,Ul,jl,Pl={},Ll=[],Rl=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function Nl(e,t){for(var n in t)e[n]=t[n];return e}function $l(e){var t=e.parentNode;t&&t.removeChild(e)}function Ml(e,t,n){var r,i,s,o={};for(s in t)"key"==s?r=t[s]:"ref"==s?i=t[s]:o[s]=t[s];if(arguments.length>2&&(o.children=arguments.length>3?Ol.call(arguments,2):n),"function"==typeof e&&null!=e.defaultProps)for(s in e.defaultProps)void 0===o[s]&&(o[s]=e.defaultProps[s]);return Bl(e,o,r,i,null)}function Bl(e,t,n,r,i){var s={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==i?++Tl:i};return null==i&&null!=Dl.vnode&&Dl.vnode(s),s}function Fl(e){return e.children}function Wl(e,t){this.props=e,this.context=t}function Vl(e,t){if(null==t)return e.__?Vl(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?Vl(e):null}function Kl(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 Kl(e)}}function Hl(e){(!e.__d&&(e.__d=!0)&&Ul.push(e)&&!zl.__r++||jl!==Dl.debounceRendering)&&((jl=Dl.debounceRendering)||setTimeout)(zl)}function zl(){for(var e;zl.__r=Ul.length;)e=Ul.sort((function(e,t){return e.__v.__b-t.__v.__b})),Ul=[],e.some((function(e){var t,n,r,i,s,o;e.__d&&(s=(i=(t=e).__v).__e,(o=t.__P)&&(n=[],(r=Nl({},i)).__v=i.__v+1,ea(o,i,r,t.__n,void 0!==o.ownerSVGElement,null!=i.__h?[s]:null,n,null==s?Vl(i):s,i.__h),ta(n,i),i.__e!=s&&Kl(i)))}))}function Jl(e,t,n,r,i,s,o,c,l,a){var u,d,h,f,p,g,y,v=r&&r.__k||Ll,m=v.length;for(n.__k=[],u=0;u<t.length;u++)if(null!=(f=n.__k[u]=null==(f=t[u])||"boolean"==typeof f?null:"string"==typeof f||"number"==typeof f||"bigint"==typeof f?Bl(null,f,null,null,f):Array.isArray(f)?Bl(Fl,{children:f},null,null,null):f.__b>0?Bl(f.type,f.props,f.key,null,f.__v):f)){if(f.__=n,f.__b=n.__b+1,null===(h=v[u])||h&&f.key==h.key&&f.type===h.type)v[u]=void 0;else for(d=0;d<m;d++){if((h=v[d])&&f.key==h.key&&f.type===h.type){v[d]=void 0;break}h=null}ea(e,f,h=h||Pl,i,s,o,c,l,a),p=f.__e,(d=f.ref)&&h.ref!=d&&(y||(y=[]),h.ref&&y.push(h.ref,null,f),y.push(d,f.__c||p,f)),null!=p?(null==g&&(g=p),"function"==typeof f.type&&f.__k===h.__k?f.__d=l=ql(f,l,e):l=Yl(e,f,h,v,p,l),"function"==typeof n.type&&(n.__d=l)):l&&h.__e==l&&l.parentNode!=e&&(l=Vl(h))}for(n.__e=g,u=m;u--;)null!=v[u]&&("function"==typeof n.type&&null!=v[u].__e&&v[u].__e==n.__d&&(n.__d=Vl(r,u+1)),ia(v[u],v[u]));if(y)for(u=0;u<y.length;u++)ra(y[u],y[++u],y[++u])}function ql(e,t,n){for(var r,i=e.__k,s=0;i&&s<i.length;s++)(r=i[s])&&(r.__=e,t="function"==typeof r.type?ql(r,t,n):Yl(n,r,r,i,r.__e,t));return t}function Yl(e,t,n,r,i,s){var o,c,l;if(void 0!==t.__d)o=t.__d,t.__d=void 0;else if(null==n||i!=s||null==i.parentNode)e:if(null==s||s.parentNode!==e)e.appendChild(i),o=null;else{for(c=s,l=0;(c=c.nextSibling)&&l<r.length;l+=2)if(c==i)break e;e.insertBefore(i,s),o=s}return void 0!==o?o:i.nextSibling}function Gl(e,t,n){"-"===t[0]?e.setProperty(t,n):e[t]=null==n?"":"number"!=typeof n||Rl.test(t)?n:n+"px"}function Ql(e,t,n,r,i){var s;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||Gl(e.style,t,"");if(n)for(t in n)r&&n[t]===r[t]||Gl(e.style,t,n[t])}else if("o"===t[0]&&"n"===t[1])s=t!==(t=t.replace(/Capture$/,"")),t=t.toLowerCase()in e?t.toLowerCase().slice(2):t.slice(2),e.l||(e.l={}),e.l[t+s]=n,n?r||e.addEventListener(t,s?Zl:Xl,s):e.removeEventListener(t,s?Zl:Xl,s);else if("dangerouslySetInnerHTML"!==t){if(i)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 Xl(e){this.l[e.type+!1](Dl.event?Dl.event(e):e)}function Zl(e){this.l[e.type+!0](Dl.event?Dl.event(e):e)}function ea(e,t,n,r,i,s,o,c,l){var a,u,d,h,f,p,g,y,v,m,b,w,_,k=t.type;if(void 0!==t.constructor)return null;null!=n.__h&&(l=n.__h,c=t.__e=n.__e,t.__h=null,s=[c]),(a=Dl.__b)&&a(t);try{e:if("function"==typeof k){if(y=t.props,v=(a=k.contextType)&&r[a.__c],m=a?v?v.props.value:a.__:r,n.__c?g=(u=t.__c=n.__c).__=u.__E:("prototype"in k&&k.prototype.render?t.__c=u=new k(y,m):(t.__c=u=new Wl(y,m),u.constructor=k,u.render=sa),v&&v.sub(u),u.props=y,u.state||(u.state={}),u.context=m,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=Nl({},u.__s)),Nl(u.__s,k.getDerivedStateFromProps(y,u.__s))),h=u.props,f=u.state,d)null==k.getDerivedStateFromProps&&null!=u.componentWillMount&&u.componentWillMount(),null!=u.componentDidMount&&u.__h.push(u.componentDidMount);else{if(null==k.getDerivedStateFromProps&&y!==h&&null!=u.componentWillReceiveProps&&u.componentWillReceiveProps(y,m),!u.__e&&null!=u.shouldComponentUpdate&&!1===u.shouldComponentUpdate(y,u.__s,m)||t.__v===n.__v){u.props=y,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&&o.push(u);break e}null!=u.componentWillUpdate&&u.componentWillUpdate(y,u.__s,m),null!=u.componentDidUpdate&&u.__h.push((function(){u.componentDidUpdate(h,f,p)}))}if(u.context=m,u.props=y,u.__v=t,u.__P=e,b=Dl.__r,w=0,"prototype"in k&&k.prototype.render)u.state=u.__s,u.__d=!1,b&&b(t),a=u.render(u.props,u.state,u.context);else do{u.__d=!1,b&&b(t),a=u.render(u.props,u.state,u.context),u.state=u.__s}while(u.__d&&++w<25);u.state=u.__s,null!=u.getChildContext&&(r=Nl(Nl({},r),u.getChildContext())),d||null==u.getSnapshotBeforeUpdate||(p=u.getSnapshotBeforeUpdate(h,f)),_=null!=a&&a.type===Fl&&null==a.key?a.props.children:a,Jl(e,Array.isArray(_)?_:[_],t,n,r,i,s,o,c,l),u.base=t.__e,t.__h=null,u.__h.length&&o.push(u),g&&(u.__E=u.__=null),u.__e=!1}else null==s&&t.__v===n.__v?(t.__k=n.__k,t.__e=n.__e):t.__e=na(n.__e,t,n,r,i,s,o,l);(a=Dl.diffed)&&a(t)}catch(e){t.__v=null,(l||null!=s)&&(t.__e=c,t.__h=!!l,s[s.indexOf(c)]=null),Dl.__e(e,t,n)}}function ta(e,t){Dl.__c&&Dl.__c(t,e),e.some((function(t){try{e=t.__h,t.__h=[],e.some((function(e){e.call(t)}))}catch(e){Dl.__e(e,t.__v)}}))}function na(e,t,n,r,i,s,o,c){var l,a,u,d=n.props,h=t.props,f=t.type,p=0;if("svg"===f&&(i=!0),null!=s)for(;p<s.length;p++)if((l=s[p])&&"setAttribute"in l==!!f&&(f?l.localName===f:3===l.nodeType)){e=l,s[p]=null;break}if(null==e){if(null===f)return document.createTextNode(h);e=i?document.createElementNS("http://www.w3.org/2000/svg",f):document.createElement(f,h.is&&h),s=null,c=!1}if(null===f)d===h||c&&e.data===h||(e.data=h);else{if(s=s&&Ol.call(e.childNodes),a=(d=n.props||Pl).dangerouslySetInnerHTML,u=h.dangerouslySetInnerHTML,!c){if(null!=s)for(d={},p=0;p<e.attributes.length;p++)d[e.attributes[p].name]=e.attributes[p].value;(u||a)&&(u&&(a&&u.__html==a.__html||u.__html===e.innerHTML)||(e.innerHTML=u&&u.__html||""))}if(function(e,t,n,r,i){var s;for(s in n)"children"===s||"key"===s||s in t||Ql(e,s,null,n[s],r);for(s in t)i&&"function"!=typeof t[s]||"children"===s||"key"===s||"value"===s||"checked"===s||n[s]===t[s]||Ql(e,s,t[s],n[s],r)}(e,h,d,i,c),u)t.__k=[];else if(p=t.props.children,Jl(e,Array.isArray(p)?p:[p],t,n,r,i&&"foreignObject"!==f,s,o,s?s[0]:n.__k&&Vl(n,0),c),null!=s)for(p=s.length;p--;)null!=s[p]&&$l(s[p]);c||("value"in h&&void 0!==(p=h.value)&&(p!==e.value||"progress"===f&&!p||"option"===f&&p!==d.value)&&Ql(e,"value",p,d.value,!1),"checked"in h&&void 0!==(p=h.checked)&&p!==e.checked&&Ql(e,"checked",p,d.checked,!1))}return e}function ra(e,t,n){try{"function"==typeof e?e(t):e.current=t}catch(e){Dl.__e(e,n)}}function ia(e,t,n){var r,i;if(Dl.unmount&&Dl.unmount(e),(r=e.ref)&&(r.current&&r.current!==e.__e||ra(r,null,t)),null!=(r=e.__c)){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(e){Dl.__e(e,t)}r.base=r.__P=null}if(r=e.__k)for(i=0;i<r.length;i++)r[i]&&ia(r[i],t,"function"!=typeof e.type);n||null==e.__e||$l(e.__e),e.__e=e.__d=void 0}function sa(e,t,n){return this.constructor(e,n)}function oa(e,t,n){var r,i,s;Dl.__&&Dl.__(e,t),i=(r="function"==typeof n)?null:n&&n.__k||t.__k,s=[],ea(t,e=(!r&&n||t).__k=Ml(Fl,null,[e]),i||Pl,Pl,void 0!==t.ownerSVGElement,!r&&n?[n]:i?null:t.firstChild?Ol.call(t.childNodes):null,s,!r&&n?n:i?i.__e:t.firstChild,r),ta(s,e)}Ol=Ll.slice,Dl={__e:function(e,t,n,r){for(var i,s,o;t=t.__;)if((i=t.__c)&&!i.__)try{if((s=i.constructor)&&null!=s.getDerivedStateFromError&&(i.setState(s.getDerivedStateFromError(e)),o=i.__d),null!=i.componentDidCatch&&(i.componentDidCatch(e,r||{}),o=i.__d),o)return i.__E=i}catch(t){e=t}throw e}},Tl=0,Wl.prototype.setState=function(e,t){var n;n=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=Nl({},this.state),"function"==typeof e&&(e=e(Nl({},n),this.props)),e&&Nl(n,e),null!=e&&this.__v&&(t&&this.__h.push(t),Hl(this))},Wl.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),Hl(this))},Wl.prototype.render=Fl,Ul=[],zl.__r=0;const ca={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 la({children:e,className:t}){return Ml("div",{className:t},Ml("div",{style:ca.Darken}),Ml("div",{style:ca.DialogOuter},Ml("div",{style:ca.DialogInner},e)))}var aa,ua,da,ha,fa=0,pa=[],ga=[],ya=Dl.__b,va=Dl.__r,ma=Dl.diffed,ba=Dl.__c,wa=Dl.unmount;function _a(e,t){Dl.__h&&Dl.__h(ua,e,fa||t),fa=0;var n=ua.__H||(ua.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({__V:ga}),n.__[e]}function ka(e){return fa=1,function(e,t,n){var r=_a(aa++,2);if(r.t=e,!r.__c&&(r.__=[n?n(t):Oa(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=ua,!ua.u)){ua.u=!0;var i=ua.shouldComponentUpdate;ua.shouldComponentUpdate=function(e,t,n){if(!r.__c.__H)return!0;var s=r.__c.__H.__.filter((function(e){return e.__c}));if(s.every((function(e){return!e.__N})))return!i||i.call(this,e,t,n);var o=!1;return s.forEach((function(e){if(e.__N){var t=e.__[0];e.__=e.__N,e.__N=void 0,t!==e.__[0]&&(o=!0)}})),!!o&&(!i||i.call(this,e,t,n))}}return r.__N||r.__}(Oa,e)}function Sa(e){return fa=5,function(e,t){var n=_a(aa++,7);return Aa(n.__H,t)?(n.__V=e(),n.i=t,n.__h=e,n.__V):n.__}((function(){return{current:e}}),[])}function Ea(){for(var e;e=pa.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(Ia),e.__H.__h.forEach(Ca),e.__H.__h=[]}catch(t){e.__H.__h=[],Dl.__e(t,e.__v)}}Dl.__b=function(e){ua=null,ya&&ya(e)},Dl.__r=function(e){va&&va(e),aa=0;var t=(ua=e.__c).__H;t&&(da===ua?(t.__h=[],ua.__h=[],t.__.forEach((function(e){e.__N&&(e.__=e.__N),e.__V=ga,e.__N=e.i=void 0}))):(t.__h.forEach(Ia),t.__h.forEach(Ca),t.__h=[])),da=ua},Dl.diffed=function(e){ma&&ma(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(1!==pa.push(t)&&ha===Dl.requestAnimationFrame||((ha=Dl.requestAnimationFrame)||function(e){var t,n=function(){clearTimeout(r),xa&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,100);xa&&(t=requestAnimationFrame(n))})(Ea)),t.__H.__.forEach((function(e){e.i&&(e.__H=e.i),e.__V!==ga&&(e.__=e.__V),e.i=void 0,e.__V=ga}))),da=ua=null},Dl.__c=function(e,t){t.some((function(e){try{e.__h.forEach(Ia),e.__h=e.__h.filter((function(e){return!e.__||Ca(e)}))}catch(n){t.some((function(e){e.__h&&(e.__h=[])})),t=[],Dl.__e(n,e.__v)}})),ba&&ba(e,t)},Dl.unmount=function(e){wa&&wa(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.forEach((function(e){try{Ia(e)}catch(e){t=e}})),t&&Dl.__e(t,n.__v))};var xa="function"==typeof requestAnimationFrame;function Ia(e){var t=ua,n=e.__c;"function"==typeof n&&(e.__c=void 0,n()),ua=t}function Ca(e){var t=ua;e.__c=e.__(),ua=t}function Aa(e,t){return!e||e.length!==t.length||t.some((function(t,n){return t!==e[n]}))}function Oa(e,t){return"function"==typeof t?t(e):t}function Da({title:e,type:t,alerts:n,fields:r,submitLabel:i,cancelLabel:s,onCancel:o,onSubmit:c}){const[l,a]=ka({}),u=Sa(null);return function(e,t){var n=_a(aa++,4);!Dl.__s&&Aa(n.__H,t)&&(n.__=e,n.i=t,ua.__h.push(n))}((()=>{var e;return null===(e=u.current)||void 0===e?void 0:e.focus()}),[]),Ml(la,{className:"dxc-login-dlg"},Ml(Fl,null,Ml("h3",{style:ca.WindowHeader},e),n.map((e=>Ml("p",{style:ca.Alert[e.type]},function({message:e,messageCode:t,messageParams:n}){return e.replace(/\{\w+\}/gi,(e=>n[e.substring(1,e.length-1)]))}(e)))),Ml("form",{onSubmit:e=>{e.preventDefault(),c(l)}},Object.entries(r).map((([e,{type:t,label:n,placeholder:r}],i)=>Ml("label",{style:ca.Label,key:i},n?`${n}: `:"",Ml("input",{ref:0===i?u:void 0,type:t,name:e,autoComplete:"on",style:ca.Input,autoFocus:!0,placeholder:r,value:l[e]||"",onInput:n=>{var r;const i=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 s=Object.assign(Object.assign({},l),{[e]:i});a(s),"otp"===t&&8===(null==i?void 0:i.trim().length)&&c(s)}})))))),Ml("div",{style:ca.ButtonsDiv},Ml(Fl,null,Ml("button",{type:"submit",style:ca.Button,onClick:()=>c(l)},i),s&&Ml("button",{style:ca.Button,onClick:o},s))))}class Ta extends Wl{constructor(e){super(e),this.observer=e=>this.setState({userInteraction:e}),this.state={userInteraction:void 0}}componentDidMount(){this.subscription=t.from(this.props.db.cloud.userInteraction).subscribe(this.observer)}componentWillUnmount(){this.subscription&&(this.subscription.unsubscribe(),delete this.subscription)}render(e,{userInteraction:t}){return t?Ml(Da,Object.assign({},t)):null}}function Ua(e){const t=new WeakMap;return n=>{let r=t.get(n);return r||(r=e(n),t.set(n,r)),r}}const ja=Ua((e=>new t.BehaviorSubject(h)));function Pa(e,n){let r=n,i=t.from(e).pipe(t.map((e=>r=e)),t.share({resetOnRefCountZero:()=>t.timer(1e3)}));const s=new t.Observable((e=>{let t=!1;const n=i.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 s.getValue=()=>r,s}const La=Ua((t=>Pa(e.liveQuery((()=>t.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})))),{}))),Ra=Ua((t=>Pa(ja(t._novip).pipe(Te((n=>e.liveQuery((()=>t.transaction("r","realms","members",(()=>Promise.all([t.members.where({userId:n.userId}).toArray(),t.realms.toArray(),n.userId]).then((([e,t,n])=>({selfMembers:e,realms:t,userId:n})))))))))),{selfMembers:[],realms:[],get userId(){return t.cloud.currentUserId}})));function Na(...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,i=t[e];t[e]=[...new Set([...i,...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 $a=Ua((e=>function(e,n){let r;const i=e.pipe(t.map((e=>r=n(e))));return i.getValue=()=>void 0!==r?r:r=n(e.getValue()),i}(Pa(t.combineLatest([Ra(e._novip),La(e._novip)]).pipe(ve((([{selfMembers:e,realms:t,userId:n},r])=>({selfMembers:e,realms:t,userId:n,globalRoles:r})))),{selfMembers:[],realms:[],userId:h.userId,globalRoles:{}}),(({selfMembers:e,realms:t,userId:n,globalRoles:r})=>{const i=t.map((t=>{const i=e.filter((e=>e.realmId===t.realmId)),s=i.map((e=>e.permissions)).filter((e=>e)),o=He(i.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:"*"}:Na(...s,...o)})})).reduce(((e,t)=>Object.assign(Object.assign({},e),{[t.realmId]:t})),{[n]:{realmId:n,owner:n,name:n,permissions:{manage:"*"}}});return i}))));class Ma{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 Ba=Ua((n=>{const r=ja(n._novip).pipe(Te((t=>e.liveQuery((()=>n.members.where({email:t.email||""}).toArray()))))),s=$a(n._novip),o=Ra(n._novip);return Pa(t.combineLatest([r,o,s]).pipe(ve((([e,t,r])=>{const s=(e,t)=>Object.assign(Object.assign({},e),{[t.id]:Object.assign(Object.assign({},t),{realm:r[t.realmId]})}),o=e.reduce(s,{}),c=t.selfMembers.reduce(s,o);return Object.values(c).filter((e=>!e.accepted)).map((e=>Object.assign(Object.assign({},e),{accept(){return i(this,void 0,void 0,(function*(){yield n.members.update(e.id,{accepted:new Date})}))},reject(){return i(this,void 0,void 0,(function*(){yield n.members.update(e.id,{rejected:new Date})}))}})))}))),[])}));function Fa(n){return r=>{var s;const o=r.doc;if(!o)throw new Error("Internal error: DexieYProvider.createYHandler called without a doc. This is unexpected.");const{parentTable:c}=o.meta||{};if(!(null===(s=n.cloud.schema)||void 0===s?void 0:s[c].markedForSync))return;let l;Object.defineProperty(r,"awareness",{get:()=>l||(l=function(n,r,s){const{parentTable:o,parentId:c,parentProp:l,updatesTable:a}=r.meta,u=pl(n),d=new u.Awareness(r),h=vl(r);return d.on("update",(({added:e,updated:t,removed:i},c)=>{const a=e.concat(t).concat(i),h=n.cloud.currentUser.value;if("server"!==c&&h.isLoggedIn&&!rl(n)){const e=u.encodeAwarenessUpdate(d,a);n.messageProducer.next({type:"aware",table:o,prop:l,k:r.meta.parentId,u:e}),s.destroyed&&n.messageProducer.next({type:"doc-close",table:o,prop:l,k:r.meta.parentId})}})),d.on("destroy",(()=>{u.removeAwarenessStates(d,[r.clientID],"provider destroyed")})),(()=>{i(this,void 0,void 0,(function*(){if(s.destroyed)return;let r=!1,u=1;const d=t.combineLatest([n.cloud.webSocketStatus,h.pipe(t.startWith(null))]).subscribe((([e])=>{if(s.destroyed)return;r="connected"===e;const t=n.cloud.currentUser.value;"connected"===e&&t.isLoggedIn&&!rl(n)&&(++u,f().catch((e=>{})))}));function f(){return i(this,void 0,void 0,(function*(){const t=u,d=n.table(a),h=n.$syncState,[f,p]=yield n.transaction("r",h,d,(()=>i(this,void 0,void 0,(function*(){const e=yield d.get(Rn),t=yield h.get("syncState");return[(null==e?void 0:e.receivedUntil)||0,(null==t?void 0:t.yServerRevision)||(null==t?void 0:t.serverRevision)]}))));if(s.destroyed||u!==t||!r)return;const g={type:"doc-open",table:o,prop:l,k:c,serverRev:p},y=yield d.where("i").between(f,1/0,!1).filter((t=>0===e.cmp(t.k,c)&&0==(1&(t.f||0)))).toArray();if(!s.destroyed&&u===t&&r){if(y.length>0){const e=Cs(y.map((e=>e.u))),t=xs(e);g.sv=t}n.messageProducer.next(g)}}))}s.addCleanupHandler(d)}))})(),d}(n,o,r),gl.set(o,l),l)})}}const Wa={nameSuffix:!0};function Va(n){const r=n.name,s=ja(n),o=[];let c=!1,l=null;n.on("ready",(n=>i(this,void 0,void 0,(function*(){try{yield function(n){return i(this,void 0,void 0,(function*(){var r,h,f,p,g,y,v;a=!1;const m=jc(n);"undefined"!=typeof window&&"undefined"!=typeof document&&((null===(r=m.cloud.options)||void 0===r?void 0:r.customLoginGui)||o.push(function(e){let t=!1;const n=document.createElement("div");return document.body?(document.body.appendChild(n),oa(Ml(Ta,{db:e.vip}),n)):addEventListener("DOMContentLoaded",(()=>{t||(document.body.appendChild(n),oa(Ml(Ta,{db:e.vip}),n))})),{unsubscribe(){try{n.remove()}catch(e){}t=!0},get closed(){return t}}}(n))),m.cloud.isServiceWorkerDB||o.push(function(e){let n=e.cloud.webSocketStatus.value;const r=e.cloud.webSocketStatus.pipe(Te((e=>{const r=n;n=e;const i=t.of(e);switch(e){case"disconnected":return cl.value?i.pipe(we(500)):i;case"connecting":return"not-started"===r||"error"===r?i:i.pipe(we(4e3));default:return i}})));return t.combineLatest([r,e.syncStateChangedEvent.pipe(De({phase:"initial"})),ja(e.dx._novip),ll]).pipe(ve((([t,n,r,i])=>{var s;if((null===(s=r.license)||void 0===s?void 0:s.status)&&"ok"!==r.license.status)return{phase:"offline",status:"offline",license:r.license.status};let{phase:o,error:c,progress:l}=n,a=t;return"error"===o&&(a="error"),"not-started"===t&&("pushing"!==o&&"pulling"!==o||(a="connecting")),"error"!==e.cloud.syncState.value.phase||"pushing"!==n.phase&&"pulling"!==n.phase||(a="connecting"),i||(a="disconnected"),{phase:o,error:c,progress:l,status:Tn?a:"offline",license:"ok"}})))}(m).subscribe(n.cloud.syncState)),o.push(m.syncCompleteEvent.subscribe(d)),m.tables.every((e=>e.core))||function(){throw new e.SchemaError("Version increment needed to allow dexie-cloud change tracking")}();const b="serviceWorker"in navigator?yield navigator.serviceWorker.getRegistrations():[],[w,_]=yield m.transaction("rw",m.$syncState,(()=>i(this,void 0,void 0,(function*(){var e,t;const{options:n,schema:r}=m.cloud,[i,s,o]=yield Promise.all([m.getOptions(),m.getSchema(),m.getPersistedSyncState()]);if(c){if(!i||JSON.stringify(i)!==JSON.stringify(n)){if(!n)throw new Error("Internal error");const e=Object.assign({},n);delete e.fetchTokens,delete e.awarenessProtocol,yield m.$syncState.put(e,"options")}}else m.cloud.options=i||null;if((null===(e=m.cloud.options)||void 0===e?void 0:e.tryUseServiceWorker)&&"serviceWorker"in navigator&&b.length>0&&!Kc?m.cloud.usingServiceWorker=!0:((null===(t=m.cloud.options)||void 0===t?void 0:t.tryUseServiceWorker)&&m.cloud.isServiceWorkerDB,m.cloud.usingServiceWorker=!1),Al(r,m.cloud.options),Al(s,m.cloud.options),r){if(!s||JSON.stringify(s)!==JSON.stringify(r)){const e=s||{};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 m.$syncState.put(e,"schema"),Object.assign(r,e)}}else m.cloud.schema=s||null;return[null==o?void 0:o.initiallySynced,null==o?void 0:o.realms]}))));if(w&&m.setInitiallySynced(!0),function(t){var n,r;for(const i of t.tables)if(null===(r=null===(n=t.cloud.schema)||void 0===n?void 0:n[i.name])||void 0===r?void 0:r.markedForSync){if(i.schema.primKey.auto)throw new e.SchemaError(`Table ${i.name} is both autoIncremented and synced. Use db.cloud.configure({unsyncedTables: [${JSON.stringify(i.name)}]}) to blacklist it from sync`);if(!i.schema.primKey.keyPath)throw new e.SchemaError(`Table ${i.name} cannot be both synced and outbound. Use db.cloud.configure({unsyncedTables: [${JSON.stringify(i.name)}]}) to blacklist it from sync`)}}(m),u(),!m.cloud.isServiceWorkerDB){o.push(e.liveQuery((()=>m.getCurrentUser())).subscribe(s)),o.push(e.liveQuery((()=>m.getPersistedSyncState())).subscribe(m.cloud.persistedSyncState)),yield t.firstValueFrom(t.combineLatest([s.pipe(Oe(1),Se(1)),m.cloud.persistedSyncState.pipe(Oe(1),Se(1))]));const n=Fa(m);yc.on.new.subscribe(n),m.dx.once("close",(()=>{yc.on.new.unsubscribe(n)}))}let k=!1;const S=yield m.getCurrentUser(),E=null===(h=m.cloud.options)||void 0===h?void 0:h.requireAuth;E&&(m.cloud.isServiceWorkerDB?yield t.firstValueFrom(s.pipe(Ae((e=>!!e.isLoggedIn)),Se(1))):"object"==typeof E?(!S.isLoggedIn||E.userId&&S.userId!==E.userId||E.email&&S.email!==E.email)&&(k=yield Bc(m,E)):S.isLoggedIn||(k=yield Bc(m))),!S.isLoggedIn||_&&_.includes(S.userId)||(k=!0),l&&l.stop(),l=null,u();const x=(null===(f=m.cloud.options)||void 0===f?void 0:f.databaseUrl)&&(!w||k);x&&(yield function(e,t,n){return i(this,void 0,void 0,(function*(){yield ol(e,kc,(()=>Sc(e,t,n,{isInitialSync:!0})))}))}(m,m.cloud.options,m.cloud.schema),m.setInitiallySynced(!0)),u(),m.cloud.usingServiceWorker&&(null===(p=m.cloud.options)||void 0===p?void 0:p.databaseUrl)?(x||Pe(m,"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){}}))}(m).catch((()=>{}))):(null===(g=m.cloud.options)||void 0===g?void 0:g.databaseUrl)&&m.cloud.schema&&!m.cloud.isServiceWorkerDB&&(l=Cl(m,m.cloud.options,m.cloud.schema),l.start(),x||Le(m,"push")),u(),m.cloud.isServiceWorkerDB||o.push(t.fromEvent(self,"online").subscribe((()=>{m.syncStateChangedEvent.next({phase:"not-in-sync"}),rl(m)||Le(m,"push")})),t.fromEvent(self,"offline").subscribe((()=>{m.syncStateChangedEvent.next({phase:"offline"})}))),!(null===(y=m.cloud.options)||void 0===y?void 0:y.databaseUrl)||(null===(v=m.cloud.options)||void 0===v?void 0:v.disableWebSocket)||Hc||o.push(function(e){var n;if(!(null===(n=e.cloud.options)||void 0===n?void 0:n.databaseUrl))throw new Error("No database URL to connect WebSocket to");const r=e.messageConsumer.readyToServe.pipe(Ae((e=>e)),Te((()=>e.getPersistedSyncState())),Ae((e=>e&&e.serverRevision)),Te((e=>i(this,void 0,void 0,(function*(){return{type:"ready",rev:e.serverRevision,realmSetHash:yield Be(e)}}))))),s=t.merge(r,e.messageProducer);return function n(){return e.cloud.persistedSyncState.pipe(Ae((e=>null==e?void 0:e.serverRevision)),Se(1),Te((t=>e.cloud.currentUser.pipe(ve((e=>[e,t]))))),Te((([e,t])=>ll.pipe(ve((n=>[n?e:null,t]))))),Te((([n,r])=>(null==n?void 0:n.isLoggedIn)&&!(null==r?void 0:r.realms.includes(n.userId))?e.cloud.persistedSyncState.pipe(Ae((e=>(null==e?void 0:e.realms.includes(n.userId))||!1)),Se(1),ve((e=>[n,e]))):new t.BehaviorSubject([n,r]))),Te((e=>i(this,[e],void 0,(function*([e,t]){return[e,yield Be(t)]})))),Ie((([e,t],[n,r])=>e===n&&t===r)),Te((([r,i])=>{var o;return(null===(o=e.cloud.persistedSyncState)||void 0===o?void 0:o.value)?r?new ml(e,e.cloud.persistedSyncState.value.serverRevision,e.cloud.persistedSyncState.value.yServerRevision,i,e.cloud.persistedSyncState.value.clientIdentity,s,e.cloud.webSocketStatus,r):t.from([]):n()})),he((r=>"TokenExpiredError"===(null==r?void 0:r.name)?t.of(!0).pipe(Te((()=>i(this,void 0,void 0,(function*(){const t=yield e.getCurrentUser(),n=yield zt(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})})))),Te((()=>n()))):t.throwError((()=>r)))),he((r=>(e.cloud.webSocketStatus.next("error"),r instanceof _l?t.throwError((()=>r)):t.from(kl()).pipe(Te((()=>n())))))))}().subscribe({next:t=>{t&&e.messageConsumer.enqueue(t)},error:e=>{},complete:()=>{}})}(m))}))}(n)}catch(e){}}))),!0);let a=!1;function u(){if(a)throw new e.DatabaseClosedError}n.once("close",(()=>{o.forEach((e=>e.unsubscribe())),o.splice(0,o.length),a=!0,l&&l.stop(),l=null,s.next(h)}));const d=new t.Subject;var f;n.cloud={version:"4.2.0-alpha.1",options:Object.assign({},Wa),schema:null,get currentUserId(){return s.value.userId||h.userId},currentUser:s,syncState:new t.BehaviorSubject({phase:"initial",status:"not-started"}),events:{syncComplete:d},persistedSyncState:new t.BehaviorSubject(void 0),userInteraction:new t.BehaviorSubject(void 0),webSocketStatus:new t.BehaviorSubject("not-started"),login(e){return i(this,void 0,void 0,(function*(){const t=jc(n);yield t.cloud.sync(),yield Bc(t,e)}))},invites:Ba(n),roles:La(n),configure(e){e=n.cloud.options=Object.assign(Object.assign({},n.cloud.options),e),c=!0,e.databaseUrl&&e.nameSuffix&&(n.name=`${r}-${function(e){const t=new URL(e);return"/"===t.pathname?t.hostname.split(".")[0]:t.pathname.split("/")[1]}(e.databaseUrl)}`,jc(n).reconfigure()),Al(n.cloud.schema,n.cloud.options)},logout(){return i(this,arguments,void 0,(function*({force:e}={}){e?yield $c(jc(n),{deleteUnsyncedData:!0}):yield Nc(jc(n))}))},sync(){return i(this,arguments,void 0,(function*({wait:r,purpose:s}={wait:!0,purpose:"push"}){var o;void 0===r&&(r=!0);const c=jc(n);if("ok"!==((null===(o=c.cloud.currentUser.value.license)||void 0===o?void 0:o.status)||"ok")&&(yield Kt(c)),"pull"===s){const e=c.cloud.persistedSyncState.value;if(Le(c,s),r){const n=yield t.firstValueFrom(c.cloud.persistedSyncState.pipe(Ae((t=>null!=(null==t?void 0:t.timestamp)&&(!e||t.timestamp>e.timestamp)))));if(null==n?void 0:n.error)throw new Error("Sync error: "+n.error)}}else if(yield Sl(c)){const n=c.cloud.persistedSyncState.value;Le(c,s),r&&(yield t.firstValueFrom(t.from(e.liveQuery((()=>i(this,void 0,void 0,(function*(){const e=yield Sl(c),t=yield c.getPersistedSyncState();if((null==t?void 0:t.timestamp)!==(null==n?void 0:n.timestamp)&&(null==t?void 0:t.error))throw new Error("Sync error: "+t.error);return e}))))).pipe(Ae((e=>!e)))))}}))},permissions:(e,t)=>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:i}=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 s=$a(e),o=t=>{const s=t[i||e.cloud.currentUserId];return s?new Ma(s.permissions,n,void 0===i||i===e.cloud.currentUserId||r===e.cloud.currentUserId):new Ma({},n,!r||r===e.cloud.currentUserId)},c=s.pipe(ve(o));return c.getValue=()=>o(s.getValue()),c}(n._novip,e,t)},n.Version.prototype._parseStoresSpec=e.override(n.Version.prototype._parseStoresSpec,(e=>sl(e,n))),n.Table.prototype.newId=function({colocateWith:e}={}){const t=e&&e.substr(e.length-3);return Qc(n.cloud.schema[this.name].idPrefix||"",t)},n.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)||""},n.use(il({currentUserObservable:n.cloud.currentUser,db:jc(n)})),n.use((f=jc(n),{stack:"dbcore",name:"implicitPropSetterMiddleware",level:1,create:e=>Object.assign(Object.assign({},e),{table:t=>{const n=e.table(t);return Object.assign(Object.assign({},n),{mutate:e=>{var r,i,s,o,c,l;const a=e.trans;if(a.disableChangeTracking)return n.mutate(e);const u=null!==(i=null===(r=a.currentUser)||void 0===r?void 0:r.userId)&&void 0!==i?i:h.userId;if((null===(o=null===(s=f.cloud.schema)||void 0===s?void 0:s[t])||void 0===o?void 0:o.markedForSync)&&("add"===e.type||"put"===e.type)){if("members"===t)for(const t of e.values)"string"==typeof t.email&&(t.email=t.email.trim().toLowerCase());for(const t of e.values){t.owner||(t.owner=u),t.realmId||(t.realmId=u);const r=null===(l=(c=n.schema.primaryKey).extractKey)||void 0===l?void 0:l.call(c,t);"string"==typeof r&&"#"===r[0]&&"put"===e.type&&(delete e.criteria,delete e.changeSpec,delete e.updates,t.$ts=Date.now())}}return n.mutate(e)}})}})})),n.use(Xc(jc(n)))}Va.version="4.2.0-alpha.1",e.Cloud=Va;const Ka=new Map;function Ha(e){return e.startsWith("dexie-cloud:")&&e.split(":")[1]}const za=new Map;function Ja(t,n){let r=za.get(t+"/"+n);return r||(r=function t(n,r){return i(this,void 0,void 0,(function*(){var i;let s=Ka.get(n);if(!s){const i=new e(n,{addons:[Va]});if(s=jc(i),s.cloud.isServiceWorkerDB=!0,i.on("versionchange",o),yield s.dx.open(),Ka.get(n))return s.close(),yield t(n,r);Ka.set(n,s)}if((null===(i=s.cloud.options)||void 0===i?void 0:i.databaseUrl)&&s.cloud.schema)try{yield xl(s,s.cloud.options,s.cloud.schema,{retryImmediatelyOnFetchError:!0,purpose:r})}catch(t){if(o(),t.name!==e.errnames.NoSuchDatabase)throw t}function o(){return s.dx.on.versionchange.unsubscribe(o),Ka.get(s.name)===s&&Ka.delete(s.name),s.dx.close(),!1}}))}(t,n).then((()=>{za.delete(t+"/"+n)})).catch((e=>(za.delete(t+"/"+n),Promise.reject(e)))),za.set(t+"/"+n,r)),r}Kc||(self.addEventListener("sync",(e=>{const t=Ha(e.tag);t&&e.waitUntil(Ja(t,"push"))})),self.addEventListener("periodicsync",(e=>{const t=Ha(e.tag);t&&e.waitUntil(Ja(t,"pull"))})),self.addEventListener("message",(e=>{if("dexie-cloud-sync"===e.data.type){const{dbName:t}=e.data,n=(r=1)=>Ja(t,e.data.purpose||"pull").catch((e=>i(void 0,void 0,void 0,(function*(){if(3===r)throw e;var t;yield(t=6e4,new Promise((e=>setTimeout(e,t)))),n(r+1)}))));"waitUntil"in e?e.waitUntil(n().catch((e=>{}))):n().catch((e=>{}))}})))}));
|
|
2
2
|
//# sourceMappingURL=service-worker.min.js.map
|