dexie-cloud-addon 4.4.4 → 4.4.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/dist/modern/default-ui/AuthProviderButton.d.ts +21 -0
- package/dist/modern/default-ui/ProviderSelectionDialog.d.ts +7 -0
- package/dist/modern/default-ui/SelectDialog.d.ts +10 -0
- package/dist/modern/dexie-cloud-addon.js +18 -14
- 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.gz +0 -0
- package/dist/modern/dexie-cloud-addon.min.js.map +1 -1
- package/dist/modern/service-worker.js +18 -14
- 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/DISABLE_SERVICEWORKER_STRATEGY.d.ts +1 -0
- package/dist/umd/DXCWebSocketStatus.d.ts +1 -0
- package/dist/umd/DexieCloudAPI.d.ts +75 -0
- package/dist/umd/DexieCloudOptions.d.ts +27 -0
- package/dist/umd/DexieCloudSyncOptions.d.ts +4 -0
- package/dist/umd/DexieCloudTable.d.ts +18 -0
- package/dist/umd/InvalidLicenseError.d.ts +5 -0
- package/dist/umd/Invite.d.ts +8 -0
- package/dist/umd/PermissionChecker.d.ts +15 -0
- package/dist/umd/TSON.d.ts +17 -0
- package/dist/umd/WSObservable.d.ts +72 -0
- package/dist/umd/associate.d.ts +1 -0
- package/dist/umd/authentication/AuthPersistedContext.d.ts +9 -0
- package/dist/umd/authentication/TokenErrorResponseError.d.ts +10 -0
- package/dist/umd/authentication/TokenExpiredError.d.ts +3 -0
- package/dist/umd/authentication/UNAUTHORIZED_USER.d.ts +2 -0
- package/dist/umd/authentication/authenticate.d.ts +13 -0
- package/dist/umd/authentication/currentUserObservable.d.ts +1 -0
- package/dist/umd/authentication/interactWithUser.d.ts +21 -0
- package/dist/umd/authentication/login.d.ts +3 -0
- package/dist/umd/authentication/logout.d.ts +5 -0
- package/dist/umd/authentication/otpFetchTokenCallback.d.ts +3 -0
- package/dist/umd/authentication/setCurrentUser.d.ts +14 -0
- package/dist/umd/authentication/waitUntil.d.ts +3 -0
- package/dist/umd/computeSyncState.d.ts +4 -0
- package/dist/umd/createSharedValueObservable.d.ts +3 -0
- package/dist/umd/currentUserEmitter.d.ts +3 -0
- package/dist/umd/db/DexieCloudDB.d.ts +61 -0
- package/dist/umd/db/entities/BaseRevisionMapEntry.d.ts +5 -0
- package/dist/umd/db/entities/EntityCommon.d.ts +5 -0
- package/dist/umd/db/entities/GuardedJob.d.ts +5 -0
- package/dist/umd/db/entities/Member.d.ts +19 -0
- package/dist/umd/db/entities/PersistedSyncState.d.ts +22 -0
- package/dist/umd/db/entities/Realm.d.ts +14 -0
- package/dist/umd/db/entities/Role.d.ts +11 -0
- package/dist/umd/db/entities/UserLogin.d.ts +23 -0
- package/dist/umd/default-ui/Dialog.d.ts +5 -0
- package/dist/umd/default-ui/LoginDialog.d.ts +3 -0
- package/dist/umd/default-ui/Styles.d.ts +3 -0
- package/dist/umd/default-ui/index.d.ts +24 -0
- package/dist/umd/define-ydoc-trigger.d.ts +3 -0
- package/dist/umd/dexie-cloud-addon.d.ts +3 -0
- package/dist/umd/dexie-cloud-addon.js +18 -14
- package/dist/umd/dexie-cloud-addon.js.gz +0 -0
- 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.gz +0 -0
- package/dist/umd/dexie-cloud-addon.min.js.map +1 -1
- package/dist/umd/dexie-cloud-client.d.ts +23 -0
- package/dist/umd/errors/HttpError.d.ts +5 -0
- package/dist/umd/extend-dexie-interface.d.ts +23 -0
- package/dist/umd/getGlobalRolesObservable.d.ts +5 -0
- package/dist/umd/getInternalAccessControlObservable.d.ts +12 -0
- package/dist/umd/getInvitesObservable.d.ts +23 -0
- package/dist/umd/getPermissionsLookupObservable.d.ts +16 -0
- package/dist/umd/getTiedRealmId.d.ts +2 -0
- package/dist/umd/helpers/BroadcastedAndLocalEvent.d.ts +8 -0
- package/dist/umd/helpers/CancelToken.d.ts +4 -0
- package/dist/umd/helpers/IS_SERVICE_WORKER.d.ts +1 -0
- package/dist/umd/helpers/SWBroadcastChannel.d.ts +12 -0
- package/dist/umd/helpers/allSettled.d.ts +1 -0
- package/dist/umd/helpers/bulkUpdate.d.ts +4 -0
- package/dist/umd/helpers/computeRealmSetHash.d.ts +2 -0
- package/dist/umd/helpers/date-constants.d.ts +5 -0
- package/dist/umd/helpers/flatten.d.ts +1 -0
- package/dist/umd/helpers/getMutationTable.d.ts +1 -0
- package/dist/umd/helpers/getSyncableTables.d.ts +4 -0
- package/dist/umd/helpers/getTableFromMutationTable.d.ts +1 -0
- package/dist/umd/helpers/makeArray.d.ts +1 -0
- package/dist/umd/helpers/randomString.d.ts +1 -0
- package/dist/umd/helpers/resolveText.d.ts +16 -0
- package/dist/umd/helpers/throwVersionIncrementNeeded.d.ts +1 -0
- package/dist/umd/helpers/visibilityState.d.ts +1 -0
- package/dist/umd/isEagerSyncDisabled.d.ts +2 -0
- package/dist/umd/isFirefox.d.ts +1 -0
- package/dist/umd/isSafari.d.ts +2 -0
- package/dist/umd/mapValueObservable.d.ts +5 -0
- package/dist/umd/mergePermissions.d.ts +2 -0
- package/dist/umd/middleware-helpers/guardedTable.d.ts +11 -0
- package/dist/umd/middleware-helpers/idGenerationHelpers.d.ts +18 -0
- package/dist/umd/middlewares/createIdGenerationMiddleware.d.ts +3 -0
- package/dist/umd/middlewares/createImplicitPropSetterMiddleware.d.ts +3 -0
- package/dist/umd/middlewares/createMutationTrackingMiddleware.d.ts +17 -0
- package/dist/umd/middlewares/outstandingTransaction.d.ts +4 -0
- package/dist/umd/overrideParseStoresSpec.d.ts +4 -0
- package/dist/umd/performInitialSync.d.ts +4 -0
- package/dist/umd/permissions.d.ts +9 -0
- package/dist/umd/prodLog.d.ts +9 -0
- package/dist/umd/service-worker.d.ts +1 -0
- package/dist/umd/service-worker.js +18 -14
- package/dist/umd/service-worker.js.map +1 -1
- package/dist/umd/service-worker.min.js +1 -1
- package/dist/umd/service-worker.min.js.map +1 -1
- package/dist/umd/sync/DEXIE_CLOUD_SYNCER_ID.d.ts +1 -0
- package/dist/umd/sync/LocalSyncWorker.d.ts +7 -0
- package/dist/umd/sync/SyncRequiredError.d.ts +3 -0
- package/dist/umd/sync/applyServerChanges.d.ts +3 -0
- package/dist/umd/sync/connectWebSocket.d.ts +2 -0
- package/dist/umd/sync/encodeIdsForServer.d.ts +4 -0
- package/dist/umd/sync/extractRealm.d.ts +2 -0
- package/dist/umd/sync/getLatestRevisionsPerTable.d.ts +6 -0
- package/dist/umd/sync/getTablesToSyncify.d.ts +3 -0
- package/dist/umd/sync/isOnline.d.ts +1 -0
- package/dist/umd/sync/isSyncNeeded.d.ts +2 -0
- package/dist/umd/sync/listClientChanges.d.ts +9 -0
- package/dist/umd/sync/listSyncifiedChanges.d.ts +5 -0
- package/dist/umd/sync/messageConsumerIsReady.d.ts +2 -0
- package/dist/umd/sync/messagesFromServerQueue.d.ts +8 -0
- package/dist/umd/sync/modifyLocalObjectsWithNewUserId.d.ts +4 -0
- package/dist/umd/sync/myId.d.ts +1 -0
- package/dist/umd/sync/numUnsyncedMutations.d.ts +2 -0
- package/dist/umd/sync/old_startSyncingClientChanges.d.ts +39 -0
- package/dist/umd/sync/performGuardedJob.d.ts +2 -0
- package/dist/umd/sync/ratelimit.d.ts +3 -0
- package/dist/umd/sync/registerSyncEvent.d.ts +3 -0
- package/dist/umd/sync/sync.d.ts +15 -0
- package/dist/umd/sync/syncIfPossible.d.ts +5 -0
- package/dist/umd/sync/syncWithServer.d.ts +6 -0
- package/dist/umd/sync/triggerSync.d.ts +2 -0
- package/dist/umd/sync/updateBaseRevs.d.ts +5 -0
- package/dist/umd/types/DXCAlert.d.ts +25 -0
- package/dist/umd/types/DXCInputField.d.ts +11 -0
- package/dist/umd/types/DXCUserInteraction.d.ts +93 -0
- package/dist/umd/types/NewIdOptions.d.ts +3 -0
- package/dist/umd/types/SWMessageEvent.d.ts +3 -0
- package/dist/umd/types/SWSyncEvent.d.ts +4 -0
- package/dist/umd/types/SyncState.d.ts +9 -0
- package/dist/umd/types/TXExpandos.d.ts +11 -0
- package/dist/umd/updateSchemaFromOptions.d.ts +3 -0
- package/dist/umd/userIsActive.d.ts +7 -0
- package/dist/umd/verifyConfig.d.ts +2 -0
- package/dist/umd/verifySchema.d.ts +2 -0
- package/dist/umd/yjs/YDexieCloudSyncState.d.ts +3 -0
- package/dist/umd/yjs/YTable.d.ts +3 -0
- package/dist/umd/yjs/applyYMessages.d.ts +9 -0
- package/dist/umd/yjs/awareness.d.ts +3 -0
- package/dist/umd/yjs/createYClientUpdateObservable.d.ts +4 -0
- package/dist/umd/yjs/createYHandler.d.ts +2 -0
- package/dist/umd/yjs/downloadYDocsFromServer.d.ts +3 -0
- package/dist/umd/yjs/getUpdatesTable.d.ts +3 -0
- package/dist/umd/yjs/listUpdatesSince.d.ts +3 -0
- package/dist/umd/yjs/listYClientMessagesAndStateVector.d.ts +26 -0
- package/dist/umd/yjs/reopenDocSignal.d.ts +10 -0
- package/dist/umd/yjs/updateYSyncStates.d.ts +6 -0
- package/package.json +3 -3
|
@@ -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{l(r.next(e))}catch(e){i(e)}}function c(e){try{l(r.throw(e))}catch(e){i(e)}}function l(e){var t;e.done?s(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,c)}l((r=r.apply(e,t||[])).next())})}function s(e){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),c("next"),c("throw"),c("return",function(e){return function(t){return Promise.resolve(t).then(e,u)}}),r[Symbol.asyncIterator]=function(){return this},r;function c(e,t){s[e]&&(r[e]=function(t){return new Promise(function(n,r){o.push([e,t,n,r])>1||l(e,t)})},t&&(r[e]=t(r[e])))}function l(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){l("next",e)}function u(e){l("throw",e)}function d(e,t){e(t),o.shift(),o.length&&l(o[0][0],o[0][1])}}function c(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 l={userId:"unauthorized",name:"Unauthorized",claims:{sub:"unauthorized"},lastLogin:new Date(0)};try{Object.freeze(l),Object.freeze(l.claims)}catch(w){}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{toString:m}={};const b={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}};class v{constructor(e,t){this.buf=e,this.type=t}}var w;const _=Symbol.for("TSONRef");class k{constructor(e,t,n,r){this.type=e,this.ref=t,this.size=n,this.contentType=r,this[w]=!0,Object.freeze(this)}async resolve(){if(!k.resolver)throw new Error("TSONRef.resolver not configured. Set TSONRef.resolver to a function that fetches blobs.");const e=await k.resolver(this);return this.reconstruct(e)}reconstruct(e){const t=(t,n)=>{if(e.byteLength%t!==0)throw new RangeError(`Buffer length ${e.byteLength} is not aligned to ${t} bytes for ${n}`)};switch(this.type){case"ArrayBuffer":default:return e;case"Uint8Array":return new Uint8Array(e);case"Blob":return new Blob([e],{type:this.contentType});case"Int8Array":return new Int8Array(e);case"Uint8ClampedArray":return new Uint8ClampedArray(e);case"Int16Array":return t(2,"Int16Array"),new Int16Array(e);case"Uint16Array":return t(2,"Uint16Array"),new Uint16Array(e);case"Int32Array":return t(4,"Int32Array"),new Int32Array(e);case"Uint32Array":return t(4,"Uint32Array"),new Uint32Array(e);case"Float32Array":return t(4,"Float32Array"),new Float32Array(e);case"Float64Array":return t(8,"Float64Array"),new Float64Array(e);case"BigInt64Array":return t(8,"BigInt64Array"),new BigInt64Array(e);case"BigUint64Array":return t(8,"BigUint64Array"),new BigUint64Array(e)}}static isTSONRef(e){return null!==e&&"object"==typeof e&&_ in e&&!0===e[_]}static isTSONRefData(e){return null!==e&&"object"==typeof e&&"$ref"in e&&"$t"in e&&"$size"in e}static fromData(e){return new k(e.$t,e.$ref,e.$size,e.$ct)}toJSON(){const e={$t:this.type,$ref:this.ref,$size:this.size};return this.contentType&&(e.$ct=this.contentType),e}}function S(e){const t=new XMLHttpRequest;t.overrideMimeType("text/plain; charset=x-user-defined");const n=URL.createObjectURL(e);try{if(t.open("GET",n,!1),t.send(),200!==t.status&&0!==t.status)throw new Error("Bad Blob access: "+t.status);return t.responseText}finally{URL.revokeObjectURL(n)}}w=_,k.TYPE_SYMBOL=_,k.resolver=null;const x={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)}},E={Date:{replace:e=>({$t:"Date",v:isNaN(e.getTime())?"NaN":e.toISOString()}),revive:({v:e})=>new Date("NaN"===e?NaN:Date.parse(e))}},C={Set:{replace:e=>({$t:"Set",v:Array.from(e)}),revive:({v:e})=>new Set(e)}},A={Map:{replace:e=>({$t:"Map",v:Array.from(e.entries())}),revive:({v:e})=>new Map(e)}},I="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof global?global:void 0,O=["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","DataView","BigInt64Array","BigUint64Array"].reduce((e,t)=>({...e,[t]:{replace:(e,n,r)=>{const s=e.buffer,i=0===e.byteOffset&&e.byteLength===s.byteLength?s:s.slice(e.byteOffset,e.byteOffset+e.byteLength);return{$t:t,v:r.ArrayBuffer.replace(i,n,r).v}},revive:({v:e},n,r)=>{const s=I[t];return s&&new s(r.ArrayBuffer.revive({v:e},n,r))}}}),{}),D="fromBase64"in Uint8Array,j="toBase64"in Uint8Array.prototype,T="undefined"!=typeof Buffer?e=>Buffer.from(e,"base64"):D?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},U="undefined"!=typeof Buffer?e=>ArrayBuffer.isView(e)?Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("base64"):Buffer.from(e).toString("base64"):j?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,Array.from(r)))}return btoa(n.join(""))};function P(e){return function(e){for(var t="",n=0,r=e.length;n<r;n++)t+=$[e[n]];return t}(U(e))}function L(e){return T(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+=R[e[n]];return t}(e))}const R={"-":"=",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:"+","|":"/"},$={};for(const e of Object.keys(R))$[R[e]]=e;const B={ArrayBuffer:{replace:e=>({$t:"ArrayBuffer",v:P(e)}),revive:({v:e})=>{const t=L(e);return t.buffer.byteLength===t.byteLength?t.buffer:t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}}};function N(e){const t=new Uint8Array(e.length);for(let n=0;n<e.length;++n)t[n]=e.charCodeAt(n);return t.buffer}const M={Blob:{test:(e,t)=>"Blob"===t||e instanceof v,replace:e=>({$t:"Blob",v:U(e instanceof v?e.buf:N(S(e))),type:e.type}),revive:({type:e,v:t})=>{const n=T(t),r=n.buffer.byteLength===n.byteLength?n.buffer:n.buffer.slice(n.byteOffset,n.byteOffset+n.byteLength);return"undefined"!=typeof Blob?new Blob([new Uint8Array(r)],{type:e}):new v(r,e)}}},F={File:{test:(e,t)=>"File"===t,replace:e=>({$t:"File",v:U(N(S(e))),type:e.type,name:e.name,lastModified:new Date(e.lastModified).toISOString()}),revive:({type:e,v:t,name:n,lastModified:r})=>{const s=T(t),i=s.buffer.byteLength===s.byteLength?s.buffer:s.buffer.slice(s.byteOffset,s.byteOffset+s.byteLength);return new File([new Uint8Array(i)],n,{type:e,lastModified:new Date(r).getTime()})}}},W={undefined:{replace:()=>({$t:"undefined"}),revive:()=>{}}},z="undefined"!=typeof crypto?crypto.getRandomValues.bind(crypto):e=>{for(let t=0;t<e.length;++t)e[t]=Math.floor(256*Math.random())};let K=0;const V={}.hasOwnProperty;function H(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)H(e,t[r],n[r])}else{var i=t.indexOf(".");if(-1!==i){var o=t.substr(0,i),c=t.substr(i+1);if(""===c)void 0===n?Array.isArray(e)?isNaN(parseInt(o))||e.splice(parseInt(o),1):delete e[o]:e[o]=n;else{var l=e[o];l&&function(e,t){return V.call(e,t)}(e,o)||(l=e[o]={}),H(l,c,n)}}else void 0===n?Array.isArray(e)&&!isNaN(parseInt(t))?e.splice(t,1):delete e[t]:e[t]=n}}const J="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=q)=>{const n=Buffer.alloc(e);return t(n),n.toString("base64")}:()=>{throw new Error("No implementation of randomString was found")};function q(e){for(let t=0;t<e.length;++t)e[t]=Math.floor(256*Math.random())}function G(e){return"string"==typeof e||!!(Array.isArray(e)&&e.some(e=>G(e))&&e.every(Y))}function Y(e){return"string"==typeof e||"number"==typeof e||Array.isArray(e)&&e.every(Y)}function Q(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))H(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 X(e,t){for(const{table:n,muts:r}of t)for(const t of r)Q(e,n,t)}const Z=Math.floor,ee=Math.abs,te=(e,t)=>e<t?e:t,ne=(e,t)=>e>t?e:t,re=e=>0!==e?e<0:1/e<0,se=64,ie=128,oe=127,ce=Number.MAX_SAFE_INTEGER,le=Number.isInteger||(e=>"number"==typeof e&&isFinite(e)&&Z(e)===e),ae=()=>new Set,ue=e=>e[e.length-1],de=(e,t)=>{for(let n=0;n<t.length;n++)e.push(t[n])},he=Array.from,fe=Array.isArray,pe=/^\s*/g,ge=/([A-Z])/g,ye=(e,t)=>(e=>e.replace(pe,""))(e.replace(ge,e=>`${t}${(e=>e.toLowerCase())(e)}`)),me="undefined"!=typeof TextEncoder?new TextEncoder:null,be=me?e=>me.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 ve="undefined"==typeof TextDecoder?null:new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});ve&&1===ve.decode(new Uint8Array).length&&(ve=null);class we{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}}const _e=()=>new we,ke=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},Se=(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},xe=Se,Ee=(e,t)=>{for(;t>oe;)Se(e,ie|oe&t),t=Z(t/128);Se(e,oe&t)},Ce=(e,t)=>{const n=re(t);for(n&&(t=-t),Se(e,(t>63?ie:0)|(n?se:0)|63&t),t=Z(t/64);t>0;)Se(e,(t>oe?ie:0)|oe&t),t=Z(t/128)},Ae=new Uint8Array(3e4),Ie=Ae.length/3,Oe=me&&me.encodeInto?(e,t)=>{if(t.length<Ie){const n=me.encodeInto(t,Ae).written||0;Ee(e,n);for(let t=0;t<n;t++)Se(e,Ae[t])}else je(e,be(t))}:(e,t)=>{const n=unescape(encodeURIComponent(t)),r=n.length;Ee(e,r);for(let t=0;t<r;t++)Se(e,n.codePointAt(t))},De=(e,t)=>{const n=e.cbuf.length,r=e.cpos,s=te(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(ne(2*n,i)),e.cbuf.set(t.subarray(s)),e.cpos=i)},je=(e,t)=>{Ee(e,t.byteLength),De(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*ne(n,t)),e.cpos=0)})(e,t);const n=new DataView(e.cbuf.buffer,e.cpos,t);return e.cpos+=t,n},Ue=(e,t)=>Te(e,8).setBigUint64(0,t,!1),Pe=new DataView(new ArrayBuffer(4)),Le=(e,t)=>{switch(typeof t){case"string":Se(e,119),Oe(e,t);break;case"number":le(t)&&ee(t)<=2147483647?(Se(e,125),Ce(e,t)):(n=t,Pe.setFloat32(0,n),Pe.getFloat32(0)===n?(Se(e,124),((e,t)=>{Te(e,4).setFloat32(0,t,!1)})(e,t)):(Se(e,123),((e,t)=>{Te(e,8).setFloat64(0,t,!1)})(e,t)));break;case"bigint":Se(e,122),((e,t)=>{Te(e,8).setBigInt64(0,t,!1)})(e,t);break;case"object":if(null===t)Se(e,126);else if(fe(t)){Se(e,117),Ee(e,t.length);for(let n=0;n<t.length;n++)Le(e,t[n])}else if(t instanceof Uint8Array)Se(e,116),je(e,t);else{Se(e,118);const n=Object.keys(t);Ee(e,n.length);for(let r=0;r<n.length;r++){const s=n[r];Oe(e,s),Le(e,t[s])}}break;case"boolean":Se(e,t?120:121);break;default:Se(e,127)}var n};class Re extends we{constructor(e){super(),this.w=e,this.s=null,this.count=0}write(e){this.s===e?this.count++:(this.count>0&&Ee(this,this.count-1),this.count=1,this.w(this,e),this.s=e)}}const $e=e=>{e.count>0&&(Ce(e.encoder,1===e.count?e.s:-e.s),e.count>1&&Ee(e.encoder,e.count-2))};class Be{constructor(){this.encoder=new we,this.s=0,this.count=0}write(e){this.s===e?this.count++:($e(this),this.count=1,this.s=e)}toUint8Array(){return $e(this),ke(this.encoder)}}const Ne=e=>{if(e.count>0){const t=2*e.diff+(1===e.count?0:1);Ce(e.encoder,t),e.count>1&&Ee(e.encoder,e.count-2)}};class Me{constructor(){this.encoder=new we,this.s=0,this.count=0,this.diff=0}write(e){this.diff===e-this.s?(this.s=e,this.count++):(Ne(this),this.count=1,this.diff=e-this.s,this.s=e)}toUint8Array(){return Ne(this),ke(this.encoder)}}class Fe{constructor(){this.sarr=[],this.s="",this.lensE=new Be}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 we;return this.sarr.push(this.s),this.s="",Oe(e,this.sarr.join("")),De(e,this.lensE.toUint8Array()),ke(e)}}const We=e=>new Error(e),ze=()=>{throw We("Method unimplemented")},Ke=()=>{throw We("Unexpected case")},Ve=We("Unexpected end of array"),He=We("Integer out of Range");class Je{constructor(e){this.arr=e,this.pos=0}}const qe=e=>new Je(e),Ge=e=>e.pos!==e.arr.length,Ye=e=>((e,t)=>{const n=new Uint8Array(e.arr.buffer,e.pos+e.arr.byteOffset,t);return e.pos+=t,n})(e,Xe(e)),Qe=e=>e.arr[e.pos++],Xe=e=>{let t=0,n=1;const r=e.arr.length;for(;e.pos<r;){const r=e.arr[e.pos++];if(t+=(r&oe)*n,n*=128,r<ie)return t;if(t>ce)throw He}throw Ve},Ze=e=>{let t=e.arr[e.pos++],n=63&t,r=64;const s=(t&se)>0?-1:1;if(0===(t&ie))return s*n;const i=e.arr.length;for(;e.pos<i;){if(t=e.arr[e.pos++],n+=(t&oe)*r,r*=128,t<ie)return s*n;if(n>ce)throw He}throw Ve},et=ve?e=>ve.decode(Ye(e)):e=>{let t=Xe(e);if(0===t)return"";{let n=String.fromCodePoint(Qe(e));if(--t<100)for(;t--;)n+=String.fromCodePoint(Qe(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))}},tt=(e,t)=>{const n=new DataView(e.arr.buffer,e.arr.byteOffset+e.pos,t);return e.pos+=t,n},nt=e=>tt(e,8).getBigUint64(0,!1),rt=[e=>{},e=>null,Ze,e=>tt(e,4).getFloat32(0,!1),e=>tt(e,8).getFloat64(0,!1),e=>tt(e,8).getBigInt64(0,!1),e=>!1,e=>!0,et,e=>{const t=Xe(e),n={};for(let r=0;r<t;r++){n[et(e)]=st(e)}return n},e=>{const t=Xe(e),n=[];for(let r=0;r<t;r++)n.push(st(e));return n},Ye],st=e=>rt[127-Qe(e)](e);class it extends Je{constructor(e,t){super(e),this.reader=t,this.s=null,this.count=0}read(){return 0===this.count&&(this.s=this.reader(this),Ge(this)?this.count=Xe(this)+1:this.count=-1),this.count--,this.s}}class ot extends Je{constructor(e){super(e),this.s=0,this.count=0}read(){if(0===this.count){this.s=Ze(this);const e=re(this.s);this.count=1,e&&(this.s=-this.s,this.count=Xe(this)+2)}return this.count--,this.s}}class ct extends Je{constructor(e){super(e),this.s=0,this.count=0,this.diff=0}read(){if(0===this.count){const e=Ze(this),t=1&e;this.diff=Z(e/2),this.count=1,t&&(this.count=Xe(this)+2)}return this.s+=this.diff,this.count--,this.s}}class lt{constructor(e){this.decoder=new ot(e),this.str=et(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*at(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 c=0;for(;c<o.byteLength;)switch(t){case 0:if(c+4>o.byteLength){for(const e of o.slice(c)){if(4===r)break;n[r++]=e,++c}if(r<4)break}else if(r>0&&r<4)for(const e of o.slice(c,c+4-r))n[r++]=e,++c;case 1:i=4===r?new DataView(n.buffer,0,4).getUint32(0,!1):e.getUint32(c,!1),r?r=0:c+=4;case 2:if(c>=o.byteLength){t=2;break}if(c+i>o.byteLength)s.push(o.slice(c)),i-=o.byteLength-c,t=2,c=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(c,c+i),t),s=[],yield e}else yield o.slice(c,c+i);c+=i,t=0}}}}function ut(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 U(s)})}function dt(e){return Object.entries(e.cloud.schema||{}).filter(([,{markedForSync:e}])=>e).map(([t])=>e.tables.find(({name:e})=>e===t)).filter(e=>!!e)}function ht(e){return`$${e}_mutations`}function ft(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 pt=[].concat;function gt(e){return pt.apply([],e)}function yt(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=ft(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=gt(i).sort((e,t)=>e.mut.txid===t.mut.txid?e.mut.opNo-t.mut.opNo:e.mut.ts-t.mut.ts),c=[];let l=null,a=null;for(const{table:e,mut:t}of o)l&&l.table===e&&a===t.txid?l.muts.push(t):(l={table:e,muts:[t]},a=t.txid,c.push(l));return c})}function mt(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")}class bt extends Error{constructor({title:e,message:t,messageCode:n,messageParams:r}){super(t),this.name="TokenErrorResponseError",this.title=e,this.messageCode=n,this.messageParams=r}}const vt=`data:image/svg+xml;base64,${btoa('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="#666666" stroke-width="2"><rect x="2" y="4" width="20" height="16" rx="2"/><path d="M22 6L12 13 2 6"/></svg>')}`;function wt(e){return{name:"provider",value:e.name,displayName:`Continue with ${e.displayName}`,iconUrl:e.iconUrl,styleHint:e.type}}function _t(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 kt(e,t,...n){return _t(e,{type:"message-alert",title:t,alerts:n,fields:{},submitLabel:"OK",cancelLabel:null})}function St(e,t,n,s){return r(this,void 0,void 0,function*(){let r=n||"",i=!0;for(;!r||!/^[\w-+.]+@([\w-]+\.)+[\w-]{2,10}(\sas\s[\w-+.]+@([\w-]+\.)+[\w-]{2,10})?$/.test(r);){const n=[];i&&s&&n.push(s),r&&n.push({type:"error",messageCode:"INVALID_EMAIL",message:"Please enter a valid email address",messageParams:{}}),i=!1,r=(yield _t(e,{type:"email",title:t,alerts:n,fields:{email:{type:"email",placeholder:"you@somedomain.com"}}})).email}return r})}function xt(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 _t(e,{type:"otp",title:"Enter OTP",alerts:r,fields:{otp:{type:"otp",label:"OTP",placeholder:"Paste OTP here"}}});return s})}class Et extends Error{constructor(e){super(`OAuth redirect initiated for provider: ${e}`),this.name="OAuthRedirectError",this.provider=e}}class Ct extends Error{constructor(e){super(e.message),this.code=e.code}get name(){return"PolicyRejectionError"}}function At(e){return"object"==typeof e&&null!==e&&"string"==typeof e.code&&"string"==typeof e.message}const It=1e3;function Ot(e){return r(this,void 0,void 0,function*(){var t,n,r;const s=yield e.getCurrentUser(),{accessToken:i,accessTokenExpiration:o,refreshToken:c,refreshTokenExpiration:l,claims:a}=s;if(!i)return null;if((null!==(t=null==o?void 0:o.getTime())&&void 0!==t?t:1/0)>Date.now()+3e5&&"ok"===((null===(n=s.license)||void 0===n?void 0:n.status)||"ok"))return s;if(!c)throw new Error("Refresh token missing");if((null!==(r=null==l?void 0:l.getTime())&&void 0!==r?r:1/0)<=Date.now())throw new Error("Refresh token has expired");const u=yield jt(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 Dt(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 jt(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 c=function(e){const t=U(e);return function(e){let t="-----BEGIN PUBLIC KEY-----\n";for(;e.length>0;)t+=e.substring(0,64)+"\n",e=e.substring(64);return t+="-----END PUBLIC KEY-----",t}(t)}(yield crypto.subtle.exportKey("spki",o));t.publicKey=o;try{const e=yield n({public_key:c,hints:i});if("error"===e.type)throw new bt(e);if("tokens"!==e.type)throw new Error(`Unexpected response type from token endpoint: ${e.type}`);return t.accessToken=e.accessToken,t.accessTokenExpiration=new Date(e.accessTokenExpiration),t.refreshToken=e.refreshToken,e.refreshTokenExpiration&&(t.refreshTokenExpiration=new Date(e.refreshTokenExpiration)),t.userId=e.claims.sub,t.email=e.claims.email,t.name=e.claims.name,t.claims=e.claims,t.license={type:e.userType,status:e.claims.license||"ok"},t.data=e.data,null!=e.evalDaysLeft&&(t.license.evalDaysLeft=e.evalDaysLeft),null!=e.userValidUntil&&(t.license.validUntil=new Date(e.userValidUntil)),e.alerts&&e.alerts.length>0&&(yield _t(s,{type:"message-alert",title:"Authentication Alert",fields:{},alerts:e.alerts})),t}catch(t){if(t instanceof Et||"OAuthRedirectError"===(null==t?void 0:t.name))throw t;if(t instanceof Ct||"PolicyRejectionError"===(null==t?void 0:t.name))throw t;if(t instanceof bt)throw yield kt(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){if("undefined"!=typeof navigator&&!navigator.onLine)n="You seem to be offline. Please connect to the internet and try again.";else if("undefined"==typeof location||!e.debug&&"localhost"!==location.hostname&&"127.0.0.1"!==location.hostname)n="Could not connect to server. Please verify the connection.",yield kt(s,"Authentication Failed",{type:"error",messageCode:"GENERIC_ERROR",message:n,messageParams:{}}).catch(()=>{});else{const e=`npx dexie-cloud whitelist ${location.origin}`;n=`Could not connect to server. Please verify that your origin '${location.origin}' is whitelisted using \`npx dexie-cloud whitelist\``,yield kt(s,"Authentication Failed",{type:"error",messageCode:"GENERIC_ERROR",message:n,messageParams:{},copyText:e}).catch(()=>{})}}throw t}})}(n,s,i,o)})}function jt(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=U(i),c={grant_type:"refresh_token",refresh_token:t.refreshToken,scopes:["ACCESS_DB"],signature:o,signing_algorithm:r,time_stamp:n},l=yield fetch(`${e}/token`,{body:JSON.stringify(c),method:"post",headers:{"Content-Type":"application/json"},mode:"cors"});if(200!==l.status)throw new Error(`RefreshToken: Status ${l.status} from ${e}/token`);const a=yield l.json();if("error"===a.type)throw new bt(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 Tt="function"==typeof BigInt&&"bigint"==typeof BigInt(0);class Ut{toString(){return this.v}constructor(e){this.v=e}}const Pt=Tt?{}:{bigint:{test:e=>e instanceof Ut,replace:e=>Object.assign({$t:"bigint"},e),revive:({v:e})=>new Ut(e)}},Lt=Object.assign(Object.assign(Object.assign(Object.assign({},W),Pt),F),{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)}}}),Rt=function(...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 b;let i=n.get(r);if(void 0!==i)return i;const o=(s=e,m.call(s).slice(8,-1)),c=Object.entries(t).find(([t,n])=>n?.test?.(e,o)??t===o);return i=c?.[1],i||(i=Array.isArray(e)?null:"function"==typeof e?t.function||null:b),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=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})}}}(O,B,M,x,E,C,A,Lt);class $t extends Error{constructor(e,t){super(t||`${e.status} ${e.statusText}`),this.httpStatus=e.status}get name(){return"HttpError"}}function Bt(t,n,r){const s=[];for(let i of r){const{table:r,muts:o}=i,c=t.tables.find(e=>e.name===r);if(!c)throw new Error(`Internal error: table ${r} not found in DBCore schema`);const{primaryKey:l}=c;let a=i;o.forEach((t,r)=>{const s=!l.outbound&&("upsert"===t.type||"insert"===t.type);t.keys.forEach((t,o)=>{if(Array.isArray(t)){a===i&&(a=Nt(i,s));const e=a.muts[r],n=JSON.stringify(t);e.keys[o]=n}else if("#"===t[0]){a===i&&(a=Nt(i,s));const c=a.muts[r];if(!n.isLoggedIn)throw new Error("Internal error: Cannot sync private IDs before authenticated");const u=`${t}:${n.userId}`;c.keys[o]=u,s&&e.setByKeyPath(c.values[o],l.keyPath,u)}})}),s.push(a)}return s}function Nt(e,t){return Object.assign(Object.assign({},e),{muts:t?e.muts.map(e=>"insert"!==e.type&&"upsert"!==e.type||!e.values?Object.assign(Object.assign({},e),{keys:e.keys.slice()}):Object.assign(Object.assign({},e),{keys:e.keys.slice(),values:e.values.slice()})):e.muts.map(e=>Object.assign(Object.assign({},e),{keys:e.keys.slice()}))})}let Mt=new WeakMap;function Ft(e){return r(this,void 0,void 0,function*(){var t,n;const r=(null!==(n=null===(t=Mt.get(e))||void 0===t?void 0:t.getTime())&&void 0!==n?n:0)-Date.now();r>0&&(yield new Promise(e=>setTimeout(e,r)))})}function Wt(e,t,n,s,i,o,c,l,a){return r(this,void 0,void 0,function*(){const r={Accept:"application/json","Content-Type":"application/tson"},u=yield Ot(i),d=null==u?void 0:u.accessToken;d&&(r.Authorization=`Bearer ${d}`);const h={v:3,dbID:null==n?void 0:n.remoteDbId,clientIdentity:l,schema:c||{},lastPull:n?{serverRevision:n.serverRevision,yServerRevision:n.yServerRevision,realms:n.realms,inviteRealms:n.inviteRealms}:void 0,baseRevs:s,changes:Bt(i.dx.core.schema,a,e),y:t,dxcv:i.cloud.version};i.syncStateChangedEvent.next({phase:"pushing"});const f=Rt.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));Mt.set(e,new Date(Date.now()+1e3*t))}else Mt.delete(e)}}(i,p),!p.ok)throw new $t(p);switch(p.headers.get("content-type")){case"application/x-bison":case"application/x-bison-stream":throw new Error("BISON format no longer supported. Server should send application/json.");default:{const e=yield p.text();return Rt.parse(e)}}})}function zt(t){if(null==t?void 0:t.cancelled)throw new e.AbortError("Operation was cancelled")}let Kt=!1;function Vt(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 Ht(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 Jt(t,n,s){return r(this,void 0,void 0,function*(){const r=yield t.bulkGet(n),i=[],o=[];n.forEach((n,c)=>{const l=r[c];if(l){for(const[r,i]of Object.entries(s[c]))if(r===t.schema.primKey.keyPath){if(0!==e.cmp(i,n))throw new Error("Cannot change primary key")}else e.setByKeyPath(l,r,i);i.push(n),o.push(l)}}),yield null==t.schema.primKey.keyPath?t.bulkPut(o,i):t.bulkPut(o)})}function qt(e){if("object"!=typeof e||null===e)return!1;const t=e;return"string"==typeof t._bt&&"string"==typeof t.ref&&void 0===t.v}function Gt(e,t=new WeakSet){return null!=e&&(!!qt(e)||"object"==typeof e&&(!t.has(e)&&(t.add(e),!(e instanceof Date||e instanceof RegExp||e instanceof Blob)&&(!(e instanceof ArrayBuffer||ArrayBuffer.isView(e))&&(Array.isArray(e)?e.some(e=>Gt(e,t)):e.constructor===Object&&Object.values(e).some(e=>Gt(e,t)))))))}function Yt(e,t){return r(this,arguments,void 0,function*(e,t,n=[],r="",s=new WeakMap,i){if(null==e)return e;if(qt(e)){const s=function(e,t){if("string"===t._bt)return(new TextDecoder).decode(e);const n=e.buffer.byteLength===e.byteLength?e.buffer:e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength);switch(t._bt){case"Blob":return new Blob([new Uint8Array(n)],{type:t.ct||""});case"ArrayBuffer":return n;case"Uint8Array":default:return e;case"Int8Array":return new Int8Array(n);case"Uint8ClampedArray":return new Uint8ClampedArray(n);case"Int16Array":return new Int16Array(n);case"Uint16Array":return new Uint16Array(n);case"Int32Array":return new Int32Array(n);case"Uint32Array":return new Uint32Array(n);case"Float32Array":return new Float32Array(n);case"Float64Array":return new Float64Array(n);case"BigInt64Array":return new BigInt64Array(n);case"BigUint64Array":return new BigUint64Array(n);case"DataView":return new DataView(n)}}(yield i.download(e,t),e);return n.push({keyPath:r,data:s,ref:e.ref}),s}if(Array.isArray(e)){if(s.has(e))return s.get(e);const o=[];s.set(e,o);for(let c=0;c<e.length;c++){const l=r?`${r}.${c}`:`${c}`;o.push(yield Yt(e[c],t,n,l,s,i))}return o}if("object"==typeof e&&e.constructor===Object){if(s.has(e))return s.get(e);const o={};s.set(e,o);for(const[c,l]of Object.entries(e)){if("_hasBlobRefs"===c)continue;const e=r?`${r}.${c}`:c;o[c]=yield Yt(l,t,n,e,s,i)}return o}return e})}function Qt(e){return"object"==typeof e&&null!==e&&1===e._hasBlobRefs}function Xt(e){null!==e&&"object"==typeof e&&e.constructor===Object&&Gt(e)&&(e._hasBlobRefs=1)}function Zt(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":n.values.forEach(Xt),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":n.values.forEach(Xt),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 Jt(t,r,n.changeSpecs);break;case"delete":yield t.bulkDelete(r)}}}})}"undefined"!=typeof self&&"undefined"!=typeof navigator&&(Kt=navigator.onLine,self.addEventListener("online",()=>Kt=!0),self.addEventListener("offline",()=>Kt=!1));const en="dexie-cloud-syncer";function tn(e,t){return e.where("i").between(t,1/0,!0).toArray()}const nn=()=>new Map,rn=e=>{const t=nn();return e.forEach((e,n)=>{t.set(n,e)}),t},sn=(e,t,n)=>{let r=e.get(t);return void 0===r&&e.set(t,r=n()),r};class on{constructor(){this._observers=nn()}on(e,t){return sn(this._observers,e,ae).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 he((this._observers.get(e)||nn()).values()).forEach(e=>e(...t))}destroy(){this._observers=nn()}}class cn{constructor(){this._observers=nn()}on(e,t){sn(this._observers,e,ae).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 he((this._observers.get(e)||nn()).values()).forEach(e=>e(...t))}destroy(){this._observers=nn()}}const ln=crypto.getRandomValues.bind(crypto),an=()=>ln(new Uint32Array(1))[0],un=[1e7]+-1e3+-4e3+-8e3+-1e11,dn=()=>un.replace(/[018]/g,e=>(e^an()&15>>e/4).toString(16)),hn=Date.now,fn=e=>new Promise(e);Promise.all.bind(Promise);const pn=e=>void 0===e?null:e;let gn=new class{constructor(){this.map=new Map}setItem(e,t){this.map.set(e,t)}getItem(e){return this.map.get(e)}},yn=!0;try{"undefined"!=typeof localStorage&&localStorage&&(gn=localStorage,yn=!1)}catch(gl){}const mn=gn,bn=Object.assign,vn=Object.keys,wn=e=>vn(e).length,_n=e=>vn(e).length,kn=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),Sn=Object.freeze,xn=e=>{for(const t in e){const n=e[t];"object"!=typeof n&&"function"!=typeof n||xn(e[t])}return Sn(e)},En=Symbol("Equality"),Cn=(e,t,n=0)=>{try{for(;n<e.length;n++)e[n](...t)}finally{n<e.length&&Cn(e,t,n+1)}},An=(e,t)=>{if(e===t)return!0;if(null==e||null==t||e.constructor!==t.constructor)return!1;if(null!=e[En])return e[En](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)||!An(e.get(n),t.get(n)))return!1;break;case Object:if(wn(e)!==wn(t))return!1;for(const n in e)if(!kn(e,n)||!An(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(!An(e[n],t[n]))return!1;break;default:return!1}return!0},In="undefined"!=typeof process&&process.release&&/node|io\.js/.test(process.release.name)&&"[object process]"===Object.prototype.toString.call("undefined"!=typeof process?process:0);let On;const Dn=e=>(()=>{if(void 0===On)if(In){On=nn();const e=process.argv;let t=null;for(let n=0;n<e.length;n++){const r=e[n];"-"===r[0]?(null!==t&&On.set(t,""),t=r):null!==t&&(On.set(t,r),t=null)}null!==t&&On.set(t,"")}else"object"==typeof location?(On=nn(),(location.search||"?").slice(1).split("&").forEach(e=>{if(0!==e.length){const[t,n]=e.split("=");On.set(`--${ye(t,"-")}`,n),On.set(`-${ye(t,"-")}`,n)}})):On=nn();return On})().has(e),jn=e=>pn(In?process.env[e.toUpperCase().replaceAll("-","_")]:mn.getItem(e)),Tn=e=>Dn("--"+e)||null!==jn(e);Tn("production");var Un;In&&(Un=process.env.FORCE_COLOR,["true","1","2"].includes(Un))||!Dn("--no-colors")&&!Tn("no-color")&&(!In||process.stdout.isTTY)&&(!In||Dn("--color")||null!==jn("COLORTERM")||(jn("TERM")||"").includes("color"));class Pn{constructor(e,t){this.left=e,this.right=t}}const Ln=(e,t)=>new Pn(e,t);"undefined"!=typeof DOMParser&&new DOMParser;const Rn=Symbol,$n=Rn(),Bn=Rn(),Nn=Rn(),Mn=Rn(),Fn=Rn(),Wn=Rn(),zn=Rn(),Kn=Rn(),Vn=Rn(),Hn=(Ln("font-weight","bold"),Ln("font-weight","normal"),Ln("color","blue"),Ln("color","green"),Ln("color","grey"),Ln("color","red"),Ln("color","purple"),Ln("color","orange"),Ln("color","black"),ae()),Jn=e=>({[Symbol.iterator](){return this},next:e}),qn=(e,t)=>Jn(()=>{const{done:n,value:r}=e.next();return{done:n,value:n?void 0:t(r)}});class Gn{constructor(e,t){this.clock=e,this.len=t}}class Yn{constructor(){this.clients=new Map}}const Qn=(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])Ur(e,s,o.clock,o.len,n)}}),Xn=(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=Z((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)},Zn=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=ne(r.len,s.clock+s.len-r.clock):(n<t&&(e[n]=s),n++)}e.length=n})},er=(e,t,n,r)=>{sn(e.clients,t,()=>[]).push(new Gn(n,r))},tr=(e,t)=>{Ee(e.restEncoder,t.clients.size),he(t.clients.entries()).sort((e,t)=>t[0]-e[0]).forEach(([t,n])=>{e.resetDsCurVal(),Ee(e.restEncoder,t);const r=n.length;Ee(e.restEncoder,r);for(let t=0;t<r;t++){const r=n[t];e.writeDsClock(r.clock),e.writeDsLen(r.len)}})},nr=(e,t,n)=>{const r=new Yn,s=Xe(e.restDecoder);for(let i=0;i<s;i++){e.resetDsCurVal();const s=Xe(e.restDecoder),i=Xe(e.restDecoder),o=n.clients.get(s)||[],c=Cr(n,s);for(let n=0;n<i;n++){const n=e.readDsClock(),i=n+e.readDsLen();if(n<c){c<i&&er(r,s,c,i-c);let e=Ir(o,n),l=o[e];for(!l.deleted&&l.id.clock<n&&(o.splice(e+1,0,pi(t,l,n-l.id.clock)),e++);e<o.length&&(l=o[e++],l.id.clock<i);)l.deleted||(i<l.id.clock+l.length&&o.splice(e,0,pi(t,l,i-l.id.clock)),l.delete(t))}else er(r,s,n,i-n)}}if(r.clients.size>0){const e=new ur;return Ee(e.restEncoder,0),tr(e,r),e.toUint8Array()}return null},rr=an;class sr extends on{constructor({guid:e=dn(),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=rr(),this.guid=e,this.collectionid=t,this.share=new Map,this.store=new xr,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=fn(e=>{this.on("load",()=>{this.isLoaded=!0,e(this)})});const c=()=>fn(e=>{const t=n=>{void 0!==n&&!0!==n||(this.off("sync",t),e())};this.on("sync",t)});this.on("sync",e=>{!1===e&&this.isSynced&&(this.whenSynced=c()),this.isSynced=void 0===e||!0===e,this.isSynced&&!this.isLoaded&&this.emit("load",[this])}),this.whenSynced=c()}load(){const e=this._item;null===e||this.shouldLoad||Nr(e.parent.doc,e=>{e.subdocsLoaded.add(this)},null,!0),this.shouldLoad=!0}getSubdocs(){return this.subdocs}getSubdocGuids(){return new Set(he(this.subdocs).map(e=>e.guid))}transact(e,t=null){return Nr(this,e,t)}get(e,t=ss){const n=sn(this.share,e,()=>{const e=new t;return e._integrate(this,null),e}),r=n.constructor;if(t!==ss&&r!==t){if(r===ss){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,Ms)}getMap(e=""){return this.get(e,xs)}getXmlElement(e=""){return this.get(e,zs)}getXmlFragment(e=""){return this.get(e,Ws)}toJSON(){const e={};return this.share.forEach((t,n)=>{e[n]=t.toJSON()}),e}destroy(){this.isDestroyed=!0,he(this.subdocs).forEach(e=>e.destroy());const e=this._item;if(null!==e){this._item=null;const t=e.content;t.doc=new sr({guid:this.guid,...t.opts,shouldLoad:!1}),t.doc._item=e,Nr(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+=Xe(this.restDecoder),this.dsCurrVal}readDsLen(){const e=Xe(this.restDecoder)+1;return this.dsCurrVal+=e,e}}class or extends ir{constructor(e){super(e),this.keys=[],Xe(e),this.keyClockDecoder=new ct(Ye(e)),this.clientDecoder=new ot(Ye(e)),this.leftClockDecoder=new ct(Ye(e)),this.rightClockDecoder=new ct(Ye(e)),this.infoDecoder=new it(Ye(e),Qe),this.stringDecoder=new lt(Ye(e)),this.parentInfoDecoder=new it(Ye(e),Qe),this.typeRefDecoder=new ot(Ye(e)),this.lenDecoder=new ot(Ye(e))}readLeftID(){return new vr(this.clientDecoder.read(),this.leftClockDecoder.read())}readRightID(){return new vr(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 st(this.restDecoder)}readBuf(){return Ye(this.restDecoder)}readJSON(){return st(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 cr{constructor(){this.restEncoder=_e()}toUint8Array(){return ke(this.restEncoder)}resetDsCurVal(){}writeDsClock(e){Ee(this.restEncoder,e)}writeDsLen(e){Ee(this.restEncoder,e)}}class lr extends cr{writeLeftID(e){Ee(this.restEncoder,e.client),Ee(this.restEncoder,e.clock)}writeRightID(e){Ee(this.restEncoder,e.client),Ee(this.restEncoder,e.clock)}writeClient(e){Ee(this.restEncoder,e)}writeInfo(e){xe(this.restEncoder,e)}writeString(e){Oe(this.restEncoder,e)}writeParentInfo(e){Ee(this.restEncoder,e?1:0)}writeTypeRef(e){Ee(this.restEncoder,e)}writeLen(e){Ee(this.restEncoder,e)}writeAny(e){Le(this.restEncoder,e)}writeBuf(e){je(this.restEncoder,e)}writeJSON(e){Oe(this.restEncoder,JSON.stringify(e))}writeKey(e){Oe(this.restEncoder,e)}}class ar{constructor(){this.restEncoder=_e(),this.dsCurrVal=0}toUint8Array(){return ke(this.restEncoder)}resetDsCurVal(){this.dsCurrVal=0}writeDsClock(e){const t=e-this.dsCurrVal;this.dsCurrVal=e,Ee(this.restEncoder,t)}writeDsLen(e){0===e&&Ke(),Ee(this.restEncoder,e-1),this.dsCurrVal+=e}}class ur extends ar{constructor(){super(),this.keyMap=new Map,this.keyClock=0,this.keyClockEncoder=new Me,this.clientEncoder=new Be,this.leftClockEncoder=new Me,this.rightClockEncoder=new Me,this.infoEncoder=new Re(xe),this.stringEncoder=new Fe,this.parentInfoEncoder=new Re(xe),this.typeRefEncoder=new Be,this.lenEncoder=new Be}toUint8Array(){const e=_e();return Ee(e,0),je(e,this.keyClockEncoder.toUint8Array()),je(e,this.clientEncoder.toUint8Array()),je(e,this.leftClockEncoder.toUint8Array()),je(e,this.rightClockEncoder.toUint8Array()),je(e,ke(this.infoEncoder)),je(e,this.stringEncoder.toUint8Array()),je(e,ke(this.parentInfoEncoder)),je(e,this.typeRefEncoder.toUint8Array()),je(e,this.lenEncoder.toUint8Array()),De(e,ke(this.restEncoder)),ke(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){Le(this.restEncoder,e)}writeBuf(e){je(this.restEncoder,e)}writeJSON(e){Le(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 dr=(e,t,n)=>{const r=new Map;n.forEach((e,n)=>{Cr(t,n)>e&&r.set(n,e)}),Er(t).forEach((e,t)=>{n.has(t)||r.set(t,0)}),Ee(e.restEncoder,r.size),he(r.entries()).sort((e,t)=>t[0]-e[0]).forEach(([n,r])=>{((e,t,n,r)=>{r=ne(r,t[0].id.clock);const s=Ir(t,r);Ee(e.restEncoder,t.length-s),e.writeClient(n),Ee(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)})},hr=(e,t,n,r=new or(e))=>Nr(t,e=>{e.local=!1;let t=!1;const n=e.doc,s=n.store,i=((e,t)=>{const n=nn(),r=Xe(e.restDecoder);for(let s=0;s<r;s++){const r=Xe(e.restDecoder),s=new Array(r),i=e.readClient();let o=Xe(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 qs(_r(i,o),t),o+=t;break}case 10:{const t=Xe(e.restDecoder);s[n]=new bi(_r(i,o),t),o+=t;break}default:{const c=!(192&r),l=new gi(_r(i,o),null,(r&ie)===ie?e.readLeftID():null,null,(r&se)===se?e.readRightID():null,c?e.readParentInfo()?t.get(e.readString()):e.readLeftID():null,!c||32&~r?null:e.readString(),yi(e,r));s[n]=l,o+=l.length}}}}return n})(r,n),o=((e,t,n)=>{const r=[];let s=he(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 c=new xr,l=new Map,a=(e,t)=>{const n=l.get(e);(null==n||n>t)&&l.set(e,t)};let u=o.refs[o.i++];const d=new Map,h=()=>{for(const e of r){const t=e.id.client,r=n.get(t);r?(r.i--,c.clients.set(t,r.refs.slice(r.i)),n.delete(t),r.i=0,r.refs=[]):c.clients.set(t,[e]),s=s.filter(e=>e!==t)}r.length=0};for(;;){if(u.constructor!==bi){const s=sn(d,u.id.client,()=>Cr(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,Cr(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(c.clients.size>0){const e=new ur;return dr(e,c,new Map),Ee(e.restEncoder,0),{missing:l,update:e.toUint8Array()}}return null})(e,s,i),c=s.pendingStructs;if(c){for(const[e,n]of c.missing)if(n<Cr(s,e)){t=!0;break}if(o){for(const[e,t]of o.missing){const n=c.missing.get(e);(null==n||n>t)&&c.missing.set(e,t)}c.update=Kr([c.update,o.update])}}else s.pendingStructs=o;const l=nr(r,e,s);if(s.pendingDs){const t=new or(qe(s.pendingDs));Xe(t.restDecoder);const n=nr(t,e,s);s.pendingDs=l&&n?Kr([l,n]):l||n}else s.pendingDs=l;if(t){const t=s.pendingStructs.update;s.pendingStructs=null,fr(e.doc,t)}},n,!1),fr=(e,t,n,r=or)=>{const s=qe(t);hr(s,e,n,new r(s))};class pr{constructor(){this.l=[]}}const gr=()=>new pr,yr=(e,t)=>e.l.push(t),mr=(e,t)=>{const n=e.l;n.length;e.l=n.filter(e=>t!==e),e.l.length},br=(e,t,n)=>Cn(e.l,[t,n]);class vr{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,_r=(e,t)=>new vr(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&&!Xn(t.ds,e.id),Sr=(e,t)=>{const n=sn(e.meta,Sr,ae),r=e.doc.store;n.has(t)||(t.sv.forEach((t,n)=>{t<Cr(r,n)&&jr(e,_r(n,t))}),Qn(e,t.ds,e=>{}),n.add(t))};class xr{constructor(){this.clients=new Map,this.pendingStructs=null,this.pendingDs=null}}const Er=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},Cr=(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},Ar=(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 Ke()}n.push(t)},Ir=(e,t)=>{let n=0,r=e.length-1,s=e[r],i=s.id.clock;if(i===t)return r;let o=Z(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=Z((n+r)/2)}throw Ke()},Or=(e,t)=>{const n=e.clients.get(t.client);return n[Ir(n,t.clock)]},Dr=(e,t,n)=>{const r=Ir(t,n),s=t[r];return s.id.clock<n&&s instanceof gi?(t.splice(r+1,0,pi(e,s,n-s.id.clock)),r+1):r},jr=(e,t)=>{const n=e.doc.store.clients.get(t.client);return n[Dr(e,n,t.clock)]},Tr=(e,t,n)=>{const r=t.clients.get(n.client),s=Ir(r,n.clock),i=r[s];return n.clock!==i.id.clock+i.length-1&&i.constructor!==qs&&r.splice(s+1,0,pi(e,i,n.clock-i.id.clock+1)),i},Ur=(e,t,n,r,s)=>{if(0===r)return;const i=n+r;let o,c=Dr(e,t,n);do{o=t[c++],i<o.id.clock+o.length&&Dr(e,t,i),s(o)}while(c<t.length&&t[c].id.clock<i)};class Pr{constructor(e,t,n){this.doc=e,this.deleteSet=new Yn,this.beforeState=Er(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 Lr=(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))&&(Zn(t.deleteSet),((e,t)=>{dr(e,t.doc.store,t.beforeState)})(e,t),tr(e,t.deleteSet),!0),Rr=(e,t,n)=>{const r=t._item;(null===r||r.id.clock<(e.beforeState.get(r.id.client)||0)&&!r.deleted)&&sn(e.changed,t,ae).add(n)},$r=(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 gi&&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},Br=(e,t)=>{if(t<e.length){const n=e[t],r=n.doc,s=r.store,i=n.deleteSet,o=n._mergeStructs;try{Zn(i),n.afterState=Er(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])),Cn(e,[]),n._needFormattingCleanup&&$s(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=Ir(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 gi&&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=te(r.length-1,1+Ir(r,n.clock+n.len-1)),t=r[e];e>0&&t.id.clock>=n.clock;t=r[e])e-=1+$r(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=ne(Ir(e,r),1);for(let t=e.length-1;t>=n;)t-=1+$r(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=Ir(r,n);i+1<r.length&&$r(r,i+1)>1||i>0&&$r(r,i)}if(n.local||n.afterState.get(r.clientID)===n.beforeState.get(r.clientID)||(((...e)=>{Hn.forEach(t=>t.print(e))})(Kn,$n,"[yjs] ",Bn,Wn,"Changed the client-id because another client seems to be using it."),r.clientID=rr()),r.emit("afterTransactionCleanup",[n,r]),r._observers.has("update")){const e=new lr;Lr(e,n)&&r.emit("update",[e.toUint8Array(),n.origin,r,n])}if(r._observers.has("updateV2")){const e=new ur;Lr(e,n)&&r.emit("updateV2",[e.toUint8Array(),n.origin,r,n])}const{subdocsAdded:c,subdocsLoaded:l,subdocsRemoved:a}=n;(c.size>0||a.size>0||l.size>0)&&(c.forEach(e=>{e.clientID=r.clientID,null==e.collectionid&&(e.collectionid=r.collectionid),r.subdocs.add(e)}),a.forEach(e=>r.subdocs.delete(e)),r.emit("subdocs",[{loaded:l,added:c,removed:a},r,n]),a.forEach(e=>e.destroy())),e.length<=t+1?(r._transactionCleanups=[],r.emit("afterAllTransactions",[r,e])):Br(e,t+1)}}},Nr=(e,t,n=null,r=!0)=>{const s=e._transactionCleanups;let i=!1,o=null;null===e._transaction&&(i=!0,e._transaction=new Pr(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&&Br(s,0)}}return o};class Mr{constructor(e,t){this.gen=function*(e){const t=Xe(e.restDecoder);for(let n=0;n<t;n++){const t=Xe(e.restDecoder),n=e.readClient();let r=Xe(e.restDecoder);for(let s=0;s<t;s++){const t=e.readInfo();if(10===t){const t=Xe(e.restDecoder);yield new bi(_r(n,r),t),r+=t}else if(31&t){const s=!(192&t),i=new gi(_r(n,r),null,(t&ie)===ie?e.readLeftID():null,null,(t&se)===se?e.readRightID():null,s?e.readParentInfo()?e.readString():e.readLeftID():null,!s||32&~t?null:e.readString(),yi(e,t));yield i,r+=i.length}else{const t=e.readLen();yield new qs(_r(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 Fr{constructor(e){this.currClient=0,this.startClock=0,this.written=0,this.encoder=e,this.clientStructs=[]}}const Wr=(e,t=ar,n=or)=>{const r=new t,s=new Mr(new n(qe(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++,Ee(r.restEncoder,t),Ee(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++,Ee(r.restEncoder,t),Ee(r.restEncoder,o));const c=_e();return Ee(c,e),((e,t)=>{De(e,ke(t))})(c,r.restEncoder),r.restEncoder=c,r.toUint8Array()}return Ee(r.restEncoder,0),r.toUint8Array()},zr=(e,t)=>{if(e.constructor===qs){const{client:n,clock:r}=e.id;return new qs(_r(n,r+t),e.length-t)}if(e.constructor===bi){const{client:n,clock:r}=e.id;return new bi(_r(n,r+t),e.length-t)}{const n=e,{client:r,clock:s}=n.id;return new gi(_r(r,s+t),null,_r(r,s+t-1),null,n.rightOrigin,n.parent,n.parentSub,n.content.splice(t))}},Kr=(e,t=or,n=ur)=>{if(1===e.length)return e[0];const r=e.map(e=>new t(qe(e)));let s=r.map(e=>new Mr(e,!0)),i=null;const o=new n,c=new Fr(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)Hr(c,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{Hr(c,i.struct,i.offset);const e=n.id.clock-i.struct.id.clock-i.struct.length;i={struct:new bi(_r(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=zr(n,t)),i.struct.mergeWith(n)||(Hr(c,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())Hr(c,i.struct,i.offset),i={struct:n,offset:0}}null!==i&&(Hr(c,i.struct,i.offset),i=null),Jr(c);const l=r.map(e=>(e=>{const t=new Yn,n=Xe(e.restDecoder);for(let r=0;r<n;r++){e.resetDsCurVal();const n=Xe(e.restDecoder),r=Xe(e.restDecoder);if(r>0){const s=sn(t.clients,n,()=>[]);for(let t=0;t<r;t++)s.push(new Gn(e.readDsClock(),e.readDsLen()))}}return t})(e)),a=(e=>{const t=new Yn;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++)de(i,e[t].clients.get(s)||[]);t.clients.set(s,i)}});return Zn(t),t})(l);return tr(o,a),o.toUint8Array()},Vr=e=>{e.written>0&&(e.clientStructs.push({written:e.written,restEncoder:ke(e.encoder.restEncoder)}),e.encoder.restEncoder=_e(),e.written=0)},Hr=(e,t,n)=>{e.written>0&&e.currClient!==t.id.client&&Vr(e),0===e.written&&(e.currClient=t.id.client,e.encoder.writeClient(t.id.client),Ee(e.encoder.restEncoder,t.id.clock+n)),t.write(e.encoder,n),e.written++},Jr=e=>{Vr(e);const t=e.encoder.restEncoder;Ee(t,e.clientStructs.length);for(let n=0;n<e.clientStructs.length;n++){const r=e.clientStructs[n];Ee(t,r.written),De(t,r.restEncoder)}},qr="You must not compute changes after the event-handler fired.";class Gr{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=Yr(this.currentTarget,this.target))}deletes(e){return Xn(this.transaction.deleteSet,e.id)}get keys(){if(null===this._keys){if(0===this.transaction.doc._transactionCleanups.length)throw We(qr);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=ue(e.content.getContent())}else null!==e&&this.deletes(e)?(s="update",i=ue(e.content.getContent())):(s="add",i=void 0)}else{if(!this.deletes(r))return;s="delete",i=ue(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 We(qr);const t=this.target,n=ae(),r=ae(),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 Yr=(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},Qr=()=>{((...e)=>{e.unshift(Kn),Hn.forEach(t=>t.print(e))})("Invalid access: Add Yjs type to a document before reading data.")};let Xr=0;class Zr{constructor(e,t){e.marker=!0,this.p=e,this.index=t,this.timestamp=Xr++}}const es=(e,t,n)=>{e.p.marker=!1,e.p=t,t.marker=!0,e.index=n,e.timestamp=Xr++},ts=(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)=>ee(t-e.index)<ee(t-n.index)?e:n);let r=e._start,s=0;for(null!==n&&(r=n.p,s=n.index,(e=>{e.timestamp=Xr++})(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&&ee(n.index-s)<r.parent.length/80?(es(n,r,s),n):((e,t,n)=>{if(e.length>=80){const r=e.reduce((e,t)=>e.timestamp<t.timestamp?e:t);return es(r,t,n),r}{const r=new Zr(t,n);return e.push(r),r}})(e._searchMarker,r,s)},ns=(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=ne(t,s.index+n))}},rs=(e,t,n)=>{const r=e,s=t.changedParentTypes;for(;sn(s,e,()=>[]).push(n),null!==e._item;)e=e._item.parent;br(r._eH,n,t)};class ss{constructor(){this._item=null,this._map=new Map,this._start=null,this.doc=null,this._length=0,this._eH=gr(),this._dEH=gr(),this._searchMarker=null}get parent(){return this._item?this._item.parent:null}_integrate(e,t){this.doc=e,this._item=t}_copy(){throw ze()}clone(){throw ze()}_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){yr(this._eH,e)}observeDeep(e){yr(this._dEH,e)}unobserve(e){mr(this._eH,e)}unobserveDeep(e){mr(this._dEH,e)}toJSON(){}}const is=(e,t,n)=>{e.doc??Qr(),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},os=e=>{e.doc??Qr();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},cs=(e,t)=>{let n=0,r=e._start;for(e.doc??Qr();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}},ls=(e,t)=>{const n=[];return cs(e,(r,s)=>{n.push(t(r,s,e))}),n},as=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??Qr();const n=ts(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}},ds=(e,t,n,r)=>{let s=n;const i=e.doc,o=i.clientID,c=i.store,l=null===n?t._start:n.right;let a=[];const u=()=>{a.length>0&&(s=new gi(_r(o,Cr(c,o)),s,s&&s.lastId,l,l&&l.id,t,null,new ri(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 gi(_r(o,Cr(c,o)),s,s&&s.lastId,l,l&&l.id,t,null,new Gs(new Uint8Array(n))),s.integrate(e,0);break;case sr:s=new gi(_r(o,Cr(c,o)),s,s&&s.lastId,l,l&&l.id,t,null,new Xs(n)),s.integrate(e,0);break;default:if(!(n instanceof ss))throw new Error("Unexpected content type in insert operation");s=new gi(_r(o,Cr(c,o)),s,s&&s.lastId,l,l&&l.id,t,null,new fi(n)),s.integrate(e,0)}}}),u()},hs=()=>We("Length exceeded!"),fs=(e,t,n,r)=>{if(n>t._length)throw hs();if(0===n)return t._searchMarker&&ns(t._searchMarker,n,r.length),ds(e,t,null,r);const s=n,i=ts(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&&jr(e,_r(o.id.client,o.id.clock+n));break}n-=o.length}return t._searchMarker&&ns(t._searchMarker,s,r.length),ds(e,t,o,r)},ps=(e,t,n,r)=>{if(0===r)return;const s=n,i=r,o=ts(t,n);let c=t._start;for(null!==o&&(c=o.p,n-=o.index);null!==c&&n>0;c=c.right)!c.deleted&&c.countable&&(n<c.length&&jr(e,_r(c.id.client,c.id.clock+n)),n-=c.length);for(;r>0&&null!==c;)c.deleted||(r<c.length&&jr(e,_r(c.id.client,c.id.clock+r)),c.delete(e),r-=c.length),c=c.right;if(r>0)throw hs();t._searchMarker&&ns(t._searchMarker,s,-i+r)},gs=(e,t,n)=>{const r=t._map.get(n);void 0!==r&&r.delete(e)},ys=(e,t,n,r)=>{const s=t._map.get(n)||null,i=e.doc,o=i.clientID;let c;if(null==r)c=new ri([r]);else switch(r.constructor){case Number:case Object:case Boolean:case Array:case String:case Date:case BigInt:c=new ri([r]);break;case Uint8Array:c=new Gs(r);break;case sr:c=new Xs(r);break;default:if(!(r instanceof ss))throw new Error("Unexpected content type");c=new fi(r)}new gi(_r(o,Cr(i.store,o)),s,s&&s.lastId,null,null,t,n,c).integrate(e,0)},ms=(e,t)=>{e.doc??Qr();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??Qr(),e._map.forEach((e,n)=>{e.deleted||(t[n]=e.content.getContent()[e.length-1])}),t},vs=(e,t)=>{e.doc??Qr();const n=e._map.get(t);return void 0!==n&&!n.deleted},ws=e=>{return e.doc??Qr(),t=e._map.entries(),n=e=>!e[1].deleted,Jn(()=>{let e;do{e=t.next()}while(!e.done&&!n(e.value));return e});var t,n};class _s extends Gr{}class ks extends ss{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 ss?e.clone():e)),e}get length(){return this.doc??Qr(),this._length}_callObserver(e,t){super._callObserver(e,t),rs(this,e,new _s(this,e))}insert(e,t){null!==this.doc?Nr(this.doc,n=>{fs(n,this,e,t)}):this._prelimContent.splice(e,0,...t)}push(e){null!==this.doc?Nr(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;ds(e,t,r,n)})(t,this,e)}):this._prelimContent.push(...e)}unshift(e){this.insert(0,e)}delete(e,t=1){null!==this.doc?Nr(this.doc,n=>{ps(n,this,e,t)}):this._prelimContent.splice(e,t)}get(e){return us(this,e)}toArray(){return os(this)}slice(e=0,t=this.length){return is(this,e,t)}toJSON(){return this.map(e=>e instanceof ss?e.toJSON():e)}map(e){return ls(this,e)}forEach(e){cs(this,e)}[Symbol.iterator](){return as(this)}_write(e){e.writeTypeRef(oi)}}class Ss extends Gr{constructor(e,t,n){super(e,t),this.keysChanged=n}}class xs extends ss{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 xs}clone(){const e=new xs;return this.forEach((t,n)=>{e.set(n,t instanceof ss?t.clone():t)}),e}_callObserver(e,t){rs(this,e,new Ss(this,e,t))}toJSON(){this.doc??Qr();const e={};return this._map.forEach((t,n)=>{if(!t.deleted){const r=t.content.getContent()[t.length-1];e[n]=r instanceof ss?r.toJSON():r}}),e}get size(){return[...ws(this)].length}keys(){return qn(ws(this),e=>e[0])}values(){return qn(ws(this),e=>e[1].content.getContent()[e[1].length-1])}entries(){return qn(ws(this),e=>[e[0],e[1].content.getContent()[e[1].length-1]])}forEach(e){this.doc??Qr(),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?Nr(this.doc,t=>{gs(t,this,e)}):this._prelimContent.delete(e)}set(e,t){return null!==this.doc?Nr(this.doc,n=>{ys(n,this,e,t)}):this._prelimContent.set(e,t),t}get(e){return ms(this,e)}has(e){return vs(this,e)}clear(){null!==this.doc?Nr(this.doc,e=>{this.forEach(function(t,n,r){gs(e,r,n)})}):this._prelimContent.clear()}_write(e){e.writeTypeRef(ci)}}const Es=(e,t)=>e===t||"object"==typeof e&&"object"==typeof t&&e&&t&&((e,t)=>e===t||_n(e)===_n(t)&&((e,t)=>{for(const n in e)if(!t(e[n],n))return!1;return!0})(e,(e,n)=>(void 0!==e||kn(t,n))&&t[n]===e))(e,t);class Cs{constructor(e,t,n,r){this.left=e,this.right=t,this.index=n,this.currentAttributes=r}forward(){if(null===this.right&&Ke(),this.right.content.constructor===ei)this.right.deleted||Ds(this.currentAttributes,this.right.content);else this.right.deleted||(this.index+=this.right.length);this.left=this.right,this.right=this.right.right}}const As=(e,t,n)=>{for(;null!==t.right&&n>0;){if(t.right.content.constructor===ei)t.right.deleted||Ds(t.currentAttributes,t.right.content);else t.right.deleted||(n<t.right.length&&jr(e,_r(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},Is=(e,t,n,r)=>{const s=new Map,i=r?ts(t,n):null;if(i){const t=new Cs(i.p.left,i.p,i.index,s);return As(e,t,n-i.index)}{const r=new Cs(null,t._start,0,s);return As(e,r,n)}},Os=(e,t,n,r)=>{for(;null!==n.right&&(!0===n.right.deleted||n.right.content.constructor===ei&&Es(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 c=n.left,l=n.right,a=new gi(_r(i,Cr(s.store,i)),c,c&&c.lastId,l,l&&l.id,t,null,new ei(o,r));a.integrate(e,0),n.right=a,n.forward()})},Ds=(e,t)=>{const{key:n,value:r}=t;null===r?e.delete(n):e.set(n,r)},js=(e,t)=>{for(;null!==e.right&&(e.right.deleted||e.right.content.constructor===ei&&Es(t[e.right.content.key]??null,e.right.content.value));)e.forward()},Ts=(e,t,n,r)=>{const s=e.doc,i=s.clientID,o=new Map;for(const c in r){const l=r[c],a=n.currentAttributes.get(c)??null;if(!Es(a,l)){o.set(c,a);const{left:r,right:u}=n;n.right=new gi(_r(i,Cr(s.store,i)),r,r&&r.lastId,u,u&&u.id,t,null,new ei(c,l)),n.right.integrate(e,0),n.forward()}}return o},Us=(e,t,n,r,s)=>{n.currentAttributes.forEach((e,t)=>{void 0===s[t]&&(s[t]=null)});const i=e.doc,o=i.clientID;js(n,s);const c=Ts(e,t,n,s),l=r.constructor===String?new si(r):r instanceof ss?new fi(r):new Zs(r);let{left:a,right:u,index:d}=n;t._searchMarker&&ns(t._searchMarker,n.index,l.getLength()),u=new gi(_r(o,Cr(i.store,o)),a,a&&a.lastId,u,u&&u.id,t,null,l),u.integrate(e,0),n.right=u,n.index=d,n.forward(),Os(e,t,n,c)},Ps=(e,t,n,r,s)=>{const i=e.doc,o=i.clientID;js(n,s);const c=Ts(e,t,n,s);e:for(;null!==n.right&&(r>0||c.size>0&&(n.right.deleted||n.right.content.constructor===ei));){if(!n.right.deleted)switch(n.right.content.constructor){case ei:{const{key:t,value:i}=n.right.content,o=s[t];if(void 0!==o){if(Es(o,i))c.delete(t);else{if(0===r)break e;c.set(t,i)}n.right.delete(e)}else n.currentAttributes.set(t,i);break}default:r<n.right.length&&jr(e,_r(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 gi(_r(o,Cr(i.store,o)),n.left,n.left&&n.left.lastId,n.right,n.right&&n.right.id,t,null,new si(s)),n.right.integrate(e,0),n.forward()}Os(e,t,n,c)},Ls=(e,t,n,r,s)=>{let i=t;const o=nn();for(;i&&(!i.countable||i.deleted);){if(!i.deleted&&i.content.constructor===ei){const e=i.content;o.set(e.key,e)}i=i.right}let c=0,l=!1;for(;t!==i;){if(n===t&&(l=!0),!t.deleted){const n=t.content;switch(n.constructor){case ei:{const{key:i,value:a}=n,u=r.get(i)??null;o.get(i)===n&&u!==a||(t.delete(e),c++,l||(s.get(i)??null)!==a||u===a||(null===u?s.delete(i):s.set(i,u))),l||t.deleted||Ds(s,n);break}}}t=t.right}return c},Rs=e=>{let t=0;return Nr(e.doc,n=>{let r=e._start,s=e._start,i=nn();const o=rn(i);for(;s;){if(!1===s.deleted)if(s.content.constructor===ei)Ds(o,s.content);else t+=Ls(n,r,s,i,o),i=rn(o),r=s;s=s.right}}),t},$s=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&&Ur(e,n.store.clients.get(r),i,s,e=>{e.deleted||e.content.constructor!==ei||e.constructor===qs||t.add(e.parent)})}Nr(n,n=>{Qn(e,e.deleteSet,e=>{if(e instanceof qs||!e.parent._hasFormatting||t.has(e.parent))return;const r=e.parent;e.content.constructor===ei?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===ei){const r=t.content.key;n.has(r)?t.delete(e):n.add(r)}t=t.left}})(n,e)});for(const e of t)Rs(e)})},Bs=(e,t,n)=>{const r=n,s=rn(t.currentAttributes),i=t.right;for(;n>0&&null!==t.right;){if(!1===t.right.deleted)switch(t.right.content.constructor){case fi:case Zs:case si:n<t.right.length&&jr(e,_r(t.right.id.client,t.right.id.clock+n)),n-=t.right.length,t.right.delete(e)}t.forward()}i&&Ls(e,i,t.right,s,t.currentAttributes);const o=(t.left||t.right).parent;return o._searchMarker&&ns(o._searchMarker,t.index,-r+n),t};class Ns extends Gr{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=[];Nr(e,e=>{const n=new Map,r=new Map;let s=this.target._start,i=null;const o={};let c="",l=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 c||c.length>0)&&(e={insert:c},n.size>0&&(e.attributes={},n.forEach((t,n)=>{null!==t&&(e.attributes[n]=t)}))),c="";break;case"retain":l>0&&(e={retain:l},(e=>{for(const t in e)return!1;return!0})(o)||(e.attributes=bn({},o))),l=0}e&&t.push(e),i=null}};for(;null!==s;){switch(s.content.constructor){case fi:case Zs:this.adds(s)?this.deletes(s)||(u(),i="insert",c=s.content.getContent()[0],u()):this.deletes(s)?("delete"!==i&&(u(),i="delete"),a+=1):s.deleted||("retain"!==i&&(u(),i="retain"),l+=1);break;case si:this.adds(s)?this.deletes(s)||("insert"!==i&&(u(),i="insert"),c+=s.content.str):this.deletes(s)?("delete"!==i&&(u(),i="delete"),a+=s.length):s.deleted||("retain"!==i&&(u(),i="retain"),l+=s.length);break;case ei:{const{key:t,value:c}=s.content;if(this.adds(s)){if(!this.deletes(s)){const l=n.get(t)??null;Es(l,c)?null!==c&&s.delete(e):("retain"===i&&u(),Es(c,r.get(t)??null)?delete o[t]:o[t]=c)}}else if(this.deletes(s)){r.set(t,c);const e=n.get(t)??null;Es(e,c)||("retain"===i&&u(),o[t]=e)}else if(!s.deleted){r.set(t,c);const n=o[t];void 0!==n&&(Es(n,c)?null!==n&&s.delete(e):("retain"===i&&u(),null===c?delete o[t]:o[t]=c))}s.deleted||("insert"===i&&u(),Ds(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 Ms extends ss{constructor(e){super(),this._pending=void 0!==e?[()=>this.insert(0,e)]:[],this._searchMarker=[],this._hasFormatting=!1}get length(){return this.doc??Qr(),this._length}_integrate(e,t){super._integrate(e,t);try{this._pending.forEach(e=>e())}catch(e){}this._pending=null}_copy(){return new Ms}clone(){const e=new Ms;return e.applyDelta(this.toDelta()),e}_callObserver(e,t){super._callObserver(e,t);const n=new Ns(this,e,t);rs(this,e,n),!e.local&&this._hasFormatting&&(e._needFormattingCleanup=!0)}toString(){this.doc??Qr();let e="",t=this._start;for(;null!==t;)!t.deleted&&t.countable&&t.content.constructor===si&&(e+=t.content.str),t=t.right;return e}toJSON(){return this.toString()}applyDelta(e,{sanitize:t=!0}={}){null!==this.doc?Nr(this.doc,n=>{const r=new Cs(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)&&Us(n,this,r,o,i.attributes||{})}else void 0!==i.retain?Ps(n,this,r,i.retain,i.attributes||{}):void 0!==i.delete&&Bs(n,r,i.delete)}}):this._pending.push(()=>this.applyDelta(e))}toDelta(e,t,n){this.doc??Qr();const r=[],s=new Map,i=this.doc;let o="",c=this._start;function l(){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!==c;){if(kr(c,e)||void 0!==t&&kr(c,t))switch(c.content.constructor){case si:{const r=s.get("ychange");void 0===e||kr(c,e)?void 0===t||kr(c,t)?void 0!==r&&(l(),s.delete("ychange")):void 0!==r&&r.user===c.id.client&&"added"===r.type||(l(),s.set("ychange",n?n("added",c.id):{type:"added"})):void 0!==r&&r.user===c.id.client&&"removed"===r.type||(l(),s.set("ychange",n?n("removed",c.id):{type:"removed"})),o+=c.content.str;break}case fi:case Zs:{l();const e={insert:c.content.getContent()[0]};if(s.size>0){const t={};e.attributes=t,s.forEach((e,n)=>{t[n]=e})}r.push(e);break}case ei:kr(c,e)&&(l(),Ds(s,c.content))}c=c.right}l()};return e||t?Nr(i,n=>{e&&Sr(n,e),t&&Sr(n,t),a()},"cleanup"):a(),r}insert(e,t,n){if(t.length<=0)return;const r=this.doc;null!==r?Nr(r,r=>{const s=Is(r,this,e,!n);n||(n={},s.currentAttributes.forEach((e,t)=>{n[t]=e})),Us(r,this,s,t,n)}):this._pending.push(()=>this.insert(e,t,n))}insertEmbed(e,t,n){const r=this.doc;null!==r?Nr(r,r=>{const s=Is(r,this,e,!n);Us(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?Nr(n,n=>{Bs(n,Is(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?Nr(r,r=>{const s=Is(r,this,e,!1);null!==s.right&&Ps(r,this,s,t,n)}):this._pending.push(()=>this.format(e,t,n))}removeAttribute(e){null!==this.doc?Nr(this.doc,t=>{gs(t,this,e)}):this._pending.push(()=>this.removeAttribute(e))}setAttribute(e,t){null!==this.doc?Nr(this.doc,n=>{ys(n,this,e,t)}):this._pending.push(()=>this.setAttribute(e,t))}getAttribute(e){return ms(this,e)}getAttributes(){return bs(this)}_write(e){e.writeTypeRef(li)}}class Fs{constructor(e,t=()=>!0){this._filter=t,this._root=e,this._currentNode=e._start,this._firstCall=!0,e.doc??Qr()}[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!==zs&&t.constructor!==Ws||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 Ws extends ss{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 Ws}clone(){const e=new Ws;return e.insert(0,this.toArray().map(e=>e instanceof ss?e.clone():e)),e}get length(){return this.doc??Qr(),null===this._prelimContent?this._length:this._prelimContent.length}createTreeWalker(e){return new Fs(this,e)}querySelector(e){e=e.toUpperCase();const t=new Fs(this,t=>t.nodeName&&t.nodeName.toUpperCase()===e).next();return t.done?null:t.value}querySelectorAll(e){return e=e.toUpperCase(),he(new Fs(this,t=>t.nodeName&&t.nodeName.toUpperCase()===e))}_callObserver(e,t){rs(this,e,new Ks(this,t,e))}toString(){return ls(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),cs(this,s=>{r.insertBefore(s.toDOM(e,t,n),null)}),r}insert(e,t){null!==this.doc?Nr(this.doc,n=>{fs(n,this,e,t)}):this._prelimContent.splice(e,0,...t)}insertAfter(e,t){if(null!==this.doc)Nr(this.doc,n=>{const r=e&&e instanceof ss?e._item:e;ds(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 We("Reference item not found");n.splice(r,0,...t)}}delete(e,t=1){null!==this.doc?Nr(this.doc,n=>{ps(n,this,e,t)}):this._prelimContent.splice(e,t)}toArray(){return os(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){cs(this,e)}_write(e){e.writeTypeRef(ui)}}class zs extends Ws{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 zs(this.nodeName)}clone(){const e=new zs(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 ss?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?Nr(this.doc,t=>{gs(t,this,e)}):this._prelimAttrs.delete(e)}setAttribute(e,t){null!==this.doc?Nr(this.doc,n=>{ys(n,this,e,t)}):this._prelimAttrs.set(e,t)}getAttribute(e){return ms(this,e)}hasAttribute(e){return vs(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 cs(this,s=>{r.appendChild(s.toDOM(e,t,n))}),void 0!==n&&n._createAssociation(r,this),r}_write(e){e.writeTypeRef(ai),e.writeKey(this.nodeName)}}class Ks extends Gr{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 Vs extends xs{constructor(e){super(),this.hookName=e}_copy(){return new Vs(this.hookName)}clone(){const e=new Vs(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(di),e.writeKey(this.hookName)}}class Hs extends Ms{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 Hs}clone(){const e=new Hs;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(hi)}}class Js{constructor(e,t){this.id=e,this.length=t}get deleted(){throw ze()}mergeWith(e){return!1}write(e,t,n){throw ze()}integrate(e,t){throw ze()}}class qs extends Js{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),Ar(e.doc.store,this)}write(e,t){e.writeInfo(0),e.writeLen(this.length-t)}getMissing(e,t){return null}}class Gs{constructor(e){this.content=e}getLength(){return 1}getContent(){return[this.content]}isCountable(){return!0}copy(){return new Gs(this.content)}splice(e){throw ze()}mergeWith(e){return!1}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeBuf(this.content)}getRef(){return 3}}class Ys{constructor(e){this.len=e}getLength(){return this.len}getContent(){return[]}isCountable(){return!1}copy(){return new Ys(this.len)}splice(e){const t=new Ys(this.len-e);return this.len=e,t}mergeWith(e){return this.len+=e.len,!0}integrate(e,t){er(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 Qs=(e,t)=>new sr({guid:e,...t,shouldLoad:t.shouldLoad||t.autoLoad||!1});class Xs{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 Xs(Qs(this.doc.guid,this.opts))}splice(e){throw ze()}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 Zs{constructor(e){this.embed=e}getLength(){return 1}getContent(){return[this.embed]}isCountable(){return!0}copy(){return new Zs(this.embed)}splice(e){throw ze()}mergeWith(e){return!1}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeJSON(this.embed)}getRef(){return 5}}class ei{constructor(e,t){this.key=e,this.value=t}getLength(){return 1}getContent(){return[]}isCountable(){return!1}copy(){return new ei(this.key,this.value)}splice(e){throw ze()}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 ti{constructor(e){this.arr=e}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new ti(this.arr)}splice(e){const t=new ti(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 ni="development"===jn("node_env");class ri{constructor(e){this.arr=e,ni&&xn(e)}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new ri(this.arr)}splice(e){const t=new ri(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 si{constructor(e){this.str=e}getLength(){return this.str.length}getContent(){return this.str.split("")}isCountable(){return!0}copy(){return new si(this.str)}splice(e){const t=new si(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 xs,e=>new Ms,e=>new zs(e.readKey()),e=>new Ws,e=>new Vs(e.readKey()),e=>new Hs],oi=0,ci=1,li=2,ai=3,ui=4,di=5,hi=6;class fi{constructor(e){this.type=e}getLength(){return 1}getContent(){return[this.type]}isCountable(){return!0}copy(){return new fi(this.type._copy())}splice(e){throw ze()}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 pi=(e,t,n)=>{const{client:r,clock:s}=t.id,i=new gi(_r(r,s+n),t,_r(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=_r(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 gi extends Js{constructor(e,t,n,r,s,i,o,c){super(e,c.getLength()),this.origin=n,this.left=t,this.right=r,this.rightOrigin=s,this.parent=i,this.parentSub=o,this.redone=null,this.content=c,this.info=this.content.isCountable()?2:0}set marker(e){(8&this.info)>0!==e&&(this.info^=8)}get marker(){return(8&this.info)>0}get keep(){return(1&this.info)>0}set keep(e){this.keep!==e&&(this.info^=1)}get countable(){return(2&this.info)>0}get deleted(){return(4&this.info)>0}set deleted(e){this.deleted!==e&&(this.info^=4)}markDeleted(){this.info|=4}getMissing(e,t){if(this.origin&&this.origin.client!==this.id.client&&this.origin.clock>=Cr(t,this.origin.client))return this.origin.client;if(this.rightOrigin&&this.rightOrigin.client!==this.id.client&&this.rightOrigin.clock>=Cr(t,this.rightOrigin.client))return this.rightOrigin.client;if(this.parent&&this.parent.constructor===vr&&this.id.client!==this.parent.client&&this.parent.clock>=Cr(t,this.parent.client))return this.parent.client;if(this.origin&&(this.left=Tr(e,t,this.origin),this.origin=this.left.lastId),this.rightOrigin&&(this.right=jr(e,this.rightOrigin),this.rightOrigin=this.right.id),this.left&&this.left.constructor===qs||this.right&&this.right.constructor===qs)this.parent=null;else if(this.parent){if(this.parent.constructor===vr){const e=Or(t,this.parent);e.constructor===qs?this.parent=null:this.parent=e.content.type}}else this.left&&this.left.constructor===gi?(this.parent=this.left.parent,this.parentSub=this.left.parentSub):this.right&&this.right.constructor===gi&&(this.parent=this.right.parent,this.parentSub=this.right.parentSub);return null}integrate(e,t){if(t>0&&(this.id.clock+=t,this.left=Tr(e,e.doc.store,_r(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(Or(e.doc.store,t.origin)))break;r.has(Or(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),Ar(e.doc.store,this),this.content.integrate(e,this),Rr(e,this.parent,this.parentSub),(null!==this.parent._item&&this.parent._item.deleted||null!==this.parentSub&&null!==this.right)&&this.delete(e)}else new qs(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:_r(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(),er(e.deleteSet,this.id.client,this.id.clock,this.length),Rr(e,t,this.parentSub),this.content.delete(e)}}gc(e,t){if(!this.deleted)throw Ke();this.content.gc(e),t?((e,t,n)=>{const r=e.clients.get(t.id.client);r[Ir(r,t.id.clock)]=n})(e,this,new qs(this.id,this.length)):this.content=new Ys(this.length)}write(e,t){const n=t>0?_r(this.id.client,this.id.clock+t-1):this.origin,r=this.rightOrigin,s=this.parentSub,i=31&this.content.getRef()|(null===n?0:ie)|(null===r?0:se)|(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 Ke()})(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===vr?(e.writeParentInfo(!1),e.writeLeftID(t)):Ke();null!==s&&e.writeString(s)}this.content.write(e,t)}}const yi=(e,t)=>mi[31&t](e),mi=[()=>{Ke()},e=>new Ys(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 ti(n)},e=>new Gs(e.readBuf()),e=>new si(e.readString()),e=>new Zs(e.readJSON()),e=>new ei(e.readKey(),e.readJSON()),e=>new fi(ii[e.readTypeRef()](e)),e=>{const t=e.readLen(),n=[];for(let r=0;r<t;r++)n.push(e.readAny());return new ri(n)},e=>new Xs(Qs(e.readString(),e.readAny())),()=>{Ke()}];class bi extends Js{get deleted(){return!0}delete(){}mergeWith(e){return this.constructor===e.constructor&&(this.length+=e.length,!0)}integrate(e,t){Ke()}write(e,t){e.writeInfo(10),Ee(e.restEncoder,this.length-t)}getMissing(e,t){return null}}const vi="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},wi="__ $YJS$ __";function _i(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}vi[wi],vi[wi]=!0;const ki=new FinalizationRegistry(({cache:e,key:t})=>{delete e[t]});function Si(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=Ci(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=Ci(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=Ci(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 xi=new WeakSet;function Ei(e){if(xi.has(e))throw new Error(`Y.Doc ${e.meta.parentId} has been destroyed`)}function Ci(e,t,n){return`${e}[${t}].${n}`}const{getByKeyPath:Ai}=e.Dexie;let Ii=null;function Oi(e){Ii=e}function Di(){}const ji=new WeakMap;function Ti(){return e.Dexie.Events(null,"load","sync","error")}class Ui{static getOrCreateDocument(e,t,n,r){var s,i;const o=Si(e),c=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(!c)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 sr({meta:{db:e,updatesTable:s,parentProp:r,parentTable:n,parentId:i}}),t.add(o),o.on("destroy",()=>{xi.add(o),t.delete(o)}),o)}(e,o,t,n,c,r)}static load(e,t){var n;let r=ji.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 Ui(e),r.graceTimeout=null!==(n=null==t?void 0:t.gracePeriod)&&void 0!==n?n:-1,ji.set(e,r)),r}static release(e){if(!e||xi.has(e))return;const t=ji.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(Ui.on("beforeunload").fire(this)).finally(()=>{var e;0===this.refCount&&(null===(e=this.doc)||void 0===e||e.destroy())})}static for(e){return ji.get(e)}static get currentUpdateRow(){return Ii}get whenLoaded(){return this._whenLoaded||(this._whenLoaded=new Promise((t,n)=>{this.doc?this.doc.isLoaded?t():this._error?n(this._error):xi.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):xi.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=Ti(),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]=()=>Ui.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`);Ei(t),this.stopObserving=function(t,n,r,s,i,o){let c=0,l=!0;const a=e.liveQuery(()=>{Ei(n);const t=r.table(i);return Promise.all([(c>0?t.where("i").between(c,1/0,!1).toArray().then(t=>t.filter(t=>0===e.cmp(t.k,o))):t.where({k:o}).toArray()).then(e=>e),r.table(s).where(":id").equals(o).toArray()])}).subscribe(([e,r])=>{e.length>0&&(c=e[e.length-1].i),0!==r.length?(Ei(n),e.length>0&&Nr(n,()=>{e.forEach(e=>{try{Oi(e),fr(n,e.u)}finally{Oi(null)}})},t,!1),l&&(l=!1,n.emit("load",[n]))):n.destroy()},e=>{t.on("error").fire(e)}),u=(e,n)=>{n!==t&&r.table(i).add({k:o,u:e,f:1}).then(e=>{e===c-1&&++c}).catch(e=>{t.on("error").fire(e)})},d=()=>{a.unsubscribe(),n.off("updateV2",u),n.off("destroy",d)};return n.on("updateV2",u),n.on("destroy",d),d}(this,t,n,r,i,s),Ui.on("new").fire(this)}destroy(){var e;ji.delete(this.doc),this.doc=null,this.destroyed=!0,this.refCount=0,null===(e=this.stopObserving)||void 0===e||e.call(this),this.on=Ti(),this.cleanupHandlers.forEach(e=>e())}addCleanupHandler(e){this.cleanupHandlers.push("function"==typeof e?e:()=>e.unsubscribe())}}function Pi(t,n){return r(this,void 0,void 0,function*(){var s;const i={};let o,c=!1;for(const l of t)try{switch(l.type){case"u-s":{const e=_i(n,l.table,l.prop);if(e){const t={k:l.k,u:l.u};l.r&&(t.r=l.r,o=l.r),i[e.name]=yield e.add(t)}break}case"u-ack":{const e=_i(n,l.table,l.prop);e&&(yield n.transaction("rw",e,t=>r(this,void 0,void 0,function*(){let n=yield t.table(e.name).get(en);yield t.table(e.name).put(Object.assign(Object.assign({},n||{i:en}),{unsentFrom:Math.max((null==n?void 0:n.unsentFrom)||1,l.i+1)}))})));break}case"u-reject":{const t=_i(n,l.table,l.prop);if(!t)break;const r=null===(s=yield t.get(l.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(l.i).filter(t=>0===e.cmp(t.k,r)&&!(1&~(t.f||0))).delete()));const s=Ui.getDocCache(n.dx).find(l.table,r,l.prop);s&&s.destroy()}break}case"in-sync":{const e=Ui.getDocCache(n.dx).find(l.table,l.k,l.prop);e&&!e.isSynced&&e.emit("sync",[!0,e]);break}case"y-complete-sync-done":o=l.yServerRev;break;case"outdated-server-rev":c=!0}}catch(e){}return{receivedUntils:i,resyncNeeded:c,yServerRevision:o}})}Ui.on=e.Dexie.Events(null,{new:[function(e,t){return e===Di?t:function(){e.apply(this,arguments),t.apply(this,arguments)}}],beforeunload:[function(e,t){return e===Di?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)}}]}),Ui.getDocCache=Si,e.Dexie.DexieYProvider?Ui=e.Dexie.DexieYProvider||Ui:e.Dexie.DexieYProvider=Ui;const Li=new Map,Ri=new Set(["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array","DataView"]),$i=new Set(["Blob","File","ArrayBuffer",...Ri]);function Bi(e){return Object.prototype.toString.call(e).slice(8,-1)}function Ni(e){if("object"!==typeof e||null===e)return!1;const t=Bi(e);return!!$i.has(t)&&("Blob"===t||"File"===t||e.byteLength>=4096)}function Mi(e,t,n){return r(this,void 0,void 0,function*(){const r=yield t();if(!r)throw new Error("Failed to load access token for blob upload");const s=function(){const e=new Uint8Array(18),t=new Uint8Array(e.buffer,0,6),n=Date.now();K>=n?++K:K=n,t[0]=K/1099511627776,t[1]=K/4294967296,t[2]=K/16777216,t[3]=K/65536,t[4]=K/256,t[5]=K;const r=new Uint8Array(e.buffer,6);return z(r),P(e)}(),i=`${e}/blob/${s}`;let o,c,l;const a=function(e){const t=Bi(e);return"Blob"===t||"File"===t?"Blob":"ArrayBuffer"===t?"ArrayBuffer":t}(n),u=Bi(n);if("Blob"===u||"File"===u)o=n,c=n.type||"application/octet-stream",l=n.size;else if("ArrayBuffer"===u)o=n,c="application/octet-stream",l=n.byteLength;else{if(!Ri.has(u))throw new Error(`Unsupported blob type: ${u}`);{const e=n,t=new ArrayBuffer(e.byteLength);new Uint8Array(t).set(new Uint8Array(e.buffer,e.byteOffset,e.byteLength)),o=t,c="application/octet-stream",l=e.byteLength}}const d=`${i}?ct=${encodeURIComponent(c)}`,h=yield fetch(d,{method:"PUT",headers:{Authorization:`Bearer ${r}`,"Content-Type":c},body:o});if(!h.ok){if(404===h.status||405===h.status)return null;throw new Error(`Failed to upload blob: ${h.status} ${h.statusText}`)}const f=yield h.json();return Object.assign({_bt:a,ref:f.ref,size:l},"Blob"===a?{ct:c}:{})})}function Fi(e,t,n){return r(this,arguments,void 0,function*(e,t,n,r=32768){const s={dirty:!1},i=yield Wi(e,t,n,r,s);return s.dirty&&"object"==typeof i&&null!==i&&i.constructor===Object&&(i._hasBlobRefs=1),i})}function Wi(e,t,n){return r(this,arguments,void 0,function*(e,t,n,r=32768,s={dirty:!1},i=new WeakSet){if(null==e)return e;if("string"==typeof e&&e.length>r&&r!==1/0){if(!1===Li.get(t))return e;const r=new Blob([e],{type:"text/plain;charset=utf-8"}),i=yield Mi(t,n,r);return null===i?(Li.set(t,!1),e):(Li.set(t,!0),s.dirty=!0,Object.assign(Object.assign({},i),{_bt:"string"}))}if(Ni(e)){if(!1===Li.get(t))return e;const r=yield Mi(t,n,e);return null===r?(Li.set(t,!1),e):(Li.set(t,!0),s.dirty=!0,r)}if("object"!=typeof e)return e;if(i.has(e))return e;if(i.add(e),Array.isArray(e)){const o=[];for(const c of e)o.push(yield Wi(c,t,n,r,s,i));return o}const o=Object.getPrototypeOf(e);if(o!==Object.prototype&&null!==o)return e;const c={};for(const[o,l]of Object.entries(e))c[o]=yield Wi(l,t,n,r,s,i);return c})}function zi(e,t,n){return r(this,arguments,void 0,function*(e,t,n,r=32768){switch(e.type){case"insert":case"upsert":{const s=yield Promise.all(e.values.map(e=>Fi(e,t,n,r)));return Object.assign(Object.assign({},e),{values:s})}case"update":{const s=yield Promise.all(e.changeSpecs.map(e=>Fi(e,t,n,r)));return Object.assign(Object.assign({},e),{changeSpecs:s})}case"modify":{const s=yield Fi(e.changeSpec,t,n,r);return Object.assign(Object.assign({},e),{changeSpec:s})}default:return e}})}function Ki(e,t){switch(e.type){case"insert":case"upsert":return e.values.some(e=>Vi(e,t));case"update":return e.changeSpecs.some(e=>Vi(e,t));case"modify":return Vi(e.changeSpec,t);default:return!1}}function Vi(e,t,n=new WeakSet){if(null==e)return!1;if("string"==typeof e&&e.length>t&&t!==1/0)return!0;if(Ni(e))return!0;if("object"!=typeof e)return!1;if(n.has(e))return!1;if(n.add(e),Array.isArray(e))return e.some(e=>Vi(e,t,n));const r=Object.getPrototypeOf(e);return(r===Object.prototype||null===r)&&Object.values(e).some(e=>Vi(e,t,n))}function Hi(t,n,s){return r(this,arguments,void 0,function*(t,n,{yDownloadedRealms:s,realms:l}){if(s&&l&&l.every(e=>"*"===s[e]))return;const a=yield Ot(t),u={"Content-Type":"application/json",Accept:"application/octet-stream"};a&&(u.Authorization=`Bearer ${a.accessToken}`);const d=yield fetch(`${n}/y/download`,{body:Rt.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),at,function(s){return o(this,arguments,function*(){var o,l,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=_i(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=c(s);!(o=(y=yield i(b.next())).done);m=!0){u=y.value,m=!1;const e=new Je(u);for(;Ge(e);)switch(Qe(e)){case 1:yield i(g(!0)),d=et(e);break;case 2:yield i(g(!1)),h=et(e),f=et(e);break;case 3:{const t=st(e),n=Ye(e);p.push({k:t,u:n});break}}yield i(g(!1))}}catch(e){l={error:e}}finally{try{m||o||!(a=b.return)||(yield i(a.call(b)))}finally{if(l)throw l.error}}yield i(g(!0))}catch(t){throw t instanceof e.DexieError||(yield i(g(!1))),t}})})})}const Ji=new WeakMap;function qi(t){var n,r,s,i;let o=Ji.get(t);if(o&&o.expiration>Date.now()+3e5)return Promise.resolve(o.accessToken);const c=t.cloud.currentUser.value;return c&&c.accessToken&&(null!==(r=null===(n=c.accessTokenExpiration)||void 0===n?void 0:n.getTime())&&void 0!==r?r:1/0)>Date.now()+3e5?(Ji.set(t,{accessToken:c.accessToken,expiration:null!==(i=null===(s=c.accessTokenExpiration)||void 0===s?void 0:s.getTime())&&void 0!==i?i:1/0}),Promise.resolve(c.accessToken)):e.ignoreTransaction(()=>Ot(t).then(e=>{var n,r;return(null==e?void 0:e.accessToken)&&Ji.set(t,{accessToken:e.accessToken,expiration:null!==(r=null===(n=e.accessTokenExpiration)||void 0===n?void 0:n.getTime())&&void 0!==r?r:1/0}),(null==e?void 0:e.accessToken)||null}))}const Gi="currentSyncWorker";function Yi(e,t,n,s){return Qi(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):Kt&&(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 Yi(e,t,n,Object.assign(Object.assign({},s),{retryImmediatelyOnFetchError:!1}))):(yield e.$syncState.update("syncState",{timestamp:new Date,error:""+i}),e.syncStateChangedEvent.next({phase:Kt?"error":"offline",error:new Error(""+(null==i?void 0:i.message)||i)}),Promise.reject(i))}))}function Qi(e,t,n){return r(this,arguments,void 0,function*(e,t,n,{isInitialSync:s,cancelToken:i,justCheckIfNeeded:o,purpose:c}={isInitialSync:!1}){var a,u,d;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:h}=t,f=yield e.getCurrentUser(),p=f.isLoggedIn?dt(e):[],g=p.map(t=>e.table(ht(t.name))),y=yield e.getPersistedSyncState(),m=f.isLoggedIn,b=m?function(e,t){const n=(null==t?void 0:t.syncedTables)||[];return dt(e).filter(e=>!n.includes(e.name))}(e,y):[];zt(i);const v=b.length>0;if(v){if(o)return!0;yield e.transaction("rw",b,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!==l.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!==l.userId||(e.owner=t.userId)}):yield n.toCollection().modify(e=>{e.realmId&&r.has(e.realmId)||(e.owner&&e.owner!==l.userId||(e.owner=t.userId),e.realmId&&e.realmId!==l.userId||(e.realmId=t.userId))}))})}(b,f,null==y?void 0:y.realms)})),zt(i)}const[w,_,k,{yMessages:S,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=>p.some(t=>t.name===e.tableName));let o=yield yt(g,e);const c=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(en),c=(null==o?void 0:o.unsentFrom)||1,l=(null==o?void 0:o.receivedUntil)||0,a=Math.min(c,l+1),u=yield tn(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<c)continue;const n=JSON.stringify(e.k)+"/"+t;let r=d[n];r?(r.u.push(e.u),r.i=Math.max(e.i,r.i)):(d[n]=r={i:e.i,k:e.k,isLocal:t,u:[]},r.u.push(e.u))}for(const{k:e,isLocal:r,u:i,i:o}of Object.values(d)){const c=1===i.length?i[0]:Kr(i);if(r)n.push({type:"u-c",table:s.name,prop:t.prop,k:e,u:c,i:o});else{const r=Wr(c);n.push({type:"sv",table:s.name,prop:t.prop,k:e,sv:r})}}}return{yMessages:n,lastUpdateIds:r}})}(e,p);if(zt(i),v){const e=[...(null==y?void 0:y.realms)||[],...(null==y?void 0:y.inviteRealms)||[]],l=yield function(e,t,n,s){return r(this,void 0,void 0,function*(){const i=`upload-${mt(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],c=(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||"")&&G(t)}),l=yield c.toArray();if(l.length>0){const n={type:"upsert",values:l,keys:l.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[]})}(b,f,n,e);return zt(i),o=o.concat(l),[o,t,s,c]}return[o,t,s,c]})),E=w.some(e=>e.muts.some(e=>e.keys.length>0))||S.some(e=>"u-c"===e.type);if(o)return E;if("push"===c&&!E)return!1;const C=Ht(w,null==_?void 0:_.latestRevisions),A=(null==_?void 0:_.clientIdentity)||J(16);let I=w;const O=null!==(d=null===(u=e.cloud.options)||void 0===u?void 0:u.maxStringLength)&&void 0!==d?d:32768,D=function(e,t=32768){for(const n of e)for(const e of n.muts)if(Ki(e,t))return!0;return!1}(w,O);D&&(I=yield function(e,t,n){return r(this,arguments,void 0,function*(e,t,n,r=32768){const s=[];for(const i of e){const e=[];for(const s of i.muts){const i=yield zi(s,t,n,r);e.push(i)}s.push({table:i.table,muts:e})}return s})}(w,h,()=>qi(e),O)),zt(i);const j=yield Wt(I,S,_,k,e,h,n,A,f),{done:T,newSyncState:U}=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))j.schema[e]&&(n[e]=j.schema[e]);yield e.$syncState.put(n,"schema");const s=yield yt(g,e,{since:C});for(const t of g){const n=ft(t.name);if(s.some(e=>e.table===n&&e.muts.length>0)){if(C[n]){const r=C[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()])}Ht(s,C),yield Vt(e,n,C,j.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:[],c=new Set(t.realms),l=new Set(t.realms.concat(t.inviteRealms));for(const e of i)c.has(e)||(s.add(e),l.has(e)||r.add(e));for(const e of o.concat(i))l.has(e)||r.add(e);if(r.size>0||s.size>0){const t=dt(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,j,i);const o=i||{syncedTables:[],latestRevisions:{},realms:[],inviteRealms:[],clientIdentity:A};m&&(o.syncedTables=p.map(e=>e.name).concat(b.map(e=>e.name))),o.latestRevisions=C,o.remoteDbId=j.dbId,o.initiallySynced=!0,o.realms=j.realms,o.inviteRealms=j.inviteRealms,o.serverRevision=j.serverRevision,o.yServerRevision=j.serverRevision,o.timestamp=new Date,delete o.error;const c=Xi(j.changes,s);if(yield Zt(c,e),j.yMessages){const{receivedUntils:t,resyncNeeded:n,yServerRevision:s}=yield Pi(j.yMessages,e);s&&(o.yServerRevision=s),yield function(e,t,n){return r(this,void 0,void 0,function*(){var s,i,o,c,l;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!==(l=null!==(c=null==t?void 0:t.receivedUntil)&&void 0!==c?c:(yield n.table(e).where("i").between(1,1/0).reverse().limit(1).primaryKeys())[0])&&void 0!==l?l:0;yield n.transaction("rw",e,()=>r(this,void 0,void 0,function*(){const t=yield n.table(e).get(en);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:en,unsentFrom:s,receivedUntil:i})}))}})}(x,t,e),n&&(o.yDownloadedRealms={})}return e.$syncState.put(o,"syncState"),{done:0===s.length,newSyncState:o}}));if(!T)return yield Ft(e),yield Qi(e,t,n,{isInitialSync:s,cancelToken:i});const P=Object.values(n).some(e=>{var t;return null===(t=e.yProps)||void 0===t?void 0:t.length}),L=!!j.yMessages;if(P&&L)try{yield Hi(e,h,U)}catch(e){}return e.syncCompleteEvent.next(),!1})}function Xi(e,t){const n={};X(n,e);const r={};return X(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))H(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 Zi(s){const i=[],o=new t.BehaviorSubject(!0),c=new t.BehaviorSubject(null);let l=!1,a=new Array(10).fill(0);return c.subscribe(()=>r(this,void 0,void 0,function*(){if(!l&&i.length>0){l=!0,a.shift(),a.push(Date.now()),o.next(!1);try{yield function(){return r(this,void 0,void 0,function*(){for(var o,c,l,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 jt(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===(c=null==i?void 0:i.inviteRealms)||void 0===c?void 0:c.includes(h.realm))||(yield s.cloud.sync({purpose:"pull",wait:!0}));break;case"realm-accepted":(null===(l=null==i?void 0:i.realms)||void 0===l?void 0:l.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!1;if(h.baseRev!==r.serverRevision)return"string"!=typeof h.baseRev||"bigint"!=typeof r.serverRevision&&"object"!=typeof r.serverRevision||y(s,"pull"),!1;if((yield e.waitFor(ut(r)))!==h.realmSetHash)return y(s,"pull"),!1;let o=[];if(i.isLoggedIn){const e=dt(s).map(e=>s.table(ht(e.name)));o=yield yt(e,s)}if(h.changes.length>0){const e=Xi(h.changes,o);yield Zt(e,s)}return r.latestRevisions=Ht(o,r.latestRevisions),r.serverRevision=h.newRev,yield Vt(s,n,r.latestRevisions,h.newRev),yield s.$syncState.put(r,"syncState"),!0})))&&h.changes.length>0&&s.syncCompleteEvent.next();break}}catch(e){}}})}()}finally{a[a.length-1]-a[0]<1e4&&(yield new Promise(e=>setTimeout(e,1e3))),l=!1,o.next(!0)}}})),{enqueue:function(e){i.push(e),c.next(null)},readyToServe:o}}class eo{constructor(e){this.inFlight=new Map,this.db=e}download(e,t){let n=this.inFlight.get(e.ref);return n||(n=qi(this.db).then(n=>{if(!n)throw new Error("No access token available for blob download");return function(e,t,n){return r(this,void 0,void 0,function*(){const r=`${t}/blob/${e.ref}`,s=yield fetch(r,{headers:{Authorization:`Bearer ${n}`}});if(!s.ok)throw new Error(`Failed to download blob ${e.ref}: ${s.status} ${s.statusText}`);const i=yield s.arrayBuffer();return new Uint8Array(i)})}(e,t,n)}).finally(()=>this.inFlight.delete(e.ref)),this.inFlight.set(e.ref,n)),n}}const to=new WeakMap,no={members:"@id, [userId+realmId], [email+realmId], realmId",roles:"[realmId+name]",realms:"@realmId",$jobs:"",$syncState:"",$baseRevs:"[tableName+clientRev]",$logins:"claims.sub, lastLogin"};let ro=0;function so(e){"vip"in e&&(e=e.vip);let n=to.get(e);if(!n){const r=new t.Subject;let s=new f(`syncstatechanged-${e.name}`),i=new f(`synccomplete-${e.name}`);r.id=++ro;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},get cloud(){return 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 c={getCurrentUser:()=>n.$logins.toArray().then(e=>e.find(e=>e.isLoggedIn)||l),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=io(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,c),n.messageConsumer=Zi(n),n.messageProducer=new t.Subject,n.blobDownloadTracker=new eo(n),to.set(e,n)}return n}function io(e){return"string"==typeof e?e:e?"["+[].join.call(e,"+")+"]":""}function oo(e,t){e.value!==t&&e.next(t)}function co(s,i){const o=t.from(e.liveQuery(()=>r(this,void 0,void 0,function*(){let e=0,t=0;const n=dt(s);return yield s.dx.transaction("r",n,s=>r(this,void 0,void 0,function*(){s.idbtrans.disableBlobResolve=!0;for(const r of n){if(!!!r.schema.idxByName._hasBlobRefs)continue;const n=yield r.where("_hasBlobRefs").equals(1).toArray();for(const r of n){const n=lo(r);e+=n.length,t+=n.reduce((e,t)=>e+(t.size||0),0)}}})),{blobsRemaining:e,bytesRemaining:t}})));return t.combineLatest([o,i]).pipe(n.map(([e,t])=>({isDownloading:t&&e.blobsRemaining>0,blobsRemaining:e.blobsRemaining,bytesRemaining:e.bytesRemaining})),n.share({resetOnRefCountZero:()=>t.timer(2e3)}))}function lo(e){const t=[];return function e(n){if(null!=n&&"object"==typeof n)if(k.isTSONRef(n))t.push({ref:n.ref,size:n.size});else{if(function(e){if("object"!=typeof e||null===e)return!1;const t=e;return"string"==typeof t.type&&"string"==typeof t.ref&&"number"==typeof t.size&&void 0===t._bt}(n)){const e=n;return void t.push({ref:e.ref,size:e.size})}qt(n)?t.push({ref:n.ref,size:n.size||0}):Array.isArray(n)?n.forEach(e):n.constructor===Object&&Object.values(n).forEach(e)}}(e),t}const ao=new WeakMap;class uo{constructor(e,t){ao.set(this,e),Object.assign(this,t)}static load(e,t){return e.table("$logins").get(t).then(n=>new uo(e,n||{userId:t,claims:{sub:t},lastLogin:new Date(0)}))}save(){return r(this,void 0,void 0,function*(){ao.get(this).table("$logins").put(this)})}}function ho(e,n){return t.firstValueFrom(t.from(e).pipe(t.filter(n)))}function fo(e){return r(this,void 0,void 0,function*(){const t=yield po(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 _t(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 po(e,{deleteUnsyncedData:!0})}})}function po(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 ho(e.cloud.currentUser,e=>e.userId===l.userId),yield e.cloud.sync({purpose:"pull",wait:!0})),n})}const go={access_denied:"Access was denied by the authentication provider.",invalid_state:"The authentication response could not be verified. Please try again.",email_not_verified:"Your email address must be verified before you can log in.",expired_code:"The authentication code has expired. Please try again.",provider_error:"An error occurred with the authentication provider.",network_error:"A network error occurred during authentication. Please check your connection and try again."};class yo extends Error{constructor(e,t,n){super(n||go[e]),this.name="OAuthError",this.code=e,this.provider=t}get userMessage(){return go[this.code]||this.message}}const mo={providers:[],otpEnabled:!0};function bo(e){return r(this,arguments,void 0,function*(e,t=!0){if(!t)return mo;try{const t=yield fetch(`${e}/auth-providers`,{method:"GET",headers:{Accept:"application/json"},mode:"cors"});return 404===t.status?mo:t.ok?yield t.json():mo}catch(e){return mo}})}function vo(e){if("undefined"==typeof window)throw new Error("OAuth redirect requires a browser environment");const t=function(e){const t=new URL(`${e.databaseUrl}/oauth/login/${e.provider}`),n=e.redirectUri||("undefined"!=typeof window?window.location.href:"");return n&&t.searchParams.set("redirect_uri",n),t.toString()}(e);window.location.href=t}function wo(t){const{userInteraction:n}=t.cloud;function s(i,o){return r(this,arguments,void 0,function*({public_key:i,hints:o},c){var l,a;let u;const d=null===(l=t.cloud.options)||void 0===l?void 0:l.databaseUrl;if(!d)throw new Error("No database URL given.");const h=null==o?void 0:o.intent;if((null==o?void 0:o.oauthCode)&&o.provider)try{return yield function(e){return r(this,void 0,void 0,function*(){const{databaseUrl:t,code:n,publicKey:r,scopes:s=["ACCESS_DB"],intent:i}=e,o=Object.assign({grant_type:"authorization_code",code:n,public_key:r,scopes:s},void 0!==i?{intent:i}:{});try{const e=yield fetch(`${t}/token`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o),mode:"cors"});if(!e.ok){const t=yield e.text().catch(()=>e.statusText);if(403===e.status)try{const e=JSON.parse(t);if(At(e))throw new Ct(e)}catch(e){if(e instanceof Ct)throw e}if(400===e.status||401===e.status)try{const e=JSON.parse(t);if("error"===e.type){if("INVALID_OTP"===e.messageCode)throw new yo("expired_code",void 0,e.message);throw new bt(e)}}catch(e){if(e instanceof yo||e instanceof bt)throw e}throw new yo("provider_error",void 0,`Token exchange failed: ${e.status} ${t}`)}const n=yield e.json();if("error"===n.type)throw new bt(n);if("tokens"!==n.type)throw new yo("provider_error",void 0,`Unexpected response type: ${n.type}`);return n}catch(e){if(e instanceof yo||e instanceof bt)throw e;if(e instanceof TypeError)throw new yo("network_error");throw e}})}({databaseUrl:d,code:o.oauthCode,publicKey:i,scopes:["ACCESS_DB"],intent:h})}catch(e){if(e instanceof Ct)return yield s({public_key:i,hints:void 0},ko(e));throw e}if(null==o?void 0:o.provider){if(c)return yield s({public_key:i,hints:void 0},c);let e;throw o.redirectPath&&(/^https?:\/\//i.test(o.redirectPath)?e=o.redirectPath:"undefined"!=typeof window&&window.location?e=new URL(o.redirectPath,window.location.href).toString():"undefined"!=typeof location&&location.href&&(e=new URL(o.redirectPath,location.href).toString())),_o(t,o.provider,e),new Et(o.provider)}if("demo"===(null==o?void 0:o.grant_type)){u={demo_user:yield St(n,"Enter a demo user email",(null==o?void 0:o.email)||(null==o?void 0:o.userId),c),grant_type:"demo",scopes:["ACCESS_DB"],public_key:i}}else if((null==o?void 0:o.otpId)&&o.otp){if(c)return yield kt(n,"Access Denied",c),yield s({public_key:i,hints:void 0},c);u={grant_type:"otp",otp_id:o.otpId,otp:o.otp,scopes:["ACCESS_DB"],public_key:i}}else if("otp"===(null==o?void 0:o.grant_type)||(null==o?void 0:o.email)){const e=(null==o?void 0:o.email)||(yield St(n,"Enter email address",void 0,c));u=/@demo.local$/.test(e)?{demo_user:e,grant_type:"demo",scopes:["ACCESS_DB"],public_key:i}:Object.assign({email:e,grant_type:"otp",scopes:["ACCESS_DB"]},void 0!==h?{intent:h}:{})}else{const s=!1!==(null===(a=t.cloud.options)||void 0===a?void 0:a.socialAuth),l=yield bo(d,s);if(l.providers.length>0){const s=c?[c]:[],i=yield function(t,n,s){return r(this,arguments,void 0,function*(t,n,r,s="Choose login method",i=[]){const o=[...n.map(wt)];return r&&o.push({name:"otp",value:"email",displayName:"Continue with email",iconUrl:vt,styleHint:"otp"}),new Promise((n,r)=>{const c={type:"generic",title:s,alerts:i,options:o,fields:{},submitLabel:"",cancelLabel:"Cancel",onSubmit:e=>{t.next(void 0),n("otp"in e?{type:"otp"}:"provider"in e?{type:"provider",provider:e.provider}:{type:"otp"})},onCancel:()=>{t.next(void 0),r(new e.AbortError("User cancelled"))}};t.next(c)})})}(n,l.providers,l.otpEnabled,"Sign in",s);if("provider"===i.type)throw _o(t,i.provider),new Et(i.provider)}const f=yield St(n,"Enter email address",null==o?void 0:o.email,0===l.providers.length?c:void 0);u=/@demo.local$/.test(f)?{demo_user:f,grant_type:"demo",scopes:["ACCESS_DB"],public_key:i}:Object.assign({email:f,grant_type:"otp",scopes:["ACCESS_DB"]},void 0!==h?{intent:h}:{})}const f=yield fetch(`${d}/token`,{body:JSON.stringify(u),method:"post",headers:{"Content-Type":"application/json"},mode:"cors"});if(200!==f.status){const e=yield So(f);if(e)return yield s({public_key:i,hints:void 0},e);const t=yield f.text();throw yield kt(n,"Token request failed",{type:"error",messageCode:"GENERIC_ERROR",message:t,messageParams:{}}).catch(()=>{}),new $t(f,t)}const p=yield f.json();if("tokens"===p.type||"error"===p.type)return p;if("otp"===u.grant_type&&"email"in u){if("otp-sent"!==p.type)throw new Error(`Unexpected response from ${d}/token`);const e=yield xt(n,u.email),t=Object.assign(Object.assign({},u),{otp:e||"",otp_id:p.otp_id,public_key:i});let r=yield fetch(`${d}/token`,{body:JSON.stringify(t),method:"post",headers:{"Content-Type":"application/json"},mode:"cors"});for(;401===r.status;){const e=yield r.text();t.otp=yield xt(n,u.email,{type:"error",messageCode:"INVALID_OTP",message:e,messageParams:{}}),r=yield fetch(`${d}/token`,{body:JSON.stringify(t),method:"post",headers:{"Content-Type":"application/json"},mode:"cors"})}if(200!==r.status){const e=yield So(r);if(e)return yield s({public_key:i,hints:void 0},e);const t=yield r.text();throw new $t(r,t)}return yield r.json()}throw new Error(`Unexpected response from ${d}/token`)})}return({public_key:e,hints:t})=>s({public_key:e,hints:t})}function _o(e,t,n){var r,s;const i=null===(r=e.cloud.options)||void 0===r?void 0:r.databaseUrl;if(!i)throw new Error("No database URL given.");vo({databaseUrl:i,provider:t,redirectUri:n||(null===(s=e.cloud.options)||void 0===s?void 0:s.oauthRedirectUri)||("undefined"!=typeof location?location.href:void 0)})}function ko(e){return{type:"error",messageCode:e.code,message:e.message,messageParams:{}}}function So(e){return r(this,void 0,void 0,function*(){if(403!==e.status)return null;try{const t=yield e.clone().json();if(At(t))return ko(new Ct(t))}catch(e){}return null})}function xo(e,...t){globalThis.console[e](...t)}function Eo(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 Ot(e),!1}const o=new uo(e,{claims:{},lastLogin:new Date(0)});try{yield Dt(e.cloud.options.databaseUrl,o,e.cloud.options.fetchTokens||wo(e),e.cloud.userInteraction,t)}catch(e){if("OAuthRedirectError"===e.name)return!1;throw e}return i!==l.userId&&o.userId!==i&&(yield fo(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&&(xo("debug","Login context property names:",Object.keys(t)),xo("debug","Login context property names:",Object.keys(t)),xo("debug","Login context:",t),xo("debug","Login context JSON:",JSON.stringify(t)))}catch(e){}throw e}})),yield ho(e.cloud.currentUser,e=>e.userId===t.userId)})}(e,o),y(e,"pull"),o.userId!==i})}const Co="undefined"!=typeof InstallTrigger,Ao="undefined"!=typeof navigator&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\/|Edge\//.test(navigator.userAgent),Io=Ao?[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]:NaN,Oo=Ao&&Io<=605||Co,Do="undefined"!=typeof self&&"clients"in self&&!self.document;const{toString:jo}={};function To(e){return jo.call(e).slice(8,-1)}function Uo(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 Po(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 Lo=/b|c|d|f|g|h|j|k|l|m|n|p|q|r|s|t|v|x|y|z/i;function Ro(e){return e>="A"&&e<="Z"}let $o=0;function Bo(e,t){const n=new Uint8Array(18),r=new Uint8Array(n.buffer,0,6),s=Date.now();$o>=s?++$o:$o=s,r[0]=$o/1099511627776,r[1]=$o/4294967296,r[2]=$o/16777216,r[3]=$o/65536,r[4]=$o/256,r[5]=$o;const i=new Uint8Array(n.buffer,6);crypto.getRandomValues(i);return e+P(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 c=n.trans;if("versionchange"===c.mode&&(c.disableChangeTracking=!0,c.disableAccessControl=!0),c.disableChangeTracking)return s.mutate(n);if("add"===n.type||"put"===n.type){const c=null===(i=t.cloud.schema)||void 0===i?void 0:i[r];if(null==c?void 0:c.generatedGlobalId){if((null===(o=t.cloud.options)||void 0===o?void 0:o.databaseUrl)&&!t.initiallySynced){const e=Uo(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 c=Uo(s.schema.primaryKey,n);return c.forEach((l,a)=>{if(void 0===l){const r=n.values[a].realmId||t.cloud.currentUserId,l=r.substr(r.length-3);c[a]=Bo(i,l),s.schema.primaryKey.outbound||(o||(o=n.values.slice()),o[a]=e.deepClone(o[a]),e.setByKeyPath(o[a],s.schema.primaryKey.keyPath,c[a]))}else if("string"!=typeof l||!l.startsWith(i)&&!l.startsWith("#"+i))throw new e.ConstraintError(`The ID "${l}" 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:c,values:o||n.values}))}(n,c.idPrefix)}if(null==c?void 0:c.markedForSync){Uo(s.schema.primaryKey,n).forEach((t,n)=>{if(!G(t)){const n=Array.isArray(t)?t.map(To).join(","):To(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 Mo=0;function Fo(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 Wo(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 zo=new t.BehaviorSubject(new Set);function Ko(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=>ht(e));i=r.transaction([...e,...t],s)}else i=r.transaction(e,s);if("readwrite"===s){i.txid=mt(16),i.opCount=0,i.currentUser=t.value,zo.value.add(i),zo.next(zo.value);const e=()=>{i.removeEventListener("complete",r),i.removeEventListener("error",e),i.removeEventListener("abort",e),zo.value.delete(i),zo.next(zo.value)},r=()=>{i.mutationsAdded&&!Ko(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,c=o.get(t);return c?function(e){const t="$lock"+ ++Mo;return Object.assign(Object.assign({},e),{count:Fo(e.count,t),get:Fo(e.get,t),getMany:Fo(e.getMany,t),openCursor:Fo(e.openCursor,t),query:Fo(e.query,t),mutate:Wo(e.mutate,t)})}(Object.assign(Object.assign({},s),{mutate:e=>{var r,o,c;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===(c=a.currentUser)||void 0===c?void 0:c.isLoggedIn)?"deleteRange"===e.type?s.query({query:{range:e.range,index:i.primaryKey},trans:e.trans,values:!1}).then(t=>l({type:"delete",keys:t.result,trans:e.trans,criteria:{index:null,range:e.range}})):l(e):s.mutate(e):s.mutate(e)}})):s;function l(r){var o,l;const a=r.trans,u=null===(l=null===(o=n.cloud.options)||void 0===o?void 0:o.unsyncedProperties)||void 0===l?void 0:l[t],{txid:d,currentUser:{userId:h}}=a,{type:f}=r,p=++a.opCount;function g(e){if(!u)return e;let t=e;for(const n of Object.keys(e))u.some(e=>n===e||n.startsWith(e+"."))&&(t===e&&(t=Object.assign({},e)),delete t[n]);return t}return s.mutate(r).then(t=>{var n;const{numFailures:s,failures:o}=t;let l="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&&(l=l.filter((e,t)=>!o[t]),y=y.filter((e,t)=>!o[t])),u){if(y=y.map(e=>{const t=Object.assign({},e);for(const e of u)delete t[e];return t}),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=l.length;n<s;++n)r.hasKey(l[n])&&(e.push(l[n]),t.push(y[n]));l=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:l,criteria:_,txid:d,userId:h}:"add"===r.type?{type:"insert",ts:w,opNo:p,keys:l,txid:d,userId:h,values:y}:v&&b?{type:"upsert",ts:w,opNo:p,keys:l,values:y,changeSpecs:b.changeSpecs.filter((e,t)=>!o[t]),txid:d,userId:h}:_&&m?{type:"modify",ts:w,opNo:p,keys:l,criteria:_,changeSpec:m,txid:d,userId:h}:m?{type:"update",ts:w,opNo:p,keys:l,changeSpecs:l.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:l,values:y,txid:d,userId:h};return"isAdditionalChunk"in r&&r.isAdditionalChunk&&(k.isAdditionalChunk=!0),l.length>0||_?c.mutate({type:"add",trans:a,values:[k]}).then(()=>(a.mutationsAdded=!0,t)):t})}}})}}}class Ho{constructor(e){this.queue=[],this.isProcessing=!1,this.db=e}saveBlobs(e,t,n){this.queue.push({tableName:e,primaryKey:t,resolvedBlobs:n}),this.startConsumer()}startConsumer(){this.isProcessing||(this.isProcessing=!0,setTimeout(()=>{this.processQueue()},0))}processQueue(){const t=this.queue.shift();t?this.db.transaction("rw",t.tableName,n=>{const r=n.idbtrans;r.disableChangeTracking=!0,r.disableAccessControl=!0,r.disableBlobResolve=!0;const s={};for(const e of t.resolvedBlobs)s[e.keyPath]=e.data;n.table(t.tableName).update(t.primaryKey,n=>{for(const r of t.resolvedBlobs){const t=e.getByKeyPath(n,r.keyPath);if(void 0!==t&&qt(t)){if(t.ref!==r.ref)return;e.setByKeyPath(n,r.keyPath,r.data)}}delete n._hasBlobRefs})}).catch(e=>{}).finally(()=>this.processQueue()):this.isProcessing=!1}}function Jo(t){return{stack:"dbcore",name:"blobResolve",level:2,create(n){const r=new Ho(t);return Object.assign(Object.assign({},n),{table(s){var i;if(!t.cloud)return n.table(s);const o=null===(i=t.cloud.options)||void 0===i?void 0:i.databaseUrl,c=n.table(s);return s.startsWith("$")?c:Object.assign(Object.assign({},c),{get(e){var n;return(null===(n=e.trans)||void 0===n?void 0:n.disableBlobResolve)?c.get(e):c.get(e).then(n=>n&&Qt(n)?qo(c,e.trans,e.key,n,r,t):n)},getMany(n){var s;return(null===(s=n.trans)||void 0===s?void 0:s.disableBlobResolve)?c.getMany(n):c.getMany(n).then(s=>{const i=s.some(e=>e&&Qt(e));return i?e.Promise.all(s.map((e,s)=>e&&Qt(e)?qo(c,n.trans,n.keys[s],e,r,t):e)):s})},query(n){var s;return(null===(s=n.trans)||void 0===s?void 0:s.disableBlobResolve)?c.query(n):c.query(n).then(s=>{if(!s.result||!Array.isArray(s.result))return s;const i=s.result.some(e=>e&&Qt(e));return i?e.Promise.all(s.result.map(e=>e&&Qt(e)?qo(c,n.trans,void 0,e,r,t):e)).then(e=>Object.assign(Object.assign({},s),{result:e})):s})},openCursor(e){var n;return(null===(n=e.trans)||void 0===n?void 0:n.disableBlobResolve)?c.openCursor(e):c.openCursor(e).then(n=>n&&e.values&&o?function(e,t,n,r){const s=Object.create(e,{value:{value:e.value,enumerable:!0,writable:!0},start:{value:i=>e.start(()=>{const o=e.value;if(!o||!Qt(o))return s.value=o,void i();qo(t,e.trans,e.primaryKey,o,n,r,!0).then(e=>{s.value=e,i()},e=>{s.value=o,i()})})}});return s}(n,c,r,t):n)}})}})}}}function qo(t,n,r,s,i,o,c=!1){var l;try{const a=e.currentTransaction,u="readonly"===(null==a?void 0:a.mode),d=!0===(null==a?void 0:a.explicit),h=a&&!(u&&!d&&!c),f=(null===(l=o.cloud.options)||void 0===l?void 0:l.databaseUrl)||"",p=[],g=Yt(s,f,p,"",new WeakMap,o.blobDownloadTracker);return(h?e.waitFor(g):e.Promise.resolve(g)).then(o=>{const c=t.schema.primaryKey,l=void 0!==r?r:c.keyPath?e.getByKeyPath(s,c.keyPath):void 0;return void 0!==l&&(u?i.saveBlobs(t.name,l,p):t.mutate({type:"put",keys:[l],values:[o],trans:n}).catch(e=>{})),o}).catch(e=>s)}catch(t){return e.Promise.resolve(s)}}function Go(e,t){return function(n,r){var s;const i=Object.assign(Object.assign({},no),n);Object.keys(no).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=no[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(no[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={}),c=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)(Lo.test(e[t])||Ro(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=Po(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,c),c.add(r.idPrefix)),/^\$/.test(e)||(i[`$${e}_mutations`]="++rev",r.markedForSync=!0,i[e].includes("_hasBlobRefs")||(i[e]+=",_hasBlobRefs")),r.deleted&&(r.deleted=!1)):(r.deleted=!0,r.markedForSync=!1,i[`$${e}_mutations`]=null)});const l=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 l}}function Yo(e,t,n){return"undefined"!=typeof navigator&&navigator.locks?navigator.locks.request(e.name+"|"+t,n):n()}const Qo=new t.BehaviorSubject(!0),Xo=new t.BehaviorSubject(!0);Qo.pipe(n.switchMap(e=>e?t.of(!0):t.of(!1).pipe(n.delay(2e4))),n.distinctUntilChanged()).subscribe(Xo);const Zo="undefined"!=typeof document?t.fromEvent(document,"visibilitychange"):t.of({}),ec=Zo.pipe(n.filter(()=>"hidden"===document.visibilityState)),tc=Zo.pipe(n.filter(()=>"visible"===document.visibilityState)),nc="undefined"!=typeof window?t.merge(tc,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),ec,nc).pipe(n.map(()=>"visible"===document.visibilityState),n.tap(e=>{Qo.value!==e&&Qo.next(e)}),n.switchMap(e=>e?t.of(0).pipe(n.delay(16e4),n.tap(()=>Qo.next(!1))):t.of(0))).subscribe(()=>{});class rc extends Error{constructor(){super(...arguments),this.name="TokenExpiredError"}}const sc=new WeakMap,ic=3e4;class oc extends cn{constructor(e){super(),this.doc=e,this.clientID=e.clientID,this.states=new Map,this.meta=new Map,this._checkInterval=setInterval(()=>{const e=hn();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&&ic<=e-n.lastUpdated&&this.states.has(r)&&t.push(r)}),t.length>0&&cc(this,t,"timeout")},Z(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:hn()});const i=[],o=[],c=[],l=[];null===e?l.push(t):null==s?null!=e&&i.push(t):(o.push(t),An(s,e)||c.push(t)),(i.length>0||c.length>0||l.length>0)&&this.emit("change",[{added:i,updated:c,removed:l},"local"]),this.emit("update",[{added:i,updated:o,removed:l},"local"])}setLocalStateField(e,t){const n=this.getLocalState();null!==n&&this.setLocalState({...n,[e]:t})}getStates(){return this.states}}const cc=(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:hn()})}r.push(s)}}r.length>0&&(e.emit("change",[{added:[],updated:[],removed:r},n]),e.emit("update",[{added:[],updated:[],removed:r},n]))},lc=new WeakMap;function ac(e){let n=lc.get(e);return n||(n=new t.Subject,lc.set(e,n)),n}class uc extends t.Observable{constructor(e,t,n,r,s,i,o,c){super(l=>new hc(e,t,n,r,s,c,l,i,o))}}let dc=0;class hc extends t.Subscription{constructor(e,t,n,r,s,i,o,c,l){super(()=>this.teardown()),this.id=++dc,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=c,this.webSocketStatus=l,this.connect()}teardown(){this.disconnect()}disconnect(){if(this.webSocketStatus.next("disconnected"),this.pinger&&(clearInterval(this.pinger),this.pinger=null),this.ws)try{this.ws.close()}catch(e){}this.ws=null;for(const e of this.subscriptions)e.unsubscribe();this.subscriptions.clear()}reconnect(){if(!this.reconnecting){this.reconnecting=!0;try{this.disconnect()}catch(e){}this.connect().catch(()=>{}).then(()=>this.reconnecting=!1)}}connect(){return 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 rc);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","3"),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?Rt.parse(e.data):function(e){const t=new Je(e),n=et(t);if("outdated-server-rev"===n)return{type:n};if("y-complete-sync-done"===n)return{type:n,yServerRev:et(t)};const r=et(t),s=et(t);switch(n){case"u-ack":case"u-reject":return{type:n,table:r,prop:s,i:Number(nt(t))};default:{const e=st(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:Ye(t)};case"doc-open":return{type:n,table:r,prop:s,k:e,serverRev:st(t),sv:st(t)};case"sv":return{type:n,table:r,prop:s,k:e,sv:Ye(t)};case"u-c":return{type:n,table:r,prop:s,k:e,u:Ye(t),i:Number(nt(t))};case"u-s":return{type:n,table:r,prop:s,k:e,u:Ye(t),r:t.pos<t.arr.length&&et(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=Ui.getDocCache(this.db.dx).find(t.table,t.k,t.prop);if(e){const n=(e=>sc.get(e))(e);n&&((e,t,n)=>{const r=qe(t),s=hn(),i=[],o=[],c=[],l=[],a=Xe(r);for(let t=0;t<a;t++){const t=Xe(r);let n=Xe(r);const a=JSON.parse(et(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?l.push(t):null!==a&&(An(a,d)||c.push(t),o.push(t)))}(i.length>0||c.length>0||l.length>0)&&e.emit("change",[{added:i,updated:c,removed:l},n]),(i.length>0||o.length>0||l.length>0)&&e.emit("update",[{added:i,updated:o,removed:l},n])})(n,t.u,"server")}}else if("pong"===t.type);else if("doc-open"===t.type){const e=Ui.getDocCache(this.db.dx).find(t.table,t.k,t.prop);e&&ac(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?Pi([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=_i(this.db,t.table,t.prop);if(e){const t=r[e.name];t&&(yield e.update(en,{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(Rt.stringify(e))):null===(n=this.ws)||void 0===n||n.send(function(e){const t=new we;switch(Oe(t,e.type),"table"in e&&Oe(t,e.table),"prop"in e&&Oe(t,e.prop),e.type){case"u-ack":case"u-reject":Ue(t,BigInt(e.i));break;case"outdated-server-rev":break;case"y-complete-sync-done":Oe(t,e.yServerRev);break;default:switch(Le(t,e.k),e.type){case"aware":je(t,e.u);break;case"doc-open":Le(t,e.serverRev),Le(t,e.sv);break;case"doc-close":break;case"sv":je(t,e.sv);break;case"u-c":je(t,e.u),Ue(t,BigInt(e.i));break;case"u-s":je(t,e.u),Oe(t,e.r||"")}}return ke(t)}(e)))})),this.user.isLoggedIn&&!Ko(this.db)&&this.subscriptions.add(function(n){const s=gt(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 c=n.table(o);return t.from(c.get(en)).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 tn(c,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 fc extends Error{constructor(e){super("expired"===e?"License expired":"deactivated"===e?"User deactivated":"Invalid license"),this.name="InvalidLicenseError",e&&(this.license=e)}}function pc(e){return r(this,void 0,void 0,function*(){var e;yield(e=3e3,new Promise(t=>setTimeout(t,e))),yield t.firstValueFrom(nc)})}function gc(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 Yi(e,e.cloud.options,e.cloud.schema,{justCheckIfNeeded:!0}))})}const yc=new WeakMap;function mc(e,t,n,s){const i=yc.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 mc(e,t,n,s)})}}const o=function(){return r(this,void 0,void 0,function*(){try{yield Ft(e),yield Yo(e,Gi,()=>Yi(e,t,n,s)),yc.delete(e)}catch(t){throw yc.delete(e),t}})}();return yc.set(e,{promise:o,pull:"push"!==(null==s?void 0:s.purpose)}),o}function bc(e,t,n){let r=null,s={cancelled:!1},i=0,o=0;function c(r=1){setTimeout(()=>{const d=l?"pull":"push";o=Date.now(),mc(e,t,n,{cancelToken:s,retryImmediatelyOnFetchError:!0,purpose:d}).then(()=>{if(s.cancelled)h();else if(l||a)return l=!1,a=!1,c();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]*It;i=Date.now()+e,o=0,setTimeout(()=>c(r+1),e)}else u=!1,i=0,o=0})},0)}let l=!1,a=!1,u=!1;const d=e=>{s.cancelled||("pull"===e&&(l=!0),"push"===e&&(a=!0),u?i||o>0&&Date.now():(u=!0,c()))},h=()=>{s.cancelled=!0,r&&r.unsubscribe()};return{start:()=>{r=e.localSyncEvent.subscribe(({purpose:e})=>{d(e||"pull")})},stop:h}}function vc(e,t){if(e&&t&&t.unsyncedTables)for(const n of t.unsyncedTables)e[n]&&(e[n].markedForSync=!1)}var wc,_c,kc,Sc,xc,Ec,Cc,Ac,Ic,Oc,Dc,jc={},Tc=[],Uc=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,Pc=Array.isArray;function Lc(e,t){for(var n in t)e[n]=t[n];return e}function Rc(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function $c(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?wc.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 Bc(e,o,r,s,null)}function Bc(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?++kc:s,__i:-1,__u:0};return null==s&&null!=_c.vnode&&_c.vnode(i),i}function Nc(e){return e.children}function Mc(e,t){this.props=e,this.context=t}function Fc(e,t){if(null==t)return e.__?Fc(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?Fc(e):null}function Wc(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 Wc(e)}}function zc(e){(!e.__d&&(e.__d=!0)&&Sc.push(e)&&!Kc.__r++||xc!=_c.debounceRendering)&&((xc=_c.debounceRendering)||Ec)(Kc)}function Kc(){for(var e,t,n,r,s,i,o,c=1;Sc.length;)Sc.length>c&&Sc.sort(Cc),e=Sc.shift(),c=Sc.length,e.__d&&(n=void 0,r=void 0,s=(r=(t=e).__v).__e,i=[],o=[],t.__P&&((n=Lc({},r)).__v=r.__v+1,_c.vnode&&_c.vnode(n),Qc(t.__P,n,r,t.__n,t.__P.namespaceURI,32&r.__u?[s]:null,i,null==s?Fc(r):s,!!(32&r.__u),o),n.__v=r.__v,n.__.__k[n.__i]=n,Zc(i,n,o),r.__e=r.__=null,n.__e!=s&&Wc(n)));Kc.__r=0}function Vc(e,t,n,r,s,i,o,c,l,a,u){var d,h,f,p,g,y,m,b=r&&r.__k||Tc,v=t.length;for(l=function(e,t,n,r,s){var i,o,c,l,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]=Bc(null,o,null,null,null):Pc(o)?o=e.__k[i]=Bc(Nc,{children:o},null,null,null):null==o.constructor&&o.__b>0?o=e.__k[i]=Bc(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):e.__k[i]=o,l=i+h,o.__=e,o.__b=e.__b+1,-1!=(a=o.__i=Jc(o,n,l,d))&&(d--,(c=n[a])&&(c.__u|=2)),null==c||null==c.__v?(-1==a&&(s>u?h--:s<u&&h++),"function"!=typeof o.type&&(o.__u|=4)):a!=l&&(a==l-1?h--:a==l+1?h++:(a>l?h--:h++,o.__u|=4))):e.__k[i]=null;if(d)for(i=0;i<u;i++)null!=(c=n[i])&&!(2&c.__u)&&(c.__e==r&&(r=Fc(c)),rl(c,c));return r}(n,t,b,l,v),d=0;d<v;d++)null!=(f=n.__k[d])&&(h=-1==f.__i?jc:b[f.__i]||jc,f.__i=d,y=Qc(e,f,h,s,i,o,c,l,a,u),p=f.__e,f.ref&&h.ref!=f.ref&&(h.ref&&nl(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?l=Hc(f,l,e,m):"function"==typeof f.type&&void 0!==y?l=y:p&&(l=p.nextSibling),f.__u&=-7);return n.__e=g,l}function Hc(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=Hc(s[i],t,n,r));return t}e.__e!=t&&(r&&(t&&e.type&&!t.parentNode&&(t=Fc(e)),n.insertBefore(e.__e,t||null)),t=e.__e);do{t=t&&t.nextSibling}while(null!=t&&8==t.nodeType);return t}function Jc(e,t,n,r){var s,i,o,c=e.key,l=e.type,a=t[n],u=null!=a&&!(2&a.__u);if(null===a&&null==c||u&&c==a.key&&l==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)&&c==a.key&&l==a.type)return o;return-1}function qc(e,t,n){"-"==t[0]?e.setProperty(t,null==n?"":n):e[t]=null==n?"":"number"!=typeof n||Uc.test(t)?n:n+"px"}function Gc(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||qc(e.style,t,"");if(n)for(t in n)r&&n[t]==r[t]||qc(e.style,t,n[t])}else if("o"==t[0]&&"n"==t[1])i=t!=(t=t.replace(Ac,"$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=Ic,e.addEventListener(t,i?Dc:Oc,i)):e.removeEventListener(t,i?Dc:Oc,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 Yc(e){return function(t){if(this.l){var n=this.l[t.type+e];if(null==t.t)t.t=Ic++;else if(t.t<n.u)return;return n(_c.event?_c.event(t):t)}}}function Qc(e,t,n,r,s,i,o,c,l,a){var u,d,h,f,p,g,y,m,b,v,w,_,k,S,x,E,C,A=t.type;if(null!=t.constructor)return null;128&n.__u&&(l=!!(32&n.__u),i=[c=t.__e=n.__e]),(u=_c.__b)&&u(t);e:if("function"==typeof A)try{if(m=t.props,b="prototype"in A&&A.prototype.render,v=(u=A.contextType)&&r[u.__c],w=u?v?v.props.value:u.__:r,n.__c?y=(d=t.__c=n.__c).__=d.__E:(b?t.__c=d=new A(m,w):(t.__c=d=new Mc(m,w),d.constructor=A,d.render=sl),v&&v.sub(d),d.state||(d.state={}),d.__n=r,h=d.__d=!0,d.__h=[],d._sb=[]),b&&null==d.__s&&(d.__s=d.state),b&&null!=A.getDerivedStateFromProps&&(d.__s==d.state&&(d.__s=Lc({},d.__s)),Lc(d.__s,A.getDerivedStateFromProps(m,d.__s))),f=d.props,p=d.state,d.__v=t,h)b&&null==A.getDerivedStateFromProps&&null!=d.componentWillMount&&d.componentWillMount(),b&&null!=d.componentDidMount&&d.__h.push(d.componentDidMount);else{if(b&&null==A.getDerivedStateFromProps&&m!==f&&null!=d.componentWillReceiveProps&&d.componentWillReceiveProps(m,w),t.__v==n.__v||!d.__e&&null!=d.shouldComponentUpdate&&!1===d.shouldComponentUpdate(m,d.__s,w)){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)}),_=0;_<d._sb.length;_++)d.__h.push(d._sb[_]);d._sb=[],d.__h.length&&o.push(d);break e}null!=d.componentWillUpdate&&d.componentWillUpdate(m,d.__s,w),b&&null!=d.componentDidUpdate&&d.__h.push(function(){d.componentDidUpdate(f,p,g)})}if(d.context=w,d.props=m,d.__P=e,d.__e=!1,k=_c.__r,S=0,b){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=Lc(Lc({},r),d.getChildContext())),b&&!h&&null!=d.getSnapshotBeforeUpdate&&(g=d.getSnapshotBeforeUpdate(f,p)),E=u,null!=u&&u.type===Nc&&null==u.key&&(E=el(u.props.children)),c=Vc(e,Pc(E)?E:[E],t,n,r,s,i,o,c,l,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,l||null!=i)if(e.then){for(t.__u|=l?160:128;c&&8==c.nodeType&&c.nextSibling;)c=c.nextSibling;i[i.indexOf(c)]=null,t.__e=c}else{for(C=i.length;C--;)Rc(i[C]);Xc(t)}else t.__e=n.__e,t.__k=n.__k,e.then||Xc(t);_c.__e(e,t,n)}else null==i&&t.__v==n.__v?(t.__k=n.__k,t.__e=n.__e):c=t.__e=tl(n.__e,t,n,r,s,i,o,l,a);return(u=_c.diffed)&&u(t),128&t.__u?void 0:c}function Xc(e){e&&e.__c&&(e.__c.__e=!0),e&&e.__k&&e.__k.forEach(Xc)}function Zc(e,t,n){for(var r=0;r<n.length;r++)nl(n[r],n[++r],n[++r]);_c.__c&&_c.__c(t,e),e.some(function(t){try{e=t.__h,t.__h=[],e.some(function(e){e.call(t)})}catch(e){_c.__e(e,t.__v)}})}function el(e){return"object"!=typeof e||null==e||e.__b&&e.__b>0?e:Pc(e)?e.map(el):Lc({},e)}function tl(e,t,n,r,s,i,o,c,l){var a,u,d,h,f,p,g,y=n.props||jc,m=t.props,b=t.type;if("svg"==b?s="http://www.w3.org/2000/svg":"math"==b?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==!!b&&(b?f.localName==b:3==f.nodeType)){e=f,i[a]=null;break}if(null==e){if(null==b)return document.createTextNode(m);e=document.createElementNS(s,b,m.is&&m),c&&(_c.__m&&_c.__m(t,i),c=!1),i=null}if(null==b)y===m||c&&e.data==m||(e.data=m);else{if(i=i&&wc.call(e.childNodes),!c&&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;Gc(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:c&&"function"!=typeof f||y[a]===f||Gc(e,a,f,y[a],s);if(u)c||d&&(u.__html==d.__html||u.__html==e.innerHTML)||(e.innerHTML=u.__html),t.__k=[];else if(d&&(e.innerHTML=""),Vc("template"==t.type?e.content:e,Pc(h)?h:[h],t,n,r,"foreignObject"==b?"http://www.w3.org/1999/xhtml":s,i,o,i?i[0]:n.__k&&Fc(n,0),c,l),null!=i)for(a=i.length;a--;)Rc(i[a]);c||(a="value","progress"==b&&null==p?e.removeAttribute("value"):null!=p&&(p!==e[a]||"progress"==b&&!p||"option"==b&&p!=y[a])&&Gc(e,a,p,y[a],s),a="checked",null!=g&&g!=e[a]&&Gc(e,a,g,y[a],s))}return e}function nl(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){_c.__e(e,n)}}function rl(e,t,n){var r,s;if(_c.unmount&&_c.unmount(e),(r=e.ref)&&(r.current&&r.current!=e.__e||nl(r,null,t)),null!=(r=e.__c)){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(e){_c.__e(e,t)}r.base=r.__P=null}if(r=e.__k)for(s=0;s<r.length;s++)r[s]&&rl(r[s],t,n||"function"!=typeof e.type);n||Rc(e.__e),e.__c=e.__=e.__e=void 0}function sl(e,t,n){return this.constructor(e,n)}function il(e,t,n){var r,s,i;t==document&&(t=document.documentElement),_c.__&&_c.__(e,t),r=!1?null:t.__k,s=[],i=[],Qc(t,e=t.__k=$c(Nc,null,[e]),r||jc,jc,t.namespaceURI,r?null:t.firstChild?wc.call(t.childNodes):null,s,r?r.__e:t.firstChild,false,i),Zc(s,e,i)}wc=Tc.slice,_c={__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}},kc=0,Mc.prototype.setState=function(e,t){var n;n=null!=this.__s&&this.__s!=this.state?this.__s:this.__s=Lc({},this.state),"function"==typeof e&&(e=e(Lc({},n),this.props)),e&&Lc(n,e),null!=e&&this.__v&&(t&&this._sb.push(t),zc(this))},Mc.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),zc(this))},Mc.prototype.render=Nc,Sc=[],Ec="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,Cc=function(e,t){return e.__v.__b-t.__v.__b},Kc.__r=0,Ac=/(PointerCapture)$|Capture$/i,Ic=0,Oc=Yc(!1),Dc=Yc(!0);const ol={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"},ProviderButton:{display:"flex",alignItems:"center",justifyContent:"center",width:"100%",padding:"12px 16px",marginBottom:"10px",border:"1px solid #d1d5db",borderRadius:"6px",backgroundColor:"#ffffff",cursor:"pointer",fontSize:"14px",fontWeight:"500",color:"#374151",transition:"all 0.2s ease",gap:"12px"},ProviderButtonIcon:{width:"20px",height:"20px",flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center"},ProviderButtonText:{flex:1,textAlign:"left"},ProviderGoogle:{backgroundColor:"#ffffff",border:"1px solid #dadce0",color:"#3c4043"},ProviderGitHub:{backgroundColor:"#ffffff",border:"1px solid #dadce0",color:"#181717"},ProviderMicrosoft:{backgroundColor:"#ffffff",border:"1px solid #dadce0",color:"#5e5e5e"},ProviderApple:{backgroundColor:"#000000",border:"1px solid #000000",color:"#ffffff"},ProviderCustom:{backgroundColor:"#ffffff",border:"1px solid #dadce0",color:"#181717"},Divider:{display:"flex",alignItems:"center",margin:"20px 0",color:"#6b7280",fontSize:"13px"},DividerLine:{flex:1,height:"1px",backgroundColor:"#e5e7eb"},DividerText:{padding:"0 12px",color:"#9ca3af"},OtpButton:{display:"flex",alignItems:"center",justifyContent:"center",width:"100%",padding:"12px 16px",border:"1px solid #d1d5db",borderRadius:"6px",backgroundColor:"#f9fafb",cursor:"pointer",fontSize:"14px",fontWeight:"500",color:"#374151",transition:"all 0.2s ease",gap:"12px"},CopyButton:{display:"inline-flex",alignItems:"center",gap:"4px",padding:"4px 10px",marginTop:"8px",border:"1px solid #d1d5db",borderRadius:"4px",backgroundColor:"#f9fafb",cursor:"pointer",fontSize:"12px",fontWeight:"500",color:"#374151",transition:"all 0.15s ease",fontFamily:"monospace"},CopyButtonCopied:{display:"inline-flex",alignItems:"center",gap:"4px",padding:"4px 10px",marginTop:"8px",border:"1px solid #22c55e",borderRadius:"4px",backgroundColor:"#f0fdf4",cursor:"default",fontSize:"12px",fontWeight:"500",color:"#16a34a",fontFamily:"monospace"}};function cl({children:e,className:t}){return $c("div",{className:`dexie-dialog ${t||""}`},$c("div",{style:ol.Darken}),$c("div",{style:ol.DialogOuter},$c("div",{style:ol.DialogInner},e)))}var ll,al,ul,dl,hl=0,fl=[],pl=_c,gl=pl.__b,yl=pl.__r,ml=pl.diffed,bl=pl.__c,vl=pl.unmount,wl=pl.__;function _l(e,t){pl.__h&&pl.__h(al,e,hl||t),hl=0;var n=al.__H||(al.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({}),n.__[e]}function kl(e){return hl=1,function(e,t){var n=_l(ll++,2);if(n.t=e,!n.__c&&(n.__=[jl(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=al,!al.__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};al.__f=!0;var s=al.shouldComponentUpdate,i=al.componentWillUpdate;al.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)},al.shouldComponentUpdate=r}return n.__N||n.__}(jl,e)}function Sl(e,t){var n=_l(ll++,4);!pl.__s&&Dl(n.__H,t)&&(n.__=e,n.u=t,al.__h.push(n))}function xl(e){return hl=5,function(e,t){var n=_l(ll++,7);return Dl(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}(function(){return{current:e}},[])}function El(){for(var e;e=fl.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(Il),e.__H.__h.forEach(Ol),e.__H.__h=[]}catch(t){e.__H.__h=[],pl.__e(t,e.__v)}}pl.__b=function(e){al=null,gl&&gl(e)},pl.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),wl&&wl(e,t)},pl.__r=function(e){yl&&yl(e),ll=0;var t=(al=e.__c).__H;t&&(ul===al?(t.__h=[],al.__h=[],t.__.forEach(function(e){e.__N&&(e.__=e.__N),e.u=e.__N=void 0})):(t.__h.forEach(Il),t.__h.forEach(Ol),t.__h=[],ll=0)),ul=al},pl.diffed=function(e){ml&&ml(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(1!==fl.push(t)&&dl===pl.requestAnimationFrame||((dl=pl.requestAnimationFrame)||Al)(El)),t.__H.__.forEach(function(e){e.u&&(e.__H=e.u),e.u=void 0})),ul=al=null},pl.__c=function(e,t){t.some(function(e){try{e.__h.forEach(Il),e.__h=e.__h.filter(function(e){return!e.__||Ol(e)})}catch(n){t.some(function(e){e.__h&&(e.__h=[])}),t=[],pl.__e(n,e.__v)}}),bl&&bl(e,t)},pl.unmount=function(e){vl&&vl(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.forEach(function(e){try{Il(e)}catch(e){t=e}}),n.__H=void 0,t&&pl.__e(t,n.__v))};var Cl="function"==typeof requestAnimationFrame;function Al(e){var t,n=function(){clearTimeout(r),Cl&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,35);Cl&&(t=requestAnimationFrame(n))}function Il(e){var t=al,n=e.__c;"function"==typeof n&&(e.__c=void 0,n()),al=t}function Ol(e){var t=al;e.__c=e.__(),al=t}function Dl(e,t){return!e||e.length!==t.length||t.some(function(t,n){return t!==e[n]})}function jl(e,t){return"function"==typeof t?t(e):t}function Tl({option:e,onClick:t}){const{displayName:n,iconUrl:r,styleHint:s}=e,i=function(e){const t=Object.assign({},ol.ProviderButton);if(!e)return t;switch(e){case"google":return Object.assign(Object.assign({},t),ol.ProviderGoogle);case"github":return Object.assign(Object.assign({},t),ol.ProviderGitHub);case"microsoft":return Object.assign(Object.assign({},t),ol.ProviderMicrosoft);case"apple":return Object.assign(Object.assign({},t),ol.ProviderApple);case"otp":return Object.assign({},ol.OtpButton);case"custom-oauth2":return Object.assign(Object.assign({},t),ol.ProviderCustom);default:return t}}(s);return $c("button",{type:"button",style:i,onClick:t,class:"dxc-option-btn"+(s?` dxc-option-${s}`:""),"aria-label":n},r&&$c("img",{src:r,alt:"",style:ol.ProviderButtonIcon,"aria-hidden":"true"}),$c("span",{style:ol.ProviderButtonText},n))}function Ul(){return $c("div",{style:ol.Divider},$c("div",{style:ol.DividerLine}),$c("span",{style:ol.DividerText},"or"),$c("div",{style:ol.DividerLine}))}function Pl({title:e,alerts:t,fields:n,options:r,submitLabel:s,cancelLabel:i,onCancel:o,onSubmit:c}){const[l,a]=kl({}),u=xl(null);Sl(()=>{var e;return null===(e=u.current)||void 0===e?void 0:e.focus()},[]);const d=Object.entries(n||{}),h=d.length>0,f=r&&r.length>0,p=new Map;if(r)for(const e of r){const t=p.get(e.name)||[];t.push(e),p.set(e.name,t)}const g=p.size>1,y=e=>{c({[e.name]:e.value})};return $c(cl,{className:"dxc-login-dlg"},$c(Nc,null,$c("h3",{style:ol.WindowHeader},e),t.map((e,t)=>$c("div",{key:t},$c("p",{style:ol.Alert[e.type]},function({message:e,messageCode:t,messageParams:n}){return e.replace(/\{\w+\}/gi,e=>n[e.substring(1,e.length-1)])}(e)),e.copyText&&$c(Ll,{text:e.copyText}))),f&&$c("div",{class:"dxc-options"},g?Array.from(p.entries()).map(([e,t],n)=>$c(Nc,{key:e},n>0&&$c(Ul,null),t.map(e=>$c(Tl,{key:`${e.name}-${e.value}`,option:e,onClick:()=>y(e)})))):r.map(e=>$c(Tl,{key:`${e.name}-${e.value}`,option:e,onClick:()=>y(e)}))),f&&h&&$c(Ul,null),h&&$c("form",{onSubmit:e=>{e.preventDefault(),c(l)}},d.map(([e,{type:t,label:n,placeholder:r}],s)=>$c("label",{style:ol.Label,key:s},n?`${n}: `:"",$c("input",{ref:0===s?u:void 0,type:t,name:e,autoComplete:"on",style:ol.Input,autoFocus:!0,placeholder:r,value:l[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({},l),{[e]:s});a(i),"otp"===t&&8===(null==s?void 0:s.trim().length)&&c(i)}}))))),$c("div",{style:ol.ButtonsDiv},$c(Nc,null,s&&(h||!f&&!h)&&$c("button",{type:"submit",style:ol.PrimaryButton,onClick:()=>c(l)},s),i&&$c("button",{style:ol.Button,onClick:o},i))))}function Ll({text:e}){const[t,n]=kl(!1),r=xl(null);Sl(()=>()=>{null!==r.current&&clearTimeout(r.current)},[]);const s=()=>{null!==r.current&&clearTimeout(r.current),n(!0),r.current=setTimeout(()=>{r.current=null,n(!1)},2e3)};return $c("button",{type:"button",style:t?ol.CopyButtonCopied:ol.CopyButton,onClick:()=>{var t;"undefined"!=typeof navigator&&(null===(t=navigator.clipboard)||void 0===t?void 0:t.writeText)?navigator.clipboard.writeText(e).then(s).catch(()=>{Rl(e,s)}):Rl(e,s)},title:"Copy to clipboard"},t?"✓ Copied!":`📋 ${e}`)}function Rl(e,t){const n=document.createElement("textarea");n.value=e,n.style.position="fixed",n.style.opacity="0",document.body.appendChild(n),n.select();const r=document.execCommand("copy");document.body.removeChild(n),r&&t()}class $l extends Mc{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?$c(Pl,Object.assign({},t)):null}}function Bl(e){const t=new WeakMap;return n=>{let r=t.get(n);return r||(r=e(n),t.set(n,r)),r}}const Nl=Bl(e=>new t.BehaviorSubject(Object.assign(Object.assign({},l),{isLoading:!0})));function Ml(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 Fl=Bl(t=>Ml(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})),{})),Wl=Bl(t=>Ml(Nl(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 Kl=Bl(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}(Ml(t.combineLatest([Wl(e._novip),Fl(e._novip)]).pipe(n.map(([{selfMembers:e,realms:t,userId:n},r])=>({selfMembers:e,realms:t,userId:n,globalRoles:r}))),{selfMembers:[],realms:[],userId:l.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=gt(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 Vl{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 Hl=Bl(s=>{const i=Nl(s._novip).pipe(n.switchMap(t=>e.liveQuery(()=>s.members.where({email:t.email||""}).toArray()))),o=Kl(s._novip),c=Wl(s._novip);return Ml(t.combineLatest([i,c,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,{}),c=t.selfMembers.reduce(i,o);return Object.values(c).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 Jl(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:c}=o.meta||{};if(!(null===(i=n.cloud.schema)||void 0===i?void 0:i[c].markedForSync))return;let l;Object.defineProperty(s,"awareness",{get:()=>l||(l=function(n,s,i){const{parentTable:o,parentId:c,parentProp:l,updatesTable:a}=s.meta,u=new oc(s),d=ac(s);return u.on("update",({added:e,updated:t,removed:r},c)=>{const a=e.concat(t).concat(r),d=n.cloud.currentUser.value;if("server"!==c&&d.isLoggedIn&&!Ko(n)){const e=((e,t,n=e.states)=>{const r=t.length,s=_e();Ee(s,r);for(let i=0;i<r;i++){const r=t[i],o=n.get(r)||null,c=e.meta.get(r).clock;Ee(s,r),Ee(s,c),Oe(s,JSON.stringify(o))}return ke(s)})(u,a);n.messageProducer.next({type:"aware",table:o,prop:l,k:s.meta.parentId,u:e}),i.destroyed&&n.messageProducer.next({type:"doc-close",table:o,prop:l,k:s.meta.parentId})}}),u.on("destroy",()=>{cc(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&&!Ko(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(en),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:l,k:c,serverRev:p},y=yield d.where("i").between(f,1/0,!1).filter(t=>0===e.cmp(t.k,c)&&!(1&(t.f||0))).toArray();if(!i.destroyed&&u===t&&s){if(y.length>0){const e=Kr(y.map(e=>e.u)),t=Wr(e);g.sv=t}n.messageProducer.next(g)}})}i.addCleanupHandler(h)})})(),u}(n,o,s),sc.set(o,l),l)})}}function ql(e){const t="undefined"!=typeof window?window.location.href:"";if(!t)return null;const n=new URL(t).searchParams.get("dxc-auth");if(!n)return null;let r;try{const e=function(e){const t=(e+"=".repeat((4-e.length%4)%4)).replace(/-/g,"+").replace(/_/g,"/");return atob(t)}(n);r=JSON.parse(e)}catch(e){return null}const{code:s,provider:i,state:o,error:c}=r;if(c){if(c.toLowerCase().includes("access_denied")||c.toLowerCase().includes("access denied"))throw new yo("access_denied",i,c);if(c.toLowerCase().includes("email")&&c.toLowerCase().includes("verif"))throw new yo("email_not_verified",i,c);throw new yo("provider_error",i,c)}return s&&i&&o?{code:s,provider:i,state:o}:null}function Gl(){var e;if("undefined"==typeof window||!(null===(e=window.history)||void 0===e?void 0:e.replaceState))return;const t=new URL(window.location.href);if(!t.searchParams.has("dxc-auth"))return;t.searchParams.delete("dxc-auth");const n=t.pathname+(t.searchParams.toString()?`?${t.searchParams.toString()}`:"")+t.hash;window.history.replaceState(null,"",n)}const Yl={nameSuffix:!0};function Ql(s){const i=s.name,o=Nl(s),c=[];let a=!1,u=null,d=null,h=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,l,v,w,_,k,S,x,E;f=!1;const C=so(s);"undefined"!=typeof window&&"undefined"!=typeof document&&((null===(i=C.cloud.options)||void 0===i?void 0:i.customLoginGui)||c.push(function(e){let t=!1;const n=document.createElement("div");return document.body?(document.body.appendChild(n),il($c($l,{db:e.vip}),n)):addEventListener("DOMContentLoaded",()=>{t||(document.body.appendChild(n),il($c($l,{db:e.vip}),n))}),{unsubscribe(){try{n.remove()}catch(e){}t=!0},get closed(){return t}}}(s))),C.cloud.isServiceWorkerDB||c.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 Qo.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"})),Nl(e.dx._novip),Xo]).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:c,progress:l}=n,a=t;return"error"===o&&(a="error"),"not-started"===t&&("pushing"!==o&&"pulling"!==o||(a="connecting")),"error"!==e.cloud.syncState.value.phase||"pushing"!==n.phase&&"pulling"!==n.phase||(a="connecting"),s||(a="disconnected"),{phase:o,error:c,progress:l,status:Kt?a:"offline",license:"ok"}}))}(C).subscribe(s.cloud.syncState)),c.push(C.syncCompleteEvent.subscribe(m));if("eager"===(null!==(v=null===(l=C.cloud.options)||void 0===l?void 0:l.blobMode)&&void 0!==v?v:"eager")){let t=null;const n=()=>{t||(t=e.ignoreTransaction(()=>function(t,n,s){return r(this,void 0,void 0,function*(){var i;const o=e=>{},c=dt(t);let l=!1;for(const e of c)try{if(!e.schema.idxByName._hasBlobRefs)continue;if((yield e.where("_hasBlobRefs").equals(1).count())>0){l=!0;break}}catch(e){}if(l){oo(n,!0);try{c.length,c.map(e=>e.name).join(", ");for(const n of c){null==s||s.aborted;try{if(!n.schema.indexes.some(e=>"_hasBlobRefs"===e.name))continue;const c=yield n.where("_hasBlobRefs").equals(1).toArray();o((n.name,c.length));const l=null===(i=t.cloud.options)||void 0===i?void 0:i.databaseUrl;if(!l)throw new Error("Database URL is required to download blobs");const a=6,u=n.schema.primKey,d=c.filter(t=>!!Qt(t)&&void 0!==(u.keyPath?e.getByKeyPath(t,u.keyPath):void 0));let h=0;const f=()=>r(this,void 0,void 0,function*(){for(;h<d.length;){null==s||s.aborted;const r=d[h++],i=e.getByKeyPath(r,u.keyPath);try{const e=[];yield Yt(r,l,e,"",new WeakMap,t.blobDownloadTracker);const s={_hasBlobRefs:void 0};for(const t of e)s[t.keyPath]=t.data;o((n.name,e.length)),yield n.update(i,s)}catch(e){}}}),p=[];for(let e=0;e<Math.min(a,d.length);e++)p.push(f());yield Promise.all(p)}catch(e){}}}finally{oo(n,!1)}}})}(C,b)).catch(e=>{}).finally(()=>{t=null}))};setTimeout(n,0),c.push(C.syncCompleteEvent.subscribe(n))}C.tables.every(e=>e.core)||function(){throw new e.SchemaError("Version increment needed to allow dexie-cloud change tracking")}();const A="serviceWorker"in navigator?yield navigator.serviceWorker.getRegistrations():[],[I,O]=yield C.transaction("rw",C.$syncState,()=>r(this,void 0,void 0,function*(){var e,t;const{options:n,schema:r}=C.cloud,[s,i,o]=yield Promise.all([C.getOptions(),C.getSchema(),C.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 C.$syncState.put(e,"options")}}else C.cloud.options=s||null;if((null===(e=C.cloud.options)||void 0===e?void 0:e.tryUseServiceWorker)&&"serviceWorker"in navigator&&A.length>0&&!Oo?C.cloud.usingServiceWorker=!0:((null===(t=C.cloud.options)||void 0===t?void 0:t.tryUseServiceWorker)&&C.cloud.isServiceWorkerDB,C.cloud.usingServiceWorker=!1),vc(r,C.cloud.options),vc(i,C.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 C.$syncState.put(e,"schema"),Object.assign(r,e)}}else C.cloud.schema=i||null;return[null==o?void 0:o.initiallySynced,null==o?void 0:o.realms]}));if(I&&C.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`)}}(C),p(),!C.cloud.isServiceWorkerDB){c.push(e.liveQuery(()=>C.getCurrentUser().then(e=>!e.isLoggedIn&&"undefined"!=typeof location&&/dxc-auth\=/.test(location.search)?Object.assign(Object.assign({},e),{isLoading:!0}):e)).subscribe(o)),c.push(e.liveQuery(()=>C.getPersistedSyncState()).subscribe(C.cloud.persistedSyncState)),yield t.firstValueFrom(t.combineLatest([o.pipe(n.skip(1),n.take(1)),C.cloud.persistedSyncState.pipe(n.skip(1),n.take(1))]));const r=Jl(C);Ui.on.new.subscribe(r),C.dx.once("close",()=>{Ui.on.new.unsubscribe(r)})}let D=!1,j=yield C.getCurrentUser();if(d&&!C.cloud.isServiceWorkerDB){const e=d;d=null;try{yield kt(C.cloud.userInteraction,"Authentication Error",{type:"error",messageCode:"GENERIC_ERROR",message:e.message,messageParams:{provider:e.provider||"unknown"}}),Gl()}catch(e){}}if(u&&!C.cloud.isServiceWorkerDB){const{code:e,provider:t}=u;u=null;try{D=yield Eo(C,{oauthCode:e,provider:t}),j=yield C.getCurrentUser(),Gl()}catch(e){}}const T=null===(w=C.cloud.options)||void 0===w?void 0:w.requireAuth;T&&(C.cloud.isServiceWorkerDB?yield t.firstValueFrom(o.pipe(n.filter(e=>!!e.isLoggedIn),n.take(1))):"object"==typeof T?(!j.isLoggedIn||T.userId&&j.userId!==T.userId||T.email&&j.email!==T.email)&&(D=yield Eo(C,T)):j.isLoggedIn||(D=yield Eo(C))),!j.isLoggedIn||O&&O.includes(j.userId)||(D=!0),h&&h.stop(),h=null,p();const U=(null===(_=C.cloud.options)||void 0===_?void 0:_.databaseUrl)&&(!I||D);U&&(yield function(e,t,n){return r(this,void 0,void 0,function*(){yield Yo(e,Gi,()=>Yi(e,t,n,{isInitialSync:!0}))})}(C,C.cloud.options,C.cloud.schema),C.setInitiallySynced(!0)),p(),C.cloud.usingServiceWorker&&(null===(k=C.cloud.options)||void 0===k?void 0:k.databaseUrl)?(U||g(C,"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){}})}(C).catch(()=>{})):(null===(S=C.cloud.options)||void 0===S?void 0:S.databaseUrl)&&C.cloud.schema&&!C.cloud.isServiceWorkerDB&&(h=bc(C,C.cloud.options,C.cloud.schema),h.start(),U||y(C,"push")),p(),C.cloud.isServiceWorkerDB||c.push(t.fromEvent(self,"online").subscribe(()=>{C.syncStateChangedEvent.next({phase:"not-in-sync"}),Ko(C)||y(C,"push")}),t.fromEvent(self,"offline").subscribe(()=>{C.syncStateChangedEvent.next({phase:"offline"})})),!(null===(x=C.cloud.options)||void 0===x?void 0:x.databaseUrl)||(null===(E=C.cloud.options)||void 0===E?void 0:E.disableWebSocket)||Do||c.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 ut(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])=>Xo.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 ut(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 uc(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 jt(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 fc?t.throwError(()=>r):t.from(pc()).pipe(n.switchMap(()=>s())))))}().subscribe({next:t=>{t&&e.messageConsumer.enqueue(t)},error:e=>{},complete:()=>{}})}(C))})}(s)}catch(e){}}),!0);let f=!1;function p(){if(f)throw new e.DatabaseClosedError}s.once("close",()=>{c.forEach(e=>e.unsubscribe()),c.splice(0,c.length),f=!0,h&&h.stop(),h=null,o.next(l)});const m=new t.Subject,b=new t.BehaviorSubject(!1);var v;s.cloud={version:"4.4.4",options:Object.assign({},Yl),schema:null,get currentUserId(){return o.value.userId||l.userId},currentUser:o,syncState:new t.BehaviorSubject({phase:"initial",status:"not-started"}),events:{syncComplete:m},persistedSyncState:new t.BehaviorSubject(void 0),blobProgress:co(so(s),b),userInteraction:new t.BehaviorSubject(void 0),webSocketStatus:new t.BehaviorSubject("not-started"),login(e){return r(this,void 0,void 0,function*(){const t=so(s);yield t.cloud.sync(),yield Eo(t,e)})},invites:Hl(s),roles:Fl(s),configure(e){if(void 0!==e.maxStringLength&&e.maxStringLength!==1/0&&(!Number.isFinite(e.maxStringLength)||e.maxStringLength<100||e.maxStringLength>32768))throw new Error(`maxStringLength must be Infinity or a finite number in [100, 32768]. Got: ${e.maxStringLength}`);if(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)}`,so(s).reconfigure()),vc(s.cloud.schema,s.cloud.options),"undefined"!=typeof window&&window.location)try{const e=ql();e&&(u={code:e.code,provider:e.provider})}catch(e){e instanceof yo&&(d=e)}},logout(){return r(this,arguments,void 0,function*({force:e}={}){e?yield po(so(s),{deleteUnsyncedData:!0}):yield fo(so(s))})},getAuthProviders(){return r(this,void 0,void 0,function*(){const e=s.cloud.options;if(!(null==e?void 0:e.databaseUrl))throw new Error("Dexie Cloud not configured. Call db.cloud.configure() first.");const t=!1!==e.socialAuth;return bo(e.databaseUrl,t)})},sync(){return r(this,arguments,void 0,function*({wait:i,purpose:o}={wait:!0,purpose:"push"}){var c;void 0===i&&(i=!0);const l=so(s);if("ok"!==((null===(c=l.cloud.currentUser.value.license)||void 0===c?void 0:c.status)||"ok")&&(yield Ot(l)),"pull"===o){const e=l.cloud.persistedSyncState.value;if(y(l,o),i){const r=yield t.firstValueFrom(l.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 gc(l)){const s=l.cloud.persistedSyncState.value;y(l,o),i&&(yield t.firstValueFrom(t.from(e.liveQuery(()=>r(this,void 0,void 0,function*(){const e=yield gc(l),t=yield l.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=Kl(e),c=t=>{const n=t[i||e.cloud.currentUserId];return n?new Vl(n.permissions,r,void 0===i||i===e.cloud.currentUserId||s===e.cloud.currentUserId):new Vl({},r,!s||s===e.cloud.currentUserId)},l=o.pipe(n.map(c));return l.getValue=()=>c(o.getValue()),l}(s._novip,e,t)},s.Version.prototype._parseStoresSpec=e.override(s.Version.prototype._parseStoresSpec,e=>Go(e,s)),s.Table.prototype.newId=function({colocateWith:e}={}){const t=e&&e.substr(e.length-3);return Bo(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(Jo(so(s))),s.use(Vo({currentUserObservable:s.cloud.currentUser,db:so(s)})),s.use((v=so(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,c,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:l.userId;if((null===(o=null===(i=v.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=(c=n.schema.primaryKey).extractKey)||void 0===a?void 0:a.call(c,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(so(s)))}Ql.version="4.4.4",e.Cloud=Ql;const Xl=new Map;function Zl(e){return e.startsWith("dexie-cloud:")&&e.split(":")[1]}const ea=new Map;function ta(t,n){let s=ea.get(t+"/"+n);return s||(s=function t(n,s){return r(this,void 0,void 0,function*(){var r;let i=Xl.get(n);if(!i){const r=new e(n,{addons:[Ql]});if(i=so(r),i.cloud.isServiceWorkerDB=!0,r.on("versionchange",o),yield i.dx.open(),Xl.get(n))return i.close(),yield t(n,s);Xl.set(n,i)}if((null===(r=i.cloud.options)||void 0===r?void 0:r.databaseUrl)&&i.cloud.schema)try{yield mc(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),Xl.get(i.name)===i&&Xl.delete(i.name),i.dx.close(),!1}})}(t,n).then(()=>{ea.delete(t+"/"+n)}).catch(e=>(ea.delete(t+"/"+n),Promise.reject(e))),ea.set(t+"/"+n,s)),s}Oo||(self.addEventListener("sync",e=>{const t=Zl(e.tag);t&&e.waitUntil(ta(t,"push"))}),self.addEventListener("periodicsync",e=>{const t=Zl(e.tag);t&&e.waitUntil(ta(t,"pull"))}),self.addEventListener("message",e=>{if("dexie-cloud-sync"===e.data.type){const{dbName:t}=e.data,n=(s=1)=>ta(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{l(r.next(e))}catch(e){i(e)}}function c(e){try{l(r.throw(e))}catch(e){i(e)}}function l(e){var t;e.done?s(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,c)}l((r=r.apply(e,t||[])).next())})}function s(e){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),c("next"),c("throw"),c("return",function(e){return function(t){return Promise.resolve(t).then(e,u)}}),r[Symbol.asyncIterator]=function(){return this},r;function c(e,t){s[e]&&(r[e]=function(t){return new Promise(function(n,r){o.push([e,t,n,r])>1||l(e,t)})},t&&(r[e]=t(r[e])))}function l(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){l("next",e)}function u(e){l("throw",e)}function d(e,t){e(t),o.shift(),o.length&&l(o[0][0],o[0][1])}}function c(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 l={userId:"unauthorized",name:"Unauthorized",claims:{sub:"unauthorized"},lastLogin:new Date(0)};try{Object.freeze(l),Object.freeze(l.claims)}catch(w){}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{toString:m}={};const b={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}};class v{constructor(e,t){this.buf=e,this.type=t}}var w;const _=Symbol.for("TSONRef");class k{constructor(e,t,n,r){this.type=e,this.ref=t,this.size=n,this.contentType=r,this[w]=!0,Object.freeze(this)}async resolve(){if(!k.resolver)throw new Error("TSONRef.resolver not configured. Set TSONRef.resolver to a function that fetches blobs.");const e=await k.resolver(this);return this.reconstruct(e)}reconstruct(e){const t=(t,n)=>{if(e.byteLength%t!==0)throw new RangeError(`Buffer length ${e.byteLength} is not aligned to ${t} bytes for ${n}`)};switch(this.type){case"ArrayBuffer":default:return e;case"Uint8Array":return new Uint8Array(e);case"Blob":return new Blob([e],{type:this.contentType});case"Int8Array":return new Int8Array(e);case"Uint8ClampedArray":return new Uint8ClampedArray(e);case"Int16Array":return t(2,"Int16Array"),new Int16Array(e);case"Uint16Array":return t(2,"Uint16Array"),new Uint16Array(e);case"Int32Array":return t(4,"Int32Array"),new Int32Array(e);case"Uint32Array":return t(4,"Uint32Array"),new Uint32Array(e);case"Float32Array":return t(4,"Float32Array"),new Float32Array(e);case"Float64Array":return t(8,"Float64Array"),new Float64Array(e);case"BigInt64Array":return t(8,"BigInt64Array"),new BigInt64Array(e);case"BigUint64Array":return t(8,"BigUint64Array"),new BigUint64Array(e)}}static isTSONRef(e){return null!==e&&"object"==typeof e&&_ in e&&!0===e[_]}static isTSONRefData(e){return null!==e&&"object"==typeof e&&"$ref"in e&&"$t"in e&&"$size"in e}static fromData(e){return new k(e.$t,e.$ref,e.$size,e.$ct)}toJSON(){const e={$t:this.type,$ref:this.ref,$size:this.size};return this.contentType&&(e.$ct=this.contentType),e}}function S(e){const t=new XMLHttpRequest;t.overrideMimeType("text/plain; charset=x-user-defined");const n=URL.createObjectURL(e);try{if(t.open("GET",n,!1),t.send(),200!==t.status&&0!==t.status)throw new Error("Bad Blob access: "+t.status);return t.responseText}finally{URL.revokeObjectURL(n)}}w=_,k.TYPE_SYMBOL=_,k.resolver=null;const x={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)}},E={Date:{replace:e=>({$t:"Date",v:isNaN(e.getTime())?"NaN":e.toISOString()}),revive:({v:e})=>new Date("NaN"===e?NaN:Date.parse(e))}},C={Set:{replace:e=>({$t:"Set",v:Array.from(e)}),revive:({v:e})=>new Set(e)}},A={Map:{replace:e=>({$t:"Map",v:Array.from(e.entries())}),revive:({v:e})=>new Map(e)}},I="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof global?global:void 0,O=["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","DataView","BigInt64Array","BigUint64Array"].reduce((e,t)=>({...e,[t]:{replace:(e,n,r)=>{const s=e.buffer,i=0===e.byteOffset&&e.byteLength===s.byteLength?s:s.slice(e.byteOffset,e.byteOffset+e.byteLength);return{$t:t,v:r.ArrayBuffer.replace(i,n,r).v}},revive:({v:e},n,r)=>{const s=I[t];return s&&new s(r.ArrayBuffer.revive({v:e},n,r))}}}),{}),D="fromBase64"in Uint8Array,j="toBase64"in Uint8Array.prototype,T="undefined"!=typeof Buffer?e=>Buffer.from(e,"base64"):D?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},U="undefined"!=typeof Buffer?e=>ArrayBuffer.isView(e)?Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("base64"):Buffer.from(e).toString("base64"):j?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,Array.from(r)))}return btoa(n.join(""))};function P(e){return function(e){for(var t="",n=0,r=e.length;n<r;n++)t+=$[e[n]];return t}(U(e))}function L(e){return T(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+=R[e[n]];return t}(e))}const R={"-":"=",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:"+","|":"/"},$={};for(const e of Object.keys(R))$[R[e]]=e;const B={ArrayBuffer:{replace:e=>({$t:"ArrayBuffer",v:P(e)}),revive:({v:e})=>{const t=L(e);return t.buffer.byteLength===t.byteLength?t.buffer:t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}}};function N(e){const t=new Uint8Array(e.length);for(let n=0;n<e.length;++n)t[n]=e.charCodeAt(n);return t.buffer}const M={Blob:{test:(e,t)=>"Blob"===t||e instanceof v,replace:e=>({$t:"Blob",v:U(e instanceof v?e.buf:N(S(e))),type:e.type}),revive:({type:e,v:t})=>{const n=T(t),r=n.buffer.byteLength===n.byteLength?n.buffer:n.buffer.slice(n.byteOffset,n.byteOffset+n.byteLength);return"undefined"!=typeof Blob?new Blob([new Uint8Array(r)],{type:e}):new v(r,e)}}},F={File:{test:(e,t)=>"File"===t,replace:e=>({$t:"File",v:U(N(S(e))),type:e.type,name:e.name,lastModified:new Date(e.lastModified).toISOString()}),revive:({type:e,v:t,name:n,lastModified:r})=>{const s=T(t),i=s.buffer.byteLength===s.byteLength?s.buffer:s.buffer.slice(s.byteOffset,s.byteOffset+s.byteLength);return new File([new Uint8Array(i)],n,{type:e,lastModified:new Date(r).getTime()})}}},W={undefined:{replace:()=>({$t:"undefined"}),revive:()=>{}}},z="undefined"!=typeof crypto?crypto.getRandomValues.bind(crypto):e=>{for(let t=0;t<e.length;++t)e[t]=Math.floor(256*Math.random())};let K=0;const V={}.hasOwnProperty;function H(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)H(e,t[r],n[r])}else{var i=t.indexOf(".");if(-1!==i){var o=t.substr(0,i),c=t.substr(i+1);if(""===c)void 0===n?Array.isArray(e)?isNaN(parseInt(o))||e.splice(parseInt(o),1):delete e[o]:e[o]=n;else{var l=e[o];l&&function(e,t){return V.call(e,t)}(e,o)||(l=e[o]={}),H(l,c,n)}}else void 0===n?Array.isArray(e)&&!isNaN(parseInt(t))?e.splice(t,1):delete e[t]:e[t]=n}}const J="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=q)=>{const n=Buffer.alloc(e);return t(n),n.toString("base64")}:()=>{throw new Error("No implementation of randomString was found")};function q(e){for(let t=0;t<e.length;++t)e[t]=Math.floor(256*Math.random())}function G(e){return"string"==typeof e||!!(Array.isArray(e)&&e.some(e=>G(e))&&e.every(Y))}function Y(e){return"string"==typeof e||"number"==typeof e||Array.isArray(e)&&e.every(Y)}function Q(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))H(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 X(e,t){for(const{table:n,muts:r}of t)for(const t of r)Q(e,n,t)}const Z=Math.floor,ee=Math.abs,te=(e,t)=>e<t?e:t,ne=(e,t)=>e>t?e:t,re=e=>0!==e?e<0:1/e<0,se=64,ie=128,oe=127,ce=Number.MAX_SAFE_INTEGER,le=Number.isInteger||(e=>"number"==typeof e&&isFinite(e)&&Z(e)===e),ae=()=>new Set,ue=e=>e[e.length-1],de=(e,t)=>{for(let n=0;n<t.length;n++)e.push(t[n])},he=Array.from,fe=Array.isArray,pe=/^\s*/g,ge=/([A-Z])/g,ye=(e,t)=>(e=>e.replace(pe,""))(e.replace(ge,e=>`${t}${(e=>e.toLowerCase())(e)}`)),me="undefined"!=typeof TextEncoder?new TextEncoder:null,be=me?e=>me.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 ve="undefined"==typeof TextDecoder?null:new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});ve&&1===ve.decode(new Uint8Array).length&&(ve=null);class we{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}}const _e=()=>new we,ke=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},Se=(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},xe=Se,Ee=(e,t)=>{for(;t>oe;)Se(e,ie|oe&t),t=Z(t/128);Se(e,oe&t)},Ce=(e,t)=>{const n=re(t);for(n&&(t=-t),Se(e,(t>63?ie:0)|(n?se:0)|63&t),t=Z(t/64);t>0;)Se(e,(t>oe?ie:0)|oe&t),t=Z(t/128)},Ae=new Uint8Array(3e4),Ie=Ae.length/3,Oe=me&&me.encodeInto?(e,t)=>{if(t.length<Ie){const n=me.encodeInto(t,Ae).written||0;Ee(e,n);for(let t=0;t<n;t++)Se(e,Ae[t])}else je(e,be(t))}:(e,t)=>{const n=unescape(encodeURIComponent(t)),r=n.length;Ee(e,r);for(let t=0;t<r;t++)Se(e,n.codePointAt(t))},De=(e,t)=>{const n=e.cbuf.length,r=e.cpos,s=te(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(ne(2*n,i)),e.cbuf.set(t.subarray(s)),e.cpos=i)},je=(e,t)=>{Ee(e,t.byteLength),De(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*ne(n,t)),e.cpos=0)})(e,t);const n=new DataView(e.cbuf.buffer,e.cpos,t);return e.cpos+=t,n},Ue=(e,t)=>Te(e,8).setBigUint64(0,t,!1),Pe=new DataView(new ArrayBuffer(4)),Le=(e,t)=>{switch(typeof t){case"string":Se(e,119),Oe(e,t);break;case"number":le(t)&&ee(t)<=2147483647?(Se(e,125),Ce(e,t)):(n=t,Pe.setFloat32(0,n),Pe.getFloat32(0)===n?(Se(e,124),((e,t)=>{Te(e,4).setFloat32(0,t,!1)})(e,t)):(Se(e,123),((e,t)=>{Te(e,8).setFloat64(0,t,!1)})(e,t)));break;case"bigint":Se(e,122),((e,t)=>{Te(e,8).setBigInt64(0,t,!1)})(e,t);break;case"object":if(null===t)Se(e,126);else if(fe(t)){Se(e,117),Ee(e,t.length);for(let n=0;n<t.length;n++)Le(e,t[n])}else if(t instanceof Uint8Array)Se(e,116),je(e,t);else{Se(e,118);const n=Object.keys(t);Ee(e,n.length);for(let r=0;r<n.length;r++){const s=n[r];Oe(e,s),Le(e,t[s])}}break;case"boolean":Se(e,t?120:121);break;default:Se(e,127)}var n};class Re extends we{constructor(e){super(),this.w=e,this.s=null,this.count=0}write(e){this.s===e?this.count++:(this.count>0&&Ee(this,this.count-1),this.count=1,this.w(this,e),this.s=e)}}const $e=e=>{e.count>0&&(Ce(e.encoder,1===e.count?e.s:-e.s),e.count>1&&Ee(e.encoder,e.count-2))};class Be{constructor(){this.encoder=new we,this.s=0,this.count=0}write(e){this.s===e?this.count++:($e(this),this.count=1,this.s=e)}toUint8Array(){return $e(this),ke(this.encoder)}}const Ne=e=>{if(e.count>0){const t=2*e.diff+(1===e.count?0:1);Ce(e.encoder,t),e.count>1&&Ee(e.encoder,e.count-2)}};class Me{constructor(){this.encoder=new we,this.s=0,this.count=0,this.diff=0}write(e){this.diff===e-this.s?(this.s=e,this.count++):(Ne(this),this.count=1,this.diff=e-this.s,this.s=e)}toUint8Array(){return Ne(this),ke(this.encoder)}}class Fe{constructor(){this.sarr=[],this.s="",this.lensE=new Be}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 we;return this.sarr.push(this.s),this.s="",Oe(e,this.sarr.join("")),De(e,this.lensE.toUint8Array()),ke(e)}}const We=e=>new Error(e),ze=()=>{throw We("Method unimplemented")},Ke=()=>{throw We("Unexpected case")},Ve=We("Unexpected end of array"),He=We("Integer out of Range");class Je{constructor(e){this.arr=e,this.pos=0}}const qe=e=>new Je(e),Ge=e=>e.pos!==e.arr.length,Ye=e=>((e,t)=>{const n=new Uint8Array(e.arr.buffer,e.pos+e.arr.byteOffset,t);return e.pos+=t,n})(e,Xe(e)),Qe=e=>e.arr[e.pos++],Xe=e=>{let t=0,n=1;const r=e.arr.length;for(;e.pos<r;){const r=e.arr[e.pos++];if(t+=(r&oe)*n,n*=128,r<ie)return t;if(t>ce)throw He}throw Ve},Ze=e=>{let t=e.arr[e.pos++],n=63&t,r=64;const s=(t&se)>0?-1:1;if(0===(t&ie))return s*n;const i=e.arr.length;for(;e.pos<i;){if(t=e.arr[e.pos++],n+=(t&oe)*r,r*=128,t<ie)return s*n;if(n>ce)throw He}throw Ve},et=ve?e=>ve.decode(Ye(e)):e=>{let t=Xe(e);if(0===t)return"";{let n=String.fromCodePoint(Qe(e));if(--t<100)for(;t--;)n+=String.fromCodePoint(Qe(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))}},tt=(e,t)=>{const n=new DataView(e.arr.buffer,e.arr.byteOffset+e.pos,t);return e.pos+=t,n},nt=e=>tt(e,8).getBigUint64(0,!1),rt=[e=>{},e=>null,Ze,e=>tt(e,4).getFloat32(0,!1),e=>tt(e,8).getFloat64(0,!1),e=>tt(e,8).getBigInt64(0,!1),e=>!1,e=>!0,et,e=>{const t=Xe(e),n={};for(let r=0;r<t;r++){n[et(e)]=st(e)}return n},e=>{const t=Xe(e),n=[];for(let r=0;r<t;r++)n.push(st(e));return n},Ye],st=e=>rt[127-Qe(e)](e);class it extends Je{constructor(e,t){super(e),this.reader=t,this.s=null,this.count=0}read(){return 0===this.count&&(this.s=this.reader(this),Ge(this)?this.count=Xe(this)+1:this.count=-1),this.count--,this.s}}class ot extends Je{constructor(e){super(e),this.s=0,this.count=0}read(){if(0===this.count){this.s=Ze(this);const e=re(this.s);this.count=1,e&&(this.s=-this.s,this.count=Xe(this)+2)}return this.count--,this.s}}class ct extends Je{constructor(e){super(e),this.s=0,this.count=0,this.diff=0}read(){if(0===this.count){const e=Ze(this),t=1&e;this.diff=Z(e/2),this.count=1,t&&(this.count=Xe(this)+2)}return this.s+=this.diff,this.count--,this.s}}class lt{constructor(e){this.decoder=new ot(e),this.str=et(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*at(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 c=0;for(;c<o.byteLength;)switch(t){case 0:if(c+4>o.byteLength){for(const e of o.slice(c)){if(4===r)break;n[r++]=e,++c}if(r<4)break}else if(r>0&&r<4)for(const e of o.slice(c,c+4-r))n[r++]=e,++c;case 1:i=4===r?new DataView(n.buffer,0,4).getUint32(0,!1):e.getUint32(c,!1),r?r=0:c+=4;case 2:if(c>=o.byteLength){t=2;break}if(c+i>o.byteLength)s.push(o.slice(c)),i-=o.byteLength-c,t=2,c=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(c,c+i),t),s=[],yield e}else yield o.slice(c,c+i);c+=i,t=0}}}}function ut(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 U(s)})}function dt(e){return Object.entries(e.cloud.schema||{}).filter(([,{markedForSync:e}])=>e).map(([t])=>e.tables.find(({name:e})=>e===t)).filter(e=>!!e)}function ht(e){return`$${e}_mutations`}function ft(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 pt=[].concat;function gt(e){return pt.apply([],e)}function yt(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=ft(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=gt(i).sort((e,t)=>e.mut.txid===t.mut.txid?e.mut.opNo-t.mut.opNo:e.mut.ts-t.mut.ts),c=[];let l=null,a=null;for(const{table:e,mut:t}of o)l&&l.table===e&&a===t.txid?l.muts.push(t):(l={table:e,muts:[t]},a=t.txid,c.push(l));return c})}function mt(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")}class bt extends Error{constructor({title:e,message:t,messageCode:n,messageParams:r}){super(t),this.name="TokenErrorResponseError",this.title=e,this.messageCode=n,this.messageParams=r}}const vt=`data:image/svg+xml;base64,${btoa('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="#666666" stroke-width="2"><rect x="2" y="4" width="20" height="16" rx="2"/><path d="M22 6L12 13 2 6"/></svg>')}`;function wt(e){return{name:"provider",value:e.name,displayName:`Continue with ${e.displayName}`,iconUrl:e.iconUrl,styleHint:e.type}}function _t(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 kt(e,t,...n){return _t(e,{type:"message-alert",title:t,alerts:n,fields:{},submitLabel:"OK",cancelLabel:null})}function St(e,t,n,s){return r(this,void 0,void 0,function*(){let r=n||"",i=!0;for(;!r||!/^[\w-+.]+@([\w-]+\.)+[\w-]{2,10}(\sas\s[\w-+.]+@([\w-]+\.)+[\w-]{2,10})?$/.test(r);){const n=[];i&&s&&n.push(s),r&&n.push({type:"error",messageCode:"INVALID_EMAIL",message:"Please enter a valid email address",messageParams:{}}),i=!1,r=(yield _t(e,{type:"email",title:t,alerts:n,fields:{email:{type:"email",placeholder:"you@somedomain.com"}}})).email}return r})}function xt(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 _t(e,{type:"otp",title:"Enter OTP",alerts:r,fields:{otp:{type:"otp",label:"OTP",placeholder:"Paste OTP here"}}});return s})}class Et extends Error{constructor(e){super(`OAuth redirect initiated for provider: ${e}`),this.name="OAuthRedirectError",this.provider=e}}class Ct extends Error{constructor(e){super(e.message),this.code=e.code}get name(){return"PolicyRejectionError"}}function At(e){return"object"==typeof e&&null!==e&&"string"==typeof e.code&&"string"==typeof e.message}const It=1e3;function Ot(e){return r(this,void 0,void 0,function*(){var t,n,r;const s=yield e.getCurrentUser(),{accessToken:i,accessTokenExpiration:o,refreshToken:c,refreshTokenExpiration:l,claims:a}=s;if(!i)return null;if((null!==(t=null==o?void 0:o.getTime())&&void 0!==t?t:1/0)>Date.now()+3e5&&"ok"===((null===(n=s.license)||void 0===n?void 0:n.status)||"ok"))return s;if(!c)throw new Error("Refresh token missing");if((null!==(r=null==l?void 0:l.getTime())&&void 0!==r?r:1/0)<=Date.now())throw new Error("Refresh token has expired");const u=yield jt(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 Dt(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 jt(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 c=function(e){const t=U(e);return function(e){let t="-----BEGIN PUBLIC KEY-----\n";for(;e.length>0;)t+=e.substring(0,64)+"\n",e=e.substring(64);return t+="-----END PUBLIC KEY-----",t}(t)}(yield crypto.subtle.exportKey("spki",o));t.publicKey=o;try{const e=yield n({public_key:c,hints:i});if("error"===e.type)throw new bt(e);if("tokens"!==e.type)throw new Error(`Unexpected response type from token endpoint: ${e.type}`);return t.accessToken=e.accessToken,t.accessTokenExpiration=new Date(e.accessTokenExpiration),t.refreshToken=e.refreshToken,e.refreshTokenExpiration&&(t.refreshTokenExpiration=new Date(e.refreshTokenExpiration)),t.userId=e.claims.sub,t.email=e.claims.email,t.name=e.claims.name,t.claims=e.claims,t.license={type:e.userType,status:e.claims.license||"ok"},t.data=e.data,null!=e.evalDaysLeft&&(t.license.evalDaysLeft=e.evalDaysLeft),null!=e.userValidUntil&&(t.license.validUntil=new Date(e.userValidUntil)),e.alerts&&e.alerts.length>0&&(yield _t(s,{type:"message-alert",title:"Authentication Alert",fields:{},alerts:e.alerts})),t}catch(t){if(t instanceof Et||"OAuthRedirectError"===(null==t?void 0:t.name))throw t;if(t instanceof Ct||"PolicyRejectionError"===(null==t?void 0:t.name))throw t;if(t instanceof bt)throw yield kt(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){if("undefined"!=typeof navigator&&!navigator.onLine)n="You seem to be offline. Please connect to the internet and try again.";else if("undefined"==typeof location||!e.debug&&"localhost"!==location.hostname&&"127.0.0.1"!==location.hostname)n="Could not connect to server. Please verify the connection.",yield kt(s,"Authentication Failed",{type:"error",messageCode:"GENERIC_ERROR",message:n,messageParams:{}}).catch(()=>{});else{const e=`npx dexie-cloud whitelist ${location.origin}`;n=`Could not connect to server. Please verify that your origin '${location.origin}' is whitelisted using \`npx dexie-cloud whitelist\``,yield kt(s,"Authentication Failed",{type:"error",messageCode:"GENERIC_ERROR",message:n,messageParams:{},copyText:e}).catch(()=>{})}}throw t}})}(n,s,i,o)})}function jt(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=U(i),c={grant_type:"refresh_token",refresh_token:t.refreshToken,scopes:["ACCESS_DB"],signature:o,signing_algorithm:r,time_stamp:n},l=yield fetch(`${e}/token`,{body:JSON.stringify(c),method:"post",headers:{"Content-Type":"application/json"},mode:"cors"});if(200!==l.status)throw new Error(`RefreshToken: Status ${l.status} from ${e}/token`);const a=yield l.json();if("error"===a.type)throw new bt(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 Tt="function"==typeof BigInt&&"bigint"==typeof BigInt(0);class Ut{toString(){return this.v}constructor(e){this.v=e}}const Pt=Tt?{}:{bigint:{test:e=>e instanceof Ut,replace:e=>Object.assign({$t:"bigint"},e),revive:({v:e})=>new Ut(e)}},Lt=Object.assign(Object.assign(Object.assign(Object.assign({},W),Pt),F),{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)}}}),Rt=function(...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 b;let i=n.get(r);if(void 0!==i)return i;const o=(s=e,m.call(s).slice(8,-1)),c=Object.entries(t).find(([t,n])=>n?.test?.(e,o)??t===o);return i=c?.[1],i||(i=Array.isArray(e)?null:"function"==typeof e?t.function||null:b),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=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})}}}(O,B,M,x,E,C,A,Lt);class $t extends Error{constructor(e,t){super(t||`${e.status} ${e.statusText}`),this.httpStatus=e.status}get name(){return"HttpError"}}function Bt(t,n,r){const s=[];for(let i of r){const{table:r,muts:o}=i,c=t.tables.find(e=>e.name===r);if(!c)throw new Error(`Internal error: table ${r} not found in DBCore schema`);const{primaryKey:l}=c;let a=i;o.forEach((t,r)=>{const s=!l.outbound&&("upsert"===t.type||"insert"===t.type);t.keys.forEach((t,o)=>{if(Array.isArray(t)){a===i&&(a=Nt(i,s));const e=a.muts[r],n=JSON.stringify(t);e.keys[o]=n}else if("#"===t[0]){a===i&&(a=Nt(i,s));const c=a.muts[r];if(!n.isLoggedIn)throw new Error("Internal error: Cannot sync private IDs before authenticated");const u=`${t}:${n.userId}`;c.keys[o]=u,s&&e.setByKeyPath(c.values[o],l.keyPath,u)}})}),s.push(a)}return s}function Nt(e,t){return Object.assign(Object.assign({},e),{muts:t?e.muts.map(e=>"insert"!==e.type&&"upsert"!==e.type||!e.values?Object.assign(Object.assign({},e),{keys:e.keys.slice()}):Object.assign(Object.assign({},e),{keys:e.keys.slice(),values:e.values.slice()})):e.muts.map(e=>Object.assign(Object.assign({},e),{keys:e.keys.slice()}))})}let Mt=new WeakMap;function Ft(e){return r(this,void 0,void 0,function*(){var t,n;const r=(null!==(n=null===(t=Mt.get(e))||void 0===t?void 0:t.getTime())&&void 0!==n?n:0)-Date.now();r>0&&(yield new Promise(e=>setTimeout(e,r)))})}function Wt(e,t,n,s,i,o,c,l,a){return r(this,void 0,void 0,function*(){const r={Accept:"application/json","Content-Type":"application/tson"},u=yield Ot(i),d=null==u?void 0:u.accessToken;d&&(r.Authorization=`Bearer ${d}`);const h={v:3,dbID:null==n?void 0:n.remoteDbId,clientIdentity:l,schema:c||{},lastPull:n?{serverRevision:n.serverRevision,yServerRevision:n.yServerRevision,realms:n.realms,inviteRealms:n.inviteRealms}:void 0,baseRevs:s,changes:Bt(i.dx.core.schema,a,e),y:t,dxcv:i.cloud.version};i.syncStateChangedEvent.next({phase:"pushing"});const f=Rt.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));Mt.set(e,new Date(Date.now()+1e3*t))}else Mt.delete(e)}}(i,p),!p.ok)throw new $t(p);switch(p.headers.get("content-type")){case"application/x-bison":case"application/x-bison-stream":throw new Error("BISON format no longer supported. Server should send application/json.");default:{const e=yield p.text();return Rt.parse(e)}}})}function zt(t){if(null==t?void 0:t.cancelled)throw new e.AbortError("Operation was cancelled")}let Kt=!1;function Vt(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 Ht(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 Jt(t,n,s){return r(this,void 0,void 0,function*(){const r=yield t.bulkGet(n),i=[],o=[];n.forEach((n,c)=>{const l=r[c];if(l){for(const[r,i]of Object.entries(s[c]))if(r===t.schema.primKey.keyPath){if(0!==e.cmp(i,n))throw new Error("Cannot change primary key")}else e.setByKeyPath(l,r,i);i.push(n),o.push(l)}}),yield null==t.schema.primKey.keyPath?t.bulkPut(o,i):t.bulkPut(o)})}function qt(e){if("object"!=typeof e||null===e)return!1;const t=e;return"string"==typeof t._bt&&"string"==typeof t.ref&&void 0===t.v}function Gt(e,t=new WeakSet){return null!=e&&(!!qt(e)||"object"==typeof e&&(!t.has(e)&&(t.add(e),!(e instanceof Date||e instanceof RegExp||e instanceof Blob)&&(!(e instanceof ArrayBuffer||ArrayBuffer.isView(e))&&(Array.isArray(e)?e.some(e=>Gt(e,t)):e.constructor===Object&&Object.values(e).some(e=>Gt(e,t)))))))}function Yt(e,t){return r(this,arguments,void 0,function*(e,t,n=[],r="",s=new WeakMap,i){if(null==e)return e;if(qt(e)){const s=function(e,t){if("string"===t._bt)return(new TextDecoder).decode(e);const n=e.buffer.byteLength===e.byteLength?e.buffer:e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength);switch(t._bt){case"Blob":return new Blob([new Uint8Array(n)],{type:t.ct||""});case"ArrayBuffer":return n;case"Uint8Array":default:return e;case"Int8Array":return new Int8Array(n);case"Uint8ClampedArray":return new Uint8ClampedArray(n);case"Int16Array":return new Int16Array(n);case"Uint16Array":return new Uint16Array(n);case"Int32Array":return new Int32Array(n);case"Uint32Array":return new Uint32Array(n);case"Float32Array":return new Float32Array(n);case"Float64Array":return new Float64Array(n);case"BigInt64Array":return new BigInt64Array(n);case"BigUint64Array":return new BigUint64Array(n);case"DataView":return new DataView(n)}}(yield i.download(e,t),e);return n.push({keyPath:r,data:s,ref:e.ref}),s}if(Array.isArray(e)){if(s.has(e))return s.get(e);const o=[];s.set(e,o);for(let c=0;c<e.length;c++){const l=r?`${r}.${c}`:`${c}`;o.push(yield Yt(e[c],t,n,l,s,i))}return o}if("object"==typeof e&&e.constructor===Object){if(s.has(e))return s.get(e);const o={};s.set(e,o);for(const[c,l]of Object.entries(e)){if("_hasBlobRefs"===c)continue;const e=r?`${r}.${c}`:c;o[c]=yield Yt(l,t,n,e,s,i)}return o}return e})}function Qt(e){return"object"==typeof e&&null!==e&&1===e._hasBlobRefs}function Xt(e){null!==e&&"object"==typeof e&&e.constructor===Object&&Gt(e)&&(e._hasBlobRefs=1)}function Zt(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":n.values.forEach(Xt),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":n.values.forEach(Xt),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 Jt(t,r,n.changeSpecs);break;case"delete":yield t.bulkDelete(r)}}}})}"undefined"!=typeof self&&"undefined"!=typeof navigator&&(Kt=navigator.onLine,self.addEventListener("online",()=>Kt=!0),self.addEventListener("offline",()=>Kt=!1));const en="dexie-cloud-syncer";function tn(e,t){return e.where("i").between(t,1/0,!0).toArray()}const nn=()=>new Map,rn=e=>{const t=nn();return e.forEach((e,n)=>{t.set(n,e)}),t},sn=(e,t,n)=>{let r=e.get(t);return void 0===r&&e.set(t,r=n()),r};class on{constructor(){this._observers=nn()}on(e,t){return sn(this._observers,e,ae).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 he((this._observers.get(e)||nn()).values()).forEach(e=>e(...t))}destroy(){this._observers=nn()}}class cn{constructor(){this._observers=nn()}on(e,t){sn(this._observers,e,ae).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 he((this._observers.get(e)||nn()).values()).forEach(e=>e(...t))}destroy(){this._observers=nn()}}const ln=crypto.getRandomValues.bind(crypto),an=()=>ln(new Uint32Array(1))[0],un=[1e7]+-1e3+-4e3+-8e3+-1e11,dn=()=>un.replace(/[018]/g,e=>(e^an()&15>>e/4).toString(16)),hn=Date.now,fn=e=>new Promise(e);Promise.all.bind(Promise);const pn=e=>void 0===e?null:e;let gn=new class{constructor(){this.map=new Map}setItem(e,t){this.map.set(e,t)}getItem(e){return this.map.get(e)}},yn=!0;try{"undefined"!=typeof localStorage&&localStorage&&(gn=localStorage,yn=!1)}catch(gl){}const mn=gn,bn=Object.assign,vn=Object.keys,wn=e=>vn(e).length,_n=e=>vn(e).length,kn=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),Sn=Object.freeze,xn=e=>{for(const t in e){const n=e[t];"object"!=typeof n&&"function"!=typeof n||xn(e[t])}return Sn(e)},En=Symbol("Equality"),Cn=(e,t,n=0)=>{try{for(;n<e.length;n++)e[n](...t)}finally{n<e.length&&Cn(e,t,n+1)}},An=(e,t)=>{if(e===t)return!0;if(null==e||null==t||e.constructor!==t.constructor)return!1;if(null!=e[En])return e[En](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)||!An(e.get(n),t.get(n)))return!1;break;case Object:if(wn(e)!==wn(t))return!1;for(const n in e)if(!kn(e,n)||!An(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(!An(e[n],t[n]))return!1;break;default:return!1}return!0},In="undefined"!=typeof process&&process.release&&/node|io\.js/.test(process.release.name)&&"[object process]"===Object.prototype.toString.call("undefined"!=typeof process?process:0);let On;const Dn=e=>(()=>{if(void 0===On)if(In){On=nn();const e=process.argv;let t=null;for(let n=0;n<e.length;n++){const r=e[n];"-"===r[0]?(null!==t&&On.set(t,""),t=r):null!==t&&(On.set(t,r),t=null)}null!==t&&On.set(t,"")}else"object"==typeof location?(On=nn(),(location.search||"?").slice(1).split("&").forEach(e=>{if(0!==e.length){const[t,n]=e.split("=");On.set(`--${ye(t,"-")}`,n),On.set(`-${ye(t,"-")}`,n)}})):On=nn();return On})().has(e),jn=e=>pn(In?process.env[e.toUpperCase().replaceAll("-","_")]:mn.getItem(e)),Tn=e=>Dn("--"+e)||null!==jn(e);Tn("production");var Un;In&&(Un=process.env.FORCE_COLOR,["true","1","2"].includes(Un))||!Dn("--no-colors")&&!Tn("no-color")&&(!In||process.stdout.isTTY)&&(!In||Dn("--color")||null!==jn("COLORTERM")||(jn("TERM")||"").includes("color"));class Pn{constructor(e,t){this.left=e,this.right=t}}const Ln=(e,t)=>new Pn(e,t);"undefined"!=typeof DOMParser&&new DOMParser;const Rn=Symbol,$n=Rn(),Bn=Rn(),Nn=Rn(),Mn=Rn(),Fn=Rn(),Wn=Rn(),zn=Rn(),Kn=Rn(),Vn=Rn(),Hn=(Ln("font-weight","bold"),Ln("font-weight","normal"),Ln("color","blue"),Ln("color","green"),Ln("color","grey"),Ln("color","red"),Ln("color","purple"),Ln("color","orange"),Ln("color","black"),ae()),Jn=e=>({[Symbol.iterator](){return this},next:e}),qn=(e,t)=>Jn(()=>{const{done:n,value:r}=e.next();return{done:n,value:n?void 0:t(r)}});class Gn{constructor(e,t){this.clock=e,this.len=t}}class Yn{constructor(){this.clients=new Map}}const Qn=(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])Ur(e,s,o.clock,o.len,n)}}),Xn=(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=Z((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)},Zn=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=ne(r.len,s.clock+s.len-r.clock):(n<t&&(e[n]=s),n++)}e.length=n})},er=(e,t,n,r)=>{sn(e.clients,t,()=>[]).push(new Gn(n,r))},tr=(e,t)=>{Ee(e.restEncoder,t.clients.size),he(t.clients.entries()).sort((e,t)=>t[0]-e[0]).forEach(([t,n])=>{e.resetDsCurVal(),Ee(e.restEncoder,t);const r=n.length;Ee(e.restEncoder,r);for(let t=0;t<r;t++){const r=n[t];e.writeDsClock(r.clock),e.writeDsLen(r.len)}})},nr=(e,t,n)=>{const r=new Yn,s=Xe(e.restDecoder);for(let i=0;i<s;i++){e.resetDsCurVal();const s=Xe(e.restDecoder),i=Xe(e.restDecoder),o=n.clients.get(s)||[],c=Cr(n,s);for(let n=0;n<i;n++){const n=e.readDsClock(),i=n+e.readDsLen();if(n<c){c<i&&er(r,s,c,i-c);let e=Ir(o,n),l=o[e];for(!l.deleted&&l.id.clock<n&&(o.splice(e+1,0,pi(t,l,n-l.id.clock)),e++);e<o.length&&(l=o[e++],l.id.clock<i);)l.deleted||(i<l.id.clock+l.length&&o.splice(e,0,pi(t,l,i-l.id.clock)),l.delete(t))}else er(r,s,n,i-n)}}if(r.clients.size>0){const e=new ur;return Ee(e.restEncoder,0),tr(e,r),e.toUint8Array()}return null},rr=an;class sr extends on{constructor({guid:e=dn(),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=rr(),this.guid=e,this.collectionid=t,this.share=new Map,this.store=new xr,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=fn(e=>{this.on("load",()=>{this.isLoaded=!0,e(this)})});const c=()=>fn(e=>{const t=n=>{void 0!==n&&!0!==n||(this.off("sync",t),e())};this.on("sync",t)});this.on("sync",e=>{!1===e&&this.isSynced&&(this.whenSynced=c()),this.isSynced=void 0===e||!0===e,this.isSynced&&!this.isLoaded&&this.emit("load",[this])}),this.whenSynced=c()}load(){const e=this._item;null===e||this.shouldLoad||Nr(e.parent.doc,e=>{e.subdocsLoaded.add(this)},null,!0),this.shouldLoad=!0}getSubdocs(){return this.subdocs}getSubdocGuids(){return new Set(he(this.subdocs).map(e=>e.guid))}transact(e,t=null){return Nr(this,e,t)}get(e,t=ss){const n=sn(this.share,e,()=>{const e=new t;return e._integrate(this,null),e}),r=n.constructor;if(t!==ss&&r!==t){if(r===ss){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,Ms)}getMap(e=""){return this.get(e,xs)}getXmlElement(e=""){return this.get(e,zs)}getXmlFragment(e=""){return this.get(e,Ws)}toJSON(){const e={};return this.share.forEach((t,n)=>{e[n]=t.toJSON()}),e}destroy(){this.isDestroyed=!0,he(this.subdocs).forEach(e=>e.destroy());const e=this._item;if(null!==e){this._item=null;const t=e.content;t.doc=new sr({guid:this.guid,...t.opts,shouldLoad:!1}),t.doc._item=e,Nr(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+=Xe(this.restDecoder),this.dsCurrVal}readDsLen(){const e=Xe(this.restDecoder)+1;return this.dsCurrVal+=e,e}}class or extends ir{constructor(e){super(e),this.keys=[],Xe(e),this.keyClockDecoder=new ct(Ye(e)),this.clientDecoder=new ot(Ye(e)),this.leftClockDecoder=new ct(Ye(e)),this.rightClockDecoder=new ct(Ye(e)),this.infoDecoder=new it(Ye(e),Qe),this.stringDecoder=new lt(Ye(e)),this.parentInfoDecoder=new it(Ye(e),Qe),this.typeRefDecoder=new ot(Ye(e)),this.lenDecoder=new ot(Ye(e))}readLeftID(){return new vr(this.clientDecoder.read(),this.leftClockDecoder.read())}readRightID(){return new vr(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 st(this.restDecoder)}readBuf(){return Ye(this.restDecoder)}readJSON(){return st(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 cr{constructor(){this.restEncoder=_e()}toUint8Array(){return ke(this.restEncoder)}resetDsCurVal(){}writeDsClock(e){Ee(this.restEncoder,e)}writeDsLen(e){Ee(this.restEncoder,e)}}class lr extends cr{writeLeftID(e){Ee(this.restEncoder,e.client),Ee(this.restEncoder,e.clock)}writeRightID(e){Ee(this.restEncoder,e.client),Ee(this.restEncoder,e.clock)}writeClient(e){Ee(this.restEncoder,e)}writeInfo(e){xe(this.restEncoder,e)}writeString(e){Oe(this.restEncoder,e)}writeParentInfo(e){Ee(this.restEncoder,e?1:0)}writeTypeRef(e){Ee(this.restEncoder,e)}writeLen(e){Ee(this.restEncoder,e)}writeAny(e){Le(this.restEncoder,e)}writeBuf(e){je(this.restEncoder,e)}writeJSON(e){Oe(this.restEncoder,JSON.stringify(e))}writeKey(e){Oe(this.restEncoder,e)}}class ar{constructor(){this.restEncoder=_e(),this.dsCurrVal=0}toUint8Array(){return ke(this.restEncoder)}resetDsCurVal(){this.dsCurrVal=0}writeDsClock(e){const t=e-this.dsCurrVal;this.dsCurrVal=e,Ee(this.restEncoder,t)}writeDsLen(e){0===e&&Ke(),Ee(this.restEncoder,e-1),this.dsCurrVal+=e}}class ur extends ar{constructor(){super(),this.keyMap=new Map,this.keyClock=0,this.keyClockEncoder=new Me,this.clientEncoder=new Be,this.leftClockEncoder=new Me,this.rightClockEncoder=new Me,this.infoEncoder=new Re(xe),this.stringEncoder=new Fe,this.parentInfoEncoder=new Re(xe),this.typeRefEncoder=new Be,this.lenEncoder=new Be}toUint8Array(){const e=_e();return Ee(e,0),je(e,this.keyClockEncoder.toUint8Array()),je(e,this.clientEncoder.toUint8Array()),je(e,this.leftClockEncoder.toUint8Array()),je(e,this.rightClockEncoder.toUint8Array()),je(e,ke(this.infoEncoder)),je(e,this.stringEncoder.toUint8Array()),je(e,ke(this.parentInfoEncoder)),je(e,this.typeRefEncoder.toUint8Array()),je(e,this.lenEncoder.toUint8Array()),De(e,ke(this.restEncoder)),ke(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){Le(this.restEncoder,e)}writeBuf(e){je(this.restEncoder,e)}writeJSON(e){Le(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 dr=(e,t,n)=>{const r=new Map;n.forEach((e,n)=>{Cr(t,n)>e&&r.set(n,e)}),Er(t).forEach((e,t)=>{n.has(t)||r.set(t,0)}),Ee(e.restEncoder,r.size),he(r.entries()).sort((e,t)=>t[0]-e[0]).forEach(([n,r])=>{((e,t,n,r)=>{r=ne(r,t[0].id.clock);const s=Ir(t,r);Ee(e.restEncoder,t.length-s),e.writeClient(n),Ee(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)})},hr=(e,t,n,r=new or(e))=>Nr(t,e=>{e.local=!1;let t=!1;const n=e.doc,s=n.store,i=((e,t)=>{const n=nn(),r=Xe(e.restDecoder);for(let s=0;s<r;s++){const r=Xe(e.restDecoder),s=new Array(r),i=e.readClient();let o=Xe(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 qs(_r(i,o),t),o+=t;break}case 10:{const t=Xe(e.restDecoder);s[n]=new bi(_r(i,o),t),o+=t;break}default:{const c=!(192&r),l=new gi(_r(i,o),null,(r&ie)===ie?e.readLeftID():null,null,(r&se)===se?e.readRightID():null,c?e.readParentInfo()?t.get(e.readString()):e.readLeftID():null,!c||32&~r?null:e.readString(),yi(e,r));s[n]=l,o+=l.length}}}}return n})(r,n),o=((e,t,n)=>{const r=[];let s=he(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 c=new xr,l=new Map,a=(e,t)=>{const n=l.get(e);(null==n||n>t)&&l.set(e,t)};let u=o.refs[o.i++];const d=new Map,h=()=>{for(const e of r){const t=e.id.client,r=n.get(t);r?(r.i--,c.clients.set(t,r.refs.slice(r.i)),n.delete(t),r.i=0,r.refs=[]):c.clients.set(t,[e]),s=s.filter(e=>e!==t)}r.length=0};for(;;){if(u.constructor!==bi){const s=sn(d,u.id.client,()=>Cr(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,Cr(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(c.clients.size>0){const e=new ur;return dr(e,c,new Map),Ee(e.restEncoder,0),{missing:l,update:e.toUint8Array()}}return null})(e,s,i),c=s.pendingStructs;if(c){for(const[e,n]of c.missing)if(n<Cr(s,e)){t=!0;break}if(o){for(const[e,t]of o.missing){const n=c.missing.get(e);(null==n||n>t)&&c.missing.set(e,t)}c.update=Kr([c.update,o.update])}}else s.pendingStructs=o;const l=nr(r,e,s);if(s.pendingDs){const t=new or(qe(s.pendingDs));Xe(t.restDecoder);const n=nr(t,e,s);s.pendingDs=l&&n?Kr([l,n]):l||n}else s.pendingDs=l;if(t){const t=s.pendingStructs.update;s.pendingStructs=null,fr(e.doc,t)}},n,!1),fr=(e,t,n,r=or)=>{const s=qe(t);hr(s,e,n,new r(s))};class pr{constructor(){this.l=[]}}const gr=()=>new pr,yr=(e,t)=>e.l.push(t),mr=(e,t)=>{const n=e.l;n.length;e.l=n.filter(e=>t!==e),e.l.length},br=(e,t,n)=>Cn(e.l,[t,n]);class vr{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,_r=(e,t)=>new vr(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&&!Xn(t.ds,e.id),Sr=(e,t)=>{const n=sn(e.meta,Sr,ae),r=e.doc.store;n.has(t)||(t.sv.forEach((t,n)=>{t<Cr(r,n)&&jr(e,_r(n,t))}),Qn(e,t.ds,e=>{}),n.add(t))};class xr{constructor(){this.clients=new Map,this.pendingStructs=null,this.pendingDs=null}}const Er=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},Cr=(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},Ar=(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 Ke()}n.push(t)},Ir=(e,t)=>{let n=0,r=e.length-1,s=e[r],i=s.id.clock;if(i===t)return r;let o=Z(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=Z((n+r)/2)}throw Ke()},Or=(e,t)=>{const n=e.clients.get(t.client);return n[Ir(n,t.clock)]},Dr=(e,t,n)=>{const r=Ir(t,n),s=t[r];return s.id.clock<n&&s instanceof gi?(t.splice(r+1,0,pi(e,s,n-s.id.clock)),r+1):r},jr=(e,t)=>{const n=e.doc.store.clients.get(t.client);return n[Dr(e,n,t.clock)]},Tr=(e,t,n)=>{const r=t.clients.get(n.client),s=Ir(r,n.clock),i=r[s];return n.clock!==i.id.clock+i.length-1&&i.constructor!==qs&&r.splice(s+1,0,pi(e,i,n.clock-i.id.clock+1)),i},Ur=(e,t,n,r,s)=>{if(0===r)return;const i=n+r;let o,c=Dr(e,t,n);do{o=t[c++],i<o.id.clock+o.length&&Dr(e,t,i),s(o)}while(c<t.length&&t[c].id.clock<i)};class Pr{constructor(e,t,n){this.doc=e,this.deleteSet=new Yn,this.beforeState=Er(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 Lr=(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))&&(Zn(t.deleteSet),((e,t)=>{dr(e,t.doc.store,t.beforeState)})(e,t),tr(e,t.deleteSet),!0),Rr=(e,t,n)=>{const r=t._item;(null===r||r.id.clock<(e.beforeState.get(r.id.client)||0)&&!r.deleted)&&sn(e.changed,t,ae).add(n)},$r=(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 gi&&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},Br=(e,t)=>{if(t<e.length){const n=e[t],r=n.doc,s=r.store,i=n.deleteSet,o=n._mergeStructs;try{Zn(i),n.afterState=Er(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])),Cn(e,[]),n._needFormattingCleanup&&$s(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=Ir(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 gi&&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=te(r.length-1,1+Ir(r,n.clock+n.len-1)),t=r[e];e>0&&t.id.clock>=n.clock;t=r[e])e-=1+$r(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=ne(Ir(e,r),1);for(let t=e.length-1;t>=n;)t-=1+$r(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=Ir(r,n);i+1<r.length&&$r(r,i+1)>1||i>0&&$r(r,i)}if(n.local||n.afterState.get(r.clientID)===n.beforeState.get(r.clientID)||(((...e)=>{Hn.forEach(t=>t.print(e))})(Kn,$n,"[yjs] ",Bn,Wn,"Changed the client-id because another client seems to be using it."),r.clientID=rr()),r.emit("afterTransactionCleanup",[n,r]),r._observers.has("update")){const e=new lr;Lr(e,n)&&r.emit("update",[e.toUint8Array(),n.origin,r,n])}if(r._observers.has("updateV2")){const e=new ur;Lr(e,n)&&r.emit("updateV2",[e.toUint8Array(),n.origin,r,n])}const{subdocsAdded:c,subdocsLoaded:l,subdocsRemoved:a}=n;(c.size>0||a.size>0||l.size>0)&&(c.forEach(e=>{e.clientID=r.clientID,null==e.collectionid&&(e.collectionid=r.collectionid),r.subdocs.add(e)}),a.forEach(e=>r.subdocs.delete(e)),r.emit("subdocs",[{loaded:l,added:c,removed:a},r,n]),a.forEach(e=>e.destroy())),e.length<=t+1?(r._transactionCleanups=[],r.emit("afterAllTransactions",[r,e])):Br(e,t+1)}}},Nr=(e,t,n=null,r=!0)=>{const s=e._transactionCleanups;let i=!1,o=null;null===e._transaction&&(i=!0,e._transaction=new Pr(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&&Br(s,0)}}return o};class Mr{constructor(e,t){this.gen=function*(e){const t=Xe(e.restDecoder);for(let n=0;n<t;n++){const t=Xe(e.restDecoder),n=e.readClient();let r=Xe(e.restDecoder);for(let s=0;s<t;s++){const t=e.readInfo();if(10===t){const t=Xe(e.restDecoder);yield new bi(_r(n,r),t),r+=t}else if(31&t){const s=!(192&t),i=new gi(_r(n,r),null,(t&ie)===ie?e.readLeftID():null,null,(t&se)===se?e.readRightID():null,s?e.readParentInfo()?e.readString():e.readLeftID():null,!s||32&~t?null:e.readString(),yi(e,t));yield i,r+=i.length}else{const t=e.readLen();yield new qs(_r(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 Fr{constructor(e){this.currClient=0,this.startClock=0,this.written=0,this.encoder=e,this.clientStructs=[]}}const Wr=(e,t=ar,n=or)=>{const r=new t,s=new Mr(new n(qe(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++,Ee(r.restEncoder,t),Ee(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++,Ee(r.restEncoder,t),Ee(r.restEncoder,o));const c=_e();return Ee(c,e),((e,t)=>{De(e,ke(t))})(c,r.restEncoder),r.restEncoder=c,r.toUint8Array()}return Ee(r.restEncoder,0),r.toUint8Array()},zr=(e,t)=>{if(e.constructor===qs){const{client:n,clock:r}=e.id;return new qs(_r(n,r+t),e.length-t)}if(e.constructor===bi){const{client:n,clock:r}=e.id;return new bi(_r(n,r+t),e.length-t)}{const n=e,{client:r,clock:s}=n.id;return new gi(_r(r,s+t),null,_r(r,s+t-1),null,n.rightOrigin,n.parent,n.parentSub,n.content.splice(t))}},Kr=(e,t=or,n=ur)=>{if(1===e.length)return e[0];const r=e.map(e=>new t(qe(e)));let s=r.map(e=>new Mr(e,!0)),i=null;const o=new n,c=new Fr(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)Hr(c,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{Hr(c,i.struct,i.offset);const e=n.id.clock-i.struct.id.clock-i.struct.length;i={struct:new bi(_r(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=zr(n,t)),i.struct.mergeWith(n)||(Hr(c,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())Hr(c,i.struct,i.offset),i={struct:n,offset:0}}null!==i&&(Hr(c,i.struct,i.offset),i=null),Jr(c);const l=r.map(e=>(e=>{const t=new Yn,n=Xe(e.restDecoder);for(let r=0;r<n;r++){e.resetDsCurVal();const n=Xe(e.restDecoder),r=Xe(e.restDecoder);if(r>0){const s=sn(t.clients,n,()=>[]);for(let t=0;t<r;t++)s.push(new Gn(e.readDsClock(),e.readDsLen()))}}return t})(e)),a=(e=>{const t=new Yn;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++)de(i,e[t].clients.get(s)||[]);t.clients.set(s,i)}});return Zn(t),t})(l);return tr(o,a),o.toUint8Array()},Vr=e=>{e.written>0&&(e.clientStructs.push({written:e.written,restEncoder:ke(e.encoder.restEncoder)}),e.encoder.restEncoder=_e(),e.written=0)},Hr=(e,t,n)=>{e.written>0&&e.currClient!==t.id.client&&Vr(e),0===e.written&&(e.currClient=t.id.client,e.encoder.writeClient(t.id.client),Ee(e.encoder.restEncoder,t.id.clock+n)),t.write(e.encoder,n),e.written++},Jr=e=>{Vr(e);const t=e.encoder.restEncoder;Ee(t,e.clientStructs.length);for(let n=0;n<e.clientStructs.length;n++){const r=e.clientStructs[n];Ee(t,r.written),De(t,r.restEncoder)}},qr="You must not compute changes after the event-handler fired.";class Gr{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=Yr(this.currentTarget,this.target))}deletes(e){return Xn(this.transaction.deleteSet,e.id)}get keys(){if(null===this._keys){if(0===this.transaction.doc._transactionCleanups.length)throw We(qr);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=ue(e.content.getContent())}else null!==e&&this.deletes(e)?(s="update",i=ue(e.content.getContent())):(s="add",i=void 0)}else{if(!this.deletes(r))return;s="delete",i=ue(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 We(qr);const t=this.target,n=ae(),r=ae(),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 Yr=(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},Qr=()=>{((...e)=>{e.unshift(Kn),Hn.forEach(t=>t.print(e))})("Invalid access: Add Yjs type to a document before reading data.")};let Xr=0;class Zr{constructor(e,t){e.marker=!0,this.p=e,this.index=t,this.timestamp=Xr++}}const es=(e,t,n)=>{e.p.marker=!1,e.p=t,t.marker=!0,e.index=n,e.timestamp=Xr++},ts=(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)=>ee(t-e.index)<ee(t-n.index)?e:n);let r=e._start,s=0;for(null!==n&&(r=n.p,s=n.index,(e=>{e.timestamp=Xr++})(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&&ee(n.index-s)<r.parent.length/80?(es(n,r,s),n):((e,t,n)=>{if(e.length>=80){const r=e.reduce((e,t)=>e.timestamp<t.timestamp?e:t);return es(r,t,n),r}{const r=new Zr(t,n);return e.push(r),r}})(e._searchMarker,r,s)},ns=(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=ne(t,s.index+n))}},rs=(e,t,n)=>{const r=e,s=t.changedParentTypes;for(;sn(s,e,()=>[]).push(n),null!==e._item;)e=e._item.parent;br(r._eH,n,t)};class ss{constructor(){this._item=null,this._map=new Map,this._start=null,this.doc=null,this._length=0,this._eH=gr(),this._dEH=gr(),this._searchMarker=null}get parent(){return this._item?this._item.parent:null}_integrate(e,t){this.doc=e,this._item=t}_copy(){throw ze()}clone(){throw ze()}_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){yr(this._eH,e)}observeDeep(e){yr(this._dEH,e)}unobserve(e){mr(this._eH,e)}unobserveDeep(e){mr(this._dEH,e)}toJSON(){}}const is=(e,t,n)=>{e.doc??Qr(),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},os=e=>{e.doc??Qr();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},cs=(e,t)=>{let n=0,r=e._start;for(e.doc??Qr();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}},ls=(e,t)=>{const n=[];return cs(e,(r,s)=>{n.push(t(r,s,e))}),n},as=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??Qr();const n=ts(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}},ds=(e,t,n,r)=>{let s=n;const i=e.doc,o=i.clientID,c=i.store,l=null===n?t._start:n.right;let a=[];const u=()=>{a.length>0&&(s=new gi(_r(o,Cr(c,o)),s,s&&s.lastId,l,l&&l.id,t,null,new ri(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 gi(_r(o,Cr(c,o)),s,s&&s.lastId,l,l&&l.id,t,null,new Gs(new Uint8Array(n))),s.integrate(e,0);break;case sr:s=new gi(_r(o,Cr(c,o)),s,s&&s.lastId,l,l&&l.id,t,null,new Xs(n)),s.integrate(e,0);break;default:if(!(n instanceof ss))throw new Error("Unexpected content type in insert operation");s=new gi(_r(o,Cr(c,o)),s,s&&s.lastId,l,l&&l.id,t,null,new fi(n)),s.integrate(e,0)}}}),u()},hs=()=>We("Length exceeded!"),fs=(e,t,n,r)=>{if(n>t._length)throw hs();if(0===n)return t._searchMarker&&ns(t._searchMarker,n,r.length),ds(e,t,null,r);const s=n,i=ts(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&&jr(e,_r(o.id.client,o.id.clock+n));break}n-=o.length}return t._searchMarker&&ns(t._searchMarker,s,r.length),ds(e,t,o,r)},ps=(e,t,n,r)=>{if(0===r)return;const s=n,i=r,o=ts(t,n);let c=t._start;for(null!==o&&(c=o.p,n-=o.index);null!==c&&n>0;c=c.right)!c.deleted&&c.countable&&(n<c.length&&jr(e,_r(c.id.client,c.id.clock+n)),n-=c.length);for(;r>0&&null!==c;)c.deleted||(r<c.length&&jr(e,_r(c.id.client,c.id.clock+r)),c.delete(e),r-=c.length),c=c.right;if(r>0)throw hs();t._searchMarker&&ns(t._searchMarker,s,-i+r)},gs=(e,t,n)=>{const r=t._map.get(n);void 0!==r&&r.delete(e)},ys=(e,t,n,r)=>{const s=t._map.get(n)||null,i=e.doc,o=i.clientID;let c;if(null==r)c=new ri([r]);else switch(r.constructor){case Number:case Object:case Boolean:case Array:case String:case Date:case BigInt:c=new ri([r]);break;case Uint8Array:c=new Gs(r);break;case sr:c=new Xs(r);break;default:if(!(r instanceof ss))throw new Error("Unexpected content type");c=new fi(r)}new gi(_r(o,Cr(i.store,o)),s,s&&s.lastId,null,null,t,n,c).integrate(e,0)},ms=(e,t)=>{e.doc??Qr();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??Qr(),e._map.forEach((e,n)=>{e.deleted||(t[n]=e.content.getContent()[e.length-1])}),t},vs=(e,t)=>{e.doc??Qr();const n=e._map.get(t);return void 0!==n&&!n.deleted},ws=e=>{return e.doc??Qr(),t=e._map.entries(),n=e=>!e[1].deleted,Jn(()=>{let e;do{e=t.next()}while(!e.done&&!n(e.value));return e});var t,n};class _s extends Gr{}class ks extends ss{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 ss?e.clone():e)),e}get length(){return this.doc??Qr(),this._length}_callObserver(e,t){super._callObserver(e,t),rs(this,e,new _s(this,e))}insert(e,t){null!==this.doc?Nr(this.doc,n=>{fs(n,this,e,t)}):this._prelimContent.splice(e,0,...t)}push(e){null!==this.doc?Nr(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;ds(e,t,r,n)})(t,this,e)}):this._prelimContent.push(...e)}unshift(e){this.insert(0,e)}delete(e,t=1){null!==this.doc?Nr(this.doc,n=>{ps(n,this,e,t)}):this._prelimContent.splice(e,t)}get(e){return us(this,e)}toArray(){return os(this)}slice(e=0,t=this.length){return is(this,e,t)}toJSON(){return this.map(e=>e instanceof ss?e.toJSON():e)}map(e){return ls(this,e)}forEach(e){cs(this,e)}[Symbol.iterator](){return as(this)}_write(e){e.writeTypeRef(oi)}}class Ss extends Gr{constructor(e,t,n){super(e,t),this.keysChanged=n}}class xs extends ss{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 xs}clone(){const e=new xs;return this.forEach((t,n)=>{e.set(n,t instanceof ss?t.clone():t)}),e}_callObserver(e,t){rs(this,e,new Ss(this,e,t))}toJSON(){this.doc??Qr();const e={};return this._map.forEach((t,n)=>{if(!t.deleted){const r=t.content.getContent()[t.length-1];e[n]=r instanceof ss?r.toJSON():r}}),e}get size(){return[...ws(this)].length}keys(){return qn(ws(this),e=>e[0])}values(){return qn(ws(this),e=>e[1].content.getContent()[e[1].length-1])}entries(){return qn(ws(this),e=>[e[0],e[1].content.getContent()[e[1].length-1]])}forEach(e){this.doc??Qr(),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?Nr(this.doc,t=>{gs(t,this,e)}):this._prelimContent.delete(e)}set(e,t){return null!==this.doc?Nr(this.doc,n=>{ys(n,this,e,t)}):this._prelimContent.set(e,t),t}get(e){return ms(this,e)}has(e){return vs(this,e)}clear(){null!==this.doc?Nr(this.doc,e=>{this.forEach(function(t,n,r){gs(e,r,n)})}):this._prelimContent.clear()}_write(e){e.writeTypeRef(ci)}}const Es=(e,t)=>e===t||"object"==typeof e&&"object"==typeof t&&e&&t&&((e,t)=>e===t||_n(e)===_n(t)&&((e,t)=>{for(const n in e)if(!t(e[n],n))return!1;return!0})(e,(e,n)=>(void 0!==e||kn(t,n))&&t[n]===e))(e,t);class Cs{constructor(e,t,n,r){this.left=e,this.right=t,this.index=n,this.currentAttributes=r}forward(){if(null===this.right&&Ke(),this.right.content.constructor===ei)this.right.deleted||Ds(this.currentAttributes,this.right.content);else this.right.deleted||(this.index+=this.right.length);this.left=this.right,this.right=this.right.right}}const As=(e,t,n)=>{for(;null!==t.right&&n>0;){if(t.right.content.constructor===ei)t.right.deleted||Ds(t.currentAttributes,t.right.content);else t.right.deleted||(n<t.right.length&&jr(e,_r(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},Is=(e,t,n,r)=>{const s=new Map,i=r?ts(t,n):null;if(i){const t=new Cs(i.p.left,i.p,i.index,s);return As(e,t,n-i.index)}{const r=new Cs(null,t._start,0,s);return As(e,r,n)}},Os=(e,t,n,r)=>{for(;null!==n.right&&(!0===n.right.deleted||n.right.content.constructor===ei&&Es(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 c=n.left,l=n.right,a=new gi(_r(i,Cr(s.store,i)),c,c&&c.lastId,l,l&&l.id,t,null,new ei(o,r));a.integrate(e,0),n.right=a,n.forward()})},Ds=(e,t)=>{const{key:n,value:r}=t;null===r?e.delete(n):e.set(n,r)},js=(e,t)=>{for(;null!==e.right&&(e.right.deleted||e.right.content.constructor===ei&&Es(t[e.right.content.key]??null,e.right.content.value));)e.forward()},Ts=(e,t,n,r)=>{const s=e.doc,i=s.clientID,o=new Map;for(const c in r){const l=r[c],a=n.currentAttributes.get(c)??null;if(!Es(a,l)){o.set(c,a);const{left:r,right:u}=n;n.right=new gi(_r(i,Cr(s.store,i)),r,r&&r.lastId,u,u&&u.id,t,null,new ei(c,l)),n.right.integrate(e,0),n.forward()}}return o},Us=(e,t,n,r,s)=>{n.currentAttributes.forEach((e,t)=>{void 0===s[t]&&(s[t]=null)});const i=e.doc,o=i.clientID;js(n,s);const c=Ts(e,t,n,s),l=r.constructor===String?new si(r):r instanceof ss?new fi(r):new Zs(r);let{left:a,right:u,index:d}=n;t._searchMarker&&ns(t._searchMarker,n.index,l.getLength()),u=new gi(_r(o,Cr(i.store,o)),a,a&&a.lastId,u,u&&u.id,t,null,l),u.integrate(e,0),n.right=u,n.index=d,n.forward(),Os(e,t,n,c)},Ps=(e,t,n,r,s)=>{const i=e.doc,o=i.clientID;js(n,s);const c=Ts(e,t,n,s);e:for(;null!==n.right&&(r>0||c.size>0&&(n.right.deleted||n.right.content.constructor===ei));){if(!n.right.deleted)switch(n.right.content.constructor){case ei:{const{key:t,value:i}=n.right.content,o=s[t];if(void 0!==o){if(Es(o,i))c.delete(t);else{if(0===r)break e;c.set(t,i)}n.right.delete(e)}else n.currentAttributes.set(t,i);break}default:r<n.right.length&&jr(e,_r(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 gi(_r(o,Cr(i.store,o)),n.left,n.left&&n.left.lastId,n.right,n.right&&n.right.id,t,null,new si(s)),n.right.integrate(e,0),n.forward()}Os(e,t,n,c)},Ls=(e,t,n,r,s)=>{let i=t;const o=nn();for(;i&&(!i.countable||i.deleted);){if(!i.deleted&&i.content.constructor===ei){const e=i.content;o.set(e.key,e)}i=i.right}let c=0,l=!1;for(;t!==i;){if(n===t&&(l=!0),!t.deleted){const n=t.content;switch(n.constructor){case ei:{const{key:i,value:a}=n,u=r.get(i)??null;o.get(i)===n&&u!==a||(t.delete(e),c++,l||(s.get(i)??null)!==a||u===a||(null===u?s.delete(i):s.set(i,u))),l||t.deleted||Ds(s,n);break}}}t=t.right}return c},Rs=e=>{let t=0;return Nr(e.doc,n=>{let r=e._start,s=e._start,i=nn();const o=rn(i);for(;s;){if(!1===s.deleted)if(s.content.constructor===ei)Ds(o,s.content);else t+=Ls(n,r,s,i,o),i=rn(o),r=s;s=s.right}}),t},$s=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&&Ur(e,n.store.clients.get(r),i,s,e=>{e.deleted||e.content.constructor!==ei||e.constructor===qs||t.add(e.parent)})}Nr(n,n=>{Qn(e,e.deleteSet,e=>{if(e instanceof qs||!e.parent._hasFormatting||t.has(e.parent))return;const r=e.parent;e.content.constructor===ei?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===ei){const r=t.content.key;n.has(r)?t.delete(e):n.add(r)}t=t.left}})(n,e)});for(const e of t)Rs(e)})},Bs=(e,t,n)=>{const r=n,s=rn(t.currentAttributes),i=t.right;for(;n>0&&null!==t.right;){if(!1===t.right.deleted)switch(t.right.content.constructor){case fi:case Zs:case si:n<t.right.length&&jr(e,_r(t.right.id.client,t.right.id.clock+n)),n-=t.right.length,t.right.delete(e)}t.forward()}i&&Ls(e,i,t.right,s,t.currentAttributes);const o=(t.left||t.right).parent;return o._searchMarker&&ns(o._searchMarker,t.index,-r+n),t};class Ns extends Gr{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=[];Nr(e,e=>{const n=new Map,r=new Map;let s=this.target._start,i=null;const o={};let c="",l=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 c||c.length>0)&&(e={insert:c},n.size>0&&(e.attributes={},n.forEach((t,n)=>{null!==t&&(e.attributes[n]=t)}))),c="";break;case"retain":l>0&&(e={retain:l},(e=>{for(const t in e)return!1;return!0})(o)||(e.attributes=bn({},o))),l=0}e&&t.push(e),i=null}};for(;null!==s;){switch(s.content.constructor){case fi:case Zs:this.adds(s)?this.deletes(s)||(u(),i="insert",c=s.content.getContent()[0],u()):this.deletes(s)?("delete"!==i&&(u(),i="delete"),a+=1):s.deleted||("retain"!==i&&(u(),i="retain"),l+=1);break;case si:this.adds(s)?this.deletes(s)||("insert"!==i&&(u(),i="insert"),c+=s.content.str):this.deletes(s)?("delete"!==i&&(u(),i="delete"),a+=s.length):s.deleted||("retain"!==i&&(u(),i="retain"),l+=s.length);break;case ei:{const{key:t,value:c}=s.content;if(this.adds(s)){if(!this.deletes(s)){const l=n.get(t)??null;Es(l,c)?null!==c&&s.delete(e):("retain"===i&&u(),Es(c,r.get(t)??null)?delete o[t]:o[t]=c)}}else if(this.deletes(s)){r.set(t,c);const e=n.get(t)??null;Es(e,c)||("retain"===i&&u(),o[t]=e)}else if(!s.deleted){r.set(t,c);const n=o[t];void 0!==n&&(Es(n,c)?null!==n&&s.delete(e):("retain"===i&&u(),null===c?delete o[t]:o[t]=c))}s.deleted||("insert"===i&&u(),Ds(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 Ms extends ss{constructor(e){super(),this._pending=void 0!==e?[()=>this.insert(0,e)]:[],this._searchMarker=[],this._hasFormatting=!1}get length(){return this.doc??Qr(),this._length}_integrate(e,t){super._integrate(e,t);try{this._pending.forEach(e=>e())}catch(e){}this._pending=null}_copy(){return new Ms}clone(){const e=new Ms;return e.applyDelta(this.toDelta()),e}_callObserver(e,t){super._callObserver(e,t);const n=new Ns(this,e,t);rs(this,e,n),!e.local&&this._hasFormatting&&(e._needFormattingCleanup=!0)}toString(){this.doc??Qr();let e="",t=this._start;for(;null!==t;)!t.deleted&&t.countable&&t.content.constructor===si&&(e+=t.content.str),t=t.right;return e}toJSON(){return this.toString()}applyDelta(e,{sanitize:t=!0}={}){null!==this.doc?Nr(this.doc,n=>{const r=new Cs(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)&&Us(n,this,r,o,i.attributes||{})}else void 0!==i.retain?Ps(n,this,r,i.retain,i.attributes||{}):void 0!==i.delete&&Bs(n,r,i.delete)}}):this._pending.push(()=>this.applyDelta(e))}toDelta(e,t,n){this.doc??Qr();const r=[],s=new Map,i=this.doc;let o="",c=this._start;function l(){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!==c;){if(kr(c,e)||void 0!==t&&kr(c,t))switch(c.content.constructor){case si:{const r=s.get("ychange");void 0===e||kr(c,e)?void 0===t||kr(c,t)?void 0!==r&&(l(),s.delete("ychange")):void 0!==r&&r.user===c.id.client&&"added"===r.type||(l(),s.set("ychange",n?n("added",c.id):{type:"added"})):void 0!==r&&r.user===c.id.client&&"removed"===r.type||(l(),s.set("ychange",n?n("removed",c.id):{type:"removed"})),o+=c.content.str;break}case fi:case Zs:{l();const e={insert:c.content.getContent()[0]};if(s.size>0){const t={};e.attributes=t,s.forEach((e,n)=>{t[n]=e})}r.push(e);break}case ei:kr(c,e)&&(l(),Ds(s,c.content))}c=c.right}l()};return e||t?Nr(i,n=>{e&&Sr(n,e),t&&Sr(n,t),a()},"cleanup"):a(),r}insert(e,t,n){if(t.length<=0)return;const r=this.doc;null!==r?Nr(r,r=>{const s=Is(r,this,e,!n);n||(n={},s.currentAttributes.forEach((e,t)=>{n[t]=e})),Us(r,this,s,t,n)}):this._pending.push(()=>this.insert(e,t,n))}insertEmbed(e,t,n){const r=this.doc;null!==r?Nr(r,r=>{const s=Is(r,this,e,!n);Us(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?Nr(n,n=>{Bs(n,Is(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?Nr(r,r=>{const s=Is(r,this,e,!1);null!==s.right&&Ps(r,this,s,t,n)}):this._pending.push(()=>this.format(e,t,n))}removeAttribute(e){null!==this.doc?Nr(this.doc,t=>{gs(t,this,e)}):this._pending.push(()=>this.removeAttribute(e))}setAttribute(e,t){null!==this.doc?Nr(this.doc,n=>{ys(n,this,e,t)}):this._pending.push(()=>this.setAttribute(e,t))}getAttribute(e){return ms(this,e)}getAttributes(){return bs(this)}_write(e){e.writeTypeRef(li)}}class Fs{constructor(e,t=()=>!0){this._filter=t,this._root=e,this._currentNode=e._start,this._firstCall=!0,e.doc??Qr()}[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!==zs&&t.constructor!==Ws||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 Ws extends ss{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 Ws}clone(){const e=new Ws;return e.insert(0,this.toArray().map(e=>e instanceof ss?e.clone():e)),e}get length(){return this.doc??Qr(),null===this._prelimContent?this._length:this._prelimContent.length}createTreeWalker(e){return new Fs(this,e)}querySelector(e){e=e.toUpperCase();const t=new Fs(this,t=>t.nodeName&&t.nodeName.toUpperCase()===e).next();return t.done?null:t.value}querySelectorAll(e){return e=e.toUpperCase(),he(new Fs(this,t=>t.nodeName&&t.nodeName.toUpperCase()===e))}_callObserver(e,t){rs(this,e,new Ks(this,t,e))}toString(){return ls(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),cs(this,s=>{r.insertBefore(s.toDOM(e,t,n),null)}),r}insert(e,t){null!==this.doc?Nr(this.doc,n=>{fs(n,this,e,t)}):this._prelimContent.splice(e,0,...t)}insertAfter(e,t){if(null!==this.doc)Nr(this.doc,n=>{const r=e&&e instanceof ss?e._item:e;ds(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 We("Reference item not found");n.splice(r,0,...t)}}delete(e,t=1){null!==this.doc?Nr(this.doc,n=>{ps(n,this,e,t)}):this._prelimContent.splice(e,t)}toArray(){return os(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){cs(this,e)}_write(e){e.writeTypeRef(ui)}}class zs extends Ws{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 zs(this.nodeName)}clone(){const e=new zs(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 ss?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?Nr(this.doc,t=>{gs(t,this,e)}):this._prelimAttrs.delete(e)}setAttribute(e,t){null!==this.doc?Nr(this.doc,n=>{ys(n,this,e,t)}):this._prelimAttrs.set(e,t)}getAttribute(e){return ms(this,e)}hasAttribute(e){return vs(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 cs(this,s=>{r.appendChild(s.toDOM(e,t,n))}),void 0!==n&&n._createAssociation(r,this),r}_write(e){e.writeTypeRef(ai),e.writeKey(this.nodeName)}}class Ks extends Gr{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 Vs extends xs{constructor(e){super(),this.hookName=e}_copy(){return new Vs(this.hookName)}clone(){const e=new Vs(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(di),e.writeKey(this.hookName)}}class Hs extends Ms{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 Hs}clone(){const e=new Hs;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(hi)}}class Js{constructor(e,t){this.id=e,this.length=t}get deleted(){throw ze()}mergeWith(e){return!1}write(e,t,n){throw ze()}integrate(e,t){throw ze()}}class qs extends Js{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),Ar(e.doc.store,this)}write(e,t){e.writeInfo(0),e.writeLen(this.length-t)}getMissing(e,t){return null}}class Gs{constructor(e){this.content=e}getLength(){return 1}getContent(){return[this.content]}isCountable(){return!0}copy(){return new Gs(this.content)}splice(e){throw ze()}mergeWith(e){return!1}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeBuf(this.content)}getRef(){return 3}}class Ys{constructor(e){this.len=e}getLength(){return this.len}getContent(){return[]}isCountable(){return!1}copy(){return new Ys(this.len)}splice(e){const t=new Ys(this.len-e);return this.len=e,t}mergeWith(e){return this.len+=e.len,!0}integrate(e,t){er(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 Qs=(e,t)=>new sr({guid:e,...t,shouldLoad:t.shouldLoad||t.autoLoad||!1});class Xs{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 Xs(Qs(this.doc.guid,this.opts))}splice(e){throw ze()}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 Zs{constructor(e){this.embed=e}getLength(){return 1}getContent(){return[this.embed]}isCountable(){return!0}copy(){return new Zs(this.embed)}splice(e){throw ze()}mergeWith(e){return!1}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeJSON(this.embed)}getRef(){return 5}}class ei{constructor(e,t){this.key=e,this.value=t}getLength(){return 1}getContent(){return[]}isCountable(){return!1}copy(){return new ei(this.key,this.value)}splice(e){throw ze()}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 ti{constructor(e){this.arr=e}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new ti(this.arr)}splice(e){const t=new ti(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 ni="development"===jn("node_env");class ri{constructor(e){this.arr=e,ni&&xn(e)}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new ri(this.arr)}splice(e){const t=new ri(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 si{constructor(e){this.str=e}getLength(){return this.str.length}getContent(){return this.str.split("")}isCountable(){return!0}copy(){return new si(this.str)}splice(e){const t=new si(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 xs,e=>new Ms,e=>new zs(e.readKey()),e=>new Ws,e=>new Vs(e.readKey()),e=>new Hs],oi=0,ci=1,li=2,ai=3,ui=4,di=5,hi=6;class fi{constructor(e){this.type=e}getLength(){return 1}getContent(){return[this.type]}isCountable(){return!0}copy(){return new fi(this.type._copy())}splice(e){throw ze()}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 pi=(e,t,n)=>{const{client:r,clock:s}=t.id,i=new gi(_r(r,s+n),t,_r(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=_r(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 gi extends Js{constructor(e,t,n,r,s,i,o,c){super(e,c.getLength()),this.origin=n,this.left=t,this.right=r,this.rightOrigin=s,this.parent=i,this.parentSub=o,this.redone=null,this.content=c,this.info=this.content.isCountable()?2:0}set marker(e){(8&this.info)>0!==e&&(this.info^=8)}get marker(){return(8&this.info)>0}get keep(){return(1&this.info)>0}set keep(e){this.keep!==e&&(this.info^=1)}get countable(){return(2&this.info)>0}get deleted(){return(4&this.info)>0}set deleted(e){this.deleted!==e&&(this.info^=4)}markDeleted(){this.info|=4}getMissing(e,t){if(this.origin&&this.origin.client!==this.id.client&&this.origin.clock>=Cr(t,this.origin.client))return this.origin.client;if(this.rightOrigin&&this.rightOrigin.client!==this.id.client&&this.rightOrigin.clock>=Cr(t,this.rightOrigin.client))return this.rightOrigin.client;if(this.parent&&this.parent.constructor===vr&&this.id.client!==this.parent.client&&this.parent.clock>=Cr(t,this.parent.client))return this.parent.client;if(this.origin&&(this.left=Tr(e,t,this.origin),this.origin=this.left.lastId),this.rightOrigin&&(this.right=jr(e,this.rightOrigin),this.rightOrigin=this.right.id),this.left&&this.left.constructor===qs||this.right&&this.right.constructor===qs)this.parent=null;else if(this.parent){if(this.parent.constructor===vr){const e=Or(t,this.parent);e.constructor===qs?this.parent=null:this.parent=e.content.type}}else this.left&&this.left.constructor===gi?(this.parent=this.left.parent,this.parentSub=this.left.parentSub):this.right&&this.right.constructor===gi&&(this.parent=this.right.parent,this.parentSub=this.right.parentSub);return null}integrate(e,t){if(t>0&&(this.id.clock+=t,this.left=Tr(e,e.doc.store,_r(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(Or(e.doc.store,t.origin)))break;r.has(Or(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),Ar(e.doc.store,this),this.content.integrate(e,this),Rr(e,this.parent,this.parentSub),(null!==this.parent._item&&this.parent._item.deleted||null!==this.parentSub&&null!==this.right)&&this.delete(e)}else new qs(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:_r(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(),er(e.deleteSet,this.id.client,this.id.clock,this.length),Rr(e,t,this.parentSub),this.content.delete(e)}}gc(e,t){if(!this.deleted)throw Ke();this.content.gc(e),t?((e,t,n)=>{const r=e.clients.get(t.id.client);r[Ir(r,t.id.clock)]=n})(e,this,new qs(this.id,this.length)):this.content=new Ys(this.length)}write(e,t){const n=t>0?_r(this.id.client,this.id.clock+t-1):this.origin,r=this.rightOrigin,s=this.parentSub,i=31&this.content.getRef()|(null===n?0:ie)|(null===r?0:se)|(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 Ke()})(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===vr?(e.writeParentInfo(!1),e.writeLeftID(t)):Ke();null!==s&&e.writeString(s)}this.content.write(e,t)}}const yi=(e,t)=>mi[31&t](e),mi=[()=>{Ke()},e=>new Ys(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 ti(n)},e=>new Gs(e.readBuf()),e=>new si(e.readString()),e=>new Zs(e.readJSON()),e=>new ei(e.readKey(),e.readJSON()),e=>new fi(ii[e.readTypeRef()](e)),e=>{const t=e.readLen(),n=[];for(let r=0;r<t;r++)n.push(e.readAny());return new ri(n)},e=>new Xs(Qs(e.readString(),e.readAny())),()=>{Ke()}];class bi extends Js{get deleted(){return!0}delete(){}mergeWith(e){return this.constructor===e.constructor&&(this.length+=e.length,!0)}integrate(e,t){Ke()}write(e,t){e.writeInfo(10),Ee(e.restEncoder,this.length-t)}getMissing(e,t){return null}}const vi="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},wi="__ $YJS$ __";function _i(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}vi[wi],vi[wi]=!0;const ki=new FinalizationRegistry(({cache:e,key:t})=>{delete e[t]});function Si(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=Ci(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=Ci(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=Ci(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 xi=new WeakSet;function Ei(e){if(xi.has(e))throw new Error(`Y.Doc ${e.meta.parentId} has been destroyed`)}function Ci(e,t,n){return`${e}[${t}].${n}`}const{getByKeyPath:Ai}=e.Dexie;let Ii=null;function Oi(e){Ii=e}function Di(){}const ji=new WeakMap;function Ti(){return e.Dexie.Events(null,"load","sync","error")}class Ui{static getOrCreateDocument(e,t,n,r){var s,i;const o=Si(e),c=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(!c)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 sr({meta:{db:e,updatesTable:s,parentProp:r,parentTable:n,parentId:i}}),t.add(o),o.on("destroy",()=>{xi.add(o),t.delete(o)}),o)}(e,o,t,n,c,r)}static load(e,t){var n;let r=ji.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 Ui(e),r.graceTimeout=null!==(n=null==t?void 0:t.gracePeriod)&&void 0!==n?n:-1,ji.set(e,r)),r}static release(e){if(!e||xi.has(e))return;const t=ji.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(Ui.on("beforeunload").fire(this)).finally(()=>{var e;0===this.refCount&&(null===(e=this.doc)||void 0===e||e.destroy())})}static for(e){return ji.get(e)}static get currentUpdateRow(){return Ii}get whenLoaded(){return this._whenLoaded||(this._whenLoaded=new Promise((t,n)=>{this.doc?this.doc.isLoaded?t():this._error?n(this._error):xi.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):xi.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=Ti(),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]=()=>Ui.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`);Ei(t),this.stopObserving=function(t,n,r,s,i,o){let c=0,l=!0;const a=e.liveQuery(()=>{Ei(n);const t=r.table(i);return Promise.all([(c>0?t.where("i").between(c,1/0,!1).toArray().then(t=>t.filter(t=>0===e.cmp(t.k,o))):t.where({k:o}).toArray()).then(e=>e),r.table(s).where(":id").equals(o).toArray()])}).subscribe(([e,r])=>{e.length>0&&(c=e[e.length-1].i),0!==r.length?(Ei(n),e.length>0&&Nr(n,()=>{e.forEach(e=>{try{Oi(e),fr(n,e.u)}finally{Oi(null)}})},t,!1),l&&(l=!1,n.emit("load",[n]))):n.destroy()},e=>{t.on("error").fire(e)}),u=(e,n)=>{n!==t&&r.table(i).add({k:o,u:e,f:1}).then(e=>{e===c-1&&++c}).catch(e=>{t.on("error").fire(e)})},d=()=>{a.unsubscribe(),n.off("updateV2",u),n.off("destroy",d)};return n.on("updateV2",u),n.on("destroy",d),d}(this,t,n,r,i,s),Ui.on("new").fire(this)}destroy(){var e;ji.delete(this.doc),this.doc=null,this.destroyed=!0,this.refCount=0,null===(e=this.stopObserving)||void 0===e||e.call(this),this.on=Ti(),this.cleanupHandlers.forEach(e=>e())}addCleanupHandler(e){this.cleanupHandlers.push("function"==typeof e?e:()=>e.unsubscribe())}}function Pi(t,n){return r(this,void 0,void 0,function*(){var s;const i={};let o,c=!1;for(const l of t)try{switch(l.type){case"u-s":{const e=_i(n,l.table,l.prop);if(e){const t={k:l.k,u:l.u};l.r&&(t.r=l.r,o=l.r),i[e.name]=yield e.add(t)}break}case"u-ack":{const e=_i(n,l.table,l.prop);e&&(yield n.transaction("rw",e,t=>r(this,void 0,void 0,function*(){let n=yield t.table(e.name).get(en);yield t.table(e.name).put(Object.assign(Object.assign({},n||{i:en}),{unsentFrom:Math.max((null==n?void 0:n.unsentFrom)||1,l.i+1)}))})));break}case"u-reject":{const t=_i(n,l.table,l.prop);if(!t)break;const r=null===(s=yield t.get(l.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(l.i).filter(t=>0===e.cmp(t.k,r)&&!(1&~(t.f||0))).delete()));const s=Ui.getDocCache(n.dx).find(l.table,r,l.prop);s&&s.destroy()}break}case"in-sync":{const e=Ui.getDocCache(n.dx).find(l.table,l.k,l.prop);e&&!e.isSynced&&e.emit("sync",[!0,e]);break}case"y-complete-sync-done":o=l.yServerRev;break;case"outdated-server-rev":c=!0}}catch(e){}return{receivedUntils:i,resyncNeeded:c,yServerRevision:o}})}Ui.on=e.Dexie.Events(null,{new:[function(e,t){return e===Di?t:function(){e.apply(this,arguments),t.apply(this,arguments)}}],beforeunload:[function(e,t){return e===Di?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)}}]}),Ui.getDocCache=Si,e.Dexie.DexieYProvider?Ui=e.Dexie.DexieYProvider||Ui:e.Dexie.DexieYProvider=Ui;const Li=new Map,Ri=new Set(["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array","DataView"]),$i=new Set(["Blob","File","ArrayBuffer",...Ri]);function Bi(e){return Object.prototype.toString.call(e).slice(8,-1)}function Ni(e){if("object"!==typeof e||null===e)return!1;const t=Bi(e);return!!$i.has(t)&&("Blob"===t||"File"===t||e.byteLength>=4096)}function Mi(e,t,n){return r(this,void 0,void 0,function*(){const r=yield t();if(!r)throw new Error("Failed to load access token for blob upload");const s=function(){const e=new Uint8Array(18),t=new Uint8Array(e.buffer,0,6),n=Date.now();K>=n?++K:K=n,t[0]=K/1099511627776,t[1]=K/4294967296,t[2]=K/16777216,t[3]=K/65536,t[4]=K/256,t[5]=K;const r=new Uint8Array(e.buffer,6);return z(r),P(e)}(),i=`${e}/blob/${s}`;let o,c,l;const a=function(e){const t=Bi(e);return"Blob"===t||"File"===t?"Blob":"ArrayBuffer"===t?"ArrayBuffer":t}(n),u=Bi(n);if("Blob"===u||"File"===u)o=n,c=n.type||"application/octet-stream",l=n.size;else if("ArrayBuffer"===u)o=n,c="application/octet-stream",l=n.byteLength;else{if(!Ri.has(u))throw new Error(`Unsupported blob type: ${u}`);{const e=n,t=new ArrayBuffer(e.byteLength);new Uint8Array(t).set(new Uint8Array(e.buffer,e.byteOffset,e.byteLength)),o=t,c="application/octet-stream",l=e.byteLength}}const d=`${i}?ct=${encodeURIComponent(c)}`,h=yield fetch(d,{method:"PUT",headers:{Authorization:`Bearer ${r}`,"Content-Type":c},body:o});if(!h.ok){if(404===h.status||405===h.status)return null;throw new Error(`Failed to upload blob: ${h.status} ${h.statusText}`)}const f=yield h.json();return Object.assign({_bt:a,ref:f.ref,size:l},"Blob"===a?{ct:c}:{})})}function Fi(e,t,n){return r(this,arguments,void 0,function*(e,t,n,r=32768){const s={dirty:!1},i=yield Wi(e,t,n,r,s);return s.dirty&&"object"==typeof i&&null!==i&&i.constructor===Object&&(i._hasBlobRefs=1),i})}function Wi(e,t,n){return r(this,arguments,void 0,function*(e,t,n,r=32768,s={dirty:!1},i=new WeakSet){if(null==e)return e;if("string"==typeof e&&e.length>r&&r!==1/0){if(!1===Li.get(t))return e;const r=new Blob([e],{type:"text/plain;charset=utf-8"}),i=yield Mi(t,n,r);return null===i?(Li.set(t,!1),e):(Li.set(t,!0),s.dirty=!0,Object.assign(Object.assign({},i),{_bt:"string"}))}if(Ni(e)){if(!1===Li.get(t))return e;const r=yield Mi(t,n,e);return null===r?(Li.set(t,!1),e):(Li.set(t,!0),s.dirty=!0,r)}if("object"!=typeof e)return e;if(i.has(e))return e;if(i.add(e),Array.isArray(e)){const o=[];for(const c of e)o.push(yield Wi(c,t,n,r,s,i));return o}const o=Object.getPrototypeOf(e);if(o!==Object.prototype&&null!==o)return e;const c={};for(const[o,l]of Object.entries(e))c[o]=yield Wi(l,t,n,r,s,i);return c})}function zi(e,t,n){return r(this,arguments,void 0,function*(e,t,n,r=32768){switch(e.type){case"insert":case"upsert":{const s=yield Promise.all(e.values.map(e=>Fi(e,t,n,r)));return Object.assign(Object.assign({},e),{values:s})}case"update":{const s=yield Promise.all(e.changeSpecs.map(e=>Fi(e,t,n,r)));return Object.assign(Object.assign({},e),{changeSpecs:s})}case"modify":{const s=yield Fi(e.changeSpec,t,n,r);return Object.assign(Object.assign({},e),{changeSpec:s})}default:return e}})}function Ki(e,t){switch(e.type){case"insert":case"upsert":return e.values.some(e=>Vi(e,t));case"update":return e.changeSpecs.some(e=>Vi(e,t));case"modify":return Vi(e.changeSpec,t);default:return!1}}function Vi(e,t,n=new WeakSet){if(null==e)return!1;if("string"==typeof e&&e.length>t&&t!==1/0)return!0;if(Ni(e))return!0;if("object"!=typeof e)return!1;if(n.has(e))return!1;if(n.add(e),Array.isArray(e))return e.some(e=>Vi(e,t,n));const r=Object.getPrototypeOf(e);return(r===Object.prototype||null===r)&&Object.values(e).some(e=>Vi(e,t,n))}function Hi(t,n,s){return r(this,arguments,void 0,function*(t,n,{yDownloadedRealms:s,realms:l}){if(s&&l&&l.every(e=>"*"===s[e]))return;const a=yield Ot(t),u={"Content-Type":"application/json",Accept:"application/octet-stream"};a&&(u.Authorization=`Bearer ${a.accessToken}`);const d=yield fetch(`${n}/y/download`,{body:Rt.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),at,function(s){return o(this,arguments,function*(){var o,l,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=_i(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=c(s);!(o=(y=yield i(b.next())).done);m=!0){u=y.value,m=!1;const e=new Je(u);for(;Ge(e);)switch(Qe(e)){case 1:yield i(g(!0)),d=et(e);break;case 2:yield i(g(!1)),h=et(e),f=et(e);break;case 3:{const t=st(e),n=Ye(e);p.push({k:t,u:n});break}}yield i(g(!1))}}catch(e){l={error:e}}finally{try{m||o||!(a=b.return)||(yield i(a.call(b)))}finally{if(l)throw l.error}}yield i(g(!0))}catch(t){throw t instanceof e.DexieError||(yield i(g(!1))),t}})})})}const Ji=new WeakMap;function qi(t){var n,r,s,i;let o=Ji.get(t);if(o&&o.expiration>Date.now()+3e5)return Promise.resolve(o.accessToken);const c=t.cloud.currentUser.value;return c&&c.accessToken&&(null!==(r=null===(n=c.accessTokenExpiration)||void 0===n?void 0:n.getTime())&&void 0!==r?r:1/0)>Date.now()+3e5?(Ji.set(t,{accessToken:c.accessToken,expiration:null!==(i=null===(s=c.accessTokenExpiration)||void 0===s?void 0:s.getTime())&&void 0!==i?i:1/0}),Promise.resolve(c.accessToken)):e.ignoreTransaction(()=>Ot(t).then(e=>{var n,r;return(null==e?void 0:e.accessToken)&&Ji.set(t,{accessToken:e.accessToken,expiration:null!==(r=null===(n=e.accessTokenExpiration)||void 0===n?void 0:n.getTime())&&void 0!==r?r:1/0}),(null==e?void 0:e.accessToken)||null}))}const Gi="currentSyncWorker";function Yi(e,t,n,s){return Qi(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):Kt&&(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 Yi(e,t,n,Object.assign(Object.assign({},s),{retryImmediatelyOnFetchError:!1}))):(yield e.$syncState.update("syncState",{timestamp:new Date,error:""+i}),e.syncStateChangedEvent.next({phase:Kt?"error":"offline",error:new Error(""+(null==i?void 0:i.message)||i)}),Promise.reject(i))}))}function Qi(e,t,n){return r(this,arguments,void 0,function*(e,t,n,{isInitialSync:s,cancelToken:i,justCheckIfNeeded:o,purpose:c}={isInitialSync:!1}){var a,u,d;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:h}=t,f=yield e.getCurrentUser(),p=f.isLoggedIn?dt(e):[],g=p.map(t=>e.table(ht(t.name))),y=yield e.getPersistedSyncState(),m=f.isLoggedIn,b=m?function(e,t){const n=(null==t?void 0:t.syncedTables)||[];return dt(e).filter(e=>!n.includes(e.name))}(e,y):[];zt(i);const v=b.length>0;if(v){if(o)return!0;yield e.transaction("rw",b,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!==l.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!==l.userId||(e.owner=t.userId)}):yield n.toCollection().modify(e=>{e.realmId&&r.has(e.realmId)||(e.owner&&e.owner!==l.userId||(e.owner=t.userId),e.realmId&&e.realmId!==l.userId||(e.realmId=t.userId))}))})}(b,f,null==y?void 0:y.realms)})),zt(i)}const[w,_,k,{yMessages:S,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=>p.some(t=>t.name===e.tableName));let o=yield yt(g,e);const c=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(en),c=(null==o?void 0:o.unsentFrom)||1,l=(null==o?void 0:o.receivedUntil)||0,a=Math.min(c,l+1),u=yield tn(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<c)continue;const n=JSON.stringify(e.k)+"/"+t;let r=d[n];r?(r.u.push(e.u),r.i=Math.max(e.i,r.i)):(d[n]=r={i:e.i,k:e.k,isLocal:t,u:[]},r.u.push(e.u))}for(const{k:e,isLocal:r,u:i,i:o}of Object.values(d)){const c=1===i.length?i[0]:Kr(i);if(r)n.push({type:"u-c",table:s.name,prop:t.prop,k:e,u:c,i:o});else{const r=Wr(c);n.push({type:"sv",table:s.name,prop:t.prop,k:e,sv:r})}}}return{yMessages:n,lastUpdateIds:r}})}(e,p);if(zt(i),v){const e=[...(null==y?void 0:y.realms)||[],...(null==y?void 0:y.inviteRealms)||[]],l=yield function(e,t,n,s){return r(this,void 0,void 0,function*(){const i=`upload-${mt(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],c=(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||"")&&G(t)}),l=yield c.toArray();if(l.length>0){const n={type:"upsert",values:l,keys:l.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[]})}(b,f,n,e);return zt(i),o=o.concat(l),[o,t,s,c]}return[o,t,s,c]})),E=w.some(e=>e.muts.some(e=>e.keys.length>0))||S.some(e=>"u-c"===e.type);if(o)return E;if("push"===c&&!E)return!1;const C=Ht(w,null==_?void 0:_.latestRevisions),A=(null==_?void 0:_.clientIdentity)||J(16);let I=w;const O=null!==(d=null===(u=e.cloud.options)||void 0===u?void 0:u.maxStringLength)&&void 0!==d?d:32768,D=function(e,t=32768){for(const n of e)for(const e of n.muts)if(Ki(e,t))return!0;return!1}(w,O);D&&(I=yield function(e,t,n){return r(this,arguments,void 0,function*(e,t,n,r=32768){const s=[];for(const i of e){const e=[];for(const s of i.muts){const i=yield zi(s,t,n,r);e.push(i)}s.push({table:i.table,muts:e})}return s})}(w,h,()=>qi(e),O)),zt(i);const j=yield Wt(I,S,_,k,e,h,n,A,f),{done:T,newSyncState:U}=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))j.schema[e]&&(n[e]=j.schema[e]);yield e.$syncState.put(n,"schema");const s=yield yt(g,e,{since:C});for(const t of g){const n=ft(t.name);if(s.some(e=>e.table===n&&e.muts.length>0)){if(C[n]){const r=C[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()])}Ht(s,C),yield Vt(e,n,C,j.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:[],c=new Set(t.realms),l=new Set(t.realms.concat(t.inviteRealms));for(const e of i)c.has(e)||(s.add(e),l.has(e)||r.add(e));for(const e of o.concat(i))l.has(e)||r.add(e);if(r.size>0||s.size>0){const t=dt(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,j,i);const o=i||{syncedTables:[],latestRevisions:{},realms:[],inviteRealms:[],clientIdentity:A};m&&(o.syncedTables=p.map(e=>e.name).concat(b.map(e=>e.name))),o.latestRevisions=C,o.remoteDbId=j.dbId,o.initiallySynced=!0,o.realms=j.realms,o.inviteRealms=j.inviteRealms,o.serverRevision=j.serverRevision,o.yServerRevision=j.serverRevision,o.timestamp=new Date,delete o.error;const c=Xi(j.changes,s);if(yield Zt(c,e),j.yMessages){const{receivedUntils:t,resyncNeeded:n,yServerRevision:s}=yield Pi(j.yMessages,e);s&&(o.yServerRevision=s),yield function(e,t,n){return r(this,void 0,void 0,function*(){var s,i,o,c,l;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!==(l=null!==(c=null==t?void 0:t.receivedUntil)&&void 0!==c?c:(yield n.table(e).where("i").between(1,1/0).reverse().limit(1).primaryKeys())[0])&&void 0!==l?l:0;yield n.transaction("rw",e,()=>r(this,void 0,void 0,function*(){const t=yield n.table(e).get(en);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:en,unsentFrom:s,receivedUntil:i})}))}})}(x,t,e),n&&(o.yDownloadedRealms={})}return e.$syncState.put(o,"syncState"),{done:0===s.length,newSyncState:o}}));if(!T)return yield Ft(e),yield Qi(e,t,n,{isInitialSync:s,cancelToken:i});const P=Object.values(n).some(e=>{var t;return null===(t=e.yProps)||void 0===t?void 0:t.length}),L=!!j.yMessages;if(P&&L)try{yield Hi(e,h,U)}catch(e){}return e.syncCompleteEvent.next(),!1})}function Xi(e,t){const n={};X(n,e);const r={};return X(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))H(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 Zi(s){const i=[],o=new t.BehaviorSubject(!0),c=new t.BehaviorSubject(null);let l=!1,a=new Array(10).fill(0);return c.subscribe(()=>r(this,void 0,void 0,function*(){if(!l&&i.length>0){l=!0,a.shift(),a.push(Date.now()),o.next(!1);try{yield function(){return r(this,void 0,void 0,function*(){for(var o,c,l,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 jt(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===(c=null==i?void 0:i.inviteRealms)||void 0===c?void 0:c.includes(h.realm))||(yield s.cloud.sync({purpose:"pull",wait:!0}));break;case"realm-accepted":(null===(l=null==i?void 0:i.realms)||void 0===l?void 0:l.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!1;if(h.baseRev!==r.serverRevision)return"string"!=typeof h.baseRev||"bigint"!=typeof r.serverRevision&&"object"!=typeof r.serverRevision||y(s,"pull"),!1;if((yield e.waitFor(ut(r)))!==h.realmSetHash)return y(s,"pull"),!1;let o=[];if(i.isLoggedIn){const e=dt(s).map(e=>s.table(ht(e.name)));o=yield yt(e,s)}if(h.changes.length>0){const e=Xi(h.changes,o);yield Zt(e,s)}return r.latestRevisions=Ht(o,r.latestRevisions),r.serverRevision=h.newRev,yield Vt(s,n,r.latestRevisions,h.newRev),yield s.$syncState.put(r,"syncState"),!0})))&&h.changes.length>0&&s.syncCompleteEvent.next();break}}catch(e){}}})}()}finally{a[a.length-1]-a[0]<1e4&&(yield new Promise(e=>setTimeout(e,1e3))),l=!1,o.next(!0)}}})),{enqueue:function(e){i.push(e),c.next(null)},readyToServe:o}}class eo{constructor(e){this.inFlight=new Map,this.db=e}download(e,t){let n=this.inFlight.get(e.ref);return n||(n=qi(this.db).then(n=>{if(!n)throw new Error("No access token available for blob download");return function(e,t,n){return r(this,void 0,void 0,function*(){const r=`${t}/blob/${e.ref}`,s=yield fetch(r,{headers:{Authorization:`Bearer ${n}`}});if(!s.ok)throw new Error(`Failed to download blob ${e.ref}: ${s.status} ${s.statusText}`);const i=yield s.arrayBuffer();return new Uint8Array(i)})}(e,t,n)}).finally(()=>this.inFlight.delete(e.ref)),this.inFlight.set(e.ref,n)),n}}const to=new WeakMap,no={members:"@id, [userId+realmId], [email+realmId], realmId",roles:"[realmId+name]",realms:"@realmId",$jobs:"",$syncState:"",$baseRevs:"[tableName+clientRev]",$logins:"claims.sub, lastLogin"};let ro=0;function so(e){"vip"in e&&(e=e.vip);let n=to.get(e);if(!n){const r=new t.Subject;let s=new f(`syncstatechanged-${e.name}`),i=new f(`synccomplete-${e.name}`);r.id=++ro;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},get cloud(){return 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 c={getCurrentUser:()=>n.$logins.toArray().then(e=>e.find(e=>e.isLoggedIn)||l),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=io(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,c),n.messageConsumer=Zi(n),n.messageProducer=new t.Subject,n.blobDownloadTracker=new eo(n),to.set(e,n)}return n}function io(e){return"string"==typeof e?e:e?"["+[].join.call(e,"+")+"]":""}function oo(e,t){e.value!==t&&e.next(t)}function co(s,i){const o=t.from(e.liveQuery(()=>r(this,void 0,void 0,function*(){let e=0,t=0;const n=dt(s);return yield s.dx.transaction("r",n,s=>r(this,void 0,void 0,function*(){s.idbtrans.disableBlobResolve=!0;for(const r of n){if(!!!r.schema.idxByName._hasBlobRefs)continue;const n=yield r.where("_hasBlobRefs").equals(1).toArray();for(const r of n){const n=lo(r);e+=n.length,t+=n.reduce((e,t)=>e+(t.size||0),0)}}})),{blobsRemaining:e,bytesRemaining:t}})));return t.combineLatest([o,i]).pipe(n.map(([e,t])=>({isDownloading:t&&e.blobsRemaining>0,blobsRemaining:e.blobsRemaining,bytesRemaining:e.bytesRemaining})),n.share({resetOnRefCountZero:()=>t.timer(2e3)}))}function lo(e){const t=[];return function e(n){if(null!=n&&"object"==typeof n)if(k.isTSONRef(n))t.push({ref:n.ref,size:n.size});else{if(function(e){if("object"!=typeof e||null===e)return!1;const t=e;return"string"==typeof t.type&&"string"==typeof t.ref&&"number"==typeof t.size&&void 0===t._bt}(n)){const e=n;return void t.push({ref:e.ref,size:e.size})}qt(n)?t.push({ref:n.ref,size:n.size||0}):Array.isArray(n)?n.forEach(e):n.constructor===Object&&Object.values(n).forEach(e)}}(e),t}const ao=new WeakMap;class uo{constructor(e,t){ao.set(this,e),Object.assign(this,t)}static load(e,t){return e.table("$logins").get(t).then(n=>new uo(e,n||{userId:t,claims:{sub:t},lastLogin:new Date(0)}))}save(){return r(this,void 0,void 0,function*(){ao.get(this).table("$logins").put(this)})}}function ho(e,n){return t.firstValueFrom(t.from(e).pipe(t.filter(n)))}function fo(e){return r(this,void 0,void 0,function*(){const t=yield po(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 _t(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 po(e,{deleteUnsyncedData:!0})}})}function po(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 ho(e.cloud.currentUser,e=>e.userId===l.userId),yield e.cloud.sync({purpose:"pull",wait:!0})),n})}const go={access_denied:"Access was denied by the authentication provider.",invalid_state:"The authentication response could not be verified. Please try again.",email_not_verified:"Your email address must be verified before you can log in.",expired_code:"The authentication code has expired. Please try again.",provider_error:"An error occurred with the authentication provider.",network_error:"A network error occurred during authentication. Please check your connection and try again."};class yo extends Error{constructor(e,t,n){super(n||go[e]),this.name="OAuthError",this.code=e,this.provider=t}get userMessage(){return go[this.code]||this.message}}const mo={providers:[],otpEnabled:!0};function bo(e){return r(this,arguments,void 0,function*(e,t=!0){if(!t)return mo;try{const t=yield fetch(`${e}/auth-providers`,{method:"GET",headers:{Accept:"application/json"},mode:"cors"});return 404===t.status?mo:t.ok?yield t.json():mo}catch(e){return mo}})}function vo(e){if("undefined"==typeof window)throw new Error("OAuth redirect requires a browser environment");const t=function(e){const t=new URL(`${e.databaseUrl}/oauth/login/${e.provider}`),n=e.redirectUri||("undefined"!=typeof window?window.location.href:"");return n&&t.searchParams.set("redirect_uri",n),t.toString()}(e);window.location.href=t}function wo(t){const{userInteraction:n}=t.cloud;function s(i,o){return r(this,arguments,void 0,function*({public_key:i,hints:o},c){var l,a;let u;const d=null===(l=t.cloud.options)||void 0===l?void 0:l.databaseUrl;if(!d)throw new Error("No database URL given.");const h=null==o?void 0:o.intent;if((null==o?void 0:o.oauthCode)&&o.provider)try{return yield function(e){return r(this,void 0,void 0,function*(){const{databaseUrl:t,code:n,publicKey:r,scopes:s=["ACCESS_DB"],intent:i}=e,o=Object.assign({grant_type:"authorization_code",code:n,public_key:r,scopes:s},void 0!==i?{intent:i}:{});try{const e=yield fetch(`${t}/token`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o),mode:"cors"});if(!e.ok){const t=yield e.text().catch(()=>e.statusText);if(403===e.status)try{const e=JSON.parse(t);if(At(e))throw new Ct(e)}catch(e){if(e instanceof Ct)throw e}if(400===e.status||401===e.status)try{const e=JSON.parse(t);if("error"===e.type){if("INVALID_OTP"===e.messageCode)throw new yo("expired_code",void 0,e.message);throw new bt(e)}}catch(e){if(e instanceof yo||e instanceof bt)throw e}throw new yo("provider_error",void 0,`Token exchange failed: ${e.status} ${t}`)}const n=yield e.json();if("error"===n.type)throw new bt(n);if("tokens"!==n.type)throw new yo("provider_error",void 0,`Unexpected response type: ${n.type}`);return n}catch(e){if(e instanceof yo||e instanceof bt)throw e;if(e instanceof TypeError)throw new yo("network_error");throw e}})}({databaseUrl:d,code:o.oauthCode,publicKey:i,scopes:["ACCESS_DB"],intent:h})}catch(e){if(e instanceof Ct)return yield s({public_key:i,hints:void 0},ko(e));throw e}if(null==o?void 0:o.provider){if(c)return yield s({public_key:i,hints:void 0},c);let e;throw o.redirectPath&&(/^https?:\/\//i.test(o.redirectPath)?e=o.redirectPath:"undefined"!=typeof window&&window.location?e=new URL(o.redirectPath,window.location.href).toString():"undefined"!=typeof location&&location.href&&(e=new URL(o.redirectPath,location.href).toString())),_o(t,o.provider,e),new Et(o.provider)}if("demo"===(null==o?void 0:o.grant_type)){u={demo_user:yield St(n,"Enter a demo user email",(null==o?void 0:o.email)||(null==o?void 0:o.userId),c),grant_type:"demo",scopes:["ACCESS_DB"],public_key:i}}else if((null==o?void 0:o.otpId)&&o.otp){if(c)return yield kt(n,"Access Denied",c),yield s({public_key:i,hints:void 0},c);u={grant_type:"otp",otp_id:o.otpId,otp:o.otp,scopes:["ACCESS_DB"],public_key:i}}else if("otp"===(null==o?void 0:o.grant_type)||(null==o?void 0:o.email)){const e=(null==o?void 0:o.email)||(yield St(n,"Enter email address",void 0,c));u=/@demo.local$/.test(e)?{demo_user:e,grant_type:"demo",scopes:["ACCESS_DB"],public_key:i}:Object.assign({email:e,grant_type:"otp",scopes:["ACCESS_DB"]},void 0!==h?{intent:h}:{})}else{const s=!1!==(null===(a=t.cloud.options)||void 0===a?void 0:a.socialAuth),l=yield bo(d,s);if(l.providers.length>0){const s=c?[c]:[],i=yield function(t,n,s){return r(this,arguments,void 0,function*(t,n,r,s="Choose login method",i=[]){const o=[...n.map(wt)];return r&&o.push({name:"otp",value:"email",displayName:"Continue with email",iconUrl:vt,styleHint:"otp"}),new Promise((n,r)=>{const c={type:"generic",title:s,alerts:i,options:o,fields:{},submitLabel:"",cancelLabel:"Cancel",onSubmit:e=>{t.next(void 0),n("otp"in e?{type:"otp"}:"provider"in e?{type:"provider",provider:e.provider}:{type:"otp"})},onCancel:()=>{t.next(void 0),r(new e.AbortError("User cancelled"))}};t.next(c)})})}(n,l.providers,l.otpEnabled,"Sign in",s);if("provider"===i.type)throw _o(t,i.provider),new Et(i.provider)}const f=yield St(n,"Enter email address",null==o?void 0:o.email,0===l.providers.length?c:void 0);u=/@demo.local$/.test(f)?{demo_user:f,grant_type:"demo",scopes:["ACCESS_DB"],public_key:i}:Object.assign({email:f,grant_type:"otp",scopes:["ACCESS_DB"]},void 0!==h?{intent:h}:{})}const f=yield fetch(`${d}/token`,{body:JSON.stringify(u),method:"post",headers:{"Content-Type":"application/json"},mode:"cors"});if(200!==f.status){const e=yield So(f);if(e)return yield s({public_key:i,hints:void 0},e);const t=yield f.text();throw yield kt(n,"Token request failed",{type:"error",messageCode:"GENERIC_ERROR",message:t,messageParams:{}}).catch(()=>{}),new $t(f,t)}const p=yield f.json();if("tokens"===p.type||"error"===p.type)return p;if("otp"===u.grant_type&&"email"in u){if("otp-sent"!==p.type)throw new Error(`Unexpected response from ${d}/token`);const e=yield xt(n,u.email),t=Object.assign(Object.assign({},u),{otp:e||"",otp_id:p.otp_id,public_key:i});let r=yield fetch(`${d}/token`,{body:JSON.stringify(t),method:"post",headers:{"Content-Type":"application/json"},mode:"cors"});for(;401===r.status;){const e=yield r.text();t.otp=yield xt(n,u.email,{type:"error",messageCode:"INVALID_OTP",message:e,messageParams:{}}),r=yield fetch(`${d}/token`,{body:JSON.stringify(t),method:"post",headers:{"Content-Type":"application/json"},mode:"cors"})}if(200!==r.status){const e=yield So(r);if(e)return yield s({public_key:i,hints:void 0},e);const t=yield r.text();throw new $t(r,t)}return yield r.json()}throw new Error(`Unexpected response from ${d}/token`)})}return({public_key:e,hints:t})=>s({public_key:e,hints:t})}function _o(e,t,n){var r,s;const i=null===(r=e.cloud.options)||void 0===r?void 0:r.databaseUrl;if(!i)throw new Error("No database URL given.");vo({databaseUrl:i,provider:t,redirectUri:n||(null===(s=e.cloud.options)||void 0===s?void 0:s.oauthRedirectUri)||("undefined"!=typeof location?location.href:void 0)})}function ko(e){return{type:"error",messageCode:e.code,message:e.message,messageParams:{}}}function So(e){return r(this,void 0,void 0,function*(){if(403!==e.status)return null;try{const t=yield e.clone().json();if(At(t))return ko(new Ct(t))}catch(e){}return null})}function xo(e,...t){globalThis.console[e](...t)}function Eo(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 Ot(e),!1}const o=new uo(e,{claims:{},lastLogin:new Date(0)});try{yield Dt(e.cloud.options.databaseUrl,o,e.cloud.options.fetchTokens||wo(e),e.cloud.userInteraction,t)}catch(e){if("OAuthRedirectError"===e.name)return!1;throw e}return i!==l.userId&&o.userId!==i&&(yield fo(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&&(xo("debug","Login context property names:",Object.keys(t)),xo("debug","Login context property names:",Object.keys(t)),xo("debug","Login context:",t),xo("debug","Login context JSON:",JSON.stringify(t)))}catch(e){}throw e}})),yield ho(e.cloud.currentUser,e=>e.userId===t.userId)})}(e,o),y(e,"pull"),o.userId!==i})}const Co="undefined"!=typeof InstallTrigger,Ao="undefined"!=typeof navigator&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\/|Edge\//.test(navigator.userAgent),Io=Ao?[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]:NaN,Oo=Ao&&Io<=605||Co,Do="undefined"!=typeof self&&"clients"in self&&!self.document;const{toString:jo}={};function To(e){return jo.call(e).slice(8,-1)}function Uo(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 Po(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 Lo=/b|c|d|f|g|h|j|k|l|m|n|p|q|r|s|t|v|x|y|z/i;function Ro(e){return e>="A"&&e<="Z"}let $o=0;function Bo(e,t){const n=new Uint8Array(18),r=new Uint8Array(n.buffer,0,6),s=Date.now();$o>=s?++$o:$o=s,r[0]=$o/1099511627776,r[1]=$o/4294967296,r[2]=$o/16777216,r[3]=$o/65536,r[4]=$o/256,r[5]=$o;const i=new Uint8Array(n.buffer,6);crypto.getRandomValues(i);return e+P(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 c=n.trans;if("versionchange"===c.mode&&(c.disableChangeTracking=!0,c.disableAccessControl=!0),c.disableChangeTracking)return s.mutate(n);if("add"===n.type||"put"===n.type){const c=null===(i=t.cloud.schema)||void 0===i?void 0:i[r];if(null==c?void 0:c.generatedGlobalId){if((null===(o=t.cloud.options)||void 0===o?void 0:o.databaseUrl)&&!t.initiallySynced){const e=Uo(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 c=Uo(s.schema.primaryKey,n);return c.forEach((l,a)=>{if(void 0===l){const r=n.values[a].realmId||t.cloud.currentUserId,l=r.substr(r.length-3);c[a]=Bo(i,l),s.schema.primaryKey.outbound||(o||(o=n.values.slice()),o[a]=e.deepClone(o[a]),e.setByKeyPath(o[a],s.schema.primaryKey.keyPath,c[a]))}else if("string"!=typeof l||!l.startsWith(i)&&!l.startsWith("#"+i))throw new e.ConstraintError(`The ID "${l}" 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:c,values:o||n.values}))}(n,c.idPrefix)}if(null==c?void 0:c.markedForSync){Uo(s.schema.primaryKey,n).forEach((t,n)=>{if(!G(t)){const n=Array.isArray(t)?t.map(To).join(","):To(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 Mo=0;function Fo(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 Wo(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 zo=new t.BehaviorSubject(new Set);function Ko(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=>ht(e));i=r.transaction([...e,...t],s)}else i=r.transaction(e,s);if("readwrite"===s){i.txid=mt(16),i.opCount=0,i.currentUser=t.value,zo.value.add(i),zo.next(zo.value);const e=()=>{i.removeEventListener("complete",r),i.removeEventListener("error",e),i.removeEventListener("abort",e),zo.value.delete(i),zo.next(zo.value)},r=()=>{i.mutationsAdded&&!Ko(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,c=o.get(t);return c?function(e){const t="$lock"+ ++Mo;return Object.assign(Object.assign({},e),{count:Fo(e.count,t),get:Fo(e.get,t),getMany:Fo(e.getMany,t),openCursor:Fo(e.openCursor,t),query:Fo(e.query,t),mutate:Wo(e.mutate,t)})}(Object.assign(Object.assign({},s),{mutate:e=>{var r,o,c;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===(c=a.currentUser)||void 0===c?void 0:c.isLoggedIn)?"deleteRange"===e.type?s.query({query:{range:e.range,index:i.primaryKey},trans:e.trans,values:!1}).then(t=>l({type:"delete",keys:t.result,trans:e.trans,criteria:{index:null,range:e.range}})):l(e):s.mutate(e):s.mutate(e)}})):s;function l(r){var o,l;const a=r.trans,u=null===(l=null===(o=n.cloud.options)||void 0===o?void 0:o.unsyncedProperties)||void 0===l?void 0:l[t],{txid:d,currentUser:{userId:h}}=a,{type:f}=r,p=++a.opCount;function g(e){if(!u)return e;let t=e;for(const n of Object.keys(e))u.some(e=>n===e||n.startsWith(e+"."))&&(t===e&&(t=Object.assign({},e)),delete t[n]);return t}return s.mutate(r).then(t=>{var n;const{numFailures:s,failures:o}=t;let l="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&&(l=l.filter((e,t)=>!o[t]),y=y.filter((e,t)=>!o[t])),u){if(y=y.map(e=>{const t=Object.assign({},e);for(const e of u)delete t[e];return t}),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=l.length;n<s;++n)r.hasKey(l[n])&&(e.push(l[n]),t.push(y[n]));l=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:l,criteria:_,txid:d,userId:h}:"add"===r.type?{type:"insert",ts:w,opNo:p,keys:l,txid:d,userId:h,values:y}:v&&b?{type:"upsert",ts:w,opNo:p,keys:l,values:y,changeSpecs:b.changeSpecs.filter((e,t)=>!o[t]),txid:d,userId:h}:_&&m?{type:"modify",ts:w,opNo:p,keys:l,criteria:_,changeSpec:m,txid:d,userId:h}:m?{type:"update",ts:w,opNo:p,keys:l,changeSpecs:l.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:l,values:y,txid:d,userId:h};return"isAdditionalChunk"in r&&r.isAdditionalChunk&&(k.isAdditionalChunk=!0),l.length>0||_?c.mutate({type:"add",trans:a,values:[k]}).then(()=>(a.mutationsAdded=!0,t)):t})}}})}}}class Ho{constructor(e){this.queue=[],this.isProcessing=!1,this.db=e}saveBlobs(e,t,n){this.queue.push({tableName:e,primaryKey:t,resolvedBlobs:n}),this.startConsumer()}startConsumer(){this.isProcessing||(this.isProcessing=!0,setTimeout(()=>{this.processQueue()},0))}processQueue(){const t=this.queue.shift();t?this.db.transaction("rw",t.tableName,n=>{const r=n.idbtrans;r.disableChangeTracking=!0,r.disableAccessControl=!0,r.disableBlobResolve=!0;const s={};for(const e of t.resolvedBlobs)s[e.keyPath]=e.data;n.table(t.tableName).update(t.primaryKey,n=>{for(const r of t.resolvedBlobs){const t=e.getByKeyPath(n,r.keyPath);if(void 0!==t&&qt(t)){if(t.ref!==r.ref)return;e.setByKeyPath(n,r.keyPath,r.data)}}delete n._hasBlobRefs})}).catch(e=>{}).finally(()=>this.processQueue()):this.isProcessing=!1}}function Jo(t){return{stack:"dbcore",name:"blobResolve",level:2,create(n){const r=new Ho(t);return Object.assign(Object.assign({},n),{table(s){var i;if(!t.cloud)return n.table(s);const o=null===(i=t.cloud.options)||void 0===i?void 0:i.databaseUrl,c=n.table(s);return s.startsWith("$")?c:Object.assign(Object.assign({},c),{get(e){var n;return(null===(n=e.trans)||void 0===n?void 0:n.disableBlobResolve)?c.get(e):c.get(e).then(n=>n&&Qt(n)?qo(c,e.trans,e.key,n,r,t):n)},getMany(n){var s;return(null===(s=n.trans)||void 0===s?void 0:s.disableBlobResolve)?c.getMany(n):c.getMany(n).then(s=>{const i=s.some(e=>e&&Qt(e));return i?e.Promise.all(s.map((e,s)=>e&&Qt(e)?qo(c,n.trans,n.keys[s],e,r,t):e)):s})},query(n){var s;return(null===(s=n.trans)||void 0===s?void 0:s.disableBlobResolve)?c.query(n):c.query(n).then(s=>{if(!s.result||!Array.isArray(s.result))return s;const i=s.result.some(e=>e&&Qt(e));return i?e.Promise.all(s.result.map(e=>e&&Qt(e)?qo(c,n.trans,void 0,e,r,t):e)).then(e=>Object.assign(Object.assign({},s),{result:e})):s})},openCursor(e){var n;return(null===(n=e.trans)||void 0===n?void 0:n.disableBlobResolve)?c.openCursor(e):c.openCursor(e).then(n=>n&&e.values&&o?function(e,t,n,r){const s=Object.create(e,{value:{value:e.value,enumerable:!0,writable:!0},start:{value:i=>e.start(()=>{const o=e.value;if(!o||!Qt(o))return s.value=o,void i();qo(t,e.trans,e.primaryKey,o,n,r,!0).then(e=>{s.value=e,i()},e=>{s.value=o,i()})})}});return s}(n,c,r,t):n)}})}})}}}function qo(t,n,r,s,i,o,c=!1){var l;try{const a=e.currentTransaction,u="readonly"===(null==a?void 0:a.mode),d=!0===(null==a?void 0:a.explicit),h=a&&!(u&&!d&&!c),f=(null===(l=o.cloud.options)||void 0===l?void 0:l.databaseUrl)||"",p=[],g=Yt(s,f,p,"",new WeakMap,o.blobDownloadTracker);return(h?e.waitFor(g):e.Promise.resolve(g)).then(o=>{const c=t.schema.primaryKey,l=void 0!==r?r:c.keyPath?e.getByKeyPath(s,c.keyPath):void 0;return void 0!==l&&(u?i.saveBlobs(t.name,l,p):t.mutate({type:"put",keys:[l],values:[o],trans:n}).catch(e=>{})),o}).catch(e=>s)}catch(t){return e.Promise.resolve(s)}}function Go(e,t){return function(n,r){var s;const i=Object.assign(Object.assign({},no),n);Object.keys(no).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=no[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(no[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={}),c=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)(Lo.test(e[t])||Ro(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=Po(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,c),c.add(r.idPrefix)),/^\$/.test(e)||(i[`$${e}_mutations`]="++rev",r.markedForSync=!0,i[e].includes("_hasBlobRefs")||(i[e]+=",_hasBlobRefs")),r.deleted&&(r.deleted=!1)):(r.deleted=!0,r.markedForSync=!1,i[`$${e}_mutations`]=null)});const l=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 l}}function Yo(e,t,n){return"undefined"!=typeof navigator&&navigator.locks?navigator.locks.request(e.name+"|"+t,n):n()}const Qo=new t.BehaviorSubject(!0),Xo=new t.BehaviorSubject(!0);Qo.pipe(n.switchMap(e=>e?t.of(!0):t.of(!1).pipe(n.delay(2e4))),n.distinctUntilChanged()).subscribe(Xo);const Zo="undefined"!=typeof document?t.fromEvent(document,"visibilitychange"):t.of({}),ec=Zo.pipe(n.filter(()=>"hidden"===document.visibilityState)),tc=Zo.pipe(n.filter(()=>"visible"===document.visibilityState)),nc="undefined"!=typeof window?t.merge(tc,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),ec,nc).pipe(n.map(()=>"visible"===document.visibilityState),n.tap(e=>{Qo.value!==e&&Qo.next(e)}),n.switchMap(e=>e?t.of(0).pipe(n.delay(16e4),n.tap(()=>Qo.next(!1))):t.of(0))).subscribe(()=>{});class rc extends Error{constructor(){super(...arguments),this.name="TokenExpiredError"}}const sc=new WeakMap,ic=3e4;class oc extends cn{constructor(e){super(),this.doc=e,this.clientID=e.clientID,this.states=new Map,this.meta=new Map,this._checkInterval=setInterval(()=>{const e=hn();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&&ic<=e-n.lastUpdated&&this.states.has(r)&&t.push(r)}),t.length>0&&cc(this,t,"timeout")},Z(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:hn()});const i=[],o=[],c=[],l=[];null===e?l.push(t):null==s?null!=e&&i.push(t):(o.push(t),An(s,e)||c.push(t)),(i.length>0||c.length>0||l.length>0)&&this.emit("change",[{added:i,updated:c,removed:l},"local"]),this.emit("update",[{added:i,updated:o,removed:l},"local"])}setLocalStateField(e,t){const n=this.getLocalState();null!==n&&this.setLocalState({...n,[e]:t})}getStates(){return this.states}}const cc=(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:hn()})}r.push(s)}}r.length>0&&(e.emit("change",[{added:[],updated:[],removed:r},n]),e.emit("update",[{added:[],updated:[],removed:r},n]))},lc=new WeakMap;function ac(e){let n=lc.get(e);return n||(n=new t.Subject,lc.set(e,n)),n}class uc extends t.Observable{constructor(e,t,n,r,s,i,o,c){super(l=>new hc(e,t,n,r,s,c,l,i,o))}}let dc=0;class hc extends t.Subscription{constructor(e,t,n,r,s,i,o,c,l){super(()=>this.teardown()),this.id=++dc,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=c,this.webSocketStatus=l,this.connect()}teardown(){this.disconnect()}disconnect(){if(this.webSocketStatus.next("disconnected"),this.pinger&&(clearInterval(this.pinger),this.pinger=null),this.ws)try{this.ws.close()}catch(e){}this.ws=null;for(const e of this.subscriptions)e.unsubscribe();this.subscriptions.clear()}reconnect(){if(!this.reconnecting){this.reconnecting=!0;try{this.disconnect()}catch(e){}this.connect().catch(()=>{}).then(()=>this.reconnecting=!1)}}connect(){return 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 rc);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","3"),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?Rt.parse(e.data):function(e){const t=new Je(e),n=et(t);if("outdated-server-rev"===n)return{type:n};if("y-complete-sync-done"===n)return{type:n,yServerRev:et(t)};const r=et(t),s=et(t);switch(n){case"u-ack":case"u-reject":return{type:n,table:r,prop:s,i:Number(nt(t))};default:{const e=st(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:Ye(t)};case"doc-open":return{type:n,table:r,prop:s,k:e,serverRev:st(t),sv:st(t)};case"sv":return{type:n,table:r,prop:s,k:e,sv:Ye(t)};case"u-c":return{type:n,table:r,prop:s,k:e,u:Ye(t),i:Number(nt(t))};case"u-s":return{type:n,table:r,prop:s,k:e,u:Ye(t),r:t.pos<t.arr.length&&et(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=Ui.getDocCache(this.db.dx).find(t.table,t.k,t.prop);if(e){const n=(e=>sc.get(e))(e);n&&((e,t,n)=>{const r=qe(t),s=hn(),i=[],o=[],c=[],l=[],a=Xe(r);for(let t=0;t<a;t++){const t=Xe(r);let n=Xe(r);const a=JSON.parse(et(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?l.push(t):null!==a&&(An(a,d)||c.push(t),o.push(t)))}(i.length>0||c.length>0||l.length>0)&&e.emit("change",[{added:i,updated:c,removed:l},n]),(i.length>0||o.length>0||l.length>0)&&e.emit("update",[{added:i,updated:o,removed:l},n])})(n,t.u,"server")}}else if("pong"===t.type);else if("doc-open"===t.type){const e=Ui.getDocCache(this.db.dx).find(t.table,t.k,t.prop);e&&ac(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?Pi([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=_i(this.db,t.table,t.prop);if(e){const t=r[e.name];t&&(yield e.update(en,{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(Rt.stringify(e))):null===(n=this.ws)||void 0===n||n.send(function(e){const t=new we;switch(Oe(t,e.type),"table"in e&&Oe(t,e.table),"prop"in e&&Oe(t,e.prop),e.type){case"u-ack":case"u-reject":Ue(t,BigInt(e.i));break;case"outdated-server-rev":break;case"y-complete-sync-done":Oe(t,e.yServerRev);break;default:switch(Le(t,e.k),e.type){case"aware":je(t,e.u);break;case"doc-open":Le(t,e.serverRev),Le(t,e.sv);break;case"doc-close":break;case"sv":je(t,e.sv);break;case"u-c":je(t,e.u),Ue(t,BigInt(e.i));break;case"u-s":je(t,e.u),Oe(t,e.r||"")}}return ke(t)}(e)))})),this.user.isLoggedIn&&!Ko(this.db)&&this.subscriptions.add(function(n){const s=gt(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 c=n.table(o);return t.from(c.get(en)).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 tn(c,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 fc extends Error{constructor(e){super("expired"===e?"License expired":"deactivated"===e?"User deactivated":"Invalid license"),this.name="InvalidLicenseError",e&&(this.license=e)}}function pc(e){return r(this,void 0,void 0,function*(){var e;yield(e=3e3,new Promise(t=>setTimeout(t,e))),yield t.firstValueFrom(nc)})}function gc(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 Yi(e,e.cloud.options,e.cloud.schema,{justCheckIfNeeded:!0}))})}const yc=new WeakMap;function mc(e,t,n,s){const i=yc.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 mc(e,t,n,s)})}}const o=function(){return r(this,void 0,void 0,function*(){try{yield Ft(e),yield Yo(e,Gi,()=>Yi(e,t,n,s)),yc.delete(e)}catch(t){throw yc.delete(e),t}})}();return yc.set(e,{promise:o,pull:"push"!==(null==s?void 0:s.purpose)}),o}function bc(e,t,n){let r=null,s={cancelled:!1},i=0,o=0;function c(r=1){setTimeout(()=>{const d=l?"pull":"push";l=!1,a=!1,o=Date.now(),mc(e,t,n,{cancelToken:s,retryImmediatelyOnFetchError:!0,purpose:d}).then(()=>{if(s.cancelled)h();else if(l||a)return c();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]*It;i=Date.now()+e,o=0,setTimeout(()=>c(r+1),e)}else u=!1,i=0,o=0})},0)}let l=!1,a=!1,u=!1;const d=e=>{s.cancelled||("pull"===e&&(l=!0),"push"===e&&(a=!0),u?i||o>0&&Date.now():(u=!0,c()))},h=()=>{s.cancelled=!0,r&&r.unsubscribe()};return{start:()=>{r=e.localSyncEvent.subscribe(({purpose:e})=>{d(e||"pull")})},stop:h}}function vc(e,t){if(e&&t&&t.unsyncedTables)for(const n of t.unsyncedTables)e[n]&&(e[n].markedForSync=!1)}var wc,_c,kc,Sc,xc,Ec,Cc,Ac,Ic,Oc,Dc,jc={},Tc=[],Uc=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,Pc=Array.isArray;function Lc(e,t){for(var n in t)e[n]=t[n];return e}function Rc(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function $c(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?wc.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 Bc(e,o,r,s,null)}function Bc(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?++kc:s,__i:-1,__u:0};return null==s&&null!=_c.vnode&&_c.vnode(i),i}function Nc(e){return e.children}function Mc(e,t){this.props=e,this.context=t}function Fc(e,t){if(null==t)return e.__?Fc(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?Fc(e):null}function Wc(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 Wc(e)}}function zc(e){(!e.__d&&(e.__d=!0)&&Sc.push(e)&&!Kc.__r++||xc!=_c.debounceRendering)&&((xc=_c.debounceRendering)||Ec)(Kc)}function Kc(){for(var e,t,n,r,s,i,o,c=1;Sc.length;)Sc.length>c&&Sc.sort(Cc),e=Sc.shift(),c=Sc.length,e.__d&&(n=void 0,r=void 0,s=(r=(t=e).__v).__e,i=[],o=[],t.__P&&((n=Lc({},r)).__v=r.__v+1,_c.vnode&&_c.vnode(n),Qc(t.__P,n,r,t.__n,t.__P.namespaceURI,32&r.__u?[s]:null,i,null==s?Fc(r):s,!!(32&r.__u),o),n.__v=r.__v,n.__.__k[n.__i]=n,Zc(i,n,o),r.__e=r.__=null,n.__e!=s&&Wc(n)));Kc.__r=0}function Vc(e,t,n,r,s,i,o,c,l,a,u){var d,h,f,p,g,y,m,b=r&&r.__k||Tc,v=t.length;for(l=function(e,t,n,r,s){var i,o,c,l,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]=Bc(null,o,null,null,null):Pc(o)?o=e.__k[i]=Bc(Nc,{children:o},null,null,null):null==o.constructor&&o.__b>0?o=e.__k[i]=Bc(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):e.__k[i]=o,l=i+h,o.__=e,o.__b=e.__b+1,-1!=(a=o.__i=Jc(o,n,l,d))&&(d--,(c=n[a])&&(c.__u|=2)),null==c||null==c.__v?(-1==a&&(s>u?h--:s<u&&h++),"function"!=typeof o.type&&(o.__u|=4)):a!=l&&(a==l-1?h--:a==l+1?h++:(a>l?h--:h++,o.__u|=4))):e.__k[i]=null;if(d)for(i=0;i<u;i++)null!=(c=n[i])&&!(2&c.__u)&&(c.__e==r&&(r=Fc(c)),rl(c,c));return r}(n,t,b,l,v),d=0;d<v;d++)null!=(f=n.__k[d])&&(h=-1==f.__i?jc:b[f.__i]||jc,f.__i=d,y=Qc(e,f,h,s,i,o,c,l,a,u),p=f.__e,f.ref&&h.ref!=f.ref&&(h.ref&&nl(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?l=Hc(f,l,e,m):"function"==typeof f.type&&void 0!==y?l=y:p&&(l=p.nextSibling),f.__u&=-7);return n.__e=g,l}function Hc(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=Hc(s[i],t,n,r));return t}e.__e!=t&&(r&&(t&&e.type&&!t.parentNode&&(t=Fc(e)),n.insertBefore(e.__e,t||null)),t=e.__e);do{t=t&&t.nextSibling}while(null!=t&&8==t.nodeType);return t}function Jc(e,t,n,r){var s,i,o,c=e.key,l=e.type,a=t[n],u=null!=a&&!(2&a.__u);if(null===a&&null==c||u&&c==a.key&&l==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)&&c==a.key&&l==a.type)return o;return-1}function qc(e,t,n){"-"==t[0]?e.setProperty(t,null==n?"":n):e[t]=null==n?"":"number"!=typeof n||Uc.test(t)?n:n+"px"}function Gc(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||qc(e.style,t,"");if(n)for(t in n)r&&n[t]==r[t]||qc(e.style,t,n[t])}else if("o"==t[0]&&"n"==t[1])i=t!=(t=t.replace(Ac,"$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=Ic,e.addEventListener(t,i?Dc:Oc,i)):e.removeEventListener(t,i?Dc:Oc,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 Yc(e){return function(t){if(this.l){var n=this.l[t.type+e];if(null==t.t)t.t=Ic++;else if(t.t<n.u)return;return n(_c.event?_c.event(t):t)}}}function Qc(e,t,n,r,s,i,o,c,l,a){var u,d,h,f,p,g,y,m,b,v,w,_,k,S,x,E,C,A=t.type;if(null!=t.constructor)return null;128&n.__u&&(l=!!(32&n.__u),i=[c=t.__e=n.__e]),(u=_c.__b)&&u(t);e:if("function"==typeof A)try{if(m=t.props,b="prototype"in A&&A.prototype.render,v=(u=A.contextType)&&r[u.__c],w=u?v?v.props.value:u.__:r,n.__c?y=(d=t.__c=n.__c).__=d.__E:(b?t.__c=d=new A(m,w):(t.__c=d=new Mc(m,w),d.constructor=A,d.render=sl),v&&v.sub(d),d.state||(d.state={}),d.__n=r,h=d.__d=!0,d.__h=[],d._sb=[]),b&&null==d.__s&&(d.__s=d.state),b&&null!=A.getDerivedStateFromProps&&(d.__s==d.state&&(d.__s=Lc({},d.__s)),Lc(d.__s,A.getDerivedStateFromProps(m,d.__s))),f=d.props,p=d.state,d.__v=t,h)b&&null==A.getDerivedStateFromProps&&null!=d.componentWillMount&&d.componentWillMount(),b&&null!=d.componentDidMount&&d.__h.push(d.componentDidMount);else{if(b&&null==A.getDerivedStateFromProps&&m!==f&&null!=d.componentWillReceiveProps&&d.componentWillReceiveProps(m,w),t.__v==n.__v||!d.__e&&null!=d.shouldComponentUpdate&&!1===d.shouldComponentUpdate(m,d.__s,w)){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)}),_=0;_<d._sb.length;_++)d.__h.push(d._sb[_]);d._sb=[],d.__h.length&&o.push(d);break e}null!=d.componentWillUpdate&&d.componentWillUpdate(m,d.__s,w),b&&null!=d.componentDidUpdate&&d.__h.push(function(){d.componentDidUpdate(f,p,g)})}if(d.context=w,d.props=m,d.__P=e,d.__e=!1,k=_c.__r,S=0,b){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=Lc(Lc({},r),d.getChildContext())),b&&!h&&null!=d.getSnapshotBeforeUpdate&&(g=d.getSnapshotBeforeUpdate(f,p)),E=u,null!=u&&u.type===Nc&&null==u.key&&(E=el(u.props.children)),c=Vc(e,Pc(E)?E:[E],t,n,r,s,i,o,c,l,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,l||null!=i)if(e.then){for(t.__u|=l?160:128;c&&8==c.nodeType&&c.nextSibling;)c=c.nextSibling;i[i.indexOf(c)]=null,t.__e=c}else{for(C=i.length;C--;)Rc(i[C]);Xc(t)}else t.__e=n.__e,t.__k=n.__k,e.then||Xc(t);_c.__e(e,t,n)}else null==i&&t.__v==n.__v?(t.__k=n.__k,t.__e=n.__e):c=t.__e=tl(n.__e,t,n,r,s,i,o,l,a);return(u=_c.diffed)&&u(t),128&t.__u?void 0:c}function Xc(e){e&&e.__c&&(e.__c.__e=!0),e&&e.__k&&e.__k.forEach(Xc)}function Zc(e,t,n){for(var r=0;r<n.length;r++)nl(n[r],n[++r],n[++r]);_c.__c&&_c.__c(t,e),e.some(function(t){try{e=t.__h,t.__h=[],e.some(function(e){e.call(t)})}catch(e){_c.__e(e,t.__v)}})}function el(e){return"object"!=typeof e||null==e||e.__b&&e.__b>0?e:Pc(e)?e.map(el):Lc({},e)}function tl(e,t,n,r,s,i,o,c,l){var a,u,d,h,f,p,g,y=n.props||jc,m=t.props,b=t.type;if("svg"==b?s="http://www.w3.org/2000/svg":"math"==b?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==!!b&&(b?f.localName==b:3==f.nodeType)){e=f,i[a]=null;break}if(null==e){if(null==b)return document.createTextNode(m);e=document.createElementNS(s,b,m.is&&m),c&&(_c.__m&&_c.__m(t,i),c=!1),i=null}if(null==b)y===m||c&&e.data==m||(e.data=m);else{if(i=i&&wc.call(e.childNodes),!c&&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;Gc(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:c&&"function"!=typeof f||y[a]===f||Gc(e,a,f,y[a],s);if(u)c||d&&(u.__html==d.__html||u.__html==e.innerHTML)||(e.innerHTML=u.__html),t.__k=[];else if(d&&(e.innerHTML=""),Vc("template"==t.type?e.content:e,Pc(h)?h:[h],t,n,r,"foreignObject"==b?"http://www.w3.org/1999/xhtml":s,i,o,i?i[0]:n.__k&&Fc(n,0),c,l),null!=i)for(a=i.length;a--;)Rc(i[a]);c||(a="value","progress"==b&&null==p?e.removeAttribute("value"):null!=p&&(p!==e[a]||"progress"==b&&!p||"option"==b&&p!=y[a])&&Gc(e,a,p,y[a],s),a="checked",null!=g&&g!=e[a]&&Gc(e,a,g,y[a],s))}return e}function nl(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){_c.__e(e,n)}}function rl(e,t,n){var r,s;if(_c.unmount&&_c.unmount(e),(r=e.ref)&&(r.current&&r.current!=e.__e||nl(r,null,t)),null!=(r=e.__c)){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(e){_c.__e(e,t)}r.base=r.__P=null}if(r=e.__k)for(s=0;s<r.length;s++)r[s]&&rl(r[s],t,n||"function"!=typeof e.type);n||Rc(e.__e),e.__c=e.__=e.__e=void 0}function sl(e,t,n){return this.constructor(e,n)}function il(e,t,n){var r,s,i;t==document&&(t=document.documentElement),_c.__&&_c.__(e,t),r=!1?null:t.__k,s=[],i=[],Qc(t,e=t.__k=$c(Nc,null,[e]),r||jc,jc,t.namespaceURI,r?null:t.firstChild?wc.call(t.childNodes):null,s,r?r.__e:t.firstChild,false,i),Zc(s,e,i)}wc=Tc.slice,_c={__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}},kc=0,Mc.prototype.setState=function(e,t){var n;n=null!=this.__s&&this.__s!=this.state?this.__s:this.__s=Lc({},this.state),"function"==typeof e&&(e=e(Lc({},n),this.props)),e&&Lc(n,e),null!=e&&this.__v&&(t&&this._sb.push(t),zc(this))},Mc.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),zc(this))},Mc.prototype.render=Nc,Sc=[],Ec="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,Cc=function(e,t){return e.__v.__b-t.__v.__b},Kc.__r=0,Ac=/(PointerCapture)$|Capture$/i,Ic=0,Oc=Yc(!1),Dc=Yc(!0);const ol={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"},ProviderButton:{display:"flex",alignItems:"center",justifyContent:"center",width:"100%",padding:"12px 16px",marginBottom:"10px",border:"1px solid #d1d5db",borderRadius:"6px",backgroundColor:"#ffffff",cursor:"pointer",fontSize:"14px",fontWeight:"500",color:"#374151",transition:"all 0.2s ease",gap:"12px"},ProviderButtonIcon:{width:"20px",height:"20px",flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center"},ProviderButtonText:{flex:1,textAlign:"left"},ProviderGoogle:{backgroundColor:"#ffffff",border:"1px solid #dadce0",color:"#3c4043"},ProviderGitHub:{backgroundColor:"#ffffff",border:"1px solid #dadce0",color:"#181717"},ProviderMicrosoft:{backgroundColor:"#ffffff",border:"1px solid #dadce0",color:"#5e5e5e"},ProviderApple:{backgroundColor:"#000000",border:"1px solid #000000",color:"#ffffff"},ProviderCustom:{backgroundColor:"#ffffff",border:"1px solid #dadce0",color:"#181717"},Divider:{display:"flex",alignItems:"center",margin:"20px 0",color:"#6b7280",fontSize:"13px"},DividerLine:{flex:1,height:"1px",backgroundColor:"#e5e7eb"},DividerText:{padding:"0 12px",color:"#9ca3af"},OtpButton:{display:"flex",alignItems:"center",justifyContent:"center",width:"100%",padding:"12px 16px",border:"1px solid #d1d5db",borderRadius:"6px",backgroundColor:"#f9fafb",cursor:"pointer",fontSize:"14px",fontWeight:"500",color:"#374151",transition:"all 0.2s ease",gap:"12px"},CopyButton:{display:"inline-flex",alignItems:"center",gap:"4px",padding:"4px 10px",marginTop:"8px",border:"1px solid #d1d5db",borderRadius:"4px",backgroundColor:"#f9fafb",cursor:"pointer",fontSize:"12px",fontWeight:"500",color:"#374151",transition:"all 0.15s ease",fontFamily:"monospace"},CopyButtonCopied:{display:"inline-flex",alignItems:"center",gap:"4px",padding:"4px 10px",marginTop:"8px",border:"1px solid #22c55e",borderRadius:"4px",backgroundColor:"#f0fdf4",cursor:"default",fontSize:"12px",fontWeight:"500",color:"#16a34a",fontFamily:"monospace"}};function cl({children:e,className:t}){return $c("div",{className:`dexie-dialog ${t||""}`},$c("div",{style:ol.Darken}),$c("div",{style:ol.DialogOuter},$c("div",{style:ol.DialogInner},e)))}var ll,al,ul,dl,hl=0,fl=[],pl=_c,gl=pl.__b,yl=pl.__r,ml=pl.diffed,bl=pl.__c,vl=pl.unmount,wl=pl.__;function _l(e,t){pl.__h&&pl.__h(al,e,hl||t),hl=0;var n=al.__H||(al.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({}),n.__[e]}function kl(e){return hl=1,function(e,t){var n=_l(ll++,2);if(n.t=e,!n.__c&&(n.__=[jl(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=al,!al.__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};al.__f=!0;var s=al.shouldComponentUpdate,i=al.componentWillUpdate;al.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)},al.shouldComponentUpdate=r}return n.__N||n.__}(jl,e)}function Sl(e,t){var n=_l(ll++,4);!pl.__s&&Dl(n.__H,t)&&(n.__=e,n.u=t,al.__h.push(n))}function xl(e){return hl=5,function(e,t){var n=_l(ll++,7);return Dl(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}(function(){return{current:e}},[])}function El(){for(var e;e=fl.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(Il),e.__H.__h.forEach(Ol),e.__H.__h=[]}catch(t){e.__H.__h=[],pl.__e(t,e.__v)}}pl.__b=function(e){al=null,gl&&gl(e)},pl.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),wl&&wl(e,t)},pl.__r=function(e){yl&&yl(e),ll=0;var t=(al=e.__c).__H;t&&(ul===al?(t.__h=[],al.__h=[],t.__.forEach(function(e){e.__N&&(e.__=e.__N),e.u=e.__N=void 0})):(t.__h.forEach(Il),t.__h.forEach(Ol),t.__h=[],ll=0)),ul=al},pl.diffed=function(e){ml&&ml(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(1!==fl.push(t)&&dl===pl.requestAnimationFrame||((dl=pl.requestAnimationFrame)||Al)(El)),t.__H.__.forEach(function(e){e.u&&(e.__H=e.u),e.u=void 0})),ul=al=null},pl.__c=function(e,t){t.some(function(e){try{e.__h.forEach(Il),e.__h=e.__h.filter(function(e){return!e.__||Ol(e)})}catch(n){t.some(function(e){e.__h&&(e.__h=[])}),t=[],pl.__e(n,e.__v)}}),bl&&bl(e,t)},pl.unmount=function(e){vl&&vl(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.forEach(function(e){try{Il(e)}catch(e){t=e}}),n.__H=void 0,t&&pl.__e(t,n.__v))};var Cl="function"==typeof requestAnimationFrame;function Al(e){var t,n=function(){clearTimeout(r),Cl&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,35);Cl&&(t=requestAnimationFrame(n))}function Il(e){var t=al,n=e.__c;"function"==typeof n&&(e.__c=void 0,n()),al=t}function Ol(e){var t=al;e.__c=e.__(),al=t}function Dl(e,t){return!e||e.length!==t.length||t.some(function(t,n){return t!==e[n]})}function jl(e,t){return"function"==typeof t?t(e):t}function Tl({option:e,onClick:t}){const{displayName:n,iconUrl:r,styleHint:s}=e,i=function(e){const t=Object.assign({},ol.ProviderButton);if(!e)return t;switch(e){case"google":return Object.assign(Object.assign({},t),ol.ProviderGoogle);case"github":return Object.assign(Object.assign({},t),ol.ProviderGitHub);case"microsoft":return Object.assign(Object.assign({},t),ol.ProviderMicrosoft);case"apple":return Object.assign(Object.assign({},t),ol.ProviderApple);case"otp":return Object.assign({},ol.OtpButton);case"custom-oauth2":return Object.assign(Object.assign({},t),ol.ProviderCustom);default:return t}}(s);return $c("button",{type:"button",style:i,onClick:t,class:"dxc-option-btn"+(s?` dxc-option-${s}`:""),"aria-label":n},r&&$c("img",{src:r,alt:"",style:ol.ProviderButtonIcon,"aria-hidden":"true"}),$c("span",{style:ol.ProviderButtonText},n))}function Ul(){return $c("div",{style:ol.Divider},$c("div",{style:ol.DividerLine}),$c("span",{style:ol.DividerText},"or"),$c("div",{style:ol.DividerLine}))}function Pl({title:e,alerts:t,fields:n,options:r,submitLabel:s,cancelLabel:i,onCancel:o,onSubmit:c}){const[l,a]=kl({}),u=xl(null);Sl(()=>{var e;return null===(e=u.current)||void 0===e?void 0:e.focus()},[]);const d=Object.entries(n||{}),h=d.length>0,f=r&&r.length>0,p=new Map;if(r)for(const e of r){const t=p.get(e.name)||[];t.push(e),p.set(e.name,t)}const g=p.size>1,y=e=>{c({[e.name]:e.value})};return $c(cl,{className:"dxc-login-dlg"},$c(Nc,null,$c("h3",{style:ol.WindowHeader},e),t.map((e,t)=>$c("div",{key:t},$c("p",{style:ol.Alert[e.type]},function({message:e,messageCode:t,messageParams:n}){return e.replace(/\{\w+\}/gi,e=>n[e.substring(1,e.length-1)])}(e)),e.copyText&&$c(Ll,{text:e.copyText}))),f&&$c("div",{class:"dxc-options"},g?Array.from(p.entries()).map(([e,t],n)=>$c(Nc,{key:e},n>0&&$c(Ul,null),t.map(e=>$c(Tl,{key:`${e.name}-${e.value}`,option:e,onClick:()=>y(e)})))):r.map(e=>$c(Tl,{key:`${e.name}-${e.value}`,option:e,onClick:()=>y(e)}))),f&&h&&$c(Ul,null),h&&$c("form",{onSubmit:e=>{e.preventDefault(),c(l)}},d.map(([e,{type:t,label:n,placeholder:r}],s)=>$c("label",{style:ol.Label,key:s},n?`${n}: `:"",$c("input",{ref:0===s?u:void 0,type:t,name:e,autoComplete:"on",style:ol.Input,autoFocus:!0,placeholder:r,value:l[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({},l),{[e]:s});a(i),"otp"===t&&8===(null==s?void 0:s.trim().length)&&c(i)}}))))),$c("div",{style:ol.ButtonsDiv},$c(Nc,null,s&&(h||!f&&!h)&&$c("button",{type:"submit",style:ol.PrimaryButton,onClick:()=>c(l)},s),i&&$c("button",{style:ol.Button,onClick:o},i))))}function Ll({text:e}){const[t,n]=kl(!1),r=xl(null);Sl(()=>()=>{null!==r.current&&clearTimeout(r.current)},[]);const s=()=>{null!==r.current&&clearTimeout(r.current),n(!0),r.current=setTimeout(()=>{r.current=null,n(!1)},2e3)};return $c("button",{type:"button",style:t?ol.CopyButtonCopied:ol.CopyButton,onClick:()=>{var t;"undefined"!=typeof navigator&&(null===(t=navigator.clipboard)||void 0===t?void 0:t.writeText)?navigator.clipboard.writeText(e).then(s).catch(()=>{Rl(e,s)}):Rl(e,s)},title:"Copy to clipboard"},t?"✓ Copied!":`📋 ${e}`)}function Rl(e,t){const n=document.createElement("textarea");n.value=e,n.style.position="fixed",n.style.opacity="0",document.body.appendChild(n),n.select();const r=document.execCommand("copy");document.body.removeChild(n),r&&t()}class $l extends Mc{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?$c(Pl,Object.assign({},t)):null}}function Bl(e){const t=new WeakMap;return n=>{let r=t.get(n);return r||(r=e(n),t.set(n,r)),r}}const Nl=Bl(e=>new t.BehaviorSubject(Object.assign(Object.assign({},l),{isLoading:!0})));function Ml(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 Fl=Bl(t=>Ml(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})),{})),Wl=Bl(t=>Ml(Nl(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 Kl=Bl(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}(Ml(t.combineLatest([Wl(e._novip),Fl(e._novip)]).pipe(n.map(([{selfMembers:e,realms:t,userId:n},r])=>({selfMembers:e,realms:t,userId:n,globalRoles:r}))),{selfMembers:[],realms:[],userId:l.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=gt(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 Vl{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 Hl=Bl(s=>{const i=Nl(s._novip).pipe(n.switchMap(t=>e.liveQuery(()=>s.members.where({email:t.email||""}).toArray()))),o=Kl(s._novip),c=Wl(s._novip);return Ml(t.combineLatest([i,c,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,{}),c=t.selfMembers.reduce(i,o);return Object.values(c).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 Jl(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:c}=o.meta||{};if(!(null===(i=n.cloud.schema)||void 0===i?void 0:i[c].markedForSync))return;let l;Object.defineProperty(s,"awareness",{get:()=>l||(l=function(n,s,i){const{parentTable:o,parentId:c,parentProp:l,updatesTable:a}=s.meta,u=new oc(s),d=ac(s);return u.on("update",({added:e,updated:t,removed:r},c)=>{const a=e.concat(t).concat(r),d=n.cloud.currentUser.value;if("server"!==c&&d.isLoggedIn&&!Ko(n)){const e=((e,t,n=e.states)=>{const r=t.length,s=_e();Ee(s,r);for(let i=0;i<r;i++){const r=t[i],o=n.get(r)||null,c=e.meta.get(r).clock;Ee(s,r),Ee(s,c),Oe(s,JSON.stringify(o))}return ke(s)})(u,a);n.messageProducer.next({type:"aware",table:o,prop:l,k:s.meta.parentId,u:e}),i.destroyed&&n.messageProducer.next({type:"doc-close",table:o,prop:l,k:s.meta.parentId})}}),u.on("destroy",()=>{cc(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&&!Ko(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(en),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:l,k:c,serverRev:p},y=yield d.where("i").between(f,1/0,!1).filter(t=>0===e.cmp(t.k,c)&&!(1&(t.f||0))).toArray();if(!i.destroyed&&u===t&&s){if(y.length>0){const e=Kr(y.map(e=>e.u)),t=Wr(e);g.sv=t}n.messageProducer.next(g)}})}i.addCleanupHandler(h)})})(),u}(n,o,s),sc.set(o,l),l)})}}function ql(e){const t="undefined"!=typeof window?window.location.href:"";if(!t)return null;const n=new URL(t).searchParams.get("dxc-auth");if(!n)return null;let r;try{const e=function(e){const t=(e+"=".repeat((4-e.length%4)%4)).replace(/-/g,"+").replace(/_/g,"/");return atob(t)}(n);r=JSON.parse(e)}catch(e){return null}const{code:s,provider:i,state:o,error:c}=r;if(c){if(c.toLowerCase().includes("access_denied")||c.toLowerCase().includes("access denied"))throw new yo("access_denied",i,c);if(c.toLowerCase().includes("email")&&c.toLowerCase().includes("verif"))throw new yo("email_not_verified",i,c);throw new yo("provider_error",i,c)}return s&&i&&o?{code:s,provider:i,state:o}:null}function Gl(){var e;if("undefined"==typeof window||!(null===(e=window.history)||void 0===e?void 0:e.replaceState))return;const t=new URL(window.location.href);if(!t.searchParams.has("dxc-auth"))return;t.searchParams.delete("dxc-auth");const n=t.pathname+(t.searchParams.toString()?`?${t.searchParams.toString()}`:"")+t.hash;window.history.replaceState(null,"",n)}const Yl={nameSuffix:!0};function Ql(s){const i=s.name,o=Nl(s),c=[];let a=!1,u=null,d=null,h=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,l,v,w,_,k,S,x,E;f=!1;const C=so(s);"undefined"!=typeof window&&"undefined"!=typeof document&&((null===(i=C.cloud.options)||void 0===i?void 0:i.customLoginGui)||c.push(function(e){let t=!1;const n=document.createElement("div");return document.body?(document.body.appendChild(n),il($c($l,{db:e.vip}),n)):addEventListener("DOMContentLoaded",()=>{t||(document.body.appendChild(n),il($c($l,{db:e.vip}),n))}),{unsubscribe(){try{n.remove()}catch(e){}t=!0},get closed(){return t}}}(s))),C.cloud.isServiceWorkerDB||c.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 Qo.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"})),Nl(e.dx._novip),Xo]).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:c,progress:l}=n,a=t;return"error"===o&&(a="error"),"not-started"===t&&("pushing"!==o&&"pulling"!==o||(a="connecting")),"error"!==e.cloud.syncState.value.phase||"pushing"!==n.phase&&"pulling"!==n.phase||(a="connecting"),s||(a="disconnected"),{phase:o,error:c,progress:l,status:Kt?a:"offline",license:"ok"}}))}(C).subscribe(s.cloud.syncState)),c.push(C.syncCompleteEvent.subscribe(m));if("eager"===(null!==(v=null===(l=C.cloud.options)||void 0===l?void 0:l.blobMode)&&void 0!==v?v:"eager")){let t=null;const n=()=>{t||(t=e.ignoreTransaction(()=>function(t,n,s){return r(this,void 0,void 0,function*(){var i;const o=e=>{},c=dt(t);let l=!1;for(const e of c)try{if(!e.schema.idxByName._hasBlobRefs)continue;if((yield e.where("_hasBlobRefs").equals(1).count())>0){l=!0;break}}catch(e){}if(l){oo(n,!0);try{c.length,c.map(e=>e.name).join(", ");for(const n of c){null==s||s.aborted;try{if(!n.schema.indexes.some(e=>"_hasBlobRefs"===e.name))continue;const c=yield n.where("_hasBlobRefs").equals(1).toArray();o((n.name,c.length));const l=null===(i=t.cloud.options)||void 0===i?void 0:i.databaseUrl;if(!l)throw new Error("Database URL is required to download blobs");const a=6,u=n.schema.primKey,d=c.filter(t=>!!Qt(t)&&void 0!==(u.keyPath?e.getByKeyPath(t,u.keyPath):void 0));let h=0;const f=()=>r(this,void 0,void 0,function*(){for(;h<d.length;){null==s||s.aborted;const r=d[h++],i=e.getByKeyPath(r,u.keyPath);try{const e=[];yield Yt(r,l,e,"",new WeakMap,t.blobDownloadTracker);const s={_hasBlobRefs:void 0};for(const t of e)s[t.keyPath]=t.data;o((n.name,e.length)),yield n.update(i,s)}catch(e){}}}),p=[];for(let e=0;e<Math.min(a,d.length);e++)p.push(f());yield Promise.all(p)}catch(e){}}}finally{oo(n,!1)}}})}(C,b)).catch(e=>{}).finally(()=>{t=null}))};setTimeout(n,0),c.push(C.syncCompleteEvent.subscribe(n))}C.tables.every(e=>e.core)||function(){throw new e.SchemaError("Version increment needed to allow dexie-cloud change tracking")}();const A="serviceWorker"in navigator?yield navigator.serviceWorker.getRegistrations():[],[I,O]=yield C.transaction("rw",C.$syncState,()=>r(this,void 0,void 0,function*(){var e,t;const{options:n,schema:r}=C.cloud,[s,i,o]=yield Promise.all([C.getOptions(),C.getSchema(),C.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 C.$syncState.put(e,"options")}}else C.cloud.options=s||null;if((null===(e=C.cloud.options)||void 0===e?void 0:e.tryUseServiceWorker)&&"serviceWorker"in navigator&&A.length>0&&!Oo?C.cloud.usingServiceWorker=!0:((null===(t=C.cloud.options)||void 0===t?void 0:t.tryUseServiceWorker)&&C.cloud.isServiceWorkerDB,C.cloud.usingServiceWorker=!1),vc(r,C.cloud.options),vc(i,C.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 C.$syncState.put(e,"schema"),Object.assign(r,e)}}else C.cloud.schema=i||null;return[null==o?void 0:o.initiallySynced,null==o?void 0:o.realms]}));if(I&&C.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`)}}(C),p(),!C.cloud.isServiceWorkerDB){c.push(e.liveQuery(()=>C.getCurrentUser().then(e=>!e.isLoggedIn&&"undefined"!=typeof location&&/dxc-auth\=/.test(location.search)?Object.assign(Object.assign({},e),{isLoading:!0}):e)).subscribe(o)),c.push(e.liveQuery(()=>C.getPersistedSyncState()).subscribe(C.cloud.persistedSyncState)),yield t.firstValueFrom(t.combineLatest([o.pipe(n.skip(1),n.take(1)),C.cloud.persistedSyncState.pipe(n.skip(1),n.take(1))]));const r=Jl(C);Ui.on.new.subscribe(r),C.dx.once("close",()=>{Ui.on.new.unsubscribe(r)})}let D=!1,j=yield C.getCurrentUser();if(d&&!C.cloud.isServiceWorkerDB){const e=d;d=null;try{yield kt(C.cloud.userInteraction,"Authentication Error",{type:"error",messageCode:"GENERIC_ERROR",message:e.message,messageParams:{provider:e.provider||"unknown"}}),Gl()}catch(e){}}if(u&&!C.cloud.isServiceWorkerDB){const{code:e,provider:t}=u;u=null;try{D=yield Eo(C,{oauthCode:e,provider:t}),j=yield C.getCurrentUser(),Gl()}catch(e){}}const T=null===(w=C.cloud.options)||void 0===w?void 0:w.requireAuth;T&&(C.cloud.isServiceWorkerDB?yield t.firstValueFrom(o.pipe(n.filter(e=>!!e.isLoggedIn),n.take(1))):"object"==typeof T?(!j.isLoggedIn||T.userId&&j.userId!==T.userId||T.email&&j.email!==T.email)&&(D=yield Eo(C,T)):j.isLoggedIn||(D=yield Eo(C))),!j.isLoggedIn||O&&O.includes(j.userId)||(D=!0),h&&h.stop(),h=null,p();const U=(null===(_=C.cloud.options)||void 0===_?void 0:_.databaseUrl)&&(!I||D);U&&(yield function(e,t,n){return r(this,void 0,void 0,function*(){yield Yo(e,Gi,()=>Yi(e,t,n,{isInitialSync:!0}))})}(C,C.cloud.options,C.cloud.schema),C.setInitiallySynced(!0)),p(),C.cloud.usingServiceWorker&&(null===(k=C.cloud.options)||void 0===k?void 0:k.databaseUrl)?(U||g(C,"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){}})}(C).catch(()=>{})):(null===(S=C.cloud.options)||void 0===S?void 0:S.databaseUrl)&&C.cloud.schema&&!C.cloud.isServiceWorkerDB&&(h=bc(C,C.cloud.options,C.cloud.schema),h.start(),U||y(C,"push")),p(),C.cloud.isServiceWorkerDB||c.push(t.fromEvent(self,"online").subscribe(()=>{C.syncStateChangedEvent.next({phase:"not-in-sync"}),Ko(C)||y(C,"push")}),t.fromEvent(self,"offline").subscribe(()=>{C.syncStateChangedEvent.next({phase:"offline"})})),!(null===(x=C.cloud.options)||void 0===x?void 0:x.databaseUrl)||(null===(E=C.cloud.options)||void 0===E?void 0:E.disableWebSocket)||Do||c.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.cloud.persistedSyncState.pipe(n.filter(e=>!(!e||!e.serverRevision)),n.take(1))),n.switchMap(e=>r(this,void 0,void 0,function*(){return{type:"ready",rev:e.serverRevision,realmSetHash:yield ut(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])=>Xo.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 ut(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 uc(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 jt(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 fc?t.throwError(()=>r):t.from(pc()).pipe(n.switchMap(()=>s())))))}().subscribe({next:t=>{t&&e.messageConsumer.enqueue(t)},error:e=>{},complete:()=>{}})}(C))})}(s)}catch(e){}}),!0);let f=!1;function p(){if(f)throw new e.DatabaseClosedError}s.once("close",()=>{c.forEach(e=>e.unsubscribe()),c.splice(0,c.length),f=!0,h&&h.stop(),h=null,o.next(l)});const m=new t.Subject,b=new t.BehaviorSubject(!1);var v;s.cloud={version:"4.4.5",options:Object.assign({},Yl),schema:null,get currentUserId(){return o.value.userId||l.userId},currentUser:o,syncState:new t.BehaviorSubject({phase:"initial",status:"not-started"}),events:{syncComplete:m},persistedSyncState:new t.BehaviorSubject(void 0),blobProgress:co(so(s),b),userInteraction:new t.BehaviorSubject(void 0),webSocketStatus:new t.BehaviorSubject("not-started"),login(e){return r(this,void 0,void 0,function*(){const t=so(s);yield t.cloud.sync(),yield Eo(t,e)})},invites:Hl(s),roles:Fl(s),configure(e){if(void 0!==e.maxStringLength&&e.maxStringLength!==1/0&&(!Number.isFinite(e.maxStringLength)||e.maxStringLength<100||e.maxStringLength>32768))throw new Error(`maxStringLength must be Infinity or a finite number in [100, 32768]. Got: ${e.maxStringLength}`);if(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)}`,so(s).reconfigure()),vc(s.cloud.schema,s.cloud.options),"undefined"!=typeof window&&window.location)try{const e=ql();e&&(u={code:e.code,provider:e.provider})}catch(e){e instanceof yo&&(d=e)}},logout(){return r(this,arguments,void 0,function*({force:e}={}){e?yield po(so(s),{deleteUnsyncedData:!0}):yield fo(so(s))})},getAuthProviders(){return r(this,void 0,void 0,function*(){const e=s.cloud.options;if(!(null==e?void 0:e.databaseUrl))throw new Error("Dexie Cloud not configured. Call db.cloud.configure() first.");const t=!1!==e.socialAuth;return bo(e.databaseUrl,t)})},sync(){return r(this,arguments,void 0,function*({wait:i,purpose:o}={wait:!0,purpose:"push"}){var c;void 0===i&&(i=!0);const l=so(s);if("ok"!==((null===(c=l.cloud.currentUser.value.license)||void 0===c?void 0:c.status)||"ok")&&(yield Ot(l)),"pull"===o){const e=l.cloud.persistedSyncState.value;if(y(l,o),i){const r=yield t.firstValueFrom(l.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 gc(l)){const s=l.cloud.persistedSyncState.value;y(l,o),i&&(yield t.firstValueFrom(t.from(e.liveQuery(()=>r(this,void 0,void 0,function*(){const e=yield gc(l),t=yield l.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=Kl(e),c=t=>{const n=t[i||e.cloud.currentUserId];return n?new Vl(n.permissions,r,void 0===i||i===e.cloud.currentUserId||s===e.cloud.currentUserId):new Vl({},r,!s||s===e.cloud.currentUserId)},l=o.pipe(n.map(c));return l.getValue=()=>c(o.getValue()),l}(s._novip,e,t)},s.Version.prototype._parseStoresSpec=e.override(s.Version.prototype._parseStoresSpec,e=>Go(e,s)),s.Table.prototype.newId=function({colocateWith:e}={}){const t=e&&e.substr(e.length-3);return Bo(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(Jo(so(s))),s.use(Vo({currentUserObservable:s.cloud.currentUser,db:so(s)})),s.use((v=so(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,c,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:l.userId;if((null===(o=null===(i=v.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=(c=n.schema.primaryKey).extractKey)||void 0===a?void 0:a.call(c,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(so(s)))}Ql.version="4.4.5",e.Cloud=Ql;const Xl=new Map;function Zl(e){return e.startsWith("dexie-cloud:")&&e.split(":")[1]}const ea=new Map;function ta(t,n){let s=ea.get(t+"/"+n);return s||(s=function t(n,s){return r(this,void 0,void 0,function*(){var r;let i=Xl.get(n);if(!i){const r=new e(n,{addons:[Ql]});if(i=so(r),i.cloud.isServiceWorkerDB=!0,r.on("versionchange",o),yield i.dx.open(),Xl.get(n))return i.close(),yield t(n,s);Xl.set(n,i)}if((null===(r=i.cloud.options)||void 0===r?void 0:r.databaseUrl)&&i.cloud.schema)try{yield mc(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),Xl.get(i.name)===i&&Xl.delete(i.name),i.dx.close(),!1}})}(t,n).then(()=>{ea.delete(t+"/"+n)}).catch(e=>(ea.delete(t+"/"+n),Promise.reject(e))),ea.set(t+"/"+n,s)),s}Oo||(self.addEventListener("sync",e=>{const t=Zl(e.tag);t&&e.waitUntil(ta(t,"push"))}),self.addEventListener("periodicsync",e=>{const t=Zl(e.tag);t&&e.waitUntil(ta(t,"pull"))}),self.addEventListener("message",e=>{if("dexie-cloud-sync"===e.data.type){const{dbName:t}=e.data,n=(s=1)=>ta(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
|