dexie-cloud-addon 1.0.0-alpha.6 → 1.0.0-beta.11

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 (138) hide show
  1. package/copydts.sh +5 -0
  2. package/dist/modern/dexie-cloud-addon.js +5954 -0
  3. package/dist/modern/dexie-cloud-addon.js.map +1 -0
  4. package/dist/modern/dexie-cloud-addon.min.js +1 -0
  5. package/dist/modern/dexie-cloud-addon.min.js.map +1 -0
  6. package/dist/modern/service-worker.js +6054 -0
  7. package/dist/modern/service-worker.js.map +1 -0
  8. package/dist/modern/service-worker.min.js +1 -0
  9. package/dist/modern/service-worker.min.js.map +1 -0
  10. package/dist/module-es5/dexie-cloud-addon.js +6908 -0
  11. package/dist/module-es5/dexie-cloud-addon.js.map +1 -0
  12. package/dist/module-es5/dexie-cloud-addon.min.js +1 -0
  13. package/dist/module-es5/dexie-cloud-addon.min.js.map +1 -0
  14. package/dist/types/DISABLE_SERVICEWORKER_STRATEGY.d.ts +1 -0
  15. package/dist/types/DXCWebSocketStatus.d.ts +1 -0
  16. package/dist/types/DexieCloudOptions.d.ts +19 -0
  17. package/dist/types/DexieCloudServerState.d.ts +5 -0
  18. package/dist/types/TSON.d.ts +17 -0
  19. package/dist/types/WSObservable.d.ts +62 -0
  20. package/dist/types/WebSocketStatus.d.ts +1 -0
  21. package/dist/types/authentication/AuthPersistedContext.d.ts +9 -0
  22. package/dist/types/authentication/TokenExpiredError.d.ts +3 -0
  23. package/dist/types/authentication/UNAUTHORIZED_USER.d.ts +2 -0
  24. package/dist/types/authentication/authenticate.d.ts +20 -0
  25. package/dist/types/authentication/currentUserObservable.d.ts +1 -0
  26. package/dist/types/authentication/interactWithUser.d.ts +18 -0
  27. package/dist/types/authentication/login.d.ts +6 -0
  28. package/dist/types/authentication/otpFetchTokenCallback.d.ts +3 -0
  29. package/dist/types/authentication/setCurrentUser.d.ts +14 -0
  30. package/dist/types/computeSyncState.d.ts +4 -0
  31. package/dist/types/db/DexieCloudDB.d.ts +58 -0
  32. package/dist/types/db/entities/BaseRevisionMapEntry.d.ts +5 -0
  33. package/dist/types/db/entities/EntityCommon.d.ts +4 -0
  34. package/dist/types/db/entities/GuardedJob.d.ts +5 -0
  35. package/dist/types/db/entities/Member.d.ts +19 -0
  36. package/dist/types/db/entities/PersistedSyncState.d.ts +14 -0
  37. package/dist/types/db/entities/Realm.d.ts +16 -0
  38. package/dist/types/db/entities/Role.d.ts +11 -0
  39. package/dist/types/db/entities/UserLogin.d.ts +18 -0
  40. package/dist/types/default-ui/Dialog.d.ts +4 -0
  41. package/dist/types/default-ui/LoginDialog.d.ts +6 -0
  42. package/dist/types/default-ui/Styles.d.ts +3 -0
  43. package/dist/types/default-ui/index.d.ts +24 -0
  44. package/dist/types/dexie-cloud-client.d.ts +8 -0
  45. package/dist/types/errors/HttpError.d.ts +5 -0
  46. package/dist/types/extend-dexie-interface.d.ts +59 -0
  47. package/dist/types/helpers/BroadcastedAndLocalEvent.d.ts +8 -0
  48. package/dist/types/helpers/BroadcastedLocalEvent.d.ts +8 -0
  49. package/dist/types/helpers/CancelToken.d.ts +4 -0
  50. package/dist/types/helpers/IS_SERVICE_WORKER.d.ts +1 -0
  51. package/dist/types/helpers/SWBroadcastChannel.d.ts +6 -0
  52. package/dist/types/helpers/allSettled.d.ts +1 -0
  53. package/dist/types/helpers/bulkUpdate.d.ts +4 -0
  54. package/dist/types/helpers/computeRealmSetHash.d.ts +2 -0
  55. package/dist/types/helpers/date-constants.d.ts +5 -0
  56. package/dist/types/helpers/dbOnClosed.d.ts +2 -0
  57. package/dist/types/helpers/getMutationTable.d.ts +1 -0
  58. package/dist/types/helpers/getSyncableTables.d.ts +4 -0
  59. package/dist/types/helpers/getTableFromMutationTable.d.ts +1 -0
  60. package/dist/types/helpers/makeArray.d.ts +1 -0
  61. package/dist/types/helpers/randomString.d.ts +1 -0
  62. package/dist/types/helpers/resolveText.d.ts +2 -0
  63. package/dist/types/helpers/throwVersionIncrementNeeded.d.ts +1 -0
  64. package/dist/types/helpers/visibilityState.d.ts +1 -0
  65. package/dist/types/helpers/visibleState.d.ts +1 -0
  66. package/dist/types/isFirefox.d.ts +1 -0
  67. package/dist/types/isSafari.d.ts +2 -0
  68. package/dist/types/middleware-helpers/guardedTable.d.ts +11 -0
  69. package/dist/types/middlewares/createIdGenerationMiddleware.d.ts +8 -0
  70. package/dist/types/middlewares/createImplicitPropSetterMiddleware.d.ts +3 -0
  71. package/dist/types/middlewares/createMutationTrackingMiddleware.d.ts +17 -0
  72. package/dist/types/middlewares/outstandingTransaction.d.ts +4 -0
  73. package/dist/types/overrideParseStoresSpec.d.ts +4 -0
  74. package/dist/types/performInitialSync.d.ts +4 -0
  75. package/dist/types/service-worker.d.ts +1 -0
  76. package/dist/types/sync/LocalSyncWorker.d.ts +7 -0
  77. package/dist/types/sync/SyncRequiredError.d.ts +3 -0
  78. package/dist/types/sync/connectWebSocket.d.ts +2 -0
  79. package/dist/types/sync/extractRealm.d.ts +2 -0
  80. package/dist/types/sync/getLatestRevisionsPerTable.d.ts +6 -0
  81. package/dist/types/sync/getTablesToSyncify.d.ts +3 -0
  82. package/dist/types/sync/isOnline.d.ts +1 -0
  83. package/dist/types/sync/isSyncNeeded.d.ts +2 -0
  84. package/dist/types/sync/listClientChanges.d.ts +9 -0
  85. package/dist/types/sync/listSyncifiedChanges.d.ts +5 -0
  86. package/dist/types/sync/messageConsumerIsReady.d.ts +2 -0
  87. package/dist/types/sync/messagesFromServerQueue.d.ts +8 -0
  88. package/dist/types/sync/modifyLocalObjectsWithNewUserId.d.ts +4 -0
  89. package/dist/types/sync/myId.d.ts +1 -0
  90. package/dist/types/sync/numUnsyncedMutations.d.ts +2 -0
  91. package/dist/types/sync/old_startSyncingClientChanges.d.ts +39 -0
  92. package/dist/types/sync/performGuardedJob.d.ts +4 -0
  93. package/dist/types/sync/registerSyncEvent.d.ts +3 -0
  94. package/dist/types/sync/sync.d.ts +17 -0
  95. package/dist/types/sync/syncIfPossible.d.ts +5 -0
  96. package/dist/types/sync/syncServerToClientOnly.d.ts +3 -0
  97. package/dist/types/sync/syncWithServer.d.ts +5 -0
  98. package/dist/types/sync/triggerSync.d.ts +2 -0
  99. package/dist/types/sync/updateBaseRevs.d.ts +5 -0
  100. package/dist/types/types/CloudConnectionStatus.d.ts +0 -0
  101. package/dist/types/types/ConnectionStatus.d.ts +0 -0
  102. package/dist/types/types/DXCAlert.d.ts +25 -0
  103. package/dist/types/types/DXCInputField.d.ts +11 -0
  104. package/dist/types/types/DXCUserInteraction.d.ts +55 -0
  105. package/dist/types/types/LoginState.d.ts +41 -0
  106. package/dist/types/types/SWMessageEvent.d.ts +3 -0
  107. package/dist/types/types/SWSyncEvent.d.ts +4 -0
  108. package/dist/types/types/SyncConnectionStatus.d.ts +1 -0
  109. package/dist/types/types/SyncFlowStatus.d.ts +6 -0
  110. package/dist/types/types/SyncState.d.ts +8 -0
  111. package/dist/types/types/SyncStatus.d.ts +6 -0
  112. package/dist/types/types/TXExpandos.d.ts +10 -0
  113. package/dist/types/updateSchemaFromOptions.d.ts +3 -0
  114. package/dist/types/userIsActive.d.ts +7 -0
  115. package/dist/types/verifyConfig.d.ts +2 -0
  116. package/dist/types/verifySchema.d.ts +2 -0
  117. package/dist/umd/dexie-cloud-addon.js +6919 -0
  118. package/dist/umd/dexie-cloud-addon.js.map +1 -0
  119. package/dist/umd/dexie-cloud-addon.min.js +1 -0
  120. package/dist/umd/dexie-cloud-addon.min.js.map +1 -0
  121. package/dist/umd/service-worker.js +6063 -0
  122. package/dist/umd/service-worker.js.map +1 -0
  123. package/dist/umd/service-worker.min.js +1 -0
  124. package/dist/umd/service-worker.min.js.map +1 -0
  125. package/dist/umd-modern/dexie-cloud-addon.js +5965 -0
  126. package/dist/umd-modern/dexie-cloud-addon.js.map +1 -0
  127. package/package.json +71 -39
  128. package/dist/dexie-cloud.d.ts +0 -27
  129. package/dist/dexie-cloud.js +0 -285
  130. package/dist/dexie-cloud.js.map +0 -1
  131. package/dist/dexie-cloud.min.js +0 -1
  132. package/dist/dexie-cloud.min.js.map +0 -1
  133. package/dist/dexie-cloud.mjs +0 -273
  134. package/dist/dexie-cloud.mjs.map +0 -1
  135. package/esnext/dexie-cloud.js +0 -278
  136. package/esnext/dexie-cloud.js.map +0 -1
  137. package/esnext/dexie-cloud.min.js +0 -1
  138. package/esnext/dexie-cloud.min.js.map +0 -1
@@ -0,0 +1 @@
1
+ import e,{liveQuery as t}from"dexie";import{Observable as n,BehaviorSubject as r,Subject as o,from as i,fromEvent as s,of as a,merge as c,Subscription as u,throwError as l,combineLatest as d}from"rxjs";const h=crypto.getRandomValues;function f(e,t,n){if(e&&void 0!==t&&(!("isFrozen"in Object)||!Object.isFrozen(e)))if("string"!=typeof t&&"length"in t){!function(e){if(!e)throw new Error("Assertion Failed")}("string"!=typeof n&&"length"in n);for(var r=0,o=t.length;r<o;++r)f(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||(c=e[s]={}),f(c,a,n)}}else void 0===n?Array.isArray(e)&&!isNaN(parseInt(t))?e.splice(t,1):delete e[t]:e[t]=n}}const p="undefined"==typeof self?e=>{const t=Buffer.alloc(e);return h(t),t.toString("base64")}:e=>{const t=new Uint8Array(e);return crypto.getRandomValues(t),btoa(String.fromCharCode.apply(null,t))};function y(e){return"string"==typeof e||!!(Array.isArray(e)&&e.some((e=>y(e)))&&e.every(b))}function b(e){return"string"==typeof e||"number"==typeof e||Array.isArray(e)&&e.every(b)}function v(e,t,n){const r=e[t]||(e[t]={});switch(n.type){case"insert":case"upsert":n.keys.forEach(((e,t)=>{r[e]={type:"ups",val:n.values[t]}}));break;case"update":case"modify":n.keys.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))f(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":n.keys.forEach((e=>{r[e]={type:"del"}}))}return e}function m(e,t){for(const{table:n,muts:r}of t)for(const t of r)v(e,n,t)}var g=function(e,t){return(g=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};function _(e,t){function n(){this.constructor=e}g(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}function w(e){return"function"==typeof e}var S=!1,k={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){e&&(new Error).stack;S=e},get useDeprecatedSynchronousErrorHandling(){return S}};function x(e){setTimeout((function(){throw e}),0)}var E={closed:!0,next:function(e){},error:function(e){if(k.useDeprecatedSynchronousErrorHandling)throw e;x(e)},complete:function(){}},I=function(){return Array.isArray||function(e){return e&&"number"==typeof e.length}}();function T(e){return null!==e&&"object"==typeof e}var C=function(){function e(e){return Error.call(this),this.message=e?e.length+" errors occurred during unsubscription:\n"+e.map((function(e,t){return t+1+") "+e.toString()})).join("\n "):"",this.name="UnsubscriptionError",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e}(),A=function(){function e(e){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,e&&(this._ctorUnsubscribe=!0,this._unsubscribe=e)}return e.prototype.unsubscribe=function(){var t;if(!this.closed){var n=this,r=n._parentOrParents,o=n._ctorUnsubscribe,i=n._unsubscribe,s=n._subscriptions;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,r instanceof e)r.remove(this);else if(null!==r)for(var a=0;a<r.length;++a){r[a].remove(this)}if(w(i)){o&&(this._unsubscribe=void 0);try{i.call(this)}catch(e){t=e instanceof C?P(e.errors):[e]}}if(I(s)){a=-1;for(var c=s.length;++a<c;){var u=s[a];if(T(u))try{u.unsubscribe()}catch(e){t=t||[],e instanceof C?t=t.concat(P(e.errors)):t.push(e)}}}if(t)throw new C(t)}},e.prototype.add=function(t){var n=t;if(!t)return e.EMPTY;switch(typeof t){case"function":n=new e(t);case"object":if(n===this||n.closed||"function"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof e)){var r=n;(n=new e)._subscriptions=[r]}break;default:throw new Error("unrecognized teardown "+t+" added to Subscription.")}var o=n._parentOrParents;if(null===o)n._parentOrParents=this;else if(o instanceof e){if(o===this)return n;n._parentOrParents=[o,this]}else{if(-1!==o.indexOf(this))return n;o.push(this)}var i=this._subscriptions;return null===i?this._subscriptions=[n]:i.push(n),n},e.prototype.remove=function(e){var t=this._subscriptions;if(t){var n=t.indexOf(e);-1!==n&&t.splice(n,1)}},e.EMPTY=function(e){return e.closed=!0,e}(new e),e}();function P(e){return e.reduce((function(e,t){return e.concat(t instanceof C?t.errors:t)}),[])}var O=function(){return"function"==typeof Symbol?Symbol("rxSubscriber"):"@@rxSubscriber_"+Math.random()}(),U=function(e){function t(n,r,o){var i=e.call(this)||this;switch(i.syncErrorValue=null,i.syncErrorThrown=!1,i.syncErrorThrowable=!1,i.isStopped=!1,arguments.length){case 0:i.destination=E;break;case 1:if(!n){i.destination=E;break}if("object"==typeof n){n instanceof t?(i.syncErrorThrowable=n.syncErrorThrowable,i.destination=n,n.add(i)):(i.syncErrorThrowable=!0,i.destination=new $(i,n));break}default:i.syncErrorThrowable=!0,i.destination=new $(i,n,r,o)}return i}return _(t,e),t.prototype[O]=function(){return this},t.create=function(e,n,r){var o=new t(e,n,r);return o.syncErrorThrowable=!1,o},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))},t.prototype._next=function(e){this.destination.next(e)},t.prototype._error=function(e){this.destination.error(e),this.unsubscribe()},t.prototype._complete=function(){this.destination.complete(),this.unsubscribe()},t.prototype._unsubscribeAndRecycle=function(){var e=this._parentOrParents;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this},t}(A),$=function(e){function t(t,n,r,o){var i,s=e.call(this)||this;s._parentSubscriber=t;var a=s;return w(n)?i=n:n&&(i=n.next,r=n.error,o=n.complete,n!==E&&(w((a=Object.create(n)).unsubscribe)&&s.add(a.unsubscribe.bind(a)),a.unsubscribe=s.unsubscribe.bind(s))),s._context=a,s._next=i,s._error=r,s._complete=o,s}return _(t,e),t.prototype.next=function(e){if(!this.isStopped&&this._next){var t=this._parentSubscriber;k.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}},t.prototype.error=function(e){if(!this.isStopped){var t=this._parentSubscriber,n=k.useDeprecatedSynchronousErrorHandling;if(this._error)n&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)n?(t.syncErrorValue=e,t.syncErrorThrown=!0):x(e),this.unsubscribe();else{if(this.unsubscribe(),n)throw e;x(e)}}},t.prototype.complete=function(){var e=this;if(!this.isStopped){var t=this._parentSubscriber;if(this._complete){var n=function(){return e._complete.call(e._context)};k.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?(this.__tryOrSetError(t,n),this.unsubscribe()):(this.__tryOrUnsub(n),this.unsubscribe())}else this.unsubscribe()}},t.prototype.__tryOrUnsub=function(e,t){try{e.call(this._context,t)}catch(e){if(this.unsubscribe(),k.useDeprecatedSynchronousErrorHandling)throw e;x(e)}},t.prototype.__tryOrSetError=function(e,t,n){if(!k.useDeprecatedSynchronousErrorHandling)throw new Error("bad call");try{t.call(this._context,n)}catch(t){return k.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=t,e.syncErrorThrown=!0,!0):(x(t),!0)}return!1},t.prototype._unsubscribe=function(){var e=this._parentSubscriber;this._context=null,this._parentSubscriber=null,e.unsubscribe()},t}(U);var D=function(){return"function"==typeof Symbol&&Symbol.observable||"@@observable"}();function N(e){return e}function R(e){return 0===e.length?N:1===e.length?e[0]:function(t){return e.reduce((function(e,t){return t(e)}),t)}}var j=function(){function e(e){this._isScalar=!1,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=this.operator,o=function(e,t,n){if(e){if(e instanceof U)return e;if(e[O])return e[O]()}return e||t||n?new U(e,t,n):new U(E)}(e,t,n);if(r?o.add(r.call(o,this.source)):o.add(this.source||k.useDeprecatedSynchronousErrorHandling&&!o.syncErrorThrowable?this._subscribe(o):this._trySubscribe(o)),k.useDeprecatedSynchronousErrorHandling&&o.syncErrorThrowable&&(o.syncErrorThrowable=!1,o.syncErrorThrown))throw o.syncErrorValue;return o},e.prototype._trySubscribe=function(e){try{return this._subscribe(e)}catch(t){k.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=t),!function(e){for(;e;){var t=e,n=t.closed,r=t.destination,o=t.isStopped;if(n||o)return!1;e=r&&r instanceof U?r:null}return!0}(e)?console.warn(t):e.error(t)}},e.prototype.forEach=function(e,t){var n=this;return new(t=L(t))((function(t,r){var o;o=n.subscribe((function(t){try{e(t)}catch(e){r(e),o&&o.unsubscribe()}}),r,t)}))},e.prototype._subscribe=function(e){var t=this.source;return t&&t.subscribe(e)},e.prototype[D]=function(){return this},e.prototype.pipe=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return 0===e.length?this:R(e)(this)},e.prototype.toPromise=function(e){var t=this;return new(e=L(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 L(e){if(e||(e=Promise),!e)throw new Error("no Promise impl found");return e}var B=function(e){return function(t){for(var n=0,r=e.length;n<r&&!t.closed;n++)t.next(e[n]);t.complete()}};function W(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}var F=W(),M=function(e){return e&&"number"==typeof e.length&&"function"!=typeof e};function H(e){return!!e&&"function"!=typeof e.subscribe&&"function"==typeof e.then}var V=function(e){if(e&&"function"==typeof e[D])return r=e,function(e){var t=r[D]();if("function"!=typeof t.subscribe)throw new TypeError("Provided object does not correctly implement Symbol.observable");return t.subscribe(e)};if(M(e))return B(e);if(H(e))return n=e,function(e){return n.then((function(t){e.closed||(e.next(t),e.complete())}),(function(t){return e.error(t)})).then(null,x),e};if(e&&"function"==typeof e[F])return t=e,function(e){for(var n=t[F]();;){var r=void 0;try{r=n.next()}catch(t){return e.error(t),e}if(r.done){e.complete();break}if(e.next(r.value),e.closed)break}return"function"==typeof n.return&&e.add((function(){n.return&&n.return()})),e};var t,n,r,o=T(e)?"an invalid object":"'"+e+"'";throw new TypeError("You provided "+o+" where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.")},K=function(e){function t(t){var n=e.call(this)||this;return n.parent=t,n}return _(t,e),t.prototype._next=function(e){this.parent.notifyNext(e)},t.prototype._error=function(e){this.parent.notifyError(e),this.unsubscribe()},t.prototype._complete=function(){this.parent.notifyComplete(),this.unsubscribe()},t}(U),q=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return _(t,e),t.prototype.notifyNext=function(e){this.destination.next(e)},t.prototype.notifyError=function(e){this.destination.error(e)},t.prototype.notifyComplete=function(){this.destination.complete()},t}(U);function z(e,t){if(!t.closed){if(e instanceof j)return e.subscribe(t);var n;try{n=V(e)(t)}catch(e){t.error(e)}return n}}var G=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 _(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),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;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=!1,r=void 0;try{this.work(e)}catch(e){n=!0,r=!!e&&e||new Error(e)}if(n)return this.unsubscribe(),r},t.prototype._unsubscribe=function(){var e=this.id,t=this.scheduler,n=t.actions,r=n.indexOf(this);this.work=null,this.state=null,this.pending=!1,this.scheduler=null,-1!==r&&n.splice(r,1),null!=e&&(this.id=this.recycleAsyncId(t,e,null)),this.delay=null},t}(function(e){function t(t,n){return e.call(this)||this}return _(t,e),t.prototype.schedule=function(e,t){return this},t}(A)),J=function(){function e(t,n){void 0===n&&(n=e.now),this.SchedulerAction=t,this.now=n}return e.prototype.schedule=function(e,t,n){return void 0===t&&(t=0),new this.SchedulerAction(this,e).schedule(n,t)},e.now=function(){return Date.now()},e}(),Y=new(function(e){function t(n,r){void 0===r&&(r=J.now);var o=e.call(this,n,(function(){return t.delegate&&t.delegate!==o?t.delegate.now():r()}))||this;return o.actions=[],o.active=!1,o.scheduled=void 0,o}return _(t,e),t.prototype.schedule=function(n,r,o){return void 0===r&&(r=0),t.delegate&&t.delegate!==this?t.delegate.schedule(n,r,o):e.prototype.schedule.call(this,n,r,o)},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}(J))(G);function X(e){return e&&"function"==typeof e.schedule}function Z(e){return function(t){var n=new Q(e),r=t.lift(n);return n.caught=r}}var Q=function(){function e(e){this.selector=e}return e.prototype.call=function(e,t){return t.subscribe(new ee(e,this.selector,this.caught))},e}(),ee=function(e){function t(t,n,r){var o=e.call(this,t)||this;return o.selector=n,o.caught=r,o}return _(t,e),t.prototype.error=function(t){if(!this.isStopped){var n=void 0;try{n=this.selector(t,this.caught)}catch(t){return void e.prototype.error.call(this,t)}this._unsubscribeAndRecycle();var r=new K(this);this.add(r);var o=z(n,r);o!==r&&this.add(o)}},t}(q);function te(e,t){return new j((function(n){var r=new A,o=0;return r.add(t.schedule((function(){o!==e.length?(n.next(e[o++]),n.closed||r.add(this.schedule())):n.complete()}))),r}))}function ne(e,t){return t?te(e,t):new j(B(e))}function re(e,t){if(null!=e){if(function(e){return e&&"function"==typeof e[D]}(e))return function(e,t){return new j((function(n){var r=new A;return r.add(t.schedule((function(){var o=e[D]();r.add(o.subscribe({next:function(e){r.add(t.schedule((function(){return n.next(e)})))},error:function(e){r.add(t.schedule((function(){return n.error(e)})))},complete:function(){r.add(t.schedule((function(){return n.complete()})))}}))}))),r}))}(e,t);if(H(e))return function(e,t){return new j((function(n){var r=new A;return r.add(t.schedule((function(){return e.then((function(e){r.add(t.schedule((function(){n.next(e),r.add(t.schedule((function(){return n.complete()})))})))}),(function(e){r.add(t.schedule((function(){return n.error(e)})))}))}))),r}))}(e,t);if(M(e))return te(e,t);if(function(e){return e&&"function"==typeof e[F]}(e)||"string"==typeof e)return function(e,t){if(!e)throw new Error("Iterable cannot be null");return new j((function(n){var r,o=new A;return o.add((function(){r&&"function"==typeof r.return&&r.return()})),o.add(t.schedule((function(){r=e[F](),o.add(t.schedule((function(){if(!n.closed){var e,t;try{var o=r.next();e=o.value,t=o.done}catch(e){return void n.error(e)}t?n.complete():(n.next(e),this.schedule())}})))}))),o}))}(e,t)}throw new TypeError((null!==e&&typeof e||e)+" is not observable")}function oe(e,t){return t?re(e,t):e instanceof j?e:new j(V(e))}function ie(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=e[e.length-1];return X(n)?(e.pop(),te(e,n)):ne(e)}function se(e,t){return function(n){if("function"!=typeof e)throw new TypeError("argument is not a function. Are you looking for `mapTo()`?");return n.lift(new ae(e,t))}}var ae=function(){function e(e,t){this.project=e,this.thisArg=t}return e.prototype.call=function(e,t){return t.subscribe(new ce(e,this.project,this.thisArg))},e}(),ce=function(e){function t(t,n,r){var o=e.call(this,t)||this;return o.project=n,o.count=0,o.thisArg=r||o,o}return _(t,e),t.prototype._next=function(e){var t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(e){return void this.destination.error(e)}this.destination.next(t)},t}(U);function ue(e,t,n){return void 0===n&&(n=Number.POSITIVE_INFINITY),"function"==typeof t?function(r){return r.pipe(ue((function(n,r){return oe(e(n,r)).pipe(se((function(e,o){return t(n,e,r,o)})))}),n))}:("number"==typeof t&&(n=t),function(t){return t.lift(new le(e,n))})}var le=function(){function e(e,t){void 0===t&&(t=Number.POSITIVE_INFINITY),this.project=e,this.concurrent=t}return e.prototype.call=function(e,t){return t.subscribe(new de(e,this.project,this.concurrent))},e}(),de=function(e){function t(t,n,r){void 0===r&&(r=Number.POSITIVE_INFINITY);var o=e.call(this,t)||this;return o.project=n,o.concurrent=r,o.hasCompleted=!1,o.buffer=[],o.active=0,o.index=0,o}return _(t,e),t.prototype._next=function(e){this.active<this.concurrent?this._tryNext(e):this.buffer.push(e)},t.prototype._tryNext=function(e){var t,n=this.index++;try{t=this.project(e,n)}catch(e){return void this.destination.error(e)}this.active++,this._innerSub(t)},t.prototype._innerSub=function(e){var t=new K(this),n=this.destination;n.add(t);var r=z(e,t);r!==t&&n.add(r)},t.prototype._complete=function(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()},t.prototype.notifyNext=function(e){this.destination.next(e)},t.prototype.notifyComplete=function(){var e=this.buffer;this.active--,e.length>0?this._next(e.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()},t}(q);function he(e){return void 0===e&&(e=Number.POSITIVE_INFINITY),ue(N,e)}function fe(){return he(1)}function pe(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return fe()(ie.apply(void 0,e))}function ye(e,t){return void 0===t&&(t=Y),function(n){return n.lift(new be(e,t))}}var be=function(){function e(e,t){this.dueTime=e,this.scheduler=t}return e.prototype.call=function(e,t){return t.subscribe(new ve(e,this.dueTime,this.scheduler))},e}(),ve=function(e){function t(t,n,r){var o=e.call(this,t)||this;return o.dueTime=n,o.scheduler=r,o.debouncedSubscription=null,o.lastValue=null,o.hasValue=!1,o}return _(t,e),t.prototype._next=function(e){this.clearDebounce(),this.lastValue=e,this.hasValue=!0,this.add(this.debouncedSubscription=this.scheduler.schedule(me,this.dueTime,this))},t.prototype._complete=function(){this.debouncedNext(),this.destination.complete()},t.prototype.debouncedNext=function(){if(this.clearDebounce(),this.hasValue){var e=this.lastValue;this.lastValue=null,this.hasValue=!1,this.destination.next(e)}},t.prototype.clearDebounce=function(){var e=this.debouncedSubscription;null!==e&&(this.remove(e),e.unsubscribe(),this.debouncedSubscription=null)},t}(U);function me(e){e.debouncedNext()}function ge(e){return e instanceof Date&&!isNaN(+e)}var _e=new j((function(e){return e.complete()}));function we(e){return e?function(e){return new j((function(t){return e.schedule((function(){return t.complete()}))}))}(e):_e}function Se(e,t){return new j(t?function(n){return t.schedule(ke,0,{error:e,subscriber:n})}:function(t){return t.error(e)})}function ke(e){var t=e.error;e.subscriber.error(t)}var xe=function(){function e(e,t,n){this.kind=e,this.value=t,this.error=n,this.hasValue="N"===e}return e.prototype.observe=function(e){switch(this.kind){case"N":return e.next&&e.next(this.value);case"E":return e.error&&e.error(this.error);case"C":return e.complete&&e.complete()}},e.prototype.do=function(e,t,n){switch(this.kind){case"N":return e&&e(this.value);case"E":return t&&t(this.error);case"C":return n&&n()}},e.prototype.accept=function(e,t,n){return e&&"function"==typeof e.next?this.observe(e):this.do(e,t,n)},e.prototype.toObservable=function(){switch(this.kind){case"N":return ie(this.value);case"E":return Se(this.error);case"C":return we()}throw new Error("unexpected notification kind value")},e.createNext=function(t){return void 0!==t?new e("N",t):e.undefinedValueNotification},e.createError=function(t){return new e("E",void 0,t)},e.createComplete=function(){return e.completeNotification},e.completeNotification=new e("C"),e.undefinedValueNotification=new e("N",void 0),e}();function Ee(e,t){void 0===t&&(t=Y);var n=ge(e)?+e-t.now():Math.abs(e);return function(e){return e.lift(new Ie(n,t))}}var Ie=function(){function e(e,t){this.delay=e,this.scheduler=t}return e.prototype.call=function(e,t){return t.subscribe(new Te(e,this.delay,this.scheduler))},e}(),Te=function(e){function t(t,n,r){var o=e.call(this,t)||this;return o.delay=n,o.scheduler=r,o.queue=[],o.active=!1,o.errored=!1,o}return _(t,e),t.dispatch=function(e){for(var t=e.source,n=t.queue,r=e.scheduler,o=e.destination;n.length>0&&n[0].time-r.now()<=0;)n.shift().notification.observe(o);if(n.length>0){var i=Math.max(0,n[0].time-r.now());this.schedule(e,i)}else this.unsubscribe(),t.active=!1},t.prototype._schedule=function(e){this.active=!0,this.destination.add(e.schedule(t.dispatch,this.delay,{source:this,destination:this.destination,scheduler:e}))},t.prototype.scheduleNotification=function(e){if(!0!==this.errored){var t=this.scheduler,n=new Ce(t.now()+this.delay,e);this.queue.push(n),!1===this.active&&this._schedule(t)}},t.prototype._next=function(e){this.scheduleNotification(xe.createNext(e))},t.prototype._error=function(e){this.errored=!0,this.queue=[],this.destination.error(e),this.unsubscribe()},t.prototype._complete=function(){this.scheduleNotification(xe.createComplete()),this.unsubscribe()},t}(U),Ce=function(){return function(e,t){this.time=e,this.notification=t}}();var Ae=function(){function e(e,t){this.compare=e,this.keySelector=t}return e.prototype.call=function(e,t){return t.subscribe(new Pe(e,this.compare,this.keySelector))},e}(),Pe=function(e){function t(t,n,r){var o=e.call(this,t)||this;return o.keySelector=r,o.hasKey=!1,"function"==typeof n&&(o.compare=n),o}return _(t,e),t.prototype.compare=function(e,t){return e===t},t.prototype._next=function(e){var t;try{var n=this.keySelector;t=n?n(e):e}catch(e){return this.destination.error(e)}var r=!1;if(this.hasKey)try{r=(0,this.compare)(this.key,t)}catch(e){return this.destination.error(e)}else this.hasKey=!0;r||(this.key=t,this.destination.next(e))},t}(U),Oe=function(){function e(){return Error.call(this),this.message="argument out of range",this.name="ArgumentOutOfRangeError",this}return e.prototype=Object.create(Error.prototype),e}();function Ue(e,t){return function(n){return n.lift(new $e(e,t))}}var $e=function(){function e(e,t){this.predicate=e,this.thisArg=t}return e.prototype.call=function(e,t){return t.subscribe(new De(e,this.predicate,this.thisArg))},e}(),De=function(e){function t(t,n,r){var o=e.call(this,t)||this;return o.predicate=n,o.thisArg=r,o.count=0,o}return _(t,e),t.prototype._next=function(e){var t;try{t=this.predicate.call(this.thisArg,e,this.count++)}catch(e){return void this.destination.error(e)}t&&this.destination.next(e)},t}(U);function Ne(e){return function(t){return 0===e?we():t.lift(new Re(e))}}var Re=function(){function e(e){if(this.total=e,this.total<0)throw new Oe}return e.prototype.call=function(e,t){return t.subscribe(new je(e,this.total))},e}(),je=function(e){function t(t,n){var r=e.call(this,t)||this;return r.total=n,r.count=0,r}return _(t,e),t.prototype._next=function(e){var t=this.total,n=++this.count;n<=t&&(this.destination.next(e),n===t&&(this.destination.complete(),this.unsubscribe()))},t}(U);function Le(e){return function(t){return t.lift(new Be(e))}}var Be=function(){function e(e){this.total=e}return e.prototype.call=function(e,t){return t.subscribe(new We(e,this.total))},e}(),We=function(e){function t(t,n){var r=e.call(this,t)||this;return r.total=n,r.count=0,r}return _(t,e),t.prototype._next=function(e){++this.count>this.total&&this.destination.next(e)},t}(U);function Fe(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=e[e.length-1];return X(n)?(e.pop(),function(t){return pe(e,t,n)}):function(t){return pe(e,t)}}function Me(e,t){return"function"==typeof t?function(n){return n.pipe(Me((function(n,r){return oe(e(n,r)).pipe(se((function(e,o){return t(n,e,r,o)})))})))}:function(t){return t.lift(new He(e))}}var He=function(){function e(e){this.project=e}return e.prototype.call=function(e,t){return t.subscribe(new Ve(e,this.project))},e}(),Ve=function(e){function t(t,n){var r=e.call(this,t)||this;return r.project=n,r.index=0,r}return _(t,e),t.prototype._next=function(e){var t,n=this.index++;try{t=this.project(e,n)}catch(e){return void this.destination.error(e)}this._innerSub(t)},t.prototype._innerSub=function(e){var t=this.innerSubscription;t&&t.unsubscribe();var n=new K(this),r=this.destination;r.add(n),this.innerSubscription=z(e,n),this.innerSubscription!==n&&r.add(this.innerSubscription)},t.prototype._complete=function(){var t=this.innerSubscription;t&&!t.closed||e.prototype._complete.call(this),this.unsubscribe()},t.prototype._unsubscribe=function(){this.innerSubscription=void 0},t.prototype.notifyComplete=function(){this.innerSubscription=void 0,this.isStopped&&e.prototype._complete.call(this)},t.prototype.notifyNext=function(e){this.destination.next(e)},t}(q);function Ke(){}function qe(e,t,n){return function(r){return r.lift(new ze(e,t,n))}}var ze=function(){function e(e,t,n){this.nextOrObserver=e,this.error=t,this.complete=n}return e.prototype.call=function(e,t){return t.subscribe(new Ge(e,this.nextOrObserver,this.error,this.complete))},e}(),Ge=function(e){function t(t,n,r,o){var i=e.call(this,t)||this;return i._tapNext=Ke,i._tapError=Ke,i._tapComplete=Ke,i._tapError=r||Ke,i._tapComplete=o||Ke,w(n)?(i._context=i,i._tapNext=n):n&&(i._context=n,i._tapNext=n.next||Ke,i._tapError=n.error||Ke,i._tapComplete=n.complete||Ke),i}return _(t,e),t.prototype._next=function(e){try{this._tapNext.call(this._context,e)}catch(e){return void this.destination.error(e)}this.destination.next(e)},t.prototype._error=function(e){try{this._tapError.call(this._context,e)}catch(e){return void this.destination.error(e)}this.destination.error(e)},t.prototype._complete=function(){try{this._tapComplete.call(this._context)}catch(e){return void this.destination.error(e)}return this.destination.complete()},t}(U),Je=function(){function e(){return Error.call(this),this.message="Timeout has occurred",this.name="TimeoutError",this}return e.prototype=Object.create(Error.prototype),e}();var Ye=function(){function e(e,t,n,r){this.waitFor=e,this.absoluteTimeout=t,this.withObservable=n,this.scheduler=r}return e.prototype.call=function(e,t){return t.subscribe(new Xe(e,this.absoluteTimeout,this.waitFor,this.withObservable,this.scheduler))},e}(),Xe=function(e){function t(t,n,r,o,i){var s=e.call(this,t)||this;return s.absoluteTimeout=n,s.waitFor=r,s.withObservable=o,s.scheduler=i,s.scheduleTimeout(),s}return _(t,e),t.dispatchTimeout=function(e){var t=e.withObservable;e._unsubscribeAndRecycle(),e.add(z(t,new K(e)))},t.prototype.scheduleTimeout=function(){var e=this.action;e?this.action=e.schedule(this,this.waitFor):this.add(this.action=this.scheduler.schedule(t.dispatchTimeout,this.waitFor,this))},t.prototype._next=function(t){this.absoluteTimeout||this.scheduleTimeout(),e.prototype._next.call(this,t)},t.prototype._unsubscribe=function(){this.action=void 0,this.scheduler=null,this.withObservable=null},t}(q);function Ze(e,t){return void 0===t&&(t=Y),function(e,t,n){return void 0===n&&(n=Y),function(r){var o=ge(e),i=o?+e-n.now():Math.abs(e);return r.lift(new Ye(i,o,t,n))}}(e,Se(new Je),t)}let Qe=!1;async function et(e,t){try{const n=await navigator.serviceWorker.ready;return"push"===t&&n.sync&&await n.sync.register(`dexie-cloud:${e.name}`),void(n.active?n.active.postMessage({type:"dexie-cloud-sync",dbName:e.name,purpose:t}):console.error("Dexie Cloud: There's no active service worker. Can this ever happen??"))}catch(e){Qe||(console.debug("Dexie Cloud: Could not register sync event",e),Qe=!0)}}function tt(e,t){e.cloud.usingServiceWorker?et(e,t):e.localSyncEvent.next({purpose:t})}const nt="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},rt="undefined"!=typeof Buffer?e=>ArrayBuffer.isView(e)?Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("base64"):Buffer.from(e).toString("base64"):e=>btoa(String.fromCharCode.apply(null,e));function ot(t,n){return new Promise(((r,o)=>{const i={...n,onSubmit:e=>{t.next(void 0),r(e)},onCancel:()=>{t.next(void 0),o(new e.AbortError("User cancelled"))}};t.next(i)}))}function it(e,t,...n){return ot(e,{type:"message-alert",title:t,alerts:n,fields:{}})}async function st(e,t,n){let r=n||"";for(;!r||!/^[\w-\.]+@([\w-]+\.)+[\w-]{2,10}$/.test(r);)r=(await ot(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}async function at(e,t,n){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}=await ot(e,{type:"otp",title:"Enter OTP",alerts:r,fields:{otp:{type:"otp",label:"OTP",placeholder:"Paste OTP here"}}});return o}async function ct(e,t,n,r,o){return t.accessToken&&t.accessTokenExpiration.getTime()>Date.now()?t:t.refreshToken&&(!t.refreshTokenExpiration||t.refreshTokenExpiration.getTime()>Date.now())?await ut(e,t):await async function(e,t,n,r){const{privateKey:o,publicKey:i}=await crypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:2048,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!1,["sign","verify"]);e.nonExportablePrivateKey=o;const s=function(e){const t=rt(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)}(await crypto.subtle.exportKey("spki",i));e.publicKey=i;try{const o=await t({public_key:s,hints:r});if("tokens"!==o.type)throw new Error(`Unexpected response type from token endpoint: ${o.type}`);return e.accessToken=o.accessToken,e.accessTokenExpiration=new Date(o.accessTokenExpiration),e.refreshToken=o.refreshToken,o.refreshTokenExpiration&&(e.refreshTokenExpiration=new Date(o.refreshTokenExpiration)),e.userId=o.claims.sub,e.email=o.claims.email,e.name=o.claims.name,e.claims=o.claims,o.alerts&&o.alerts.length>0&&await ot(n,{type:"message-alert",title:"Authentication Alert",fields:{},alerts:o.alerts}),e}catch(e){throw await it(n,"Authentication Failed",{type:"error",messageCode:"GENERIC_ERROR",message:"We're having a problem to authenticate rigth now.",messageParams:{}}).catch((()=>{})),e}}(t,n,r,o)}async function ut(e,t){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=await crypto.subtle.sign(r,t.nonExportablePrivateKey,o),s=rt(i),a={grant_type:"refresh_token",refresh_token:t.refreshToken,scopes:["ACCESS_DB"],signature:s,signing_algorithm:r,time_stamp:n},c=await 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 u=await c.json();return t.accessToken=u.accessToken,t.accessTokenExpiration=u.accessTokenExpiration?new Date(u.accessTokenExpiration):void 0,t}const lt=new WeakMap;class dt{constructor(e,t){lt.set(this,e),Object.assign(this,t)}static load(e,t){return e.table("$logins").get(t).then((n=>new dt(e,n||{userId:t,claims:{sub:t},lastLogin:new Date(0)})))}async save(){lt.get(this).table("$logins").put(this)}}class ht extends Error{constructor(e,t){super(t||`${e.status} ${e.statusText}`),this.httpStatus=e.status}get name(){return"HttpError"}}async function ft(e,t){if((await e.getCurrentUser()).isLoggedIn){if(t){if(t.email&&e.cloud.currentUser.value.email!==t.email)throw new Error("Must logout before changing user");if(t.userId&&e.cloud.currentUserId!==t.userId)throw new Error("Must logout before changing user")}return}const n=new dt(e,{claims:{},lastLogin:new Date(0)});await ct(e.cloud.options.databaseUrl,n,e.cloud.options.fetchTokens||function(e){const{userInteraction:t}=e.cloud;return async function({public_key:n,hints:r}){var o;let i;const s=null===(o=e.cloud.options)||void 0===o?void 0:o.databaseUrl;if(!s)throw new Error("No database URL given.");i="demo"===(null==r?void 0:r.grant_type)?{demo_user:await st(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}:{email:await st(t,"Enter email address",null==r?void 0:r.email),grant_type:"otp",scopes:["ACCESS_DB"],public_key:n};const a=await fetch(`${s}/token`,{body:JSON.stringify(i),method:"post",headers:{"Content-Type":"application/json",mode:"cors"}});if(200!==a.status){const e=await a.text();throw await it(t,"Token request failed",{type:"error",messageCode:"GENERIC_ERROR",message:e,messageParams:{}}).catch((()=>{})),new ht(a,e)}const c=await a.json();if("tokens"===c.type)return c;if("otp"===i.grant_type){if("otp-sent"!==c.type)throw new Error(`Unexpected response from ${s}/token`);const e=await at(t,i.email);i.otp=e||"",i.otp_id=c.otp_id;let n=await fetch(`${s}/token`,{body:JSON.stringify(i),method:"post",headers:{"Content-Type":"application/json"},mode:"cors"});for(;401===n.status;){const e=await n.text();i.otp=await at(t,i.email,{type:"error",messageCode:"INVALID_OTP",message:e,messageParams:{}}),n=await fetch(`${s}/token`,{body:JSON.stringify(i),method:"post",headers:{"Content-Type":"application/json"},mode:"cors"})}if(200!==n.status){const e=await n.text();throw await it(t,"OTP Authentication Failed",{type:"error",messageCode:"GENERIC_ERROR",message:e,messageParams:{}}).catch((()=>{})),new ht(n,e)}return await n.json()}throw new Error(`Unexpected response from ${s}/token`)}}(e),e.cloud.userInteraction,t),await n.save(),await async function(e,t){if(t.userId===e.cloud.currentUserId)return;const n=e.table("$logins");await e.transaction("rw",n,(async e=>{const r=await n.toArray();await Promise.all(r.filter((e=>e.userId!==t.userId&&e.isLoggedIn)).map((e=>(e.isLoggedIn=!1,n.put(e))))),t.isLoggedIn=!0,t.lastLogin=new Date,await t.save(),console.debug("Saved new user",t.email)})),await new Promise((n=>{if(e.cloud.currentUserId===t.userId)n(null);else{const r=e.cloud.currentUser.subscribe((e=>{e.userId===t.userId&&(r.unsubscribe(),n(null))}))}}))}(e,n),tt(e,"pull")}const pt={userId:"unauthorized",name:"Unauthorized",claims:{sub:"unauthorized"},lastLogin:new Date(0)};try{Object.freeze(pt),Object.freeze(pt.claims)}catch(e){}const yt={},bt=self.document&&navigator.serviceWorker;bt&&bt.ready.then((e=>yt.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 vt{constructor(e){this.name=e}subscribe(e){if(!bt)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 bt.addEventListener("message",t),()=>bt.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}))):yt.registration&&(null===(t=yt.registration.active)||void 0===t||t.postMessage({type:`sw-broadcast-${this.name}`,message:e}))}}class mt extends n{constructor(e){const t="undefined"==typeof BroadcastChannel?new vt(e):new BroadcastChannel(e);super((n=>{function r(e){n.next(e.detail)}function o(e){console.debug("BroadcastedAndLocalEvent: onMessageEvent",e),n.next(e.data)}let i;return self.addEventListener(`lbc-${e}`,r),t instanceof vt?i=t.subscribe((e=>n.next(e))):(console.debug("BroadcastedAndLocalEvent: bc.addEventListener()",e,"bc is a",t),t.addEventListener("message",o)),()=>{self.removeEventListener(`lbc-${e}`,r),t instanceof vt?i():t.removeEventListener("message",o)}})),this.name=e,this.bc=t}next(e){console.debug("BroadcastedAndLocalEvent: bc.postMessage()",{...e},"bc is a",this.bc),this.bc.postMessage(e);const t=new CustomEvent(`lbc-${this.name}`,{detail:e});self.dispatchEvent(t)}}async function gt({realms:e,inviteRealms:t}){const n=JSON.stringify([...e.map((e=>({realmId:e,accepted:!0}))),...t.map((e=>({realmId:e,accepted:!1})))].sort(((e,t)=>e.realmId<t.realmId?-1:e.realmId>t.realmId?1:0))),r=(new TextEncoder).encode(n),o=await crypto.subtle.digest("SHA-1",r);return rt(o)}function _t(e){return Object.entries(e.cloud.schema||{}).filter((([,{markedForSync:e}])=>e)).map((([t])=>e.table(t)))}function wt(e){return`$${e}_mutations`}function St(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}async function kt(e,t,{since:n={},limit:r=1/0}={}){return(await Promise.all(e.map((async e=>{const t=St(e.name),o=n[t];let i=o?e.where("rev").above(o):e;r<1/0&&(i=i.limit(r));return{table:t,muts:await i.toArray()}})))).filter((({muts:e})=>e.length>0))}const{toString:xt}={};const Et={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 t of n)delete r[t],r["$"+t]=e[t];return r}};function It(...e){const t=e.reduce(((e,t)=>({...e,...t})),e.reduce(((e,t)=>({...t,...e})),{})),n=new WeakMap;return{stringify:(e,r,o)=>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 Et;let i=n.get(r);if(void 0!==i)return i;const s=(o=e,xt.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:Et),n.set(r,i),i}default:return t[r]}var o}(o);return i?i.replace(o,r,t):o}),o),parse(e,n){let r=null,o=[];return JSON.parse(e,(function(e,i){const s=null==i?void 0:i.$t;if(s){const e=t[s];i=e?e.revive(i,n,t):i}if(i===r){if(o.length>0){i={...i};for(const e of o)i[e.substr(1)]=i[e],delete i[e]}return o=[],i}return"$"===e[0]&&"$t"!==e&&(r=this,o.push(e)),i}))}}}const Tt={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 Ct={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 At={bigint:{replace:e=>({$t:"bigint",v:""+e}),revive:e=>BigInt(e.v)}};var Pt={Date:{replace:e=>({$t:"Date",v:isNaN(e.getTime())?"NaN":e.toISOString()}),revive:({v:e})=>new Date("NaN"===e?NaN:Date.parse(e))}},Ot={Set:{replace:e=>({$t:"Set",v:Array.from(e.entries())}),revive:({v:e})=>new Set(e)}},Ut={Map:{replace:e=>({$t:"Map",v:Array.from(e.entries())}),revive:({v:e})=>new Map(e)}};const $t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"==typeof global?global:void 0;var Dt=["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=$t[t];return o&&new o(r.ArrayBuffer.revive({v:e},n,r))}}})),{});function Nt(e){return function(e){for(var t="",n=0,r=e.length;n<r;n++)t+=Lt[e[n]];return t}(rt(e))}function Rt(e){return nt(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+=jt[e[n]];return t}(e))}const jt={"-":"=",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:"+","|":"/"},Lt={};for(const e of Object.keys(jt))Lt[jt[e]]=e;var Bt={ArrayBuffer:{replace:e=>({$t:"ArrayBuffer",v:Nt(e)}),revive:({v:e})=>{const t=Rt(e);return t.buffer.byteLength===t.byteLength?t.buffer:t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}}};class Wt{constructor(e,t){this.buf=e,this.type=t}}function Ft(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 Mt(e){const t=new Uint8Array(e.length);for(let n=0;n<e.length;++n)t[n]=e.charCodeAt(n);return t.buffer}const Ht={...Ct,...At,...Pt,...Ot,...Ut,...Dt,...Bt,...{Blob:{test:(e,t)=>"Blob"===t||e instanceof Wt,replace:e=>({$t:"Blob",v:rt(e instanceof Wt?e.buf:Mt(Ft(e))),type:e.type}),revive:({type:e,v:t})=>{const n=nt(t);return void 0!==typeof Blob?new Blob([n]):new Wt(n.buffer,e)}}}};function Vt(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 Kt={undefined:{replace:()=>{},revive:()=>{}}};const qt="bigint"==typeof BigInt(0);class zt{constructor(e){this.v=e}toString(){return this.v}}const Gt={...Kt,...qt?{}:{bigint:{test:e=>e instanceof zt,replace:e=>({$t:"bigint",...e}),revive:({v:e})=>new zt(e)}}},Jt=It(Ht,Gt),Yt=function(...e){const t=It(Ht,Tt,...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);return[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])}))),r]},async parse(e,n){let r=0;const o=[],i=await Vt(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 Vt(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)}}}(Gt);async function Xt(e,t,n,r,o,i,s){const a={Accept:"application/json, application/x-bison, application/x-bison-stream","Content-Type":"application/tson"},c=await async function(e){var t,n;const r=await e.getCurrentUser(),{accessToken:o,accessTokenExpiration:i,refreshToken:s,refreshTokenExpiration:a,claims:c}=r;if(!o)return;if((null!==(t=null==i?void 0:i.getTime())&&void 0!==t?t:1/0)>Date.now())return o;if(!s)throw new Error("Refresh token missing");if((null!==(n=null==a?void 0:a.getTime())&&void 0!==n?n:1/0)<=Date.now())throw new Error("Refresh token has expired");const u=await ut(e.cloud.options.databaseUrl,r);return await e.table("$logins").update(c.sub,{accessToken:u.accessToken,accessTokenExpiration:u.accessTokenExpiration}),u.accessToken}(r);c&&(a.Authorization=`Bearer ${c}`);const u={v:2,dbID:null==t?void 0:t.remoteDbId,clientIdentity:s,schema:i||{},lastPull:t?{serverRevision:t.serverRevision,realms:t.realms,inviteRealms:t.inviteRealms}:void 0,baseRevs:n,changes:e};console.debug("Sync request",u),r.syncStateChangedEvent.next({phase:"pushing"});const l=await fetch(`${o}/sync`,{method:"post",headers:a,body:Jt.stringify(u)});if(r.syncStateChangedEvent.next({phase:"pulling"}),!l.ok)throw new ht(l);switch(l.headers.get("content-type")){case"application/x-bison":return Yt.fromBinary(await l.blob());case"application/x-bison-stream":default:case"application/json":{const e=await l.text();return Jt.parse(e)}}}async function Zt(t,n,r){const o=await t.bulkGet(n),i=[],s=[];n.forEach(((n,a)=>{const c=o[a];if(c){for(const[n,o]of Object.entries(r[a])){if(n===t.schema.primKey.keyPath)throw new Error("Cannot change primary key");e.setByKeyPath(c,n,o)}i.push(n),s.push(c)}})),await(null==t.schema.primKey.keyPath?t.bulkPut(s,i):t.bulkPut(s))}function Qt(t){if(null==t?void 0:t.cancelled)throw new e.AbortError("Operation was cancelled")}let en=navigator.onLine;async function tn(e,t,n,r){await e.$baseRevs.bulkPut(Object.keys(t).filter((e=>t[e].markedForSync)).map((e=>({tableName:e,clientRev:(n[e]||0)+1,serverRev:r}))))}function nn(e,t={}){for(const{table:n,muts:r}of e){const e=r.length>0?r[r.length-1].rev:null;t[n]=e||t[n]||0}return t}self.addEventListener("online",(()=>en=!0)),self.addEventListener("offline",(()=>en=!1));function rn(e,t,n,r){return on.apply(this,arguments).then((()=>{(null==r?void 0:r.justCheckIfNeeded)||e.syncStateChangedEvent.next({phase:"in-sync"})})).catch((async o=>(null==r?void 0:r.justCheckIfNeeded)?Promise.reject(o):(console.debug("Error from _sync",{isOnline:en,syncOptions:r,error:o}),en&&(null==r?void 0:r.retryImmediatelyOnFetchError)&&"TypeError"===(null==o?void 0:o.name)&&/fetch/.test(null==o?void 0:o.message)?(e.syncStateChangedEvent.next({phase:"error",error:o}),await new Promise((e=>setTimeout(e,500))),await rn(e,t,n,{...r,retryImmediatelyOnFetchError:!1})):(await e.$syncState.update("syncState",{timestamp:new Date,error:""+o}),e.syncStateChangedEvent.next({phase:en?"error":"offline",error:o}),Promise.reject(o)))))}async function on(e,t,n,{isInitialSync:r,cancelToken:o,justCheckIfNeeded:i,purpose:s}={isInitialSync:!1}){var a;if(i||console.debug("SYNC STARTED",{isInitialSync:r,purpose:s}),!(null===(a=e.cloud.options)||void 0===a?void 0:a.databaseUrl))throw new Error("Internal error: sync must not be called when no databaseUrl is configured");const{databaseUrl:c}=t,u=await e.getCurrentUser(),l=u.isLoggedIn?_t(e):[],d=l.map((t=>e.table(wt(t.name)))),h=await e.getPersistedSyncState(),f=!r&&u.isLoggedIn?function(e,t){const n=(null==t?void 0:t.syncedTables)||[];return _t(e).filter((e=>!n.includes(e.name)))}(e,h):[];Qt(o);const b=f.length>0;if(b){if(i)return!0;console.debug("sync doSyncify is true"),await e.transaction("rw",f,(async e=>{e.idbtrans.disableChangeTracking=!0,e.idbtrans.disableAccessControl=!0,await async function(e,t,n){const r=new Set(n||[]);for(const n of e)"members"===n.name?await n.toCollection().modify((e=>{r.has(e.realmId)||e.userId!==pt.userId||(e.userId=t.userId)})):"roles"===n.name||("realms"===n.name?await n.toCollection().modify((e=>{(r.has(e.realmId)||e.owner)&&e.owner!==pt.userId||(e.owner=t.userId)})):await n.toCollection().modify((e=>{e.realmId&&r.has(e.realmId)||(e.owner&&e.owner!==pt.userId||(e.owner=t.userId),e.realmId&&e.realmId!==pt.userId||(e.realmId=t.userId))})))}(f,u,null==h?void 0:h.realms)})),Qt(o)}const[v,m,g]=await e.transaction("r",e.tables,(async()=>{const t=await e.getPersistedSyncState(),r=await e.$baseRevs.toArray();let i=await kt(d);if(Qt(o),b){const e=await async function(e,t,n,r){if(t.isLoggedIn&&e.length>0){const o=new Set(r||[]);return(await Promise.all(e.map((async e=>{const{extractKey:r}=e.core.schema.primaryKey;if(!r)return{table:e.name,muts:[]};const i=n[e.name],s=(null==i?void 0:i.generatedGlobalId)?e.filter((e=>!o.has(e.realmId||"")&&y(r(e)))):e.filter((e=>{return!o.has(e.realmId||"")&&(t=r(e),!(n=null==i?void 0:i.idPrefix)||"string"==typeof t&&t.startsWith(n));var t,n})),a=await s.toArray();if(a.length>0){const n={type:"insert",values:a,keys:a.map(r),userId:t.userId};return{table:e.name,muts:[n]}}return{table:e.name,muts:[]}})))).filter((e=>e.muts.length>0))}return[]}(f,u,n,null==h?void 0:h.realms);return Qt(o),i=i.concat(e),[i,t,r]}return[i,t,r]})),_=v.some((e=>e.muts.some((e=>e.keys.length>0))));if(i)return console.debug("Sync is needed:",_),_;if("push"===s&&!_)return!1;const w=nn(v,null==m?void 0:m.latestRevisions),S=(null==m?void 0:m.clientIdentity)||p(16);Qt(o);const k=await Xt(v,m,g,e,c,n,S);console.debug("Sync response",k);return await e.transaction("rw",e.tables,(async t=>{t.idbtrans.disableChangeTracking=!0,t.idbtrans.disableAccessControl=!0;for(const e of Object.keys(n))k.schema[e]&&(n[e]=k.schema[e]);await e.$syncState.put(n,"schema");const r=await kt(d,0,{since:w});for(const t of d){const n=St(t.name);if(r.some((e=>e.table===n&&e.muts.length>0))){if(w[t.name]){const r=w[t.name]||0;await 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 await Promise.all([t.clear(),e.$baseRevs.where({tableName:n}).delete()])}nn(r,w),await tn(e,n,w,k.serverRevision);const o=await e.getPersistedSyncState();await async function(e,t,n){const r=[],o=n?n.realms.concat(n.inviteRealms):[],i=new Set([...t.realms,...t.inviteRealms]);for(const e of o)i.has(e)||r.push(e);if(r.length>0){const t=new Set(r),n=_t(e);for(const e of n)e.schema.indexes.some((e=>"realmId"===e.keyPath||Array.isArray(e.keyPath)&&"realmId"===e.keyPath[0]))?await e.where("realmId").anyOf(r).delete():await e.filter((e=>!!(null==e?void 0:e.realmId)&&t.has(e.realmId))).delete()}}(e,k,o);const i=o||{syncedTables:[],latestRevisions:{},realms:[],inviteRealms:[],clientIdentity:S};i.syncedTables=l.map((e=>e.name)).concat(f.map((e=>e.name))),i.latestRevisions=w,i.remoteDbId=k.dbId,i.initiallySynced=!0,i.realms=k.realms,i.inviteRealms=k.inviteRealms,i.serverRevision=k.serverRevision,i.timestamp=new Date,delete i.error;const s=an(k.changes,r);return await sn(s,e),e.$syncState.put(i,"syncState"),0===r.length}))?(console.debug("SYNC DONE",{isInitialSync:r}),!1):(console.debug("MORE SYNC NEEDED. Go for it again!"),await on(e,t,n,{isInitialSync:r,cancelToken:o}))}async function sn(t,n){console.debug("Applying server changes",t,e.currentTransaction);for(const{table:r,muts:o}of t){const t=n.table(r);if(!t)continue;const{primaryKey:i}=t.core.schema;for(const n of o)switch(n.type){case"insert":i.outbound?await t.bulkAdd(n.values,n.keys):(n.keys.forEach(((t,r)=>{e.setByKeyPath(n.values[r],i.keyPath,t)})),await t.bulkAdd(n.values));break;case"upsert":i.outbound?await t.bulkPut(n.values,n.keys):(n.keys.forEach(((t,r)=>{e.setByKeyPath(n.values[r],i.keyPath,t)})),await t.bulkPut(n.values));break;case"modify":1===n.keys.length?await t.update(n.keys[0],n.changeSpec):await t.where(":id").anyOf(n.keys).modify(n.changeSpec);break;case"update":await Zt(t,n.keys,n.changeSpecs);break;case"delete":await t.bulkDelete(n.keys)}}}function an(e,t){const n={};m(n,e);const r={};return m(r,t),function(e,t){var n,r,o;for(const[i,s]of Object.entries(t))for(const[t,a]of Object.entries(s))switch(a.type){case"ups":{const r=null===(n=e[i])||void 0===n?void 0:n[t];if(r)switch(r.type){case"ups":delete e[i][t];break;case"del":break;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))f(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){const t=p(16),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 cn(t){const n=[],o=new r(!0),i=new r(null);let s=!1,a=0,c=[0,0,0,0,0,0,0,0,0,Date.now()];return i.subscribe((async()=>{if(!s&&n.length>0){s=!0,c.shift(),c.push(Date.now()),o.next(!1);try{await async function(){var r,o,i;for(;n.length>0;){const s=n.shift();try{console.debug("processing msg",s),await t.cloud.syncState.pipe(Ue((({phase:e})=>"in-sync"===e||"error"===e)),Ne(1)).toPromise(),console.debug("processing msg",s);const n=t.cloud.persistedSyncState.value;if(!s)continue;switch(s.type){case"token-expired":console.debug("WebSocket observable: Token expired. Refreshing token...");const a=t.cloud.currentUser.value,c=await ut(t.cloud.options.databaseUrl,a);await t.table("$logins").update(a.userId,{accessToken:c.accessToken,accessTokenExpiration:c.accessTokenExpiration});break;case"realm-added":(null===(r=null==n?void 0:n.realms)||void 0===r?void 0:r.includes(s.realm))||tt(t,"pull");break;case"realm-removed":(null===(o=null==n?void 0:n.realms)||void 0===o?void 0:o.includes(s.realm))&&tt(t,"pull");break;case"realms-changed":tt(t,"pull");break;case"changes":if(console.debug("changes"),"error"===(null===(i=t.cloud.syncState.value)||void 0===i?void 0:i.phase)){tt(t,"pull");break}await t.transaction("rw",t.dx.tables,(async n=>{n.idbtrans.disableChangeTracking=!0,n.idbtrans.disableAccessControl=!0;const[r,o,i]=await Promise.all([t.getSchema(),t.getPersistedSyncState(),t.getCurrentUser()]);if(console.debug("ws message queue: in transaction"),!o||!r||!i)return void console.debug("required vars not present",{syncState:o,schema:r,currentUser:i});if(s.baseRev!==o.serverRevision)return console.debug(`baseRev (${s.baseRev}) differs from our serverRevision in syncState (${o.serverRevision})`),void("string"!=typeof s.baseRev||"bigint"!=typeof o.serverRevision&&"object"!=typeof o.serverRevision||tt(t,"pull"));const a=await e.waitFor(gt(o));if(console.debug("ourRealmSetHash",a),a!==s.realmSetHash)return console.debug("not same realmSetHash",s.realmSetHash),void tt(t,"pull");let c=[];if(i.isLoggedIn){const e=_t(t).map((e=>t.table(wt(e.name))));c=await kt(e),console.debug("msg queue: client changes",c)}if(s.changes.length>0){const e=an(s.changes,c);console.debug("applying filtered server changes",e),await sn(e,t)}o.latestRevisions=nn(c,o.latestRevisions),o.serverRevision=s.newRev,console.debug("Updating baseRefs",o.latestRevisions),await tn(t,r,o.latestRevisions,s.newRev),console.debug("Updating syncState",o),await t.$syncState.put(o,"syncState")})),console.debug("msg queue: done with rw transaction")}}catch(e){console.error("Error in msg queue",e)}}}()}finally{c[c.length-1]-c[0]<1e4&&(Date.now()-a<5e3?(console.warn("Slowing down websocket loop for one minute"),a=Date.now()+6e4,await new Promise((e=>setTimeout(e,6e4)))):(console.warn("Slowing down websocket loop for 10 seconds"),a=Date.now()+1e4,await new Promise((e=>setTimeout(e,1e4))))),s=!1,o.next(!0)}}})),{enqueue:function(e){n.push(e),i.next(null)},readyToServe:o}}const un=new WeakMap,ln={realms:"@realmId",members:"@id",roles:"[realmId+name]",$jobs:"",$syncState:"",$baseRevs:"[tableName+clientRev]",$logins:"claims.sub, lastLogin"};let dn=0;function hn(e){"vip"in e&&(e=e.vip);let t=un.get(e.cloud);if(!t){const n=new o;let r=new mt(`syncstatechanged-${e.name}`);n.id=++dn;let i=!1;t={get name(){return e.name},close:()=>e.close(),transaction:e.transaction.bind(e),table:e.table.bind(e),get tables(){return e.tables},cloud:e.cloud,get $jobs(){return e.table("$jobs")},get $syncState(){return e.table("$syncState")},get $baseRevs(){return e.table("$baseRevs")},get $logins(){return e.table("$logins")},get realms(){return e.realms},get members(){return e.members},get roles(){return e.roles},get initiallySynced(){return i},localSyncEvent:n,get syncStateChangedEvent(){return r},dx:e};const s={getCurrentUser:()=>t.$logins.toArray().then((e=>e.find((e=>e.isLoggedIn))||pt)),getPersistedSyncState:()=>t.$syncState.get("syncState"),getSchema:()=>t.$syncState.get("schema"),getOptions:()=>t.$syncState.get("options"),setInitiallySynced(e){i=e},reconfigure(){r=new mt(`syncstatechanged-${e.name}`)}};Object.assign(t,s),t.messageConsumer=cn(t),un.set(e.cloud,t)}return t}const fn="undefined"!=typeof InstallTrigger,pn="undefined"!=typeof navigator&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\/|Edge\//.test(navigator.userAgent),yn=pn?[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]:NaN,bn=pn&&yn<=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:gn}={};function _n(e){return gn.call(e).slice(8,-1)}function wn(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 Sn=/b|c|d|f|g|h|j|k|l|m|n|p|q|r|s|t|v|x|y|z/i;let kn=0;function xn(t){return{stack:"dbcore",name:"idGenerationMiddleware",level:1,create:n=>({...n,table:r=>{const o=n.table(r);function i(n,i){let s=null;const a=wn(o.schema.primaryKey,n);return a.forEach(((c,u)=>{if(void 0===c){const r=n.values[u].realmId||t.cloud.currentUserId,c=r.substr(r.length-3);a[u]=function(e,t){const n=new Uint8Array(18),r=new Uint8Array(n.buffer,0,6),o=Date.now();kn>=o?++kn:kn=o,r[0]=kn/1099511627776,r[1]=kn/4294967296,r[2]=kn/16777216,r[3]=kn/65536,r[4]=kn/256,r[5]=kn;const i=new Uint8Array(n.buffer,6);return crypto.getRandomValues(i),e+Nt(new Uint8Array(n.buffer))+(t||"")}(i,c),o.schema.primaryKey.outbound||(s||(s=n.values.slice()),s[u]=e.deepClone(s[u]),e.setByKeyPath(s[u],o.schema.primaryKey.keyPath,a[u]))}else if("string"!=typeof c||!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}.\n"If 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({...n,keys:a,values:s||n.values})}return{...o,mutate:n=>{var s,a;if(n.trans.disableChangeTracking)return o.mutate(n);if("add"===n.type||"put"===n.type){const c=null===(s=t.cloud.schema)||void 0===s?void 0:s[r];if(null==c?void 0:c.generatedGlobalId){if((null===(a=t.cloud.options)||void 0===a?void 0:a.databaseUrl)&&!t.initiallySynced){const e=wn(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 i(n,c.idPrefix)}if(null==c?void 0:c.markedForSync){wn(o.schema.primaryKey,n).forEach(((t,n)=>{if(!y(t)){const n=Array.isArray(t)?t.map(_n).join(","):_n(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)}}}})}}function En(e){const t=new Uint8Array(e);return crypto.getRandomValues(t),btoa(String.fromCharCode.apply(null,t))}let In=0;function Tn(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 Cn(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 An=new r(new Set);function Pn({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{...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=>wt(e)));i=n.transaction([...r,...e],o)}else i=n.transaction(r,o);if("readwrite"===o){i.txid=En(16),i.currentUser=e.value,An.value.add(i),An.next(An.value);const n=()=>{i.removeEventListener("complete",r),i.removeEventListener("error",n),i.removeEventListener("abort",n),An.value.delete(i),An.next(An.value)},r=()=>{var e;i.mutationsAdded&&(null===(e=t.cloud.options)||void 0===e?void 0:e.databaseUrl)&&(t.cloud.usingServiceWorker?(console.debug("registering sync event"),et(t,"push")):t.localSyncEvent.next({purpose:"push"})),n()};i.addEventListener("complete",r),i.addEventListener("error",n),i.addEventListener("abort",n)}return i},table:e=>{const t=n.table(e);if(/^\$/.test(e))return e.endsWith("_mutations")?{...t,mutate:e=>("add"!==e.type&&"put"!==e.type||(e.trans.mutationsAdded=!0),t.mutate(e))}:"$logins"===e?{...t,mutate:e=>(console.debug("Mutating $logins table",e),t.mutate(e).then((t=>(console.debug("Mutating $logins"),e.trans.mutationsAdded=!0,console.debug("$logins mutated"),t))).catch((e=>(console.debug("Failed mutation $logins",e),Promise.reject(e)))))}:t;const{schema:r}=t,i=o.get(e);return function(e){const t="$lock"+ ++In;return{...e,count:Tn(e.count,t),get:Tn(e.get,t),getMany:Tn(e.getMany,t),openCursor:Tn(e.openCursor,t),query:Tn(e.query,t),mutate:Cn(e.mutate,t)}}({...t,mutate:e=>{var n;const o=e.trans;return o.txid?o.disableChangeTracking?t.mutate(e):(null===(n=o.currentUser)||void 0===n?void 0:n.isLoggedIn)?"deleteRange"===e.type?t.query({query:{range:e.range,index:r.primaryKey},trans:e.trans,values:!1}).then((t=>s({type:"delete",keys:t.result,trans:e.trans,criteria:{index:null,range:e.range}}))):s(e):t.mutate(e):t.mutate(e)}});function s(e){const n=e.trans;n.mutationsAdded=!0;const{txid:r,currentUser:{userId:o}}=n,{type:s}=e;return t.mutate(e).then((t=>{const{numFailures:a,failures:c}=t;let u="delete"===s?e.keys:t.results,l="values"in e?e.values:[],d="changeSpecs"in e?e.changeSpecs:[];a&&(u=u.filter(((e,t)=>!c[t])),l=l.filter(((e,t)=>!c[t])),d=d.filter(((e,t)=>!c[t])));const h=Date.now(),f="delete"===e.type?{type:"delete",ts:h,keys:u,criteria:e.criteria,txid:r,userId:o}:"add"===e.type?{type:"insert",ts:h,keys:u,txid:r,userId:o,values:l}:e.criteria&&e.changeSpec?{type:"modify",ts:h,keys:u,criteria:e.criteria,changeSpec:e.changeSpec,txid:r,userId:o}:e.changeSpecs?{type:"update",ts:h,keys:u,changeSpecs:d,txid:r,userId:o}:{type:"upsert",ts:h,keys:u,values:l,txid:r,userId:o};return u.length>0||"criteria"in e&&e.criteria?i.mutate({type:"add",trans:n,values:[f]}).then((()=>t)):t}))}}}}}}function On(e,t){return function(n,r){const o={...ln,...n},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)(Sn.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 Un=En(16);async function $n(e,n,r,o,{awaitRemoteJob:s}={}){const a=e.table(r);if(await async function o(){if(await e.transaction("rw!",r,(async()=>{const e=await a.get(n);return e?e.heartbeat.getTime()<Date.now()-6e4&&(console.warn(`Latest ${n} worker seem to have died.\n`,"The dead job started:",e.started,"\n","Last heart beat was:",e.heartbeat,"\n","We're now taking over!"),await a.put({nodeId:Un,started:new Date,heartbeat:new Date},n),!0):(await a.add({nodeId:Un,started:new Date,heartbeat:new Date},n),!0)})))return!0;if(s)try{const e=i(t((()=>a.get(n)))).pipe(Ze(6e4),Ue((e=>!e)));return await e.toPromise(),!1}catch(e){if("TimeoutError"!==e.name)throw e;return await o()}return!1}()){const t=setInterval((()=>{a.update(n,(e=>e.nodeId===Un&&(e.heartbeat=new Date)))}),1e3);try{return await o()}finally{clearInterval(t),await e.transaction("rw!",r,(async()=>{const e=await a.get(n);e&&e.nodeId===Un&&a.delete(n)}))}}}const Dn=new r(!0),Nn=new r(!0);var Rn,jn;Dn.pipe(Me((e=>e?a(!0):a(!1).pipe(Ee(2e4)))),(function(e){return e.lift(new Ae(Rn,jn))})).subscribe(Nn);const Ln="undefined"!=typeof document?s(document,"visibilitychange"):a({}),Bn=Ln.pipe(Ue((()=>"hidden"===document.visibilityState))),Wn=Ln.pipe(Ue((()=>"visible"===document.visibilityState))),Fn="undefined"!=typeof window?c(Wn,s(window,"mousemove"),s(window,"keydown"),s(window,"wheel"),s(window,"touchmove")):a({});"undefined"!=typeof document&&c(a(!0),Bn,Fn).pipe(se((()=>"visible"===document.visibilityState)),qe((e=>{Dn.value!==e&&Dn.next(e)})),Me((e=>e?a(0).pipe(Ee(28e4),qe((()=>Dn.next(!1)))):a(0)))).subscribe((()=>{}));class Mn extends Error{constructor(){super(...arguments),this.name="TokenExpiredError"}}class Hn extends n{constructor(e,t,n,r,o,i,s,a){super((c=>new Kn(e,t,n,r,s,a,c,o,i)))}}let Vn=0;class Kn extends u{constructor(e,t,n,r,o,i,s,a,c){super((()=>this.teardown())),this.id=++Vn,console.debug("New WebSocket Connection",this.id,o?"authorized":"unauthorized"),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(){console.debug("Teardown WebSocket Connection",this.id),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(){this.disconnect(),this.connect()}async connect(){if(this.webSocketStatus.next("connecting"),this.lastServerActivity=new Date,this.pauseUntil&&this.pauseUntil>new Date)return void console.debug("WS not reconnecting just yet",{id:this.id,pauseUntil:this.pauseUntil});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 Mn);this.pinger=setInterval((async()=>{if(this.closed)return console.debug("pinger check",this.id,"CLOSED."),void this.teardown();if(this.ws)try{this.ws.send(JSON.stringify({type:"ping"})),setTimeout((()=>{if(console.debug("pinger setTimeout",this.id,this.pinger?"alive":"dead"),this.pinger)return this.closed?(console.debug("pinger setTimeout",this.id,"subscription is closed"),void this.teardown()):void(this.lastServerActivity<new Date(Date.now()-2e4)?(console.debug("pinger: server is inactive"),console.debug("pinger reconnecting"),this.reconnect()):console.debug("pinger: server still active"))}),2e4)}catch(e){console.debug("pinger catch error",this.id,"reconnecting"),this.reconnect()}else console.debug("pinger",this.id,"reconnecting"),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),console.debug("dexie-cloud WebSocket create");const n=this.ws=new WebSocket(`${e}/changes?${t}`);n.onclose=e=>{this.pinger&&(console.debug("dexie-cloud WebSocket onclosed",this.id),this.reconnect())},n.onmessage=e=>{if(this.pinger){console.debug("dexie-cloud WebSocket onmessage",e.data),this.lastServerActivity=new Date;try{const t=Jt.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{await new Promise(((e,t)=>{n.onopen=t=>{console.debug("dexie-cloud WebSocket onopen"),e(null)},n.onerror=e=>{const n=e.error||new Error("WebSocket Error");this.disconnect(),this.subscriber.error(n),this.webSocketStatus.next("error"),t(n)}})),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(Jt.stringify(e)))}))}catch(e){this.pauseUntil=new Date(Date.now()+6e4)}}}async function qn(e){var t;console.error("WebSocket observable: error but revive when user does some active thing...",e),await(t=3e3,new Promise((e=>setTimeout(e,t)))),console.debug("waiting for someone to do something"),await Fn.pipe(Ne(1)).toPromise(),console.debug("someone did something!")}async function zn(e){var t;return!(!(null===(t=e.cloud.options)||void 0===t?void 0:t.databaseUrl)||!e.cloud.schema)&&await rn(e,e.cloud.options,e.cloud.schema,{justCheckIfNeeded:!0})}const Gn=new WeakMap;function Jn(e,t,n,r){const o=Gn.get(e);if(o){if(o.pull||"push"===(null==r?void 0:r.purpose))return console.debug("syncIfPossible(): returning the ongoing sync promise."),o.promise;{let i=!1;const s=e.cloud.syncState.subscribe((e=>{"pulling"===e.phase&&(i=!0)}));return o.promise.then((()=>{s.unsubscribe()})).catch((e=>(s.unsubscribe(),Promise.reject(e)))).then((()=>{if(!i)return Jn(e,t,n,r)}))}}const i=async function(){try{e.cloud.usingServiceWorker?vn&&await rn(e,t,n,r):await $n(e,"currentSyncWorker","$jobs",(()=>rn(e,t,n,r))),Gn.delete(e),console.debug("Done sync")}catch(t){throw Gn.delete(e),console.error("Failed to sync client changes",t),t}}();return Gn.set(e,{promise:i,pull:"push"!==(null==r?void 0:r.purpose)}),i}function Yn(e,t,n){let r=null,o={cancelled:!1};function i(r,a=1){setTimeout((()=>{Jn(e,t,n,{cancelToken:o,retryImmediatelyOnFetchError:!0,purpose:r}).catch((e=>{console.error("error in syncIfPossible()",e),o.cancelled?s():a<3&&setTimeout((()=>i(r,a+1)),6e4*[0,5,15][a])}))}),0)}const s=()=>{console.debug("Stopping LocalSyncWorker"),o.cancelled=!0,r&&r.unsubscribe()};return{start:()=>{console.debug("Starting LocalSyncWorker",e.localSyncEvent.id),r=e.localSyncEvent.subscribe((({purpose:e})=>{try{i(e||"pull")}catch(e){console.error("What-the....",e)}}))},stop:s}}function Xn(e,t){if(e&&t&&t.unsyncedTables)for(const n of t.unsyncedTables)e[n]&&(e[n].markedForSync=!1)}var Zn,Qn,er,tr,nr={},rr=[],or=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function ir(e,t){for(var n in t)e[n]=t[n];return e}function sr(e){var t=e.parentNode;t&&t.removeChild(e)}function ar(e,t,n){var r,o,i,s=arguments,a={};for(i in t)"key"==i?r=t[i]:"ref"==i?o=t[i]:a[i]=t[i];if(arguments.length>3)for(n=[n],i=3;i<arguments.length;i++)n.push(s[i]);if(null!=n&&(a.children=n),"function"==typeof e&&null!=e.defaultProps)for(i in e.defaultProps)void 0===a[i]&&(a[i]=e.defaultProps[i]);return cr(e,a,r,o,null)}function cr(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.__v:o};return null!=Zn.vnode&&Zn.vnode(i),i}function ur(e){return e.children}function lr(e,t){this.props=e,this.context=t}function dr(e,t){if(null==t)return e.__?dr(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?dr(e):null}function hr(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 hr(e)}}function fr(e){(!e.__d&&(e.__d=!0)&&Qn.push(e)&&!pr.__r++||tr!==Zn.debounceRendering)&&((tr=Zn.debounceRendering)||er)(pr)}function pr(){for(var e;pr.__r=Qn.length;)e=Qn.sort((function(e,t){return e.__v.__b-t.__v.__b})),Qn=[],e.some((function(e){var t,n,r,o,i,s;e.__d&&(i=(o=(t=e).__v).__e,(s=t.__P)&&(n=[],(r=ir({},o)).__v=o.__v+1,Sr(s,o,r,t.__n,void 0!==s.ownerSVGElement,null!=o.__h?[i]:null,n,null==i?dr(o):i,o.__h),kr(n,o),o.__e!=i&&hr(o)))}))}function yr(e,t,n,r,o,i,s,a,c,u){var l,d,h,f,p,y,b,v=r&&r.__k||rr,m=v.length;for(n.__k=[],l=0;l<t.length;l++)if(null!=(f=n.__k[l]=null==(f=t[l])||"boolean"==typeof f?null:"string"==typeof f||"number"==typeof f||"bigint"==typeof f?cr(null,f,null,null,f):Array.isArray(f)?cr(ur,{children:f},null,null,null):f.__b>0?cr(f.type,f.props,f.key,null,f.__v):f)){if(f.__=n,f.__b=n.__b+1,null===(h=v[l])||h&&f.key==h.key&&f.type===h.type)v[l]=void 0;else for(d=0;d<m;d++){if((h=v[d])&&f.key==h.key&&f.type===h.type){v[d]=void 0;break}h=null}Sr(e,f,h=h||nr,o,i,s,a,c,u),p=f.__e,(d=f.ref)&&h.ref!=d&&(b||(b=[]),h.ref&&b.push(h.ref,null,f),b.push(d,f.__c||p,f)),null!=p?(null==y&&(y=p),"function"==typeof f.type&&null!=f.__k&&f.__k===h.__k?f.__d=c=br(f,c,e):c=vr(e,f,h,v,p,c),u||"option"!==n.type?"function"==typeof n.type&&(n.__d=c):e.value=""):c&&h.__e==c&&c.parentNode!=e&&(c=dr(h))}for(n.__e=y,l=m;l--;)null!=v[l]&&("function"==typeof n.type&&null!=v[l].__e&&v[l].__e==n.__d&&(n.__d=dr(r,l+1)),Ir(v[l],v[l]));if(b)for(l=0;l<b.length;l++)Er(b[l],b[++l],b[++l])}function br(e,t,n){var r,o;for(r=0;r<e.__k.length;r++)(o=e.__k[r])&&(o.__=e,t="function"==typeof o.type?br(o,t,n):vr(n,o,o,e.__k,o.__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||or.test(t)?n:n+"px"}function gr(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?wr:_r,i):e.removeEventListener(t,i?wr:_r,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 _r(e){this.l[e.type+!1](Zn.event?Zn.event(e):e)}function wr(e){this.l[e.type+!0](Zn.event?Zn.event(e):e)}function Sr(e,t,n,r,o,i,s,a,c){var u,l,d,h,f,p,y,b,v,m,g,_=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]),(u=Zn.__b)&&u(t);try{e:if("function"==typeof _){if(b=t.props,v=(u=_.contextType)&&r[u.__c],m=u?v?v.props.value:u.__:r,n.__c?y=(l=t.__c=n.__c).__=l.__E:("prototype"in _&&_.prototype.render?t.__c=l=new _(b,m):(t.__c=l=new lr(b,m),l.constructor=_,l.render=Tr),v&&v.sub(l),l.props=b,l.state||(l.state={}),l.context=m,l.__n=r,d=l.__d=!0,l.__h=[]),null==l.__s&&(l.__s=l.state),null!=_.getDerivedStateFromProps&&(l.__s==l.state&&(l.__s=ir({},l.__s)),ir(l.__s,_.getDerivedStateFromProps(b,l.__s))),h=l.props,f=l.state,d)null==_.getDerivedStateFromProps&&null!=l.componentWillMount&&l.componentWillMount(),null!=l.componentDidMount&&l.__h.push(l.componentDidMount);else{if(null==_.getDerivedStateFromProps&&b!==h&&null!=l.componentWillReceiveProps&&l.componentWillReceiveProps(b,m),!l.__e&&null!=l.shouldComponentUpdate&&!1===l.shouldComponentUpdate(b,l.__s,m)||t.__v===n.__v){l.props=b,l.state=l.__s,t.__v!==n.__v&&(l.__d=!1),l.__v=t,t.__e=n.__e,t.__k=n.__k,t.__k.forEach((function(e){e&&(e.__=t)})),l.__h.length&&s.push(l);break e}null!=l.componentWillUpdate&&l.componentWillUpdate(b,l.__s,m),null!=l.componentDidUpdate&&l.__h.push((function(){l.componentDidUpdate(h,f,p)}))}l.context=m,l.props=b,l.state=l.__s,(u=Zn.__r)&&u(t),l.__d=!1,l.__v=t,l.__P=e,u=l.render(l.props,l.state,l.context),l.state=l.__s,null!=l.getChildContext&&(r=ir(ir({},r),l.getChildContext())),d||null==l.getSnapshotBeforeUpdate||(p=l.getSnapshotBeforeUpdate(h,f)),g=null!=u&&u.type===ur&&null==u.key?u.props.children:u,yr(e,Array.isArray(g)?g:[g],t,n,r,o,i,s,a,c),l.base=t.__e,t.__h=null,l.__h.length&&s.push(l),y&&(l.__E=l.__=null),l.__e=!1}else null==i&&t.__v===n.__v?(t.__k=n.__k,t.__e=n.__e):t.__e=xr(n.__e,t,n,r,o,i,s,c);(u=Zn.diffed)&&u(t)}catch(e){t.__v=null,(c||null!=i)&&(t.__e=a,t.__h=!!c,i[i.indexOf(a)]=null),Zn.__e(e,t,n)}}function kr(e,t){Zn.__c&&Zn.__c(t,e),e.some((function(t){try{e=t.__h,t.__h=[],e.some((function(e){e.call(t)}))}catch(e){Zn.__e(e,t.__v)}}))}function xr(e,t,n,r,o,i,s,a){var c,u,l,d,h=n.props,f=t.props,p=t.type,y=0;if("svg"===p&&(o=!0),null!=i)for(;y<i.length;y++)if((c=i[y])&&(c===e||(p?c.localName==p:3==c.nodeType))){e=c,i[y]=null;break}if(null==e){if(null===p)return document.createTextNode(f);e=o?document.createElementNS("http://www.w3.org/2000/svg",p):document.createElement(p,f.is&&f),i=null,a=!1}if(null===p)h===f||a&&e.data===f||(e.data=f);else{if(i=i&&rr.slice.call(e.childNodes),u=(h=n.props||nr).dangerouslySetInnerHTML,l=f.dangerouslySetInnerHTML,!a){if(null!=i)for(h={},d=0;d<e.attributes.length;d++)h[e.attributes[d].name]=e.attributes[d].value;(l||u)&&(l&&(u&&l.__html==u.__html||l.__html===e.innerHTML)||(e.innerHTML=l&&l.__html||""))}if(function(e,t,n,r,o){var i;for(i in n)"children"===i||"key"===i||i in t||gr(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]||gr(e,i,t[i],n[i],r)}(e,f,h,o,a),l)t.__k=[];else if(y=t.props.children,yr(e,Array.isArray(y)?y:[y],t,n,r,o&&"foreignObject"!==p,i,s,e.firstChild,a),null!=i)for(y=i.length;y--;)null!=i[y]&&sr(i[y]);a||("value"in f&&void 0!==(y=f.value)&&(y!==e.value||"progress"===p&&!y)&&gr(e,"value",y,h.value,!1),"checked"in f&&void 0!==(y=f.checked)&&y!==e.checked&&gr(e,"checked",y,h.checked,!1))}return e}function Er(e,t,n){try{"function"==typeof e?e(t):e.current=t}catch(e){Zn.__e(e,n)}}function Ir(e,t,n){var r,o,i;if(Zn.unmount&&Zn.unmount(e),(r=e.ref)&&(r.current&&r.current!==e.__e||Er(r,null,t)),n||"function"==typeof e.type||(n=null!=(o=e.__e)),e.__e=e.__d=void 0,null!=(r=e.__c)){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(e){Zn.__e(e,t)}r.base=r.__P=null}if(r=e.__k)for(i=0;i<r.length;i++)r[i]&&Ir(r[i],t,n);null!=o&&sr(o)}function Tr(e,t,n){return this.constructor(e,n)}Zn={__e:function(e,t){for(var n,r,o;t=t.__;)if((n=t.__c)&&!n.__)try{if((r=n.constructor)&&null!=r.getDerivedStateFromError&&(n.setState(r.getDerivedStateFromError(e)),o=n.__d),null!=n.componentDidCatch&&(n.componentDidCatch(e),o=n.__d),o)return n.__E=n}catch(t){e=t}throw e},__v:0},lr.prototype.setState=function(e,t){var n;n=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=ir({},this.state),"function"==typeof e&&(e=e(ir({},n),this.props)),e&&ir(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=ur,Qn=[],er="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,pr.__r=0;const Cr={Error:{color:"red"},Alert:{error:{color:"red"},warning:{color:"yellow"},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"},Input:{height:"35px",width:"17em",borderColor:"#ccf4",outline:"none",fontSize:"17pt",padding:"8px"}};function Ar({children:e}){return ar("div",null,ar("div",{style:Cr.Darken}),ar("div",{style:Cr.DialogOuter},ar("div",{style:Cr.DialogInner},e)))}var Pr,Or,Ur,$r=0,Dr=[],Nr=Zn.__b,Rr=Zn.__r,jr=Zn.diffed,Lr=Zn.__c,Br=Zn.unmount;function Wr(e,t){Zn.__h&&Zn.__h(Or,e,$r||t),$r=0;var n=Or.__H||(Or.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({}),n.__[e]}function Fr(e){return $r=1,function(e,t,n){var r=Wr(Pr++,2);return r.t=e,r.__c||(r.__=[n?n(t):Gr(void 0,t),function(e){var t=r.t(r.__[0],e);r.__[0]!==t&&(r.__=[t,r.__[1]],r.__c.setState({}))}],r.__c=Or),r.__}(Gr,e)}function Mr(e){return $r=5,function(e,t){var n=Wr(Pr++,7);return zr(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}((function(){return{current:e}}),[])}function Hr(){Dr.forEach((function(e){if(e.__P)try{e.__H.__h.forEach(Kr),e.__H.__h.forEach(qr),e.__H.__h=[]}catch(t){e.__H.__h=[],Zn.__e(t,e.__v)}})),Dr=[]}Zn.__b=function(e){Or=null,Nr&&Nr(e)},Zn.__r=function(e){Rr&&Rr(e),Pr=0;var t=(Or=e.__c).__H;t&&(t.__h.forEach(Kr),t.__h.forEach(qr),t.__h=[])},Zn.diffed=function(e){jr&&jr(e);var t=e.__c;t&&t.__H&&t.__H.__h.length&&(1!==Dr.push(t)&&Ur===Zn.requestAnimationFrame||((Ur=Zn.requestAnimationFrame)||function(e){var t,n=function(){clearTimeout(r),Vr&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,100);Vr&&(t=requestAnimationFrame(n))})(Hr)),Or=void 0},Zn.__c=function(e,t){t.some((function(e){try{e.__h.forEach(Kr),e.__h=e.__h.filter((function(e){return!e.__||qr(e)}))}catch(n){t.some((function(e){e.__h&&(e.__h=[])})),t=[],Zn.__e(n,e.__v)}})),Lr&&Lr(e,t)},Zn.unmount=function(e){Br&&Br(e);var t=e.__c;if(t&&t.__H)try{t.__H.__.forEach(Kr)}catch(e){Zn.__e(e,t.__v)}};var Vr="function"==typeof requestAnimationFrame;function Kr(e){var t=Or;"function"==typeof e.__c&&e.__c(),Or=t}function qr(e){var t=Or;e.__c=e.__(),Or=t}function zr(e,t){return!e||e.length!==t.length||t.some((function(t,n){return t!==e[n]}))}function Gr(e,t){return"function"==typeof t?t(e):t}function Jr({title:e,alerts:t,fields:n,onCancel:r,onSubmit:o}){const[i,s]=Fr({}),a=Mr();return function(e,t){var n=Wr(Pr++,4);!Zn.__s&&zr(n.__H,t)&&(n.__=e,n.__H=t,Or.__h.push(n))}((()=>{var e;return null===(e=a.current)||void 0===e?void 0:e.focus()}),[]),ar(Ar,null,ar(ur,null,ar("h3",{style:Cr.WindowHeader},e),t.map((e=>ar("p",{style:Cr.Alert[e.type]},function({message:e,messageCode:t,messageParams:n}){return e.replace(/\{\w+\}/gi,(e=>n[e.substr(1,e.length-2)]))}(e)))),ar("form",{onSubmit:e=>{e.preventDefault(),o(i)}},Object.entries(n).map((([e,{type:t,label:n,placeholder:r}],o)=>ar("label",{style:Cr.Label},n?`${n}: `:"",ar("input",{ref:0===o?a:void 0,type:t,name:e,autoComplete:"on",style:Cr.Input,autoFocus:!0,placeholder:r,value:i[e]||"",onInput:n=>{var r;return s({...i,[e]:Yr(t,null===(r=n.target)||void 0===r?void 0:r.value)})}})))))),ar("div",{style:Cr.ButtonsDiv},ar("button",{type:"submit",style:Cr.Button,onClick:()=>o(i)},"Submit"),ar("button",{style:Cr.Button,onClick:r},"Cancel")))}function Yr(e,t){switch(e){case"email":return t.toLowerCase();case"otp":return t.toUpperCase();default:return t}}class Xr extends lr{constructor(e){super(e),this.observer=e=>this.setState({userInteraction:e}),this.state={userInteraction:void 0}}componentDidMount(){this.subscription=i(this.props.db.cloud.userInteraction).subscribe(this.observer)}componentWillUnmount(){this.subscription&&(this.subscription.unsubscribe(),delete this.subscription)}render(e,{userInteraction:t}){return t?ar(Jr,Object.assign({},t)):null}}function Zr(e){const t=document.createElement("div");document.body.appendChild(t),function(e,t,n){var r,o,i;Zn.__&&Zn.__(e,t),o=(r="function"==typeof n)?null:n&&n.__k||t.__k,i=[],Sr(t,e=(!r&&n||t).__k=ar(ur,null,[e]),o||nr,nr,void 0!==t.ownerSVGElement,!r&&n?[n]:o?null:t.firstChild?rr.slice.call(t.childNodes):null,i,!r&&n?n:o?o.__e:t.firstChild,r),kr(i,e)}(ar(Xr,{db:e.vip}),t);let n=!1;return{unsubscribe(){t.remove(),n=!0},get closed(){return n}}}function Qr(n){const o=n.name,c=new r(pt),u=[];let h=null;n.on("ready",(async n=>{try{await async function(n){var r,o,y,b,v,m;f=!1;const g=hn(n);vn||((null===(r=g.cloud.options)||void 0===r?void 0:r.customLoginGui)||u.push(Zr(n)),u.push(function(e){let t=e.cloud.webSocketStatus.value;const n=e.cloud.webSocketStatus.pipe(Me((e=>{const n=t;t=e;const r=a(e);switch(e){case"disconnected":return Dn.value?r.pipe(ye(500)):r;case"connecting":return"not-started"===n||"error"===n?r:r.pipe(ye(4e3));default:return r}})));return d([n,e.syncStateChangedEvent.pipe(Fe({phase:"initial"})),Nn]).pipe(se((([t,n,r])=>{let{phase:o,error:i,progress:s}=n,a=t;return"error"===o&&(a="error"),"not-started"===t&&("pushing"!==o&&"pulling"!==o||(a="connecting")),"error"!==e.cloud.syncState.value.phase||"pushing"!==n.phase&&"pulling"!==n.phase||(a="connecting"),r||(a="disconnected"),{phase:o,error:i,progress:s,status:en?a:"offline"}})))}(g).subscribe(n.cloud.syncState)));g.tables.every((e=>e.core))||mn();const _="serviceWorker"in navigator?await navigator.serviceWorker.getRegistrations():[],w=await g.transaction("rw",g.$syncState,(async()=>{var e,t;const{options:n,schema:r}=g.cloud,[o,i,s]=await Promise.all([g.getOptions(),g.getSchema(),g.getPersistedSyncState()]);if(n?o&&JSON.stringify(o)===JSON.stringify(n)||await g.$syncState.put(n,"options"):g.cloud.options=o||null,(null===(e=g.cloud.options)||void 0===e?void 0:e.tryUseServiceWorker)&&"serviceWorker"in navigator&&_.length>0&&!bn?(console.debug("Dexie Cloud Addon: Using service worker"),g.cloud.usingServiceWorker=!0):((null===(t=g.cloud.options)||void 0===t?void 0:t.tryUseServiceWorker)&&!vn&&console.debug("dexie-cloud-addon: Not using service worker.",0===_.length?"No SW registrations found.":"serviceWorker"in navigator&&bn?"Avoiding SW background sync and SW periodic bg sync for this browser due to browser bugs.":"navigator.serviceWorker not present"),g.cloud.usingServiceWorker=!1),Xn(r,g.cloud.options),Xn(i,g.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]={...n}}await g.$syncState.put(e,"schema"),Object.assign(r,e)}}else g.cloud.schema=i||null;return null==s?void 0:s.initiallySynced}));w&&g.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`)}})(g),(null===(o=g.cloud.options)||void 0===o?void 0:o.databaseUrl)&&!w&&(await async function(e,t,n){console.debug("Performing initial sync"),await $n(e,"initialSync","$jobs",(async()=>{const r=await e.getPersistedSyncState();(null==r?void 0:r.initiallySynced)||await rn(e,t,n,{isInitialSync:!0})}),{awaitRemoteJob:!0}),console.debug("Done initial sync")}(g,g.cloud.options,g.cloud.schema),g.setInitiallySynced(!0));p(),vn||(u.push(t((()=>g.getCurrentUser())).subscribe(c)),u.push(t((()=>g.getPersistedSyncState())).subscribe(g.cloud.persistedSyncState)),await d([c.pipe(Le(1),Ne(1)),g.cloud.persistedSyncState.pipe(Le(1),Ne(1))]).toPromise());(null===(y=g.cloud.options)||void 0===y?void 0:y.requireAuth)&&await ft(g);h&&h.stop();h=null,p(),g.cloud.usingServiceWorker&&(null===(b=g.cloud.options)||void 0===b?void 0:b.databaseUrl)?(et(g,"push").catch((()=>{})),async function(e){var t;try{const{periodicSync:n}=await navigator.serviceWorker.ready;if(n)try{await n.register(`dexie-cloud:${e.name}`,null===(t=e.cloud.options)||void 0===t?void 0:t.periodicSync),console.debug(`Dexie Cloud: Successfully registered periodicsync event for ${e.name}`)}catch(e){console.debug("Dexie Cloud: Failed to register periodic sync. Your PWA must be installed to allow background sync.",e)}else console.debug("Dexie Cloud: periodicSync not supported.")}catch(t){console.debug(`Dexie Cloud: Could not register periodicSync for ${e.name}`,t)}}(g).catch((()=>{}))):(null===(v=g.cloud.options)||void 0===v?void 0:v.databaseUrl)&&g.cloud.schema&&!vn&&(h=Yn(g,g.cloud.options,g.cloud.schema),h.start(),tt(g,"push"));p(),vn||u.push(s(self,"online").subscribe((()=>{console.debug("online!"),g.syncStateChangedEvent.next({phase:"not-in-sync"}),tt(g,"push")})),s(self,"offline").subscribe((()=>{console.debug("offline!"),g.syncStateChangedEvent.next({phase:"offline"})})));"undefined"!=typeof window&&!vn&&(null===(m=g.cloud.options)||void 0===m?void 0:m.databaseUrl)&&u.push(function(e){var t;if(!(null===(t=e.cloud.options)||void 0===t?void 0:t.databaseUrl))throw new Error("No database URL to connect WebSocket to");const n=e.messageConsumer.readyToServe.pipe(Ue((e=>e)),Me((()=>e.getPersistedSyncState())),Ue((e=>e&&e.serverRevision)),se((e=>({type:"ready",rev:e.serverRevision}))));return function t(){return e.cloud.persistedSyncState.pipe(Ue((e=>null==e?void 0:e.serverRevision)),Ne(1),Me((t=>e.cloud.currentUser.pipe(se((e=>[e,t]))))),Me((([e,t])=>Nn.pipe(se((n=>[n?e:null,t]))))),Me((async([e,t])=>[e,await gt(t)])),Me((([t,r])=>t?new Hn(e.cloud.options.databaseUrl,e.cloud.persistedSyncState.value.serverRevision,r,e.cloud.persistedSyncState.value.clientIdentity,n,e.cloud.webSocketStatus,t.accessToken,t.accessTokenExpiration):i([]))),Z((n=>"TokenExpiredError"===(null==n?void 0:n.name)?(console.debug("WebSocket observable: Token expired. Refreshing token..."),a(!0).pipe(Me((async()=>{const t=await e.getCurrentUser(),n=await ut(e.cloud.options.databaseUrl,t);await e.table("$logins").update(t.userId,{accessToken:n.accessToken,accessTokenExpiration:n.accessTokenExpiration})})),Me((()=>t())))):l(n))),Z((e=>i(qn(e)).pipe(Me((()=>t()))))))}().subscribe((t=>{t&&(console.debug("WS got message",t),e.messageConsumer.enqueue(t))}),(e=>{console.error("Oops! The main observable errored!",e)}),(()=>{console.error("Oops! The main observable completed!")}))}(g))}(n)}catch(e){console.error(e)}}),!0);let f=!1;function p(){if(f)throw new e.DatabaseClosedError}var y;!function(e,t){e.on.close.subscribe(t);const n=e.close;e.close=function(){n.call(this),t()}}(n,(()=>{u.forEach((e=>e.unsubscribe())),f=!0,h&&h.stop(),h=null,c.next(pt)})),n.cloud={version:"1.0.0-beta.10",options:null,schema:null,serverState:null,get currentUserId(){return c.value.userId||pt.userId},currentUser:c,syncState:new r({phase:"initial",status:"not-started"}),persistedSyncState:new r(void 0),userInteraction:new r(void 0),webSocketStatus:new r("not-started"),async login(e){const t=hn(n);await t.cloud.sync(),await ft(t,e)},configure(e){n.cloud.options=e,e.databaseUrl&&(n.name=`${o}-${function(e){const t=new URL(e);return"/"===t.pathname?t.hostname.split(".")[0]:t.pathname.split("/")[1]}(e.databaseUrl)}`,hn(n).reconfigure()),Xn(n.cloud.schema,n.cloud.options)},async sync({wait:e,purpose:r}={wait:!0,purpose:"push"}){void 0===e&&(e=!0);const o=hn(n);if("pull"===r){const t=o.cloud.persistedSyncState.value;if(tt(o,r),e){const e=await o.cloud.persistedSyncState.pipe(Ue((e=>null!=(null==e?void 0:e.timestamp)&&(!t||e.timestamp>t.timestamp))),Ne(1)).toPromise();if(null==e?void 0:e.error)throw new Error("Sync error: "+e.error)}}else if(await zn(o)){const n=o.cloud.persistedSyncState.value;tt(o,r),e&&(console.debug("db.cloud.login() is waiting for sync completion..."),await i(t((async()=>{const e=await zn(o),t=await o.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(Ue((e=>!e)),Ne(1)).toPromise(),console.debug("Done waiting for sync completion because we have nothing to push anymore"))}}},n.Version.prototype._parseStoresSpec=e.override(n.Version.prototype._parseStoresSpec,(e=>On(e,n))),n.use(Pn({currentUserObservable:n.cloud.currentUser,db:hn(n)})),n.use((y=hn(n),{stack:"dbcore",name:"implicitPropSetterMiddleware",level:1,create:e=>({...e,table:t=>{const n=e.table(t);return{...n,mutate:e=>{var r,o,i;const s=e.trans;if((null===(o=null===(r=y.cloud.schema)||void 0===r?void 0:r[t])||void 0===o?void 0:o.markedForSync)&&(null===(i=s.currentUser)||void 0===i?void 0:i.isLoggedIn)&&("add"===e.type||"put"===e.type))for(const t of e.values)"owner"in t||(t.owner=s.currentUser.userId),"realmId"in t||(t.realmId=s.currentUser.userId);return n.mutate(e)}}}})})),n.use(xn(hn(n)))}Qr.version="1.0.0-beta.10",e.Cloud=Qr;export default Qr;export{Qr as dexieCloud};
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["dist/modern/dexie-cloud-addon.js"],"names":["Dexie","liveQuery","Observable$1","BehaviorSubject","Subject","from$1","fromEvent","of$1","merge","Subscription$1","throwError$1","combineLatest","randomFillSync","crypto","getRandomValues","setByKeyPath","obj","keyPath","value","undefined","Object","isFrozen","b","Error","assert","i","l","length","period","indexOf","currentKeyPath","substr","remainingKeyPath","Array","isArray","isNaN","parseInt","splice","innerObj","randomString$1","self","bytes","buf","Buffer","alloc","toString","Uint8Array","btoa","String","fromCharCode","apply","isValidSyncableID","id","some","key","every","isValidSyncableIDPart","part","applyOperation","target","table","op","tbl","type","keys","forEach","idx","val","values","changeSpec","changeSpecs","entry","propPath","entries","assign","mod","applyOperations","ops","muts","mut","extendStatics","d","setPrototypeOf","__proto__","p","hasOwnProperty","__extends","__","this","constructor","prototype","create","isFunction","x","_enable_super_gross_mode_that_will_cause_bad_things","config","Promise","useDeprecatedSynchronousErrorHandling","stack","hostReportError","err","setTimeout","empty$1","closed","next","error","complete","isObject","UnsubscriptionError","UnsubscriptionErrorImpl","errors","call","message","map","join","name","Subscription","unsubscribe","_parentOrParents","_subscriptions","_ctorUnsubscribe","_unsubscribe","_a","remove","index","e","flattenUnsubscriptionErrors","len","sub","concat","push","add","teardown","subscription","EMPTY","tmp","subscriptions","subscriptionIndex","empty","reduce","errs","rxSubscriber","Symbol","Math","random","Subscriber","_super","destinationOrNext","_this","syncErrorValue","syncErrorThrown","syncErrorThrowable","isStopped","arguments","destination","SafeSubscriber","subscriber","_next","_error","_complete","_unsubscribeAndRecycle","_parentSubscriber","observerOrNext","context","bind","_context","__tryOrSetError","__tryOrUnsub","wrappedComplete","fn","parent","observable","identity","pipeFromArray","fns","input","prev","Observable","subscribe","_isScalar","_subscribe","lift","operator","source","sink","nextOrObserver","toSubscriber","_trySubscribe","observer","closed_1","canReportError","console","warn","promiseCtor","getPromiseCtor","resolve","reject","pipe","operations","_i","toPromise","subscribeToArray","array","getSymbolIterator","iterator","isArrayLike","isPromise","then","subscribeTo","result","obs","TypeError","promise","iterable","iterator$1","item","done","return","SimpleInnerSubscriber","notifyNext","notifyError","notifyComplete","SimpleOuterSubscriber","innerValue","innerSubscribe","innerSubscriber","AsyncAction","scheduler","work","pending","schedule","state","delay","recycleAsyncId","requestAsyncId","setInterval","flush","clearInterval","execute","_execute","errored","errorValue","actions","Action","Scheduler","SchedulerAction","now","Date","async","AsyncScheduler","delegate","active","scheduled","action","shift","isScheduler","catchError","selector","CatchOperator","caught","CatchSubscriber","err2","innerSubscription","scheduleArray","fromArray","isInteropObservable","observable$1","scheduleObservable","schedulePromise","isIterable","scheduleIterable","from","of","args","pop","project","thisArg","MapOperator","MapSubscriber","count","mergeMap","resultSelector","concurrent","Number","POSITIVE_INFINITY","a","ii","MergeMapOperator","MergeMapSubscriber","hasCompleted","buffer","_tryNext","_innerSub","ish","mergeAll","concatAll","observables","debounceTime","dueTime","DebounceTimeOperator","DebounceTimeSubscriber","debouncedSubscription","lastValue","hasValue","clearDebounce","dispatchNext","debouncedNext","isDate","emptyScheduled","throwError","dispatch","Notification","kind","observe","do","accept","toObservable","createNext","undefinedValueNotification","createError","createComplete","completeNotification","delayFor","abs","DelayOperator","DelaySubscriber","queue","time","notification","delay_1","max","_schedule","scheduleNotification","DelayMessage","DistinctUntilChangedOperator","compare","keySelector","DistinctUntilChangedSubscriber","hasKey","y","ArgumentOutOfRangeError","ArgumentOutOfRangeErrorImpl","filter","predicate","FilterOperator","FilterSubscriber","take","TakeOperator","total","TakeSubscriber","skip","SkipOperator","SkipSubscriber","startWith","switchMap","SwitchMapOperator","SwitchMapSubscriber","noop","tap","DoOperator","TapSubscriber","_tapNext","_tapError","_tapComplete","TimeoutError","TimeoutErrorImpl","TimeoutWithOperator","waitFor","absoluteTimeout","withObservable","TimeoutWithSubscriber","scheduleTimeout","dispatchTimeout","timeout","due","timeoutWith","hasComplainedAboutSyncEvent","registerSyncEvent","db","purpose","sw","navigator","serviceWorker","ready","sync","register","postMessage","dbName","debug","triggerSync","cloud","usingServiceWorker","localSyncEvent","b64decode","base64","binary_string","atob","charCodeAt","b64encode","ArrayBuffer","isView","byteOffset","byteLength","interactWithUser","userInteraction","req","interactionProps","onSubmit","res","onCancel","AbortError","alertUser","title","alerts","fields","promptForEmail","emailHint","email","test","messageCode","messageParams","placeholder","promptForOTP","alert","otp","label","authenticate","url","fetchToken","hints","accessToken","accessTokenExpiration","getTime","refreshToken","refreshTokenExpiration","refreshAccessToken","privateKey","publicKey","subtle","generateKey","modulusLength","publicExponent","hash","nonExportablePrivateKey","publicKeyPEM","keydata","keydataB64","str","finalString","substring","formatAsPem","spkiToPEM","exportKey","response2","public_key","userId","claims","catch","userAuthenticate","login","time_stamp","signing_algorithm","data","TextEncoder","encode","binarySignature","sign","signature","tokenRequest","grant_type","refresh_token","scopes","fetch","body","JSON","stringify","method","headers","Content-Type","mode","status","response","json","wm$1","WeakMap","AuthPersistedContext","[object Object]","userLogin","set","get","lastLogin","put","HttpError","super","statusText","httpStatus","getCurrentUser","isLoggedIn","currentUser","currentUserId","options","databaseUrl","fetchTokens","demo_user","res1","errMsg","text","otp_id","res2","errorText","otpFetchTokenCallback","save","user","$logins","transaction","tx","existingLogins","toArray","all","setCurrentUser","UNAUTHORIZED_USER","freeze","swHolder","swContainer","document","registration","addEventListener","ev","_b","startsWith","matchAll","includeUncontrolled","client","SWBroadcastChannel","listener","forwarder","removeEventListener","BroadcastedAndLocalEvent","bc","BroadcastChannel","onCustomEvent","detail","onMessageEvent","CustomEvent","dispatchEvent","computeRealmSetHash","realms","inviteRealms","realmId","accepted","sort","byteArray","digestBytes","digest","getSyncableTables","schema","markedForSync","getMutationTable","tableName","getTableFromMutationTable","mutationTable","exec","listClientChanges","mutationTables","since","limit","Infinity","lastRevision","query","where","above","toStr","ObjectDef","replace","dollarKeys","clone","k","TypesonSimplified","typeDefsInputs","typeDefs","c","protoMap","alternateChannel","space","realVal","typeDef","proto","getPrototypeOf","toStringTag","slice","find","typeName","function","getTypeDef","tson","unescapeParentKeys","parse","$t","revive","BisonBinaryTypes","Blob","blob","altChannel","mimeType","numberDef","number","num","v","bigIntDef","bigint","BigInt","DateDef","date","toISOString","NaN","SetDef","Set","MapDef","Map","_global","globalThis","global","TypedArraysDefs","specs","_","TypedArray","b64LexEncode","encoded","ENCODE_TABLE","b64ToLex","b64LexDecode","b64Lex","base64lex","DECODE_TABLE","lexToB64","-","0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","f","g","h","j","m","n","o","q","r","s","t","u","w","z","|","ArrayBufferDef","ab","ba","FakeBlob","readBlobSync","XMLHttpRequest","overrideMimeType","open","URL","createObjectURL","send","responseText","string2ArrayBuffer","builtin","readBlobBinary","reader","FileReader","onabort","onerror","onload","readAsArrayBuffer","undefinedDef","hasBigIntSupport","FakeBigInt","defs","fakeBigInt","TSON","BISON","lenBuf","DataView","setUint32","size","binaries","binData","pos","arrayBuffers","view","getUint32","readAsText","readBlob","Bison","syncWithServer","changes","syncState","baseRevs","clientIdentity","Accept","refreshedLogin","update","loadAccessToken","Authorization","syncRequest","dbID","remoteDbId","lastPull","serverRevision","syncStateChangedEvent","phase","ok","fromBinary","bulkUpdate","objs","bulkGet","resultKeys","resultObjs","primKey","bulkPut","throwIfCancelled","cancelToken","cancelled","isOnline","onLine","updateBaseRevs","latestRevisions","serverRev","$baseRevs","clientRev","getLatestRevisionsPerTable","clientChangeSet","lastRevisions","lastRev","rev","syncOptions","_sync","justCheckIfNeeded","retryImmediatelyOnFetchError","$syncState","timestamp","isInitialSync","tablesToSync","persistedSyncState","getPersistedSyncState","tablesToSyncify","syncedTables","includes","getTablesToSyncify","doSyncify","idbtrans","disableChangeTracking","disableAccessControl","syncifiedTables","alreadySyncedRealms","ignoredRealms","toCollection","modify","member","has","realm","owner","modifyLocalObjectsWithNewUserId","tables","clientChanges","syncificationInserts","extractKey","core","primaryKey","dexieCloudTableSchema","generatedGlobalId","idPrefix","unsyncedObjects","listSyncifiedChanges","syncIsNeeded","addedClientChanges","mutTable","ch","latestRev","belowOrEqual","delete","between","reverse","offset","clear","prevState","deletedRealms","previousRealmSet","updatedRealmSet","deletedRealmSet","indexes","anyOf","deleteObjectsFromRemovedRealms","newSyncState","dbId","initiallySynced","filteredChanges","filterServerChangesThroughAddedClientChanges","applyServerChanges","currentTransaction","outbound","bulkAdd","bulkDelete","serverChanges","localPostChanges","changesToSubtract","_c","mutationSet","targetMut","subtractChanges","inSet","txid","mapEntry","resultEntry","optype","toDBOperationSet","MessagesFromServerConsumer","readyToServe","event","isWorking","loopWarning","loopDetection","msg","dx","getSchema","baseRev","ourRealmSetHash","realmSetHash","newRev","consumeQueue","enqueue","wm","DEXIE_CLOUD_SCHEMA","members","roles","$jobs","static_counter","DexieCloudDB","close","helperMethods","logins","getOptions","messageConsumer","isFirefox","InstallTrigger","isSafari","userAgent","safariVersion","match","DISABLE_SERVICEWORKER_STRATEGY","IS_SERVICE_WORKER","throwVersionIncrementNeeded","SchemaError","getEffectiveKeys","consonants","createIdGenerationMiddleware","level","generateOrVerifyAtKeys","valueClones","colocatedId","shardKey","prefix","timePart","randomPart","deepClone","ConstraintError","mutate","trans","cloudTableSchema","getMany","cache","results","randomString","counter$1","readLock","prop","readers","writers","numWriters","finally","writeLock","possiblePromises","remaining","reason","outstandingTransactions","createMutationTrackingMiddleware","currentUserObservable","ordinaryTables","mutTableMap","removeTransaction","txComplete","mutationsAdded","endsWith","mutsTable","openCursor","guardedTable","range","mutateAndLog","criteria","numFailures","hasFailures","failures","ts","overrideParseStoresSpec","origFunc","dexie","stores","dbSchema","storesClone","cloudSchema","allPrefixes","schemaSrc","rv","toLocaleLowerCase","toLowerCase","orig","bits","bitFix","upperFixed","toUpperCase","nextChar","generateTablePrefix","deleted","myId","performGuardedJob","jobName","jobsTableName","job","awaitRemoteJob","jobsTable","aquireLock","currentWork","heartbeat","started","nodeId","jobDoneObservable","userIsActive","userIsReallyActive","isActive","visibilityStateIsChanged","documentBecomesHidden","visibilityState","documentBecomesVisible","userDoesSomething","window","USER_INACTIVITY_TIMEOUT","TokenExpiredError","WSObservable","messageProducer","webSocketStatus","token","tokenExpiration","WSConnection","counter","lastUserActivity","messageProducerSubscription","connect","disconnect","pinger","ws","lastServerActivity","pauseUntil","reconnect","wsUrl","protocol","searchParams","URLSearchParams","WebSocket","onclose","onmessage","onopen","waitAndReconnectWhenUserDoesSomething","ms","isSyncNeeded","ongoingSyncs","syncIfPossible","cloudOptions","ongoing","pull","hasPullTakenPlace","_syncIfPossible","LocalSyncWorker","localSyncEventSubscription","syncAndRetry","retryNum","stop","start","updateSchemaFromOptions","unsyncedTables","u$1","i$1","t$1","r$1","f$1","e$1","c$1","s$1","parentNode","removeChild","a$1","children","defaultProps","v$1","props","ref","__k","__b","__e","__d","__c","__h","__v","vnode","p$1","d$1","base","k$1","b$1","__r","debounceRendering","__P","__n","ownerSVGElement","m$1","g$1","x$1","appendChild","nextSibling","insertBefore","setProperty","style","cssText","$","setAttribute","removeAttribute","contextType","__E","render","__s","getDerivedStateFromProps","componentWillMount","componentDidMount","componentWillReceiveProps","shouldComponentUpdate","componentWillUpdate","componentDidUpdate","getChildContext","getSnapshotBeforeUpdate","j$1","diffed","localName","nodeType","createTextNode","createElementNS","createElement","is","childNodes","dangerouslySetInnerHTML","attributes","__html","innerHTML","firstChild","checked","current","unmount","componentWillUnmount","getDerivedStateFromError","setState","componentDidCatch","forceUpdate","Styles","color","Alert","warning","info","Darken","position","top","left","opacity","backgroundColor","width","height","zIndex","webkitBackdropFilter","backdropFilter","DialogOuter","alignItems","display","justifyContent","DialogInner","padding","marginBottom","maxWidth","maxHeight","overflowY","border","borderRadius","boxShadow","Input","borderColor","outline","fontSize","Dialog","__H","requestAnimationFrame","clearTimeout","cancelAnimationFrame","LoginDialog","params","setParams","firstFieldRef","focus","WindowHeader","resolveText","preventDefault","fieldName","Label","autoComplete","autoFocus","onInput","valueTransformer","ButtonsDiv","Button","onClick","LoginGui","setupDefaultGUI","el","vip","dexieCloud","origIdbName","currentUserEmitter","localSyncWorker","on","_d","_e","_f","customLoginGui","_prevStatus","lazyWebSocketStatus","prevStatus","progress","adjustedStatus","computeSyncState","swRegistrations","getRegistrations","persistedOptions","persistedSchema","tryUseServiceWorker","newPersistedSchema","tblSchema","newTblSchema","setInitiallySynced","auto","verifySchema","performInitialSync","throwIfClosed","requireAuth","periodicSync","registerPeriodicSyncEvent","isReady","createObservable","connectWebSocket","onDbReady","DatabaseClosedError","handler","origClose","dbOnClosed","version","serverState","hint","dbUrl","pathname","hostname","split","getDbNameFromDbUrl","reconfigure","wait","syncNeeded","isNeeded","Version","override","use","Cloud"],"mappings":"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"}