dexie-cloud-addon 4.0.1-beta.48 → 4.0.1-beta.50
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/dexie-cloud-addon.js +6 -4
- package/dist/modern/dexie-cloud-addon.js.map +1 -1
- package/dist/modern/dexie-cloud-addon.min.js +1 -1
- package/dist/modern/dexie-cloud-addon.min.js.map +1 -1
- package/dist/modern/dexie-cloud-client.d.ts +11 -2
- package/dist/modern/service-worker.js +5 -3
- package/dist/modern/service-worker.js.map +1 -1
- package/dist/modern/service-worker.min.js +1 -1
- package/dist/modern/service-worker.min.js.map +1 -1
- package/dist/umd/dexie-cloud-addon.js +6 -3
- package/dist/umd/dexie-cloud-addon.js.map +1 -1
- package/dist/umd/dexie-cloud-client.d.ts +11 -2
- package/dist/umd/service-worker.js +5 -3
- package/dist/umd/service-worker.js.map +1 -1
- package/package.json +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-worker.js","sources":["../../../../node_modules/.pnpm/@rollup+plugin-typescript@11.1.5_rollup@4.1.4_tslib@2.4.0_typescript@4.9.4/node_modules/tslib/tslib.es6.js","../../src/authentication/UNAUTHORIZED_USER.ts","../../src/helpers/SWBroadcastChannel.ts","../../src/helpers/BroadcastedAndLocalEvent.ts","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/util/isFunction.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/util/lift.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/util/isArrayLike.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/util/isPromise.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/util/arrRemove.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/Subscription.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/config.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/util/noop.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/util/errorContext.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/Subscriber.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/symbol/observable.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/util/identity.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/util/pipe.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/Observable.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/util/isInteropObservable.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/util/isAsyncIterable.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/util/throwUnobservableError.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/symbol/iterator.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/util/isIterable.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/util/isReadableStreamLike.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/observable/innerFrom.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/scheduler/Action.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/scheduler/intervalProvider.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/scheduler/AsyncAction.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/scheduler/dateTimestampProvider.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/Scheduler.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/scheduler/AsyncScheduler.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/scheduler/async.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/util/isScheduler.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/util/isDate.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/observable/timer.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/util/args.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/util/executeSchedule.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/operators/catchError.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/operators/observeOn.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/operators/subscribeOn.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleObservable.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/scheduled/schedulePromise.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleArray.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleIterable.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleAsyncIterable.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleReadableStreamLike.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/scheduled/scheduled.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/observable/from.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/operators/map.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/operators/mergeInternals.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/operators/concatAll.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/operators/debounceTime.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/observable/concat.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/observable/empty.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/operators/take.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/operators/ignoreElements.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/operators/mapTo.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/operators/delayWhen.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/operators/delay.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/operators/distinctUntilChanged.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/operators/filter.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/operators/skip.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/operators/startWith.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/operators/switchMap.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/operators/tap.js","../../src/sync/registerSyncEvent.ts","../../src/sync/triggerSync.ts","../../../../node_modules/.pnpm/dreambase-library@1.0.21/node_modules/dreambase-library/dist/common/base64.js","../../src/helpers/computeRealmSetHash.ts","../../src/helpers/getSyncableTables.ts","../../src/helpers/getMutationTable.ts","../../src/helpers/getTableFromMutationTable.ts","../../src/helpers/flatten.ts","../../src/sync/listClientChanges.ts","../../src/helpers/randomString.ts","../../../../libs/dexie-cloud-common/dist/utils.js","../../../../libs/dexie-cloud-common/dist/validation/isValidSyncableID.js","../../../../libs/dexie-cloud-common/dist/change-processing/applyOperation.js","../../../../libs/dexie-cloud-common/dist/change-processing/applyOperations.js","../../../../libs/dexie-cloud-common/dist/change-processing/subtractChanges.js","../../../../libs/dexie-cloud-common/dist/change-processing/toDBOperationSet.js","../../../../libs/dexie-cloud-common/dist/getDbNameFromDbUrl.js","../../src/sync/listSyncifiedChanges.ts","../../src/sync/getTablesToSyncify.ts","../../src/authentication/TokenErrorResponseError.ts","../../src/authentication/interactWithUser.ts","../../src/authentication/authenticate.ts","../../../../node_modules/.pnpm/dreambase-library@1.0.21/node_modules/dreambase-library/dist/typeson-simplified/TypesonSimplified.js","../../../../node_modules/.pnpm/dreambase-library@1.0.21/node_modules/dreambase-library/dist/typeson-simplified/BisonBinaryTypes.js","../../../../node_modules/.pnpm/dreambase-library@1.0.21/node_modules/dreambase-library/dist/typeson-simplified/types/number.js","../../../../node_modules/.pnpm/dreambase-library@1.0.21/node_modules/dreambase-library/dist/typeson-simplified/types/bigint.js","../../../../node_modules/.pnpm/dreambase-library@1.0.21/node_modules/dreambase-library/dist/typeson-simplified/types/Date.js","../../../../node_modules/.pnpm/dreambase-library@1.0.21/node_modules/dreambase-library/dist/typeson-simplified/types/Set.js","../../../../node_modules/.pnpm/dreambase-library@1.0.21/node_modules/dreambase-library/dist/typeson-simplified/types/Map.js","../../../../node_modules/.pnpm/dreambase-library@1.0.21/node_modules/dreambase-library/dist/common/_global.js","../../../../node_modules/.pnpm/dreambase-library@1.0.21/node_modules/dreambase-library/dist/typeson-simplified/types/TypedArray.js","../../../../node_modules/.pnpm/dreambase-library@1.0.21/node_modules/dreambase-library/dist/common/b64lex.js","../../../../node_modules/.pnpm/dreambase-library@1.0.21/node_modules/dreambase-library/dist/typeson-simplified/types/ArrayBuffer.js","../../../../node_modules/.pnpm/dreambase-library@1.0.21/node_modules/dreambase-library/dist/typeson-simplified/FakeBlob.js","../../../../node_modules/.pnpm/dreambase-library@1.0.21/node_modules/dreambase-library/dist/typeson-simplified/readBlobSync.js","../../../../node_modules/.pnpm/dreambase-library@1.0.21/node_modules/dreambase-library/dist/typeson-simplified/string2arraybuffer.js","../../../../node_modules/.pnpm/dreambase-library@1.0.21/node_modules/dreambase-library/dist/typeson-simplified/types/Blob.js","../../../../node_modules/.pnpm/dreambase-library@1.0.21/node_modules/dreambase-library/dist/typeson-simplified/presets/builtin.js","../../../../node_modules/.pnpm/dreambase-library@1.0.21/node_modules/dreambase-library/dist/typeson-simplified/Bison.js","../../../../node_modules/.pnpm/dreambase-library@1.0.21/node_modules/dreambase-library/dist/typeson-simplified/types/undefined.js","../../src/TSON.ts","../../src/errors/HttpError.ts","../../src/sync/encodeIdsForServer.ts","../../src/sync/ratelimit.ts","../../src/sync/syncWithServer.ts","../../src/sync/modifyLocalObjectsWithNewUserId.ts","../../src/helpers/CancelToken.ts","../../src/sync/isOnline.ts","../../src/sync/updateBaseRevs.ts","../../src/sync/getLatestRevisionsPerTable.ts","../../src/helpers/bulkUpdate.ts","../../src/sync/applyServerChanges.ts","../../src/sync/sync.ts","../../src/sync/messagesFromServerQueue.ts","../../src/db/DexieCloudDB.ts","../../src/authentication/AuthPersistedContext.ts","../../src/authentication/waitUntil.ts","../../src/authentication/logout.ts","../../src/authentication/otpFetchTokenCallback.ts","../../src/prodLog.ts","../../src/authentication/setCurrentUser.ts","../../src/authentication/login.ts","../../src/isFirefox.ts","../../src/isSafari.ts","../../src/DISABLE_SERVICEWORKER_STRATEGY.ts","../../src/helpers/dbOnClosed.ts","../../src/helpers/IS_SERVICE_WORKER.ts","../../src/helpers/throwVersionIncrementNeeded.ts","../../src/middleware-helpers/idGenerationHelpers.ts","../../src/middlewares/createIdGenerationMiddleware.ts","../../src/middlewares/createImplicitPropSetterMiddleware.ts","../../src/helpers/allSettled.ts","../../src/middleware-helpers/guardedTable.ts","../../src/middlewares/outstandingTransaction.ts","../../src/isEagerSyncDisabled.ts","../../src/middlewares/createMutationTrackingMiddleware.ts","../../src/overrideParseStoresSpec.ts","../../src/performInitialSync.ts","../../src/userIsActive.ts","../../src/authentication/TokenExpiredError.ts","../../src/WSObservable.ts","../../src/InvalidLicenseError.ts","../../src/sync/connectWebSocket.ts","../../src/sync/isSyncNeeded.ts","../../src/sync/performGuardedJob.ts","../../src/sync/syncIfPossible.ts","../../src/helpers/date-constants.ts","../../src/sync/LocalSyncWorker.ts","../../src/updateSchemaFromOptions.ts","../../src/verifySchema.ts","../../../../node_modules/.pnpm/preact@10.10.6/node_modules/preact/dist/preact.module.js","../../src/default-ui/Styles.ts","../../src/default-ui/Dialog.tsx","../../../../node_modules/.pnpm/preact@10.10.6/node_modules/preact/hooks/dist/hooks.module.js","../../src/helpers/resolveText.ts","../../src/default-ui/LoginDialog.tsx","../../src/default-ui/index.tsx","../../src/associate.ts","../../src/currentUserEmitter.ts","../../src/computeSyncState.ts","../../src/createSharedValueObservable.ts","../../src/getGlobalRolesObservable.ts","../../src/getInternalAccessControlObservable.ts","../../src/mapValueObservable.ts","../../src/mergePermissions.ts","../../src/getPermissionsLookupObservable.ts","../../src/PermissionChecker.ts","../../src/permissions.ts","../../src/getInvitesObservable.ts","../../src/dexie-cloud-client.ts","../../src/service-worker.ts"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n",null,null,null,"export function isFunction(value) {\n return typeof value === 'function';\n}\n//# sourceMappingURL=isFunction.js.map","import { isFunction } from './isFunction';\nexport function hasLift(source) {\n return isFunction(source === null || source === void 0 ? void 0 : source.lift);\n}\nexport function operate(init) {\n return function (source) {\n if (hasLift(source)) {\n return source.lift(function (liftedSource) {\n try {\n return init(liftedSource, this);\n }\n catch (err) {\n this.error(err);\n }\n });\n }\n throw new TypeError('Unable to lift unknown Observable type');\n };\n}\n//# sourceMappingURL=lift.js.map","export var isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; });\n//# sourceMappingURL=isArrayLike.js.map","import { isFunction } from \"./isFunction\";\nexport function isPromise(value) {\n return isFunction(value === null || value === void 0 ? void 0 : value.then);\n}\n//# sourceMappingURL=isPromise.js.map","export function createErrorClass(createImpl) {\n var _super = function (instance) {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n var ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n//# sourceMappingURL=createErrorClass.js.map","import { createErrorClass } from './createErrorClass';\nexport var UnsubscriptionError = createErrorClass(function (_super) {\n return function UnsubscriptionErrorImpl(errors) {\n _super(this);\n this.message = errors\n ? errors.length + \" errors occurred during unsubscription:\\n\" + errors.map(function (err, i) { return i + 1 + \") \" + err.toString(); }).join('\\n ')\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n };\n});\n//# sourceMappingURL=UnsubscriptionError.js.map","export function arrRemove(arr, item) {\n if (arr) {\n var index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n//# sourceMappingURL=arrRemove.js.map","import { __read, __spreadArray, __values } from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { arrRemove } from './util/arrRemove';\nvar Subscription = (function () {\n function Subscription(initialTeardown) {\n this.initialTeardown = initialTeardown;\n this.closed = false;\n this._parentage = null;\n this._finalizers = null;\n }\n Subscription.prototype.unsubscribe = function () {\n var e_1, _a, e_2, _b;\n var errors;\n if (!this.closed) {\n this.closed = true;\n var _parentage = this._parentage;\n if (_parentage) {\n this._parentage = null;\n if (Array.isArray(_parentage)) {\n try {\n for (var _parentage_1 = __values(_parentage), _parentage_1_1 = _parentage_1.next(); !_parentage_1_1.done; _parentage_1_1 = _parentage_1.next()) {\n var parent_1 = _parentage_1_1.value;\n parent_1.remove(this);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_parentage_1_1 && !_parentage_1_1.done && (_a = _parentage_1.return)) _a.call(_parentage_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n else {\n _parentage.remove(this);\n }\n }\n var initialFinalizer = this.initialTeardown;\n if (isFunction(initialFinalizer)) {\n try {\n initialFinalizer();\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n var _finalizers = this._finalizers;\n if (_finalizers) {\n this._finalizers = null;\n try {\n for (var _finalizers_1 = __values(_finalizers), _finalizers_1_1 = _finalizers_1.next(); !_finalizers_1_1.done; _finalizers_1_1 = _finalizers_1.next()) {\n var finalizer = _finalizers_1_1.value;\n try {\n execFinalizer(finalizer);\n }\n catch (err) {\n errors = errors !== null && errors !== void 0 ? errors : [];\n if (err instanceof UnsubscriptionError) {\n errors = __spreadArray(__spreadArray([], __read(errors)), __read(err.errors));\n }\n else {\n errors.push(err);\n }\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_finalizers_1_1 && !_finalizers_1_1.done && (_b = _finalizers_1.return)) _b.call(_finalizers_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n };\n Subscription.prototype.add = function (teardown) {\n var _a;\n if (teardown && teardown !== this) {\n if (this.closed) {\n execFinalizer(teardown);\n }\n else {\n if (teardown instanceof Subscription) {\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push(teardown);\n }\n }\n };\n Subscription.prototype._hasParent = function (parent) {\n var _parentage = this._parentage;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n };\n Subscription.prototype._addParent = function (parent) {\n var _parentage = this._parentage;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n };\n Subscription.prototype._removeParent = function (parent) {\n var _parentage = this._parentage;\n if (_parentage === parent) {\n this._parentage = null;\n }\n else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n };\n Subscription.prototype.remove = function (teardown) {\n var _finalizers = this._finalizers;\n _finalizers && arrRemove(_finalizers, teardown);\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n };\n Subscription.EMPTY = (function () {\n var empty = new Subscription();\n empty.closed = true;\n return empty;\n })();\n return Subscription;\n}());\nexport { Subscription };\nexport var EMPTY_SUBSCRIPTION = Subscription.EMPTY;\nexport function isSubscription(value) {\n return (value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe)));\n}\nfunction execFinalizer(finalizer) {\n if (isFunction(finalizer)) {\n finalizer();\n }\n else {\n finalizer.unsubscribe();\n }\n}\n//# sourceMappingURL=Subscription.js.map","export var config = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n//# sourceMappingURL=config.js.map","import { __read, __spreadArray } from \"tslib\";\nexport var timeoutProvider = {\n setTimeout: function (handler, timeout) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n var delegate = timeoutProvider.delegate;\n if (delegate === null || delegate === void 0 ? void 0 : delegate.setTimeout) {\n return delegate.setTimeout.apply(delegate, __spreadArray([handler, timeout], __read(args)));\n }\n return setTimeout.apply(void 0, __spreadArray([handler, timeout], __read(args)));\n },\n clearTimeout: function (handle) {\n var delegate = timeoutProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearTimeout) || clearTimeout)(handle);\n },\n delegate: undefined,\n};\n//# sourceMappingURL=timeoutProvider.js.map","import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\nexport function reportUnhandledError(err) {\n timeoutProvider.setTimeout(function () {\n var onUnhandledError = config.onUnhandledError;\n if (onUnhandledError) {\n onUnhandledError(err);\n }\n else {\n throw err;\n }\n });\n}\n//# sourceMappingURL=reportUnhandledError.js.map","export function noop() { }\n//# sourceMappingURL=noop.js.map","import { config } from '../config';\nvar context = null;\nexport function errorContext(cb) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n var isRoot = !context;\n if (isRoot) {\n context = { errorThrown: false, error: null };\n }\n cb();\n if (isRoot) {\n var _a = context, errorThrown = _a.errorThrown, error = _a.error;\n context = null;\n if (errorThrown) {\n throw error;\n }\n }\n }\n else {\n cb();\n }\n}\nexport function captureError(err) {\n if (config.useDeprecatedSynchronousErrorHandling && context) {\n context.errorThrown = true;\n context.error = err;\n }\n}\n//# sourceMappingURL=errorContext.js.map","import { __extends } from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nimport { captureError } from './util/errorContext';\nvar Subscriber = (function (_super) {\n __extends(Subscriber, _super);\n function Subscriber(destination) {\n var _this = _super.call(this) || this;\n _this.isStopped = false;\n if (destination) {\n _this.destination = destination;\n if (isSubscription(destination)) {\n destination.add(_this);\n }\n }\n else {\n _this.destination = EMPTY_OBSERVER;\n }\n return _this;\n }\n Subscriber.create = function (next, error, complete) {\n return new SafeSubscriber(next, error, complete);\n };\n Subscriber.prototype.next = function (value) {\n if (this.isStopped) {\n handleStoppedNotification(nextNotification(value), this);\n }\n else {\n this._next(value);\n }\n };\n Subscriber.prototype.error = function (err) {\n if (this.isStopped) {\n handleStoppedNotification(errorNotification(err), this);\n }\n else {\n this.isStopped = true;\n this._error(err);\n }\n };\n Subscriber.prototype.complete = function () {\n if (this.isStopped) {\n handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n }\n else {\n this.isStopped = true;\n this._complete();\n }\n };\n Subscriber.prototype.unsubscribe = function () {\n if (!this.closed) {\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n this.destination = null;\n }\n };\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n Subscriber.prototype._error = function (err) {\n try {\n this.destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n };\n Subscriber.prototype._complete = function () {\n try {\n this.destination.complete();\n }\n finally {\n this.unsubscribe();\n }\n };\n return Subscriber;\n}(Subscription));\nexport { Subscriber };\nvar _bind = Function.prototype.bind;\nfunction bind(fn, thisArg) {\n return _bind.call(fn, thisArg);\n}\nvar ConsumerObserver = (function () {\n function ConsumerObserver(partialObserver) {\n this.partialObserver = partialObserver;\n }\n ConsumerObserver.prototype.next = function (value) {\n var partialObserver = this.partialObserver;\n if (partialObserver.next) {\n try {\n partialObserver.next(value);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n };\n ConsumerObserver.prototype.error = function (err) {\n var partialObserver = this.partialObserver;\n if (partialObserver.error) {\n try {\n partialObserver.error(err);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n else {\n handleUnhandledError(err);\n }\n };\n ConsumerObserver.prototype.complete = function () {\n var partialObserver = this.partialObserver;\n if (partialObserver.complete) {\n try {\n partialObserver.complete();\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n };\n return ConsumerObserver;\n}());\nvar SafeSubscriber = (function (_super) {\n __extends(SafeSubscriber, _super);\n function SafeSubscriber(observerOrNext, error, complete) {\n var _this = _super.call(this) || this;\n var partialObserver;\n if (isFunction(observerOrNext) || !observerOrNext) {\n partialObserver = {\n next: (observerOrNext !== null && observerOrNext !== void 0 ? observerOrNext : undefined),\n error: error !== null && error !== void 0 ? error : undefined,\n complete: complete !== null && complete !== void 0 ? complete : undefined,\n };\n }\n else {\n var context_1;\n if (_this && config.useDeprecatedNextContext) {\n context_1 = Object.create(observerOrNext);\n context_1.unsubscribe = function () { return _this.unsubscribe(); };\n partialObserver = {\n next: observerOrNext.next && bind(observerOrNext.next, context_1),\n error: observerOrNext.error && bind(observerOrNext.error, context_1),\n complete: observerOrNext.complete && bind(observerOrNext.complete, context_1),\n };\n }\n else {\n partialObserver = observerOrNext;\n }\n }\n _this.destination = new ConsumerObserver(partialObserver);\n return _this;\n }\n return SafeSubscriber;\n}(Subscriber));\nexport { SafeSubscriber };\nfunction handleUnhandledError(error) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n captureError(error);\n }\n else {\n reportUnhandledError(error);\n }\n}\nfunction defaultErrorHandler(err) {\n throw err;\n}\nfunction handleStoppedNotification(notification, subscriber) {\n var onStoppedNotification = config.onStoppedNotification;\n onStoppedNotification && timeoutProvider.setTimeout(function () { return onStoppedNotification(notification, subscriber); });\n}\nexport var EMPTY_OBSERVER = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n//# sourceMappingURL=Subscriber.js.map","export var observable = (function () { return (typeof Symbol === 'function' && Symbol.observable) || '@@observable'; })();\n//# sourceMappingURL=observable.js.map","export function identity(x) {\n return x;\n}\n//# sourceMappingURL=identity.js.map","import { identity } from './identity';\nexport function pipe() {\n var fns = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i] = arguments[_i];\n }\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce(function (prev, fn) { return fn(prev); }, input);\n };\n}\n//# sourceMappingURL=pipe.js.map","import { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription } from './Subscription';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nimport { errorContext } from './util/errorContext';\nvar Observable = (function () {\n function Observable(subscribe) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n Observable.prototype.lift = function (operator) {\n var observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n };\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n var _this = this;\n var subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n errorContext(function () {\n var _a = _this, operator = _a.operator, source = _a.source;\n subscriber.add(operator\n ?\n operator.call(subscriber, source)\n : source\n ?\n _this._subscribe(subscriber)\n :\n _this._trySubscribe(subscriber));\n });\n return subscriber;\n };\n Observable.prototype._trySubscribe = function (sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n sink.error(err);\n }\n };\n Observable.prototype.forEach = function (next, promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var subscriber = new SafeSubscriber({\n next: function (value) {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n subscriber.unsubscribe();\n }\n },\n error: reject,\n complete: resolve,\n });\n _this.subscribe(subscriber);\n });\n };\n Observable.prototype._subscribe = function (subscriber) {\n var _a;\n return (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber);\n };\n Observable.prototype[Symbol_observable] = function () {\n return this;\n };\n Observable.prototype.pipe = function () {\n var operations = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n operations[_i] = arguments[_i];\n }\n return pipeFromArray(operations)(this);\n };\n Observable.prototype.toPromise = function (promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var value;\n _this.subscribe(function (x) { return (value = x); }, function (err) { return reject(err); }, function () { return resolve(value); });\n });\n };\n Observable.create = function (subscribe) {\n return new Observable(subscribe);\n };\n return Observable;\n}());\nexport { Observable };\nfunction getPromiseCtor(promiseCtor) {\n var _a;\n return (_a = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config.Promise) !== null && _a !== void 0 ? _a : Promise;\n}\nfunction isObserver(value) {\n return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\nfunction isSubscriber(value) {\n return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n//# sourceMappingURL=Observable.js.map","import { observable as Symbol_observable } from '../symbol/observable';\nimport { isFunction } from './isFunction';\nexport function isInteropObservable(input) {\n return isFunction(input[Symbol_observable]);\n}\n//# sourceMappingURL=isInteropObservable.js.map","import { isFunction } from './isFunction';\nexport function isAsyncIterable(obj) {\n return Symbol.asyncIterator && isFunction(obj === null || obj === void 0 ? void 0 : obj[Symbol.asyncIterator]);\n}\n//# sourceMappingURL=isAsyncIterable.js.map","export function createInvalidObservableTypeError(input) {\n return new TypeError(\"You provided \" + (input !== null && typeof input === 'object' ? 'an invalid object' : \"'\" + input + \"'\") + \" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.\");\n}\n//# sourceMappingURL=throwUnobservableError.js.map","export function getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nexport var iterator = getSymbolIterator();\n//# sourceMappingURL=iterator.js.map","import { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from './isFunction';\nexport function isIterable(input) {\n return isFunction(input === null || input === void 0 ? void 0 : input[Symbol_iterator]);\n}\n//# sourceMappingURL=isIterable.js.map","import { __asyncGenerator, __await, __generator } from \"tslib\";\nimport { isFunction } from './isFunction';\nexport function readableStreamLikeToAsyncGenerator(readableStream) {\n return __asyncGenerator(this, arguments, function readableStreamLikeToAsyncGenerator_1() {\n var reader, _a, value, done;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n reader = readableStream.getReader();\n _b.label = 1;\n case 1:\n _b.trys.push([1, , 9, 10]);\n _b.label = 2;\n case 2:\n if (!true) return [3, 8];\n return [4, __await(reader.read())];\n case 3:\n _a = _b.sent(), value = _a.value, done = _a.done;\n if (!done) return [3, 5];\n return [4, __await(void 0)];\n case 4: return [2, _b.sent()];\n case 5: return [4, __await(value)];\n case 6: return [4, _b.sent()];\n case 7:\n _b.sent();\n return [3, 2];\n case 8: return [3, 10];\n case 9:\n reader.releaseLock();\n return [7];\n case 10: return [2];\n }\n });\n });\n}\nexport function isReadableStreamLike(obj) {\n return isFunction(obj === null || obj === void 0 ? void 0 : obj.getReader);\n}\n//# sourceMappingURL=isReadableStreamLike.js.map","import { __asyncValues, __awaiter, __generator, __values } from \"tslib\";\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isPromise } from '../util/isPromise';\nimport { Observable } from '../Observable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isAsyncIterable } from '../util/isAsyncIterable';\nimport { createInvalidObservableTypeError } from '../util/throwUnobservableError';\nimport { isIterable } from '../util/isIterable';\nimport { isReadableStreamLike, readableStreamLikeToAsyncGenerator } from '../util/isReadableStreamLike';\nimport { isFunction } from '../util/isFunction';\nimport { reportUnhandledError } from '../util/reportUnhandledError';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport function innerFrom(input) {\n if (input instanceof Observable) {\n return input;\n }\n if (input != null) {\n if (isInteropObservable(input)) {\n return fromInteropObservable(input);\n }\n if (isArrayLike(input)) {\n return fromArrayLike(input);\n }\n if (isPromise(input)) {\n return fromPromise(input);\n }\n if (isAsyncIterable(input)) {\n return fromAsyncIterable(input);\n }\n if (isIterable(input)) {\n return fromIterable(input);\n }\n if (isReadableStreamLike(input)) {\n return fromReadableStreamLike(input);\n }\n }\n throw createInvalidObservableTypeError(input);\n}\nexport function fromInteropObservable(obj) {\n return new Observable(function (subscriber) {\n var obs = obj[Symbol_observable]();\n if (isFunction(obs.subscribe)) {\n return obs.subscribe(subscriber);\n }\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n });\n}\nexport function fromArrayLike(array) {\n return new Observable(function (subscriber) {\n for (var i = 0; i < array.length && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n });\n}\nexport function fromPromise(promise) {\n return new Observable(function (subscriber) {\n promise\n .then(function (value) {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, function (err) { return subscriber.error(err); })\n .then(null, reportUnhandledError);\n });\n}\nexport function fromIterable(iterable) {\n return new Observable(function (subscriber) {\n var e_1, _a;\n try {\n for (var iterable_1 = __values(iterable), iterable_1_1 = iterable_1.next(); !iterable_1_1.done; iterable_1_1 = iterable_1.next()) {\n var value = iterable_1_1.value;\n subscriber.next(value);\n if (subscriber.closed) {\n return;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (iterable_1_1 && !iterable_1_1.done && (_a = iterable_1.return)) _a.call(iterable_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n subscriber.complete();\n });\n}\nexport function fromAsyncIterable(asyncIterable) {\n return new Observable(function (subscriber) {\n process(asyncIterable, subscriber).catch(function (err) { return subscriber.error(err); });\n });\n}\nexport function fromReadableStreamLike(readableStream) {\n return fromAsyncIterable(readableStreamLikeToAsyncGenerator(readableStream));\n}\nfunction process(asyncIterable, subscriber) {\n var asyncIterable_1, asyncIterable_1_1;\n var e_2, _a;\n return __awaiter(this, void 0, void 0, function () {\n var value, e_2_1;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 5, 6, 11]);\n asyncIterable_1 = __asyncValues(asyncIterable);\n _b.label = 1;\n case 1: return [4, asyncIterable_1.next()];\n case 2:\n if (!(asyncIterable_1_1 = _b.sent(), !asyncIterable_1_1.done)) return [3, 4];\n value = asyncIterable_1_1.value;\n subscriber.next(value);\n if (subscriber.closed) {\n return [2];\n }\n _b.label = 3;\n case 3: return [3, 1];\n case 4: return [3, 11];\n case 5:\n e_2_1 = _b.sent();\n e_2 = { error: e_2_1 };\n return [3, 11];\n case 6:\n _b.trys.push([6, , 9, 10]);\n if (!(asyncIterable_1_1 && !asyncIterable_1_1.done && (_a = asyncIterable_1.return))) return [3, 8];\n return [4, _a.call(asyncIterable_1)];\n case 7:\n _b.sent();\n _b.label = 8;\n case 8: return [3, 10];\n case 9:\n if (e_2) throw e_2.error;\n return [7];\n case 10: return [7];\n case 11:\n subscriber.complete();\n return [2];\n }\n });\n });\n}\n//# sourceMappingURL=innerFrom.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function createOperatorSubscriber(destination, onNext, onComplete, onError, onFinalize) {\n return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize);\n}\nvar OperatorSubscriber = (function (_super) {\n __extends(OperatorSubscriber, _super);\n function OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize, shouldUnsubscribe) {\n var _this = _super.call(this, destination) || this;\n _this.onFinalize = onFinalize;\n _this.shouldUnsubscribe = shouldUnsubscribe;\n _this._next = onNext\n ? function (value) {\n try {\n onNext(value);\n }\n catch (err) {\n destination.error(err);\n }\n }\n : _super.prototype._next;\n _this._error = onError\n ? function (err) {\n try {\n onError(err);\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : _super.prototype._error;\n _this._complete = onComplete\n ? function () {\n try {\n onComplete();\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : _super.prototype._complete;\n return _this;\n }\n OperatorSubscriber.prototype.unsubscribe = function () {\n var _a;\n if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {\n var closed_1 = this.closed;\n _super.prototype.unsubscribe.call(this);\n !closed_1 && ((_a = this.onFinalize) === null || _a === void 0 ? void 0 : _a.call(this));\n }\n };\n return OperatorSubscriber;\n}(Subscriber));\nexport { OperatorSubscriber };\n//# sourceMappingURL=OperatorSubscriber.js.map","import { __extends } from \"tslib\";\nimport { Subscription } from '../Subscription';\nvar Action = (function (_super) {\n __extends(Action, _super);\n function Action(scheduler, work) {\n return _super.call(this) || this;\n }\n Action.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n return this;\n };\n return Action;\n}(Subscription));\nexport { Action };\n//# sourceMappingURL=Action.js.map","import { __read, __spreadArray } from \"tslib\";\nexport var intervalProvider = {\n setInterval: function (handler, timeout) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n var delegate = intervalProvider.delegate;\n if (delegate === null || delegate === void 0 ? void 0 : delegate.setInterval) {\n return delegate.setInterval.apply(delegate, __spreadArray([handler, timeout], __read(args)));\n }\n return setInterval.apply(void 0, __spreadArray([handler, timeout], __read(args)));\n },\n clearInterval: function (handle) {\n var delegate = intervalProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearInterval) || clearInterval)(handle);\n },\n delegate: undefined,\n};\n//# sourceMappingURL=intervalProvider.js.map","import { __extends } from \"tslib\";\nimport { Action } from './Action';\nimport { intervalProvider } from './intervalProvider';\nimport { arrRemove } from '../util/arrRemove';\nvar AsyncAction = (function (_super) {\n __extends(AsyncAction, _super);\n function AsyncAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n _this.pending = false;\n return _this;\n }\n AsyncAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n if (this.closed) {\n return this;\n }\n this.state = state;\n var id = this.id;\n var scheduler = this.scheduler;\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n this.pending = true;\n this.delay = delay;\n this.id = this.id || this.requestAsyncId(scheduler, this.id, delay);\n return this;\n };\n AsyncAction.prototype.requestAsyncId = function (scheduler, _id, delay) {\n if (delay === void 0) { delay = 0; }\n return intervalProvider.setInterval(scheduler.flush.bind(scheduler, this), delay);\n };\n AsyncAction.prototype.recycleAsyncId = function (_scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay != null && this.delay === delay && this.pending === false) {\n return id;\n }\n intervalProvider.clearInterval(id);\n return undefined;\n };\n AsyncAction.prototype.execute = function (state, delay) {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n this.pending = false;\n var error = this._execute(state, delay);\n if (error) {\n return error;\n }\n else if (this.pending === false && this.id != null) {\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n };\n AsyncAction.prototype._execute = function (state, _delay) {\n var errored = false;\n var errorValue;\n try {\n this.work(state);\n }\n catch (e) {\n errored = true;\n errorValue = e ? e : new Error('Scheduled action threw falsy error');\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n };\n AsyncAction.prototype.unsubscribe = function () {\n if (!this.closed) {\n var _a = this, id = _a.id, scheduler = _a.scheduler;\n var actions = scheduler.actions;\n this.work = this.state = this.scheduler = null;\n this.pending = false;\n arrRemove(actions, this);\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n this.delay = null;\n _super.prototype.unsubscribe.call(this);\n }\n };\n return AsyncAction;\n}(Action));\nexport { AsyncAction };\n//# sourceMappingURL=AsyncAction.js.map","export var dateTimestampProvider = {\n now: function () {\n return (dateTimestampProvider.delegate || Date).now();\n },\n delegate: undefined,\n};\n//# sourceMappingURL=dateTimestampProvider.js.map","import { dateTimestampProvider } from './scheduler/dateTimestampProvider';\nvar Scheduler = (function () {\n function Scheduler(schedulerActionCtor, now) {\n if (now === void 0) { now = Scheduler.now; }\n this.schedulerActionCtor = schedulerActionCtor;\n this.now = now;\n }\n Scheduler.prototype.schedule = function (work, delay, state) {\n if (delay === void 0) { delay = 0; }\n return new this.schedulerActionCtor(this, work).schedule(state, delay);\n };\n Scheduler.now = dateTimestampProvider.now;\n return Scheduler;\n}());\nexport { Scheduler };\n//# sourceMappingURL=Scheduler.js.map","import { __extends } from \"tslib\";\nimport { Scheduler } from '../Scheduler';\nvar AsyncScheduler = (function (_super) {\n __extends(AsyncScheduler, _super);\n function AsyncScheduler(SchedulerAction, now) {\n if (now === void 0) { now = Scheduler.now; }\n var _this = _super.call(this, SchedulerAction, now) || this;\n _this.actions = [];\n _this._active = false;\n _this._scheduled = undefined;\n return _this;\n }\n AsyncScheduler.prototype.flush = function (action) {\n var actions = this.actions;\n if (this._active) {\n actions.push(action);\n return;\n }\n var error;\n this._active = true;\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions.shift()));\n this._active = false;\n if (error) {\n while ((action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AsyncScheduler;\n}(Scheduler));\nexport { AsyncScheduler };\n//# sourceMappingURL=AsyncScheduler.js.map","import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\nexport var asyncScheduler = new AsyncScheduler(AsyncAction);\nexport var async = asyncScheduler;\n//# sourceMappingURL=async.js.map","import { isFunction } from './isFunction';\nexport function isScheduler(value) {\n return value && isFunction(value.schedule);\n}\n//# sourceMappingURL=isScheduler.js.map","export function isValidDate(value) {\n return value instanceof Date && !isNaN(value);\n}\n//# sourceMappingURL=isDate.js.map","import { Observable } from '../Observable';\nimport { async as asyncScheduler } from '../scheduler/async';\nimport { isScheduler } from '../util/isScheduler';\nimport { isValidDate } from '../util/isDate';\nexport function timer(dueTime, intervalOrScheduler, scheduler) {\n if (dueTime === void 0) { dueTime = 0; }\n if (scheduler === void 0) { scheduler = asyncScheduler; }\n var intervalDuration = -1;\n if (intervalOrScheduler != null) {\n if (isScheduler(intervalOrScheduler)) {\n scheduler = intervalOrScheduler;\n }\n else {\n intervalDuration = intervalOrScheduler;\n }\n }\n return new Observable(function (subscriber) {\n var due = isValidDate(dueTime) ? +dueTime - scheduler.now() : dueTime;\n if (due < 0) {\n due = 0;\n }\n var n = 0;\n return scheduler.schedule(function () {\n if (!subscriber.closed) {\n subscriber.next(n++);\n if (0 <= intervalDuration) {\n this.schedule(undefined, intervalDuration);\n }\n else {\n subscriber.complete();\n }\n }\n }, due);\n });\n}\n//# sourceMappingURL=timer.js.map","import { isFunction } from './isFunction';\nimport { isScheduler } from './isScheduler';\nfunction last(arr) {\n return arr[arr.length - 1];\n}\nexport function popResultSelector(args) {\n return isFunction(last(args)) ? args.pop() : undefined;\n}\nexport function popScheduler(args) {\n return isScheduler(last(args)) ? args.pop() : undefined;\n}\nexport function popNumber(args, defaultValue) {\n return typeof last(args) === 'number' ? args.pop() : defaultValue;\n}\n//# sourceMappingURL=args.js.map","export function executeSchedule(parentSubscription, scheduler, work, delay, repeat) {\n if (delay === void 0) { delay = 0; }\n if (repeat === void 0) { repeat = false; }\n var scheduleSubscription = scheduler.schedule(function () {\n work();\n if (repeat) {\n parentSubscription.add(this.schedule(null, delay));\n }\n else {\n this.unsubscribe();\n }\n }, delay);\n parentSubscription.add(scheduleSubscription);\n if (!repeat) {\n return scheduleSubscription;\n }\n}\n//# sourceMappingURL=executeSchedule.js.map","import { innerFrom } from '../observable/innerFrom';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { operate } from '../util/lift';\nexport function catchError(selector) {\n return operate(function (source, subscriber) {\n var innerSub = null;\n var syncUnsub = false;\n var handledResult;\n innerSub = source.subscribe(createOperatorSubscriber(subscriber, undefined, undefined, function (err) {\n handledResult = innerFrom(selector(err, catchError(selector)(source)));\n if (innerSub) {\n innerSub.unsubscribe();\n innerSub = null;\n handledResult.subscribe(subscriber);\n }\n else {\n syncUnsub = true;\n }\n }));\n if (syncUnsub) {\n innerSub.unsubscribe();\n innerSub = null;\n handledResult.subscribe(subscriber);\n }\n });\n}\n//# sourceMappingURL=catchError.js.map","import { executeSchedule } from '../util/executeSchedule';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function observeOn(scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n return operate(function (source, subscriber) {\n source.subscribe(createOperatorSubscriber(subscriber, function (value) { return executeSchedule(subscriber, scheduler, function () { return subscriber.next(value); }, delay); }, function () { return executeSchedule(subscriber, scheduler, function () { return subscriber.complete(); }, delay); }, function (err) { return executeSchedule(subscriber, scheduler, function () { return subscriber.error(err); }, delay); }));\n });\n}\n//# sourceMappingURL=observeOn.js.map","import { operate } from '../util/lift';\nexport function subscribeOn(scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n return operate(function (source, subscriber) {\n subscriber.add(scheduler.schedule(function () { return source.subscribe(subscriber); }, delay));\n });\n}\n//# sourceMappingURL=subscribeOn.js.map","import { innerFrom } from '../observable/innerFrom';\nimport { observeOn } from '../operators/observeOn';\nimport { subscribeOn } from '../operators/subscribeOn';\nexport function scheduleObservable(input, scheduler) {\n return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler));\n}\n//# sourceMappingURL=scheduleObservable.js.map","import { innerFrom } from '../observable/innerFrom';\nimport { observeOn } from '../operators/observeOn';\nimport { subscribeOn } from '../operators/subscribeOn';\nexport function schedulePromise(input, scheduler) {\n return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler));\n}\n//# sourceMappingURL=schedulePromise.js.map","import { Observable } from '../Observable';\nexport function scheduleArray(input, scheduler) {\n return new Observable(function (subscriber) {\n var i = 0;\n return scheduler.schedule(function () {\n if (i === input.length) {\n subscriber.complete();\n }\n else {\n subscriber.next(input[i++]);\n if (!subscriber.closed) {\n this.schedule();\n }\n }\n });\n });\n}\n//# sourceMappingURL=scheduleArray.js.map","import { Observable } from '../Observable';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from '../util/isFunction';\nimport { executeSchedule } from '../util/executeSchedule';\nexport function scheduleIterable(input, scheduler) {\n return new Observable(function (subscriber) {\n var iterator;\n executeSchedule(subscriber, scheduler, function () {\n iterator = input[Symbol_iterator]();\n executeSchedule(subscriber, scheduler, function () {\n var _a;\n var value;\n var done;\n try {\n (_a = iterator.next(), value = _a.value, done = _a.done);\n }\n catch (err) {\n subscriber.error(err);\n return;\n }\n if (done) {\n subscriber.complete();\n }\n else {\n subscriber.next(value);\n }\n }, 0, true);\n });\n return function () { return isFunction(iterator === null || iterator === void 0 ? void 0 : iterator.return) && iterator.return(); };\n });\n}\n//# sourceMappingURL=scheduleIterable.js.map","import { Observable } from '../Observable';\nimport { executeSchedule } from '../util/executeSchedule';\nexport function scheduleAsyncIterable(input, scheduler) {\n if (!input) {\n throw new Error('Iterable cannot be null');\n }\n return new Observable(function (subscriber) {\n executeSchedule(subscriber, scheduler, function () {\n var iterator = input[Symbol.asyncIterator]();\n executeSchedule(subscriber, scheduler, function () {\n iterator.next().then(function (result) {\n if (result.done) {\n subscriber.complete();\n }\n else {\n subscriber.next(result.value);\n }\n });\n }, 0, true);\n });\n });\n}\n//# sourceMappingURL=scheduleAsyncIterable.js.map","import { scheduleAsyncIterable } from './scheduleAsyncIterable';\nimport { readableStreamLikeToAsyncGenerator } from '../util/isReadableStreamLike';\nexport function scheduleReadableStreamLike(input, scheduler) {\n return scheduleAsyncIterable(readableStreamLikeToAsyncGenerator(input), scheduler);\n}\n//# sourceMappingURL=scheduleReadableStreamLike.js.map","import { scheduleObservable } from './scheduleObservable';\nimport { schedulePromise } from './schedulePromise';\nimport { scheduleArray } from './scheduleArray';\nimport { scheduleIterable } from './scheduleIterable';\nimport { scheduleAsyncIterable } from './scheduleAsyncIterable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isPromise } from '../util/isPromise';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isIterable } from '../util/isIterable';\nimport { isAsyncIterable } from '../util/isAsyncIterable';\nimport { createInvalidObservableTypeError } from '../util/throwUnobservableError';\nimport { isReadableStreamLike } from '../util/isReadableStreamLike';\nimport { scheduleReadableStreamLike } from './scheduleReadableStreamLike';\nexport function scheduled(input, scheduler) {\n if (input != null) {\n if (isInteropObservable(input)) {\n return scheduleObservable(input, scheduler);\n }\n if (isArrayLike(input)) {\n return scheduleArray(input, scheduler);\n }\n if (isPromise(input)) {\n return schedulePromise(input, scheduler);\n }\n if (isAsyncIterable(input)) {\n return scheduleAsyncIterable(input, scheduler);\n }\n if (isIterable(input)) {\n return scheduleIterable(input, scheduler);\n }\n if (isReadableStreamLike(input)) {\n return scheduleReadableStreamLike(input, scheduler);\n }\n }\n throw createInvalidObservableTypeError(input);\n}\n//# sourceMappingURL=scheduled.js.map","import { scheduled } from '../scheduled/scheduled';\nimport { innerFrom } from './innerFrom';\nexport function from(input, scheduler) {\n return scheduler ? scheduled(input, scheduler) : innerFrom(input);\n}\n//# sourceMappingURL=from.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function map(project, thisArg) {\n return operate(function (source, subscriber) {\n var index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n subscriber.next(project.call(thisArg, value, index++));\n }));\n });\n}\n//# sourceMappingURL=map.js.map","import { innerFrom } from '../observable/innerFrom';\nimport { executeSchedule } from '../util/executeSchedule';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function mergeInternals(source, subscriber, project, concurrent, onBeforeNext, expand, innerSubScheduler, additionalFinalizer) {\n var buffer = [];\n var active = 0;\n var index = 0;\n var isComplete = false;\n var checkComplete = function () {\n if (isComplete && !buffer.length && !active) {\n subscriber.complete();\n }\n };\n var outerNext = function (value) { return (active < concurrent ? doInnerSub(value) : buffer.push(value)); };\n var doInnerSub = function (value) {\n expand && subscriber.next(value);\n active++;\n var innerComplete = false;\n innerFrom(project(value, index++)).subscribe(createOperatorSubscriber(subscriber, function (innerValue) {\n onBeforeNext === null || onBeforeNext === void 0 ? void 0 : onBeforeNext(innerValue);\n if (expand) {\n outerNext(innerValue);\n }\n else {\n subscriber.next(innerValue);\n }\n }, function () {\n innerComplete = true;\n }, undefined, function () {\n if (innerComplete) {\n try {\n active--;\n var _loop_1 = function () {\n var bufferedValue = buffer.shift();\n if (innerSubScheduler) {\n executeSchedule(subscriber, innerSubScheduler, function () { return doInnerSub(bufferedValue); });\n }\n else {\n doInnerSub(bufferedValue);\n }\n };\n while (buffer.length && active < concurrent) {\n _loop_1();\n }\n checkComplete();\n }\n catch (err) {\n subscriber.error(err);\n }\n }\n }));\n };\n source.subscribe(createOperatorSubscriber(subscriber, outerNext, function () {\n isComplete = true;\n checkComplete();\n }));\n return function () {\n additionalFinalizer === null || additionalFinalizer === void 0 ? void 0 : additionalFinalizer();\n };\n}\n//# sourceMappingURL=mergeInternals.js.map","import { map } from './map';\nimport { innerFrom } from '../observable/innerFrom';\nimport { operate } from '../util/lift';\nimport { mergeInternals } from './mergeInternals';\nimport { isFunction } from '../util/isFunction';\nexport function mergeMap(project, resultSelector, concurrent) {\n if (concurrent === void 0) { concurrent = Infinity; }\n if (isFunction(resultSelector)) {\n return mergeMap(function (a, i) { return map(function (b, ii) { return resultSelector(a, b, i, ii); })(innerFrom(project(a, i))); }, concurrent);\n }\n else if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return operate(function (source, subscriber) { return mergeInternals(source, subscriber, project, concurrent); });\n}\n//# sourceMappingURL=mergeMap.js.map","import { mergeMap } from './mergeMap';\nimport { identity } from '../util/identity';\nexport function mergeAll(concurrent) {\n if (concurrent === void 0) { concurrent = Infinity; }\n return mergeMap(identity, concurrent);\n}\n//# sourceMappingURL=mergeAll.js.map","import { mergeAll } from './mergeAll';\nexport function concatAll() {\n return mergeAll(1);\n}\n//# sourceMappingURL=concatAll.js.map","import { asyncScheduler } from '../scheduler/async';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function debounceTime(dueTime, scheduler) {\n if (scheduler === void 0) { scheduler = asyncScheduler; }\n return operate(function (source, subscriber) {\n var activeTask = null;\n var lastValue = null;\n var lastTime = null;\n var emit = function () {\n if (activeTask) {\n activeTask.unsubscribe();\n activeTask = null;\n var value = lastValue;\n lastValue = null;\n subscriber.next(value);\n }\n };\n function emitWhenIdle() {\n var targetTime = lastTime + dueTime;\n var now = scheduler.now();\n if (now < targetTime) {\n activeTask = this.schedule(undefined, targetTime - now);\n subscriber.add(activeTask);\n return;\n }\n emit();\n }\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n lastValue = value;\n lastTime = scheduler.now();\n if (!activeTask) {\n activeTask = scheduler.schedule(emitWhenIdle, dueTime);\n subscriber.add(activeTask);\n }\n }, function () {\n emit();\n subscriber.complete();\n }, undefined, function () {\n lastValue = activeTask = null;\n }));\n });\n}\n//# sourceMappingURL=debounceTime.js.map","import { concatAll } from '../operators/concatAll';\nimport { popScheduler } from '../util/args';\nimport { from } from './from';\nexport function concat() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return concatAll()(from(args, popScheduler(args)));\n}\n//# sourceMappingURL=concat.js.map","import { Observable } from '../Observable';\nexport var EMPTY = new Observable(function (subscriber) { return subscriber.complete(); });\nexport function empty(scheduler) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\nfunction emptyScheduled(scheduler) {\n return new Observable(function (subscriber) { return scheduler.schedule(function () { return subscriber.complete(); }); });\n}\n//# sourceMappingURL=empty.js.map","import { EMPTY } from '../observable/empty';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function take(count) {\n return count <= 0\n ?\n function () { return EMPTY; }\n : operate(function (source, subscriber) {\n var seen = 0;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n if (++seen <= count) {\n subscriber.next(value);\n if (count <= seen) {\n subscriber.complete();\n }\n }\n }));\n });\n}\n//# sourceMappingURL=take.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { noop } from '../util/noop';\nexport function ignoreElements() {\n return operate(function (source, subscriber) {\n source.subscribe(createOperatorSubscriber(subscriber, noop));\n });\n}\n//# sourceMappingURL=ignoreElements.js.map","import { map } from './map';\nexport function mapTo(value) {\n return map(function () { return value; });\n}\n//# sourceMappingURL=mapTo.js.map","import { concat } from '../observable/concat';\nimport { take } from './take';\nimport { ignoreElements } from './ignoreElements';\nimport { mapTo } from './mapTo';\nimport { mergeMap } from './mergeMap';\nexport function delayWhen(delayDurationSelector, subscriptionDelay) {\n if (subscriptionDelay) {\n return function (source) {\n return concat(subscriptionDelay.pipe(take(1), ignoreElements()), source.pipe(delayWhen(delayDurationSelector)));\n };\n }\n return mergeMap(function (value, index) { return delayDurationSelector(value, index).pipe(take(1), mapTo(value)); });\n}\n//# sourceMappingURL=delayWhen.js.map","import { asyncScheduler } from '../scheduler/async';\nimport { delayWhen } from './delayWhen';\nimport { timer } from '../observable/timer';\nexport function delay(due, scheduler) {\n if (scheduler === void 0) { scheduler = asyncScheduler; }\n var duration = timer(due, scheduler);\n return delayWhen(function () { return duration; });\n}\n//# sourceMappingURL=delay.js.map","import { identity } from '../util/identity';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function distinctUntilChanged(comparator, keySelector) {\n if (keySelector === void 0) { keySelector = identity; }\n comparator = comparator !== null && comparator !== void 0 ? comparator : defaultCompare;\n return operate(function (source, subscriber) {\n var previousKey;\n var first = true;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n var currentKey = keySelector(value);\n if (first || !comparator(previousKey, currentKey)) {\n first = false;\n previousKey = currentKey;\n subscriber.next(value);\n }\n }));\n });\n}\nfunction defaultCompare(a, b) {\n return a === b;\n}\n//# sourceMappingURL=distinctUntilChanged.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function filter(predicate, thisArg) {\n return operate(function (source, subscriber) {\n var index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) { return predicate.call(thisArg, value, index++) && subscriber.next(value); }));\n });\n}\n//# sourceMappingURL=filter.js.map","import { filter } from './filter';\nexport function skip(count) {\n return filter(function (_, index) { return count <= index; });\n}\n//# sourceMappingURL=skip.js.map","import { concat } from '../observable/concat';\nimport { popScheduler } from '../util/args';\nimport { operate } from '../util/lift';\nexport function startWith() {\n var values = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n values[_i] = arguments[_i];\n }\n var scheduler = popScheduler(values);\n return operate(function (source, subscriber) {\n (scheduler ? concat(values, source, scheduler) : concat(values, source)).subscribe(subscriber);\n });\n}\n//# sourceMappingURL=startWith.js.map","import { innerFrom } from '../observable/innerFrom';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function switchMap(project, resultSelector) {\n return operate(function (source, subscriber) {\n var innerSubscriber = null;\n var index = 0;\n var isComplete = false;\n var checkComplete = function () { return isComplete && !innerSubscriber && subscriber.complete(); };\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n innerSubscriber === null || innerSubscriber === void 0 ? void 0 : innerSubscriber.unsubscribe();\n var innerIndex = 0;\n var outerIndex = index++;\n innerFrom(project(value, outerIndex)).subscribe((innerSubscriber = createOperatorSubscriber(subscriber, function (innerValue) { return subscriber.next(resultSelector ? resultSelector(value, innerValue, outerIndex, innerIndex++) : innerValue); }, function () {\n innerSubscriber = null;\n checkComplete();\n })));\n }, function () {\n isComplete = true;\n checkComplete();\n }));\n });\n}\n//# sourceMappingURL=switchMap.js.map","import { isFunction } from '../util/isFunction';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { identity } from '../util/identity';\nexport function tap(observerOrNext, error, complete) {\n var tapObserver = isFunction(observerOrNext) || error || complete\n ?\n { next: observerOrNext, error: error, complete: complete }\n : observerOrNext;\n return tapObserver\n ? operate(function (source, subscriber) {\n var _a;\n (_a = tapObserver.subscribe) === null || _a === void 0 ? void 0 : _a.call(tapObserver);\n var isUnsub = true;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n var _a;\n (_a = tapObserver.next) === null || _a === void 0 ? void 0 : _a.call(tapObserver, value);\n subscriber.next(value);\n }, function () {\n var _a;\n isUnsub = false;\n (_a = tapObserver.complete) === null || _a === void 0 ? void 0 : _a.call(tapObserver);\n subscriber.complete();\n }, function (err) {\n var _a;\n isUnsub = false;\n (_a = tapObserver.error) === null || _a === void 0 ? void 0 : _a.call(tapObserver, err);\n subscriber.error(err);\n }, function () {\n var _a, _b;\n if (isUnsub) {\n (_a = tapObserver.unsubscribe) === null || _a === void 0 ? void 0 : _a.call(tapObserver);\n }\n (_b = tapObserver.finalize) === null || _b === void 0 ? void 0 : _b.call(tapObserver);\n }));\n })\n :\n identity;\n}\n//# sourceMappingURL=tap.js.map",null,null,"export const b64decode = typeof Buffer !== \"undefined\"\n ? (base64) => Buffer.from(base64, \"base64\")\n : (base64) => {\n const binary_string = atob(base64);\n const len = binary_string.length;\n const bytes = new Uint8Array(len);\n for (var i = 0; i < len; i++) {\n bytes[i] = binary_string.charCodeAt(i);\n }\n return bytes;\n };\nexport const b64encode = typeof Buffer !== \"undefined\"\n ? (b) => {\n if (ArrayBuffer.isView(b)) {\n return Buffer.from(b.buffer, b.byteOffset, b.byteLength).toString(\"base64\");\n }\n else {\n return Buffer.from(b).toString(\"base64\");\n }\n }\n : (b) => {\n const u8a = ArrayBuffer.isView(b) ? b : new Uint8Array(b);\n const CHUNK_SIZE = 0x1000;\n const strs = [];\n for (let i = 0, l = u8a.length; i < l; i += CHUNK_SIZE) {\n const chunk = u8a.subarray(i, i + CHUNK_SIZE);\n strs.push(String.fromCharCode.apply(null, chunk));\n }\n return btoa(strs.join(\"\"));\n };\n",null,null,null,null,null,null,null,"export function assert(b) {\n if (!b)\n throw new Error('Assertion Failed');\n}\nconst _hasOwn = {}.hasOwnProperty;\nexport function hasOwn(obj, prop) {\n return _hasOwn.call(obj, prop);\n}\nexport function setByKeyPath(obj, keyPath, value) {\n if (!obj || keyPath === undefined)\n return;\n if ('isFrozen' in Object && Object.isFrozen(obj))\n return;\n if (typeof keyPath !== 'string' && 'length' in keyPath) {\n assert(typeof value !== 'string' && 'length' in value);\n for (var i = 0, l = keyPath.length; i < l; ++i) {\n setByKeyPath(obj, keyPath[i], value[i]);\n }\n }\n else {\n var period = keyPath.indexOf('.');\n if (period !== -1) {\n var currentKeyPath = keyPath.substr(0, period);\n var remainingKeyPath = keyPath.substr(period + 1);\n if (remainingKeyPath === '')\n if (value === undefined) {\n if (Array.isArray(obj)) {\n if (!isNaN(parseInt(currentKeyPath)))\n obj.splice(parseInt(currentKeyPath), 1);\n }\n else\n delete obj[currentKeyPath];\n // @ts-ignore: even if currentKeyPath would be numeric string and obj would be array - it works.\n }\n else\n obj[currentKeyPath] = value;\n else {\n //@ts-ignore: even if currentKeyPath would be numeric string and obj would be array - it works.\n var innerObj = obj[currentKeyPath];\n //@ts-ignore: even if currentKeyPath would be numeric string and obj would be array - it works.\n if (!innerObj || !hasOwn(obj, currentKeyPath))\n innerObj = (obj[currentKeyPath] = {});\n setByKeyPath(innerObj, remainingKeyPath, value);\n }\n }\n else {\n if (value === undefined) {\n if (Array.isArray(obj) && !isNaN(parseInt(keyPath)))\n // @ts-ignore: even if currentKeyPath would be numeric string and obj would be array - it works.\n obj.splice(keyPath, 1);\n //@ts-ignore: even if currentKeyPath would be numeric string and obj would be array - it works.\n else\n delete obj[keyPath];\n //@ts-ignore: even if currentKeyPath would be numeric string and obj would be array - it works.\n }\n else\n obj[keyPath] = value;\n }\n }\n}\nexport const randomString = typeof self !== 'undefined' && typeof crypto !== 'undefined' ? (bytes, randomFill = crypto.getRandomValues.bind(crypto)) => {\n // Web\n const buf = new Uint8Array(bytes);\n randomFill(buf);\n return self.btoa(String.fromCharCode.apply(null, buf));\n} : typeof Buffer !== 'undefined' ? (bytes, randomFill = simpleRandomFill) => {\n // Node\n const buf = Buffer.alloc(bytes);\n randomFill(buf);\n return buf.toString(\"base64\");\n} : () => { throw new Error(\"No implementation of randomString was found\"); };\nfunction simpleRandomFill(buf) {\n for (let i = 0; i < buf.length; ++i) {\n buf[i] = Math.floor(Math.random() * 256);\n }\n}\n","const validIDTypes = {\n Uint8Array,\n};\n/** Verifies that given primary key is valid.\n * The reason we narrow validity for valid keys are twofold:\n * 1: Make sure to only support types that can be used as an object index in DBKeyMutationSet.\n * For example, ArrayBuffer cannot be used (gives \"object ArrayBuffer\") but Uint8Array can be\n * used (gives comma-delimited list of included bytes).\n * 2: Avoid using plain numbers and Dates as keys when they are synced, as they are not globally unique.\n * 3: Since we store the key as a VARCHAR server side in current version, try not promote types that stringifies to become very long server side.\n *\n * @param id\n * @returns\n */\nexport function isValidSyncableID(id) {\n if (typeof id === \"string\")\n return true;\n //if (validIDTypes[toStringTag(id)]) return true;\n //if (Array.isArray(id)) return id.every((part) => isValidSyncableID(part));\n if (Array.isArray(id) && id.some(key => isValidSyncableID(key)) && id.every(isValidSyncableIDPart))\n return true;\n return false;\n}\n/** Verifies that given key part is valid.\n * 1: Make sure that arrays of this types are stringified correclty and works with DBKeyMutationSet.\n * For example, ArrayBuffer cannot be used (gives \"object ArrayBuffer\") but Uint8Array can be\n * used (gives comma-delimited list of included bytes).\n * 2: Since we store the key as a VARCHAR server side in current version, try not promote types that stringifies to become very long server side.\n*/\nfunction isValidSyncableIDPart(part) {\n return typeof part === \"string\" || typeof part === \"number\" || Array.isArray(part) && part.every(isValidSyncableIDPart);\n}\nexport function isValidAtID(id, idPrefix) {\n return !idPrefix || (typeof id === \"string\" && id.startsWith(idPrefix));\n}\n","import { setByKeyPath } from \"../utils.js\";\nexport function applyOperation(target, table, op) {\n const tbl = target[table] || (target[table] = {});\n const keys = op.keys.map(key => typeof key === 'string' ? key : JSON.stringify(key));\n switch (op.type) {\n case \"insert\":\n // TODO: Don't treat insert and upsert the same?\n case \"upsert\":\n keys.forEach((key, idx) => {\n tbl[key] = {\n type: \"ups\",\n val: op.values[idx],\n };\n });\n break;\n case \"update\":\n case \"modify\": {\n keys.forEach((key, idx) => {\n const changeSpec = op.type === \"update\"\n ? op.changeSpecs[idx]\n : op.changeSpec;\n const entry = tbl[key];\n if (!entry) {\n tbl[key] = {\n type: \"upd\",\n mod: changeSpec,\n };\n }\n else {\n switch (entry.type) {\n case \"ups\":\n // Adjust the existing upsert with additional updates\n for (const [propPath, value] of Object.entries(changeSpec)) {\n setByKeyPath(entry.val, propPath, value);\n }\n break;\n case \"del\":\n // No action.\n break;\n case \"upd\":\n // Adjust existing update with additional updates\n Object.assign(entry.mod, changeSpec); // May work for deep props as well - new keys is added later, right? Does the prop order persist along TSON and all? But it will not be 100% when combined with some server code (seach for \"address.city\": \"Stockholm\" comment)\n break;\n }\n }\n });\n break;\n }\n case \"delete\":\n keys.forEach((key) => {\n tbl[key] = {\n type: \"del\",\n };\n });\n break;\n }\n return target;\n}\n","import { applyOperation } from \"./applyOperation.js\";\nexport function applyOperations(target, ops) {\n for (const { table, muts } of ops) {\n for (const mut of muts) {\n applyOperation(target, table, mut);\n }\n }\n}\n","import { setByKeyPath } from '../utils.js';\nexport function subtractChanges(target, // Server change set\nchangesToSubtract // additional mutations on client during syncWithServer()\n) {\n var _a, _b, _c;\n for (const [table, mutationSet] of Object.entries(changesToSubtract)) {\n for (const [key, mut] of Object.entries(mutationSet)) {\n switch (mut.type) {\n case 'ups':\n {\n const targetMut = (_a = target[table]) === null || _a === void 0 ? void 0 : _a[key];\n if (targetMut) {\n switch (targetMut.type) {\n case 'ups':\n delete target[table][key];\n break;\n case 'del':\n // Leave delete operation.\n // (Don't resurrect objects unintenionally (using tx(get, put) pattern locally))\n break;\n case 'upd':\n delete target[table][key];\n break;\n }\n }\n }\n break;\n case 'del':\n (_b = target[table]) === null || _b === void 0 ? true : delete _b[key];\n break;\n case 'upd': {\n const targetMut = (_c = target[table]) === null || _c === void 0 ? void 0 : _c[key];\n if (targetMut) {\n switch (targetMut.type) {\n case 'ups':\n // Adjust the server upsert with locally updated values.\n for (const [propPath, value] of Object.entries(mut.mod)) {\n setByKeyPath(targetMut.val, propPath, value);\n }\n break;\n case 'del':\n // Leave delete.\n break;\n case 'upd':\n // Remove the local update props from the server update mutation.\n for (const propPath of Object.keys(mut.mod)) {\n delete targetMut.mod[propPath];\n }\n break;\n }\n }\n break;\n }\n }\n }\n }\n}\n","import { randomString } from \"../utils.js\";\n/** Convert a DBKeyMutationSet (which is an internal format capable of looking up changes per ID)\n * ...into a DBOperationsSet (which is more optimal for performing DB operations into DB (bulkAdd() etc))\n *\n * @param inSet\n * @returns DBOperationsSet representing inSet\n */\nexport function toDBOperationSet(inSet, txid = \"\") {\n // Fictive transaction:\n if (!txid)\n txid = randomString(16);\n // Convert data into a temporary map to collect mutations of same table and type\n const map = {};\n for (const [table, ops] of Object.entries(inSet)) {\n for (const [key, op] of Object.entries(ops)) {\n const mapEntry = map[table] || (map[table] = {});\n const ops = mapEntry[op.type] || (mapEntry[op.type] = []);\n ops.push(Object.assign({ key }, op)); // DBKeyMutation doesn't contain key, so we need to bring it in.\n }\n }\n // Start computing the resulting format:\n const result = [];\n for (const [table, ops] of Object.entries(map)) {\n const resultEntry = {\n table,\n muts: [],\n };\n for (const [optype, muts] of Object.entries(ops)) {\n switch (optype) {\n case \"ups\": {\n const op = {\n type: \"upsert\",\n keys: muts.map(mut => mut.key),\n values: muts.map(mut => mut.val),\n txid\n };\n resultEntry.muts.push(op);\n break;\n }\n case \"upd\": {\n const op = {\n type: \"update\",\n keys: muts.map(mut => mut.key),\n changeSpecs: muts.map(mut => mut.mod),\n txid\n };\n resultEntry.muts.push(op);\n break;\n }\n case \"del\": {\n const op = {\n type: \"delete\",\n keys: muts.map(mut => mut.key),\n txid,\n };\n resultEntry.muts.push(op);\n break;\n }\n }\n }\n result.push(resultEntry);\n }\n return result;\n}\n","export function getDbNameFromDbUrl(dbUrl) {\n const url = new URL(dbUrl);\n return url.pathname === \"/\"\n ? url.hostname.split('.')[0]\n : url.pathname.split('/')[1];\n}\n",null,null,null,null,null,"const { toString: toStr } = {};\nfunction getToStringTag(val) {\n return toStr.call(val).slice(8, -1);\n}\nexport function escapeDollarProps(value) {\n const keys = Object.keys(value);\n let dollarKeys = null;\n for (let i = 0, l = keys.length; i < l; ++i) {\n if (keys[i][0] === \"$\") {\n dollarKeys = dollarKeys || [];\n dollarKeys.push(keys[i]);\n }\n }\n if (!dollarKeys)\n return value;\n const clone = { ...value };\n for (const k of dollarKeys) {\n delete clone[k];\n }\n for (const k of dollarKeys) {\n clone[\"$\" + k] = value[k];\n }\n return clone;\n}\nconst ObjectDef = {\n replace: escapeDollarProps,\n};\nexport function TypesonSimplified(...typeDefsInputs) {\n const typeDefs = typeDefsInputs.reduce((p, c) => ({ ...p, ...c }), typeDefsInputs.reduce((p, c) => ({ ...c, ...p }), {}));\n const protoMap = new WeakMap();\n return {\n stringify(value, alternateChannel, space) {\n const json = JSON.stringify(value, function (key) {\n const realVal = this[key];\n const typeDef = getTypeDef(realVal);\n return typeDef\n ? typeDef.replace(realVal, alternateChannel, typeDefs)\n : realVal;\n }, space);\n return json;\n },\n parse(tson, alternateChannel) {\n const stack = [];\n return JSON.parse(tson, function (key, value) {\n //\n // Parent Part\n //\n const type = value === null || value === void 0 ? void 0 : value.$t;\n if (type) {\n const typeDef = typeDefs[type];\n value = typeDef\n ? typeDef.revive(value, alternateChannel, typeDefs)\n : value;\n }\n let top = stack[stack.length - 1];\n if (top && top[0] === value) {\n // Do what the kid told us to\n // Unescape dollar props\n value = { ...value };\n // Delete keys that children wanted us to delete\n for (const k of top[1])\n delete value[k];\n // Set keys that children wanted us to set\n for (const [k, v] of Object.entries(top[2])) {\n value[k] = v;\n }\n stack.pop();\n }\n //\n // Child part\n //\n if (value === undefined || (key[0] === \"$\" && key !== \"$t\")) {\n top = stack[stack.length - 1];\n let deletes;\n let mods;\n if (top && top[0] === this) {\n deletes = top[1];\n mods = top[2];\n }\n else {\n stack.push([this, (deletes = []), (mods = {})]);\n }\n if (key[0] === \"$\" && key !== \"$t\") {\n // Unescape props (also preserves undefined if this is a combo)\n deletes.push(key);\n mods[key.substr(1)] = value;\n }\n else {\n // Preserve undefined\n mods[key] = undefined;\n }\n }\n return value;\n });\n },\n };\n function getTypeDef(realVal) {\n const type = typeof realVal;\n switch (typeof realVal) {\n case \"object\":\n case \"function\": {\n // \"object\", \"function\", null\n if (realVal === null)\n return null;\n const proto = Object.getPrototypeOf(realVal);\n if (!proto)\n return ObjectDef;\n let typeDef = protoMap.get(proto);\n if (typeDef !== undefined)\n return typeDef; // Null counts to! So the caching of Array.prototype also counts.\n const toStringTag = getToStringTag(realVal);\n const entry = Object.entries(typeDefs).find(([typeName, typeDef]) => { var _a, _b; return (_b = (_a = typeDef === null || typeDef === void 0 ? void 0 : typeDef.test) === null || _a === void 0 ? void 0 : _a.call(typeDef, realVal, toStringTag)) !== null && _b !== void 0 ? _b : typeName === toStringTag; });\n typeDef = entry === null || entry === void 0 ? void 0 : entry[1];\n if (!typeDef) {\n typeDef = Array.isArray(realVal)\n ? null\n : typeof realVal === \"function\"\n ? typeDefs.function || null\n : ObjectDef;\n }\n protoMap.set(proto, typeDef);\n return typeDef;\n }\n default:\n return typeDefs[type];\n }\n }\n}\n","export const BisonBinaryTypes = {\n Blob: {\n test: (blob, toStringTag) => toStringTag === \"Blob\",\n replace: (blob, altChannel) => {\n const i = altChannel.length;\n altChannel.push(blob);\n return {\n $t: \"Blob\",\n mimeType: blob.type,\n i,\n };\n },\n revive: ({ i, mimeType }, altChannel) => new Blob([altChannel[i]], { type: mimeType }),\n },\n};\n","export default {\n number: {\n replace: (num) => {\n switch (true) {\n case isNaN(num):\n return { $t: \"number\", v: \"NaN\" };\n case num === Infinity:\n return { $t: \"number\", v: \"Infinity\" };\n case num === -Infinity:\n return { $t: \"number\", v: \"-Infinity\" };\n default:\n return num;\n }\n },\n revive: ({ v }) => Number(v),\n },\n};\n","const bigIntDef = {\n bigint: {\n replace: (realVal) => {\n return { $t: \"bigint\", v: \"\" + realVal };\n },\n revive: (obj) => BigInt(obj.v),\n },\n};\nexport default bigIntDef;\n","export default {\n Date: {\n replace: (date) => ({\n $t: \"Date\",\n v: isNaN(date.getTime()) ? \"NaN\" : date.toISOString(),\n }),\n revive: ({ v }) => new Date(v === \"NaN\" ? NaN : Date.parse(v)),\n },\n};\n","export default {\n Set: {\n replace: (set) => ({\n $t: \"Set\",\n v: Array.from(set.entries()),\n }),\n revive: ({ v }) => new Set(v),\n },\n};\n","export default {\n Map: {\n replace: (map) => ({\n $t: \"Map\",\n v: Array.from(map.entries()),\n }),\n revive: ({ v }) => new Map(v),\n },\n};\n","export const _global = typeof globalThis !== \"undefined\" // All modern environments (node, bun, deno, browser, workers, webview etc)\n ? globalThis\n : typeof self !== \"undefined\" // Older browsers, workers, webview, window etc\n ? self\n : typeof global !== \"undefined\" // Older versions of node\n ? global\n : undefined; // Unsupported environment. No idea to return 'this' since we are in a module or a function scope anyway.\n","import { _global } from \"../../common/_global.js\";\nexport default [\n \"Int8Array\",\n \"Uint8Array\",\n \"Uint8ClampedArray\",\n \"Int16Array\",\n \"Uint16Array\",\n \"Int32Array\",\n \"Uint32Array\",\n \"Float32Array\",\n \"Float64Array\",\n \"DataView\",\n \"BigInt64Array\",\n \"BigUint64Array\",\n].reduce((specs, typeName) => ({\n ...specs,\n [typeName]: {\n // Replace passes the the typed array into $t, buffer so that\n // the ArrayBuffer typedef takes care of further handling of the buffer:\n // {$t:\"Uint8Array\",buffer:{$t:\"ArrayBuffer\",idx:0}}\n // CHANGED ABOVE! Now shortcutting that for more sparse format of the typed arrays\n // to contain the b64 property directly.\n replace: (a, _, typeDefs) => {\n const result = {\n $t: typeName,\n v: typeDefs.ArrayBuffer.replace(a.byteOffset === 0 && a.byteLength === a.buffer.byteLength\n ? a.buffer\n : a.buffer.slice(a.byteOffset, a.byteOffset + a.byteLength), _, typeDefs).v,\n };\n return result;\n },\n revive: ({ v }, _, typeDefs) => {\n const TypedArray = _global[typeName];\n return (TypedArray &&\n new TypedArray(typeDefs.ArrayBuffer.revive({ v }, _, typeDefs)));\n },\n },\n}), {});\n","import { b64decode, b64encode } from \"./base64.js\";\nexport function b64LexEncode(b) {\n return b64ToLex(b64encode(b));\n}\nexport function b64LexDecode(b64Lex) {\n return b64decode(lexToB64(b64Lex));\n}\nexport function b64ToLex(base64) {\n var encoded = \"\";\n for (var i = 0, length = base64.length; i < length; i++) {\n encoded += ENCODE_TABLE[base64[i]];\n }\n return encoded;\n}\nexport function lexToB64(base64lex) {\n // only accept string input\n if (typeof base64lex !== \"string\") {\n throw new Error(\"invalid decoder input: \" + base64lex);\n }\n var base64 = \"\";\n for (var i = 0, length = base64lex.length; i < length; i++) {\n base64 += DECODE_TABLE[base64lex[i]];\n }\n return base64;\n}\nconst DECODE_TABLE = {\n \"-\": \"=\",\n \"0\": \"A\",\n \"1\": \"B\",\n \"2\": \"C\",\n \"3\": \"D\",\n \"4\": \"E\",\n \"5\": \"F\",\n \"6\": \"G\",\n \"7\": \"H\",\n \"8\": \"I\",\n \"9\": \"J\",\n A: \"K\",\n B: \"L\",\n C: \"M\",\n D: \"N\",\n E: \"O\",\n F: \"P\",\n G: \"Q\",\n H: \"R\",\n I: \"S\",\n J: \"T\",\n K: \"U\",\n L: \"V\",\n M: \"W\",\n N: \"X\",\n O: \"Y\",\n P: \"Z\",\n Q: \"a\",\n R: \"b\",\n S: \"c\",\n T: \"d\",\n U: \"e\",\n V: \"f\",\n W: \"g\",\n X: \"h\",\n Y: \"i\",\n Z: \"j\",\n _: \"k\",\n a: \"l\",\n b: \"m\",\n c: \"n\",\n d: \"o\",\n e: \"p\",\n f: \"q\",\n g: \"r\",\n h: \"s\",\n i: \"t\",\n j: \"u\",\n k: \"v\",\n l: \"w\",\n m: \"x\",\n n: \"y\",\n o: \"z\",\n p: \"0\",\n q: \"1\",\n r: \"2\",\n s: \"3\",\n t: \"4\",\n u: \"5\",\n v: \"6\",\n w: \"7\",\n x: \"8\",\n y: \"9\",\n z: \"+\",\n \"|\": \"/\",\n};\nconst ENCODE_TABLE = {};\nfor (const c of Object.keys(DECODE_TABLE)) {\n ENCODE_TABLE[DECODE_TABLE[c]] = c;\n}\n","import { b64LexDecode, b64LexEncode } from \"../../common/b64lex.js\";\nexport default {\n ArrayBuffer: {\n replace: (ab) => ({\n $t: \"ArrayBuffer\",\n v: b64LexEncode(ab),\n }),\n revive: ({ v }) => {\n const ba = b64LexDecode(v);\n return ba.buffer.byteLength === ba.byteLength\n ? ba.buffer\n : ba.buffer.slice(ba.byteOffset, ba.byteOffset + ba.byteLength);\n },\n },\n};\n","export class FakeBlob {\n constructor(buf, type) {\n this.buf = buf;\n this.type = type;\n }\n}\n","export function readBlobSync(b) {\n const req = new XMLHttpRequest();\n req.overrideMimeType(\"text/plain; charset=x-user-defined\");\n req.open(\"GET\", URL.createObjectURL(b), false); // Sync\n req.send();\n if (req.status !== 200 && req.status !== 0) {\n throw new Error(\"Bad Blob access: \" + req.status);\n }\n return req.responseText;\n}\n","export function string2ArrayBuffer(str) {\n const array = new Uint8Array(str.length);\n for (let i = 0; i < str.length; ++i) {\n array[i] = str.charCodeAt(i); // & 0xff;\n }\n return array.buffer;\n}\nexport function arrayBuffer2String(buf) {\n // TODO: Optimize\n return new Uint8Array(buf).reduce((s, byte) => s + String.fromCharCode(byte), \"\");\n}\n","import { b64decode, b64encode } from \"../../common/base64.js\";\nimport { FakeBlob } from \"../FakeBlob.js\";\nimport { readBlobSync } from \"../readBlobSync.js\";\nimport { string2ArrayBuffer } from \"../string2arraybuffer.js\";\nexport default {\n Blob: {\n test: (blob, toStringTag) => toStringTag === \"Blob\" || blob instanceof FakeBlob,\n replace: (blob) => ({\n $t: \"Blob\",\n v: blob instanceof FakeBlob\n ? b64encode(blob.buf)\n : b64encode(string2ArrayBuffer(readBlobSync(blob))),\n type: blob.type,\n }),\n revive: ({ type, v }) => {\n const ab = b64decode(v);\n return typeof Blob !== undefined\n ? new Blob([ab])\n : new FakeBlob(ab.buffer, type);\n },\n },\n};\n","import numberDef from \"../types/number.js\";\nimport bigintDef from \"../types/bigint.js\";\nimport DateDef from \"../types/Date.js\";\nimport SetDef from \"../types/Set.js\";\nimport MapDef from \"../types/Map.js\";\nimport TypedArraysDefs from \"../types/TypedArray.js\";\nimport ArrayBufferDef from \"../types/ArrayBuffer.js\";\nimport BlobDef from \"../types/Blob.js\";\nconst builtin = {\n ...numberDef,\n ...bigintDef,\n ...DateDef,\n ...SetDef,\n ...MapDef,\n ...TypedArraysDefs,\n ...ArrayBufferDef,\n ...BlobDef, // Should be moved to another preset for DOM types (or universal? since it supports node as well with FakeBlob)\n};\nexport default builtin;\n","import { BisonBinaryTypes } from \"./BisonBinaryTypes.js\";\nimport builtin from \"./presets/builtin.js\";\nimport { TypesonSimplified } from \"./TypesonSimplified.js\";\nexport function Bison(...typeDefsInputs) {\n const tson = TypesonSimplified(builtin, BisonBinaryTypes, ...typeDefsInputs);\n return {\n toBinary(value) {\n const [blob, json] = this.stringify(value);\n const lenBuf = new ArrayBuffer(4);\n new DataView(lenBuf).setUint32(0, blob.size);\n return new Blob([lenBuf, blob, json]);\n },\n stringify(value) {\n const binaries = [];\n const json = tson.stringify(value, binaries);\n const blob = new Blob(binaries.map((b) => {\n const lenBuf = new ArrayBuffer(4);\n new DataView(lenBuf).setUint32(0, \"byteLength\" in b ? b.byteLength : b.size);\n return new Blob([lenBuf, b]);\n }));\n return [blob, json];\n },\n async parse(json, binData) {\n let pos = 0;\n const arrayBuffers = [];\n const buf = await readBlobBinary(binData);\n const view = new DataView(buf);\n while (pos < buf.byteLength) {\n const len = view.getUint32(pos);\n pos += 4;\n const ab = buf.slice(pos, pos + len);\n pos += len;\n arrayBuffers.push(ab);\n }\n return tson.parse(json, arrayBuffers);\n },\n async fromBinary(blob) {\n const len = new DataView(await readBlobBinary(blob.slice(0, 4))).getUint32(0);\n const binData = blob.slice(4, len + 4);\n const json = await readBlob(blob.slice(len + 4));\n return await this.parse(json, binData);\n },\n };\n}\nexport function readBlob(blob) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onabort = (ev) => reject(new Error(\"file read aborted\"));\n reader.onerror = (ev) => reject(ev.target.error);\n reader.onload = (ev) => resolve(ev.target.result);\n reader.readAsText(blob);\n });\n}\nexport function readBlobBinary(blob) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onabort = (ev) => reject(new Error(\"file read aborted\"));\n reader.onerror = (ev) => reject(ev.target.error);\n reader.onload = (ev) => resolve(ev.target.result);\n reader.readAsArrayBuffer(blob);\n });\n}\n","/** The undefined type is not part of builtin but can be manually added.\n * The reason for supporting undefined is if the following object should be revived correctly:\n *\n * {foo: undefined}\n *\n * Without including this typedef, the revived object would just be {}.\n * If including this typedef, the revived object would be {foo: undefined}.\n */\nexport default {\n undefined: {\n replace: () => ({\n $t: \"undefined\"\n }),\n revive: () => undefined,\n },\n};\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"var n,l,u,i,t,o,r,f={},e=[],c=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function s(n,l){for(var u in l)n[u]=l[u];return n}function a(n){var l=n.parentNode;l&&l.removeChild(n)}function h(l,u,i){var t,o,r,f={};for(r in u)\"key\"==r?t=u[r]:\"ref\"==r?o=u[r]:f[r]=u[r];if(arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):i),\"function\"==typeof l&&null!=l.defaultProps)for(r in l.defaultProps)void 0===f[r]&&(f[r]=l.defaultProps[r]);return v(l,f,t,o,null)}function v(n,i,t,o,r){var f={type:n,props:i,key:t,ref:o,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==r?++u:r};return null==r&&null!=l.vnode&&l.vnode(f),f}function y(){return{current:null}}function p(n){return n.children}function d(n,l){this.props=n,this.context=l}function _(n,l){if(null==l)return n.__?_(n.__,n.__.__k.indexOf(n)+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return\"function\"==typeof n.type?_(n):null}function k(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return k(n)}}function b(n){(!n.__d&&(n.__d=!0)&&t.push(n)&&!g.__r++||o!==l.debounceRendering)&&((o=l.debounceRendering)||setTimeout)(g)}function g(){for(var n;g.__r=t.length;)n=t.sort(function(n,l){return n.__v.__b-l.__v.__b}),t=[],n.some(function(n){var l,u,i,t,o,r;n.__d&&(o=(t=(l=n).__v).__e,(r=l.__P)&&(u=[],(i=s({},t)).__v=t.__v+1,j(r,t,i,l.__n,void 0!==r.ownerSVGElement,null!=t.__h?[o]:null,u,null==o?_(t):o,t.__h),z(u,t),t.__e!=o&&k(t)))})}function w(n,l,u,i,t,o,r,c,s,a){var h,y,d,k,b,g,w,x=i&&i.__k||e,C=x.length;for(u.__k=[],h=0;h<l.length;h++)if(null!=(k=u.__k[h]=null==(k=l[h])||\"boolean\"==typeof k?null:\"string\"==typeof k||\"number\"==typeof k||\"bigint\"==typeof k?v(null,k,null,null,k):Array.isArray(k)?v(p,{children:k},null,null,null):k.__b>0?v(k.type,k.props,k.key,null,k.__v):k)){if(k.__=u,k.__b=u.__b+1,null===(d=x[h])||d&&k.key==d.key&&k.type===d.type)x[h]=void 0;else for(y=0;y<C;y++){if((d=x[y])&&k.key==d.key&&k.type===d.type){x[y]=void 0;break}d=null}j(n,k,d=d||f,t,o,r,c,s,a),b=k.__e,(y=k.ref)&&d.ref!=y&&(w||(w=[]),d.ref&&w.push(d.ref,null,k),w.push(y,k.__c||b,k)),null!=b?(null==g&&(g=b),\"function\"==typeof k.type&&k.__k===d.__k?k.__d=s=m(k,s,n):s=A(n,k,d,x,b,s),\"function\"==typeof u.type&&(u.__d=s)):s&&d.__e==s&&s.parentNode!=n&&(s=_(d))}for(u.__e=g,h=C;h--;)null!=x[h]&&(\"function\"==typeof u.type&&null!=x[h].__e&&x[h].__e==u.__d&&(u.__d=_(i,h+1)),N(x[h],x[h]));if(w)for(h=0;h<w.length;h++)M(w[h],w[++h],w[++h])}function m(n,l,u){for(var i,t=n.__k,o=0;t&&o<t.length;o++)(i=t[o])&&(i.__=n,l=\"function\"==typeof i.type?m(i,l,u):A(u,i,i,t,i.__e,l));return l}function x(n,l){return l=l||[],null==n||\"boolean\"==typeof n||(Array.isArray(n)?n.some(function(n){x(n,l)}):l.push(n)),l}function A(n,l,u,i,t,o){var r,f,e;if(void 0!==l.__d)r=l.__d,l.__d=void 0;else if(null==u||t!=o||null==t.parentNode)n:if(null==o||o.parentNode!==n)n.appendChild(t),r=null;else{for(f=o,e=0;(f=f.nextSibling)&&e<i.length;e+=2)if(f==t)break n;n.insertBefore(t,o),r=o}return void 0!==r?r:t.nextSibling}function C(n,l,u,i,t){var o;for(o in u)\"children\"===o||\"key\"===o||o in l||H(n,o,null,u[o],i);for(o in l)t&&\"function\"!=typeof l[o]||\"children\"===o||\"key\"===o||\"value\"===o||\"checked\"===o||u[o]===l[o]||H(n,o,l[o],u[o],i)}function $(n,l,u){\"-\"===l[0]?n.setProperty(l,u):n[l]=null==u?\"\":\"number\"!=typeof u||c.test(l)?u:u+\"px\"}function H(n,l,u,i,t){var o;n:if(\"style\"===l)if(\"string\"==typeof u)n.style.cssText=u;else{if(\"string\"==typeof i&&(n.style.cssText=i=\"\"),i)for(l in i)u&&l in u||$(n.style,l,\"\");if(u)for(l in u)i&&u[l]===i[l]||$(n.style,l,u[l])}else if(\"o\"===l[0]&&\"n\"===l[1])o=l!==(l=l.replace(/Capture$/,\"\")),l=l.toLowerCase()in n?l.toLowerCase().slice(2):l.slice(2),n.l||(n.l={}),n.l[l+o]=u,u?i||n.addEventListener(l,o?T:I,o):n.removeEventListener(l,o?T:I,o);else if(\"dangerouslySetInnerHTML\"!==l){if(t)l=l.replace(/xlink(H|:h)/,\"h\").replace(/sName$/,\"s\");else if(\"href\"!==l&&\"list\"!==l&&\"form\"!==l&&\"tabIndex\"!==l&&\"download\"!==l&&l in n)try{n[l]=null==u?\"\":u;break n}catch(n){}\"function\"==typeof u||(null!=u&&(!1!==u||\"a\"===l[0]&&\"r\"===l[1])?n.setAttribute(l,u):n.removeAttribute(l))}}function I(n){this.l[n.type+!1](l.event?l.event(n):n)}function T(n){this.l[n.type+!0](l.event?l.event(n):n)}function j(n,u,i,t,o,r,f,e,c){var a,h,v,y,_,k,b,g,m,x,A,C,$,H=u.type;if(void 0!==u.constructor)return null;null!=i.__h&&(c=i.__h,e=u.__e=i.__e,u.__h=null,r=[e]),(a=l.__b)&&a(u);try{n:if(\"function\"==typeof H){if(g=u.props,m=(a=H.contextType)&&t[a.__c],x=a?m?m.props.value:a.__:t,i.__c?b=(h=u.__c=i.__c).__=h.__E:(\"prototype\"in H&&H.prototype.render?u.__c=h=new H(g,x):(u.__c=h=new d(g,x),h.constructor=H,h.render=O),m&&m.sub(h),h.props=g,h.state||(h.state={}),h.context=x,h.__n=t,v=h.__d=!0,h.__h=[]),null==h.__s&&(h.__s=h.state),null!=H.getDerivedStateFromProps&&(h.__s==h.state&&(h.__s=s({},h.__s)),s(h.__s,H.getDerivedStateFromProps(g,h.__s))),y=h.props,_=h.state,v)null==H.getDerivedStateFromProps&&null!=h.componentWillMount&&h.componentWillMount(),null!=h.componentDidMount&&h.__h.push(h.componentDidMount);else{if(null==H.getDerivedStateFromProps&&g!==y&&null!=h.componentWillReceiveProps&&h.componentWillReceiveProps(g,x),!h.__e&&null!=h.shouldComponentUpdate&&!1===h.shouldComponentUpdate(g,h.__s,x)||u.__v===i.__v){h.props=g,h.state=h.__s,u.__v!==i.__v&&(h.__d=!1),h.__v=u,u.__e=i.__e,u.__k=i.__k,u.__k.forEach(function(n){n&&(n.__=u)}),h.__h.length&&f.push(h);break n}null!=h.componentWillUpdate&&h.componentWillUpdate(g,h.__s,x),null!=h.componentDidUpdate&&h.__h.push(function(){h.componentDidUpdate(y,_,k)})}if(h.context=x,h.props=g,h.__v=u,h.__P=n,A=l.__r,C=0,\"prototype\"in H&&H.prototype.render)h.state=h.__s,h.__d=!1,A&&A(u),a=h.render(h.props,h.state,h.context);else do{h.__d=!1,A&&A(u),a=h.render(h.props,h.state,h.context),h.state=h.__s}while(h.__d&&++C<25);h.state=h.__s,null!=h.getChildContext&&(t=s(s({},t),h.getChildContext())),v||null==h.getSnapshotBeforeUpdate||(k=h.getSnapshotBeforeUpdate(y,_)),$=null!=a&&a.type===p&&null==a.key?a.props.children:a,w(n,Array.isArray($)?$:[$],u,i,t,o,r,f,e,c),h.base=u.__e,u.__h=null,h.__h.length&&f.push(h),b&&(h.__E=h.__=null),h.__e=!1}else null==r&&u.__v===i.__v?(u.__k=i.__k,u.__e=i.__e):u.__e=L(i.__e,u,i,t,o,r,f,c);(a=l.diffed)&&a(u)}catch(n){u.__v=null,(c||null!=r)&&(u.__e=e,u.__h=!!c,r[r.indexOf(e)]=null),l.__e(n,u,i)}}function z(n,u){l.__c&&l.__c(u,n),n.some(function(u){try{n=u.__h,u.__h=[],n.some(function(n){n.call(u)})}catch(n){l.__e(n,u.__v)}})}function L(l,u,i,t,o,r,e,c){var s,h,v,y=i.props,p=u.props,d=u.type,k=0;if(\"svg\"===d&&(o=!0),null!=r)for(;k<r.length;k++)if((s=r[k])&&\"setAttribute\"in s==!!d&&(d?s.localName===d:3===s.nodeType)){l=s,r[k]=null;break}if(null==l){if(null===d)return document.createTextNode(p);l=o?document.createElementNS(\"http://www.w3.org/2000/svg\",d):document.createElement(d,p.is&&p),r=null,c=!1}if(null===d)y===p||c&&l.data===p||(l.data=p);else{if(r=r&&n.call(l.childNodes),h=(y=i.props||f).dangerouslySetInnerHTML,v=p.dangerouslySetInnerHTML,!c){if(null!=r)for(y={},k=0;k<l.attributes.length;k++)y[l.attributes[k].name]=l.attributes[k].value;(v||h)&&(v&&(h&&v.__html==h.__html||v.__html===l.innerHTML)||(l.innerHTML=v&&v.__html||\"\"))}if(C(l,p,y,o,c),v)u.__k=[];else if(k=u.props.children,w(l,Array.isArray(k)?k:[k],u,i,t,o&&\"foreignObject\"!==d,r,e,r?r[0]:i.__k&&_(i,0),c),null!=r)for(k=r.length;k--;)null!=r[k]&&a(r[k]);c||(\"value\"in p&&void 0!==(k=p.value)&&(k!==l.value||\"progress\"===d&&!k||\"option\"===d&&k!==y.value)&&H(l,\"value\",k,y.value,!1),\"checked\"in p&&void 0!==(k=p.checked)&&k!==l.checked&&H(l,\"checked\",k,y.checked,!1))}return l}function M(n,u,i){try{\"function\"==typeof n?n(u):n.current=u}catch(n){l.__e(n,i)}}function N(n,u,i){var t,o;if(l.unmount&&l.unmount(n),(t=n.ref)&&(t.current&&t.current!==n.__e||M(t,null,u)),null!=(t=n.__c)){if(t.componentWillUnmount)try{t.componentWillUnmount()}catch(n){l.__e(n,u)}t.base=t.__P=null}if(t=n.__k)for(o=0;o<t.length;o++)t[o]&&N(t[o],u,\"function\"!=typeof n.type);i||null==n.__e||a(n.__e),n.__e=n.__d=void 0}function O(n,l,u){return this.constructor(n,u)}function P(u,i,t){var o,r,e;l.__&&l.__(u,i),r=(o=\"function\"==typeof t)?null:t&&t.__k||i.__k,e=[],j(i,u=(!o&&t||i).__k=h(p,null,[u]),r||f,f,void 0!==i.ownerSVGElement,!o&&t?[t]:r?null:i.firstChild?n.call(i.childNodes):null,e,!o&&t?t:r?r.__e:i.firstChild,o),z(e,u)}function S(n,l){P(n,l,S)}function q(l,u,i){var t,o,r,f=s({},l.props);for(r in u)\"key\"==r?t=u[r]:\"ref\"==r?o=u[r]:f[r]=u[r];return arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):i),v(l.type,f,t||l.key,o||l.ref,null)}function B(n,l){var u={__c:l=\"__cC\"+r++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var u,i;return this.getChildContext||(u=[],(i={})[l]=this,this.getChildContext=function(){return i},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.some(b)},this.sub=function(n){u.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u.splice(u.indexOf(n),1),l&&l.call(n)}}),n.children}};return u.Provider.__=u.Consumer.contextType=u}n=e.slice,l={__e:function(n,l,u,i){for(var t,o,r;l=l.__;)if((t=l.__c)&&!t.__)try{if((o=t.constructor)&&null!=o.getDerivedStateFromError&&(t.setState(o.getDerivedStateFromError(n)),r=t.__d),null!=t.componentDidCatch&&(t.componentDidCatch(n,i||{}),r=t.__d),r)return t.__E=t}catch(l){n=l}throw n}},u=0,i=function(n){return null!=n&&void 0===n.constructor},d.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=s({},this.state),\"function\"==typeof n&&(n=n(s({},u),this.props)),n&&s(u,n),null!=n&&this.__v&&(l&&this.__h.push(l),b(this))},d.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),b(this))},d.prototype.render=p,t=[],g.__r=0,r=0;export{P as render,S as hydrate,h as createElement,h,p as Fragment,y as createRef,i as isValidElement,d as Component,q as cloneElement,B as createContext,x as toChildArray,l as options};\n//# sourceMappingURL=preact.module.js.map\n",null,null,"import{options as n}from\"preact\";var t,r,u,i,o=0,c=[],f=[],e=n.__b,a=n.__r,v=n.diffed,l=n.__c,m=n.unmount;function d(t,u){n.__h&&n.__h(r,t,o||u),o=0;var i=r.__H||(r.__H={__:[],__h:[]});return t>=i.__.length&&i.__.push({__V:f}),i.__[t]}function p(n){return o=1,y(z,n)}function y(n,u,i){var o=d(t++,2);if(o.t=n,!o.__c&&(o.__=[i?i(u):z(void 0,u),function(n){var t=o.__N?o.__N[0]:o.__[0],r=o.t(t,n);t!==r&&(o.__N=[r,o.__[1]],o.__c.setState({}))}],o.__c=r,!r.u)){r.u=!0;var c=r.shouldComponentUpdate;r.shouldComponentUpdate=function(n,t,r){if(!o.__c.__H)return!0;var u=o.__c.__H.__.filter(function(n){return n.__c});if(u.every(function(n){return!n.__N}))return!c||c.call(this,n,t,r);var i=!1;return u.forEach(function(n){if(n.__N){var t=n.__[0];n.__=n.__N,n.__N=void 0,t!==n.__[0]&&(i=!0)}}),!!i&&(!c||c.call(this,n,t,r))}}return o.__N||o.__}function h(u,i){var o=d(t++,3);!n.__s&&w(o.__H,i)&&(o.__=u,o.i=i,r.__H.__h.push(o))}function s(u,i){var o=d(t++,4);!n.__s&&w(o.__H,i)&&(o.__=u,o.i=i,r.__h.push(o))}function _(n){return o=5,F(function(){return{current:n}},[])}function A(n,t,r){o=6,s(function(){return\"function\"==typeof n?(n(t()),function(){return n(null)}):n?(n.current=t(),function(){return n.current=null}):void 0},null==r?r:r.concat(n))}function F(n,r){var u=d(t++,7);return w(u.__H,r)?(u.__V=n(),u.i=r,u.__h=n,u.__V):u.__}function T(n,t){return o=8,F(function(){return n},t)}function q(n){var u=r.context[n.__c],i=d(t++,9);return i.c=n,u?(null==i.__&&(i.__=!0,u.sub(r)),u.props.value):n.__}function x(t,r){n.useDebugValue&&n.useDebugValue(r?r(t):t)}function V(n){var u=d(t++,10),i=p();return u.__=n,r.componentDidCatch||(r.componentDidCatch=function(n){u.__&&u.__(n),i[1](n)}),[i[0],function(){i[1](void 0)}]}function b(){for(var t;t=c.shift();)if(t.__P&&t.__H)try{t.__H.__h.forEach(j),t.__H.__h.forEach(k),t.__H.__h=[]}catch(r){t.__H.__h=[],n.__e(r,t.__v)}}n.__b=function(n){r=null,e&&e(n)},n.__r=function(n){a&&a(n),t=0;var i=(r=n.__c).__H;i&&(u===r?(i.__h=[],r.__h=[],i.__.forEach(function(n){n.__N&&(n.__=n.__N),n.__V=f,n.__N=n.i=void 0})):(i.__h.forEach(j),i.__h.forEach(k),i.__h=[])),u=r},n.diffed=function(t){v&&v(t);var o=t.__c;o&&o.__H&&(o.__H.__h.length&&(1!==c.push(o)&&i===n.requestAnimationFrame||((i=n.requestAnimationFrame)||function(n){var t,r=function(){clearTimeout(u),g&&cancelAnimationFrame(t),setTimeout(n)},u=setTimeout(r,100);g&&(t=requestAnimationFrame(r))})(b)),o.__H.__.forEach(function(n){n.i&&(n.__H=n.i),n.__V!==f&&(n.__=n.__V),n.i=void 0,n.__V=f})),u=r=null},n.__c=function(t,r){r.some(function(t){try{t.__h.forEach(j),t.__h=t.__h.filter(function(n){return!n.__||k(n)})}catch(u){r.some(function(n){n.__h&&(n.__h=[])}),r=[],n.__e(u,t.__v)}}),l&&l(t,r)},n.unmount=function(t){m&&m(t);var r,u=t.__c;u&&u.__H&&(u.__H.__.forEach(function(n){try{j(n)}catch(n){r=n}}),r&&n.__e(r,u.__v))};var g=\"function\"==typeof requestAnimationFrame;function j(n){var t=r,u=n.__c;\"function\"==typeof u&&(n.__c=void 0,u()),r=t}function k(n){var t=r;n.__c=n.__(),r=t}function w(n,t){return!n||n.length!==t.length||t.some(function(t,r){return t!==n[r]})}function z(n,t){return\"function\"==typeof t?t(n):t}export{p as useState,y as useReducer,h as useEffect,s as useLayoutEffect,_ as useRef,A as useImperativeHandle,F as useMemo,T as useCallback,q as useContext,x as useDebugValue,V as useErrorBoundary};\n//# sourceMappingURL=hooks.module.js.map\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["Observable","Symbol_observable","Symbol_iterator","asyncScheduler","iterator","concat","randomString","bigintDef","tsonBuiltinDefs","cmp","BehaviorSubject","wm","Subject","firstValueFrom","from","filter","counter","of","fromEvent","merge","Subscription","sleep","throwError","l","u","t","o","f","e","c","s","a","v","p","d","_","k","b","g","j","z","w","m","n","useState","useRef","useLayoutEffect","Fragment","Component","preact.render","combineLatest","map","share","timer","liveQuery"],"mappings":"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IACZ,IAAI,GAAG,EAAE,GAAG;IACZ,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;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","x_google_ignoreList":[0,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,74,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,162,165]}
|
|
1
|
+
{"version":3,"file":"service-worker.js","sources":["../../../../node_modules/.pnpm/@rollup+plugin-typescript@11.1.5_rollup@4.1.4_tslib@2.4.0_typescript@4.9.4/node_modules/tslib/tslib.es6.js","../../src/authentication/UNAUTHORIZED_USER.ts","../../src/helpers/SWBroadcastChannel.ts","../../src/helpers/BroadcastedAndLocalEvent.ts","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/util/isFunction.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/util/lift.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/util/isArrayLike.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/util/isPromise.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/util/arrRemove.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/Subscription.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/config.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/util/noop.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/util/errorContext.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/Subscriber.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/symbol/observable.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/util/identity.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/util/pipe.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/Observable.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/util/isInteropObservable.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/util/isAsyncIterable.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/util/throwUnobservableError.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/symbol/iterator.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/util/isIterable.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/util/isReadableStreamLike.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/observable/innerFrom.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/scheduler/Action.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/scheduler/intervalProvider.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/scheduler/AsyncAction.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/scheduler/dateTimestampProvider.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/Scheduler.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/scheduler/AsyncScheduler.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/scheduler/async.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/util/isScheduler.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/util/isDate.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/observable/timer.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/util/args.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/util/executeSchedule.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/operators/catchError.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/operators/observeOn.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/operators/subscribeOn.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleObservable.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/scheduled/schedulePromise.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleArray.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleIterable.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleAsyncIterable.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleReadableStreamLike.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/scheduled/scheduled.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/observable/from.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/operators/map.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/operators/mergeInternals.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/operators/concatAll.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/operators/debounceTime.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/observable/concat.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/observable/empty.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/operators/take.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/operators/ignoreElements.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/operators/mapTo.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/operators/delayWhen.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/operators/delay.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/operators/distinctUntilChanged.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/operators/filter.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/operators/skip.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/operators/startWith.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/operators/switchMap.js","../../../../node_modules/.pnpm/rxjs@7.5.6/node_modules/rxjs/dist/esm5/internal/operators/tap.js","../../src/sync/registerSyncEvent.ts","../../src/sync/triggerSync.ts","../../../../node_modules/.pnpm/dreambase-library@1.0.21/node_modules/dreambase-library/dist/common/base64.js","../../src/helpers/computeRealmSetHash.ts","../../src/helpers/getSyncableTables.ts","../../src/helpers/getMutationTable.ts","../../src/helpers/getTableFromMutationTable.ts","../../src/helpers/flatten.ts","../../src/sync/listClientChanges.ts","../../src/helpers/randomString.ts","../../../../libs/dexie-cloud-common/dist/utils.js","../../../../libs/dexie-cloud-common/dist/validation/isValidSyncableID.js","../../../../libs/dexie-cloud-common/dist/change-processing/applyOperation.js","../../../../libs/dexie-cloud-common/dist/change-processing/applyOperations.js","../../../../libs/dexie-cloud-common/dist/change-processing/subtractChanges.js","../../../../libs/dexie-cloud-common/dist/change-processing/toDBOperationSet.js","../../../../libs/dexie-cloud-common/dist/getDbNameFromDbUrl.js","../../src/sync/listSyncifiedChanges.ts","../../src/sync/getTablesToSyncify.ts","../../src/authentication/TokenErrorResponseError.ts","../../src/authentication/interactWithUser.ts","../../src/authentication/authenticate.ts","../../../../node_modules/.pnpm/dreambase-library@1.0.21/node_modules/dreambase-library/dist/typeson-simplified/TypesonSimplified.js","../../../../node_modules/.pnpm/dreambase-library@1.0.21/node_modules/dreambase-library/dist/typeson-simplified/BisonBinaryTypes.js","../../../../node_modules/.pnpm/dreambase-library@1.0.21/node_modules/dreambase-library/dist/typeson-simplified/types/number.js","../../../../node_modules/.pnpm/dreambase-library@1.0.21/node_modules/dreambase-library/dist/typeson-simplified/types/bigint.js","../../../../node_modules/.pnpm/dreambase-library@1.0.21/node_modules/dreambase-library/dist/typeson-simplified/types/Date.js","../../../../node_modules/.pnpm/dreambase-library@1.0.21/node_modules/dreambase-library/dist/typeson-simplified/types/Set.js","../../../../node_modules/.pnpm/dreambase-library@1.0.21/node_modules/dreambase-library/dist/typeson-simplified/types/Map.js","../../../../node_modules/.pnpm/dreambase-library@1.0.21/node_modules/dreambase-library/dist/common/_global.js","../../../../node_modules/.pnpm/dreambase-library@1.0.21/node_modules/dreambase-library/dist/typeson-simplified/types/TypedArray.js","../../../../node_modules/.pnpm/dreambase-library@1.0.21/node_modules/dreambase-library/dist/common/b64lex.js","../../../../node_modules/.pnpm/dreambase-library@1.0.21/node_modules/dreambase-library/dist/typeson-simplified/types/ArrayBuffer.js","../../../../node_modules/.pnpm/dreambase-library@1.0.21/node_modules/dreambase-library/dist/typeson-simplified/FakeBlob.js","../../../../node_modules/.pnpm/dreambase-library@1.0.21/node_modules/dreambase-library/dist/typeson-simplified/readBlobSync.js","../../../../node_modules/.pnpm/dreambase-library@1.0.21/node_modules/dreambase-library/dist/typeson-simplified/string2arraybuffer.js","../../../../node_modules/.pnpm/dreambase-library@1.0.21/node_modules/dreambase-library/dist/typeson-simplified/types/Blob.js","../../../../node_modules/.pnpm/dreambase-library@1.0.21/node_modules/dreambase-library/dist/typeson-simplified/presets/builtin.js","../../../../node_modules/.pnpm/dreambase-library@1.0.21/node_modules/dreambase-library/dist/typeson-simplified/Bison.js","../../../../node_modules/.pnpm/dreambase-library@1.0.21/node_modules/dreambase-library/dist/typeson-simplified/types/undefined.js","../../src/TSON.ts","../../src/errors/HttpError.ts","../../src/sync/encodeIdsForServer.ts","../../src/sync/ratelimit.ts","../../src/sync/syncWithServer.ts","../../src/sync/modifyLocalObjectsWithNewUserId.ts","../../src/helpers/CancelToken.ts","../../src/sync/isOnline.ts","../../src/sync/updateBaseRevs.ts","../../src/sync/getLatestRevisionsPerTable.ts","../../src/helpers/bulkUpdate.ts","../../src/sync/applyServerChanges.ts","../../src/sync/sync.ts","../../src/sync/messagesFromServerQueue.ts","../../src/db/DexieCloudDB.ts","../../src/authentication/AuthPersistedContext.ts","../../src/authentication/waitUntil.ts","../../src/authentication/logout.ts","../../src/authentication/otpFetchTokenCallback.ts","../../src/prodLog.ts","../../src/authentication/setCurrentUser.ts","../../src/authentication/login.ts","../../src/isFirefox.ts","../../src/isSafari.ts","../../src/DISABLE_SERVICEWORKER_STRATEGY.ts","../../src/helpers/dbOnClosed.ts","../../src/helpers/IS_SERVICE_WORKER.ts","../../src/helpers/throwVersionIncrementNeeded.ts","../../src/middleware-helpers/idGenerationHelpers.ts","../../src/middlewares/createIdGenerationMiddleware.ts","../../src/middlewares/createImplicitPropSetterMiddleware.ts","../../src/helpers/allSettled.ts","../../src/middleware-helpers/guardedTable.ts","../../src/middlewares/outstandingTransaction.ts","../../src/isEagerSyncDisabled.ts","../../src/middlewares/createMutationTrackingMiddleware.ts","../../src/overrideParseStoresSpec.ts","../../src/performInitialSync.ts","../../src/userIsActive.ts","../../src/authentication/TokenExpiredError.ts","../../src/WSObservable.ts","../../src/InvalidLicenseError.ts","../../src/sync/connectWebSocket.ts","../../src/sync/isSyncNeeded.ts","../../src/sync/performGuardedJob.ts","../../src/sync/syncIfPossible.ts","../../src/helpers/date-constants.ts","../../src/sync/LocalSyncWorker.ts","../../src/updateSchemaFromOptions.ts","../../src/verifySchema.ts","../../../../node_modules/.pnpm/preact@10.10.6/node_modules/preact/dist/preact.module.js","../../src/default-ui/Styles.ts","../../src/default-ui/Dialog.tsx","../../../../node_modules/.pnpm/preact@10.10.6/node_modules/preact/hooks/dist/hooks.module.js","../../src/helpers/resolveText.ts","../../src/default-ui/LoginDialog.tsx","../../src/default-ui/index.tsx","../../src/associate.ts","../../src/currentUserEmitter.ts","../../src/computeSyncState.ts","../../src/createSharedValueObservable.ts","../../src/getGlobalRolesObservable.ts","../../src/getInternalAccessControlObservable.ts","../../src/mapValueObservable.ts","../../src/mergePermissions.ts","../../src/getPermissionsLookupObservable.ts","../../src/PermissionChecker.ts","../../src/permissions.ts","../../src/getInvitesObservable.ts","../../src/dexie-cloud-client.ts","../../src/service-worker.ts"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","import { UserLogin } from '../db/entities/UserLogin';\n\nexport const UNAUTHORIZED_USER: UserLogin = {\n userId: \"unauthorized\",\n name: \"Unauthorized\",\n claims: {\n sub: \"unauthorized\",\n },\n lastLogin: new Date(0)\n}\n\ntry {\n Object.freeze(UNAUTHORIZED_USER);\n Object.freeze(UNAUTHORIZED_USER.claims);\n} catch {}\n","const swHolder: { registration?: ServiceWorkerRegistration } = {};\nconst swContainer = typeof self !== 'undefined' && self.document && // self.document is to verify we're not the SW ourself\n typeof navigator !== 'undefined' && navigator.serviceWorker; \nif (swContainer)\n swContainer.ready.then(\n (registration) => (swHolder.registration = registration)\n );\n\nif (typeof self !== 'undefined' && 'clients' in self && !self.document) {\n // We are the service worker. Propagate messages to all our clients.\n addEventListener('message', (ev: any) => {\n if (ev.data?.type?.startsWith('sw-broadcast-')) {\n [...self['clients'].matchAll({ includeUncontrolled: true })].forEach(\n (client) => client.id !== ev.source?.id && client.postMessage(ev.data)\n );\n }\n });\n}\n\n/** This class is a fallback for browsers that lacks BroadcastChannel but have\n * service workers (which is Safari versions 11.1 through 15.3).\n * Safari 15.4 with BroadcastChannel was released on 2022-03-14.\n * We might be able to remove this class in a near future as Safari < 15.4 is\n * already very low in market share as of 2023-03-10.\n */\nexport class SWBroadcastChannel {\n name: string;\n constructor(name: string) {\n this.name = name;\n }\n subscribe(listener: (message: any) => void) {\n if (!swContainer) return () => {};\n const forwarder = (ev: MessageEvent) => {\n if (ev.data?.type === `sw-broadcast-${this.name}`) {\n listener(ev.data.message);\n }\n };\n swContainer.addEventListener('message', forwarder);\n return () => swContainer.removeEventListener('message', forwarder);\n }\n postMessage(message: any) {\n if (typeof self['clients'] === 'object') {\n // We're a service worker. Propagate to our browser clients.\n [...self['clients'].matchAll({ includeUncontrolled: true })].forEach(\n (client) =>\n client.postMessage({\n type: `sw-broadcast-${this.name}`,\n message,\n })\n );\n } else if (swHolder.registration) {\n // We're a client (browser window or other worker)\n // Post to SW so it can repost to all its clients and to itself\n swHolder.registration.active?.postMessage({\n type: `sw-broadcast-${this.name}`,\n message,\n });\n }\n }\n}\n","import { Observable } from \"rxjs\";\nimport { SWBroadcastChannel } from \"./SWBroadcastChannel\";\n\nconst events: Map<string, Array<(ev: CustomEvent)=>void>> =\n globalThis['lbc-events'] || (globalThis['lbc-events'] = new Map<string, Array<(ev: CustomEvent)=>void>>());\n\nfunction addListener(name: string, listener: (ev: CustomEvent)=>void) {\n if (events.has(name)) {\n events.get(name)!.push(listener);\n } else {\n events.set(name, [listener]);\n }\n}\nfunction removeListener(name: string, listener: (ev: CustomEvent)=>void) {\n const listeners = events.get(name);\n if (listeners) {\n const idx = listeners.indexOf(listener);\n if (idx !== -1) {\n listeners.splice(idx, 1);\n }\n }\n}\nfunction dispatch(ev: CustomEvent) {\n const listeners = events.get(ev.type);\n if (listeners) {\n listeners.forEach(listener => {\n try {\n listener(ev);\n } catch {\n }\n });\n }\n}\n\nexport class BroadcastedAndLocalEvent<T> extends Observable<T>{\n name: string;\n bc: BroadcastChannel | SWBroadcastChannel\n\n constructor(name: string) {\n const bc = typeof BroadcastChannel === \"undefined\"\n ? new SWBroadcastChannel(name) : new BroadcastChannel(name);\n super(subscriber => {\n function onCustomEvent(ev: CustomEvent) {\n subscriber.next(ev.detail);\n }\n function onMessageEvent(ev: MessageEvent) {\n console.debug(\"BroadcastedAndLocalEvent: onMessageEvent\", ev);\n subscriber.next(ev.data);\n }\n let unsubscribe: ()=>void;\n //self.addEventListener(`lbc-${name}`, onCustomEvent); // Fails in service workers\n addListener(`lbc-${name}`, onCustomEvent); // Works better in service worker\n\n try { \n if (bc instanceof SWBroadcastChannel) {\n unsubscribe = bc.subscribe(message => subscriber.next(message));\n } else {\n console.debug(\"BroadcastedAndLocalEvent: bc.addEventListener()\", name, \"bc is a\", bc);\n bc.addEventListener(\"message\", onMessageEvent);\n }\n } catch (err) {\n // Service workers might fail to subscribe outside its initial script.\n console.warn('Failed to subscribe to broadcast channel', err);\n }\n return () => {\n //self.removeEventListener(`lbc-${name}`, onCustomEvent);\n removeListener(`lbc-${name}`, onCustomEvent);\n if (bc instanceof SWBroadcastChannel) {\n unsubscribe!();\n } else {\n bc.removeEventListener(\"message\", onMessageEvent);\n }\n }\n });\n this.name = name;\n this.bc = bc;\n }\n\n next(message: T) {\n console.debug(\"BroadcastedAndLocalEvent: bc.postMessage()\", {...message}, \"bc is a\", this.bc);\n this.bc.postMessage(message);\n const ev = new CustomEvent(`lbc-${this.name}`, { detail: message });\n //self.dispatchEvent(ev);\n dispatch(ev);\n }\n}\n","export function isFunction(value) {\n return typeof value === 'function';\n}\n//# sourceMappingURL=isFunction.js.map","import { isFunction } from './isFunction';\nexport function hasLift(source) {\n return isFunction(source === null || source === void 0 ? void 0 : source.lift);\n}\nexport function operate(init) {\n return function (source) {\n if (hasLift(source)) {\n return source.lift(function (liftedSource) {\n try {\n return init(liftedSource, this);\n }\n catch (err) {\n this.error(err);\n }\n });\n }\n throw new TypeError('Unable to lift unknown Observable type');\n };\n}\n//# sourceMappingURL=lift.js.map","export var isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; });\n//# sourceMappingURL=isArrayLike.js.map","import { isFunction } from \"./isFunction\";\nexport function isPromise(value) {\n return isFunction(value === null || value === void 0 ? void 0 : value.then);\n}\n//# sourceMappingURL=isPromise.js.map","export function createErrorClass(createImpl) {\n var _super = function (instance) {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n var ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n//# sourceMappingURL=createErrorClass.js.map","import { createErrorClass } from './createErrorClass';\nexport var UnsubscriptionError = createErrorClass(function (_super) {\n return function UnsubscriptionErrorImpl(errors) {\n _super(this);\n this.message = errors\n ? errors.length + \" errors occurred during unsubscription:\\n\" + errors.map(function (err, i) { return i + 1 + \") \" + err.toString(); }).join('\\n ')\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n };\n});\n//# sourceMappingURL=UnsubscriptionError.js.map","export function arrRemove(arr, item) {\n if (arr) {\n var index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n//# sourceMappingURL=arrRemove.js.map","import { __read, __spreadArray, __values } from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { arrRemove } from './util/arrRemove';\nvar Subscription = (function () {\n function Subscription(initialTeardown) {\n this.initialTeardown = initialTeardown;\n this.closed = false;\n this._parentage = null;\n this._finalizers = null;\n }\n Subscription.prototype.unsubscribe = function () {\n var e_1, _a, e_2, _b;\n var errors;\n if (!this.closed) {\n this.closed = true;\n var _parentage = this._parentage;\n if (_parentage) {\n this._parentage = null;\n if (Array.isArray(_parentage)) {\n try {\n for (var _parentage_1 = __values(_parentage), _parentage_1_1 = _parentage_1.next(); !_parentage_1_1.done; _parentage_1_1 = _parentage_1.next()) {\n var parent_1 = _parentage_1_1.value;\n parent_1.remove(this);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_parentage_1_1 && !_parentage_1_1.done && (_a = _parentage_1.return)) _a.call(_parentage_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n else {\n _parentage.remove(this);\n }\n }\n var initialFinalizer = this.initialTeardown;\n if (isFunction(initialFinalizer)) {\n try {\n initialFinalizer();\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n var _finalizers = this._finalizers;\n if (_finalizers) {\n this._finalizers = null;\n try {\n for (var _finalizers_1 = __values(_finalizers), _finalizers_1_1 = _finalizers_1.next(); !_finalizers_1_1.done; _finalizers_1_1 = _finalizers_1.next()) {\n var finalizer = _finalizers_1_1.value;\n try {\n execFinalizer(finalizer);\n }\n catch (err) {\n errors = errors !== null && errors !== void 0 ? errors : [];\n if (err instanceof UnsubscriptionError) {\n errors = __spreadArray(__spreadArray([], __read(errors)), __read(err.errors));\n }\n else {\n errors.push(err);\n }\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_finalizers_1_1 && !_finalizers_1_1.done && (_b = _finalizers_1.return)) _b.call(_finalizers_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n };\n Subscription.prototype.add = function (teardown) {\n var _a;\n if (teardown && teardown !== this) {\n if (this.closed) {\n execFinalizer(teardown);\n }\n else {\n if (teardown instanceof Subscription) {\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push(teardown);\n }\n }\n };\n Subscription.prototype._hasParent = function (parent) {\n var _parentage = this._parentage;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n };\n Subscription.prototype._addParent = function (parent) {\n var _parentage = this._parentage;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n };\n Subscription.prototype._removeParent = function (parent) {\n var _parentage = this._parentage;\n if (_parentage === parent) {\n this._parentage = null;\n }\n else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n };\n Subscription.prototype.remove = function (teardown) {\n var _finalizers = this._finalizers;\n _finalizers && arrRemove(_finalizers, teardown);\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n };\n Subscription.EMPTY = (function () {\n var empty = new Subscription();\n empty.closed = true;\n return empty;\n })();\n return Subscription;\n}());\nexport { Subscription };\nexport var EMPTY_SUBSCRIPTION = Subscription.EMPTY;\nexport function isSubscription(value) {\n return (value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe)));\n}\nfunction execFinalizer(finalizer) {\n if (isFunction(finalizer)) {\n finalizer();\n }\n else {\n finalizer.unsubscribe();\n }\n}\n//# sourceMappingURL=Subscription.js.map","export var config = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n//# sourceMappingURL=config.js.map","import { __read, __spreadArray } from \"tslib\";\nexport var timeoutProvider = {\n setTimeout: function (handler, timeout) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n var delegate = timeoutProvider.delegate;\n if (delegate === null || delegate === void 0 ? void 0 : delegate.setTimeout) {\n return delegate.setTimeout.apply(delegate, __spreadArray([handler, timeout], __read(args)));\n }\n return setTimeout.apply(void 0, __spreadArray([handler, timeout], __read(args)));\n },\n clearTimeout: function (handle) {\n var delegate = timeoutProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearTimeout) || clearTimeout)(handle);\n },\n delegate: undefined,\n};\n//# sourceMappingURL=timeoutProvider.js.map","import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\nexport function reportUnhandledError(err) {\n timeoutProvider.setTimeout(function () {\n var onUnhandledError = config.onUnhandledError;\n if (onUnhandledError) {\n onUnhandledError(err);\n }\n else {\n throw err;\n }\n });\n}\n//# sourceMappingURL=reportUnhandledError.js.map","export function noop() { }\n//# sourceMappingURL=noop.js.map","import { config } from '../config';\nvar context = null;\nexport function errorContext(cb) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n var isRoot = !context;\n if (isRoot) {\n context = { errorThrown: false, error: null };\n }\n cb();\n if (isRoot) {\n var _a = context, errorThrown = _a.errorThrown, error = _a.error;\n context = null;\n if (errorThrown) {\n throw error;\n }\n }\n }\n else {\n cb();\n }\n}\nexport function captureError(err) {\n if (config.useDeprecatedSynchronousErrorHandling && context) {\n context.errorThrown = true;\n context.error = err;\n }\n}\n//# sourceMappingURL=errorContext.js.map","import { __extends } from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nimport { captureError } from './util/errorContext';\nvar Subscriber = (function (_super) {\n __extends(Subscriber, _super);\n function Subscriber(destination) {\n var _this = _super.call(this) || this;\n _this.isStopped = false;\n if (destination) {\n _this.destination = destination;\n if (isSubscription(destination)) {\n destination.add(_this);\n }\n }\n else {\n _this.destination = EMPTY_OBSERVER;\n }\n return _this;\n }\n Subscriber.create = function (next, error, complete) {\n return new SafeSubscriber(next, error, complete);\n };\n Subscriber.prototype.next = function (value) {\n if (this.isStopped) {\n handleStoppedNotification(nextNotification(value), this);\n }\n else {\n this._next(value);\n }\n };\n Subscriber.prototype.error = function (err) {\n if (this.isStopped) {\n handleStoppedNotification(errorNotification(err), this);\n }\n else {\n this.isStopped = true;\n this._error(err);\n }\n };\n Subscriber.prototype.complete = function () {\n if (this.isStopped) {\n handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n }\n else {\n this.isStopped = true;\n this._complete();\n }\n };\n Subscriber.prototype.unsubscribe = function () {\n if (!this.closed) {\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n this.destination = null;\n }\n };\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n Subscriber.prototype._error = function (err) {\n try {\n this.destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n };\n Subscriber.prototype._complete = function () {\n try {\n this.destination.complete();\n }\n finally {\n this.unsubscribe();\n }\n };\n return Subscriber;\n}(Subscription));\nexport { Subscriber };\nvar _bind = Function.prototype.bind;\nfunction bind(fn, thisArg) {\n return _bind.call(fn, thisArg);\n}\nvar ConsumerObserver = (function () {\n function ConsumerObserver(partialObserver) {\n this.partialObserver = partialObserver;\n }\n ConsumerObserver.prototype.next = function (value) {\n var partialObserver = this.partialObserver;\n if (partialObserver.next) {\n try {\n partialObserver.next(value);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n };\n ConsumerObserver.prototype.error = function (err) {\n var partialObserver = this.partialObserver;\n if (partialObserver.error) {\n try {\n partialObserver.error(err);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n else {\n handleUnhandledError(err);\n }\n };\n ConsumerObserver.prototype.complete = function () {\n var partialObserver = this.partialObserver;\n if (partialObserver.complete) {\n try {\n partialObserver.complete();\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n };\n return ConsumerObserver;\n}());\nvar SafeSubscriber = (function (_super) {\n __extends(SafeSubscriber, _super);\n function SafeSubscriber(observerOrNext, error, complete) {\n var _this = _super.call(this) || this;\n var partialObserver;\n if (isFunction(observerOrNext) || !observerOrNext) {\n partialObserver = {\n next: (observerOrNext !== null && observerOrNext !== void 0 ? observerOrNext : undefined),\n error: error !== null && error !== void 0 ? error : undefined,\n complete: complete !== null && complete !== void 0 ? complete : undefined,\n };\n }\n else {\n var context_1;\n if (_this && config.useDeprecatedNextContext) {\n context_1 = Object.create(observerOrNext);\n context_1.unsubscribe = function () { return _this.unsubscribe(); };\n partialObserver = {\n next: observerOrNext.next && bind(observerOrNext.next, context_1),\n error: observerOrNext.error && bind(observerOrNext.error, context_1),\n complete: observerOrNext.complete && bind(observerOrNext.complete, context_1),\n };\n }\n else {\n partialObserver = observerOrNext;\n }\n }\n _this.destination = new ConsumerObserver(partialObserver);\n return _this;\n }\n return SafeSubscriber;\n}(Subscriber));\nexport { SafeSubscriber };\nfunction handleUnhandledError(error) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n captureError(error);\n }\n else {\n reportUnhandledError(error);\n }\n}\nfunction defaultErrorHandler(err) {\n throw err;\n}\nfunction handleStoppedNotification(notification, subscriber) {\n var onStoppedNotification = config.onStoppedNotification;\n onStoppedNotification && timeoutProvider.setTimeout(function () { return onStoppedNotification(notification, subscriber); });\n}\nexport var EMPTY_OBSERVER = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n//# sourceMappingURL=Subscriber.js.map","export var observable = (function () { return (typeof Symbol === 'function' && Symbol.observable) || '@@observable'; })();\n//# sourceMappingURL=observable.js.map","export function identity(x) {\n return x;\n}\n//# sourceMappingURL=identity.js.map","import { identity } from './identity';\nexport function pipe() {\n var fns = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i] = arguments[_i];\n }\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce(function (prev, fn) { return fn(prev); }, input);\n };\n}\n//# sourceMappingURL=pipe.js.map","import { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription } from './Subscription';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nimport { errorContext } from './util/errorContext';\nvar Observable = (function () {\n function Observable(subscribe) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n Observable.prototype.lift = function (operator) {\n var observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n };\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n var _this = this;\n var subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n errorContext(function () {\n var _a = _this, operator = _a.operator, source = _a.source;\n subscriber.add(operator\n ?\n operator.call(subscriber, source)\n : source\n ?\n _this._subscribe(subscriber)\n :\n _this._trySubscribe(subscriber));\n });\n return subscriber;\n };\n Observable.prototype._trySubscribe = function (sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n sink.error(err);\n }\n };\n Observable.prototype.forEach = function (next, promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var subscriber = new SafeSubscriber({\n next: function (value) {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n subscriber.unsubscribe();\n }\n },\n error: reject,\n complete: resolve,\n });\n _this.subscribe(subscriber);\n });\n };\n Observable.prototype._subscribe = function (subscriber) {\n var _a;\n return (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber);\n };\n Observable.prototype[Symbol_observable] = function () {\n return this;\n };\n Observable.prototype.pipe = function () {\n var operations = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n operations[_i] = arguments[_i];\n }\n return pipeFromArray(operations)(this);\n };\n Observable.prototype.toPromise = function (promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var value;\n _this.subscribe(function (x) { return (value = x); }, function (err) { return reject(err); }, function () { return resolve(value); });\n });\n };\n Observable.create = function (subscribe) {\n return new Observable(subscribe);\n };\n return Observable;\n}());\nexport { Observable };\nfunction getPromiseCtor(promiseCtor) {\n var _a;\n return (_a = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config.Promise) !== null && _a !== void 0 ? _a : Promise;\n}\nfunction isObserver(value) {\n return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\nfunction isSubscriber(value) {\n return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n//# sourceMappingURL=Observable.js.map","import { observable as Symbol_observable } from '../symbol/observable';\nimport { isFunction } from './isFunction';\nexport function isInteropObservable(input) {\n return isFunction(input[Symbol_observable]);\n}\n//# sourceMappingURL=isInteropObservable.js.map","import { isFunction } from './isFunction';\nexport function isAsyncIterable(obj) {\n return Symbol.asyncIterator && isFunction(obj === null || obj === void 0 ? void 0 : obj[Symbol.asyncIterator]);\n}\n//# sourceMappingURL=isAsyncIterable.js.map","export function createInvalidObservableTypeError(input) {\n return new TypeError(\"You provided \" + (input !== null && typeof input === 'object' ? 'an invalid object' : \"'\" + input + \"'\") + \" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.\");\n}\n//# sourceMappingURL=throwUnobservableError.js.map","export function getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nexport var iterator = getSymbolIterator();\n//# sourceMappingURL=iterator.js.map","import { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from './isFunction';\nexport function isIterable(input) {\n return isFunction(input === null || input === void 0 ? void 0 : input[Symbol_iterator]);\n}\n//# sourceMappingURL=isIterable.js.map","import { __asyncGenerator, __await, __generator } from \"tslib\";\nimport { isFunction } from './isFunction';\nexport function readableStreamLikeToAsyncGenerator(readableStream) {\n return __asyncGenerator(this, arguments, function readableStreamLikeToAsyncGenerator_1() {\n var reader, _a, value, done;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n reader = readableStream.getReader();\n _b.label = 1;\n case 1:\n _b.trys.push([1, , 9, 10]);\n _b.label = 2;\n case 2:\n if (!true) return [3, 8];\n return [4, __await(reader.read())];\n case 3:\n _a = _b.sent(), value = _a.value, done = _a.done;\n if (!done) return [3, 5];\n return [4, __await(void 0)];\n case 4: return [2, _b.sent()];\n case 5: return [4, __await(value)];\n case 6: return [4, _b.sent()];\n case 7:\n _b.sent();\n return [3, 2];\n case 8: return [3, 10];\n case 9:\n reader.releaseLock();\n return [7];\n case 10: return [2];\n }\n });\n });\n}\nexport function isReadableStreamLike(obj) {\n return isFunction(obj === null || obj === void 0 ? void 0 : obj.getReader);\n}\n//# sourceMappingURL=isReadableStreamLike.js.map","import { __asyncValues, __awaiter, __generator, __values } from \"tslib\";\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isPromise } from '../util/isPromise';\nimport { Observable } from '../Observable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isAsyncIterable } from '../util/isAsyncIterable';\nimport { createInvalidObservableTypeError } from '../util/throwUnobservableError';\nimport { isIterable } from '../util/isIterable';\nimport { isReadableStreamLike, readableStreamLikeToAsyncGenerator } from '../util/isReadableStreamLike';\nimport { isFunction } from '../util/isFunction';\nimport { reportUnhandledError } from '../util/reportUnhandledError';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport function innerFrom(input) {\n if (input instanceof Observable) {\n return input;\n }\n if (input != null) {\n if (isInteropObservable(input)) {\n return fromInteropObservable(input);\n }\n if (isArrayLike(input)) {\n return fromArrayLike(input);\n }\n if (isPromise(input)) {\n return fromPromise(input);\n }\n if (isAsyncIterable(input)) {\n return fromAsyncIterable(input);\n }\n if (isIterable(input)) {\n return fromIterable(input);\n }\n if (isReadableStreamLike(input)) {\n return fromReadableStreamLike(input);\n }\n }\n throw createInvalidObservableTypeError(input);\n}\nexport function fromInteropObservable(obj) {\n return new Observable(function (subscriber) {\n var obs = obj[Symbol_observable]();\n if (isFunction(obs.subscribe)) {\n return obs.subscribe(subscriber);\n }\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n });\n}\nexport function fromArrayLike(array) {\n return new Observable(function (subscriber) {\n for (var i = 0; i < array.length && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n });\n}\nexport function fromPromise(promise) {\n return new Observable(function (subscriber) {\n promise\n .then(function (value) {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, function (err) { return subscriber.error(err); })\n .then(null, reportUnhandledError);\n });\n}\nexport function fromIterable(iterable) {\n return new Observable(function (subscriber) {\n var e_1, _a;\n try {\n for (var iterable_1 = __values(iterable), iterable_1_1 = iterable_1.next(); !iterable_1_1.done; iterable_1_1 = iterable_1.next()) {\n var value = iterable_1_1.value;\n subscriber.next(value);\n if (subscriber.closed) {\n return;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (iterable_1_1 && !iterable_1_1.done && (_a = iterable_1.return)) _a.call(iterable_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n subscriber.complete();\n });\n}\nexport function fromAsyncIterable(asyncIterable) {\n return new Observable(function (subscriber) {\n process(asyncIterable, subscriber).catch(function (err) { return subscriber.error(err); });\n });\n}\nexport function fromReadableStreamLike(readableStream) {\n return fromAsyncIterable(readableStreamLikeToAsyncGenerator(readableStream));\n}\nfunction process(asyncIterable, subscriber) {\n var asyncIterable_1, asyncIterable_1_1;\n var e_2, _a;\n return __awaiter(this, void 0, void 0, function () {\n var value, e_2_1;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 5, 6, 11]);\n asyncIterable_1 = __asyncValues(asyncIterable);\n _b.label = 1;\n case 1: return [4, asyncIterable_1.next()];\n case 2:\n if (!(asyncIterable_1_1 = _b.sent(), !asyncIterable_1_1.done)) return [3, 4];\n value = asyncIterable_1_1.value;\n subscriber.next(value);\n if (subscriber.closed) {\n return [2];\n }\n _b.label = 3;\n case 3: return [3, 1];\n case 4: return [3, 11];\n case 5:\n e_2_1 = _b.sent();\n e_2 = { error: e_2_1 };\n return [3, 11];\n case 6:\n _b.trys.push([6, , 9, 10]);\n if (!(asyncIterable_1_1 && !asyncIterable_1_1.done && (_a = asyncIterable_1.return))) return [3, 8];\n return [4, _a.call(asyncIterable_1)];\n case 7:\n _b.sent();\n _b.label = 8;\n case 8: return [3, 10];\n case 9:\n if (e_2) throw e_2.error;\n return [7];\n case 10: return [7];\n case 11:\n subscriber.complete();\n return [2];\n }\n });\n });\n}\n//# sourceMappingURL=innerFrom.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function createOperatorSubscriber(destination, onNext, onComplete, onError, onFinalize) {\n return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize);\n}\nvar OperatorSubscriber = (function (_super) {\n __extends(OperatorSubscriber, _super);\n function OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize, shouldUnsubscribe) {\n var _this = _super.call(this, destination) || this;\n _this.onFinalize = onFinalize;\n _this.shouldUnsubscribe = shouldUnsubscribe;\n _this._next = onNext\n ? function (value) {\n try {\n onNext(value);\n }\n catch (err) {\n destination.error(err);\n }\n }\n : _super.prototype._next;\n _this._error = onError\n ? function (err) {\n try {\n onError(err);\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : _super.prototype._error;\n _this._complete = onComplete\n ? function () {\n try {\n onComplete();\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : _super.prototype._complete;\n return _this;\n }\n OperatorSubscriber.prototype.unsubscribe = function () {\n var _a;\n if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {\n var closed_1 = this.closed;\n _super.prototype.unsubscribe.call(this);\n !closed_1 && ((_a = this.onFinalize) === null || _a === void 0 ? void 0 : _a.call(this));\n }\n };\n return OperatorSubscriber;\n}(Subscriber));\nexport { OperatorSubscriber };\n//# sourceMappingURL=OperatorSubscriber.js.map","import { __extends } from \"tslib\";\nimport { Subscription } from '../Subscription';\nvar Action = (function (_super) {\n __extends(Action, _super);\n function Action(scheduler, work) {\n return _super.call(this) || this;\n }\n Action.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n return this;\n };\n return Action;\n}(Subscription));\nexport { Action };\n//# sourceMappingURL=Action.js.map","import { __read, __spreadArray } from \"tslib\";\nexport var intervalProvider = {\n setInterval: function (handler, timeout) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n var delegate = intervalProvider.delegate;\n if (delegate === null || delegate === void 0 ? void 0 : delegate.setInterval) {\n return delegate.setInterval.apply(delegate, __spreadArray([handler, timeout], __read(args)));\n }\n return setInterval.apply(void 0, __spreadArray([handler, timeout], __read(args)));\n },\n clearInterval: function (handle) {\n var delegate = intervalProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearInterval) || clearInterval)(handle);\n },\n delegate: undefined,\n};\n//# sourceMappingURL=intervalProvider.js.map","import { __extends } from \"tslib\";\nimport { Action } from './Action';\nimport { intervalProvider } from './intervalProvider';\nimport { arrRemove } from '../util/arrRemove';\nvar AsyncAction = (function (_super) {\n __extends(AsyncAction, _super);\n function AsyncAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n _this.pending = false;\n return _this;\n }\n AsyncAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n if (this.closed) {\n return this;\n }\n this.state = state;\n var id = this.id;\n var scheduler = this.scheduler;\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n this.pending = true;\n this.delay = delay;\n this.id = this.id || this.requestAsyncId(scheduler, this.id, delay);\n return this;\n };\n AsyncAction.prototype.requestAsyncId = function (scheduler, _id, delay) {\n if (delay === void 0) { delay = 0; }\n return intervalProvider.setInterval(scheduler.flush.bind(scheduler, this), delay);\n };\n AsyncAction.prototype.recycleAsyncId = function (_scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay != null && this.delay === delay && this.pending === false) {\n return id;\n }\n intervalProvider.clearInterval(id);\n return undefined;\n };\n AsyncAction.prototype.execute = function (state, delay) {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n this.pending = false;\n var error = this._execute(state, delay);\n if (error) {\n return error;\n }\n else if (this.pending === false && this.id != null) {\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n };\n AsyncAction.prototype._execute = function (state, _delay) {\n var errored = false;\n var errorValue;\n try {\n this.work(state);\n }\n catch (e) {\n errored = true;\n errorValue = e ? e : new Error('Scheduled action threw falsy error');\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n };\n AsyncAction.prototype.unsubscribe = function () {\n if (!this.closed) {\n var _a = this, id = _a.id, scheduler = _a.scheduler;\n var actions = scheduler.actions;\n this.work = this.state = this.scheduler = null;\n this.pending = false;\n arrRemove(actions, this);\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n this.delay = null;\n _super.prototype.unsubscribe.call(this);\n }\n };\n return AsyncAction;\n}(Action));\nexport { AsyncAction };\n//# sourceMappingURL=AsyncAction.js.map","export var dateTimestampProvider = {\n now: function () {\n return (dateTimestampProvider.delegate || Date).now();\n },\n delegate: undefined,\n};\n//# sourceMappingURL=dateTimestampProvider.js.map","import { dateTimestampProvider } from './scheduler/dateTimestampProvider';\nvar Scheduler = (function () {\n function Scheduler(schedulerActionCtor, now) {\n if (now === void 0) { now = Scheduler.now; }\n this.schedulerActionCtor = schedulerActionCtor;\n this.now = now;\n }\n Scheduler.prototype.schedule = function (work, delay, state) {\n if (delay === void 0) { delay = 0; }\n return new this.schedulerActionCtor(this, work).schedule(state, delay);\n };\n Scheduler.now = dateTimestampProvider.now;\n return Scheduler;\n}());\nexport { Scheduler };\n//# sourceMappingURL=Scheduler.js.map","import { __extends } from \"tslib\";\nimport { Scheduler } from '../Scheduler';\nvar AsyncScheduler = (function (_super) {\n __extends(AsyncScheduler, _super);\n function AsyncScheduler(SchedulerAction, now) {\n if (now === void 0) { now = Scheduler.now; }\n var _this = _super.call(this, SchedulerAction, now) || this;\n _this.actions = [];\n _this._active = false;\n _this._scheduled = undefined;\n return _this;\n }\n AsyncScheduler.prototype.flush = function (action) {\n var actions = this.actions;\n if (this._active) {\n actions.push(action);\n return;\n }\n var error;\n this._active = true;\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions.shift()));\n this._active = false;\n if (error) {\n while ((action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AsyncScheduler;\n}(Scheduler));\nexport { AsyncScheduler };\n//# sourceMappingURL=AsyncScheduler.js.map","import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\nexport var asyncScheduler = new AsyncScheduler(AsyncAction);\nexport var async = asyncScheduler;\n//# sourceMappingURL=async.js.map","import { isFunction } from './isFunction';\nexport function isScheduler(value) {\n return value && isFunction(value.schedule);\n}\n//# sourceMappingURL=isScheduler.js.map","export function isValidDate(value) {\n return value instanceof Date && !isNaN(value);\n}\n//# sourceMappingURL=isDate.js.map","import { Observable } from '../Observable';\nimport { async as asyncScheduler } from '../scheduler/async';\nimport { isScheduler } from '../util/isScheduler';\nimport { isValidDate } from '../util/isDate';\nexport function timer(dueTime, intervalOrScheduler, scheduler) {\n if (dueTime === void 0) { dueTime = 0; }\n if (scheduler === void 0) { scheduler = asyncScheduler; }\n var intervalDuration = -1;\n if (intervalOrScheduler != null) {\n if (isScheduler(intervalOrScheduler)) {\n scheduler = intervalOrScheduler;\n }\n else {\n intervalDuration = intervalOrScheduler;\n }\n }\n return new Observable(function (subscriber) {\n var due = isValidDate(dueTime) ? +dueTime - scheduler.now() : dueTime;\n if (due < 0) {\n due = 0;\n }\n var n = 0;\n return scheduler.schedule(function () {\n if (!subscriber.closed) {\n subscriber.next(n++);\n if (0 <= intervalDuration) {\n this.schedule(undefined, intervalDuration);\n }\n else {\n subscriber.complete();\n }\n }\n }, due);\n });\n}\n//# sourceMappingURL=timer.js.map","import { isFunction } from './isFunction';\nimport { isScheduler } from './isScheduler';\nfunction last(arr) {\n return arr[arr.length - 1];\n}\nexport function popResultSelector(args) {\n return isFunction(last(args)) ? args.pop() : undefined;\n}\nexport function popScheduler(args) {\n return isScheduler(last(args)) ? args.pop() : undefined;\n}\nexport function popNumber(args, defaultValue) {\n return typeof last(args) === 'number' ? args.pop() : defaultValue;\n}\n//# sourceMappingURL=args.js.map","export function executeSchedule(parentSubscription, scheduler, work, delay, repeat) {\n if (delay === void 0) { delay = 0; }\n if (repeat === void 0) { repeat = false; }\n var scheduleSubscription = scheduler.schedule(function () {\n work();\n if (repeat) {\n parentSubscription.add(this.schedule(null, delay));\n }\n else {\n this.unsubscribe();\n }\n }, delay);\n parentSubscription.add(scheduleSubscription);\n if (!repeat) {\n return scheduleSubscription;\n }\n}\n//# sourceMappingURL=executeSchedule.js.map","import { innerFrom } from '../observable/innerFrom';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { operate } from '../util/lift';\nexport function catchError(selector) {\n return operate(function (source, subscriber) {\n var innerSub = null;\n var syncUnsub = false;\n var handledResult;\n innerSub = source.subscribe(createOperatorSubscriber(subscriber, undefined, undefined, function (err) {\n handledResult = innerFrom(selector(err, catchError(selector)(source)));\n if (innerSub) {\n innerSub.unsubscribe();\n innerSub = null;\n handledResult.subscribe(subscriber);\n }\n else {\n syncUnsub = true;\n }\n }));\n if (syncUnsub) {\n innerSub.unsubscribe();\n innerSub = null;\n handledResult.subscribe(subscriber);\n }\n });\n}\n//# sourceMappingURL=catchError.js.map","import { executeSchedule } from '../util/executeSchedule';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function observeOn(scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n return operate(function (source, subscriber) {\n source.subscribe(createOperatorSubscriber(subscriber, function (value) { return executeSchedule(subscriber, scheduler, function () { return subscriber.next(value); }, delay); }, function () { return executeSchedule(subscriber, scheduler, function () { return subscriber.complete(); }, delay); }, function (err) { return executeSchedule(subscriber, scheduler, function () { return subscriber.error(err); }, delay); }));\n });\n}\n//# sourceMappingURL=observeOn.js.map","import { operate } from '../util/lift';\nexport function subscribeOn(scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n return operate(function (source, subscriber) {\n subscriber.add(scheduler.schedule(function () { return source.subscribe(subscriber); }, delay));\n });\n}\n//# sourceMappingURL=subscribeOn.js.map","import { innerFrom } from '../observable/innerFrom';\nimport { observeOn } from '../operators/observeOn';\nimport { subscribeOn } from '../operators/subscribeOn';\nexport function scheduleObservable(input, scheduler) {\n return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler));\n}\n//# sourceMappingURL=scheduleObservable.js.map","import { innerFrom } from '../observable/innerFrom';\nimport { observeOn } from '../operators/observeOn';\nimport { subscribeOn } from '../operators/subscribeOn';\nexport function schedulePromise(input, scheduler) {\n return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler));\n}\n//# sourceMappingURL=schedulePromise.js.map","import { Observable } from '../Observable';\nexport function scheduleArray(input, scheduler) {\n return new Observable(function (subscriber) {\n var i = 0;\n return scheduler.schedule(function () {\n if (i === input.length) {\n subscriber.complete();\n }\n else {\n subscriber.next(input[i++]);\n if (!subscriber.closed) {\n this.schedule();\n }\n }\n });\n });\n}\n//# sourceMappingURL=scheduleArray.js.map","import { Observable } from '../Observable';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from '../util/isFunction';\nimport { executeSchedule } from '../util/executeSchedule';\nexport function scheduleIterable(input, scheduler) {\n return new Observable(function (subscriber) {\n var iterator;\n executeSchedule(subscriber, scheduler, function () {\n iterator = input[Symbol_iterator]();\n executeSchedule(subscriber, scheduler, function () {\n var _a;\n var value;\n var done;\n try {\n (_a = iterator.next(), value = _a.value, done = _a.done);\n }\n catch (err) {\n subscriber.error(err);\n return;\n }\n if (done) {\n subscriber.complete();\n }\n else {\n subscriber.next(value);\n }\n }, 0, true);\n });\n return function () { return isFunction(iterator === null || iterator === void 0 ? void 0 : iterator.return) && iterator.return(); };\n });\n}\n//# sourceMappingURL=scheduleIterable.js.map","import { Observable } from '../Observable';\nimport { executeSchedule } from '../util/executeSchedule';\nexport function scheduleAsyncIterable(input, scheduler) {\n if (!input) {\n throw new Error('Iterable cannot be null');\n }\n return new Observable(function (subscriber) {\n executeSchedule(subscriber, scheduler, function () {\n var iterator = input[Symbol.asyncIterator]();\n executeSchedule(subscriber, scheduler, function () {\n iterator.next().then(function (result) {\n if (result.done) {\n subscriber.complete();\n }\n else {\n subscriber.next(result.value);\n }\n });\n }, 0, true);\n });\n });\n}\n//# sourceMappingURL=scheduleAsyncIterable.js.map","import { scheduleAsyncIterable } from './scheduleAsyncIterable';\nimport { readableStreamLikeToAsyncGenerator } from '../util/isReadableStreamLike';\nexport function scheduleReadableStreamLike(input, scheduler) {\n return scheduleAsyncIterable(readableStreamLikeToAsyncGenerator(input), scheduler);\n}\n//# sourceMappingURL=scheduleReadableStreamLike.js.map","import { scheduleObservable } from './scheduleObservable';\nimport { schedulePromise } from './schedulePromise';\nimport { scheduleArray } from './scheduleArray';\nimport { scheduleIterable } from './scheduleIterable';\nimport { scheduleAsyncIterable } from './scheduleAsyncIterable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isPromise } from '../util/isPromise';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isIterable } from '../util/isIterable';\nimport { isAsyncIterable } from '../util/isAsyncIterable';\nimport { createInvalidObservableTypeError } from '../util/throwUnobservableError';\nimport { isReadableStreamLike } from '../util/isReadableStreamLike';\nimport { scheduleReadableStreamLike } from './scheduleReadableStreamLike';\nexport function scheduled(input, scheduler) {\n if (input != null) {\n if (isInteropObservable(input)) {\n return scheduleObservable(input, scheduler);\n }\n if (isArrayLike(input)) {\n return scheduleArray(input, scheduler);\n }\n if (isPromise(input)) {\n return schedulePromise(input, scheduler);\n }\n if (isAsyncIterable(input)) {\n return scheduleAsyncIterable(input, scheduler);\n }\n if (isIterable(input)) {\n return scheduleIterable(input, scheduler);\n }\n if (isReadableStreamLike(input)) {\n return scheduleReadableStreamLike(input, scheduler);\n }\n }\n throw createInvalidObservableTypeError(input);\n}\n//# sourceMappingURL=scheduled.js.map","import { scheduled } from '../scheduled/scheduled';\nimport { innerFrom } from './innerFrom';\nexport function from(input, scheduler) {\n return scheduler ? scheduled(input, scheduler) : innerFrom(input);\n}\n//# sourceMappingURL=from.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function map(project, thisArg) {\n return operate(function (source, subscriber) {\n var index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n subscriber.next(project.call(thisArg, value, index++));\n }));\n });\n}\n//# sourceMappingURL=map.js.map","import { innerFrom } from '../observable/innerFrom';\nimport { executeSchedule } from '../util/executeSchedule';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function mergeInternals(source, subscriber, project, concurrent, onBeforeNext, expand, innerSubScheduler, additionalFinalizer) {\n var buffer = [];\n var active = 0;\n var index = 0;\n var isComplete = false;\n var checkComplete = function () {\n if (isComplete && !buffer.length && !active) {\n subscriber.complete();\n }\n };\n var outerNext = function (value) { return (active < concurrent ? doInnerSub(value) : buffer.push(value)); };\n var doInnerSub = function (value) {\n expand && subscriber.next(value);\n active++;\n var innerComplete = false;\n innerFrom(project(value, index++)).subscribe(createOperatorSubscriber(subscriber, function (innerValue) {\n onBeforeNext === null || onBeforeNext === void 0 ? void 0 : onBeforeNext(innerValue);\n if (expand) {\n outerNext(innerValue);\n }\n else {\n subscriber.next(innerValue);\n }\n }, function () {\n innerComplete = true;\n }, undefined, function () {\n if (innerComplete) {\n try {\n active--;\n var _loop_1 = function () {\n var bufferedValue = buffer.shift();\n if (innerSubScheduler) {\n executeSchedule(subscriber, innerSubScheduler, function () { return doInnerSub(bufferedValue); });\n }\n else {\n doInnerSub(bufferedValue);\n }\n };\n while (buffer.length && active < concurrent) {\n _loop_1();\n }\n checkComplete();\n }\n catch (err) {\n subscriber.error(err);\n }\n }\n }));\n };\n source.subscribe(createOperatorSubscriber(subscriber, outerNext, function () {\n isComplete = true;\n checkComplete();\n }));\n return function () {\n additionalFinalizer === null || additionalFinalizer === void 0 ? void 0 : additionalFinalizer();\n };\n}\n//# sourceMappingURL=mergeInternals.js.map","import { map } from './map';\nimport { innerFrom } from '../observable/innerFrom';\nimport { operate } from '../util/lift';\nimport { mergeInternals } from './mergeInternals';\nimport { isFunction } from '../util/isFunction';\nexport function mergeMap(project, resultSelector, concurrent) {\n if (concurrent === void 0) { concurrent = Infinity; }\n if (isFunction(resultSelector)) {\n return mergeMap(function (a, i) { return map(function (b, ii) { return resultSelector(a, b, i, ii); })(innerFrom(project(a, i))); }, concurrent);\n }\n else if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return operate(function (source, subscriber) { return mergeInternals(source, subscriber, project, concurrent); });\n}\n//# sourceMappingURL=mergeMap.js.map","import { mergeMap } from './mergeMap';\nimport { identity } from '../util/identity';\nexport function mergeAll(concurrent) {\n if (concurrent === void 0) { concurrent = Infinity; }\n return mergeMap(identity, concurrent);\n}\n//# sourceMappingURL=mergeAll.js.map","import { mergeAll } from './mergeAll';\nexport function concatAll() {\n return mergeAll(1);\n}\n//# sourceMappingURL=concatAll.js.map","import { asyncScheduler } from '../scheduler/async';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function debounceTime(dueTime, scheduler) {\n if (scheduler === void 0) { scheduler = asyncScheduler; }\n return operate(function (source, subscriber) {\n var activeTask = null;\n var lastValue = null;\n var lastTime = null;\n var emit = function () {\n if (activeTask) {\n activeTask.unsubscribe();\n activeTask = null;\n var value = lastValue;\n lastValue = null;\n subscriber.next(value);\n }\n };\n function emitWhenIdle() {\n var targetTime = lastTime + dueTime;\n var now = scheduler.now();\n if (now < targetTime) {\n activeTask = this.schedule(undefined, targetTime - now);\n subscriber.add(activeTask);\n return;\n }\n emit();\n }\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n lastValue = value;\n lastTime = scheduler.now();\n if (!activeTask) {\n activeTask = scheduler.schedule(emitWhenIdle, dueTime);\n subscriber.add(activeTask);\n }\n }, function () {\n emit();\n subscriber.complete();\n }, undefined, function () {\n lastValue = activeTask = null;\n }));\n });\n}\n//# sourceMappingURL=debounceTime.js.map","import { concatAll } from '../operators/concatAll';\nimport { popScheduler } from '../util/args';\nimport { from } from './from';\nexport function concat() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return concatAll()(from(args, popScheduler(args)));\n}\n//# sourceMappingURL=concat.js.map","import { Observable } from '../Observable';\nexport var EMPTY = new Observable(function (subscriber) { return subscriber.complete(); });\nexport function empty(scheduler) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\nfunction emptyScheduled(scheduler) {\n return new Observable(function (subscriber) { return scheduler.schedule(function () { return subscriber.complete(); }); });\n}\n//# sourceMappingURL=empty.js.map","import { EMPTY } from '../observable/empty';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function take(count) {\n return count <= 0\n ?\n function () { return EMPTY; }\n : operate(function (source, subscriber) {\n var seen = 0;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n if (++seen <= count) {\n subscriber.next(value);\n if (count <= seen) {\n subscriber.complete();\n }\n }\n }));\n });\n}\n//# sourceMappingURL=take.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { noop } from '../util/noop';\nexport function ignoreElements() {\n return operate(function (source, subscriber) {\n source.subscribe(createOperatorSubscriber(subscriber, noop));\n });\n}\n//# sourceMappingURL=ignoreElements.js.map","import { map } from './map';\nexport function mapTo(value) {\n return map(function () { return value; });\n}\n//# sourceMappingURL=mapTo.js.map","import { concat } from '../observable/concat';\nimport { take } from './take';\nimport { ignoreElements } from './ignoreElements';\nimport { mapTo } from './mapTo';\nimport { mergeMap } from './mergeMap';\nexport function delayWhen(delayDurationSelector, subscriptionDelay) {\n if (subscriptionDelay) {\n return function (source) {\n return concat(subscriptionDelay.pipe(take(1), ignoreElements()), source.pipe(delayWhen(delayDurationSelector)));\n };\n }\n return mergeMap(function (value, index) { return delayDurationSelector(value, index).pipe(take(1), mapTo(value)); });\n}\n//# sourceMappingURL=delayWhen.js.map","import { asyncScheduler } from '../scheduler/async';\nimport { delayWhen } from './delayWhen';\nimport { timer } from '../observable/timer';\nexport function delay(due, scheduler) {\n if (scheduler === void 0) { scheduler = asyncScheduler; }\n var duration = timer(due, scheduler);\n return delayWhen(function () { return duration; });\n}\n//# sourceMappingURL=delay.js.map","import { identity } from '../util/identity';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function distinctUntilChanged(comparator, keySelector) {\n if (keySelector === void 0) { keySelector = identity; }\n comparator = comparator !== null && comparator !== void 0 ? comparator : defaultCompare;\n return operate(function (source, subscriber) {\n var previousKey;\n var first = true;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n var currentKey = keySelector(value);\n if (first || !comparator(previousKey, currentKey)) {\n first = false;\n previousKey = currentKey;\n subscriber.next(value);\n }\n }));\n });\n}\nfunction defaultCompare(a, b) {\n return a === b;\n}\n//# sourceMappingURL=distinctUntilChanged.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function filter(predicate, thisArg) {\n return operate(function (source, subscriber) {\n var index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) { return predicate.call(thisArg, value, index++) && subscriber.next(value); }));\n });\n}\n//# sourceMappingURL=filter.js.map","import { filter } from './filter';\nexport function skip(count) {\n return filter(function (_, index) { return count <= index; });\n}\n//# sourceMappingURL=skip.js.map","import { concat } from '../observable/concat';\nimport { popScheduler } from '../util/args';\nimport { operate } from '../util/lift';\nexport function startWith() {\n var values = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n values[_i] = arguments[_i];\n }\n var scheduler = popScheduler(values);\n return operate(function (source, subscriber) {\n (scheduler ? concat(values, source, scheduler) : concat(values, source)).subscribe(subscriber);\n });\n}\n//# sourceMappingURL=startWith.js.map","import { innerFrom } from '../observable/innerFrom';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function switchMap(project, resultSelector) {\n return operate(function (source, subscriber) {\n var innerSubscriber = null;\n var index = 0;\n var isComplete = false;\n var checkComplete = function () { return isComplete && !innerSubscriber && subscriber.complete(); };\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n innerSubscriber === null || innerSubscriber === void 0 ? void 0 : innerSubscriber.unsubscribe();\n var innerIndex = 0;\n var outerIndex = index++;\n innerFrom(project(value, outerIndex)).subscribe((innerSubscriber = createOperatorSubscriber(subscriber, function (innerValue) { return subscriber.next(resultSelector ? resultSelector(value, innerValue, outerIndex, innerIndex++) : innerValue); }, function () {\n innerSubscriber = null;\n checkComplete();\n })));\n }, function () {\n isComplete = true;\n checkComplete();\n }));\n });\n}\n//# sourceMappingURL=switchMap.js.map","import { isFunction } from '../util/isFunction';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { identity } from '../util/identity';\nexport function tap(observerOrNext, error, complete) {\n var tapObserver = isFunction(observerOrNext) || error || complete\n ?\n { next: observerOrNext, error: error, complete: complete }\n : observerOrNext;\n return tapObserver\n ? operate(function (source, subscriber) {\n var _a;\n (_a = tapObserver.subscribe) === null || _a === void 0 ? void 0 : _a.call(tapObserver);\n var isUnsub = true;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n var _a;\n (_a = tapObserver.next) === null || _a === void 0 ? void 0 : _a.call(tapObserver, value);\n subscriber.next(value);\n }, function () {\n var _a;\n isUnsub = false;\n (_a = tapObserver.complete) === null || _a === void 0 ? void 0 : _a.call(tapObserver);\n subscriber.complete();\n }, function (err) {\n var _a;\n isUnsub = false;\n (_a = tapObserver.error) === null || _a === void 0 ? void 0 : _a.call(tapObserver, err);\n subscriber.error(err);\n }, function () {\n var _a, _b;\n if (isUnsub) {\n (_a = tapObserver.unsubscribe) === null || _a === void 0 ? void 0 : _a.call(tapObserver);\n }\n (_b = tapObserver.finalize) === null || _b === void 0 ? void 0 : _b.call(tapObserver);\n }));\n })\n :\n identity;\n}\n//# sourceMappingURL=tap.js.map","import { DexieCloudDB } from '../db/DexieCloudDB';\n\n//const hasSW = 'serviceWorker' in navigator;\nlet hasComplainedAboutSyncEvent = false;\n\nexport async function registerSyncEvent(db: DexieCloudDB, purpose: \"push\" | \"pull\") {\n try {\n // Send sync event to SW:\n const sw: ServiceWorkerRegistration & {sync?: any} = await navigator.serviceWorker.ready;\n if (purpose === \"push\" && sw.sync) {\n await sw.sync.register(`dexie-cloud:${db.name}`);\n }\n if (sw.active) {\n // Use postMessage for pull syncs and for browsers not supporting sync event (Firefox, Safari).\n // Also chromium based browsers with sw.sync as a fallback for sleepy sync events not taking action for a while.\n sw.active.postMessage({\n type: 'dexie-cloud-sync',\n dbName: db.name,\n purpose\n });\n } else {\n throw new Error(`Failed to trigger sync - there's no active service worker`);\n }\n return;\n } catch (e) {\n if (!hasComplainedAboutSyncEvent) {\n console.debug(`Dexie Cloud: Could not register sync event`, e);\n hasComplainedAboutSyncEvent = true;\n }\n }\n}\n\nexport async function registerPeriodicSyncEvent(db: DexieCloudDB) {\n try {\n // Register periodicSync event to SW:\n // @ts-ignore\n const { periodicSync } = await navigator.serviceWorker.ready;\n if (periodicSync) {\n try {\n await periodicSync.register(\n `dexie-cloud:${db.name}`,\n db.cloud.options?.periodicSync\n );\n console.debug(\n `Dexie Cloud: Successfully registered periodicsync event for ${db.name}`\n );\n } catch (e) {\n console.debug(`Dexie Cloud: Failed to register periodic sync. Your PWA must be installed to allow background sync.`, e);\n }\n } else {\n console.debug(`Dexie Cloud: periodicSync not supported.`);\n }\n } catch (e) {\n console.debug(\n `Dexie Cloud: Could not register periodicSync for ${db.name}`,\n e\n );\n }\n}\n","import { DexieCloudDB } from \"../db/DexieCloudDB\";\nimport { registerSyncEvent } from \"./registerSyncEvent\";\n\nexport function triggerSync(db: DexieCloudDB, purpose: \"push\" | \"pull\") {\n if (db.cloud.usingServiceWorker) {\n console.debug('registering sync event');\n registerSyncEvent(db, purpose);\n } else {\n db.localSyncEvent.next({purpose});\n }\n}","export const b64decode = typeof Buffer !== \"undefined\"\n ? (base64) => Buffer.from(base64, \"base64\")\n : (base64) => {\n const binary_string = atob(base64);\n const len = binary_string.length;\n const bytes = new Uint8Array(len);\n for (var i = 0; i < len; i++) {\n bytes[i] = binary_string.charCodeAt(i);\n }\n return bytes;\n };\nexport const b64encode = typeof Buffer !== \"undefined\"\n ? (b) => {\n if (ArrayBuffer.isView(b)) {\n return Buffer.from(b.buffer, b.byteOffset, b.byteLength).toString(\"base64\");\n }\n else {\n return Buffer.from(b).toString(\"base64\");\n }\n }\n : (b) => {\n const u8a = ArrayBuffer.isView(b) ? b : new Uint8Array(b);\n const CHUNK_SIZE = 0x1000;\n const strs = [];\n for (let i = 0, l = u8a.length; i < l; i += CHUNK_SIZE) {\n const chunk = u8a.subarray(i, i + CHUNK_SIZE);\n strs.push(String.fromCharCode.apply(null, chunk));\n }\n return btoa(strs.join(\"\"));\n };\n","import { PersistedSyncState } from '../db/entities/PersistedSyncState';\nimport { b64encode } from 'dreambase-library/dist/common/base64';\n\nexport async function computeRealmSetHash({\n realms,\n inviteRealms,\n}: PersistedSyncState) {\n const data = JSON.stringify(\n [\n ...realms.map((realmId) => ({ realmId, accepted: true })),\n ...inviteRealms.map((realmId) => ({ realmId, accepted: false })),\n ].sort((a, b) =>\n a.realmId < b.realmId ? -1 : a.realmId > b.realmId ? 1 : 0\n )\n );\n const byteArray = new TextEncoder().encode(data);\n const digestBytes = await crypto.subtle.digest('SHA-1', byteArray);\n const base64 = b64encode(digestBytes);\n return base64;\n}\n","import { IndexableType, Table } from \"dexie\";\nimport { DexieCloudDB } from \"../db/DexieCloudDB\";\nimport { EntityCommon } from \"../db/entities/EntityCommon\";\n\nexport function getSyncableTables(db: DexieCloudDB): Table<EntityCommon>[] {\n return Object.entries(db.cloud.schema || {})\n .filter(([, { markedForSync }]) => markedForSync)\n .map(([tbl]) => db.tables.filter(({name}) => name === tbl)[0])\n .filter(cloudTableSchema => cloudTableSchema);\n}\n","\n\nexport function getMutationTable(tableName: string) {\n return `$${tableName}_mutations`;\n}\n","\n\nexport function getTableFromMutationTable(mutationTable: string) {\n const tableName = /^\\$(.*)_mutations$/.exec(mutationTable)?.[1];\n if (!tableName) throw new Error(`Given mutationTable ${mutationTable} is not correct`);\n return tableName;\n}\n","const concat = [].concat;\nexport function flatten<T>(a: (T | T[])[]): T[] {\n return concat.apply([], a);\n}\n","import { Table } from 'dexie';\nimport { getTableFromMutationTable } from '../helpers/getTableFromMutationTable';\nimport { DexieCloudDB } from '../db/DexieCloudDB';\nimport { DBOperation, DBOperationsSet } from 'dexie-cloud-common';\nimport { flatten } from '../helpers/flatten';\n\nexport async function listClientChanges(\n mutationTables: Table[],\n db: DexieCloudDB,\n { since = {} as { [table: string]: number }, limit = Infinity } = {}\n): Promise<DBOperationsSet> {\n const allMutsOnTables = await Promise.all(\n mutationTables.map(async (mutationTable) => {\n const tableName = getTableFromMutationTable(mutationTable.name);\n const lastRevision = since[tableName];\n\n let query = lastRevision\n ? mutationTable.where('rev').above(lastRevision)\n : mutationTable;\n\n if (limit < Infinity) query = query.limit(limit);\n\n const muts: DBOperation[] = await query.toArray();\n\n //const objTable = db.table(tableName);\n /*for (const mut of muts) {\n if (mut.type === \"insert\" || mut.type === \"upsert\") {\n mut.values = await objTable.bulkGet(mut.keys);\n }\n }*/\n return muts.map((mut) => ({\n table: tableName,\n mut,\n }));\n })\n );\n\n // Sort by time to get a true order of the operations (between tables)\n const sorted = flatten(allMutsOnTables).sort((a, b) => a.mut.txid === b.mut.txid\n ? a.mut.opNo! - b.mut.opNo! // Within same transaction, sort by opNo\n : a.mut.ts! - b.mut.ts! // Different transactions - sort by timestamp when mutation resolved\n );\n const result: DBOperationsSet = [];\n let currentEntry: {\n table: string;\n muts: DBOperation[];\n } | null = null;\n let currentTxid: string | null = null;\n for (const { table, mut } of sorted) {\n if (\n currentEntry &&\n currentEntry.table === table &&\n currentTxid === mut.txid\n ) {\n currentEntry.muts.push(mut);\n } else {\n currentEntry = {\n table,\n muts: [mut],\n };\n currentTxid = mut.txid!;\n result.push(currentEntry);\n }\n }\n\n // Filter out those tables that doesn't have any mutations:\n return result;\n}\n","export function randomString(bytes: number) {\n const buf = new Uint8Array(bytes);\n if (typeof crypto !== 'undefined') {\n crypto.getRandomValues(buf);\n } else {\n for (let i = 0; i < bytes; i++) buf[i] = Math.floor(Math.random() * 256);\n }\n if (typeof Buffer !== 'undefined' && Buffer.from) {\n return Buffer.from(buf).toString('base64');\n } else if (typeof btoa !== 'undefined') {\n return btoa(String.fromCharCode.apply(null, buf));\n } else {\n throw new Error('No btoa or Buffer available');\n }\n}\n","export function assert(b) {\n if (!b)\n throw new Error('Assertion Failed');\n}\nconst _hasOwn = {}.hasOwnProperty;\nexport function hasOwn(obj, prop) {\n return _hasOwn.call(obj, prop);\n}\nexport function setByKeyPath(obj, keyPath, value) {\n if (!obj || keyPath === undefined)\n return;\n if ('isFrozen' in Object && Object.isFrozen(obj))\n return;\n if (typeof keyPath !== 'string' && 'length' in keyPath) {\n assert(typeof value !== 'string' && 'length' in value);\n for (var i = 0, l = keyPath.length; i < l; ++i) {\n setByKeyPath(obj, keyPath[i], value[i]);\n }\n }\n else {\n var period = keyPath.indexOf('.');\n if (period !== -1) {\n var currentKeyPath = keyPath.substr(0, period);\n var remainingKeyPath = keyPath.substr(period + 1);\n if (remainingKeyPath === '')\n if (value === undefined) {\n if (Array.isArray(obj)) {\n if (!isNaN(parseInt(currentKeyPath)))\n obj.splice(parseInt(currentKeyPath), 1);\n }\n else\n delete obj[currentKeyPath];\n // @ts-ignore: even if currentKeyPath would be numeric string and obj would be array - it works.\n }\n else\n obj[currentKeyPath] = value;\n else {\n //@ts-ignore: even if currentKeyPath would be numeric string and obj would be array - it works.\n var innerObj = obj[currentKeyPath];\n //@ts-ignore: even if currentKeyPath would be numeric string and obj would be array - it works.\n if (!innerObj || !hasOwn(obj, currentKeyPath))\n innerObj = (obj[currentKeyPath] = {});\n setByKeyPath(innerObj, remainingKeyPath, value);\n }\n }\n else {\n if (value === undefined) {\n if (Array.isArray(obj) && !isNaN(parseInt(keyPath)))\n // @ts-ignore: even if currentKeyPath would be numeric string and obj would be array - it works.\n obj.splice(keyPath, 1);\n //@ts-ignore: even if currentKeyPath would be numeric string and obj would be array - it works.\n else\n delete obj[keyPath];\n //@ts-ignore: even if currentKeyPath would be numeric string and obj would be array - it works.\n }\n else\n obj[keyPath] = value;\n }\n }\n}\nexport const randomString = typeof self !== 'undefined' && typeof crypto !== 'undefined' ? (bytes, randomFill = crypto.getRandomValues.bind(crypto)) => {\n // Web\n const buf = new Uint8Array(bytes);\n randomFill(buf);\n return self.btoa(String.fromCharCode.apply(null, buf));\n} : typeof Buffer !== 'undefined' ? (bytes, randomFill = simpleRandomFill) => {\n // Node\n const buf = Buffer.alloc(bytes);\n randomFill(buf);\n return buf.toString(\"base64\");\n} : () => { throw new Error(\"No implementation of randomString was found\"); };\nfunction simpleRandomFill(buf) {\n for (let i = 0; i < buf.length; ++i) {\n buf[i] = Math.floor(Math.random() * 256);\n }\n}\n","const validIDTypes = {\n Uint8Array,\n};\n/** Verifies that given primary key is valid.\n * The reason we narrow validity for valid keys are twofold:\n * 1: Make sure to only support types that can be used as an object index in DBKeyMutationSet.\n * For example, ArrayBuffer cannot be used (gives \"object ArrayBuffer\") but Uint8Array can be\n * used (gives comma-delimited list of included bytes).\n * 2: Avoid using plain numbers and Dates as keys when they are synced, as they are not globally unique.\n * 3: Since we store the key as a VARCHAR server side in current version, try not promote types that stringifies to become very long server side.\n *\n * @param id\n * @returns\n */\nexport function isValidSyncableID(id) {\n if (typeof id === \"string\")\n return true;\n //if (validIDTypes[toStringTag(id)]) return true;\n //if (Array.isArray(id)) return id.every((part) => isValidSyncableID(part));\n if (Array.isArray(id) && id.some(key => isValidSyncableID(key)) && id.every(isValidSyncableIDPart))\n return true;\n return false;\n}\n/** Verifies that given key part is valid.\n * 1: Make sure that arrays of this types are stringified correclty and works with DBKeyMutationSet.\n * For example, ArrayBuffer cannot be used (gives \"object ArrayBuffer\") but Uint8Array can be\n * used (gives comma-delimited list of included bytes).\n * 2: Since we store the key as a VARCHAR server side in current version, try not promote types that stringifies to become very long server side.\n*/\nfunction isValidSyncableIDPart(part) {\n return typeof part === \"string\" || typeof part === \"number\" || Array.isArray(part) && part.every(isValidSyncableIDPart);\n}\nexport function isValidAtID(id, idPrefix) {\n return !idPrefix || (typeof id === \"string\" && id.startsWith(idPrefix));\n}\n","import { setByKeyPath } from \"../utils.js\";\nexport function applyOperation(target, table, op) {\n const tbl = target[table] || (target[table] = {});\n const keys = op.keys.map(key => typeof key === 'string' ? key : JSON.stringify(key));\n switch (op.type) {\n case \"insert\":\n // TODO: Don't treat insert and upsert the same?\n case \"upsert\":\n keys.forEach((key, idx) => {\n tbl[key] = {\n type: \"ups\",\n val: op.values[idx],\n };\n });\n break;\n case \"update\":\n case \"modify\": {\n keys.forEach((key, idx) => {\n const changeSpec = op.type === \"update\"\n ? op.changeSpecs[idx]\n : op.changeSpec;\n const entry = tbl[key];\n if (!entry) {\n tbl[key] = {\n type: \"upd\",\n mod: changeSpec,\n };\n }\n else {\n switch (entry.type) {\n case \"ups\":\n // Adjust the existing upsert with additional updates\n for (const [propPath, value] of Object.entries(changeSpec)) {\n setByKeyPath(entry.val, propPath, value);\n }\n break;\n case \"del\":\n // No action.\n break;\n case \"upd\":\n // Adjust existing update with additional updates\n Object.assign(entry.mod, changeSpec); // May work for deep props as well - new keys is added later, right? Does the prop order persist along TSON and all? But it will not be 100% when combined with some server code (seach for \"address.city\": \"Stockholm\" comment)\n break;\n }\n }\n });\n break;\n }\n case \"delete\":\n keys.forEach((key) => {\n tbl[key] = {\n type: \"del\",\n };\n });\n break;\n }\n return target;\n}\n","import { applyOperation } from \"./applyOperation.js\";\nexport function applyOperations(target, ops) {\n for (const { table, muts } of ops) {\n for (const mut of muts) {\n applyOperation(target, table, mut);\n }\n }\n}\n","import { setByKeyPath } from '../utils.js';\nexport function subtractChanges(target, // Server change set\nchangesToSubtract // additional mutations on client during syncWithServer()\n) {\n var _a, _b, _c;\n for (const [table, mutationSet] of Object.entries(changesToSubtract)) {\n for (const [key, mut] of Object.entries(mutationSet)) {\n switch (mut.type) {\n case 'ups':\n {\n const targetMut = (_a = target[table]) === null || _a === void 0 ? void 0 : _a[key];\n if (targetMut) {\n switch (targetMut.type) {\n case 'ups':\n delete target[table][key];\n break;\n case 'del':\n // Leave delete operation.\n // (Don't resurrect objects unintenionally (using tx(get, put) pattern locally))\n break;\n case 'upd':\n delete target[table][key];\n break;\n }\n }\n }\n break;\n case 'del':\n (_b = target[table]) === null || _b === void 0 ? true : delete _b[key];\n break;\n case 'upd': {\n const targetMut = (_c = target[table]) === null || _c === void 0 ? void 0 : _c[key];\n if (targetMut) {\n switch (targetMut.type) {\n case 'ups':\n // Adjust the server upsert with locally updated values.\n for (const [propPath, value] of Object.entries(mut.mod)) {\n setByKeyPath(targetMut.val, propPath, value);\n }\n break;\n case 'del':\n // Leave delete.\n break;\n case 'upd':\n // Remove the local update props from the server update mutation.\n for (const propPath of Object.keys(mut.mod)) {\n delete targetMut.mod[propPath];\n }\n break;\n }\n }\n break;\n }\n }\n }\n }\n}\n","import { randomString } from \"../utils.js\";\n/** Convert a DBKeyMutationSet (which is an internal format capable of looking up changes per ID)\n * ...into a DBOperationsSet (which is more optimal for performing DB operations into DB (bulkAdd() etc))\n *\n * @param inSet\n * @returns DBOperationsSet representing inSet\n */\nexport function toDBOperationSet(inSet, txid = \"\") {\n // Fictive transaction:\n if (!txid)\n txid = randomString(16);\n // Convert data into a temporary map to collect mutations of same table and type\n const map = {};\n for (const [table, ops] of Object.entries(inSet)) {\n for (const [key, op] of Object.entries(ops)) {\n const mapEntry = map[table] || (map[table] = {});\n const ops = mapEntry[op.type] || (mapEntry[op.type] = []);\n ops.push(Object.assign({ key }, op)); // DBKeyMutation doesn't contain key, so we need to bring it in.\n }\n }\n // Start computing the resulting format:\n const result = [];\n for (const [table, ops] of Object.entries(map)) {\n const resultEntry = {\n table,\n muts: [],\n };\n for (const [optype, muts] of Object.entries(ops)) {\n switch (optype) {\n case \"ups\": {\n const op = {\n type: \"upsert\",\n keys: muts.map(mut => mut.key),\n values: muts.map(mut => mut.val),\n txid\n };\n resultEntry.muts.push(op);\n break;\n }\n case \"upd\": {\n const op = {\n type: \"update\",\n keys: muts.map(mut => mut.key),\n changeSpecs: muts.map(mut => mut.mod),\n txid\n };\n resultEntry.muts.push(op);\n break;\n }\n case \"del\": {\n const op = {\n type: \"delete\",\n keys: muts.map(mut => mut.key),\n txid,\n };\n resultEntry.muts.push(op);\n break;\n }\n }\n }\n result.push(resultEntry);\n }\n return result;\n}\n","export function getDbNameFromDbUrl(dbUrl) {\n const url = new URL(dbUrl);\n return url.pathname === \"/\"\n ? url.hostname.split('.')[0]\n : url.pathname.split('/')[1];\n}\n","import { UserLogin } from '../db/entities/UserLogin';\nimport { randomString } from '../helpers/randomString';\nimport { EntityCommon } from '../db/entities/EntityCommon';\nimport { Table } from 'dexie';\nimport {\n DBOperationsSet,\n DBUpsertOperation,\n DexieCloudSchema,\n isValidAtID,\n isValidSyncableID,\n} from 'dexie-cloud-common';\n\nexport async function listSyncifiedChanges(\n tablesToSyncify: Table<EntityCommon>[],\n currentUser: UserLogin,\n schema: DexieCloudSchema,\n alreadySyncedRealms?: string[]\n): Promise<DBOperationsSet> {\n const txid = `upload-${randomString(8)}`;\n if (currentUser.isLoggedIn) {\n if (tablesToSyncify.length > 0) {\n const ignoredRealms = new Set(alreadySyncedRealms || []);\n const upserts = await Promise.all(\n tablesToSyncify.map(async (table) => {\n const { extractKey } = table.core.schema.primaryKey;\n if (!extractKey) return { table: table.name, muts: [] }; // Outbound tables are not synced.\n\n const dexieCloudTableSchema = schema[table.name];\n const query = dexieCloudTableSchema?.generatedGlobalId\n ? table.filter((item) => {\n const id = extractKey(item);\n return (\n !ignoredRealms.has(item.realmId || '') &&\n //(id[0] !== '#' || !!item.$ts) && // Private obj need no sync if not changed\n isValidAtID(extractKey(item), dexieCloudTableSchema?.idPrefix)\n );\n })\n : table.filter((item) => {\n const id = extractKey(item);\n\n return (\n !ignoredRealms.has(item.realmId || '') &&\n //(id[0] !== '#' || !!item.$ts) && // Private obj need no sync if not changed\n isValidSyncableID(id)\n );\n });\n const unsyncedObjects = await query.toArray();\n if (unsyncedObjects.length > 0) {\n const mut: DBUpsertOperation = {\n type: 'upsert',\n values: unsyncedObjects,\n keys: unsyncedObjects.map(extractKey),\n userId: currentUser.userId,\n txid,\n };\n return {\n table: table.name,\n muts: [mut],\n };\n } else {\n return {\n table: table.name,\n muts: [],\n };\n }\n })\n );\n return upserts.filter((op) => op.muts.length > 0);\n }\n }\n return [];\n}\n","import { getSyncableTables } from \"../helpers/getSyncableTables\";\nimport { DexieCloudDB } from \"../db/DexieCloudDB\";\nimport { PersistedSyncState } from \"../db/entities/PersistedSyncState\";\n\nexport function getTablesToSyncify(db: DexieCloudDB, syncState: PersistedSyncState | undefined) {\n const syncedTables = syncState?.syncedTables || [];\n const syncableTables = getSyncableTables(db);\n const tablesToSyncify = syncableTables.filter(\n (tbl) => !syncedTables.includes(tbl.name)\n );\n return tablesToSyncify;\n}\n","import { TokenErrorResponse } from 'dexie-cloud-common';\n\nexport class TokenErrorResponseError extends Error {\n title: string;\n messageCode:\n | 'INVALID_OTP'\n | 'INVALID_EMAIL'\n | 'LICENSE_LIMIT_REACHED'\n | 'GENERIC_ERROR';\n message: string;\n messageParams?: { [param: string]: string };\n\n constructor({\n title,\n message,\n messageCode,\n messageParams,\n }: TokenErrorResponse) {\n super(message);\n this.name = 'TokenErrorResponseError';\n this.title = title;\n this.messageCode = messageCode;\n this.messageParams = messageParams;\n }\n}\n","import Dexie from 'dexie';\nimport { BehaviorSubject } from 'rxjs';\nimport { take } from 'rxjs/operators';\nimport { DexieCloudDB } from '../db/DexieCloudDB';\nimport { DXCAlert } from '../types/DXCAlert';\nimport { DXCInputField } from '../types/DXCInputField';\nimport { DXCUserInteraction } from '../types/DXCUserInteraction';\n\nexport interface DXCUserInteractionRequest {\n type: DXCUserInteraction['type'];\n title: string;\n alerts: DXCAlert[];\n submitLabel?: string;\n cancelLabel?: string | null;\n fields: { [name: string]: DXCInputField };\n}\n\nexport function interactWithUser<T extends DXCUserInteractionRequest>(\n userInteraction: BehaviorSubject<DXCUserInteraction | undefined>,\n req: T\n): Promise<{\n [P in keyof T['fields']]: string;\n}> {\n let done = false;\n return new Promise<{\n [P in keyof T['fields']]: string;\n }>((resolve, reject) => {\n const interactionProps = {\n submitLabel: 'Submit',\n cancelLabel: 'Cancel',\n ...req,\n onSubmit: (res: {\n [P in keyof T['fields']]: string;\n }) => {\n userInteraction.next(undefined);\n done = true;\n resolve(res);\n },\n onCancel: () => {\n userInteraction.next(undefined);\n done = true;\n reject(new Dexie.AbortError('User cancelled'));\n },\n } as DXCUserInteraction;\n userInteraction.next(interactionProps);\n // Start subscribing for external updates to db.cloud.userInteraction, and if so, cancel this request.\n /*const subscription = userInteraction.subscribe((currentInteractionProps) => {\n if (currentInteractionProps !== interactionProps) {\n if (subscription) subscription.unsubscribe();\n if (!done) {\n reject(new Dexie.AbortError(\"User cancelled\"));\n }\n }\n });*/\n });\n}\n\nexport function alertUser(\n userInteraction: BehaviorSubject<DXCUserInteraction | undefined>,\n title: string,\n ...alerts: DXCAlert[]\n) {\n return interactWithUser(userInteraction, {\n type: 'message-alert',\n title,\n alerts,\n fields: {},\n submitLabel: 'OK',\n cancelLabel: null,\n });\n}\n\nexport async function promptForEmail(\n userInteraction: BehaviorSubject<DXCUserInteraction | undefined>,\n title: string,\n emailHint?: string\n) {\n let email = emailHint || '';\n while (!email || !/^[\\w-\\.]+@([\\w-]+\\.)+[\\w-]{2,10}$/.test(email)) {\n email = (\n await interactWithUser(userInteraction, {\n type: 'email',\n title,\n alerts: email\n ? [\n {\n type: 'error',\n messageCode: 'INVALID_EMAIL',\n message: 'Please enter a valid email address',\n messageParams: {},\n },\n ]\n : [],\n fields: {\n email: {\n type: 'email',\n placeholder: 'you@somedomain.com',\n },\n },\n })\n ).email;\n }\n return email;\n}\n\nexport async function promptForOTP(\n userInteraction: BehaviorSubject<DXCUserInteraction | undefined>,\n email: string,\n alert?: DXCAlert\n) {\n const alerts: DXCAlert[] = [\n {\n type: 'info',\n messageCode: 'OTP_SENT',\n message: `A One-Time password has been sent to {email}`,\n messageParams: { email },\n },\n ];\n if (alert) {\n alerts.push(alert);\n }\n const { otp } = await interactWithUser(userInteraction, {\n type: 'otp',\n title: 'Enter OTP',\n alerts,\n fields: {\n otp: {\n type: 'otp',\n label: 'OTP',\n placeholder: 'Paste OTP here',\n },\n },\n });\n return otp;\n}\n\nexport async function confirmLogout(\n userInteraction: BehaviorSubject<DXCUserInteraction | undefined>,\n currentUserId: string,\n numUnsyncedChanges: number\n) {\n const alerts: DXCAlert[] = [\n {\n type: 'warning',\n messageCode: 'LOGOUT_CONFIRMATION',\n message: `{numUnsyncedChanges} unsynced changes will get lost!\n Logout anyway?`,\n messageParams: {\n currentUserId,\n numUnsyncedChanges: numUnsyncedChanges.toString(),\n }\n },\n ];\n return await interactWithUser(userInteraction, {\n type: 'logout-confirmation',\n title: 'Confirm Logout',\n alerts,\n fields: {},\n submitLabel: 'Confirm logout',\n cancelLabel: 'Cancel'\n })\n .then(() => true)\n .catch(() => false);\n}\n","import Dexie from 'dexie';\nimport type {\n RefreshTokenRequest,\n TokenErrorResponse,\n TokenFinalResponse,\n} from 'dexie-cloud-common';\nimport { b64encode } from 'dreambase-library/dist/common/base64';\nimport { BehaviorSubject } from 'rxjs';\nimport { DexieCloudDB } from '../db/DexieCloudDB';\nimport { UserLogin } from '../db/entities/UserLogin';\nimport { DXCAlert } from '../types/DXCAlert';\nimport {\n DXCMessageAlert,\n DXCUserInteraction,\n} from '../types/DXCUserInteraction';\nimport { TokenErrorResponseError } from './TokenErrorResponseError';\nimport { alertUser, interactWithUser } from './interactWithUser';\nimport { InvalidLicenseError } from '../InvalidLicenseError';\n\nexport type FetchTokenCallback = (tokenParams: {\n public_key: string;\n hints?: { userId?: string; email?: string; grant_type?: string };\n}) => Promise<TokenFinalResponse | TokenErrorResponse>;\n\nexport async function loadAccessToken(\n db: DexieCloudDB\n): Promise<UserLogin | null> {\n const currentUser = await db.getCurrentUser();\n const {\n accessToken,\n accessTokenExpiration,\n refreshToken,\n refreshTokenExpiration,\n claims,\n } = currentUser;\n if (!accessToken) return null;\n const expTime = accessTokenExpiration?.getTime() ?? Infinity;\n if (expTime > Date.now() && (currentUser.license?.status || 'ok') === 'ok') {\n return currentUser;\n }\n if (!refreshToken) {\n throw new Error(`Refresh token missing`);\n }\n const refreshExpTime = refreshTokenExpiration?.getTime() ?? Infinity;\n if (refreshExpTime <= Date.now()) {\n throw new Error(`Refresh token has expired`);\n }\n const refreshedLogin = await refreshAccessToken(\n db.cloud.options!.databaseUrl,\n currentUser\n );\n await db.table('$logins').update(claims.sub, {\n accessToken: refreshedLogin.accessToken,\n accessTokenExpiration: refreshedLogin.accessTokenExpiration,\n claims: refreshedLogin.claims,\n license: refreshedLogin.license,\n });\n return refreshedLogin;\n}\n\nexport async function authenticate(\n url: string,\n context: UserLogin,\n fetchToken: FetchTokenCallback,\n userInteraction: BehaviorSubject<DXCUserInteraction | undefined>,\n hints?: { userId?: string; email?: string; grant_type?: string }\n): Promise<UserLogin> {\n if (\n context.accessToken &&\n context.accessTokenExpiration!.getTime() > Date.now()\n ) {\n return context;\n } else if (\n context.refreshToken &&\n (!context.refreshTokenExpiration ||\n context.refreshTokenExpiration.getTime() > Date.now())\n ) {\n return await refreshAccessToken(url, context);\n } else {\n return await userAuthenticate(context, fetchToken, userInteraction, hints);\n }\n}\n\nexport async function refreshAccessToken(\n url: string,\n login: UserLogin\n): Promise<UserLogin> {\n if (!login.refreshToken)\n throw new Error(`Cannot refresh token - refresh token is missing.`);\n if (!login.nonExportablePrivateKey)\n throw new Error(\n `login.nonExportablePrivateKey is missing - cannot sign refresh token without a private key.`\n );\n\n const time_stamp = Date.now();\n const signing_algorithm = 'RSASSA-PKCS1-v1_5';\n const textEncoder = new TextEncoder();\n const data = textEncoder.encode(login.refreshToken + time_stamp);\n const binarySignature = await crypto.subtle.sign(\n signing_algorithm,\n login.nonExportablePrivateKey,\n data\n );\n const signature = b64encode(binarySignature);\n\n const tokenRequest: RefreshTokenRequest = {\n grant_type: 'refresh_token',\n refresh_token: login.refreshToken,\n scopes: ['ACCESS_DB'],\n signature,\n signing_algorithm,\n time_stamp,\n };\n const res = await fetch(`${url}/token`, {\n body: JSON.stringify(tokenRequest),\n method: 'post',\n headers: { 'Content-Type': 'application/json' },\n mode: 'cors',\n });\n if (res.status !== 200)\n throw new Error(`RefreshToken: Status ${res.status} from ${url}/token`);\n const response: TokenFinalResponse | TokenErrorResponse = await res.json();\n if (response.type === 'error') {\n throw new TokenErrorResponseError(response);\n }\n login.accessToken = response.accessToken;\n login.accessTokenExpiration = response.accessTokenExpiration\n ? new Date(response.accessTokenExpiration)\n : undefined;\n login.claims = response.claims;\n login.license = {\n type: response.userType,\n status: response.claims.license || 'ok',\n }\n if (response.evalDaysLeft != null) {\n login.license.evalDaysLeft = response.evalDaysLeft;\n }\n if (response.userValidUntil != null) {\n login.license.validUntil = new Date(response.userValidUntil);\n }\n return login;\n}\n\nasync function userAuthenticate(\n context: UserLogin,\n fetchToken: FetchTokenCallback,\n userInteraction: BehaviorSubject<DXCUserInteraction | undefined>,\n hints?: { userId?: string; email?: string; grant_type?: string }\n) {\n if (!crypto.subtle) {\n if (typeof location !== 'undefined' && location.protocol === 'http:') {\n throw 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)`);\n } else {\n throw new Error(`This browser does not support WebCrypto.`);\n }\n }\n const { privateKey, publicKey } = await crypto.subtle.generateKey(\n {\n name: 'RSASSA-PKCS1-v1_5',\n modulusLength: 2048,\n publicExponent: new Uint8Array([0x01, 0x00, 0x01]),\n hash: { name: 'SHA-256' },\n },\n false, // Non-exportable...\n ['sign', 'verify']\n );\n if (!privateKey || !publicKey)\n throw new Error(`Could not generate RSA keypair`); // Typings suggest these can be undefined...\n context.nonExportablePrivateKey = privateKey; //...but storable!\n const publicKeySPKI = await crypto.subtle.exportKey('spki', publicKey);\n const publicKeyPEM = spkiToPEM(publicKeySPKI);\n context.publicKey = publicKey;\n\n try {\n const response2 = await fetchToken({\n public_key: publicKeyPEM,\n hints,\n });\n\n if (response2.type === 'error') {\n throw new TokenErrorResponseError(response2);\n }\n\n if (response2.type !== 'tokens')\n throw new Error(\n `Unexpected response type from token endpoint: ${(response2 as any).type}`\n );\n\n /*const licenseStatus = response2.claims.license || 'ok';\n if (licenseStatus !== 'ok') {\n throw new InvalidLicenseError(licenseStatus);\n }*/\n\n context.accessToken = response2.accessToken;\n context.accessTokenExpiration = new Date(response2.accessTokenExpiration);\n context.refreshToken = response2.refreshToken;\n if (response2.refreshTokenExpiration) {\n context.refreshTokenExpiration = new Date(\n response2.refreshTokenExpiration\n );\n }\n context.userId = response2.claims.sub;\n context.email = response2.claims.email;\n context.name = response2.claims.name;\n context.claims = response2.claims;\n context.license = {\n type: response2.userType,\n status: response2.claims.license || 'ok',\n }\n if (response2.evalDaysLeft != null) {\n context.license.evalDaysLeft = response2.evalDaysLeft;\n }\n if (response2.userValidUntil != null) {\n context.license.validUntil = new Date(response2.userValidUntil);\n }\n\n if (response2.alerts && response2.alerts.length > 0) {\n await interactWithUser(userInteraction, {\n type: 'message-alert',\n title: 'Authentication Alert',\n fields: {},\n alerts: response2.alerts as DXCAlert[],\n });\n }\n return context;\n } catch (error) {\n if (error instanceof TokenErrorResponseError) {\n await alertUser(userInteraction, error.title, {\n type: 'error',\n messageCode: error.messageCode,\n message: error.message,\n messageParams: {},\n });\n throw error;\n }\n let message = `We're having a problem authenticating right now.`;\n console.error (`Error authenticating`, error);\n if (error instanceof TypeError) {\n const isOffline = typeof navigator !== undefined && !navigator.onLine;\n if (isOffline) {\n message = `You seem to be offline. Please connect to the internet and try again.`;\n } else if (Dexie.debug || (typeof location !== 'undefined' && (location.hostname === 'localhost' || location.hostname === '127.0.0.1'))) {\n // The audience is most likely the developer. Suggest to whitelist the localhost origin:\n message = `Could not connect to server. Please verify that your origin '${location.origin}' is whitelisted using \\`npx dexie-cloud whitelist\\``;\n } else {\n message = `Could not connect to server. Please verify the connection.`;\n }\n await alertUser(userInteraction, 'Authentication Failed', {\n type: 'error',\n messageCode: 'GENERIC_ERROR',\n message,\n messageParams: {},\n }).catch(() => {}); \n }\n\n throw error;\n }\n}\n\nfunction spkiToPEM(keydata: ArrayBuffer) {\n const keydataB64 = b64encode(keydata);\n const keydataB64Pem = formatAsPem(keydataB64);\n return keydataB64Pem;\n}\n\nfunction formatAsPem(str: string) {\n let finalString = '-----BEGIN PUBLIC KEY-----\\n';\n\n while (str.length > 0) {\n finalString += str.substring(0, 64) + '\\n';\n str = str.substring(64);\n }\n\n finalString = finalString + '-----END PUBLIC KEY-----';\n\n return finalString;\n}\n","const { toString: toStr } = {};\nfunction getToStringTag(val) {\n return toStr.call(val).slice(8, -1);\n}\nexport function escapeDollarProps(value) {\n const keys = Object.keys(value);\n let dollarKeys = null;\n for (let i = 0, l = keys.length; i < l; ++i) {\n if (keys[i][0] === \"$\") {\n dollarKeys = dollarKeys || [];\n dollarKeys.push(keys[i]);\n }\n }\n if (!dollarKeys)\n return value;\n const clone = { ...value };\n for (const k of dollarKeys) {\n delete clone[k];\n }\n for (const k of dollarKeys) {\n clone[\"$\" + k] = value[k];\n }\n return clone;\n}\nconst ObjectDef = {\n replace: escapeDollarProps,\n};\nexport function TypesonSimplified(...typeDefsInputs) {\n const typeDefs = typeDefsInputs.reduce((p, c) => ({ ...p, ...c }), typeDefsInputs.reduce((p, c) => ({ ...c, ...p }), {}));\n const protoMap = new WeakMap();\n return {\n stringify(value, alternateChannel, space) {\n const json = JSON.stringify(value, function (key) {\n const realVal = this[key];\n const typeDef = getTypeDef(realVal);\n return typeDef\n ? typeDef.replace(realVal, alternateChannel, typeDefs)\n : realVal;\n }, space);\n return json;\n },\n parse(tson, alternateChannel) {\n const stack = [];\n return JSON.parse(tson, function (key, value) {\n //\n // Parent Part\n //\n const type = value === null || value === void 0 ? void 0 : value.$t;\n if (type) {\n const typeDef = typeDefs[type];\n value = typeDef\n ? typeDef.revive(value, alternateChannel, typeDefs)\n : value;\n }\n let top = stack[stack.length - 1];\n if (top && top[0] === value) {\n // Do what the kid told us to\n // Unescape dollar props\n value = { ...value };\n // Delete keys that children wanted us to delete\n for (const k of top[1])\n delete value[k];\n // Set keys that children wanted us to set\n for (const [k, v] of Object.entries(top[2])) {\n value[k] = v;\n }\n stack.pop();\n }\n //\n // Child part\n //\n if (value === undefined || (key[0] === \"$\" && key !== \"$t\")) {\n top = stack[stack.length - 1];\n let deletes;\n let mods;\n if (top && top[0] === this) {\n deletes = top[1];\n mods = top[2];\n }\n else {\n stack.push([this, (deletes = []), (mods = {})]);\n }\n if (key[0] === \"$\" && key !== \"$t\") {\n // Unescape props (also preserves undefined if this is a combo)\n deletes.push(key);\n mods[key.substr(1)] = value;\n }\n else {\n // Preserve undefined\n mods[key] = undefined;\n }\n }\n return value;\n });\n },\n };\n function getTypeDef(realVal) {\n const type = typeof realVal;\n switch (typeof realVal) {\n case \"object\":\n case \"function\": {\n // \"object\", \"function\", null\n if (realVal === null)\n return null;\n const proto = Object.getPrototypeOf(realVal);\n if (!proto)\n return ObjectDef;\n let typeDef = protoMap.get(proto);\n if (typeDef !== undefined)\n return typeDef; // Null counts to! So the caching of Array.prototype also counts.\n const toStringTag = getToStringTag(realVal);\n const entry = Object.entries(typeDefs).find(([typeName, typeDef]) => { var _a, _b; return (_b = (_a = typeDef === null || typeDef === void 0 ? void 0 : typeDef.test) === null || _a === void 0 ? void 0 : _a.call(typeDef, realVal, toStringTag)) !== null && _b !== void 0 ? _b : typeName === toStringTag; });\n typeDef = entry === null || entry === void 0 ? void 0 : entry[1];\n if (!typeDef) {\n typeDef = Array.isArray(realVal)\n ? null\n : typeof realVal === \"function\"\n ? typeDefs.function || null\n : ObjectDef;\n }\n protoMap.set(proto, typeDef);\n return typeDef;\n }\n default:\n return typeDefs[type];\n }\n }\n}\n","export const BisonBinaryTypes = {\n Blob: {\n test: (blob, toStringTag) => toStringTag === \"Blob\",\n replace: (blob, altChannel) => {\n const i = altChannel.length;\n altChannel.push(blob);\n return {\n $t: \"Blob\",\n mimeType: blob.type,\n i,\n };\n },\n revive: ({ i, mimeType }, altChannel) => new Blob([altChannel[i]], { type: mimeType }),\n },\n};\n","export default {\n number: {\n replace: (num) => {\n switch (true) {\n case isNaN(num):\n return { $t: \"number\", v: \"NaN\" };\n case num === Infinity:\n return { $t: \"number\", v: \"Infinity\" };\n case num === -Infinity:\n return { $t: \"number\", v: \"-Infinity\" };\n default:\n return num;\n }\n },\n revive: ({ v }) => Number(v),\n },\n};\n","const bigIntDef = {\n bigint: {\n replace: (realVal) => {\n return { $t: \"bigint\", v: \"\" + realVal };\n },\n revive: (obj) => BigInt(obj.v),\n },\n};\nexport default bigIntDef;\n","export default {\n Date: {\n replace: (date) => ({\n $t: \"Date\",\n v: isNaN(date.getTime()) ? \"NaN\" : date.toISOString(),\n }),\n revive: ({ v }) => new Date(v === \"NaN\" ? NaN : Date.parse(v)),\n },\n};\n","export default {\n Set: {\n replace: (set) => ({\n $t: \"Set\",\n v: Array.from(set.entries()),\n }),\n revive: ({ v }) => new Set(v),\n },\n};\n","export default {\n Map: {\n replace: (map) => ({\n $t: \"Map\",\n v: Array.from(map.entries()),\n }),\n revive: ({ v }) => new Map(v),\n },\n};\n","export const _global = typeof globalThis !== \"undefined\" // All modern environments (node, bun, deno, browser, workers, webview etc)\n ? globalThis\n : typeof self !== \"undefined\" // Older browsers, workers, webview, window etc\n ? self\n : typeof global !== \"undefined\" // Older versions of node\n ? global\n : undefined; // Unsupported environment. No idea to return 'this' since we are in a module or a function scope anyway.\n","import { _global } from \"../../common/_global.js\";\nexport default [\n \"Int8Array\",\n \"Uint8Array\",\n \"Uint8ClampedArray\",\n \"Int16Array\",\n \"Uint16Array\",\n \"Int32Array\",\n \"Uint32Array\",\n \"Float32Array\",\n \"Float64Array\",\n \"DataView\",\n \"BigInt64Array\",\n \"BigUint64Array\",\n].reduce((specs, typeName) => ({\n ...specs,\n [typeName]: {\n // Replace passes the the typed array into $t, buffer so that\n // the ArrayBuffer typedef takes care of further handling of the buffer:\n // {$t:\"Uint8Array\",buffer:{$t:\"ArrayBuffer\",idx:0}}\n // CHANGED ABOVE! Now shortcutting that for more sparse format of the typed arrays\n // to contain the b64 property directly.\n replace: (a, _, typeDefs) => {\n const result = {\n $t: typeName,\n v: typeDefs.ArrayBuffer.replace(a.byteOffset === 0 && a.byteLength === a.buffer.byteLength\n ? a.buffer\n : a.buffer.slice(a.byteOffset, a.byteOffset + a.byteLength), _, typeDefs).v,\n };\n return result;\n },\n revive: ({ v }, _, typeDefs) => {\n const TypedArray = _global[typeName];\n return (TypedArray &&\n new TypedArray(typeDefs.ArrayBuffer.revive({ v }, _, typeDefs)));\n },\n },\n}), {});\n","import { b64decode, b64encode } from \"./base64.js\";\nexport function b64LexEncode(b) {\n return b64ToLex(b64encode(b));\n}\nexport function b64LexDecode(b64Lex) {\n return b64decode(lexToB64(b64Lex));\n}\nexport function b64ToLex(base64) {\n var encoded = \"\";\n for (var i = 0, length = base64.length; i < length; i++) {\n encoded += ENCODE_TABLE[base64[i]];\n }\n return encoded;\n}\nexport function lexToB64(base64lex) {\n // only accept string input\n if (typeof base64lex !== \"string\") {\n throw new Error(\"invalid decoder input: \" + base64lex);\n }\n var base64 = \"\";\n for (var i = 0, length = base64lex.length; i < length; i++) {\n base64 += DECODE_TABLE[base64lex[i]];\n }\n return base64;\n}\nconst DECODE_TABLE = {\n \"-\": \"=\",\n \"0\": \"A\",\n \"1\": \"B\",\n \"2\": \"C\",\n \"3\": \"D\",\n \"4\": \"E\",\n \"5\": \"F\",\n \"6\": \"G\",\n \"7\": \"H\",\n \"8\": \"I\",\n \"9\": \"J\",\n A: \"K\",\n B: \"L\",\n C: \"M\",\n D: \"N\",\n E: \"O\",\n F: \"P\",\n G: \"Q\",\n H: \"R\",\n I: \"S\",\n J: \"T\",\n K: \"U\",\n L: \"V\",\n M: \"W\",\n N: \"X\",\n O: \"Y\",\n P: \"Z\",\n Q: \"a\",\n R: \"b\",\n S: \"c\",\n T: \"d\",\n U: \"e\",\n V: \"f\",\n W: \"g\",\n X: \"h\",\n Y: \"i\",\n Z: \"j\",\n _: \"k\",\n a: \"l\",\n b: \"m\",\n c: \"n\",\n d: \"o\",\n e: \"p\",\n f: \"q\",\n g: \"r\",\n h: \"s\",\n i: \"t\",\n j: \"u\",\n k: \"v\",\n l: \"w\",\n m: \"x\",\n n: \"y\",\n o: \"z\",\n p: \"0\",\n q: \"1\",\n r: \"2\",\n s: \"3\",\n t: \"4\",\n u: \"5\",\n v: \"6\",\n w: \"7\",\n x: \"8\",\n y: \"9\",\n z: \"+\",\n \"|\": \"/\",\n};\nconst ENCODE_TABLE = {};\nfor (const c of Object.keys(DECODE_TABLE)) {\n ENCODE_TABLE[DECODE_TABLE[c]] = c;\n}\n","import { b64LexDecode, b64LexEncode } from \"../../common/b64lex.js\";\nexport default {\n ArrayBuffer: {\n replace: (ab) => ({\n $t: \"ArrayBuffer\",\n v: b64LexEncode(ab),\n }),\n revive: ({ v }) => {\n const ba = b64LexDecode(v);\n return ba.buffer.byteLength === ba.byteLength\n ? ba.buffer\n : ba.buffer.slice(ba.byteOffset, ba.byteOffset + ba.byteLength);\n },\n },\n};\n","export class FakeBlob {\n constructor(buf, type) {\n this.buf = buf;\n this.type = type;\n }\n}\n","export function readBlobSync(b) {\n const req = new XMLHttpRequest();\n req.overrideMimeType(\"text/plain; charset=x-user-defined\");\n req.open(\"GET\", URL.createObjectURL(b), false); // Sync\n req.send();\n if (req.status !== 200 && req.status !== 0) {\n throw new Error(\"Bad Blob access: \" + req.status);\n }\n return req.responseText;\n}\n","export function string2ArrayBuffer(str) {\n const array = new Uint8Array(str.length);\n for (let i = 0; i < str.length; ++i) {\n array[i] = str.charCodeAt(i); // & 0xff;\n }\n return array.buffer;\n}\nexport function arrayBuffer2String(buf) {\n // TODO: Optimize\n return new Uint8Array(buf).reduce((s, byte) => s + String.fromCharCode(byte), \"\");\n}\n","import { b64decode, b64encode } from \"../../common/base64.js\";\nimport { FakeBlob } from \"../FakeBlob.js\";\nimport { readBlobSync } from \"../readBlobSync.js\";\nimport { string2ArrayBuffer } from \"../string2arraybuffer.js\";\nexport default {\n Blob: {\n test: (blob, toStringTag) => toStringTag === \"Blob\" || blob instanceof FakeBlob,\n replace: (blob) => ({\n $t: \"Blob\",\n v: blob instanceof FakeBlob\n ? b64encode(blob.buf)\n : b64encode(string2ArrayBuffer(readBlobSync(blob))),\n type: blob.type,\n }),\n revive: ({ type, v }) => {\n const ab = b64decode(v);\n return typeof Blob !== undefined\n ? new Blob([ab])\n : new FakeBlob(ab.buffer, type);\n },\n },\n};\n","import numberDef from \"../types/number.js\";\nimport bigintDef from \"../types/bigint.js\";\nimport DateDef from \"../types/Date.js\";\nimport SetDef from \"../types/Set.js\";\nimport MapDef from \"../types/Map.js\";\nimport TypedArraysDefs from \"../types/TypedArray.js\";\nimport ArrayBufferDef from \"../types/ArrayBuffer.js\";\nimport BlobDef from \"../types/Blob.js\";\nconst builtin = {\n ...numberDef,\n ...bigintDef,\n ...DateDef,\n ...SetDef,\n ...MapDef,\n ...TypedArraysDefs,\n ...ArrayBufferDef,\n ...BlobDef, // Should be moved to another preset for DOM types (or universal? since it supports node as well with FakeBlob)\n};\nexport default builtin;\n","import { BisonBinaryTypes } from \"./BisonBinaryTypes.js\";\nimport builtin from \"./presets/builtin.js\";\nimport { TypesonSimplified } from \"./TypesonSimplified.js\";\nexport function Bison(...typeDefsInputs) {\n const tson = TypesonSimplified(builtin, BisonBinaryTypes, ...typeDefsInputs);\n return {\n toBinary(value) {\n const [blob, json] = this.stringify(value);\n const lenBuf = new ArrayBuffer(4);\n new DataView(lenBuf).setUint32(0, blob.size);\n return new Blob([lenBuf, blob, json]);\n },\n stringify(value) {\n const binaries = [];\n const json = tson.stringify(value, binaries);\n const blob = new Blob(binaries.map((b) => {\n const lenBuf = new ArrayBuffer(4);\n new DataView(lenBuf).setUint32(0, \"byteLength\" in b ? b.byteLength : b.size);\n return new Blob([lenBuf, b]);\n }));\n return [blob, json];\n },\n async parse(json, binData) {\n let pos = 0;\n const arrayBuffers = [];\n const buf = await readBlobBinary(binData);\n const view = new DataView(buf);\n while (pos < buf.byteLength) {\n const len = view.getUint32(pos);\n pos += 4;\n const ab = buf.slice(pos, pos + len);\n pos += len;\n arrayBuffers.push(ab);\n }\n return tson.parse(json, arrayBuffers);\n },\n async fromBinary(blob) {\n const len = new DataView(await readBlobBinary(blob.slice(0, 4))).getUint32(0);\n const binData = blob.slice(4, len + 4);\n const json = await readBlob(blob.slice(len + 4));\n return await this.parse(json, binData);\n },\n };\n}\nexport function readBlob(blob) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onabort = (ev) => reject(new Error(\"file read aborted\"));\n reader.onerror = (ev) => reject(ev.target.error);\n reader.onload = (ev) => resolve(ev.target.result);\n reader.readAsText(blob);\n });\n}\nexport function readBlobBinary(blob) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onabort = (ev) => reject(new Error(\"file read aborted\"));\n reader.onerror = (ev) => reject(ev.target.error);\n reader.onload = (ev) => resolve(ev.target.result);\n reader.readAsArrayBuffer(blob);\n });\n}\n","/** The undefined type is not part of builtin but can be manually added.\n * The reason for supporting undefined is if the following object should be revived correctly:\n *\n * {foo: undefined}\n *\n * Without including this typedef, the revived object would just be {}.\n * If including this typedef, the revived object would be {foo: undefined}.\n */\nexport default {\n undefined: {\n replace: () => ({\n $t: \"undefined\"\n }),\n revive: () => undefined,\n },\n};\n","import { TypesonSimplified } from 'dreambase-library/dist/typeson-simplified/TypesonSimplified';\nimport { Bison } from \"dreambase-library/dist/typeson-simplified/Bison\";\nimport undefinedDef from 'dreambase-library/dist/typeson-simplified/types/undefined.js';\nimport tsonBuiltinDefs from 'dreambase-library/dist/typeson-simplified/presets/builtin.js';\nimport { TypeDefSet } from 'dreambase-library/dist/typeson-simplified/TypeDefSet';\n\n// Since server revisions are stored in bigints, we need to handle clients without\n// bigint support to not fail when serverRevision is passed over to client.\n// We need to not fail when reviving it and we need to somehow store the information.\n// Since the revived version will later on be put into indexedDB we have another\n// issue: When reading it back from indexedDB we will get a poco object that we\n// cannot replace correctly when sending it to server. So we will also need\n// to do an explicit workaround in the protocol where a bigint is supported.\n// The workaround should be there regardless if browser supports BigInt or not, because\n// the serverRev might have been stored in IDB before the browser was upgraded to support bigint.\n//\n// if (typeof serverRev.rev !== \"bigint\")\n// if (hasBigIntSupport)\n// serverRev.rev = bigIntDef.bigint.revive(server.rev)\n// else\n// serverRev.rev = new FakeBigInt(server.rev)\nexport const hasBigIntSupport = typeof BigInt === 'function' && typeof BigInt(0) === 'bigint';\n\nfunction getValueOfBigInt(x: bigint | FakeBigInt | string) {\n if (typeof x === 'bigint') {\n return x;\n }\n if (hasBigIntSupport) {\n return typeof x === 'string' ? BigInt(x) : BigInt(x.v);\n } else {\n return typeof x === 'string' ? Number(x) : Number(x.v);\n }\n}\n\nexport function compareBigInts(a: bigint | FakeBigInt | string, b:bigint | FakeBigInt | string) {\n const valA = getValueOfBigInt(a);\n const valB = getValueOfBigInt(b);\n return valA < valB ? -1 : valA > valB ? 1 : 0;\n}\nexport class FakeBigInt {\n v: string;\n toString() {\n return this.v;\n }\n constructor(value: string) {\n this.v = value;\n }\n}\n\nconst defs: TypeDefSet = {\n ...undefinedDef,\n ...(hasBigIntSupport\n ? {}\n : {\n bigint: {\n test: (val: any) => val instanceof FakeBigInt,\n replace: (fakeBigInt: any) => {\n return {\n $t: 'bigint',\n ...fakeBigInt\n };\n },\n revive: ({\n v,\n }: {\n $t: 'bigint';\n v: string;\n }) => new FakeBigInt(v) as any as bigint\n }\n })\n};\n\nexport const TSON = TypesonSimplified(tsonBuiltinDefs, defs);\n\nexport const BISON = Bison(defs);\n","export class HttpError extends Error {\n httpStatus: number;\n constructor(\n res: Response,\n message?: string)\n {\n super(message || `${res.status} ${res.statusText}`);\n this.httpStatus = res.status;\n }\n\n get name() {\n return \"HttpError\";\n }\n}\n","import Dexie, { DBCoreSchema } from 'dexie';\nimport {\n DBInsertOperation,\n DBOperation,\n DBOperationsSet,\n DBOpPrimaryKey,\n} from 'dexie-cloud-common';\nimport { UserLogin } from '../db/entities/UserLogin';\n\nexport function encodeIdsForServer(\n schema: DBCoreSchema,\n currentUser: UserLogin,\n changes: DBOperationsSet\n): DBOperationsSet {\n const rv: DBOperationsSet = [];\n for (let change of changes) {\n const { table, muts } = change;\n const tableSchema = schema.tables.find((t) => t.name === table);\n if (!tableSchema)\n throw new Error(\n `Internal error: table ${table} not found in DBCore schema`\n );\n const { primaryKey } = tableSchema;\n let changeClone = change;\n muts.forEach((mut, mutIndex) => {\n const rewriteValues =\n !primaryKey.outbound &&\n (mut.type === 'upsert' || mut.type === 'insert');\n mut.keys.forEach((key, keyIndex) => {\n if (Array.isArray(key)) {\n // Server only support string keys. Dexie Cloud client support strings or array of strings.\n if (changeClone === change)\n changeClone = cloneChange(change, rewriteValues);\n const mutClone = changeClone.muts[mutIndex];\n const rewrittenKey = JSON.stringify(key);\n mutClone.keys[keyIndex] = rewrittenKey;\n /* Bug (#1777)\n We should not rewrite values. It will fail because the key is array and the value is string.\n Only the keys should be rewritten and it's already done on the server.\n We should take another round of revieweing how key transformations are being done between\n client and server and let the server do the key transformations entirely instead now that\n we have the primary key schema on the server making it possible to do so.\n if (rewriteValues) {\n Dexie.setByKeyPath(\n (mutClone as DBInsertOperation).values[keyIndex],\n primaryKey.keyPath!,\n rewrittenKey\n );\n }*/\n } else if (key[0] === '#') {\n // Private ID - translate!\n if (changeClone === change)\n changeClone = cloneChange(change, rewriteValues);\n const mutClone = changeClone.muts[mutIndex];\n if (!currentUser.isLoggedIn)\n throw new Error(\n `Internal error: Cannot sync private IDs before authenticated`\n );\n const rewrittenKey = `${key}:${currentUser.userId}`;\n mutClone.keys[keyIndex] = rewrittenKey;\n if (rewriteValues) {\n Dexie.setByKeyPath(\n (mutClone as DBInsertOperation).values[keyIndex],\n primaryKey.keyPath!,\n rewrittenKey\n );\n }\n }\n });\n });\n rv.push(changeClone);\n }\n return rv;\n}\n\nfunction cloneChange(change: DBOperationsSet[number], rewriteValues: boolean) {\n // clone on demand:\n return {\n ...change,\n muts: rewriteValues\n ? change.muts.map((m) => {\n return (m.type === 'insert' || m.type === 'upsert') && m.values\n ? {\n ...m,\n keys: m.keys.slice(),\n values: m.values.slice(),\n }\n : {\n ...m,\n keys: m.keys.slice(),\n };\n })\n : change.muts.map((m) => ({ ...m, keys: m.keys.slice() })),\n };\n}\n","import { DexieCloudDB } from '../db/DexieCloudDB';\n\n// If we get Ratelimit-Limit and Ratelimit-Remaining where Ratelimit-Remaining is below\n// (Ratelimit-Limit / 2), we should delay the next sync by (Ratelimit-Reset / Ratelimit-Remaining)\n// seconds (given that there is a Ratelimit-Reset header).\n\nlet syncRatelimitDelays = new WeakMap<DexieCloudDB, Date>();\n\nexport async function checkSyncRateLimitDelay(db: DexieCloudDB) {\n const delatMilliseconds = (syncRatelimitDelays.get(db)?.getTime() ?? 0) - Date.now();\n if (delatMilliseconds > 0) {\n console.debug(`Stalling sync request ${delatMilliseconds} ms to spare ratelimits`);\n await new Promise(resolve => setTimeout(resolve, delatMilliseconds));\n }\n}\n\nexport function updateSyncRateLimitDelays(db: DexieCloudDB, res: Response) {\n const limit = res.headers.get('Ratelimit-Limit');\n const remaining = res.headers.get('Ratelimit-Remaining');\n const reset = res.headers.get('Ratelimit-Reset');\n if (limit && remaining && reset) {\n const limitNum = Number(limit);\n const remainingNum = Math.max(0, Number(remaining));\n const willResetInSeconds = Number(reset);\n if (remainingNum < limitNum / 2) {\n const delay = Math.ceil(willResetInSeconds / (remainingNum + 1));\n syncRatelimitDelays.set(db, new Date(Date.now() + delay * 1000));\n console.debug(`Sync ratelimit delay set to ${delay} seconds`);\n } else {\n syncRatelimitDelays.delete(db);\n console.debug(`Sync ratelimit delay cleared`);\n }\n }\n}\n","import { DexieCloudDB } from '../db/DexieCloudDB';\nimport { PersistedSyncState } from '../db/entities/PersistedSyncState';\nimport { loadAccessToken } from '../authentication/authenticate';\nimport { BISON, TSON } from '../TSON';\nimport { getSyncableTables } from '../helpers/getSyncableTables';\nimport { BaseRevisionMapEntry } from '../db/entities/BaseRevisionMapEntry';\nimport { HttpError } from '../errors/HttpError';\nimport {\n DBOperationsSet,\n DexieCloudSchema,\n SyncRequest,\n SyncResponse,\n} from 'dexie-cloud-common';\nimport { encodeIdsForServer } from './encodeIdsForServer';\nimport { UserLogin } from '../db/entities/UserLogin';\nimport { updateSyncRateLimitDelays } from './ratelimit';\n//import {BisonWebStreamReader} from \"dreambase-library/dist/typeson-simplified/BisonWebStreamReader\";\n\nexport async function syncWithServer(\n changes: DBOperationsSet,\n syncState: PersistedSyncState | undefined,\n baseRevs: BaseRevisionMapEntry[],\n db: DexieCloudDB,\n databaseUrl: string,\n schema: DexieCloudSchema | null,\n clientIdentity: string,\n currentUser: UserLogin\n): Promise<SyncResponse> {\n //\n // Push changes to server using fetch\n //\n const headers: HeadersInit = {\n Accept: 'application/json, application/x-bison, application/x-bison-stream',\n 'Content-Type': 'application/tson',\n };\n const updatedUser = await loadAccessToken(db);\n /*\n if (updatedUser?.license && changes.length > 0) {\n if (updatedUser.license.status === 'expired') {\n throw new Error(`License has expired`);\n }\n if (updatedUser.license.status === 'deactivated') {\n throw new Error(`License deactivated`);\n }\n }\n */\n const accessToken = updatedUser?.accessToken;\n if (accessToken) {\n headers.Authorization = `Bearer ${accessToken}`;\n }\n\n const syncRequest: SyncRequest = {\n v: 2,\n dbID: syncState?.remoteDbId,\n clientIdentity,\n schema: schema || {},\n lastPull: syncState\n ? {\n serverRevision: syncState.serverRevision!,\n realms: syncState.realms,\n inviteRealms: syncState.inviteRealms,\n }\n : undefined,\n baseRevs,\n changes: encodeIdsForServer(db.dx.core.schema, currentUser, changes),\n };\n console.debug('Sync request', syncRequest);\n db.syncStateChangedEvent.next({\n phase: 'pushing',\n });\n const res = await fetch(`${databaseUrl}/sync`, {\n method: 'post',\n headers,\n credentials: 'include', // For Arr Affinity cookie only, for better Rate-Limit counting only.\n body: TSON.stringify(syncRequest),\n });\n //const contentLength = Number(res.headers.get('content-length'));\n db.syncStateChangedEvent.next({\n phase: 'pulling',\n });\n\n updateSyncRateLimitDelays(db, res);\n\n if (!res.ok) {\n throw new HttpError(res);\n }\n\n switch (res.headers.get('content-type')) {\n case 'application/x-bison':\n return BISON.fromBinary(await res.blob());\n case 'application/x-bison-stream': //return BisonWebStreamReader(BISON, res);\n default:\n case 'application/json': {\n const text = await res.text();\n const syncRes = TSON.parse(text);\n return syncRes;\n }\n }\n}\n","import { Table } from \"dexie\";\nimport { EntityCommon } from \"../db/entities/EntityCommon\";\nimport { UserLogin } from \"../db/entities/UserLogin\";\nimport { Member } from \"../db/entities/Member\";\nimport { UNAUTHORIZED_USER } from \"../authentication/UNAUTHORIZED_USER\";\nimport { Realm } from \"../db/entities/Realm\";\n\nexport async function modifyLocalObjectsWithNewUserId(\n syncifiedTables: Table<EntityCommon>[],\n currentUser: UserLogin,\n alreadySyncedRealms?: string[]) {\n const ignoredRealms = new Set(alreadySyncedRealms || []);\n for (const table of syncifiedTables) {\n if (table.name === \"members\") {\n // members\n await table.toCollection().modify((member: Member) => {\n if (!ignoredRealms.has(member.realmId) && (!member.userId || member.userId === UNAUTHORIZED_USER.userId)) {\n member.userId = currentUser.userId;\n }\n });\n } else if (table.name === \"roles\") {\n // roles\n // No changes needed.\n } else if (table.name === \"realms\") {\n // realms\n await table.toCollection().modify((realm: Realm) => {\n if (!ignoredRealms.has(realm.realmId) && (realm.owner === undefined || realm.owner === UNAUTHORIZED_USER.userId)) {\n realm.owner = currentUser.userId;\n }\n });\n } else {\n // application entities\n await table.toCollection().modify((obj) => {\n if (!obj.realmId || !ignoredRealms.has(obj.realmId)) {\n if (!obj.owner || obj.owner === UNAUTHORIZED_USER.userId)\n obj.owner = currentUser.userId;\n if (!obj.realmId || obj.realmId === UNAUTHORIZED_USER.userId) {\n obj.realmId = currentUser.userId;\n }\n }\n });\n }\n }\n}\n","import Dexie from \"dexie\";\n\nexport interface CancelToken {\n cancelled: boolean;\n}\n\nexport function throwIfCancelled(cancelToken?: CancelToken) {\n if (cancelToken?.cancelled) throw new Dexie.AbortError(`Operation was cancelled`);\n}\n","/* Need this because navigator.onLine seems to say \"false\" when it is actually online.\n This function relies initially on navigator.onLine but then uses online and offline events\n which seem to be more reliable.\n*/\nexport let isOnline = false;\nif (typeof self !== 'undefined' && typeof navigator !== 'undefined') {\n isOnline = navigator.onLine;\n self.addEventListener('online', ()=>isOnline = true);\n self.addEventListener('offline', ()=>isOnline = false);\n}\n","import { DexieCloudDB } from '../db/DexieCloudDB';\nimport { DexieCloudSchema, SyncResponse } from 'dexie-cloud-common';\n\nexport async function updateBaseRevs(db: DexieCloudDB, schema: DexieCloudSchema, latestRevisions: { [table: string]: number; }, serverRev: any) {\n await db.$baseRevs.bulkPut(\n Object.keys(schema)\n .filter((table) => schema[table].markedForSync)\n .map((tableName) => {\n const lastClientRevOnPreviousServerRev = latestRevisions[tableName] || 0;\n return {\n tableName,\n clientRev: lastClientRevOnPreviousServerRev + 1,\n serverRev,\n };\n })\n );\n}\n","import { DBOperationsSet } from 'dexie-cloud-common';\n\nexport function getLatestRevisionsPerTable(\n clientChangeSet: DBOperationsSet,\n lastRevisions = {} as { [table: string]: number; }) {\n for (const { table, muts } of clientChangeSet) {\n const lastRev = muts.length > 0 ? muts[muts.length - 1].rev : null;\n lastRevisions[table] = lastRev || lastRevisions[table] || 0;\n }\n return lastRevisions;\n}\n","import Dexie, { Table, cmp } from 'dexie';\n\nexport async function bulkUpdate(\n table: Table,\n keys: any[],\n changeSpecs: { [keyPath: string]: any }[]\n) {\n const objs = await table.bulkGet(keys);\n const resultKeys: any[] = [];\n const resultObjs: any[] = [];\n keys.forEach((key, idx) => {\n const obj = objs[idx];\n if (obj) {\n for (const [keyPath, value] of Object.entries(changeSpecs[idx])) {\n if (keyPath === table.schema.primKey.keyPath) {\n if (cmp(value, key) !== 0) {\n throw new Error(`Cannot change primary key`);\n }\n } else {\n Dexie.setByKeyPath(obj, keyPath, value);\n }\n }\n resultKeys.push(key);\n resultObjs.push(obj);\n }\n });\n await (table.schema.primKey.keyPath == null\n ? table.bulkPut(resultObjs, resultKeys)\n : table.bulkPut(resultObjs));\n}\n","import { DexieCloudDB } from '../db/DexieCloudDB';\nimport Dexie from 'dexie';\nimport { bulkUpdate } from '../helpers/bulkUpdate';\nimport { DBOperationsSet } from 'dexie-cloud-common';\n\nexport async function applyServerChanges(\n changes: DBOperationsSet<string>,\n db: DexieCloudDB\n) {\n console.debug('Applying server changes', changes, Dexie.currentTransaction);\n for (const { table: tableName, muts } of changes) {\n const table = db.table(tableName);\n if (!table) continue; // If server sends changes on a table we don't have, ignore it.\n const { primaryKey } = table.core.schema;\n const keyDecoder = (key: string) => {\n switch (key[0]) {\n case '[':\n // Decode JSON array\n if (key.endsWith(']'))\n try {\n // On server, array keys are transformed to JSON string representation\n return JSON.parse(key);\n } catch {}\n return key;\n case '#':\n // Decode private ID (do the opposite from what's done in encodeIdsForServer())\n if (key.endsWith(':' + db.cloud.currentUserId)) {\n return key.substr(\n 0,\n key.length - db.cloud.currentUserId.length - 1\n );\n }\n return key;\n default:\n return key;\n }\n };\n for (const mut of muts) {\n const keys = mut.keys.map(keyDecoder);\n switch (mut.type) {\n case 'insert':\n if (primaryKey.outbound) {\n await table.bulkAdd(mut.values, keys);\n } else {\n keys.forEach((key, i) => {\n // Make sure inbound keys are consistent\n Dexie.setByKeyPath(mut.values[i], primaryKey.keyPath!, key);\n });\n await table.bulkAdd(mut.values);\n }\n break;\n case 'upsert':\n if (primaryKey.outbound) {\n await table.bulkPut(mut.values, keys);\n } else {\n keys.forEach((key, i) => {\n // Make sure inbound keys are consistent\n Dexie.setByKeyPath(mut.values[i], primaryKey.keyPath!, key);\n });\n await table.bulkPut(mut.values);\n }\n break;\n case 'modify':\n if (keys.length === 1) {\n await table.update(keys[0], mut.changeSpec);\n } else {\n await table.where(':id').anyOf(keys).modify(mut.changeSpec);\n }\n break;\n case 'update':\n await bulkUpdate(table, keys, mut.changeSpecs);\n break;\n case 'delete':\n await table.bulkDelete(keys);\n break;\n }\n }\n }\n}\n","import { getMutationTable } from '../helpers/getMutationTable';\nimport { getSyncableTables } from '../helpers/getSyncableTables';\nimport { DexieCloudDB } from '../db/DexieCloudDB';\nimport { listSyncifiedChanges } from './listSyncifiedChanges';\nimport { getTablesToSyncify } from './getTablesToSyncify';\nimport { listClientChanges } from './listClientChanges';\nimport { syncWithServer } from './syncWithServer';\nimport { modifyLocalObjectsWithNewUserId } from './modifyLocalObjectsWithNewUserId';\nimport { throwIfCancelled } from '../helpers/CancelToken';\nimport { DexieCloudOptions } from '../DexieCloudOptions';\nimport { BaseRevisionMapEntry } from '../db/entities/BaseRevisionMapEntry';\nimport { getTableFromMutationTable } from '../helpers/getTableFromMutationTable';\nimport {\n applyOperations,\n DBKeyMutationSet,\n DBOperationsSet,\n DexieCloudSchema,\n randomString,\n subtractChanges,\n SyncResponse,\n toDBOperationSet,\n} from 'dexie-cloud-common';\nimport { PersistedSyncState } from '../db/entities/PersistedSyncState';\nimport { isOnline } from './isOnline';\nimport { updateBaseRevs } from './updateBaseRevs';\nimport { getLatestRevisionsPerTable } from './getLatestRevisionsPerTable';\nimport { applyServerChanges } from './applyServerChanges';\nimport { checkSyncRateLimitDelay } from './ratelimit';\n\nexport const CURRENT_SYNC_WORKER = 'currentSyncWorker';\n\nexport interface SyncOptions {\n isInitialSync?: boolean;\n cancelToken?: { cancelled: boolean };\n justCheckIfNeeded?: boolean;\n retryImmediatelyOnFetchError?: boolean;\n purpose?: 'pull' | 'push';\n}\n\nexport function sync(\n db: DexieCloudDB,\n options: DexieCloudOptions,\n schema: DexieCloudSchema,\n syncOptions?: SyncOptions\n): Promise<boolean> {\n return _sync\n .apply(this, arguments)\n .then((result) => {\n if (!syncOptions?.justCheckIfNeeded) { // && syncOptions?.purpose !== 'push') {\n db.syncStateChangedEvent.next({\n phase: 'in-sync',\n });\n }\n return result;\n })\n .catch(async (error: any) => {\n if (syncOptions?.justCheckIfNeeded) return Promise.reject(error); // Just rethrow.\n console.debug('Error from _sync', {\n isOnline,\n syncOptions,\n error,\n });\n if (\n isOnline &&\n syncOptions?.retryImmediatelyOnFetchError &&\n error?.name === 'TypeError' &&\n /fetch/.test(error?.message)\n ) {\n db.syncStateChangedEvent.next({\n phase: 'error',\n error,\n });\n // Retry again in 500 ms but if it fails again, don't retry.\n await new Promise((resolve) => setTimeout(resolve, 500));\n return await sync(db, options, schema, {\n ...syncOptions,\n retryImmediatelyOnFetchError: false,\n });\n }\n // Make sure that no matter whether sync() explodes or not,\n // always update the timestamp. Also store the error.\n await db.$syncState.update('syncState', {\n timestamp: new Date(),\n error: '' + error,\n });\n db.syncStateChangedEvent.next({\n phase: isOnline ? 'error' : 'offline',\n error: new Error('' + error?.message || error),\n });\n return Promise.reject(error);\n });\n}\n\nasync function _sync(\n db: DexieCloudDB,\n options: DexieCloudOptions,\n schema: DexieCloudSchema,\n { isInitialSync, cancelToken, justCheckIfNeeded, purpose }: SyncOptions = {\n isInitialSync: false,\n }\n): Promise<boolean> {\n if (!justCheckIfNeeded) {\n console.debug('SYNC STARTED', { isInitialSync, purpose });\n }\n if (!db.cloud.options?.databaseUrl)\n throw new Error(\n `Internal error: sync must not be called when no databaseUrl is configured`\n );\n const { databaseUrl } = options;\n const currentUser = await db.getCurrentUser(); // Keep same value across entire sync flow:\n const tablesToSync = currentUser.isLoggedIn ? getSyncableTables(db) : [];\n\n const mutationTables = tablesToSync.map((tbl) =>\n db.table(getMutationTable(tbl.name))\n );\n\n // If this is not the initial sync,\n // go through tables that were previously not synced but should now be according to\n // logged in state and the sync table whitelist in db.cloud.options.\n //\n // Prepare for syncification by modifying locally unauthorized objects:\n //\n const persistedSyncState = await db.getPersistedSyncState();\n const readyForSyncification = !isInitialSync && currentUser.isLoggedIn;\n const tablesToSyncify = readyForSyncification\n ? getTablesToSyncify(db, persistedSyncState)\n : [];\n throwIfCancelled(cancelToken);\n const doSyncify = tablesToSyncify.length > 0;\n\n if (doSyncify) {\n if (justCheckIfNeeded) return true;\n //console.debug('sync doSyncify is true');\n await db.transaction('rw', tablesToSyncify, async (tx) => {\n // @ts-ignore\n tx.idbtrans.disableChangeTracking = true;\n // @ts-ignore\n tx.idbtrans.disableAccessControl = true; // TODO: Take care of this flag in access control middleware!\n await modifyLocalObjectsWithNewUserId(\n tablesToSyncify,\n currentUser,\n persistedSyncState?.realms\n );\n });\n throwIfCancelled(cancelToken);\n }\n //\n // List changes to sync\n //\n const [clientChangeSet, syncState, baseRevs] = await db.transaction(\n 'r',\n db.tables,\n async () => {\n const syncState = await db.getPersistedSyncState();\n const baseRevs = await db.$baseRevs.toArray();\n let clientChanges = await listClientChanges(mutationTables, db);\n throwIfCancelled(cancelToken);\n if (doSyncify) {\n const alreadySyncedRealms = [\n ...(persistedSyncState?.realms || []),\n ...(persistedSyncState?.inviteRealms || []),\n ];\n const syncificationInserts = await listSyncifiedChanges(\n tablesToSyncify,\n currentUser,\n schema!,\n alreadySyncedRealms\n );\n throwIfCancelled(cancelToken);\n clientChanges = clientChanges.concat(syncificationInserts);\n return [clientChanges, syncState, baseRevs];\n }\n return [clientChanges, syncState, baseRevs];\n }\n );\n\n const pushSyncIsNeeded = clientChangeSet.some((set) =>\n set.muts.some((mut) => mut.keys.length > 0)\n );\n if (justCheckIfNeeded) {\n console.debug('Sync is needed:', pushSyncIsNeeded);\n return pushSyncIsNeeded;\n }\n if (purpose === 'push' && !pushSyncIsNeeded) {\n // The purpose of this request was to push changes\n return false;\n }\n\n const latestRevisions = getLatestRevisionsPerTable(\n clientChangeSet,\n syncState?.latestRevisions\n );\n\n const clientIdentity = syncState?.clientIdentity || randomString(16);\n\n //\n // Push changes to server\n //\n throwIfCancelled(cancelToken);\n const res = await syncWithServer(\n clientChangeSet,\n syncState,\n baseRevs,\n db,\n databaseUrl,\n schema,\n clientIdentity,\n currentUser\n );\n console.debug('Sync response', res);\n\n //\n // Apply changes locally and clear old change entries:\n //\n const done = await db.transaction('rw', db.tables, async (tx) => {\n // @ts-ignore\n tx.idbtrans.disableChangeTracking = true;\n // @ts-ignore\n tx.idbtrans.disableAccessControl = true; // TODO: Take care of this flag in access control middleware!\n\n // Update db.cloud.schema from server response.\n // Local schema MAY include a subset of tables, so do not force all tables into local schema.\n for (const tableName of Object.keys(schema)) {\n if (res.schema[tableName]) {\n // Write directly into configured schema. This code can only be executed alone.\n schema[tableName] = res.schema[tableName];\n }\n }\n await db.$syncState.put(schema, 'schema');\n\n // List mutations that happened during our exchange with the server:\n const addedClientChanges = await listClientChanges(mutationTables, db, {\n since: latestRevisions,\n });\n\n //\n // Delete changes now as server has return success\n // (but keep changes that haven't reached server yet)\n //\n for (const mutTable of mutationTables) {\n const tableName = getTableFromMutationTable(mutTable.name);\n if (\n !addedClientChanges.some(\n (ch) => ch.table === tableName && ch.muts.length > 0\n )\n ) {\n // No added mutations for this table during the time we sent changes\n // to the server.\n // It is therefore safe to clear all changes (which is faster than\n // deleting a range)\n await Promise.all([\n mutTable.clear(),\n db.$baseRevs.where({ tableName }).delete(),\n ]);\n } else if (latestRevisions[tableName]) {\n const latestRev = latestRevisions[tableName] || 0;\n await Promise.all([\n mutTable.where('rev').belowOrEqual(latestRev).delete(),\n db.$baseRevs\n .where(':id')\n .between(\n [tableName, -Infinity],\n [tableName, latestRev + 1],\n true,\n true\n )\n .reverse()\n .offset(1) // Keep one entry (the one mapping muts that came during fetch --> previous server revision)\n .delete(),\n ]);\n } else {\n // In this case, the mutation table only contains added items after sending empty changeset to server.\n // We should not clear out anything now.\n }\n }\n\n // Update latestRevisions object according to additional changes:\n getLatestRevisionsPerTable(addedClientChanges, latestRevisions);\n\n // Update/add new entries into baseRevs map.\n // * On tables without mutations since last serverRevision,\n // this will update existing entry.\n // * On tables where mutations have been recorded since last\n // serverRevision, this will create a new entry.\n // The purpose of this operation is to mark a start revision (per table)\n // so that all client-mutations that come after this, will be mapped to current\n // server revision.\n await updateBaseRevs(db, schema, latestRevisions, res.serverRevision);\n\n const syncState = await db.getPersistedSyncState();\n\n //\n // Delete objects from removed realms\n //\n await deleteObjectsFromRemovedRealms(db, res, syncState);\n\n //\n // Update syncState\n //\n const newSyncState: PersistedSyncState = syncState || {\n syncedTables: [],\n latestRevisions: {},\n realms: [],\n inviteRealms: [],\n clientIdentity,\n };\n if (readyForSyncification) {\n newSyncState.syncedTables = tablesToSync\n .map((tbl) => tbl.name)\n .concat(tablesToSyncify.map((tbl) => tbl.name));\n }\n newSyncState.latestRevisions = latestRevisions;\n newSyncState.remoteDbId = res.dbId;\n newSyncState.initiallySynced = true;\n newSyncState.realms = res.realms;\n newSyncState.inviteRealms = res.inviteRealms;\n newSyncState.serverRevision = res.serverRevision;\n newSyncState.timestamp = new Date();\n delete newSyncState.error;\n\n const filteredChanges = filterServerChangesThroughAddedClientChanges(\n res.changes,\n addedClientChanges\n );\n\n //\n // apply server changes\n //\n await applyServerChanges(filteredChanges, db);\n\n //\n // Update syncState\n //\n db.$syncState.put(newSyncState, 'syncState');\n\n return addedClientChanges.length === 0;\n });\n if (!done) {\n console.debug('MORE SYNC NEEDED. Go for it again!');\n await checkSyncRateLimitDelay(db);\n return await _sync(db, options, schema, { isInitialSync, cancelToken });\n }\n console.debug('SYNC DONE', { isInitialSync });\n db.syncCompleteEvent.next();\n return false; // Not needed anymore\n}\n\nasync function deleteObjectsFromRemovedRealms(\n db: DexieCloudDB,\n res: SyncResponse,\n prevState: PersistedSyncState | undefined\n) {\n const deletedRealms = new Set<string>();\n const rejectedRealms = new Set<string>();\n const previousRealmSet = prevState ? prevState.realms : [];\n const previousInviteRealmSet = prevState ? prevState.inviteRealms : [];\n const updatedRealmSet = new Set(res.realms);\n const updatedTotalRealmSet = new Set(res.realms.concat(res.inviteRealms));\n for (const realmId of previousRealmSet) {\n if (!updatedRealmSet.has(realmId)) {\n rejectedRealms.add(realmId);\n if (!updatedTotalRealmSet.has(realmId)) {\n deletedRealms.add(realmId);\n }\n }\n }\n for (const realmId of previousInviteRealmSet.concat(previousRealmSet)) {\n if (!updatedTotalRealmSet.has(realmId)) {\n deletedRealms.add(realmId);\n }\n }\n if (deletedRealms.size > 0 || rejectedRealms.size > 0) {\n const tables = getSyncableTables(db);\n for (const table of tables) {\n let realmsToDelete = ['realms', 'members', 'roles'].includes(table.name)\n ? deletedRealms // These tables should spare rejected ones.\n : rejectedRealms; // All other tables shoudl delete rejected+deleted ones\n if (realmsToDelete.size === 0) continue;\n if (\n table.schema.indexes.some(\n (idx) =>\n idx.keyPath === 'realmId' ||\n (Array.isArray(idx.keyPath) && idx.keyPath[0] === 'realmId')\n )\n ) {\n // There's an index to use:\n //console.debug(`REMOVAL: deleting all ${table.name} where realmId anyOf `, JSON.stringify([...realmsToDelete]));\n await table\n .where('realmId')\n .anyOf([...realmsToDelete])\n .delete();\n } else {\n // No index to use:\n //console.debug(`REMOVAL: deleting all ${table.name} where realmId is any of `, JSON.stringify([...realmsToDelete]), realmsToDelete.size);\n await table\n .filter((obj) => !!obj?.realmId && realmsToDelete.has(obj.realmId))\n .delete();\n }\n }\n }\n}\n\nexport function filterServerChangesThroughAddedClientChanges(\n serverChanges: DBOperationsSet<string>,\n addedClientChanges: DBOperationsSet\n): DBOperationsSet<string> {\n const changes: DBKeyMutationSet = {};\n applyOperations(changes, serverChanges);\n const localPostChanges: DBKeyMutationSet = {};\n applyOperations(localPostChanges, addedClientChanges);\n subtractChanges(changes, localPostChanges);\n return toDBOperationSet(changes);\n}\n","import { BehaviorSubject } from 'rxjs';\nimport { filter, take } from 'rxjs/operators';\nimport { DexieCloudDB } from '../db/DexieCloudDB';\nimport { WSConnectionMsg } from '../WSObservable';\nimport { triggerSync } from './triggerSync';\nimport Dexie from 'dexie';\nimport { computeRealmSetHash } from '../helpers/computeRealmSetHash';\nimport { DBOperationsSet } from 'dexie-cloud-common';\nimport { getSyncableTables } from '../helpers/getSyncableTables';\nimport { getMutationTable } from '../helpers/getMutationTable';\nimport { listClientChanges } from './listClientChanges';\nimport { filterServerChangesThroughAddedClientChanges } from './sync';\nimport { applyServerChanges } from './applyServerChanges';\nimport { updateBaseRevs } from './updateBaseRevs';\nimport { getLatestRevisionsPerTable } from './getLatestRevisionsPerTable';\nimport { refreshAccessToken } from '../authentication/authenticate';\n\nexport type MessagesFromServerConsumer = ReturnType<\n typeof MessagesFromServerConsumer\n>;\n\nexport function MessagesFromServerConsumer(db: DexieCloudDB) {\n const queue: WSConnectionMsg[] = [];\n const readyToServe = new BehaviorSubject(true);\n const event = new BehaviorSubject(null);\n let isWorking = false;\n\n let loopWarning = 0;\n let loopDetection = [0, 0, 0, 0, 0, 0, 0, 0, 0, Date.now()];\n\n event.subscribe(async () => {\n if (isWorking) return;\n if (queue.length > 0) {\n isWorking = true;\n loopDetection.shift();\n loopDetection.push(Date.now());\n readyToServe.next(false);\n try {\n await consumeQueue();\n } finally {\n if (\n loopDetection[loopDetection.length - 1] - loopDetection[0] <\n 10000\n ) {\n // Ten loops within 10 seconds. Slow down!\n if (Date.now() - loopWarning < 5000) {\n // Last time we did this, we ended up here too. Wait for a minute.\n console.warn(`Slowing down websocket loop for one minute`);\n loopWarning = Date.now() + 60000;\n await new Promise((resolve) => setTimeout(resolve, 60000));\n } else {\n // This is a one-time event. Just pause 10 seconds.\n console.warn(`Slowing down websocket loop for 10 seconds`);\n loopWarning = Date.now() + 10000;\n await new Promise((resolve) => setTimeout(resolve, 10000));\n }\n }\n isWorking = false;\n readyToServe.next(true);\n }\n }\n });\n\n function enqueue(msg: WSConnectionMsg) {\n queue.push(msg);\n event.next(null);\n }\n\n async function consumeQueue() {\n while (queue.length > 0) {\n const msg = queue.shift();\n try {\n // If the sync worker or service worker is syncing, wait 'til thei're done.\n // It's no need to have two channels at the same time - even though it wouldnt\n // be a problem - this is an optimization.\n await db.cloud.syncState\n .pipe(\n filter(({ phase }) => phase === 'in-sync' || phase === 'error'),\n take(1)\n )\n .toPromise();\n console.debug('processing msg', msg);\n const persistedSyncState = db.cloud.persistedSyncState.value;\n //syncState.\n if (!msg) continue;\n switch (msg.type) {\n case 'token-expired':\n console.debug(\n 'WebSocket observable: Token expired. Refreshing token...'\n );\n const user = db.cloud.currentUser.value;\n // Refresh access token\n const refreshedLogin = await refreshAccessToken(\n db.cloud.options!.databaseUrl,\n user\n );\n // Persist updated access token\n await db.table('$logins').update(user.userId, {\n accessToken: refreshedLogin.accessToken,\n accessTokenExpiration: refreshedLogin.accessTokenExpiration,\n claims: refreshedLogin.claims,\n license: refreshedLogin.license,\n });\n // Updating $logins will trigger emission of db.cloud.currentUser observable, which\n // in turn will lead to that connectWebSocket.ts will reconnect the socket with the\n // new token. So we don't need to do anything more here.\n break;\n case 'realm-added':\n if (\n !persistedSyncState?.realms?.includes(msg.realm) &&\n !persistedSyncState?.inviteRealms?.includes(msg.realm)\n ) {\n await db.cloud.sync({ purpose: 'pull', wait: true });\n //triggerSync(db, 'pull');\n }\n break;\n case 'realm-accepted':\n if (!persistedSyncState?.realms?.includes(msg.realm)) {\n await db.cloud.sync({ purpose: 'pull', wait: true });\n //triggerSync(db, 'pull');\n }\n break;\n case 'realm-removed':\n if (\n persistedSyncState?.realms?.includes(msg.realm) ||\n persistedSyncState?.inviteRealms?.includes(msg.realm)\n ) {\n await db.cloud.sync({ purpose: 'pull', wait: true });\n //triggerSync(db, 'pull');\n }\n break;\n case 'realms-changed':\n //triggerSync(db, 'pull');\n await db.cloud.sync({ purpose: 'pull', wait: true });\n break;\n case 'changes':\n console.debug('changes');\n if (db.cloud.syncState.value?.phase === 'error') {\n triggerSync(db, 'pull');\n break;\n }\n await db.transaction('rw', db.dx.tables, async (tx) => {\n // @ts-ignore\n tx.idbtrans.disableChangeTracking = true;\n // @ts-ignore\n tx.idbtrans.disableAccessControl = true;\n const [schema, syncState, currentUser] = await Promise.all([\n db.getSchema(),\n db.getPersistedSyncState(),\n db.getCurrentUser(),\n ]);\n console.debug('ws message queue: in transaction');\n if (!syncState || !schema || !currentUser) {\n console.debug('required vars not present', {\n syncState,\n schema,\n currentUser,\n });\n return; // Initial sync must have taken place - otherwise, ignore this.\n }\n // Verify again in ACID tx that we're on same server revision.\n if (msg.baseRev !== syncState.serverRevision) {\n console.debug(\n `baseRev (${msg.baseRev}) differs from our serverRevision in syncState (${syncState.serverRevision})`\n );\n // Should we trigger a sync now? No. This is a normal case\n // when another local peer (such as the SW or a websocket channel on other tab) has\n // updated syncState from new server information but we are not aware yet. It would\n // be unnescessary to do a sync in that case. Instead, the caller of this consumeQueue()\n // function will do readyToServe.next(true) right after this return, which will lead\n // to a \"ready\" message being sent to server with the new accurate serverRev we have,\n // so that the next message indeed will be correct.\n if (\n typeof msg.baseRev === 'string' && // v2 format\n (typeof syncState.serverRevision === 'bigint' || // v1 format\n typeof syncState.serverRevision === 'object') // v1 format old browser\n ) {\n // The reason for the diff seems to be that server has migrated the revision format.\n // Do a full sync to update revision format.\n // If we don't do a sync request now, we could stuck in an endless loop.\n triggerSync(db, 'pull');\n }\n return; // Ignore message\n }\n // Verify also that the message is based on the exact same set of realms\n const ourRealmSetHash = await Dexie.waitFor(\n // Keep TX in non-IDB work\n computeRealmSetHash(syncState)\n );\n console.debug('ourRealmSetHash', ourRealmSetHash);\n if (ourRealmSetHash !== msg.realmSetHash) {\n console.debug('not same realmSetHash', msg.realmSetHash);\n triggerSync(db, 'pull');\n // The message isn't based on the same realms.\n // Trigger a sync instead to resolve all things up.\n return;\n }\n\n // Get clientChanges\n let clientChanges: DBOperationsSet = [];\n if (currentUser.isLoggedIn) {\n const mutationTables = getSyncableTables(db).map((tbl) =>\n db.table(getMutationTable(tbl.name))\n );\n clientChanges = await listClientChanges(mutationTables, db);\n console.debug('msg queue: client changes', clientChanges);\n }\n if (msg.changes.length > 0) {\n const filteredChanges =\n filterServerChangesThroughAddedClientChanges(\n msg.changes,\n clientChanges\n );\n\n //\n // apply server changes\n //\n console.debug(\n 'applying filtered server changes',\n filteredChanges\n );\n await applyServerChanges(filteredChanges, db);\n }\n\n // Update latest revisions per table in case there are unsynced changes\n // This can be a real case in future when we allow non-eagery sync.\n // And it can actually be realistic now also, but very rare.\n syncState.latestRevisions = getLatestRevisionsPerTable(\n clientChanges,\n syncState.latestRevisions\n );\n\n syncState.serverRevision = msg.newRev;\n\n // Update base revs\n console.debug('Updating baseRefs', syncState.latestRevisions);\n await updateBaseRevs(\n db,\n schema!,\n syncState.latestRevisions,\n msg.newRev\n );\n\n //\n // Update syncState\n //\n console.debug('Updating syncState', syncState);\n await db.$syncState.put(syncState, 'syncState');\n });\n console.debug('msg queue: done with rw transaction');\n break;\n }\n } catch (error) {\n console.error(`Error in msg queue`, error);\n }\n }\n }\n\n return {\n enqueue,\n readyToServe,\n };\n}\n","import Dexie, { Table } from 'dexie';\nimport { GuardedJob } from './entities/GuardedJob';\nimport { UserLogin } from './entities/UserLogin';\nimport { PersistedSyncState } from './entities/PersistedSyncState';\nimport { UNAUTHORIZED_USER } from '../authentication/UNAUTHORIZED_USER';\nimport { DexieCloudOptions } from '../DexieCloudOptions';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { BaseRevisionMapEntry } from './entities/BaseRevisionMapEntry';\nimport {\n DBRealm,\n DBRealmMember,\n DBRealmRole,\n DexieCloudSchema,\n} from 'dexie-cloud-common';\nimport { BroadcastedAndLocalEvent } from '../helpers/BroadcastedAndLocalEvent';\nimport { SyncState, SyncStatePhase } from '../types/SyncState';\nimport { MessagesFromServerConsumer } from '../sync/messagesFromServerQueue';\n\n/*export interface DexieCloudDB extends Dexie {\n table(name: string): Table<any, any>;\n table(name: \"$jobs\"): Table<GuardedJob, string>;\n table(name: \"$logins\"): Table<UserLogin, string>;\n table(name: \"$syncState\"): Table<SyncState, \"syncState\">;\n //table(name: \"$pendingChangesFromServer\"): Table<DBOperationsSet, number>;\n}\n*/\n\nexport interface SyncStateChangedEventData {\n phase: SyncStatePhase;\n error?: Error;\n progress?: number;\n}\n\ntype SyncStateTable = Table<\n PersistedSyncState | DexieCloudSchema | DexieCloudOptions,\n 'syncState' | 'options' | 'schema'\n>;\nexport interface DexieCloudDBBase {\n readonly name: Dexie['name'];\n readonly close: Dexie['close'];\n transaction: Dexie['transaction'];\n table: Dexie['table'];\n readonly tables: Dexie['tables'];\n readonly cloud: Dexie['cloud'];\n readonly $jobs: Table<GuardedJob, string>;\n readonly $logins: Table<UserLogin, string>;\n readonly $syncState: SyncStateTable;\n readonly $baseRevs: Table<BaseRevisionMapEntry, [string, number]>;\n\n readonly realms: Table<DBRealm, string>;\n readonly members: Table<DBRealmMember, string>;\n readonly roles: Table<DBRealmRole, [string, string]>;\n\n readonly localSyncEvent: Subject<{ purpose?: 'pull' | 'push' }>;\n readonly syncStateChangedEvent: BroadcastedAndLocalEvent<SyncStateChangedEventData>;\n readonly syncCompleteEvent: BroadcastedAndLocalEvent<void>;\n readonly dx: Dexie;\n readonly initiallySynced: boolean;\n}\n\nexport interface DexieCloudDB extends DexieCloudDBBase {\n getCurrentUser(): Promise<UserLogin>;\n getSchema(): Promise<DexieCloudSchema | undefined>;\n getOptions(): Promise<DexieCloudOptions | undefined>;\n getPersistedSyncState(): Promise<PersistedSyncState | undefined>;\n setInitiallySynced(initiallySynced: boolean): void;\n reconfigure(): void;\n messageConsumer: MessagesFromServerConsumer;\n}\n\nconst wm = new WeakMap<object, DexieCloudDB>();\n\nexport const DEXIE_CLOUD_SCHEMA = {\n members: '@id, [userId+realmId], [email+realmId], realmId',\n roles: '[realmId+name]',\n realms: '@realmId',\n $jobs: '',\n $syncState: '',\n $baseRevs: '[tableName+clientRev]',\n $logins: 'claims.sub, lastLogin',\n};\n\nlet static_counter = 0;\nexport function DexieCloudDB(dx: Dexie): DexieCloudDB {\n if ('vip' in dx) dx = dx['vip']; // Avoid race condition. Always map to a vipped dexie that don't block during db.on.ready().\n let db = wm.get(dx.cloud);\n if (!db) {\n const localSyncEvent = new Subject<{ purpose: 'push' | 'pull' }>();\n let syncStateChangedEvent =\n new BroadcastedAndLocalEvent<SyncStateChangedEventData>(\n `syncstatechanged-${dx.name}`\n );\n let syncCompleteEvent = new BroadcastedAndLocalEvent<void>(\n `synccomplete-${dx.name}`\n );\n localSyncEvent['id'] = ++static_counter;\n let initiallySynced = false;\n db = {\n get name() {\n return dx.name;\n },\n close() {\n return dx.close();\n },\n transaction: dx.transaction.bind(dx),\n table: dx.table.bind(dx),\n get tables() {\n return dx.tables;\n },\n cloud: dx.cloud,\n get $jobs() {\n return dx.table('$jobs') as Table<GuardedJob, string>;\n },\n get $syncState() {\n return dx.table('$syncState') as SyncStateTable;\n },\n get $baseRevs() {\n return dx.table('$baseRevs') as Table<\n BaseRevisionMapEntry,\n [string, number]\n >;\n },\n get $logins() {\n return dx.table('$logins') as Table<UserLogin, string>;\n },\n\n get realms() {\n return dx.realms;\n },\n get members() {\n return dx.members;\n },\n get roles() {\n return dx.roles;\n },\n get initiallySynced() {\n return initiallySynced;\n },\n localSyncEvent,\n get syncStateChangedEvent() {\n return syncStateChangedEvent;\n },\n get syncCompleteEvent() {\n return syncCompleteEvent;\n },\n dx,\n } as DexieCloudDB;\n\n const helperMethods: Partial<DexieCloudDB> = {\n getCurrentUser() {\n return db!.$logins\n .toArray()\n .then(\n (logins) => logins.find((l) => l.isLoggedIn) || UNAUTHORIZED_USER\n );\n },\n getPersistedSyncState() {\n return db!.$syncState.get('syncState') as Promise<\n PersistedSyncState | undefined\n >;\n },\n getSchema() {\n return db!.$syncState.get('schema').then((schema: DexieCloudSchema) => {\n if (schema) {\n for (const table of db!.tables) {\n if (table.schema.primKey && table.schema.primKey.keyPath && schema[table.name]) {\n schema[table.name].primaryKey = nameFromKeyPath(\n table.schema.primKey.keyPath\n );\n }\n }\n }\n return schema;\n }) as Promise<DexieCloudSchema | undefined>;\n },\n getOptions() {\n return db!.$syncState.get('options') as Promise<\n DexieCloudOptions | undefined\n >;\n },\n setInitiallySynced(value) {\n initiallySynced = value;\n },\n reconfigure() {\n syncStateChangedEvent = new BroadcastedAndLocalEvent<SyncState>(\n `syncstatechanged-${dx.name}`\n );\n syncCompleteEvent = new BroadcastedAndLocalEvent<void>(\n `synccomplete-${dx.name}`\n );\n },\n };\n\n Object.assign(db, helperMethods);\n db.messageConsumer = MessagesFromServerConsumer(db);\n wm.set(dx.cloud, db);\n }\n return db;\n}\n\nfunction nameFromKeyPath (keyPath?: string | string[]): string {\n return typeof keyPath === 'string' ?\n keyPath :\n keyPath ? ('[' + [].join.call(keyPath, '+') + ']') : \"\";\n}\n","import { DexieCloudDB } from \"../db/DexieCloudDB\";\nimport { UserLogin } from \"../db/entities/UserLogin\";\n\nexport interface AuthPersistedContext extends UserLogin {\n save(): Promise<void>;\n}\n\n// Emulate true-private property db. Why? So it's not stored in DB.\nconst wm = new WeakMap<AuthPersistedContext, DexieCloudDB>();\n\nexport class AuthPersistedContext {\n constructor(db: DexieCloudDB, userLogin: UserLogin) {\n wm.set(this, db);\n Object.assign(this, userLogin);\n }\n\n static load(db: DexieCloudDB, userId: string) {\n return db\n .table(\"$logins\")\n .get(userId)\n .then(\n (userLogin) => new AuthPersistedContext(db, userLogin || {\n userId,\n claims: {\n sub: userId\n },\n lastLogin: new Date(0)\n })\n );\n }\n\n async save() {\n const db = wm.get(this)!;\n db.table(\"$logins\").put(this);\n }\n}\n","import { filter, firstValueFrom, from, InteropObservable, Observable } from 'rxjs';\n\nexport function waitUntil<T>(\n o: Observable<T> | InteropObservable<T>, // Works with Dexie's liveQuery observables if we'd need that\n predicate: (value: T) => boolean\n) {\n return firstValueFrom(from(o).pipe(\n filter(predicate),\n ));\n}\n","import { DexieCloudDB } from '../db/DexieCloudDB';\nimport { TXExpandos } from '../types/TXExpandos';\nimport { confirmLogout } from './interactWithUser';\nimport { UNAUTHORIZED_USER } from './UNAUTHORIZED_USER';\nimport { waitUntil } from './waitUntil';\n\nexport async function logout(db: DexieCloudDB) {\n const numUnsyncedChanges = await _logout(db);\n if (numUnsyncedChanges) {\n if (\n await confirmLogout(\n db.cloud.userInteraction,\n db.cloud.currentUserId,\n numUnsyncedChanges\n )\n ) {\n await _logout(db, { deleteUnsyncedData: true });\n } else {\n throw new Error(`User cancelled logout due to unsynced changes`);\n }\n }\n}\n\nexport async function _logout(db: DexieCloudDB, { deleteUnsyncedData = false } = {}) {\n // Clear the database without emptying configuration options.\n const [numUnsynced, loggedOut] = await db.dx.transaction('rw', db.dx.tables, async (tx) => {\n // @ts-ignore\n const idbtrans: IDBTransaction & TXExpandos = tx.idbtrans;\n idbtrans.disableChangeTracking = true;\n idbtrans.disableAccessControl = true;\n const mutationTables = tx.storeNames.filter((tableName) =>\n tableName.endsWith('_mutations')\n );\n\n // Count unsynced changes\n const unsyncCounts = await Promise.all(\n mutationTables.map((mutationTable) => tx.table(mutationTable).count())\n );\n const sumUnSynced = unsyncCounts.reduce((a, b) => a + b, 0);\n\n if (sumUnSynced > 0 && !deleteUnsyncedData) {\n // Let caller ask user if they want to delete unsynced data.\n return [sumUnSynced, false];\n }\n \n // Either there are no unsynched changes, or caller provided flag deleteUnsynchedData = true.\n // Clear all tables except $jobs and $syncState (except the persisted sync state which is\n // also cleared because we're going to rebuild it using a fresh sync).\n db.$syncState.delete('syncState');\n for (const table of db.dx.tables) {\n if (table.name !== '$jobs' && table.name !== '$syncState') {\n table.clear();\n }\n }\n return [sumUnSynced, true];\n });\n\n if (loggedOut) {\n // Wait for currentUser observable to emit UNAUTHORIZED_USER\n await waitUntil(db.cloud.currentUser, (user) => user.userId === UNAUTHORIZED_USER.userId);\n // Then perform an initial sync\n await db.cloud.sync({purpose: 'pull', wait: true});\n }\n return numUnsynced;\n}\n","import {\n TokenErrorResponse,\n TokenFinalResponse,\n TokenRequest,\n TokenResponse,\n} from 'dexie-cloud-common';\nimport { DexieCloudDB } from '../db/DexieCloudDB';\nimport { HttpError } from '../errors/HttpError';\nimport { FetchTokenCallback } from './authenticate';\nimport { alertUser, promptForEmail, promptForOTP } from './interactWithUser';\n\nexport function otpFetchTokenCallback(db: DexieCloudDB): FetchTokenCallback {\n const { userInteraction } = db.cloud;\n return async function otpAuthenticate({ public_key, hints }) {\n let tokenRequest: TokenRequest;\n const url = db.cloud.options?.databaseUrl;\n if (!url) throw new Error(`No database URL given.`);\n if (hints?.grant_type === 'demo') {\n const demo_user = await promptForEmail(\n userInteraction,\n 'Enter a demo user email',\n hints?.email || hints?.userId\n );\n tokenRequest = {\n demo_user,\n grant_type: 'demo',\n scopes: ['ACCESS_DB'],\n public_key,\n };\n } else {\n const email = await promptForEmail(\n userInteraction,\n 'Enter email address',\n hints?.email\n );\n tokenRequest = {\n email,\n grant_type: 'otp',\n scopes: ['ACCESS_DB'],\n public_key,\n };\n }\n const res1 = await fetch(`${url}/token`, {\n body: JSON.stringify(tokenRequest),\n method: 'post',\n headers: { 'Content-Type': 'application/json', mode: 'cors' },\n });\n if (res1.status !== 200) {\n const errMsg = await res1.text();\n await alertUser(userInteraction, \"Token request failed\", {\n type: 'error',\n messageCode: 'GENERIC_ERROR',\n message: errMsg,\n messageParams: {}\n }).catch(()=>{});\n throw new HttpError(res1, errMsg);\n }\n const response: TokenResponse = await res1.json();\n if (response.type === 'tokens' || response.type === 'error') {\n // Demo user request can get a \"tokens\" response right away\n // Error can also be returned right away.\n return response;\n } else if (tokenRequest.grant_type === 'otp') {\n if (response.type !== 'otp-sent')\n throw new Error(`Unexpected response from ${url}/token`);\n const otp = await promptForOTP(userInteraction, tokenRequest.email);\n tokenRequest.otp = otp || '';\n tokenRequest.otp_id = response.otp_id;\n\n let res2 = await fetch(`${url}/token`, {\n body: JSON.stringify(tokenRequest),\n method: 'post',\n headers: { 'Content-Type': 'application/json' },\n mode: 'cors',\n });\n while (res2.status === 401) {\n const errorText = await res2.text();\n tokenRequest.otp = await promptForOTP(userInteraction, tokenRequest.email, {\n type: 'error',\n messageCode: 'INVALID_OTP',\n message: errorText,\n messageParams: {}\n });\n res2 = await fetch(`${url}/token`, {\n body: JSON.stringify(tokenRequest),\n method: 'post',\n headers: { 'Content-Type': 'application/json' },\n mode: 'cors',\n });\n }\n if (res2.status !== 200) {\n const errMsg = await res2.text();\n throw new HttpError(res2, errMsg);\n }\n const response2: TokenFinalResponse | TokenErrorResponse = await res2.json();\n return response2;\n } else {\n throw new Error(`Unexpected response from ${url}/token`);\n }\n };\n}\n","/** A way to log to console in production without terser stripping out\n * it from the release bundle.\n * This should be used very rarely and only in places where it's\n * absolutely necessary to log something in production.\n * \n * @param level \n * @param args \n */\nexport function prodLog(level: 'log' | 'warn' | 'error' | 'debug', ...args: any[]) {\n globalThis[\"con\"+\"sole\"][level](...args);\n}\n","import { DexieCloudDB } from '../db/DexieCloudDB';\nimport { prodLog } from '../prodLog';\nimport { AuthPersistedContext } from './AuthPersistedContext';\nimport { waitUntil } from './waitUntil';\n\n/** This function changes or sets the current user as requested.\n *\n * Use cases:\n * * Initially on db.ready after reading the current user from db.$logins.\n * This will make sure that any unsynced operations from the previous user is synced before\n * changing the user.\n * * Upon user request\n *\n * @param db\n * @param newUser\n */\nexport async function setCurrentUser(\n db: DexieCloudDB,\n user: AuthPersistedContext\n) {\n if (user.userId === db.cloud.currentUserId) return; // Already this user.\n\n const $logins = db.table('$logins');\n await db.transaction('rw', $logins, async (tx) => {\n const existingLogins = await $logins.toArray();\n await Promise.all(\n existingLogins\n .filter((login) => login.userId !== user.userId && login.isLoggedIn)\n .map((login) => {\n login.isLoggedIn = false;\n return $logins.put(login);\n })\n );\n user.isLoggedIn = true;\n user.lastLogin = new Date();\n try {\n await user.save();\n } catch (e) {\n try {\n if (e.name === 'DataCloneError') {\n // We've seen this buggy behavior in some browsers and in case it happens\n // again we really need to collect the details to understand what's going on.\n prodLog('debug', `Login context property names:`, Object.keys(user));\n prodLog('debug', `Login context property names:`, Object.keys(user));\n prodLog('debug', `Login context:`, user);\n prodLog('debug', `Login context JSON:`, JSON.stringify(user));\n }\n } catch {}\n throw e;\n } \n console.debug('Saved new user', user.email);\n });\n await waitUntil(db.cloud.currentUser, (currentUser) => currentUser.userId === user.userId);\n}","import { DexieCloudDB } from '../db/DexieCloudDB';\nimport { triggerSync } from '../sync/triggerSync';\nimport { authenticate, loadAccessToken } from './authenticate';\nimport { AuthPersistedContext } from './AuthPersistedContext';\nimport { logout } from './logout';\nimport { otpFetchTokenCallback } from './otpFetchTokenCallback';\nimport { setCurrentUser } from './setCurrentUser';\nimport { UNAUTHORIZED_USER } from './UNAUTHORIZED_USER';\n\nexport async function login(\n db: DexieCloudDB,\n hints?: { email?: string; userId?: string; grant_type?: string }\n) {\n const currentUser = await db.getCurrentUser();\n const origUserId = currentUser.userId;\n if (currentUser.isLoggedIn && (!hints || (!hints.email && !hints.userId))) {\n const licenseStatus = currentUser.license?.status || 'ok';\n if (licenseStatus === 'ok' && currentUser.accessToken && (!currentUser.accessTokenExpiration || currentUser.accessTokenExpiration.getTime() > Date.now())) {\n // Already authenticated according to given hints. And license is valid.\n return false;\n }\n if (currentUser.refreshToken && (!currentUser.refreshTokenExpiration || currentUser.refreshTokenExpiration.getTime() > Date.now())) {\n // Refresh the token\n await loadAccessToken(db);\n return false;\n }\n // No refresh token - must re-authenticate:\n }\n const context = new AuthPersistedContext(db, {\n claims: {},\n lastLogin: new Date(0),\n });\n await authenticate(\n db.cloud.options!.databaseUrl,\n context,\n db.cloud.options!.fetchTokens || otpFetchTokenCallback(db),\n db.cloud.userInteraction,\n hints\n );\n if (origUserId !== UNAUTHORIZED_USER.userId && context.userId !== origUserId) {\n // User was logged in before, but now logged in as another user.\n await logout(db);\n }\n\n /*try {\n await context.save();\n } catch (e) {\n try {\n if (e.name === 'DataCloneError') {\n console.debug(`Login context property names:`, Object.keys(context));\n console.debug(`Login context:`, context);\n console.debug(`Login context JSON:`, JSON.stringify(context));\n }\n } catch {}\n throw e;\n }*/\n await setCurrentUser(db, context);\n // Make sure to resync as the new login will be authorized\n // for new realms.\n triggerSync(db, \"pull\");\n return context.userId !== origUserId;\n}\n\n","// @ts-ignore\nexport const isFirefox = typeof InstallTrigger !== 'undefined';\n","export const isSafari =\n typeof navigator !== 'undefined' &&\n /Safari\\//.test(navigator.userAgent) &&\n !/Chrom(e|ium)\\/|Edge\\//.test(navigator.userAgent);\n\nexport const safariVersion = isSafari\n ? // @ts-ignore\n [].concat(navigator.userAgent.match(/Safari\\/(\\d*)/))[1]\n : NaN;\n","import { isFirefox } from './isFirefox';\nimport { isSafari, safariVersion } from './isSafari';\n\n// What we know: Safari 14.1 (version 605) crashes when using dexie-cloud's service worker.\n// We don't know what exact call is causing this. Have tried safari-14-idb-fix with no luck.\n// Something we do in the service worker is triggering the crash.\n// When next Safari version (606) is out we will start enabling SW again, hoping that the bug is solved.\n// If not, we might increment 605 to 606.\nexport const DISABLE_SERVICEWORKER_STRATEGY =\n (isSafari && safariVersion <= 605) || // Disable for Safari for now.\n isFirefox; // Disable for Firefox for now. Seems to have a bug in reading CryptoKeys from IDB from service workers\n","import Dexie from \"dexie\";\n\n/* Helper function to subscribe to database close no matter if it was unexpectedly closed or manually using db.close()\n */\nexport function dbOnClosed(db: Dexie, handler: () => void) {\n db.on.close.subscribe(handler);\n // @ts-ignore\n const origClose = db._close;\n // @ts-ignore\n db._close = function () {\n origClose.call(this);\n handler();\n };\n return () => {\n db.on.close.unsubscribe(handler);\n // @ts-ignore\n db._close = origClose;\n };\n}\n","export const IS_SERVICE_WORKER =\n typeof self !== \"undefined\" && \"clients\" in self && !self.document;\n","import Dexie from \"dexie\";\n\nexport function throwVersionIncrementNeeded() {\n throw new Dexie.SchemaError(\n `Version increment needed to allow dexie-cloud change tracking`\n );\n}\n","import {\n DBCoreAddRequest,\n DBCoreDeleteRequest,\n DBCoreIndex, DBCorePutRequest\n} from 'dexie';\nimport { b64LexEncode } from 'dreambase-library/dist/common/b64lex';\n\nconst { toString } = {};\nexport function toStringTag(o: Object) {\n return toString.call(o).slice(8, -1);\n}\n\nexport function getEffectiveKeys(\n primaryKey: DBCoreIndex,\n req: (Pick<DBCoreAddRequest | DBCorePutRequest, 'type' | 'values'> & {\n keys?: any[];\n }) |\n Pick<DBCoreDeleteRequest, 'keys' | 'type'>\n) {\n if (req.type === 'delete')\n return req.keys;\n return req.keys?.slice() || req.values.map(primaryKey.extractKey!);\n}\nfunction applyToUpperBitFix(orig: string, bits: number) {\n return (\n (bits & 1 ? orig[0].toUpperCase() : orig[0].toLowerCase()) +\n (bits & 2 ? orig[1].toUpperCase() : orig[1].toLowerCase()) +\n (bits & 4 ? orig[2].toUpperCase() : orig[2].toLowerCase())\n );\n}\nconst consonants = /b|c|d|f|g|h|j|k|l|m|n|p|q|r|s|t|v|x|y|z/i;\nfunction isUpperCase(ch: string) {\n return ch >= 'A' && ch <= 'Z';\n}\n\nexport function generateTablePrefix(\n tableName: string,\n allPrefixes: Set<string>\n) {\n let rv = tableName[0].toLocaleLowerCase(); // \"users\" = \"usr\", \"friends\" = \"frn\", \"realms\" = \"rlm\", etc.\n for (let i = 1, l = tableName.length; i < l && rv.length < 3; ++i) {\n if (consonants.test(tableName[i]) || isUpperCase(tableName[i]))\n rv += tableName[i].toLowerCase();\n }\n while (allPrefixes.has(rv)) {\n if (/\\d/g.test(rv)) {\n rv = rv.substr(0, rv.length - 1) + (rv[rv.length - 1] + 1);\n if (rv.length > 3)\n rv = rv.substr(0, 3);\n else\n continue;\n } else if (rv.length < 3) {\n rv = rv + '2';\n continue;\n }\n let bitFix = 1;\n let upperFixed = rv;\n while (allPrefixes.has(upperFixed) && bitFix < 8) {\n upperFixed = applyToUpperBitFix(rv, bitFix);\n ++bitFix;\n }\n if (bitFix < 8)\n rv = upperFixed;\n else {\n let nextChar = (rv.charCodeAt(2) + 1) & 127;\n rv = rv.substr(0, 2) + String.fromCharCode(nextChar);\n // Here, in theory we could get an infinite loop if having 127*8 table names with identical 3 first consonants.\n }\n }\n return rv;\n}\nlet time = 0;\n/**\n *\n * @param prefix A unique 3-letter short-name of the table.\n * @param shardKey 3 last letters from another ID if colocation is requested. Verified on server on inserts - guarantees unique IDs across shards.\n * The shardKey part of the key represent the shardId where it was first created. An object with this\n * primary key can later on be moved to another shard without being altered. The reason for having\n * the origin shardKey as part of the key, is that the server will not need to check uniqueness constraint\n * across all shards on every insert. Updates / moves across shards are already controlled by the server\n * in the sense that the objects needs to be there already - we only need this part for inserts.\n * @returns\n */\nexport function generateKey(prefix: string, shardKey?: string) {\n const a = new Uint8Array(18);\n const timePart = new Uint8Array(a.buffer, 0, 6);\n const now = Date.now(); // Will fit into 6 bytes until year 10 895.\n if (time >= now) {\n // User is bulk-creating objects the same millisecond.\n // Increment the time part by one millisecond for each item.\n // If bulk-creating 1,000,000 rows client-side in 10 seconds,\n // the last time-stamp will be 990 seconds in future, which is no biggie at all.\n // The point is to create a nice order of the generated IDs instead of\n // using random ids.\n ++time;\n } else {\n time = now;\n }\n timePart[0] = time / 1099511627776; // Normal division (no bitwise operator) --> works with >= 32 bits.\n timePart[1] = time / 4294967296;\n timePart[2] = time / 16777216;\n timePart[3] = time / 65536;\n timePart[4] = time / 256;\n timePart[5] = time;\n const randomPart = new Uint8Array(a.buffer, 6);\n crypto.getRandomValues(randomPart);\n const id = new Uint8Array(a.buffer);\n return prefix + b64LexEncode(id) + (shardKey || '');\n}\n","import Dexie, {\n DBCore,\n DBCoreAddRequest,\n DBCoreMutateRequest,\n DBCorePutRequest,\n Middleware,\n} from 'dexie';\nimport { isValidSyncableID } from 'dexie-cloud-common';\nimport { DexieCloudDB } from '../db/DexieCloudDB';\nimport {\n getEffectiveKeys,\n generateKey,\n toStringTag,\n} from '../middleware-helpers/idGenerationHelpers';\n\nexport function createIdGenerationMiddleware(\n db: DexieCloudDB\n): Middleware<DBCore> {\n return {\n stack: 'dbcore',\n name: 'idGenerationMiddleware',\n level: 1,\n create: (core) => {\n return {\n ...core,\n table: (tableName) => {\n const table = core.table(tableName);\n\n function generateOrVerifyAtKeys(\n req: DBCoreAddRequest | DBCorePutRequest,\n idPrefix: string\n ) {\n let valueClones: null | object[] = null;\n const keys = getEffectiveKeys(table.schema.primaryKey, req);\n keys.forEach((key, idx) => {\n if (key === undefined) {\n // Generate the key\n const colocatedId =\n req.values[idx].realmId || db.cloud.currentUserId;\n const shardKey = colocatedId.substr(colocatedId.length - 3);\n keys[idx] = generateKey(idPrefix, shardKey);\n if (!table.schema.primaryKey.outbound) {\n if (!valueClones) valueClones = req.values.slice();\n valueClones[idx] = Dexie.deepClone(valueClones[idx]);\n Dexie.setByKeyPath(\n valueClones[idx],\n table.schema.primaryKey.keyPath!,\n keys[idx]\n );\n }\n } else if (\n typeof key !== 'string' ||\n (!key.startsWith(idPrefix) && !key.startsWith('#' + idPrefix))\n ) {\n // Key was specified by caller. Verify it complies with id prefix.\n throw new Dexie.ConstraintError(\n `The ID \"${key}\" is not valid for table \"${tableName}\". ` +\n `Primary '@' keys requires the key to be prefixed with \"${idPrefix}\" (or \"#${idPrefix}).\\n` +\n `If you want to generate IDs programmatically, remove '@' from the schema to get rid of this constraint. Dexie Cloud supports custom IDs as long as they are random and globally unique.`\n );\n }\n });\n return table.mutate({\n ...req,\n keys,\n values: valueClones || req.values,\n });\n }\n\n return {\n ...table,\n mutate: (req) => {\n // @ts-ignore\n if (req.trans.disableChangeTracking) {\n // Disable ID policy checks and ID generation\n return table.mutate(req);\n }\n if (req.type === 'add' || req.type === 'put') {\n const cloudTableSchema = db.cloud.schema?.[tableName];\n if (!cloudTableSchema?.generatedGlobalId) {\n if (cloudTableSchema?.markedForSync) {\n // Just make sure primary key is of a supported type:\n const keys = getEffectiveKeys(table.schema.primaryKey, req);\n keys.forEach((key, idx) => {\n if (!isValidSyncableID(key)) {\n const type = Array.isArray(key)\n ? key.map(toStringTag).join(',')\n : toStringTag(key);\n throw new Dexie.ConstraintError(\n `Invalid primary key type ${type} for table ${tableName}. Tables marked for sync has primary keys of type string or Array of string (and optional numbers)`\n );\n }\n });\n }\n } else {\n if (db.cloud.options?.databaseUrl && !db.initiallySynced) {\n // A database URL is configured but no initial sync has been performed.\n const keys = getEffectiveKeys(table.schema.primaryKey, req);\n // Check if the operation would yield any INSERT. If so, complain! We never want wrong ID prefixes stored.\n return table\n .getMany({ keys, trans: req.trans, cache: 'immutable' })\n .then((results) => {\n if (results.length < keys.length) {\n // At least one of the given objects would be created. Complain since\n // the generated ID would be based on a locally computed ID prefix only - we wouldn't\n // know if the server would give the same ID prefix until an initial sync has been\n // performed.\n throw new Error(\n `Unable to create new objects without an initial sync having been performed.`\n );\n }\n return table.mutate(req);\n });\n }\n return generateOrVerifyAtKeys(\n req,\n cloudTableSchema.idPrefix!\n );\n }\n }\n return table.mutate(req);\n },\n };\n },\n };\n },\n };\n}\n","import { DBCore, DBCoreTransaction, Middleware } from 'dexie';\nimport { DexieCloudDB } from '../db/DexieCloudDB';\nimport { TXExpandos } from '../types/TXExpandos';\n\nexport function createImplicitPropSetterMiddleware(\n db: DexieCloudDB\n): Middleware<DBCore> {\n return {\n stack: 'dbcore',\n name: 'implicitPropSetterMiddleware',\n level: 1,\n create: (core) => {\n return {\n ...core,\n table: (tableName) => {\n const table = core.table(tableName);\n return {\n ...table,\n mutate: (req) => {\n // @ts-ignore\n if (req.trans.disableChangeTracking) {\n return table.mutate(req);\n }\n\n const trans = req.trans as DBCoreTransaction & TXExpandos;\n if (db.cloud.schema?.[tableName]?.markedForSync) {\n if (req.type === 'add' || req.type === 'put') {\n // No matter if user is logged in or not, make sure \"owner\" and \"realmId\" props are set properly.\n // If not logged in, this will be changed upon syncification of the tables (next sync after login),\n // however, application code will work better if we can always rely on that the properties realmId\n // and owner are set. Application code may index them and query them based on db.cloud.currentUserId,\n // and expect them to be returned. That scenario must work also when db.cloud.currentUserId === 'unauthorized'.\n for (const obj of req.values) {\n if (!obj.owner) {\n obj.owner = trans.currentUser.userId;\n }\n if (!obj.realmId) {\n obj.realmId = trans.currentUser.userId;\n }\n const key = table.schema.primaryKey.extractKey?.(obj);\n if (typeof key === 'string' && key[0] === '#') {\n // Add $ts prop for put operations and\n // disable update operations as well as consistent\n // modify operations. Reason: Server may not have\n // the object. Object should be created on server only\n // if is being updated. An update operation won't create it\n // so we must delete req.changeSpec to degrade operation to\n // an upsert operation with timestamp so that it will be created.\n // We must also degrade from consistent modify operations for the\n // same reason - object might be there on server. Must but put up instead.\n\n // FUTURE: This clumpsy behavior of private IDs could be refined later.\n // Suggestion is to in future, treat private IDs as we treat all objects \n // and sync operations normally. Only that deletions should become soft deletes\n // for them - so that server knows when a private ID has been deleted on server\n // not accept insert/upserts on them.\n if (req.type === 'put') {\n const now = Date.now();\n delete req.criteria;\n delete req.changeSpec;\n delete req.updates;\n obj.$ts = Date.now();\n }\n }\n }\n }\n }\n return table.mutate(req);\n },\n };\n },\n };\n },\n };\n}\n","\nexport function allSettled(possiblePromises: any[]) {\n return new Promise(resolve => {\n if (possiblePromises.length === 0) resolve([]);\n let remaining = possiblePromises.length;\n const results = new Array(remaining);\n possiblePromises.forEach((p, i) => Promise.resolve(p).then(\n value => results[i] = {status: \"fulfilled\", value},\n reason => results[i] = {status: \"rejected\", reason})\n .then(()=>--remaining || resolve(results)));\n });\n}\n","import { DBCoreTable, DBCoreTransaction } from \"dexie\";\nimport { allSettled } from \"../helpers/allSettled\";\n\nlet counter = 0;\n\nexport function guardedTable(table: DBCoreTable) {\n const prop = \"$lock\"+ (++counter);\n return {\n ...table,\n count: readLock(table.count, prop),\n get: readLock(table.get, prop),\n getMany: readLock(table.getMany, prop),\n openCursor: readLock(table.openCursor, prop),\n query: readLock(table.query, prop),\n mutate: writeLock(table.mutate, prop),\n };\n}\n\nfunction readLock<TReq extends { trans: DBCoreTransaction }, TRes>(\n fn: (req: TReq) => Promise<TRes>,\n prop: string\n): (req: TReq) => Promise<TRes> {\n return function readLocker(req): Promise<TRes> {\n const {\n readers,\n writers,\n }: { writers: Promise<any>[]; readers: Promise<any>[] } =\n req.trans[prop] || (req.trans[prop] = { writers: [], readers: [] });\n const numWriters = writers.length;\n const promise = (numWriters > 0\n ? writers[numWriters - 1].then(() => fn(req), () => fn(req))\n : fn(req)\n ).finally(() => readers.splice(readers.indexOf(promise)));\n readers.push(promise);\n return promise;\n };\n}\n\nfunction writeLock<TReq extends { trans: DBCoreTransaction }, TRes>(\n fn: (req: TReq) => Promise<TRes>,\n prop: string\n): (req: TReq) => Promise<TRes> {\n return function writeLocker(req): Promise<TRes> {\n const {\n readers,\n writers,\n }: { writers: Promise<any>[]; readers: Promise<any>[] } =\n req.trans[prop] || (req.trans[prop] = { writers: [], readers: [] });\n let promise = (writers.length > 0\n ? writers[writers.length - 1].then(() => fn(req), () => fn(req))\n : readers.length > 0\n ? allSettled(readers).then(() => fn(req))\n : fn(req)\n ).finally(() => writers.shift());\n writers.push(promise);\n return promise;\n };\n}\n","import { DBCoreTransaction } from 'dexie';\nimport { BehaviorSubject } from 'rxjs';\nimport { TXExpandos } from '../types/TXExpandos';\n\nexport const outstandingTransactions = new BehaviorSubject<Set<DBCoreTransaction & IDBTransaction & TXExpandos>>(new Set());\n","import { DexieCloudDB } from './db/DexieCloudDB';\n\nexport function isEagerSyncDisabled(db: DexieCloudDB) {\n return (\n db.cloud.options?.disableEagerSync ||\n db.cloud.currentUser.value?.license?.status !== 'ok' ||\n !db.cloud.options?.databaseUrl\n );\n}\n","import {\n DBCore,\n DBCoreAddRequest,\n DBCoreDeleteRequest,\n DBCoreMutateResponse,\n DBCorePutRequest,\n DBCoreTable,\n DBCoreTransaction,\n Middleware,\n} from 'dexie';\nimport { DBOperation } from 'dexie-cloud-common';\nimport { BehaviorSubject } from 'rxjs';\nimport { DexieCloudDB } from '../db/DexieCloudDB';\nimport { UserLogin } from '../db/entities/UserLogin';\nimport { getMutationTable } from '../helpers/getMutationTable';\nimport { randomString } from '../helpers/randomString';\nimport { throwVersionIncrementNeeded } from '../helpers/throwVersionIncrementNeeded';\nimport { guardedTable } from '../middleware-helpers/guardedTable';\nimport { registerSyncEvent } from '../sync/registerSyncEvent';\nimport { TXExpandos } from '../types/TXExpandos';\nimport { outstandingTransactions } from './outstandingTransaction';\nimport { isEagerSyncDisabled } from '../isEagerSyncDisabled';\nimport { triggerSync } from '../sync/triggerSync';\n\nexport interface MutationTrackingMiddlewareArgs {\n currentUserObservable: BehaviorSubject<UserLogin>;\n db: DexieCloudDB;\n}\n\n/** Tracks all mutations in the same transaction as the mutations -\n * so it is guaranteed that no mutation goes untracked - and if transaction\n * aborts, the mutations won't be tracked.\n *\n * The sync job will use the tracked mutations as the source of truth when pushing\n * changes to server and cleanup the tracked mutations once the server has\n * ackowledged that it got them.\n */\nexport function createMutationTrackingMiddleware({\n currentUserObservable,\n db,\n}: MutationTrackingMiddlewareArgs): Middleware<DBCore> {\n return {\n stack: 'dbcore',\n name: 'MutationTrackingMiddleware',\n level: 1,\n create: (core) => {\n const ordinaryTables = core.schema.tables.filter(\n (t) => !/^\\$/.test(t.name)\n );\n let mutTableMap: Map<string, DBCoreTable>;\n try {\n mutTableMap = new Map(\n ordinaryTables.map((tbl) => [\n tbl.name,\n core.table(`$${tbl.name}_mutations`),\n ])\n );\n } catch {\n throwVersionIncrementNeeded();\n }\n\n return {\n ...core,\n transaction: (tables, mode) => {\n let tx: DBCoreTransaction & IDBTransaction & TXExpandos;\n if (mode === 'readwrite') {\n const mutationTables = tables\n .filter((tbl) => db.cloud.schema?.[tbl]?.markedForSync)\n .map((tbl) => getMutationTable(tbl));\n tx = core.transaction(\n [...tables, ...mutationTables],\n mode\n ) as DBCoreTransaction & IDBTransaction & TXExpandos;\n } else {\n tx = core.transaction(tables, mode) as DBCoreTransaction &\n IDBTransaction &\n TXExpandos;\n }\n\n if (mode === 'readwrite') {\n // Give each transaction a globally unique id.\n tx.txid = randomString(16);\n tx.opCount = 0;\n // Introduce the concept of current user that lasts through the entire transaction.\n // This is important because the tracked mutations must be connected to the user.\n tx.currentUser = currentUserObservable.value;\n outstandingTransactions.value.add(tx);\n outstandingTransactions.next(outstandingTransactions.value);\n const removeTransaction = () => {\n tx.removeEventListener('complete', txComplete);\n tx.removeEventListener('error', removeTransaction);\n tx.removeEventListener('abort', removeTransaction);\n outstandingTransactions.value.delete(tx);\n outstandingTransactions.next(outstandingTransactions.value);\n };\n const txComplete = () => {\n if (\n tx.mutationsAdded &&\n !isEagerSyncDisabled(db)\n ) {\n triggerSync(db, 'push');\n }\n removeTransaction();\n };\n tx.addEventListener('complete', txComplete);\n tx.addEventListener('error', removeTransaction);\n tx.addEventListener('abort', removeTransaction);\n }\n return tx;\n },\n table: (tableName) => {\n const table = core.table(tableName);\n if (/^\\$/.test(tableName)) {\n if (tableName.endsWith('_mutations')) {\n // In case application code adds items to ..._mutations tables,\n // make sure to set the mutationsAdded flag on transaction.\n // This is also done in mutateAndLog() as that function talks to a\n // lower level DBCore and wouldn't be catched by this code.\n return {\n ...table,\n mutate: (req) => {\n if (req.type === 'add' || req.type === 'put') {\n (\n req.trans as DBCoreTransaction & TXExpandos\n ).mutationsAdded = true;\n }\n return table.mutate(req);\n },\n };\n } else if (tableName === '$logins') {\n return {\n ...table,\n mutate: (req) => {\n //console.debug('Mutating $logins table', req);\n return table\n .mutate(req)\n .then((res) => {\n //console.debug('Mutating $logins');\n (\n req.trans as DBCoreTransaction & TXExpandos\n ).mutationsAdded = true;\n //console.debug('$logins mutated');\n return res;\n })\n .catch((err) => {\n console.debug('Failed mutation $logins', err);\n return Promise.reject(err);\n });\n },\n };\n } else {\n return table;\n }\n }\n const { schema } = table;\n const mutsTable = mutTableMap.get(tableName)!;\n return guardedTable({\n ...table,\n mutate: (req) => {\n const trans = req.trans as DBCoreTransaction & TXExpandos;\n if (!trans.txid) return table.mutate(req); // Upgrade transactions not guarded by us.\n if (trans.disableChangeTracking) return table.mutate(req);\n if (!db.cloud.schema?.[tableName]?.markedForSync)\n return table.mutate(req);\n if (!trans.currentUser?.isLoggedIn) {\n // Unauthorized user should not log mutations.\n // Instead, after login all local data should be logged at once.\n return table.mutate(req);\n }\n\n return req.type === 'deleteRange'\n ? table\n // Query the actual keys (needed for server sending correct rollback to us)\n .query({\n query: { range: req.range, index: schema.primaryKey },\n trans: req.trans,\n values: false,\n })\n // Do a delete request instead, but keep the criteria info for the server to execute\n .then((res) => {\n return mutateAndLog({\n type: 'delete',\n keys: res.result,\n trans: req.trans,\n criteria: { index: null, range: req.range },\n });\n })\n : mutateAndLog(req);\n },\n });\n\n function mutateAndLog(\n req: DBCoreDeleteRequest | DBCoreAddRequest | DBCorePutRequest\n ): Promise<DBCoreMutateResponse> {\n const trans = req.trans as DBCoreTransaction & TXExpandos;\n trans.mutationsAdded = true;\n const {\n txid,\n currentUser: { userId },\n } = trans;\n const { type } = req;\n const opNo = ++trans.opCount;\n\n return table.mutate(req).then((res) => {\n const { numFailures: hasFailures, failures } = res;\n let keys = type === 'delete' ? req.keys! : res.results!;\n let values = 'values' in req ? req.values : [];\n let updates = 'updates' in req && req.updates!;\n if (hasFailures) {\n keys = keys.filter((_, idx) => !failures[idx]);\n values = values.filter((_, idx) => !failures[idx]);\n }\n const ts = Date.now();\n\n const mut: DBOperation =\n req.type === 'delete'\n ? {\n type: 'delete',\n ts,\n opNo,\n keys,\n criteria: req.criteria,\n txid,\n userId,\n }\n : req.type === 'add'\n ? {\n type: 'insert',\n ts,\n opNo,\n keys,\n txid,\n userId,\n values,\n }\n : req.criteria && req.changeSpec\n ? {\n // Common changeSpec for all keys\n type: 'modify',\n ts,\n opNo,\n keys,\n criteria: req.criteria,\n changeSpec: req.changeSpec,\n txid,\n userId,\n }\n : updates\n ? {\n // One changeSpec per key\n type: 'update',\n ts,\n opNo,\n keys: updates.keys,\n changeSpecs: updates.changeSpecs,\n txid,\n userId,\n }\n : {\n type: 'upsert',\n ts,\n opNo,\n keys,\n values,\n txid,\n userId,\n };\n return keys.length > 0 || ('criteria' in req && req.criteria)\n ? mutsTable\n .mutate({ type: 'add', trans, values: [mut] }) // Log entry\n .then(() => res) // Return original response\n : res;\n });\n }\n },\n };\n },\n };\n}\n","import Dexie, { DbSchema } from 'dexie';\nimport { DEXIE_CLOUD_SCHEMA } from './db/DexieCloudDB';\nimport { generateTablePrefix } from './middleware-helpers/idGenerationHelpers';\n\nexport function overrideParseStoresSpec(origFunc: Function, dexie: Dexie) {\n return function(stores: {[tableName: string]: string}, dbSchema: DbSchema) {\n const storesClone = {\n ...DEXIE_CLOUD_SCHEMA,\n ...stores,\n };\n // Merge indexes of DEXIE_CLOUD_SCHEMA with stores\n Object.keys(DEXIE_CLOUD_SCHEMA).forEach((tableName: keyof typeof DEXIE_CLOUD_SCHEMA) => {\n const schemaSrc = storesClone[tableName];\n // Verify that they don't try to delete a table that is needed for access control of Dexie Cloud\n if (schemaSrc == null) {\n // They try to delete one of the built-in schema tables.\n throw new Error(`Cannot delete table ${tableName} as it is needed for access control of Dexie Cloud`);\n }\n // If not trying to override a built-in table, then we can skip this and continue to next table.\n if (!stores[tableName]) {\n // They haven't tried to declare this table. No need to merge indexes.\n return; // Continue\n }\n\n // They have declared this table. Merge indexes in case they didn't declare all indexes we need.\n const requestedIndexes = schemaSrc.split(',').map(spec => spec.trim());\n const builtInIndexes = DEXIE_CLOUD_SCHEMA[tableName].split(',').map(spec => spec.trim());\n const requestedIndexSet = new Set(requestedIndexes.map(index => index.replace(/([&*]|\\+\\+)/g, \"\")));\n // Verify that primary key is unchanged\n if (requestedIndexes[0] !== builtInIndexes[0]) {\n // Primary key must match exactly\n throw new Error(`Cannot override primary key of table ${tableName}. Please declare it as {${\n tableName}: ${\n JSON.stringify(DEXIE_CLOUD_SCHEMA[tableName])\n }`);\n }\n // Merge indexes\n for (let i=1; i<builtInIndexes.length; ++i) {\n const builtInIndex = builtInIndexes[i];\n if (!requestedIndexSet.has(builtInIndex.replace(/([&*]|\\+\\+)/g, \"\"))) {\n // Add built-in index if not already requested\n storesClone[tableName] += `,${builtInIndex}`;\n }\n }\n });\n\n // Populate dexie.cloud.schema\n const cloudSchema = dexie.cloud.schema || (dexie.cloud.schema = {});\n const allPrefixes = new Set<string>();\n Object.keys(storesClone).forEach(tableName => {\n const schemaSrc = storesClone[tableName];\n const cloudTableSchema = cloudSchema[tableName] || (cloudSchema[tableName] = {});\n if (schemaSrc != null) {\n if (/^\\@/.test(schemaSrc)) {\n storesClone[tableName] = storesClone[tableName].substr(1);\n cloudTableSchema.generatedGlobalId = true;\n cloudTableSchema.idPrefix = generateTablePrefix(tableName, allPrefixes);\n allPrefixes.add(cloudTableSchema.idPrefix);\n }\n if (!/^\\$/.test(tableName)) {\n storesClone[`$${tableName}_mutations`] = '++rev';\n cloudTableSchema.markedForSync = true;\n }\n if (cloudTableSchema.deleted) {\n cloudTableSchema.deleted = false;\n }\n } else {\n cloudTableSchema.deleted = true;\n cloudTableSchema.markedForSync = false;\n storesClone[`$${tableName}_mutations`] = null;\n }\n });\n const rv = origFunc.call(this, storesClone, dbSchema);\n return rv;\n }\n}\n","import { DexieCloudSchema } from 'dexie-cloud-common';\nimport { DexieCloudDB } from './db/DexieCloudDB';\nimport { DexieCloudOptions } from './DexieCloudOptions';\nimport { performGuardedJob } from './sync/performGuardedJob';\nimport { sync } from './sync/sync';\n\nexport async function performInitialSync(\n db: DexieCloudDB,\n cloudOptions: DexieCloudOptions,\n cloudSchema: DexieCloudSchema\n) {\n console.debug('Performing initial sync'); \n await sync(db, cloudOptions, cloudSchema, { isInitialSync: true });\n console.debug('Done initial sync');\n}\n","import { BehaviorSubject, fromEvent, merge, of } from 'rxjs';\nimport {\n debounceTime,\n delay,\n distinctUntilChanged,\n filter,\n map,\n skip,\n startWith,\n switchMap,\n tap,\n} from 'rxjs/operators';\n\nconst USER_INACTIVITY_TIMEOUT = 180_000; // 3 minutes\nconst ACTIVE_WAIT_TIME = 0; // For now, it's nicer to react instantly on user activity\nconst INACTIVE_WAIT_TIME = 20_000;\n\n// This observable will be emitted to later down....\nexport const userIsActive = new BehaviorSubject<boolean>(true);\n\n// A refined version that waits before changing state:\n// * Wait another INACTIVE_WAIT_TIME before accepting that the user is inactive.\n// Reason 1: Spare resources - no need to setup the entire websocket flow when\n// switching tabs back and forth.\n// Reason 2: Less flickering for the end user when switching tabs back and forth.\n// * Wait another ACTIVE_WAIT_TIME before accepting that the user is active.\n// Possible reason to have a value here: Sparing resources if users often temporary click the tab\n// for just a short time.\nexport const userIsReallyActive = new BehaviorSubject<boolean>(true);\nuserIsActive\n .pipe(\n switchMap((isActive) => {\n //console.debug('SyncStatus: DUBB: isActive changed to', isActive);\n return isActive\n ? ACTIVE_WAIT_TIME\n ? of(true).pipe(delay(ACTIVE_WAIT_TIME))\n : of(true)\n : INACTIVE_WAIT_TIME\n ? of(false).pipe(delay(INACTIVE_WAIT_TIME))\n : of(false);}\n ),\n distinctUntilChanged()\n )\n .subscribe(userIsReallyActive);\n\n//\n// First create some corner-stone observables to build the flow on\n//\n\n// document.onvisibilitychange:\nexport const visibilityStateIsChanged =\n typeof document !== 'undefined'\n ? fromEvent(document, 'visibilitychange')\n : of({});\n\n// document.onvisibilitychange makes document hidden:\nexport const documentBecomesHidden = visibilityStateIsChanged.pipe(\n filter(() => document.visibilityState === 'hidden')\n);\n\n// document.onvisibilitychange makes document visible\nexport const documentBecomesVisible = visibilityStateIsChanged.pipe(\n filter(() => document.visibilityState === 'visible')\n);\n\n// Any of various user-activity-related events happen:\nexport const userDoesSomething =\n typeof window !== 'undefined'\n ? merge(\n documentBecomesVisible,\n fromEvent(window, 'mousedown'),\n fromEvent(window, 'mousemove'),\n fromEvent(window, 'keydown'),\n fromEvent(window, 'wheel'),\n fromEvent(window, 'touchmove')\n )\n : of({});\n\nif (typeof document !== 'undefined') {\n //\n // Now, create a final observable and start subscribing to it in order\n // to make it emit values to userIsActive BehaviourSubject (which is the\n // most important global hot observable we have here)\n //\n // Live test: https://jsitor.com/LboCDHgbn\n //\n merge(\n of(true), // Make sure something is always emitted from start\n documentBecomesHidden, // so that we can eagerly emit false!\n userDoesSomething\n )\n .pipe(\n // No matter event source, compute whether user is visible using visibilityState:\n map(() => document.visibilityState === 'visible'),\n // Make sure to emit it\n tap((isActive) => {\n if (userIsActive.value !== isActive) {\n // Emit new value unless it already has that value\n userIsActive.next(isActive);\n }\n }),\n // Now, if true was emitted, make sure to set a timeout to emit false\n // unless new user activity things happen (in that case, the timeout will be cancelled!)\n switchMap((isActive) =>\n isActive\n ? of(0).pipe(\n delay(USER_INACTIVITY_TIMEOUT - INACTIVE_WAIT_TIME),\n tap(() => userIsActive.next(false))\n )\n : of(0)\n )\n )\n .subscribe(() => {}); // Unless we subscribe nothing will be propagated to userIsActive observable\n}\n","export class TokenExpiredError extends Error {\n name = \"TokenExpiredError\";\n}\n","import { DBOperationsSet } from 'dexie-cloud-common';\nimport { BehaviorSubject, Observable, Subscriber, Subscription } from 'rxjs';\nimport { TokenExpiredError } from './authentication/TokenExpiredError';\nimport { DXCWebSocketStatus } from './DXCWebSocketStatus';\nimport { TSON } from './TSON';\n\nconst SERVER_PING_TIMEOUT = 20000;\nconst CLIENT_PING_INTERVAL = 30000;\nconst FAIL_RETRY_WAIT_TIME = 60000;\n\nexport type WSClientToServerMsg = ReadyForChangesMessage;\nexport interface ReadyForChangesMessage {\n type: 'ready';\n realmSetHash: string;\n rev: string;\n}\n\nexport type WSConnectionMsg =\n | RevisionChangedMessage\n | RealmAddedMessage\n | RealmAcceptedMessage\n | RealmRemovedMessage\n | RealmsChangedMessage\n | ChangesFromServerMessage\n | TokenExpiredMessage;\ninterface PingMessage {\n type: 'ping';\n}\n\ninterface PongMessage {\n type: 'pong';\n}\n\ninterface ErrorMessage {\n type: 'error';\n error: string;\n}\n\nexport interface ChangesFromServerMessage {\n type: 'changes';\n baseRev: string;\n realmSetHash: string;\n newRev: string;\n changes: DBOperationsSet<string>;\n}\nexport interface RevisionChangedMessage {\n type: 'rev';\n rev: string;\n}\n\nexport interface RealmAddedMessage {\n type: 'realm-added';\n realm: string;\n}\n\nexport interface RealmAcceptedMessage {\n type: 'realm-accepted';\n realm: string;\n}\n\nexport interface RealmRemovedMessage {\n type: 'realm-removed';\n realm: string;\n}\n\nexport interface RealmsChangedMessage {\n type: 'realms-changed';\n realmsHash: string;\n}\nexport interface TokenExpiredMessage {\n type: 'token-expired';\n}\n\nexport class WSObservable extends Observable<WSConnectionMsg> {\n constructor(\n databaseUrl: string,\n rev: string,\n realmSetHash: string,\n clientIdentity: string,\n messageProducer: Observable<WSClientToServerMsg>,\n webSocketStatus: BehaviorSubject<DXCWebSocketStatus>,\n token?: string,\n tokenExpiration?: Date\n ) {\n super(\n (subscriber) =>\n new WSConnection(\n databaseUrl,\n rev,\n realmSetHash,\n clientIdentity,\n token,\n tokenExpiration,\n subscriber,\n messageProducer,\n webSocketStatus\n )\n );\n }\n}\n\nlet counter = 0;\n\nexport class WSConnection extends Subscription {\n ws: WebSocket | null;\n lastServerActivity: Date;\n lastUserActivity: Date;\n lastPing: Date;\n databaseUrl: string;\n rev: string;\n realmSetHash: string;\n clientIdentity: string;\n token: string | undefined;\n tokenExpiration: Date | undefined;\n subscriber: Subscriber<WSConnectionMsg>;\n pauseUntil?: Date;\n messageProducer: Observable<WSClientToServerMsg>;\n webSocketStatus: BehaviorSubject<DXCWebSocketStatus>;\n id = ++counter;\n\n private pinger: any;\n private messageProducerSubscription: null | Subscription;\n\n constructor(\n databaseUrl: string,\n rev: string,\n realmSetHash: string,\n clientIdentity: string,\n token: string | undefined,\n tokenExpiration: Date | undefined,\n subscriber: Subscriber<WSConnectionMsg>,\n messageProducer: Observable<WSClientToServerMsg>,\n webSocketStatus: BehaviorSubject<DXCWebSocketStatus>\n ) {\n super(() => this.teardown());\n console.debug(\n 'New WebSocket Connection',\n this.id,\n token ? 'authorized' : 'unauthorized'\n );\n this.databaseUrl = databaseUrl;\n this.rev = rev;\n this.realmSetHash = realmSetHash;\n this.clientIdentity = clientIdentity;\n this.token = token;\n this.tokenExpiration = tokenExpiration;\n this.subscriber = subscriber;\n this.lastUserActivity = new Date();\n this.messageProducer = messageProducer;\n this.messageProducerSubscription = null;\n this.webSocketStatus = webSocketStatus;\n this.connect();\n }\n\n private teardown() {\n console.debug('Teardown WebSocket Connection', this.id);\n this.disconnect();\n }\n\n private disconnect() {\n this.webSocketStatus.next('disconnected');\n if (this.pinger) {\n clearInterval(this.pinger);\n this.pinger = null;\n }\n if (this.ws) {\n try {\n this.ws.close();\n } catch {}\n }\n this.ws = null;\n if (this.messageProducerSubscription) {\n this.messageProducerSubscription.unsubscribe();\n this.messageProducerSubscription = null;\n }\n }\n\n reconnecting = false;\n reconnect() {\n if (this.reconnecting) return;\n this.reconnecting = true;\n try {\n this.disconnect();\n } catch {}\n this.connect()\n .catch(() => {})\n .then(() => (this.reconnecting = false)); // finally()\n }\n\n async connect() {\n this.lastServerActivity = new Date();\n if (this.pauseUntil && this.pauseUntil > new Date()) {\n console.debug('WS not reconnecting just yet', {\n id: this.id,\n pauseUntil: this.pauseUntil,\n });\n return;\n }\n if (this.ws) {\n throw new Error(`Called connect() when a connection is already open`);\n }\n if (!this.databaseUrl)\n throw new Error(`Cannot connect without a database URL`);\n if (this.closed) {\n //console.debug('SyncStatus: DUBB: Ooops it was closed!');\n return;\n }\n if (this.tokenExpiration && this.tokenExpiration < new Date()) {\n this.subscriber.error(new TokenExpiredError()); // Will be handled in connectWebSocket.ts.\n return;\n }\n this.webSocketStatus.next('connecting');\n this.pinger = setInterval(async () => {\n if (this.closed) {\n console.debug('pinger check', this.id, 'CLOSED.');\n this.teardown();\n return;\n }\n if (this.ws) {\n try {\n this.ws.send(JSON.stringify({ type: 'ping' } as PingMessage));\n setTimeout(() => {\n console.debug(\n 'pinger setTimeout',\n this.id,\n this.pinger ? `alive` : 'dead'\n );\n if (!this.pinger) return;\n if (this.closed) {\n console.debug(\n 'pinger setTimeout',\n this.id,\n 'subscription is closed'\n );\n this.teardown();\n return;\n }\n if (\n this.lastServerActivity <\n new Date(Date.now() - SERVER_PING_TIMEOUT)\n ) {\n // Server inactive. Reconnect if user is active.\n console.debug('pinger: server is inactive');\n console.debug('pinger reconnecting');\n this.reconnect();\n } else {\n console.debug('pinger: server still active');\n }\n }, SERVER_PING_TIMEOUT);\n } catch {\n console.debug('pinger catch error', this.id, 'reconnecting');\n this.reconnect();\n }\n } else {\n console.debug('pinger', this.id, 'reconnecting');\n this.reconnect();\n }\n }, CLIENT_PING_INTERVAL);\n\n // The following vars are needed because we must know which callback to ack when server sends it's ack to us.\n const wsUrl = new URL(this.databaseUrl);\n wsUrl.protocol = wsUrl.protocol === 'http:' ? 'ws' : 'wss';\n const searchParams = new URLSearchParams();\n if (this.subscriber.closed) return;\n searchParams.set('v', '2');\n searchParams.set('rev', this.rev);\n searchParams.set('realmsHash', this.realmSetHash);\n searchParams.set('clientId', this.clientIdentity);\n if (this.token) {\n searchParams.set('token', this.token);\n }\n\n // Connect the WebSocket to given url:\n console.debug('dexie-cloud WebSocket create');\n const ws = (this.ws = new WebSocket(`${wsUrl}/changes?${searchParams}`));\n //ws.binaryType = \"arraybuffer\"; // For future when subscribing to actual changes.\n\n ws.onclose = (event: Event) => {\n if (!this.pinger) return;\n console.debug('dexie-cloud WebSocket onclosed', this.id);\n this.reconnect();\n };\n\n ws.onmessage = (event: MessageEvent) => {\n if (!this.pinger) return;\n console.debug('dexie-cloud WebSocket onmessage', event.data);\n\n this.lastServerActivity = new Date();\n try {\n const msg = TSON.parse(event.data) as\n | WSConnectionMsg\n | PongMessage\n | ErrorMessage;\n if (msg.type === 'error') {\n throw new Error(`Error message from dexie-cloud: ${msg.error}`);\n }\n if (msg.type === 'rev') {\n this.rev = msg.rev; // No meaning but seems reasonable.\n }\n if (msg.type !== 'pong') {\n this.subscriber.next(msg);\n }\n } catch (e) {\n this.subscriber.error(e);\n }\n };\n\n try {\n let everConnected = false;\n await new Promise((resolve, reject) => {\n ws.onopen = (event) => {\n console.debug('dexie-cloud WebSocket onopen');\n everConnected = true;\n resolve(null);\n };\n ws.onerror = (event: ErrorEvent) => {\n if (!everConnected) {\n const error = event.error || new Error('WebSocket Error');\n this.subscriber.error(error);\n this.webSocketStatus.next('error');\n reject(error);\n } else {\n this.reconnect();\n }\n };\n });\n this.messageProducerSubscription = this.messageProducer.subscribe(\n (msg) => {\n if (!this.closed) {\n if (\n msg.type === 'ready' &&\n this.webSocketStatus.value !== 'connected'\n ) {\n this.webSocketStatus.next('connected');\n }\n this.ws?.send(TSON.stringify(msg));\n }\n }\n );\n } catch (error) {\n this.pauseUntil = new Date(Date.now() + FAIL_RETRY_WAIT_TIME);\n }\n }\n}\n","export class InvalidLicenseError extends Error {\n name = 'InvalidLicenseError';\n license?: 'expired' | 'deactivated';\n constructor(license?: 'expired' | 'deactivated') {\n super(\n license === 'expired'\n ? `License expired`\n : license === 'deactivated'\n ? `User deactivated`\n : 'Invalid license'\n );\n if (license) {\n this.license = license;\n }\n }\n}\n","import { BehaviorSubject, from, Observable, of, throwError } from 'rxjs';\nimport {\n catchError,\n debounceTime,\n delay,\n distinctUntilChanged,\n filter,\n map,\n switchMap,\n take,\n tap,\n} from 'rxjs/operators';\nimport { refreshAccessToken } from '../authentication/authenticate';\nimport { DexieCloudDB } from '../db/DexieCloudDB';\nimport { PersistedSyncState } from '../db/entities/PersistedSyncState';\nimport { computeRealmSetHash } from '../helpers/computeRealmSetHash';\nimport {\n userDoesSomething,\n userIsActive,\n userIsReallyActive,\n} from '../userIsActive';\nimport {\n ReadyForChangesMessage,\n WSConnectionMsg,\n WSObservable,\n} from '../WSObservable';\nimport { InvalidLicenseError } from '../InvalidLicenseError';\n\nfunction sleep(ms: number) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nasync function waitAndReconnectWhenUserDoesSomething(error: Error) {\n console.error(\n `WebSocket observable: error but revive when user does some active thing...`,\n error\n );\n // Sleep some seconds...\n await sleep(3000);\n // Wait til user does something (move mouse, tap, scroll, click etc)\n console.debug('waiting for someone to do something');\n await userDoesSomething.pipe(take(1)).toPromise();\n console.debug('someone did something!');\n}\n\nexport function connectWebSocket(db: DexieCloudDB) {\n if (!db.cloud.options?.databaseUrl) {\n throw new Error(`No database URL to connect WebSocket to`);\n }\n\n const messageProducer = db.messageConsumer.readyToServe.pipe(\n filter((isReady) => isReady), // When consumer is ready for new messages, produce such a message to inform server about it\n switchMap(() => db.getPersistedSyncState()), // We need the info on which server revision we are at:\n filter((syncState) => syncState && syncState.serverRevision), // We wont send anything to server before inital sync has taken place\n switchMap<PersistedSyncState, Promise<ReadyForChangesMessage>>(async (syncState) => ({\n // Produce the message to trigger server to send us new messages to consume:\n type: 'ready',\n rev: syncState.serverRevision,\n realmSetHash: await computeRealmSetHash(syncState)\n }))\n );\n\n function createObservable(): Observable<WSConnectionMsg | null> {\n return db.cloud.persistedSyncState.pipe(\n filter((syncState) => syncState?.serverRevision), // Don't connect before there's no initial sync performed.\n take(1), // Don't continue waking up whenever syncState change\n switchMap((syncState) =>\n db.cloud.currentUser.pipe(\n map((userLogin) => [userLogin, syncState] as const)\n )\n ),\n switchMap(([userLogin, syncState]) => {\n /*if (userLogin.license?.status && userLogin.license.status !== 'ok') {\n throw new InvalidLicenseError();\n }*/\n return userIsReallyActive.pipe(\n map((isActive) => [isActive ? userLogin : null, syncState] as const)\n );\n }),\n switchMap(([userLogin, syncState]) => {\n if (userLogin?.isLoggedIn && !syncState?.realms.includes(userLogin.userId!)) {\n // We're in an in-between state when user is logged in but the user's realms are not yet synced.\n // Don't make this change reconnect the websocket just yet. Wait till syncState is updated\n // to iclude the user's realm.\n return db.cloud.persistedSyncState.pipe(\n filter((syncState) => syncState?.realms.includes(userLogin!.userId!) || false),\n take(1),\n map((syncState) => [userLogin, syncState] as const)\n );\n }\n return new BehaviorSubject([userLogin, syncState] as const);\n }),\n switchMap(\n async ([userLogin, syncState]) =>\n [userLogin, await computeRealmSetHash(syncState!)] as const\n ),\n distinctUntilChanged(([prevUser, prevHash], [currUser, currHash]) => prevUser === currUser && prevHash === currHash ),\n switchMap(([userLogin, realmSetHash]) => {\n // Let server end query changes from last entry of same client-ID and forward.\n // If no new entries, server won't bother the client. If new entries, server sends only those\n // and the baseRev of the last from same client-ID.\n if (userLogin) {\n return new WSObservable(\n db.cloud.options!.databaseUrl,\n db.cloud.persistedSyncState!.value!.serverRevision,\n realmSetHash,\n db.cloud.persistedSyncState!.value!.clientIdentity,\n messageProducer,\n db.cloud.webSocketStatus,\n userLogin.accessToken,\n userLogin.accessTokenExpiration\n );\n } else {\n return from([] as WSConnectionMsg[]);\n }}),\n catchError((error) => {\n if (error?.name === 'TokenExpiredError') {\n console.debug(\n 'WebSocket observable: Token expired. Refreshing token...'\n );\n return of(true).pipe(\n switchMap(async () => {\n // Refresh access token\n const user = await db.getCurrentUser();\n const refreshedLogin = await refreshAccessToken(\n db.cloud.options!.databaseUrl,\n user\n );\n // Persist updated access token\n await db.table('$logins').update(user.userId, {\n accessToken: refreshedLogin.accessToken,\n accessTokenExpiration: refreshedLogin.accessTokenExpiration,\n claims: refreshedLogin.claims,\n license: refreshedLogin.license,\n });\n }),\n switchMap(() => createObservable())\n );\n } else {\n return throwError(()=>error);\n }\n }),\n catchError((error) => {\n db.cloud.webSocketStatus.next(\"error\");\n if (error instanceof InvalidLicenseError) {\n // Don't retry. Just throw and don't try connect again.\n return throwError(() => error);\n }\n return from(waitAndReconnectWhenUserDoesSomething(error)).pipe(\n switchMap(() => createObservable())\n );\n })\n ) as Observable<WSConnectionMsg | null>;\n }\n\n return createObservable().subscribe({\n next: (msg) => {\n if (msg) {\n console.debug('WS got message', msg);\n db.messageConsumer.enqueue(msg);\n }\n },\n error: (error) => {\n console.error('WS got error', error);\n },\n complete: () => {\n console.debug('WS observable completed');\n },\n });\n}\n","import { DexieCloudDB } from \"../db/DexieCloudDB\";\nimport { sync } from \"./sync\";\n\nexport async function isSyncNeeded(db: DexieCloudDB) {\n return db.cloud.options?.databaseUrl && db.cloud.schema\n ? await sync(db, db.cloud.options, db.cloud.schema, {justCheckIfNeeded: true})\n : false;\n}\n","import { DexieCloudDB } from \"../db/DexieCloudDB\";\n\nexport function performGuardedJob<T>(\n db: DexieCloudDB,\n jobName: string,\n job: () => Promise<T>\n): Promise<T> {\n if (typeof navigator === 'undefined' || !navigator.locks) {\n // No support for guarding jobs. IE11, node.js, etc.\n return job();\n }\n return navigator.locks.request(db.name + '|' + jobName, () => job());\n}\n","import { IS_SERVICE_WORKER } from '../helpers/IS_SERVICE_WORKER';\nimport { performGuardedJob } from './performGuardedJob';\nimport { DexieCloudDB } from '../db/DexieCloudDB';\nimport { sync, CURRENT_SYNC_WORKER, SyncOptions } from './sync';\nimport { DexieCloudOptions } from '../DexieCloudOptions';\nimport { assert, DexieCloudSchema } from 'dexie-cloud-common';\nimport { checkSyncRateLimitDelay } from './ratelimit';\n\nconst ongoingSyncs = new WeakMap<\n DexieCloudDB,\n { promise: Promise<void>; pull: boolean }\n>();\n\nexport function syncIfPossible(\n db: DexieCloudDB,\n cloudOptions: DexieCloudOptions,\n cloudSchema: DexieCloudSchema,\n options?: SyncOptions\n) {\n const ongoing = ongoingSyncs.get(db);\n if (ongoing) {\n if (ongoing.pull || options?.purpose === 'push') {\n console.debug('syncIfPossible(): returning the ongoing sync promise.');\n return ongoing.promise;\n } else {\n // Ongoing sync may never do anything in case there are no outstanding changes\n // to sync (because its purpose was \"push\" not \"pull\")\n // Now, however, we are asked to do a sync with the purpose of \"pull\"\n // We want to optimize here. We must wait for the ongoing to complete\n // and then, if the ongoing sync never resulted in a sync request,\n // we must redo the sync.\n\n // To inspect what is happening in the ongoing request, let's subscribe\n // to db.cloud.syncState and look for if it is doing any \"pulling\" phase:\n let hasPullTakenPlace = false;\n const subscription = db.cloud.syncState.subscribe((syncState) => {\n if (syncState.phase === 'pulling') {\n hasPullTakenPlace = true;\n }\n });\n // Ok, so now we are watching. At the same time, wait for the ongoing to complete\n // and when it has completed, check if we're all set or if we need to redo\n // the call:\n return (\n ongoing.promise\n // This is a finally block but we are still running tests on\n // browsers that don't support it, so need to do it like this:\n .then(() => {\n subscription.unsubscribe();\n })\n .catch((error) => {\n subscription.unsubscribe();\n return Promise.reject(error);\n })\n .then(() => {\n if (!hasPullTakenPlace) {\n // No pull took place in the ongoing sync but the caller had \"pull\" as\n // an explicit purpose of this call - so we need to redo the call!\n return syncIfPossible(db, cloudOptions, cloudSchema, options);\n }\n })\n );\n }\n }\n\n const promise = _syncIfPossible();\n ongoingSyncs.set(db, { promise, pull: options?.purpose !== 'push' });\n return promise;\n\n async function _syncIfPossible() {\n try {\n // Check if should delay sync due to ratelimit:\n await checkSyncRateLimitDelay(db);\n \n // Check if we need to lock the sync job. Not needed if we are the service worker.\n if (db.cloud.isServiceWorkerDB) {\n // We are the dedicated sync SW:\n await sync(db, cloudOptions, cloudSchema, options);\n } else if (!db.cloud.usingServiceWorker) {\n // We use a flow that is better suited for the case when multiple workers want to\n // do the same thing.\n await performGuardedJob(db, CURRENT_SYNC_WORKER, () =>\n sync(db, cloudOptions, cloudSchema, options)\n );\n } else {\n assert(false);\n throw new Error('Internal _syncIfPossible() - invalid precondition - should not have been called.');\n }\n ongoingSyncs.delete(db);\n console.debug('Done sync');\n } catch (error) {\n ongoingSyncs.delete(db);\n console.error(`Failed to sync client changes`, error);\n throw error; // Make sure we rethrow error so that sync event is retried.\n // I don't think we should setTimout or so here.\n // Unless server tells us to in some response.\n // Then we could follow that advice but not by waiting here but by registering\n // Something that triggers an event listened to in startPushWorker()\n }\n }\n}\n","export const SECONDS = 1000;\nexport const MINUTES = 60 * SECONDS;\nexport const HOURS = 60 * MINUTES;\nexport const DAYS = 24 * HOURS;\nexport const WEEKS = 7 * DAYS;\n","import Dexie from 'dexie';\nimport { Subscription } from 'rxjs';\nimport { syncIfPossible } from './syncIfPossible';\nimport { DexieCloudDB } from '../db/DexieCloudDB';\nimport { MINUTES } from '../helpers/date-constants';\nimport { DexieCloudOptions } from '../DexieCloudOptions';\nimport { DexieCloudSchema } from 'dexie-cloud-common';\n\nexport function LocalSyncWorker(\n db: DexieCloudDB,\n cloudOptions: DexieCloudOptions,\n cloudSchema: DexieCloudSchema\n) {\n let localSyncEventSubscription: Subscription | null = null;\n //let syncHandler: ((event: Event) => void) | null = null;\n //let periodicSyncHandler: ((event: Event) => void) | null = null;\n let cancelToken = { cancelled: false };\n\n let retryHandle: any = null;\n let retryPurpose: 'pull' | 'push' | null = null; // \"pull\" is superset of \"push\"\n\n function syncAndRetry(purpose: 'pull' | 'push', retryNum = 1) {\n // Use setTimeout() to get onto a clean stack and\n // break free from possible active transaction:\n setTimeout(() => {\n if (retryHandle) clearTimeout(retryHandle);\n const combPurpose = retryPurpose === 'pull' ? 'pull' : purpose;\n retryHandle = null;\n retryPurpose = null;\n syncIfPossible(db, cloudOptions, cloudSchema, {\n cancelToken,\n retryImmediatelyOnFetchError: true, // workaround for \"net::ERR_NETWORK_CHANGED\" in chrome.\n purpose: combPurpose,\n }).catch((e) => {\n console.error('error in syncIfPossible()', e);\n if (cancelToken.cancelled) {\n stop();\n } else if (retryNum < 3) {\n\n // Mimic service worker sync event: retry 3 times\n // * first retry after 5 minutes\n // * second retry 15 minutes later\n const combinedPurpose = retryPurpose && retryPurpose === 'pull' ? 'pull' : purpose;\n\n const handle = setTimeout(\n () => syncAndRetry(combinedPurpose, retryNum + 1),\n [0, 5, 15][retryNum] * MINUTES\n );\n\n // Cancel the previous retryHandle if it exists to avoid scheduling loads of retries.\n if (retryHandle) clearTimeout(retryHandle);\n retryHandle = handle;\n retryPurpose = combinedPurpose;\n }\n });\n }, 0);\n }\n\n const start = () => {\n // Sync eagerly whenever a change has happened (+ initially when there's no syncState yet)\n // This initial subscribe will also trigger an sync also now.\n console.debug('Starting LocalSyncWorker', db.localSyncEvent['id']);\n localSyncEventSubscription = db.localSyncEvent.subscribe(({ purpose }) => {\n try {\n syncAndRetry(purpose || 'pull');\n } catch (err) {\n console.error('What-the....', err);\n }\n });\n //setTimeout(()=>db.localSyncEvent.next({}), 5000);\n };\n\n const stop = () => {\n console.debug('Stopping LocalSyncWorker');\n cancelToken.cancelled = true;\n if (localSyncEventSubscription) localSyncEventSubscription.unsubscribe();\n };\n\n return {\n start,\n stop,\n };\n}\n","import { DexieCloudSchema } from \"dexie-cloud-common\";\nimport { DexieCloudOptions } from \"./DexieCloudOptions\";\n\nexport function updateSchemaFromOptions(schema?: DexieCloudSchema | null, options?: DexieCloudOptions | null) {\n if (schema && options) {\n if (options.unsyncedTables) {\n for (const tableName of options.unsyncedTables) {\n if (schema[tableName]) {\n schema[tableName].markedForSync = false;\n }\n }\n }\n }\n}","import Dexie from \"dexie\";\nimport { DexieCloudDB } from \"./db/DexieCloudDB\";\n\nexport function verifySchema(db: DexieCloudDB) {\n for (const table of db.tables) {\n if (db.cloud.schema?.[table.name]?.markedForSync) {\n if (table.schema.primKey.auto) {\n throw new Dexie.SchemaError(\n `Table ${table.name} is both autoIncremented and synced. ` +\n `Use db.cloud.configure({unsyncedTables: [${JSON.stringify(\n table.name\n )}]}) to blacklist it from sync`\n );\n }\n if (!table.schema.primKey.keyPath) {\n throw new Dexie.SchemaError(\n `Table ${table.name} cannot be both synced and outbound. ` +\n `Use db.cloud.configure({unsyncedTables: [${JSON.stringify(\n table.name\n )}]}) to blacklist it from sync`\n );\n }\n }\n }\n}\n","var n,l,u,i,t,o,r,f={},e=[],c=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function s(n,l){for(var u in l)n[u]=l[u];return n}function a(n){var l=n.parentNode;l&&l.removeChild(n)}function h(l,u,i){var t,o,r,f={};for(r in u)\"key\"==r?t=u[r]:\"ref\"==r?o=u[r]:f[r]=u[r];if(arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):i),\"function\"==typeof l&&null!=l.defaultProps)for(r in l.defaultProps)void 0===f[r]&&(f[r]=l.defaultProps[r]);return v(l,f,t,o,null)}function v(n,i,t,o,r){var f={type:n,props:i,key:t,ref:o,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==r?++u:r};return null==r&&null!=l.vnode&&l.vnode(f),f}function y(){return{current:null}}function p(n){return n.children}function d(n,l){this.props=n,this.context=l}function _(n,l){if(null==l)return n.__?_(n.__,n.__.__k.indexOf(n)+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return\"function\"==typeof n.type?_(n):null}function k(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return k(n)}}function b(n){(!n.__d&&(n.__d=!0)&&t.push(n)&&!g.__r++||o!==l.debounceRendering)&&((o=l.debounceRendering)||setTimeout)(g)}function g(){for(var n;g.__r=t.length;)n=t.sort(function(n,l){return n.__v.__b-l.__v.__b}),t=[],n.some(function(n){var l,u,i,t,o,r;n.__d&&(o=(t=(l=n).__v).__e,(r=l.__P)&&(u=[],(i=s({},t)).__v=t.__v+1,j(r,t,i,l.__n,void 0!==r.ownerSVGElement,null!=t.__h?[o]:null,u,null==o?_(t):o,t.__h),z(u,t),t.__e!=o&&k(t)))})}function w(n,l,u,i,t,o,r,c,s,a){var h,y,d,k,b,g,w,x=i&&i.__k||e,C=x.length;for(u.__k=[],h=0;h<l.length;h++)if(null!=(k=u.__k[h]=null==(k=l[h])||\"boolean\"==typeof k?null:\"string\"==typeof k||\"number\"==typeof k||\"bigint\"==typeof k?v(null,k,null,null,k):Array.isArray(k)?v(p,{children:k},null,null,null):k.__b>0?v(k.type,k.props,k.key,null,k.__v):k)){if(k.__=u,k.__b=u.__b+1,null===(d=x[h])||d&&k.key==d.key&&k.type===d.type)x[h]=void 0;else for(y=0;y<C;y++){if((d=x[y])&&k.key==d.key&&k.type===d.type){x[y]=void 0;break}d=null}j(n,k,d=d||f,t,o,r,c,s,a),b=k.__e,(y=k.ref)&&d.ref!=y&&(w||(w=[]),d.ref&&w.push(d.ref,null,k),w.push(y,k.__c||b,k)),null!=b?(null==g&&(g=b),\"function\"==typeof k.type&&k.__k===d.__k?k.__d=s=m(k,s,n):s=A(n,k,d,x,b,s),\"function\"==typeof u.type&&(u.__d=s)):s&&d.__e==s&&s.parentNode!=n&&(s=_(d))}for(u.__e=g,h=C;h--;)null!=x[h]&&(\"function\"==typeof u.type&&null!=x[h].__e&&x[h].__e==u.__d&&(u.__d=_(i,h+1)),N(x[h],x[h]));if(w)for(h=0;h<w.length;h++)M(w[h],w[++h],w[++h])}function m(n,l,u){for(var i,t=n.__k,o=0;t&&o<t.length;o++)(i=t[o])&&(i.__=n,l=\"function\"==typeof i.type?m(i,l,u):A(u,i,i,t,i.__e,l));return l}function x(n,l){return l=l||[],null==n||\"boolean\"==typeof n||(Array.isArray(n)?n.some(function(n){x(n,l)}):l.push(n)),l}function A(n,l,u,i,t,o){var r,f,e;if(void 0!==l.__d)r=l.__d,l.__d=void 0;else if(null==u||t!=o||null==t.parentNode)n:if(null==o||o.parentNode!==n)n.appendChild(t),r=null;else{for(f=o,e=0;(f=f.nextSibling)&&e<i.length;e+=2)if(f==t)break n;n.insertBefore(t,o),r=o}return void 0!==r?r:t.nextSibling}function C(n,l,u,i,t){var o;for(o in u)\"children\"===o||\"key\"===o||o in l||H(n,o,null,u[o],i);for(o in l)t&&\"function\"!=typeof l[o]||\"children\"===o||\"key\"===o||\"value\"===o||\"checked\"===o||u[o]===l[o]||H(n,o,l[o],u[o],i)}function $(n,l,u){\"-\"===l[0]?n.setProperty(l,u):n[l]=null==u?\"\":\"number\"!=typeof u||c.test(l)?u:u+\"px\"}function H(n,l,u,i,t){var o;n:if(\"style\"===l)if(\"string\"==typeof u)n.style.cssText=u;else{if(\"string\"==typeof i&&(n.style.cssText=i=\"\"),i)for(l in i)u&&l in u||$(n.style,l,\"\");if(u)for(l in u)i&&u[l]===i[l]||$(n.style,l,u[l])}else if(\"o\"===l[0]&&\"n\"===l[1])o=l!==(l=l.replace(/Capture$/,\"\")),l=l.toLowerCase()in n?l.toLowerCase().slice(2):l.slice(2),n.l||(n.l={}),n.l[l+o]=u,u?i||n.addEventListener(l,o?T:I,o):n.removeEventListener(l,o?T:I,o);else if(\"dangerouslySetInnerHTML\"!==l){if(t)l=l.replace(/xlink(H|:h)/,\"h\").replace(/sName$/,\"s\");else if(\"href\"!==l&&\"list\"!==l&&\"form\"!==l&&\"tabIndex\"!==l&&\"download\"!==l&&l in n)try{n[l]=null==u?\"\":u;break n}catch(n){}\"function\"==typeof u||(null!=u&&(!1!==u||\"a\"===l[0]&&\"r\"===l[1])?n.setAttribute(l,u):n.removeAttribute(l))}}function I(n){this.l[n.type+!1](l.event?l.event(n):n)}function T(n){this.l[n.type+!0](l.event?l.event(n):n)}function j(n,u,i,t,o,r,f,e,c){var a,h,v,y,_,k,b,g,m,x,A,C,$,H=u.type;if(void 0!==u.constructor)return null;null!=i.__h&&(c=i.__h,e=u.__e=i.__e,u.__h=null,r=[e]),(a=l.__b)&&a(u);try{n:if(\"function\"==typeof H){if(g=u.props,m=(a=H.contextType)&&t[a.__c],x=a?m?m.props.value:a.__:t,i.__c?b=(h=u.__c=i.__c).__=h.__E:(\"prototype\"in H&&H.prototype.render?u.__c=h=new H(g,x):(u.__c=h=new d(g,x),h.constructor=H,h.render=O),m&&m.sub(h),h.props=g,h.state||(h.state={}),h.context=x,h.__n=t,v=h.__d=!0,h.__h=[]),null==h.__s&&(h.__s=h.state),null!=H.getDerivedStateFromProps&&(h.__s==h.state&&(h.__s=s({},h.__s)),s(h.__s,H.getDerivedStateFromProps(g,h.__s))),y=h.props,_=h.state,v)null==H.getDerivedStateFromProps&&null!=h.componentWillMount&&h.componentWillMount(),null!=h.componentDidMount&&h.__h.push(h.componentDidMount);else{if(null==H.getDerivedStateFromProps&&g!==y&&null!=h.componentWillReceiveProps&&h.componentWillReceiveProps(g,x),!h.__e&&null!=h.shouldComponentUpdate&&!1===h.shouldComponentUpdate(g,h.__s,x)||u.__v===i.__v){h.props=g,h.state=h.__s,u.__v!==i.__v&&(h.__d=!1),h.__v=u,u.__e=i.__e,u.__k=i.__k,u.__k.forEach(function(n){n&&(n.__=u)}),h.__h.length&&f.push(h);break n}null!=h.componentWillUpdate&&h.componentWillUpdate(g,h.__s,x),null!=h.componentDidUpdate&&h.__h.push(function(){h.componentDidUpdate(y,_,k)})}if(h.context=x,h.props=g,h.__v=u,h.__P=n,A=l.__r,C=0,\"prototype\"in H&&H.prototype.render)h.state=h.__s,h.__d=!1,A&&A(u),a=h.render(h.props,h.state,h.context);else do{h.__d=!1,A&&A(u),a=h.render(h.props,h.state,h.context),h.state=h.__s}while(h.__d&&++C<25);h.state=h.__s,null!=h.getChildContext&&(t=s(s({},t),h.getChildContext())),v||null==h.getSnapshotBeforeUpdate||(k=h.getSnapshotBeforeUpdate(y,_)),$=null!=a&&a.type===p&&null==a.key?a.props.children:a,w(n,Array.isArray($)?$:[$],u,i,t,o,r,f,e,c),h.base=u.__e,u.__h=null,h.__h.length&&f.push(h),b&&(h.__E=h.__=null),h.__e=!1}else null==r&&u.__v===i.__v?(u.__k=i.__k,u.__e=i.__e):u.__e=L(i.__e,u,i,t,o,r,f,c);(a=l.diffed)&&a(u)}catch(n){u.__v=null,(c||null!=r)&&(u.__e=e,u.__h=!!c,r[r.indexOf(e)]=null),l.__e(n,u,i)}}function z(n,u){l.__c&&l.__c(u,n),n.some(function(u){try{n=u.__h,u.__h=[],n.some(function(n){n.call(u)})}catch(n){l.__e(n,u.__v)}})}function L(l,u,i,t,o,r,e,c){var s,h,v,y=i.props,p=u.props,d=u.type,k=0;if(\"svg\"===d&&(o=!0),null!=r)for(;k<r.length;k++)if((s=r[k])&&\"setAttribute\"in s==!!d&&(d?s.localName===d:3===s.nodeType)){l=s,r[k]=null;break}if(null==l){if(null===d)return document.createTextNode(p);l=o?document.createElementNS(\"http://www.w3.org/2000/svg\",d):document.createElement(d,p.is&&p),r=null,c=!1}if(null===d)y===p||c&&l.data===p||(l.data=p);else{if(r=r&&n.call(l.childNodes),h=(y=i.props||f).dangerouslySetInnerHTML,v=p.dangerouslySetInnerHTML,!c){if(null!=r)for(y={},k=0;k<l.attributes.length;k++)y[l.attributes[k].name]=l.attributes[k].value;(v||h)&&(v&&(h&&v.__html==h.__html||v.__html===l.innerHTML)||(l.innerHTML=v&&v.__html||\"\"))}if(C(l,p,y,o,c),v)u.__k=[];else if(k=u.props.children,w(l,Array.isArray(k)?k:[k],u,i,t,o&&\"foreignObject\"!==d,r,e,r?r[0]:i.__k&&_(i,0),c),null!=r)for(k=r.length;k--;)null!=r[k]&&a(r[k]);c||(\"value\"in p&&void 0!==(k=p.value)&&(k!==l.value||\"progress\"===d&&!k||\"option\"===d&&k!==y.value)&&H(l,\"value\",k,y.value,!1),\"checked\"in p&&void 0!==(k=p.checked)&&k!==l.checked&&H(l,\"checked\",k,y.checked,!1))}return l}function M(n,u,i){try{\"function\"==typeof n?n(u):n.current=u}catch(n){l.__e(n,i)}}function N(n,u,i){var t,o;if(l.unmount&&l.unmount(n),(t=n.ref)&&(t.current&&t.current!==n.__e||M(t,null,u)),null!=(t=n.__c)){if(t.componentWillUnmount)try{t.componentWillUnmount()}catch(n){l.__e(n,u)}t.base=t.__P=null}if(t=n.__k)for(o=0;o<t.length;o++)t[o]&&N(t[o],u,\"function\"!=typeof n.type);i||null==n.__e||a(n.__e),n.__e=n.__d=void 0}function O(n,l,u){return this.constructor(n,u)}function P(u,i,t){var o,r,e;l.__&&l.__(u,i),r=(o=\"function\"==typeof t)?null:t&&t.__k||i.__k,e=[],j(i,u=(!o&&t||i).__k=h(p,null,[u]),r||f,f,void 0!==i.ownerSVGElement,!o&&t?[t]:r?null:i.firstChild?n.call(i.childNodes):null,e,!o&&t?t:r?r.__e:i.firstChild,o),z(e,u)}function S(n,l){P(n,l,S)}function q(l,u,i){var t,o,r,f=s({},l.props);for(r in u)\"key\"==r?t=u[r]:\"ref\"==r?o=u[r]:f[r]=u[r];return arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):i),v(l.type,f,t||l.key,o||l.ref,null)}function B(n,l){var u={__c:l=\"__cC\"+r++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var u,i;return this.getChildContext||(u=[],(i={})[l]=this,this.getChildContext=function(){return i},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.some(b)},this.sub=function(n){u.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u.splice(u.indexOf(n),1),l&&l.call(n)}}),n.children}};return u.Provider.__=u.Consumer.contextType=u}n=e.slice,l={__e:function(n,l,u,i){for(var t,o,r;l=l.__;)if((t=l.__c)&&!t.__)try{if((o=t.constructor)&&null!=o.getDerivedStateFromError&&(t.setState(o.getDerivedStateFromError(n)),r=t.__d),null!=t.componentDidCatch&&(t.componentDidCatch(n,i||{}),r=t.__d),r)return t.__E=t}catch(l){n=l}throw n}},u=0,i=function(n){return null!=n&&void 0===n.constructor},d.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=s({},this.state),\"function\"==typeof n&&(n=n(s({},u),this.props)),n&&s(u,n),null!=n&&this.__v&&(l&&this.__h.push(l),b(this))},d.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),b(this))},d.prototype.render=p,t=[],g.__r=0,r=0;export{P as render,S as hydrate,h as createElement,h,p as Fragment,y as createRef,i as isValidElement,d as Component,q as cloneElement,B as createContext,x as toChildArray,l as options};\n//# sourceMappingURL=preact.module.js.map\n","export const Styles: { [styleAlias: string]: Partial<CSSStyleDeclaration> | any} = {\n Error: {\n color: \"red\",\n },\n Alert: {\n error: {\n color: \"red\",\n fontWeight: \"bold\"\n },\n warning: {\n color: \"#f80\",\n fontWeight: \"bold\"\n },\n info: {\n color: \"black\"\n }\n },\n Darken: {\n position: \"fixed\",\n top: 0,\n left: 0,\n opacity: 0.5,\n backgroundColor: \"#000\",\n width: \"100vw\",\n height: \"100vh\",\n zIndex: 150,\n webkitBackdropFilter: \"blur(2px)\",\n backdropFilter: \"blur(2px)\",\n },\n DialogOuter: {\n position: \"fixed\",\n top: 0,\n left: 0,\n width: \"100vw\",\n height: \"100vh\",\n zIndex: 150,\n alignItems: \"center\",\n display: \"flex\",\n justifyContent: \"center\",\n },\n DialogInner: {\n position: \"relative\",\n color: \"#222\",\n backgroundColor: \"#fff\",\n padding: \"30px\",\n marginBottom: \"2em\",\n maxWidth: \"90%\",\n maxHeight: \"90%\",\n overflowY: \"auto\",\n border: \"3px solid #3d3d5d\",\n borderRadius: \"8px\",\n boxShadow: \"0 0 80px 10px #666\",\n width: \"auto\",\n fontFamily: \"sans-serif\",\n },\n Input: {\n height: \"35px\",\n width: \"17em\",\n borderColor: \"#ccf4\",\n outline: \"none\",\n fontSize: \"17pt\",\n padding: \"8px\"\n \n }\n};\n","import { Styles } from './Styles';\nimport { ComponentChildren, h } from 'preact';\n\nexport function Dialog({ children, className }: { children?: ComponentChildren, className?: string }) {\n return (\n <div className={className}>\n <div style={Styles.Darken} />\n <div style={Styles.DialogOuter}>\n <div style={Styles.DialogInner}>{children}</div>\n </div>\n </div>\n );\n}\n","import{options as n}from\"preact\";var t,r,u,i,o=0,c=[],f=[],e=n.__b,a=n.__r,v=n.diffed,l=n.__c,m=n.unmount;function d(t,u){n.__h&&n.__h(r,t,o||u),o=0;var i=r.__H||(r.__H={__:[],__h:[]});return t>=i.__.length&&i.__.push({__V:f}),i.__[t]}function p(n){return o=1,y(z,n)}function y(n,u,i){var o=d(t++,2);if(o.t=n,!o.__c&&(o.__=[i?i(u):z(void 0,u),function(n){var t=o.__N?o.__N[0]:o.__[0],r=o.t(t,n);t!==r&&(o.__N=[r,o.__[1]],o.__c.setState({}))}],o.__c=r,!r.u)){r.u=!0;var c=r.shouldComponentUpdate;r.shouldComponentUpdate=function(n,t,r){if(!o.__c.__H)return!0;var u=o.__c.__H.__.filter(function(n){return n.__c});if(u.every(function(n){return!n.__N}))return!c||c.call(this,n,t,r);var i=!1;return u.forEach(function(n){if(n.__N){var t=n.__[0];n.__=n.__N,n.__N=void 0,t!==n.__[0]&&(i=!0)}}),!!i&&(!c||c.call(this,n,t,r))}}return o.__N||o.__}function h(u,i){var o=d(t++,3);!n.__s&&w(o.__H,i)&&(o.__=u,o.i=i,r.__H.__h.push(o))}function s(u,i){var o=d(t++,4);!n.__s&&w(o.__H,i)&&(o.__=u,o.i=i,r.__h.push(o))}function _(n){return o=5,F(function(){return{current:n}},[])}function A(n,t,r){o=6,s(function(){return\"function\"==typeof n?(n(t()),function(){return n(null)}):n?(n.current=t(),function(){return n.current=null}):void 0},null==r?r:r.concat(n))}function F(n,r){var u=d(t++,7);return w(u.__H,r)?(u.__V=n(),u.i=r,u.__h=n,u.__V):u.__}function T(n,t){return o=8,F(function(){return n},t)}function q(n){var u=r.context[n.__c],i=d(t++,9);return i.c=n,u?(null==i.__&&(i.__=!0,u.sub(r)),u.props.value):n.__}function x(t,r){n.useDebugValue&&n.useDebugValue(r?r(t):t)}function V(n){var u=d(t++,10),i=p();return u.__=n,r.componentDidCatch||(r.componentDidCatch=function(n){u.__&&u.__(n),i[1](n)}),[i[0],function(){i[1](void 0)}]}function b(){for(var t;t=c.shift();)if(t.__P&&t.__H)try{t.__H.__h.forEach(j),t.__H.__h.forEach(k),t.__H.__h=[]}catch(r){t.__H.__h=[],n.__e(r,t.__v)}}n.__b=function(n){r=null,e&&e(n)},n.__r=function(n){a&&a(n),t=0;var i=(r=n.__c).__H;i&&(u===r?(i.__h=[],r.__h=[],i.__.forEach(function(n){n.__N&&(n.__=n.__N),n.__V=f,n.__N=n.i=void 0})):(i.__h.forEach(j),i.__h.forEach(k),i.__h=[])),u=r},n.diffed=function(t){v&&v(t);var o=t.__c;o&&o.__H&&(o.__H.__h.length&&(1!==c.push(o)&&i===n.requestAnimationFrame||((i=n.requestAnimationFrame)||function(n){var t,r=function(){clearTimeout(u),g&&cancelAnimationFrame(t),setTimeout(n)},u=setTimeout(r,100);g&&(t=requestAnimationFrame(r))})(b)),o.__H.__.forEach(function(n){n.i&&(n.__H=n.i),n.__V!==f&&(n.__=n.__V),n.i=void 0,n.__V=f})),u=r=null},n.__c=function(t,r){r.some(function(t){try{t.__h.forEach(j),t.__h=t.__h.filter(function(n){return!n.__||k(n)})}catch(u){r.some(function(n){n.__h&&(n.__h=[])}),r=[],n.__e(u,t.__v)}}),l&&l(t,r)},n.unmount=function(t){m&&m(t);var r,u=t.__c;u&&u.__H&&(u.__H.__.forEach(function(n){try{j(n)}catch(n){r=n}}),r&&n.__e(r,u.__v))};var g=\"function\"==typeof requestAnimationFrame;function j(n){var t=r,u=n.__c;\"function\"==typeof u&&(n.__c=void 0,u()),r=t}function k(n){var t=r;n.__c=n.__(),r=t}function w(n,t){return!n||n.length!==t.length||t.some(function(t,r){return t!==n[r]})}function z(n,t){return\"function\"==typeof t?t(n):t}export{p as useState,y as useReducer,h as useEffect,s as useLayoutEffect,_ as useRef,A as useImperativeHandle,F as useMemo,T as useCallback,q as useContext,x as useDebugValue,V as useErrorBoundary};\n//# sourceMappingURL=hooks.module.js.map\n","import { DXCAlert } from \"../types/DXCAlert\";\n\n/** Resolve a message template with parameters.\n * \n * Example:\n * resolveText({\n * message: \"Hello {name}!\",\n * messageCode: \"HELLO\",\n * messageParams: {name: \"David\"}\n * }) => \"Hello David!\"\n * \n * @param message Template message with {vars} in it.\n * @param messageCode Unique code for the message. Can be used for translation.\n * @param messageParams Parameters to be used in the message.\n * @returns A final message where parameters have been replaced with values.\n */\nexport function resolveText({message, messageCode, messageParams}: DXCAlert) {\n return message.replace(/\\{\\w+\\}/ig, n => messageParams[n.substring(1, n.length-1)]);\n}\n","import { Dialog } from './Dialog';\nimport { Styles } from './Styles';\nimport { h, Fragment } from 'preact';\nimport { useLayoutEffect, useRef, useState } from 'preact/hooks';\nimport { DXCUserInteraction } from '../types/DXCUserInteraction';\nimport { resolveText } from '../helpers/resolveText';\nimport { DXCInputField } from '../types/DXCInputField';\n\nconst OTP_LENGTH = 8;\n\nexport function LoginDialog({\n title,\n type,\n alerts,\n fields,\n submitLabel,\n cancelLabel,\n onCancel,\n onSubmit,\n}: DXCUserInteraction) {\n const [params, setParams] = useState<{ [param: string]: string }>({});\n\n const firstFieldRef = useRef<HTMLInputElement>(null);\n useLayoutEffect(() => firstFieldRef.current?.focus(), []);\n\n return (\n <Dialog className=\"dxc-login-dlg\">\n <>\n <h3 style={Styles.WindowHeader}>{title}</h3>\n {alerts.map((alert) => (\n <p style={Styles.Alert[alert.type]}>{resolveText(alert)}</p>\n ))}\n <form\n onSubmit={(ev) => {\n ev.preventDefault();\n onSubmit(params);\n }}\n >\n {(Object.entries(fields) as [string, DXCInputField][]).map(\n ([fieldName, { type, label, placeholder }], idx) => (\n <label style={Styles.Label} key={idx}>\n {label ? `${label}: ` : ''}\n <input\n ref={idx === 0 ? firstFieldRef : undefined}\n type={type}\n name={fieldName}\n autoComplete=\"on\"\n style={Styles.Input}\n autoFocus\n placeholder={placeholder}\n value={params[fieldName] || ''}\n onInput={(ev) => {\n const value = valueTransformer(type, ev.target?.['value']);\n let updatedParams = {\n ...params,\n [fieldName]: value,\n };\n setParams(updatedParams);\n if (type === 'otp' && value?.trim().length === OTP_LENGTH) {\n // Auto-submit when OTP is filled in.\n onSubmit(updatedParams);\n }\n }}\n />\n </label>\n )\n )}\n </form>\n </>\n <div style={Styles.ButtonsDiv}>\n <>\n <button\n type=\"submit\"\n style={Styles.Button}\n onClick={() => onSubmit(params)}\n >\n {submitLabel}\n </button>\n {cancelLabel && (\n <button style={Styles.Button} onClick={onCancel}>\n {cancelLabel}\n </button>\n )}\n </>\n </div>\n </Dialog>\n );\n}\n\nfunction valueTransformer(type: string, value: string) {\n switch (type) {\n case 'email':\n return value.toLowerCase();\n case 'otp':\n return value.toUpperCase();\n default:\n return value;\n }\n}\n","import Dexie from \"dexie\";\nimport \"../extend-dexie-interface\";\nimport { h, Component } from \"preact\";\nimport { from, Subscription } from \"rxjs\";\nimport { LoginDialog } from './LoginDialog';\nimport { DXCUserInteraction } from \"../types/DXCUserInteraction\";\nimport * as preact from \"preact\";\n\nexport interface Props {\n db: Dexie;\n}\n\ninterface State {\n userInteraction: DXCUserInteraction | undefined;\n}\n\nexport default class LoginGui extends Component<Props, State> {\n subscription?: Subscription;\n observer = (userInteraction: DXCUserInteraction | undefined) => this.setState({userInteraction});\n\n constructor(props: Props) {\n super(props);\n this.state = { userInteraction: undefined };\n }\n\n componentDidMount() {\n this.subscription = from(this.props.db.cloud.userInteraction).subscribe(this.observer);\n }\n\n componentWillUnmount() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n delete this.subscription;\n }\n }\n\n render(props: Props, {userInteraction}: State) {\n if (!userInteraction) return null;\n //if (props.db.cloud.userInteraction.observers.length > 1) return null; // Someone else subscribes.\n return <LoginDialog {...userInteraction} />;\n }\n}\n\nexport function setupDefaultGUI(db: Dexie) {\n let closed = false;\n\n const el = document.createElement('div');\n if (document.body) {\n document.body.appendChild(el);\n preact.render(<LoginGui db={db.vip} />, el);\n } else {\n addEventListener('DOMContentLoaded', ()=>{\n if (!closed) {\n document.body.appendChild(el);\n preact.render(<LoginGui db={db.vip} />, el);\n }\n });\n }\n\n return {\n unsubscribe() {\n try { el.remove(); } catch {}\n closed = true;\n },\n get closed() {\n return closed;\n }\n }\n}\n","export function associate<T extends object,M>(factory: (x: T)=>M): (x: T) => M {\n const wm = new WeakMap<T, M>();\n return (x: T) => {\n let rv = wm.get(x);\n if (!rv) {\n rv = factory(x);\n wm.set(x, rv);\n }\n return rv;\n }\n}\n","import Dexie from \"dexie\";\nimport { BehaviorSubject } from \"rxjs\";\nimport { associate } from \"./associate\";\nimport { UNAUTHORIZED_USER } from \"./authentication/UNAUTHORIZED_USER\";\n\nexport const getCurrentUserEmitter = associate((db: Dexie) => new BehaviorSubject(UNAUTHORIZED_USER));\n","import { combineLatest, Observable, of } from 'rxjs';\nimport { debounceTime, map, startWith, switchMap } from 'rxjs/operators';\nimport { getCurrentUserEmitter } from './currentUserEmitter';\nimport { DexieCloudDB, SyncStateChangedEventData } from './db/DexieCloudDB';\nimport { isOnline } from './sync/isOnline';\nimport { SyncState } from './types/SyncState';\nimport { userIsActive, userIsReallyActive } from './userIsActive';\n\nexport function computeSyncState(db: DexieCloudDB): Observable<SyncState> {\n let _prevStatus = db.cloud.webSocketStatus.value;\n const lazyWebSocketStatus = db.cloud.webSocketStatus.pipe(\n switchMap((status) => {\n const prevStatus = _prevStatus;\n _prevStatus = status;\n const rv = of(status);\n switch (status) {\n // A normal scenario is that the WS reconnects and falls shortly in disconnected-->connection-->connected.\n // Don't distract user with this unless these things take more time than normal:\n\n // Only show disconnected if disconnected more than 500ms, or if we can\n // see that the user is indeed not active.\n case 'disconnected':\n return userIsActive.value ? rv.pipe(debounceTime(500)) : rv;\n\n // Only show connecting if previous state was 'not-started' or 'error', or if\n // the time it takes to connect goes beyond 4 seconds.\n case 'connecting':\n return prevStatus === 'not-started' || prevStatus === 'error'\n ? rv\n : rv.pipe(debounceTime(4000));\n default:\n return rv;\n }\n })\n );\n return combineLatest([\n lazyWebSocketStatus,\n db.syncStateChangedEvent.pipe(startWith({ phase: 'initial' } as SyncStateChangedEventData)),\n getCurrentUserEmitter(db.dx._novip),\n userIsReallyActive\n ]).pipe(\n map(([status, syncState, user, userIsActive]) => {\n if (user.license?.status && user.license.status !== 'ok') {\n return {\n phase: 'offline',\n status: 'offline',\n license: user.license.status\n } satisfies SyncState;\n }\n let { phase, error, progress } = syncState;\n let adjustedStatus = status;\n if (phase === 'error') {\n // Let users only rely on the status property to display an icon.\n // If there's an error in the sync phase, let it show on that\n // status icon also.\n adjustedStatus = 'error';\n }\n if (status === 'not-started') {\n // If websocket isn't yet connected becase we're doing\n // the startup sync, let the icon show the symbol for connecting.\n if (phase === 'pushing' || phase === 'pulling') {\n adjustedStatus = 'connecting';\n }\n } \n const previousPhase = db.cloud.syncState.value.phase;\n //const previousStatus = db.cloud.syncState.value.status;\n if (previousPhase === 'error' && (syncState.phase === 'pushing' || syncState.phase === 'pulling')) {\n // We were in an errored state but is now doing sync. Show \"connecting\" icon.\n adjustedStatus = 'connecting';\n }\n /*if (syncState.phase === 'in-sync' && adjustedStatus === 'connecting') {\n adjustedStatus = 'connected';\n }*/\n \n if (!userIsActive) {\n adjustedStatus = 'disconnected';\n }\n\n const retState: SyncState = {\n phase,\n error,\n progress,\n status: isOnline ? adjustedStatus : 'offline',\n license: 'ok'\n };\n\n return retState;\n })\n );\n}\n","import {\n concat,\n from,\n InteropObservable,\n map,\n Observable,\n ObservableInput,\n share,\n timer,\n} from 'rxjs';\nimport { ObservableWithCurrentValue } from './mapValueObservable';\n\nexport function createSharedValueObservable<T>(\n o: ObservableInput<T>,\n defaultValue: T\n): ObservableWithCurrentValue<T> {\n let currentValue = defaultValue;\n let shared = from(o).pipe(\n map((x) => (currentValue = x)),\n share({ resetOnRefCountZero: () => timer(1000) })\n ) as ObservableWithCurrentValue<T>;\n\n const rv = new Observable((observer) => {\n let didEmit = false;\n const subscription = shared.subscribe({\n next(value) {\n didEmit = true;\n observer.next(value);\n },\n error(error) {\n observer.error(error);\n },\n complete() {\n observer.complete();\n }\n });\n if (!didEmit && !subscription.closed) {\n observer.next(currentValue);\n }\n return subscription;\n }) as ObservableWithCurrentValue<T>;\n\n rv.getValue = () => currentValue;\n return rv;\n}\n","import Dexie, { liveQuery } from 'dexie';\nimport { DBRealmRole } from 'dexie-cloud-common';\nimport { associate } from './associate';\nimport { createSharedValueObservable } from './createSharedValueObservable';\n\nexport const getGlobalRolesObservable = associate((db: Dexie) => {\n return createSharedValueObservable(\n liveQuery(() =>\n db.roles\n .where({ realmId: 'rlm-public' })\n .toArray()\n .then((roles) => {\n const rv: { [roleName: string]: DBRealmRole } = {};\n for (const role of roles\n .slice()\n .sort((a, b) => (a.sortOrder || 0) - (b.sortOrder || 0))) {\n rv[role.name] = role;\n }\n return rv;\n })\n ),\n {}\n );\n});\n","import Dexie, { liveQuery } from 'dexie';\nimport { DBRealm, DBRealmMember } from 'dexie-cloud-common';\nimport { concat, Observable, timer } from 'rxjs';\nimport { share, switchMap } from 'rxjs/operators';\nimport { associate } from './associate';\nimport { createSharedValueObservable } from './createSharedValueObservable';\nimport { getCurrentUserEmitter } from './currentUserEmitter';\n\nexport type InternalAccessControlData = {\n readonly selfMembers: DBRealmMember[];\n readonly realms: DBRealm[];\n readonly userId: string;\n};\n\nexport const getInternalAccessControlObservable = associate((db: Dexie) => {\n return createSharedValueObservable(\n getCurrentUserEmitter(db._novip).pipe(\n switchMap((currentUser) =>\n liveQuery(() =>\n db.transaction('r', 'realms', 'members', () =>\n Promise.all([\n db.members.where({ userId: currentUser.userId }).toArray(),\n db.realms.toArray(),\n currentUser.userId!,\n ] as const).then(([selfMembers, realms, userId]) => {\n //console.debug(`PERMS: Result from liveQUery():`, JSON.stringify({selfMembers, realms, userId}, null, 2))\n return { selfMembers, realms, userId };\n })\n )\n )\n )\n ), {\n selfMembers: [],\n realms: [],\n get userId() {\n return db.cloud.currentUserId;\n },\n }\n );\n /* let refCount = 0;\n return new Observable(observer => {\n const subscription = o.subscribe(observer);\n console.debug ('PERMS subscribe', ++refCount);\n return {\n unsubscribe() {\n console.debug ('PERMS unsubscribe', --refCount);\n subscription.unsubscribe();\n }\n }\n })*/\n});\n","import { map, Observable } from 'rxjs';\n\nexport interface ObservableWithCurrentValue<T> extends Observable<T> {\n getValue(): T;\n}\n\nexport function mapValueObservable<T, R>(\n o: ObservableWithCurrentValue<T>,\n mapper: (x: T) => R\n): ObservableWithCurrentValue<R> {\n let currentValue: R | undefined;\n const rv = o.pipe(\n map((x) => (currentValue = mapper(x)))\n ) as ObservableWithCurrentValue<R>;\n rv.getValue = () =>\n currentValue !== undefined\n ? currentValue\n : (currentValue = mapper(o.getValue()));\n return rv;\n}\n","// TODO: Move to dexie-cloud-common\n\nimport { DBPermissionSet } from 'dexie-cloud-common';\n\nexport function mergePermissions(\n ...permissions: DBPermissionSet[]\n): DBPermissionSet {\n if (permissions.length === 0) return {};\n const reduced = permissions.reduce((result, next) => {\n const ret = { ...result } as DBPermissionSet;\n for (const [verb, rights] of Object.entries(next) as [\n keyof DBPermissionSet,\n DBPermissionSet[keyof DBPermissionSet]\n ][]) {\n if (verb in ret && ret[verb]) {\n if (ret[verb] === '*') continue;\n if (rights === '*') {\n ret[verb] = '*';\n } else if (Array.isArray(rights) && Array.isArray(ret[verb])) {\n // Both are arrays (verb is 'add' or 'manage')\n const r = ret as { [v in typeof verb]?: string[] };\n const retVerb = r[verb]!; // \"!\" because Array.isArray(ret[verb])\n r[verb] = [...new Set([...retVerb, ...rights])];\n } else if (\n typeof rights === 'object' &&\n rights &&\n typeof ret[verb] === 'object'\n ) {\n // Both are objects (verb is 'update')\n const mergedRights = ret[verb] as {\n [tableName: string]: '*' | string[];\n }; // because we've checked that typeof ret[verb] === 'object' and earlier that not ret[verb] === '*'.\n for (const [tableName, tableRights] of Object.entries(rights) as [\n string,\n string[] | '*'\n ][]) {\n if (mergedRights[tableName] === '*') continue;\n if (tableRights === '*') {\n mergedRights[tableName] = '*';\n } else if (\n Array.isArray(mergedRights[tableName]) &&\n Array.isArray(tableRights)\n ) {\n mergedRights[tableName] = [\n ...new Set([...mergedRights[tableName], ...tableRights]),\n ];\n }\n }\n }\n } else {\n /* This compiles without type assertions. Keeping the comment to\n explain why we do tsignore on the next statement.\n if (verb === \"add\") {\n ret[verb] = next[verb];\n } else if (verb === \"update\") {\n ret[verb] = next[verb];\n } else if (verb === \"manage\") {\n ret[verb] = next[verb];\n } else {\n ret[verb] = next[verb];\n }\n */\n //@ts-ignore\n ret[verb] = next[verb];\n }\n }\n return ret;\n });\n return reduced;\n}\n","import Dexie from 'dexie';\nimport { DBPermissionSet, DBRealm, DBRealmMember } from 'dexie-cloud-common';\nimport { combineLatest, Observable } from 'rxjs';\nimport { map, startWith, tap } from 'rxjs/operators';\nimport { associate } from './associate';\nimport { UNAUTHORIZED_USER } from './authentication/UNAUTHORIZED_USER';\nimport { createSharedValueObservable } from './createSharedValueObservable';\nimport { getGlobalRolesObservable } from './getGlobalRolesObservable';\nimport { getInternalAccessControlObservable } from './getInternalAccessControlObservable';\nimport { flatten } from './helpers/flatten';\nimport { mapValueObservable } from './mapValueObservable';\nimport { mergePermissions } from './mergePermissions';\n\nexport type PermissionsLookup = {\n [realmId: string]: DBRealm & { permissions: DBPermissionSet };\n};\n\nexport type PermissionsLookupObservable = Observable<PermissionsLookup> & {\n getValue(): PermissionsLookup;\n};\n\nexport const getPermissionsLookupObservable = associate((db: Dexie) => {\n const o = createSharedValueObservable(\n combineLatest([\n getInternalAccessControlObservable(db._novip),\n getGlobalRolesObservable(db._novip),\n ]).pipe(\n map(([{ selfMembers, realms, userId }, globalRoles]) => ({\n selfMembers,\n realms,\n userId,\n globalRoles,\n }))\n ),\n {\n selfMembers: [],\n realms: [],\n userId: UNAUTHORIZED_USER.userId!,\n globalRoles: {},\n }\n );\n\n return mapValueObservable(\n o,\n ({ selfMembers, realms, userId, globalRoles }) => {\n const rv = realms\n .map((realm) => {\n const selfRealmMembers = selfMembers.filter(\n (m) => m.realmId === realm.realmId\n );\n const directPermissionSets = selfRealmMembers\n .map((m) => m.permissions!)\n .filter((p) => p);\n const rolePermissionSets = flatten(\n selfRealmMembers.map((m) => m.roles!).filter((roleName) => roleName)\n )\n .map((role) => globalRoles[role]!)\n .filter((role) => role)\n .map((role) => role.permissions);\n\n return {\n ...realm,\n permissions:\n realm.owner === userId\n ? ({ manage: '*' } as DBPermissionSet)\n : mergePermissions(\n ...directPermissionSets,\n ...rolePermissionSets\n ),\n };\n })\n .reduce((p, c) => ({ ...p, [c.realmId]: c }), {\n [userId!]: {\n realmId: userId,\n owner: userId,\n name: userId,\n permissions: { manage: '*' },\n } as DBRealm & { permissions: DBPermissionSet },\n });\n return rv;\n }\n );\n});\n","import { KeyPaths } from 'dexie';\nimport { DBPermissionSet } from 'dexie-cloud-common';\n\ntype TableName<T> = T extends {table: ()=>infer TABLE} ? TABLE extends string ? TABLE : string : string;\n\nexport class PermissionChecker<T, TableNames extends string = TableName<T>> {\n private permissions: DBPermissionSet;\n private tableName: TableNames;\n private isOwner: boolean;\n\n constructor(\n permissions: DBPermissionSet,\n tableName: TableNames,\n isOwner: boolean\n ) {\n this.permissions = permissions || {};\n this.tableName = tableName;\n this.isOwner = isOwner;\n }\n\n add(...tableNames: TableNames[]): boolean {\n // If user can manage the whole realm, return true.\n if (this.permissions.manage === '*') return true;\n // If user can manage given table in realm, return true\n if (this.permissions.manage?.includes(this.tableName)) return true;\n // If user can add any type, return true\n if (this.permissions.add === '*') return true;\n // If user can add objects into given table names in the realm, return true\n if (\n tableNames.every((tableName) => this.permissions.add?.includes(tableName))\n ) {\n return true;\n }\n return false;\n }\n\n update(...props: KeyPaths<T>[]): boolean {\n // If user is owner of this object, or if user can manage the whole realm, return true.\n if (this.isOwner || this.permissions.manage === '*') return true;\n // If user can manage given table in realm, return true\n if (this.permissions.manage?.includes(this.tableName)) return true;\n // If user can update any prop in any table in this realm, return true unless\n // it regards to ownership change:\n if (this.permissions.update === '*') {\n return props.every((prop) => prop !== 'owner');\n }\n const tablePermissions = this.permissions.update?.[this.tableName];\n // If user can update any prop in table and realm, return true unless\n // accessing special props owner or realmId\n if (tablePermissions === '*')\n return props.every((prop) => prop !== 'owner');\n\n // Explicitely listed properties to allow updates on:\n return props.every((prop) =>\n tablePermissions?.some(\n (permittedProp) =>\n permittedProp === prop || (permittedProp === '*' && prop !== 'owner')\n )\n );\n }\n\n delete(): boolean {\n // If user is owner of this object, or if user can manage the whole realm, return true.\n if (this.isOwner || this.permissions.manage === '*') return true;\n // If user can manage given table in realm, return true\n if (this.permissions.manage?.includes(this.tableName)) return true;\n return false;\n }\n}\n","import Dexie, { liveQuery } from 'dexie';\nimport { DBRealmMember } from 'dexie-cloud-common';\nimport { from, Observable } from 'rxjs';\nimport { map, startWith } from 'rxjs/operators';\nimport { mergePermissions } from './mergePermissions';\nimport {\n getPermissionsLookupObservable,\n PermissionsLookup,\n} from './getPermissionsLookupObservable';\nimport { PermissionChecker } from './PermissionChecker';\nimport './extend-dexie-interface';\n\nexport function permissions(\n dexie: Dexie,\n obj: { owner?: string; realmId?: string; table?: () => string },\n tableName?: string\n): Observable<PermissionChecker<any>> {\n if (!obj)\n throw new TypeError(\n `Cannot check permissions of undefined or null. A Dexie Cloud object with realmId and owner expected.`\n );\n const { owner, realmId } = obj;\n if (!tableName) {\n if (typeof obj.table !== 'function') {\n throw new TypeError(\n `Missing 'table' argument to permissions and table could not be extracted from entity`\n );\n }\n tableName = obj.table();\n }\n const source = getPermissionsLookupObservable(dexie);\n const mapper = (permissionsLookup: PermissionsLookup) => {\n // If realmId is undefined, it can be due to that the object is not yet syncified - it exists\n // locally only as the user might not yet be authenticated. This is ok and we shall treat it\n // as if the realmId is dexie.cloud.currentUserId (which is \"unauthorized\" by the way)\n const realm = permissionsLookup[realmId || dexie.cloud.currentUserId];\n if (!realm)\n return new PermissionChecker(\n {},\n tableName!,\n !owner || owner === dexie.cloud.currentUserId\n );\n return new PermissionChecker(\n realm.permissions,\n tableName!,\n realmId === dexie.cloud.currentUserId || owner === dexie.cloud.currentUserId\n );\n };\n const o = source.pipe(map(mapper)) as Observable<PermissionChecker<any>> & {\n getValue: () => PermissionChecker<any>;\n };\n o.getValue = () => mapper(source.getValue());\n return o;\n}\n","import { Dexie, liveQuery } from 'dexie';\nimport { DBRealmMember } from 'dexie-cloud-common';\nimport { combineLatest } from 'rxjs';\nimport { map, switchMap } from 'rxjs/operators';\nimport { associate } from './associate';\nimport { createSharedValueObservable } from './createSharedValueObservable';\nimport { getCurrentUserEmitter } from './currentUserEmitter';\nimport { getInternalAccessControlObservable } from './getInternalAccessControlObservable';\nimport { getPermissionsLookupObservable } from './getPermissionsLookupObservable';\nimport { Invite } from './Invite';\nimport { mapValueObservable } from './mapValueObservable';\n\nexport const getInvitesObservable = associate((db: Dexie) => {\n const membersByEmail = getCurrentUserEmitter(db._novip).pipe(\n switchMap((currentUser) =>\n liveQuery(() =>\n db.members.where({ email: currentUser.email || '' }).toArray()\n )\n )\n );\n const permissions = getPermissionsLookupObservable(db._novip);\n const accessControl = getInternalAccessControlObservable(db._novip);\n return createSharedValueObservable(\n combineLatest([membersByEmail, accessControl, permissions]).pipe(\n map(([membersByEmail, accessControl, realmLookup]) => {\n const reducer = (\n result: { [id: string]: Invite },\n m: DBRealmMember\n ) => ({ ...result, [m.id!]: { ...m, realm: realmLookup[m.realmId] } });\n const emailMembersById = membersByEmail.reduce(reducer, {});\n const membersById = accessControl.selfMembers.reduce(\n reducer,\n emailMembersById\n );\n return Object.values(membersById)\n .filter((invite: DBRealmMember) => !invite.accepted)\n .map(\n (invite: DBRealmMember) =>\n ({\n ...invite,\n async accept() {\n await db.members.update(invite.id!, { accepted: new Date() });\n },\n async reject() {\n await db.members.update(invite.id!, { rejected: new Date() });\n },\n } satisfies Invite)\n );\n })\n ),\n []\n );\n});\n","import Dexie, { liveQuery, Subscription, Table } from 'dexie';\nimport {\n DBPermissionSet,\n DBRealmMember,\n getDbNameFromDbUrl,\n} from 'dexie-cloud-common';\nimport { BehaviorSubject, combineLatest, from, fromEvent, Subject } from 'rxjs';\nimport { filter, map, skip, startWith, switchMap, take } from 'rxjs/operators';\nimport { login } from './authentication/login';\nimport { UNAUTHORIZED_USER } from './authentication/UNAUTHORIZED_USER';\nimport { DexieCloudDB } from './db/DexieCloudDB';\nimport { PersistedSyncState } from './db/entities/PersistedSyncState';\nimport { DexieCloudOptions } from './DexieCloudOptions';\nimport { DISABLE_SERVICEWORKER_STRATEGY } from './DISABLE_SERVICEWORKER_STRATEGY';\nimport './extend-dexie-interface';\nimport { DexieCloudSyncOptions } from './DexieCloudSyncOptions';\nimport { dbOnClosed } from './helpers/dbOnClosed';\nimport { IS_SERVICE_WORKER } from './helpers/IS_SERVICE_WORKER';\nimport { throwVersionIncrementNeeded } from './helpers/throwVersionIncrementNeeded';\nimport { createIdGenerationMiddleware } from './middlewares/createIdGenerationMiddleware';\nimport { createImplicitPropSetterMiddleware } from './middlewares/createImplicitPropSetterMiddleware';\nimport { createMutationTrackingMiddleware } from './middlewares/createMutationTrackingMiddleware';\n//import { dexieCloudSyncProtocol } from \"./dexieCloudSyncProtocol\";\nimport { overrideParseStoresSpec } from './overrideParseStoresSpec';\nimport { performInitialSync } from './performInitialSync';\nimport { connectWebSocket } from './sync/connectWebSocket';\nimport { isSyncNeeded } from './sync/isSyncNeeded';\nimport { LocalSyncWorker } from './sync/LocalSyncWorker';\nimport {\n registerPeriodicSyncEvent,\n registerSyncEvent,\n} from './sync/registerSyncEvent';\nimport { triggerSync } from './sync/triggerSync';\nimport { DXCUserInteraction } from './types/DXCUserInteraction';\nimport { SyncState } from './types/SyncState';\nimport { updateSchemaFromOptions } from './updateSchemaFromOptions';\nimport { verifySchema } from './verifySchema';\nimport { setupDefaultGUI } from './default-ui';\nimport { DXCWebSocketStatus } from './DXCWebSocketStatus';\nimport { computeSyncState } from './computeSyncState';\nimport { generateKey } from './middleware-helpers/idGenerationHelpers';\nimport { permissions } from './permissions';\nimport { getCurrentUserEmitter } from './currentUserEmitter';\nimport { NewIdOptions } from './types/NewIdOptions';\nimport { getInvitesObservable } from './getInvitesObservable';\nimport { getGlobalRolesObservable } from './getGlobalRolesObservable';\nimport { UserLogin } from './db/entities/UserLogin';\nimport { InvalidLicenseError } from './InvalidLicenseError';\nimport { logout, _logout } from './authentication/logout';\nimport { loadAccessToken } from './authentication/authenticate';\nimport { isEagerSyncDisabled } from './isEagerSyncDisabled';\nexport { DexieCloudTable } from './DexieCloudTable';\nexport * from './getTiedRealmId';\nexport {\n DBRealm,\n DBRealmMember,\n DBRealmRole,\n DBSyncedObject,\n DBPermissionSet,\n} from 'dexie-cloud-common';\nexport { resolveText } from './helpers/resolveText';\nexport { Invite } from './Invite';\nexport type { UserLogin, DXCWebSocketStatus, SyncState };\nexport type { DexieCloudSyncOptions };\nexport type { DexieCloudOptions, PeriodicSyncOptions } from './DexieCloudOptions';\nexport * from './types/DXCAlert';\nexport * from './types/DXCInputField';\nexport * from './types/DXCUserInteraction';\n\nconst DEFAULT_OPTIONS: Partial<DexieCloudOptions> = {\n nameSuffix: true,\n};\n\nexport function dexieCloud(dexie: Dexie) {\n const origIdbName = dexie.name;\n //\n //\n //\n const currentUserEmitter = getCurrentUserEmitter(dexie);\n const subscriptions: Subscription[] = [];\n let configuredProgramatically = false;\n\n // local sync worker - used when there's no service worker.\n let localSyncWorker: { start: () => void; stop: () => void } | null = null;\n dexie.on(\n 'ready',\n async (dexie: Dexie) => {\n try {\n await onDbReady(dexie);\n } catch (error) {\n console.error(error);\n // Make sure to succeed with database open even if network is down.\n }\n },\n true // true = sticky\n );\n\n /** Void starting subscribers after a close has happened. */\n let closed = false;\n function throwIfClosed() {\n if (closed) throw new Dexie.DatabaseClosedError();\n }\n\n dbOnClosed(dexie, () => {\n subscriptions.forEach((subscription) => subscription.unsubscribe());\n closed = true;\n localSyncWorker && localSyncWorker.stop();\n localSyncWorker = null;\n currentUserEmitter.next(UNAUTHORIZED_USER);\n });\n\n const syncComplete = new Subject<void>();\n\n dexie.cloud = {\n // @ts-ignore\n version: __VERSION__,\n options: { ...DEFAULT_OPTIONS } as DexieCloudOptions,\n schema: null,\n get currentUserId() {\n return currentUserEmitter.value.userId || UNAUTHORIZED_USER.userId!;\n },\n currentUser: currentUserEmitter,\n syncState: new BehaviorSubject<SyncState>({\n phase: 'initial',\n status: 'not-started',\n }),\n\n events: {\n syncComplete,\n },\n\n persistedSyncState: new BehaviorSubject<PersistedSyncState | undefined>(\n undefined\n ),\n userInteraction: new BehaviorSubject<DXCUserInteraction | undefined>(\n undefined\n ),\n webSocketStatus: new BehaviorSubject<DXCWebSocketStatus>('not-started'),\n async login(hint) {\n const db = DexieCloudDB(dexie);\n await db.cloud.sync();\n await login(db, hint);\n },\n invites: getInvitesObservable(dexie),\n roles: getGlobalRolesObservable(dexie),\n configure(options: DexieCloudOptions) {\n options = dexie.cloud.options = { ...dexie.cloud.options, ...options };\n configuredProgramatically = true;\n if (options.databaseUrl && options.nameSuffix) {\n // @ts-ignore\n dexie.name = `${origIdbName}-${getDbNameFromDbUrl(\n options.databaseUrl\n )}`;\n DexieCloudDB(dexie).reconfigure(); // Update observable from new dexie.name\n }\n updateSchemaFromOptions(dexie.cloud.schema, dexie.cloud.options);\n },\n async logout({ force } = {}) {\n force\n ? await _logout(DexieCloudDB(dexie), { deleteUnsyncedData: true })\n : await logout(DexieCloudDB(dexie));\n },\n async sync(\n { wait, purpose }: DexieCloudSyncOptions = { wait: true, purpose: 'push' }\n ) {\n if (wait === undefined) wait = true;\n const db = DexieCloudDB(dexie);\n const licenseStatus = db.cloud.currentUser.value.license?.status || 'ok';\n if (licenseStatus !== 'ok') {\n // Refresh access token to check for updated license\n await loadAccessToken(db);\n }\n if (purpose === 'pull') {\n const syncState = db.cloud.persistedSyncState.value;\n triggerSync(db, purpose);\n if (wait) {\n const newSyncState = await db.cloud.persistedSyncState\n .pipe(\n filter(\n (newSyncState) =>\n newSyncState?.timestamp != null &&\n (!syncState || newSyncState.timestamp > syncState.timestamp!)\n ),\n take(1)\n )\n .toPromise();\n if (newSyncState?.error) {\n throw new Error(`Sync error: ` + newSyncState.error);\n }\n }\n } else if (await isSyncNeeded(db)) {\n const syncState = db.cloud.persistedSyncState.value;\n triggerSync(db, purpose);\n if (wait) {\n console.debug('db.cloud.login() is waiting for sync completion...');\n await from(\n liveQuery(async () => {\n const syncNeeded = await isSyncNeeded(db);\n const newSyncState = await db.getPersistedSyncState();\n if (\n newSyncState?.timestamp !== syncState?.timestamp &&\n newSyncState?.error\n )\n throw new Error(`Sync error: ` + newSyncState.error);\n return syncNeeded;\n })\n )\n .pipe(\n filter((isNeeded) => !isNeeded),\n take(1)\n )\n .toPromise();\n console.debug(\n 'Done waiting for sync completion because we have nothing to push anymore'\n );\n }\n }\n },\n permissions(\n obj: { owner: string; realmId: string; table?: () => string },\n tableName?: string\n ) {\n return permissions(dexie._novip, obj, tableName);\n },\n };\n\n dexie.Version.prototype['_parseStoresSpec'] = Dexie.override(\n dexie.Version.prototype['_parseStoresSpec'],\n (origFunc) => overrideParseStoresSpec(origFunc, dexie)\n );\n\n dexie.Table.prototype.newId = function (\n this: Table<any>,\n { colocateWith }: NewIdOptions = {}\n ) {\n const shardKey =\n colocateWith && colocateWith.substr(colocateWith.length - 3);\n return generateKey(dexie.cloud.schema![this.name].idPrefix || '', shardKey);\n };\n\n dexie.Table.prototype.idPrefix = function (this: Table<any>) {\n return this.db.cloud.schema?.[this.name]?.idPrefix || '';\n };\n\n dexie.use(\n createMutationTrackingMiddleware({\n currentUserObservable: dexie.cloud.currentUser,\n db: DexieCloudDB(dexie),\n })\n );\n dexie.use(createImplicitPropSetterMiddleware(DexieCloudDB(dexie)));\n dexie.use(createIdGenerationMiddleware(DexieCloudDB(dexie)));\n\n async function onDbReady(dexie: Dexie) {\n closed = false; // As Dexie calls us, we are not closed anymore. Maybe reopened? Remember db.ready event is registered with sticky flag!\n const db = DexieCloudDB(dexie);\n // Setup default GUI:\n if (typeof window !== 'undefined' && typeof document !== 'undefined') {\n if (!db.cloud.options?.customLoginGui) {\n subscriptions.push(setupDefaultGUI(dexie));\n }\n }\n if (!db.cloud.isServiceWorkerDB) {\n subscriptions.push(computeSyncState(db).subscribe(dexie.cloud.syncState));\n }\n\n // Forward db.syncCompleteEvent to be publicly consumable via db.cloud.events.syncComplete:\n subscriptions.push(db.syncCompleteEvent.subscribe(syncComplete));\n\n //verifyConfig(db.cloud.options); Not needed (yet at least!)\n // Verify the user has allowed version increment.\n if (!db.tables.every((table) => table.core)) {\n throwVersionIncrementNeeded();\n }\n const swRegistrations =\n 'serviceWorker' in navigator\n ? await navigator.serviceWorker.getRegistrations()\n : [];\n\n const initiallySynced = await db.transaction(\n 'rw',\n db.$syncState,\n async () => {\n const { options, schema } = db.cloud;\n const [persistedOptions, persistedSchema, persistedSyncState] =\n await Promise.all([\n db.getOptions(),\n db.getSchema(),\n db.getPersistedSyncState(),\n ]);\n if (!configuredProgramatically) {\n // Options not specified programatically (use case for SW!)\n // Take persisted options:\n db.cloud.options = persistedOptions || null;\n } else if (\n !persistedOptions ||\n JSON.stringify(persistedOptions) !== JSON.stringify(options)\n ) {\n // Update persisted options:\n if (!options) throw new Error(`Internal error`); // options cannot be null if configuredProgramatically is set.\n const newPersistedOptions: DexieCloudOptions = {\n ...options,\n };\n delete newPersistedOptions.fetchTokens;\n await db.$syncState.put(newPersistedOptions, 'options');\n }\n if (\n db.cloud.options?.tryUseServiceWorker &&\n 'serviceWorker' in navigator &&\n swRegistrations.length > 0 &&\n !DISABLE_SERVICEWORKER_STRATEGY\n ) {\n // * Configured for using service worker if available.\n // * Browser supports service workers\n // * There are at least one service worker registration\n console.debug('Dexie Cloud Addon: Using service worker');\n db.cloud.usingServiceWorker = true;\n } else {\n // Not configured for using service worker or no service worker\n // registration exists. Don't rely on service worker to do any job.\n // Use LocalSyncWorker instead.\n if (\n db.cloud.options?.tryUseServiceWorker &&\n !db.cloud.isServiceWorkerDB\n ) {\n console.debug(\n 'dexie-cloud-addon: Not using service worker.',\n swRegistrations.length === 0\n ? 'No SW registrations found.'\n : 'serviceWorker' in navigator && DISABLE_SERVICEWORKER_STRATEGY\n ? 'Avoiding SW background sync and SW periodic bg sync for this browser due to browser bugs.'\n : 'navigator.serviceWorker not present'\n );\n }\n db.cloud.usingServiceWorker = false;\n }\n updateSchemaFromOptions(schema, db.cloud.options);\n updateSchemaFromOptions(persistedSchema, db.cloud.options);\n if (!schema) {\n // Database opened dynamically (use case for SW!)\n // Take persisted schema:\n db.cloud.schema = persistedSchema || null;\n } else if (\n !persistedSchema ||\n JSON.stringify(persistedSchema) !== JSON.stringify(schema)\n ) {\n // Update persisted schema (but don't overwrite table prefixes)\n const newPersistedSchema = persistedSchema || {};\n for (const [table, tblSchema] of Object.entries(schema)) {\n const newTblSchema = newPersistedSchema[table];\n if (!newTblSchema) {\n newPersistedSchema[table] = { ...tblSchema };\n } else {\n newTblSchema.markedForSync = tblSchema.markedForSync;\n tblSchema.deleted = newTblSchema.deleted;\n newTblSchema.generatedGlobalId = tblSchema.generatedGlobalId;\n }\n }\n await db.$syncState.put(newPersistedSchema, 'schema');\n\n // Make sure persisted table prefixes are being used instead of computed ones:\n // Let's assign all props as the newPersistedSchems should be what we should be working with.\n Object.assign(schema, newPersistedSchema);\n }\n return persistedSyncState?.initiallySynced;\n }\n );\n\n if (initiallySynced) {\n db.setInitiallySynced(true);\n }\n\n verifySchema(db);\n\n if (db.cloud.options?.databaseUrl && !initiallySynced) {\n await performInitialSync(db, db.cloud.options, db.cloud.schema!);\n db.setInitiallySynced(true);\n }\n\n // Manage CurrentUser observable:\n throwIfClosed();\n if (!db.cloud.isServiceWorkerDB) {\n subscriptions.push(\n liveQuery(() => db.getCurrentUser()).subscribe(currentUserEmitter)\n );\n // Manage PersistendSyncState observable:\n subscriptions.push(\n liveQuery(() => db.getPersistedSyncState()).subscribe(\n db.cloud.persistedSyncState\n )\n );\n // Wait till currentUser and persistedSyncState gets populated\n // with things from the database and not just the default values.\n // This is so that when db.open() completes, user should be safe\n // to subscribe to these observables and get actual data.\n await combineLatest([\n currentUserEmitter.pipe(skip(1), take(1)),\n db.cloud.persistedSyncState.pipe(skip(1), take(1)),\n ]).toPromise();\n }\n\n // HERE: If requireAuth, do athentication now.\n let changedUser = false;\n if (db.cloud.options?.requireAuth) {\n changedUser = await login(db);\n }\n\n if (localSyncWorker) localSyncWorker.stop();\n localSyncWorker = null;\n throwIfClosed();\n if (db.cloud.usingServiceWorker && db.cloud.options?.databaseUrl) {\n registerSyncEvent(db, changedUser ? 'pull' : 'push').catch(() => {});\n registerPeriodicSyncEvent(db).catch(() => {});\n } else if (\n db.cloud.options?.databaseUrl &&\n db.cloud.schema &&\n !db.cloud.isServiceWorkerDB\n ) {\n // There's no SW. Start SyncWorker instead.\n localSyncWorker = LocalSyncWorker(db, db.cloud.options, db.cloud.schema!);\n localSyncWorker.start();\n triggerSync(db, changedUser ? 'pull' : 'push');\n }\n\n // Listen to online event and do sync.\n throwIfClosed();\n if (!db.cloud.isServiceWorkerDB) {\n subscriptions.push(\n fromEvent(self, 'online').subscribe(() => {\n console.debug('online!');\n db.syncStateChangedEvent.next({\n phase: 'not-in-sync',\n });\n if (!isEagerSyncDisabled(db)) {\n triggerSync(db, 'push');\n }\n }),\n fromEvent(self, 'offline').subscribe(() => {\n console.debug('offline!');\n db.syncStateChangedEvent.next({\n phase: 'offline',\n });\n })\n );\n }\n\n // Connect WebSocket unless we\n if (\n db.cloud.options?.databaseUrl &&\n !db.cloud.options?.disableWebSocket &&\n !IS_SERVICE_WORKER\n ) {\n subscriptions.push(connectWebSocket(db));\n }\n }\n}\n\n// @ts-ignore\ndexieCloud.version = __VERSION__;\n\nDexie.Cloud = dexieCloud;\n\n//Dexie.addons.push(dexieCloud);\n\nexport default dexieCloud;\n","import Dexie from 'dexie';\nimport { DexieCloudDB } from './db/DexieCloudDB';\nimport dexieCloud from './dexie-cloud-client';\nimport { DISABLE_SERVICEWORKER_STRATEGY } from './DISABLE_SERVICEWORKER_STRATEGY';\nimport { isSafari, safariVersion } from './isSafari';\nimport { syncIfPossible } from './sync/syncIfPossible';\nimport { SWMessageEvent } from './types/SWMessageEvent';\nimport { SyncEvent } from './types/SWSyncEvent';\n\n// In case the SW lives for a while, let it reuse already opened connections:\nconst managedDBs = new Map<string, DexieCloudDB>();\n\nfunction getDbNameFromTag(tag: string) {\n return tag.startsWith('dexie-cloud:') && tag.split(':')[1];\n}\n\nconst syncDBSemaphore = new Map<string, Promise<void>>();\n\nfunction syncDB(dbName: string, purpose: 'push' | 'pull') {\n // We're taking hight for being double-signalled both\n // via message event and sync event.\n // Which one comes first doesnt matter, just\n // that we return the existing promise if there is\n // an ongoing sync.\n let promise = syncDBSemaphore.get(dbName + '/' + purpose);\n if (!promise) {\n promise = _syncDB(dbName, purpose)\n .then(() => {\n // When legacy enough across browsers, use .finally() instead of then() and catch():\n syncDBSemaphore.delete(dbName + '/' + purpose);\n })\n .catch((error) => {\n syncDBSemaphore.delete(dbName + '/' + purpose);\n return Promise.reject(error);\n });\n syncDBSemaphore.set(dbName + '/' + purpose, promise!);\n }\n return promise!;\n\n async function _syncDB(dbName: string, purpose: 'push' | 'pull') {\n let db = managedDBs.get(dbName);\n\n if (!db) {\n console.debug('Dexie Cloud SW: Creating new Dexie instance for', dbName);\n const dexie = new Dexie(dbName, { addons: [dexieCloud] });\n db = DexieCloudDB(dexie);\n db.cloud.isServiceWorkerDB = true;\n dexie.on('versionchange', stopManagingDB);\n await db.dx.open(); // Makes sure db.cloud.options and db.cloud.schema are read from db,\n if (managedDBs.get(dbName)) {\n // Avoid race conditions.\n db.close();\n return await _syncDB(dbName, purpose);\n }\n managedDBs.set(dbName, db);\n }\n if (!db.cloud.options?.databaseUrl) {\n console.error(`Dexie Cloud: No databaseUrl configured`);\n return; // Nothing to sync.\n }\n if (!db.cloud.schema) {\n console.error(`Dexie Cloud: No schema persisted`);\n return; // Nothing to sync.\n }\n\n function stopManagingDB() {\n db!.dx.on.versionchange.unsubscribe(stopManagingDB);\n if (managedDBs.get(db!.name) === db) {\n // Avoid race conditions.\n managedDBs.delete(db!.name);\n }\n console.debug(`Dexie Cloud SW: Closing Dexie instance for ${dbName}`);\n db!.dx.close();\n return false;\n }\n\n try {\n console.debug('Dexie Cloud SW: Syncing');\n await syncIfPossible(db, db.cloud.options, db.cloud.schema, {\n retryImmediatelyOnFetchError: true,\n purpose,\n });\n console.debug('Dexie Cloud SW: Done Syncing');\n } catch (e) {\n console.error(`Dexie Cloud SW Error`, e);\n // Error occured. Stop managing this DB until we wake up again by a sync event,\n // which will open a new Dexie and start trying to sync it.\n stopManagingDB();\n if (e.name !== Dexie.errnames.NoSuchDatabase) {\n // Unless the error was that DB doesn't exist, rethrow to trigger sync retry.\n throw e; // Throw e to make syncEvent.waitUntil() receive a rejected promis, so it will retry.\n }\n }\n }\n}\n\n// Avoid taking care of events if browser bugs out by using dexie cloud from a service worker.\nif (!DISABLE_SERVICEWORKER_STRATEGY) {\n self.addEventListener('sync', (event: SyncEvent) => {\n console.debug('SW \"sync\" Event', event.tag);\n const dbName = getDbNameFromTag(event.tag);\n if (dbName) {\n event.waitUntil(syncDB(dbName, \"push\")); // The purpose of sync events are \"push\"\n }\n });\n\n self.addEventListener('periodicsync', (event: SyncEvent) => {\n console.debug('SW \"periodicsync\" Event', event.tag);\n const dbName = getDbNameFromTag(event.tag);\n if (dbName) {\n event.waitUntil(syncDB(dbName, \"pull\")); // The purpose of periodic sync events are \"pull\"\n }\n });\n\n self.addEventListener('message', (event: SWMessageEvent) => {\n console.debug('SW \"message\" Event', event.data);\n if (event.data.type === 'dexie-cloud-sync') {\n const { dbName } = event.data;\n // Mimic background sync behavior - retry in X minutes on failure.\n // But lesser timeout and more number of times.\n const syncAndRetry = (num = 1) => {\n return syncDB(dbName, event.data.purpose || \"pull\").catch(async (e) => {\n if (num === 3) throw e;\n await sleep(60_000); // 1 minute\n syncAndRetry(num + 1);\n });\n };\n if ('waitUntil' in event) {\n event.waitUntil(syncAndRetry().catch(error => console.error(error)));\n } else {\n syncAndRetry().catch(error => console.error(error));\n }\n }\n });\n}\n\nfunction sleep(ms: number) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n"],"names":["Observable","Symbol_observable","Symbol_iterator","asyncScheduler","iterator","concat","randomString","bigintDef","tsonBuiltinDefs","cmp","BehaviorSubject","wm","Subject","firstValueFrom","from","filter","counter","of","fromEvent","merge","Subscription","sleep","throwError","l","u","t","o","f","e","c","s","a","v","p","d","_","k","b","g","j","z","w","m","n","useState","useRef","useLayoutEffect","Fragment","Component","preact.render","combineLatest","map","share","timer","liveQuery"],"mappings":"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IACZ,IAAI,GAAG,EAAE,GAAG;IACZ,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;IACV,IAAI,CAAC,EAAE,GAAG;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","x_google_ignoreList":[0,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,74,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,162,165]}
|