dexie-cloud-addon 4.2.4 → 4.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dexie-cloud-import.json +2 -1
- package/dist/modern/dexie-cloud-addon.js +146 -168
- package/dist/modern/dexie-cloud-addon.js.map +1 -1
- package/dist/modern/dexie-cloud-addon.min.js +1 -1
- package/dist/modern/dexie-cloud-addon.min.js.map +1 -1
- package/dist/modern/service-worker.js +146 -168
- package/dist/modern/service-worker.js.map +1 -1
- package/dist/modern/service-worker.min.js +1 -1
- package/dist/modern/service-worker.min.js.map +1 -1
- package/dist/umd/dexie-cloud-addon.js +1623 -2458
- package/dist/umd/dexie-cloud-addon.js.map +1 -1
- package/dist/umd/dexie-cloud-addon.min.js +1 -1
- package/dist/umd/dexie-cloud-addon.min.js.map +1 -1
- package/dist/umd/service-worker.js +2003 -2838
- package/dist/umd/service-worker.js.map +1 -1
- package/dist/umd/service-worker.min.js +1 -1
- package/dist/umd/service-worker.min.js.map +1 -1
- package/package.json +11 -8
- package/dist/umd/DISABLE_SERVICEWORKER_STRATEGY.d.ts +0 -1
- package/dist/umd/DXCWebSocketStatus.d.ts +0 -1
- package/dist/umd/DexieCloudAPI.d.ts +0 -75
- package/dist/umd/DexieCloudOptions.d.ts +0 -27
- package/dist/umd/DexieCloudSyncOptions.d.ts +0 -4
- package/dist/umd/DexieCloudTable.d.ts +0 -18
- package/dist/umd/InvalidLicenseError.d.ts +0 -5
- package/dist/umd/Invite.d.ts +0 -8
- package/dist/umd/PermissionChecker.d.ts +0 -15
- package/dist/umd/TSON.d.ts +0 -17
- package/dist/umd/WSObservable.d.ts +0 -72
- package/dist/umd/associate.d.ts +0 -1
- package/dist/umd/authentication/AuthPersistedContext.d.ts +0 -9
- package/dist/umd/authentication/TokenErrorResponseError.d.ts +0 -10
- package/dist/umd/authentication/TokenExpiredError.d.ts +0 -3
- package/dist/umd/authentication/UNAUTHORIZED_USER.d.ts +0 -2
- package/dist/umd/authentication/authenticate.d.ts +0 -13
- package/dist/umd/authentication/currentUserObservable.d.ts +0 -1
- package/dist/umd/authentication/interactWithUser.d.ts +0 -21
- package/dist/umd/authentication/login.d.ts +0 -3
- package/dist/umd/authentication/logout.d.ts +0 -5
- package/dist/umd/authentication/otpFetchTokenCallback.d.ts +0 -3
- package/dist/umd/authentication/setCurrentUser.d.ts +0 -14
- package/dist/umd/authentication/waitUntil.d.ts +0 -3
- package/dist/umd/computeSyncState.d.ts +0 -4
- package/dist/umd/createSharedValueObservable.d.ts +0 -3
- package/dist/umd/currentUserEmitter.d.ts +0 -3
- package/dist/umd/db/DexieCloudDB.d.ts +0 -61
- package/dist/umd/db/entities/BaseRevisionMapEntry.d.ts +0 -5
- package/dist/umd/db/entities/EntityCommon.d.ts +0 -5
- package/dist/umd/db/entities/GuardedJob.d.ts +0 -5
- package/dist/umd/db/entities/Member.d.ts +0 -19
- package/dist/umd/db/entities/PersistedSyncState.d.ts +0 -22
- package/dist/umd/db/entities/Realm.d.ts +0 -14
- package/dist/umd/db/entities/Role.d.ts +0 -11
- package/dist/umd/db/entities/UserLogin.d.ts +0 -23
- package/dist/umd/default-ui/Dialog.d.ts +0 -5
- package/dist/umd/default-ui/LoginDialog.d.ts +0 -3
- package/dist/umd/default-ui/Styles.d.ts +0 -3
- package/dist/umd/default-ui/index.d.ts +0 -24
- package/dist/umd/define-ydoc-trigger.d.ts +0 -3
- package/dist/umd/dexie-cloud-addon.d.ts +0 -3
- package/dist/umd/dexie-cloud-client.d.ts +0 -23
- package/dist/umd/errors/HttpError.d.ts +0 -5
- package/dist/umd/extend-dexie-interface.d.ts +0 -23
- package/dist/umd/getGlobalRolesObservable.d.ts +0 -5
- package/dist/umd/getInternalAccessControlObservable.d.ts +0 -12
- package/dist/umd/getInvitesObservable.d.ts +0 -23
- package/dist/umd/getPermissionsLookupObservable.d.ts +0 -16
- package/dist/umd/getTiedRealmId.d.ts +0 -2
- package/dist/umd/helpers/BroadcastedAndLocalEvent.d.ts +0 -8
- package/dist/umd/helpers/CancelToken.d.ts +0 -4
- package/dist/umd/helpers/IS_SERVICE_WORKER.d.ts +0 -1
- package/dist/umd/helpers/SWBroadcastChannel.d.ts +0 -12
- package/dist/umd/helpers/allSettled.d.ts +0 -1
- package/dist/umd/helpers/bulkUpdate.d.ts +0 -4
- package/dist/umd/helpers/computeRealmSetHash.d.ts +0 -2
- package/dist/umd/helpers/date-constants.d.ts +0 -5
- package/dist/umd/helpers/flatten.d.ts +0 -1
- package/dist/umd/helpers/getMutationTable.d.ts +0 -1
- package/dist/umd/helpers/getSyncableTables.d.ts +0 -4
- package/dist/umd/helpers/getTableFromMutationTable.d.ts +0 -1
- package/dist/umd/helpers/makeArray.d.ts +0 -1
- package/dist/umd/helpers/randomString.d.ts +0 -1
- package/dist/umd/helpers/resolveText.d.ts +0 -16
- package/dist/umd/helpers/throwVersionIncrementNeeded.d.ts +0 -1
- package/dist/umd/helpers/visibilityState.d.ts +0 -1
- package/dist/umd/isEagerSyncDisabled.d.ts +0 -2
- package/dist/umd/isFirefox.d.ts +0 -1
- package/dist/umd/isSafari.d.ts +0 -2
- package/dist/umd/mapValueObservable.d.ts +0 -5
- package/dist/umd/mergePermissions.d.ts +0 -2
- package/dist/umd/middleware-helpers/guardedTable.d.ts +0 -11
- package/dist/umd/middleware-helpers/idGenerationHelpers.d.ts +0 -18
- package/dist/umd/middlewares/createIdGenerationMiddleware.d.ts +0 -3
- package/dist/umd/middlewares/createImplicitPropSetterMiddleware.d.ts +0 -3
- package/dist/umd/middlewares/createMutationTrackingMiddleware.d.ts +0 -17
- package/dist/umd/middlewares/outstandingTransaction.d.ts +0 -4
- package/dist/umd/overrideParseStoresSpec.d.ts +0 -4
- package/dist/umd/performInitialSync.d.ts +0 -4
- package/dist/umd/permissions.d.ts +0 -9
- package/dist/umd/prodLog.d.ts +0 -9
- package/dist/umd/service-worker.d.ts +0 -1
- package/dist/umd/sync/DEXIE_CLOUD_SYNCER_ID.d.ts +0 -1
- package/dist/umd/sync/LocalSyncWorker.d.ts +0 -7
- package/dist/umd/sync/SyncRequiredError.d.ts +0 -3
- package/dist/umd/sync/applyServerChanges.d.ts +0 -3
- package/dist/umd/sync/connectWebSocket.d.ts +0 -2
- package/dist/umd/sync/encodeIdsForServer.d.ts +0 -4
- package/dist/umd/sync/extractRealm.d.ts +0 -2
- package/dist/umd/sync/getLatestRevisionsPerTable.d.ts +0 -6
- package/dist/umd/sync/getTablesToSyncify.d.ts +0 -3
- package/dist/umd/sync/isOnline.d.ts +0 -1
- package/dist/umd/sync/isSyncNeeded.d.ts +0 -2
- package/dist/umd/sync/listClientChanges.d.ts +0 -9
- package/dist/umd/sync/listSyncifiedChanges.d.ts +0 -5
- package/dist/umd/sync/messageConsumerIsReady.d.ts +0 -2
- package/dist/umd/sync/messagesFromServerQueue.d.ts +0 -8
- package/dist/umd/sync/modifyLocalObjectsWithNewUserId.d.ts +0 -4
- package/dist/umd/sync/myId.d.ts +0 -1
- package/dist/umd/sync/numUnsyncedMutations.d.ts +0 -2
- package/dist/umd/sync/old_startSyncingClientChanges.d.ts +0 -39
- package/dist/umd/sync/performGuardedJob.d.ts +0 -2
- package/dist/umd/sync/ratelimit.d.ts +0 -3
- package/dist/umd/sync/registerSyncEvent.d.ts +0 -3
- package/dist/umd/sync/sync.d.ts +0 -15
- package/dist/umd/sync/syncIfPossible.d.ts +0 -5
- package/dist/umd/sync/syncWithServer.d.ts +0 -6
- package/dist/umd/sync/triggerSync.d.ts +0 -2
- package/dist/umd/sync/updateBaseRevs.d.ts +0 -5
- package/dist/umd/types/DXCAlert.d.ts +0 -25
- package/dist/umd/types/DXCInputField.d.ts +0 -11
- package/dist/umd/types/DXCUserInteraction.d.ts +0 -93
- package/dist/umd/types/NewIdOptions.d.ts +0 -3
- package/dist/umd/types/SWMessageEvent.d.ts +0 -3
- package/dist/umd/types/SWSyncEvent.d.ts +0 -4
- package/dist/umd/types/SyncState.d.ts +0 -9
- package/dist/umd/types/TXExpandos.d.ts +0 -11
- package/dist/umd/updateSchemaFromOptions.d.ts +0 -3
- package/dist/umd/userIsActive.d.ts +0 -7
- package/dist/umd/verifyConfig.d.ts +0 -2
- package/dist/umd/verifySchema.d.ts +0 -2
- package/dist/umd/yjs/YDexieCloudSyncState.d.ts +0 -3
- package/dist/umd/yjs/YTable.d.ts +0 -3
- package/dist/umd/yjs/applyYMessages.d.ts +0 -9
- package/dist/umd/yjs/awareness.d.ts +0 -3
- package/dist/umd/yjs/createYClientUpdateObservable.d.ts +0 -4
- package/dist/umd/yjs/createYHandler.d.ts +0 -2
- package/dist/umd/yjs/downloadYDocsFromServer.d.ts +0 -3
- package/dist/umd/yjs/getUpdatesTable.d.ts +0 -3
- package/dist/umd/yjs/listUpdatesSince.d.ts +0 -3
- package/dist/umd/yjs/listYClientMessagesAndStateVector.d.ts +0 -26
- package/dist/umd/yjs/reopenDocSignal.d.ts +0 -10
- package/dist/umd/yjs/updateYSyncStates.d.ts +0 -6
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("dexie"),require("rxjs"),require("rxjs/operators")):"function"==typeof define&&define.amd?define(["dexie","rxjs","rxjs/operators"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Dexie,e.rxjs,e.rxjs.operators)}(this,(function(e,t,n){"use strict";function r(e,t,n,r){return new(n||(n=Promise))((function(s,i){function o(e){try{c(r.next(e))}catch(e){i(e)}}function l(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,l)}c((r=r.apply(e,t||[])).next())}))}function s(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function i(e){return this instanceof i?(this.v=e,this):new i(e)}function o(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,s=n.apply(e,t||[]),o=[];return r={},l("next"),l("throw"),l("return"),r[Symbol.asyncIterator]=function(){return this},r;function l(e){s[e]&&(r[e]=function(t){return new Promise((function(n,r){o.push([e,t,n,r])>1||c(e,t)}))})}function c(e,t){try{!function(e){e.value instanceof i?Promise.resolve(e.value.v).then(a,u):d(o[0][2],e)}(s[e](t))}catch(e){d(o[0][3],e)}}function a(e){c("next",e)}function u(e){c("throw",e)}function d(e,t){e(t),o.shift(),o.length&&c(o[0][0],o[0][1])}}function l(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=s(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise((function(r,s){(function(e,t,n,r){Promise.resolve(r).then((function(t){e({value:t,done:n})}),t)})(r,s,(t=e[n](t)).done,t.value)}))}}}const c={userId:"unauthorized",name:"Unauthorized",claims:{sub:"unauthorized"},lastLogin:new Date(0)};try{Object.freeze(c),Object.freeze(c.claims)}catch(e){}const a={},u="undefined"!=typeof self&&self.document&&"undefined"!=typeof navigator&&navigator.serviceWorker;u&&u.ready.then((e=>a.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 d{constructor(e){this.name=e}subscribe(e){if(!u)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 u.addEventListener("message",t),()=>u.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}))):a.registration&&(null===(t=a.registration.active)||void 0===t||t.postMessage({type:`sw-broadcast-${this.name}`,message:e}))}}const h=globalThis["lbc-events"]||(globalThis["lbc-events"]=new Map);class f extends t.Observable{constructor(e){const t="undefined"==typeof BroadcastChannel?new d(e):new BroadcastChannel(e);super((n=>{function r(e){n.next(e.detail)}function s(e){n.next(e.data)}let i;!function(e,t){h.has(e)?h.get(e).push(t):h.set(e,[t])}(`lbc-${e}`,r);try{t instanceof d?i=t.subscribe((e=>n.next(e))):t.addEventListener("message",s)}catch(e){}return()=>{!function(e,t){const n=h.get(e);if(n){const e=n.indexOf(t);-1!==e&&n.splice(e,1)}}(`lbc-${e}`,r),t instanceof d?i():t.removeEventListener("message",s)}})),this.name=e,this.bc=t}next(e){this.bc.postMessage(e);!function(e){const t=h.get(e.type);t&&t.forEach((t=>{try{t(e)}catch(e){}}))}(new CustomEvent(`lbc-${this.name}`,{detail:e}))}}let p=!1;function g(e,t){return r(this,void 0,void 0,(function*(){try{const n=yield navigator.serviceWorker.ready;if("push"===t&&n.sync&&(yield n.sync.register(`dexie-cloud:${e.name}`)),!n.active)throw new Error("Failed to trigger sync - there's no active service worker");return void n.active.postMessage({type:"dexie-cloud-sync",dbName:e.name,purpose:t})}catch(e){p||(p=!0)}}))}function y(e,t){e.cloud.usingServiceWorker?g(e,t):e.localSyncEvent.next({purpose:t})}const m="fromBase64"in Uint8Array,b="toBase64"in Uint8Array.prototype,v="undefined"!=typeof Buffer?e=>Buffer.from(e,"base64"):m?e=>Uint8Array.fromBase64(e):e=>{const t=atob(e),n=t.length,r=new Uint8Array(n);for(var s=0;s<n;s++)r[s]=t.charCodeAt(s);return r},w="undefined"!=typeof Buffer?e=>ArrayBuffer.isView(e)?Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("base64"):Buffer.from(e).toString("base64"):b?e=>(ArrayBuffer.isView(e)?e:new Uint8Array(e)).toBase64():e=>{const t=ArrayBuffer.isView(e)?e:new Uint8Array(e),n=[];for(let e=0,r=t.length;e<r;e+=4096){const r=t.subarray(e,e+4096);n.push(String.fromCharCode.apply(null,r))}return btoa(n.join(""))};function _(e){return r(this,arguments,void 0,(function*({realms:e,inviteRealms:t}){const n=JSON.stringify([...e.map((e=>({realmId:e,accepted:!0}))),...t.map((e=>({realmId:e,accepted:!1})))].sort(((e,t)=>e.realmId<t.realmId?-1:e.realmId>t.realmId?1:0))),r=(new TextEncoder).encode(n),s=yield crypto.subtle.digest("SHA-1",r);return w(s)}))}function k(e){return Object.entries(e.cloud.schema||{}).filter((([,{markedForSync:e}])=>e)).map((([t])=>e.tables.filter((({name:e})=>e===t))[0])).filter((e=>e))}function S(e){return`$${e}_mutations`}function E(e){var t;const n=null===(t=/^\$(.*)_mutations$/.exec(e))||void 0===t?void 0:t[1];if(!n)throw new Error(`Given mutationTable ${e} is not correct`);return n}const x=[].concat;function C(e){return x.apply([],e)}function I(e,t){return r(this,arguments,void 0,(function*(e,t,{since:n={},limit:s=1/0}={}){const i=yield Promise.all(e.map((e=>r(this,void 0,void 0,(function*(){const t=E(e.name),r=n[t];let i=r?e.where("rev").above(r):e;s<1/0&&(i=i.limit(s));let o=yield i.toArray();o=function(e){return e=e.map((e=>{if("modify"===e.type&&null===e.criteria.index){const t=Object.assign(Object.assign({},e),{criteria:void 0,changeSpec:void 0,type:"update",keys:e.keys,changeSpecs:[e.changeSpec]});return delete t.criteria,delete t.changeSpec,t}return e})),e}(o),o=function(e){const t=new Map;for(const n of e)if("update"===n.type){if(1!==n.keys.length||1!==n.changeSpecs.length)continue;const e=""+n.keys[0],r=n.changeSpecs[0];if(Object.values(r).some((e=>"object"==typeof e&&e&&"@@propmod"in e)))continue;let s=t.get(e);s?s.push({txid:n.txid,updateSpec:r}):t.set(e,[{txid:n.txid,updateSpec:r}])}return e=e.filter((e=>{if("update"!==e.type)return!0;if(1!==e.keys.length||1!==e.changeSpecs.length)return!0;const n=new Set(Object.keys(e.changeSpecs[0])),r=""+e.keys[0],s=t.get(r);for(let t=s.length-1;t>=0;--t){const{txid:r,updateSpec:i}=s[t];if(r===e.txid)break;for(const e of Object.keys(i))n.delete(e)}return 0!==n.size})),e}(o);return o.map((e=>({table:t,mut:e})))}))))),o=C(i).sort(((e,t)=>e.mut.txid===t.mut.txid?e.mut.opNo-t.mut.opNo:e.mut.ts-t.mut.ts)),l=[];let c=null,a=null;for(const{table:e,mut:t}of o)c&&c.table===e&&a===t.txid?c.muts.push(t):(c={table:e,muts:[t]},a=t.txid,l.push(c));return l}))}function A(e){const t=new Uint8Array(e);if("undefined"!=typeof crypto)crypto.getRandomValues(t);else for(let n=0;n<e;n++)t[n]=Math.floor(256*Math.random());if("undefined"!=typeof Buffer&&Buffer.from)return Buffer.from(t).toString("base64");if("undefined"!=typeof btoa)return btoa(String.fromCharCode.apply(null,t));throw new Error("No btoa or Buffer available")}const D={}.hasOwnProperty;function O(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,s=t.length;r<s;++r)O(e,t[r],n[r])}else{var i=t.indexOf(".");if(-1!==i){var o=t.substr(0,i),l=t.substr(i+1);if(""===l)void 0===n?Array.isArray(e)?isNaN(parseInt(o))||e.splice(parseInt(o),1):delete e[o]:e[o]=n;else{var c=e[o];c&&function(e,t){return D.call(e,t)}(e,o)||(c=e[o]={}),O(c,l,n)}}else void 0===n?Array.isArray(e)&&!isNaN(parseInt(t))?e.splice(t,1):delete e[t]:e[t]=n}}const T="undefined"!=typeof self&&"undefined"!=typeof crypto?(e,t=crypto.getRandomValues.bind(crypto))=>{const n=new Uint8Array(e);return t(n),self.btoa(String.fromCharCode.apply(null,n))}:"undefined"!=typeof Buffer?(e,t=U)=>{const n=Buffer.alloc(e);return t(n),n.toString("base64")}:()=>{throw new Error("No implementation of randomString was found")};function U(e){for(let t=0;t<e.length;++t)e[t]=Math.floor(256*Math.random())}function j(e){return"string"==typeof e||!!(Array.isArray(e)&&e.some((e=>j(e)))&&e.every(L))}function L(e){return"string"==typeof e||"number"==typeof e||Array.isArray(e)&&e.every(L)}function P(e,t,n){const r=e[t]||(e[t]={}),s=n.keys.map((e=>"string"==typeof e?e:JSON.stringify(e)));switch(n.type){case"insert":case"upsert":s.forEach(((e,t)=>{r[e]={type:"ups",val:n.values[t]}}));break;case"update":case"modify":s.forEach(((e,t)=>{const s="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(s))O(i.val,e,t);break;case"del":break;case"upd":Object.assign(i.mod,s)}else r[e]={type:"upd",mod:s}}));break;case"delete":s.forEach((e=>{r[e]={type:"del"}}))}return e}function R(e,t){for(const{table:n,muts:r}of t)for(const t of r)P(e,n,t)}const M=Math.floor,N=Math.abs,$=(e,t)=>e>t?e:t,B=128,F=127,W=Number.MAX_SAFE_INTEGER,V=Number.isInteger||(e=>"number"==typeof e&&isFinite(e)&&M(e)===e),K=Array.isArray,H="undefined"!=typeof TextEncoder?new TextEncoder:null,z=H?e=>H.encode(e):e=>{const t=unescape(encodeURIComponent(e)),n=t.length,r=new Uint8Array(n);for(let e=0;e<n;e++)r[e]=t.codePointAt(e);return r};let J="undefined"==typeof TextDecoder?null:new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});J&&1===J.decode(new Uint8Array).length&&(J=null);let q=class{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}};const Y=(e,t)=>{const n=e.cbuf.length;e.cpos===n&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(2*n),e.cpos=0),e.cbuf[e.cpos++]=t},G=(e,t)=>{for(;t>F;)Y(e,B|F&t),t=M(t/128);Y(e,F&t)},Q=new Uint8Array(3e4),X=Q.length/3,Z=H&&H.encodeInto?(e,t)=>{if(t.length<X){const n=H.encodeInto(t,Q).written||0;G(e,n);for(let t=0;t<n;t++)Y(e,Q[t])}else ee(e,z(t))}:(e,t)=>{const n=unescape(encodeURIComponent(t)),r=n.length;G(e,r);for(let t=0;t<r;t++)Y(e,n.codePointAt(t))},ee=(e,t)=>{G(e,t.byteLength),((e,t)=>{const n=e.cbuf.length,r=e.cpos,s=((e,t)=>e<t?e:t)(n-r,t.length),i=t.length-s;e.cbuf.set(t.subarray(0,s),r),e.cpos+=s,i>0&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array($(2*n,i)),e.cbuf.set(t.subarray(s)),e.cpos=i)})(e,t)},te=(e,t)=>{((e,t)=>{const n=e.cbuf.length;n-e.cpos<t&&(e.bufs.push(new Uint8Array(e.cbuf.buffer,0,e.cpos)),e.cbuf=new Uint8Array(2*$(n,t)),e.cpos=0)})(e,t);const n=new DataView(e.cbuf.buffer,e.cpos,t);return e.cpos+=t,n},ne=(e,t)=>te(e,8).setBigUint64(0,t,!1),re=new DataView(new ArrayBuffer(4)),se=(e,t)=>{switch(typeof t){case"string":Y(e,119),Z(e,t);break;case"number":V(t)&&N(t)<=2147483647?(Y(e,125),((e,t)=>{const n=(e=>0!==e?e<0:1/e<0)(t);for(n&&(t=-t),Y(e,(t>63?B:0)|(n?64:0)|63&t),t=M(t/64);t>0;)Y(e,(t>F?B:0)|F&t),t=M(t/128)})(e,t)):(n=t,re.setFloat32(0,n),re.getFloat32(0)===n?(Y(e,124),((e,t)=>{te(e,4).setFloat32(0,t,!1)})(e,t)):(Y(e,123),((e,t)=>{te(e,8).setFloat64(0,t,!1)})(e,t)));break;case"bigint":Y(e,122),((e,t)=>{te(e,8).setBigInt64(0,t,!1)})(e,t);break;case"object":if(null===t)Y(e,126);else if(K(t)){Y(e,117),G(e,t.length);for(let n=0;n<t.length;n++)se(e,t[n])}else if(t instanceof Uint8Array)Y(e,116),ee(e,t);else{Y(e,118);const n=Object.keys(t);G(e,n.length);for(let r=0;r<n.length;r++){const s=n[r];Z(e,s),se(e,t[s])}}break;case"boolean":Y(e,t?120:121);break;default:Y(e,127)}var n};function ie(e){const t=new q;switch(Z(t,e.type),"table"in e&&Z(t,e.table),"prop"in e&&Z(t,e.prop),e.type){case"u-ack":case"u-reject":ne(t,BigInt(e.i));break;case"outdated-server-rev":break;case"y-complete-sync-done":Z(t,e.yServerRev);break;default:switch(se(t,e.k),e.type){case"aware":ee(t,e.u);break;case"doc-open":se(t,e.serverRev),se(t,e.sv);break;case"doc-close":break;case"sv":ee(t,e.sv);break;case"u-c":ee(t,e.u),ne(t,BigInt(e.i));break;case"u-s":ee(t,e.u),Z(t,e.r||"")}}return(e=>{const t=new Uint8Array((e=>{let t=e.cpos;for(let n=0;n<e.bufs.length;n++)t+=e.bufs[n].length;return t})(e));let n=0;for(let r=0;r<e.bufs.length;r++){const s=e.bufs[r];t.set(s,n),n+=s.length}return t.set(new Uint8Array(e.cbuf.buffer,0,e.cpos),n),t})(t)}const oe=e=>new Error(e),le=oe("Unexpected end of array"),ce=oe("Integer out of Range");let ae=class{constructor(e){this.arr=e,this.pos=0}};const ue=e=>e.pos!==e.arr.length,de=e=>((e,t)=>{const n=new Uint8Array(e.arr.buffer,e.pos+e.arr.byteOffset,t);return e.pos+=t,n})(e,fe(e)),he=e=>e.arr[e.pos++],fe=e=>{let t=0,n=1;const r=e.arr.length;for(;e.pos<r;){const r=e.arr[e.pos++];if(t+=(r&F)*n,n*=128,r<B)return t;if(t>W)throw ce}throw le},pe=J?e=>J.decode(de(e)):e=>{let t=fe(e);if(0===t)return"";{let n=String.fromCodePoint(he(e));if(--t<100)for(;t--;)n+=String.fromCodePoint(he(e));else for(;t>0;){const r=t<1e4?t:1e4,s=e.arr.subarray(e.pos,e.pos+r);e.pos+=r,n+=String.fromCodePoint.apply(null,s),t-=r}return decodeURIComponent(escape(n))}},ge=(e,t)=>{const n=new DataView(e.arr.buffer,e.arr.byteOffset+e.pos,t);return e.pos+=t,n},ye=e=>ge(e,8).getBigUint64(0,!1),me=[e=>{},e=>null,e=>{let t=e.arr[e.pos++],n=63&t,r=64;const s=(64&t)>0?-1:1;if(0==(t&B))return s*n;const i=e.arr.length;for(;e.pos<i;){if(t=e.arr[e.pos++],n+=(t&F)*r,r*=128,t<B)return s*n;if(n>W)throw ce}throw le},e=>ge(e,4).getFloat32(0,!1),e=>ge(e,8).getFloat64(0,!1),e=>ge(e,8).getBigInt64(0,!1),e=>!1,e=>!0,pe,e=>{const t=fe(e),n={};for(let r=0;r<t;r++){n[pe(e)]=be(e)}return n},e=>{const t=fe(e),n=[];for(let r=0;r<t;r++)n.push(be(e));return n},de],be=e=>me[127-he(e)](e);function ve(e){return o(this,arguments,(function*(){var t,n,r,s;let o=0,c=new Uint8Array(4),a=0,u=[],d=0;try{for(var h,f=!0,p=l(e);!(t=(h=yield i(p.next())).done);f=!0){s=h.value,f=!1;const e=s,t=new DataView(e.buffer,e.byteOffset,e.byteLength);let n=0;for(;n<e.byteLength;)switch(o){case 0:if(n+4>e.byteLength){for(const t of e.slice(n)){if(4===a)break;c[a++]=t,++n}if(a<4)break}else if(a>0&&a<4)for(const t of e.slice(n,n+4-a))c[a++]=t,++n;case 1:d=4===a?new DataView(c.buffer,0,4).getUint32(0,!1):t.getUint32(n,!1),a?a=0:n+=4;case 2:if(n>=e.byteLength){o=2;break}if(n+d>e.byteLength)u.push(e.slice(n)),d-=e.byteLength-n,o=2,n=e.byteLength;else{if(u.length>0){const t=new Uint8Array(u.reduce(((e,t)=>e+t.byteLength),d));let r=0;for(const e of u)t.set(e,r),r+=e.byteLength;t.set(e.slice(n,n+d),r),u=[],yield yield i(t)}else yield yield i(e.slice(n,n+d));n+=d,o=0}}}}catch(e){n={error:e}}finally{try{f||t||!(r=p.return)||(yield i(r.call(p)))}finally{if(n)throw n.error}}}))}class we extends Error{constructor({title:e,message:t,messageCode:n,messageParams:r}){super(t),this.name="TokenErrorResponseError",this.title=e,this.messageCode=n,this.messageParams=r}}function _e(t,n){return new Promise(((r,s)=>{const i=Object.assign(Object.assign({submitLabel:"Submit",cancelLabel:"Cancel"},n),{onSubmit:e=>{t.next(void 0),r(e)},onCancel:()=>{t.next(void 0),s(new e.AbortError("User cancelled"))}});t.next(i)}))}function ke(e,t,...n){return _e(e,{type:"message-alert",title:t,alerts:n,fields:{},submitLabel:"OK",cancelLabel:null})}function Se(e,t,n){return r(this,void 0,void 0,(function*(){let r=n||"";for(;!r||!/^[\w-+.]+@([\w-]+\.)+[\w-]{2,10}(\sas\s[\w-+.]+@([\w-]+\.)+[\w-]{2,10})?$/.test(r);)r=(yield _e(e,{type:"email",title:t,alerts:r?[{type:"error",messageCode:"INVALID_EMAIL",message:"Please enter a valid email address",messageParams:{}}]:[],fields:{email:{type:"email",placeholder:"you@somedomain.com"}}})).email;return r}))}function Ee(e,t,n){return r(this,void 0,void 0,(function*(){const r=[{type:"info",messageCode:"OTP_SENT",message:"A One-Time password has been sent to {email}",messageParams:{email:t}}];n&&r.push(n);const{otp:s}=yield _e(e,{type:"otp",title:"Enter OTP",alerts:r,fields:{otp:{type:"otp",label:"OTP",placeholder:"Paste OTP here"}}});return s}))}function xe(e){return r(this,void 0,void 0,(function*(){var t,n,r;const s=yield e.getCurrentUser(),{accessToken:i,accessTokenExpiration:o,refreshToken:l,refreshTokenExpiration:c,claims:a}=s;if(!i)return null;if((null!==(t=null==o?void 0:o.getTime())&&void 0!==t?t:1/0)>Date.now()&&"ok"===((null===(n=s.license)||void 0===n?void 0:n.status)||"ok"))return s;if(!l)throw new Error("Refresh token missing");if((null!==(r=null==c?void 0:c.getTime())&&void 0!==r?r:1/0)<=Date.now())throw new Error("Refresh token has expired");const u=yield Ie(e.cloud.options.databaseUrl,s);return yield e.table("$logins").update(a.sub,{accessToken:u.accessToken,accessTokenExpiration:u.accessTokenExpiration,claims:u.claims,license:u.license,data:u.data}),u}))}function Ce(t,n,s,i,o){return r(this,void 0,void 0,(function*(){return n.accessToken&&n.accessTokenExpiration.getTime()>Date.now()?n:n.refreshToken&&(!n.refreshTokenExpiration||n.refreshTokenExpiration.getTime()>Date.now())?yield Ie(t,n):yield function(t,n,s,i){return r(this,void 0,void 0,(function*(){if(!crypto.subtle)throw"undefined"!=typeof location&&"http:"===location.protocol?new Error("Dexie Cloud Addon needs to use WebCrypto, but your browser has disabled it due to being served from an insecure location. Please serve it from https or http://localhost:<port> (See https://stackoverflow.com/questions/46670556/how-to-enable-crypto-subtle-for-unsecure-origins-in-chrome/46671627#46671627)"):new Error("This browser does not support WebCrypto.");const{privateKey:r,publicKey:o}=yield crypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:2048,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!1,["sign","verify"]);if(!r||!o)throw new Error("Could not generate RSA keypair");t.nonExportablePrivateKey=r;const l=function(e){const t=w(e);return function(e){let t="-----BEGIN PUBLIC KEY-----\n";for(;e.length>0;)t+=e.substring(0,64)+"\n",e=e.substring(64);return t+="-----END PUBLIC KEY-----",t}(t)}(yield crypto.subtle.exportKey("spki",o));t.publicKey=o;try{const e=yield n({public_key:l,hints:i});if("error"===e.type)throw new we(e);if("tokens"!==e.type)throw new Error(`Unexpected response type from token endpoint: ${e.type}`);return t.accessToken=e.accessToken,t.accessTokenExpiration=new Date(e.accessTokenExpiration),t.refreshToken=e.refreshToken,e.refreshTokenExpiration&&(t.refreshTokenExpiration=new Date(e.refreshTokenExpiration)),t.userId=e.claims.sub,t.email=e.claims.email,t.name=e.claims.name,t.claims=e.claims,t.license={type:e.userType,status:e.claims.license||"ok"},t.data=e.data,null!=e.evalDaysLeft&&(t.license.evalDaysLeft=e.evalDaysLeft),null!=e.userValidUntil&&(t.license.validUntil=new Date(e.userValidUntil)),e.alerts&&e.alerts.length>0&&(yield _e(s,{type:"message-alert",title:"Authentication Alert",fields:{},alerts:e.alerts})),t}catch(t){if(t instanceof we)throw yield ke(s,t.title,{type:"error",messageCode:t.messageCode,message:t.message,messageParams:{}}),t;let n="We're having a problem authenticating right now.";if(t instanceof TypeError){n=void 0!==typeof navigator&&!navigator.onLine?"You seem to be offline. Please connect to the internet and try again.":e.debug||"undefined"!=typeof location&&("localhost"===location.hostname||"127.0.0.1"===location.hostname)?`Could not connect to server. Please verify that your origin '${location.origin}' is whitelisted using \`npx dexie-cloud whitelist\``:"Could not connect to server. Please verify the connection.",yield ke(s,"Authentication Failed",{type:"error",messageCode:"GENERIC_ERROR",message:n,messageParams:{}}).catch((()=>{}))}throw t}}))}(n,s,i,o)}))}function Ie(e,t){return r(this,void 0,void 0,(function*(){if(!t.refreshToken)throw new Error("Cannot refresh token - refresh token is missing.");if(!t.nonExportablePrivateKey)throw new Error("login.nonExportablePrivateKey is missing - cannot sign refresh token without a private key.");const n=Date.now(),r="RSASSA-PKCS1-v1_5",s=(new TextEncoder).encode(t.refreshToken+n),i=yield crypto.subtle.sign(r,t.nonExportablePrivateKey,s),o=w(i),l={grant_type:"refresh_token",refresh_token:t.refreshToken,scopes:["ACCESS_DB"],signature:o,signing_algorithm:r,time_stamp:n},c=yield fetch(`${e}/token`,{body:JSON.stringify(l),method:"post",headers:{"Content-Type":"application/json"},mode:"cors"});if(200!==c.status)throw new Error(`RefreshToken: Status ${c.status} from ${e}/token`);const a=yield c.json();if("error"===a.type)throw new we(a);return t.accessToken=a.accessToken,t.accessTokenExpiration=a.accessTokenExpiration?new Date(a.accessTokenExpiration):void 0,t.claims=a.claims,t.license={type:a.userType,status:a.claims.license||"ok"},null!=a.evalDaysLeft&&(t.license.evalDaysLeft=a.evalDaysLeft),null!=a.userValidUntil&&(t.license.validUntil=new Date(a.userValidUntil)),a.data&&(t.data=a.data),t}))}const{toString:Ae}={};const De={replace:function(e){const t=Object.keys(e);let n=null;for(let e=0,r=t.length;e<r;++e)"$"===t[e][0]&&(n=n||[],n.push(t[e]));if(!n)return e;const r={...e};for(const e of n)delete r[e];for(const t of n)r["$"+t]=e[t];return r}};function Oe(...e){const t=e.reduce(((e,t)=>({...e,...t})),e.reduce(((e,t)=>({...t,...e})),{})),n=new WeakMap;return{stringify(e,r,s){const i=JSON.stringify(e,(function(e){const s=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 De;let i=n.get(r);if(void 0!==i)return i;const o=(s=e,Ae.call(s).slice(8,-1)),l=Object.entries(t).find((([t,n])=>{var r,s;return null!==(s=null===(r=null==n?void 0:n.test)||void 0===r?void 0:r.call(n,e,o))&&void 0!==s?s:t===o}));return i=null==l?void 0:l[1],i||(i=Array.isArray(e)?null:"function"==typeof e?t.function||null:De),n.set(r,i),i}default:return t[r]}var s}(s);return i?i.replace(s,r,t):s}),s);return i},parse(e,n){const r=[];return JSON.parse(e,(function(e,s){const i=null==s?void 0:s.$t;if(i){const e=t[i];s=e?e.revive(s,n,t):s}let o=r[r.length-1];if(o&&o[0]===s){s={...s};for(const e of o[1])delete s[e];for(const[e,t]of Object.entries(o[2]))s[e]=t;r.pop()}if(void 0===s||"$"===e[0]&&"$t"!==e){let t,n;o=r[r.length-1],o&&o[0]===this?(t=o[1],n=o[2]):r.push([this,t=[],n={}]),"$"===e[0]&&"$t"!==e?(t.push(e),n[e.substr(1)]=s):n[e]=void 0}return s}))}}}const Te={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 Ue={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 je={bigint:{replace:e=>({$t:"bigint",v:""+e}),revive:e=>BigInt(e.v)}};var Le={Date:{replace:e=>({$t:"Date",v:isNaN(e.getTime())?"NaN":e.toISOString()}),revive:({v:e})=>new Date("NaN"===e?NaN:Date.parse(e))}},Pe={Set:{replace:e=>({$t:"Set",v:Array.from(e.entries())}),revive:({v:e})=>new Set(e)}},Re={Map:{replace:e=>({$t:"Map",v:Array.from(e.entries())}),revive:({v:e})=>new Map(e)}};const Me="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof global?global:void 0;var Ne=["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 s=Me[t];return s&&new s(r.ArrayBuffer.revive({v:e},n,r))}}})),{});function $e(e){return function(e){for(var t="",n=0,r=e.length;n<r;n++)t+=We[e[n]];return t}(w(e))}function Be(e){return v(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+=Fe[e[n]];return t}(e))}const Fe={"-":"=",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:"+","|":"/"},We={};for(const e of Object.keys(Fe))We[Fe[e]]=e;var Ve={ArrayBuffer:{replace:e=>({$t:"ArrayBuffer",v:$e(e)}),revive:({v:e})=>{const t=Be(e);return t.buffer.byteLength===t.byteLength?t.buffer:t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}}};class Ke{constructor(e,t){this.buf=e,this.type=t}}function He(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 ze(e){const t=new Uint8Array(e.length);for(let n=0;n<e.length;++n)t[n]=e.charCodeAt(n);return t.buffer}var Je={Blob:{test:(e,t)=>"Blob"===t||e instanceof Ke,replace:e=>({$t:"Blob",v:w(e instanceof Ke?e.buf:ze(He(e))),type:e.type}),revive:({type:e,v:t})=>{const n=v(t);return void 0!==typeof Blob?new Blob([n]):new Ke(n.buffer,e)}}};const qe={...Ue,...je,...Le,...Pe,...Re,...Ne,...Ve,...Je};function Ye(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 Ge={undefined:{replace:()=>({$t:"undefined"}),revive:()=>{}}},Qe={File:{test:(e,t)=>"File"===t,replace:e=>({$t:"File",v:w(ze(He(e))),type:e.type,name:e.name,lastModified:new Date(e.lastModified).toISOString()}),revive:({type:e,v:t,name:n,lastModified:r})=>{const s=v(t);return new File([s],n,{type:e,lastModified:new Date(r).getTime()})}}};const Xe="function"==typeof BigInt&&"bigint"==typeof BigInt(0);class Ze{toString(){return this.v}constructor(e){this.v=e}}const et=Xe?{}:{bigint:{test:e=>e instanceof Ze,replace:e=>Object.assign({$t:"bigint"},e),revive:({v:e})=>new Ze(e)}},tt=Object.assign(Object.assign(Object.assign(Object.assign({},Ge),et),Qe),{PropModification:{test:t=>t instanceof e.PropModification,replace:e=>Object.assign({$t:"PropModification"},e["@@propmod"]),revive:t=>{var n=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var s=0;for(r=Object.getOwnPropertySymbols(e);s<r.length;s++)t.indexOf(r[s])<0&&Object.prototype.propertyIsEnumerable.call(e,r[s])&&(n[r[s]]=e[r[s]])}return n}(t,["$t"]);return new e.PropModification(n)}}}),nt=Oe(qe,tt),rt=function(...e){const t=Oe(qe,Te,...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),s=new Blob(n.map((e=>{const t=new ArrayBuffer(4);return new DataView(t).setUint32(0,"byteLength"in e?e.byteLength:e.size),new Blob([t,e])})));return[s,r]},async parse(e,n){let r=0;const s=[],i=await Ye(n),o=new DataView(i);for(;r<i.byteLength;){const e=o.getUint32(r);r+=4;const t=i.slice(r,r+e);r+=e,s.push(t)}return t.parse(e,s)},async fromBinary(e){const t=new DataView(await Ye(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)}}}(tt);class st extends Error{constructor(e,t){super(t||`${e.status} ${e.statusText}`),this.httpStatus=e.status}get name(){return"HttpError"}}function it(t,n,r){const s=[];for(let i of r){const{table:r,muts:o}=i,l=t.tables.find((e=>e.name===r));if(!l)throw new Error(`Internal error: table ${r} not found in DBCore schema`);const{primaryKey:c}=l;let a=i;o.forEach(((t,r)=>{const s=!c.outbound&&("upsert"===t.type||"insert"===t.type);t.keys.forEach(((t,o)=>{if(Array.isArray(t)){a===i&&(a=ot(i,s));const e=a.muts[r],n=JSON.stringify(t);e.keys[o]=n}else if("#"===t[0]){a===i&&(a=ot(i,s));const l=a.muts[r];if(!n.isLoggedIn)throw new Error("Internal error: Cannot sync private IDs before authenticated");const u=`${t}:${n.userId}`;l.keys[o]=u,s&&e.setByKeyPath(l.values[o],c.keyPath,u)}}))})),s.push(a)}return s}function ot(e,t){return Object.assign(Object.assign({},e),{muts:t?e.muts.map((e=>"insert"!==e.type&&"upsert"!==e.type||!e.values?Object.assign(Object.assign({},e),{keys:e.keys.slice()}):Object.assign(Object.assign({},e),{keys:e.keys.slice(),values:e.values.slice()}))):e.muts.map((e=>Object.assign(Object.assign({},e),{keys:e.keys.slice()})))})}let lt=new WeakMap;function ct(e){return r(this,void 0,void 0,(function*(){var t,n;const r=(null!==(n=null===(t=lt.get(e))||void 0===t?void 0:t.getTime())&&void 0!==n?n:0)-Date.now();r>0&&(yield new Promise((e=>setTimeout(e,r))))}))}function at(e,t,n,s,i,o,l,c,a){return r(this,void 0,void 0,(function*(){const r={Accept:"application/json, application/x-bison, application/x-bison-stream","Content-Type":"application/tson"},u=yield xe(i),d=null==u?void 0:u.accessToken;d&&(r.Authorization=`Bearer ${d}`);const h={v:2,dbID:null==n?void 0:n.remoteDbId,clientIdentity:c,schema:l||{},lastPull:n?{serverRevision:n.serverRevision,yServerRevision:n.yServerRevision,realms:n.realms,inviteRealms:n.inviteRealms}:void 0,baseRevs:s,changes:it(i.dx.core.schema,a,e),y:t,dxcv:i.cloud.version};i.syncStateChangedEvent.next({phase:"pushing"});const f=nt.stringify(h),p=yield fetch(`${o}/sync`,{method:"post",headers:r,credentials:"include",body:f});if(i.syncStateChangedEvent.next({phase:"pulling"}),function(e,t){const n=t.headers.get("Ratelimit-Limit"),r=t.headers.get("Ratelimit-Remaining"),s=t.headers.get("Ratelimit-Reset");if(n&&r&&s){const t=Number(n),i=Math.max(0,Number(r)),o=Number(s);if(i<t/2){const t=Math.ceil(o/(i+1));lt.set(e,new Date(Date.now()+1e3*t))}else lt.delete(e)}}(i,p),!p.ok)throw new st(p);if("application/x-bison"===p.headers.get("content-type"))return rt.fromBinary(yield p.blob());{const e=yield p.text();return nt.parse(e)}}))}function ut(t){if(null==t?void 0:t.cancelled)throw new e.AbortError("Operation was cancelled")}let dt=!1;function ht(e,t,n,s){return r(this,void 0,void 0,(function*(){yield e.$baseRevs.bulkPut(Object.keys(t).filter((e=>t[e].markedForSync)).map((e=>({tableName:e,clientRev:(n[e]||0)+1,serverRev:s})))),yield e.$baseRevs.where("tableName").noneOf(Object.keys(t).filter((e=>t[e].markedForSync))).delete()}))}function ft(e,t={}){for(const{table:n,muts:r}of e){const e=r.length>0?r[r.length-1].rev:null;t[n]=e||t[n]||0}return t}function pt(t,n,s){return r(this,void 0,void 0,(function*(){const r=yield t.bulkGet(n),i=[],o=[];n.forEach(((n,l)=>{const c=r[l];if(c){for(const[r,i]of Object.entries(s[l]))if(r===t.schema.primKey.keyPath){if(0!==e.cmp(i,n))throw new Error("Cannot change primary key")}else e.setByKeyPath(c,r,i);i.push(n),o.push(c)}})),yield null==t.schema.primKey.keyPath?t.bulkPut(o,i):t.bulkPut(o)}))}function gt(t,n){return r(this,void 0,void 0,(function*(){for(const{table:r,muts:s}of t){if(!n.dx._allTables[r])continue;const t=n.table(r),{primaryKey:i}=t.core.schema,o=e=>{switch(e[0]){case"[":if(e.endsWith("]"))try{return JSON.parse(e)}catch(e){}return e;case"#":return e.endsWith(":"+n.cloud.currentUserId)?e.substr(0,e.length-n.cloud.currentUserId.length-1):e;default:return e}};for(const n of s){const r=n.keys.map(o);switch(n.type){case"insert":i.outbound?yield t.bulkAdd(n.values,r):(r.forEach(((t,r)=>{e.setByKeyPath(n.values[r],i.keyPath,t)})),yield t.bulkAdd(n.values));break;case"upsert":i.outbound?yield t.bulkPut(n.values,r):(r.forEach(((t,r)=>{e.setByKeyPath(n.values[r],i.keyPath,t)})),yield t.bulkPut(n.values));break;case"modify":1===r.length?yield t.update(r[0],n.changeSpec):yield t.where(":id").anyOf(r).modify(n.changeSpec);break;case"update":yield pt(t,r,n.changeSpecs);break;case"delete":yield t.bulkDelete(r)}}}}))}"undefined"!=typeof self&&"undefined"!=typeof navigator&&(dt=navigator.onLine,self.addEventListener("online",(()=>dt=!0)),self.addEventListener("offline",(()=>dt=!1)));const yt="dexie-cloud-syncer";function mt(e,t){return e.where("i").between(t,1/0,!0).toArray()}const bt=()=>new Map,vt=e=>{const t=bt();return e.forEach(((e,n)=>{t.set(n,e)})),t},wt=(e,t,n)=>{let r=e.get(t);return void 0===r&&e.set(t,r=n()),r},_t=()=>new Set,kt=e=>e[e.length-1],St=(e,t)=>{for(let n=0;n<t.length;n++)e.push(t[n])},Et=Array.from,xt=Array.isArray;class Ct{constructor(){this._observers=bt()}on(e,t){return wt(this._observers,e,_t).add(t),t}once(e,t){const n=(...r)=>{this.off(e,n),t(...r)};this.on(e,n)}off(e,t){const n=this._observers.get(e);void 0!==n&&(n.delete(t),0===n.size&&this._observers.delete(e))}emit(e,t){return Et((this._observers.get(e)||bt()).values()).forEach((e=>e(...t)))}destroy(){this._observers=bt()}}class It{constructor(){this._observers=bt()}on(e,t){wt(this._observers,e,_t).add(t)}once(e,t){const n=(...r)=>{this.off(e,n),t(...r)};this.on(e,n)}off(e,t){const n=this._observers.get(e);void 0!==n&&(n.delete(t),0===n.size&&this._observers.delete(e))}emit(e,t){return Et((this._observers.get(e)||bt()).values()).forEach((e=>e(...t)))}destroy(){this._observers=bt()}}const At=Math.floor,Dt=Math.abs,Ot=(e,t)=>e<t?e:t,Tt=(e,t)=>e>t?e:t,Ut=e=>0!==e?e<0:1/e<0,jt=64,Lt=128,Pt=127,Rt=Number.MAX_SAFE_INTEGER,Mt=Number.isInteger||(e=>"number"==typeof e&&isFinite(e)&&At(e)===e),Nt=/^\s*/g,$t=/([A-Z])/g,Bt=(e,t)=>(e=>e.replace(Nt,""))(e.replace($t,(e=>`${t}${(e=>e.toLowerCase())(e)}`))),Ft="undefined"!=typeof TextEncoder?new TextEncoder:null,Wt=Ft?e=>Ft.encode(e):e=>{const t=unescape(encodeURIComponent(e)),n=t.length,r=new Uint8Array(n);for(let e=0;e<n;e++)r[e]=t.codePointAt(e);return r};let Vt="undefined"==typeof TextDecoder?null:new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});Vt&&1===Vt.decode(new Uint8Array).length&&(Vt=null);class Kt{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}}const Ht=()=>new Kt,zt=e=>{const t=new Uint8Array((e=>{let t=e.cpos;for(let n=0;n<e.bufs.length;n++)t+=e.bufs[n].length;return t})(e));let n=0;for(let r=0;r<e.bufs.length;r++){const s=e.bufs[r];t.set(s,n),n+=s.length}return t.set(new Uint8Array(e.cbuf.buffer,0,e.cpos),n),t},Jt=(e,t)=>{const n=e.cbuf.length;e.cpos===n&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(2*n),e.cpos=0),e.cbuf[e.cpos++]=t},qt=Jt,Yt=(e,t)=>{for(;t>Pt;)Jt(e,Lt|Pt&t),t=At(t/128);Jt(e,Pt&t)},Gt=(e,t)=>{const n=Ut(t);for(n&&(t=-t),Jt(e,(t>63?Lt:0)|(n?jt:0)|63&t),t=At(t/64);t>0;)Jt(e,(t>Pt?Lt:0)|Pt&t),t=At(t/128)},Qt=new Uint8Array(3e4),Xt=Qt.length/3,Zt=Ft&&Ft.encodeInto?(e,t)=>{if(t.length<Xt){const n=Ft.encodeInto(t,Qt).written||0;Yt(e,n);for(let t=0;t<n;t++)Jt(e,Qt[t])}else tn(e,Wt(t))}:(e,t)=>{const n=unescape(encodeURIComponent(t)),r=n.length;Yt(e,r);for(let t=0;t<r;t++)Jt(e,n.codePointAt(t))},en=(e,t)=>{const n=e.cbuf.length,r=e.cpos,s=Ot(n-r,t.length),i=t.length-s;e.cbuf.set(t.subarray(0,s),r),e.cpos+=s,i>0&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(Tt(2*n,i)),e.cbuf.set(t.subarray(s)),e.cpos=i)},tn=(e,t)=>{Yt(e,t.byteLength),en(e,t)},nn=(e,t)=>{((e,t)=>{const n=e.cbuf.length;n-e.cpos<t&&(e.bufs.push(new Uint8Array(e.cbuf.buffer,0,e.cpos)),e.cbuf=new Uint8Array(2*Tt(n,t)),e.cpos=0)})(e,t);const n=new DataView(e.cbuf.buffer,e.cpos,t);return e.cpos+=t,n},rn=new DataView(new ArrayBuffer(4)),sn=(e,t)=>{switch(typeof t){case"string":Jt(e,119),Zt(e,t);break;case"number":Mt(t)&&Dt(t)<=2147483647?(Jt(e,125),Gt(e,t)):(n=t,rn.setFloat32(0,n),rn.getFloat32(0)===n?(Jt(e,124),((e,t)=>{nn(e,4).setFloat32(0,t,!1)})(e,t)):(Jt(e,123),((e,t)=>{nn(e,8).setFloat64(0,t,!1)})(e,t)));break;case"bigint":Jt(e,122),((e,t)=>{nn(e,8).setBigInt64(0,t,!1)})(e,t);break;case"object":if(null===t)Jt(e,126);else if(xt(t)){Jt(e,117),Yt(e,t.length);for(let n=0;n<t.length;n++)sn(e,t[n])}else if(t instanceof Uint8Array)Jt(e,116),tn(e,t);else{Jt(e,118);const n=Object.keys(t);Yt(e,n.length);for(let r=0;r<n.length;r++){const s=n[r];Zt(e,s),sn(e,t[s])}}break;case"boolean":Jt(e,t?120:121);break;default:Jt(e,127)}var n};class on extends Kt{constructor(e){super(),this.w=e,this.s=null,this.count=0}write(e){this.s===e?this.count++:(this.count>0&&Yt(this,this.count-1),this.count=1,this.w(this,e),this.s=e)}}const ln=e=>{e.count>0&&(Gt(e.encoder,1===e.count?e.s:-e.s),e.count>1&&Yt(e.encoder,e.count-2))};class cn{constructor(){this.encoder=new Kt,this.s=0,this.count=0}write(e){this.s===e?this.count++:(ln(this),this.count=1,this.s=e)}toUint8Array(){return ln(this),zt(this.encoder)}}const an=e=>{if(e.count>0){const t=2*e.diff+(1===e.count?0:1);Gt(e.encoder,t),e.count>1&&Yt(e.encoder,e.count-2)}};class un{constructor(){this.encoder=new Kt,this.s=0,this.count=0,this.diff=0}write(e){this.diff===e-this.s?(this.s=e,this.count++):(an(this),this.count=1,this.diff=e-this.s,this.s=e)}toUint8Array(){return an(this),zt(this.encoder)}}class dn{constructor(){this.sarr=[],this.s="",this.lensE=new cn}write(e){this.s+=e,this.s.length>19&&(this.sarr.push(this.s),this.s=""),this.lensE.write(e.length)}toUint8Array(){const e=new Kt;return this.sarr.push(this.s),this.s="",Zt(e,this.sarr.join("")),en(e,this.lensE.toUint8Array()),zt(e)}}const hn=e=>new Error(e),fn=()=>{throw hn("Method unimplemented")},pn=()=>{throw hn("Unexpected case")},gn=hn("Unexpected end of array"),yn=hn("Integer out of Range");class mn{constructor(e){this.arr=e,this.pos=0}}const bn=e=>new mn(e),vn=e=>((e,t)=>{const n=new Uint8Array(e.arr.buffer,e.pos+e.arr.byteOffset,t);return e.pos+=t,n})(e,_n(e)),wn=e=>e.arr[e.pos++],_n=e=>{let t=0,n=1;const r=e.arr.length;for(;e.pos<r;){const r=e.arr[e.pos++];if(t+=(r&Pt)*n,n*=128,r<Lt)return t;if(t>Rt)throw yn}throw gn},kn=e=>{let t=e.arr[e.pos++],n=63&t,r=64;const s=(t&jt)>0?-1:1;if(0==(t&Lt))return s*n;const i=e.arr.length;for(;e.pos<i;){if(t=e.arr[e.pos++],n+=(t&Pt)*r,r*=128,t<Lt)return s*n;if(n>Rt)throw yn}throw gn},Sn=Vt?e=>Vt.decode(vn(e)):e=>{let t=_n(e);if(0===t)return"";{let n=String.fromCodePoint(wn(e));if(--t<100)for(;t--;)n+=String.fromCodePoint(wn(e));else for(;t>0;){const r=t<1e4?t:1e4,s=e.arr.subarray(e.pos,e.pos+r);e.pos+=r,n+=String.fromCodePoint.apply(null,s),t-=r}return decodeURIComponent(escape(n))}},En=(e,t)=>{const n=new DataView(e.arr.buffer,e.arr.byteOffset+e.pos,t);return e.pos+=t,n},xn=[e=>{},e=>null,kn,e=>En(e,4).getFloat32(0,!1),e=>En(e,8).getFloat64(0,!1),e=>En(e,8).getBigInt64(0,!1),e=>!1,e=>!0,Sn,e=>{const t=_n(e),n={};for(let r=0;r<t;r++){n[Sn(e)]=Cn(e)}return n},e=>{const t=_n(e),n=[];for(let r=0;r<t;r++)n.push(Cn(e));return n},vn],Cn=e=>xn[127-wn(e)](e);class In extends mn{constructor(e,t){super(e),this.reader=t,this.s=null,this.count=0}read(){var e;return 0===this.count&&(this.s=this.reader(this),(e=this).pos!==e.arr.length?this.count=_n(this)+1:this.count=-1),this.count--,this.s}}class An extends mn{constructor(e){super(e),this.s=0,this.count=0}read(){if(0===this.count){this.s=kn(this);const e=Ut(this.s);this.count=1,e&&(this.s=-this.s,this.count=_n(this)+2)}return this.count--,this.s}}class Dn extends mn{constructor(e){super(e),this.s=0,this.count=0,this.diff=0}read(){if(0===this.count){const e=kn(this),t=1&e;this.diff=At(e/2),this.count=1,t&&(this.count=_n(this)+2)}return this.s+=this.diff,this.count--,this.s}}class On{constructor(e){this.decoder=new An(e),this.str=Sn(this.decoder),this.spos=0}read(){const e=this.spos+this.decoder.read(),t=this.str.slice(this.spos,e);return this.spos=e,t}}const Tn=crypto.getRandomValues.bind(crypto),Un=()=>Tn(new Uint32Array(1))[0],jn=[1e7]+-1e3+-4e3+-8e3+-1e11,Ln=()=>jn.replace(/[018]/g,(e=>(e^Un()&15>>e/4).toString(16))),Pn=Date.now,Rn=e=>new Promise(e);Promise.all.bind(Promise);const Mn=e=>void 0===e?null:e;let Nn=new class{constructor(){this.map=new Map}setItem(e,t){this.map.set(e,t)}getItem(e){return this.map.get(e)}},$n=!0;try{"undefined"!=typeof localStorage&&localStorage&&(Nn=localStorage,$n=!1)}catch(sc){}const Bn=Nn,Fn=Object.assign,Wn=Object.keys,Vn=e=>Wn(e).length,Kn=e=>Wn(e).length,Hn=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),zn=Object.freeze,Jn=e=>{for(const t in e){const n=e[t];"object"!=typeof n&&"function"!=typeof n||Jn(e[t])}return zn(e)},qn=(e,t,n=0)=>{try{for(;n<e.length;n++)e[n](...t)}finally{n<e.length&&qn(e,t,n+1)}},Yn=(e,t)=>{if(null==e||null==t)return((e,t)=>e===t)(e,t);if(e.constructor!==t.constructor)return!1;if(e===t)return!0;switch(e.constructor){case ArrayBuffer:e=new Uint8Array(e),t=new Uint8Array(t);case Uint8Array:if(e.byteLength!==t.byteLength)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;break;case Set:if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;break;case Map:if(e.size!==t.size)return!1;for(const n of e.keys())if(!t.has(n)||!Yn(e.get(n),t.get(n)))return!1;break;case Object:if(Vn(e)!==Vn(t))return!1;for(const n in e)if(!Hn(e,n)||!Yn(e[n],t[n]))return!1;break;case Array:if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(!Yn(e[n],t[n]))return!1;break;default:return!1}return!0},Gn="undefined"!=typeof process&&process.release&&/node|io\.js/.test(process.release.name)&&"[object process]"===Object.prototype.toString.call("undefined"!=typeof process?process:0);let Qn;const Xn=e=>(()=>{if(void 0===Qn)if(Gn){Qn=bt();const e=process.argv;let t=null;for(let n=0;n<e.length;n++){const r=e[n];"-"===r[0]?(null!==t&&Qn.set(t,""),t=r):null!==t&&(Qn.set(t,r),t=null)}null!==t&&Qn.set(t,"")}else"object"==typeof location?(Qn=bt(),(location.search||"?").slice(1).split("&").forEach((e=>{if(0!==e.length){const[t,n]=e.split("=");Qn.set(`--${Bt(t,"-")}`,n),Qn.set(`-${Bt(t,"-")}`,n)}}))):Qn=bt();return Qn})().has(e),Zn=e=>Mn(Gn?process.env[e.toUpperCase().replaceAll("-","_")]:Bn.getItem(e)),er=e=>Xn("--"+e)||null!==Zn(e);er("production");var tr;Gn&&(tr=process.env.FORCE_COLOR,["true","1","2"].includes(tr))||!Xn("--no-colors")&&!er("no-color")&&(!Gn||process.stdout.isTTY)&&(!Gn||Xn("--color")||null!==Zn("COLORTERM")||(Zn("TERM")||"").includes("color"));class nr{constructor(e,t){this.left=e,this.right=t}}const rr=(e,t)=>new nr(e,t);"undefined"!=typeof DOMParser&&new DOMParser;const sr=Symbol,ir=sr(),or=sr(),lr=sr(),cr=sr(),ar=sr(),ur=sr(),dr=sr(),hr=sr(),fr=sr(),pr=(rr("font-weight","bold"),rr("font-weight","normal"),rr("color","blue"),rr("color","green"),rr("color","grey"),rr("color","red"),rr("color","purple"),rr("color","orange"),rr("color","black"),_t()),gr=e=>({[Symbol.iterator](){return this},next:e}),yr=(e,t)=>gr((()=>{const{done:n,value:r}=e.next();return{done:n,value:n?void 0:t(r)}}));class mr{constructor(e,t){this.clock=e,this.len=t}}class br{constructor(){this.clients=new Map}}const vr=(e,t,n)=>t.clients.forEach(((t,r)=>{const s=e.doc.store.clients.get(r);if(null!=s){const r=s[s.length-1],i=r.id.clock+r.length;for(let r=0,o=t[r];r<t.length&&o.clock<i;o=t[++r])ts(e,s,o.clock,o.len,n)}})),wr=(e,t)=>{const n=e.clients.get(t.client);return void 0!==n&&null!==((e,t)=>{let n=0,r=e.length-1;for(;n<=r;){const s=At((n+r)/2),i=e[s],o=i.clock;if(o<=t){if(t<o+i.len)return s;n=s+1}else r=s-1}return null})(n,t.clock)},_r=e=>{e.clients.forEach((e=>{let t,n;for(e.sort(((e,t)=>e.clock-t.clock)),t=1,n=1;t<e.length;t++){const r=e[n-1],s=e[t];r.clock+r.len>=s.clock?r.len=Tt(r.len,s.clock+s.len-r.clock):(n<t&&(e[n]=s),n++)}e.length=n}))},kr=(e,t,n,r)=>{wt(e.clients,t,(()=>[])).push(new mr(n,r))},Sr=(e,t)=>{Yt(e.restEncoder,t.clients.size),Et(t.clients.entries()).sort(((e,t)=>t[0]-e[0])).forEach((([t,n])=>{e.resetDsCurVal(),Yt(e.restEncoder,t);const r=n.length;Yt(e.restEncoder,r);for(let t=0;t<r;t++){const r=n[t];e.writeDsClock(r.clock),e.writeDsLen(r.len)}}))},Er=(e,t,n)=>{const r=new br,s=_n(e.restDecoder);for(let i=0;i<s;i++){e.resetDsCurVal();const s=_n(e.restDecoder),i=_n(e.restDecoder),o=n.clients.get(s)||[],l=qr(n,s);for(let n=0;n<i;n++){const n=e.readDsClock(),i=n+e.readDsLen();if(n<l){l<i&&kr(r,s,l,i-l);let e=Gr(o,n),c=o[e];for(!c.deleted&&c.id.clock<n&&(o.splice(e+1,0,Ri(t,c,n-c.id.clock)),e++);e<o.length&&(c=o[e++],c.id.clock<i);)c.deleted||(i<c.id.clock+c.length&&o.splice(e,0,Ri(t,c,i-c.id.clock)),c.delete(t))}else kr(r,s,n,i-n)}}if(r.clients.size>0){const e=new Ur;return Yt(e.restEncoder,0),Sr(e,r),e.toUint8Array()}return null},xr=Un;class Cr extends Ct{constructor({guid:e=Ln(),collectionid:t=null,gc:n=!0,gcFilter:r=(()=>!0),meta:s=null,autoLoad:i=!1,shouldLoad:o=!0}={}){super(),this.gc=n,this.gcFilter=r,this.clientID=xr(),this.guid=e,this.collectionid=t,this.share=new Map,this.store=new zr,this._transaction=null,this._transactionCleanups=[],this.subdocs=new Set,this._item=null,this.shouldLoad=o,this.autoLoad=i,this.meta=s,this.isLoaded=!1,this.isSynced=!1,this.isDestroyed=!1,this.whenLoaded=Rn((e=>{this.on("load",(()=>{this.isLoaded=!0,e(this)}))}));const l=()=>Rn((e=>{const t=n=>{void 0!==n&&!0!==n||(this.off("sync",t),e())};this.on("sync",t)}));this.on("sync",(e=>{!1===e&&this.isSynced&&(this.whenSynced=l()),this.isSynced=void 0===e||!0===e,this.isSynced&&!this.isLoaded&&this.emit("load",[this])})),this.whenSynced=l()}load(){const e=this._item;null===e||this.shouldLoad||ls(e.parent.doc,(e=>{e.subdocsLoaded.add(this)}),null,!0),this.shouldLoad=!0}getSubdocs(){return this.subdocs}getSubdocGuids(){return new Set(Et(this.subdocs).map((e=>e.guid)))}transact(e,t=null){return ls(this,e,t)}get(e,t=Cs){const n=wt(this.share,e,(()=>{const e=new t;return e._integrate(this,null),e})),r=n.constructor;if(t!==Cs&&r!==t){if(r===Cs){const r=new t;r._map=n._map,n._map.forEach((e=>{for(;null!==e;e=e.left)e.parent=r})),r._start=n._start;for(let e=r._start;null!==e;e=e.right)e.parent=r;return r._length=n._length,this.share.set(e,r),r._integrate(this,null),r}throw new Error(`Type with the name ${e} has already been defined with a different constructor`)}return n}getArray(e=""){return this.get(e,Ks)}getText(e=""){return this.get(e,ci)}getMap(e=""){return this.get(e,zs)}getXmlElement(e=""){return this.get(e,di)}getXmlFragment(e=""){return this.get(e,ui)}toJSON(){const e={};return this.share.forEach(((t,n)=>{e[n]=t.toJSON()})),e}destroy(){this.isDestroyed=!0,Et(this.subdocs).forEach((e=>e.destroy()));const e=this._item;if(null!==e){this._item=null;const t=e.content;t.doc=new Cr({guid:this.guid,...t.opts,shouldLoad:!1}),t.doc._item=e,ls(e.parent.doc,(n=>{const r=t.doc;e.deleted||n.subdocsAdded.add(r),n.subdocsRemoved.add(this)}),null,!0)}this.emit("destroyed",[!0]),this.emit("destroy",[this]),super.destroy()}}class Ir{constructor(e){this.dsCurrVal=0,this.restDecoder=e}resetDsCurVal(){this.dsCurrVal=0}readDsClock(){return this.dsCurrVal+=_n(this.restDecoder),this.dsCurrVal}readDsLen(){const e=_n(this.restDecoder)+1;return this.dsCurrVal+=e,e}}class Ar extends Ir{constructor(e){super(e),this.keys=[],_n(e),this.keyClockDecoder=new Dn(vn(e)),this.clientDecoder=new An(vn(e)),this.leftClockDecoder=new Dn(vn(e)),this.rightClockDecoder=new Dn(vn(e)),this.infoDecoder=new In(vn(e),wn),this.stringDecoder=new On(vn(e)),this.parentInfoDecoder=new In(vn(e),wn),this.typeRefDecoder=new An(vn(e)),this.lenDecoder=new An(vn(e))}readLeftID(){return new Fr(this.clientDecoder.read(),this.leftClockDecoder.read())}readRightID(){return new Fr(this.clientDecoder.read(),this.rightClockDecoder.read())}readClient(){return this.clientDecoder.read()}readInfo(){return this.infoDecoder.read()}readString(){return this.stringDecoder.read()}readParentInfo(){return 1===this.parentInfoDecoder.read()}readTypeRef(){return this.typeRefDecoder.read()}readLen(){return this.lenDecoder.read()}readAny(){return Cn(this.restDecoder)}readBuf(){return vn(this.restDecoder)}readJSON(){return Cn(this.restDecoder)}readKey(){const e=this.keyClockDecoder.read();if(e<this.keys.length)return this.keys[e];{const e=this.stringDecoder.read();return this.keys.push(e),e}}}class Dr{constructor(){this.restEncoder=Ht()}toUint8Array(){return zt(this.restEncoder)}resetDsCurVal(){}writeDsClock(e){Yt(this.restEncoder,e)}writeDsLen(e){Yt(this.restEncoder,e)}}class Or extends Dr{writeLeftID(e){Yt(this.restEncoder,e.client),Yt(this.restEncoder,e.clock)}writeRightID(e){Yt(this.restEncoder,e.client),Yt(this.restEncoder,e.clock)}writeClient(e){Yt(this.restEncoder,e)}writeInfo(e){qt(this.restEncoder,e)}writeString(e){Zt(this.restEncoder,e)}writeParentInfo(e){Yt(this.restEncoder,e?1:0)}writeTypeRef(e){Yt(this.restEncoder,e)}writeLen(e){Yt(this.restEncoder,e)}writeAny(e){sn(this.restEncoder,e)}writeBuf(e){tn(this.restEncoder,e)}writeJSON(e){Zt(this.restEncoder,JSON.stringify(e))}writeKey(e){Zt(this.restEncoder,e)}}class Tr{constructor(){this.restEncoder=Ht(),this.dsCurrVal=0}toUint8Array(){return zt(this.restEncoder)}resetDsCurVal(){this.dsCurrVal=0}writeDsClock(e){const t=e-this.dsCurrVal;this.dsCurrVal=e,Yt(this.restEncoder,t)}writeDsLen(e){0===e&&pn(),Yt(this.restEncoder,e-1),this.dsCurrVal+=e}}class Ur extends Tr{constructor(){super(),this.keyMap=new Map,this.keyClock=0,this.keyClockEncoder=new un,this.clientEncoder=new cn,this.leftClockEncoder=new un,this.rightClockEncoder=new un,this.infoEncoder=new on(qt),this.stringEncoder=new dn,this.parentInfoEncoder=new on(qt),this.typeRefEncoder=new cn,this.lenEncoder=new cn}toUint8Array(){const e=Ht();return Yt(e,0),tn(e,this.keyClockEncoder.toUint8Array()),tn(e,this.clientEncoder.toUint8Array()),tn(e,this.leftClockEncoder.toUint8Array()),tn(e,this.rightClockEncoder.toUint8Array()),tn(e,zt(this.infoEncoder)),tn(e,this.stringEncoder.toUint8Array()),tn(e,zt(this.parentInfoEncoder)),tn(e,this.typeRefEncoder.toUint8Array()),tn(e,this.lenEncoder.toUint8Array()),en(e,zt(this.restEncoder)),zt(e)}writeLeftID(e){this.clientEncoder.write(e.client),this.leftClockEncoder.write(e.clock)}writeRightID(e){this.clientEncoder.write(e.client),this.rightClockEncoder.write(e.clock)}writeClient(e){this.clientEncoder.write(e)}writeInfo(e){this.infoEncoder.write(e)}writeString(e){this.stringEncoder.write(e)}writeParentInfo(e){this.parentInfoEncoder.write(e?1:0)}writeTypeRef(e){this.typeRefEncoder.write(e)}writeLen(e){this.lenEncoder.write(e)}writeAny(e){sn(this.restEncoder,e)}writeBuf(e){tn(this.restEncoder,e)}writeJSON(e){sn(this.restEncoder,e)}writeKey(e){const t=this.keyMap.get(e);void 0===t?(this.keyClockEncoder.write(this.keyClock++),this.stringEncoder.write(e)):this.keyClockEncoder.write(t)}}const jr=(e,t,n)=>{const r=new Map;n.forEach(((e,n)=>{qr(t,n)>e&&r.set(n,e)})),Jr(t).forEach(((e,t)=>{n.has(t)||r.set(t,0)})),Yt(e.restEncoder,r.size),Et(r.entries()).sort(((e,t)=>t[0]-e[0])).forEach((([n,r])=>{((e,t,n,r)=>{r=Tt(r,t[0].id.clock);const s=Gr(t,r);Yt(e.restEncoder,t.length-s),e.writeClient(n),Yt(e.restEncoder,r);const i=t[s];i.write(e,r-i.id.clock);for(let n=s+1;n<t.length;n++)t[n].write(e,0)})(e,t.clients.get(n),n,r)}))},Lr=(e,t,n,r=new Ar(e))=>ls(t,(e=>{e.local=!1;let t=!1;const n=e.doc,s=n.store,i=((e,t)=>{const n=bt(),r=_n(e.restDecoder);for(let s=0;s<r;s++){const r=_n(e.restDecoder),s=new Array(r),i=e.readClient();let o=_n(e.restDecoder);n.set(i,{i:0,refs:s});for(let n=0;n<r;n++){const r=e.readInfo();switch(31&r){case 0:{const t=e.readLen();s[n]=new yi(Vr(i,o),t),o+=t;break}case 10:{const t=_n(e.restDecoder);s[n]=new Bi(Vr(i,o),t),o+=t;break}default:{const l=0==(192&r),c=new Mi(Vr(i,o),null,(r&Lt)===Lt?e.readLeftID():null,null,(r&jt)===jt?e.readRightID():null,l?e.readParentInfo()?t.get(e.readString()):e.readLeftID():null,l&&32==(32&r)?e.readString():null,Ni(e,r));s[n]=c,o+=c.length}}}}return n})(r,n),o=((e,t,n)=>{const r=[];let s=Et(n.keys()).sort(((e,t)=>e-t));if(0===s.length)return null;const i=()=>{if(0===s.length)return null;let e=n.get(s[s.length-1]);for(;e.refs.length===e.i;){if(s.pop(),!(s.length>0))return null;e=n.get(s[s.length-1])}return e};let o=i();if(null===o)return null;const l=new zr,c=new Map,a=(e,t)=>{const n=c.get(e);(null==n||n>t)&&c.set(e,t)};let u=o.refs[o.i++];const d=new Map,h=()=>{for(const e of r){const t=e.id.client,r=n.get(t);r?(r.i--,l.clients.set(t,r.refs.slice(r.i)),n.delete(t),r.i=0,r.refs=[]):l.clients.set(t,[e]),s=s.filter((e=>e!==t))}r.length=0};for(;;){if(u.constructor!==Bi){const s=wt(d,u.id.client,(()=>qr(t,u.id.client)))-u.id.clock;if(s<0)r.push(u),a(u.id.client,u.id.clock-1),h();else{const i=u.getMissing(e,t);if(null!==i){r.push(u);const e=n.get(i)||{refs:[],i:0};if(e.refs.length!==e.i){u=e.refs[e.i++];continue}a(i,qr(t,i)),h()}else(0===s||s<u.length)&&(u.integrate(e,s),d.set(u.id.client,u.id.clock+u.length))}}if(r.length>0)u=r.pop();else if(null!==o&&o.i<o.refs.length)u=o.refs[o.i++];else{if(o=i(),null===o)break;u=o.refs[o.i++]}}if(l.clients.size>0){const e=new Ur;return jr(e,l,new Map),Yt(e.restEncoder,0),{missing:c,update:e.toUint8Array()}}return null})(e,s,i),l=s.pendingStructs;if(l){for(const[e,n]of l.missing)if(n<qr(s,e)){t=!0;break}if(o){for(const[e,t]of o.missing){const n=l.missing.get(e);(null==n||n>t)&&l.missing.set(e,t)}l.update=hs([l.update,o.update])}}else s.pendingStructs=o;const c=Er(r,e,s);if(s.pendingDs){const t=new Ar(bn(s.pendingDs));_n(t.restDecoder);const n=Er(t,e,s);s.pendingDs=c&&n?hs([c,n]):c||n}else s.pendingDs=c;if(t){const t=s.pendingStructs.update;s.pendingStructs=null,Pr(e.doc,t)}}),n,!1),Pr=(e,t,n,r=Ar)=>{const s=bn(t);Lr(s,e,n,new r(s))};class Rr{constructor(){this.l=[]}}const Mr=()=>new Rr,Nr=(e,t)=>e.l.push(t),$r=(e,t)=>{const n=e.l;n.length;e.l=n.filter((e=>t!==e)),e.l.length},Br=(e,t,n)=>qn(e.l,[t,n]);class Fr{constructor(e,t){this.client=e,this.clock=t}}const Wr=(e,t)=>e===t||null!==e&&null!==t&&e.client===t.client&&e.clock===t.clock,Vr=(e,t)=>new Fr(e,t),Kr=(e,t)=>void 0===t?!e.deleted:t.sv.has(e.id.client)&&(t.sv.get(e.id.client)||0)>e.id.clock&&!wr(t.ds,e.id),Hr=(e,t)=>{const n=wt(e.meta,Hr,_t),r=e.doc.store;n.has(t)||(t.sv.forEach(((t,n)=>{t<qr(r,n)&&Zr(e,Vr(n,t))})),vr(e,t.ds,(e=>{})),n.add(t))};class zr{constructor(){this.clients=new Map,this.pendingStructs=null,this.pendingDs=null}}const Jr=e=>{const t=new Map;return e.clients.forEach(((e,n)=>{const r=e[e.length-1];t.set(n,r.id.clock+r.length)})),t},qr=(e,t)=>{const n=e.clients.get(t);if(void 0===n)return 0;const r=n[n.length-1];return r.id.clock+r.length},Yr=(e,t)=>{let n=e.clients.get(t.id.client);if(void 0===n)n=[],e.clients.set(t.id.client,n);else{const e=n[n.length-1];if(e.id.clock+e.length!==t.id.clock)throw pn()}n.push(t)},Gr=(e,t)=>{let n=0,r=e.length-1,s=e[r],i=s.id.clock;if(i===t)return r;let o=At(t/(i+s.length-1)*r);for(;n<=r;){if(s=e[o],i=s.id.clock,i<=t){if(t<i+s.length)return o;n=o+1}else r=o-1;o=At((n+r)/2)}throw pn()},Qr=(e,t)=>{const n=e.clients.get(t.client);return n[Gr(n,t.clock)]},Xr=(e,t,n)=>{const r=Gr(t,n),s=t[r];return s.id.clock<n&&s instanceof Mi?(t.splice(r+1,0,Ri(e,s,n-s.id.clock)),r+1):r},Zr=(e,t)=>{const n=e.doc.store.clients.get(t.client);return n[Xr(e,n,t.clock)]},es=(e,t,n)=>{const r=t.clients.get(n.client),s=Gr(r,n.clock),i=r[s];return n.clock!==i.id.clock+i.length-1&&i.constructor!==yi&&r.splice(s+1,0,Ri(e,i,n.clock-i.id.clock+1)),i},ts=(e,t,n,r,s)=>{if(0===r)return;const i=n+r;let o,l=Xr(e,t,n);do{o=t[l++],i<o.id.clock+o.length&&Xr(e,t,i),s(o)}while(l<t.length&&t[l].id.clock<i)};class ns{constructor(e,t,n){this.doc=e,this.deleteSet=new br,this.beforeState=Jr(e.store),this.afterState=new Map,this.changed=new Map,this.changedParentTypes=new Map,this._mergeStructs=[],this.origin=t,this.meta=new Map,this.local=n,this.subdocsAdded=new Set,this.subdocsRemoved=new Set,this.subdocsLoaded=new Set,this._needFormattingCleanup=!1}}const rs=(e,t)=>!(0===t.deleteSet.clients.size&&!((e,t)=>{for(const[n,r]of e)if(t(r,n))return!0;return!1})(t.afterState,((e,n)=>t.beforeState.get(n)!==e)))&&(_r(t.deleteSet),((e,t)=>{jr(e,t.doc.store,t.beforeState)})(e,t),Sr(e,t.deleteSet),!0),ss=(e,t,n)=>{const r=t._item;(null===r||r.id.clock<(e.beforeState.get(r.id.client)||0)&&!r.deleted)&&wt(e.changed,t,_t).add(n)},is=(e,t)=>{let n=e[t],r=e[t-1],s=t;for(;s>0&&(r.deleted===n.deleted&&r.constructor===n.constructor&&r.mergeWith(n));n=r,r=e[--s-1])n instanceof Mi&&null!==n.parentSub&&n.parent._map.get(n.parentSub)===n&&n.parent._map.set(n.parentSub,r);const i=t-s;return i&&e.splice(t+1-i,i),i},os=(e,t)=>{if(t<e.length){const n=e[t],r=n.doc,s=r.store,i=n.deleteSet,o=n._mergeStructs;try{_r(i),n.afterState=Jr(n.doc.store),r.emit("beforeObserverCalls",[n,r]);const e=[];n.changed.forEach(((t,r)=>e.push((()=>{null!==r._item&&r._item.deleted||r._callObserver(n,t)})))),e.push((()=>{n.changedParentTypes.forEach(((e,t)=>{t._dEH.l.length>0&&(null===t._item||!t._item.deleted)&&((e=e.filter((e=>null===e.target._item||!e.target._item.deleted))).forEach((e=>{e.currentTarget=t,e._path=null})),e.sort(((e,t)=>e.path.length-t.path.length)),Br(t._dEH,e,n))}))})),e.push((()=>r.emit("afterTransaction",[n,r]))),qn(e,[]),n._needFormattingCleanup&&ii(n)}finally{r.gc&&((e,t,n)=>{for(const[r,s]of e.clients.entries()){const e=t.clients.get(r);for(let r=s.length-1;r>=0;r--){const i=s[r],o=i.clock+i.len;for(let r=Gr(e,i.clock),s=e[r];r<e.length&&s.id.clock<o;s=e[++r]){const s=e[r];if(i.clock+i.len<=s.id.clock)break;s instanceof Mi&&s.deleted&&!s.keep&&n(s)&&s.gc(t,!1)}}}})(i,s,r.gcFilter),((e,t)=>{e.clients.forEach(((e,n)=>{const r=t.clients.get(n);for(let t=e.length-1;t>=0;t--){const n=e[t];for(let e=Ot(r.length-1,1+Gr(r,n.clock+n.len-1)),t=r[e];e>0&&t.id.clock>=n.clock;t=r[e])e-=1+is(r,e)}}))})(i,s),n.afterState.forEach(((e,t)=>{const r=n.beforeState.get(t)||0;if(r!==e){const e=s.clients.get(t),n=Tt(Gr(e,r),1);for(let t=e.length-1;t>=n;)t-=1+is(e,t)}}));for(let e=o.length-1;e>=0;e--){const{client:t,clock:n}=o[e].id,r=s.clients.get(t),i=Gr(r,n);i+1<r.length&&is(r,i+1)>1||i>0&&is(r,i)}if(n.local||n.afterState.get(r.clientID)===n.beforeState.get(r.clientID)||(((...e)=>{pr.forEach((t=>t.print(e)))})(hr,ir,"[yjs] ",or,ur,"Changed the client-id because another client seems to be using it."),r.clientID=xr()),r.emit("afterTransactionCleanup",[n,r]),r._observers.has("update")){const e=new Or;rs(e,n)&&r.emit("update",[e.toUint8Array(),n.origin,r,n])}if(r._observers.has("updateV2")){const e=new Ur;rs(e,n)&&r.emit("updateV2",[e.toUint8Array(),n.origin,r,n])}const{subdocsAdded:l,subdocsLoaded:c,subdocsRemoved:a}=n;(l.size>0||a.size>0||c.size>0)&&(l.forEach((e=>{e.clientID=r.clientID,null==e.collectionid&&(e.collectionid=r.collectionid),r.subdocs.add(e)})),a.forEach((e=>r.subdocs.delete(e))),r.emit("subdocs",[{loaded:c,added:l,removed:a},r,n]),a.forEach((e=>e.destroy()))),e.length<=t+1?(r._transactionCleanups=[],r.emit("afterAllTransactions",[r,e])):os(e,t+1)}}},ls=(e,t,n=null,r=!0)=>{const s=e._transactionCleanups;let i=!1,o=null;null===e._transaction&&(i=!0,e._transaction=new ns(e,n,r),s.push(e._transaction),1===s.length&&e.emit("beforeAllTransactions",[e]),e.emit("beforeTransaction",[e._transaction,e]));try{o=t(e._transaction)}finally{if(i){const t=e._transaction===s[0];e._transaction=null,t&&os(s,0)}}return o};class cs{constructor(e,t){this.gen=function*(e){const t=_n(e.restDecoder);for(let n=0;n<t;n++){const t=_n(e.restDecoder),n=e.readClient();let r=_n(e.restDecoder);for(let s=0;s<t;s++){const t=e.readInfo();if(10===t){const t=_n(e.restDecoder);yield new Bi(Vr(n,r),t),r+=t}else if(0!=(31&t)){const s=0==(192&t),i=new Mi(Vr(n,r),null,(t&Lt)===Lt?e.readLeftID():null,null,(t&jt)===jt?e.readRightID():null,s?e.readParentInfo()?e.readString():e.readLeftID():null,s&&32==(32&t)?e.readString():null,Ni(e,t));yield i,r+=i.length}else{const t=e.readLen();yield new yi(Vr(n,r),t),r+=t}}}}(e),this.curr=null,this.done=!1,this.filterSkips=t,this.next()}next(){do{this.curr=this.gen.next().value||null}while(this.filterSkips&&null!==this.curr&&this.curr.constructor===Bi);return this.curr}}class as{constructor(e){this.currClient=0,this.startClock=0,this.written=0,this.encoder=e,this.clientStructs=[]}}const us=(e,t=Tr,n=Ar)=>{const r=new t,s=new cs(new n(bn(e)),!1);let i=s.curr;if(null!==i){let e=0,t=i.id.client,n=0!==i.id.clock,o=n?0:i.id.clock+i.length;for(;null!==i;i=s.next())t!==i.id.client&&(0!==o&&(e++,Yt(r.restEncoder,t),Yt(r.restEncoder,o)),t=i.id.client,o=0,n=0!==i.id.clock),i.constructor===Bi&&(n=!0),n||(o=i.id.clock+i.length);0!==o&&(e++,Yt(r.restEncoder,t),Yt(r.restEncoder,o));const l=Ht();return Yt(l,e),((e,t)=>{en(e,zt(t))})(l,r.restEncoder),r.restEncoder=l,r.toUint8Array()}return Yt(r.restEncoder,0),r.toUint8Array()},ds=(e,t)=>{if(e.constructor===yi){const{client:n,clock:r}=e.id;return new yi(Vr(n,r+t),e.length-t)}if(e.constructor===Bi){const{client:n,clock:r}=e.id;return new Bi(Vr(n,r+t),e.length-t)}{const n=e,{client:r,clock:s}=n.id;return new Mi(Vr(r,s+t),null,Vr(r,s+t-1),null,n.rightOrigin,n.parent,n.parentSub,n.content.splice(t))}},hs=(e,t=Ar,n=Ur)=>{if(1===e.length)return e[0];const r=e.map((e=>new t(bn(e))));let s=r.map((e=>new cs(e,!0))),i=null;const o=new n,l=new as(o);for(;s=s.filter((e=>null!==e.curr)),s.sort(((e,t)=>{if(e.curr.id.client===t.curr.id.client){const n=e.curr.id.clock-t.curr.id.clock;return 0===n?e.curr.constructor===t.curr.constructor?0:e.curr.constructor===Bi?1:-1:n}return t.curr.id.client-e.curr.id.client})),0!==s.length;){const e=s[0],t=e.curr.id.client;if(null!==i){let n=e.curr,r=!1;for(;null!==n&&n.id.clock+n.length<=i.struct.id.clock+i.struct.length&&n.id.client>=i.struct.id.client;)n=e.next(),r=!0;if(null===n||n.id.client!==t||r&&n.id.clock>i.struct.id.clock+i.struct.length)continue;if(t!==i.struct.id.client)ps(l,i.struct,i.offset),i={struct:n,offset:0},e.next();else if(i.struct.id.clock+i.struct.length<n.id.clock)if(i.struct.constructor===Bi)i.struct.length=n.id.clock+n.length-i.struct.id.clock;else{ps(l,i.struct,i.offset);const e=n.id.clock-i.struct.id.clock-i.struct.length;i={struct:new Bi(Vr(t,i.struct.id.clock+i.struct.length),e),offset:0}}else{const t=i.struct.id.clock+i.struct.length-n.id.clock;t>0&&(i.struct.constructor===Bi?i.struct.length-=t:n=ds(n,t)),i.struct.mergeWith(n)||(ps(l,i.struct,i.offset),i={struct:n,offset:0},e.next())}}else i={struct:e.curr,offset:0},e.next();for(let n=e.curr;null!==n&&n.id.client===t&&n.id.clock===i.struct.id.clock+i.struct.length&&n.constructor!==Bi;n=e.next())ps(l,i.struct,i.offset),i={struct:n,offset:0}}null!==i&&(ps(l,i.struct,i.offset),i=null),gs(l);const c=r.map((e=>(e=>{const t=new br,n=_n(e.restDecoder);for(let r=0;r<n;r++){e.resetDsCurVal();const n=_n(e.restDecoder),r=_n(e.restDecoder);if(r>0){const s=wt(t.clients,n,(()=>[]));for(let t=0;t<r;t++)s.push(new mr(e.readDsClock(),e.readDsLen()))}}return t})(e))),a=(e=>{const t=new br;for(let n=0;n<e.length;n++)e[n].clients.forEach(((r,s)=>{if(!t.clients.has(s)){const i=r.slice();for(let t=n+1;t<e.length;t++)St(i,e[t].clients.get(s)||[]);t.clients.set(s,i)}}));return _r(t),t})(c);return Sr(o,a),o.toUint8Array()},fs=e=>{e.written>0&&(e.clientStructs.push({written:e.written,restEncoder:zt(e.encoder.restEncoder)}),e.encoder.restEncoder=Ht(),e.written=0)},ps=(e,t,n)=>{e.written>0&&e.currClient!==t.id.client&&fs(e),0===e.written&&(e.currClient=t.id.client,e.encoder.writeClient(t.id.client),Yt(e.encoder.restEncoder,t.id.clock+n)),t.write(e.encoder,n),e.written++},gs=e=>{fs(e);const t=e.encoder.restEncoder;Yt(t,e.clientStructs.length);for(let n=0;n<e.clientStructs.length;n++){const r=e.clientStructs[n];Yt(t,r.written),en(t,r.restEncoder)}},ys="You must not compute changes after the event-handler fired.";class ms{constructor(e,t){this.target=e,this.currentTarget=e,this.transaction=t,this._changes=null,this._keys=null,this._delta=null,this._path=null}get path(){return this._path||(this._path=bs(this.currentTarget,this.target))}deletes(e){return wr(this.transaction.deleteSet,e.id)}get keys(){if(null===this._keys){if(0===this.transaction.doc._transactionCleanups.length)throw hn(ys);const e=new Map,t=this.target;this.transaction.changed.get(t).forEach((n=>{if(null!==n){const r=t._map.get(n);let s,i;if(this.adds(r)){let e=r.left;for(;null!==e&&this.adds(e);)e=e.left;if(this.deletes(r)){if(null===e||!this.deletes(e))return;s="delete",i=kt(e.content.getContent())}else null!==e&&this.deletes(e)?(s="update",i=kt(e.content.getContent())):(s="add",i=void 0)}else{if(!this.deletes(r))return;s="delete",i=kt(r.content.getContent())}e.set(n,{action:s,oldValue:i})}})),this._keys=e}return this._keys}get delta(){return this.changes.delta}adds(e){return e.id.clock>=(this.transaction.beforeState.get(e.id.client)||0)}get changes(){let e=this._changes;if(null===e){if(0===this.transaction.doc._transactionCleanups.length)throw hn(ys);const t=this.target,n=_t(),r=_t(),s=[];e={added:n,deleted:r,delta:s,keys:this.keys};if(this.transaction.changed.get(t).has(null)){let e=null;const i=()=>{e&&s.push(e)};for(let s=t._start;null!==s;s=s.right)s.deleted?this.deletes(s)&&!this.adds(s)&&(null!==e&&void 0!==e.delete||(i(),e={delete:0}),e.delete+=s.length,r.add(s)):this.adds(s)?(null!==e&&void 0!==e.insert||(i(),e={insert:[]}),e.insert=e.insert.concat(s.content.getContent()),n.add(s)):(null!==e&&void 0!==e.retain||(i(),e={retain:0}),e.retain+=s.length);null!==e&&void 0===e.retain&&i()}this._changes=e}return e}}const bs=(e,t)=>{const n=[];for(;null!==t._item&&t!==e;){if(null!==t._item.parentSub)n.unshift(t._item.parentSub);else{let e=0,r=t._item.parent._start;for(;r!==t._item&&null!==r;)!r.deleted&&r.countable&&(e+=r.length),r=r.right;n.unshift(e)}t=t._item.parent}return n},vs=()=>{((...e)=>{e.unshift(hr),pr.forEach((t=>t.print(e)))})("Invalid access: Add Yjs type to a document before reading data.")};let ws=0;class _s{constructor(e,t){e.marker=!0,this.p=e,this.index=t,this.timestamp=ws++}}const ks=(e,t,n)=>{e.p.marker=!1,e.p=t,t.marker=!0,e.index=n,e.timestamp=ws++},Ss=(e,t)=>{if(null===e._start||0===t||null===e._searchMarker)return null;const n=0===e._searchMarker.length?null:e._searchMarker.reduce(((e,n)=>Dt(t-e.index)<Dt(t-n.index)?e:n));let r=e._start,s=0;for(null!==n&&(r=n.p,s=n.index,(e=>{e.timestamp=ws++})(n));null!==r.right&&s<t;){if(!r.deleted&&r.countable){if(t<s+r.length)break;s+=r.length}r=r.right}for(;null!==r.left&&s>t;)r=r.left,!r.deleted&&r.countable&&(s-=r.length);for(;null!==r.left&&r.left.id.client===r.id.client&&r.left.id.clock+r.left.length===r.id.clock;)r=r.left,!r.deleted&&r.countable&&(s-=r.length);return null!==n&&Dt(n.index-s)<r.parent.length/80?(ks(n,r,s),n):((e,t,n)=>{if(e.length>=80){const r=e.reduce(((e,t)=>e.timestamp<t.timestamp?e:t));return ks(r,t,n),r}{const r=new _s(t,n);return e.push(r),r}})(e._searchMarker,r,s)},Es=(e,t,n)=>{for(let r=e.length-1;r>=0;r--){const s=e[r];if(n>0){let t=s.p;for(t.marker=!1;t&&(t.deleted||!t.countable);)t=t.left,t&&!t.deleted&&t.countable&&(s.index-=t.length);if(null===t||!0===t.marker){e.splice(r,1);continue}s.p=t,t.marker=!0}(t<s.index||n>0&&t===s.index)&&(s.index=Tt(t,s.index+n))}},xs=(e,t,n)=>{const r=e,s=t.changedParentTypes;for(;wt(s,e,(()=>[])).push(n),null!==e._item;)e=e._item.parent;Br(r._eH,n,t)};class Cs{constructor(){this._item=null,this._map=new Map,this._start=null,this.doc=null,this._length=0,this._eH=Mr(),this._dEH=Mr(),this._searchMarker=null}get parent(){return this._item?this._item.parent:null}_integrate(e,t){this.doc=e,this._item=t}_copy(){throw fn()}clone(){throw fn()}_write(e){}get _first(){let e=this._start;for(;null!==e&&e.deleted;)e=e.right;return e}_callObserver(e,t){!e.local&&this._searchMarker&&(this._searchMarker.length=0)}observe(e){Nr(this._eH,e)}observeDeep(e){Nr(this._dEH,e)}unobserve(e){$r(this._eH,e)}unobserveDeep(e){$r(this._dEH,e)}toJSON(){}}const Is=(e,t,n)=>{e.doc??vs(),t<0&&(t=e._length+t),n<0&&(n=e._length+n);let r=n-t;const s=[];let i=e._start;for(;null!==i&&r>0;){if(i.countable&&!i.deleted){const e=i.content.getContent();if(e.length<=t)t-=e.length;else{for(let n=t;n<e.length&&r>0;n++)s.push(e[n]),r--;t=0}}i=i.right}return s},As=e=>{e.doc??vs();const t=[];let n=e._start;for(;null!==n;){if(n.countable&&!n.deleted){const e=n.content.getContent();for(let n=0;n<e.length;n++)t.push(e[n])}n=n.right}return t},Ds=(e,t)=>{let n=0,r=e._start;for(e.doc??vs();null!==r;){if(r.countable&&!r.deleted){const s=r.content.getContent();for(let r=0;r<s.length;r++)t(s[r],n++,e)}r=r.right}},Os=(e,t)=>{const n=[];return Ds(e,((r,s)=>{n.push(t(r,s,e))})),n},Ts=e=>{let t=e._start,n=null,r=0;return{[Symbol.iterator](){return this},next:()=>{if(null===n){for(;null!==t&&t.deleted;)t=t.right;if(null===t)return{done:!0,value:void 0};n=t.content.getContent(),r=0,t=t.right}const e=n[r++];return n.length<=r&&(n=null),{done:!1,value:e}}}},Us=(e,t)=>{e.doc??vs();const n=Ss(e,t);let r=e._start;for(null!==n&&(r=n.p,t-=n.index);null!==r;r=r.right)if(!r.deleted&&r.countable){if(t<r.length)return r.content.getContent()[t];t-=r.length}},js=(e,t,n,r)=>{let s=n;const i=e.doc,o=i.clientID,l=i.store,c=null===n?t._start:n.right;let a=[];const u=()=>{a.length>0&&(s=new Mi(Vr(o,qr(l,o)),s,s&&s.lastId,c,c&&c.id,t,null,new xi(a)),s.integrate(e,0),a=[])};r.forEach((n=>{if(null===n)a.push(n);else switch(n.constructor){case Number:case Object:case Boolean:case Array:case String:a.push(n);break;default:switch(u(),n.constructor){case Uint8Array:case ArrayBuffer:s=new Mi(Vr(o,qr(l,o)),s,s&&s.lastId,c,c&&c.id,t,null,new mi(new Uint8Array(n))),s.integrate(e,0);break;case Cr:s=new Mi(Vr(o,qr(l,o)),s,s&&s.lastId,c,c&&c.id,t,null,new wi(n)),s.integrate(e,0);break;default:if(!(n instanceof Cs))throw new Error("Unexpected content type in insert operation");s=new Mi(Vr(o,qr(l,o)),s,s&&s.lastId,c,c&&c.id,t,null,new Pi(n)),s.integrate(e,0)}}})),u()},Ls=()=>hn("Length exceeded!"),Ps=(e,t,n,r)=>{if(n>t._length)throw Ls();if(0===n)return t._searchMarker&&Es(t._searchMarker,n,r.length),js(e,t,null,r);const s=n,i=Ss(t,n);let o=t._start;for(null!==i&&(o=i.p,0===(n-=i.index)&&(o=o.prev,n+=o&&o.countable&&!o.deleted?o.length:0));null!==o;o=o.right)if(!o.deleted&&o.countable){if(n<=o.length){n<o.length&&Zr(e,Vr(o.id.client,o.id.clock+n));break}n-=o.length}return t._searchMarker&&Es(t._searchMarker,s,r.length),js(e,t,o,r)},Rs=(e,t,n,r)=>{if(0===r)return;const s=n,i=r,o=Ss(t,n);let l=t._start;for(null!==o&&(l=o.p,n-=o.index);null!==l&&n>0;l=l.right)!l.deleted&&l.countable&&(n<l.length&&Zr(e,Vr(l.id.client,l.id.clock+n)),n-=l.length);for(;r>0&&null!==l;)l.deleted||(r<l.length&&Zr(e,Vr(l.id.client,l.id.clock+r)),l.delete(e),r-=l.length),l=l.right;if(r>0)throw Ls();t._searchMarker&&Es(t._searchMarker,s,-i+r)},Ms=(e,t,n)=>{const r=t._map.get(n);void 0!==r&&r.delete(e)},Ns=(e,t,n,r)=>{const s=t._map.get(n)||null,i=e.doc,o=i.clientID;let l;if(null==r)l=new xi([r]);else switch(r.constructor){case Number:case Object:case Boolean:case Array:case String:case Date:case BigInt:l=new xi([r]);break;case Uint8Array:l=new mi(r);break;case Cr:l=new wi(r);break;default:if(!(r instanceof Cs))throw new Error("Unexpected content type");l=new Pi(r)}new Mi(Vr(o,qr(i.store,o)),s,s&&s.lastId,null,null,t,n,l).integrate(e,0)},$s=(e,t)=>{e.doc??vs();const n=e._map.get(t);return void 0===n||n.deleted?void 0:n.content.getContent()[n.length-1]},Bs=e=>{const t={};return e.doc??vs(),e._map.forEach(((e,n)=>{e.deleted||(t[n]=e.content.getContent()[e.length-1])})),t},Fs=(e,t)=>{e.doc??vs();const n=e._map.get(t);return void 0!==n&&!n.deleted},Ws=e=>{return e.doc??vs(),t=e._map.entries(),n=e=>!e[1].deleted,gr((()=>{let e;do{e=t.next()}while(!e.done&&!n(e.value));return e}));var t,n};class Vs extends ms{}class Ks extends Cs{constructor(){super(),this._prelimContent=[],this._searchMarker=[]}static from(e){const t=new Ks;return t.push(e),t}_integrate(e,t){super._integrate(e,t),this.insert(0,this._prelimContent),this._prelimContent=null}_copy(){return new Ks}clone(){const e=new Ks;return e.insert(0,this.toArray().map((e=>e instanceof Cs?e.clone():e))),e}get length(){return this.doc??vs(),this._length}_callObserver(e,t){super._callObserver(e,t),xs(this,e,new Vs(this,e))}insert(e,t){null!==this.doc?ls(this.doc,(n=>{Ps(n,this,e,t)})):this._prelimContent.splice(e,0,...t)}push(e){null!==this.doc?ls(this.doc,(t=>{((e,t,n)=>{let r=(t._searchMarker||[]).reduce(((e,t)=>t.index>e.index?t:e),{index:0,p:t._start}).p;if(r)for(;r.right;)r=r.right;js(e,t,r,n)})(t,this,e)})):this._prelimContent.push(...e)}unshift(e){this.insert(0,e)}delete(e,t=1){null!==this.doc?ls(this.doc,(n=>{Rs(n,this,e,t)})):this._prelimContent.splice(e,t)}get(e){return Us(this,e)}toArray(){return As(this)}slice(e=0,t=this.length){return Is(this,e,t)}toJSON(){return this.map((e=>e instanceof Cs?e.toJSON():e))}map(e){return Os(this,e)}forEach(e){Ds(this,e)}[Symbol.iterator](){return Ts(this)}_write(e){e.writeTypeRef(Ai)}}class Hs extends ms{constructor(e,t,n){super(e,t),this.keysChanged=n}}class zs extends Cs{constructor(e){super(),this._prelimContent=null,this._prelimContent=void 0===e?new Map:new Map(e)}_integrate(e,t){super._integrate(e,t),this._prelimContent.forEach(((e,t)=>{this.set(t,e)})),this._prelimContent=null}_copy(){return new zs}clone(){const e=new zs;return this.forEach(((t,n)=>{e.set(n,t instanceof Cs?t.clone():t)})),e}_callObserver(e,t){xs(this,e,new Hs(this,e,t))}toJSON(){this.doc??vs();const e={};return this._map.forEach(((t,n)=>{if(!t.deleted){const r=t.content.getContent()[t.length-1];e[n]=r instanceof Cs?r.toJSON():r}})),e}get size(){return[...Ws(this)].length}keys(){return yr(Ws(this),(e=>e[0]))}values(){return yr(Ws(this),(e=>e[1].content.getContent()[e[1].length-1]))}entries(){return yr(Ws(this),(e=>[e[0],e[1].content.getContent()[e[1].length-1]]))}forEach(e){this.doc??vs(),this._map.forEach(((t,n)=>{t.deleted||e(t.content.getContent()[t.length-1],n,this)}))}[Symbol.iterator](){return this.entries()}delete(e){null!==this.doc?ls(this.doc,(t=>{Ms(t,this,e)})):this._prelimContent.delete(e)}set(e,t){return null!==this.doc?ls(this.doc,(n=>{Ns(n,this,e,t)})):this._prelimContent.set(e,t),t}get(e){return $s(this,e)}has(e){return Fs(this,e)}clear(){null!==this.doc?ls(this.doc,(e=>{this.forEach((function(t,n,r){Ms(e,r,n)}))})):this._prelimContent.clear()}_write(e){e.writeTypeRef(Di)}}const Js=(e,t)=>e===t||"object"==typeof e&&"object"==typeof t&&e&&t&&((e,t)=>e===t||Kn(e)===Kn(t)&&((e,t)=>{for(const n in e)if(!t(e[n],n))return!1;return!0})(e,((e,n)=>(void 0!==e||Hn(t,n))&&t[n]===e)))(e,t);class qs{constructor(e,t,n,r){this.left=e,this.right=t,this.index=n,this.currentAttributes=r}forward(){if(null===this.right&&pn(),this.right.content.constructor===ki)this.right.deleted||Xs(this.currentAttributes,this.right.content);else this.right.deleted||(this.index+=this.right.length);this.left=this.right,this.right=this.right.right}}const Ys=(e,t,n)=>{for(;null!==t.right&&n>0;){if(t.right.content.constructor===ki)t.right.deleted||Xs(t.currentAttributes,t.right.content);else t.right.deleted||(n<t.right.length&&Zr(e,Vr(t.right.id.client,t.right.id.clock+n)),t.index+=t.right.length,n-=t.right.length);t.left=t.right,t.right=t.right.right}return t},Gs=(e,t,n,r)=>{const s=new Map,i=r?Ss(t,n):null;if(i){const t=new qs(i.p.left,i.p,i.index,s);return Ys(e,t,n-i.index)}{const r=new qs(null,t._start,0,s);return Ys(e,r,n)}},Qs=(e,t,n,r)=>{for(;null!==n.right&&(!0===n.right.deleted||n.right.content.constructor===ki&&Js(r.get(n.right.content.key),n.right.content.value));)n.right.deleted||r.delete(n.right.content.key),n.forward();const s=e.doc,i=s.clientID;r.forEach(((r,o)=>{const l=n.left,c=n.right,a=new Mi(Vr(i,qr(s.store,i)),l,l&&l.lastId,c,c&&c.id,t,null,new ki(o,r));a.integrate(e,0),n.right=a,n.forward()}))},Xs=(e,t)=>{const{key:n,value:r}=t;null===r?e.delete(n):e.set(n,r)},Zs=(e,t)=>{for(;null!==e.right&&(e.right.deleted||e.right.content.constructor===ki&&Js(t[e.right.content.key]??null,e.right.content.value));)e.forward()},ei=(e,t,n,r)=>{const s=e.doc,i=s.clientID,o=new Map;for(const l in r){const c=r[l],a=n.currentAttributes.get(l)??null;if(!Js(a,c)){o.set(l,a);const{left:r,right:u}=n;n.right=new Mi(Vr(i,qr(s.store,i)),r,r&&r.lastId,u,u&&u.id,t,null,new ki(l,c)),n.right.integrate(e,0),n.forward()}}return o},ti=(e,t,n,r,s)=>{n.currentAttributes.forEach(((e,t)=>{void 0===s[t]&&(s[t]=null)}));const i=e.doc,o=i.clientID;Zs(n,s);const l=ei(e,t,n,s),c=r.constructor===String?new Ci(r):r instanceof Cs?new Pi(r):new _i(r);let{left:a,right:u,index:d}=n;t._searchMarker&&Es(t._searchMarker,n.index,c.getLength()),u=new Mi(Vr(o,qr(i.store,o)),a,a&&a.lastId,u,u&&u.id,t,null,c),u.integrate(e,0),n.right=u,n.index=d,n.forward(),Qs(e,t,n,l)},ni=(e,t,n,r,s)=>{const i=e.doc,o=i.clientID;Zs(n,s);const l=ei(e,t,n,s);e:for(;null!==n.right&&(r>0||l.size>0&&(n.right.deleted||n.right.content.constructor===ki));){if(!n.right.deleted)switch(n.right.content.constructor){case ki:{const{key:t,value:i}=n.right.content,o=s[t];if(void 0!==o){if(Js(o,i))l.delete(t);else{if(0===r)break e;l.set(t,i)}n.right.delete(e)}else n.currentAttributes.set(t,i);break}default:r<n.right.length&&Zr(e,Vr(n.right.id.client,n.right.id.clock+r)),r-=n.right.length}n.forward()}if(r>0){let s="";for(;r>0;r--)s+="\n";n.right=new Mi(Vr(o,qr(i.store,o)),n.left,n.left&&n.left.lastId,n.right,n.right&&n.right.id,t,null,new Ci(s)),n.right.integrate(e,0),n.forward()}Qs(e,t,n,l)},ri=(e,t,n,r,s)=>{let i=t;const o=bt();for(;i&&(!i.countable||i.deleted);){if(!i.deleted&&i.content.constructor===ki){const e=i.content;o.set(e.key,e)}i=i.right}let l=0,c=!1;for(;t!==i;){if(n===t&&(c=!0),!t.deleted){const n=t.content;switch(n.constructor){case ki:{const{key:i,value:a}=n,u=r.get(i)??null;o.get(i)===n&&u!==a||(t.delete(e),l++,c||(s.get(i)??null)!==a||u===a||(null===u?s.delete(i):s.set(i,u))),c||t.deleted||Xs(s,n);break}}}t=t.right}return l},si=e=>{let t=0;return ls(e.doc,(n=>{let r=e._start,s=e._start,i=bt();const o=vt(i);for(;s;){if(!1===s.deleted)if(s.content.constructor===ki)Xs(o,s.content);else t+=ri(n,r,s,i,o),i=vt(o),r=s;s=s.right}})),t},ii=e=>{const t=new Set,n=e.doc;for(const[r,s]of e.afterState.entries()){const i=e.beforeState.get(r)||0;s!==i&&ts(e,n.store.clients.get(r),i,s,(e=>{e.deleted||e.content.constructor!==ki||e.constructor===yi||t.add(e.parent)}))}ls(n,(n=>{vr(e,e.deleteSet,(e=>{if(e instanceof yi||!e.parent._hasFormatting||t.has(e.parent))return;const r=e.parent;e.content.constructor===ki?t.add(r):((e,t)=>{for(;t&&t.right&&(t.right.deleted||!t.right.countable);)t=t.right;const n=new Set;for(;t&&(t.deleted||!t.countable);){if(!t.deleted&&t.content.constructor===ki){const r=t.content.key;n.has(r)?t.delete(e):n.add(r)}t=t.left}})(n,e)}));for(const e of t)si(e)}))},oi=(e,t,n)=>{const r=n,s=vt(t.currentAttributes),i=t.right;for(;n>0&&null!==t.right;){if(!1===t.right.deleted)switch(t.right.content.constructor){case Pi:case _i:case Ci:n<t.right.length&&Zr(e,Vr(t.right.id.client,t.right.id.clock+n)),n-=t.right.length,t.right.delete(e)}t.forward()}i&&ri(e,i,t.right,s,t.currentAttributes);const o=(t.left||t.right).parent;return o._searchMarker&&Es(o._searchMarker,t.index,-r+n),t};class li extends ms{constructor(e,t,n){super(e,t),this.childListChanged=!1,this.keysChanged=new Set,n.forEach((e=>{null===e?this.childListChanged=!0:this.keysChanged.add(e)}))}get changes(){if(null===this._changes){const e={keys:this.keys,delta:this.delta,added:new Set,deleted:new Set};this._changes=e}return this._changes}get delta(){if(null===this._delta){const e=this.target.doc,t=[];ls(e,(e=>{const n=new Map,r=new Map;let s=this.target._start,i=null;const o={};let l="",c=0,a=0;const u=()=>{if(null!==i){let e=null;switch(i){case"delete":a>0&&(e={delete:a}),a=0;break;case"insert":("object"==typeof l||l.length>0)&&(e={insert:l},n.size>0&&(e.attributes={},n.forEach(((t,n)=>{null!==t&&(e.attributes[n]=t)})))),l="";break;case"retain":c>0&&(e={retain:c},(e=>{for(const t in e)return!1;return!0})(o)||(e.attributes=Fn({},o))),c=0}e&&t.push(e),i=null}};for(;null!==s;){switch(s.content.constructor){case Pi:case _i:this.adds(s)?this.deletes(s)||(u(),i="insert",l=s.content.getContent()[0],u()):this.deletes(s)?("delete"!==i&&(u(),i="delete"),a+=1):s.deleted||("retain"!==i&&(u(),i="retain"),c+=1);break;case Ci:this.adds(s)?this.deletes(s)||("insert"!==i&&(u(),i="insert"),l+=s.content.str):this.deletes(s)?("delete"!==i&&(u(),i="delete"),a+=s.length):s.deleted||("retain"!==i&&(u(),i="retain"),c+=s.length);break;case ki:{const{key:t,value:l}=s.content;if(this.adds(s)){if(!this.deletes(s)){const c=n.get(t)??null;Js(c,l)?null!==l&&s.delete(e):("retain"===i&&u(),Js(l,r.get(t)??null)?delete o[t]:o[t]=l)}}else if(this.deletes(s)){r.set(t,l);const e=n.get(t)??null;Js(e,l)||("retain"===i&&u(),o[t]=e)}else if(!s.deleted){r.set(t,l);const n=o[t];void 0!==n&&(Js(n,l)?null!==n&&s.delete(e):("retain"===i&&u(),null===l?delete o[t]:o[t]=l))}s.deleted||("insert"===i&&u(),Xs(n,s.content));break}}s=s.right}for(u();t.length>0;){const e=t[t.length-1];if(void 0===e.retain||void 0!==e.attributes)break;t.pop()}})),this._delta=t}return this._delta}}class ci extends Cs{constructor(e){super(),this._pending=void 0!==e?[()=>this.insert(0,e)]:[],this._searchMarker=[],this._hasFormatting=!1}get length(){return this.doc??vs(),this._length}_integrate(e,t){super._integrate(e,t);try{this._pending.forEach((e=>e()))}catch(e){}this._pending=null}_copy(){return new ci}clone(){const e=new ci;return e.applyDelta(this.toDelta()),e}_callObserver(e,t){super._callObserver(e,t);const n=new li(this,e,t);xs(this,e,n),!e.local&&this._hasFormatting&&(e._needFormattingCleanup=!0)}toString(){this.doc??vs();let e="",t=this._start;for(;null!==t;)!t.deleted&&t.countable&&t.content.constructor===Ci&&(e+=t.content.str),t=t.right;return e}toJSON(){return this.toString()}applyDelta(e,{sanitize:t=!0}={}){null!==this.doc?ls(this.doc,(n=>{const r=new qs(null,this._start,0,new Map);for(let s=0;s<e.length;s++){const i=e[s];if(void 0!==i.insert){const o=t||"string"!=typeof i.insert||s!==e.length-1||null!==r.right||"\n"!==i.insert.slice(-1)?i.insert:i.insert.slice(0,-1);("string"!=typeof o||o.length>0)&&ti(n,this,r,o,i.attributes||{})}else void 0!==i.retain?ni(n,this,r,i.retain,i.attributes||{}):void 0!==i.delete&&oi(n,r,i.delete)}})):this._pending.push((()=>this.applyDelta(e)))}toDelta(e,t,n){this.doc??vs();const r=[],s=new Map,i=this.doc;let o="",l=this._start;function c(){if(o.length>0){const e={};let t=!1;s.forEach(((n,r)=>{t=!0,e[r]=n}));const n={insert:o};t&&(n.attributes=e),r.push(n),o=""}}const a=()=>{for(;null!==l;){if(Kr(l,e)||void 0!==t&&Kr(l,t))switch(l.content.constructor){case Ci:{const r=s.get("ychange");void 0===e||Kr(l,e)?void 0===t||Kr(l,t)?void 0!==r&&(c(),s.delete("ychange")):void 0!==r&&r.user===l.id.client&&"added"===r.type||(c(),s.set("ychange",n?n("added",l.id):{type:"added"})):void 0!==r&&r.user===l.id.client&&"removed"===r.type||(c(),s.set("ychange",n?n("removed",l.id):{type:"removed"})),o+=l.content.str;break}case Pi:case _i:{c();const e={insert:l.content.getContent()[0]};if(s.size>0){const t={};e.attributes=t,s.forEach(((e,n)=>{t[n]=e}))}r.push(e);break}case ki:Kr(l,e)&&(c(),Xs(s,l.content))}l=l.right}c()};return e||t?ls(i,(n=>{e&&Hr(n,e),t&&Hr(n,t),a()}),"cleanup"):a(),r}insert(e,t,n){if(t.length<=0)return;const r=this.doc;null!==r?ls(r,(r=>{const s=Gs(r,this,e,!n);n||(n={},s.currentAttributes.forEach(((e,t)=>{n[t]=e}))),ti(r,this,s,t,n)})):this._pending.push((()=>this.insert(e,t,n)))}insertEmbed(e,t,n){const r=this.doc;null!==r?ls(r,(r=>{const s=Gs(r,this,e,!n);ti(r,this,s,t,n||{})})):this._pending.push((()=>this.insertEmbed(e,t,n||{})))}delete(e,t){if(0===t)return;const n=this.doc;null!==n?ls(n,(n=>{oi(n,Gs(n,this,e,!0),t)})):this._pending.push((()=>this.delete(e,t)))}format(e,t,n){if(0===t)return;const r=this.doc;null!==r?ls(r,(r=>{const s=Gs(r,this,e,!1);null!==s.right&&ni(r,this,s,t,n)})):this._pending.push((()=>this.format(e,t,n)))}removeAttribute(e){null!==this.doc?ls(this.doc,(t=>{Ms(t,this,e)})):this._pending.push((()=>this.removeAttribute(e)))}setAttribute(e,t){null!==this.doc?ls(this.doc,(n=>{Ns(n,this,e,t)})):this._pending.push((()=>this.setAttribute(e,t)))}getAttribute(e){return $s(this,e)}getAttributes(){return Bs(this)}_write(e){e.writeTypeRef(Oi)}}class ai{constructor(e,t=(()=>!0)){this._filter=t,this._root=e,this._currentNode=e._start,this._firstCall=!0,e.doc??vs()}[Symbol.iterator](){return this}next(){let e=this._currentNode,t=e&&e.content&&e.content.type;if(null!==e&&(!this._firstCall||e.deleted||!this._filter(t)))do{if(t=e.content.type,e.deleted||t.constructor!==di&&t.constructor!==ui||null===t._start)for(;null!==e;){const t=e.next;if(null!==t){e=t;break}e=e.parent===this._root?null:e.parent._item}else e=t._start}while(null!==e&&(e.deleted||!this._filter(e.content.type)));return this._firstCall=!1,null===e?{value:void 0,done:!0}:(this._currentNode=e,{value:e.content.type,done:!1})}}class ui extends Cs{constructor(){super(),this._prelimContent=[]}get firstChild(){const e=this._first;return e?e.content.getContent()[0]:null}_integrate(e,t){super._integrate(e,t),this.insert(0,this._prelimContent),this._prelimContent=null}_copy(){return new ui}clone(){const e=new ui;return e.insert(0,this.toArray().map((e=>e instanceof Cs?e.clone():e))),e}get length(){return this.doc??vs(),null===this._prelimContent?this._length:this._prelimContent.length}createTreeWalker(e){return new ai(this,e)}querySelector(e){e=e.toUpperCase();const t=new ai(this,(t=>t.nodeName&&t.nodeName.toUpperCase()===e)).next();return t.done?null:t.value}querySelectorAll(e){return e=e.toUpperCase(),Et(new ai(this,(t=>t.nodeName&&t.nodeName.toUpperCase()===e)))}_callObserver(e,t){xs(this,e,new hi(this,t,e))}toString(){return Os(this,(e=>e.toString())).join("")}toJSON(){return this.toString()}toDOM(e=document,t={},n){const r=e.createDocumentFragment();return void 0!==n&&n._createAssociation(r,this),Ds(this,(s=>{r.insertBefore(s.toDOM(e,t,n),null)})),r}insert(e,t){null!==this.doc?ls(this.doc,(n=>{Ps(n,this,e,t)})):this._prelimContent.splice(e,0,...t)}insertAfter(e,t){if(null!==this.doc)ls(this.doc,(n=>{const r=e&&e instanceof Cs?e._item:e;js(n,this,r,t)}));else{const n=this._prelimContent,r=null===e?0:n.findIndex((t=>t===e))+1;if(0===r&&null!==e)throw hn("Reference item not found");n.splice(r,0,...t)}}delete(e,t=1){null!==this.doc?ls(this.doc,(n=>{Rs(n,this,e,t)})):this._prelimContent.splice(e,t)}toArray(){return As(this)}push(e){this.insert(this.length,e)}unshift(e){this.insert(0,e)}get(e){return Us(this,e)}slice(e=0,t=this.length){return Is(this,e,t)}forEach(e){Ds(this,e)}_write(e){e.writeTypeRef(Ui)}}class di extends ui{constructor(e="UNDEFINED"){super(),this.nodeName=e,this._prelimAttrs=new Map}get nextSibling(){const e=this._item?this._item.next:null;return e?e.content.type:null}get prevSibling(){const e=this._item?this._item.prev:null;return e?e.content.type:null}_integrate(e,t){super._integrate(e,t),this._prelimAttrs.forEach(((e,t)=>{this.setAttribute(t,e)})),this._prelimAttrs=null}_copy(){return new di(this.nodeName)}clone(){const e=new di(this.nodeName);return((e,t)=>{for(const n in e)t(e[n],n)})(this.getAttributes(),((t,n)=>{"string"==typeof t&&e.setAttribute(n,t)})),e.insert(0,this.toArray().map((e=>e instanceof Cs?e.clone():e))),e}toString(){const e=this.getAttributes(),t=[],n=[];for(const t in e)n.push(t);n.sort();const r=n.length;for(let s=0;s<r;s++){const r=n[s];t.push(r+'="'+e[r]+'"')}const s=this.nodeName.toLocaleLowerCase();return`<${s}${t.length>0?" "+t.join(" "):""}>${super.toString()}</${s}>`}removeAttribute(e){null!==this.doc?ls(this.doc,(t=>{Ms(t,this,e)})):this._prelimAttrs.delete(e)}setAttribute(e,t){null!==this.doc?ls(this.doc,(n=>{Ns(n,this,e,t)})):this._prelimAttrs.set(e,t)}getAttribute(e){return $s(this,e)}hasAttribute(e){return Fs(this,e)}getAttributes(e){return e?((e,t)=>{const n={};return e._map.forEach(((e,r)=>{let s=e;for(;null!==s&&(!t.sv.has(s.id.client)||s.id.clock>=(t.sv.get(s.id.client)||0));)s=s.left;null!==s&&Kr(s,t)&&(n[r]=s.content.getContent()[s.length-1])})),n})(this,e):Bs(this)}toDOM(e=document,t={},n){const r=e.createElement(this.nodeName),s=this.getAttributes();for(const e in s){const t=s[e];"string"==typeof t&&r.setAttribute(e,t)}return Ds(this,(s=>{r.appendChild(s.toDOM(e,t,n))})),void 0!==n&&n._createAssociation(r,this),r}_write(e){e.writeTypeRef(Ti),e.writeKey(this.nodeName)}}class hi extends ms{constructor(e,t,n){super(e,n),this.childListChanged=!1,this.attributesChanged=new Set,t.forEach((e=>{null===e?this.childListChanged=!0:this.attributesChanged.add(e)}))}}class fi extends zs{constructor(e){super(),this.hookName=e}_copy(){return new fi(this.hookName)}clone(){const e=new fi(this.hookName);return this.forEach(((t,n)=>{e.set(n,t)})),e}toDOM(e=document,t={},n){const r=t[this.hookName];let s;return s=void 0!==r?r.createDom(this):document.createElement(this.hookName),s.setAttribute("data-yjs-hook",this.hookName),void 0!==n&&n._createAssociation(s,this),s}_write(e){e.writeTypeRef(ji),e.writeKey(this.hookName)}}class pi extends ci{get nextSibling(){const e=this._item?this._item.next:null;return e?e.content.type:null}get prevSibling(){const e=this._item?this._item.prev:null;return e?e.content.type:null}_copy(){return new pi}clone(){const e=new pi;return e.applyDelta(this.toDelta()),e}toDOM(e=document,t,n){const r=e.createTextNode(this.toString());return void 0!==n&&n._createAssociation(r,this),r}toString(){return this.toDelta().map((e=>{const t=[];for(const n in e.attributes){const r=[];for(const t in e.attributes[n])r.push({key:t,value:e.attributes[n][t]});r.sort(((e,t)=>e.key<t.key?-1:1)),t.push({nodeName:n,attrs:r})}t.sort(((e,t)=>e.nodeName<t.nodeName?-1:1));let n="";for(let e=0;e<t.length;e++){const r=t[e];n+=`<${r.nodeName}`;for(let e=0;e<r.attrs.length;e++){const t=r.attrs[e];n+=` ${t.key}="${t.value}"`}n+=">"}n+=e.insert;for(let e=t.length-1;e>=0;e--)n+=`</${t[e].nodeName}>`;return n})).join("")}toJSON(){return this.toString()}_write(e){e.writeTypeRef(Li)}}class gi{constructor(e,t){this.id=e,this.length=t}get deleted(){throw fn()}mergeWith(e){return!1}write(e,t,n){throw fn()}integrate(e,t){throw fn()}}class yi extends gi{get deleted(){return!0}delete(){}mergeWith(e){return this.constructor===e.constructor&&(this.length+=e.length,!0)}integrate(e,t){t>0&&(this.id.clock+=t,this.length-=t),Yr(e.doc.store,this)}write(e,t){e.writeInfo(0),e.writeLen(this.length-t)}getMissing(e,t){return null}}class mi{constructor(e){this.content=e}getLength(){return 1}getContent(){return[this.content]}isCountable(){return!0}copy(){return new mi(this.content)}splice(e){throw fn()}mergeWith(e){return!1}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeBuf(this.content)}getRef(){return 3}}class bi{constructor(e){this.len=e}getLength(){return this.len}getContent(){return[]}isCountable(){return!1}copy(){return new bi(this.len)}splice(e){const t=new bi(this.len-e);return this.len=e,t}mergeWith(e){return this.len+=e.len,!0}integrate(e,t){kr(e.deleteSet,t.id.client,t.id.clock,this.len),t.markDeleted()}delete(e){}gc(e){}write(e,t){e.writeLen(this.len-t)}getRef(){return 1}}const vi=(e,t)=>new Cr({guid:e,...t,shouldLoad:t.shouldLoad||t.autoLoad||!1});class wi{constructor(e){e._item,this.doc=e;const t={};this.opts=t,e.gc||(t.gc=!1),e.autoLoad&&(t.autoLoad=!0),null!==e.meta&&(t.meta=e.meta)}getLength(){return 1}getContent(){return[this.doc]}isCountable(){return!0}copy(){return new wi(vi(this.doc.guid,this.opts))}splice(e){throw fn()}mergeWith(e){return!1}integrate(e,t){this.doc._item=t,e.subdocsAdded.add(this.doc),this.doc.shouldLoad&&e.subdocsLoaded.add(this.doc)}delete(e){e.subdocsAdded.has(this.doc)?e.subdocsAdded.delete(this.doc):e.subdocsRemoved.add(this.doc)}gc(e){}write(e,t){e.writeString(this.doc.guid),e.writeAny(this.opts)}getRef(){return 9}}class _i{constructor(e){this.embed=e}getLength(){return 1}getContent(){return[this.embed]}isCountable(){return!0}copy(){return new _i(this.embed)}splice(e){throw fn()}mergeWith(e){return!1}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeJSON(this.embed)}getRef(){return 5}}class ki{constructor(e,t){this.key=e,this.value=t}getLength(){return 1}getContent(){return[]}isCountable(){return!1}copy(){return new ki(this.key,this.value)}splice(e){throw fn()}mergeWith(e){return!1}integrate(e,t){const n=t.parent;n._searchMarker=null,n._hasFormatting=!0}delete(e){}gc(e){}write(e,t){e.writeKey(this.key),e.writeJSON(this.value)}getRef(){return 6}}class Si{constructor(e){this.arr=e}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new Si(this.arr)}splice(e){const t=new Si(this.arr.slice(e));return this.arr=this.arr.slice(0,e),t}mergeWith(e){return this.arr=this.arr.concat(e.arr),!0}integrate(e,t){}delete(e){}gc(e){}write(e,t){const n=this.arr.length;e.writeLen(n-t);for(let r=t;r<n;r++){const t=this.arr[r];e.writeString(void 0===t?"undefined":JSON.stringify(t))}}getRef(){return 2}}const Ei="development"===Zn("node_env");class xi{constructor(e){this.arr=e,Ei&&Jn(e)}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new xi(this.arr)}splice(e){const t=new xi(this.arr.slice(e));return this.arr=this.arr.slice(0,e),t}mergeWith(e){return this.arr=this.arr.concat(e.arr),!0}integrate(e,t){}delete(e){}gc(e){}write(e,t){const n=this.arr.length;e.writeLen(n-t);for(let r=t;r<n;r++){const t=this.arr[r];e.writeAny(t)}}getRef(){return 8}}class Ci{constructor(e){this.str=e}getLength(){return this.str.length}getContent(){return this.str.split("")}isCountable(){return!0}copy(){return new Ci(this.str)}splice(e){const t=new Ci(this.str.slice(e));this.str=this.str.slice(0,e);const n=this.str.charCodeAt(e-1);return n>=55296&&n<=56319&&(this.str=this.str.slice(0,e-1)+"�",t.str="�"+t.str.slice(1)),t}mergeWith(e){return this.str+=e.str,!0}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeString(0===t?this.str:this.str.slice(t))}getRef(){return 4}}const Ii=[e=>new Ks,e=>new zs,e=>new ci,e=>new di(e.readKey()),e=>new ui,e=>new fi(e.readKey()),e=>new pi],Ai=0,Di=1,Oi=2,Ti=3,Ui=4,ji=5,Li=6;class Pi{constructor(e){this.type=e}getLength(){return 1}getContent(){return[this.type]}isCountable(){return!0}copy(){return new Pi(this.type._copy())}splice(e){throw fn()}mergeWith(e){return!1}integrate(e,t){this.type._integrate(e.doc,t)}delete(e){let t=this.type._start;for(;null!==t;)t.deleted?t.id.clock<(e.beforeState.get(t.id.client)||0)&&e._mergeStructs.push(t):t.delete(e),t=t.right;this.type._map.forEach((t=>{t.deleted?t.id.clock<(e.beforeState.get(t.id.client)||0)&&e._mergeStructs.push(t):t.delete(e)})),e.changed.delete(this.type)}gc(e){let t=this.type._start;for(;null!==t;)t.gc(e,!0),t=t.right;this.type._start=null,this.type._map.forEach((t=>{for(;null!==t;)t.gc(e,!0),t=t.left})),this.type._map=new Map}write(e,t){this.type._write(e)}getRef(){return 7}}const Ri=(e,t,n)=>{const{client:r,clock:s}=t.id,i=new Mi(Vr(r,s+n),t,Vr(r,s+n-1),t.right,t.rightOrigin,t.parent,t.parentSub,t.content.splice(n));return t.deleted&&i.markDeleted(),t.keep&&(i.keep=!0),null!==t.redone&&(i.redone=Vr(t.redone.client,t.redone.clock+n)),t.right=i,null!==i.right&&(i.right.left=i),e._mergeStructs.push(i),null!==i.parentSub&&null===i.right&&i.parent._map.set(i.parentSub,i),t.length=n,i};class Mi extends gi{constructor(e,t,n,r,s,i,o,l){super(e,l.getLength()),this.origin=n,this.left=t,this.right=r,this.rightOrigin=s,this.parent=i,this.parentSub=o,this.redone=null,this.content=l,this.info=this.content.isCountable()?2:0}set marker(e){(8&this.info)>0!==e&&(this.info^=8)}get marker(){return(8&this.info)>0}get keep(){return(1&this.info)>0}set keep(e){this.keep!==e&&(this.info^=1)}get countable(){return(2&this.info)>0}get deleted(){return(4&this.info)>0}set deleted(e){this.deleted!==e&&(this.info^=4)}markDeleted(){this.info|=4}getMissing(e,t){if(this.origin&&this.origin.client!==this.id.client&&this.origin.clock>=qr(t,this.origin.client))return this.origin.client;if(this.rightOrigin&&this.rightOrigin.client!==this.id.client&&this.rightOrigin.clock>=qr(t,this.rightOrigin.client))return this.rightOrigin.client;if(this.parent&&this.parent.constructor===Fr&&this.id.client!==this.parent.client&&this.parent.clock>=qr(t,this.parent.client))return this.parent.client;if(this.origin&&(this.left=es(e,t,this.origin),this.origin=this.left.lastId),this.rightOrigin&&(this.right=Zr(e,this.rightOrigin),this.rightOrigin=this.right.id),this.left&&this.left.constructor===yi||this.right&&this.right.constructor===yi)this.parent=null;else if(this.parent){if(this.parent.constructor===Fr){const e=Qr(t,this.parent);e.constructor===yi?this.parent=null:this.parent=e.content.type}}else this.left&&this.left.constructor===Mi?(this.parent=this.left.parent,this.parentSub=this.left.parentSub):this.right&&this.right.constructor===Mi&&(this.parent=this.right.parent,this.parentSub=this.right.parentSub);return null}integrate(e,t){if(t>0&&(this.id.clock+=t,this.left=es(e,e.doc.store,Vr(this.id.client,this.id.clock-1)),this.origin=this.left.lastId,this.content=this.content.splice(t),this.length-=t),this.parent){if(!this.left&&(!this.right||null!==this.right.left)||this.left&&this.left.right!==this.right){let t,n=this.left;if(null!==n)t=n.right;else if(null!==this.parentSub)for(t=this.parent._map.get(this.parentSub)||null;null!==t&&null!==t.left;)t=t.left;else t=this.parent._start;const r=new Set,s=new Set;for(;null!==t&&t!==this.right;){if(s.add(t),r.add(t),Wr(this.origin,t.origin)){if(t.id.client<this.id.client)n=t,r.clear();else if(Wr(this.rightOrigin,t.rightOrigin))break}else{if(null===t.origin||!s.has(Qr(e.doc.store,t.origin)))break;r.has(Qr(e.doc.store,t.origin))||(n=t,r.clear())}t=t.right}this.left=n}if(null!==this.left){const e=this.left.right;this.right=e,this.left.right=this}else{let e;if(null!==this.parentSub)for(e=this.parent._map.get(this.parentSub)||null;null!==e&&null!==e.left;)e=e.left;else e=this.parent._start,this.parent._start=this;this.right=e}null!==this.right?this.right.left=this:null!==this.parentSub&&(this.parent._map.set(this.parentSub,this),null!==this.left&&this.left.delete(e)),null===this.parentSub&&this.countable&&!this.deleted&&(this.parent._length+=this.length),Yr(e.doc.store,this),this.content.integrate(e,this),ss(e,this.parent,this.parentSub),(null!==this.parent._item&&this.parent._item.deleted||null!==this.parentSub&&null!==this.right)&&this.delete(e)}else new yi(this.id,this.length).integrate(e,0)}get next(){let e=this.right;for(;null!==e&&e.deleted;)e=e.right;return e}get prev(){let e=this.left;for(;null!==e&&e.deleted;)e=e.left;return e}get lastId(){return 1===this.length?this.id:Vr(this.id.client,this.id.clock+this.length-1)}mergeWith(e){if(this.constructor===e.constructor&&Wr(e.origin,this.lastId)&&this.right===e&&Wr(this.rightOrigin,e.rightOrigin)&&this.id.client===e.id.client&&this.id.clock+this.length===e.id.clock&&this.deleted===e.deleted&&null===this.redone&&null===e.redone&&this.content.constructor===e.content.constructor&&this.content.mergeWith(e.content)){const t=this.parent._searchMarker;return t&&t.forEach((t=>{t.p===e&&(t.p=this,!this.deleted&&this.countable&&(t.index-=this.length))})),e.keep&&(this.keep=!0),this.right=e.right,null!==this.right&&(this.right.left=this),this.length+=e.length,!0}return!1}delete(e){if(!this.deleted){const t=this.parent;this.countable&&null===this.parentSub&&(t._length-=this.length),this.markDeleted(),kr(e.deleteSet,this.id.client,this.id.clock,this.length),ss(e,t,this.parentSub),this.content.delete(e)}}gc(e,t){if(!this.deleted)throw pn();this.content.gc(e),t?((e,t,n)=>{const r=e.clients.get(t.id.client);r[Gr(r,t.id.clock)]=n})(e,this,new yi(this.id,this.length)):this.content=new bi(this.length)}write(e,t){const n=t>0?Vr(this.id.client,this.id.clock+t-1):this.origin,r=this.rightOrigin,s=this.parentSub,i=31&this.content.getRef()|(null===n?0:Lt)|(null===r?0:jt)|(null===s?0:32);if(e.writeInfo(i),null!==n&&e.writeLeftID(n),null!==r&&e.writeRightID(r),null===n&&null===r){const t=this.parent;if(void 0!==t._item){const n=t._item;if(null===n){const n=(e=>{for(const[t,n]of e.doc.share.entries())if(n===e)return t;throw pn()})(t);e.writeParentInfo(!0),e.writeString(n)}else e.writeParentInfo(!1),e.writeLeftID(n.id)}else t.constructor===String?(e.writeParentInfo(!0),e.writeString(t)):t.constructor===Fr?(e.writeParentInfo(!1),e.writeLeftID(t)):pn();null!==s&&e.writeString(s)}this.content.write(e,t)}}const Ni=(e,t)=>$i[31&t](e),$i=[()=>{pn()},e=>new bi(e.readLen()),e=>{const t=e.readLen(),n=[];for(let r=0;r<t;r++){const t=e.readString();"undefined"===t?n.push(void 0):n.push(JSON.parse(t))}return new Si(n)},e=>new mi(e.readBuf()),e=>new Ci(e.readString()),e=>new _i(e.readJSON()),e=>new ki(e.readKey(),e.readJSON()),e=>new Pi(Ii[e.readTypeRef()](e)),e=>{const t=e.readLen(),n=[];for(let r=0;r<t;r++)n.push(e.readAny());return new xi(n)},e=>new wi(vi(e.readString(),e.readAny())),()=>{pn()}];class Bi extends gi{get deleted(){return!0}delete(){}mergeWith(e){return this.constructor===e.constructor&&(this.length+=e.length,!0)}integrate(e,t){pn()}write(e,t){e.writeInfo(10),Yt(e.restEncoder,this.length-t)}getMissing(e,t){return null}}const Fi="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},Wi="__ $YJS$ __";function Vi(e,t,n){var r,s,i;if(!e.dx._allTables[t])return;const o=null===(i=null===(s=null===(r=e.table(t))||void 0===r?void 0:r.schema.yProps)||void 0===s?void 0:s.find((e=>e.prop===n)))||void 0===i?void 0:i.updatesTable;return o&&e.dx._allTables[o]?e.table(o):void 0}Fi[Wi],Fi[Wi]=!0;const Ki=new FinalizationRegistry((({cache:e,key:t})=>{delete e[t]}));function Hi(e){var t,n;return null!==(t=(n=e._novip)._docCache)&&void 0!==t?t:n._docCache={cache:{},get size(){return Object.keys(this.cache).length},find(e,t,n){const r=qi(e,t,n),s=this.cache[r];return s?s.deref():void 0},add(e){var t;const{parentTable:n,parentId:r,parentProp:s}=e.meta;if(!n||!s||null==r)throw new Error("Missing Dexie-related metadata in Y.Doc");const i=qi(n,r,s),o=null===(t=this.cache[i])||void 0===t?void 0:t.deref();o&&Ki.unregister(o),this.cache[i]=new WeakRef(e),Ki.register(e,{cache:this.cache,key:i},e)},delete(e){Ki.unregister(e);const t=qi(e.meta.parentTable,e.meta.parentId,e.meta.parentProp),n=this.cache[t];(null==n?void 0:n.deref())===e&&delete this.cache[t]}}}const zi=new WeakSet;function Ji(e){if(zi.has(e))throw new Error(`Y.Doc ${e.meta.parentId} has been destroyed`)}function qi(e,t,n){return`${e}[${t}].${n}`}let Yi=null;function Gi(e){Yi=e}function Qi(){}const Xi=new WeakMap;function Zi(){return e.Dexie.Events(null,"load","sync","error")}class eo{static getOrCreateDocument(e,t,n,r){var s,i;const o=Hi(e),l=null===(i=null===(s=e.table(t).schema.yProps)||void 0===s?void 0:s.find((e=>e.prop===n)))||void 0===i?void 0:i.updatesTable;if(!l)throw new Error(`Updates table for ${t}.${n} not found`);return function(e,t,n,r,s,i){let o=t.find(n,i,r);return o||(o=new Cr({meta:{db:e,updatesTable:s,parentProp:r,parentTable:n,parentId:i}}),t.add(o),o.on("destroy",(()=>{zi.add(o),t.delete(o)})),o)}(e,o,t,n,l,r)}static load(e,t){var n;let r=Xi.get(e);return r?(++r.refCount,null!=(null==t?void 0:t.gracePeriod)&&r.graceTimeout<t.gracePeriod&&(r.graceTimeout=t.gracePeriod),r.graceTimer&&(clearTimeout(r.graceTimer),r.graceTimer=null)):(r=new eo(e),r.graceTimeout=null!==(n=null==t?void 0:t.gracePeriod)&&void 0!==n?n:-1,Xi.set(e,r)),r}static release(e){if(!e||zi.has(e))return;const t=Xi.get(e);t?--t.refCount<=0&&(t.graceTimeout<0?t._release():t.graceTimer||(t.graceTimer=setTimeout((()=>{t.graceTimer=null,0===t.refCount&&t._release()}),t.graceTimeout))):e.destroy()}_release(){this.doc&&Promise.resolve(eo.on("beforeunload").fire(this)).finally((()=>{var e;0===this.refCount&&(null===(e=this.doc)||void 0===e||e.destroy())}))}static for(e){return Xi.get(e)}static get currentUpdateRow(){return Yi}get whenLoaded(){return this._whenLoaded||(this._whenLoaded=new Promise(((t,n)=>{this.doc?this.doc.isLoaded?t():this._error?n(this._error):zi.has(this.doc)?n(new e.Dexie.AbortError("Document was destroyed before loaded")):(this.on("load",t),this.on("error",n),this.doc.on("destroy",(()=>n(new e.Dexie.AbortError("Document was destroyed before loaded"))))):n(new Error("No Y.Doc associated with this provider"))}))),this._whenLoaded}get whenSynced(){return this._whenSynced||(this._whenSynced=new Promise(((t,n)=>{this.doc?this.doc.isSynced?t():this._error?n(this._error):zi.has(this.doc)?n(new e.Dexie.AbortError("Document was destroyed before synced")):(this.on("sync",t),this.on("error",n),this.doc.on("destroy",(()=>n(new e.Dexie.AbortError("Document was destroyed before synced"))))):n(new Error("No Y.Doc associated with this provider"))}))),this._whenSynced}constructor(t){this.refCount=1,this.cleanupHandlers=[],this.graceTimeout=-1,this.doc=null,this.destroyed=!1,this.on=Zi(),this.doc=t,this.off=(e,t)=>{var n;return null===(n=this.on[e])||void 0===n?void 0:n.unsubscribe(t)},"dispose"in Symbol&&(this[Symbol.dispose]=()=>eo.release(t)),t.on("load",(()=>this.on("load").fire())),t.on("sync",(e=>!1!==e&&this.on("sync").fire())),t.on("destroy",this.destroy.bind(this)),this.on("error",(e=>{this._error=e}));const{db:n,parentTable:r,parentId:s,updatesTable:i}=t.meta||{};if(!n||!r||!i)throw new Error("Missing Dexie-related metadata in Y.Doc. Documents need to be obtained through Y.Doc properties from dexie queries.");if(!n.table(r)||!n.table(i))throw new Error(`Table ${r} or ${i} not found in db`);Ji(t),this.stopObserving=function(t,n,r,s,i,o){let l=0,c=!0;const a=e.liveQuery((()=>{Ji(n);const t=r.table(i);return Promise.all([(l>0?t.where("i").between(l,1/0,!1).toArray().then((t=>t.filter((t=>0===e.cmp(t.k,o))))):t.where({k:o}).toArray()).then((e=>e)),r.table(s).where(":id").equals(o).toArray()])})).subscribe((([e,r])=>{e.length>0&&(l=e[e.length-1].i),0!==r.length?(Ji(n),e.length>0&&ls(n,(()=>{e.forEach((e=>{try{Gi(e),Pr(n,e.u)}finally{Gi(null)}}))}),t,!1),c&&(c=!1,n.emit("load",[n]))):n.destroy()}),(e=>{t.on("error").fire(e)})),u=(e,n)=>{n!==t&&r.table(i).add({k:o,u:e,f:1}).then((e=>{e===l-1&&++l})).catch((e=>{t.on("error").fire(e)}))},d=()=>{a.unsubscribe(),n.off("updateV2",u),n.off("destroy",d)};return n.on("updateV2",u),n.on("destroy",d),d}(this,t,n,r,i,s),eo.on("new").fire(this)}destroy(){var e;Xi.delete(this.doc),this.doc=null,this.destroyed=!0,this.refCount=0,null===(e=this.stopObserving)||void 0===e||e.call(this),this.on=Zi(),this.cleanupHandlers.forEach((e=>e()))}addCleanupHandler(e){this.cleanupHandlers.push("function"==typeof e?e:()=>e.unsubscribe())}}function to(t,n){return r(this,void 0,void 0,(function*(){var s;const i={};let o,l=!1;for(const c of t)try{switch(c.type){case"u-s":{const e=Vi(n,c.table,c.prop);if(e){const t={k:c.k,u:c.u};c.r&&(t.r=c.r,o=c.r),i[e.name]=yield e.add(t)}break}case"u-ack":{const e=Vi(n,c.table,c.prop);e&&(yield n.transaction("rw",e,(t=>r(this,void 0,void 0,(function*(){let n=yield t.table(e.name).get(yt);yield t.table(e.name).put(Object.assign(Object.assign({},n||{i:yt}),{unsentFrom:Math.max((null==n?void 0:n.unsentFrom)||1,c.i+1)}))})))));break}case"u-reject":{const t=Vi(n,c.table,c.prop);if(!t)break;const r=null===(s=yield t.get(c.i))||void 0===s?void 0:s.k;if(null!=r){yield n.transaction("rw",t,(n=>(n.idbtrans._rejecting_y_ypdate=!0,t.where("i").aboveOrEqual(c.i).filter((t=>0===e.cmp(t.k,r)&&1==(1&(t.f||0)))).delete())));const s=eo.getDocCache(n.dx).find(c.table,r,c.prop);s&&s.destroy()}break}case"in-sync":{const e=eo.getDocCache(n.dx).find(c.table,c.k,c.prop);e&&!e.isSynced&&e.emit("sync",[!0,e]);break}case"y-complete-sync-done":o=c.yServerRev;break;case"outdated-server-rev":l=!0}}catch(e){}return{receivedUntils:i,resyncNeeded:l,yServerRevision:o}}))}eo.on=e.Dexie.Events(null,{new:[function(e,t){return e===Qi?t:function(){e.apply(this,arguments),t.apply(this,arguments)}}],beforeunload:[function(e,t){return e===Qi?t:function(){var n=e.apply(this,arguments);if(n&&"function"==typeof n.then){for(var r=this,s=arguments.length,i=new Array(s);s--;)i[s]=arguments[s];return n.then((function(){return t.apply(r,i)}))}return t.apply(this,arguments)}}]}),eo.getDocCache=Hi,e.Dexie.DexieYProvider?eo=e.Dexie.DexieYProvider||eo:e.Dexie.DexieYProvider=eo;const no=1,ro=2,so=3;function io(t,n,s){return r(this,arguments,void 0,(function*(t,n,{yDownloadedRealms:s,realms:c}){if(s&&c&&c.every((e=>"*"===s[e])))return;const a=yield xe(t),u={"Content-Type":"application/json",Accept:"application/octet-stream"};a&&(u.Authorization=`Bearer ${a.accessToken}`);const d=yield fetch(`${n}/y/download`,{body:nt.stringify({downloadedRealms:s||{}}),method:"POST",headers:u,credentials:"include"});if(!d.ok)throw new Error(`Failed to download Yjs documents from server. Status: ${d.status}`);yield async function(e,...t){var n,r,s;let i=e();for(let e=0;e<t.length;e++)i=t[e](i);try{for(var o,c=!0,a=l(i);!(n=(o=await a.next()).done);c=!0)o.value,c=!1}catch(e){r={error:e}}finally{try{c||n||!(s=a.return)||await s.call(a)}finally{if(r)throw r.error}}}(function(e){return function(){return o(this,arguments,(function*(){if(!e.body)throw new Error("Response body is not readable");const t=e.body.getReader();try{for(;;){const{done:e,value:n}=yield i(t.read());if(e)return yield i(void 0);yield yield i(n)}}finally{t.releaseLock()}}))}}(d),ve,(function(s){return o(this,arguments,(function*(){var o,c,a,u;let d=null,h=null,f=null,p=[];function g(e){return r(this,void 0,void 0,(function*(){const r=p[p.length-1];if(p.length>0){if(!d||!h||!f)throw new Error(`Protocol error from ${n}/y/download`);const e=Vi(t,h,f);e&&(yield e.bulkAdd(p)),p=[]}d&&(h&&f&&r||e)&&(yield t.$syncState.update("syncState",(t=>{const n=t.yDownloadedRealms||{};n[d]=e?"*":{tbl:h,prop:f,key:r.k},t.yDownloadedRealms=n})))}))}try{try{for(var y,m=!0,b=l(s);!(o=(y=yield i(b.next())).done);m=!0){u=y.value,m=!1;const e=new ae(u);for(;ue(e);)switch(he(e)){case no:yield i(g(!0)),d=pe(e);break;case ro:yield i(g(!1)),h=pe(e),f=pe(e);break;case so:{const t=be(e),n=de(e);p.push({k:t,u:n});break}}yield i(g(!1))}}catch(e){c={error:e}}finally{try{m||o||!(a=b.return)||(yield i(a.call(b)))}finally{if(c)throw c.error}}yield i(g(!0))}catch(t){throw t instanceof e.DexieError||(yield i(g(!1))),t}}))}))}))}const oo="currentSyncWorker";function lo(e,t,n,s){return co(e,t,n,s).then((t=>((null==s?void 0:s.justCheckIfNeeded)||e.syncStateChangedEvent.next({phase:"in-sync"}),t))).catch((i=>r(this,void 0,void 0,(function*(){return(null==s?void 0:s.justCheckIfNeeded)?Promise.reject(i):dt&&(null==s?void 0:s.retryImmediatelyOnFetchError)&&"TypeError"===(null==i?void 0:i.name)&&/fetch/.test(null==i?void 0:i.message)?(e.syncStateChangedEvent.next({phase:"error",error:i}),yield new Promise((e=>setTimeout(e,500))),yield lo(e,t,n,Object.assign(Object.assign({},s),{retryImmediatelyOnFetchError:!1}))):(yield e.$syncState.update("syncState",{timestamp:new Date,error:""+i}),e.syncStateChangedEvent.next({phase:dt?"error":"offline",error:new Error(""+(null==i?void 0:i.message)||i)}),Promise.reject(i))}))))}function co(e,t,n){return r(this,arguments,void 0,(function*(e,t,n,{isInitialSync:s,cancelToken:i,justCheckIfNeeded:o,purpose:l}={isInitialSync:!1}){var a;if(!(null===(a=e.cloud.options)||void 0===a?void 0:a.databaseUrl))throw new Error("Internal error: sync must not be called when no databaseUrl is configured");const{databaseUrl:u}=t,d=yield e.getCurrentUser(),h=d.isLoggedIn?k(e):[],f=h.map((t=>e.table(S(t.name)))),p=yield e.getPersistedSyncState(),g=d.isLoggedIn,y=g?function(e,t){const n=(null==t?void 0:t.syncedTables)||[];return k(e).filter((e=>!n.includes(e.name)))}(e,p):[];ut(i);const m=y.length>0;if(m){if(o)return!0;yield e.transaction("rw",y,(e=>r(this,void 0,void 0,(function*(){e.idbtrans.disableChangeTracking=!0,e.idbtrans.disableAccessControl=!0,yield function(e,t,n){return r(this,void 0,void 0,(function*(){const r=new Set(n||[]);for(const n of e)"members"===n.name?yield n.toCollection().modify((e=>{r.has(e.realmId)||e.userId&&e.userId!==c.userId||(e.userId=t.userId)})):"roles"===n.name||("realms"===n.name?yield n.toCollection().modify((e=>{r.has(e.realmId)||void 0!==e.owner&&e.owner!==c.userId||(e.owner=t.userId)})):yield n.toCollection().modify((e=>{e.realmId&&r.has(e.realmId)||(e.owner&&e.owner!==c.userId||(e.owner=t.userId),e.realmId&&e.realmId!==c.userId||(e.realmId=t.userId))})))}))}(y,d,null==p?void 0:p.realms)})))),ut(i)}const[b,v,w,{yMessages:_,lastUpdateIds:x}]=yield e.transaction("r",e.tables,(()=>r(this,void 0,void 0,(function*(){const t=yield e.getPersistedSyncState();let s=yield e.$baseRevs.toArray();s=s.filter((e=>h.some((t=>t.name===e.tableName))));let o=yield I(f,e);const l=yield function(e,t){return r(this,void 0,void 0,(function*(){const n=[],r={};for(const s of t)if(s.schema.yProps)for(const t of s.schema.yProps){const i=e.table(t.updatesTable),o=yield i.get(yt),l=(null==o?void 0:o.unsentFrom)||1,c=(null==o?void 0:o.receivedUntil)||0,a=Math.min(l,c+1),u=yield mt(i,a);u.length>0&&(r[i.name]=u[u.length-1].i);const d={};for(const e of u){const t=1==(1&(e.f||0));if(t&&e.i<l)continue;const n=JSON.stringify(e.k)+"/"+t;let r=d[n];r?(r.u.push(e.u),r.i=Math.max(e.i,r.i)):(d[n]=r={i:e.i,k:e.k,isLocal:t,u:[]},r.u.push(e.u))}for(const{k:e,isLocal:r,u:i,i:o}of Object.values(d)){const l=1===i.length?i[0]:hs(i);if(r)n.push({type:"u-c",table:s.name,prop:t.prop,k:e,u:l,i:o});else{const r=us(l);n.push({type:"sv",table:s.name,prop:t.prop,k:e,sv:r})}}}return{yMessages:n,lastUpdateIds:r}}))}(e,h);if(ut(i),m){const e=[...(null==p?void 0:p.realms)||[],...(null==p?void 0:p.inviteRealms)||[]],c=yield function(e,t,n,s){return r(this,void 0,void 0,(function*(){const i=`upload-${A(8)}`;if(t.isLoggedIn&&e.length>0){const o=new Set(s||[]);return(yield Promise.all(e.map((e=>r(this,void 0,void 0,(function*(){const{extractKey:r}=e.core.schema.primaryKey;if(!r)return{table:e.name,muts:[]};const s=n[e.name],l=(null==s?void 0:s.generatedGlobalId)?e.filter((e=>{return r(e),!o.has(e.realmId||"")&&(t=r(e),!(n=null==s?void 0:s.idPrefix)||"string"==typeof t&&t.startsWith(n));var t,n})):e.filter((e=>{const t=r(e);return!o.has(e.realmId||"")&&j(t)})),c=yield l.toArray();if(c.length>0){const n={type:"upsert",values:c,keys:c.map(r),userId:t.userId,txid:i};return{table:e.name,muts:[n]}}return{table:e.name,muts:[]}})))))).filter((e=>e.muts.length>0))}return[]}))}(y,d,n,e);return ut(i),o=o.concat(c),[o,t,s,l]}return[o,t,s,l]})))),C=b.some((e=>e.muts.some((e=>e.keys.length>0))))||_.some((e=>"u-c"===e.type));if(o)return C;if("push"===l&&!C)return!1;const D=ft(b,null==v?void 0:v.latestRevisions),O=(null==v?void 0:v.clientIdentity)||T(16);ut(i);const U=yield at(b,_,v,w,e,u,n,O,d),{done:L,newSyncState:P}=yield e.transaction("rw",e.tables,(t=>r(this,void 0,void 0,(function*(){t.idbtrans.disableChangeTracking=!0,t.idbtrans.disableAccessControl=!0;for(const e of Object.keys(n))U.schema[e]&&(n[e]=U.schema[e]);yield e.$syncState.put(n,"schema");const s=yield I(f,e,{since:D});for(const t of f){const n=E(t.name);if(s.some((e=>e.table===n&&e.muts.length>0))){if(D[n]){const r=D[n]||0;yield Promise.all([t.where("rev").belowOrEqual(r).delete(),e.$baseRevs.where(":id").between([n,-1/0],[n,r+1],!0,!0).reverse().offset(1).delete()])}}else yield Promise.all([t.clear(),e.$baseRevs.where({tableName:n}).delete()])}ft(s,D),yield ht(e,n,D,U.serverRevision);const i=yield e.getPersistedSyncState();yield function(e,t,n){return r(this,void 0,void 0,(function*(){const r=new Set,s=new Set,i=n?n.realms:[],o=n?n.inviteRealms:[],l=new Set(t.realms),c=new Set(t.realms.concat(t.inviteRealms));for(const e of i)l.has(e)||(s.add(e),c.has(e)||r.add(e));for(const e of o.concat(i))c.has(e)||r.add(e);if(r.size>0||s.size>0){const t=k(e);for(const e of t){let t=["realms","members","roles"].includes(e.name)?r:s;0!==t.size&&(e.schema.indexes.some((e=>"realmId"===e.keyPath||Array.isArray(e.keyPath)&&"realmId"===e.keyPath[0]))?yield e.where("realmId").anyOf([...t]).delete():yield e.filter((e=>!!(null==e?void 0:e.realmId)&&t.has(e.realmId))).delete())}}if(s.size>0&&(null==n?void 0:n.yDownloadedRealms))for(const e of s)delete n.yDownloadedRealms[e]}))}(e,U,i);const o=i||{syncedTables:[],latestRevisions:{},realms:[],inviteRealms:[],clientIdentity:O};g&&(o.syncedTables=h.map((e=>e.name)).concat(y.map((e=>e.name)))),o.latestRevisions=D,o.remoteDbId=U.dbId,o.initiallySynced=!0,o.realms=U.realms,o.inviteRealms=U.inviteRealms,o.serverRevision=U.serverRevision,o.yServerRevision=U.serverRevision,o.timestamp=new Date,delete o.error;const l=ao(U.changes,s);if(yield gt(l,e),U.yMessages){const{receivedUntils:t,resyncNeeded:n,yServerRevision:s}=yield to(U.yMessages,e);s&&(o.yServerRevision=s),yield function(e,t,n){return r(this,void 0,void 0,(function*(){var s,i,o,l,c;const a={};for(const[t,n]of Object.entries(e))null!==(s=a[t])&&void 0!==s||(a[t]={}),a[t].unsentFrom=n+1;for(const[e,n]of Object.entries(t))null!==(i=a[e])&&void 0!==i||(a[e]={}),a[e].receivedUntil=n;const u=Object.values(n.dx._dbSchema).filter((e=>e.yProps)).map((e=>e.yProps.map((e=>e.updatesTable)))).flat();for(const e of u){const t=a[e],s=null!==(o=null==t?void 0:t.unsentFrom)&&void 0!==o?o:1,i=null!==(c=null!==(l=null==t?void 0:t.receivedUntil)&&void 0!==l?l:(yield n.table(e).where("i").between(1,1/0).reverse().limit(1).primaryKeys())[0])&&void 0!==c?c:0;yield n.transaction("rw",e,(()=>r(this,void 0,void 0,(function*(){const t=yield n.table(e).get(yt);t?(t.unsentFrom=Math.max(s,t.unsentFrom||1),t.receivedUntil=Math.max(i,t.receivedUntil||0),yield n.table(e).put(t)):yield n.table(e).add({i:yt,unsentFrom:s,receivedUntil:i})}))))}}))}(x,t,e),n&&(o.yDownloadedRealms={})}return e.$syncState.put(o,"syncState"),{done:0===s.length,newSyncState:o}}))));if(!L)return yield ct(e),yield co(e,t,n,{isInitialSync:s,cancelToken:i});const R=Object.values(n).some((e=>{var t;return null===(t=e.yProps)||void 0===t?void 0:t.length})),M=!!U.yMessages;if(R&&M)try{yield io(e,u,P)}catch(e){}return e.syncCompleteEvent.next(),!1}))}function ao(e,t){const n={};R(n,e);const r={};return R(r,t),function(e,t){var n,r,s;for(const[i,o]of Object.entries(t))for(const[t,l]of Object.entries(o))switch(l.type){case"ups":{const r=null===(n=e[i])||void 0===n?void 0:n[t];if(r)switch(r.type){case"ups":case"upd":delete e[i][t]}}break;case"del":null===(r=e[i])||void 0===r||delete r[t];break;case"upd":{const n=null===(s=e[i])||void 0===s?void 0:s[t];if(n)switch(n.type){case"ups":for(const[e,t]of Object.entries(l.mod))O(n.val,e,t);break;case"del":break;case"upd":for(const e of Object.keys(l.mod))delete n.mod[e]}break}}}(n,r),function(e,t=""){t||(t=T(16));const n={};for(const[t,r]of Object.entries(e))for(const[e,s]of Object.entries(r)){const r=n[t]||(n[t]={});(r[s.type]||(r[s.type]=[])).push(Object.assign({key:e},s))}const r=[];for(const[e,s]of Object.entries(n)){const n={table:e,muts:[]};for(const[e,r]of Object.entries(s))switch(e){case"ups":{const e={type:"upsert",keys:r.map((e=>e.key)),values:r.map((e=>e.val)),txid:t};n.muts.push(e);break}case"upd":{const e={type:"update",keys:r.map((e=>e.key)),changeSpecs:r.map((e=>e.mod)),txid:t};n.muts.push(e);break}case"del":{const e={type:"delete",keys:r.map((e=>e.key)),txid:t};n.muts.push(e);break}}r.push(n)}return r}(n)}const uo=10,ho=1e4,fo=1e3;function po(s){const i=[],o=new t.BehaviorSubject(!0),l=new t.BehaviorSubject(null);let c=!1,a=new Array(uo).fill(0);return l.subscribe((()=>r(this,void 0,void 0,(function*(){if(!c&&i.length>0){c=!0,a.shift(),a.push(Date.now()),o.next(!1);try{yield function(){return r(this,void 0,void 0,(function*(){for(var o,l,c,a,u,d;i.length>0;){const h=i.shift();try{yield t.firstValueFrom(s.cloud.syncState.pipe(n.filter((({phase:e})=>"in-sync"===e||"error"===e))));const i=s.cloud.persistedSyncState.value;if(!h)continue;switch(h.type){case"token-expired":const t=s.cloud.currentUser.value,n=yield Ie(s.cloud.options.databaseUrl,t);yield s.table("$logins").update(t.userId,{accessToken:n.accessToken,accessTokenExpiration:n.accessTokenExpiration,claims:n.claims,license:n.license,data:n.data});break;case"realm-added":(null===(o=null==i?void 0:i.realms)||void 0===o?void 0:o.includes(h.realm))||(null===(l=null==i?void 0:i.inviteRealms)||void 0===l?void 0:l.includes(h.realm))||(yield s.cloud.sync({purpose:"pull",wait:!0}));break;case"realm-accepted":(null===(c=null==i?void 0:i.realms)||void 0===c?void 0:c.includes(h.realm))||(yield s.cloud.sync({purpose:"pull",wait:!0}));break;case"realm-removed":((null===(a=null==i?void 0:i.realms)||void 0===a?void 0:a.includes(h.realm))||(null===(u=null==i?void 0:i.inviteRealms)||void 0===u?void 0:u.includes(h.realm)))&&(yield s.cloud.sync({purpose:"pull",wait:!0}));break;case"realms-changed":yield s.cloud.sync({purpose:"pull",wait:!0});break;case"changes":if("error"===(null===(d=s.cloud.syncState.value)||void 0===d?void 0:d.phase)){y(s,"pull");break}yield s.transaction("rw",s.dx.tables,(t=>r(this,void 0,void 0,(function*(){t.idbtrans.disableChangeTracking=!0,t.idbtrans.disableAccessControl=!0;const[n,r,i]=yield Promise.all([s.getSchema(),s.getPersistedSyncState(),s.getCurrentUser()]);if(!r||!n||!i)return;if(h.baseRev!==r.serverRevision)return void("string"!=typeof h.baseRev||"bigint"!=typeof r.serverRevision&&"object"!=typeof r.serverRevision||y(s,"pull"));if((yield e.waitFor(_(r)))!==h.realmSetHash)return void y(s,"pull");let o=[];if(i.isLoggedIn){const e=k(s).map((e=>s.table(S(e.name))));o=yield I(e,s)}if(h.changes.length>0){const e=ao(h.changes,o);yield gt(e,s)}r.latestRevisions=ft(o,r.latestRevisions),r.serverRevision=h.newRev,yield ht(s,n,r.latestRevisions,h.newRev),yield s.$syncState.put(r,"syncState")}))))}}catch(e){}}}))}()}finally{a[a.length-1]-a[0]<ho&&(yield new Promise((e=>setTimeout(e,fo)))),c=!1,o.next(!0)}}})))),{enqueue:function(e){i.push(e),l.next(null)},readyToServe:o}}const go=new WeakMap,yo={members:"@id, [userId+realmId], [email+realmId], realmId",roles:"[realmId+name]",realms:"@realmId",$jobs:"",$syncState:"",$baseRevs:"[tableName+clientRev]",$logins:"claims.sub, lastLogin"};let mo=0;function bo(e){"vip"in e&&(e=e.vip);let n=go.get(e.cloud);if(!n){const r=new t.Subject;let s=new f(`syncstatechanged-${e.name}`),i=new f(`synccomplete-${e.name}`);r.id=++mo;let o=!1;n={get name(){return e.name},close:()=>e.close(),transaction:e.transaction.bind(e),table:e.table.bind(e),get tables(){return e.tables},cloud:e.cloud,get $jobs(){return e.table("$jobs")},get $syncState(){return e.table("$syncState")},get $baseRevs(){return e.table("$baseRevs")},get $logins(){return e.table("$logins")},get realms(){return e.realms},get members(){return e.members},get roles(){return e.roles},get initiallySynced(){return o},localSyncEvent:r,get syncStateChangedEvent(){return s},get syncCompleteEvent(){return i},dx:e};const l={getCurrentUser:()=>n.$logins.toArray().then((e=>e.find((e=>e.isLoggedIn))||c)),getPersistedSyncState:()=>n.$syncState.get("syncState"),getSchema:()=>n.$syncState.get("schema").then((e=>{if(e)for(const r of n.tables)r.schema.primKey&&r.schema.primKey.keyPath&&e[r.name]&&(e[r.name].primaryKey="string"==typeof(t=r.schema.primKey.keyPath)?t:t?"["+[].join.call(t,"+")+"]":"");var t;return e})),getOptions:()=>n.$syncState.get("options"),setInitiallySynced(e){o=e},reconfigure(){s=new f(`syncstatechanged-${e.name}`),i=new f(`synccomplete-${e.name}`)}};Object.assign(n,l),n.messageConsumer=po(n),n.messageProducer=new t.Subject,go.set(e.cloud,n)}return n}const vo=new WeakMap;class wo{constructor(e,t){vo.set(this,e),Object.assign(this,t)}static load(e,t){return e.table("$logins").get(t).then((n=>new wo(e,n||{userId:t,claims:{sub:t},lastLogin:new Date(0)})))}save(){return r(this,void 0,void 0,(function*(){vo.get(this).table("$logins").put(this)}))}}function _o(e,n){return t.firstValueFrom(t.from(e).pipe(t.filter(n)))}function ko(e){return r(this,void 0,void 0,(function*(){const t=yield So(e);if(t){if(!(yield function(e,t,n){return r(this,void 0,void 0,(function*(){const r=[{type:"warning",messageCode:"LOGOUT_CONFIRMATION",message:"{numUnsyncedChanges} unsynced changes will get lost!\n Logout anyway?",messageParams:{currentUserId:t,numUnsyncedChanges:n.toString()}}];return yield _e(e,{type:"logout-confirmation",title:"Confirm Logout",alerts:r,fields:{},submitLabel:"Confirm logout",cancelLabel:"Cancel"}).then((()=>!0)).catch((()=>!1))}))}(e.cloud.userInteraction,e.cloud.currentUserId,t)))throw new Error("User cancelled logout due to unsynced changes");yield So(e,{deleteUnsyncedData:!0})}}))}function So(e){return r(this,arguments,void 0,(function*(e,{deleteUnsyncedData:t=!1}={}){const[n,s]=yield e.dx.transaction("rw",e.dx.tables,(n=>r(this,void 0,void 0,(function*(){const r=n.idbtrans;r.disableChangeTracking=!0,r.disableAccessControl=!0;const s=n.storeNames.filter((e=>e.endsWith("_mutations"))),i=(yield Promise.all(s.map((e=>n.table(e).count())))).reduce(((e,t)=>e+t),0);if(i>0&&!t)return[i,!1];e.$syncState.delete("syncState");for(const t of e.dx.tables)"$jobs"!==t.name&&"$syncState"!==t.name&&t.clear();return[i,!0]}))));return s&&(yield _o(e.cloud.currentUser,(e=>e.userId===c.userId)),yield e.cloud.sync({purpose:"pull",wait:!0})),n}))}function Eo(e,...t){globalThis.console[e](...t)}function xo(e,t){return r(this,void 0,void 0,(function*(){var n;const s=yield e.getCurrentUser(),i=s.userId;if(s.isLoggedIn&&(!t||!t.email&&!t.userId)){if("ok"===((null===(n=s.license)||void 0===n?void 0:n.status)||"ok")&&s.accessToken&&(!s.accessTokenExpiration||s.accessTokenExpiration.getTime()>Date.now()))return!1;if(s.refreshToken&&(!s.refreshTokenExpiration||s.refreshTokenExpiration.getTime()>Date.now()))return yield xe(e),!1}const o=new wo(e,{claims:{},lastLogin:new Date(0)});return yield Ce(e.cloud.options.databaseUrl,o,e.cloud.options.fetchTokens||function(e){const{userInteraction:t}=e.cloud;return function(n){return r(this,arguments,void 0,(function*({public_key:n,hints:r}){var s;let i;const o=null===(s=e.cloud.options)||void 0===s?void 0:s.databaseUrl;if(!o)throw new Error("No database URL given.");if("demo"===(null==r?void 0:r.grant_type))i={demo_user:yield Se(t,"Enter a demo user email",(null==r?void 0:r.email)||(null==r?void 0:r.userId)),grant_type:"demo",scopes:["ACCESS_DB"],public_key:n};else if((null==r?void 0:r.otpId)&&r.otp)i={grant_type:"otp",otp_id:r.otpId,otp:r.otp,scopes:["ACCESS_DB"],public_key:n};else{const e=yield Se(t,"Enter email address",null==r?void 0:r.email);i=/@demo.local$/.test(e)?{demo_user:e,grant_type:"demo",scopes:["ACCESS_DB"],public_key:n}:{email:e,grant_type:"otp",scopes:["ACCESS_DB"]}}const l=yield fetch(`${o}/token`,{body:JSON.stringify(i),method:"post",headers:{"Content-Type":"application/json",mode:"cors"}});if(200!==l.status){const e=yield l.text();throw yield ke(t,"Token request failed",{type:"error",messageCode:"GENERIC_ERROR",message:e,messageParams:{}}).catch((()=>{})),new st(l,e)}const c=yield l.json();if("tokens"===c.type||"error"===c.type)return c;if("otp"===i.grant_type&&"email"in i){if("otp-sent"!==c.type)throw new Error(`Unexpected response from ${o}/token`);const e=yield Ee(t,i.email),r=Object.assign(Object.assign({},i),{otp:e||"",otp_id:c.otp_id,public_key:n});let s=yield fetch(`${o}/token`,{body:JSON.stringify(r),method:"post",headers:{"Content-Type":"application/json"},mode:"cors"});for(;401===s.status;){const e=yield s.text();r.otp=yield Ee(t,i.email,{type:"error",messageCode:"INVALID_OTP",message:e,messageParams:{}}),s=yield fetch(`${o}/token`,{body:JSON.stringify(r),method:"post",headers:{"Content-Type":"application/json"},mode:"cors"})}if(200!==s.status){const e=yield s.text();throw new st(s,e)}return yield s.json()}throw new Error(`Unexpected response from ${o}/token`)}))}}(e),e.cloud.userInteraction,t),i!==c.userId&&o.userId!==i&&(yield ko(e)),yield function(e,t){return r(this,void 0,void 0,(function*(){const n=e.table("$logins");yield e.transaction("rw",n,(e=>r(this,void 0,void 0,(function*(){const e=yield n.toArray();yield Promise.all(e.filter((e=>e.userId!==t.userId&&e.isLoggedIn)).map((e=>(e.isLoggedIn=!1,n.put(e))))),t.isLoggedIn=!0,t.lastLogin=new Date;try{yield t.save()}catch(e){try{"DataCloneError"===e.name&&(Eo("debug","Login context property names:",Object.keys(t)),Eo("debug","Login context property names:",Object.keys(t)),Eo("debug","Login context:",t),Eo("debug","Login context JSON:",JSON.stringify(t)))}catch(e){}throw e}})))),yield _o(e.cloud.currentUser,(e=>e.userId===t.userId))}))}(e,o),y(e,"pull"),o.userId!==i}))}const Co="undefined"!=typeof InstallTrigger,Io="undefined"!=typeof navigator&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\/|Edge\//.test(navigator.userAgent),Ao=Io?[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]:NaN,Do=Io&&Ao<=605||Co,Oo="undefined"!=typeof self&&"clients"in self&&!self.document;const{toString:To}={};function Uo(e){return To.call(e).slice(8,-1)}function jo(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 Lo=/b|c|d|f|g|h|j|k|l|m|n|p|q|r|s|t|v|x|y|z/i;let Po=0;function Ro(e,t){const n=new Uint8Array(18),r=new Uint8Array(n.buffer,0,6),s=Date.now();Po>=s?++Po:Po=s,r[0]=Po/1099511627776,r[1]=Po/4294967296,r[2]=Po/16777216,r[3]=Po/65536,r[4]=Po/256,r[5]=Po;const i=new Uint8Array(n.buffer,6);crypto.getRandomValues(i);return e+$e(new Uint8Array(n.buffer))+(t||"")}function Mo(t){return{stack:"dbcore",name:"idGenerationMiddleware",level:1,create:n=>Object.assign(Object.assign({},n),{table:r=>{const s=n.table(r);return Object.assign(Object.assign({},s),{mutate:n=>{var i,o;const l=n.trans;if("versionchange"===l.mode&&(l.disableChangeTracking=!0,l.disableAccessControl=!0),l.disableChangeTracking)return s.mutate(n);if("add"===n.type||"put"===n.type){const l=null===(i=t.cloud.schema)||void 0===i?void 0:i[r];if(null==l?void 0:l.generatedGlobalId){if((null===(o=t.cloud.options)||void 0===o?void 0:o.databaseUrl)&&!t.initiallySynced){const e=jo(s.schema.primaryKey,n);return s.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 s.mutate(n)}))}return function(n,i){let o=null;const l=jo(s.schema.primaryKey,n);return l.forEach(((c,a)=>{if(void 0===c){const r=n.values[a].realmId||t.cloud.currentUserId,c=r.substr(r.length-3);l[a]=Ro(i,c),s.schema.primaryKey.outbound||(o||(o=n.values.slice()),o[a]=e.deepClone(o[a]),e.setByKeyPath(o[a],s.schema.primaryKey.keyPath,l[a]))}else if("string"!=typeof c||!c.startsWith(i)&&!c.startsWith("#"+i))throw new e.ConstraintError(`The ID "${c}" is not valid for table "${r}". Primary '@' keys requires the key to be prefixed with "${i}" (or "#${i}).\nIf you want to generate IDs programmatically, remove '@' from the schema to get rid of this constraint. Dexie Cloud supports custom IDs as long as they are random and globally unique.`)})),s.mutate(Object.assign(Object.assign({},n),{keys:l,values:o||n.values}))}(n,l.idPrefix)}if(null==l?void 0:l.markedForSync){jo(s.schema.primaryKey,n).forEach(((t,n)=>{if(!j(t)){const n=Array.isArray(t)?t.map(Uo).join(","):Uo(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 s.mutate(n)}})}})}}let No=0;function $o(e,t){return function(n){const{readers:r,writers:s}=n.trans[t]||(n.trans[t]={writers:[],readers:[]}),i=s.length,o=(i>0?s[i-1].then((()=>e(n)),(()=>e(n))):e(n)).finally((()=>{r.splice(r.indexOf(o))}));return r.push(o),o}}function Bo(e,t){return function(n){const{readers:r,writers:s}=n.trans[t]||(n.trans[t]={writers:[],readers:[]});let i=(s.length>0?s[s.length-1].then((()=>e(n)),(()=>e(n))):r.length>0?(o=r,new Promise((e=>{0===o.length&&e([]);let t=o.length;const n=new Array(t);o.forEach(((r,s)=>Promise.resolve(r).then((e=>n[s]={status:"fulfilled",value:e}),(e=>n[s]={status:"rejected",reason:e})).then((()=>--t||e(n)))))}))).then((()=>e(n))):e(n)).finally((()=>{s.shift()}));var o;return s.push(i),i}}const Fo=new t.BehaviorSubject(new Set);function Wo(e){var t,n,r,s;return(null===(t=e.cloud.options)||void 0===t?void 0:t.disableEagerSync)||"ok"!==(null===(r=null===(n=e.cloud.currentUser.value)||void 0===n?void 0:n.license)||void 0===r?void 0:r.status)||!(null===(s=e.cloud.options)||void 0===s?void 0:s.databaseUrl)}function Vo({currentUserObservable:t,db:n}){return{stack:"dbcore",name:"MutationTrackingMiddleware",level:1,create:r=>{const s=new Set(r.schema.tables.map((e=>e.name))),i=r.schema.tables.filter((e=>!/^\$/.test(e.name))),o=new Map;for(const e of i){const t=`$${e.name}_mutations`;s.has(t)&&o.set(e.name,r.table(t))}return Object.assign(Object.assign({},r),{transaction:(e,s)=>{let i;if("readwrite"===s){const t=e.filter((e=>{var t,r;return null===(r=null===(t=n.cloud.schema)||void 0===t?void 0:t[e])||void 0===r?void 0:r.markedForSync})).map((e=>S(e)));i=r.transaction([...e,...t],s)}else i=r.transaction(e,s);if("readwrite"===s){i.txid=A(16),i.opCount=0,i.currentUser=t.value,Fo.value.add(i),Fo.next(Fo.value);const e=()=>{i.removeEventListener("complete",r),i.removeEventListener("error",e),i.removeEventListener("abort",e),Fo.value.delete(i),Fo.next(Fo.value)},r=()=>{i.mutationsAdded&&!Wo(n)&&y(n,"push"),e()};i.addEventListener("complete",r),i.addEventListener("error",e),i.addEventListener("abort",e)}return i},table:t=>{const s=r.table(t);if(/^\$/.test(t))return t.endsWith("_mutations")?Object.assign(Object.assign({},s),{mutate:e=>("add"!==e.type&&"put"!==e.type||(e.trans.mutationsAdded=!0),s.mutate(e))}):"$logins"===t?Object.assign(Object.assign({},s),{mutate:e=>s.mutate(e).then((t=>(e.trans.mutationsAdded=!0,t))).catch((e=>Promise.reject(e)))}):s;const{schema:i}=s,l=o.get(t);return l?function(e){const t="$lock"+ ++No;return Object.assign(Object.assign({},e),{count:$o(e.count,t),get:$o(e.get,t),getMany:$o(e.getMany,t),openCursor:$o(e.openCursor,t),query:$o(e.query,t),mutate:Bo(e.mutate,t)})}(Object.assign(Object.assign({},s),{mutate:e=>{var r,o,l;const a=e.trans;return a.txid?a.disableChangeTracking?s.mutate(e):(null===(o=null===(r=n.cloud.schema)||void 0===r?void 0:r[t])||void 0===o?void 0:o.markedForSync)&&(null===(l=a.currentUser)||void 0===l?void 0:l.isLoggedIn)?"deleteRange"===e.type?s.query({query:{range:e.range,index:i.primaryKey},trans:e.trans,values:!1}).then((t=>c({type:"delete",keys:t.result,trans:e.trans,criteria:{index:null,range:e.range}}))):c(e):s.mutate(e):s.mutate(e)}})):s;function c(r){var o,c;const a=r.trans,u=null===(c=null===(o=n.cloud.options)||void 0===o?void 0:o.unsyncedProperties)||void 0===c?void 0:c[t],{txid:d,currentUser:{userId:h}}=a,{type:f}=r,p=++a.opCount;function g(e){if(!u)return e;let t=e;for(const n of Object.keys(e))u.some((e=>n===e||n.startsWith(e+".")))&&(t===e&&(t=Object.assign({},e)),delete t[n]);return t}return s.mutate(r).then((t=>{var n;const{numFailures:s,failures:o}=t;let c="delete"===f?r.keys:t.results,y="values"in r?r.values:[],m="changeSpec"in r?r.changeSpec:void 0,b="updates"in r?r.updates:void 0,v=!(!b||!("upsert"in r))&&r.upsert;if(s&&(c=c.filter(((e,t)=>!o[t])),y=y.filter(((e,t)=>!o[t]))),u){if(y=y.map((e=>{const t=Object.assign({},e);for(const e of u)delete t[e];return t})),m&&(m=g(m),0===Object.keys(m).length))return t;if(b){let t=b.changeSpecs.map(g),n={keys:[],changeSpecs:[]};const r=new e.RangeSet;let s=!1;if(!v){for(let e=0,i=t.length;e<i;++e)Object.keys(t[e]).length>0?(n.keys.push(b.keys[e]),n.changeSpecs.push(t[e]),r.addKey(b.keys[e])):s=!0;if(b=n,s){let e=[],t=[];for(let n=0,s=c.length;n<s;++n)r.hasKey(c[n])&&(e.push(c[n]),t.push(y[n]));c=e,y=t}}}}const w=Date.now();let _="criteria"in r&&r.criteria?Object.assign(Object.assign({},r.criteria),{index:r.criteria.index===i.primaryKey.keyPath?null:r.criteria.index}):void 0;if(u&&(null==_?void 0:_.index)){const e=null===(n=i.indexes.find((e=>e.name===_.index)))||void 0===n?void 0:n.keyPath;(e?"string"==typeof e?[e]:e:[]).some((e=>null==u?void 0:u.includes(e)))&&(_=void 0)}const k="delete"===r.type?{type:"delete",ts:w,opNo:p,keys:c,criteria:_,txid:d,userId:h}:"add"===r.type?{type:"insert",ts:w,opNo:p,keys:c,txid:d,userId:h,values:y}:v&&b?{type:"upsert",ts:w,opNo:p,keys:c,values:y,changeSpecs:b.changeSpecs.filter(((e,t)=>!o[t])),txid:d,userId:h}:_&&m?{type:"modify",ts:w,opNo:p,keys:c,criteria:_,changeSpec:m,txid:d,userId:h}:m?{type:"update",ts:w,opNo:p,keys:c,changeSpecs:c.map((()=>m)),txid:d,userId:h}:b?{type:"update",ts:w,opNo:p,keys:b.keys,changeSpecs:b.changeSpecs,txid:d,userId:h}:{type:"upsert",ts:w,opNo:p,keys:c,values:y,txid:d,userId:h};return"isAdditionalChunk"in r&&r.isAdditionalChunk&&(k.isAdditionalChunk=!0),c.length>0||_?l.mutate({type:"add",trans:a,values:[k]}).then((()=>(a.mutationsAdded=!0,t))):t}))}}})}}}function Ko(e,t){return function(n,r){var s;const i=Object.assign(Object.assign({},yo),n);Object.keys(yo).forEach((e=>{const t=i[e];if(null==t)throw new Error(`Cannot delete table ${e} as it is needed for access control of Dexie Cloud`);if(!n[e])return;const r=t.split(",").map((e=>e.trim())),s=yo[e].split(",").map((e=>e.trim())),o=new Set(r.map((e=>e.replace(/([&*]|\+\+)/g,""))));if(r[0]!==s[0])throw new Error(`Cannot override primary key of table ${e}. Please declare it as {${e}: ${JSON.stringify(yo[e])}`);for(let t=1;t<s.length;++t){const n=s[t];o.has(n.replace(/([&*]|\+\+)/g,""))||(i[e]+=`,${n}`)}}));const o=t.cloud.schema||(t.cloud.schema={}),l=new Set;Object.keys(i).forEach((e=>{const t=i[e],n=o[e]||(o[e]={});null!=t?(/^\@/.test(t)&&(i[e]=i[e].substr(1),n.generatedGlobalId=!0,n.idPrefix=function(e,t){let n=e[0].toLocaleLowerCase();for(let t=1,s=e.length;t<s&&n.length<3;++t)(Lo.test(e[t])||(r=e[t])>="A"&&r<="Z")&&(n+=e[t].toLowerCase());for(var r,s,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;)s=n,r=(1&(i=e)?s[0].toUpperCase():s[0].toLowerCase())+(2&i?s[1].toUpperCase():s[1].toLowerCase())+(4&i?s[2].toUpperCase():s[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,l),l.add(n.idPrefix)),/^\$/.test(e)||(i[`$${e}_mutations`]="++rev",n.markedForSync=!0),n.deleted&&(n.deleted=!1)):(n.deleted=!0,n.markedForSync=!1,i[`$${e}_mutations`]=null)}));const c=e.call(this,i,r);for(const[e,t]of Object.entries(r))if(null===(s=t.yProps)||void 0===s?void 0:s.length){const n=o[e];n&&(n.yProps=t.yProps.map((e=>e.prop)))}return c}}function Ho(e,t,n){return"undefined"!=typeof navigator&&navigator.locks?navigator.locks.request(e.name+"|"+t,(()=>n())):n()}const zo=new t.BehaviorSubject(!0),Jo=new t.BehaviorSubject(!0);zo.pipe(n.switchMap((e=>e?t.of(!0):t.of(!1).pipe(n.delay(2e4)))),n.distinctUntilChanged()).subscribe(Jo);const qo="undefined"!=typeof document?t.fromEvent(document,"visibilitychange"):t.of({}),Yo=qo.pipe(n.filter((()=>"hidden"===document.visibilityState))),Go=qo.pipe(n.filter((()=>"visible"===document.visibilityState))),Qo="undefined"!=typeof window?t.merge(Go,t.fromEvent(window,"mousedown"),t.fromEvent(window,"mousemove"),t.fromEvent(window,"keydown"),t.fromEvent(window,"wheel"),t.fromEvent(window,"touchmove")):t.of({});"undefined"!=typeof document&&t.merge(t.of(!0),Yo,Qo).pipe(n.map((()=>"visible"===document.visibilityState)),n.tap((e=>{zo.value!==e&&zo.next(e)})),n.switchMap((e=>e?t.of(0).pipe(n.delay(16e4),n.tap((()=>zo.next(!1)))):t.of(0)))).subscribe((()=>{}));class Xo extends Error{constructor(){super(...arguments),this.name="TokenExpiredError"}}const Zo=new WeakMap,el=3e4;class tl extends It{constructor(e){super(),this.doc=e,this.clientID=e.clientID,this.states=new Map,this.meta=new Map,this._checkInterval=setInterval((()=>{const e=Pn();null!==this.getLocalState()&&15e3<=e-this.meta.get(this.clientID).lastUpdated&&this.setLocalState(this.getLocalState());const t=[];this.meta.forEach(((n,r)=>{r!==this.clientID&&el<=e-n.lastUpdated&&this.states.has(r)&&t.push(r)})),t.length>0&&nl(this,t,"timeout")}),At(3e3)),e.on("destroy",(()=>{this.destroy()})),this.setLocalState({})}destroy(){this.emit("destroy",[this]),this.setLocalState(null),super.destroy(),clearInterval(this._checkInterval)}getLocalState(){return this.states.get(this.clientID)||null}setLocalState(e){const t=this.clientID,n=this.meta.get(t),r=void 0===n?0:n.clock+1,s=this.states.get(t);null===e?this.states.delete(t):this.states.set(t,e),this.meta.set(t,{clock:r,lastUpdated:Pn()});const i=[],o=[],l=[],c=[];null===e?c.push(t):null==s?null!=e&&i.push(t):(o.push(t),Yn(s,e)||l.push(t)),(i.length>0||l.length>0||c.length>0)&&this.emit("change",[{added:i,updated:l,removed:c},"local"]),this.emit("update",[{added:i,updated:o,removed:c},"local"])}setLocalStateField(e,t){const n=this.getLocalState();null!==n&&this.setLocalState({...n,[e]:t})}getStates(){return this.states}}const nl=(e,t,n)=>{const r=[];for(let n=0;n<t.length;n++){const s=t[n];if(e.states.has(s)){if(e.states.delete(s),s===e.clientID){const t=e.meta.get(s);e.meta.set(s,{clock:t.clock+1,lastUpdated:Pn()})}r.push(s)}}r.length>0&&(e.emit("change",[{added:[],updated:[],removed:r},n]),e.emit("update",[{added:[],updated:[],removed:r},n]))},rl=(e,t,n=e.states)=>{const r=t.length,s=Ht();Yt(s,r);for(let i=0;i<r;i++){const r=t[i],o=n.get(r)||null,l=e.meta.get(r).clock;Yt(s,r),Yt(s,l),Zt(s,JSON.stringify(o))}return zt(s)},sl=new WeakMap;function il(e){let n=sl.get(e);return n||(n=new t.Subject,sl.set(e,n)),n}class ol extends t.Observable{constructor(e,t,n,r,s,i,o,l){super((c=>new cl(e,t,n,r,s,l,c,i,o)))}}let ll=0;class cl extends t.Subscription{constructor(e,t,n,r,s,i,o,l,c){super((()=>this.teardown())),this.id=++ll,this.subscriptions=new Set,this.reconnecting=!1,this.db=e,this.databaseUrl=e.cloud.options.databaseUrl,this.rev=t,this.yrev=n,this.realmSetHash=r,this.clientIdentity=s,this.user=i,this.subscriber=o,this.lastUserActivity=new Date,this.messageProducer=l,this.webSocketStatus=c,this.connect()}teardown(){this.disconnect()}disconnect(){if(this.webSocketStatus.next("disconnected"),this.pinger&&(clearInterval(this.pinger),this.pinger=null),this.ws)try{this.ws.close()}catch(e){}this.ws=null;for(const e of this.subscriptions)e.unsubscribe();this.subscriptions.clear()}reconnect(){if(!this.reconnecting){this.reconnecting=!0;try{this.disconnect()}catch(e){}this.connect().catch((()=>{})).then((()=>this.reconnecting=!1))}}connect(){return r(this,void 0,void 0,(function*(){if(this.lastServerActivity=new Date,this.pauseUntil&&this.pauseUntil>new Date)return;if(this.ws)throw new Error("Called connect() when a connection is already open");if(!this.databaseUrl)throw new Error("Cannot connect without a database URL");if(this.closed)return;const n=this.user.accessTokenExpiration;if(n&&n<new Date)return void this.subscriber.error(new Xo);this.webSocketStatus.next("connecting"),this.pinger=setInterval((()=>r(this,void 0,void 0,(function*(){if(this.closed)this.teardown();else if(this.ws)try{this.ws.send(JSON.stringify({type:"ping"})),setTimeout((()=>{this.pinger&&(this.closed?this.teardown():this.lastServerActivity<new Date(Date.now()-2e4)&&this.reconnect())}),2e4)}catch(e){this.reconnect()}else this.reconnect()}))),3e4);const s=new URL(this.databaseUrl);s.protocol="http:"===s.protocol?"ws":"wss";const i=new URLSearchParams;if(this.subscriber.closed)return;i.set("v","2"),this.rev&&i.set("rev",this.rev),this.yrev&&i.set("yrev",this.yrev),i.set("realmsHash",this.realmSetHash),i.set("clientId",this.clientIdentity),i.set("dxcv",this.db.cloud.version),this.user.accessToken&&i.set("token",this.user.accessToken);const o=this.ws=new WebSocket(`${s}/changes?${i}`);o.binaryType="arraybuffer",o.onclose=e=>{this.pinger&&this.reconnect()},o.onmessage=e=>{if(this.pinger){this.lastServerActivity=new Date;try{const t="string"==typeof e.data?nt.parse(e.data):function(e){const t=new ae(e),n=pe(t);if("outdated-server-rev"===n)return{type:n};if("y-complete-sync-done"===n)return{type:n,yServerRev:pe(t)};const r=pe(t),s=pe(t);switch(n){case"u-ack":case"u-reject":return{type:n,table:r,prop:s,i:Number(ye(t))};default:{const e=be(t);switch(n){case"in-sync":case"doc-close":return{type:n,table:r,prop:s,k:e};case"aware":return{type:n,table:r,prop:s,k:e,u:de(t)};case"doc-open":return{type:n,table:r,prop:s,k:e,serverRev:be(t),sv:be(t)};case"sv":return{type:n,table:r,prop:s,k:e,sv:de(t)};case"u-c":return{type:n,table:r,prop:s,k:e,u:de(t),i:Number(ye(t))};case"u-s":return{type:n,table:r,prop:s,k:e,u:de(t),r:t.pos<t.arr.length&&pe(t)||void 0};default:throw new TypeError(`Unknown message type: ${n}`)}}}}(new Uint8Array(e.data));if("error"===t.type)throw new Error(`Error message from dexie-cloud: ${t.error}`);if("aware"===t.type){const e=eo.getDocCache(this.db.dx).find(t.table,t.k,t.prop);if(e){const n=(e=>Zo.get(e))(e);n&&((e,t,n)=>{const r=bn(t),s=Pn(),i=[],o=[],l=[],c=[],a=_n(r);for(let t=0;t<a;t++){const t=_n(r);let n=_n(r);const a=JSON.parse(Sn(r)),u=e.meta.get(t),d=e.states.get(t),h=void 0===u?0:u.clock;(h<n||h===n&&null===a&&e.states.has(t))&&(null===a?t===e.clientID&&null!=e.getLocalState()?n++:e.states.delete(t):e.states.set(t,a),e.meta.set(t,{clock:n,lastUpdated:s}),void 0===u&&null!==a?i.push(t):void 0!==u&&null===a?c.push(t):null!==a&&(Yn(a,d)||l.push(t),o.push(t)))}(i.length>0||l.length>0||c.length>0)&&e.emit("change",[{added:i,updated:l,removed:c},n]),(i.length>0||o.length>0||c.length>0)&&e.emit("update",[{added:i,updated:o,removed:c},n])})(n,t.u,"server")}}else if("pong"===t.type);else if("doc-open"===t.type){const e=eo.getDocCache(this.db.dx).find(t.table,t.k,t.prop);e&&il(e).next()}else"u-ack"===t.type||"u-reject"===t.type||"u-s"===t.type||"in-sync"===t.type||"outdated-server-rev"===t.type||"y-complete-sync-done"===t.type?to([t],this.db).then((e=>r(this,[e],void 0,(function*({resyncNeeded:e,yServerRevision:n,receivedUntils:r}){if(n&&(yield this.db.$syncState.update("syncState",{yServerRevision:n})),"u-s"===t.type&&r){const e=Vi(this.db,t.table,t.prop);if(e){const t=r[e.name];t&&(yield e.update(yt,{receivedUntil:t}))}}e&&(yield this.db.cloud.sync({purpose:"pull",wait:!0}))})))):this.subscriber.next(t)}catch(e){this.subscriber.error(e)}}};try{let n=!1;yield new Promise(((e,t)=>{o.onopen=t=>{n=!0,e(null)},o.onerror=e=>{if(n)this.reconnect();else{const n=e.error||new Error("WebSocket Error");this.subscriber.error(n),this.webSocketStatus.next("error"),t(n)}}})),this.subscriptions.add(this.messageProducer.subscribe((e=>{var t,n;this.closed||("ready"===e.type&&"connected"!==this.webSocketStatus.value&&this.webSocketStatus.next("connected"),"ready"===e.type?(this.rev=e.rev,null===(t=this.ws)||void 0===t||t.send(nt.stringify(e))):null===(n=this.ws)||void 0===n||n.send(ie(e)))}))),this.user.isLoggedIn&&!Wo(this.db)&&this.subscriptions.add(function(n){const s=C(n.tables.filter((e=>{var t,r;return(null===(r=null===(t=n.cloud.schema)||void 0===t?void 0:t[e.name])||void 0===r?void 0:r.markedForSync)&&e.schema.yProps})).map((e=>e.schema.yProps.map((t=>({table:e.name,ydocProp:t.prop,updatesTable:t.updatesTable}))))));return t.merge(...s.map((({table:s,ydocProp:i,updatesTable:o})=>{const l=n.table(o);return t.from(l.get(yt)).pipe(t.switchMap((n=>{let o=(null==n?void 0:n.unsentFrom)||1;return t.from(e.liveQuery((()=>r(this,void 0,void 0,(function*(){return(yield mt(l,o)).filter((e=>e.f&&1&e.f)).map((e=>({type:"u-c",table:s,prop:i,k:e.k,u:e.u,i:e.i})))}))))).pipe(t.tap((e=>{e.length>0&&(o=e.at(-1).i+1)})))})))}))).pipe(t.mergeMap((e=>e)))}(this.db).subscribe(this.db.messageProducer))}catch(e){this.pauseUntil=new Date(Date.now()+6e4)}}))}}class al extends Error{constructor(e){super("expired"===e?"License expired":"deactivated"===e?"User deactivated":"Invalid license"),this.name="InvalidLicenseError",e&&(this.license=e)}}function ul(e){return r(this,void 0,void 0,(function*(){var e;yield(e=3e3,new Promise((t=>setTimeout(t,e)))),yield t.firstValueFrom(Qo)}))}function dl(e){return r(this,void 0,void 0,(function*(){var t;return!(!(null===(t=e.cloud.options)||void 0===t?void 0:t.databaseUrl)||!e.cloud.schema)&&(yield lo(e,e.cloud.options,e.cloud.schema,{justCheckIfNeeded:!0}))}))}const hl=new WeakMap;function fl(e,t,n,s){const i=hl.get(e);if(i){if(i.pull||"push"===(null==s?void 0:s.purpose))return i.promise;{let r=!1;const o=e.cloud.syncState.subscribe((e=>{"pulling"===e.phase&&(r=!0)}));return i.promise.then((()=>{o.unsubscribe()})).catch((e=>(o.unsubscribe(),Promise.reject(e)))).then((()=>{if(!r)return fl(e,t,n,s)}))}}const o=function(){return r(this,void 0,void 0,(function*(){try{yield ct(e),yield Ho(e,oo,(()=>lo(e,t,n,s))),hl.delete(e)}catch(t){throw hl.delete(e),t}}))}();return hl.set(e,{promise:o,pull:"push"!==(null==s?void 0:s.purpose)}),o}const pl=1e3;function gl(e,t,n){let r=null,s={cancelled:!1},i=0,o=0;function l(r=1){setTimeout((()=>{const d=c?"pull":"push";o=Date.now(),fl(e,t,n,{cancelToken:s,retryImmediatelyOnFetchError:!0,purpose:d}).then((()=>{if(s.cancelled)h();else if(c||a)return c=!1,a=!1,l();u=!1,i=0,o=0})).catch((e=>{if(s.cancelled)h(),u=!1,i=0,o=0;else if(r<5){const e=[0,20,40,300,900][r]*pl;i=Date.now()+e,o=0,setTimeout((()=>l(r+1)),e)}else u=!1,i=0,o=0}))}),0)}let c=!1,a=!1,u=!1;const d=e=>{s.cancelled||("pull"===e&&(c=!0),"push"===e&&(a=!0),u?i||o>0&&Date.now():(u=!0,l()))},h=()=>{s.cancelled=!0,r&&r.unsubscribe()};return{start:()=>{r=e.localSyncEvent.subscribe((({purpose:e})=>{d(e||"pull")}))},stop:h}}function yl(e,t){if(e&&t&&t.unsyncedTables)for(const n of t.unsyncedTables)e[n]&&(e[n].markedForSync=!1)}var ml,bl,vl,wl,_l,kl={},Sl=[],El=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function xl(e,t){for(var n in t)e[n]=t[n];return e}function Cl(e){var t=e.parentNode;t&&t.removeChild(e)}function Il(e,t,n){var r,s,i,o={};for(i in t)"key"==i?r=t[i]:"ref"==i?s=t[i]:o[i]=t[i];if(arguments.length>2&&(o.children=arguments.length>3?ml.call(arguments,2):n),"function"==typeof e&&null!=e.defaultProps)for(i in e.defaultProps)void 0===o[i]&&(o[i]=e.defaultProps[i]);return Al(e,o,r,s,null)}function Al(e,t,n,r,s){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==s?++vl:s};return null==s&&null!=bl.vnode&&bl.vnode(i),i}function Dl(e){return e.children}function Ol(e,t){this.props=e,this.context=t}function Tl(e,t){if(null==t)return e.__?Tl(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?Tl(e):null}function Ul(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 Ul(e)}}function jl(e){(!e.__d&&(e.__d=!0)&&wl.push(e)&&!Ll.__r++||_l!==bl.debounceRendering)&&((_l=bl.debounceRendering)||setTimeout)(Ll)}function Ll(){for(var e;Ll.__r=wl.length;)e=wl.sort((function(e,t){return e.__v.__b-t.__v.__b})),wl=[],e.some((function(e){var t,n,r,s,i,o;e.__d&&(i=(s=(t=e).__v).__e,(o=t.__P)&&(n=[],(r=xl({},s)).__v=s.__v+1,Wl(o,s,r,t.__n,void 0!==o.ownerSVGElement,null!=s.__h?[i]:null,n,null==i?Tl(s):i,s.__h),Vl(n,s),s.__e!=i&&Ul(s)))}))}function Pl(e,t,n,r,s,i,o,l,c,a){var u,d,h,f,p,g,y,m=r&&r.__k||Sl,b=m.length;for(n.__k=[],u=0;u<t.length;u++)if(null!=(f=n.__k[u]=null==(f=t[u])||"boolean"==typeof f?null:"string"==typeof f||"number"==typeof f||"bigint"==typeof f?Al(null,f,null,null,f):Array.isArray(f)?Al(Dl,{children:f},null,null,null):f.__b>0?Al(f.type,f.props,f.key,null,f.__v):f)){if(f.__=n,f.__b=n.__b+1,null===(h=m[u])||h&&f.key==h.key&&f.type===h.type)m[u]=void 0;else for(d=0;d<b;d++){if((h=m[d])&&f.key==h.key&&f.type===h.type){m[d]=void 0;break}h=null}Wl(e,f,h=h||kl,s,i,o,l,c,a),p=f.__e,(d=f.ref)&&h.ref!=d&&(y||(y=[]),h.ref&&y.push(h.ref,null,f),y.push(d,f.__c||p,f)),null!=p?(null==g&&(g=p),"function"==typeof f.type&&f.__k===h.__k?f.__d=c=Rl(f,c,e):c=Ml(e,f,h,m,p,c),"function"==typeof n.type&&(n.__d=c)):c&&h.__e==c&&c.parentNode!=e&&(c=Tl(h))}for(n.__e=g,u=b;u--;)null!=m[u]&&("function"==typeof n.type&&null!=m[u].__e&&m[u].__e==n.__d&&(n.__d=Tl(r,u+1)),zl(m[u],m[u]));if(y)for(u=0;u<y.length;u++)Hl(y[u],y[++u],y[++u])}function Rl(e,t,n){for(var r,s=e.__k,i=0;s&&i<s.length;i++)(r=s[i])&&(r.__=e,t="function"==typeof r.type?Rl(r,t,n):Ml(n,r,r,s,r.__e,t));return t}function Ml(e,t,n,r,s,i){var o,l,c;if(void 0!==t.__d)o=t.__d,t.__d=void 0;else if(null==n||s!=i||null==s.parentNode)e:if(null==i||i.parentNode!==e)e.appendChild(s),o=null;else{for(l=i,c=0;(l=l.nextSibling)&&c<r.length;c+=2)if(l==s)break e;e.insertBefore(s,i),o=i}return void 0!==o?o:s.nextSibling}function Nl(e,t,n){"-"===t[0]?e.setProperty(t,n):e[t]=null==n?"":"number"!=typeof n||El.test(t)?n:n+"px"}function $l(e,t,n,r,s){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||Nl(e.style,t,"");if(n)for(t in n)r&&n[t]===r[t]||Nl(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?Fl:Bl,i):e.removeEventListener(t,i?Fl:Bl,i);else if("dangerouslySetInnerHTML"!==t){if(s)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 Bl(e){this.l[e.type+!1](bl.event?bl.event(e):e)}function Fl(e){this.l[e.type+!0](bl.event?bl.event(e):e)}function Wl(e,t,n,r,s,i,o,l,c){var a,u,d,h,f,p,g,y,m,b,v,w,_,k=t.type;if(void 0!==t.constructor)return null;null!=n.__h&&(c=n.__h,l=t.__e=n.__e,t.__h=null,i=[l]),(a=bl.__b)&&a(t);try{e:if("function"==typeof k){if(y=t.props,m=(a=k.contextType)&&r[a.__c],b=a?m?m.props.value:a.__:r,n.__c?g=(u=t.__c=n.__c).__=u.__E:("prototype"in k&&k.prototype.render?t.__c=u=new k(y,b):(t.__c=u=new Ol(y,b),u.constructor=k,u.render=Jl),m&&m.sub(u),u.props=y,u.state||(u.state={}),u.context=b,u.__n=r,d=u.__d=!0,u.__h=[]),null==u.__s&&(u.__s=u.state),null!=k.getDerivedStateFromProps&&(u.__s==u.state&&(u.__s=xl({},u.__s)),xl(u.__s,k.getDerivedStateFromProps(y,u.__s))),h=u.props,f=u.state,d)null==k.getDerivedStateFromProps&&null!=u.componentWillMount&&u.componentWillMount(),null!=u.componentDidMount&&u.__h.push(u.componentDidMount);else{if(null==k.getDerivedStateFromProps&&y!==h&&null!=u.componentWillReceiveProps&&u.componentWillReceiveProps(y,b),!u.__e&&null!=u.shouldComponentUpdate&&!1===u.shouldComponentUpdate(y,u.__s,b)||t.__v===n.__v){u.props=y,u.state=u.__s,t.__v!==n.__v&&(u.__d=!1),u.__v=t,t.__e=n.__e,t.__k=n.__k,t.__k.forEach((function(e){e&&(e.__=t)})),u.__h.length&&o.push(u);break e}null!=u.componentWillUpdate&&u.componentWillUpdate(y,u.__s,b),null!=u.componentDidUpdate&&u.__h.push((function(){u.componentDidUpdate(h,f,p)}))}if(u.context=b,u.props=y,u.__v=t,u.__P=e,v=bl.__r,w=0,"prototype"in k&&k.prototype.render)u.state=u.__s,u.__d=!1,v&&v(t),a=u.render(u.props,u.state,u.context);else do{u.__d=!1,v&&v(t),a=u.render(u.props,u.state,u.context),u.state=u.__s}while(u.__d&&++w<25);u.state=u.__s,null!=u.getChildContext&&(r=xl(xl({},r),u.getChildContext())),d||null==u.getSnapshotBeforeUpdate||(p=u.getSnapshotBeforeUpdate(h,f)),_=null!=a&&a.type===Dl&&null==a.key?a.props.children:a,Pl(e,Array.isArray(_)?_:[_],t,n,r,s,i,o,l,c),u.base=t.__e,t.__h=null,u.__h.length&&o.push(u),g&&(u.__E=u.__=null),u.__e=!1}else null==i&&t.__v===n.__v?(t.__k=n.__k,t.__e=n.__e):t.__e=Kl(n.__e,t,n,r,s,i,o,c);(a=bl.diffed)&&a(t)}catch(e){t.__v=null,(c||null!=i)&&(t.__e=l,t.__h=!!c,i[i.indexOf(l)]=null),bl.__e(e,t,n)}}function Vl(e,t){bl.__c&&bl.__c(t,e),e.some((function(t){try{e=t.__h,t.__h=[],e.some((function(e){e.call(t)}))}catch(e){bl.__e(e,t.__v)}}))}function Kl(e,t,n,r,s,i,o,l){var c,a,u,d=n.props,h=t.props,f=t.type,p=0;if("svg"===f&&(s=!0),null!=i)for(;p<i.length;p++)if((c=i[p])&&"setAttribute"in c==!!f&&(f?c.localName===f:3===c.nodeType)){e=c,i[p]=null;break}if(null==e){if(null===f)return document.createTextNode(h);e=s?document.createElementNS("http://www.w3.org/2000/svg",f):document.createElement(f,h.is&&h),i=null,l=!1}if(null===f)d===h||l&&e.data===h||(e.data=h);else{if(i=i&&ml.call(e.childNodes),a=(d=n.props||kl).dangerouslySetInnerHTML,u=h.dangerouslySetInnerHTML,!l){if(null!=i)for(d={},p=0;p<e.attributes.length;p++)d[e.attributes[p].name]=e.attributes[p].value;(u||a)&&(u&&(a&&u.__html==a.__html||u.__html===e.innerHTML)||(e.innerHTML=u&&u.__html||""))}if(function(e,t,n,r,s){var i;for(i in n)"children"===i||"key"===i||i in t||$l(e,i,null,n[i],r);for(i in t)s&&"function"!=typeof t[i]||"children"===i||"key"===i||"value"===i||"checked"===i||n[i]===t[i]||$l(e,i,t[i],n[i],r)}(e,h,d,s,l),u)t.__k=[];else if(p=t.props.children,Pl(e,Array.isArray(p)?p:[p],t,n,r,s&&"foreignObject"!==f,i,o,i?i[0]:n.__k&&Tl(n,0),l),null!=i)for(p=i.length;p--;)null!=i[p]&&Cl(i[p]);l||("value"in h&&void 0!==(p=h.value)&&(p!==e.value||"progress"===f&&!p||"option"===f&&p!==d.value)&&$l(e,"value",p,d.value,!1),"checked"in h&&void 0!==(p=h.checked)&&p!==e.checked&&$l(e,"checked",p,d.checked,!1))}return e}function Hl(e,t,n){try{"function"==typeof e?e(t):e.current=t}catch(e){bl.__e(e,n)}}function zl(e,t,n){var r,s;if(bl.unmount&&bl.unmount(e),(r=e.ref)&&(r.current&&r.current!==e.__e||Hl(r,null,t)),null!=(r=e.__c)){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(e){bl.__e(e,t)}r.base=r.__P=null}if(r=e.__k)for(s=0;s<r.length;s++)r[s]&&zl(r[s],t,"function"!=typeof e.type);n||null==e.__e||Cl(e.__e),e.__e=e.__d=void 0}function Jl(e,t,n){return this.constructor(e,n)}function ql(e,t,n){var r,s,i;bl.__&&bl.__(e,t),s=(r="function"==typeof n)?null:n&&n.__k||t.__k,i=[],Wl(t,e=(!r&&n||t).__k=Il(Dl,null,[e]),s||kl,kl,void 0!==t.ownerSVGElement,!r&&n?[n]:s?null:t.firstChild?ml.call(t.childNodes):null,i,!r&&n?n:s?s.__e:t.firstChild,r),Vl(i,e)}ml=Sl.slice,bl={__e:function(e,t,n,r){for(var s,i,o;t=t.__;)if((s=t.__c)&&!s.__)try{if((i=s.constructor)&&null!=i.getDerivedStateFromError&&(s.setState(i.getDerivedStateFromError(e)),o=s.__d),null!=s.componentDidCatch&&(s.componentDidCatch(e,r||{}),o=s.__d),o)return s.__E=s}catch(t){e=t}throw e}},vl=0,Ol.prototype.setState=function(e,t){var n;n=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=xl({},this.state),"function"==typeof e&&(e=e(xl({},n),this.props)),e&&xl(n,e),null!=e&&this.__v&&(t&&this.__h.push(t),jl(this))},Ol.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),jl(this))},Ol.prototype.render=Dl,wl=[],Ll.__r=0;const Yl={Error:{color:"red"},Alert:{error:{color:"red",fontWeight:"bold"},warning:{color:"#f80",fontWeight:"bold"},info:{color:"black"}},Darken:{position:"fixed",top:0,left:0,opacity:.5,backgroundColor:"#000",width:"100vw",height:"100vh",zIndex:150,webkitBackdropFilter:"blur(2px)",backdropFilter:"blur(2px)"},DialogOuter:{position:"fixed",top:0,left:0,width:"100vw",height:"100vh",zIndex:150,alignItems:"center",display:"flex",justifyContent:"center",padding:"16px",boxSizing:"border-box"},DialogInner:{position:"relative",color:"#222",backgroundColor:"#fff",padding:"24px",marginBottom:"2em",maxWidth:"400px",width:"100%",maxHeight:"90%",overflowY:"auto",border:"3px solid #3d3d5d",borderRadius:"8px",boxShadow:"0 0 80px 10px #666",fontFamily:"sans-serif",boxSizing:"border-box"},Input:{height:"35px",width:"100%",maxWidth:"100%",borderColor:"#ccf4",outline:"none",fontSize:"16px",padding:"8px",boxSizing:"border-box",backgroundColor:"#f9f9f9",borderRadius:"4px",border:"1px solid #ccc",marginTop:"6px",fontFamily:"inherit"},Button:{padding:"10px 20px",margin:"0 4px",border:"1px solid #d1d5db",borderRadius:"6px",backgroundColor:"#ffffff",cursor:"pointer",fontSize:"14px",fontWeight:"500",color:"#374151",transition:"all 0.2s ease"},PrimaryButton:{padding:"10px 20px",margin:"0 4px",border:"1px solid #3b82f6",borderRadius:"6px",backgroundColor:"#3b82f6",color:"white",cursor:"pointer",fontSize:"14px",fontWeight:"500",transition:"all 0.2s ease"},ButtonsDiv:{display:"flex",justifyContent:"flex-end",gap:"12px",marginTop:"24px",paddingTop:"20px"},Label:{display:"block",marginBottom:"12px",fontSize:"14px",fontWeight:"500",color:"#333"},WindowHeader:{margin:"0 0 20px 0",fontSize:"18px",fontWeight:"600",color:"#333",borderBottom:"1px solid #eee",paddingBottom:"10px"}};function Gl({children:e,className:t}){return Il("div",{className:`dexie-dialog ${t||""}`},Il("div",{style:Yl.Darken}),Il("div",{style:Yl.DialogOuter},Il("div",{style:Yl.DialogInner},e)))}var Ql,Xl,Zl,ec,tc=0,nc=[],rc=[],sc=bl.__b,ic=bl.__r,oc=bl.diffed,lc=bl.__c,cc=bl.unmount;function ac(e,t){bl.__h&&bl.__h(Xl,e,tc||t),tc=0;var n=Xl.__H||(Xl.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({__V:rc}),n.__[e]}function uc(e){return tc=1,function(e,t,n){var r=ac(Ql++,2);if(r.t=e,!r.__c&&(r.__=[n?n(t):mc(void 0,t),function(e){var t=r.__N?r.__N[0]:r.__[0],n=r.t(t,e);t!==n&&(r.__N=[n,r.__[1]],r.__c.setState({}))}],r.__c=Xl,!Xl.u)){Xl.u=!0;var s=Xl.shouldComponentUpdate;Xl.shouldComponentUpdate=function(e,t,n){if(!r.__c.__H)return!0;var i=r.__c.__H.__.filter((function(e){return e.__c}));if(i.every((function(e){return!e.__N})))return!s||s.call(this,e,t,n);var o=!1;return i.forEach((function(e){if(e.__N){var t=e.__[0];e.__=e.__N,e.__N=void 0,t!==e.__[0]&&(o=!0)}})),!!o&&(!s||s.call(this,e,t,n))}}return r.__N||r.__}(mc,e)}function dc(e){return tc=5,function(e,t){var n=ac(Ql++,7);return yc(n.__H,t)?(n.__V=e(),n.i=t,n.__h=e,n.__V):n.__}((function(){return{current:e}}),[])}function hc(){for(var e;e=nc.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(pc),e.__H.__h.forEach(gc),e.__H.__h=[]}catch(t){e.__H.__h=[],bl.__e(t,e.__v)}}bl.__b=function(e){Xl=null,sc&&sc(e)},bl.__r=function(e){ic&&ic(e),Ql=0;var t=(Xl=e.__c).__H;t&&(Zl===Xl?(t.__h=[],Xl.__h=[],t.__.forEach((function(e){e.__N&&(e.__=e.__N),e.__V=rc,e.__N=e.i=void 0}))):(t.__h.forEach(pc),t.__h.forEach(gc),t.__h=[])),Zl=Xl},bl.diffed=function(e){oc&&oc(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(1!==nc.push(t)&&ec===bl.requestAnimationFrame||((ec=bl.requestAnimationFrame)||function(e){var t,n=function(){clearTimeout(r),fc&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,100);fc&&(t=requestAnimationFrame(n))})(hc)),t.__H.__.forEach((function(e){e.i&&(e.__H=e.i),e.__V!==rc&&(e.__=e.__V),e.i=void 0,e.__V=rc}))),Zl=Xl=null},bl.__c=function(e,t){t.some((function(e){try{e.__h.forEach(pc),e.__h=e.__h.filter((function(e){return!e.__||gc(e)}))}catch(n){t.some((function(e){e.__h&&(e.__h=[])})),t=[],bl.__e(n,e.__v)}})),lc&&lc(e,t)},bl.unmount=function(e){cc&&cc(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.forEach((function(e){try{pc(e)}catch(e){t=e}})),t&&bl.__e(t,n.__v))};var fc="function"==typeof requestAnimationFrame;function pc(e){var t=Xl,n=e.__c;"function"==typeof n&&(e.__c=void 0,n()),Xl=t}function gc(e){var t=Xl;e.__c=e.__(),Xl=t}function yc(e,t){return!e||e.length!==t.length||t.some((function(t,n){return t!==e[n]}))}function mc(e,t){return"function"==typeof t?t(e):t}function bc({title:e,type:t,alerts:n,fields:r,submitLabel:s,cancelLabel:i,onCancel:o,onSubmit:l}){const[c,a]=uc({}),u=dc(null);return function(e,t){var n=ac(Ql++,4);!bl.__s&&yc(n.__H,t)&&(n.__=e,n.i=t,Xl.__h.push(n))}((()=>{var e;return null===(e=u.current)||void 0===e?void 0:e.focus()}),[]),Il(Gl,{className:"dxc-login-dlg"},Il(Dl,null,Il("h3",{style:Yl.WindowHeader},e),n.map((e=>Il("p",{style:Yl.Alert[e.type]},function({message:e,messageCode:t,messageParams:n}){return e.replace(/\{\w+\}/gi,(e=>n[e.substring(1,e.length-1)]))}(e)))),Il("form",{onSubmit:e=>{e.preventDefault(),l(c)}},Object.entries(r).map((([e,{type:t,label:n,placeholder:r}],s)=>Il("label",{style:Yl.Label,key:s},n?`${n}: `:"",Il("input",{ref:0===s?u:void 0,type:t,name:e,autoComplete:"on",style:Yl.Input,autoFocus:!0,placeholder:r,value:c[e]||"",onInput:n=>{var r;const s=function(e,t){switch(e){case"email":return t.toLowerCase();case"otp":return t.toUpperCase();default:return t}}(t,null===(r=n.target)||void 0===r?void 0:r.value);let i=Object.assign(Object.assign({},c),{[e]:s});a(i),"otp"===t&&8===(null==s?void 0:s.trim().length)&&l(i)}})))))),Il("div",{style:Yl.ButtonsDiv},Il(Dl,null,Il("button",{type:"submit",style:Yl.PrimaryButton,onClick:()=>l(c)},s),i&&Il("button",{style:Yl.Button,onClick:o},i))))}class vc extends Ol{constructor(e){super(e),this.observer=e=>this.setState({userInteraction:e}),this.state={userInteraction:void 0}}componentDidMount(){this.subscription=t.from(this.props.db.cloud.userInteraction).subscribe(this.observer)}componentWillUnmount(){this.subscription&&(this.subscription.unsubscribe(),delete this.subscription)}render(e,{userInteraction:t}){return t?Il(bc,Object.assign({},t)):null}}function wc(e){const t=new WeakMap;return n=>{let r=t.get(n);return r||(r=e(n),t.set(n,r)),r}}const _c=wc((e=>new t.BehaviorSubject(c)));function kc(e,n){let r=n,s=t.from(e).pipe(t.map((e=>r=e)),t.share({resetOnRefCountZero:()=>t.timer(1e3)}));const i=new t.Observable((e=>{let t=!1;const n=s.subscribe({next(n){t=!0,e.next(n)},error(t){e.error(t)},complete(){e.complete()}});return t||n.closed||e.next(r),n}));return i.getValue=()=>r,i}const Sc=wc((t=>kc(e.liveQuery((()=>t.roles.where({realmId:"rlm-public"}).toArray().then((e=>{const t={};for(const n of e.slice().sort(((e,t)=>(e.sortOrder||0)-(t.sortOrder||0))))t[n.name]=n;return t})))),{}))),Ec=wc((t=>kc(_c(t._novip).pipe(n.switchMap((n=>e.liveQuery((()=>t.transaction("r","realms","members",(()=>Promise.all([t.members.where({userId:n.userId}).toArray(),t.realms.toArray(),n.userId]).then((([e,t,n])=>({selfMembers:e,realms:t,userId:n})))))))))),{selfMembers:[],realms:[],get userId(){return t.cloud.currentUserId}})));function xc(...e){if(0===e.length)return{};const t=e.reduce(((e,t)=>{const n=Object.assign({},e);for(const[e,r]of Object.entries(t))if(e in n&&n[e]){if("*"===n[e])continue;if("*"===r)n[e]="*";else if(Array.isArray(r)&&Array.isArray(n[e])){const t=n,s=t[e];t[e]=[...new Set([...s,...r])]}else if("object"==typeof r&&r&&"object"==typeof n[e]){const t=n[e];for(const[e,n]of Object.entries(r))"*"!==t[e]&&("*"===n?t[e]="*":Array.isArray(t[e])&&Array.isArray(n)&&(t[e]=[...new Set([...t[e],...n])]))}}else n[e]=t[e];return n}));return t}const Cc=wc((e=>function(e,n){let r;const s=e.pipe(t.map((e=>r=n(e))));return s.getValue=()=>void 0!==r?r:r=n(e.getValue()),s}(kc(t.combineLatest([Ec(e._novip),Sc(e._novip)]).pipe(n.map((([{selfMembers:e,realms:t,userId:n},r])=>({selfMembers:e,realms:t,userId:n,globalRoles:r})))),{selfMembers:[],realms:[],userId:c.userId,globalRoles:{}}),(({selfMembers:e,realms:t,userId:n,globalRoles:r})=>{const s=t.map((t=>{const s=e.filter((e=>e.realmId===t.realmId)),i=s.map((e=>e.permissions)).filter((e=>e)),o=C(s.map((e=>e.roles)).filter((e=>e))).map((e=>r[e])).filter((e=>e)).map((e=>e.permissions));return Object.assign(Object.assign({},t),{permissions:t.owner===n?{manage:"*"}:xc(...i,...o)})})).reduce(((e,t)=>Object.assign(Object.assign({},e),{[t.realmId]:t})),{[n]:{realmId:n,owner:n,name:n,permissions:{manage:"*"}}});return s}))));class Ic{constructor(e,t,n){this.permissions=e||{},this.tableName=t,this.isOwner=n}add(...e){var t;return"*"===this.permissions.manage||(!!(null===(t=this.permissions.manage)||void 0===t?void 0:t.includes(this.tableName))||("*"===this.permissions.add||!!e.every((e=>{var t;return null===(t=this.permissions.add)||void 0===t?void 0:t.includes(e)}))))}update(...e){var t,n;if(this.isOwner||"*"===this.permissions.manage)return!0;if(null===(t=this.permissions.manage)||void 0===t?void 0:t.includes(this.tableName))return!0;if("*"===this.permissions.update)return e.every((e=>"owner"!==e));const r=null===(n=this.permissions.update)||void 0===n?void 0:n[this.tableName];return"*"===r?e.every((e=>"owner"!==e)):e.every((e=>null==r?void 0:r.some((t=>t===e||"*"===t&&"owner"!==e))))}delete(){var e;return!(!this.isOwner&&"*"!==this.permissions.manage)||!!(null===(e=this.permissions.manage)||void 0===e?void 0:e.includes(this.tableName))}}const Ac=wc((s=>{const i=_c(s._novip).pipe(n.switchMap((t=>e.liveQuery((()=>s.members.where({email:t.email||""}).toArray()))))),o=Cc(s._novip),l=Ec(s._novip);return kc(t.combineLatest([i,l,o]).pipe(n.map((([e,t,n])=>{const i=(e,t)=>Object.assign(Object.assign({},e),{[t.id]:Object.assign(Object.assign({},t),{realm:n[t.realmId]})}),o=e.reduce(i,{}),l=t.selfMembers.reduce(i,o);return Object.values(l).filter((e=>!e.accepted)).map((e=>Object.assign(Object.assign({},e),{accept(){return r(this,void 0,void 0,(function*(){yield s.members.update(e.id,{accepted:new Date})}))},reject(){return r(this,void 0,void 0,(function*(){yield s.members.update(e.id,{rejected:new Date})}))}})))}))),[])}));function Dc(n){return s=>{var i;const o=s.doc;if(!o)throw new Error("Internal error: DexieYProvider.createYHandler called without a doc. This is unexpected.");const{parentTable:l}=o.meta||{};if(!(null===(i=n.cloud.schema)||void 0===i?void 0:i[l].markedForSync))return;let c;Object.defineProperty(s,"awareness",{get:()=>c||(c=function(n,s,i){const{parentTable:o,parentId:l,parentProp:c,updatesTable:a}=s.meta,u=new tl(s),d=il(s);return u.on("update",(({added:e,updated:t,removed:r},l)=>{const a=e.concat(t).concat(r),d=n.cloud.currentUser.value;if("server"!==l&&d.isLoggedIn&&!Wo(n)){const e=rl(u,a);n.messageProducer.next({type:"aware",table:o,prop:c,k:s.meta.parentId,u:e}),i.destroyed&&n.messageProducer.next({type:"doc-close",table:o,prop:c,k:s.meta.parentId})}})),u.on("destroy",(()=>{nl(u,[s.clientID],"provider destroyed")})),(()=>{r(this,void 0,void 0,(function*(){if(i.destroyed)return;let s=!1,u=1;const h=t.combineLatest([n.cloud.webSocketStatus,d.pipe(t.startWith(null))]).subscribe((([e])=>{if(i.destroyed)return;s="connected"===e;const t=n.cloud.currentUser.value;"connected"===e&&t.isLoggedIn&&!Wo(n)&&(++u,f().catch((e=>{})))}));function f(){return r(this,void 0,void 0,(function*(){const t=u,d=n.table(a),h=n.$syncState,[f,p]=yield n.transaction("r",h,d,(()=>r(this,void 0,void 0,(function*(){const e=yield d.get(yt),t=yield h.get("syncState");return[(null==e?void 0:e.receivedUntil)||0,(null==t?void 0:t.yServerRevision)||(null==t?void 0:t.serverRevision)]}))));if(i.destroyed||u!==t||!s)return;const g={type:"doc-open",table:o,prop:c,k:l,serverRev:p},y=yield d.where("i").between(f,1/0,!1).filter((t=>0===e.cmp(t.k,l)&&0==(1&(t.f||0)))).toArray();if(!i.destroyed&&u===t&&s){if(y.length>0){const e=hs(y.map((e=>e.u))),t=us(e);g.sv=t}n.messageProducer.next(g)}}))}i.addCleanupHandler(h)}))})(),u}(n,o,s),Zo.set(o,c),c)})}}const Oc={nameSuffix:!0};function Tc(s){const i=s.name,o=_c(s),l=[];let a=!1,u=null;s.on("ready",(s=>r(this,void 0,void 0,(function*(){try{yield function(s){return r(this,void 0,void 0,(function*(){var i,c,p,m,b,v,w;d=!1;const k=bo(s);"undefined"!=typeof window&&"undefined"!=typeof document&&((null===(i=k.cloud.options)||void 0===i?void 0:i.customLoginGui)||l.push(function(e){let t=!1;const n=document.createElement("div");return document.body?(document.body.appendChild(n),ql(Il(vc,{db:e.vip}),n)):addEventListener("DOMContentLoaded",(()=>{t||(document.body.appendChild(n),ql(Il(vc,{db:e.vip}),n))})),{unsubscribe(){try{n.remove()}catch(e){}t=!0},get closed(){return t}}}(s))),k.cloud.isServiceWorkerDB||l.push(function(e){let r=e.cloud.webSocketStatus.value;const s=e.cloud.webSocketStatus.pipe(n.switchMap((e=>{const s=r;r=e;const i=t.of(e);switch(e){case"disconnected":return zo.value?i.pipe(n.debounceTime(500)):i;case"connecting":return"not-started"===s||"error"===s?i:i.pipe(n.debounceTime(4e3));default:return i}})));return t.combineLatest([s,e.syncStateChangedEvent.pipe(n.startWith({phase:"initial"})),_c(e.dx._novip),Jo]).pipe(n.map((([t,n,r,s])=>{var i;if((null===(i=r.license)||void 0===i?void 0:i.status)&&"ok"!==r.license.status)return{phase:"offline",status:"offline",license:r.license.status};let{phase:o,error:l,progress:c}=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"),s||(a="disconnected"),{phase:o,error:l,progress:c,status:dt?a:"offline",license:"ok"}})))}(k).subscribe(s.cloud.syncState)),l.push(k.syncCompleteEvent.subscribe(f)),k.tables.every((e=>e.core))||function(){throw new e.SchemaError("Version increment needed to allow dexie-cloud change tracking")}();const S="serviceWorker"in navigator?yield navigator.serviceWorker.getRegistrations():[],[E,x]=yield k.transaction("rw",k.$syncState,(()=>r(this,void 0,void 0,(function*(){var e,t;const{options:n,schema:r}=k.cloud,[s,i,o]=yield Promise.all([k.getOptions(),k.getSchema(),k.getPersistedSyncState()]);if(a){if(!s||JSON.stringify(s)!==JSON.stringify(n)){if(!n)throw new Error("Internal error");const e=Object.assign({},n);delete e.fetchTokens,delete e.awarenessProtocol,yield k.$syncState.put(e,"options")}}else k.cloud.options=s||null;if((null===(e=k.cloud.options)||void 0===e?void 0:e.tryUseServiceWorker)&&"serviceWorker"in navigator&&S.length>0&&!Do?k.cloud.usingServiceWorker=!0:((null===(t=k.cloud.options)||void 0===t?void 0:t.tryUseServiceWorker)&&k.cloud.isServiceWorkerDB,k.cloud.usingServiceWorker=!1),yl(r,k.cloud.options),yl(i,k.cloud.options),r){if(!i||JSON.stringify(i)!==JSON.stringify(r)){const e=i||{};for(const[t,n]of Object.entries(r)){const r=e[t];r?(r.markedForSync=n.markedForSync,n.deleted=r.deleted,r.generatedGlobalId=n.generatedGlobalId):e[t]=Object.assign({},n)}yield k.$syncState.put(e,"schema"),Object.assign(r,e)}}else k.cloud.schema=i||null;return[null==o?void 0:o.initiallySynced,null==o?void 0:o.realms]}))));if(E&&k.setInitiallySynced(!0),function(t){var n,r;for(const s of t.tables)if(null===(r=null===(n=t.cloud.schema)||void 0===n?void 0:n[s.name])||void 0===r?void 0:r.markedForSync){if(s.schema.primKey.auto)throw new e.SchemaError(`Table ${s.name} is both autoIncremented and synced. Use db.cloud.configure({unsyncedTables: [${JSON.stringify(s.name)}]}) to blacklist it from sync`);if(!s.schema.primKey.keyPath)throw new e.SchemaError(`Table ${s.name} cannot be both synced and outbound. Use db.cloud.configure({unsyncedTables: [${JSON.stringify(s.name)}]}) to blacklist it from sync`)}}(k),h(),!k.cloud.isServiceWorkerDB){l.push(e.liveQuery((()=>k.getCurrentUser())).subscribe(o)),l.push(e.liveQuery((()=>k.getPersistedSyncState())).subscribe(k.cloud.persistedSyncState)),yield t.firstValueFrom(t.combineLatest([o.pipe(n.skip(1),n.take(1)),k.cloud.persistedSyncState.pipe(n.skip(1),n.take(1))]));const r=Dc(k);eo.on.new.subscribe(r),k.dx.once("close",(()=>{eo.on.new.unsubscribe(r)}))}let C=!1;const I=yield k.getCurrentUser(),A=null===(c=k.cloud.options)||void 0===c?void 0:c.requireAuth;A&&(k.cloud.isServiceWorkerDB?yield t.firstValueFrom(o.pipe(n.filter((e=>!!e.isLoggedIn)),n.take(1))):"object"==typeof A?(!I.isLoggedIn||A.userId&&I.userId!==A.userId||A.email&&I.email!==A.email)&&(C=yield xo(k,A)):I.isLoggedIn||(C=yield xo(k))),!I.isLoggedIn||x&&x.includes(I.userId)||(C=!0),u&&u.stop(),u=null,h();const D=(null===(p=k.cloud.options)||void 0===p?void 0:p.databaseUrl)&&(!E||C);D&&(yield function(e,t,n){return r(this,void 0,void 0,(function*(){yield Ho(e,oo,(()=>lo(e,t,n,{isInitialSync:!0})))}))}(k,k.cloud.options,k.cloud.schema),k.setInitiallySynced(!0)),h(),k.cloud.usingServiceWorker&&(null===(m=k.cloud.options)||void 0===m?void 0:m.databaseUrl)?(D||g(k,"push").catch((()=>{})),function(e){return r(this,void 0,void 0,(function*(){var t;try{const{periodicSync:n}=yield navigator.serviceWorker.ready;if(n)try{yield n.register(`dexie-cloud:${e.name}`,null===(t=e.cloud.options)||void 0===t?void 0:t.periodicSync)}catch(e){}}catch(e){}}))}(k).catch((()=>{}))):(null===(b=k.cloud.options)||void 0===b?void 0:b.databaseUrl)&&k.cloud.schema&&!k.cloud.isServiceWorkerDB&&(u=gl(k,k.cloud.options,k.cloud.schema),u.start(),D||y(k,"push")),h(),k.cloud.isServiceWorkerDB||l.push(t.fromEvent(self,"online").subscribe((()=>{k.syncStateChangedEvent.next({phase:"not-in-sync"}),Wo(k)||y(k,"push")})),t.fromEvent(self,"offline").subscribe((()=>{k.syncStateChangedEvent.next({phase:"offline"})}))),!(null===(v=k.cloud.options)||void 0===v?void 0:v.databaseUrl)||(null===(w=k.cloud.options)||void 0===w?void 0:w.disableWebSocket)||Oo||l.push(function(e){var s;if(!(null===(s=e.cloud.options)||void 0===s?void 0:s.databaseUrl))throw new Error("No database URL to connect WebSocket to");const i=e.messageConsumer.readyToServe.pipe(n.filter((e=>e)),n.switchMap((()=>e.getPersistedSyncState())),n.filter((e=>e&&e.serverRevision)),n.switchMap((e=>r(this,void 0,void 0,(function*(){return{type:"ready",rev:e.serverRevision,realmSetHash:yield _(e)}}))))),o=t.merge(i,e.messageProducer);return function s(){return e.cloud.persistedSyncState.pipe(n.filter((e=>null==e?void 0:e.serverRevision)),n.take(1),n.switchMap((t=>e.cloud.currentUser.pipe(n.map((e=>[e,t]))))),n.switchMap((([e,t])=>Jo.pipe(n.map((n=>[n?e:null,t]))))),n.switchMap((([r,s])=>(null==r?void 0:r.isLoggedIn)&&!(null==s?void 0:s.realms.includes(r.userId))?e.cloud.persistedSyncState.pipe(n.filter((e=>(null==e?void 0:e.realms.includes(r.userId))||!1)),n.take(1),n.map((e=>[r,e]))):new t.BehaviorSubject([r,s]))),n.switchMap((e=>r(this,[e],void 0,(function*([e,t]){return[e,yield _(t)]})))),n.distinctUntilChanged((([e,t],[n,r])=>e===n&&t===r)),n.switchMap((([n,r])=>{var i;return(null===(i=e.cloud.persistedSyncState)||void 0===i?void 0:i.value)?n?new ol(e,e.cloud.persistedSyncState.value.serverRevision,e.cloud.persistedSyncState.value.yServerRevision,r,e.cloud.persistedSyncState.value.clientIdentity,o,e.cloud.webSocketStatus,n):t.from([]):s()})),n.catchError((i=>"TokenExpiredError"===(null==i?void 0:i.name)?t.of(!0).pipe(n.switchMap((()=>r(this,void 0,void 0,(function*(){const t=yield e.getCurrentUser(),n=yield Ie(e.cloud.options.databaseUrl,t);yield e.table("$logins").update(t.userId,{accessToken:n.accessToken,accessTokenExpiration:n.accessTokenExpiration,claims:n.claims,license:n.license,data:n.data})})))),n.switchMap((()=>s()))):t.throwError((()=>i)))),n.catchError((r=>(e.cloud.webSocketStatus.next("error"),r instanceof al?t.throwError((()=>r)):t.from(ul()).pipe(n.switchMap((()=>s())))))))}().subscribe({next:t=>{t&&e.messageConsumer.enqueue(t)},error:e=>{},complete:()=>{}})}(k))}))}(s)}catch(e){}}))),!0);let d=!1;function h(){if(d)throw new e.DatabaseClosedError}s.once("close",(()=>{l.forEach((e=>e.unsubscribe())),l.splice(0,l.length),d=!0,u&&u.stop(),u=null,o.next(c)}));const f=new t.Subject;var p;s.cloud={version:"4.2.4",options:Object.assign({},Oc),schema:null,get currentUserId(){return o.value.userId||c.userId},currentUser:o,syncState:new t.BehaviorSubject({phase:"initial",status:"not-started"}),events:{syncComplete:f},persistedSyncState:new t.BehaviorSubject(void 0),userInteraction:new t.BehaviorSubject(void 0),webSocketStatus:new t.BehaviorSubject("not-started"),login(e){return r(this,void 0,void 0,(function*(){const t=bo(s);yield t.cloud.sync(),yield xo(t,e)}))},invites:Ac(s),roles:Sc(s),configure(e){e=s.cloud.options=Object.assign(Object.assign({},s.cloud.options),e),a=!0,e.databaseUrl&&e.nameSuffix&&(s.name=`${i}-${function(e){const t=new URL(e);return"/"===t.pathname?t.hostname.split(".")[0]:t.pathname.split("/")[1]}(e.databaseUrl)}`,bo(s).reconfigure()),yl(s.cloud.schema,s.cloud.options)},logout(){return r(this,arguments,void 0,(function*({force:e}={}){e?yield So(bo(s),{deleteUnsyncedData:!0}):yield ko(bo(s))}))},sync(){return r(this,arguments,void 0,(function*({wait:i,purpose:o}={wait:!0,purpose:"push"}){var l;void 0===i&&(i=!0);const c=bo(s);if("ok"!==((null===(l=c.cloud.currentUser.value.license)||void 0===l?void 0:l.status)||"ok")&&(yield xe(c)),"pull"===o){const e=c.cloud.persistedSyncState.value;if(y(c,o),i){const r=yield t.firstValueFrom(c.cloud.persistedSyncState.pipe(n.filter((t=>null!=(null==t?void 0:t.timestamp)&&(!e||t.timestamp>e.timestamp)))));if(null==r?void 0:r.error)throw new Error("Sync error: "+r.error)}}else if(yield dl(c)){const s=c.cloud.persistedSyncState.value;y(c,o),i&&(yield t.firstValueFrom(t.from(e.liveQuery((()=>r(this,void 0,void 0,(function*(){const e=yield dl(c),t=yield c.getPersistedSyncState();if((null==t?void 0:t.timestamp)!==(null==s?void 0:s.timestamp)&&(null==t?void 0:t.error))throw new Error("Sync error: "+t.error);return e}))))).pipe(n.filter((e=>!e)))))}}))},permissions:(e,t)=>function(e,t,r){if(!t)throw new TypeError("Cannot check permissions of undefined or null. A Dexie Cloud object with realmId and owner expected.");const{owner:s,realmId:i}=t;if(!r){if("function"!=typeof t.table)throw new TypeError("Missing 'table' argument to permissions and table could not be extracted from entity");r=t.table()}const o=Cc(e),l=t=>{const n=t[i||e.cloud.currentUserId];return n?new Ic(n.permissions,r,void 0===i||i===e.cloud.currentUserId||s===e.cloud.currentUserId):new Ic({},r,!s||s===e.cloud.currentUserId)},c=o.pipe(n.map(l));return c.getValue=()=>l(o.getValue()),c}(s._novip,e,t)},s.Version.prototype._parseStoresSpec=e.override(s.Version.prototype._parseStoresSpec,(e=>Ko(e,s))),s.Table.prototype.newId=function({colocateWith:e}={}){const t=e&&e.substr(e.length-3);return Ro(s.cloud.schema[this.name].idPrefix||"",t)},s.Table.prototype.idPrefix=function(){var e,t;return(null===(t=null===(e=this.db.cloud.schema)||void 0===e?void 0:e[this.name])||void 0===t?void 0:t.idPrefix)||""},s.use(Vo({currentUserObservable:s.cloud.currentUser,db:bo(s)})),s.use((p=bo(s),{stack:"dbcore",name:"implicitPropSetterMiddleware",level:1,create:e=>Object.assign(Object.assign({},e),{table:t=>{const n=e.table(t);return Object.assign(Object.assign({},n),{mutate:e=>{var r,s,i,o,l,a;const u=e.trans;if(u.disableChangeTracking)return n.mutate(e);const d=null!==(s=null===(r=u.currentUser)||void 0===r?void 0:r.userId)&&void 0!==s?s:c.userId;if((null===(o=null===(i=p.cloud.schema)||void 0===i?void 0:i[t])||void 0===o?void 0:o.markedForSync)&&("add"===e.type||"put"===e.type)){if("members"===t)for(const t of e.values)"string"==typeof t.email&&(t.email=t.email.trim().toLowerCase());for(const t of e.values){t.owner||(t.owner=d),t.realmId||(t.realmId=d);const r=null===(a=(l=n.schema.primaryKey).extractKey)||void 0===a?void 0:a.call(l,t);"string"==typeof r&&"#"===r[0]&&"put"===e.type&&(delete e.criteria,delete e.changeSpec,e.upsert||delete e.updates,t.$ts=Date.now())}}return n.mutate(e)}})}})})),s.use(Mo(bo(s)))}Tc.version="4.2.4",e.Cloud=Tc;const Uc=new Map;function jc(e){return e.startsWith("dexie-cloud:")&&e.split(":")[1]}const Lc=new Map;function Pc(t,n){let s=Lc.get(t+"/"+n);return s||(s=function t(n,s){return r(this,void 0,void 0,(function*(){var r;let i=Uc.get(n);if(!i){const r=new e(n,{addons:[Tc]});if(i=bo(r),i.cloud.isServiceWorkerDB=!0,r.on("versionchange",o),yield i.dx.open(),Uc.get(n))return i.close(),yield t(n,s);Uc.set(n,i)}if((null===(r=i.cloud.options)||void 0===r?void 0:r.databaseUrl)&&i.cloud.schema)try{yield fl(i,i.cloud.options,i.cloud.schema,{retryImmediatelyOnFetchError:!0,purpose:s})}catch(t){if(o(),t.name!==e.errnames.NoSuchDatabase)throw t}function o(){return i.dx.on.versionchange.unsubscribe(o),Uc.get(i.name)===i&&Uc.delete(i.name),i.dx.close(),!1}}))}(t,n).then((()=>{Lc.delete(t+"/"+n)})).catch((e=>(Lc.delete(t+"/"+n),Promise.reject(e)))),Lc.set(t+"/"+n,s)),s}Do||(self.addEventListener("sync",(e=>{const t=jc(e.tag);t&&e.waitUntil(Pc(t,"push"))})),self.addEventListener("periodicsync",(e=>{const t=jc(e.tag);t&&e.waitUntil(Pc(t,"pull"))})),self.addEventListener("message",(e=>{if("dexie-cloud-sync"===e.data.type){const{dbName:t}=e.data,n=(s=1)=>Pc(t,e.data.purpose||"pull").catch((e=>r(void 0,void 0,void 0,(function*(){if(3===s)throw e;var t;yield(t=6e4,new Promise((e=>setTimeout(e,t)))),n(s+1)}))));"waitUntil"in e?e.waitUntil(n().catch((e=>{}))):n().catch((e=>{}))}})))}));
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("dexie"),require("rxjs"),require("rxjs/operators")):"function"==typeof define&&define.amd?define(["dexie","rxjs","rxjs/operators"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Dexie,e.rxjs,e.rxjs.operators)}(this,function(e,t,n){"use strict";function r(e,t,n,r){return new(n||(n=Promise))(function(s,i){function o(e){try{c(r.next(e))}catch(e){i(e)}}function l(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,l)}c((r=r.apply(e,t||[])).next())})}function s(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function i(e){return this instanceof i?(this.v=e,this):new i(e)}function o(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,s=n.apply(e,t||[]),o=[];return r=Object.create(("function"==typeof AsyncIterator?AsyncIterator:Object).prototype),l("next"),l("throw"),l("return",function(e){return function(t){return Promise.resolve(t).then(e,u)}}),r[Symbol.asyncIterator]=function(){return this},r;function l(e,t){s[e]&&(r[e]=function(t){return new Promise(function(n,r){o.push([e,t,n,r])>1||c(e,t)})},t&&(r[e]=t(r[e])))}function c(e,t){try{!function(e){e.value instanceof i?Promise.resolve(e.value.v).then(a,u):d(o[0][2],e)}(s[e](t))}catch(e){d(o[0][3],e)}}function a(e){c("next",e)}function u(e){c("throw",e)}function d(e,t){e(t),o.shift(),o.length&&c(o[0][0],o[0][1])}}function l(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=s(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise(function(r,s){(function(e,t,n,r){Promise.resolve(r).then(function(t){e({value:t,done:n})},t)})(r,s,(t=e[n](t)).done,t.value)})}}}"function"==typeof SuppressedError&&SuppressedError;const c={userId:"unauthorized",name:"Unauthorized",claims:{sub:"unauthorized"},lastLogin:new Date(0)};try{Object.freeze(c),Object.freeze(c.claims)}catch(e){}const a={},u="undefined"!=typeof self&&self.document&&"undefined"!=typeof navigator&&navigator.serviceWorker;u&&u.ready.then(e=>a.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 d{constructor(e){this.name=e}subscribe(e){if(!u)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 u.addEventListener("message",t),()=>u.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})):a.registration&&(null===(t=a.registration.active)||void 0===t||t.postMessage({type:`sw-broadcast-${this.name}`,message:e}))}}const h=globalThis["lbc-events"]||(globalThis["lbc-events"]=new Map);class f extends t.Observable{constructor(e){const t="undefined"==typeof BroadcastChannel?new d(e):new BroadcastChannel(e);super(n=>{function r(e){n.next(e.detail)}function s(e){n.next(e.data)}let i;!function(e,t){h.has(e)?h.get(e).push(t):h.set(e,[t])}(`lbc-${e}`,r);try{t instanceof d?i=t.subscribe(e=>n.next(e)):t.addEventListener("message",s)}catch(e){}return()=>{!function(e,t){const n=h.get(e);if(n){const e=n.indexOf(t);-1!==e&&n.splice(e,1)}}(`lbc-${e}`,r),t instanceof d?i():t.removeEventListener("message",s)}}),this.name=e,this.bc=t}next(e){this.bc.postMessage(e);!function(e){const t=h.get(e.type);t&&t.forEach(t=>{try{t(e)}catch(e){}})}(new CustomEvent(`lbc-${this.name}`,{detail:e}))}}let p=!1;function g(e,t){return r(this,void 0,void 0,function*(){try{const n=yield navigator.serviceWorker.ready;if("push"===t&&n.sync&&(yield n.sync.register(`dexie-cloud:${e.name}`)),!n.active)throw new Error("Failed to trigger sync - there's no active service worker");return void n.active.postMessage({type:"dexie-cloud-sync",dbName:e.name,purpose:t})}catch(e){p||(p=!0)}})}function y(e,t){e.cloud.usingServiceWorker?g(e,t):e.localSyncEvent.next({purpose:t})}const m="fromBase64"in Uint8Array,v="toBase64"in Uint8Array.prototype,b="undefined"!=typeof Buffer?e=>Buffer.from(e,"base64"):m?e=>Uint8Array.fromBase64(e):e=>{const t=atob(e),n=t.length,r=new Uint8Array(n);for(var s=0;s<n;s++)r[s]=t.charCodeAt(s);return r},_="undefined"!=typeof Buffer?e=>ArrayBuffer.isView(e)?Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("base64"):Buffer.from(e).toString("base64"):v?e=>(ArrayBuffer.isView(e)?e:new Uint8Array(e)).toBase64():e=>{const t=ArrayBuffer.isView(e)?e:new Uint8Array(e),n=[];for(let e=0,r=t.length;e<r;e+=4096){const r=t.subarray(e,e+4096);n.push(String.fromCharCode.apply(null,r))}return btoa(n.join(""))};function w(e){return r(this,arguments,void 0,function*({realms:e,inviteRealms:t}){const n=JSON.stringify([...e.map(e=>({realmId:e,accepted:!0})),...t.map(e=>({realmId:e,accepted:!1}))].sort((e,t)=>e.realmId<t.realmId?-1:e.realmId>t.realmId?1:0)),r=(new TextEncoder).encode(n),s=yield crypto.subtle.digest("SHA-1",r);return _(s)})}function k(e){return Object.entries(e.cloud.schema||{}).filter(([,{markedForSync:e}])=>e).map(([t])=>e.tables.filter(({name:e})=>e===t)[0]).filter(e=>e)}function S(e){return`$${e}_mutations`}function x(e){var t;const n=null===(t=/^\$(.*)_mutations$/.exec(e))||void 0===t?void 0:t[1];if(!n)throw new Error(`Given mutationTable ${e} is not correct`);return n}const E=[].concat;function C(e){return E.apply([],e)}function I(e,t){return r(this,arguments,void 0,function*(e,t,{since:n={},limit:s=1/0}={}){const i=yield Promise.all(e.map(e=>r(this,void 0,void 0,function*(){const t=x(e.name),r=n[t];let i=r?e.where("rev").above(r):e;s<1/0&&(i=i.limit(s));let o=yield i.toArray();o=function(e){return e=e.map(e=>{if("modify"===e.type&&null===e.criteria.index){const t=Object.assign(Object.assign({},e),{criteria:void 0,changeSpec:void 0,type:"update",keys:e.keys,changeSpecs:[e.changeSpec]});return delete t.criteria,delete t.changeSpec,t}return e}),e}(o),o=function(e){const t=new Map;for(const n of e)if("update"===n.type){if(1!==n.keys.length||1!==n.changeSpecs.length)continue;const e=""+n.keys[0],r=n.changeSpecs[0];if(Object.values(r).some(e=>"object"==typeof e&&e&&"@@propmod"in e))continue;let s=t.get(e);s?s.push({txid:n.txid,updateSpec:r}):t.set(e,[{txid:n.txid,updateSpec:r}])}return e=e.filter(e=>{if("update"!==e.type)return!0;if(1!==e.keys.length||1!==e.changeSpecs.length)return!0;const n=e.changeSpecs[0];if(Object.values(n).some(e=>"object"==typeof e&&e&&"@@propmod"in e))return!0;const r=new Set(Object.keys(e.changeSpecs[0])),s=""+e.keys[0],i=t.get(s);if(!i)return!0;for(let t=i.length-1;t>=0;--t){const{txid:n,updateSpec:s}=i[t];if(n===e.txid)break;for(const e of Object.keys(s))r.delete(e)}return 0!==r.size}),e}(o);return o.map(e=>({table:t,mut:e}))}))),o=C(i).sort((e,t)=>e.mut.txid===t.mut.txid?e.mut.opNo-t.mut.opNo:e.mut.ts-t.mut.ts),l=[];let c=null,a=null;for(const{table:e,mut:t}of o)c&&c.table===e&&a===t.txid?c.muts.push(t):(c={table:e,muts:[t]},a=t.txid,l.push(c));return l})}function D(e){const t=new Uint8Array(e);if("undefined"!=typeof crypto)crypto.getRandomValues(t);else for(let n=0;n<e;n++)t[n]=Math.floor(256*Math.random());if("undefined"!=typeof Buffer&&Buffer.from)return Buffer.from(t).toString("base64");if("undefined"!=typeof btoa)return btoa(String.fromCharCode.apply(null,t));throw new Error("No btoa or Buffer available")}const O={}.hasOwnProperty;function A(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,s=t.length;r<s;++r)A(e,t[r],n[r])}else{var i=t.indexOf(".");if(-1!==i){var o=t.substr(0,i),l=t.substr(i+1);if(""===l)void 0===n?Array.isArray(e)?isNaN(parseInt(o))||e.splice(parseInt(o),1):delete e[o]:e[o]=n;else{var c=e[o];c&&function(e,t){return O.call(e,t)}(e,o)||(c=e[o]={}),A(c,l,n)}}else void 0===n?Array.isArray(e)&&!isNaN(parseInt(t))?e.splice(t,1):delete e[t]:e[t]=n}}const T="undefined"!=typeof self&&"undefined"!=typeof crypto?(e,t=crypto.getRandomValues.bind(crypto))=>{const n=new Uint8Array(e);return t(n),self.btoa(String.fromCharCode.apply(null,n))}:"undefined"!=typeof Buffer?(e,t=U)=>{const n=Buffer.alloc(e);return t(n),n.toString("base64")}:()=>{throw new Error("No implementation of randomString was found")};function U(e){for(let t=0;t<e.length;++t)e[t]=Math.floor(256*Math.random())}function j(e){return"string"==typeof e||!!(Array.isArray(e)&&e.some(e=>j(e))&&e.every(L))}function L(e){return"string"==typeof e||"number"==typeof e||Array.isArray(e)&&e.every(L)}function P(e,t,n){const r=e[t]||(e[t]={}),s=n.keys.map(e=>"string"==typeof e?e:JSON.stringify(e));switch(n.type){case"insert":case"upsert":s.forEach((e,t)=>{r[e]={type:"ups",val:n.values[t]}});break;case"update":case"modify":s.forEach((e,t)=>{const s="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(s))A(i.val,e,t);break;case"del":break;case"upd":Object.assign(i.mod,s)}else r[e]={type:"upd",mod:s}});break;case"delete":s.forEach(e=>{r[e]={type:"del"}})}return e}function R(e,t){for(const{table:n,muts:r}of t)for(const t of r)P(e,n,t)}const M=Math.floor,N=Math.abs,$=(e,t)=>e<t?e:t,B=(e,t)=>e>t?e:t,F=e=>0!==e?e<0:1/e<0,W=64,V=128,K=127,H=Number.MAX_SAFE_INTEGER,z=Number.isInteger||(e=>"number"==typeof e&&isFinite(e)&&M(e)===e),J=()=>new Set,q=e=>e[e.length-1],Y=(e,t)=>{for(let n=0;n<t.length;n++)e.push(t[n])},G=Array.from,Q=Array.isArray,X=/^\s*/g,Z=/([A-Z])/g,ee=(e,t)=>(e=>e.replace(X,""))(e.replace(Z,e=>`${t}${(e=>e.toLowerCase())(e)}`)),te="undefined"!=typeof TextEncoder?new TextEncoder:null,ne=te?e=>te.encode(e):e=>{const t=unescape(encodeURIComponent(e)),n=t.length,r=new Uint8Array(n);for(let e=0;e<n;e++)r[e]=t.codePointAt(e);return r};let re="undefined"==typeof TextDecoder?null:new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});re&&1===re.decode(new Uint8Array).length&&(re=null);class se{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}}const ie=()=>new se,oe=e=>{const t=new Uint8Array((e=>{let t=e.cpos;for(let n=0;n<e.bufs.length;n++)t+=e.bufs[n].length;return t})(e));let n=0;for(let r=0;r<e.bufs.length;r++){const s=e.bufs[r];t.set(s,n),n+=s.length}return t.set(new Uint8Array(e.cbuf.buffer,0,e.cpos),n),t},le=(e,t)=>{const n=e.cbuf.length;e.cpos===n&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(2*n),e.cpos=0),e.cbuf[e.cpos++]=t},ce=le,ae=(e,t)=>{for(;t>K;)le(e,V|K&t),t=M(t/128);le(e,K&t)},ue=(e,t)=>{const n=F(t);for(n&&(t=-t),le(e,(t>63?V:0)|(n?W:0)|63&t),t=M(t/64);t>0;)le(e,(t>K?V:0)|K&t),t=M(t/128)},de=new Uint8Array(3e4),he=de.length/3,fe=te&&te.encodeInto?(e,t)=>{if(t.length<he){const n=te.encodeInto(t,de).written||0;ae(e,n);for(let t=0;t<n;t++)le(e,de[t])}else ge(e,ne(t))}:(e,t)=>{const n=unescape(encodeURIComponent(t)),r=n.length;ae(e,r);for(let t=0;t<r;t++)le(e,n.codePointAt(t))},pe=(e,t)=>{const n=e.cbuf.length,r=e.cpos,s=$(n-r,t.length),i=t.length-s;e.cbuf.set(t.subarray(0,s),r),e.cpos+=s,i>0&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(B(2*n,i)),e.cbuf.set(t.subarray(s)),e.cpos=i)},ge=(e,t)=>{ae(e,t.byteLength),pe(e,t)},ye=(e,t)=>{((e,t)=>{const n=e.cbuf.length;n-e.cpos<t&&(e.bufs.push(new Uint8Array(e.cbuf.buffer,0,e.cpos)),e.cbuf=new Uint8Array(2*B(n,t)),e.cpos=0)})(e,t);const n=new DataView(e.cbuf.buffer,e.cpos,t);return e.cpos+=t,n},me=(e,t)=>ye(e,8).setBigUint64(0,t,!1),ve=new DataView(new ArrayBuffer(4)),be=(e,t)=>{switch(typeof t){case"string":le(e,119),fe(e,t);break;case"number":z(t)&&N(t)<=2147483647?(le(e,125),ue(e,t)):(n=t,ve.setFloat32(0,n),ve.getFloat32(0)===n?(le(e,124),((e,t)=>{ye(e,4).setFloat32(0,t,!1)})(e,t)):(le(e,123),((e,t)=>{ye(e,8).setFloat64(0,t,!1)})(e,t)));break;case"bigint":le(e,122),((e,t)=>{ye(e,8).setBigInt64(0,t,!1)})(e,t);break;case"object":if(null===t)le(e,126);else if(Q(t)){le(e,117),ae(e,t.length);for(let n=0;n<t.length;n++)be(e,t[n])}else if(t instanceof Uint8Array)le(e,116),ge(e,t);else{le(e,118);const n=Object.keys(t);ae(e,n.length);for(let r=0;r<n.length;r++){const s=n[r];fe(e,s),be(e,t[s])}}break;case"boolean":le(e,t?120:121);break;default:le(e,127)}var n};class _e extends se{constructor(e){super(),this.w=e,this.s=null,this.count=0}write(e){this.s===e?this.count++:(this.count>0&&ae(this,this.count-1),this.count=1,this.w(this,e),this.s=e)}}const we=e=>{e.count>0&&(ue(e.encoder,1===e.count?e.s:-e.s),e.count>1&&ae(e.encoder,e.count-2))};class ke{constructor(){this.encoder=new se,this.s=0,this.count=0}write(e){this.s===e?this.count++:(we(this),this.count=1,this.s=e)}toUint8Array(){return we(this),oe(this.encoder)}}const Se=e=>{if(e.count>0){const t=2*e.diff+(1===e.count?0:1);ue(e.encoder,t),e.count>1&&ae(e.encoder,e.count-2)}};class xe{constructor(){this.encoder=new se,this.s=0,this.count=0,this.diff=0}write(e){this.diff===e-this.s?(this.s=e,this.count++):(Se(this),this.count=1,this.diff=e-this.s,this.s=e)}toUint8Array(){return Se(this),oe(this.encoder)}}class Ee{constructor(){this.sarr=[],this.s="",this.lensE=new ke}write(e){this.s+=e,this.s.length>19&&(this.sarr.push(this.s),this.s=""),this.lensE.write(e.length)}toUint8Array(){const e=new se;return this.sarr.push(this.s),this.s="",fe(e,this.sarr.join("")),pe(e,this.lensE.toUint8Array()),oe(e)}}const Ce=e=>new Error(e),Ie=()=>{throw Ce("Method unimplemented")},De=()=>{throw Ce("Unexpected case")},Oe=Ce("Unexpected end of array"),Ae=Ce("Integer out of Range");class Te{constructor(e){this.arr=e,this.pos=0}}const Ue=e=>new Te(e),je=e=>e.pos!==e.arr.length,Le=e=>((e,t)=>{const n=new Uint8Array(e.arr.buffer,e.pos+e.arr.byteOffset,t);return e.pos+=t,n})(e,Re(e)),Pe=e=>e.arr[e.pos++],Re=e=>{let t=0,n=1;const r=e.arr.length;for(;e.pos<r;){const r=e.arr[e.pos++];if(t+=(r&K)*n,n*=128,r<V)return t;if(t>H)throw Ae}throw Oe},Me=e=>{let t=e.arr[e.pos++],n=63&t,r=64;const s=(t&W)>0?-1:1;if(0===(t&V))return s*n;const i=e.arr.length;for(;e.pos<i;){if(t=e.arr[e.pos++],n+=(t&K)*r,r*=128,t<V)return s*n;if(n>H)throw Ae}throw Oe},Ne=re?e=>re.decode(Le(e)):e=>{let t=Re(e);if(0===t)return"";{let n=String.fromCodePoint(Pe(e));if(--t<100)for(;t--;)n+=String.fromCodePoint(Pe(e));else for(;t>0;){const r=t<1e4?t:1e4,s=e.arr.subarray(e.pos,e.pos+r);e.pos+=r,n+=String.fromCodePoint.apply(null,s),t-=r}return decodeURIComponent(escape(n))}},$e=(e,t)=>{const n=new DataView(e.arr.buffer,e.arr.byteOffset+e.pos,t);return e.pos+=t,n},Be=e=>$e(e,8).getBigUint64(0,!1),Fe=[e=>{},e=>null,Me,e=>$e(e,4).getFloat32(0,!1),e=>$e(e,8).getFloat64(0,!1),e=>$e(e,8).getBigInt64(0,!1),e=>!1,e=>!0,Ne,e=>{const t=Re(e),n={};for(let r=0;r<t;r++){n[Ne(e)]=We(e)}return n},e=>{const t=Re(e),n=[];for(let r=0;r<t;r++)n.push(We(e));return n},Le],We=e=>Fe[127-Pe(e)](e);class Ve extends Te{constructor(e,t){super(e),this.reader=t,this.s=null,this.count=0}read(){return 0===this.count&&(this.s=this.reader(this),je(this)?this.count=Re(this)+1:this.count=-1),this.count--,this.s}}class Ke extends Te{constructor(e){super(e),this.s=0,this.count=0}read(){if(0===this.count){this.s=Me(this);const e=F(this.s);this.count=1,e&&(this.s=-this.s,this.count=Re(this)+2)}return this.count--,this.s}}class He extends Te{constructor(e){super(e),this.s=0,this.count=0,this.diff=0}read(){if(0===this.count){const e=Me(this),t=1&e;this.diff=M(e/2),this.count=1,t&&(this.count=Re(this)+2)}return this.s+=this.diff,this.count--,this.s}}class ze{constructor(e){this.decoder=new Ke(e),this.str=Ne(this.decoder),this.spos=0}read(){const e=this.spos+this.decoder.read(),t=this.str.slice(this.spos,e);return this.spos=e,t}}async function*Je(e){let t=0,n=new Uint8Array(4),r=0,s=[],i=0;for await(const o of e){const e=new DataView(o.buffer,o.byteOffset,o.byteLength);let l=0;for(;l<o.byteLength;)switch(t){case 0:if(l+4>o.byteLength){for(const e of o.slice(l)){if(4===r)break;n[r++]=e,++l}if(r<4)break}else if(r>0&&r<4)for(const e of o.slice(l,l+4-r))n[r++]=e,++l;case 1:i=4===r?new DataView(n.buffer,0,4).getUint32(0,!1):e.getUint32(l,!1),r?r=0:l+=4;case 2:if(l>=o.byteLength){t=2;break}if(l+i>o.byteLength)s.push(o.slice(l)),i-=o.byteLength-l,t=2,l=o.byteLength;else{if(s.length>0){const e=new Uint8Array(s.reduce((e,t)=>e+t.byteLength,i));let t=0;for(const n of s)e.set(n,t),t+=n.byteLength;e.set(o.slice(l,l+i),t),s=[],yield e}else yield o.slice(l,l+i);l+=i,t=0}}}}class qe extends Error{constructor({title:e,message:t,messageCode:n,messageParams:r}){super(t),this.name="TokenErrorResponseError",this.title=e,this.messageCode=n,this.messageParams=r}}function Ye(t,n){return new Promise((r,s)=>{const i=Object.assign(Object.assign({submitLabel:"Submit",cancelLabel:"Cancel"},n),{onSubmit:e=>{t.next(void 0),r(e)},onCancel:()=>{t.next(void 0),s(new e.AbortError("User cancelled"))}});t.next(i)})}function Ge(e,t,...n){return Ye(e,{type:"message-alert",title:t,alerts:n,fields:{},submitLabel:"OK",cancelLabel:null})}function Qe(e,t,n){return r(this,void 0,void 0,function*(){let r=n||"";for(;!r||!/^[\w-+.]+@([\w-]+\.)+[\w-]{2,10}(\sas\s[\w-+.]+@([\w-]+\.)+[\w-]{2,10})?$/.test(r);)r=(yield Ye(e,{type:"email",title:t,alerts:r?[{type:"error",messageCode:"INVALID_EMAIL",message:"Please enter a valid email address",messageParams:{}}]:[],fields:{email:{type:"email",placeholder:"you@somedomain.com"}}})).email;return r})}function Xe(e,t,n){return r(this,void 0,void 0,function*(){const r=[{type:"info",messageCode:"OTP_SENT",message:"A One-Time password has been sent to {email}",messageParams:{email:t}}];n&&r.push(n);const{otp:s}=yield Ye(e,{type:"otp",title:"Enter OTP",alerts:r,fields:{otp:{type:"otp",label:"OTP",placeholder:"Paste OTP here"}}});return s})}function Ze(e){return r(this,void 0,void 0,function*(){var t,n,r;const s=yield e.getCurrentUser(),{accessToken:i,accessTokenExpiration:o,refreshToken:l,refreshTokenExpiration:c,claims:a}=s;if(!i)return null;if((null!==(t=null==o?void 0:o.getTime())&&void 0!==t?t:1/0)>Date.now()&&"ok"===((null===(n=s.license)||void 0===n?void 0:n.status)||"ok"))return s;if(!l)throw new Error("Refresh token missing");if((null!==(r=null==c?void 0:c.getTime())&&void 0!==r?r:1/0)<=Date.now())throw new Error("Refresh token has expired");const u=yield tt(e.cloud.options.databaseUrl,s);return yield e.table("$logins").update(a.sub,{accessToken:u.accessToken,accessTokenExpiration:u.accessTokenExpiration,claims:u.claims,license:u.license,data:u.data}),u})}function et(t,n,s,i,o){return r(this,void 0,void 0,function*(){return n.accessToken&&n.accessTokenExpiration.getTime()>Date.now()?n:n.refreshToken&&(!n.refreshTokenExpiration||n.refreshTokenExpiration.getTime()>Date.now())?yield tt(t,n):yield function(t,n,s,i){return r(this,void 0,void 0,function*(){if(!crypto.subtle)throw"undefined"!=typeof location&&"http:"===location.protocol?new Error("Dexie Cloud Addon needs to use WebCrypto, but your browser has disabled it due to being served from an insecure location. Please serve it from https or http://localhost:<port> (See https://stackoverflow.com/questions/46670556/how-to-enable-crypto-subtle-for-unsecure-origins-in-chrome/46671627#46671627)"):new Error("This browser does not support WebCrypto.");const{privateKey:r,publicKey:o}=yield crypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:2048,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!1,["sign","verify"]);if(!r||!o)throw new Error("Could not generate RSA keypair");t.nonExportablePrivateKey=r;const l=function(e){const t=_(e);return function(e){let t="-----BEGIN PUBLIC KEY-----\n";for(;e.length>0;)t+=e.substring(0,64)+"\n",e=e.substring(64);return t+="-----END PUBLIC KEY-----",t}(t)}(yield crypto.subtle.exportKey("spki",o));t.publicKey=o;try{const e=yield n({public_key:l,hints:i});if("error"===e.type)throw new qe(e);if("tokens"!==e.type)throw new Error(`Unexpected response type from token endpoint: ${e.type}`);return t.accessToken=e.accessToken,t.accessTokenExpiration=new Date(e.accessTokenExpiration),t.refreshToken=e.refreshToken,e.refreshTokenExpiration&&(t.refreshTokenExpiration=new Date(e.refreshTokenExpiration)),t.userId=e.claims.sub,t.email=e.claims.email,t.name=e.claims.name,t.claims=e.claims,t.license={type:e.userType,status:e.claims.license||"ok"},t.data=e.data,null!=e.evalDaysLeft&&(t.license.evalDaysLeft=e.evalDaysLeft),null!=e.userValidUntil&&(t.license.validUntil=new Date(e.userValidUntil)),e.alerts&&e.alerts.length>0&&(yield Ye(s,{type:"message-alert",title:"Authentication Alert",fields:{},alerts:e.alerts})),t}catch(t){if(t instanceof qe)throw yield Ge(s,t.title,{type:"error",messageCode:t.messageCode,message:t.message,messageParams:{}}),t;let n="We're having a problem authenticating right now.";if(t instanceof TypeError){n=void 0!==typeof navigator&&!navigator.onLine?"You seem to be offline. Please connect to the internet and try again.":e.debug||"undefined"!=typeof location&&("localhost"===location.hostname||"127.0.0.1"===location.hostname)?`Could not connect to server. Please verify that your origin '${location.origin}' is whitelisted using \`npx dexie-cloud whitelist\``:"Could not connect to server. Please verify the connection.",yield Ge(s,"Authentication Failed",{type:"error",messageCode:"GENERIC_ERROR",message:n,messageParams:{}}).catch(()=>{})}throw t}})}(n,s,i,o)})}function tt(e,t){return r(this,void 0,void 0,function*(){if(!t.refreshToken)throw new Error("Cannot refresh token - refresh token is missing.");if(!t.nonExportablePrivateKey)throw new Error("login.nonExportablePrivateKey is missing - cannot sign refresh token without a private key.");const n=Date.now(),r="RSASSA-PKCS1-v1_5",s=(new TextEncoder).encode(t.refreshToken+n),i=yield crypto.subtle.sign(r,t.nonExportablePrivateKey,s),o=_(i),l={grant_type:"refresh_token",refresh_token:t.refreshToken,scopes:["ACCESS_DB"],signature:o,signing_algorithm:r,time_stamp:n},c=yield fetch(`${e}/token`,{body:JSON.stringify(l),method:"post",headers:{"Content-Type":"application/json"},mode:"cors"});if(200!==c.status)throw new Error(`RefreshToken: Status ${c.status} from ${e}/token`);const a=yield c.json();if("error"===a.type)throw new qe(a);return t.accessToken=a.accessToken,t.accessTokenExpiration=a.accessTokenExpiration?new Date(a.accessTokenExpiration):void 0,t.claims=a.claims,t.license={type:a.userType,status:a.claims.license||"ok"},null!=a.evalDaysLeft&&(t.license.evalDaysLeft=a.evalDaysLeft),null!=a.userValidUntil&&(t.license.validUntil=new Date(a.userValidUntil)),a.data&&(t.data=a.data),t})}const{toString:nt}={};const rt={replace:function(e){const t=Object.keys(e);let n=null;for(let e=0,r=t.length;e<r;++e)"$"===t[e][0]&&(n=n||[],n.push(t[e]));if(!n)return e;const r={...e};for(const e of n)delete r[e];for(const t of n)r["$"+t]=e[t];return r}};function st(...e){const t=e.reduce((e,t)=>({...e,...t}),e.reduce((e,t)=>({...t,...e}),{})),n=new WeakMap;return{stringify(e,r,s){const i=JSON.stringify(e,function(e){const s=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 rt;let i=n.get(r);if(void 0!==i)return i;const o=(s=e,nt.call(s).slice(8,-1)),l=Object.entries(t).find(([t,n])=>{var r,s;return null!==(s=null===(r=null==n?void 0:n.test)||void 0===r?void 0:r.call(n,e,o))&&void 0!==s?s:t===o});return i=null==l?void 0:l[1],i||(i=Array.isArray(e)?null:"function"==typeof e?t.function||null:rt),n.set(r,i),i}default:return t[r]}var s}(s);return i?i.replace(s,r,t):s},s);return i},parse(e,n){const r=[];return JSON.parse(e,function(e,s){const i=null==s?void 0:s.$t;if(i){const e=t[i];s=e?e.revive(s,n,t):s}let o=r[r.length-1];if(o&&o[0]===s){s={...s};for(const e of o[1])delete s[e];for(const[e,t]of Object.entries(o[2]))s[e]=t;r.pop()}if(void 0===s||"$"===e[0]&&"$t"!==e){let t,n;o=r[r.length-1],o&&o[0]===this?(t=o[1],n=o[2]):r.push([this,t=[],n={}]),"$"===e[0]&&"$t"!==e?(t.push(e),n[e.substr(1)]=s):n[e]=void 0}return s})}}}const it={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 ot={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 lt={bigint:{replace:e=>({$t:"bigint",v:""+e}),revive:e=>BigInt(e.v)}};var ct={Date:{replace:e=>({$t:"Date",v:isNaN(e.getTime())?"NaN":e.toISOString()}),revive:({v:e})=>new Date("NaN"===e?NaN:Date.parse(e))}},at={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 dt="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof global?global:void 0;var ht=["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 s=dt[t];return s&&new s(r.ArrayBuffer.revive({v:e},n,r))}}}),{});function ft(e){return function(e){for(var t="",n=0,r=e.length;n<r;n++)t+=yt[e[n]];return t}(_(e))}function pt(e){return b(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+=gt[e[n]];return t}(e))}const gt={"-":"=",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:"+","|":"/"},yt={};for(const e of Object.keys(gt))yt[gt[e]]=e;var mt={ArrayBuffer:{replace:e=>({$t:"ArrayBuffer",v:ft(e)}),revive:({v:e})=>{const t=pt(e);return t.buffer.byteLength===t.byteLength?t.buffer:t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}}};class vt{constructor(e,t){this.buf=e,this.type=t}}function bt(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 _t(e){const t=new Uint8Array(e.length);for(let n=0;n<e.length;++n)t[n]=e.charCodeAt(n);return t.buffer}var wt={Blob:{test:(e,t)=>"Blob"===t||e instanceof vt,replace:e=>({$t:"Blob",v:_(e instanceof vt?e.buf:_t(bt(e))),type:e.type}),revive:({type:e,v:t})=>{const n=b(t);return void 0!==typeof Blob?new Blob([n]):new vt(n.buffer,e)}}};const kt={...ot,...lt,...ct,...at,...ut,...ht,...mt,...wt};function St(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 xt={undefined:{replace:()=>({$t:"undefined"}),revive:()=>{}}},Et={File:{test:(e,t)=>"File"===t,replace:e=>({$t:"File",v:_(_t(bt(e))),type:e.type,name:e.name,lastModified:new Date(e.lastModified).toISOString()}),revive:({type:e,v:t,name:n,lastModified:r})=>{const s=b(t);return new File([s],n,{type:e,lastModified:new Date(r).getTime()})}}};const Ct="function"==typeof BigInt&&"bigint"==typeof BigInt(0);class It{toString(){return this.v}constructor(e){this.v=e}}const Dt=Ct?{}:{bigint:{test:e=>e instanceof It,replace:e=>Object.assign({$t:"bigint"},e),revive:({v:e})=>new It(e)}},Ot=Object.assign(Object.assign(Object.assign(Object.assign({},xt),Dt),Et),{PropModification:{test:t=>t instanceof e.PropModification,replace:e=>Object.assign({$t:"PropModification"},e["@@propmod"]),revive:t=>{var{$t:n}=t,r=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var s=0;for(r=Object.getOwnPropertySymbols(e);s<r.length;s++)t.indexOf(r[s])<0&&Object.prototype.propertyIsEnumerable.call(e,r[s])&&(n[r[s]]=e[r[s]])}return n}(t,["$t"]);return new e.PropModification(r)}}}),At=st(kt,Ot),Tt=function(...e){const t=st(kt,it,...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 s=[],i=await St(n),o=new DataView(i);for(;r<i.byteLength;){const e=o.getUint32(r);r+=4;const t=i.slice(r,r+e);r+=e,s.push(t)}return t.parse(e,s)},async fromBinary(e){const t=new DataView(await St(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)}}}(Ot);class Ut extends Error{constructor(e,t){super(t||`${e.status} ${e.statusText}`),this.httpStatus=e.status}get name(){return"HttpError"}}function jt(t,n,r){const s=[];for(let i of r){const{table:r,muts:o}=i,l=t.tables.find(e=>e.name===r);if(!l)throw new Error(`Internal error: table ${r} not found in DBCore schema`);const{primaryKey:c}=l;let a=i;o.forEach((t,r)=>{const s=!c.outbound&&("upsert"===t.type||"insert"===t.type);t.keys.forEach((t,o)=>{if(Array.isArray(t)){a===i&&(a=Lt(i,s));const e=a.muts[r],n=JSON.stringify(t);e.keys[o]=n}else if("#"===t[0]){a===i&&(a=Lt(i,s));const l=a.muts[r];if(!n.isLoggedIn)throw new Error("Internal error: Cannot sync private IDs before authenticated");const u=`${t}:${n.userId}`;l.keys[o]=u,s&&e.setByKeyPath(l.values[o],c.keyPath,u)}})}),s.push(a)}return s}function Lt(e,t){return Object.assign(Object.assign({},e),{muts:t?e.muts.map(e=>"insert"!==e.type&&"upsert"!==e.type||!e.values?Object.assign(Object.assign({},e),{keys:e.keys.slice()}):Object.assign(Object.assign({},e),{keys:e.keys.slice(),values:e.values.slice()})):e.muts.map(e=>Object.assign(Object.assign({},e),{keys:e.keys.slice()}))})}let Pt=new WeakMap;function Rt(e){return r(this,void 0,void 0,function*(){var t,n;const r=(null!==(n=null===(t=Pt.get(e))||void 0===t?void 0:t.getTime())&&void 0!==n?n:0)-Date.now();r>0&&(yield new Promise(e=>setTimeout(e,r)))})}function Mt(e,t,n,s,i,o,l,c,a){return r(this,void 0,void 0,function*(){const r={Accept:"application/json, application/x-bison, application/x-bison-stream","Content-Type":"application/tson"},u=yield Ze(i),d=null==u?void 0:u.accessToken;d&&(r.Authorization=`Bearer ${d}`);const h={v:2,dbID:null==n?void 0:n.remoteDbId,clientIdentity:c,schema:l||{},lastPull:n?{serverRevision:n.serverRevision,yServerRevision:n.yServerRevision,realms:n.realms,inviteRealms:n.inviteRealms}:void 0,baseRevs:s,changes:jt(i.dx.core.schema,a,e),y:t,dxcv:i.cloud.version};i.syncStateChangedEvent.next({phase:"pushing"});const f=At.stringify(h),p=yield fetch(`${o}/sync`,{method:"post",headers:r,credentials:"include",body:f});if(i.syncStateChangedEvent.next({phase:"pulling"}),function(e,t){const n=t.headers.get("Ratelimit-Limit"),r=t.headers.get("Ratelimit-Remaining"),s=t.headers.get("Ratelimit-Reset");if(n&&r&&s){const t=Number(n),i=Math.max(0,Number(r)),o=Number(s);if(i<t/2){const t=Math.ceil(o/(i+1));Pt.set(e,new Date(Date.now()+1e3*t))}else Pt.delete(e)}}(i,p),!p.ok)throw new Ut(p);if("application/x-bison"===p.headers.get("content-type"))return Tt.fromBinary(yield p.blob());{const e=yield p.text();return At.parse(e)}})}function Nt(t){if(null==t?void 0:t.cancelled)throw new e.AbortError("Operation was cancelled")}let $t=!1;function Bt(e,t,n,s){return r(this,void 0,void 0,function*(){yield e.$baseRevs.bulkPut(Object.keys(t).filter(e=>t[e].markedForSync).map(e=>({tableName:e,clientRev:(n[e]||0)+1,serverRev:s}))),yield e.$baseRevs.where("tableName").noneOf(Object.keys(t).filter(e=>t[e].markedForSync)).delete()})}function Ft(e,t={}){for(const{table:n,muts:r}of e){const e=r.length>0?r[r.length-1].rev:null;t[n]=e||t[n]||0}return t}function Wt(t,n,s){return r(this,void 0,void 0,function*(){const r=yield t.bulkGet(n),i=[],o=[];n.forEach((n,l)=>{const c=r[l];if(c){for(const[r,i]of Object.entries(s[l]))if(r===t.schema.primKey.keyPath){if(0!==e.cmp(i,n))throw new Error("Cannot change primary key")}else e.setByKeyPath(c,r,i);i.push(n),o.push(c)}}),yield null==t.schema.primKey.keyPath?t.bulkPut(o,i):t.bulkPut(o)})}function Vt(t,n){return r(this,void 0,void 0,function*(){for(const{table:r,muts:s}of t){if(!n.dx._allTables[r])continue;const t=n.table(r),{primaryKey:i}=t.core.schema,o=e=>{switch(e[0]){case"[":if(e.endsWith("]"))try{return JSON.parse(e)}catch(e){}return e;case"#":return e.endsWith(":"+n.cloud.currentUserId)?e.substr(0,e.length-n.cloud.currentUserId.length-1):e;default:return e}};for(const n of s){const r=n.keys.map(o);switch(n.type){case"insert":i.outbound?yield t.bulkAdd(n.values,r):(r.forEach((t,r)=>{e.setByKeyPath(n.values[r],i.keyPath,t)}),yield t.bulkAdd(n.values));break;case"upsert":i.outbound?yield t.bulkPut(n.values,r):(r.forEach((t,r)=>{e.setByKeyPath(n.values[r],i.keyPath,t)}),yield t.bulkPut(n.values));break;case"modify":1===r.length?yield t.update(r[0],n.changeSpec):yield t.where(":id").anyOf(r).modify(n.changeSpec);break;case"update":yield Wt(t,r,n.changeSpecs);break;case"delete":yield t.bulkDelete(r)}}}})}"undefined"!=typeof self&&"undefined"!=typeof navigator&&($t=navigator.onLine,self.addEventListener("online",()=>$t=!0),self.addEventListener("offline",()=>$t=!1));const Kt="dexie-cloud-syncer";function Ht(e,t){return e.where("i").between(t,1/0,!0).toArray()}const zt=()=>new Map,Jt=e=>{const t=zt();return e.forEach((e,n)=>{t.set(n,e)}),t},qt=(e,t,n)=>{let r=e.get(t);return void 0===r&&e.set(t,r=n()),r};class Yt{constructor(){this._observers=zt()}on(e,t){return qt(this._observers,e,J).add(t),t}once(e,t){const n=(...r)=>{this.off(e,n),t(...r)};this.on(e,n)}off(e,t){const n=this._observers.get(e);void 0!==n&&(n.delete(t),0===n.size&&this._observers.delete(e))}emit(e,t){return G((this._observers.get(e)||zt()).values()).forEach(e=>e(...t))}destroy(){this._observers=zt()}}class Gt{constructor(){this._observers=zt()}on(e,t){qt(this._observers,e,J).add(t)}once(e,t){const n=(...r)=>{this.off(e,n),t(...r)};this.on(e,n)}off(e,t){const n=this._observers.get(e);void 0!==n&&(n.delete(t),0===n.size&&this._observers.delete(e))}emit(e,t){return G((this._observers.get(e)||zt()).values()).forEach(e=>e(...t))}destroy(){this._observers=zt()}}const Qt=crypto.getRandomValues.bind(crypto),Xt=()=>Qt(new Uint32Array(1))[0],Zt=[1e7]+-1e3+-4e3+-8e3+-1e11,en=()=>Zt.replace(/[018]/g,e=>(e^Xt()&15>>e/4).toString(16)),tn=Date.now,nn=e=>new Promise(e);Promise.all.bind(Promise);const rn=e=>void 0===e?null:e;let sn=new class{constructor(){this.map=new Map}setItem(e,t){this.map.set(e,t)}getItem(e){return this.map.get(e)}},on=!0;try{"undefined"!=typeof localStorage&&localStorage&&(sn=localStorage,on=!1)}catch(Al){}const ln=sn,cn=Object.assign,an=Object.keys,un=e=>an(e).length,dn=e=>an(e).length,hn=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),fn=Object.freeze,pn=e=>{for(const t in e){const n=e[t];"object"!=typeof n&&"function"!=typeof n||pn(e[t])}return fn(e)},gn=Symbol("Equality"),yn=(e,t,n=0)=>{try{for(;n<e.length;n++)e[n](...t)}finally{n<e.length&&yn(e,t,n+1)}},mn=(e,t)=>{if(e===t)return!0;if(null==e||null==t||e.constructor!==t.constructor)return!1;if(null!=e[gn])return e[gn](t);switch(e.constructor){case ArrayBuffer:e=new Uint8Array(e),t=new Uint8Array(t);case Uint8Array:if(e.byteLength!==t.byteLength)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;break;case Set:if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;break;case Map:if(e.size!==t.size)return!1;for(const n of e.keys())if(!t.has(n)||!mn(e.get(n),t.get(n)))return!1;break;case Object:if(un(e)!==un(t))return!1;for(const n in e)if(!hn(e,n)||!mn(e[n],t[n]))return!1;break;case Array:if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(!mn(e[n],t[n]))return!1;break;default:return!1}return!0},vn="undefined"!=typeof process&&process.release&&/node|io\.js/.test(process.release.name)&&"[object process]"===Object.prototype.toString.call("undefined"!=typeof process?process:0);let bn;const _n=e=>(()=>{if(void 0===bn)if(vn){bn=zt();const e=process.argv;let t=null;for(let n=0;n<e.length;n++){const r=e[n];"-"===r[0]?(null!==t&&bn.set(t,""),t=r):null!==t&&(bn.set(t,r),t=null)}null!==t&&bn.set(t,"")}else"object"==typeof location?(bn=zt(),(location.search||"?").slice(1).split("&").forEach(e=>{if(0!==e.length){const[t,n]=e.split("=");bn.set(`--${ee(t,"-")}`,n),bn.set(`-${ee(t,"-")}`,n)}})):bn=zt();return bn})().has(e),wn=e=>rn(vn?process.env[e.toUpperCase().replaceAll("-","_")]:ln.getItem(e)),kn=e=>_n("--"+e)||null!==wn(e);kn("production");var Sn;vn&&(Sn=process.env.FORCE_COLOR,["true","1","2"].includes(Sn))||!_n("--no-colors")&&!kn("no-color")&&(!vn||process.stdout.isTTY)&&(!vn||_n("--color")||null!==wn("COLORTERM")||(wn("TERM")||"").includes("color"));class xn{constructor(e,t){this.left=e,this.right=t}}const En=(e,t)=>new xn(e,t);"undefined"!=typeof DOMParser&&new DOMParser;const Cn=Symbol,In=Cn(),Dn=Cn(),On=Cn(),An=Cn(),Tn=Cn(),Un=Cn(),jn=Cn(),Ln=Cn(),Pn=Cn(),Rn=(En("font-weight","bold"),En("font-weight","normal"),En("color","blue"),En("color","green"),En("color","grey"),En("color","red"),En("color","purple"),En("color","orange"),En("color","black"),J()),Mn=e=>({[Symbol.iterator](){return this},next:e}),Nn=(e,t)=>Mn(()=>{const{done:n,value:r}=e.next();return{done:n,value:n?void 0:t(r)}});class $n{constructor(e,t){this.clock=e,this.len=t}}class Bn{constructor(){this.clients=new Map}}const Fn=(e,t,n)=>t.clients.forEach((t,r)=>{const s=e.doc.store.clients.get(r);if(null!=s){const r=s[s.length-1],i=r.id.clock+r.length;for(let r=0,o=t[r];r<t.length&&o.clock<i;o=t[++r])Sr(e,s,o.clock,o.len,n)}}),Wn=(e,t)=>{const n=e.clients.get(t.client);return void 0!==n&&null!==((e,t)=>{let n=0,r=e.length-1;for(;n<=r;){const s=M((n+r)/2),i=e[s],o=i.clock;if(o<=t){if(t<o+i.len)return s;n=s+1}else r=s-1}return null})(n,t.clock)},Vn=e=>{e.clients.forEach(e=>{let t,n;for(e.sort((e,t)=>e.clock-t.clock),t=1,n=1;t<e.length;t++){const r=e[n-1],s=e[t];r.clock+r.len>=s.clock?r.len=B(r.len,s.clock+s.len-r.clock):(n<t&&(e[n]=s),n++)}e.length=n})},Kn=(e,t,n,r)=>{qt(e.clients,t,()=>[]).push(new $n(n,r))},Hn=(e,t)=>{ae(e.restEncoder,t.clients.size),G(t.clients.entries()).sort((e,t)=>t[0]-e[0]).forEach(([t,n])=>{e.resetDsCurVal(),ae(e.restEncoder,t);const r=n.length;ae(e.restEncoder,r);for(let t=0;t<r;t++){const r=n[t];e.writeDsClock(r.clock),e.writeDsLen(r.len)}})},zn=(e,t,n)=>{const r=new Bn,s=Re(e.restDecoder);for(let i=0;i<s;i++){e.resetDsCurVal();const s=Re(e.restDecoder),i=Re(e.restDecoder),o=n.clients.get(s)||[],l=yr(n,s);for(let n=0;n<i;n++){const n=e.readDsClock(),i=n+e.readDsLen();if(n<l){l<i&&Kn(r,s,l,i-l);let e=vr(o,n),c=o[e];for(!c.deleted&&c.id.clock<n&&(o.splice(e+1,0,si(t,c,n-c.id.clock)),e++);e<o.length&&(c=o[e++],c.id.clock<i);)c.deleted||(i<c.id.clock+c.length&&o.splice(e,0,si(t,c,i-c.id.clock)),c.delete(t))}else Kn(r,s,n,i-n)}}if(r.clients.size>0){const e=new er;return ae(e.restEncoder,0),Hn(e,r),e.toUint8Array()}return null},Jn=Xt;class qn extends Yt{constructor({guid:e=en(),collectionid:t=null,gc:n=!0,gcFilter:r=()=>!0,meta:s=null,autoLoad:i=!1,shouldLoad:o=!0}={}){super(),this.gc=n,this.gcFilter=r,this.clientID=Jn(),this.guid=e,this.collectionid=t,this.share=new Map,this.store=new pr,this._transaction=null,this._transactionCleanups=[],this.subdocs=new Set,this._item=null,this.shouldLoad=o,this.autoLoad=i,this.meta=s,this.isLoaded=!1,this.isSynced=!1,this.isDestroyed=!1,this.whenLoaded=nn(e=>{this.on("load",()=>{this.isLoaded=!0,e(this)})});const l=()=>nn(e=>{const t=n=>{void 0!==n&&!0!==n||(this.off("sync",t),e())};this.on("sync",t)});this.on("sync",e=>{!1===e&&this.isSynced&&(this.whenSynced=l()),this.isSynced=void 0===e||!0===e,this.isSynced&&!this.isLoaded&&this.emit("load",[this])}),this.whenSynced=l()}load(){const e=this._item;null===e||this.shouldLoad||Or(e.parent.doc,e=>{e.subdocsLoaded.add(this)},null,!0),this.shouldLoad=!0}getSubdocs(){return this.subdocs}getSubdocGuids(){return new Set(G(this.subdocs).map(e=>e.guid))}transact(e,t=null){return Or(this,e,t)}get(e,t=qr){const n=qt(this.share,e,()=>{const e=new t;return e._integrate(this,null),e}),r=n.constructor;if(t!==qr&&r!==t){if(r===qr){const r=new t;r._map=n._map,n._map.forEach(e=>{for(;null!==e;e=e.left)e.parent=r}),r._start=n._start;for(let e=r._start;null!==e;e=e.right)e.parent=r;return r._length=n._length,this.share.set(e,r),r._integrate(this,null),r}throw new Error(`Type with the name ${e} has already been defined with a different constructor`)}return n}getArray(e=""){return this.get(e,hs)}getText(e=""){return this.get(e,As)}getMap(e=""){return this.get(e,ps)}getXmlElement(e=""){return this.get(e,js)}getXmlFragment(e=""){return this.get(e,Us)}toJSON(){const e={};return this.share.forEach((t,n)=>{e[n]=t.toJSON()}),e}destroy(){this.isDestroyed=!0,G(this.subdocs).forEach(e=>e.destroy());const e=this._item;if(null!==e){this._item=null;const t=e.content;t.doc=new qn({guid:this.guid,...t.opts,shouldLoad:!1}),t.doc._item=e,Or(e.parent.doc,n=>{const r=t.doc;e.deleted||n.subdocsAdded.add(r),n.subdocsRemoved.add(this)},null,!0)}this.emit("destroyed",[!0]),this.emit("destroy",[this]),super.destroy()}}class Yn{constructor(e){this.dsCurrVal=0,this.restDecoder=e}resetDsCurVal(){this.dsCurrVal=0}readDsClock(){return this.dsCurrVal+=Re(this.restDecoder),this.dsCurrVal}readDsLen(){const e=Re(this.restDecoder)+1;return this.dsCurrVal+=e,e}}class Gn extends Yn{constructor(e){super(e),this.keys=[],Re(e),this.keyClockDecoder=new He(Le(e)),this.clientDecoder=new Ke(Le(e)),this.leftClockDecoder=new He(Le(e)),this.rightClockDecoder=new He(Le(e)),this.infoDecoder=new Ve(Le(e),Pe),this.stringDecoder=new ze(Le(e)),this.parentInfoDecoder=new Ve(Le(e),Pe),this.typeRefDecoder=new Ke(Le(e)),this.lenDecoder=new Ke(Le(e))}readLeftID(){return new ar(this.clientDecoder.read(),this.leftClockDecoder.read())}readRightID(){return new ar(this.clientDecoder.read(),this.rightClockDecoder.read())}readClient(){return this.clientDecoder.read()}readInfo(){return this.infoDecoder.read()}readString(){return this.stringDecoder.read()}readParentInfo(){return 1===this.parentInfoDecoder.read()}readTypeRef(){return this.typeRefDecoder.read()}readLen(){return this.lenDecoder.read()}readAny(){return We(this.restDecoder)}readBuf(){return Le(this.restDecoder)}readJSON(){return We(this.restDecoder)}readKey(){const e=this.keyClockDecoder.read();if(e<this.keys.length)return this.keys[e];{const e=this.stringDecoder.read();return this.keys.push(e),e}}}class Qn{constructor(){this.restEncoder=ie()}toUint8Array(){return oe(this.restEncoder)}resetDsCurVal(){}writeDsClock(e){ae(this.restEncoder,e)}writeDsLen(e){ae(this.restEncoder,e)}}class Xn extends Qn{writeLeftID(e){ae(this.restEncoder,e.client),ae(this.restEncoder,e.clock)}writeRightID(e){ae(this.restEncoder,e.client),ae(this.restEncoder,e.clock)}writeClient(e){ae(this.restEncoder,e)}writeInfo(e){ce(this.restEncoder,e)}writeString(e){fe(this.restEncoder,e)}writeParentInfo(e){ae(this.restEncoder,e?1:0)}writeTypeRef(e){ae(this.restEncoder,e)}writeLen(e){ae(this.restEncoder,e)}writeAny(e){be(this.restEncoder,e)}writeBuf(e){ge(this.restEncoder,e)}writeJSON(e){fe(this.restEncoder,JSON.stringify(e))}writeKey(e){fe(this.restEncoder,e)}}class Zn{constructor(){this.restEncoder=ie(),this.dsCurrVal=0}toUint8Array(){return oe(this.restEncoder)}resetDsCurVal(){this.dsCurrVal=0}writeDsClock(e){const t=e-this.dsCurrVal;this.dsCurrVal=e,ae(this.restEncoder,t)}writeDsLen(e){0===e&&De(),ae(this.restEncoder,e-1),this.dsCurrVal+=e}}class er extends Zn{constructor(){super(),this.keyMap=new Map,this.keyClock=0,this.keyClockEncoder=new xe,this.clientEncoder=new ke,this.leftClockEncoder=new xe,this.rightClockEncoder=new xe,this.infoEncoder=new _e(ce),this.stringEncoder=new Ee,this.parentInfoEncoder=new _e(ce),this.typeRefEncoder=new ke,this.lenEncoder=new ke}toUint8Array(){const e=ie();return ae(e,0),ge(e,this.keyClockEncoder.toUint8Array()),ge(e,this.clientEncoder.toUint8Array()),ge(e,this.leftClockEncoder.toUint8Array()),ge(e,this.rightClockEncoder.toUint8Array()),ge(e,oe(this.infoEncoder)),ge(e,this.stringEncoder.toUint8Array()),ge(e,oe(this.parentInfoEncoder)),ge(e,this.typeRefEncoder.toUint8Array()),ge(e,this.lenEncoder.toUint8Array()),pe(e,oe(this.restEncoder)),oe(e)}writeLeftID(e){this.clientEncoder.write(e.client),this.leftClockEncoder.write(e.clock)}writeRightID(e){this.clientEncoder.write(e.client),this.rightClockEncoder.write(e.clock)}writeClient(e){this.clientEncoder.write(e)}writeInfo(e){this.infoEncoder.write(e)}writeString(e){this.stringEncoder.write(e)}writeParentInfo(e){this.parentInfoEncoder.write(e?1:0)}writeTypeRef(e){this.typeRefEncoder.write(e)}writeLen(e){this.lenEncoder.write(e)}writeAny(e){be(this.restEncoder,e)}writeBuf(e){ge(this.restEncoder,e)}writeJSON(e){be(this.restEncoder,e)}writeKey(e){const t=this.keyMap.get(e);void 0===t?(this.keyClockEncoder.write(this.keyClock++),this.stringEncoder.write(e)):this.keyClockEncoder.write(t)}}const tr=(e,t,n)=>{const r=new Map;n.forEach((e,n)=>{yr(t,n)>e&&r.set(n,e)}),gr(t).forEach((e,t)=>{n.has(t)||r.set(t,0)}),ae(e.restEncoder,r.size),G(r.entries()).sort((e,t)=>t[0]-e[0]).forEach(([n,r])=>{((e,t,n,r)=>{r=B(r,t[0].id.clock);const s=vr(t,r);ae(e.restEncoder,t.length-s),e.writeClient(n),ae(e.restEncoder,r);const i=t[s];i.write(e,r-i.id.clock);for(let n=s+1;n<t.length;n++)t[n].write(e,0)})(e,t.clients.get(n),n,r)})},nr=(e,t,n,r=new Gn(e))=>Or(t,e=>{e.local=!1;let t=!1;const n=e.doc,s=n.store,i=((e,t)=>{const n=zt(),r=Re(e.restDecoder);for(let s=0;s<r;s++){const r=Re(e.restDecoder),s=new Array(r),i=e.readClient();let o=Re(e.restDecoder);n.set(i,{i:0,refs:s});for(let n=0;n<r;n++){const r=e.readInfo();switch(31&r){case 0:{const t=e.readLen();s[n]=new Ns(dr(i,o),t),o+=t;break}case 10:{const t=Re(e.restDecoder);s[n]=new ci(dr(i,o),t),o+=t;break}default:{const l=!(192&r),c=new ii(dr(i,o),null,(r&V)===V?e.readLeftID():null,null,(r&W)===W?e.readRightID():null,l?e.readParentInfo()?t.get(e.readString()):e.readLeftID():null,!l||32&~r?null:e.readString(),oi(e,r));s[n]=c,o+=c.length}}}}return n})(r,n),o=((e,t,n)=>{const r=[];let s=G(n.keys()).sort((e,t)=>e-t);if(0===s.length)return null;const i=()=>{if(0===s.length)return null;let e=n.get(s[s.length-1]);for(;e.refs.length===e.i;){if(s.pop(),!(s.length>0))return null;e=n.get(s[s.length-1])}return e};let o=i();if(null===o)return null;const l=new pr,c=new Map,a=(e,t)=>{const n=c.get(e);(null==n||n>t)&&c.set(e,t)};let u=o.refs[o.i++];const d=new Map,h=()=>{for(const e of r){const t=e.id.client,r=n.get(t);r?(r.i--,l.clients.set(t,r.refs.slice(r.i)),n.delete(t),r.i=0,r.refs=[]):l.clients.set(t,[e]),s=s.filter(e=>e!==t)}r.length=0};for(;;){if(u.constructor!==ci){const s=qt(d,u.id.client,()=>yr(t,u.id.client))-u.id.clock;if(s<0)r.push(u),a(u.id.client,u.id.clock-1),h();else{const i=u.getMissing(e,t);if(null!==i){r.push(u);const e=n.get(i)||{refs:[],i:0};if(e.refs.length!==e.i){u=e.refs[e.i++];continue}a(i,yr(t,i)),h()}else(0===s||s<u.length)&&(u.integrate(e,s),d.set(u.id.client,u.id.clock+u.length))}}if(r.length>0)u=r.pop();else if(null!==o&&o.i<o.refs.length)u=o.refs[o.i++];else{if(o=i(),null===o)break;u=o.refs[o.i++]}}if(l.clients.size>0){const e=new er;return tr(e,l,new Map),ae(e.restEncoder,0),{missing:c,update:e.toUint8Array()}}return null})(e,s,i),l=s.pendingStructs;if(l){for(const[e,n]of l.missing)if(n<yr(s,e)){t=!0;break}if(o){for(const[e,t]of o.missing){const n=l.missing.get(e);(null==n||n>t)&&l.missing.set(e,t)}l.update=Lr([l.update,o.update])}}else s.pendingStructs=o;const c=zn(r,e,s);if(s.pendingDs){const t=new Gn(Ue(s.pendingDs));Re(t.restDecoder);const n=zn(t,e,s);s.pendingDs=c&&n?Lr([c,n]):c||n}else s.pendingDs=c;if(t){const t=s.pendingStructs.update;s.pendingStructs=null,rr(e.doc,t)}},n,!1),rr=(e,t,n,r=Gn)=>{const s=Ue(t);nr(s,e,n,new r(s))};class sr{constructor(){this.l=[]}}const ir=()=>new sr,or=(e,t)=>e.l.push(t),lr=(e,t)=>{const n=e.l;n.length;e.l=n.filter(e=>t!==e),e.l.length},cr=(e,t,n)=>yn(e.l,[t,n]);class ar{constructor(e,t){this.client=e,this.clock=t}}const ur=(e,t)=>e===t||null!==e&&null!==t&&e.client===t.client&&e.clock===t.clock,dr=(e,t)=>new ar(e,t),hr=(e,t)=>void 0===t?!e.deleted:t.sv.has(e.id.client)&&(t.sv.get(e.id.client)||0)>e.id.clock&&!Wn(t.ds,e.id),fr=(e,t)=>{const n=qt(e.meta,fr,J),r=e.doc.store;n.has(t)||(t.sv.forEach((t,n)=>{t<yr(r,n)&&wr(e,dr(n,t))}),Fn(e,t.ds,e=>{}),n.add(t))};class pr{constructor(){this.clients=new Map,this.pendingStructs=null,this.pendingDs=null}}const gr=e=>{const t=new Map;return e.clients.forEach((e,n)=>{const r=e[e.length-1];t.set(n,r.id.clock+r.length)}),t},yr=(e,t)=>{const n=e.clients.get(t);if(void 0===n)return 0;const r=n[n.length-1];return r.id.clock+r.length},mr=(e,t)=>{let n=e.clients.get(t.id.client);if(void 0===n)n=[],e.clients.set(t.id.client,n);else{const e=n[n.length-1];if(e.id.clock+e.length!==t.id.clock)throw De()}n.push(t)},vr=(e,t)=>{let n=0,r=e.length-1,s=e[r],i=s.id.clock;if(i===t)return r;let o=M(t/(i+s.length-1)*r);for(;n<=r;){if(s=e[o],i=s.id.clock,i<=t){if(t<i+s.length)return o;n=o+1}else r=o-1;o=M((n+r)/2)}throw De()},br=(e,t)=>{const n=e.clients.get(t.client);return n[vr(n,t.clock)]},_r=(e,t,n)=>{const r=vr(t,n),s=t[r];return s.id.clock<n&&s instanceof ii?(t.splice(r+1,0,si(e,s,n-s.id.clock)),r+1):r},wr=(e,t)=>{const n=e.doc.store.clients.get(t.client);return n[_r(e,n,t.clock)]},kr=(e,t,n)=>{const r=t.clients.get(n.client),s=vr(r,n.clock),i=r[s];return n.clock!==i.id.clock+i.length-1&&i.constructor!==Ns&&r.splice(s+1,0,si(e,i,n.clock-i.id.clock+1)),i},Sr=(e,t,n,r,s)=>{if(0===r)return;const i=n+r;let o,l=_r(e,t,n);do{o=t[l++],i<o.id.clock+o.length&&_r(e,t,i),s(o)}while(l<t.length&&t[l].id.clock<i)};class xr{constructor(e,t,n){this.doc=e,this.deleteSet=new Bn,this.beforeState=gr(e.store),this.afterState=new Map,this.changed=new Map,this.changedParentTypes=new Map,this._mergeStructs=[],this.origin=t,this.meta=new Map,this.local=n,this.subdocsAdded=new Set,this.subdocsRemoved=new Set,this.subdocsLoaded=new Set,this._needFormattingCleanup=!1}}const Er=(e,t)=>!(0===t.deleteSet.clients.size&&!((e,t)=>{for(const[n,r]of e)if(t(r,n))return!0;return!1})(t.afterState,(e,n)=>t.beforeState.get(n)!==e))&&(Vn(t.deleteSet),((e,t)=>{tr(e,t.doc.store,t.beforeState)})(e,t),Hn(e,t.deleteSet),!0),Cr=(e,t,n)=>{const r=t._item;(null===r||r.id.clock<(e.beforeState.get(r.id.client)||0)&&!r.deleted)&&qt(e.changed,t,J).add(n)},Ir=(e,t)=>{let n=e[t],r=e[t-1],s=t;for(;s>0&&(r.deleted===n.deleted&&r.constructor===n.constructor&&r.mergeWith(n));n=r,r=e[--s-1])n instanceof ii&&null!==n.parentSub&&n.parent._map.get(n.parentSub)===n&&n.parent._map.set(n.parentSub,r);const i=t-s;return i&&e.splice(t+1-i,i),i},Dr=(e,t)=>{if(t<e.length){const n=e[t],r=n.doc,s=r.store,i=n.deleteSet,o=n._mergeStructs;try{Vn(i),n.afterState=gr(n.doc.store),r.emit("beforeObserverCalls",[n,r]);const e=[];n.changed.forEach((t,r)=>e.push(()=>{null!==r._item&&r._item.deleted||r._callObserver(n,t)})),e.push(()=>{n.changedParentTypes.forEach((e,t)=>{t._dEH.l.length>0&&(null===t._item||!t._item.deleted)&&((e=e.filter(e=>null===e.target._item||!e.target._item.deleted)).forEach(e=>{e.currentTarget=t,e._path=null}),e.sort((e,t)=>e.path.length-t.path.length),cr(t._dEH,e,n))})}),e.push(()=>r.emit("afterTransaction",[n,r])),yn(e,[]),n._needFormattingCleanup&&Is(n)}finally{r.gc&&((e,t,n)=>{for(const[r,s]of e.clients.entries()){const e=t.clients.get(r);for(let r=s.length-1;r>=0;r--){const i=s[r],o=i.clock+i.len;for(let r=vr(e,i.clock),s=e[r];r<e.length&&s.id.clock<o;s=e[++r]){const s=e[r];if(i.clock+i.len<=s.id.clock)break;s instanceof ii&&s.deleted&&!s.keep&&n(s)&&s.gc(t,!1)}}}})(i,s,r.gcFilter),((e,t)=>{e.clients.forEach((e,n)=>{const r=t.clients.get(n);for(let t=e.length-1;t>=0;t--){const n=e[t];for(let e=$(r.length-1,1+vr(r,n.clock+n.len-1)),t=r[e];e>0&&t.id.clock>=n.clock;t=r[e])e-=1+Ir(r,e)}})})(i,s),n.afterState.forEach((e,t)=>{const r=n.beforeState.get(t)||0;if(r!==e){const e=s.clients.get(t),n=B(vr(e,r),1);for(let t=e.length-1;t>=n;)t-=1+Ir(e,t)}});for(let e=o.length-1;e>=0;e--){const{client:t,clock:n}=o[e].id,r=s.clients.get(t),i=vr(r,n);i+1<r.length&&Ir(r,i+1)>1||i>0&&Ir(r,i)}if(n.local||n.afterState.get(r.clientID)===n.beforeState.get(r.clientID)||(((...e)=>{Rn.forEach(t=>t.print(e))})(Ln,In,"[yjs] ",Dn,Un,"Changed the client-id because another client seems to be using it."),r.clientID=Jn()),r.emit("afterTransactionCleanup",[n,r]),r._observers.has("update")){const e=new Xn;Er(e,n)&&r.emit("update",[e.toUint8Array(),n.origin,r,n])}if(r._observers.has("updateV2")){const e=new er;Er(e,n)&&r.emit("updateV2",[e.toUint8Array(),n.origin,r,n])}const{subdocsAdded:l,subdocsLoaded:c,subdocsRemoved:a}=n;(l.size>0||a.size>0||c.size>0)&&(l.forEach(e=>{e.clientID=r.clientID,null==e.collectionid&&(e.collectionid=r.collectionid),r.subdocs.add(e)}),a.forEach(e=>r.subdocs.delete(e)),r.emit("subdocs",[{loaded:c,added:l,removed:a},r,n]),a.forEach(e=>e.destroy())),e.length<=t+1?(r._transactionCleanups=[],r.emit("afterAllTransactions",[r,e])):Dr(e,t+1)}}},Or=(e,t,n=null,r=!0)=>{const s=e._transactionCleanups;let i=!1,o=null;null===e._transaction&&(i=!0,e._transaction=new xr(e,n,r),s.push(e._transaction),1===s.length&&e.emit("beforeAllTransactions",[e]),e.emit("beforeTransaction",[e._transaction,e]));try{o=t(e._transaction)}finally{if(i){const t=e._transaction===s[0];e._transaction=null,t&&Dr(s,0)}}return o};class Ar{constructor(e,t){this.gen=function*(e){const t=Re(e.restDecoder);for(let n=0;n<t;n++){const t=Re(e.restDecoder),n=e.readClient();let r=Re(e.restDecoder);for(let s=0;s<t;s++){const t=e.readInfo();if(10===t){const t=Re(e.restDecoder);yield new ci(dr(n,r),t),r+=t}else if(31&t){const s=!(192&t),i=new ii(dr(n,r),null,(t&V)===V?e.readLeftID():null,null,(t&W)===W?e.readRightID():null,s?e.readParentInfo()?e.readString():e.readLeftID():null,!s||32&~t?null:e.readString(),oi(e,t));yield i,r+=i.length}else{const t=e.readLen();yield new Ns(dr(n,r),t),r+=t}}}}(e),this.curr=null,this.done=!1,this.filterSkips=t,this.next()}next(){do{this.curr=this.gen.next().value||null}while(this.filterSkips&&null!==this.curr&&this.curr.constructor===ci);return this.curr}}class Tr{constructor(e){this.currClient=0,this.startClock=0,this.written=0,this.encoder=e,this.clientStructs=[]}}const Ur=(e,t=Zn,n=Gn)=>{const r=new t,s=new Ar(new n(Ue(e)),!1);let i=s.curr;if(null!==i){let e=0,t=i.id.client,n=0!==i.id.clock,o=n?0:i.id.clock+i.length;for(;null!==i;i=s.next())t!==i.id.client&&(0!==o&&(e++,ae(r.restEncoder,t),ae(r.restEncoder,o)),t=i.id.client,o=0,n=0!==i.id.clock),i.constructor===ci&&(n=!0),n||(o=i.id.clock+i.length);0!==o&&(e++,ae(r.restEncoder,t),ae(r.restEncoder,o));const l=ie();return ae(l,e),((e,t)=>{pe(e,oe(t))})(l,r.restEncoder),r.restEncoder=l,r.toUint8Array()}return ae(r.restEncoder,0),r.toUint8Array()},jr=(e,t)=>{if(e.constructor===Ns){const{client:n,clock:r}=e.id;return new Ns(dr(n,r+t),e.length-t)}if(e.constructor===ci){const{client:n,clock:r}=e.id;return new ci(dr(n,r+t),e.length-t)}{const n=e,{client:r,clock:s}=n.id;return new ii(dr(r,s+t),null,dr(r,s+t-1),null,n.rightOrigin,n.parent,n.parentSub,n.content.splice(t))}},Lr=(e,t=Gn,n=er)=>{if(1===e.length)return e[0];const r=e.map(e=>new t(Ue(e)));let s=r.map(e=>new Ar(e,!0)),i=null;const o=new n,l=new Tr(o);for(;s=s.filter(e=>null!==e.curr),s.sort((e,t)=>{if(e.curr.id.client===t.curr.id.client){const n=e.curr.id.clock-t.curr.id.clock;return 0===n?e.curr.constructor===t.curr.constructor?0:e.curr.constructor===ci?1:-1:n}return t.curr.id.client-e.curr.id.client}),0!==s.length;){const e=s[0],t=e.curr.id.client;if(null!==i){let n=e.curr,r=!1;for(;null!==n&&n.id.clock+n.length<=i.struct.id.clock+i.struct.length&&n.id.client>=i.struct.id.client;)n=e.next(),r=!0;if(null===n||n.id.client!==t||r&&n.id.clock>i.struct.id.clock+i.struct.length)continue;if(t!==i.struct.id.client)Rr(l,i.struct,i.offset),i={struct:n,offset:0},e.next();else if(i.struct.id.clock+i.struct.length<n.id.clock)if(i.struct.constructor===ci)i.struct.length=n.id.clock+n.length-i.struct.id.clock;else{Rr(l,i.struct,i.offset);const e=n.id.clock-i.struct.id.clock-i.struct.length;i={struct:new ci(dr(t,i.struct.id.clock+i.struct.length),e),offset:0}}else{const t=i.struct.id.clock+i.struct.length-n.id.clock;t>0&&(i.struct.constructor===ci?i.struct.length-=t:n=jr(n,t)),i.struct.mergeWith(n)||(Rr(l,i.struct,i.offset),i={struct:n,offset:0},e.next())}}else i={struct:e.curr,offset:0},e.next();for(let n=e.curr;null!==n&&n.id.client===t&&n.id.clock===i.struct.id.clock+i.struct.length&&n.constructor!==ci;n=e.next())Rr(l,i.struct,i.offset),i={struct:n,offset:0}}null!==i&&(Rr(l,i.struct,i.offset),i=null),Mr(l);const c=r.map(e=>(e=>{const t=new Bn,n=Re(e.restDecoder);for(let r=0;r<n;r++){e.resetDsCurVal();const n=Re(e.restDecoder),r=Re(e.restDecoder);if(r>0){const s=qt(t.clients,n,()=>[]);for(let t=0;t<r;t++)s.push(new $n(e.readDsClock(),e.readDsLen()))}}return t})(e)),a=(e=>{const t=new Bn;for(let n=0;n<e.length;n++)e[n].clients.forEach((r,s)=>{if(!t.clients.has(s)){const i=r.slice();for(let t=n+1;t<e.length;t++)Y(i,e[t].clients.get(s)||[]);t.clients.set(s,i)}});return Vn(t),t})(c);return Hn(o,a),o.toUint8Array()},Pr=e=>{e.written>0&&(e.clientStructs.push({written:e.written,restEncoder:oe(e.encoder.restEncoder)}),e.encoder.restEncoder=ie(),e.written=0)},Rr=(e,t,n)=>{e.written>0&&e.currClient!==t.id.client&&Pr(e),0===e.written&&(e.currClient=t.id.client,e.encoder.writeClient(t.id.client),ae(e.encoder.restEncoder,t.id.clock+n)),t.write(e.encoder,n),e.written++},Mr=e=>{Pr(e);const t=e.encoder.restEncoder;ae(t,e.clientStructs.length);for(let n=0;n<e.clientStructs.length;n++){const r=e.clientStructs[n];ae(t,r.written),pe(t,r.restEncoder)}},Nr="You must not compute changes after the event-handler fired.";class $r{constructor(e,t){this.target=e,this.currentTarget=e,this.transaction=t,this._changes=null,this._keys=null,this._delta=null,this._path=null}get path(){return this._path||(this._path=Br(this.currentTarget,this.target))}deletes(e){return Wn(this.transaction.deleteSet,e.id)}get keys(){if(null===this._keys){if(0===this.transaction.doc._transactionCleanups.length)throw Ce(Nr);const e=new Map,t=this.target;this.transaction.changed.get(t).forEach(n=>{if(null!==n){const r=t._map.get(n);let s,i;if(this.adds(r)){let e=r.left;for(;null!==e&&this.adds(e);)e=e.left;if(this.deletes(r)){if(null===e||!this.deletes(e))return;s="delete",i=q(e.content.getContent())}else null!==e&&this.deletes(e)?(s="update",i=q(e.content.getContent())):(s="add",i=void 0)}else{if(!this.deletes(r))return;s="delete",i=q(r.content.getContent())}e.set(n,{action:s,oldValue:i})}}),this._keys=e}return this._keys}get delta(){return this.changes.delta}adds(e){return e.id.clock>=(this.transaction.beforeState.get(e.id.client)||0)}get changes(){let e=this._changes;if(null===e){if(0===this.transaction.doc._transactionCleanups.length)throw Ce(Nr);const t=this.target,n=J(),r=J(),s=[];e={added:n,deleted:r,delta:s,keys:this.keys};if(this.transaction.changed.get(t).has(null)){let e=null;const i=()=>{e&&s.push(e)};for(let s=t._start;null!==s;s=s.right)s.deleted?this.deletes(s)&&!this.adds(s)&&(null!==e&&void 0!==e.delete||(i(),e={delete:0}),e.delete+=s.length,r.add(s)):this.adds(s)?(null!==e&&void 0!==e.insert||(i(),e={insert:[]}),e.insert=e.insert.concat(s.content.getContent()),n.add(s)):(null!==e&&void 0!==e.retain||(i(),e={retain:0}),e.retain+=s.length);null!==e&&void 0===e.retain&&i()}this._changes=e}return e}}const Br=(e,t)=>{const n=[];for(;null!==t._item&&t!==e;){if(null!==t._item.parentSub)n.unshift(t._item.parentSub);else{let e=0,r=t._item.parent._start;for(;r!==t._item&&null!==r;)!r.deleted&&r.countable&&(e+=r.length),r=r.right;n.unshift(e)}t=t._item.parent}return n},Fr=()=>{((...e)=>{e.unshift(Ln),Rn.forEach(t=>t.print(e))})("Invalid access: Add Yjs type to a document before reading data.")};let Wr=0;class Vr{constructor(e,t){e.marker=!0,this.p=e,this.index=t,this.timestamp=Wr++}}const Kr=(e,t,n)=>{e.p.marker=!1,e.p=t,t.marker=!0,e.index=n,e.timestamp=Wr++},Hr=(e,t)=>{if(null===e._start||0===t||null===e._searchMarker)return null;const n=0===e._searchMarker.length?null:e._searchMarker.reduce((e,n)=>N(t-e.index)<N(t-n.index)?e:n);let r=e._start,s=0;for(null!==n&&(r=n.p,s=n.index,(e=>{e.timestamp=Wr++})(n));null!==r.right&&s<t;){if(!r.deleted&&r.countable){if(t<s+r.length)break;s+=r.length}r=r.right}for(;null!==r.left&&s>t;)r=r.left,!r.deleted&&r.countable&&(s-=r.length);for(;null!==r.left&&r.left.id.client===r.id.client&&r.left.id.clock+r.left.length===r.id.clock;)r=r.left,!r.deleted&&r.countable&&(s-=r.length);return null!==n&&N(n.index-s)<r.parent.length/80?(Kr(n,r,s),n):((e,t,n)=>{if(e.length>=80){const r=e.reduce((e,t)=>e.timestamp<t.timestamp?e:t);return Kr(r,t,n),r}{const r=new Vr(t,n);return e.push(r),r}})(e._searchMarker,r,s)},zr=(e,t,n)=>{for(let r=e.length-1;r>=0;r--){const s=e[r];if(n>0){let t=s.p;for(t.marker=!1;t&&(t.deleted||!t.countable);)t=t.left,t&&!t.deleted&&t.countable&&(s.index-=t.length);if(null===t||!0===t.marker){e.splice(r,1);continue}s.p=t,t.marker=!0}(t<s.index||n>0&&t===s.index)&&(s.index=B(t,s.index+n))}},Jr=(e,t,n)=>{const r=e,s=t.changedParentTypes;for(;qt(s,e,()=>[]).push(n),null!==e._item;)e=e._item.parent;cr(r._eH,n,t)};class qr{constructor(){this._item=null,this._map=new Map,this._start=null,this.doc=null,this._length=0,this._eH=ir(),this._dEH=ir(),this._searchMarker=null}get parent(){return this._item?this._item.parent:null}_integrate(e,t){this.doc=e,this._item=t}_copy(){throw Ie()}clone(){throw Ie()}_write(e){}get _first(){let e=this._start;for(;null!==e&&e.deleted;)e=e.right;return e}_callObserver(e,t){!e.local&&this._searchMarker&&(this._searchMarker.length=0)}observe(e){or(this._eH,e)}observeDeep(e){or(this._dEH,e)}unobserve(e){lr(this._eH,e)}unobserveDeep(e){lr(this._dEH,e)}toJSON(){}}const Yr=(e,t,n)=>{e.doc??Fr(),t<0&&(t=e._length+t),n<0&&(n=e._length+n);let r=n-t;const s=[];let i=e._start;for(;null!==i&&r>0;){if(i.countable&&!i.deleted){const e=i.content.getContent();if(e.length<=t)t-=e.length;else{for(let n=t;n<e.length&&r>0;n++)s.push(e[n]),r--;t=0}}i=i.right}return s},Gr=e=>{e.doc??Fr();const t=[];let n=e._start;for(;null!==n;){if(n.countable&&!n.deleted){const e=n.content.getContent();for(let n=0;n<e.length;n++)t.push(e[n])}n=n.right}return t},Qr=(e,t)=>{let n=0,r=e._start;for(e.doc??Fr();null!==r;){if(r.countable&&!r.deleted){const s=r.content.getContent();for(let r=0;r<s.length;r++)t(s[r],n++,e)}r=r.right}},Xr=(e,t)=>{const n=[];return Qr(e,(r,s)=>{n.push(t(r,s,e))}),n},Zr=e=>{let t=e._start,n=null,r=0;return{[Symbol.iterator](){return this},next:()=>{if(null===n){for(;null!==t&&t.deleted;)t=t.right;if(null===t)return{done:!0,value:void 0};n=t.content.getContent(),r=0,t=t.right}const e=n[r++];return n.length<=r&&(n=null),{done:!1,value:e}}}},es=(e,t)=>{e.doc??Fr();const n=Hr(e,t);let r=e._start;for(null!==n&&(r=n.p,t-=n.index);null!==r;r=r.right)if(!r.deleted&&r.countable){if(t<r.length)return r.content.getContent()[t];t-=r.length}},ts=(e,t,n,r)=>{let s=n;const i=e.doc,o=i.clientID,l=i.store,c=null===n?t._start:n.right;let a=[];const u=()=>{a.length>0&&(s=new ii(dr(o,yr(l,o)),s,s&&s.lastId,c,c&&c.id,t,null,new Js(a)),s.integrate(e,0),a=[])};r.forEach(n=>{if(null===n)a.push(n);else switch(n.constructor){case Number:case Object:case Boolean:case Array:case String:a.push(n);break;default:switch(u(),n.constructor){case Uint8Array:case ArrayBuffer:s=new ii(dr(o,yr(l,o)),s,s&&s.lastId,c,c&&c.id,t,null,new $s(new Uint8Array(n))),s.integrate(e,0);break;case qn:s=new ii(dr(o,yr(l,o)),s,s&&s.lastId,c,c&&c.id,t,null,new Ws(n)),s.integrate(e,0);break;default:if(!(n instanceof qr))throw new Error("Unexpected content type in insert operation");s=new ii(dr(o,yr(l,o)),s,s&&s.lastId,c,c&&c.id,t,null,new ri(n)),s.integrate(e,0)}}}),u()},ns=()=>Ce("Length exceeded!"),rs=(e,t,n,r)=>{if(n>t._length)throw ns();if(0===n)return t._searchMarker&&zr(t._searchMarker,n,r.length),ts(e,t,null,r);const s=n,i=Hr(t,n);let o=t._start;for(null!==i&&(o=i.p,0===(n-=i.index)&&(o=o.prev,n+=o&&o.countable&&!o.deleted?o.length:0));null!==o;o=o.right)if(!o.deleted&&o.countable){if(n<=o.length){n<o.length&&wr(e,dr(o.id.client,o.id.clock+n));break}n-=o.length}return t._searchMarker&&zr(t._searchMarker,s,r.length),ts(e,t,o,r)},ss=(e,t,n,r)=>{if(0===r)return;const s=n,i=r,o=Hr(t,n);let l=t._start;for(null!==o&&(l=o.p,n-=o.index);null!==l&&n>0;l=l.right)!l.deleted&&l.countable&&(n<l.length&&wr(e,dr(l.id.client,l.id.clock+n)),n-=l.length);for(;r>0&&null!==l;)l.deleted||(r<l.length&&wr(e,dr(l.id.client,l.id.clock+r)),l.delete(e),r-=l.length),l=l.right;if(r>0)throw ns();t._searchMarker&&zr(t._searchMarker,s,-i+r)},is=(e,t,n)=>{const r=t._map.get(n);void 0!==r&&r.delete(e)},os=(e,t,n,r)=>{const s=t._map.get(n)||null,i=e.doc,o=i.clientID;let l;if(null==r)l=new Js([r]);else switch(r.constructor){case Number:case Object:case Boolean:case Array:case String:case Date:case BigInt:l=new Js([r]);break;case Uint8Array:l=new $s(r);break;case qn:l=new Ws(r);break;default:if(!(r instanceof qr))throw new Error("Unexpected content type");l=new ri(r)}new ii(dr(o,yr(i.store,o)),s,s&&s.lastId,null,null,t,n,l).integrate(e,0)},ls=(e,t)=>{e.doc??Fr();const n=e._map.get(t);return void 0===n||n.deleted?void 0:n.content.getContent()[n.length-1]},cs=e=>{const t={};return e.doc??Fr(),e._map.forEach((e,n)=>{e.deleted||(t[n]=e.content.getContent()[e.length-1])}),t},as=(e,t)=>{e.doc??Fr();const n=e._map.get(t);return void 0!==n&&!n.deleted},us=e=>{return e.doc??Fr(),t=e._map.entries(),n=e=>!e[1].deleted,Mn(()=>{let e;do{e=t.next()}while(!e.done&&!n(e.value));return e});var t,n};class ds extends $r{}class hs extends qr{constructor(){super(),this._prelimContent=[],this._searchMarker=[]}static from(e){const t=new hs;return t.push(e),t}_integrate(e,t){super._integrate(e,t),this.insert(0,this._prelimContent),this._prelimContent=null}_copy(){return new hs}clone(){const e=new hs;return e.insert(0,this.toArray().map(e=>e instanceof qr?e.clone():e)),e}get length(){return this.doc??Fr(),this._length}_callObserver(e,t){super._callObserver(e,t),Jr(this,e,new ds(this,e))}insert(e,t){null!==this.doc?Or(this.doc,n=>{rs(n,this,e,t)}):this._prelimContent.splice(e,0,...t)}push(e){null!==this.doc?Or(this.doc,t=>{((e,t,n)=>{let r=(t._searchMarker||[]).reduce((e,t)=>t.index>e.index?t:e,{index:0,p:t._start}).p;if(r)for(;r.right;)r=r.right;ts(e,t,r,n)})(t,this,e)}):this._prelimContent.push(...e)}unshift(e){this.insert(0,e)}delete(e,t=1){null!==this.doc?Or(this.doc,n=>{ss(n,this,e,t)}):this._prelimContent.splice(e,t)}get(e){return es(this,e)}toArray(){return Gr(this)}slice(e=0,t=this.length){return Yr(this,e,t)}toJSON(){return this.map(e=>e instanceof qr?e.toJSON():e)}map(e){return Xr(this,e)}forEach(e){Qr(this,e)}[Symbol.iterator](){return Zr(this)}_write(e){e.writeTypeRef(Gs)}}class fs extends $r{constructor(e,t,n){super(e,t),this.keysChanged=n}}class ps extends qr{constructor(e){super(),this._prelimContent=null,this._prelimContent=void 0===e?new Map:new Map(e)}_integrate(e,t){super._integrate(e,t),this._prelimContent.forEach((e,t)=>{this.set(t,e)}),this._prelimContent=null}_copy(){return new ps}clone(){const e=new ps;return this.forEach((t,n)=>{e.set(n,t instanceof qr?t.clone():t)}),e}_callObserver(e,t){Jr(this,e,new fs(this,e,t))}toJSON(){this.doc??Fr();const e={};return this._map.forEach((t,n)=>{if(!t.deleted){const r=t.content.getContent()[t.length-1];e[n]=r instanceof qr?r.toJSON():r}}),e}get size(){return[...us(this)].length}keys(){return Nn(us(this),e=>e[0])}values(){return Nn(us(this),e=>e[1].content.getContent()[e[1].length-1])}entries(){return Nn(us(this),e=>[e[0],e[1].content.getContent()[e[1].length-1]])}forEach(e){this.doc??Fr(),this._map.forEach((t,n)=>{t.deleted||e(t.content.getContent()[t.length-1],n,this)})}[Symbol.iterator](){return this.entries()}delete(e){null!==this.doc?Or(this.doc,t=>{is(t,this,e)}):this._prelimContent.delete(e)}set(e,t){return null!==this.doc?Or(this.doc,n=>{os(n,this,e,t)}):this._prelimContent.set(e,t),t}get(e){return ls(this,e)}has(e){return as(this,e)}clear(){null!==this.doc?Or(this.doc,e=>{this.forEach(function(t,n,r){is(e,r,n)})}):this._prelimContent.clear()}_write(e){e.writeTypeRef(Qs)}}const gs=(e,t)=>e===t||"object"==typeof e&&"object"==typeof t&&e&&t&&((e,t)=>e===t||dn(e)===dn(t)&&((e,t)=>{for(const n in e)if(!t(e[n],n))return!1;return!0})(e,(e,n)=>(void 0!==e||hn(t,n))&&t[n]===e))(e,t);class ys{constructor(e,t,n,r){this.left=e,this.right=t,this.index=n,this.currentAttributes=r}forward(){if(null===this.right&&De(),this.right.content.constructor===Ks)this.right.deleted||_s(this.currentAttributes,this.right.content);else this.right.deleted||(this.index+=this.right.length);this.left=this.right,this.right=this.right.right}}const ms=(e,t,n)=>{for(;null!==t.right&&n>0;){if(t.right.content.constructor===Ks)t.right.deleted||_s(t.currentAttributes,t.right.content);else t.right.deleted||(n<t.right.length&&wr(e,dr(t.right.id.client,t.right.id.clock+n)),t.index+=t.right.length,n-=t.right.length);t.left=t.right,t.right=t.right.right}return t},vs=(e,t,n,r)=>{const s=new Map,i=r?Hr(t,n):null;if(i){const t=new ys(i.p.left,i.p,i.index,s);return ms(e,t,n-i.index)}{const r=new ys(null,t._start,0,s);return ms(e,r,n)}},bs=(e,t,n,r)=>{for(;null!==n.right&&(!0===n.right.deleted||n.right.content.constructor===Ks&&gs(r.get(n.right.content.key),n.right.content.value));)n.right.deleted||r.delete(n.right.content.key),n.forward();const s=e.doc,i=s.clientID;r.forEach((r,o)=>{const l=n.left,c=n.right,a=new ii(dr(i,yr(s.store,i)),l,l&&l.lastId,c,c&&c.id,t,null,new Ks(o,r));a.integrate(e,0),n.right=a,n.forward()})},_s=(e,t)=>{const{key:n,value:r}=t;null===r?e.delete(n):e.set(n,r)},ws=(e,t)=>{for(;null!==e.right&&(e.right.deleted||e.right.content.constructor===Ks&&gs(t[e.right.content.key]??null,e.right.content.value));)e.forward()},ks=(e,t,n,r)=>{const s=e.doc,i=s.clientID,o=new Map;for(const l in r){const c=r[l],a=n.currentAttributes.get(l)??null;if(!gs(a,c)){o.set(l,a);const{left:r,right:u}=n;n.right=new ii(dr(i,yr(s.store,i)),r,r&&r.lastId,u,u&&u.id,t,null,new Ks(l,c)),n.right.integrate(e,0),n.forward()}}return o},Ss=(e,t,n,r,s)=>{n.currentAttributes.forEach((e,t)=>{void 0===s[t]&&(s[t]=null)});const i=e.doc,o=i.clientID;ws(n,s);const l=ks(e,t,n,s),c=r.constructor===String?new qs(r):r instanceof qr?new ri(r):new Vs(r);let{left:a,right:u,index:d}=n;t._searchMarker&&zr(t._searchMarker,n.index,c.getLength()),u=new ii(dr(o,yr(i.store,o)),a,a&&a.lastId,u,u&&u.id,t,null,c),u.integrate(e,0),n.right=u,n.index=d,n.forward(),bs(e,t,n,l)},xs=(e,t,n,r,s)=>{const i=e.doc,o=i.clientID;ws(n,s);const l=ks(e,t,n,s);e:for(;null!==n.right&&(r>0||l.size>0&&(n.right.deleted||n.right.content.constructor===Ks));){if(!n.right.deleted)switch(n.right.content.constructor){case Ks:{const{key:t,value:i}=n.right.content,o=s[t];if(void 0!==o){if(gs(o,i))l.delete(t);else{if(0===r)break e;l.set(t,i)}n.right.delete(e)}else n.currentAttributes.set(t,i);break}default:r<n.right.length&&wr(e,dr(n.right.id.client,n.right.id.clock+r)),r-=n.right.length}n.forward()}if(r>0){let s="";for(;r>0;r--)s+="\n";n.right=new ii(dr(o,yr(i.store,o)),n.left,n.left&&n.left.lastId,n.right,n.right&&n.right.id,t,null,new qs(s)),n.right.integrate(e,0),n.forward()}bs(e,t,n,l)},Es=(e,t,n,r,s)=>{let i=t;const o=zt();for(;i&&(!i.countable||i.deleted);){if(!i.deleted&&i.content.constructor===Ks){const e=i.content;o.set(e.key,e)}i=i.right}let l=0,c=!1;for(;t!==i;){if(n===t&&(c=!0),!t.deleted){const n=t.content;switch(n.constructor){case Ks:{const{key:i,value:a}=n,u=r.get(i)??null;o.get(i)===n&&u!==a||(t.delete(e),l++,c||(s.get(i)??null)!==a||u===a||(null===u?s.delete(i):s.set(i,u))),c||t.deleted||_s(s,n);break}}}t=t.right}return l},Cs=e=>{let t=0;return Or(e.doc,n=>{let r=e._start,s=e._start,i=zt();const o=Jt(i);for(;s;){if(!1===s.deleted)if(s.content.constructor===Ks)_s(o,s.content);else t+=Es(n,r,s,i,o),i=Jt(o),r=s;s=s.right}}),t},Is=e=>{const t=new Set,n=e.doc;for(const[r,s]of e.afterState.entries()){const i=e.beforeState.get(r)||0;s!==i&&Sr(e,n.store.clients.get(r),i,s,e=>{e.deleted||e.content.constructor!==Ks||e.constructor===Ns||t.add(e.parent)})}Or(n,n=>{Fn(e,e.deleteSet,e=>{if(e instanceof Ns||!e.parent._hasFormatting||t.has(e.parent))return;const r=e.parent;e.content.constructor===Ks?t.add(r):((e,t)=>{for(;t&&t.right&&(t.right.deleted||!t.right.countable);)t=t.right;const n=new Set;for(;t&&(t.deleted||!t.countable);){if(!t.deleted&&t.content.constructor===Ks){const r=t.content.key;n.has(r)?t.delete(e):n.add(r)}t=t.left}})(n,e)});for(const e of t)Cs(e)})},Ds=(e,t,n)=>{const r=n,s=Jt(t.currentAttributes),i=t.right;for(;n>0&&null!==t.right;){if(!1===t.right.deleted)switch(t.right.content.constructor){case ri:case Vs:case qs:n<t.right.length&&wr(e,dr(t.right.id.client,t.right.id.clock+n)),n-=t.right.length,t.right.delete(e)}t.forward()}i&&Es(e,i,t.right,s,t.currentAttributes);const o=(t.left||t.right).parent;return o._searchMarker&&zr(o._searchMarker,t.index,-r+n),t};class Os extends $r{constructor(e,t,n){super(e,t),this.childListChanged=!1,this.keysChanged=new Set,n.forEach(e=>{null===e?this.childListChanged=!0:this.keysChanged.add(e)})}get changes(){if(null===this._changes){const e={keys:this.keys,delta:this.delta,added:new Set,deleted:new Set};this._changes=e}return this._changes}get delta(){if(null===this._delta){const e=this.target.doc,t=[];Or(e,e=>{const n=new Map,r=new Map;let s=this.target._start,i=null;const o={};let l="",c=0,a=0;const u=()=>{if(null!==i){let e=null;switch(i){case"delete":a>0&&(e={delete:a}),a=0;break;case"insert":("object"==typeof l||l.length>0)&&(e={insert:l},n.size>0&&(e.attributes={},n.forEach((t,n)=>{null!==t&&(e.attributes[n]=t)}))),l="";break;case"retain":c>0&&(e={retain:c},(e=>{for(const t in e)return!1;return!0})(o)||(e.attributes=cn({},o))),c=0}e&&t.push(e),i=null}};for(;null!==s;){switch(s.content.constructor){case ri:case Vs:this.adds(s)?this.deletes(s)||(u(),i="insert",l=s.content.getContent()[0],u()):this.deletes(s)?("delete"!==i&&(u(),i="delete"),a+=1):s.deleted||("retain"!==i&&(u(),i="retain"),c+=1);break;case qs:this.adds(s)?this.deletes(s)||("insert"!==i&&(u(),i="insert"),l+=s.content.str):this.deletes(s)?("delete"!==i&&(u(),i="delete"),a+=s.length):s.deleted||("retain"!==i&&(u(),i="retain"),c+=s.length);break;case Ks:{const{key:t,value:l}=s.content;if(this.adds(s)){if(!this.deletes(s)){const c=n.get(t)??null;gs(c,l)?null!==l&&s.delete(e):("retain"===i&&u(),gs(l,r.get(t)??null)?delete o[t]:o[t]=l)}}else if(this.deletes(s)){r.set(t,l);const e=n.get(t)??null;gs(e,l)||("retain"===i&&u(),o[t]=e)}else if(!s.deleted){r.set(t,l);const n=o[t];void 0!==n&&(gs(n,l)?null!==n&&s.delete(e):("retain"===i&&u(),null===l?delete o[t]:o[t]=l))}s.deleted||("insert"===i&&u(),_s(n,s.content));break}}s=s.right}for(u();t.length>0;){const e=t[t.length-1];if(void 0===e.retain||void 0!==e.attributes)break;t.pop()}}),this._delta=t}return this._delta}}class As extends qr{constructor(e){super(),this._pending=void 0!==e?[()=>this.insert(0,e)]:[],this._searchMarker=[],this._hasFormatting=!1}get length(){return this.doc??Fr(),this._length}_integrate(e,t){super._integrate(e,t);try{this._pending.forEach(e=>e())}catch(e){}this._pending=null}_copy(){return new As}clone(){const e=new As;return e.applyDelta(this.toDelta()),e}_callObserver(e,t){super._callObserver(e,t);const n=new Os(this,e,t);Jr(this,e,n),!e.local&&this._hasFormatting&&(e._needFormattingCleanup=!0)}toString(){this.doc??Fr();let e="",t=this._start;for(;null!==t;)!t.deleted&&t.countable&&t.content.constructor===qs&&(e+=t.content.str),t=t.right;return e}toJSON(){return this.toString()}applyDelta(e,{sanitize:t=!0}={}){null!==this.doc?Or(this.doc,n=>{const r=new ys(null,this._start,0,new Map);for(let s=0;s<e.length;s++){const i=e[s];if(void 0!==i.insert){const o=t||"string"!=typeof i.insert||s!==e.length-1||null!==r.right||"\n"!==i.insert.slice(-1)?i.insert:i.insert.slice(0,-1);("string"!=typeof o||o.length>0)&&Ss(n,this,r,o,i.attributes||{})}else void 0!==i.retain?xs(n,this,r,i.retain,i.attributes||{}):void 0!==i.delete&&Ds(n,r,i.delete)}}):this._pending.push(()=>this.applyDelta(e))}toDelta(e,t,n){this.doc??Fr();const r=[],s=new Map,i=this.doc;let o="",l=this._start;function c(){if(o.length>0){const e={};let t=!1;s.forEach((n,r)=>{t=!0,e[r]=n});const n={insert:o};t&&(n.attributes=e),r.push(n),o=""}}const a=()=>{for(;null!==l;){if(hr(l,e)||void 0!==t&&hr(l,t))switch(l.content.constructor){case qs:{const r=s.get("ychange");void 0===e||hr(l,e)?void 0===t||hr(l,t)?void 0!==r&&(c(),s.delete("ychange")):void 0!==r&&r.user===l.id.client&&"added"===r.type||(c(),s.set("ychange",n?n("added",l.id):{type:"added"})):void 0!==r&&r.user===l.id.client&&"removed"===r.type||(c(),s.set("ychange",n?n("removed",l.id):{type:"removed"})),o+=l.content.str;break}case ri:case Vs:{c();const e={insert:l.content.getContent()[0]};if(s.size>0){const t={};e.attributes=t,s.forEach((e,n)=>{t[n]=e})}r.push(e);break}case Ks:hr(l,e)&&(c(),_s(s,l.content))}l=l.right}c()};return e||t?Or(i,n=>{e&&fr(n,e),t&&fr(n,t),a()},"cleanup"):a(),r}insert(e,t,n){if(t.length<=0)return;const r=this.doc;null!==r?Or(r,r=>{const s=vs(r,this,e,!n);n||(n={},s.currentAttributes.forEach((e,t)=>{n[t]=e})),Ss(r,this,s,t,n)}):this._pending.push(()=>this.insert(e,t,n))}insertEmbed(e,t,n){const r=this.doc;null!==r?Or(r,r=>{const s=vs(r,this,e,!n);Ss(r,this,s,t,n||{})}):this._pending.push(()=>this.insertEmbed(e,t,n||{}))}delete(e,t){if(0===t)return;const n=this.doc;null!==n?Or(n,n=>{Ds(n,vs(n,this,e,!0),t)}):this._pending.push(()=>this.delete(e,t))}format(e,t,n){if(0===t)return;const r=this.doc;null!==r?Or(r,r=>{const s=vs(r,this,e,!1);null!==s.right&&xs(r,this,s,t,n)}):this._pending.push(()=>this.format(e,t,n))}removeAttribute(e){null!==this.doc?Or(this.doc,t=>{is(t,this,e)}):this._pending.push(()=>this.removeAttribute(e))}setAttribute(e,t){null!==this.doc?Or(this.doc,n=>{os(n,this,e,t)}):this._pending.push(()=>this.setAttribute(e,t))}getAttribute(e){return ls(this,e)}getAttributes(){return cs(this)}_write(e){e.writeTypeRef(Xs)}}class Ts{constructor(e,t=()=>!0){this._filter=t,this._root=e,this._currentNode=e._start,this._firstCall=!0,e.doc??Fr()}[Symbol.iterator](){return this}next(){let e=this._currentNode,t=e&&e.content&&e.content.type;if(null!==e&&(!this._firstCall||e.deleted||!this._filter(t)))do{if(t=e.content.type,e.deleted||t.constructor!==js&&t.constructor!==Us||null===t._start)for(;null!==e;){const t=e.next;if(null!==t){e=t;break}e=e.parent===this._root?null:e.parent._item}else e=t._start}while(null!==e&&(e.deleted||!this._filter(e.content.type)));return this._firstCall=!1,null===e?{value:void 0,done:!0}:(this._currentNode=e,{value:e.content.type,done:!1})}}class Us extends qr{constructor(){super(),this._prelimContent=[]}get firstChild(){const e=this._first;return e?e.content.getContent()[0]:null}_integrate(e,t){super._integrate(e,t),this.insert(0,this._prelimContent),this._prelimContent=null}_copy(){return new Us}clone(){const e=new Us;return e.insert(0,this.toArray().map(e=>e instanceof qr?e.clone():e)),e}get length(){return this.doc??Fr(),null===this._prelimContent?this._length:this._prelimContent.length}createTreeWalker(e){return new Ts(this,e)}querySelector(e){e=e.toUpperCase();const t=new Ts(this,t=>t.nodeName&&t.nodeName.toUpperCase()===e).next();return t.done?null:t.value}querySelectorAll(e){return e=e.toUpperCase(),G(new Ts(this,t=>t.nodeName&&t.nodeName.toUpperCase()===e))}_callObserver(e,t){Jr(this,e,new Ls(this,t,e))}toString(){return Xr(this,e=>e.toString()).join("")}toJSON(){return this.toString()}toDOM(e=document,t={},n){const r=e.createDocumentFragment();return void 0!==n&&n._createAssociation(r,this),Qr(this,s=>{r.insertBefore(s.toDOM(e,t,n),null)}),r}insert(e,t){null!==this.doc?Or(this.doc,n=>{rs(n,this,e,t)}):this._prelimContent.splice(e,0,...t)}insertAfter(e,t){if(null!==this.doc)Or(this.doc,n=>{const r=e&&e instanceof qr?e._item:e;ts(n,this,r,t)});else{const n=this._prelimContent,r=null===e?0:n.findIndex(t=>t===e)+1;if(0===r&&null!==e)throw Ce("Reference item not found");n.splice(r,0,...t)}}delete(e,t=1){null!==this.doc?Or(this.doc,n=>{ss(n,this,e,t)}):this._prelimContent.splice(e,t)}toArray(){return Gr(this)}push(e){this.insert(this.length,e)}unshift(e){this.insert(0,e)}get(e){return es(this,e)}slice(e=0,t=this.length){return Yr(this,e,t)}forEach(e){Qr(this,e)}_write(e){e.writeTypeRef(ei)}}class js extends Us{constructor(e="UNDEFINED"){super(),this.nodeName=e,this._prelimAttrs=new Map}get nextSibling(){const e=this._item?this._item.next:null;return e?e.content.type:null}get prevSibling(){const e=this._item?this._item.prev:null;return e?e.content.type:null}_integrate(e,t){super._integrate(e,t),this._prelimAttrs.forEach((e,t)=>{this.setAttribute(t,e)}),this._prelimAttrs=null}_copy(){return new js(this.nodeName)}clone(){const e=new js(this.nodeName);return((e,t)=>{for(const n in e)t(e[n],n)})(this.getAttributes(),(t,n)=>{"string"==typeof t&&e.setAttribute(n,t)}),e.insert(0,this.toArray().map(e=>e instanceof qr?e.clone():e)),e}toString(){const e=this.getAttributes(),t=[],n=[];for(const t in e)n.push(t);n.sort();const r=n.length;for(let s=0;s<r;s++){const r=n[s];t.push(r+'="'+e[r]+'"')}const s=this.nodeName.toLocaleLowerCase();return`<${s}${t.length>0?" "+t.join(" "):""}>${super.toString()}</${s}>`}removeAttribute(e){null!==this.doc?Or(this.doc,t=>{is(t,this,e)}):this._prelimAttrs.delete(e)}setAttribute(e,t){null!==this.doc?Or(this.doc,n=>{os(n,this,e,t)}):this._prelimAttrs.set(e,t)}getAttribute(e){return ls(this,e)}hasAttribute(e){return as(this,e)}getAttributes(e){return e?((e,t)=>{const n={};return e._map.forEach((e,r)=>{let s=e;for(;null!==s&&(!t.sv.has(s.id.client)||s.id.clock>=(t.sv.get(s.id.client)||0));)s=s.left;null!==s&&hr(s,t)&&(n[r]=s.content.getContent()[s.length-1])}),n})(this,e):cs(this)}toDOM(e=document,t={},n){const r=e.createElement(this.nodeName),s=this.getAttributes();for(const e in s){const t=s[e];"string"==typeof t&&r.setAttribute(e,t)}return Qr(this,s=>{r.appendChild(s.toDOM(e,t,n))}),void 0!==n&&n._createAssociation(r,this),r}_write(e){e.writeTypeRef(Zs),e.writeKey(this.nodeName)}}class Ls extends $r{constructor(e,t,n){super(e,n),this.childListChanged=!1,this.attributesChanged=new Set,t.forEach(e=>{null===e?this.childListChanged=!0:this.attributesChanged.add(e)})}}class Ps extends ps{constructor(e){super(),this.hookName=e}_copy(){return new Ps(this.hookName)}clone(){const e=new Ps(this.hookName);return this.forEach((t,n)=>{e.set(n,t)}),e}toDOM(e=document,t={},n){const r=t[this.hookName];let s;return s=void 0!==r?r.createDom(this):document.createElement(this.hookName),s.setAttribute("data-yjs-hook",this.hookName),void 0!==n&&n._createAssociation(s,this),s}_write(e){e.writeTypeRef(ti),e.writeKey(this.hookName)}}class Rs extends As{get nextSibling(){const e=this._item?this._item.next:null;return e?e.content.type:null}get prevSibling(){const e=this._item?this._item.prev:null;return e?e.content.type:null}_copy(){return new Rs}clone(){const e=new Rs;return e.applyDelta(this.toDelta()),e}toDOM(e=document,t,n){const r=e.createTextNode(this.toString());return void 0!==n&&n._createAssociation(r,this),r}toString(){return this.toDelta().map(e=>{const t=[];for(const n in e.attributes){const r=[];for(const t in e.attributes[n])r.push({key:t,value:e.attributes[n][t]});r.sort((e,t)=>e.key<t.key?-1:1),t.push({nodeName:n,attrs:r})}t.sort((e,t)=>e.nodeName<t.nodeName?-1:1);let n="";for(let e=0;e<t.length;e++){const r=t[e];n+=`<${r.nodeName}`;for(let e=0;e<r.attrs.length;e++){const t=r.attrs[e];n+=` ${t.key}="${t.value}"`}n+=">"}n+=e.insert;for(let e=t.length-1;e>=0;e--)n+=`</${t[e].nodeName}>`;return n}).join("")}toJSON(){return this.toString()}_write(e){e.writeTypeRef(ni)}}class Ms{constructor(e,t){this.id=e,this.length=t}get deleted(){throw Ie()}mergeWith(e){return!1}write(e,t,n){throw Ie()}integrate(e,t){throw Ie()}}class Ns extends Ms{get deleted(){return!0}delete(){}mergeWith(e){return this.constructor===e.constructor&&(this.length+=e.length,!0)}integrate(e,t){t>0&&(this.id.clock+=t,this.length-=t),mr(e.doc.store,this)}write(e,t){e.writeInfo(0),e.writeLen(this.length-t)}getMissing(e,t){return null}}class $s{constructor(e){this.content=e}getLength(){return 1}getContent(){return[this.content]}isCountable(){return!0}copy(){return new $s(this.content)}splice(e){throw Ie()}mergeWith(e){return!1}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeBuf(this.content)}getRef(){return 3}}class Bs{constructor(e){this.len=e}getLength(){return this.len}getContent(){return[]}isCountable(){return!1}copy(){return new Bs(this.len)}splice(e){const t=new Bs(this.len-e);return this.len=e,t}mergeWith(e){return this.len+=e.len,!0}integrate(e,t){Kn(e.deleteSet,t.id.client,t.id.clock,this.len),t.markDeleted()}delete(e){}gc(e){}write(e,t){e.writeLen(this.len-t)}getRef(){return 1}}const Fs=(e,t)=>new qn({guid:e,...t,shouldLoad:t.shouldLoad||t.autoLoad||!1});class Ws{constructor(e){e._item,this.doc=e;const t={};this.opts=t,e.gc||(t.gc=!1),e.autoLoad&&(t.autoLoad=!0),null!==e.meta&&(t.meta=e.meta)}getLength(){return 1}getContent(){return[this.doc]}isCountable(){return!0}copy(){return new Ws(Fs(this.doc.guid,this.opts))}splice(e){throw Ie()}mergeWith(e){return!1}integrate(e,t){this.doc._item=t,e.subdocsAdded.add(this.doc),this.doc.shouldLoad&&e.subdocsLoaded.add(this.doc)}delete(e){e.subdocsAdded.has(this.doc)?e.subdocsAdded.delete(this.doc):e.subdocsRemoved.add(this.doc)}gc(e){}write(e,t){e.writeString(this.doc.guid),e.writeAny(this.opts)}getRef(){return 9}}class Vs{constructor(e){this.embed=e}getLength(){return 1}getContent(){return[this.embed]}isCountable(){return!0}copy(){return new Vs(this.embed)}splice(e){throw Ie()}mergeWith(e){return!1}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeJSON(this.embed)}getRef(){return 5}}class Ks{constructor(e,t){this.key=e,this.value=t}getLength(){return 1}getContent(){return[]}isCountable(){return!1}copy(){return new Ks(this.key,this.value)}splice(e){throw Ie()}mergeWith(e){return!1}integrate(e,t){const n=t.parent;n._searchMarker=null,n._hasFormatting=!0}delete(e){}gc(e){}write(e,t){e.writeKey(this.key),e.writeJSON(this.value)}getRef(){return 6}}class Hs{constructor(e){this.arr=e}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new Hs(this.arr)}splice(e){const t=new Hs(this.arr.slice(e));return this.arr=this.arr.slice(0,e),t}mergeWith(e){return this.arr=this.arr.concat(e.arr),!0}integrate(e,t){}delete(e){}gc(e){}write(e,t){const n=this.arr.length;e.writeLen(n-t);for(let r=t;r<n;r++){const t=this.arr[r];e.writeString(void 0===t?"undefined":JSON.stringify(t))}}getRef(){return 2}}const zs="development"===wn("node_env");class Js{constructor(e){this.arr=e,zs&&pn(e)}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new Js(this.arr)}splice(e){const t=new Js(this.arr.slice(e));return this.arr=this.arr.slice(0,e),t}mergeWith(e){return this.arr=this.arr.concat(e.arr),!0}integrate(e,t){}delete(e){}gc(e){}write(e,t){const n=this.arr.length;e.writeLen(n-t);for(let r=t;r<n;r++){const t=this.arr[r];e.writeAny(t)}}getRef(){return 8}}class qs{constructor(e){this.str=e}getLength(){return this.str.length}getContent(){return this.str.split("")}isCountable(){return!0}copy(){return new qs(this.str)}splice(e){const t=new qs(this.str.slice(e));this.str=this.str.slice(0,e);const n=this.str.charCodeAt(e-1);return n>=55296&&n<=56319&&(this.str=this.str.slice(0,e-1)+"�",t.str="�"+t.str.slice(1)),t}mergeWith(e){return this.str+=e.str,!0}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeString(0===t?this.str:this.str.slice(t))}getRef(){return 4}}const Ys=[e=>new hs,e=>new ps,e=>new As,e=>new js(e.readKey()),e=>new Us,e=>new Ps(e.readKey()),e=>new Rs],Gs=0,Qs=1,Xs=2,Zs=3,ei=4,ti=5,ni=6;class ri{constructor(e){this.type=e}getLength(){return 1}getContent(){return[this.type]}isCountable(){return!0}copy(){return new ri(this.type._copy())}splice(e){throw Ie()}mergeWith(e){return!1}integrate(e,t){this.type._integrate(e.doc,t)}delete(e){let t=this.type._start;for(;null!==t;)t.deleted?t.id.clock<(e.beforeState.get(t.id.client)||0)&&e._mergeStructs.push(t):t.delete(e),t=t.right;this.type._map.forEach(t=>{t.deleted?t.id.clock<(e.beforeState.get(t.id.client)||0)&&e._mergeStructs.push(t):t.delete(e)}),e.changed.delete(this.type)}gc(e){let t=this.type._start;for(;null!==t;)t.gc(e,!0),t=t.right;this.type._start=null,this.type._map.forEach(t=>{for(;null!==t;)t.gc(e,!0),t=t.left}),this.type._map=new Map}write(e,t){this.type._write(e)}getRef(){return 7}}const si=(e,t,n)=>{const{client:r,clock:s}=t.id,i=new ii(dr(r,s+n),t,dr(r,s+n-1),t.right,t.rightOrigin,t.parent,t.parentSub,t.content.splice(n));return t.deleted&&i.markDeleted(),t.keep&&(i.keep=!0),null!==t.redone&&(i.redone=dr(t.redone.client,t.redone.clock+n)),t.right=i,null!==i.right&&(i.right.left=i),e._mergeStructs.push(i),null!==i.parentSub&&null===i.right&&i.parent._map.set(i.parentSub,i),t.length=n,i};class ii extends Ms{constructor(e,t,n,r,s,i,o,l){super(e,l.getLength()),this.origin=n,this.left=t,this.right=r,this.rightOrigin=s,this.parent=i,this.parentSub=o,this.redone=null,this.content=l,this.info=this.content.isCountable()?2:0}set marker(e){(8&this.info)>0!==e&&(this.info^=8)}get marker(){return(8&this.info)>0}get keep(){return(1&this.info)>0}set keep(e){this.keep!==e&&(this.info^=1)}get countable(){return(2&this.info)>0}get deleted(){return(4&this.info)>0}set deleted(e){this.deleted!==e&&(this.info^=4)}markDeleted(){this.info|=4}getMissing(e,t){if(this.origin&&this.origin.client!==this.id.client&&this.origin.clock>=yr(t,this.origin.client))return this.origin.client;if(this.rightOrigin&&this.rightOrigin.client!==this.id.client&&this.rightOrigin.clock>=yr(t,this.rightOrigin.client))return this.rightOrigin.client;if(this.parent&&this.parent.constructor===ar&&this.id.client!==this.parent.client&&this.parent.clock>=yr(t,this.parent.client))return this.parent.client;if(this.origin&&(this.left=kr(e,t,this.origin),this.origin=this.left.lastId),this.rightOrigin&&(this.right=wr(e,this.rightOrigin),this.rightOrigin=this.right.id),this.left&&this.left.constructor===Ns||this.right&&this.right.constructor===Ns)this.parent=null;else if(this.parent){if(this.parent.constructor===ar){const e=br(t,this.parent);e.constructor===Ns?this.parent=null:this.parent=e.content.type}}else this.left&&this.left.constructor===ii?(this.parent=this.left.parent,this.parentSub=this.left.parentSub):this.right&&this.right.constructor===ii&&(this.parent=this.right.parent,this.parentSub=this.right.parentSub);return null}integrate(e,t){if(t>0&&(this.id.clock+=t,this.left=kr(e,e.doc.store,dr(this.id.client,this.id.clock-1)),this.origin=this.left.lastId,this.content=this.content.splice(t),this.length-=t),this.parent){if(!this.left&&(!this.right||null!==this.right.left)||this.left&&this.left.right!==this.right){let t,n=this.left;if(null!==n)t=n.right;else if(null!==this.parentSub)for(t=this.parent._map.get(this.parentSub)||null;null!==t&&null!==t.left;)t=t.left;else t=this.parent._start;const r=new Set,s=new Set;for(;null!==t&&t!==this.right;){if(s.add(t),r.add(t),ur(this.origin,t.origin)){if(t.id.client<this.id.client)n=t,r.clear();else if(ur(this.rightOrigin,t.rightOrigin))break}else{if(null===t.origin||!s.has(br(e.doc.store,t.origin)))break;r.has(br(e.doc.store,t.origin))||(n=t,r.clear())}t=t.right}this.left=n}if(null!==this.left){const e=this.left.right;this.right=e,this.left.right=this}else{let e;if(null!==this.parentSub)for(e=this.parent._map.get(this.parentSub)||null;null!==e&&null!==e.left;)e=e.left;else e=this.parent._start,this.parent._start=this;this.right=e}null!==this.right?this.right.left=this:null!==this.parentSub&&(this.parent._map.set(this.parentSub,this),null!==this.left&&this.left.delete(e)),null===this.parentSub&&this.countable&&!this.deleted&&(this.parent._length+=this.length),mr(e.doc.store,this),this.content.integrate(e,this),Cr(e,this.parent,this.parentSub),(null!==this.parent._item&&this.parent._item.deleted||null!==this.parentSub&&null!==this.right)&&this.delete(e)}else new Ns(this.id,this.length).integrate(e,0)}get next(){let e=this.right;for(;null!==e&&e.deleted;)e=e.right;return e}get prev(){let e=this.left;for(;null!==e&&e.deleted;)e=e.left;return e}get lastId(){return 1===this.length?this.id:dr(this.id.client,this.id.clock+this.length-1)}mergeWith(e){if(this.constructor===e.constructor&&ur(e.origin,this.lastId)&&this.right===e&&ur(this.rightOrigin,e.rightOrigin)&&this.id.client===e.id.client&&this.id.clock+this.length===e.id.clock&&this.deleted===e.deleted&&null===this.redone&&null===e.redone&&this.content.constructor===e.content.constructor&&this.content.mergeWith(e.content)){const t=this.parent._searchMarker;return t&&t.forEach(t=>{t.p===e&&(t.p=this,!this.deleted&&this.countable&&(t.index-=this.length))}),e.keep&&(this.keep=!0),this.right=e.right,null!==this.right&&(this.right.left=this),this.length+=e.length,!0}return!1}delete(e){if(!this.deleted){const t=this.parent;this.countable&&null===this.parentSub&&(t._length-=this.length),this.markDeleted(),Kn(e.deleteSet,this.id.client,this.id.clock,this.length),Cr(e,t,this.parentSub),this.content.delete(e)}}gc(e,t){if(!this.deleted)throw De();this.content.gc(e),t?((e,t,n)=>{const r=e.clients.get(t.id.client);r[vr(r,t.id.clock)]=n})(e,this,new Ns(this.id,this.length)):this.content=new Bs(this.length)}write(e,t){const n=t>0?dr(this.id.client,this.id.clock+t-1):this.origin,r=this.rightOrigin,s=this.parentSub,i=31&this.content.getRef()|(null===n?0:V)|(null===r?0:W)|(null===s?0:32);if(e.writeInfo(i),null!==n&&e.writeLeftID(n),null!==r&&e.writeRightID(r),null===n&&null===r){const t=this.parent;if(void 0!==t._item){const n=t._item;if(null===n){const n=(e=>{for(const[t,n]of e.doc.share.entries())if(n===e)return t;throw De()})(t);e.writeParentInfo(!0),e.writeString(n)}else e.writeParentInfo(!1),e.writeLeftID(n.id)}else t.constructor===String?(e.writeParentInfo(!0),e.writeString(t)):t.constructor===ar?(e.writeParentInfo(!1),e.writeLeftID(t)):De();null!==s&&e.writeString(s)}this.content.write(e,t)}}const oi=(e,t)=>li[31&t](e),li=[()=>{De()},e=>new Bs(e.readLen()),e=>{const t=e.readLen(),n=[];for(let r=0;r<t;r++){const t=e.readString();"undefined"===t?n.push(void 0):n.push(JSON.parse(t))}return new Hs(n)},e=>new $s(e.readBuf()),e=>new qs(e.readString()),e=>new Vs(e.readJSON()),e=>new Ks(e.readKey(),e.readJSON()),e=>new ri(Ys[e.readTypeRef()](e)),e=>{const t=e.readLen(),n=[];for(let r=0;r<t;r++)n.push(e.readAny());return new Js(n)},e=>new Ws(Fs(e.readString(),e.readAny())),()=>{De()}];class ci extends Ms{get deleted(){return!0}delete(){}mergeWith(e){return this.constructor===e.constructor&&(this.length+=e.length,!0)}integrate(e,t){De()}write(e,t){e.writeInfo(10),ae(e.restEncoder,this.length-t)}getMissing(e,t){return null}}const ai="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},ui="__ $YJS$ __";function di(e,t,n){var r,s,i;if(!e.dx._allTables[t])return;const o=null===(i=null===(s=null===(r=e.table(t))||void 0===r?void 0:r.schema.yProps)||void 0===s?void 0:s.find(e=>e.prop===n))||void 0===i?void 0:i.updatesTable;return o&&e.dx._allTables[o]?e.table(o):void 0}ai[ui],ai[ui]=!0;const hi=new FinalizationRegistry(({cache:e,key:t})=>{delete e[t]});function fi(e){var t,n;return null!==(t=(n=e._novip)._docCache)&&void 0!==t?t:n._docCache={cache:{},get size(){return Object.keys(this.cache).length},find(e,t,n){const r=yi(e,t,n),s=this.cache[r];return s?s.deref():void 0},add(e){var t;const{parentTable:n,parentId:r,parentProp:s}=e.meta;if(!n||!s||null==r)throw new Error("Missing Dexie-related metadata in Y.Doc");const i=yi(n,r,s),o=null===(t=this.cache[i])||void 0===t?void 0:t.deref();o&&hi.unregister(o),this.cache[i]=new WeakRef(e),hi.register(e,{cache:this.cache,key:i},e)},delete(e){hi.unregister(e);const t=yi(e.meta.parentTable,e.meta.parentId,e.meta.parentProp),n=this.cache[t];(null==n?void 0:n.deref())===e&&delete this.cache[t]}}}const pi=new WeakSet;function gi(e){if(pi.has(e))throw new Error(`Y.Doc ${e.meta.parentId} has been destroyed`)}function yi(e,t,n){return`${e}[${t}].${n}`}const{getByKeyPath:mi}=e.Dexie;let vi=null;function bi(e){vi=e}function _i(){}const wi=new WeakMap;function ki(){return e.Dexie.Events(null,"load","sync","error")}class Si{static getOrCreateDocument(e,t,n,r){var s,i;const o=fi(e),l=null===(i=null===(s=e.table(t).schema.yProps)||void 0===s?void 0:s.find(e=>e.prop===n))||void 0===i?void 0:i.updatesTable;if(!l)throw new Error(`Updates table for ${t}.${n} not found`);return function(e,t,n,r,s,i){let o=t.find(n,i,r);return o||(o=new qn({meta:{db:e,updatesTable:s,parentProp:r,parentTable:n,parentId:i}}),t.add(o),o.on("destroy",()=>{pi.add(o),t.delete(o)}),o)}(e,o,t,n,l,r)}static load(e,t){var n;let r=wi.get(e);return r?(++r.refCount,null!=(null==t?void 0:t.gracePeriod)&&r.graceTimeout<t.gracePeriod&&(r.graceTimeout=t.gracePeriod),r.graceTimer&&(clearTimeout(r.graceTimer),r.graceTimer=null)):(r=new Si(e),r.graceTimeout=null!==(n=null==t?void 0:t.gracePeriod)&&void 0!==n?n:-1,wi.set(e,r)),r}static release(e){if(!e||pi.has(e))return;const t=wi.get(e);t?--t.refCount<=0&&(t.graceTimeout<0?t._release():t.graceTimer||(t.graceTimer=setTimeout(()=>{t.graceTimer=null,0===t.refCount&&t._release()},t.graceTimeout))):e.destroy()}_release(){this.doc&&Promise.resolve(Si.on("beforeunload").fire(this)).finally(()=>{var e;0===this.refCount&&(null===(e=this.doc)||void 0===e||e.destroy())})}static for(e){return wi.get(e)}static get currentUpdateRow(){return vi}get whenLoaded(){return this._whenLoaded||(this._whenLoaded=new Promise((t,n)=>{this.doc?this.doc.isLoaded?t():this._error?n(this._error):pi.has(this.doc)?n(new e.Dexie.AbortError("Document was destroyed before loaded")):(this.on("load",t),this.on("error",n),this.doc.on("destroy",()=>n(new e.Dexie.AbortError("Document was destroyed before loaded")))):n(new Error("No Y.Doc associated with this provider"))})),this._whenLoaded}get whenSynced(){return this._whenSynced||(this._whenSynced=new Promise((t,n)=>{this.doc?this.doc.isSynced?t():this._error?n(this._error):pi.has(this.doc)?n(new e.Dexie.AbortError("Document was destroyed before synced")):(this.on("sync",t),this.on("error",n),this.doc.on("destroy",()=>n(new e.Dexie.AbortError("Document was destroyed before synced")))):n(new Error("No Y.Doc associated with this provider"))})),this._whenSynced}constructor(t){this.refCount=1,this.cleanupHandlers=[],this.graceTimeout=-1,this.doc=null,this.destroyed=!1,this.on=ki(),this.doc=t,this.off=(e,t)=>{var n;return null===(n=this.on[e])||void 0===n?void 0:n.unsubscribe(t)},"dispose"in Symbol&&(this[Symbol.dispose]=()=>Si.release(t)),t.on("load",()=>this.on("load").fire()),t.on("sync",e=>!1!==e&&this.on("sync").fire()),t.on("destroy",this.destroy.bind(this)),this.on("error",e=>{this._error=e});const{db:n,parentTable:r,parentId:s,updatesTable:i}=t.meta||{};if(!n||!r||!i)throw new Error("Missing Dexie-related metadata in Y.Doc. Documents need to be obtained through Y.Doc properties from dexie queries.");if(!n.table(r)||!n.table(i))throw new Error(`Table ${r} or ${i} not found in db`);gi(t),this.stopObserving=function(t,n,r,s,i,o){let l=0,c=!0;const a=e.liveQuery(()=>{gi(n);const t=r.table(i);return Promise.all([(l>0?t.where("i").between(l,1/0,!1).toArray().then(t=>t.filter(t=>0===e.cmp(t.k,o))):t.where({k:o}).toArray()).then(e=>e),r.table(s).where(":id").equals(o).toArray()])}).subscribe(([e,r])=>{e.length>0&&(l=e[e.length-1].i),0!==r.length?(gi(n),e.length>0&&Or(n,()=>{e.forEach(e=>{try{bi(e),rr(n,e.u)}finally{bi(null)}})},t,!1),c&&(c=!1,n.emit("load",[n]))):n.destroy()},e=>{t.on("error").fire(e)}),u=(e,n)=>{n!==t&&r.table(i).add({k:o,u:e,f:1}).then(e=>{e===l-1&&++l}).catch(e=>{t.on("error").fire(e)})},d=()=>{a.unsubscribe(),n.off("updateV2",u),n.off("destroy",d)};return n.on("updateV2",u),n.on("destroy",d),d}(this,t,n,r,i,s),Si.on("new").fire(this)}destroy(){var e;wi.delete(this.doc),this.doc=null,this.destroyed=!0,this.refCount=0,null===(e=this.stopObserving)||void 0===e||e.call(this),this.on=ki(),this.cleanupHandlers.forEach(e=>e())}addCleanupHandler(e){this.cleanupHandlers.push("function"==typeof e?e:()=>e.unsubscribe())}}function xi(t,n){return r(this,void 0,void 0,function*(){var s;const i={};let o,l=!1;for(const c of t)try{switch(c.type){case"u-s":{const e=di(n,c.table,c.prop);if(e){const t={k:c.k,u:c.u};c.r&&(t.r=c.r,o=c.r),i[e.name]=yield e.add(t)}break}case"u-ack":{const e=di(n,c.table,c.prop);e&&(yield n.transaction("rw",e,t=>r(this,void 0,void 0,function*(){let n=yield t.table(e.name).get(Kt);yield t.table(e.name).put(Object.assign(Object.assign({},n||{i:Kt}),{unsentFrom:Math.max((null==n?void 0:n.unsentFrom)||1,c.i+1)}))})));break}case"u-reject":{const t=di(n,c.table,c.prop);if(!t)break;const r=null===(s=yield t.get(c.i))||void 0===s?void 0:s.k;if(null!=r){yield n.transaction("rw",t,n=>(n.idbtrans._rejecting_y_ypdate=!0,t.where("i").aboveOrEqual(c.i).filter(t=>0===e.cmp(t.k,r)&&!(1&~(t.f||0))).delete()));const s=Si.getDocCache(n.dx).find(c.table,r,c.prop);s&&s.destroy()}break}case"in-sync":{const e=Si.getDocCache(n.dx).find(c.table,c.k,c.prop);e&&!e.isSynced&&e.emit("sync",[!0,e]);break}case"y-complete-sync-done":o=c.yServerRev;break;case"outdated-server-rev":l=!0}}catch(e){}return{receivedUntils:i,resyncNeeded:l,yServerRevision:o}})}Si.on=e.Dexie.Events(null,{new:[function(e,t){return e===_i?t:function(){e.apply(this,arguments),t.apply(this,arguments)}}],beforeunload:[function(e,t){return e===_i?t:function(){var n=e.apply(this,arguments);if(n&&"function"==typeof n.then){for(var r=this,s=arguments.length,i=new Array(s);s--;)i[s]=arguments[s];return n.then(function(){return t.apply(r,i)})}return t.apply(this,arguments)}}]}),Si.getDocCache=fi,e.Dexie.DexieYProvider?Si=e.Dexie.DexieYProvider||Si:e.Dexie.DexieYProvider=Si;function Ei(t,n,s){return r(this,arguments,void 0,function*(t,n,{yDownloadedRealms:s,realms:c}){if(s&&c&&c.every(e=>"*"===s[e]))return;const a=yield Ze(t),u={"Content-Type":"application/json",Accept:"application/octet-stream"};a&&(u.Authorization=`Bearer ${a.accessToken}`);const d=yield fetch(`${n}/y/download`,{body:At.stringify({downloadedRealms:s||{}}),method:"POST",headers:u,credentials:"include"});if(!d.ok)throw new Error(`Failed to download Yjs documents from server. Status: ${d.status}`);yield async function(e,...t){let n=e();for(let e=0;e<t.length;e++)n=t[e](n);for await(const e of n);}(function(e){return async function*(){if(!e.body)throw new Error("Response body is not readable");const t=e.body.getReader();try{for(;;){const{done:e,value:n}=await t.read();if(e)return;yield n}}finally{t.releaseLock()}}}(d),Je,function(s){return o(this,arguments,function*(){var o,c,a,u;let d=null,h=null,f=null,p=[];function g(e){return r(this,void 0,void 0,function*(){const r=p[p.length-1];if(p.length>0){if(!d||!h||!f)throw new Error(`Protocol error from ${n}/y/download`);const e=di(t,h,f);e&&(yield e.bulkAdd(p)),p=[]}d&&(h&&f&&r||e)&&(yield t.$syncState.update("syncState",t=>{const n=t.yDownloadedRealms||{};n[d]=e?"*":{tbl:h,prop:f,key:r.k},t.yDownloadedRealms=n}))})}try{try{for(var y,m=!0,v=l(s);!(o=(y=yield i(v.next())).done);m=!0){u=y.value,m=!1;const e=new Te(u);for(;je(e);)switch(Pe(e)){case 1:yield i(g(!0)),d=Ne(e);break;case 2:yield i(g(!1)),h=Ne(e),f=Ne(e);break;case 3:{const t=We(e),n=Le(e);p.push({k:t,u:n});break}}yield i(g(!1))}}catch(e){c={error:e}}finally{try{m||o||!(a=v.return)||(yield i(a.call(v)))}finally{if(c)throw c.error}}yield i(g(!0))}catch(t){throw t instanceof e.DexieError||(yield i(g(!1))),t}})})})}const Ci="currentSyncWorker";function Ii(e,t,n,s){return Di(e,t,n,s).then(t=>((null==s?void 0:s.justCheckIfNeeded)||e.syncStateChangedEvent.next({phase:"in-sync"}),t)).catch(i=>r(this,void 0,void 0,function*(){return(null==s?void 0:s.justCheckIfNeeded)?Promise.reject(i):$t&&(null==s?void 0:s.retryImmediatelyOnFetchError)&&"TypeError"===(null==i?void 0:i.name)&&/fetch/.test(null==i?void 0:i.message)?(e.syncStateChangedEvent.next({phase:"error",error:i}),yield new Promise(e=>setTimeout(e,500)),yield Ii(e,t,n,Object.assign(Object.assign({},s),{retryImmediatelyOnFetchError:!1}))):(yield e.$syncState.update("syncState",{timestamp:new Date,error:""+i}),e.syncStateChangedEvent.next({phase:$t?"error":"offline",error:new Error(""+(null==i?void 0:i.message)||i)}),Promise.reject(i))}))}function Di(e,t,n){return r(this,arguments,void 0,function*(e,t,n,{isInitialSync:s,cancelToken:i,justCheckIfNeeded:o,purpose:l}={isInitialSync:!1}){var a;if(!(null===(a=e.cloud.options)||void 0===a?void 0:a.databaseUrl))throw new Error("Internal error: sync must not be called when no databaseUrl is configured");const{databaseUrl:u}=t,d=yield e.getCurrentUser(),h=d.isLoggedIn?k(e):[],f=h.map(t=>e.table(S(t.name))),p=yield e.getPersistedSyncState(),g=d.isLoggedIn,y=g?function(e,t){const n=(null==t?void 0:t.syncedTables)||[];return k(e).filter(e=>!n.includes(e.name))}(e,p):[];Nt(i);const m=y.length>0;if(m){if(o)return!0;yield e.transaction("rw",y,e=>r(this,void 0,void 0,function*(){e.idbtrans.disableChangeTracking=!0,e.idbtrans.disableAccessControl=!0,yield function(e,t,n){return r(this,void 0,void 0,function*(){const r=new Set(n||[]);for(const n of e)"members"===n.name?yield n.toCollection().modify(e=>{r.has(e.realmId)||e.userId&&e.userId!==c.userId||(e.userId=t.userId)}):"roles"===n.name||("realms"===n.name?yield n.toCollection().modify(e=>{r.has(e.realmId)||void 0!==e.owner&&e.owner!==c.userId||(e.owner=t.userId)}):yield n.toCollection().modify(e=>{e.realmId&&r.has(e.realmId)||(e.owner&&e.owner!==c.userId||(e.owner=t.userId),e.realmId&&e.realmId!==c.userId||(e.realmId=t.userId))}))})}(y,d,null==p?void 0:p.realms)})),Nt(i)}const[v,b,_,{yMessages:w,lastUpdateIds:E}]=yield e.transaction("r",e.tables,()=>r(this,void 0,void 0,function*(){const t=yield e.getPersistedSyncState();let s=yield e.$baseRevs.toArray();s=s.filter(e=>h.some(t=>t.name===e.tableName));let o=yield I(f,e);const l=yield function(e,t){return r(this,void 0,void 0,function*(){const n=[],r={};for(const s of t)if(s.schema.yProps)for(const t of s.schema.yProps){const i=e.table(t.updatesTable),o=yield i.get(Kt),l=(null==o?void 0:o.unsentFrom)||1,c=(null==o?void 0:o.receivedUntil)||0,a=Math.min(l,c+1),u=yield Ht(i,a);u.length>0&&(r[i.name]=u[u.length-1].i);const d={};for(const e of u){const t=!(1&~(e.f||0));if(t&&e.i<l)continue;const n=JSON.stringify(e.k)+"/"+t;let r=d[n];r?(r.u.push(e.u),r.i=Math.max(e.i,r.i)):(d[n]=r={i:e.i,k:e.k,isLocal:t,u:[]},r.u.push(e.u))}for(const{k:e,isLocal:r,u:i,i:o}of Object.values(d)){const l=1===i.length?i[0]:Lr(i);if(r)n.push({type:"u-c",table:s.name,prop:t.prop,k:e,u:l,i:o});else{const r=Ur(l);n.push({type:"sv",table:s.name,prop:t.prop,k:e,sv:r})}}}return{yMessages:n,lastUpdateIds:r}})}(e,h);if(Nt(i),m){const e=[...(null==p?void 0:p.realms)||[],...(null==p?void 0:p.inviteRealms)||[]],c=yield function(e,t,n,s){return r(this,void 0,void 0,function*(){const i=`upload-${D(8)}`;if(t.isLoggedIn&&e.length>0){const o=new Set(s||[]);return(yield Promise.all(e.map(e=>r(this,void 0,void 0,function*(){const{extractKey:r}=e.core.schema.primaryKey;if(!r)return{table:e.name,muts:[]};const s=n[e.name],l=(null==s?void 0:s.generatedGlobalId)?e.filter(e=>{return r(e),!o.has(e.realmId||"")&&(t=r(e),!(n=null==s?void 0:s.idPrefix)||"string"==typeof t&&t.startsWith(n));var t,n}):e.filter(e=>{const t=r(e);return!o.has(e.realmId||"")&&j(t)}),c=yield l.toArray();if(c.length>0){const n={type:"upsert",values:c,keys:c.map(r),userId:t.userId,txid:i};return{table:e.name,muts:[n]}}return{table:e.name,muts:[]}})))).filter(e=>e.muts.length>0)}return[]})}(y,d,n,e);return Nt(i),o=o.concat(c),[o,t,s,l]}return[o,t,s,l]})),C=v.some(e=>e.muts.some(e=>e.keys.length>0))||w.some(e=>"u-c"===e.type);if(o)return C;if("push"===l&&!C)return!1;const O=Ft(v,null==b?void 0:b.latestRevisions),A=(null==b?void 0:b.clientIdentity)||T(16);Nt(i);const U=yield Mt(v,w,b,_,e,u,n,A,d),{done:L,newSyncState:P}=yield e.transaction("rw",e.tables,t=>r(this,void 0,void 0,function*(){t.idbtrans.disableChangeTracking=!0,t.idbtrans.disableAccessControl=!0;for(const e of Object.keys(n))U.schema[e]&&(n[e]=U.schema[e]);yield e.$syncState.put(n,"schema");const s=yield I(f,e,{since:O});for(const t of f){const n=x(t.name);if(s.some(e=>e.table===n&&e.muts.length>0)){if(O[n]){const r=O[n]||0;yield Promise.all([t.where("rev").belowOrEqual(r).delete(),e.$baseRevs.where(":id").between([n,-1/0],[n,r+1],!0,!0).reverse().offset(1).delete()])}}else yield Promise.all([t.clear(),e.$baseRevs.where({tableName:n}).delete()])}Ft(s,O),yield Bt(e,n,O,U.serverRevision);const i=yield e.getPersistedSyncState();yield function(e,t,n){return r(this,void 0,void 0,function*(){const r=new Set,s=new Set,i=n?n.realms:[],o=n?n.inviteRealms:[],l=new Set(t.realms),c=new Set(t.realms.concat(t.inviteRealms));for(const e of i)l.has(e)||(s.add(e),c.has(e)||r.add(e));for(const e of o.concat(i))c.has(e)||r.add(e);if(r.size>0||s.size>0){const t=k(e);for(const e of t){let t=["realms","members","roles"].includes(e.name)?r:s;0!==t.size&&(e.schema.indexes.some(e=>"realmId"===e.keyPath||Array.isArray(e.keyPath)&&"realmId"===e.keyPath[0])?yield e.where("realmId").anyOf([...t]).delete():yield e.filter(e=>!!(null==e?void 0:e.realmId)&&t.has(e.realmId)).delete())}}if(s.size>0&&(null==n?void 0:n.yDownloadedRealms))for(const e of s)delete n.yDownloadedRealms[e]})}(e,U,i);const o=i||{syncedTables:[],latestRevisions:{},realms:[],inviteRealms:[],clientIdentity:A};g&&(o.syncedTables=h.map(e=>e.name).concat(y.map(e=>e.name))),o.latestRevisions=O,o.remoteDbId=U.dbId,o.initiallySynced=!0,o.realms=U.realms,o.inviteRealms=U.inviteRealms,o.serverRevision=U.serverRevision,o.yServerRevision=U.serverRevision,o.timestamp=new Date,delete o.error;const l=Oi(U.changes,s);if(yield Vt(l,e),U.yMessages){const{receivedUntils:t,resyncNeeded:n,yServerRevision:s}=yield xi(U.yMessages,e);s&&(o.yServerRevision=s),yield function(e,t,n){return r(this,void 0,void 0,function*(){var s,i,o,l,c;const a={};for(const[t,n]of Object.entries(e))null!==(s=a[t])&&void 0!==s||(a[t]={}),a[t].unsentFrom=n+1;for(const[e,n]of Object.entries(t))null!==(i=a[e])&&void 0!==i||(a[e]={}),a[e].receivedUntil=n;const u=Object.values(n.dx._dbSchema).filter(e=>e.yProps).map(e=>e.yProps.map(e=>e.updatesTable)).flat();for(const e of u){const t=a[e],s=null!==(o=null==t?void 0:t.unsentFrom)&&void 0!==o?o:1,i=null!==(c=null!==(l=null==t?void 0:t.receivedUntil)&&void 0!==l?l:(yield n.table(e).where("i").between(1,1/0).reverse().limit(1).primaryKeys())[0])&&void 0!==c?c:0;yield n.transaction("rw",e,()=>r(this,void 0,void 0,function*(){const t=yield n.table(e).get(Kt);t?(t.unsentFrom=Math.max(s,t.unsentFrom||1),t.receivedUntil=Math.max(i,t.receivedUntil||0),yield n.table(e).put(t)):yield n.table(e).add({i:Kt,unsentFrom:s,receivedUntil:i})}))}})}(E,t,e),n&&(o.yDownloadedRealms={})}return e.$syncState.put(o,"syncState"),{done:0===s.length,newSyncState:o}}));if(!L)return yield Rt(e),yield Di(e,t,n,{isInitialSync:s,cancelToken:i});const R=Object.values(n).some(e=>{var t;return null===(t=e.yProps)||void 0===t?void 0:t.length}),M=!!U.yMessages;if(R&&M)try{yield Ei(e,u,P)}catch(e){}return e.syncCompleteEvent.next(),!1})}function Oi(e,t){const n={};R(n,e);const r={};return R(r,t),function(e,t){for(const[n,r]of Object.entries(t))for(const[t,s]of Object.entries(r))switch(s.type){case"ups":{const r=e[n]?.[t];if(r)switch(r.type){case"ups":case"upd":delete e[n][t]}}break;case"del":delete e[n]?.[t];break;case"upd":{const r=e[n]?.[t];if(r)switch(r.type){case"ups":for(const[e,t]of Object.entries(s.mod))A(r.val,e,t);break;case"del":break;case"upd":for(const e of Object.keys(s.mod))delete r.mod[e]}break}}}(n,r),function(e,t){const n={};for(const[t,r]of Object.entries(e))for(const[e,s]of Object.entries(r)){const r=n[t]||(n[t]={});(r[s.type]||(r[s.type]=[])).push({key:e,...s})}const r=[];for(const[e,s]of Object.entries(n)){const n={table:e,muts:[]};for(const[e,r]of Object.entries(s))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 Ai(s){const i=[],o=new t.BehaviorSubject(!0),l=new t.BehaviorSubject(null);let c=!1,a=new Array(10).fill(0);return l.subscribe(()=>r(this,void 0,void 0,function*(){if(!c&&i.length>0){c=!0,a.shift(),a.push(Date.now()),o.next(!1);try{yield function(){return r(this,void 0,void 0,function*(){for(var o,l,c,a,u,d;i.length>0;){const h=i.shift();try{yield t.firstValueFrom(s.cloud.syncState.pipe(n.filter(({phase:e})=>"in-sync"===e||"error"===e)));const i=s.cloud.persistedSyncState.value;if(!h)continue;switch(h.type){case"token-expired":const t=s.cloud.currentUser.value,n=yield tt(s.cloud.options.databaseUrl,t);yield s.table("$logins").update(t.userId,{accessToken:n.accessToken,accessTokenExpiration:n.accessTokenExpiration,claims:n.claims,license:n.license,data:n.data});break;case"realm-added":(null===(o=null==i?void 0:i.realms)||void 0===o?void 0:o.includes(h.realm))||(null===(l=null==i?void 0:i.inviteRealms)||void 0===l?void 0:l.includes(h.realm))||(yield s.cloud.sync({purpose:"pull",wait:!0}));break;case"realm-accepted":(null===(c=null==i?void 0:i.realms)||void 0===c?void 0:c.includes(h.realm))||(yield s.cloud.sync({purpose:"pull",wait:!0}));break;case"realm-removed":((null===(a=null==i?void 0:i.realms)||void 0===a?void 0:a.includes(h.realm))||(null===(u=null==i?void 0:i.inviteRealms)||void 0===u?void 0:u.includes(h.realm)))&&(yield s.cloud.sync({purpose:"pull",wait:!0}));break;case"realms-changed":yield s.cloud.sync({purpose:"pull",wait:!0});break;case"changes":if("error"===(null===(d=s.cloud.syncState.value)||void 0===d?void 0:d.phase)){y(s,"pull");break}yield s.transaction("rw",s.dx.tables,t=>r(this,void 0,void 0,function*(){t.idbtrans.disableChangeTracking=!0,t.idbtrans.disableAccessControl=!0;const[n,r,i]=yield Promise.all([s.getSchema(),s.getPersistedSyncState(),s.getCurrentUser()]);if(!r||!n||!i)return;if(h.baseRev!==r.serverRevision)return void("string"!=typeof h.baseRev||"bigint"!=typeof r.serverRevision&&"object"!=typeof r.serverRevision||y(s,"pull"));if((yield e.waitFor(w(r)))!==h.realmSetHash)return void y(s,"pull");let o=[];if(i.isLoggedIn){const e=k(s).map(e=>s.table(S(e.name)));o=yield I(e,s)}if(h.changes.length>0){const e=Oi(h.changes,o);yield Vt(e,s)}r.latestRevisions=Ft(o,r.latestRevisions),r.serverRevision=h.newRev,yield Bt(s,n,r.latestRevisions,h.newRev),yield s.$syncState.put(r,"syncState")}))}}catch(e){}}})}()}finally{a[a.length-1]-a[0]<1e4&&(yield new Promise(e=>setTimeout(e,1e3))),c=!1,o.next(!0)}}})),{enqueue:function(e){i.push(e),l.next(null)},readyToServe:o}}const Ti=new WeakMap,Ui={members:"@id, [userId+realmId], [email+realmId], realmId",roles:"[realmId+name]",realms:"@realmId",$jobs:"",$syncState:"",$baseRevs:"[tableName+clientRev]",$logins:"claims.sub, lastLogin"};let ji=0;function Li(e){"vip"in e&&(e=e.vip);let n=Ti.get(e.cloud);if(!n){const r=new t.Subject;let s=new f(`syncstatechanged-${e.name}`),i=new f(`synccomplete-${e.name}`);r.id=++ji;let o=!1;n={get name(){return e.name},close:()=>e.close(),transaction:e.transaction.bind(e),table:e.table.bind(e),get tables(){return e.tables},cloud:e.cloud,get $jobs(){return e.table("$jobs")},get $syncState(){return e.table("$syncState")},get $baseRevs(){return e.table("$baseRevs")},get $logins(){return e.table("$logins")},get realms(){return e.realms},get members(){return e.members},get roles(){return e.roles},get initiallySynced(){return o},localSyncEvent:r,get syncStateChangedEvent(){return s},get syncCompleteEvent(){return i},dx:e};const l={getCurrentUser:()=>n.$logins.toArray().then(e=>e.find(e=>e.isLoggedIn)||c),getPersistedSyncState:()=>n.$syncState.get("syncState"),getSchema:()=>n.$syncState.get("schema").then(e=>{if(e)for(const t of n.tables)t.schema.primKey&&t.schema.primKey.keyPath&&e[t.name]&&(e[t.name].primaryKey=Pi(t.schema.primKey.keyPath));return e}),getOptions:()=>n.$syncState.get("options"),setInitiallySynced(e){o=e},reconfigure(){s=new f(`syncstatechanged-${e.name}`),i=new f(`synccomplete-${e.name}`)}};Object.assign(n,l),n.messageConsumer=Ai(n),n.messageProducer=new t.Subject,Ti.set(e.cloud,n)}return n}function Pi(e){return"string"==typeof e?e:e?"["+[].join.call(e,"+")+"]":""}const Ri=new WeakMap;class Mi{constructor(e,t){Ri.set(this,e),Object.assign(this,t)}static load(e,t){return e.table("$logins").get(t).then(n=>new Mi(e,n||{userId:t,claims:{sub:t},lastLogin:new Date(0)}))}save(){return r(this,void 0,void 0,function*(){Ri.get(this).table("$logins").put(this)})}}function Ni(e,n){return t.firstValueFrom(t.from(e).pipe(t.filter(n)))}function $i(e){return r(this,void 0,void 0,function*(){const t=yield Bi(e);if(t){if(!(yield function(e,t,n){return r(this,void 0,void 0,function*(){const r=[{type:"warning",messageCode:"LOGOUT_CONFIRMATION",message:"{numUnsyncedChanges} unsynced changes will get lost!\n Logout anyway?",messageParams:{currentUserId:t,numUnsyncedChanges:n.toString()}}];return yield Ye(e,{type:"logout-confirmation",title:"Confirm Logout",alerts:r,fields:{},submitLabel:"Confirm logout",cancelLabel:"Cancel"}).then(()=>!0).catch(()=>!1)})}(e.cloud.userInteraction,e.cloud.currentUserId,t)))throw new Error("User cancelled logout due to unsynced changes");yield Bi(e,{deleteUnsyncedData:!0})}})}function Bi(e){return r(this,arguments,void 0,function*(e,{deleteUnsyncedData:t=!1}={}){const[n,s]=yield e.dx.transaction("rw",e.dx.tables,n=>r(this,void 0,void 0,function*(){const r=n.idbtrans;r.disableChangeTracking=!0,r.disableAccessControl=!0;const s=n.storeNames.filter(e=>e.endsWith("_mutations")),i=(yield Promise.all(s.map(e=>n.table(e).count()))).reduce((e,t)=>e+t,0);if(i>0&&!t)return[i,!1];e.$syncState.delete("syncState");for(const t of e.dx.tables)"$jobs"!==t.name&&"$syncState"!==t.name&&t.clear();return[i,!0]}));return s&&(yield Ni(e.cloud.currentUser,e=>e.userId===c.userId),yield e.cloud.sync({purpose:"pull",wait:!0})),n})}function Fi(e,...t){globalThis.console[e](...t)}function Wi(e,t){return r(this,void 0,void 0,function*(){var n;const s=yield e.getCurrentUser(),i=s.userId;if(s.isLoggedIn&&(!t||!t.email&&!t.userId)){if("ok"===((null===(n=s.license)||void 0===n?void 0:n.status)||"ok")&&s.accessToken&&(!s.accessTokenExpiration||s.accessTokenExpiration.getTime()>Date.now()))return!1;if(s.refreshToken&&(!s.refreshTokenExpiration||s.refreshTokenExpiration.getTime()>Date.now()))return yield Ze(e),!1}const o=new Mi(e,{claims:{},lastLogin:new Date(0)});return yield et(e.cloud.options.databaseUrl,o,e.cloud.options.fetchTokens||function(e){const{userInteraction:t}=e.cloud;return function(n){return r(this,arguments,void 0,function*({public_key:n,hints:r}){var s;let i;const o=null===(s=e.cloud.options)||void 0===s?void 0:s.databaseUrl;if(!o)throw new Error("No database URL given.");if("demo"===(null==r?void 0:r.grant_type))i={demo_user:yield Qe(t,"Enter a demo user email",(null==r?void 0:r.email)||(null==r?void 0:r.userId)),grant_type:"demo",scopes:["ACCESS_DB"],public_key:n};else if((null==r?void 0:r.otpId)&&r.otp)i={grant_type:"otp",otp_id:r.otpId,otp:r.otp,scopes:["ACCESS_DB"],public_key:n};else{const e=yield Qe(t,"Enter email address",null==r?void 0:r.email);i=/@demo.local$/.test(e)?{demo_user:e,grant_type:"demo",scopes:["ACCESS_DB"],public_key:n}:{email:e,grant_type:"otp",scopes:["ACCESS_DB"]}}const l=yield fetch(`${o}/token`,{body:JSON.stringify(i),method:"post",headers:{"Content-Type":"application/json",mode:"cors"}});if(200!==l.status){const e=yield l.text();throw yield Ge(t,"Token request failed",{type:"error",messageCode:"GENERIC_ERROR",message:e,messageParams:{}}).catch(()=>{}),new Ut(l,e)}const c=yield l.json();if("tokens"===c.type||"error"===c.type)return c;if("otp"===i.grant_type&&"email"in i){if("otp-sent"!==c.type)throw new Error(`Unexpected response from ${o}/token`);const e=yield Xe(t,i.email),r=Object.assign(Object.assign({},i),{otp:e||"",otp_id:c.otp_id,public_key:n});let s=yield fetch(`${o}/token`,{body:JSON.stringify(r),method:"post",headers:{"Content-Type":"application/json"},mode:"cors"});for(;401===s.status;){const e=yield s.text();r.otp=yield Xe(t,i.email,{type:"error",messageCode:"INVALID_OTP",message:e,messageParams:{}}),s=yield fetch(`${o}/token`,{body:JSON.stringify(r),method:"post",headers:{"Content-Type":"application/json"},mode:"cors"})}if(200!==s.status){const e=yield s.text();throw new Ut(s,e)}return yield s.json()}throw new Error(`Unexpected response from ${o}/token`)})}}(e),e.cloud.userInteraction,t),i!==c.userId&&o.userId!==i&&(yield $i(e)),yield function(e,t){return r(this,void 0,void 0,function*(){const n=e.table("$logins");yield e.transaction("rw",n,e=>r(this,void 0,void 0,function*(){const e=yield n.toArray();yield Promise.all(e.filter(e=>e.userId!==t.userId&&e.isLoggedIn).map(e=>(e.isLoggedIn=!1,n.put(e)))),t.isLoggedIn=!0,t.lastLogin=new Date;try{yield t.save()}catch(e){try{"DataCloneError"===e.name&&(Fi("debug","Login context property names:",Object.keys(t)),Fi("debug","Login context property names:",Object.keys(t)),Fi("debug","Login context:",t),Fi("debug","Login context JSON:",JSON.stringify(t)))}catch(e){}throw e}})),yield Ni(e.cloud.currentUser,e=>e.userId===t.userId)})}(e,o),y(e,"pull"),o.userId!==i})}const Vi="undefined"!=typeof InstallTrigger,Ki="undefined"!=typeof navigator&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\/|Edge\//.test(navigator.userAgent),Hi=Ki?[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]:NaN,zi=Ki&&Hi<=605||Vi,Ji="undefined"!=typeof self&&"clients"in self&&!self.document;const{toString:qi}={};function Yi(e){return qi.call(e).slice(8,-1)}function Gi(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)}function Qi(e,t){return(1&t?e[0].toUpperCase():e[0].toLowerCase())+(2&t?e[1].toUpperCase():e[1].toLowerCase())+(4&t?e[2].toUpperCase():e[2].toLowerCase())}const Xi=/b|c|d|f|g|h|j|k|l|m|n|p|q|r|s|t|v|x|y|z/i;function Zi(e){return e>="A"&&e<="Z"}let eo=0;function to(e,t){const n=new Uint8Array(18),r=new Uint8Array(n.buffer,0,6),s=Date.now();eo>=s?++eo:eo=s,r[0]=eo/1099511627776,r[1]=eo/4294967296,r[2]=eo/16777216,r[3]=eo/65536,r[4]=eo/256,r[5]=eo;const i=new Uint8Array(n.buffer,6);crypto.getRandomValues(i);return e+ft(new Uint8Array(n.buffer))+(t||"")}function no(t){return{stack:"dbcore",name:"idGenerationMiddleware",level:1,create:n=>Object.assign(Object.assign({},n),{table:r=>{const s=n.table(r);return Object.assign(Object.assign({},s),{mutate:n=>{var i,o;const l=n.trans;if("versionchange"===l.mode&&(l.disableChangeTracking=!0,l.disableAccessControl=!0),l.disableChangeTracking)return s.mutate(n);if("add"===n.type||"put"===n.type){const l=null===(i=t.cloud.schema)||void 0===i?void 0:i[r];if(null==l?void 0:l.generatedGlobalId){if((null===(o=t.cloud.options)||void 0===o?void 0:o.databaseUrl)&&!t.initiallySynced){const e=Gi(s.schema.primaryKey,n);return s.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 s.mutate(n)})}return function(n,i){let o=null;const l=Gi(s.schema.primaryKey,n);return l.forEach((c,a)=>{if(void 0===c){const r=n.values[a].realmId||t.cloud.currentUserId,c=r.substr(r.length-3);l[a]=to(i,c),s.schema.primaryKey.outbound||(o||(o=n.values.slice()),o[a]=e.deepClone(o[a]),e.setByKeyPath(o[a],s.schema.primaryKey.keyPath,l[a]))}else if("string"!=typeof c||!c.startsWith(i)&&!c.startsWith("#"+i))throw new e.ConstraintError(`The ID "${c}" is not valid for table "${r}". Primary '@' keys requires the key to be prefixed with "${i}" (or "#${i}).\nIf you want to generate IDs programmatically, remove '@' from the schema to get rid of this constraint. Dexie Cloud supports custom IDs as long as they are random and globally unique.`)}),s.mutate(Object.assign(Object.assign({},n),{keys:l,values:o||n.values}))}(n,l.idPrefix)}if(null==l?void 0:l.markedForSync){Gi(s.schema.primaryKey,n).forEach((t,n)=>{if(!j(t)){const n=Array.isArray(t)?t.map(Yi).join(","):Yi(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 s.mutate(n)}})}})}}let ro=0;function so(e,t){return function(n){const{readers:r,writers:s}=n.trans[t]||(n.trans[t]={writers:[],readers:[]}),i=s.length,o=(i>0?s[i-1].then(()=>e(n),()=>e(n)):e(n)).finally(()=>{r.splice(r.indexOf(o))});return r.push(o),o}}function io(e,t){return function(n){const{readers:r,writers:s}=n.trans[t]||(n.trans[t]={writers:[],readers:[]});let i=(s.length>0?s[s.length-1].then(()=>e(n),()=>e(n)):r.length>0?(o=r,new Promise(e=>{0===o.length&&e([]);let t=o.length;const n=new Array(t);o.forEach((r,s)=>Promise.resolve(r).then(e=>n[s]={status:"fulfilled",value:e},e=>n[s]={status:"rejected",reason:e}).then(()=>--t||e(n)))})).then(()=>e(n)):e(n)).finally(()=>{s.shift()});var o;return s.push(i),i}}const oo=new t.BehaviorSubject(new Set);function lo(e){var t,n,r,s;return(null===(t=e.cloud.options)||void 0===t?void 0:t.disableEagerSync)||"ok"!==(null===(r=null===(n=e.cloud.currentUser.value)||void 0===n?void 0:n.license)||void 0===r?void 0:r.status)||!(null===(s=e.cloud.options)||void 0===s?void 0:s.databaseUrl)}function co({currentUserObservable:t,db:n}){return{stack:"dbcore",name:"MutationTrackingMiddleware",level:1,create:r=>{const s=new Set(r.schema.tables.map(e=>e.name)),i=r.schema.tables.filter(e=>!/^\$/.test(e.name)),o=new Map;for(const e of i){const t=`$${e.name}_mutations`;s.has(t)&&o.set(e.name,r.table(t))}return Object.assign(Object.assign({},r),{transaction:(e,s)=>{let i;if("readwrite"===s){const t=e.filter(e=>{var t,r;return null===(r=null===(t=n.cloud.schema)||void 0===t?void 0:t[e])||void 0===r?void 0:r.markedForSync}).map(e=>S(e));i=r.transaction([...e,...t],s)}else i=r.transaction(e,s);if("readwrite"===s){i.txid=D(16),i.opCount=0,i.currentUser=t.value,oo.value.add(i),oo.next(oo.value);const e=()=>{i.removeEventListener("complete",r),i.removeEventListener("error",e),i.removeEventListener("abort",e),oo.value.delete(i),oo.next(oo.value)},r=()=>{i.mutationsAdded&&!lo(n)&&y(n,"push"),e()};i.addEventListener("complete",r),i.addEventListener("error",e),i.addEventListener("abort",e)}return i},table:t=>{const s=r.table(t);if(/^\$/.test(t))return t.endsWith("_mutations")?Object.assign(Object.assign({},s),{mutate:e=>("add"!==e.type&&"put"!==e.type||(e.trans.mutationsAdded=!0),s.mutate(e))}):"$logins"===t?Object.assign(Object.assign({},s),{mutate:e=>s.mutate(e).then(t=>(e.trans.mutationsAdded=!0,t)).catch(e=>Promise.reject(e))}):s;const{schema:i}=s,l=o.get(t);return l?function(e){const t="$lock"+ ++ro;return Object.assign(Object.assign({},e),{count:so(e.count,t),get:so(e.get,t),getMany:so(e.getMany,t),openCursor:so(e.openCursor,t),query:so(e.query,t),mutate:io(e.mutate,t)})}(Object.assign(Object.assign({},s),{mutate:e=>{var r,o,l;const a=e.trans;return a.txid?a.disableChangeTracking?s.mutate(e):(null===(o=null===(r=n.cloud.schema)||void 0===r?void 0:r[t])||void 0===o?void 0:o.markedForSync)&&(null===(l=a.currentUser)||void 0===l?void 0:l.isLoggedIn)?"deleteRange"===e.type?s.query({query:{range:e.range,index:i.primaryKey},trans:e.trans,values:!1}).then(t=>c({type:"delete",keys:t.result,trans:e.trans,criteria:{index:null,range:e.range}})):c(e):s.mutate(e):s.mutate(e)}})):s;function c(r){var o,c;const a=r.trans,u=null===(c=null===(o=n.cloud.options)||void 0===o?void 0:o.unsyncedProperties)||void 0===c?void 0:c[t],{txid:d,currentUser:{userId:h}}=a,{type:f}=r,p=++a.opCount;function g(e){if(!u)return e;let t=e;for(const n of Object.keys(e))u.some(e=>n===e||n.startsWith(e+"."))&&(t===e&&(t=Object.assign({},e)),delete t[n]);return t}return s.mutate(r).then(t=>{var n;const{numFailures:s,failures:o}=t;let c="delete"===f?r.keys:t.results,y="values"in r?r.values:[],m="changeSpec"in r?r.changeSpec:void 0,v="updates"in r?r.updates:void 0,b=!(!v||!("upsert"in r))&&r.upsert;if(s&&(c=c.filter((e,t)=>!o[t]),y=y.filter((e,t)=>!o[t])),u){if(y=y.map(e=>{const t=Object.assign({},e);for(const e of u)delete t[e];return t}),m&&(m=g(m),0===Object.keys(m).length))return t;if(v){let t=v.changeSpecs.map(g),n={keys:[],changeSpecs:[]};const r=new e.RangeSet;let s=!1;if(!b){for(let e=0,i=t.length;e<i;++e)Object.keys(t[e]).length>0?(n.keys.push(v.keys[e]),n.changeSpecs.push(t[e]),r.addKey(v.keys[e])):s=!0;if(v=n,s){let e=[],t=[];for(let n=0,s=c.length;n<s;++n)r.hasKey(c[n])&&(e.push(c[n]),t.push(y[n]));c=e,y=t}}}}const _=Date.now();let w="criteria"in r&&r.criteria?Object.assign(Object.assign({},r.criteria),{index:r.criteria.index===i.primaryKey.keyPath?null:r.criteria.index}):void 0;if(u&&(null==w?void 0:w.index)){const e=null===(n=i.indexes.find(e=>e.name===w.index))||void 0===n?void 0:n.keyPath;(e?"string"==typeof e?[e]:e:[]).some(e=>null==u?void 0:u.includes(e))&&(w=void 0)}const k="delete"===r.type?{type:"delete",ts:_,opNo:p,keys:c,criteria:w,txid:d,userId:h}:"add"===r.type?{type:"insert",ts:_,opNo:p,keys:c,txid:d,userId:h,values:y}:b&&v?{type:"upsert",ts:_,opNo:p,keys:c,values:y,changeSpecs:v.changeSpecs.filter((e,t)=>!o[t]),txid:d,userId:h}:w&&m?{type:"modify",ts:_,opNo:p,keys:c,criteria:w,changeSpec:m,txid:d,userId:h}:m?{type:"update",ts:_,opNo:p,keys:c,changeSpecs:c.map(()=>m),txid:d,userId:h}:v?{type:"update",ts:_,opNo:p,keys:v.keys,changeSpecs:v.changeSpecs,txid:d,userId:h}:{type:"upsert",ts:_,opNo:p,keys:c,values:y,txid:d,userId:h};return"isAdditionalChunk"in r&&r.isAdditionalChunk&&(k.isAdditionalChunk=!0),c.length>0||w?l.mutate({type:"add",trans:a,values:[k]}).then(()=>(a.mutationsAdded=!0,t)):t})}}})}}}function ao(e,t){return function(n,r){var s;const i=Object.assign(Object.assign({},Ui),n);Object.keys(Ui).forEach(e=>{const t=i[e];if(null==t)throw new Error(`Cannot delete table ${e} as it is needed for access control of Dexie Cloud`);if(!n[e])return;const r=t.split(",").map(e=>e.trim()),s=Ui[e].split(",").map(e=>e.trim()),o=new Set(r.map(e=>e.replace(/([&*]|\+\+)/g,"")));if(r[0]!==s[0])throw new Error(`Cannot override primary key of table ${e}. Please declare it as {${e}: ${JSON.stringify(Ui[e])}`);for(let t=1;t<s.length;++t){const n=s[t];o.has(n.replace(/([&*]|\+\+)/g,""))||(i[e]+=`,${n}`)}});const o=t.cloud.schema||(t.cloud.schema={}),l=new Set;Object.keys(i).forEach(e=>{var t;const n=null===(t=i[e])||void 0===t?void 0:t.trim(),r=o[e]||(o[e]={});null!=n?(/^\@/.test(n)&&(i[e]=i[e].substr(1),r.generatedGlobalId=!0,r.idPrefix=function(e,t){let n=e[0].toLocaleLowerCase();for(let t=1,r=e.length;t<r&&n.length<3;++t)(Xi.test(e[t])||Zi(e[t]))&&(n+=e[t].toLowerCase());for(;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;)r=Qi(n,e),++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,l),l.add(r.idPrefix)),/^\$/.test(e)||(i[`$${e}_mutations`]="++rev",r.markedForSync=!0),r.deleted&&(r.deleted=!1)):(r.deleted=!0,r.markedForSync=!1,i[`$${e}_mutations`]=null)});const c=e.call(this,i,r);for(const[e,t]of Object.entries(r))if(null===(s=t.yProps)||void 0===s?void 0:s.length){const n=o[e];n&&(n.yProps=t.yProps.map(e=>e.prop))}return c}}function uo(e,t,n){return"undefined"!=typeof navigator&&navigator.locks?navigator.locks.request(e.name+"|"+t,n):n()}const ho=new t.BehaviorSubject(!0),fo=new t.BehaviorSubject(!0);ho.pipe(n.switchMap(e=>e?t.of(!0):t.of(!1).pipe(n.delay(2e4))),n.distinctUntilChanged()).subscribe(fo);const po="undefined"!=typeof document?t.fromEvent(document,"visibilitychange"):t.of({}),go=po.pipe(n.filter(()=>"hidden"===document.visibilityState)),yo=po.pipe(n.filter(()=>"visible"===document.visibilityState)),mo="undefined"!=typeof window?t.merge(yo,t.fromEvent(window,"mousedown"),t.fromEvent(window,"mousemove"),t.fromEvent(window,"keydown"),t.fromEvent(window,"wheel"),t.fromEvent(window,"touchmove")):t.of({});"undefined"!=typeof document&&t.merge(t.of(!0),go,mo).pipe(n.map(()=>"visible"===document.visibilityState),n.tap(e=>{ho.value!==e&&ho.next(e)}),n.switchMap(e=>e?t.of(0).pipe(n.delay(16e4),n.tap(()=>ho.next(!1))):t.of(0))).subscribe(()=>{});class vo extends Error{constructor(){super(...arguments),this.name="TokenExpiredError"}}const bo=new WeakMap,_o=3e4;class wo extends Gt{constructor(e){super(),this.doc=e,this.clientID=e.clientID,this.states=new Map,this.meta=new Map,this._checkInterval=setInterval(()=>{const e=tn();null!==this.getLocalState()&&15e3<=e-this.meta.get(this.clientID).lastUpdated&&this.setLocalState(this.getLocalState());const t=[];this.meta.forEach((n,r)=>{r!==this.clientID&&_o<=e-n.lastUpdated&&this.states.has(r)&&t.push(r)}),t.length>0&&ko(this,t,"timeout")},M(3e3)),e.on("destroy",()=>{this.destroy()}),this.setLocalState({})}destroy(){this.emit("destroy",[this]),this.setLocalState(null),super.destroy(),clearInterval(this._checkInterval)}getLocalState(){return this.states.get(this.clientID)||null}setLocalState(e){const t=this.clientID,n=this.meta.get(t),r=void 0===n?0:n.clock+1,s=this.states.get(t);null===e?this.states.delete(t):this.states.set(t,e),this.meta.set(t,{clock:r,lastUpdated:tn()});const i=[],o=[],l=[],c=[];null===e?c.push(t):null==s?null!=e&&i.push(t):(o.push(t),mn(s,e)||l.push(t)),(i.length>0||l.length>0||c.length>0)&&this.emit("change",[{added:i,updated:l,removed:c},"local"]),this.emit("update",[{added:i,updated:o,removed:c},"local"])}setLocalStateField(e,t){const n=this.getLocalState();null!==n&&this.setLocalState({...n,[e]:t})}getStates(){return this.states}}const ko=(e,t,n)=>{const r=[];for(let n=0;n<t.length;n++){const s=t[n];if(e.states.has(s)){if(e.states.delete(s),s===e.clientID){const t=e.meta.get(s);e.meta.set(s,{clock:t.clock+1,lastUpdated:tn()})}r.push(s)}}r.length>0&&(e.emit("change",[{added:[],updated:[],removed:r},n]),e.emit("update",[{added:[],updated:[],removed:r},n]))},So=new WeakMap;function xo(e){let n=So.get(e);return n||(n=new t.Subject,So.set(e,n)),n}class Eo extends t.Observable{constructor(e,t,n,r,s,i,o,l){super(c=>new Io(e,t,n,r,s,l,c,i,o))}}let Co=0;class Io extends t.Subscription{constructor(e,t,n,r,s,i,o,l,c){super(()=>this.teardown()),this.id=++Co,this.subscriptions=new Set,this.reconnecting=!1,this.db=e,this.databaseUrl=e.cloud.options.databaseUrl,this.rev=t,this.yrev=n,this.realmSetHash=r,this.clientIdentity=s,this.user=i,this.subscriber=o,this.lastUserActivity=new Date,this.messageProducer=l,this.webSocketStatus=c,this.connect()}teardown(){this.disconnect()}disconnect(){if(this.webSocketStatus.next("disconnected"),this.pinger&&(clearInterval(this.pinger),this.pinger=null),this.ws)try{this.ws.close()}catch(e){}this.ws=null;for(const e of this.subscriptions)e.unsubscribe();this.subscriptions.clear()}reconnect(){if(!this.reconnecting){this.reconnecting=!0;try{this.disconnect()}catch(e){}this.connect().catch(()=>{}).then(()=>this.reconnecting=!1)}}connect(){return r(this,void 0,void 0,function*(){if(this.lastServerActivity=new Date,this.pauseUntil&&this.pauseUntil>new Date)return;if(this.ws)throw new Error("Called connect() when a connection is already open");if(!this.databaseUrl)throw new Error("Cannot connect without a database URL");if(this.closed)return;const n=this.user.accessTokenExpiration;if(n&&n<new Date)return void this.subscriber.error(new vo);this.webSocketStatus.next("connecting"),this.pinger=setInterval(()=>r(this,void 0,void 0,function*(){if(this.closed)this.teardown();else if(this.ws)try{this.ws.send(JSON.stringify({type:"ping"})),setTimeout(()=>{this.pinger&&(this.closed?this.teardown():this.lastServerActivity<new Date(Date.now()-2e4)&&this.reconnect())},2e4)}catch(e){this.reconnect()}else this.reconnect()}),3e4);const s=new URL(this.databaseUrl);s.protocol="http:"===s.protocol?"ws":"wss";const i=new URLSearchParams;if(this.subscriber.closed)return;i.set("v","2"),this.rev&&i.set("rev",this.rev),this.yrev&&i.set("yrev",this.yrev),i.set("realmsHash",this.realmSetHash),i.set("clientId",this.clientIdentity),i.set("dxcv",this.db.cloud.version),this.user.accessToken&&i.set("token",this.user.accessToken);const o=this.ws=new WebSocket(`${s}/changes?${i}`);o.binaryType="arraybuffer",o.onclose=e=>{this.pinger&&this.reconnect()},o.onmessage=e=>{if(this.pinger){this.lastServerActivity=new Date;try{const t="string"==typeof e.data?At.parse(e.data):function(e){const t=new Te(e),n=Ne(t);if("outdated-server-rev"===n)return{type:n};if("y-complete-sync-done"===n)return{type:n,yServerRev:Ne(t)};const r=Ne(t),s=Ne(t);switch(n){case"u-ack":case"u-reject":return{type:n,table:r,prop:s,i:Number(Be(t))};default:{const e=We(t);switch(n){case"in-sync":case"doc-close":return{type:n,table:r,prop:s,k:e};case"aware":return{type:n,table:r,prop:s,k:e,u:Le(t)};case"doc-open":return{type:n,table:r,prop:s,k:e,serverRev:We(t),sv:We(t)};case"sv":return{type:n,table:r,prop:s,k:e,sv:Le(t)};case"u-c":return{type:n,table:r,prop:s,k:e,u:Le(t),i:Number(Be(t))};case"u-s":return{type:n,table:r,prop:s,k:e,u:Le(t),r:t.pos<t.arr.length&&Ne(t)||void 0};default:throw new TypeError(`Unknown message type: ${n}`)}}}}(new Uint8Array(e.data));if("error"===t.type)throw new Error(`Error message from dexie-cloud: ${t.error}`);if("aware"===t.type){const e=Si.getDocCache(this.db.dx).find(t.table,t.k,t.prop);if(e){const n=(e=>bo.get(e))(e);n&&((e,t,n)=>{const r=Ue(t),s=tn(),i=[],o=[],l=[],c=[],a=Re(r);for(let t=0;t<a;t++){const t=Re(r);let n=Re(r);const a=JSON.parse(Ne(r)),u=e.meta.get(t),d=e.states.get(t),h=void 0===u?0:u.clock;(h<n||h===n&&null===a&&e.states.has(t))&&(null===a?t===e.clientID&&null!=e.getLocalState()?n++:e.states.delete(t):e.states.set(t,a),e.meta.set(t,{clock:n,lastUpdated:s}),void 0===u&&null!==a?i.push(t):void 0!==u&&null===a?c.push(t):null!==a&&(mn(a,d)||l.push(t),o.push(t)))}(i.length>0||l.length>0||c.length>0)&&e.emit("change",[{added:i,updated:l,removed:c},n]),(i.length>0||o.length>0||c.length>0)&&e.emit("update",[{added:i,updated:o,removed:c},n])})(n,t.u,"server")}}else if("pong"===t.type);else if("doc-open"===t.type){const e=Si.getDocCache(this.db.dx).find(t.table,t.k,t.prop);e&&xo(e).next()}else"u-ack"===t.type||"u-reject"===t.type||"u-s"===t.type||"in-sync"===t.type||"outdated-server-rev"===t.type||"y-complete-sync-done"===t.type?xi([t],this.db).then(e=>r(this,[e],void 0,function*({resyncNeeded:e,yServerRevision:n,receivedUntils:r}){if(n&&(yield this.db.$syncState.update("syncState",{yServerRevision:n})),"u-s"===t.type&&r){const e=di(this.db,t.table,t.prop);if(e){const t=r[e.name];t&&(yield e.update(Kt,{receivedUntil:t}))}}e&&(yield this.db.cloud.sync({purpose:"pull",wait:!0}))})):this.subscriber.next(t)}catch(e){this.subscriber.error(e)}}};try{let n=!1;yield new Promise((e,t)=>{o.onopen=t=>{n=!0,e(null)},o.onerror=e=>{if(n)this.reconnect();else{const n=e.error||new Error("WebSocket Error");this.subscriber.error(n),this.webSocketStatus.next("error"),t(n)}}}),this.subscriptions.add(this.messageProducer.subscribe(e=>{var t,n;this.closed||("ready"===e.type&&"connected"!==this.webSocketStatus.value&&this.webSocketStatus.next("connected"),"ready"===e.type?(this.rev=e.rev,null===(t=this.ws)||void 0===t||t.send(At.stringify(e))):null===(n=this.ws)||void 0===n||n.send(function(e){const t=new se;switch(fe(t,e.type),"table"in e&&fe(t,e.table),"prop"in e&&fe(t,e.prop),e.type){case"u-ack":case"u-reject":me(t,BigInt(e.i));break;case"outdated-server-rev":break;case"y-complete-sync-done":fe(t,e.yServerRev);break;default:switch(be(t,e.k),e.type){case"aware":ge(t,e.u);break;case"doc-open":be(t,e.serverRev),be(t,e.sv);break;case"doc-close":break;case"sv":ge(t,e.sv);break;case"u-c":ge(t,e.u),me(t,BigInt(e.i));break;case"u-s":ge(t,e.u),fe(t,e.r||"")}}return oe(t)}(e)))})),this.user.isLoggedIn&&!lo(this.db)&&this.subscriptions.add(function(n){const s=C(n.tables.filter(e=>{var t,r;return(null===(r=null===(t=n.cloud.schema)||void 0===t?void 0:t[e.name])||void 0===r?void 0:r.markedForSync)&&e.schema.yProps}).map(e=>e.schema.yProps.map(t=>({table:e.name,ydocProp:t.prop,updatesTable:t.updatesTable}))));return t.merge(...s.map(({table:s,ydocProp:i,updatesTable:o})=>{const l=n.table(o);return t.from(l.get(Kt)).pipe(t.switchMap(n=>{let o=(null==n?void 0:n.unsentFrom)||1;return t.from(e.liveQuery(()=>r(this,void 0,void 0,function*(){return(yield Ht(l,o)).filter(e=>e.f&&1&e.f).map(e=>({type:"u-c",table:s,prop:i,k:e.k,u:e.u,i:e.i}))}))).pipe(t.tap(e=>{e.length>0&&(o=e.at(-1).i+1)}))}))})).pipe(t.mergeMap(e=>e))}(this.db).subscribe(this.db.messageProducer))}catch(e){this.pauseUntil=new Date(Date.now()+6e4)}})}}class Do extends Error{constructor(e){super("expired"===e?"License expired":"deactivated"===e?"User deactivated":"Invalid license"),this.name="InvalidLicenseError",e&&(this.license=e)}}function Oo(e){return r(this,void 0,void 0,function*(){var e;yield(e=3e3,new Promise(t=>setTimeout(t,e))),yield t.firstValueFrom(mo)})}function Ao(e){return r(this,void 0,void 0,function*(){var t;return!(!(null===(t=e.cloud.options)||void 0===t?void 0:t.databaseUrl)||!e.cloud.schema)&&(yield Ii(e,e.cloud.options,e.cloud.schema,{justCheckIfNeeded:!0}))})}const To=new WeakMap;function Uo(e,t,n,s){const i=To.get(e);if(i){if(i.pull||"push"===(null==s?void 0:s.purpose))return i.promise;{let r=!1;const o=e.cloud.syncState.subscribe(e=>{"pulling"===e.phase&&(r=!0)});return i.promise.then(()=>{o.unsubscribe()}).catch(e=>(o.unsubscribe(),Promise.reject(e))).then(()=>{if(!r)return Uo(e,t,n,s)})}}const o=function(){return r(this,void 0,void 0,function*(){try{yield Rt(e),yield uo(e,Ci,()=>Ii(e,t,n,s)),To.delete(e)}catch(t){throw To.delete(e),t}})}();return To.set(e,{promise:o,pull:"push"!==(null==s?void 0:s.purpose)}),o}function jo(e,t,n){let r=null,s={cancelled:!1},i=0,o=0;function l(r=1){setTimeout(()=>{const d=c?"pull":"push";o=Date.now(),Uo(e,t,n,{cancelToken:s,retryImmediatelyOnFetchError:!0,purpose:d}).then(()=>{if(s.cancelled)h();else if(c||a)return c=!1,a=!1,l();u=!1,i=0,o=0}).catch(e=>{if(s.cancelled)h(),u=!1,i=0,o=0;else if(r<5){const e=1e3*[0,20,40,300,900][r];i=Date.now()+e,o=0,setTimeout(()=>l(r+1),e)}else u=!1,i=0,o=0})},0)}let c=!1,a=!1,u=!1;const d=e=>{s.cancelled||("pull"===e&&(c=!0),"push"===e&&(a=!0),u?i||o>0&&Date.now():(u=!0,l()))},h=()=>{s.cancelled=!0,r&&r.unsubscribe()};return{start:()=>{r=e.localSyncEvent.subscribe(({purpose:e})=>{d(e||"pull")})},stop:h}}function Lo(e,t){if(e&&t&&t.unsyncedTables)for(const n of t.unsyncedTables)e[n]&&(e[n].markedForSync=!1)}var Po,Ro,Mo,No,$o,Bo,Fo,Wo,Vo,Ko,Ho,zo={},Jo=[],qo=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,Yo=Array.isArray;function Go(e,t){for(var n in t)e[n]=t[n];return e}function Qo(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function Xo(e,t,n){var r,s,i,o={};for(i in t)"key"==i?r=t[i]:"ref"==i?s=t[i]:o[i]=t[i];if(arguments.length>2&&(o.children=arguments.length>3?Po.call(arguments,2):n),"function"==typeof e&&null!=e.defaultProps)for(i in e.defaultProps)void 0===o[i]&&(o[i]=e.defaultProps[i]);return Zo(e,o,r,s,null)}function Zo(e,t,n,r,s){var i={type:e,props:t,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:null==s?++Mo:s,__i:-1,__u:0};return null==s&&null!=Ro.vnode&&Ro.vnode(i),i}function el(e){return e.children}function tl(e,t){this.props=e,this.context=t}function nl(e,t){if(null==t)return e.__?nl(e.__,e.__i+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?nl(e):null}function rl(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 rl(e)}}function sl(e){(!e.__d&&(e.__d=!0)&&No.push(e)&&!il.__r++||$o!=Ro.debounceRendering)&&(($o=Ro.debounceRendering)||Bo)(il)}function il(){for(var e,t,n,r,s,i,o,l=1;No.length;)No.length>l&&No.sort(Fo),e=No.shift(),l=No.length,e.__d&&(n=void 0,r=void 0,s=(r=(t=e).__v).__e,i=[],o=[],t.__P&&((n=Go({},r)).__v=r.__v+1,Ro.vnode&&Ro.vnode(n),hl(t.__P,n,r,t.__n,t.__P.namespaceURI,32&r.__u?[s]:null,i,null==s?nl(r):s,!!(32&r.__u),o),n.__v=r.__v,n.__.__k[n.__i]=n,pl(i,n,o),r.__e=r.__=null,n.__e!=s&&rl(n)));il.__r=0}function ol(e,t,n,r,s,i,o,l,c,a,u){var d,h,f,p,g,y,m,v=r&&r.__k||Jo,b=t.length;for(c=function(e,t,n,r,s){var i,o,l,c,a,u=n.length,d=u,h=0;for(e.__k=new Array(s),i=0;i<s;i++)null!=(o=t[i])&&"boolean"!=typeof o&&"function"!=typeof o?("string"==typeof o||"number"==typeof o||"bigint"==typeof o||o.constructor==String?o=e.__k[i]=Zo(null,o,null,null,null):Yo(o)?o=e.__k[i]=Zo(el,{children:o},null,null,null):null==o.constructor&&o.__b>0?o=e.__k[i]=Zo(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):e.__k[i]=o,c=i+h,o.__=e,o.__b=e.__b+1,-1!=(a=o.__i=cl(o,n,c,d))&&(d--,(l=n[a])&&(l.__u|=2)),null==l||null==l.__v?(-1==a&&(s>u?h--:s<u&&h++),"function"!=typeof o.type&&(o.__u|=4)):a!=c&&(a==c-1?h--:a==c+1?h++:(a>c?h--:h++,o.__u|=4))):e.__k[i]=null;if(d)for(i=0;i<u;i++)null!=(l=n[i])&&!(2&l.__u)&&(l.__e==r&&(r=nl(l)),vl(l,l));return r}(n,t,v,c,b),d=0;d<b;d++)null!=(f=n.__k[d])&&(h=-1==f.__i?zo:v[f.__i]||zo,f.__i=d,y=hl(e,f,h,s,i,o,l,c,a,u),p=f.__e,f.ref&&h.ref!=f.ref&&(h.ref&&ml(h.ref,null,f),u.push(f.ref,f.__c||p,f)),null==g&&null!=p&&(g=p),(m=!!(4&f.__u))||h.__k===f.__k?c=ll(f,c,e,m):"function"==typeof f.type&&void 0!==y?c=y:p&&(c=p.nextSibling),f.__u&=-7);return n.__e=g,c}function ll(e,t,n,r){var s,i;if("function"==typeof e.type){for(s=e.__k,i=0;s&&i<s.length;i++)s[i]&&(s[i].__=e,t=ll(s[i],t,n,r));return t}e.__e!=t&&(r&&(t&&e.type&&!t.parentNode&&(t=nl(e)),n.insertBefore(e.__e,t||null)),t=e.__e);do{t=t&&t.nextSibling}while(null!=t&&8==t.nodeType);return t}function cl(e,t,n,r){var s,i,o,l=e.key,c=e.type,a=t[n],u=null!=a&&!(2&a.__u);if(null===a&&null==l||u&&l==a.key&&c==a.type)return n;if(r>(u?1:0))for(s=n-1,i=n+1;s>=0||i<t.length;)if(null!=(a=t[o=s>=0?s--:i++])&&!(2&a.__u)&&l==a.key&&c==a.type)return o;return-1}function al(e,t,n){"-"==t[0]?e.setProperty(t,null==n?"":n):e[t]=null==n?"":"number"!=typeof n||qo.test(t)?n:n+"px"}function ul(e,t,n,r,s){var i,o;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||al(e.style,t,"");if(n)for(t in n)r&&n[t]==r[t]||al(e.style,t,n[t])}else if("o"==t[0]&&"n"==t[1])i=t!=(t=t.replace(Wo,"$1")),o=t.toLowerCase(),t=o in e||"onFocusOut"==t||"onFocusIn"==t?o.slice(2):t.slice(2),e.l||(e.l={}),e.l[t+i]=n,n?r?n.u=r.u:(n.u=Vo,e.addEventListener(t,i?Ho:Ko,i)):e.removeEventListener(t,i?Ho:Ko,i);else{if("http://www.w3.org/2000/svg"==s)t=t.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if("width"!=t&&"height"!=t&&"href"!=t&&"list"!=t&&"form"!=t&&"tabIndex"!=t&&"download"!=t&&"rowSpan"!=t&&"colSpan"!=t&&"role"!=t&&"popover"!=t&&t in e)try{e[t]=null==n?"":n;break e}catch(e){}"function"==typeof n||(null==n||!1===n&&"-"!=t[4]?e.removeAttribute(t):e.setAttribute(t,"popover"==t&&1==n?"":n))}}function dl(e){return function(t){if(this.l){var n=this.l[t.type+e];if(null==t.t)t.t=Vo++;else if(t.t<n.u)return;return n(Ro.event?Ro.event(t):t)}}}function hl(e,t,n,r,s,i,o,l,c,a){var u,d,h,f,p,g,y,m,v,b,_,w,k,S,x,E,C,I=t.type;if(null!=t.constructor)return null;128&n.__u&&(c=!!(32&n.__u),i=[l=t.__e=n.__e]),(u=Ro.__b)&&u(t);e:if("function"==typeof I)try{if(m=t.props,v="prototype"in I&&I.prototype.render,b=(u=I.contextType)&&r[u.__c],_=u?b?b.props.value:u.__:r,n.__c?y=(d=t.__c=n.__c).__=d.__E:(v?t.__c=d=new I(m,_):(t.__c=d=new tl(m,_),d.constructor=I,d.render=bl),b&&b.sub(d),d.state||(d.state={}),d.__n=r,h=d.__d=!0,d.__h=[],d._sb=[]),v&&null==d.__s&&(d.__s=d.state),v&&null!=I.getDerivedStateFromProps&&(d.__s==d.state&&(d.__s=Go({},d.__s)),Go(d.__s,I.getDerivedStateFromProps(m,d.__s))),f=d.props,p=d.state,d.__v=t,h)v&&null==I.getDerivedStateFromProps&&null!=d.componentWillMount&&d.componentWillMount(),v&&null!=d.componentDidMount&&d.__h.push(d.componentDidMount);else{if(v&&null==I.getDerivedStateFromProps&&m!==f&&null!=d.componentWillReceiveProps&&d.componentWillReceiveProps(m,_),t.__v==n.__v||!d.__e&&null!=d.shouldComponentUpdate&&!1===d.shouldComponentUpdate(m,d.__s,_)){for(t.__v!=n.__v&&(d.props=m,d.state=d.__s,d.__d=!1),t.__e=n.__e,t.__k=n.__k,t.__k.some(function(e){e&&(e.__=t)}),w=0;w<d._sb.length;w++)d.__h.push(d._sb[w]);d._sb=[],d.__h.length&&o.push(d);break e}null!=d.componentWillUpdate&&d.componentWillUpdate(m,d.__s,_),v&&null!=d.componentDidUpdate&&d.__h.push(function(){d.componentDidUpdate(f,p,g)})}if(d.context=_,d.props=m,d.__P=e,d.__e=!1,k=Ro.__r,S=0,v){for(d.state=d.__s,d.__d=!1,k&&k(t),u=d.render(d.props,d.state,d.context),x=0;x<d._sb.length;x++)d.__h.push(d._sb[x]);d._sb=[]}else do{d.__d=!1,k&&k(t),u=d.render(d.props,d.state,d.context),d.state=d.__s}while(d.__d&&++S<25);d.state=d.__s,null!=d.getChildContext&&(r=Go(Go({},r),d.getChildContext())),v&&!h&&null!=d.getSnapshotBeforeUpdate&&(g=d.getSnapshotBeforeUpdate(f,p)),E=u,null!=u&&u.type===el&&null==u.key&&(E=gl(u.props.children)),l=ol(e,Yo(E)?E:[E],t,n,r,s,i,o,l,c,a),d.base=t.__e,t.__u&=-161,d.__h.length&&o.push(d),y&&(d.__E=d.__=null)}catch(e){if(t.__v=null,c||null!=i)if(e.then){for(t.__u|=c?160:128;l&&8==l.nodeType&&l.nextSibling;)l=l.nextSibling;i[i.indexOf(l)]=null,t.__e=l}else{for(C=i.length;C--;)Qo(i[C]);fl(t)}else t.__e=n.__e,t.__k=n.__k,e.then||fl(t);Ro.__e(e,t,n)}else null==i&&t.__v==n.__v?(t.__k=n.__k,t.__e=n.__e):l=t.__e=yl(n.__e,t,n,r,s,i,o,c,a);return(u=Ro.diffed)&&u(t),128&t.__u?void 0:l}function fl(e){e&&e.__c&&(e.__c.__e=!0),e&&e.__k&&e.__k.forEach(fl)}function pl(e,t,n){for(var r=0;r<n.length;r++)ml(n[r],n[++r],n[++r]);Ro.__c&&Ro.__c(t,e),e.some(function(t){try{e=t.__h,t.__h=[],e.some(function(e){e.call(t)})}catch(e){Ro.__e(e,t.__v)}})}function gl(e){return"object"!=typeof e||null==e||e.__b&&e.__b>0?e:Yo(e)?e.map(gl):Go({},e)}function yl(e,t,n,r,s,i,o,l,c){var a,u,d,h,f,p,g,y=n.props||zo,m=t.props,v=t.type;if("svg"==v?s="http://www.w3.org/2000/svg":"math"==v?s="http://www.w3.org/1998/Math/MathML":s||(s="http://www.w3.org/1999/xhtml"),null!=i)for(a=0;a<i.length;a++)if((f=i[a])&&"setAttribute"in f==!!v&&(v?f.localName==v:3==f.nodeType)){e=f,i[a]=null;break}if(null==e){if(null==v)return document.createTextNode(m);e=document.createElementNS(s,v,m.is&&m),l&&(Ro.__m&&Ro.__m(t,i),l=!1),i=null}if(null==v)y===m||l&&e.data==m||(e.data=m);else{if(i=i&&Po.call(e.childNodes),!l&&null!=i)for(y={},a=0;a<e.attributes.length;a++)y[(f=e.attributes[a]).name]=f.value;for(a in y)if(f=y[a],"children"==a);else if("dangerouslySetInnerHTML"==a)d=f;else if(!(a in m)){if("value"==a&&"defaultValue"in m||"checked"==a&&"defaultChecked"in m)continue;ul(e,a,null,f,s)}for(a in m)f=m[a],"children"==a?h=f:"dangerouslySetInnerHTML"==a?u=f:"value"==a?p=f:"checked"==a?g=f:l&&"function"!=typeof f||y[a]===f||ul(e,a,f,y[a],s);if(u)l||d&&(u.__html==d.__html||u.__html==e.innerHTML)||(e.innerHTML=u.__html),t.__k=[];else if(d&&(e.innerHTML=""),ol("template"==t.type?e.content:e,Yo(h)?h:[h],t,n,r,"foreignObject"==v?"http://www.w3.org/1999/xhtml":s,i,o,i?i[0]:n.__k&&nl(n,0),l,c),null!=i)for(a=i.length;a--;)Qo(i[a]);l||(a="value","progress"==v&&null==p?e.removeAttribute("value"):null!=p&&(p!==e[a]||"progress"==v&&!p||"option"==v&&p!=y[a])&&ul(e,a,p,y[a],s),a="checked",null!=g&&g!=e[a]&&ul(e,a,g,y[a],s))}return e}function ml(e,t,n){try{if("function"==typeof e){var r="function"==typeof e.__u;r&&e.__u(),r&&null==t||(e.__u=e(t))}else e.current=t}catch(e){Ro.__e(e,n)}}function vl(e,t,n){var r,s;if(Ro.unmount&&Ro.unmount(e),(r=e.ref)&&(r.current&&r.current!=e.__e||ml(r,null,t)),null!=(r=e.__c)){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(e){Ro.__e(e,t)}r.base=r.__P=null}if(r=e.__k)for(s=0;s<r.length;s++)r[s]&&vl(r[s],t,n||"function"!=typeof e.type);n||Qo(e.__e),e.__c=e.__=e.__e=void 0}function bl(e,t,n){return this.constructor(e,n)}function _l(e,t,n){var r,s,i;t==document&&(t=document.documentElement),Ro.__&&Ro.__(e,t),r=!1?null:t.__k,s=[],i=[],hl(t,e=t.__k=Xo(el,null,[e]),r||zo,zo,t.namespaceURI,r?null:t.firstChild?Po.call(t.childNodes):null,s,r?r.__e:t.firstChild,false,i),pl(s,e,i)}Po=Jo.slice,Ro={__e:function(e,t,n,r){for(var s,i,o;t=t.__;)if((s=t.__c)&&!s.__)try{if((i=s.constructor)&&null!=i.getDerivedStateFromError&&(s.setState(i.getDerivedStateFromError(e)),o=s.__d),null!=s.componentDidCatch&&(s.componentDidCatch(e,r||{}),o=s.__d),o)return s.__E=s}catch(t){e=t}throw e}},Mo=0,tl.prototype.setState=function(e,t){var n;n=null!=this.__s&&this.__s!=this.state?this.__s:this.__s=Go({},this.state),"function"==typeof e&&(e=e(Go({},n),this.props)),e&&Go(n,e),null!=e&&this.__v&&(t&&this._sb.push(t),sl(this))},tl.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),sl(this))},tl.prototype.render=el,No=[],Bo="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,Fo=function(e,t){return e.__v.__b-t.__v.__b},il.__r=0,Wo=/(PointerCapture)$|Capture$/i,Vo=0,Ko=dl(!1),Ho=dl(!0);const wl={Alert:{error:{color:"red",fontWeight:"bold"},warning:{color:"#f80",fontWeight:"bold"},info:{color:"black"}},Darken:{position:"fixed",top:0,left:0,opacity:.5,backgroundColor:"#000",width:"100vw",height:"100vh",zIndex:150,webkitBackdropFilter:"blur(2px)",backdropFilter:"blur(2px)"},DialogOuter:{position:"fixed",top:0,left:0,width:"100vw",height:"100vh",zIndex:150,alignItems:"center",display:"flex",justifyContent:"center",padding:"16px",boxSizing:"border-box"},DialogInner:{position:"relative",color:"#222",backgroundColor:"#fff",padding:"24px",marginBottom:"2em",maxWidth:"400px",width:"100%",maxHeight:"90%",overflowY:"auto",border:"3px solid #3d3d5d",borderRadius:"8px",boxShadow:"0 0 80px 10px #666",fontFamily:"sans-serif",boxSizing:"border-box"},Input:{height:"35px",width:"100%",maxWidth:"100%",borderColor:"#ccf4",outline:"none",fontSize:"16px",padding:"8px",boxSizing:"border-box",backgroundColor:"#f9f9f9",borderRadius:"4px",border:"1px solid #ccc",marginTop:"6px",fontFamily:"inherit"},Button:{padding:"10px 20px",margin:"0 4px",border:"1px solid #d1d5db",borderRadius:"6px",backgroundColor:"#ffffff",cursor:"pointer",fontSize:"14px",fontWeight:"500",color:"#374151",transition:"all 0.2s ease"},PrimaryButton:{padding:"10px 20px",margin:"0 4px",border:"1px solid #3b82f6",borderRadius:"6px",backgroundColor:"#3b82f6",color:"white",cursor:"pointer",fontSize:"14px",fontWeight:"500",transition:"all 0.2s ease"},ButtonsDiv:{display:"flex",justifyContent:"flex-end",gap:"12px",marginTop:"24px",paddingTop:"20px"},Label:{display:"block",marginBottom:"12px",fontSize:"14px",fontWeight:"500",color:"#333"},WindowHeader:{margin:"0 0 20px 0",fontSize:"18px",fontWeight:"600",color:"#333",borderBottom:"1px solid #eee",paddingBottom:"10px"}};function kl({children:e,className:t}){return Xo("div",{className:`dexie-dialog ${t||""}`},Xo("div",{style:wl.Darken}),Xo("div",{style:wl.DialogOuter},Xo("div",{style:wl.DialogInner},e)))}var Sl,xl,El,Cl,Il=0,Dl=[],Ol=Ro,Al=Ol.__b,Tl=Ol.__r,Ul=Ol.diffed,jl=Ol.__c,Ll=Ol.unmount,Pl=Ol.__;function Rl(e,t){Ol.__h&&Ol.__h(xl,e,Il||t),Il=0;var n=xl.__H||(xl.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({}),n.__[e]}function Ml(e){return Il=1,function(e,t){var n=Rl(Sl++,2);if(n.t=e,!n.__c&&(n.__=[Hl(void 0,t),function(e){var t=n.__N?n.__N[0]:n.__[0],r=n.t(t,e);t!==r&&(n.__N=[r,n.__[1]],n.__c.setState({}))}],n.__c=xl,!xl.__f)){var r=function(e,t,r){if(!n.__c.__H)return!0;var i=n.__c.__H.__.filter(function(e){return!!e.__c});if(i.every(function(e){return!e.__N}))return!s||s.call(this,e,t,r);var o=n.__c.props!==e;return i.forEach(function(e){if(e.__N){var t=e.__[0];e.__=e.__N,e.__N=void 0,t!==e.__[0]&&(o=!0)}}),s&&s.call(this,e,t,r)||o};xl.__f=!0;var s=xl.shouldComponentUpdate,i=xl.componentWillUpdate;xl.componentWillUpdate=function(e,t,n){if(this.__e){var o=s;s=void 0,r(e,t,n),s=o}i&&i.call(this,e,t,n)},xl.shouldComponentUpdate=r}return n.__N||n.__}(Hl,e)}function Nl(e){return Il=5,function(e,t){var n=Rl(Sl++,7);return Kl(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}(function(){return{current:e}},[])}function $l(){for(var e;e=Dl.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(Wl),e.__H.__h.forEach(Vl),e.__H.__h=[]}catch(t){e.__H.__h=[],Ol.__e(t,e.__v)}}Ol.__b=function(e){xl=null,Al&&Al(e)},Ol.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),Pl&&Pl(e,t)},Ol.__r=function(e){Tl&&Tl(e),Sl=0;var t=(xl=e.__c).__H;t&&(El===xl?(t.__h=[],xl.__h=[],t.__.forEach(function(e){e.__N&&(e.__=e.__N),e.u=e.__N=void 0})):(t.__h.forEach(Wl),t.__h.forEach(Vl),t.__h=[],Sl=0)),El=xl},Ol.diffed=function(e){Ul&&Ul(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(1!==Dl.push(t)&&Cl===Ol.requestAnimationFrame||((Cl=Ol.requestAnimationFrame)||Fl)($l)),t.__H.__.forEach(function(e){e.u&&(e.__H=e.u),e.u=void 0})),El=xl=null},Ol.__c=function(e,t){t.some(function(e){try{e.__h.forEach(Wl),e.__h=e.__h.filter(function(e){return!e.__||Vl(e)})}catch(n){t.some(function(e){e.__h&&(e.__h=[])}),t=[],Ol.__e(n,e.__v)}}),jl&&jl(e,t)},Ol.unmount=function(e){Ll&&Ll(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.forEach(function(e){try{Wl(e)}catch(e){t=e}}),n.__H=void 0,t&&Ol.__e(t,n.__v))};var Bl="function"==typeof requestAnimationFrame;function Fl(e){var t,n=function(){clearTimeout(r),Bl&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,35);Bl&&(t=requestAnimationFrame(n))}function Wl(e){var t=xl,n=e.__c;"function"==typeof n&&(e.__c=void 0,n()),xl=t}function Vl(e){var t=xl;e.__c=e.__(),xl=t}function Kl(e,t){return!e||e.length!==t.length||t.some(function(t,n){return t!==e[n]})}function Hl(e,t){return"function"==typeof t?t(e):t}function zl({title:e,type:t,alerts:n,fields:r,submitLabel:s,cancelLabel:i,onCancel:o,onSubmit:l}){const[c,a]=Ml({}),u=Nl(null);return function(e,t){var n=Rl(Sl++,4);!Ol.__s&&Kl(n.__H,t)&&(n.__=e,n.u=t,xl.__h.push(n))}(()=>{var e;return null===(e=u.current)||void 0===e?void 0:e.focus()},[]),Xo(kl,{className:"dxc-login-dlg"},Xo(el,null,Xo("h3",{style:wl.WindowHeader},e),n.map(e=>Xo("p",{style:wl.Alert[e.type]},function({message:e,messageCode:t,messageParams:n}){return e.replace(/\{\w+\}/gi,e=>n[e.substring(1,e.length-1)])}(e))),Xo("form",{onSubmit:e=>{e.preventDefault(),l(c)}},Object.entries(r).map(([e,{type:t,label:n,placeholder:r}],s)=>Xo("label",{style:wl.Label,key:s},n?`${n}: `:"",Xo("input",{ref:0===s?u:void 0,type:t,name:e,autoComplete:"on",style:wl.Input,autoFocus:!0,placeholder:r,value:c[e]||"",onInput:n=>{var r;const s=function(e,t){switch(e){case"email":return t.toLowerCase();case"otp":return t.toUpperCase();default:return t}}(t,null===(r=n.target)||void 0===r?void 0:r.value);let i=Object.assign(Object.assign({},c),{[e]:s});a(i),"otp"===t&&8===(null==s?void 0:s.trim().length)&&l(i)}}))))),Xo("div",{style:wl.ButtonsDiv},Xo(el,null,Xo("button",{type:"submit",style:wl.PrimaryButton,onClick:()=>l(c)},s),i&&Xo("button",{style:wl.Button,onClick:o},i))))}class Jl extends tl{constructor(e){super(e),this.observer=e=>this.setState({userInteraction:e}),this.state={userInteraction:void 0}}componentDidMount(){this.subscription=t.from(this.props.db.cloud.userInteraction).subscribe(this.observer)}componentWillUnmount(){this.subscription&&(this.subscription.unsubscribe(),delete this.subscription)}render(e,{userInteraction:t}){return t?Xo(zl,Object.assign({},t)):null}}function ql(e){const t=new WeakMap;return n=>{let r=t.get(n);return r||(r=e(n),t.set(n,r)),r}}const Yl=ql(e=>new t.BehaviorSubject(c));function Gl(e,n){let r=n,s=t.from(e).pipe(t.map(e=>r=e),t.share({resetOnRefCountZero:()=>t.timer(1e3)}));const i=new t.Observable(e=>{let t=!1;const n=s.subscribe({next(n){t=!0,e.next(n)},error(t){e.error(t)},complete(){e.complete()}});return t||n.closed||e.next(r),n});return i.getValue=()=>r,i}const Ql=ql(t=>Gl(e.liveQuery(()=>t.roles.where({realmId:"rlm-public"}).toArray().then(e=>{const t={};for(const n of e.slice().sort((e,t)=>(e.sortOrder||0)-(t.sortOrder||0)))t[n.name]=n;return t})),{})),Xl=ql(t=>Gl(Yl(t._novip).pipe(n.switchMap(n=>e.liveQuery(()=>t.transaction("r","realms","members",()=>Promise.all([t.members.where({userId:n.userId}).toArray(),t.realms.toArray(),n.userId]).then(([e,t,n])=>({selfMembers:e,realms:t,userId:n})))))),{selfMembers:[],realms:[],get userId(){return t.cloud.currentUserId}}));function Zl(...e){if(0===e.length)return{};const t=e.reduce((e,t)=>{const n=Object.assign({},e);for(const[e,r]of Object.entries(t))if(e in n&&n[e]){if("*"===n[e])continue;if("*"===r)n[e]="*";else if(Array.isArray(r)&&Array.isArray(n[e])){const t=n,s=t[e];t[e]=[...new Set([...s,...r])]}else if("object"==typeof r&&r&&"object"==typeof n[e]){const t=n[e];for(const[e,n]of Object.entries(r))"*"!==t[e]&&("*"===n?t[e]="*":Array.isArray(t[e])&&Array.isArray(n)&&(t[e]=[...new Set([...t[e],...n])]))}}else n[e]=t[e];return n});return t}const ec=ql(e=>function(e,n){let r;const s=e.pipe(t.map(e=>r=n(e)));return s.getValue=()=>void 0!==r?r:r=n(e.getValue()),s}(Gl(t.combineLatest([Xl(e._novip),Ql(e._novip)]).pipe(n.map(([{selfMembers:e,realms:t,userId:n},r])=>({selfMembers:e,realms:t,userId:n,globalRoles:r}))),{selfMembers:[],realms:[],userId:c.userId,globalRoles:{}}),({selfMembers:e,realms:t,userId:n,globalRoles:r})=>{const s=t.map(t=>{const s=e.filter(e=>e.realmId===t.realmId),i=s.map(e=>e.permissions).filter(e=>e),o=C(s.map(e=>e.roles).filter(e=>e)).map(e=>r[e]).filter(e=>e).map(e=>e.permissions);return Object.assign(Object.assign({},t),{permissions:t.owner===n?{manage:"*"}:Zl(...i,...o)})}).reduce((e,t)=>Object.assign(Object.assign({},e),{[t.realmId]:t}),{[n]:{realmId:n,owner:n,name:n,permissions:{manage:"*"}}});return s}));class tc{constructor(e,t,n){this.permissions=e||{},this.tableName=t,this.isOwner=n}add(...e){var t;return"*"===this.permissions.manage||(!!(null===(t=this.permissions.manage)||void 0===t?void 0:t.includes(this.tableName))||("*"===this.permissions.add||!!e.every(e=>{var t;return null===(t=this.permissions.add)||void 0===t?void 0:t.includes(e)})))}update(...e){var t,n;if(this.isOwner||"*"===this.permissions.manage)return!0;if(null===(t=this.permissions.manage)||void 0===t?void 0:t.includes(this.tableName))return!0;if("*"===this.permissions.update)return e.every(e=>"owner"!==e);const r=null===(n=this.permissions.update)||void 0===n?void 0:n[this.tableName];return"*"===r?e.every(e=>"owner"!==e):e.every(e=>null==r?void 0:r.some(t=>t===e||"*"===t&&"owner"!==e))}delete(){var e;return!(!this.isOwner&&"*"!==this.permissions.manage)||!!(null===(e=this.permissions.manage)||void 0===e?void 0:e.includes(this.tableName))}}const nc=ql(s=>{const i=Yl(s._novip).pipe(n.switchMap(t=>e.liveQuery(()=>s.members.where({email:t.email||""}).toArray()))),o=ec(s._novip),l=Xl(s._novip);return Gl(t.combineLatest([i,l,o]).pipe(n.map(([e,t,n])=>{const i=(e,t)=>Object.assign(Object.assign({},e),{[t.id]:Object.assign(Object.assign({},t),{realm:n[t.realmId]})}),o=e.reduce(i,{}),l=t.selfMembers.reduce(i,o);return Object.values(l).filter(e=>!e.accepted).map(e=>Object.assign(Object.assign({},e),{accept(){return r(this,void 0,void 0,function*(){yield s.members.update(e.id,{accepted:new Date})})},reject(){return r(this,void 0,void 0,function*(){yield s.members.update(e.id,{rejected:new Date})})}}))})),[])});function rc(n){return s=>{var i;const o=s.doc;if(!o)throw new Error("Internal error: DexieYProvider.createYHandler called without a doc. This is unexpected.");const{parentTable:l}=o.meta||{};if(!(null===(i=n.cloud.schema)||void 0===i?void 0:i[l].markedForSync))return;let c;Object.defineProperty(s,"awareness",{get:()=>c||(c=function(n,s,i){const{parentTable:o,parentId:l,parentProp:c,updatesTable:a}=s.meta,u=new wo(s),d=xo(s);return u.on("update",({added:e,updated:t,removed:r},l)=>{const a=e.concat(t).concat(r),d=n.cloud.currentUser.value;if("server"!==l&&d.isLoggedIn&&!lo(n)){const e=((e,t,n=e.states)=>{const r=t.length,s=ie();ae(s,r);for(let i=0;i<r;i++){const r=t[i],o=n.get(r)||null,l=e.meta.get(r).clock;ae(s,r),ae(s,l),fe(s,JSON.stringify(o))}return oe(s)})(u,a);n.messageProducer.next({type:"aware",table:o,prop:c,k:s.meta.parentId,u:e}),i.destroyed&&n.messageProducer.next({type:"doc-close",table:o,prop:c,k:s.meta.parentId})}}),u.on("destroy",()=>{ko(u,[s.clientID],"provider destroyed")}),(()=>{r(this,void 0,void 0,function*(){if(i.destroyed)return;let s=!1,u=1;const h=t.combineLatest([n.cloud.webSocketStatus,d.pipe(t.startWith(null))]).subscribe(([e])=>{if(i.destroyed)return;s="connected"===e;const t=n.cloud.currentUser.value;"connected"===e&&t.isLoggedIn&&!lo(n)&&(++u,f().catch(e=>{}))});function f(){return r(this,void 0,void 0,function*(){const t=u,d=n.table(a),h=n.$syncState,[f,p]=yield n.transaction("r",h,d,()=>r(this,void 0,void 0,function*(){const e=yield d.get(Kt),t=yield h.get("syncState");return[(null==e?void 0:e.receivedUntil)||0,(null==t?void 0:t.yServerRevision)||(null==t?void 0:t.serverRevision)]}));if(i.destroyed||u!==t||!s)return;const g={type:"doc-open",table:o,prop:c,k:l,serverRev:p},y=yield d.where("i").between(f,1/0,!1).filter(t=>0===e.cmp(t.k,l)&&!(1&(t.f||0))).toArray();if(!i.destroyed&&u===t&&s){if(y.length>0){const e=Lr(y.map(e=>e.u)),t=Ur(e);g.sv=t}n.messageProducer.next(g)}})}i.addCleanupHandler(h)})})(),u}(n,o,s),bo.set(o,c),c)})}}const sc={nameSuffix:!0};function ic(s){const i=s.name,o=Yl(s),l=[];let a=!1,u=null;s.on("ready",s=>r(this,void 0,void 0,function*(){try{yield function(s){return r(this,void 0,void 0,function*(){var i,c,p,m,v,b,_;d=!1;const k=Li(s);"undefined"!=typeof window&&"undefined"!=typeof document&&((null===(i=k.cloud.options)||void 0===i?void 0:i.customLoginGui)||l.push(function(e){let t=!1;const n=document.createElement("div");return document.body?(document.body.appendChild(n),_l(Xo(Jl,{db:e.vip}),n)):addEventListener("DOMContentLoaded",()=>{t||(document.body.appendChild(n),_l(Xo(Jl,{db:e.vip}),n))}),{unsubscribe(){try{n.remove()}catch(e){}t=!0},get closed(){return t}}}(s))),k.cloud.isServiceWorkerDB||l.push(function(e){let r=e.cloud.webSocketStatus.value;const s=e.cloud.webSocketStatus.pipe(n.switchMap(e=>{const s=r;r=e;const i=t.of(e);switch(e){case"disconnected":return ho.value?i.pipe(n.debounceTime(500)):i;case"connecting":return"not-started"===s||"error"===s?i:i.pipe(n.debounceTime(4e3));default:return i}}));return t.combineLatest([s,e.syncStateChangedEvent.pipe(n.startWith({phase:"initial"})),Yl(e.dx._novip),fo]).pipe(n.map(([t,n,r,s])=>{var i;if((null===(i=r.license)||void 0===i?void 0:i.status)&&"ok"!==r.license.status)return{phase:"offline",status:"offline",license:r.license.status};let{phase:o,error:l,progress:c}=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"),s||(a="disconnected"),{phase:o,error:l,progress:c,status:$t?a:"offline",license:"ok"}}))}(k).subscribe(s.cloud.syncState)),l.push(k.syncCompleteEvent.subscribe(f)),k.tables.every(e=>e.core)||function(){throw new e.SchemaError("Version increment needed to allow dexie-cloud change tracking")}();const S="serviceWorker"in navigator?yield navigator.serviceWorker.getRegistrations():[],[x,E]=yield k.transaction("rw",k.$syncState,()=>r(this,void 0,void 0,function*(){var e,t;const{options:n,schema:r}=k.cloud,[s,i,o]=yield Promise.all([k.getOptions(),k.getSchema(),k.getPersistedSyncState()]);if(a){if(!s||JSON.stringify(s)!==JSON.stringify(n)){if(!n)throw new Error("Internal error");const e=Object.assign({},n);delete e.fetchTokens,delete e.awarenessProtocol,yield k.$syncState.put(e,"options")}}else k.cloud.options=s||null;if((null===(e=k.cloud.options)||void 0===e?void 0:e.tryUseServiceWorker)&&"serviceWorker"in navigator&&S.length>0&&!zi?k.cloud.usingServiceWorker=!0:((null===(t=k.cloud.options)||void 0===t?void 0:t.tryUseServiceWorker)&&k.cloud.isServiceWorkerDB,k.cloud.usingServiceWorker=!1),Lo(r,k.cloud.options),Lo(i,k.cloud.options),r){if(!i||JSON.stringify(i)!==JSON.stringify(r)){const e=i||{};for(const[t,n]of Object.entries(r)){const r=e[t];r?(r.markedForSync=n.markedForSync,n.deleted=r.deleted,r.generatedGlobalId=n.generatedGlobalId):e[t]=Object.assign({},n)}yield k.$syncState.put(e,"schema"),Object.assign(r,e)}}else k.cloud.schema=i||null;return[null==o?void 0:o.initiallySynced,null==o?void 0:o.realms]}));if(x&&k.setInitiallySynced(!0),function(t){var n,r;for(const s of t.tables)if(null===(r=null===(n=t.cloud.schema)||void 0===n?void 0:n[s.name])||void 0===r?void 0:r.markedForSync){if(s.schema.primKey.auto)throw new e.SchemaError(`Table ${s.name} is both autoIncremented and synced. Use db.cloud.configure({unsyncedTables: [${JSON.stringify(s.name)}]}) to blacklist it from sync`);if(!s.schema.primKey.keyPath)throw new e.SchemaError(`Table ${s.name} cannot be both synced and outbound. Use db.cloud.configure({unsyncedTables: [${JSON.stringify(s.name)}]}) to blacklist it from sync`)}}(k),h(),!k.cloud.isServiceWorkerDB){l.push(e.liveQuery(()=>k.getCurrentUser()).subscribe(o)),l.push(e.liveQuery(()=>k.getPersistedSyncState()).subscribe(k.cloud.persistedSyncState)),yield t.firstValueFrom(t.combineLatest([o.pipe(n.skip(1),n.take(1)),k.cloud.persistedSyncState.pipe(n.skip(1),n.take(1))]));const r=rc(k);Si.on.new.subscribe(r),k.dx.once("close",()=>{Si.on.new.unsubscribe(r)})}let C=!1;const I=yield k.getCurrentUser(),D=null===(c=k.cloud.options)||void 0===c?void 0:c.requireAuth;D&&(k.cloud.isServiceWorkerDB?yield t.firstValueFrom(o.pipe(n.filter(e=>!!e.isLoggedIn),n.take(1))):"object"==typeof D?(!I.isLoggedIn||D.userId&&I.userId!==D.userId||D.email&&I.email!==D.email)&&(C=yield Wi(k,D)):I.isLoggedIn||(C=yield Wi(k))),!I.isLoggedIn||E&&E.includes(I.userId)||(C=!0),u&&u.stop(),u=null,h();const O=(null===(p=k.cloud.options)||void 0===p?void 0:p.databaseUrl)&&(!x||C);O&&(yield function(e,t,n){return r(this,void 0,void 0,function*(){yield uo(e,Ci,()=>Ii(e,t,n,{isInitialSync:!0}))})}(k,k.cloud.options,k.cloud.schema),k.setInitiallySynced(!0)),h(),k.cloud.usingServiceWorker&&(null===(m=k.cloud.options)||void 0===m?void 0:m.databaseUrl)?(O||g(k,"push").catch(()=>{}),function(e){return r(this,void 0,void 0,function*(){var t;try{const{periodicSync:n}=yield navigator.serviceWorker.ready;if(n)try{yield n.register(`dexie-cloud:${e.name}`,null===(t=e.cloud.options)||void 0===t?void 0:t.periodicSync)}catch(e){}}catch(e){}})}(k).catch(()=>{})):(null===(v=k.cloud.options)||void 0===v?void 0:v.databaseUrl)&&k.cloud.schema&&!k.cloud.isServiceWorkerDB&&(u=jo(k,k.cloud.options,k.cloud.schema),u.start(),O||y(k,"push")),h(),k.cloud.isServiceWorkerDB||l.push(t.fromEvent(self,"online").subscribe(()=>{k.syncStateChangedEvent.next({phase:"not-in-sync"}),lo(k)||y(k,"push")}),t.fromEvent(self,"offline").subscribe(()=>{k.syncStateChangedEvent.next({phase:"offline"})})),!(null===(b=k.cloud.options)||void 0===b?void 0:b.databaseUrl)||(null===(_=k.cloud.options)||void 0===_?void 0:_.disableWebSocket)||Ji||l.push(function(e){var s;if(!(null===(s=e.cloud.options)||void 0===s?void 0:s.databaseUrl))throw new Error("No database URL to connect WebSocket to");const i=e.messageConsumer.readyToServe.pipe(n.filter(e=>e),n.switchMap(()=>e.getPersistedSyncState()),n.filter(e=>e&&e.serverRevision),n.switchMap(e=>r(this,void 0,void 0,function*(){return{type:"ready",rev:e.serverRevision,realmSetHash:yield w(e)}}))),o=t.merge(i,e.messageProducer);return function s(){return e.cloud.persistedSyncState.pipe(n.filter(e=>null==e?void 0:e.serverRevision),n.take(1),n.switchMap(t=>e.cloud.currentUser.pipe(n.map(e=>[e,t]))),n.switchMap(([e,t])=>fo.pipe(n.map(n=>[n?e:null,t]))),n.switchMap(([r,s])=>(null==r?void 0:r.isLoggedIn)&&!(null==s?void 0:s.realms.includes(r.userId))?e.cloud.persistedSyncState.pipe(n.filter(e=>(null==e?void 0:e.realms.includes(r.userId))||!1),n.take(1),n.map(e=>[r,e])):new t.BehaviorSubject([r,s])),n.switchMap(e=>r(this,[e],void 0,function*([e,t]){return[e,yield w(t)]})),n.distinctUntilChanged(([e,t],[n,r])=>e===n&&t===r),n.switchMap(([n,r])=>{var i;return(null===(i=e.cloud.persistedSyncState)||void 0===i?void 0:i.value)?n?new Eo(e,e.cloud.persistedSyncState.value.serverRevision,e.cloud.persistedSyncState.value.yServerRevision,r,e.cloud.persistedSyncState.value.clientIdentity,o,e.cloud.webSocketStatus,n):t.from([]):s()}),n.catchError(i=>"TokenExpiredError"===(null==i?void 0:i.name)?t.of(!0).pipe(n.switchMap(()=>r(this,void 0,void 0,function*(){const t=yield e.getCurrentUser(),n=yield tt(e.cloud.options.databaseUrl,t);yield e.table("$logins").update(t.userId,{accessToken:n.accessToken,accessTokenExpiration:n.accessTokenExpiration,claims:n.claims,license:n.license,data:n.data})})),n.switchMap(()=>s())):t.throwError(()=>i)),n.catchError(r=>(e.cloud.webSocketStatus.next("error"),r instanceof Do?t.throwError(()=>r):t.from(Oo()).pipe(n.switchMap(()=>s())))))}().subscribe({next:t=>{t&&e.messageConsumer.enqueue(t)},error:e=>{},complete:()=>{}})}(k))})}(s)}catch(e){}}),!0);let d=!1;function h(){if(d)throw new e.DatabaseClosedError}s.once("close",()=>{l.forEach(e=>e.unsubscribe()),l.splice(0,l.length),d=!0,u&&u.stop(),u=null,o.next(c)});const f=new t.Subject;var p;s.cloud={version:"4.2.5",options:Object.assign({},sc),schema:null,get currentUserId(){return o.value.userId||c.userId},currentUser:o,syncState:new t.BehaviorSubject({phase:"initial",status:"not-started"}),events:{syncComplete:f},persistedSyncState:new t.BehaviorSubject(void 0),userInteraction:new t.BehaviorSubject(void 0),webSocketStatus:new t.BehaviorSubject("not-started"),login(e){return r(this,void 0,void 0,function*(){const t=Li(s);yield t.cloud.sync(),yield Wi(t,e)})},invites:nc(s),roles:Ql(s),configure(e){e=s.cloud.options=Object.assign(Object.assign({},s.cloud.options),e),a=!0,e.databaseUrl&&e.nameSuffix&&(s.name=`${i}-${function(e){const t=new URL(e);return"/"===t.pathname?t.hostname.split(".")[0]:t.pathname.split("/")[1]}(e.databaseUrl)}`,Li(s).reconfigure()),Lo(s.cloud.schema,s.cloud.options)},logout(){return r(this,arguments,void 0,function*({force:e}={}){e?yield Bi(Li(s),{deleteUnsyncedData:!0}):yield $i(Li(s))})},sync(){return r(this,arguments,void 0,function*({wait:i,purpose:o}={wait:!0,purpose:"push"}){var l;void 0===i&&(i=!0);const c=Li(s);if("ok"!==((null===(l=c.cloud.currentUser.value.license)||void 0===l?void 0:l.status)||"ok")&&(yield Ze(c)),"pull"===o){const e=c.cloud.persistedSyncState.value;if(y(c,o),i){const r=yield t.firstValueFrom(c.cloud.persistedSyncState.pipe(n.filter(t=>null!=(null==t?void 0:t.timestamp)&&(!e||t.timestamp>e.timestamp))));if(null==r?void 0:r.error)throw new Error("Sync error: "+r.error)}}else if(yield Ao(c)){const s=c.cloud.persistedSyncState.value;y(c,o),i&&(yield t.firstValueFrom(t.from(e.liveQuery(()=>r(this,void 0,void 0,function*(){const e=yield Ao(c),t=yield c.getPersistedSyncState();if((null==t?void 0:t.timestamp)!==(null==s?void 0:s.timestamp)&&(null==t?void 0:t.error))throw new Error("Sync error: "+t.error);return e}))).pipe(n.filter(e=>!e))))}})},permissions:(e,t)=>function(e,t,r){if(!t)throw new TypeError("Cannot check permissions of undefined or null. A Dexie Cloud object with realmId and owner expected.");const{owner:s,realmId:i}=t;if(!r){if("function"!=typeof t.table)throw new TypeError("Missing 'table' argument to permissions and table could not be extracted from entity");r=t.table()}const o=ec(e),l=t=>{const n=t[i||e.cloud.currentUserId];return n?new tc(n.permissions,r,void 0===i||i===e.cloud.currentUserId||s===e.cloud.currentUserId):new tc({},r,!s||s===e.cloud.currentUserId)},c=o.pipe(n.map(l));return c.getValue=()=>l(o.getValue()),c}(s._novip,e,t)},s.Version.prototype._parseStoresSpec=e.override(s.Version.prototype._parseStoresSpec,e=>ao(e,s)),s.Table.prototype.newId=function({colocateWith:e}={}){const t=e&&e.substr(e.length-3);return to(s.cloud.schema[this.name].idPrefix||"",t)},s.Table.prototype.idPrefix=function(){var e,t;return(null===(t=null===(e=this.db.cloud.schema)||void 0===e?void 0:e[this.name])||void 0===t?void 0:t.idPrefix)||""},s.use(co({currentUserObservable:s.cloud.currentUser,db:Li(s)})),s.use((p=Li(s),{stack:"dbcore",name:"implicitPropSetterMiddleware",level:1,create:e=>Object.assign(Object.assign({},e),{table:t=>{const n=e.table(t);return Object.assign(Object.assign({},n),{mutate:e=>{var r,s,i,o,l,a;const u=e.trans;if(u.disableChangeTracking)return n.mutate(e);const d=null!==(s=null===(r=u.currentUser)||void 0===r?void 0:r.userId)&&void 0!==s?s:c.userId;if((null===(o=null===(i=p.cloud.schema)||void 0===i?void 0:i[t])||void 0===o?void 0:o.markedForSync)&&("add"===e.type||"put"===e.type)){if("members"===t)for(const t of e.values)"string"==typeof t.email&&(t.email=t.email.trim().toLowerCase());for(const t of e.values){t.owner||(t.owner=d),t.realmId||(t.realmId=d);const r=null===(a=(l=n.schema.primaryKey).extractKey)||void 0===a?void 0:a.call(l,t);"string"==typeof r&&"#"===r[0]&&"put"===e.type&&(delete e.criteria,delete e.changeSpec,e.upsert||delete e.updates,t.$ts=Date.now())}}return n.mutate(e)}})}})})),s.use(no(Li(s)))}ic.version="4.2.5",e.Cloud=ic;const oc=new Map;function lc(e){return e.startsWith("dexie-cloud:")&&e.split(":")[1]}const cc=new Map;function ac(t,n){let s=cc.get(t+"/"+n);return s||(s=function t(n,s){return r(this,void 0,void 0,function*(){var r;let i=oc.get(n);if(!i){const r=new e(n,{addons:[ic]});if(i=Li(r),i.cloud.isServiceWorkerDB=!0,r.on("versionchange",o),yield i.dx.open(),oc.get(n))return i.close(),yield t(n,s);oc.set(n,i)}if((null===(r=i.cloud.options)||void 0===r?void 0:r.databaseUrl)&&i.cloud.schema)try{yield Uo(i,i.cloud.options,i.cloud.schema,{retryImmediatelyOnFetchError:!0,purpose:s})}catch(t){if(o(),t.name!==e.errnames.NoSuchDatabase)throw t}function o(){return i.dx.on.versionchange.unsubscribe(o),oc.get(i.name)===i&&oc.delete(i.name),i.dx.close(),!1}})}(t,n).then(()=>{cc.delete(t+"/"+n)}).catch(e=>(cc.delete(t+"/"+n),Promise.reject(e))),cc.set(t+"/"+n,s)),s}zi||(self.addEventListener("sync",e=>{const t=lc(e.tag);t&&e.waitUntil(ac(t,"push"))}),self.addEventListener("periodicsync",e=>{const t=lc(e.tag);t&&e.waitUntil(ac(t,"pull"))}),self.addEventListener("message",e=>{if("dexie-cloud-sync"===e.data.type){const{dbName:t}=e.data,n=(s=1)=>ac(t,e.data.purpose||"pull").catch(e=>r(void 0,void 0,void 0,function*(){if(3===s)throw e;var t;yield(t=6e4,new Promise(e=>setTimeout(e,t))),n(s+1)}));"waitUntil"in e?e.waitUntil(n().catch(e=>{})):n().catch(e=>{})}}))});
|
|
2
2
|
//# sourceMappingURL=service-worker.min.js.map
|