dexie-cloud-addon 4.0.7 → 4.1.0-alpha.2

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.
Files changed (57) hide show
  1. package/dist/modern/DexieCloudOptions.d.ts +4 -2
  2. package/dist/modern/WSObservable.d.ts +7 -4
  3. package/dist/modern/db/DexieCloudDB.d.ts +2 -0
  4. package/dist/modern/db/entities/PersistedSyncState.d.ts +7 -0
  5. package/dist/modern/dexie-cloud-addon.js +1709 -72
  6. package/dist/modern/dexie-cloud-addon.js.map +1 -1
  7. package/dist/modern/dexie-cloud-addon.min.js +1 -1
  8. package/dist/modern/dexie-cloud-addon.min.js.map +1 -1
  9. package/dist/modern/service-worker.js +1709 -72
  10. package/dist/modern/service-worker.js.map +1 -1
  11. package/dist/modern/service-worker.min.js +1 -1
  12. package/dist/modern/service-worker.min.js.map +1 -1
  13. package/dist/modern/sync/DEXIE_CLOUD_SYNCER_ID.d.ts +1 -0
  14. package/dist/modern/sync/syncWithServer.d.ts +2 -2
  15. package/dist/modern/yjs/YDexieCloudSyncState.d.ts +4 -0
  16. package/dist/modern/yjs/YTable.d.ts +2 -0
  17. package/dist/modern/yjs/applyYMessages.d.ts +5 -0
  18. package/dist/modern/yjs/awareness.d.ts +4 -0
  19. package/dist/modern/yjs/createYClientUpdateObservable.d.ts +4 -0
  20. package/dist/modern/yjs/createYHandler.d.ts +5 -0
  21. package/dist/modern/yjs/downloadYDocsFromServer.d.ts +3 -0
  22. package/dist/modern/yjs/getUpdatesTable.d.ts +3 -0
  23. package/dist/modern/yjs/listUpdatesSince.d.ts +2 -0
  24. package/dist/modern/yjs/listYClientMessages.d.ts +3 -0
  25. package/dist/modern/yjs/listYClientMessagesAndStateVector.d.ts +24 -0
  26. package/dist/modern/yjs/updateYSyncStates.d.ts +6 -0
  27. package/dist/modern/yjs/y.d.ts +3 -0
  28. package/dist/umd/DexieCloudOptions.d.ts +4 -2
  29. package/dist/umd/WSObservable.d.ts +7 -4
  30. package/dist/umd/db/DexieCloudDB.d.ts +2 -0
  31. package/dist/umd/db/entities/PersistedSyncState.d.ts +7 -0
  32. package/dist/umd/dexie-cloud-addon.js +1707 -70
  33. package/dist/umd/dexie-cloud-addon.js.map +1 -1
  34. package/dist/umd/dexie-cloud-addon.min.js +1 -1
  35. package/dist/umd/dexie-cloud-addon.min.js.map +1 -1
  36. package/dist/umd/service-worker.js +1707 -70
  37. package/dist/umd/service-worker.js.map +1 -1
  38. package/dist/umd/service-worker.min.js +1 -1
  39. package/dist/umd/service-worker.min.js.map +1 -1
  40. package/dist/umd/sync/DEXIE_CLOUD_SYNCER_ID.d.ts +1 -0
  41. package/dist/umd/sync/syncWithServer.d.ts +2 -2
  42. package/dist/umd/yjs/YDexieCloudSyncState.d.ts +4 -0
  43. package/dist/umd/yjs/YTable.d.ts +2 -0
  44. package/dist/umd/yjs/applyYMessages.d.ts +5 -0
  45. package/dist/umd/yjs/awareness.d.ts +4 -0
  46. package/dist/umd/yjs/createYClientUpdateObservable.d.ts +4 -0
  47. package/dist/umd/yjs/createYHandler.d.ts +5 -0
  48. package/dist/umd/yjs/downloadYDocsFromServer.d.ts +3 -0
  49. package/dist/umd/yjs/getUpdatesTable.d.ts +3 -0
  50. package/dist/umd/yjs/listUpdatesSince.d.ts +2 -0
  51. package/dist/umd/yjs/listYClientMessages.d.ts +3 -0
  52. package/dist/umd/yjs/listYClientMessagesAndStateVector.d.ts +24 -0
  53. package/dist/umd/yjs/updateYSyncStates.d.ts +6 -0
  54. package/dist/umd/yjs/y.d.ts +3 -0
  55. package/package.json +5 -4
  56. package/dist/modern/helpers/dbOnClosed.d.ts +0 -2
  57. package/dist/umd/helpers/dbOnClosed.d.ts +0 -2
@@ -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={},h="undefined"!=typeof self&&self.document&&"undefined"!=typeof navigator&&navigator.serviceWorker;h&&h.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 y{constructor(e){this.name=e}subscribe(e){if(!h)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 h.addEventListener("message",t),()=>h.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 y(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 y?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 y?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 S,k,x=(S=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}},(k=S((function(e){Error.call(e),e.stack=(new Error).stack}))).prototype=Object.create(Error.prototype),k.prototype.constructor=k,k);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),h=p.next();!h.done;h=p.next()){var y=h.value;try{C(y)}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{h&&!h.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)C(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 C(e){b(e)?e():e.unsubscribe()}E.EMPTY;var T={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},j={setTimeout:function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var o=j.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=j.delegate;return((null==t?void 0:t.clearTimeout)||clearTimeout)(e)},delegate:void 0};function A(e){j.setTimeout((function(){throw e}))}function P(){}var U=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 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}(E),$=Function.prototype.bind;function D(e,t){return $.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){R(e)}},e.prototype.error=function(e){var t=this.partialObserver;if(t.error)try{t.error(e)}catch(e){R(e)}else R(e)},e.prototype.complete=function(){var e=this.partialObserver;if(e.complete)try{e.complete()}catch(e){R(e)}},e}(),N=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&&T.useDeprecatedNextContext?((i=Object.create(t)).unsubscribe=function(){return s.unsubscribe()},o={next:t.next&&D(t.next,i),error:t.error&&D(t.error,i),complete:t.complete&&D(t.complete,i)}):o=t;return s.destination=new L(o),s}return r(t,e),t}(U);function R(e){A(e)}var B={closed:!0,next:P,error:function(e){throw e},complete:P},M="function"==typeof Symbol&&Symbol.observable||"@@observable";function W(e){return e}var F=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 U||function(e){return e&&b(e.next)&&b(e.error)&&b(e.complete)}(r)&&O(r)?e:new N(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=K(t))((function(t,r){var o=new N({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?W: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=K(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 K(e){var t;return null!==(t=null!=e?e:T.Promise)&&void 0!==t?t:Promise}function V(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 F)return e;if(null!=e){if(V(e))return o=e,new F((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 F((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 F((function(e){n.then((function(t){e.closed||(e.next(t),e.complete())}),(function(t){return e.error(t)})).then(null,A)}));if(H(e))return Z(e);if(J(e))return t=e,new F((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 Z(G(e))}var t,n,r,o;throw z(e)}function Z(e){return new F((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 X(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}(U),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 F((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(X(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(X(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 he(e,t){return void 0===t&&(t=0),g((function(n,r){r.add(e.schedule((function(){return n.subscribe(r)}),t))}))}function ye(e,t){if(!e)throw new Error("Iterable cannot be null");return new F((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(V(e))return function(e,t){return Q(e).pipe(he(t),pe(t))}(e,t);if(_(e))return function(e,t){return new F((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(he(t),pe(t))}(e,t);if(H(e))return ye(e,t);if(J(e))return function(e,t){return new F((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 ye(G(e),t)}(e,t)}throw z(e)}function me(e,t){return g((function(n,r){var o=0;n.subscribe(X(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?h(e):c.push(e)},h=function(e){i&&t.next(e),l++;var a=!1;Q(n(e,u++)).subscribe(X(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 h(e)})):h(e)};c.length&&l<r;)e();f()}catch(e){t.error(e)}})))};return e.subscribe(X(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(W,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(X(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 Se=new F((function(e){return e.complete()}));function ke(e){return e<=0?function(){return Se}:g((function(t,n){var r=0;t.subscribe(X(n,(function(t){++r<=e&&(n.next(t),e<=r&&n.complete())})))}))}function xe(e,t){return t?function(n){return we(t.pipe(ke(1),g((function(e,t){e.subscribe(X(t,P))}))),n.pipe(xe(e)))}:be((function(t,n){return e(t,n).pipe(ke(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=W),e=null!=e?e:Oe,g((function(n,r){var o,i=!0;n.subscribe(X(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 Ce(e,t){return g((function(n,r){var o=0;n.subscribe(X(r,(function(n){return e.call(t,n,o++)&&r.next(n)})))}))}function Te(e){return Ce((function(t,n){return e<=n}))}function je(){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 Ae(e,t){return g((function(n,r){var o=null,i=0,s=!1,a=function(){return s&&!o&&r.complete()};n.subscribe(X(r,(function(n){null==o||o.unsubscribe();var s=0,c=i++;Q(e(n,c)).subscribe(o=X(r,(function(e){return r.next(t?t(n,e,c,s++):e)}),(function(){o=null,a()})))}),(function(){s=!0,a()})))}))}function Pe(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(X(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)})))})):W}let Ue=!1;function $e(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){Ue||(Ue=!0)}}))}function De(e,t){e.cloud.usingServiceWorker?$e(e,t):e.localSyncEvent.next({purpose:t})}const Le="undefined"!=typeof Buffer?e=>Buffer.from(e,"base64"):e=>{const t=atob(e),n=t.length,r=new Uint8Array(n);for(var o=0;o<n;o++)r[o]=t.charCodeAt(o);return r},Ne="undefined"!=typeof Buffer?e=>ArrayBuffer.isView(e)?Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("base64"):Buffer.from(e).toString("base64"):e=>{const t=ArrayBuffer.isView(e)?e:new Uint8Array(e),n=[];for(let e=0,r=t.length;e<r;e+=4096){const r=t.subarray(e,e+4096);n.push(String.fromCharCode.apply(null,r))}return btoa(n.join(""))};function Re({realms:e,inviteRealms:t}){return o(this,void 0,void 0,(function*(){const n=JSON.stringify([...e.map((e=>({realmId:e,accepted:!0}))),...t.map((e=>({realmId:e,accepted:!1})))].sort(((e,t)=>e.realmId<t.realmId?-1:e.realmId>t.realmId?1:0))),r=(new TextEncoder).encode(n),o=yield crypto.subtle.digest("SHA-1",r);return Ne(o)}))}function Be(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 Me(e){return`$${e}_mutations`}function We(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 Fe=[].concat;function Ke(e){return Fe.apply([],e)}function Ve(e,t,{since:n={},limit:r=1/0}={}){return o(this,void 0,void 0,(function*(){const t=Ke(yield Promise.all(e.map((e=>o(this,void 0,void 0,(function*(){const t=We(e.name),o=n[t];let i=o?e.where("rev").above(o):e;r<1/0&&(i=i.limit(r));return(yield i.toArray()).map((e=>({table:t,mut:e})))})))))).sort(((e,t)=>e.mut.txid===t.mut.txid?e.mut.opNo-t.mut.opNo:e.mut.ts-t.mut.ts)),i=[];let s=null,a=null;for(const{table:e,mut:n}of t)s&&s.table===e&&a===n.txid?s.muts.push(n):(s={table:e,muts:[n]},a=n.txid,i.push(s));return i}))}function He(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")}function ze(e){if(!e)throw new Error("Assertion Failed")}const qe={}.hasOwnProperty;function Je(e,t,n){if(e&&void 0!==t&&(!("isFrozen"in Object)||!Object.isFrozen(e)))if("string"!=typeof t&&"length"in t){ze("string"!=typeof n&&"length"in n);for(var r=0,o=t.length;r<o;++r)Je(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 qe.call(e,t)}(e,s)||(c=e[s]={}),Je(c,a,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=Ye)=>{const n=Buffer.alloc(e);return t(n),n.toString("base64")}:()=>{throw new Error("No implementation of randomString was found")};function Ye(e){for(let t=0;t<e.length;++t)e[t]=Math.floor(256*Math.random())}function Qe(e){return"string"==typeof e||!!(Array.isArray(e)&&e.some((e=>Qe(e)))&&e.every(Ze))}function Ze(e){return"string"==typeof e||"number"==typeof e||Array.isArray(e)&&e.every(Ze)}function Xe(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))Je(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 et(e,t){for(const{table:n,muts:r}of t)for(const t of r)Xe(e,n,t)}class tt 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 nt(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 rt(e,t,...n){return nt(e,{type:"message-alert",title:t,alerts:n,fields:{},submitLabel:"OK",cancelLabel:null})}function ot(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 nt(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 it(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 nt(e,{type:"otp",title:"Enter OTP",alerts:r,fields:{otp:{type:"otp",label:"OTP",placeholder:"Paste OTP here"}}});return o}))}function st(e){var t,n,r;return o(this,void 0,void 0,(function*(){const o=yield e.getCurrentUser(),{accessToken:i,accessTokenExpiration:s,refreshToken:a,refreshTokenExpiration:c,claims:l}=o;if(!i)return null;if((null!==(t=null==s?void 0:s.getTime())&&void 0!==t?t:1/0)>Date.now()&&"ok"===((null===(n=o.license)||void 0===n?void 0:n.status)||"ok"))return o;if(!a)throw new Error("Refresh token missing");if((null!==(r=null==c?void 0:c.getTime())&&void 0!==r?r:1/0)<=Date.now())throw new Error("Refresh token has expired");const u=yield ct(e.cloud.options.databaseUrl,o);return yield e.table("$logins").update(l.sub,{accessToken:u.accessToken,accessTokenExpiration:u.accessTokenExpiration,claims:u.claims,license:u.license}),u}))}function at(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 ct(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=Ne(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 tt(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 nt(r,{type:"message-alert",title:"Authentication Alert",fields:{},alerts:e.alerts})),t}catch(t){if(t instanceof tt)throw yield rt(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 rt(r,"Authentication Failed",{type:"error",messageCode:"GENERIC_ERROR",message:n,messageParams:{}}).catch((()=>{}))}throw t}}))}(n,r,i,s)}))}function ct(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=Ne(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 tt(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:lt}={};const ut={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 dt(...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 ut;let i=n.get(r);if(void 0!==i)return i;const s=(o=e,lt.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:ut),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 ft={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 pt={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 ht={bigint:{replace:e=>({$t:"bigint",v:""+e}),revive:e=>BigInt(e.v)}};var yt={Date:{replace:e=>({$t:"Date",v:isNaN(e.getTime())?"NaN":e.toISOString()}),revive:({v:e})=>new Date("NaN"===e?NaN:Date.parse(e))}},vt={Set:{replace:e=>({$t:"Set",v:Array.from(e.entries())}),revive:({v:e})=>new Set(e)}},mt={Map:{replace:e=>({$t:"Map",v:Array.from(e.entries())}),revive:({v:e})=>new Map(e)}};const bt="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof global?global:void 0;var gt=["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=bt[t];return o&&new o(r.ArrayBuffer.revive({v:e},n,r))}}})),{});function _t(e){return function(e){for(var t="",n=0,r=e.length;n<r;n++)t+=kt[e[n]];return t}(Ne(e))}function wt(e){return Le(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+=St[e[n]];return t}(e))}const St={"-":"=",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:"+","|":"/"},kt={};for(const e of Object.keys(St))kt[St[e]]=e;var xt={ArrayBuffer:{replace:e=>({$t:"ArrayBuffer",v:_t(e)}),revive:({v:e})=>{const t=wt(e);return t.buffer.byteLength===t.byteLength?t.buffer:t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}}};class It{constructor(e,t){this.buf=e,this.type=t}}function Et(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 Ot(e){const t=new Uint8Array(e.length);for(let n=0;n<e.length;++n)t[n]=e.charCodeAt(n);return t.buffer}var Ct={Blob:{test:(e,t)=>"Blob"===t||e instanceof It,replace:e=>({$t:"Blob",v:Ne(e instanceof It?e.buf:Ot(Et(e))),type:e.type}),revive:({type:e,v:t})=>{const n=Le(t);return void 0!==typeof Blob?new Blob([n]):new It(n.buffer,e)}}};const Tt={...pt,...ht,...yt,...vt,...mt,...gt,...xt,...Ct};function jt(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 At={undefined:{replace:()=>({$t:"undefined"}),revive:()=>{}}};const Pt="function"==typeof BigInt&&"bigint"==typeof BigInt(0);class Ut{toString(){return this.v}constructor(e){this.v=e}}const $t=Object.assign(Object.assign(Object.assign({},At),Pt?{}:{bigint:{test:e=>e instanceof Ut,replace:e=>Object.assign({$t:"bigint"},e),revive:({v:e})=>new Ut(e)}}),{PropModification:{test:t=>t instanceof e.PropModification,replace:e=>Object.assign({$t:"PropModification"},e),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)}}}),Dt=dt(Tt,$t),Lt=function(...e){const t=dt(Tt,ft,...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 jt(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 jt(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)}}}($t);class Nt extends Error{constructor(e,t){super(t||`${e.status} ${e.statusText}`),this.httpStatus=e.status}get name(){return"HttpError"}}function Rt(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=Bt(i,o));const e=l.muts[r],n=JSON.stringify(t);e.keys[s]=n}else if("#"===t[0]){l===i&&(l=Bt(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 Bt(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 Mt=new WeakMap;function Wt(e){var t,n;return o(this,void 0,void 0,(function*(){const r=(null!==(n=null===(t=Mt.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 Ft(e,t,n,r,i,s,a,c){return o(this,void 0,void 0,(function*(){const o={Accept:"application/json, application/x-bison, application/x-bison-stream","Content-Type":"application/tson"},l=yield st(r),u=null==l?void 0:l.accessToken;u&&(o.Authorization=`Bearer ${u}`);const d={v:2,dbID:null==t?void 0:t.remoteDbId,clientIdentity:a,schema:s||{},lastPull:t?{serverRevision:t.serverRevision,realms:t.realms,inviteRealms:t.inviteRealms}:void 0,baseRevs:n,changes:Rt(r.dx.core.schema,c,e)};r.syncStateChangedEvent.next({phase:"pushing"});const f=yield fetch(`${i}/sync`,{method:"post",headers:o,credentials:"include",body:Dt.stringify(d)});if(r.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));Mt.set(e,new Date(Date.now()+1e3*t))}else Mt.delete(e)}}(r,f),!f.ok)throw new Nt(f);if("application/x-bison"===f.headers.get("content-type"))return Lt.fromBinary(yield f.blob());{const e=yield f.text();return Dt.parse(e)}}))}function Kt(t){if(null==t?void 0:t.cancelled)throw new e.AbortError("Operation was cancelled")}let Vt=!1;function Ht(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 zt(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 qt(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 Jt(t,n){return o(this,void 0,void 0,(function*(){for(const{table:r,muts:o}of t){const t=n.table(r);if(!t)continue;const{primaryKey:i}=t.core.schema,s=e=>{switch(e[0]){case"[":if(e.endsWith("]"))try{return JSON.parse(e)}catch(e){}return e;case"#":return e.endsWith(":"+n.cloud.currentUserId)?e.substr(0,e.length-n.cloud.currentUserId.length-1):e;default:return e}};for(const n of o){const r=n.keys.map(s);switch(n.type){case"insert":i.outbound?yield t.bulkAdd(n.values,r):(r.forEach(((t,r)=>{e.setByKeyPath(n.values[r],i.keyPath,t)})),yield t.bulkAdd(n.values));break;case"upsert":i.outbound?yield t.bulkPut(n.values,r):(r.forEach(((t,r)=>{e.setByKeyPath(n.values[r],i.keyPath,t)})),yield t.bulkPut(n.values));break;case"modify":1===r.length?yield t.update(r[0],n.changeSpec):yield t.where(":id").anyOf(r).modify(n.changeSpec);break;case"update":yield qt(t,r,n.changeSpecs);break;case"delete":yield t.bulkDelete(r)}}}}))}"undefined"!=typeof self&&"undefined"!=typeof navigator&&(Vt=navigator.onLine,self.addEventListener("online",(()=>Vt=!0)),self.addEventListener("offline",(()=>Vt=!1)));const Gt="currentSyncWorker";function Yt(e,t,n,r){return Qt.apply(this,arguments).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):Vt&&(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 Yt(e,t,n,Object.assign(Object.assign({},r),{retryImmediatelyOnFetchError:!1}))):(yield e.$syncState.update("syncState",{timestamp:new Date,error:""+i}),e.syncStateChangedEvent.next({phase:Vt?"error":"offline",error:new Error(""+(null==i?void 0:i.message)||i)}),Promise.reject(i))}))))}function Qt(e,t,n,{isInitialSync:r,cancelToken:i,justCheckIfNeeded:s,purpose:a}={isInitialSync:!1}){var c;return o(this,void 0,void 0,(function*(){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?Be(e):[],p=d.map((t=>e.table(Me(t.name)))),h=yield e.getPersistedSyncState(),y=!r&&u.isLoggedIn,v=y?function(e,t){const n=(null==t?void 0:t.syncedTables)||[];return Be(e).filter((e=>!n.includes(e.name)))}(e,h):[];Kt(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==h?void 0:h.realms)})))),Kt(i)}const[b,g,_]=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 Ve(p);if(Kt(i),m){const e=[...(null==h?void 0:h.realms)||[],...(null==h?void 0:h.inviteRealms)||[]],a=yield function(e,t,n,r){return o(this,void 0,void 0,(function*(){const i=`upload-${He(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||"")&&Qe(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 Kt(i),s=s.concat(a),[s,t,r]}return[s,t,r]})))),w=b.some((e=>e.muts.some((e=>e.keys.length>0))));if(s)return w;if("push"===a&&!w)return!1;const S=zt(b,null==g?void 0:g.latestRevisions),k=(null==g?void 0:g.clientIdentity)||Ge(16);Kt(i);const x=yield Ft(b,g,_,e,l,n,k,u),I=yield e.transaction("rw",e.tables,(t=>o(this,void 0,void 0,(function*(){t.idbtrans.disableChangeTracking=!0,t.idbtrans.disableAccessControl=!0;for(const e of Object.keys(n))x.schema[e]&&(n[e]=x.schema[e]);yield e.$syncState.put(n,"schema");const r=yield Ve(p,0,{since:S});for(const t of p){const n=We(t.name);if(r.some((e=>e.table===n&&e.muts.length>0))){if(S[n]){const r=S[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()])}zt(r,S),yield Ht(e,n,S,x.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=Be(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())}}}))}(e,x,i);const s=i||{syncedTables:[],latestRevisions:{},realms:[],inviteRealms:[],clientIdentity:k};y&&(s.syncedTables=d.map((e=>e.name)).concat(v.map((e=>e.name)))),s.latestRevisions=S,s.remoteDbId=x.dbId,s.initiallySynced=!0,s.realms=x.realms,s.inviteRealms=x.inviteRealms,s.serverRevision=x.serverRevision,s.timestamp=new Date,delete s.error;const a=Zt(x.changes,r);return yield Jt(a,e),e.$syncState.put(s,"syncState"),0===r.length}))));return I?(e.syncCompleteEvent.next(),!1):(yield Wt(e),yield Qt(e,t,n,{isInitialSync:r,cancelToken:i}))}))}function Zt(e,t){const n={};et(n,e);const r={};return et(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))Je(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=Ge(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)}function Xt(n){const r=[],i=new t.BehaviorSubject(!0),s=new t.BehaviorSubject(null);let a=!1,c=0,l=[0,0,0,0,0,0,0,0,0,Date.now()];return s.subscribe((()=>o(this,void 0,void 0,(function*(){if(!a&&r.length>0){a=!0,l.shift(),l.push(Date.now()),i.next(!1);try{yield function(){var i,s,a,c,l,u;return o(this,void 0,void 0,(function*(){for(;r.length>0;){const d=r.shift();try{yield t.firstValueFrom(n.cloud.syncState.pipe(Ce((({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 ct(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)){De(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||De(n,"pull"));if((yield e.waitFor(Re(o)))!==d.realmSetHash)return void De(n,"pull");let s=[];if(i.isLoggedIn){const e=Be(n).map((e=>n.table(Me(e.name))));s=yield Ve(e)}if(d.changes.length>0){const e=Zt(d.changes,s);yield Jt(e,n)}o.latestRevisions=zt(s,o.latestRevisions),o.serverRevision=d.newRev,yield Ht(n,r,o.latestRevisions,d.newRev),yield n.$syncState.put(o,"syncState")}))))}}catch(e){}}}))}()}finally{l[l.length-1]-l[0]<1e4&&(Date.now()-c<5e3?(c=Date.now()+6e4,yield new Promise((e=>setTimeout(e,6e4)))):(c=Date.now()+1e4,yield new Promise((e=>setTimeout(e,1e4))))),a=!1,i.next(!0)}}})))),{enqueue:function(e){r.push(e),s.next(null)},readyToServe:i}}const en=new WeakMap,tn={members:"@id, [userId+realmId], [email+realmId], realmId",roles:"[realmId+name]",realms:"@realmId",$jobs:"",$syncState:"",$baseRevs:"[tableName+clientRev]",$logins:"claims.sub, lastLogin"};let nn=0;function rn(e){"vip"in e&&(e=e.vip);let n=en.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=++nn;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=Xt(n),en.set(e.cloud,n)}return n}const on=new WeakMap;class sn{constructor(e,t){on.set(this,e),Object.assign(this,t)}static load(e,t){return e.table("$logins").get(t).then((n=>new sn(e,n||{userId:t,claims:{sub:t},lastLogin:new Date(0)})))}save(){return o(this,void 0,void 0,(function*(){on.get(this).table("$logins").put(this)}))}}function an(e,n){return t.firstValueFrom(t.from(e).pipe(t.filter(n)))}function cn(e){return o(this,void 0,void 0,(function*(){const t=yield ln(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 nt(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 ln(e,{deleteUnsyncedData:!0})}}))}function ln(e,{deleteUnsyncedData:t=!1}={}){return o(this,void 0,void 0,(function*(){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 an(e.cloud.currentUser,(e=>e.userId===f.userId)),yield e.cloud.sync({purpose:"pull",wait:!0})),n}))}function un(e,...t){globalThis.console[e](...t)}function dn(e,t){var n;return o(this,void 0,void 0,(function*(){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 st(e),!1}const s=new sn(e,{claims:{},lastLogin:new Date(0)});return yield at(e.cloud.options.databaseUrl,s,e.cloud.options.fetchTokens||function(e){const{userInteraction:t}=e.cloud;return function({public_key:n,hints:r}){var i;return o(this,void 0,void 0,(function*(){let o;const s=null===(i=e.cloud.options)||void 0===i?void 0:i.databaseUrl;if(!s)throw new Error("No database URL given.");if("demo"===(null==r?void 0:r.grant_type))o={demo_user:yield ot(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)o={grant_type:"otp",otp_id:r.otpId,otp:r.otp,scopes:["ACCESS_DB"],public_key:n};else{const e=yield ot(t,"Enter email address",null==r?void 0:r.email);o=/@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(o),method:"post",headers:{"Content-Type":"application/json",mode:"cors"}});if(200!==a.status){const e=yield a.text();throw yield rt(t,"Token request failed",{type:"error",messageCode:"GENERIC_ERROR",message:e,messageParams:{}}).catch((()=>{})),new Nt(a,e)}const c=yield a.json();if("tokens"===c.type||"error"===c.type)return c;if("otp"===o.grant_type&&"email"in o){if("otp-sent"!==c.type)throw new Error(`Unexpected response from ${s}/token`);const e=yield it(t,o.email),r=Object.assign(Object.assign({},o),{otp:e||"",otp_id:c.otp_id,public_key:n});let i=yield fetch(`${s}/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 it(t,o.email,{type:"error",messageCode:"INVALID_OTP",message:e,messageParams:{}}),i=yield fetch(`${s}/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 Nt(i,e)}return yield i.json()}throw new Error(`Unexpected response from ${s}/token`)}))}}(e),e.cloud.userInteraction,t),i!==f.userId&&s.userId!==i&&(yield cn(e)),yield function(e,t){return o(this,void 0,void 0,(function*(){if(t.userId===e.cloud.currentUserId)return;const n=e.table("$logins");yield e.transaction("rw",n,(e=>o(this,void 0,void 0,(function*(){const e=yield n.toArray();yield Promise.all(e.filter((e=>e.userId!==t.userId&&e.isLoggedIn)).map((e=>(e.isLoggedIn=!1,n.put(e))))),t.isLoggedIn=!0,t.lastLogin=new Date;try{yield t.save()}catch(e){try{"DataCloneError"===e.name&&(un("debug","Login context property names:",Object.keys(t)),un("debug","Login context property names:",Object.keys(t)),un("debug","Login context:",t),un("debug","Login context JSON:",JSON.stringify(t)))}catch(e){}throw e}})))),yield an(e.cloud.currentUser,(e=>e.userId===t.userId))}))}(e,s),De(e,"pull"),s.userId!==i}))}const fn="undefined"!=typeof InstallTrigger,pn="undefined"!=typeof navigator&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\/|Edge\//.test(navigator.userAgent),hn=pn?[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]:NaN,yn=pn&&hn<=605||fn;const vn="undefined"!=typeof self&&"clients"in self&&!self.document;function mn(){throw new e.SchemaError("Version increment needed to allow dexie-cloud change tracking")}const{toString:bn}={};function gn(e){return bn.call(e).slice(8,-1)}function _n(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 wn=/b|c|d|f|g|h|j|k|l|m|n|p|q|r|s|t|v|x|y|z/i;let Sn=0;function kn(e,t){const n=new Uint8Array(18),r=new Uint8Array(n.buffer,0,6),o=Date.now();Sn>=o?++Sn:Sn=o,r[0]=Sn/1099511627776,r[1]=Sn/4294967296,r[2]=Sn/16777216,r[3]=Sn/65536,r[4]=Sn/256,r[5]=Sn;const i=new Uint8Array(n.buffer,6);crypto.getRandomValues(i);return e+_t(new Uint8Array(n.buffer))+(t||"")}function xn(t){return{stack:"dbcore",name:"idGenerationMiddleware",level:1,create:n=>Object.assign(Object.assign({},n),{table:r=>{const o=n.table(r);return Object.assign(Object.assign({},o),{mutate:n=>{var i,s;if(n.trans.disableChangeTracking)return o.mutate(n);if("add"===n.type||"put"===n.type){const a=null===(i=t.cloud.schema)||void 0===i?void 0:i[r];if(null==a?void 0:a.generatedGlobalId){if((null===(s=t.cloud.options)||void 0===s?void 0:s.databaseUrl)&&!t.initiallySynced){const e=_n(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=_n(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]=kn(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){_n(o.schema.primaryKey,n).forEach(((t,n)=>{if(!Qe(t)){const n=Array.isArray(t)?t.map(gn).join(","):gn(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 In=0;function En(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 On(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 Cn=new t.BehaviorSubject(new Set);function Tn(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 jn({currentUserObservable:e,db:t}){return{stack:"dbcore",name:"MutationTrackingMiddleware",level:1,create:n=>{const r=n.schema.tables.filter((e=>!/^\$/.test(e.name)));let o;try{o=new Map(r.map((e=>[e.name,n.table(`$${e.name}_mutations`)])))}catch(e){mn()}return Object.assign(Object.assign({},n),{transaction:(r,o)=>{let i;if("readwrite"===o){const e=r.filter((e=>{var n,r;return null===(r=null===(n=t.cloud.schema)||void 0===n?void 0:n[e])||void 0===r?void 0:r.markedForSync})).map((e=>Me(e)));i=n.transaction([...r,...e],o)}else i=n.transaction(r,o);if("readwrite"===o){i.txid=He(16),i.opCount=0,i.currentUser=e.value,Cn.value.add(i),Cn.next(Cn.value);const n=()=>{i.removeEventListener("complete",r),i.removeEventListener("error",n),i.removeEventListener("abort",n),Cn.value.delete(i),Cn.next(Cn.value)},r=()=>{i.mutationsAdded&&!Tn(t)&&De(t,"push"),n()};i.addEventListener("complete",r),i.addEventListener("error",n),i.addEventListener("abort",n)}return i},table:e=>{const r=n.table(e);if(/^\$/.test(e))return e.endsWith("_mutations")?Object.assign(Object.assign({},r),{mutate:e=>("add"!==e.type&&"put"!==e.type||(e.trans.mutationsAdded=!0),r.mutate(e))}):"$logins"===e?Object.assign(Object.assign({},r),{mutate:e=>r.mutate(e).then((t=>(e.trans.mutationsAdded=!0,t))).catch((e=>Promise.reject(e)))}):r;const{schema:i}=r,s=o.get(e);return function(e){const t="$lock"+ ++In;return Object.assign(Object.assign({},e),{count:En(e.count,t),get:En(e.get,t),getMany:En(e.getMany,t),openCursor:En(e.openCursor,t),query:En(e.query,t),mutate:On(e.mutate,t)})}(Object.assign(Object.assign({},r),{mutate:n=>{var o,s,c;const l=n.trans;return l.txid?l.disableChangeTracking?r.mutate(n):(null===(s=null===(o=t.cloud.schema)||void 0===o?void 0:o[e])||void 0===s?void 0:s.markedForSync)&&(null===(c=l.currentUser)||void 0===c?void 0:c.isLoggedIn)?"deleteRange"===n.type?r.query({query:{range:n.range,index:i.primaryKey},trans:n.trans,values:!1}).then((e=>a({type:"delete",keys:e.result,trans:n.trans,criteria:{index:null,range:n.range}}))):a(n):r.mutate(n):r.mutate(n)}}));function a(e){const t=e.trans;t.mutationsAdded=!0;const{txid:n,currentUser:{userId:o}}=t,{type:i}=e,a=++t.opCount;return r.mutate(e).then((r=>{const{numFailures:c,failures:l}=r;let u="delete"===i?e.keys:r.results,d="values"in e?e.values:[],f="updates"in e&&e.updates;c&&(u=u.filter(((e,t)=>!l[t])),d=d.filter(((e,t)=>!l[t])));const p=Date.now(),h="delete"===e.type?{type:"delete",ts:p,opNo:a,keys:u,criteria:e.criteria,txid:n,userId:o}:"add"===e.type?{type:"insert",ts:p,opNo:a,keys:u,txid:n,userId:o,values:d}:e.criteria&&e.changeSpec?{type:"modify",ts:p,opNo:a,keys:u,criteria:e.criteria,changeSpec:e.changeSpec,txid:n,userId:o}:f?{type:"update",ts:p,opNo:a,keys:f.keys,changeSpecs:f.changeSpecs,txid:n,userId:o}:{type:"upsert",ts:p,opNo:a,keys:u,values:d,txid:n,userId:o};return"isAdditionalChunk"in e&&e.isAdditionalChunk&&(h.isAdditionalChunk=!0),u.length>0||"criteria"in e&&e.criteria?s.mutate({type:"add",trans:t,values:[h]}).then((()=>r)):r}))}}})}}}function An(e,t){return function(n,r){const o=Object.assign(Object.assign({},tn),n);Object.keys(tn).forEach((e=>{const t=o[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=tn[e].split(",").map((e=>e.trim())),s=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(tn[e])}`);for(let t=1;t<i.length;++t){const n=i[t];s.has(n.replace(/([&*]|\+\+)/g,""))||(o[e]+=`,${n}`)}}));const i=t.cloud.schema||(t.cloud.schema={}),s=new Set;Object.keys(o).forEach((e=>{const t=o[e],n=i[e]||(i[e]={});null!=t?(/^\@/.test(t)&&(o[e]=o[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)(wn.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,s),s.add(n.idPrefix)),/^\$/.test(e)||(o[`$${e}_mutations`]="++rev",n.markedForSync=!0),n.deleted&&(n.deleted=!1)):(n.deleted=!0,n.markedForSync=!1,o[`$${e}_mutations`]=null)}));return e.call(this,o,r)}}const Pn=new t.BehaviorSubject(!0),Un=new t.BehaviorSubject(!0);Pn.pipe(Ae((e=>e?t.of(!0):t.of(!1).pipe(Ie(2e4)))),Ee()).subscribe(Un);const $n="undefined"!=typeof document?t.fromEvent(document,"visibilitychange"):t.of({}),Dn=$n.pipe(Ce((()=>"hidden"===document.visibilityState))),Ln=$n.pipe(Ce((()=>"visible"===document.visibilityState))),Nn="undefined"!=typeof window?t.merge(Ln,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),Dn,Nn).pipe(me((()=>"visible"===document.visibilityState)),Pe((e=>{Pn.value!==e&&Pn.next(e)})),Ae((e=>e?t.of(0).pipe(Ie(16e4),Pe((()=>Pn.next(!1)))):t.of(0)))).subscribe((()=>{}));class Rn extends Error{constructor(){super(...arguments),this.name="TokenExpiredError"}}class Bn extends t.Observable{constructor(e,t,n,r,o,i,s,a){super((c=>new Wn(e,t,n,r,s,a,c,o,i)))}}let Mn=0;class Wn extends t.Subscription{constructor(e,t,n,r,o,i,s,a,c){super((()=>this.teardown())),this.id=++Mn,this.reconnecting=!1,this.databaseUrl=e,this.rev=t,this.realmSetHash=n,this.clientIdentity=r,this.token=o,this.tokenExpiration=i,this.subscriber=s,this.lastUserActivity=new Date,this.messageProducer=a,this.messageProducerSubscription=null,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,this.messageProducerSubscription&&(this.messageProducerSubscription.unsubscribe(),this.messageProducerSubscription=null)}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;if(this.tokenExpiration&&this.tokenExpiration<new Date)return void this.subscriber.error(new Rn);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 e=new URL(this.databaseUrl);e.protocol="http:"===e.protocol?"ws":"wss";const t=new URLSearchParams;if(this.subscriber.closed)return;t.set("v","2"),t.set("rev",this.rev),t.set("realmsHash",this.realmSetHash),t.set("clientId",this.clientIdentity),this.token&&t.set("token",this.token);const n=this.ws=new WebSocket(`${e}/changes?${t}`);n.onclose=e=>{this.pinger&&this.reconnect()},n.onmessage=e=>{if(this.pinger){this.lastServerActivity=new Date;try{const t=Dt.parse(e.data);if("error"===t.type)throw new Error(`Error message from dexie-cloud: ${t.error}`);"rev"===t.type&&(this.rev=t.rev),"pong"!==t.type&&this.subscriber.next(t)}catch(e){this.subscriber.error(e)}}};try{let e=!1;yield new Promise(((t,r)=>{n.onopen=n=>{e=!0,t(null)},n.onerror=t=>{if(e)this.reconnect();else{const e=t.error||new Error("WebSocket Error");this.subscriber.error(e),this.webSocketStatus.next("error"),r(e)}}})),this.messageProducerSubscription=this.messageProducer.subscribe((e=>{var t;this.closed||("ready"===e.type&&"connected"!==this.webSocketStatus.value&&this.webSocketStatus.next("connected"),null===(t=this.ws)||void 0===t||t.send(Dt.stringify(e)))}))}catch(e){this.pauseUntil=new Date(Date.now()+6e4)}}))}}class Fn extends Error{constructor(e){super("expired"===e?"License expired":"deactivated"===e?"User deactivated":"Invalid license"),this.name="InvalidLicenseError",e&&(this.license=e)}}function Kn(e){return o(this,void 0,void 0,(function*(){var e;yield(e=3e3,new Promise((t=>setTimeout(t,e)))),yield t.firstValueFrom(Nn)}))}function Vn(e){var t;return o(this,void 0,void 0,(function*(){return!(!(null===(t=e.cloud.options)||void 0===t?void 0:t.databaseUrl)||!e.cloud.schema)&&(yield Yt(e,e.cloud.options,e.cloud.schema,{justCheckIfNeeded:!0}))}))}const Hn=new WeakMap;function zn(e,t,n,r){const i=Hn.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 zn(e,t,n,r)}))}}const s=function(){return o(this,void 0,void 0,(function*(){try{if(yield Wt(e),e.cloud.isServiceWorkerDB)yield Yt(e,t,n,r);else{if(e.cloud.usingServiceWorker)throw ze(!1),new Error("Internal _syncIfPossible() - invalid precondition - should not have been called.");yield function(e,t,n){return"undefined"!=typeof navigator&&navigator.locks?navigator.locks.request(e.name+"|"+t,(()=>n())):n()}(e,Gt,(()=>Yt(e,t,n,r)))}Hn.delete(e)}catch(t){throw Hn.delete(e),t}}))}();return Hn.set(e,{promise:s,pull:"push"!==(null==r?void 0:r.purpose)}),s}const qn=6e4;function Jn(e,t,n){let r=null,o={cancelled:!1},i=null,s=null;function a(r,l=1){setTimeout((()=>{i&&clearTimeout(i);const u="pull"===s?"pull":r;i=null,s=null,zn(e,t,n,{cancelToken:o,retryImmediatelyOnFetchError:!0,purpose:u}).catch((e=>{if(o.cancelled)c();else if(l<3){const e=s&&"pull"===s?"pull":r,t=setTimeout((()=>a(e,l+1)),[0,5,15][l]*qn);i&&clearTimeout(i),i=t,s=e}}))}),0)}const c=()=>{o.cancelled=!0,r&&r.unsubscribe()};return{start:()=>{r=e.localSyncEvent.subscribe((({purpose:e})=>{try{a(e||"pull")}catch(e){}}))},stop:c}}function Gn(e,t){if(e&&t&&t.unsyncedTables)for(const n of t.unsyncedTables)e[n]&&(e[n].markedForSync=!1)}var Yn,Qn,Zn,Xn,er,tr={},nr=[],rr=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function or(e,t){for(var n in t)e[n]=t[n];return e}function ir(e){var t=e.parentNode;t&&t.removeChild(e)}function sr(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?Yn.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 ar(e,s,r,o,null)}function ar(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?++Zn:o};return null==o&&null!=Qn.vnode&&Qn.vnode(i),i}function cr(e){return e.children}function lr(e,t){this.props=e,this.context=t}function ur(e,t){if(null==t)return e.__?ur(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?ur(e):null}function dr(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 dr(e)}}function fr(e){(!e.__d&&(e.__d=!0)&&Xn.push(e)&&!pr.__r++||er!==Qn.debounceRendering)&&((er=Qn.debounceRendering)||setTimeout)(pr)}function pr(){for(var e;pr.__r=Xn.length;)e=Xn.sort((function(e,t){return e.__v.__b-t.__v.__b})),Xn=[],e.some((function(e){var t,n,r,o,i,s;e.__d&&(i=(o=(t=e).__v).__e,(s=t.__P)&&(n=[],(r=or({},o)).__v=o.__v+1,wr(s,o,r,t.__n,void 0!==s.ownerSVGElement,null!=o.__h?[i]:null,n,null==i?ur(o):i,o.__h),Sr(n,o),o.__e!=i&&dr(o)))}))}function hr(e,t,n,r,o,i,s,a,c,l){var u,d,f,p,h,y,v,m=r&&r.__k||nr,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?ar(null,p,null,null,p):Array.isArray(p)?ar(cr,{children:p},null,null,null):p.__b>0?ar(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}wr(e,p,f=f||tr,o,i,s,a,c,l),h=p.__e,(d=p.ref)&&f.ref!=d&&(v||(v=[]),f.ref&&v.push(f.ref,null,p),v.push(d,p.__c||h,p)),null!=h?(null==y&&(y=h),"function"==typeof p.type&&p.__k===f.__k?p.__d=c=yr(p,c,e):c=vr(e,p,f,m,h,c),"function"==typeof n.type&&(n.__d=c)):c&&f.__e==c&&c.parentNode!=e&&(c=ur(f))}for(n.__e=y,u=b;u--;)null!=m[u]&&("function"==typeof n.type&&null!=m[u].__e&&m[u].__e==n.__d&&(n.__d=ur(r,u+1)),Ir(m[u],m[u]));if(v)for(u=0;u<v.length;u++)xr(v[u],v[++u],v[++u])}function yr(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?yr(r,t,n):vr(n,r,r,o,r.__e,t));return t}function vr(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 mr(e,t,n){"-"===t[0]?e.setProperty(t,n):e[t]=null==n?"":"number"!=typeof n||rr.test(t)?n:n+"px"}function br(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||mr(e.style,t,"");if(n)for(t in n)r&&n[t]===r[t]||mr(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?_r:gr,i):e.removeEventListener(t,i?_r:gr,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 gr(e){this.l[e.type+!1](Qn.event?Qn.event(e):e)}function _r(e){this.l[e.type+!0](Qn.event?Qn.event(e):e)}function wr(e,t,n,r,o,i,s,a,c){var l,u,d,f,p,h,y,v,m,b,g,_,w,S=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=Qn.__b)&&l(t);try{e:if("function"==typeof S){if(v=t.props,m=(l=S.contextType)&&r[l.__c],b=l?m?m.props.value:l.__:r,n.__c?y=(u=t.__c=n.__c).__=u.__E:("prototype"in S&&S.prototype.render?t.__c=u=new S(v,b):(t.__c=u=new lr(v,b),u.constructor=S,u.render=Er),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!=S.getDerivedStateFromProps&&(u.__s==u.state&&(u.__s=or({},u.__s)),or(u.__s,S.getDerivedStateFromProps(v,u.__s))),f=u.props,p=u.state,d)null==S.getDerivedStateFromProps&&null!=u.componentWillMount&&u.componentWillMount(),null!=u.componentDidMount&&u.__h.push(u.componentDidMount);else{if(null==S.getDerivedStateFromProps&&v!==f&&null!=u.componentWillReceiveProps&&u.componentWillReceiveProps(v,b),!u.__e&&null!=u.shouldComponentUpdate&&!1===u.shouldComponentUpdate(v,u.__s,b)||t.__v===n.__v){u.props=v,u.state=u.__s,t.__v!==n.__v&&(u.__d=!1),u.__v=t,t.__e=n.__e,t.__k=n.__k,t.__k.forEach((function(e){e&&(e.__=t)})),u.__h.length&&s.push(u);break e}null!=u.componentWillUpdate&&u.componentWillUpdate(v,u.__s,b),null!=u.componentDidUpdate&&u.__h.push((function(){u.componentDidUpdate(f,p,h)}))}if(u.context=b,u.props=v,u.__v=t,u.__P=e,g=Qn.__r,_=0,"prototype"in S&&S.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=or(or({},r),u.getChildContext())),d||null==u.getSnapshotBeforeUpdate||(h=u.getSnapshotBeforeUpdate(f,p)),w=null!=l&&l.type===cr&&null==l.key?l.props.children:l,hr(e,Array.isArray(w)?w:[w],t,n,r,o,i,s,a,c),u.base=t.__e,t.__h=null,u.__h.length&&s.push(u),y&&(u.__E=u.__=null),u.__e=!1}else null==i&&t.__v===n.__v?(t.__k=n.__k,t.__e=n.__e):t.__e=kr(n.__e,t,n,r,o,i,s,c);(l=Qn.diffed)&&l(t)}catch(e){t.__v=null,(c||null!=i)&&(t.__e=a,t.__h=!!c,i[i.indexOf(a)]=null),Qn.__e(e,t,n)}}function Sr(e,t){Qn.__c&&Qn.__c(t,e),e.some((function(t){try{e=t.__h,t.__h=[],e.some((function(e){e.call(t)}))}catch(e){Qn.__e(e,t.__v)}}))}function kr(e,t,n,r,o,i,s,a){var c,l,u,d=n.props,f=t.props,p=t.type,h=0;if("svg"===p&&(o=!0),null!=i)for(;h<i.length;h++)if((c=i[h])&&"setAttribute"in c==!!p&&(p?c.localName===p:3===c.nodeType)){e=c,i[h]=null;break}if(null==e){if(null===p)return document.createTextNode(f);e=o?document.createElementNS("http://www.w3.org/2000/svg",p):document.createElement(p,f.is&&f),i=null,a=!1}if(null===p)d===f||a&&e.data===f||(e.data=f);else{if(i=i&&Yn.call(e.childNodes),l=(d=n.props||tr).dangerouslySetInnerHTML,u=f.dangerouslySetInnerHTML,!a){if(null!=i)for(d={},h=0;h<e.attributes.length;h++)d[e.attributes[h].name]=e.attributes[h].value;(u||l)&&(u&&(l&&u.__html==l.__html||u.__html===e.innerHTML)||(e.innerHTML=u&&u.__html||""))}if(function(e,t,n,r,o){var i;for(i in n)"children"===i||"key"===i||i in t||br(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]||br(e,i,t[i],n[i],r)}(e,f,d,o,a),u)t.__k=[];else if(h=t.props.children,hr(e,Array.isArray(h)?h:[h],t,n,r,o&&"foreignObject"!==p,i,s,i?i[0]:n.__k&&ur(n,0),a),null!=i)for(h=i.length;h--;)null!=i[h]&&ir(i[h]);a||("value"in f&&void 0!==(h=f.value)&&(h!==e.value||"progress"===p&&!h||"option"===p&&h!==d.value)&&br(e,"value",h,d.value,!1),"checked"in f&&void 0!==(h=f.checked)&&h!==e.checked&&br(e,"checked",h,d.checked,!1))}return e}function xr(e,t,n){try{"function"==typeof e?e(t):e.current=t}catch(e){Qn.__e(e,n)}}function Ir(e,t,n){var r,o;if(Qn.unmount&&Qn.unmount(e),(r=e.ref)&&(r.current&&r.current!==e.__e||xr(r,null,t)),null!=(r=e.__c)){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(e){Qn.__e(e,t)}r.base=r.__P=null}if(r=e.__k)for(o=0;o<r.length;o++)r[o]&&Ir(r[o],t,"function"!=typeof e.type);n||null==e.__e||ir(e.__e),e.__e=e.__d=void 0}function Er(e,t,n){return this.constructor(e,n)}function Or(e,t,n){var r,o,i;Qn.__&&Qn.__(e,t),o=(r="function"==typeof n)?null:n&&n.__k||t.__k,i=[],wr(t,e=(!r&&n||t).__k=sr(cr,null,[e]),o||tr,tr,void 0!==t.ownerSVGElement,!r&&n?[n]:o?null:t.firstChild?Yn.call(t.childNodes):null,i,!r&&n?n:o?o.__e:t.firstChild,r),Sr(i,e)}Yn=nr.slice,Qn={__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}},Zn=0,lr.prototype.setState=function(e,t){var n;n=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=or({},this.state),"function"==typeof e&&(e=e(or({},n),this.props)),e&&or(n,e),null!=e&&this.__v&&(t&&this.__h.push(t),fr(this))},lr.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),fr(this))},lr.prototype.render=cr,Xn=[],pr.__r=0;const Cr={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 Tr({children:e,className:t}){return sr("div",{className:t},sr("div",{style:Cr.Darken}),sr("div",{style:Cr.DialogOuter},sr("div",{style:Cr.DialogInner},e)))}var jr,Ar,Pr,Ur,$r=0,Dr=[],Lr=[],Nr=Qn.__b,Rr=Qn.__r,Br=Qn.diffed,Mr=Qn.__c,Wr=Qn.unmount;function Fr(e,t){Qn.__h&&Qn.__h(Ar,e,$r||t),$r=0;var n=Ar.__H||(Ar.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({__V:Lr}),n.__[e]}function Kr(e){return $r=1,function(e,t,n){var r=Fr(jr++,2);if(r.t=e,!r.__c&&(r.__=[n?n(t):Yr(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=Ar,!Ar.u)){Ar.u=!0;var o=Ar.shouldComponentUpdate;Ar.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.__}(Yr,e)}function Vr(e){return $r=5,function(e,t){var n=Fr(jr++,7);return Gr(n.__H,t)?(n.__V=e(),n.i=t,n.__h=e,n.__V):n.__}((function(){return{current:e}}),[])}function Hr(){for(var e;e=Dr.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(qr),e.__H.__h.forEach(Jr),e.__H.__h=[]}catch(t){e.__H.__h=[],Qn.__e(t,e.__v)}}Qn.__b=function(e){Ar=null,Nr&&Nr(e)},Qn.__r=function(e){Rr&&Rr(e),jr=0;var t=(Ar=e.__c).__H;t&&(Pr===Ar?(t.__h=[],Ar.__h=[],t.__.forEach((function(e){e.__N&&(e.__=e.__N),e.__V=Lr,e.__N=e.i=void 0}))):(t.__h.forEach(qr),t.__h.forEach(Jr),t.__h=[])),Pr=Ar},Qn.diffed=function(e){Br&&Br(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(1!==Dr.push(t)&&Ur===Qn.requestAnimationFrame||((Ur=Qn.requestAnimationFrame)||function(e){var t,n=function(){clearTimeout(r),zr&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,100);zr&&(t=requestAnimationFrame(n))})(Hr)),t.__H.__.forEach((function(e){e.i&&(e.__H=e.i),e.__V!==Lr&&(e.__=e.__V),e.i=void 0,e.__V=Lr}))),Pr=Ar=null},Qn.__c=function(e,t){t.some((function(e){try{e.__h.forEach(qr),e.__h=e.__h.filter((function(e){return!e.__||Jr(e)}))}catch(n){t.some((function(e){e.__h&&(e.__h=[])})),t=[],Qn.__e(n,e.__v)}})),Mr&&Mr(e,t)},Qn.unmount=function(e){Wr&&Wr(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.forEach((function(e){try{qr(e)}catch(e){t=e}})),t&&Qn.__e(t,n.__v))};var zr="function"==typeof requestAnimationFrame;function qr(e){var t=Ar,n=e.__c;"function"==typeof n&&(e.__c=void 0,n()),Ar=t}function Jr(e){var t=Ar;e.__c=e.__(),Ar=t}function Gr(e,t){return!e||e.length!==t.length||t.some((function(t,n){return t!==e[n]}))}function Yr(e,t){return"function"==typeof t?t(e):t}function Qr({title:e,type:t,alerts:n,fields:r,submitLabel:o,cancelLabel:i,onCancel:s,onSubmit:a}){const[c,l]=Kr({}),u=Vr(null);return function(e,t){var n=Fr(jr++,4);!Qn.__s&&Gr(n.__H,t)&&(n.__=e,n.i=t,Ar.__h.push(n))}((()=>{var e;return null===(e=u.current)||void 0===e?void 0:e.focus()}),[]),sr(Tr,{className:"dxc-login-dlg"},sr(cr,null,sr("h3",{style:Cr.WindowHeader},e),n.map((e=>sr("p",{style:Cr.Alert[e.type]},function({message:e,messageCode:t,messageParams:n}){return e.replace(/\{\w+\}/gi,(e=>n[e.substring(1,e.length-1)]))}(e)))),sr("form",{onSubmit:e=>{e.preventDefault(),a(c)}},Object.entries(r).map((([e,{type:t,label:n,placeholder:r}],o)=>sr("label",{style:Cr.Label,key:o},n?`${n}: `:"",sr("input",{ref:0===o?u:void 0,type:t,name:e,autoComplete:"on",style:Cr.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)}})))))),sr("div",{style:Cr.ButtonsDiv},sr(cr,null,sr("button",{type:"submit",style:Cr.Button,onClick:()=>a(c)},o),i&&sr("button",{style:Cr.Button,onClick:s},i))))}class Zr extends lr{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?sr(Qr,Object.assign({},t)):null}}function Xr(e){const t=new WeakMap;return n=>{let r=t.get(n);return r||(r=e(n),t.set(n,r)),r}}const eo=Xr((e=>new t.BehaviorSubject(f)));function to(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 no=Xr((t=>to(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})))),{}))),ro=Xr((t=>to(eo(t._novip).pipe(Ae((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 oo(...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 io=Xr((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}(to(t.combineLatest([ro(e._novip),no(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=Ke(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:"*"}:oo(...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 so{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 ao=Xr((n=>{const r=eo(n._novip).pipe(Ae((t=>e.liveQuery((()=>n.members.where({email:t.email||""}).toArray()))))),i=io(n._novip),s=ro(n._novip);return to(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})}))}})))}))),[])})),co={nameSuffix:!0};function lo(n){const r=n.name,i=eo(n),s=[];let a=!1,c=null;n.on("ready",(n=>o(this,void 0,void 0,(function*(){try{yield function(n){var r,f,p,h,y,v,m;return o(this,void 0,void 0,(function*(){l=!1;const b=rn(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),Or(sr(Zr,{db:e.vip}),n)):addEventListener("DOMContentLoaded",(()=>{t||(document.body.appendChild(n),Or(sr(Zr,{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(Ae((e=>{const r=n;n=e;const o=t.of(e);switch(e){case"disconnected":return Pn.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(je({phase:"initial"})),eo(e.dx._novip),Un]).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:Vt?l:"offline",license:"ok"}})))}(b).subscribe(n.cloud.syncState)),s.push(b.syncCompleteEvent.subscribe(d)),b.tables.every((e=>e.core))||mn();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,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&&!yn?b.cloud.usingServiceWorker=!0:((null===(t=b.cloud.options)||void 0===t?void 0:t.tryUseServiceWorker)&&b.cloud.isServiceWorkerDB,b.cloud.usingServiceWorker=!1),Gn(r,b.cloud.options),Gn(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]}))));_&&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),(null===(f=b.cloud.options)||void 0===f?void 0:f.databaseUrl)&&!_&&(yield function(e,t,n){return o(this,void 0,void 0,(function*(){yield Yt(e,t,n,{isInitialSync:!0})}))}(b,b.cloud.options,b.cloud.schema),b.setInitiallySynced(!0)),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(Te(1),ke(1)),b.cloud.persistedSyncState.pipe(Te(1),ke(1))])));let S=!1;const k=yield b.getCurrentUser();(null===(p=b.cloud.options)||void 0===p?void 0:p.requireAuth)&&(k.isLoggedIn||(S=yield dn(b))),!k.isLoggedIn||w&&w.includes(k.userId)||(S=!0),c&&c.stop(),c=null,u(),b.cloud.usingServiceWorker&&(null===(h=b.cloud.options)||void 0===h?void 0:h.databaseUrl)?($e(b,S?"pull":"push").catch((()=>{})),function(e){var t;return o(this,void 0,void 0,(function*(){try{const{periodicSync:n}=yield navigator.serviceWorker.ready;if(n)try{yield n.register(`dexie-cloud:${e.name}`,null===(t=e.cloud.options)||void 0===t?void 0:t.periodicSync)}catch(e){}}catch(e){}}))}(b).catch((()=>{}))):(null===(y=b.cloud.options)||void 0===y?void 0:y.databaseUrl)&&b.cloud.schema&&!b.cloud.isServiceWorkerDB&&(c=Jn(b,b.cloud.options,b.cloud.schema),c.start(),De(b,S?"pull":"push")),u(),b.cloud.isServiceWorkerDB||s.push(t.fromEvent(self,"online").subscribe((()=>{b.syncStateChangedEvent.next({phase:"not-in-sync"}),Tn(b)||De(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)||vn||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(Ce((e=>e)),Ae((()=>e.getPersistedSyncState())),Ce((e=>e&&e.serverRevision)),Ae((e=>o(this,void 0,void 0,(function*(){return{type:"ready",rev:e.serverRevision,realmSetHash:yield Re(e)}})))));return function n(){return e.cloud.persistedSyncState.pipe(Ce((e=>null==e?void 0:e.serverRevision)),ke(1),Ae((t=>e.cloud.currentUser.pipe(me((e=>[e,t]))))),Ae((([e,t])=>Un.pipe(me((n=>[n?e:null,t]))))),Ae((([n,r])=>(null==n?void 0:n.isLoggedIn)&&!(null==r?void 0:r.realms.includes(n.userId))?e.cloud.persistedSyncState.pipe(Ce((e=>(null==e?void 0:e.realms.includes(n.userId))||!1)),ke(1),me((e=>[n,e]))):new t.BehaviorSubject([n,r]))),Ae((([e,t])=>o(this,void 0,void 0,(function*(){return[e,yield Re(t)]})))),Ee((([e,t],[n,r])=>e===n&&t===r)),Ae((([o,i])=>{var s;return(null===(s=e.cloud.persistedSyncState)||void 0===s?void 0:s.value)?o?new Bn(e.cloud.options.databaseUrl,e.cloud.persistedSyncState.value.serverRevision,i,e.cloud.persistedSyncState.value.clientIdentity,r,e.cloud.webSocketStatus,o.accessToken,o.accessTokenExpiration):t.from([]):n()})),fe((r=>"TokenExpiredError"===(null==r?void 0:r.name)?t.of(!0).pipe(Ae((()=>o(this,void 0,void 0,(function*(){const t=yield e.getCurrentUser(),n=yield ct(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})})))),Ae((()=>n()))):t.throwError((()=>r)))),fe((r=>(e.cloud.webSocketStatus.next("error"),r instanceof Fn?t.throwError((()=>r)):t.from(Kn()).pipe(Ae((()=>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}!function(e,t){e.on.close.subscribe(t);const n=e._close;e._close=function(){n.call(this),t()}}(n,(()=>{s.forEach((e=>e.unsubscribe())),l=!0,c&&c.stop(),c=null,i.next(f)}));const d=new t.Subject;var p;n.cloud={version:"4.0.7",options:Object.assign({},co),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=rn(n);yield t.cloud.sync(),yield dn(t,e)}))},invites:ao(n),roles:no(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)}`,rn(n).reconfigure()),Gn(n.cloud.schema,n.cloud.options)},logout({force:e}={}){return o(this,void 0,void 0,(function*(){e?yield ln(rn(n),{deleteUnsyncedData:!0}):yield cn(rn(n))}))},sync({wait:r,purpose:i}={wait:!0,purpose:"push"}){var s;return o(this,void 0,void 0,(function*(){void 0===r&&(r=!0);const a=rn(n);if("ok"!==((null===(s=a.cloud.currentUser.value.license)||void 0===s?void 0:s.status)||"ok")&&(yield st(a)),"pull"===i){const e=a.cloud.persistedSyncState.value;if(De(a,i),r){const n=yield t.firstValueFrom(a.cloud.persistedSyncState.pipe(Ce((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 Vn(a)){const n=a.cloud.persistedSyncState.value;De(a,i),r&&(yield t.firstValueFrom(t.from(e.liveQuery((()=>o(this,void 0,void 0,(function*(){const e=yield Vn(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(Ce((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=io(e),s=t=>{const i=t[o||e.cloud.currentUserId];return i?new so(i.permissions,n,void 0===o||o===e.cloud.currentUserId||r===e.cloud.currentUserId):new so({},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=>An(e,n))),n.Table.prototype.newId=function({colocateWith:e}={}){const t=e&&e.substr(e.length-3);return kn(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(jn({currentUserObservable:n.cloud.currentUser,db:rn(n)})),n.use((p=rn(n),{stack:"dbcore",name:"implicitPropSetterMiddleware",level:1,create:t=>Object.assign(Object.assign({},t),{table:n=>{const r=t.table(n);return Object.assign(Object.assign({},r),{mutate:t=>{var o,i,s,a;if(t.trans.disableChangeTracking)return r.mutate(t);const c=t.trans;if(null===(i=null===(o=p.cloud.schema)||void 0===o?void 0:o[n])||void 0===i?void 0:i.markedForSync){if("versionchange"===c.mode)return Promise.reject(new e.UpgradeError(`Dexie Cloud Addon: Cannot upgrade or populate synced table "${n}". See https://dexie.org/cloud/docs/best-practices`));if("add"===t.type||"put"===t.type){if("members"===n)for(const e of t.values)"string"==typeof e.email&&(e.email=e.email.trim().toLowerCase());for(const e of t.values){e.owner||(e.owner=c.currentUser.userId),e.realmId||(e.realmId=c.currentUser.userId);const n=null===(a=(s=r.schema.primaryKey).extractKey)||void 0===a?void 0:a.call(s,e);"string"==typeof n&&"#"===n[0]&&"put"===t.type&&(delete t.criteria,delete t.changeSpec,delete t.updates,e.$ts=Date.now())}}}return r.mutate(t)}})}})})),n.use(xn(rn(n)))}lo.version="4.0.7",e.Cloud=lo;const uo=new Map;function fo(e){return e.startsWith("dexie-cloud:")&&e.split(":")[1]}const po=new Map;function ho(t,n){let r=po.get(t+"/"+n);return r||(r=function t(n,r){var i;return o(this,void 0,void 0,(function*(){let o=uo.get(n);if(!o){const i=new e(n,{addons:[lo]});if(o=rn(i),o.cloud.isServiceWorkerDB=!0,i.on("versionchange",s),yield o.dx.open(),uo.get(n))return o.close(),yield t(n,r);uo.set(n,o)}if((null===(i=o.cloud.options)||void 0===i?void 0:i.databaseUrl)&&o.cloud.schema)try{yield zn(o,o.cloud.options,o.cloud.schema,{retryImmediatelyOnFetchError:!0,purpose:r})}catch(t){if(s(),t.name!==e.errnames.NoSuchDatabase)throw t}function s(){return o.dx.on.versionchange.unsubscribe(s),uo.get(o.name)===o&&uo.delete(o.name),o.dx.close(),!1}}))}(t,n).then((()=>{po.delete(t+"/"+n)})).catch((e=>(po.delete(t+"/"+n),Promise.reject(e)))),po.set(t+"/"+n,r)),r}yn||(self.addEventListener("sync",(e=>{const t=fo(e.tag);t&&e.waitUntil(ho(t,"push"))})),self.addEventListener("periodicsync",(e=>{const t=fo(e.tag);t&&e.waitUntil(ho(t,"pull"))})),self.addEventListener("message",(e=>{if("dexie-cloud-sync"===e.data.type){const{dbName:t}=e.data,n=(r=1)=>ho(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 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={},h="undefined"!=typeof self&&self.document&&"undefined"!=typeof navigator&&navigator.serviceWorker;h&&h.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 y{constructor(e){this.name=e}subscribe(e){if(!h)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 h.addEventListener("message",t),()=>h.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 y(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 y?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 y?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),h=p.next();!h.done;h=p.next()){var y=h.value;try{A(y)}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{h&&!h.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 T={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},j={setTimeout:function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var o=j.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=j.delegate;return((null==t?void 0:t.clearTimeout)||clearTimeout)(e)},delegate:void 0};function C(e){j.setTimeout((function(){throw e}))}function U(){}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 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}(E),$=Function.prototype.bind;function D(e,t){return $.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){R(e)}},e.prototype.error=function(e){var t=this.partialObserver;if(t.error)try{t.error(e)}catch(e){R(e)}else R(e)},e.prototype.complete=function(){var e=this.partialObserver;if(e.complete)try{e.complete()}catch(e){R(e)}},e}(),N=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&&T.useDeprecatedNextContext?((i=Object.create(t)).unsubscribe=function(){return s.unsubscribe()},o={next:t.next&&D(t.next,i),error:t.error&&D(t.error,i),complete:t.complete&&D(t.complete,i)}):o=t;return s.destination=new L(o),s}return r(t,e),t}(P);function R(e){C(e)}var B={closed:!0,next:U,error:function(e){throw e},complete:U},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 N(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 N({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:T.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,C)}));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 he(e,t){return void 0===t&&(t=0),g((function(n,r){r.add(e.schedule((function(){return n.subscribe(r)}),t))}))}function ye(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(he(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(he(t),pe(t))}(e,t);if(H(e))return ye(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 ye(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?h(e):c.push(e)},h=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 h(e)})):h(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,U))}))),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 Te(e){return Ae((function(t,n){return e<=n}))}function je(){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 Ce(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 Ue(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 $e(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 De(e,t){e.cloud.usingServiceWorker?$e(e,t):e.localSyncEvent.next({purpose:t})}const Le="undefined"!=typeof Buffer?e=>Buffer.from(e,"base64"):e=>{const t=atob(e),n=t.length,r=new Uint8Array(n);for(var o=0;o<n;o++)r[o]=t.charCodeAt(o);return r},Ne="undefined"!=typeof Buffer?e=>ArrayBuffer.isView(e)?Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("base64"):Buffer.from(e).toString("base64"):e=>{const t=ArrayBuffer.isView(e)?e:new Uint8Array(e),n=[];for(let e=0,r=t.length;e<r;e+=4096){const r=t.subarray(e,e+4096);n.push(String.fromCharCode.apply(null,r))}return btoa(n.join(""))};function Re({realms:e,inviteRealms:t}){return o(this,void 0,void 0,(function*(){const n=JSON.stringify([...e.map((e=>({realmId:e,accepted:!0}))),...t.map((e=>({realmId:e,accepted:!1})))].sort(((e,t)=>e.realmId<t.realmId?-1:e.realmId>t.realmId?1:0))),r=(new TextEncoder).encode(n),o=yield crypto.subtle.digest("SHA-1",r);return Ne(o)}))}function Be(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 Me(e){return`$${e}_mutations`}function Fe(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 We=[].concat;function Ve(e){return We.apply([],e)}function Ke(e,t,{since:n={},limit:r=1/0}={}){return o(this,void 0,void 0,(function*(){const t=Ve(yield Promise.all(e.map((e=>o(this,void 0,void 0,(function*(){const t=Fe(e.name),o=n[t];let i=o?e.where("rev").above(o):e;r<1/0&&(i=i.limit(r));return(yield i.toArray()).map((e=>({table:t,mut:e})))})))))).sort(((e,t)=>e.mut.txid===t.mut.txid?e.mut.opNo-t.mut.opNo:e.mut.ts-t.mut.ts)),i=[];let s=null,a=null;for(const{table:e,mut:n}of t)s&&s.table===e&&a===n.txid?s.muts.push(n):(s={table:e,muts:[n]},a=n.txid,i.push(s));return i}))}function He(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")}function ze(e){if(!e)throw new Error("Assertion Failed")}const qe={}.hasOwnProperty;function Je(e,t,n){if(e&&void 0!==t&&(!("isFrozen"in Object)||!Object.isFrozen(e)))if("string"!=typeof t&&"length"in t){ze("string"!=typeof n&&"length"in n);for(var r=0,o=t.length;r<o;++r)Je(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 qe.call(e,t)}(e,s)||(c=e[s]={}),Je(c,a,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=Ye)=>{const n=Buffer.alloc(e);return t(n),n.toString("base64")}:()=>{throw new Error("No implementation of randomString was found")};function Ye(e){for(let t=0;t<e.length;++t)e[t]=Math.floor(256*Math.random())}function Qe(e){return"string"==typeof e||!!(Array.isArray(e)&&e.some((e=>Qe(e)))&&e.every(Xe))}function Xe(e){return"string"==typeof e||"number"==typeof e||Array.isArray(e)&&e.every(Xe)}function Ze(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))Je(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 et(e,t){for(const{table:n,muts:r}of t)for(const t of r)Ze(e,n,t)}const tt=Math.floor,nt=Math.abs,rt=(e,t)=>e>t?e:t,ot=128,it=127,st=Number.MAX_SAFE_INTEGER,at=Number.isInteger||(e=>"number"==typeof e&&isFinite(e)&&tt(e)===e),ct=Array.isArray,lt="undefined"!=typeof TextEncoder?new TextEncoder:null,ut=lt?e=>lt.encode(e):e=>{const t=unescape(encodeURIComponent(e)),n=t.length,r=new Uint8Array(n);for(let e=0;e<n;e++)r[e]=t.codePointAt(e);return r};let dt="undefined"==typeof TextDecoder?null:new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});dt&&1===dt.decode(new Uint8Array).length&&(dt=null);class ft{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},ht=(e,t)=>{for(;t>it;)pt(e,ot|it&t),t=tt(t/128);pt(e,it&t)},yt=new Uint8Array(3e4),vt=yt.length/3,mt=lt&&lt.encodeInto?(e,t)=>{if(t.length<vt){const n=lt.encodeInto(t,yt).written||0;ht(e,n);for(let t=0;t<n;t++)pt(e,yt[t])}else bt(e,ut(t))}:(e,t)=>{const n=unescape(encodeURIComponent(t)),r=n.length;ht(e,r);for(let t=0;t<r;t++)pt(e,n.codePointAt(t))},bt=(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(rt(2*n,i)),e.cbuf.set(t.subarray(o)),e.cpos=i)})(e,t)},gt=(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*rt(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)=>gt(e,8).setBigUint64(0,t,!1),wt=new DataView(new ArrayBuffer(4)),kt=(e,t)=>{switch(typeof t){case"string":pt(e,119),mt(e,t);break;case"number":at(t)&&nt(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?ot:0)|(n?64:0)|63&t),t=tt(t/64);t>0;)pt(e,(t>it?ot:0)|it&t),t=tt(t/128)})(e,t)):(n=t,wt.setFloat32(0,n),wt.getFloat32(0)===n?(pt(e,124),((e,t)=>{gt(e,4).setFloat32(0,t,!1)})(e,t)):(pt(e,123),((e,t)=>{gt(e,8).setFloat64(0,t,!1)})(e,t)));break;case"bigint":pt(e,122),((e,t)=>{gt(e,8).setBigInt64(0,t,!1)})(e,t);break;case"object":if(null===t)pt(e,126);else if(ct(t)){pt(e,117),ht(e,t.length);for(let n=0;n<t.length;n++)kt(e,t[n])}else if(t instanceof Uint8Array)pt(e,116),bt(e,t);else{pt(e,118);const n=Object.keys(t);ht(e,n.length);for(let r=0;r<n.length;r++){const o=n[r];mt(e,o),kt(e,t[o])}}break;case"boolean":pt(e,t?120:121);break;default:pt(e,127)}var n};function St(e){const t=new ft;switch(mt(t,e.type),mt(t,e.table),mt(t,e.prop),e.type){case"u-ack":case"u-reject":_t(t,BigInt(e.i));break;default:switch(kt(t,e.k),e.type){case"aware":case"u-s":bt(t,e.u);break;case"doc-open":kt(t,e.serverRev),kt(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))}}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 xt=e=>new Error(e),It=xt("Unexpected end of array"),Et=xt("Integer out of Range");class Ot{constructor(e){this.arr=e,this.pos=0}}const At=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)),jt=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&it)*n,n*=128,r<ot)return t;if(t>st)throw Et}throw It},Ut=dt?e=>dt.decode(Tt(e)):e=>{let t=Ct(e);if(0===t)return"";{let n=String.fromCodePoint(jt(e));if(--t<100)for(;t--;)n+=String.fromCodePoint(jt(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))}},Pt=(e,t)=>{const n=new DataView(e.arr.buffer,e.arr.byteOffset+e.pos,t);return e.pos+=t,n},$t=e=>Pt(e,8).getBigUint64(0,!1),Dt=[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&ot))return o*n;const i=e.arr.length;for(;e.pos<i;){if(t=e.arr[e.pos++],n+=(t&it)*r,r*=128,t<ot)return o*n;if(n>st)throw Et}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,Ut,e=>{const t=Ct(e),n={};for(let r=0;r<t;r++){n[Ut(e)]=Lt(e)}return n},e=>{const t=Ct(e),n=[];for(let r=0;r<t;r++)n.push(Lt(e));return n},Tt],Lt=e=>Dt[127-jt(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,h=d(e);!(t=(f=yield l(h.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=h.return)||(yield l(r.call(h)))}finally{if(n)throw n.error}}}))}class Rt 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,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 Mt(e,t,...n){return Bt(e,{type:"message-alert",title:t,alerts:n,fields:{},submitLabel:"OK",cancelLabel:null})}function Ft(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 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 Wt(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 Bt(e,{type:"otp",title:"Enter OTP",alerts:r,fields:{otp:{type:"otp",label:"OTP",placeholder:"Paste OTP here"}}});return o}))}function Vt(e){var t,n,r;return o(this,void 0,void 0,(function*(){const o=yield e.getCurrentUser(),{accessToken:i,accessTokenExpiration:s,refreshToken:a,refreshTokenExpiration:c,claims:l}=o;if(!i)return null;if((null!==(t=null==s?void 0:s.getTime())&&void 0!==t?t:1/0)>Date.now()&&"ok"===((null===(n=o.license)||void 0===n?void 0:n.status)||"ok"))return o;if(!a)throw new Error("Refresh token missing");if((null!==(r=null==c?void 0:c.getTime())&&void 0!==r?r:1/0)<=Date.now())throw new Error("Refresh token has expired");const u=yield Ht(e.cloud.options.databaseUrl,o);return yield e.table("$logins").update(l.sub,{accessToken:u.accessToken,accessTokenExpiration:u.accessTokenExpiration,claims:u.claims,license:u.license}),u}))}function Kt(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 Ht(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=Ne(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 Rt(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 Rt)throw yield Mt(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 Mt(r,"Authentication Failed",{type:"error",messageCode:"GENERIC_ERROR",message:n,messageParams:{}}).catch((()=>{}))}throw t}}))}(n,r,i,s)}))}function Ht(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=Ne(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 Rt(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:zt}={};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 Jt(...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 qt;let i=n.get(r);if(void 0!==i)return i;const s=(o=e,zt.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:qt),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 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 Yt={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 Qt={bigint:{replace:e=>({$t:"bigint",v:""+e}),revive:e=>BigInt(e.v)}};var Xt={Date:{replace:e=>({$t:"Date",v:isNaN(e.getTime())?"NaN":e.toISOString()}),revive:({v:e})=>new Date("NaN"===e?NaN:Date.parse(e))}},Zt={Set:{replace:e=>({$t:"Set",v:Array.from(e.entries())}),revive:({v:e})=>new Set(e)}},en={Map:{replace:e=>({$t:"Map",v:Array.from(e.entries())}),revive:({v:e})=>new Map(e)}};const tn="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof global?global:void 0;var nn=["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","DataView","BigInt64Array","BigUint64Array"].reduce(((e,t)=>({...e,[t]:{replace:(e,n,r)=>({$t:t,v:r.ArrayBuffer.replace(0===e.byteOffset&&e.byteLength===e.buffer.byteLength?e.buffer:e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength),n,r).v}),revive:({v:e},n,r)=>{const o=tn[t];return o&&new o(r.ArrayBuffer.revive({v:e},n,r))}}})),{});function rn(e){return function(e){for(var t="",n=0,r=e.length;n<r;n++)t+=an[e[n]];return t}(Ne(e))}function on(e){return Le(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+=sn[e[n]];return t}(e))}const sn={"-":"=",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:"+","|":"/"},an={};for(const e of Object.keys(sn))an[sn[e]]=e;var cn={ArrayBuffer:{replace:e=>({$t:"ArrayBuffer",v:rn(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 ln{constructor(e,t){this.buf=e,this.type=t}}function un(e){const t=new XMLHttpRequest;if(t.overrideMimeType("text/plain; charset=x-user-defined"),t.open("GET",URL.createObjectURL(e),!1),t.send(),200!==t.status&&0!==t.status)throw new Error("Bad Blob access: "+t.status);return t.responseText}function dn(e){const t=new Uint8Array(e.length);for(let n=0;n<e.length;++n)t[n]=e.charCodeAt(n);return t.buffer}var fn={Blob:{test:(e,t)=>"Blob"===t||e instanceof ln,replace:e=>({$t:"Blob",v:Ne(e instanceof ln?e.buf:dn(un(e))),type:e.type}),revive:({type:e,v:t})=>{const n=Le(t);return void 0!==typeof Blob?new Blob([n]):new ln(n.buffer,e)}}};const pn={...Yt,...Qt,...Xt,...Zt,...en,...nn,...cn,...fn};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 yn={undefined:{replace:()=>({$t:"undefined"}),revive:()=>{}}};const vn="function"==typeof BigInt&&"bigint"==typeof BigInt(0);class mn{toString(){return this.v}constructor(e){this.v=e}}const bn=Object.assign(Object.assign(Object.assign({},yn),vn?{}:{bigint:{test:e=>e instanceof mn,replace:e=>Object.assign({$t:"bigint"},e),revive:({v:e})=>new mn(e)}}),{PropModification:{test:t=>t instanceof e.PropModification,replace:e=>Object.assign({$t:"PropModification"},e),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)}}}),gn=Jt(pn,bn),_n=function(...e){const t=Jt(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),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)}}}(bn);class wn extends Error{constructor(e,t){super(t||`${e.status} ${e.statusText}`),this.httpStatus=e.status}get name(){return"HttpError"}}function kn(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=Sn(i,o));const e=l.muts[r],n=JSON.stringify(t);e.keys[s]=n}else if("#"===t[0]){l===i&&(l=Sn(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 Sn(e,t){return Object.assign(Object.assign({},e),{muts:t?e.muts.map((e=>"insert"!==e.type&&"upsert"!==e.type||!e.values?Object.assign(Object.assign({},e),{keys:e.keys.slice()}):Object.assign(Object.assign({},e),{keys:e.keys.slice(),values:e.values.slice()}))):e.muts.map((e=>Object.assign(Object.assign({},e),{keys:e.keys.slice()})))})}let xn=new WeakMap;function In(e){var t,n;return o(this,void 0,void 0,(function*(){const r=(null!==(n=null===(t=xn.get(e))||void 0===t?void 0:t.getTime())&&void 0!==n?n:0)-Date.now();r>0&&(yield new Promise((e=>setTimeout(e,r))))}))}function En(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 Vt(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,realms:n.realms,inviteRealms:n.inviteRealms}:void 0,baseRevs:r,changes:kn(i.dx.core.schema,l,e),y:t};i.syncStateChangedEvent.next({phase:"pushing"});const p=yield fetch(`${s}/sync`,{method:"post",headers:o,credentials:"include",body:gn.stringify(f)});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));xn.set(e,new Date(Date.now()+1e3*t))}else xn.delete(e)}}(i,p),!p.ok)throw new wn(p);if("application/x-bison"===p.headers.get("content-type"))return _n.fromBinary(yield p.blob());{const e=yield p.text();return gn.parse(e)}}))}function On(t){if(null==t?void 0:t.cancelled)throw new e.AbortError("Operation was cancelled")}let An=!1;function Tn(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 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 Cn(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 Un(t,n){return o(this,void 0,void 0,(function*(){for(const{table:r,muts:o}of t){const t=n.table(r);if(!t)continue;const{primaryKey:i}=t.core.schema,s=e=>{switch(e[0]){case"[":if(e.endsWith("]"))try{return JSON.parse(e)}catch(e){}return e;case"#":return e.endsWith(":"+n.cloud.currentUserId)?e.substr(0,e.length-n.cloud.currentUserId.length-1):e;default:return e}};for(const n of o){const r=n.keys.map(s);switch(n.type){case"insert":i.outbound?yield t.bulkAdd(n.values,r):(r.forEach(((t,r)=>{e.setByKeyPath(n.values[r],i.keyPath,t)})),yield t.bulkAdd(n.values));break;case"upsert":i.outbound?yield t.bulkPut(n.values,r):(r.forEach(((t,r)=>{e.setByKeyPath(n.values[r],i.keyPath,t)})),yield t.bulkPut(n.values));break;case"modify":1===r.length?yield t.update(r[0],n.changeSpec):yield t.where(":id").anyOf(r).modify(n.changeSpec);break;case"update":yield Cn(t,r,n.changeSpecs);break;case"delete":yield t.bulkDelete(r)}}}}))}"undefined"!=typeof self&&"undefined"!=typeof navigator&&(An=navigator.onLine,self.addEventListener("online",(()=>An=!0)),self.addEventListener("offline",(()=>An=!1)));const Pn="dexie-cloud-syncer";function $n(e,t){return e.where("i").between(t,1/0,!0).toArray()}function Dn(e){const t=e.dx._options.Y;if(!t)throw new Error("Y library not supplied to Dexie constructor");return t}function Ln(e,t,n){var r,o,i;const s=null===(i=null===(o=null===(r=e.table(t))||void 0===r?void 0:r.schema.yProps)||void 0===o?void 0:o.find((e=>e.prop===n)))||void 0===i?void 0:i.updatesTable;if(!s)throw new Error(`No updatesTable found for ${t}.${n}`);return e.table(s)}function Nn(t,n){return o(this,void 0,void 0,(function*(){const r={};for(const i of t)switch(i.type){case"u-s":{const e=Ln(n,i.table,i.prop);r[e.name]=yield e.add({k:i.k,u:i.u});break}case"u-ack":{const e=Ln(n,i.table,i.prop);yield n.transaction("rw",e,(t=>o(this,void 0,void 0,(function*(){let n=yield t.table(e.name).get(Pn);yield t.table(e.name).put(Object.assign(Object.assign({},n||{i:Pn}),{unsentFrom:Math.max((null==n?void 0:n.unsentFrom)||1,i.i+1)}))}))));break}case"u-reject":{const e=Ln(n,i.table,i.prop);yield e.delete(i.i);break}case"in-sync":{const t=e.DexieYProvider.getDocCache(n.dx).find(i.table,i.k,i.prop);t&&!t.isSynced&&t.emit("sync",[!0]);break}}return r}))}const Rn=1,Bn=2,Mn=3;function Fn(t,n,{yDownloadedRealms:r,realms:i}){return o(this,void 0,void 0,(function*(){if(r&&i&&i.every((e=>"*"===r[e])))return;const s=yield Vt(t),a={"Content-Type":"application/json",Accept:"application/octet-stream"};s&&(a.Authorization=`Bearer ${s.accessToken}`);const c=yield fetch(`${n}/y/download`,{body:gn.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,h=[];function y(e){return o(this,void 0,void 0,(function*(){const r=h[h.length-1];if(h.length>0){if(!u||!f||!p)throw new Error(`Protocol error from ${n}/y/download`);const e=Ln(t,f,p);yield e.bulkAdd(h),h=[]}u&&f&&p&&(r||e)&&(yield t.$syncState.update("syncState",e?"*":{[`yDownloadedRealms.${u}`]:{tbl:f,prop:p,key:r.k}}))}))}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 Ot(c);for(;At(e);)switch(jt(e)){case Rn:yield l(y(!0)),u=Ut(e);break;case Bn:yield l(y(!1)),f=Ut(e),p=Ut(e);break;case Mn:{const t=Lt(e),n=Tt(e);h.push({k:t,u:n});break}}yield l(y(!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(y(!0))}catch(t){throw t instanceof e.DexieError||(yield l(y(!1))),t}}))}))}))}const Wn="currentSyncWorker";function Vn(e,t,n,r){return Kn.apply(this,arguments).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):An&&(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 Vn(e,t,n,Object.assign(Object.assign({},r),{retryImmediatelyOnFetchError:!1}))):(yield e.$syncState.update("syncState",{timestamp:new Date,error:""+i}),e.syncStateChangedEvent.next({phase:An?"error":"offline",error:new Error(""+(null==i?void 0:i.message)||i)}),Promise.reject(i))}))))}function Kn(e,t,n,{isInitialSync:r,cancelToken:i,justCheckIfNeeded:s,purpose:a}={isInitialSync:!1}){var c;return o(this,void 0,void 0,(function*(){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?Be(e):[],p=d.map((t=>e.table(Me(t.name)))),h=yield e.getPersistedSyncState(),y=!r&&u.isLoggedIn,v=y?function(e,t){const n=(null==t?void 0:t.syncedTables)||[];return Be(e).filter((e=>!n.includes(e.name)))}(e,h):[];On(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==h?void 0:h.realms)})))),On(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 Ke(p);const a=yield function(e){var t;return o(this,void 0,void 0,(function*(){const n=[],r={};for(const o of e.tables)if(o.schema.yProps&&(null===(t=e.cloud.schema)||void 0===t?void 0:t[o.name].markedForSync))for(const t of o.schema.yProps){const i=Dn(e),s=e.table(t.updatesTable),a=yield s.get(Pn),c=(null==a?void 0:a.unsentFrom)||1,l=(null==a?void 0:a.receivedUntil)||0,u=Math.min(c,l+1),d=yield $n(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);if(On(i),m){const e=[...(null==h?void 0:h.realms)||[],...(null==h?void 0:h.inviteRealms)||[]],c=yield function(e,t,n,r){return o(this,void 0,void 0,(function*(){const i=`upload-${He(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||"")&&Qe(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 On(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=jn(b,null==g?void 0:g.latestRevisions),I=(null==g?void 0:g.clientIdentity)||Ge(16);On(i);const E=yield En(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 Ke(p,0,{since:x});for(const t of p){const n=Fe(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()])}jn(r,x),yield Tn(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=Be(e);for(const e of t){let t=["realms","members","roles"].includes(e.name)?r:o;0!==t.size&&(e.schema.indexes.some((e=>"realmId"===e.keyPath||Array.isArray(e.keyPath)&&"realmId"===e.keyPath[0]))?yield e.where("realmId").anyOf([...t]).delete():yield e.filter((e=>!!(null==e?void 0:e.realmId)&&t.has(e.realmId))).delete())}}if(o.size>0){const t={};for(const e of o)t[`yDownloadedRealms.${e}`]=void 0;yield e.$syncState.update("syncState",t)}}))}(e,E,i);const s=i||{syncedTables:[],latestRevisions:{},realms:[],inviteRealms:[],clientIdentity:I};y&&(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.timestamp=new Date,delete s.error;const a=Hn(E.changes,r);if(yield Un(a,e),E.yMessages){const t=yield Nn(E.yMessages,e);yield function(e,t,n,r){var i,s;return o(this,void 0,void 0,(function*(){const a={};for(const[t,n]of Object.entries(e))null!==(i=a[t])&&void 0!==i||(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;for(const[e,{unsentFrom:t,receivedUntil:i}]of Object.entries(a))yield n.transaction("rw",e,(()=>o(this,void 0,void 0,(function*(){const o=yield n.table(e).get(Pn);o?(t&&(o.unsentFrom=Math.max(t,o.unsentFrom||1)),i&&(o.receivedUntil=Math.max(i,o.receivedUntil||0),o.serverRev=r),yield n.table(e).put(o)):yield n.table(e).add({i:Pn,unsentFrom:t||1,receivedUntil:i||0,serverRev:r})}))))}))}(k,t,e,E.serverRevision)}return e.$syncState.put(s,"syncState"),{done:0===r.length,newSyncState:s}}))));if(!O)return yield In(e),yield Kn(e,t,n,{isInitialSync:r,cancelToken:i});const T=Object.values(n).some((e=>{var t;return null===(t=e.yProps)||void 0===t?void 0:t.length})),j=!!E.yMessages;return T&&j&&(yield Fn(e,l,A)),e.syncCompleteEvent.next(),!1}))}function Hn(e,t){const n={};et(n,e);const r={};return et(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))Je(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=Ge(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 zn=10,qn=1e4,Jn=1e3;function Gn(n){const r=[],i=new t.BehaviorSubject(!0),s=new t.BehaviorSubject(null);let a=!1,c=new Array(zn).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(){var i,s,a,c,l,u;return o(this,void 0,void 0,(function*(){for(;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 Ht(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)){De(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||De(n,"pull"));if((yield e.waitFor(Re(o)))!==d.realmSetHash)return void De(n,"pull");let s=[];if(i.isLoggedIn){const e=Be(n).map((e=>n.table(Me(e.name))));s=yield Ke(e)}if(d.changes.length>0){const e=Hn(d.changes,s);yield Un(e,n)}o.latestRevisions=jn(s,o.latestRevisions),o.serverRevision=d.newRev,yield Tn(n,r,o.latestRevisions,d.newRev),yield n.$syncState.put(o,"syncState")}))))}}catch(e){}}}))}()}finally{c[c.length-1]-c[0]<qn&&(yield new Promise((e=>setTimeout(e,Jn)))),a=!1,i.next(!0)}}})))),{enqueue:function(e){r.push(e),s.next(null)},readyToServe:i}}const Yn=new WeakMap,Qn={members:"@id, [userId+realmId], [email+realmId], realmId",roles:"[realmId+name]",realms:"@realmId",$jobs:"",$syncState:"",$baseRevs:"[tableName+clientRev]",$logins:"claims.sub, lastLogin"};let Xn=0;function Zn(e){"vip"in e&&(e=e.vip);let n=Yn.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=++Xn;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=Gn(n),n.messageProducer=new t.Subject,Yn.set(e.cloud,n)}return n}const er=new WeakMap;class tr{constructor(e,t){er.set(this,e),Object.assign(this,t)}static load(e,t){return e.table("$logins").get(t).then((n=>new tr(e,n||{userId:t,claims:{sub:t},lastLogin:new Date(0)})))}save(){return o(this,void 0,void 0,(function*(){er.get(this).table("$logins").put(this)}))}}function nr(e,n){return t.firstValueFrom(t.from(e).pipe(t.filter(n)))}function rr(e){return o(this,void 0,void 0,(function*(){const t=yield or(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 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 or(e,{deleteUnsyncedData:!0})}}))}function or(e,{deleteUnsyncedData:t=!1}={}){return o(this,void 0,void 0,(function*(){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 nr(e.cloud.currentUser,(e=>e.userId===f.userId)),yield e.cloud.sync({purpose:"pull",wait:!0})),n}))}function ir(e,...t){globalThis.console[e](...t)}function sr(e,t){var n;return o(this,void 0,void 0,(function*(){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 Vt(e),!1}const s=new tr(e,{claims:{},lastLogin:new Date(0)});return yield Kt(e.cloud.options.databaseUrl,s,e.cloud.options.fetchTokens||function(e){const{userInteraction:t}=e.cloud;return function({public_key:n,hints:r}){var i;return o(this,void 0,void 0,(function*(){let o;const s=null===(i=e.cloud.options)||void 0===i?void 0:i.databaseUrl;if(!s)throw new Error("No database URL given.");if("demo"===(null==r?void 0:r.grant_type))o={demo_user:yield Ft(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)o={grant_type:"otp",otp_id:r.otpId,otp:r.otp,scopes:["ACCESS_DB"],public_key:n};else{const e=yield Ft(t,"Enter email address",null==r?void 0:r.email);o=/@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(o),method:"post",headers:{"Content-Type":"application/json",mode:"cors"}});if(200!==a.status){const e=yield a.text();throw yield Mt(t,"Token request failed",{type:"error",messageCode:"GENERIC_ERROR",message:e,messageParams:{}}).catch((()=>{})),new wn(a,e)}const c=yield a.json();if("tokens"===c.type||"error"===c.type)return c;if("otp"===o.grant_type&&"email"in o){if("otp-sent"!==c.type)throw new Error(`Unexpected response from ${s}/token`);const e=yield Wt(t,o.email),r=Object.assign(Object.assign({},o),{otp:e||"",otp_id:c.otp_id,public_key:n});let i=yield fetch(`${s}/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 Wt(t,o.email,{type:"error",messageCode:"INVALID_OTP",message:e,messageParams:{}}),i=yield fetch(`${s}/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 wn(i,e)}return yield i.json()}throw new Error(`Unexpected response from ${s}/token`)}))}}(e),e.cloud.userInteraction,t),i!==f.userId&&s.userId!==i&&(yield rr(e)),yield function(e,t){return o(this,void 0,void 0,(function*(){if(t.userId===e.cloud.currentUserId)return;const n=e.table("$logins");yield e.transaction("rw",n,(e=>o(this,void 0,void 0,(function*(){const e=yield n.toArray();yield Promise.all(e.filter((e=>e.userId!==t.userId&&e.isLoggedIn)).map((e=>(e.isLoggedIn=!1,n.put(e))))),t.isLoggedIn=!0,t.lastLogin=new Date;try{yield t.save()}catch(e){try{"DataCloneError"===e.name&&(ir("debug","Login context property names:",Object.keys(t)),ir("debug","Login context property names:",Object.keys(t)),ir("debug","Login context:",t),ir("debug","Login context JSON:",JSON.stringify(t)))}catch(e){}throw e}})))),yield nr(e.cloud.currentUser,(e=>e.userId===t.userId))}))}(e,s),De(e,"pull"),s.userId!==i}))}const ar="undefined"!=typeof InstallTrigger,cr="undefined"!=typeof navigator&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\/|Edge\//.test(navigator.userAgent),lr=cr?[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]:NaN,ur=cr&&lr<=605||ar,dr="undefined"!=typeof self&&"clients"in self&&!self.document;function fr(){throw new e.SchemaError("Version increment needed to allow dexie-cloud change tracking")}const{toString:pr}={};function hr(e){return pr.call(e).slice(8,-1)}function yr(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 vr=/b|c|d|f|g|h|j|k|l|m|n|p|q|r|s|t|v|x|y|z/i;let mr=0;function br(e,t){const n=new Uint8Array(18),r=new Uint8Array(n.buffer,0,6),o=Date.now();mr>=o?++mr:mr=o,r[0]=mr/1099511627776,r[1]=mr/4294967296,r[2]=mr/16777216,r[3]=mr/65536,r[4]=mr/256,r[5]=mr;const i=new Uint8Array(n.buffer,6);crypto.getRandomValues(i);return e+rn(new Uint8Array(n.buffer))+(t||"")}function gr(t){return{stack:"dbcore",name:"idGenerationMiddleware",level:1,create:n=>Object.assign(Object.assign({},n),{table:r=>{const o=n.table(r);return Object.assign(Object.assign({},o),{mutate:n=>{var i,s;if(n.trans.disableChangeTracking)return o.mutate(n);if("add"===n.type||"put"===n.type){const a=null===(i=t.cloud.schema)||void 0===i?void 0:i[r];if(null==a?void 0:a.generatedGlobalId){if((null===(s=t.cloud.options)||void 0===s?void 0:s.databaseUrl)&&!t.initiallySynced){const e=yr(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=yr(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]=br(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){yr(o.schema.primaryKey,n).forEach(((t,n)=>{if(!Qe(t)){const n=Array.isArray(t)?t.map(hr).join(","):hr(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 _r=0;function wr(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 kr(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 Sr=new t.BehaviorSubject(new Set);function xr(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 Ir({currentUserObservable:e,db:t}){return{stack:"dbcore",name:"MutationTrackingMiddleware",level:1,create:n=>{const r=n.schema.tables.filter((e=>!/^\$/.test(e.name)));let o;try{o=new Map(r.map((e=>[e.name,n.table(`$${e.name}_mutations`)])))}catch(e){fr()}return Object.assign(Object.assign({},n),{transaction:(r,o)=>{let i;if("readwrite"===o){const e=r.filter((e=>{var n,r;return null===(r=null===(n=t.cloud.schema)||void 0===n?void 0:n[e])||void 0===r?void 0:r.markedForSync})).map((e=>Me(e)));i=n.transaction([...r,...e],o)}else i=n.transaction(r,o);if("readwrite"===o){i.txid=He(16),i.opCount=0,i.currentUser=e.value,Sr.value.add(i),Sr.next(Sr.value);const n=()=>{i.removeEventListener("complete",r),i.removeEventListener("error",n),i.removeEventListener("abort",n),Sr.value.delete(i),Sr.next(Sr.value)},r=()=>{i.mutationsAdded&&!xr(t)&&De(t,"push"),n()};i.addEventListener("complete",r),i.addEventListener("error",n),i.addEventListener("abort",n)}return i},table:e=>{const r=n.table(e);if(/^\$/.test(e))return e.endsWith("_mutations")?Object.assign(Object.assign({},r),{mutate:e=>("add"!==e.type&&"put"!==e.type||(e.trans.mutationsAdded=!0),r.mutate(e))}):"$logins"===e?Object.assign(Object.assign({},r),{mutate:e=>r.mutate(e).then((t=>(e.trans.mutationsAdded=!0,t))).catch((e=>Promise.reject(e)))}):r;const{schema:i}=r,s=o.get(e);return function(e){const t="$lock"+ ++_r;return Object.assign(Object.assign({},e),{count:wr(e.count,t),get:wr(e.get,t),getMany:wr(e.getMany,t),openCursor:wr(e.openCursor,t),query:wr(e.query,t),mutate:kr(e.mutate,t)})}(Object.assign(Object.assign({},r),{mutate:n=>{var o,s,c;const l=n.trans;return l.txid?l.disableChangeTracking?r.mutate(n):(null===(s=null===(o=t.cloud.schema)||void 0===o?void 0:o[e])||void 0===s?void 0:s.markedForSync)&&(null===(c=l.currentUser)||void 0===c?void 0:c.isLoggedIn)?"deleteRange"===n.type?r.query({query:{range:n.range,index:i.primaryKey},trans:n.trans,values:!1}).then((e=>a({type:"delete",keys:e.result,trans:n.trans,criteria:{index:null,range:n.range}}))):a(n):r.mutate(n):r.mutate(n)}}));function a(e){const t=e.trans;t.mutationsAdded=!0;const{txid:n,currentUser:{userId:o}}=t,{type:a}=e,c=++t.opCount;return r.mutate(e).then((r=>{const{numFailures:l,failures:u}=r;let d="delete"===a?e.keys:r.results,f="values"in e?e.values:[],p="updates"in e&&e.updates;l&&(d=d.filter(((e,t)=>!u[t])),f=f.filter(((e,t)=>!u[t])));const h=Date.now(),y="criteria"in e&&e.criteria?Object.assign(Object.assign({},e.criteria),{index:e.criteria.index===i.primaryKey.keyPath?null:e.criteria.index}):void 0,v="delete"===e.type?{type:"delete",ts:h,opNo:c,keys:d,criteria:y,txid:n,userId:o}:"add"===e.type?{type:"insert",ts:h,opNo:c,keys:d,txid:n,userId:o,values:f}:y&&e.changeSpec?{type:"modify",ts:h,opNo:c,keys:d,criteria:y,changeSpec:e.changeSpec,txid:n,userId:o}:p?{type:"update",ts:h,opNo:c,keys:p.keys,changeSpecs:p.changeSpecs,txid:n,userId:o}:{type:"upsert",ts:h,opNo:c,keys:d,values:f,txid:n,userId:o};return"isAdditionalChunk"in e&&e.isAdditionalChunk&&(v.isAdditionalChunk=!0),d.length>0||y?s.mutate({type:"add",trans:t,values:[v]}).then((()=>r)):r}))}}})}}}function Er(e,t){return function(n,r){var o;const i=Object.assign(Object.assign({},Qn),n);Object.keys(Qn).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=Qn[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(Qn[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)(vr.test(e[t])||(r=e[t])>="A"&&r<="Z")&&(n+=e[t].toLowerCase());for(var r,o,i;t.has(n);){if(/\d/g.test(n)){if(n=n.substr(0,n.length-1)+(n[n.length-1]+1),!(n.length>3))continue;n=n.substr(0,3)}else if(n.length<3){n+="2";continue}let e=1,r=n;for(;t.has(r)&&e<8;)o=n,r=(1&(i=e)?o[0].toUpperCase():o[0].toLowerCase())+(2&i?o[1].toUpperCase():o[1].toLowerCase())+(4&i?o[2].toUpperCase():o[2].toLowerCase()),++e;if(e<8)n=r;else{let e=n.charCodeAt(2)+1&127;n=n.substr(0,2)+String.fromCharCode(e)}}return n}(e,a),a.add(n.idPrefix)),/^\$/.test(e)||(i[`$${e}_mutations`]="++rev",n.markedForSync=!0),n.deleted&&(n.deleted=!1)):(n.deleted=!0,n.markedForSync=!1,i[`$${e}_mutations`]=null)}));const c=e.call(this,i,r);for(const[e,t]of Object.entries(r))if(null===(o=t.yProps)||void 0===o?void 0:o.length){const n=s[e];n&&(n.yProps=t.yProps.map((e=>e.prop)))}return c}}const Or=new t.BehaviorSubject(!0),Ar=new t.BehaviorSubject(!0);Or.pipe(Ce((e=>e?t.of(!0):t.of(!1).pipe(Ie(2e4)))),Ee()).subscribe(Ar);const Tr="undefined"!=typeof document?t.fromEvent(document,"visibilitychange"):t.of({}),jr=Tr.pipe(Ae((()=>"hidden"===document.visibilityState))),Cr=Tr.pipe(Ae((()=>"visible"===document.visibilityState))),Ur="undefined"!=typeof window?t.merge(Cr,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),jr,Ur).pipe(me((()=>"visible"===document.visibilityState)),Ue((e=>{Or.value!==e&&Or.next(e)})),Ce((e=>e?t.of(0).pipe(Ie(16e4),Ue((()=>Or.next(!1)))):t.of(0)))).subscribe((()=>{}));class Pr extends Error{constructor(){super(...arguments),this.name="TokenExpiredError"}}function $r(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 Dr=new WeakMap;class Lr extends t.Observable{constructor(e,t,n,r,o,i,s,a){super((c=>new Rr(e,t,n,r,s,a,c,o,i)))}}let Nr=0;class Rr extends t.Subscription{constructor(e,t,n,r,o,i,s,a,c){super((()=>this.teardown())),this.id=++Nr,this.subscriptions=new Set,this.reconnecting=!1,this.db=e,this.databaseUrl=e.cloud.options.databaseUrl,this.rev=t,this.realmSetHash=n,this.clientIdentity=r,this.token=o,this.tokenExpiration=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;if(this.tokenExpiration&&this.tokenExpiration<new Date)return void this.subscriber.error(new Pr);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 n=new URL(this.databaseUrl);n.protocol="http:"===n.protocol?"ws":"wss";const r=new URLSearchParams;if(this.subscriber.closed)return;r.set("v","2"),r.set("rev",this.rev),r.set("realmsHash",this.realmSetHash),r.set("clientId",this.clientIdentity),this.token&&r.set("token",this.token);const i=this.ws=new WebSocket(`${n}/changes?${r}`);i.binaryType="arraybuffer",i.onclose=e=>{this.pinger&&this.reconnect()},i.onmessage=t=>{if(this.pinger){this.lastServerActivity=new Date;try{const n="string"==typeof t.data?gn.parse(t.data):function(e){const t=new Ot(e),n=Ut(t),r=Ut(t),o=Ut(t);switch(n){case"u-ack":case"u-reject":return{type:n,table:r,prop:o,i:Number($t(t))};default:{const e=Lt(t);switch(n){case"in-sync":case"doc-close":return{type:n,table:r,prop:o,k:e};case"aware":case"u-s":return{type:n,table:r,prop:o,k:e,u:Tt(t)};case"doc-open":return{type:n,table:r,prop:o,k:e,serverRev:Lt(t),sv:Lt(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))};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("rev"===n.type)this.rev=n.rev;else if("aware"===n.type){const t=e.DexieYProvider.getDocCache(this.db.dx).find(n.table,n.k,n.prop);if(t){const e=(e=>Dr.get(e))(t);if(e){$r(this.db).applyAwarenessUpdate(e,n.u,"server")}}}else"u-ack"===n.type||"u-reject"===n.type||"u-s"===n.type||"in-sync"===n.type?Nn([n],this.db):"pong"!==n.type&&this.subscriber.next(n)}catch(e){this.subscriber.error(e)}}};try{let n=!1;yield new Promise(((e,t)=>{i.onopen=t=>{n=!0,e(null)},i.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?null===(t=this.ws)||void 0===t||t.send(gn.stringify(e)):null===(n=this.ws)||void 0===n||n.send(St(e)))}))),this.subscriptions.add(function(n){const r=Ve(n.tables.filter((e=>{var t;return(null===(t=n.cloud.schema)||void 0===t?void 0:t[e.name].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:t,ydocProp:r,updatesTable:i})=>{let s=1;return e.liveQuery((()=>o(this,void 0,void 0,(function*(){const e=n.table(i),o=yield e.where({i:Pn}).first().then((e=>(null==e?void 0:e.unsentFrom)||1));s=Math.max(s,o);const a=yield $n(e,s);return s=Math.max(s,...a.map((e=>e.i+1))),a.filter((e=>e.f&&1&e.f)).map((e=>({type:"u-c",table:t,prop:r,k:e.k,u:e.u,i:e.i})))}))))}))).pipe(t.mergeMap((e=>e)))}(this.db).subscribe(this.db.messageProducer))}catch(e){this.pauseUntil=new Date(Date.now()+6e4)}}))}}class Br extends Error{constructor(e){super("expired"===e?"License expired":"deactivated"===e?"User deactivated":"Invalid license"),this.name="InvalidLicenseError",e&&(this.license=e)}}function Mr(e){return o(this,void 0,void 0,(function*(){var e;yield(e=3e3,new Promise((t=>setTimeout(t,e)))),yield t.firstValueFrom(Ur)}))}function Fr(e){var t;return o(this,void 0,void 0,(function*(){return!(!(null===(t=e.cloud.options)||void 0===t?void 0:t.databaseUrl)||!e.cloud.schema)&&(yield Vn(e,e.cloud.options,e.cloud.schema,{justCheckIfNeeded:!0}))}))}const Wr=new WeakMap;function Vr(e,t,n,r){const i=Wr.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 Vr(e,t,n,r)}))}}const s=function(){return o(this,void 0,void 0,(function*(){try{if(yield In(e),e.cloud.isServiceWorkerDB)yield Vn(e,t,n,r);else{if(e.cloud.usingServiceWorker)throw ze(!1),new Error("Internal _syncIfPossible() - invalid precondition - should not have been called.");yield function(e,t,n){return"undefined"!=typeof navigator&&navigator.locks?navigator.locks.request(e.name+"|"+t,(()=>n())):n()}(e,Wn,(()=>Vn(e,t,n,r)))}Wr.delete(e)}catch(t){throw Wr.delete(e),t}}))}();return Wr.set(e,{promise:s,pull:"push"!==(null==r?void 0:r.purpose)}),s}const Kr=6e4;function Hr(e,t,n){let r=null,o={cancelled:!1},i=null,s=null;function a(r,l=1){setTimeout((()=>{i&&clearTimeout(i);const u="pull"===s?"pull":r;i=null,s=null,Vr(e,t,n,{cancelToken:o,retryImmediatelyOnFetchError:!0,purpose:u}).catch((e=>{if(o.cancelled)c();else if(l<3){const e=s&&"pull"===s?"pull":r,t=setTimeout((()=>a(e,l+1)),[0,5,15][l]*Kr);i&&clearTimeout(i),i=t,s=e}}))}),0)}const c=()=>{o.cancelled=!0,r&&r.unsubscribe()};return{start:()=>{r=e.localSyncEvent.subscribe((({purpose:e})=>{try{a(e||"pull")}catch(e){}}))},stop:c}}function zr(e,t){if(e&&t&&t.unsyncedTables)for(const n of t.unsyncedTables)e[n]&&(e[n].markedForSync=!1)}var qr,Jr,Gr,Yr,Qr,Xr={},Zr=[],eo=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function to(e,t){for(var n in t)e[n]=t[n];return e}function no(e){var t=e.parentNode;t&&t.removeChild(e)}function ro(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?qr.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 oo(e,s,r,o,null)}function oo(e,t,n,r,o){var i={type:e,props:t,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==o?++Gr:o};return null==o&&null!=Jr.vnode&&Jr.vnode(i),i}function io(e){return e.children}function so(e,t){this.props=e,this.context=t}function ao(e,t){if(null==t)return e.__?ao(e.__,e.__.__k.indexOf(e)+1):null;for(var n;t<e.__k.length;t++)if(null!=(n=e.__k[t])&&null!=n.__e)return n.__e;return"function"==typeof e.type?ao(e):null}function co(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 co(e)}}function lo(e){(!e.__d&&(e.__d=!0)&&Yr.push(e)&&!uo.__r++||Qr!==Jr.debounceRendering)&&((Qr=Jr.debounceRendering)||setTimeout)(uo)}function uo(){for(var e;uo.__r=Yr.length;)e=Yr.sort((function(e,t){return e.__v.__b-t.__v.__b})),Yr=[],e.some((function(e){var t,n,r,o,i,s;e.__d&&(i=(o=(t=e).__v).__e,(s=t.__P)&&(n=[],(r=to({},o)).__v=o.__v+1,go(s,o,r,t.__n,void 0!==s.ownerSVGElement,null!=o.__h?[i]:null,n,null==i?ao(o):i,o.__h),_o(n,o),o.__e!=i&&co(o)))}))}function fo(e,t,n,r,o,i,s,a,c,l){var u,d,f,p,h,y,v,m=r&&r.__k||Zr,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?oo(null,p,null,null,p):Array.isArray(p)?oo(io,{children:p},null,null,null):p.__b>0?oo(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}go(e,p,f=f||Xr,o,i,s,a,c,l),h=p.__e,(d=p.ref)&&f.ref!=d&&(v||(v=[]),f.ref&&v.push(f.ref,null,p),v.push(d,p.__c||h,p)),null!=h?(null==y&&(y=h),"function"==typeof p.type&&p.__k===f.__k?p.__d=c=po(p,c,e):c=ho(e,p,f,m,h,c),"function"==typeof n.type&&(n.__d=c)):c&&f.__e==c&&c.parentNode!=e&&(c=ao(f))}for(n.__e=y,u=b;u--;)null!=m[u]&&("function"==typeof n.type&&null!=m[u].__e&&m[u].__e==n.__d&&(n.__d=ao(r,u+1)),So(m[u],m[u]));if(v)for(u=0;u<v.length;u++)ko(v[u],v[++u],v[++u])}function po(e,t,n){for(var r,o=e.__k,i=0;o&&i<o.length;i++)(r=o[i])&&(r.__=e,t="function"==typeof r.type?po(r,t,n):ho(n,r,r,o,r.__e,t));return t}function ho(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 yo(e,t,n){"-"===t[0]?e.setProperty(t,n):e[t]=null==n?"":"number"!=typeof n||eo.test(t)?n:n+"px"}function vo(e,t,n,r,o){var i;e:if("style"===t)if("string"==typeof n)e.style.cssText=n;else{if("string"==typeof r&&(e.style.cssText=r=""),r)for(t in r)n&&t in n||yo(e.style,t,"");if(n)for(t in n)r&&n[t]===r[t]||yo(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?bo:mo,i):e.removeEventListener(t,i?bo:mo,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 mo(e){this.l[e.type+!1](Jr.event?Jr.event(e):e)}function bo(e){this.l[e.type+!0](Jr.event?Jr.event(e):e)}function go(e,t,n,r,o,i,s,a,c){var l,u,d,f,p,h,y,v,m,b,g,_,w,k=t.type;if(void 0!==t.constructor)return null;null!=n.__h&&(c=n.__h,a=t.__e=n.__e,t.__h=null,i=[a]),(l=Jr.__b)&&l(t);try{e:if("function"==typeof k){if(v=t.props,m=(l=k.contextType)&&r[l.__c],b=l?m?m.props.value:l.__:r,n.__c?y=(u=t.__c=n.__c).__=u.__E:("prototype"in k&&k.prototype.render?t.__c=u=new k(v,b):(t.__c=u=new so(v,b),u.constructor=k,u.render=xo),m&&m.sub(u),u.props=v,u.state||(u.state={}),u.context=b,u.__n=r,d=u.__d=!0,u.__h=[]),null==u.__s&&(u.__s=u.state),null!=k.getDerivedStateFromProps&&(u.__s==u.state&&(u.__s=to({},u.__s)),to(u.__s,k.getDerivedStateFromProps(v,u.__s))),f=u.props,p=u.state,d)null==k.getDerivedStateFromProps&&null!=u.componentWillMount&&u.componentWillMount(),null!=u.componentDidMount&&u.__h.push(u.componentDidMount);else{if(null==k.getDerivedStateFromProps&&v!==f&&null!=u.componentWillReceiveProps&&u.componentWillReceiveProps(v,b),!u.__e&&null!=u.shouldComponentUpdate&&!1===u.shouldComponentUpdate(v,u.__s,b)||t.__v===n.__v){u.props=v,u.state=u.__s,t.__v!==n.__v&&(u.__d=!1),u.__v=t,t.__e=n.__e,t.__k=n.__k,t.__k.forEach((function(e){e&&(e.__=t)})),u.__h.length&&s.push(u);break e}null!=u.componentWillUpdate&&u.componentWillUpdate(v,u.__s,b),null!=u.componentDidUpdate&&u.__h.push((function(){u.componentDidUpdate(f,p,h)}))}if(u.context=b,u.props=v,u.__v=t,u.__P=e,g=Jr.__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=to(to({},r),u.getChildContext())),d||null==u.getSnapshotBeforeUpdate||(h=u.getSnapshotBeforeUpdate(f,p)),w=null!=l&&l.type===io&&null==l.key?l.props.children:l,fo(e,Array.isArray(w)?w:[w],t,n,r,o,i,s,a,c),u.base=t.__e,t.__h=null,u.__h.length&&s.push(u),y&&(u.__E=u.__=null),u.__e=!1}else null==i&&t.__v===n.__v?(t.__k=n.__k,t.__e=n.__e):t.__e=wo(n.__e,t,n,r,o,i,s,c);(l=Jr.diffed)&&l(t)}catch(e){t.__v=null,(c||null!=i)&&(t.__e=a,t.__h=!!c,i[i.indexOf(a)]=null),Jr.__e(e,t,n)}}function _o(e,t){Jr.__c&&Jr.__c(t,e),e.some((function(t){try{e=t.__h,t.__h=[],e.some((function(e){e.call(t)}))}catch(e){Jr.__e(e,t.__v)}}))}function wo(e,t,n,r,o,i,s,a){var c,l,u,d=n.props,f=t.props,p=t.type,h=0;if("svg"===p&&(o=!0),null!=i)for(;h<i.length;h++)if((c=i[h])&&"setAttribute"in c==!!p&&(p?c.localName===p:3===c.nodeType)){e=c,i[h]=null;break}if(null==e){if(null===p)return document.createTextNode(f);e=o?document.createElementNS("http://www.w3.org/2000/svg",p):document.createElement(p,f.is&&f),i=null,a=!1}if(null===p)d===f||a&&e.data===f||(e.data=f);else{if(i=i&&qr.call(e.childNodes),l=(d=n.props||Xr).dangerouslySetInnerHTML,u=f.dangerouslySetInnerHTML,!a){if(null!=i)for(d={},h=0;h<e.attributes.length;h++)d[e.attributes[h].name]=e.attributes[h].value;(u||l)&&(u&&(l&&u.__html==l.__html||u.__html===e.innerHTML)||(e.innerHTML=u&&u.__html||""))}if(function(e,t,n,r,o){var i;for(i in n)"children"===i||"key"===i||i in t||vo(e,i,null,n[i],r);for(i in t)o&&"function"!=typeof t[i]||"children"===i||"key"===i||"value"===i||"checked"===i||n[i]===t[i]||vo(e,i,t[i],n[i],r)}(e,f,d,o,a),u)t.__k=[];else if(h=t.props.children,fo(e,Array.isArray(h)?h:[h],t,n,r,o&&"foreignObject"!==p,i,s,i?i[0]:n.__k&&ao(n,0),a),null!=i)for(h=i.length;h--;)null!=i[h]&&no(i[h]);a||("value"in f&&void 0!==(h=f.value)&&(h!==e.value||"progress"===p&&!h||"option"===p&&h!==d.value)&&vo(e,"value",h,d.value,!1),"checked"in f&&void 0!==(h=f.checked)&&h!==e.checked&&vo(e,"checked",h,d.checked,!1))}return e}function ko(e,t,n){try{"function"==typeof e?e(t):e.current=t}catch(e){Jr.__e(e,n)}}function So(e,t,n){var r,o;if(Jr.unmount&&Jr.unmount(e),(r=e.ref)&&(r.current&&r.current!==e.__e||ko(r,null,t)),null!=(r=e.__c)){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(e){Jr.__e(e,t)}r.base=r.__P=null}if(r=e.__k)for(o=0;o<r.length;o++)r[o]&&So(r[o],t,"function"!=typeof e.type);n||null==e.__e||no(e.__e),e.__e=e.__d=void 0}function xo(e,t,n){return this.constructor(e,n)}function Io(e,t,n){var r,o,i;Jr.__&&Jr.__(e,t),o=(r="function"==typeof n)?null:n&&n.__k||t.__k,i=[],go(t,e=(!r&&n||t).__k=ro(io,null,[e]),o||Xr,Xr,void 0!==t.ownerSVGElement,!r&&n?[n]:o?null:t.firstChild?qr.call(t.childNodes):null,i,!r&&n?n:o?o.__e:t.firstChild,r),_o(i,e)}qr=Zr.slice,Jr={__e:function(e,t,n,r){for(var o,i,s;t=t.__;)if((o=t.__c)&&!o.__)try{if((i=o.constructor)&&null!=i.getDerivedStateFromError&&(o.setState(i.getDerivedStateFromError(e)),s=o.__d),null!=o.componentDidCatch&&(o.componentDidCatch(e,r||{}),s=o.__d),s)return o.__E=o}catch(t){e=t}throw e}},Gr=0,so.prototype.setState=function(e,t){var n;n=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=to({},this.state),"function"==typeof e&&(e=e(to({},n),this.props)),e&&to(n,e),null!=e&&this.__v&&(t&&this.__h.push(t),lo(this))},so.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),lo(this))},so.prototype.render=io,Yr=[],uo.__r=0;const Eo={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 Oo({children:e,className:t}){return ro("div",{className:t},ro("div",{style:Eo.Darken}),ro("div",{style:Eo.DialogOuter},ro("div",{style:Eo.DialogInner},e)))}var Ao,To,jo,Co,Uo=0,Po=[],$o=[],Do=Jr.__b,Lo=Jr.__r,No=Jr.diffed,Ro=Jr.__c,Bo=Jr.unmount;function Mo(e,t){Jr.__h&&Jr.__h(To,e,Uo||t),Uo=0;var n=To.__H||(To.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({__V:$o}),n.__[e]}function Fo(e){return Uo=1,function(e,t,n){var r=Mo(Ao++,2);if(r.t=e,!r.__c&&(r.__=[n?n(t):Jo(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=To,!To.u)){To.u=!0;var o=To.shouldComponentUpdate;To.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.__}(Jo,e)}function Wo(e){return Uo=5,function(e,t){var n=Mo(Ao++,7);return qo(n.__H,t)?(n.__V=e(),n.i=t,n.__h=e,n.__V):n.__}((function(){return{current:e}}),[])}function Vo(){for(var e;e=Po.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(Ho),e.__H.__h.forEach(zo),e.__H.__h=[]}catch(t){e.__H.__h=[],Jr.__e(t,e.__v)}}Jr.__b=function(e){To=null,Do&&Do(e)},Jr.__r=function(e){Lo&&Lo(e),Ao=0;var t=(To=e.__c).__H;t&&(jo===To?(t.__h=[],To.__h=[],t.__.forEach((function(e){e.__N&&(e.__=e.__N),e.__V=$o,e.__N=e.i=void 0}))):(t.__h.forEach(Ho),t.__h.forEach(zo),t.__h=[])),jo=To},Jr.diffed=function(e){No&&No(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(1!==Po.push(t)&&Co===Jr.requestAnimationFrame||((Co=Jr.requestAnimationFrame)||function(e){var t,n=function(){clearTimeout(r),Ko&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,100);Ko&&(t=requestAnimationFrame(n))})(Vo)),t.__H.__.forEach((function(e){e.i&&(e.__H=e.i),e.__V!==$o&&(e.__=e.__V),e.i=void 0,e.__V=$o}))),jo=To=null},Jr.__c=function(e,t){t.some((function(e){try{e.__h.forEach(Ho),e.__h=e.__h.filter((function(e){return!e.__||zo(e)}))}catch(n){t.some((function(e){e.__h&&(e.__h=[])})),t=[],Jr.__e(n,e.__v)}})),Ro&&Ro(e,t)},Jr.unmount=function(e){Bo&&Bo(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.forEach((function(e){try{Ho(e)}catch(e){t=e}})),t&&Jr.__e(t,n.__v))};var Ko="function"==typeof requestAnimationFrame;function Ho(e){var t=To,n=e.__c;"function"==typeof n&&(e.__c=void 0,n()),To=t}function zo(e){var t=To;e.__c=e.__(),To=t}function qo(e,t){return!e||e.length!==t.length||t.some((function(t,n){return t!==e[n]}))}function Jo(e,t){return"function"==typeof t?t(e):t}function Go({title:e,type:t,alerts:n,fields:r,submitLabel:o,cancelLabel:i,onCancel:s,onSubmit:a}){const[c,l]=Fo({}),u=Wo(null);return function(e,t){var n=Mo(Ao++,4);!Jr.__s&&qo(n.__H,t)&&(n.__=e,n.i=t,To.__h.push(n))}((()=>{var e;return null===(e=u.current)||void 0===e?void 0:e.focus()}),[]),ro(Oo,{className:"dxc-login-dlg"},ro(io,null,ro("h3",{style:Eo.WindowHeader},e),n.map((e=>ro("p",{style:Eo.Alert[e.type]},function({message:e,messageCode:t,messageParams:n}){return e.replace(/\{\w+\}/gi,(e=>n[e.substring(1,e.length-1)]))}(e)))),ro("form",{onSubmit:e=>{e.preventDefault(),a(c)}},Object.entries(r).map((([e,{type:t,label:n,placeholder:r}],o)=>ro("label",{style:Eo.Label,key:o},n?`${n}: `:"",ro("input",{ref:0===o?u:void 0,type:t,name:e,autoComplete:"on",style:Eo.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)}})))))),ro("div",{style:Eo.ButtonsDiv},ro(io,null,ro("button",{type:"submit",style:Eo.Button,onClick:()=>a(c)},o),i&&ro("button",{style:Eo.Button,onClick:s},i))))}class Yo extends so{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?ro(Go,Object.assign({},t)):null}}function Qo(e){const t=new WeakMap;return n=>{let r=t.get(n);return r||(r=e(n),t.set(n,r)),r}}const Xo=Qo((e=>new t.BehaviorSubject(f)));function Zo(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 ei=Qo((t=>Zo(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})))),{}))),ti=Qo((t=>Zo(Xo(t._novip).pipe(Ce((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 ni(...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 ri=Qo((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}(Zo(t.combineLatest([ti(e._novip),ei(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=Ve(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:"*"}:ni(...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 oi{constructor(e,t,n){this.permissions=e||{},this.tableName=t,this.isOwner=n}add(...e){var t;return"*"===this.permissions.manage||(!!(null===(t=this.permissions.manage)||void 0===t?void 0:t.includes(this.tableName))||("*"===this.permissions.add||!!e.every((e=>{var t;return null===(t=this.permissions.add)||void 0===t?void 0:t.includes(e)}))))}update(...e){var t,n;if(this.isOwner||"*"===this.permissions.manage)return!0;if(null===(t=this.permissions.manage)||void 0===t?void 0:t.includes(this.tableName))return!0;if("*"===this.permissions.update)return e.every((e=>"owner"!==e));const r=null===(n=this.permissions.update)||void 0===n?void 0:n[this.tableName];return"*"===r?e.every((e=>"owner"!==e)):e.every((e=>null==r?void 0:r.some((t=>t===e||"*"===t&&"owner"!==e))))}delete(){var e;return!(!this.isOwner&&"*"!==this.permissions.manage)||!!(null===(e=this.permissions.manage)||void 0===e?void 0:e.includes(this.tableName))}}const ii=Qo((n=>{const r=Xo(n._novip).pipe(Ce((t=>e.liveQuery((()=>n.members.where({email:t.email||""}).toArray()))))),i=ri(n._novip),s=ti(n._novip);return Zo(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 si(t){const n=$r(t);return r=>{var i;const s=r.doc,{parentTable:a,parentId:c,parentProp:l,updatesTable:u}=s.meta;if(!(null===(i=t.cloud.schema)||void 0===i?void 0:i[a].markedForSync))return;let d=new n.Awareness(s);Dr.set(s,d),r.awareness=d,d.on("update",(({added:e,updated:o,removed:i},c)=>{const u=e.concat(o).concat(i);if("server"!==c){const e=n.encodeAwarenessUpdate(d,u);t.messageProducer.next({type:"aware",table:a,prop:l,k:s.meta.parentId,u:e}),r.destroyed&&t.messageProducer.next({type:"doc-close",table:a,prop:l,k:s.meta.parentId})}})),d.on("destroy",(()=>{n.removeAwarenessStates(d,[s.clientID],"provider destroyed")})),r.on("load",(()=>o(this,void 0,void 0,(function*(){if(r.destroyed)return;let n=!1,i=1;const s=t.cloud.webSocketStatus.subscribe((s=>{r.destroyed||(n="connected"===s,"connected"===s&&(++i,function(s){return o(this,void 0,void 0,(function*(){const o=i,s=t.table(u),d=yield s.get(Pn);if(r.destroyed||i!==o||!n)return;const f=(null==d?void 0:d.receivedUntil)||0,p={type:"doc-open",table:a,prop:l,k:c,serverRev:null==d?void 0:d.serverRev},h=yield s.where("i").between(f,1/0,!1).filter((t=>0===e.cmp(t.k,c)&&0==(1&(t.f||0)))).toArray();if(!r.destroyed&&i===o&&n){if(h.length>0){const e=Dn(t),n=e.mergeUpdatesV2(h.map((e=>e.u))),r=e.encodeStateVectorFromUpdateV2(n);p.sv=r}t.messageProducer.next(p)}}))}().catch((e=>{}))))}));r.addCleanupHandler(s)}))))}}const ai={nameSuffix:!0};function ci(n){const r=n.name,i=Xo(n),s=[];let a=!1,c=null;n.on("ready",(n=>o(this,void 0,void 0,(function*(){try{yield function(n){var r,f,p,h,y,v,m;return o(this,void 0,void 0,(function*(){l=!1;const b=Zn(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),Io(ro(Yo,{db:e.vip}),n)):addEventListener("DOMContentLoaded",(()=>{t||(document.body.appendChild(n),Io(ro(Yo,{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(Ce((e=>{const r=n;n=e;const o=t.of(e);switch(e){case"disconnected":return Or.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(je({phase:"initial"})),Xo(e.dx._novip),Ar]).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:An?l:"offline",license:"ok"}})))}(b).subscribe(n.cloud.syncState)),s.push(b.syncCompleteEvent.subscribe(d)),b.tables.every((e=>e.core))||fr();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&&!ur?b.cloud.usingServiceWorker=!0:((null===(t=b.cloud.options)||void 0===t?void 0:t.tryUseServiceWorker)&&b.cloud.isServiceWorkerDB,b.cloud.usingServiceWorker=!1),zr(r,b.cloud.options),zr(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),(null===(f=b.cloud.options)||void 0===f?void 0:f.databaseUrl)&&!_&&(yield function(e,t,n){return o(this,void 0,void 0,(function*(){yield Vn(e,t,n,{isInitialSync:!0})}))}(b,b.cloud.options,b.cloud.schema),b.setInitiallySynced(!0)),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(Te(1),Se(1)),b.cloud.persistedSyncState.pipe(Te(1),Se(1))]));const n=si(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===(p=b.cloud.options)||void 0===p?void 0:p.requireAuth;x&&("object"==typeof x?(!S.isLoggedIn||x.userId&&S.userId!==x.userId||x.email&&S.email!==x.email)&&(k=yield sr(b,x)):S.isLoggedIn||(k=yield sr(b))),!S.isLoggedIn||w&&w.includes(S.userId)||(k=!0),c&&c.stop(),c=null,u(),b.cloud.usingServiceWorker&&(null===(h=b.cloud.options)||void 0===h?void 0:h.databaseUrl)?($e(b,k?"pull":"push").catch((()=>{})),function(e){var t;return o(this,void 0,void 0,(function*(){try{const{periodicSync:n}=yield navigator.serviceWorker.ready;if(n)try{yield n.register(`dexie-cloud:${e.name}`,null===(t=e.cloud.options)||void 0===t?void 0:t.periodicSync)}catch(e){}}catch(e){}}))}(b).catch((()=>{}))):(null===(y=b.cloud.options)||void 0===y?void 0:y.databaseUrl)&&b.cloud.schema&&!b.cloud.isServiceWorkerDB&&(c=Hr(b,b.cloud.options,b.cloud.schema),c.start(),De(b,k?"pull":"push")),u(),b.cloud.isServiceWorkerDB||s.push(t.fromEvent(self,"online").subscribe((()=>{b.syncStateChangedEvent.next({phase:"not-in-sync"}),xr(b)||De(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)||dr||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)),Ce((()=>e.getPersistedSyncState())),Ae((e=>e&&e.serverRevision)),Ce((e=>o(this,void 0,void 0,(function*(){return{type:"ready",rev:e.serverRevision,realmSetHash:yield Re(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),Ce((t=>e.cloud.currentUser.pipe(me((e=>[e,t]))))),Ce((([e,t])=>Ar.pipe(me((n=>[n?e:null,t]))))),Ce((([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]))),Ce((([e,t])=>o(this,void 0,void 0,(function*(){return[e,yield Re(t)]})))),Ee((([e,t],[n,r])=>e===n&&t===r)),Ce((([r,o])=>{var s;return(null===(s=e.cloud.persistedSyncState)||void 0===s?void 0:s.value)?r?new Lr(e,e.cloud.persistedSyncState.value.serverRevision,o,e.cloud.persistedSyncState.value.clientIdentity,i,e.cloud.webSocketStatus,r.accessToken,r.accessTokenExpiration):t.from([]):n()})),fe((r=>"TokenExpiredError"===(null==r?void 0:r.name)?t.of(!0).pipe(Ce((()=>o(this,void 0,void 0,(function*(){const t=yield e.getCurrentUser(),n=yield Ht(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})})))),Ce((()=>n()))):t.throwError((()=>r)))),fe((r=>(e.cloud.webSocketStatus.next("error"),r instanceof Br?t.throwError((()=>r)):t.from(Mr()).pipe(Ce((()=>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-alpha.2",options:Object.assign({},ai),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=Zn(n);yield t.cloud.sync(),yield sr(t,e)}))},invites:ii(n),roles:ei(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)}`,Zn(n).reconfigure()),zr(n.cloud.schema,n.cloud.options)},logout({force:e}={}){return o(this,void 0,void 0,(function*(){e?yield or(Zn(n),{deleteUnsyncedData:!0}):yield rr(Zn(n))}))},sync({wait:r,purpose:i}={wait:!0,purpose:"push"}){var s;return o(this,void 0,void 0,(function*(){void 0===r&&(r=!0);const a=Zn(n);if("ok"!==((null===(s=a.cloud.currentUser.value.license)||void 0===s?void 0:s.status)||"ok")&&(yield Vt(a)),"pull"===i){const e=a.cloud.persistedSyncState.value;if(De(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 Fr(a)){const n=a.cloud.persistedSyncState.value;De(a,i),r&&(yield t.firstValueFrom(t.from(e.liveQuery((()=>o(this,void 0,void 0,(function*(){const e=yield Fr(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=ri(e),s=t=>{const i=t[o||e.cloud.currentUserId];return i?new oi(i.permissions,n,void 0===o||o===e.cloud.currentUserId||r===e.cloud.currentUserId):new oi({},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=>Er(e,n))),n.Table.prototype.newId=function({colocateWith:e}={}){const t=e&&e.substr(e.length-3);return br(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(Ir({currentUserObservable:n.cloud.currentUser,db:Zn(n)})),n.use((p=Zn(n),{stack:"dbcore",name:"implicitPropSetterMiddleware",level:1,create:t=>Object.assign(Object.assign({},t),{table:n=>{const r=t.table(n);return Object.assign(Object.assign({},r),{mutate:t=>{var o,i,s,a;if(t.trans.disableChangeTracking)return r.mutate(t);const c=t.trans;if(null===(i=null===(o=p.cloud.schema)||void 0===o?void 0:o[n])||void 0===i?void 0:i.markedForSync){if("versionchange"===c.mode)return Promise.reject(new e.UpgradeError(`Dexie Cloud Addon: Cannot upgrade or populate synced table "${n}". See https://dexie.org/cloud/docs/best-practices`));if("add"===t.type||"put"===t.type){if("members"===n)for(const e of t.values)"string"==typeof e.email&&(e.email=e.email.trim().toLowerCase());for(const e of t.values){e.owner||(e.owner=c.currentUser.userId),e.realmId||(e.realmId=c.currentUser.userId);const n=null===(a=(s=r.schema.primaryKey).extractKey)||void 0===a?void 0:a.call(s,e);"string"==typeof n&&"#"===n[0]&&"put"===t.type&&(delete t.criteria,delete t.changeSpec,delete t.updates,e.$ts=Date.now())}}}return r.mutate(t)}})}})})),n.use(gr(Zn(n)))}ci.version="4.1.0-alpha.2",e.Cloud=ci;const li=new Map;function ui(e){return e.startsWith("dexie-cloud:")&&e.split(":")[1]}const di=new Map;function fi(t,n){let r=di.get(t+"/"+n);return r||(r=function t(n,r){var i;return o(this,void 0,void 0,(function*(){let o=li.get(n);if(!o){const i=new e(n,{addons:[ci]});if(o=Zn(i),o.cloud.isServiceWorkerDB=!0,i.on("versionchange",s),yield o.dx.open(),li.get(n))return o.close(),yield t(n,r);li.set(n,o)}if((null===(i=o.cloud.options)||void 0===i?void 0:i.databaseUrl)&&o.cloud.schema)try{yield Vr(o,o.cloud.options,o.cloud.schema,{retryImmediatelyOnFetchError:!0,purpose:r})}catch(t){if(s(),t.name!==e.errnames.NoSuchDatabase)throw t}function s(){return o.dx.on.versionchange.unsubscribe(s),li.get(o.name)===o&&li.delete(o.name),o.dx.close(),!1}}))}(t,n).then((()=>{di.delete(t+"/"+n)})).catch((e=>(di.delete(t+"/"+n),Promise.reject(e)))),di.set(t+"/"+n,r)),r}ur||(self.addEventListener("sync",(e=>{const t=ui(e.tag);t&&e.waitUntil(fi(t,"push"))})),self.addEventListener("periodicsync",(e=>{const t=ui(e.tag);t&&e.waitUntil(fi(t,"pull"))})),self.addEventListener("message",(e=>{if("dexie-cloud-sync"===e.data.type){const{dbName:t}=e.data,n=(r=1)=>fi(t,e.data.purpose||"pull").catch((e=>o(void 0,void 0,void 0,(function*(){if(3===r)throw e;var t;yield(t=6e4,new Promise((e=>setTimeout(e,t)))),n(r+1)}))));"waitUntil"in e?e.waitUntil(n().catch((e=>{}))):n().catch((e=>{}))}})))}));
2
2
  //# sourceMappingURL=service-worker.min.js.map