dexie-cloud-addon 4.0.1-beta.37 → 4.0.1-beta.38

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.
@@ -1 +1 @@
1
- {"version":3,"file":"dexie-cloud-addon.js","sources":["../../../../node_modules/.pnpm/tslib@2.4.0/node_modules/tslib/tslib.es6.js","../modern/dexie-cloud-addon.js"],"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","/* ========================================================================== \n * dexie-cloud-addom.js\n * ==========================================================================\n *\n * Dexie addon that syncs IndexedDB with Dexie Cloud.\n *\n * By David Fahlander, david@dexie.org\n *\n * ==========================================================================\n *\n * Version {version}, {date}\n *\n * https://dexie.org\n *\n * Apache License Version 2.0, January 2004, http://www.apache.org/licenses/\n * \n */\n\nimport Dexie, { cmp, liveQuery } from 'dexie';\nimport { Observable as Observable$1, BehaviorSubject, Subject, fromEvent, of, merge, Subscription as Subscription$1, from as from$1, throwError, combineLatest, map as map$1, share, timer as timer$1 } from 'rxjs';\n\n/******************************************************************************\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\nfunction __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\nfunction __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\nfunction __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\nfunction __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\nfunction __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\nfunction __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\nfunction __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nfunction __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\nfunction __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}\n\nfunction assert(b) {\n if (!b)\n throw new Error('Assertion Failed');\n}\nconst _hasOwn = {}.hasOwnProperty;\nfunction hasOwn(obj, prop) {\n return _hasOwn.call(obj, prop);\n}\nfunction 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}\nconst randomString$1 = 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\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 */\nfunction 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}\nfunction isValidAtID(id, idPrefix) {\n return !idPrefix || (typeof id === \"string\" && id.startsWith(idPrefix));\n}\n\nfunction 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\nfunction 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\nfunction 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\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 */\nfunction toDBOperationSet(inSet, txid = \"\") {\n // Fictive transaction:\n if (!txid)\n txid = randomString$1(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\nfunction getDbNameFromDbUrl(dbUrl) {\n const url = new URL(dbUrl);\n return url.pathname === \"/\"\n ? url.hostname.split('.')[0]\n : url.pathname.split('/')[1];\n}\n\nfunction isFunction(value) {\n return typeof value === 'function';\n}\n\nfunction hasLift(source) {\n return isFunction(source === null || source === void 0 ? void 0 : source.lift);\n}\nfunction 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\nvar isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; });\n\nfunction isPromise(value) {\n return isFunction(value === null || value === void 0 ? void 0 : value.then);\n}\n\nfunction 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\nvar 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\nfunction arrRemove(arr, item) {\n if (arr) {\n var index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n\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}());\nSubscription.EMPTY;\nfunction 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\nvar config = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n\nvar 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\nfunction 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\nfunction noop() { }\n\nvar COMPLETE_NOTIFICATION = (function () { return createNotification('C', undefined, undefined); })();\nfunction errorNotification(error) {\n return createNotification('E', undefined, error);\n}\nfunction nextNotification(value) {\n return createNotification('N', value, undefined);\n}\nfunction createNotification(kind, value, error) {\n return {\n kind: kind,\n value: value,\n error: error,\n };\n}\n\nvar context = null;\nfunction 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}\n\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));\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));\nfunction handleUnhandledError(error) {\n {\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}\nvar EMPTY_OBSERVER = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n\nvar observable = (function () { return (typeof Symbol === 'function' && Symbol.observable) || '@@observable'; })();\n\nfunction identity(x) {\n return x;\n}\n\nfunction 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\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[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}());\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\nfunction isInteropObservable(input) {\n return isFunction(input[observable]);\n}\n\nfunction isAsyncIterable(obj) {\n return Symbol.asyncIterator && isFunction(obj === null || obj === void 0 ? void 0 : obj[Symbol.asyncIterator]);\n}\n\nfunction 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\nfunction getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nvar iterator = getSymbolIterator();\n\nfunction isIterable(input) {\n return isFunction(input === null || input === void 0 ? void 0 : input[iterator]);\n}\n\nfunction 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 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}\nfunction isReadableStreamLike(obj) {\n return isFunction(obj === null || obj === void 0 ? void 0 : obj.getReader);\n}\n\nfunction 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}\nfunction fromInteropObservable(obj) {\n return new Observable(function (subscriber) {\n var obs = obj[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}\nfunction 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}\nfunction 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}\nfunction 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}\nfunction fromAsyncIterable(asyncIterable) {\n return new Observable(function (subscriber) {\n process(asyncIterable, subscriber).catch(function (err) { return subscriber.error(err); });\n });\n}\nfunction 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\nfunction 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));\n\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 return this;\n };\n return Action;\n}(Subscription));\n\nvar 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\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));\n\nvar dateTimestampProvider = {\n now: function () {\n return (dateTimestampProvider.delegate || Date).now();\n },\n delegate: undefined,\n};\n\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}());\n\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));\n\nvar asyncScheduler = new AsyncScheduler(AsyncAction);\nvar async = asyncScheduler;\n\nfunction isScheduler(value) {\n return value && isFunction(value.schedule);\n}\n\nfunction isValidDate(value) {\n return value instanceof Date && !isNaN(value);\n}\n\nfunction timer(dueTime, intervalOrScheduler, scheduler) {\n if (dueTime === void 0) { dueTime = 0; }\n if (scheduler === void 0) { scheduler = async; }\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\nfunction last(arr) {\n return arr[arr.length - 1];\n}\nfunction popScheduler(args) {\n return isScheduler(last(args)) ? args.pop() : undefined;\n}\n\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction scheduleObservable(input, scheduler) {\n return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler));\n}\n\nfunction schedulePromise(input, scheduler) {\n return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler));\n}\n\nfunction 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\nfunction scheduleIterable(input, scheduler) {\n return new Observable(function (subscriber) {\n var iterator$1;\n executeSchedule(subscriber, scheduler, function () {\n iterator$1 = input[iterator]();\n executeSchedule(subscriber, scheduler, function () {\n var _a;\n var value;\n var done;\n try {\n (_a = iterator$1.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$1 === null || iterator$1 === void 0 ? void 0 : iterator$1.return) && iterator$1.return(); };\n });\n}\n\nfunction 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\nfunction scheduleReadableStreamLike(input, scheduler) {\n return scheduleAsyncIterable(readableStreamLikeToAsyncGenerator(input), scheduler);\n}\n\nfunction 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\nfunction from(input, scheduler) {\n return scheduler ? scheduled(input, scheduler) : innerFrom(input);\n}\n\nfunction 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\nfunction 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\nfunction 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\nfunction mergeAll(concurrent) {\n if (concurrent === void 0) { concurrent = Infinity; }\n return mergeMap(identity, concurrent);\n}\n\nfunction concatAll() {\n return mergeAll(1);\n}\n\nfunction 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\nfunction concat$1() {\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\nvar EMPTY = new Observable(function (subscriber) { return subscriber.complete(); });\n\nfunction 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\nfunction ignoreElements() {\n return operate(function (source, subscriber) {\n source.subscribe(createOperatorSubscriber(subscriber, noop));\n });\n}\n\nfunction mapTo(value) {\n return map(function () { return value; });\n}\n\nfunction delayWhen(delayDurationSelector, subscriptionDelay) {\n if (subscriptionDelay) {\n return function (source) {\n return concat$1(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\nfunction delay(due, scheduler) {\n if (scheduler === void 0) { scheduler = asyncScheduler; }\n var duration = timer(due, scheduler);\n return delayWhen(function () { return duration; });\n}\n\nfunction 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\nfunction 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\nfunction skip(count) {\n return filter(function (_, index) { return count <= index; });\n}\n\nfunction 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$1(values, source, scheduler) : concat$1(values, source)).subscribe(subscriber);\n });\n}\n\nfunction 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\nfunction 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\nvar TimeoutError = createErrorClass(function (_super) {\n return function TimeoutErrorImpl(info) {\n if (info === void 0) { info = null; }\n _super(this);\n this.message = 'Timeout has occurred';\n this.name = 'TimeoutError';\n this.info = info;\n };\n});\nfunction timeout(config, schedulerArg) {\n var _a = (isValidDate(config) ? { first: config } : typeof config === 'number' ? { each: config } : config), first = _a.first, each = _a.each, _b = _a.with, _with = _b === void 0 ? timeoutErrorFactory : _b, _c = _a.scheduler, scheduler = _c === void 0 ? schedulerArg !== null && schedulerArg !== void 0 ? schedulerArg : asyncScheduler : _c, _d = _a.meta, meta = _d === void 0 ? null : _d;\n if (first == null && each == null) {\n throw new TypeError('No timeout provided.');\n }\n return operate(function (source, subscriber) {\n var originalSourceSubscription;\n var timerSubscription;\n var lastValue = null;\n var seen = 0;\n var startTimer = function (delay) {\n timerSubscription = executeSchedule(subscriber, scheduler, function () {\n try {\n originalSourceSubscription.unsubscribe();\n innerFrom(_with({\n meta: meta,\n lastValue: lastValue,\n seen: seen,\n })).subscribe(subscriber);\n }\n catch (err) {\n subscriber.error(err);\n }\n }, delay);\n };\n originalSourceSubscription = source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n timerSubscription === null || timerSubscription === void 0 ? void 0 : timerSubscription.unsubscribe();\n seen++;\n subscriber.next((lastValue = value));\n each > 0 && startTimer(each);\n }, undefined, undefined, function () {\n if (!(timerSubscription === null || timerSubscription === void 0 ? void 0 : timerSubscription.closed)) {\n timerSubscription === null || timerSubscription === void 0 ? void 0 : timerSubscription.unsubscribe();\n }\n lastValue = null;\n }));\n !seen && startTimer(first != null ? (typeof first === 'number' ? first : +first - scheduler.now()) : each);\n });\n}\nfunction timeoutErrorFactory(info) {\n throw new TimeoutError(info);\n}\n\n//const hasSW = 'serviceWorker' in navigator;\nlet hasComplainedAboutSyncEvent = false;\nfunction registerSyncEvent(db, purpose) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n // Send sync event to SW:\n const sw = yield navigator.serviceWorker.ready;\n if (purpose === \"push\" && sw.sync) {\n yield 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 }\n else {\n throw new Error(`Failed to trigger sync - there's no active service worker`);\n }\n return;\n }\n catch (e) {\n if (!hasComplainedAboutSyncEvent) {\n console.debug(`Dexie Cloud: Could not register sync event`, e);\n hasComplainedAboutSyncEvent = true;\n }\n }\n });\n}\nfunction registerPeriodicSyncEvent(db) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n try {\n // Register periodicSync event to SW:\n // @ts-ignore\n const { periodicSync } = yield navigator.serviceWorker.ready;\n if (periodicSync) {\n try {\n yield periodicSync.register(`dexie-cloud:${db.name}`, (_a = db.cloud.options) === null || _a === void 0 ? void 0 : _a.periodicSync);\n console.debug(`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 }\n else {\n console.debug(`Dexie Cloud: periodicSync not supported.`);\n }\n }\n catch (e) {\n console.debug(`Dexie Cloud: Could not register periodicSync for ${db.name}`, e);\n }\n });\n}\n\nfunction triggerSync(db, purpose) {\n if (db.cloud.usingServiceWorker) {\n registerSyncEvent(db, purpose);\n }\n else {\n db.localSyncEvent.next({ purpose });\n }\n}\n\nconst 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 };\nconst 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 return btoa(String.fromCharCode.apply(null, ArrayBuffer.isView(b) ? b : new Uint8Array(b)));\n };\n\nfunction interactWithUser(userInteraction, req) {\n return new Promise((resolve, reject) => {\n const interactionProps = Object.assign(Object.assign({}, req), { onSubmit: (res) => {\n userInteraction.next(undefined);\n resolve(res);\n }, onCancel: () => {\n userInteraction.next(undefined);\n reject(new Dexie.AbortError(\"User cancelled\"));\n } });\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}\nfunction alertUser(userInteraction, title, ...alerts) {\n return interactWithUser(userInteraction, {\n type: 'message-alert',\n title,\n alerts,\n fields: {}\n });\n}\nfunction promptForEmail(userInteraction, title, emailHint) {\n return __awaiter(this, void 0, void 0, function* () {\n let email = emailHint || '';\n while (!email || !/^[\\w-\\.]+@([\\w-]+\\.)+[\\w-]{2,10}$/.test(email)) {\n email = (yield 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 })).email;\n }\n return email;\n });\n}\nfunction promptForOTP(userInteraction, email, alert) {\n return __awaiter(this, void 0, void 0, function* () {\n const alerts = [\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 } = yield 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}\n\nfunction loadAccessToken(db) {\n var _a, _b;\n return __awaiter(this, void 0, void 0, function* () {\n const currentUser = yield db.getCurrentUser();\n const { accessToken, accessTokenExpiration, refreshToken, refreshTokenExpiration, claims, } = currentUser;\n if (!accessToken)\n return;\n const expTime = (_a = accessTokenExpiration === null || accessTokenExpiration === void 0 ? void 0 : accessTokenExpiration.getTime()) !== null && _a !== void 0 ? _a : Infinity;\n if (expTime > Date.now()) {\n return accessToken;\n }\n if (!refreshToken) {\n throw new Error(`Refresh token missing`);\n }\n const refreshExpTime = (_b = refreshTokenExpiration === null || refreshTokenExpiration === void 0 ? void 0 : refreshTokenExpiration.getTime()) !== null && _b !== void 0 ? _b : Infinity;\n if (refreshExpTime <= Date.now()) {\n throw new Error(`Refresh token has expired`);\n }\n const refreshedLogin = yield refreshAccessToken(db.cloud.options.databaseUrl, currentUser);\n yield db.table('$logins').update(claims.sub, {\n accessToken: refreshedLogin.accessToken,\n accessTokenExpiration: refreshedLogin.accessTokenExpiration,\n });\n return refreshedLogin.accessToken;\n });\n}\nfunction authenticate(url, context, fetchToken, userInteraction, hints) {\n return __awaiter(this, void 0, void 0, function* () {\n if (context.accessToken &&\n context.accessTokenExpiration.getTime() > Date.now()) {\n return context;\n }\n else if (context.refreshToken &&\n (!context.refreshTokenExpiration ||\n context.refreshTokenExpiration.getTime() > Date.now())) {\n return yield refreshAccessToken(url, context);\n }\n else {\n return yield userAuthenticate(context, fetchToken, userInteraction, hints);\n }\n });\n}\nfunction refreshAccessToken(url, login) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!login.refreshToken)\n throw new Error(`Cannot refresh token - refresh token is missing.`);\n if (!login.nonExportablePrivateKey)\n throw new Error(`login.nonExportablePrivateKey is missing - cannot sign refresh token without a private key.`);\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 = yield crypto.subtle.sign(signing_algorithm, login.nonExportablePrivateKey, data);\n const signature = b64encode(binarySignature);\n const tokenRequest = {\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 = yield 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 = yield res.json();\n login.accessToken = response.accessToken;\n login.accessTokenExpiration = response.accessTokenExpiration\n ? new Date(response.accessTokenExpiration)\n : undefined;\n return login;\n });\n}\nfunction userAuthenticate(context, fetchToken, userInteraction, hints) {\n return __awaiter(this, void 0, void 0, function* () {\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 }\n else {\n throw new Error(`This browser does not support WebCrypto.`);\n }\n }\n const { privateKey, publicKey } = yield crypto.subtle.generateKey({\n name: 'RSASSA-PKCS1-v1_5',\n modulusLength: 2048,\n publicExponent: new Uint8Array([0x01, 0x00, 0x01]),\n hash: { name: 'SHA-256' },\n }, false, // Non-exportable...\n ['sign', 'verify']);\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 = yield crypto.subtle.exportKey('spki', publicKey);\n const publicKeyPEM = spkiToPEM(publicKeySPKI);\n context.publicKey = publicKey;\n try {\n const response2 = yield fetchToken({\n public_key: publicKeyPEM,\n hints,\n });\n if (response2.type !== 'tokens')\n throw new Error(`Unexpected response type from token endpoint: ${response2.type}`);\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(response2.refreshTokenExpiration);\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 if (response2.alerts && response2.alerts.length > 0) {\n yield interactWithUser(userInteraction, {\n type: 'message-alert',\n title: 'Authentication Alert',\n fields: {},\n alerts: response2.alerts,\n });\n }\n return context;\n }\n catch (error) {\n yield alertUser(userInteraction, 'Authentication Failed', {\n type: 'error',\n messageCode: 'GENERIC_ERROR',\n message: `We're having a problem authenticating right now.`,\n messageParams: {},\n }).catch(() => { });\n throw error;\n }\n });\n}\nfunction spkiToPEM(keydata) {\n const keydataB64 = b64encode(keydata);\n const keydataB64Pem = formatAsPem(keydataB64);\n return keydataB64Pem;\n}\nfunction formatAsPem(str) {\n let finalString = '-----BEGIN PUBLIC KEY-----\\n';\n while (str.length > 0) {\n finalString += str.substring(0, 64) + '\\n';\n str = str.substring(64);\n }\n finalString = finalString + '-----END PUBLIC KEY-----';\n return finalString;\n}\n\n// Emulate true-private property db. Why? So it's not stored in DB.\nconst wm$1 = new WeakMap();\nclass AuthPersistedContext {\n constructor(db, userLogin) {\n wm$1.set(this, db);\n Object.assign(this, userLogin);\n }\n static load(db, userId) {\n return db\n .table(\"$logins\")\n .get(userId)\n .then((userLogin) => new AuthPersistedContext(db, userLogin || {\n userId,\n claims: {\n sub: userId\n },\n lastLogin: new Date(0)\n }));\n }\n save() {\n return __awaiter(this, void 0, void 0, function* () {\n const db = wm$1.get(this);\n db.table(\"$logins\").put(this);\n });\n }\n}\n\nclass HttpError extends Error {\n constructor(res, message) {\n super(message || `${res.status} ${res.statusText}`);\n this.httpStatus = res.status;\n }\n get name() {\n return \"HttpError\";\n }\n}\n\nfunction otpFetchTokenCallback(db) {\n const { userInteraction } = db.cloud;\n return function otpAuthenticate({ public_key, hints }) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n let tokenRequest;\n const url = (_a = db.cloud.options) === null || _a === void 0 ? void 0 : _a.databaseUrl;\n if (!url)\n throw new Error(`No database URL given.`);\n if ((hints === null || hints === void 0 ? void 0 : hints.grant_type) === 'demo') {\n const demo_user = yield promptForEmail(userInteraction, 'Enter a demo user email', (hints === null || hints === void 0 ? void 0 : hints.email) || (hints === null || hints === void 0 ? void 0 : hints.userId));\n tokenRequest = {\n demo_user,\n grant_type: 'demo',\n scopes: ['ACCESS_DB'],\n public_key,\n };\n }\n else {\n const email = yield promptForEmail(userInteraction, 'Enter email address', hints === null || hints === void 0 ? void 0 : hints.email);\n tokenRequest = {\n email,\n grant_type: 'otp',\n scopes: ['ACCESS_DB'],\n public_key,\n };\n }\n const res1 = yield 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 = yield res1.text();\n yield 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 = yield res1.json();\n if (response.type === 'tokens') {\n // Demo user request can get a \"tokens\" response right away\n return response;\n }\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 = yield promptForOTP(userInteraction, tokenRequest.email);\n tokenRequest.otp = otp || '';\n tokenRequest.otp_id = response.otp_id;\n let res2 = yield 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 = yield res2.text();\n tokenRequest.otp = yield promptForOTP(userInteraction, tokenRequest.email, {\n type: 'error',\n messageCode: 'INVALID_OTP',\n message: errorText,\n messageParams: {}\n });\n res2 = yield 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 = yield res2.text();\n yield alertUser(userInteraction, \"OTP Authentication Failed\", {\n type: 'error',\n messageCode: 'GENERIC_ERROR',\n message: errMsg,\n messageParams: {}\n }).catch(() => { });\n throw new HttpError(res2, errMsg);\n }\n const response2 = yield res2.json();\n return response2;\n }\n else {\n throw new Error(`Unexpected response from ${url}/token`);\n }\n });\n };\n}\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 */\nfunction setCurrentUser(db, user) {\n return __awaiter(this, void 0, void 0, function* () {\n if (user.userId === db.cloud.currentUserId)\n return; // Already this user.\n const $logins = db.table('$logins');\n yield db.transaction('rw', $logins, (tx) => __awaiter(this, void 0, void 0, function* () {\n const existingLogins = yield $logins.toArray();\n yield Promise.all(existingLogins\n .filter((login) => login.userId !== user.userId && login.isLoggedIn)\n .map((login) => {\n login.isLoggedIn = false;\n return $logins.put(login);\n }));\n user.isLoggedIn = true;\n user.lastLogin = new Date();\n yield user.save();\n console.debug('Saved new user', user.email);\n }));\n yield new Promise((resolve) => {\n if (db.cloud.currentUserId === user.userId) {\n resolve(null);\n }\n else {\n const subscription = db.cloud.currentUser.subscribe((currentUser) => {\n if (currentUser.userId === user.userId) {\n subscription.unsubscribe();\n resolve(null);\n }\n });\n }\n });\n // TANKAR!!!!\n // V: Service workern kommer inte ha tillgång till currentUserObservable om den inte istället härrör från ett liveQuery.\n // V: Samma med andra windows.\n // V: Så kanske göra om den till att häröra från liveQuery som läser $logins.orderBy('lastLogin').last().\n // V: Då bara vara medveten om:\n // V: En sån observable börjar hämta data vid första subscribe\n // V: Vi har inget \"inital value\" men kan emulera det till att vara ANONYMOUS_USER\n // V: Om requireAuth är true, så borde db.on(ready) hålla databasen stängd för alla utom denna observable.\n // V: Om inte så behöver den inte blocka.\n // Andra tankar:\n // * Man kan inte byta användare när man är offline. Skulle gå att flytta realms till undanstuff-tabell vid user-change.\n // men troligen inte värt det.\n // * Istället: sälj inte inte switch-user funktionalitet utan tala enbart om inloggat vs icke inloggat läge.\n // * populate $logins med ANONYMOUS så att en påbörjad inloggning inte räknas, alternativt ha en boolean prop!\n // Kanske bäst ha en boolean prop!\n // * Alternativ switch-user funktionalitet:\n // * DBCore gömmer data från realms man inte har tillgång till.\n // * Cursor impl behövs också då.\n // * Då blir det snabba user switch.\n // * claims-settet som skickas till servern blir summan av alla claims. Då måste servern stödja multipla tokens eller\n // att ens token är ett samlad.\n });\n}\n\nfunction login(db, hints) {\n return __awaiter(this, void 0, void 0, function* () {\n const currentUser = yield db.getCurrentUser();\n if (currentUser.isLoggedIn) {\n if (hints) {\n if (hints.email && db.cloud.currentUser.value.email !== hints.email) {\n throw new Error(`Must logout before changing user`);\n }\n if (hints.userId && db.cloud.currentUserId !== hints.userId) {\n throw new Error(`Must logout before changing user`);\n }\n }\n // Already authenticated according to given hints.\n return false;\n }\n const context = new AuthPersistedContext(db, {\n claims: {},\n lastLogin: new Date(0),\n });\n yield authenticate(db.cloud.options.databaseUrl, context, db.cloud.options.fetchTokens || otpFetchTokenCallback(db), db.cloud.userInteraction, hints);\n try {\n yield context.save();\n }\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 }\n catch (_a) { }\n throw e;\n }\n yield 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 true;\n });\n}\n\nconst UNAUTHORIZED_USER = {\n userId: \"unauthorized\",\n name: \"Unauthorized\",\n claims: {\n sub: \"unauthorized\",\n },\n lastLogin: new Date(0)\n};\ntry {\n Object.freeze(UNAUTHORIZED_USER);\n Object.freeze(UNAUTHORIZED_USER.claims);\n}\ncatch (_a) { }\n\nconst swHolder = {};\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((registration) => (swHolder.registration = registration));\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) => {\n var _a, _b;\n if ((_b = (_a = ev.data) === null || _a === void 0 ? void 0 : _a.type) === null || _b === void 0 ? void 0 : _b.startsWith('sw-broadcast-')) {\n [...self['clients'].matchAll({ includeUncontrolled: true })].forEach((client) => { var _a; return client.id !== ((_a = ev.source) === null || _a === void 0 ? void 0 : _a.id) && client.postMessage(ev.data); });\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 */\nclass SWBroadcastChannel {\n constructor(name) {\n this.name = name;\n }\n subscribe(listener) {\n if (!swContainer)\n return () => { };\n const forwarder = (ev) => {\n var _a;\n if (((_a = ev.data) === null || _a === void 0 ? void 0 : _a.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) {\n var _a;\n if (typeof self['clients'] === 'object') {\n // We're a service worker. Propagate to our browser clients.\n [...self['clients'].matchAll({ includeUncontrolled: true })].forEach((client) => 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 (_a = swHolder.registration.active) === null || _a === void 0 ? void 0 : _a.postMessage({\n type: `sw-broadcast-${this.name}`,\n message,\n });\n }\n }\n}\n\nconst events = globalThis['lbc-events'] || (globalThis['lbc-events'] = new Map());\nfunction addListener(name, listener) {\n if (events.has(name)) {\n events.get(name).push(listener);\n }\n else {\n events.set(name, [listener]);\n }\n}\nfunction removeListener(name, listener) {\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) {\n const listeners = events.get(ev.type);\n if (listeners) {\n listeners.forEach(listener => {\n try {\n listener(ev);\n }\n catch (_a) {\n }\n });\n }\n}\nclass BroadcastedAndLocalEvent extends Observable$1 {\n constructor(name) {\n const bc = typeof BroadcastChannel === \"undefined\"\n ? new SWBroadcastChannel(name) : new BroadcastChannel(name);\n super(subscriber => {\n function onCustomEvent(ev) {\n subscriber.next(ev.detail);\n }\n function onMessageEvent(ev) {\n console.debug(\"BroadcastedAndLocalEvent: onMessageEvent\", ev);\n subscriber.next(ev.data);\n }\n let unsubscribe;\n //self.addEventListener(`lbc-${name}`, onCustomEvent); // Fails in service workers\n addListener(`lbc-${name}`, onCustomEvent); // Works better in service worker\n try {\n if (bc instanceof SWBroadcastChannel) {\n unsubscribe = bc.subscribe(message => subscriber.next(message));\n }\n else {\n console.debug(\"BroadcastedAndLocalEvent: bc.addEventListener()\", name, \"bc is a\", bc);\n bc.addEventListener(\"message\", onMessageEvent);\n }\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 }\n else {\n bc.removeEventListener(\"message\", onMessageEvent);\n }\n };\n });\n this.name = name;\n this.bc = bc;\n }\n next(message) {\n console.debug(\"BroadcastedAndLocalEvent: bc.postMessage()\", Object.assign({}, 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\nfunction computeRealmSetHash({ realms, inviteRealms, }) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify([\n ...realms.map((realmId) => ({ realmId, accepted: true })),\n ...inviteRealms.map((realmId) => ({ realmId, accepted: false })),\n ].sort((a, b) => a.realmId < b.realmId ? -1 : a.realmId > b.realmId ? 1 : 0));\n const byteArray = new TextEncoder().encode(data);\n const digestBytes = yield crypto.subtle.digest('SHA-1', byteArray);\n const base64 = b64encode(digestBytes);\n return base64;\n });\n}\n\nfunction getSyncableTables(db) {\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\nfunction getMutationTable(tableName) {\n return `$${tableName}_mutations`;\n}\n\nfunction getTableFromMutationTable(mutationTable) {\n var _a;\n const tableName = (_a = /^\\$(.*)_mutations$/.exec(mutationTable)) === null || _a === void 0 ? void 0 : _a[1];\n if (!tableName)\n throw new Error(`Given mutationTable ${mutationTable} is not correct`);\n return tableName;\n}\n\nconst concat = [].concat;\nfunction flatten(a) {\n return concat.apply([], a);\n}\n\nfunction listClientChanges(mutationTables, db, { since = {}, limit = Infinity } = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const allMutsOnTables = yield Promise.all(mutationTables.map((mutationTable) => __awaiter(this, void 0, void 0, function* () {\n const tableName = getTableFromMutationTable(mutationTable.name);\n const lastRevision = since[tableName];\n let query = lastRevision\n ? mutationTable.where('rev').above(lastRevision)\n : mutationTable;\n if (limit < Infinity)\n query = query.limit(limit);\n const muts = yield query.toArray();\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 // Sort by time to get a true order of the operations (between tables)\n const sorted = flatten(allMutsOnTables).sort((a, b) => a.mut.ts - b.mut.ts);\n const result = [];\n let currentEntry = null;\n let currentTxid = null;\n for (const { table, mut } of sorted) {\n if (currentEntry &&\n currentEntry.table === table &&\n currentTxid === mut.txid) {\n currentEntry.muts.push(mut);\n }\n else {\n currentEntry = {\n table,\n muts: [mut],\n };\n currentTxid = mut.txid;\n result.push(currentEntry);\n }\n }\n // Filter out those tables that doesn't have any mutations:\n return result;\n });\n}\n\nfunction randomString(bytes) {\n const buf = new Uint8Array(bytes);\n if (typeof crypto !== 'undefined') {\n crypto.getRandomValues(buf);\n }\n else {\n for (let i = 0; i < bytes; i++)\n buf[i] = Math.floor(Math.random() * 256);\n }\n if (typeof Buffer !== 'undefined' && Buffer.from) {\n return Buffer.from(buf).toString('base64');\n }\n else if (typeof btoa !== 'undefined') {\n return btoa(String.fromCharCode.apply(null, buf));\n }\n else {\n throw new Error('No btoa or Buffer available');\n }\n}\n\nfunction listSyncifiedChanges(tablesToSyncify, currentUser, schema, alreadySyncedRealms) {\n return __awaiter(this, void 0, void 0, function* () {\n const txid = `upload-${randomString(8)}`;\n if (currentUser.isLoggedIn) {\n if (tablesToSyncify.length > 0) {\n const ignoredRealms = new Set(alreadySyncedRealms || []);\n const upserts = yield Promise.all(tablesToSyncify.map((table) => __awaiter(this, void 0, void 0, function* () {\n const { extractKey } = table.core.schema.primaryKey;\n if (!extractKey)\n return { table: table.name, muts: [] }; // Outbound tables are not synced.\n const dexieCloudTableSchema = schema[table.name];\n const query = (dexieCloudTableSchema === null || dexieCloudTableSchema === void 0 ? void 0 : dexieCloudTableSchema.generatedGlobalId)\n ? table.filter((item) => {\n extractKey(item);\n return (!ignoredRealms.has(item.realmId || '') &&\n //(id[0] !== '#' || !!item.$ts) && // Private obj need no sync if not changed\n isValidAtID(extractKey(item), dexieCloudTableSchema === null || dexieCloudTableSchema === void 0 ? void 0 : dexieCloudTableSchema.idPrefix));\n })\n : table.filter((item) => {\n const id = extractKey(item);\n return (!ignoredRealms.has(item.realmId || '') &&\n //(id[0] !== '#' || !!item.$ts) && // Private obj need no sync if not changed\n isValidSyncableID(id));\n });\n const unsyncedObjects = yield query.toArray();\n if (unsyncedObjects.length > 0) {\n const mut = {\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 }\n else {\n return {\n table: table.name,\n muts: [],\n };\n }\n })));\n return upserts.filter((op) => op.muts.length > 0);\n }\n }\n return [];\n });\n}\n\nfunction getTablesToSyncify(db, syncState) {\n const syncedTables = (syncState === null || syncState === void 0 ? void 0 : syncState.syncedTables) || [];\n const syncableTables = getSyncableTables(db);\n const tablesToSyncify = syncableTables.filter((tbl) => !syncedTables.includes(tbl.name));\n return tablesToSyncify;\n}\n\nconst { toString: toStr } = {};\nfunction getToStringTag(val) {\n return toStr.call(val).slice(8, -1);\n}\nfunction 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};\nfunction 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\nconst 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\nvar numberDef = {\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\nconst bigIntDef = {\n bigint: {\n replace: (realVal) => {\n return { $t: \"bigint\", v: \"\" + realVal };\n },\n revive: (obj) => BigInt(obj.v),\n },\n};\n\nvar DateDef = {\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\nvar SetDef = {\n Set: {\n replace: (set) => ({\n $t: \"Set\",\n v: Array.from(set.entries()),\n }),\n revive: ({ v }) => new Set(v),\n },\n};\n\nvar MapDef = {\n Map: {\n replace: (map) => ({\n $t: \"Map\",\n v: Array.from(map.entries()),\n }),\n revive: ({ v }) => new Map(v),\n },\n};\n\nconst _global = typeof globalThis !== \"undefined\"\n ? globalThis\n : typeof self !== \"undefined\"\n ? self\n : typeof global === \"undefined\"\n ? global\n : undefined;\n\nvar TypedArraysDefs = [\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\nfunction b64LexEncode(b) {\n return b64ToLex(b64encode(b));\n}\nfunction b64LexDecode(b64Lex) {\n return b64decode(lexToB64(b64Lex));\n}\nfunction 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}\nfunction 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\nvar ArrayBufferDef = {\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\nclass FakeBlob {\n constructor(buf, type) {\n this.buf = buf;\n this.type = type;\n }\n}\n\nfunction 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\nfunction 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}\n\nvar BlobDef = {\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\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};\n\nfunction 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}\nfunction 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}\nfunction 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\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 */\nvar undefinedDef = {\n undefined: {\n replace: () => ({\n $t: \"undefined\"\n }),\n revive: () => undefined,\n },\n};\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)\nconst hasBigIntSupport = typeof BigInt === 'function' && typeof BigInt(0) === 'bigint';\nclass FakeBigInt {\n toString() {\n return this.v;\n }\n constructor(value) {\n this.v = value;\n }\n}\nconst defs = Object.assign(Object.assign({}, undefinedDef), (hasBigIntSupport\n ? {}\n : {\n bigint: {\n test: (val) => val instanceof FakeBigInt,\n replace: (fakeBigInt) => {\n return Object.assign({ $t: 'bigint' }, fakeBigInt);\n },\n revive: ({ v, }) => new FakeBigInt(v)\n }\n }));\nconst TSON = TypesonSimplified(builtin, defs);\nconst BISON = Bison(defs);\n\nfunction encodeIdsForServer(schema, currentUser, changes) {\n const rv = [];\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(`Internal error: table ${table} not found in DBCore schema`);\n const { primaryKey } = tableSchema;\n let changeClone = change;\n muts.forEach((mut, mutIndex) => {\n const rewriteValues = !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 if (rewriteValues) {\n Dexie.setByKeyPath(mutClone.values[keyIndex], primaryKey.keyPath, 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(`Internal error: Cannot sync private IDs before authenticated`);\n const rewrittenKey = `${key}:${currentUser.userId}`;\n mutClone.keys[keyIndex] = rewrittenKey;\n if (rewriteValues) {\n Dexie.setByKeyPath(mutClone.values[keyIndex], primaryKey.keyPath, rewrittenKey);\n }\n }\n });\n });\n rv.push(changeClone);\n }\n return rv;\n}\nfunction cloneChange(change, rewriteValues) {\n // clone on demand:\n return Object.assign(Object.assign({}, change), { muts: rewriteValues\n ? change.muts.map((m) => {\n return (m.type === 'insert' || m.type === 'upsert') && m.values\n ? Object.assign(Object.assign({}, m), { keys: m.keys.slice(), values: m.values.slice() }) : Object.assign(Object.assign({}, m), { keys: m.keys.slice() });\n })\n : change.muts.map((m) => (Object.assign(Object.assign({}, m), { keys: m.keys.slice() }))) });\n}\n\n//import {BisonWebStreamReader} from \"dreambase-library/dist/typeson-simplified/BisonWebStreamReader\";\nfunction syncWithServer(changes, syncState, baseRevs, db, databaseUrl, schema, clientIdentity, currentUser) {\n return __awaiter(this, void 0, void 0, function* () {\n //\n // Push changes to server using fetch\n //\n const headers = {\n Accept: 'application/json, application/x-bison, application/x-bison-stream',\n 'Content-Type': 'application/tson'\n };\n const accessToken = yield loadAccessToken(db);\n if (accessToken) {\n headers.Authorization = `Bearer ${accessToken}`;\n }\n const syncRequest = {\n v: 2,\n dbID: syncState === null || syncState === void 0 ? void 0 : syncState.remoteDbId,\n clientIdentity,\n schema: schema || {},\n lastPull: syncState ? {\n serverRevision: syncState.serverRevision,\n realms: syncState.realms,\n inviteRealms: syncState.inviteRealms\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 = yield fetch(`${databaseUrl}/sync`, {\n method: 'post',\n headers,\n body: TSON.stringify(syncRequest)\n });\n //const contentLength = Number(res.headers.get('content-length'));\n db.syncStateChangedEvent.next({\n phase: 'pulling'\n });\n if (!res.ok) {\n throw new HttpError(res);\n }\n switch (res.headers.get('content-type')) {\n case 'application/x-bison':\n return BISON.fromBinary(yield res.blob());\n case 'application/x-bison-stream': //return BisonWebStreamReader(BISON, res);\n default:\n case 'application/json': {\n const text = yield res.text();\n const syncRes = TSON.parse(text);\n return syncRes;\n }\n }\n });\n}\n\nfunction modifyLocalObjectsWithNewUserId(syncifiedTables, currentUser, alreadySyncedRealms) {\n return __awaiter(this, void 0, void 0, function* () {\n const ignoredRealms = new Set(alreadySyncedRealms || []);\n for (const table of syncifiedTables) {\n if (table.name === \"members\") {\n // members\n yield table.toCollection().modify((member) => {\n if (!ignoredRealms.has(member.realmId) && (!member.userId || member.userId === UNAUTHORIZED_USER.userId)) {\n member.userId = currentUser.userId;\n }\n });\n }\n else if (table.name === \"roles\") ;\n else if (table.name === \"realms\") {\n // realms\n yield table.toCollection().modify((realm) => {\n if (!ignoredRealms.has(realm.realmId) && (realm.owner === undefined || realm.owner === UNAUTHORIZED_USER.userId)) {\n realm.owner = currentUser.userId;\n }\n });\n }\n else {\n // application entities\n yield 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}\n\nfunction throwIfCancelled(cancelToken) {\n if (cancelToken === null || cancelToken === void 0 ? void 0 : cancelToken.cancelled)\n throw new Dexie.AbortError(`Operation was cancelled`);\n}\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*/\nlet 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\nfunction updateBaseRevs(db, schema, latestRevisions, serverRev) {\n return __awaiter(this, void 0, void 0, function* () {\n yield db.$baseRevs.bulkPut(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\nfunction getLatestRevisionsPerTable(clientChangeSet, lastRevisions = {}) {\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\nfunction bulkUpdate(table, keys, changeSpecs) {\n return __awaiter(this, void 0, void 0, function* () {\n const objs = yield table.bulkGet(keys);\n const resultKeys = [];\n const resultObjs = [];\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 }\n else {\n Dexie.setByKeyPath(obj, keyPath, value);\n }\n }\n resultKeys.push(key);\n resultObjs.push(obj);\n }\n });\n yield (table.schema.primKey.keyPath == null\n ? table.bulkPut(resultObjs, resultKeys)\n : table.bulkPut(resultObjs));\n });\n}\n\nfunction applyServerChanges(changes, db) {\n return __awaiter(this, void 0, void 0, function* () {\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)\n continue; // If server sends changes on a table we don't have, ignore it.\n const { primaryKey } = table.core.schema;\n const keyDecoder = (key) => {\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 }\n catch (_a) { }\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(0, key.length - db.cloud.currentUserId.length - 1);\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 yield table.bulkAdd(mut.values, keys);\n }\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 yield table.bulkAdd(mut.values);\n }\n break;\n case 'upsert':\n if (primaryKey.outbound) {\n yield table.bulkPut(mut.values, keys);\n }\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 yield table.bulkPut(mut.values);\n }\n break;\n case 'modify':\n if (keys.length === 1) {\n yield table.update(keys[0], mut.changeSpec);\n }\n else {\n yield table.where(':id').anyOf(keys).modify(mut.changeSpec);\n }\n break;\n case 'update':\n yield bulkUpdate(table, keys, mut.changeSpecs);\n break;\n case 'delete':\n yield table.bulkDelete(keys);\n break;\n }\n }\n }\n });\n}\n\nconst CURRENT_SYNC_WORKER = 'currentSyncWorker';\nfunction sync(db, options, schema, syncOptions) {\n return _sync\n .apply(this, arguments)\n .then(() => {\n if (!(syncOptions === null || syncOptions === void 0 ? void 0 : syncOptions.justCheckIfNeeded)) { // && syncOptions?.purpose !== 'push') {\n db.syncStateChangedEvent.next({\n phase: 'in-sync',\n });\n }\n })\n .catch((error) => __awaiter(this, void 0, void 0, function* () {\n if (syncOptions === null || syncOptions === void 0 ? void 0 : syncOptions.justCheckIfNeeded)\n return Promise.reject(error); // Just rethrow.\n console.debug('Error from _sync', {\n isOnline,\n syncOptions,\n error,\n });\n if (isOnline &&\n (syncOptions === null || syncOptions === void 0 ? void 0 : syncOptions.retryImmediatelyOnFetchError) &&\n (error === null || error === void 0 ? void 0 : error.name) === 'TypeError' &&\n /fetch/.test(error === null || error === void 0 ? void 0 : error.message)) {\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 yield new Promise((resolve) => setTimeout(resolve, 500));\n return yield sync(db, options, schema, Object.assign(Object.assign({}, syncOptions), { retryImmediatelyOnFetchError: false }));\n }\n // Make sure that no matter whether sync() explodes or not,\n // always update the timestamp. Also store the error.\n yield db.$syncState.update('syncState', {\n timestamp: new Date(),\n error: '' + error,\n });\n db.syncStateChangedEvent.next({\n phase: isOnline ? 'error' : 'offline',\n error,\n });\n return Promise.reject(error);\n }));\n}\nfunction _sync(db, options, schema, { isInitialSync, cancelToken, justCheckIfNeeded, purpose } = {\n isInitialSync: false,\n}) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n if (!justCheckIfNeeded) {\n console.debug('SYNC STARTED', { isInitialSync, purpose });\n }\n if (!((_a = db.cloud.options) === null || _a === void 0 ? void 0 : _a.databaseUrl))\n throw new Error(`Internal error: sync must not be called when no databaseUrl is configured`);\n const { databaseUrl } = options;\n const currentUser = yield db.getCurrentUser(); // Keep same value across entire sync flow:\n const tablesToSync = currentUser.isLoggedIn ? getSyncableTables(db) : [];\n const mutationTables = tablesToSync.map((tbl) => db.table(getMutationTable(tbl.name)));\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 = yield 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 if (doSyncify) {\n if (justCheckIfNeeded)\n return true;\n //console.debug('sync doSyncify is true');\n yield db.transaction('rw', tablesToSyncify, (tx) => __awaiter(this, void 0, void 0, function* () {\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 yield modifyLocalObjectsWithNewUserId(tablesToSyncify, currentUser, persistedSyncState === null || persistedSyncState === void 0 ? void 0 : persistedSyncState.realms);\n }));\n throwIfCancelled(cancelToken);\n }\n //\n // List changes to sync\n //\n const [clientChangeSet, syncState, baseRevs] = yield db.transaction('r', db.tables, () => __awaiter(this, void 0, void 0, function* () {\n const syncState = yield db.getPersistedSyncState();\n const baseRevs = yield db.$baseRevs.toArray();\n let clientChanges = yield listClientChanges(mutationTables);\n throwIfCancelled(cancelToken);\n if (doSyncify) {\n const alreadySyncedRealms = [\n ...((persistedSyncState === null || persistedSyncState === void 0 ? void 0 : persistedSyncState.realms) || []),\n ...((persistedSyncState === null || persistedSyncState === void 0 ? void 0 : persistedSyncState.inviteRealms) || []),\n ];\n const syncificationInserts = yield listSyncifiedChanges(tablesToSyncify, currentUser, schema, alreadySyncedRealms);\n throwIfCancelled(cancelToken);\n clientChanges = clientChanges.concat(syncificationInserts);\n return [clientChanges, syncState, baseRevs];\n }\n return [clientChanges, syncState, baseRevs];\n }));\n const pushSyncIsNeeded = clientChangeSet.some((set) => set.muts.some((mut) => mut.keys.length > 0));\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 const latestRevisions = getLatestRevisionsPerTable(clientChangeSet, syncState === null || syncState === void 0 ? void 0 : syncState.latestRevisions);\n const clientIdentity = (syncState === null || syncState === void 0 ? void 0 : syncState.clientIdentity) || randomString$1(16);\n //\n // Push changes to server\n //\n throwIfCancelled(cancelToken);\n const res = yield syncWithServer(clientChangeSet, syncState, baseRevs, db, databaseUrl, schema, clientIdentity, currentUser);\n console.debug('Sync response', res);\n //\n // Apply changes locally and clear old change entries:\n //\n const done = yield db.transaction('rw', db.tables, (tx) => __awaiter(this, void 0, void 0, function* () {\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 // 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 yield db.$syncState.put(schema, 'schema');\n // List mutations that happened during our exchange with the server:\n const addedClientChanges = yield listClientChanges(mutationTables, db, {\n since: latestRevisions,\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 (!addedClientChanges.some((ch) => ch.table === tableName && ch.muts.length > 0)) {\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 yield Promise.all([\n mutTable.clear(),\n db.$baseRevs.where({ tableName }).delete(),\n ]);\n }\n else if (latestRevisions[tableName]) {\n const latestRev = latestRevisions[tableName] || 0;\n yield Promise.all([\n mutTable.where('rev').belowOrEqual(latestRev).delete(),\n db.$baseRevs\n .where(':id')\n .between([tableName, -Infinity], [tableName, latestRev + 1], true, true)\n .reverse()\n .offset(1) // Keep one entry (the one mapping muts that came during fetch --> previous server revision)\n .delete(),\n ]);\n }\n else ;\n }\n // Update latestRevisions object according to additional changes:\n getLatestRevisionsPerTable(addedClientChanges, latestRevisions);\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 yield updateBaseRevs(db, schema, latestRevisions, res.serverRevision);\n const syncState = yield db.getPersistedSyncState();\n //\n // Delete objects from removed realms\n //\n yield deleteObjectsFromRemovedRealms(db, res, syncState);\n //\n // Update syncState\n //\n const newSyncState = 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 const filteredChanges = filterServerChangesThroughAddedClientChanges(res.changes, addedClientChanges);\n //\n // apply server changes\n //\n yield applyServerChanges(filteredChanges, db);\n //\n // Update syncState\n //\n db.$syncState.put(newSyncState, 'syncState');\n return addedClientChanges.length === 0;\n }));\n if (!done) {\n console.debug('MORE SYNC NEEDED. Go for it again!');\n return yield _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}\nfunction deleteObjectsFromRemovedRealms(db, res, prevState) {\n return __awaiter(this, void 0, void 0, function* () {\n const deletedRealms = new Set();\n const rejectedRealms = new Set();\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)\n continue;\n if (table.schema.indexes.some((idx) => idx.keyPath === 'realmId' ||\n (Array.isArray(idx.keyPath) && idx.keyPath[0] === 'realmId'))) {\n // There's an index to use:\n //console.debug(`REMOVAL: deleting all ${table.name} where realmId anyOf `, JSON.stringify([...realmsToDelete]));\n yield table\n .where('realmId')\n .anyOf([...realmsToDelete])\n .delete();\n }\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 yield table\n .filter((obj) => !!(obj === null || obj === void 0 ? void 0 : obj.realmId) && realmsToDelete.has(obj.realmId))\n .delete();\n }\n }\n }\n });\n}\nfunction filterServerChangesThroughAddedClientChanges(serverChanges, addedClientChanges) {\n const changes = {};\n applyOperations(changes, serverChanges);\n const localPostChanges = {};\n applyOperations(localPostChanges, addedClientChanges);\n subtractChanges(changes, localPostChanges);\n return toDBOperationSet(changes);\n}\n\nfunction MessagesFromServerConsumer(db) {\n const queue = [];\n const readyToServe = new BehaviorSubject(true);\n const event = new BehaviorSubject(null);\n let isWorking = false;\n let loopWarning = 0;\n let loopDetection = [0, 0, 0, 0, 0, 0, 0, 0, 0, Date.now()];\n event.subscribe(() => __awaiter(this, void 0, void 0, function* () {\n if (isWorking)\n return;\n if (queue.length > 0) {\n isWorking = true;\n loopDetection.shift();\n loopDetection.push(Date.now());\n readyToServe.next(false);\n try {\n yield consumeQueue();\n }\n finally {\n if (loopDetection[loopDetection.length - 1] - loopDetection[0] <\n 10000) {\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 yield new Promise((resolve) => setTimeout(resolve, 60000));\n }\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 yield new Promise((resolve) => setTimeout(resolve, 10000));\n }\n }\n isWorking = false;\n readyToServe.next(true);\n }\n }\n }));\n function enqueue(msg) {\n queue.push(msg);\n event.next(null);\n }\n function consumeQueue() {\n var _a, _b, _c;\n return __awaiter(this, void 0, void 0, function* () {\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 yield db.cloud.syncState\n .pipe(filter(({ phase }) => phase === 'in-sync' || phase === 'error'), take(1))\n .toPromise();\n console.debug('processing msg', msg);\n const persistedSyncState = db.cloud.persistedSyncState.value;\n //syncState.\n if (!msg)\n continue;\n switch (msg.type) {\n case 'token-expired':\n console.debug('WebSocket observable: Token expired. Refreshing token...');\n const user = db.cloud.currentUser.value;\n // Refresh access token\n const refreshedLogin = yield refreshAccessToken(db.cloud.options.databaseUrl, user);\n // Persist updated access token\n yield db.table('$logins').update(user.userId, {\n accessToken: refreshedLogin.accessToken,\n accessTokenExpiration: refreshedLogin.accessTokenExpiration,\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 (!persistedSyncState?.realms?.includes(msg.realm) && !persistedSyncState?.inviteRealms?.includes(msg.realm)) {\n triggerSync(db, 'pull');\n //}\n break;\n case 'realm-accepted':\n //if (!persistedSyncState?.realms?.includes(msg.realm)) {\n triggerSync(db, 'pull');\n //}\n break;\n case 'realm-removed':\n //if (\n ((_a = persistedSyncState === null || persistedSyncState === void 0 ? void 0 : persistedSyncState.realms) === null || _a === void 0 ? void 0 : _a.includes(msg.realm)) ||\n ((_b = persistedSyncState === null || persistedSyncState === void 0 ? void 0 : persistedSyncState.inviteRealms) === null || _b === void 0 ? void 0 : _b.includes(msg.realm));\n //) {\n triggerSync(db, 'pull');\n //}\n break;\n case 'realms-changed':\n triggerSync(db, 'pull');\n break;\n case 'changes':\n console.debug('changes');\n if (((_c = db.cloud.syncState.value) === null || _c === void 0 ? void 0 : _c.phase) === 'error') {\n triggerSync(db, 'pull');\n break;\n }\n yield db.transaction('rw', db.dx.tables, (tx) => __awaiter(this, void 0, void 0, function* () {\n // @ts-ignore\n tx.idbtrans.disableChangeTracking = true;\n // @ts-ignore\n tx.idbtrans.disableAccessControl = true;\n const [schema, syncState, currentUser] = yield 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(`baseRev (${msg.baseRev}) differs from our serverRevision in syncState (${syncState.serverRevision})`);\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 (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 = yield Dexie.waitFor(\n // Keep TX in non-IDB work\n computeRealmSetHash(syncState));\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 // Get clientChanges\n let clientChanges = [];\n if (currentUser.isLoggedIn) {\n const mutationTables = getSyncableTables(db).map((tbl) => db.table(getMutationTable(tbl.name)));\n clientChanges = yield listClientChanges(mutationTables, db);\n console.debug('msg queue: client changes', clientChanges);\n }\n if (msg.changes.length > 0) {\n const filteredChanges = filterServerChangesThroughAddedClientChanges(msg.changes, clientChanges);\n //\n // apply server changes\n //\n console.debug('applying filtered server changes', filteredChanges);\n yield applyServerChanges(filteredChanges, db);\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(clientChanges, syncState.latestRevisions);\n syncState.serverRevision = msg.newRev;\n // Update base revs\n console.debug('Updating baseRefs', syncState.latestRevisions);\n yield updateBaseRevs(db, schema, syncState.latestRevisions, msg.newRev);\n //\n // Update syncState\n //\n console.debug('Updating syncState', syncState);\n yield db.$syncState.put(syncState, 'syncState');\n }));\n console.debug('msg queue: done with rw transaction');\n break;\n }\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\nconst wm = new WeakMap();\nconst 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};\nlet static_counter = 0;\nfunction DexieCloudDB(dx) {\n if ('vip' in dx)\n 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();\n let syncStateChangedEvent = new BroadcastedAndLocalEvent(`syncstatechanged-${dx.name}`);\n let syncCompleteEvent = new BroadcastedAndLocalEvent(`synccomplete-${dx.name}`);\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');\n },\n get $syncState() {\n return dx.table('$syncState');\n },\n get $baseRevs() {\n return dx.table('$baseRevs');\n },\n get $logins() {\n return dx.table('$logins');\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 };\n const helperMethods = {\n getCurrentUser() {\n return db.$logins\n .toArray()\n .then((logins) => logins.find((l) => l.isLoggedIn) || UNAUTHORIZED_USER);\n },\n getPersistedSyncState() {\n return db.$syncState.get('syncState');\n },\n getSchema() {\n return db.$syncState.get('schema').then((schema) => {\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(table.schema.primKey.keyPath);\n }\n }\n }\n return schema;\n });\n },\n getOptions() {\n return db.$syncState.get('options');\n },\n setInitiallySynced(value) {\n initiallySynced = value;\n },\n reconfigure() {\n syncStateChangedEvent = new BroadcastedAndLocalEvent(`syncstatechanged-${dx.name}`);\n syncCompleteEvent = new BroadcastedAndLocalEvent(`synccomplete-${dx.name}`);\n },\n };\n Object.assign(db, helperMethods);\n db.messageConsumer = MessagesFromServerConsumer(db);\n wm.set(dx.cloud, db);\n }\n return db;\n}\nfunction nameFromKeyPath(keyPath) {\n return typeof keyPath === 'string' ?\n keyPath :\n keyPath ? ('[' + [].join.call(keyPath, '+') + ']') : \"\";\n}\n\n// @ts-ignore\nconst isFirefox = typeof InstallTrigger !== 'undefined';\n\nconst isSafari = typeof navigator !== 'undefined' &&\n /Safari\\//.test(navigator.userAgent) &&\n !/Chrom(e|ium)\\/|Edge\\//.test(navigator.userAgent);\nconst safariVersion = isSafari\n ? // @ts-ignore\n [].concat(navigator.userAgent.match(/Safari\\/(\\d*)/))[1]\n : NaN;\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.\nconst DISABLE_SERVICEWORKER_STRATEGY = (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\n/* Helper function to subscribe to database close no matter if it was unexpectedly closed or manually using db.close()\n */\nfunction dbOnClosed(db, handler) {\n db.on.close.subscribe(handler);\n const origClose = db.close;\n db.close = function () {\n origClose.call(this);\n handler();\n };\n return () => {\n db.on.close.unsubscribe(handler);\n db.close = origClose;\n };\n}\n\nconst IS_SERVICE_WORKER = typeof self !== \"undefined\" && \"clients\" in self && !self.document;\n\nfunction throwVersionIncrementNeeded() {\n throw new Dexie.SchemaError(`Version increment needed to allow dexie-cloud change tracking`);\n}\n\nconst { toString } = {};\nfunction toStringTag(o) {\n return toString.call(o).slice(8, -1);\n}\nfunction getEffectiveKeys(primaryKey, req) {\n var _a;\n if (req.type === 'delete')\n return req.keys;\n return ((_a = req.keys) === null || _a === void 0 ? void 0 : _a.slice()) || req.values.map(primaryKey.extractKey);\n}\nfunction applyToUpperBitFix(orig, bits) {\n return ((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}\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) {\n return ch >= 'A' && ch <= 'Z';\n}\nfunction generateTablePrefix(tableName, allPrefixes) {\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 }\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 */\nfunction generateKey(prefix, shardKey) {\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 }\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\nfunction createIdGenerationMiddleware(db) {\n return {\n stack: 'dbcore',\n name: 'idGenerationMiddleware',\n level: 1,\n create: (core) => {\n return Object.assign(Object.assign({}, core), { table: (tableName) => {\n const table = core.table(tableName);\n function generateOrVerifyAtKeys(req, idPrefix) {\n let valueClones = 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 = 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)\n valueClones = req.values.slice();\n valueClones[idx] = Dexie.deepClone(valueClones[idx]);\n Dexie.setByKeyPath(valueClones[idx], table.schema.primaryKey.keyPath, keys[idx]);\n }\n }\n else if (typeof key !== 'string' ||\n (!key.startsWith(idPrefix) && !key.startsWith('#' + idPrefix))) {\n // Key was specified by caller. Verify it complies with id prefix.\n throw new Dexie.ConstraintError(`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 return table.mutate(Object.assign(Object.assign({}, req), { keys, values: valueClones || req.values }));\n }\n return Object.assign(Object.assign({}, table), { mutate: (req) => {\n var _a, _b;\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 = (_a = db.cloud.schema) === null || _a === void 0 ? void 0 : _a[tableName];\n if (!(cloudTableSchema === null || cloudTableSchema === void 0 ? void 0 : cloudTableSchema.generatedGlobalId)) {\n if (cloudTableSchema === null || cloudTableSchema === void 0 ? void 0 : 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(`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 (((_b = db.cloud.options) === null || _b === void 0 ? void 0 : _b.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(`Unable to create new objects without an initial sync having been performed.`);\n }\n return table.mutate(req);\n });\n }\n return generateOrVerifyAtKeys(req, cloudTableSchema.idPrefix);\n }\n }\n return table.mutate(req);\n } });\n } });\n },\n };\n}\n\nfunction createImplicitPropSetterMiddleware(db) {\n return {\n stack: 'dbcore',\n name: 'implicitPropSetterMiddleware',\n level: 1,\n create: (core) => {\n return Object.assign(Object.assign({}, core), { table: (tableName) => {\n const table = core.table(tableName);\n return Object.assign(Object.assign({}, table), { mutate: (req) => {\n var _a, _b, _c, _d;\n // @ts-ignore\n if (req.trans.disableChangeTracking) {\n return table.mutate(req);\n }\n const trans = req.trans;\n if ((_b = (_a = db.cloud.schema) === null || _a === void 0 ? void 0 : _a[tableName]) === null || _b === void 0 ? void 0 : _b.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 = (_d = (_c = table.schema.primaryKey).extractKey) === null || _d === void 0 ? void 0 : _d.call(_c, 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 // 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 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\nfunction allSettled(possiblePromises) {\n return new Promise(resolve => {\n if (possiblePromises.length === 0)\n resolve([]);\n let remaining = possiblePromises.length;\n const results = new Array(remaining);\n possiblePromises.forEach((p, i) => Promise.resolve(p).then(value => results[i] = { status: \"fulfilled\", value }, reason => results[i] = { status: \"rejected\", reason })\n .then(() => --remaining || resolve(results)));\n });\n}\n\nlet counter$1 = 0;\nfunction guardedTable(table) {\n const prop = \"$lock\" + (++counter$1);\n return Object.assign(Object.assign({}, table), { count: readLock(table.count, prop), get: readLock(table.get, prop), getMany: readLock(table.getMany, prop), openCursor: readLock(table.openCursor, prop), query: readLock(table.query, prop), mutate: writeLock(table.mutate, prop) });\n}\nfunction readLock(fn, prop) {\n return function readLocker(req) {\n const { readers, writers, } = 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)).finally(() => readers.splice(readers.indexOf(promise)));\n readers.push(promise);\n return promise;\n };\n}\nfunction writeLock(fn, prop) {\n return function writeLocker(req) {\n const { readers, writers, } = 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)).finally(() => writers.shift());\n writers.push(promise);\n return promise;\n };\n}\n\nconst outstandingTransactions = new BehaviorSubject(new Set());\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 */\nfunction createMutationTrackingMiddleware({ currentUserObservable, db }) {\n return {\n stack: 'dbcore',\n name: 'MutationTrackingMiddleware',\n level: 1,\n create: (core) => {\n const ordinaryTables = core.schema.tables.filter((t) => !/^\\$/.test(t.name));\n let mutTableMap;\n try {\n mutTableMap = new Map(ordinaryTables.map((tbl) => [\n tbl.name,\n core.table(`$${tbl.name}_mutations`)\n ]));\n }\n catch (_a) {\n throwVersionIncrementNeeded();\n }\n return Object.assign(Object.assign({}, core), { transaction: (tables, mode) => {\n let tx;\n if (mode === 'readwrite') {\n const mutationTables = tables\n .filter((tbl) => { var _a, _b; return (_b = (_a = db.cloud.schema) === null || _a === void 0 ? void 0 : _a[tbl]) === null || _b === void 0 ? void 0 : _b.markedForSync; })\n .map((tbl) => getMutationTable(tbl));\n tx = core.transaction([...tables, ...mutationTables], mode);\n }\n else {\n tx = core.transaction(tables, mode);\n }\n if (mode === 'readwrite') {\n // Give each transaction a globally unique id.\n tx.txid = randomString(16);\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 var _a;\n if (tx.mutationsAdded && ((_a = db.cloud.options) === null || _a === void 0 ? void 0 : _a.databaseUrl)) {\n if (db.cloud.usingServiceWorker) {\n console.debug('registering sync event');\n registerSyncEvent(db, \"push\");\n }\n else {\n db.localSyncEvent.next({ purpose: \"push\" });\n }\n }\n removeTransaction();\n };\n tx.addEventListener('complete', txComplete);\n tx.addEventListener('error', removeTransaction);\n tx.addEventListener('abort', removeTransaction);\n }\n return tx;\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 Object.assign(Object.assign({}, table), { mutate: (req) => {\n if (req.type === 'add' || req.type === 'put') {\n req.trans.mutationsAdded = true;\n }\n return table.mutate(req);\n } });\n }\n else if (tableName === '$logins') {\n return Object.assign(Object.assign({}, table), { mutate: (req) => {\n //console.debug('Mutating $logins table', req);\n return table\n .mutate(req)\n .then((res) => {\n //console.debug('Mutating $logins');\n req.trans.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(Object.assign(Object.assign({}, table), { mutate: (req) => {\n var _a, _b, _c;\n const trans = req.trans;\n if (!trans.txid)\n return table.mutate(req); // Upgrade transactions not guarded by us.\n if (trans.disableChangeTracking)\n return table.mutate(req);\n if (!((_b = (_a = db.cloud.schema) === null || _a === void 0 ? void 0 : _a[tableName]) === null || _b === void 0 ? void 0 : _b.markedForSync))\n return table.mutate(req);\n if (!((_c = trans.currentUser) === null || _c === void 0 ? void 0 : _c.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 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 function mutateAndLog(req) {\n const trans = req.trans;\n trans.mutationsAdded = true;\n const { txid, currentUser: { userId } } = trans;\n const { type } = req;\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 const mut = req.type === 'delete'\n ? {\n type: 'delete',\n ts,\n keys,\n criteria: req.criteria,\n txid,\n userId\n }\n : req.type === 'add'\n ? {\n type: 'insert',\n ts,\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 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 keys: updates.keys,\n changeSpecs: updates.changeSpecs,\n txid,\n userId\n }\n : {\n type: 'upsert',\n ts,\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\nfunction overrideParseStoresSpec(origFunc, dexie) {\n return function (stores, dbSchema) {\n const storesClone = Object.assign(Object.assign({}, DEXIE_CLOUD_SCHEMA), stores);\n const cloudSchema = dexie.cloud.schema || (dexie.cloud.schema = {});\n const allPrefixes = new Set();\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 }\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\nfunction performInitialSync(db, cloudOptions, cloudSchema) {\n return __awaiter(this, void 0, void 0, function* () {\n console.debug('Performing initial sync');\n yield sync(db, cloudOptions, cloudSchema, { isInitialSync: true });\n console.debug('Done initial sync');\n });\n}\n\nconst USER_INACTIVITY_TIMEOUT = 180000; // 3 minutes\nconst INACTIVE_WAIT_TIME = 20000;\n// This observable will be emitted to later down....\nconst userIsActive = new BehaviorSubject(true);\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.\nconst userIsReallyActive = new BehaviorSubject(true);\nuserIsActive\n .pipe(switchMap((isActive) => {\n //console.debug('SyncStatus: DUBB: isActive changed to', isActive);\n return isActive\n ? of(true)\n : of(false).pipe(delay(INACTIVE_WAIT_TIME))\n ;\n}), distinctUntilChanged())\n .subscribe(userIsReallyActive);\n//\n// First create some corner-stone observables to build the flow on\n//\n// document.onvisibilitychange:\nconst visibilityStateIsChanged = typeof document !== 'undefined'\n ? fromEvent(document, 'visibilitychange')\n : of({});\n// document.onvisibilitychange makes document hidden:\nconst documentBecomesHidden = visibilityStateIsChanged.pipe(filter(() => document.visibilityState === 'hidden'));\n// document.onvisibilitychange makes document visible\nconst documentBecomesVisible = visibilityStateIsChanged.pipe(filter(() => document.visibilityState === 'visible'));\n// Any of various user-activity-related events happen:\nconst userDoesSomething = typeof window !== 'undefined'\n ? merge(documentBecomesVisible, fromEvent(window, 'mousedown'), fromEvent(window, 'mousemove'), fromEvent(window, 'keydown'), fromEvent(window, 'wheel'), fromEvent(window, 'touchmove'))\n : of({});\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(of(true), // Make sure something is always emitted from start\n documentBecomesHidden, // so that we can eagerly emit false!\n userDoesSomething)\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) => isActive\n ? of(0).pipe(delay(USER_INACTIVITY_TIMEOUT - INACTIVE_WAIT_TIME), tap(() => userIsActive.next(false)))\n : of(0)))\n .subscribe(() => { }); // Unless we subscribe nothing will be propagated to userIsActive observable\n}\n\nclass TokenExpiredError extends Error {\n constructor() {\n super(...arguments);\n this.name = \"TokenExpiredError\";\n }\n}\n\nconst SERVER_PING_TIMEOUT = 20000;\nconst CLIENT_PING_INTERVAL = 30000;\nconst FAIL_RETRY_WAIT_TIME = 60000;\nclass WSObservable extends Observable$1 {\n constructor(databaseUrl, rev, realmSetHash, clientIdentity, messageProducer, webSocketStatus, token, tokenExpiration) {\n super((subscriber) => new WSConnection(databaseUrl, rev, realmSetHash, clientIdentity, token, tokenExpiration, subscriber, messageProducer, webSocketStatus));\n }\n}\nlet counter = 0;\nclass WSConnection extends Subscription$1 {\n constructor(databaseUrl, rev, realmSetHash, clientIdentity, token, tokenExpiration, subscriber, messageProducer, webSocketStatus) {\n super(() => this.teardown());\n this.id = ++counter;\n this.reconnecting = false;\n console.debug('New WebSocket Connection', this.id, token ? 'authorized' : 'unauthorized');\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 teardown() {\n console.debug('Teardown WebSocket Connection', this.id);\n this.disconnect();\n }\n 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 }\n catch (_a) { }\n }\n this.ws = null;\n if (this.messageProducerSubscription) {\n this.messageProducerSubscription.unsubscribe();\n this.messageProducerSubscription = null;\n }\n }\n reconnect() {\n if (this.reconnecting)\n return;\n this.reconnecting = true;\n try {\n this.disconnect();\n }\n catch (_a) { }\n this.connect()\n .catch(() => { })\n .then(() => (this.reconnecting = false)); // finally()\n }\n connect() {\n return __awaiter(this, void 0, void 0, function* () {\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(() => __awaiter(this, void 0, void 0, function* () {\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' }));\n setTimeout(() => {\n console.debug('pinger setTimeout', this.id, this.pinger ? `alive` : 'dead');\n if (!this.pinger)\n return;\n if (this.closed) {\n console.debug('pinger setTimeout', this.id, 'subscription is closed');\n this.teardown();\n return;\n }\n if (this.lastServerActivity <\n new Date(Date.now() - SERVER_PING_TIMEOUT)) {\n // Server inactive. Reconnect if user is active.\n console.debug('pinger: server is inactive');\n console.debug('pinger reconnecting');\n this.reconnect();\n }\n else {\n console.debug('pinger: server still active');\n }\n }, SERVER_PING_TIMEOUT);\n }\n catch (_a) {\n console.debug('pinger catch error', this.id, 'reconnecting');\n this.reconnect();\n }\n }\n else {\n console.debug('pinger', this.id, 'reconnecting');\n this.reconnect();\n }\n }), CLIENT_PING_INTERVAL);\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)\n 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 // 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 ws.onclose = (event) => {\n if (!this.pinger)\n return;\n console.debug('dexie-cloud WebSocket onclosed', this.id);\n this.reconnect();\n };\n ws.onmessage = (event) => {\n if (!this.pinger)\n return;\n console.debug('dexie-cloud WebSocket onmessage', event.data);\n this.lastServerActivity = new Date();\n try {\n const msg = TSON.parse(event.data);\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 }\n catch (e) {\n this.subscriber.error(e);\n }\n };\n try {\n let everConnected = false;\n yield 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) => {\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 }\n else {\n this.reconnect();\n }\n };\n });\n this.messageProducerSubscription = this.messageProducer.subscribe((msg) => {\n var _a;\n if (!this.closed) {\n if (msg.type === 'ready' &&\n this.webSocketStatus.value !== 'connected') {\n this.webSocketStatus.next('connected');\n }\n (_a = this.ws) === null || _a === void 0 ? void 0 : _a.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}\n\nfunction sleep(ms) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\nfunction waitAndReconnectWhenUserDoesSomething(error) {\n return __awaiter(this, void 0, void 0, function* () {\n console.error(`WebSocket observable: error but revive when user does some active thing...`, error);\n // Sleep some seconds...\n yield sleep(3000);\n // Wait til user does something (move mouse, tap, scroll, click etc)\n console.debug('waiting for someone to do something');\n yield userDoesSomething.pipe(take(1)).toPromise();\n console.debug('someone did something!');\n });\n}\nfunction connectWebSocket(db) {\n var _a;\n if (!((_a = db.cloud.options) === null || _a === void 0 ? void 0 : _a.databaseUrl)) {\n throw new Error(`No database URL to connect WebSocket to`);\n }\n const messageProducer = db.messageConsumer.readyToServe.pipe(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 map((syncState) => ({\n // Produce the message to trigger server to send us new messages to consume:\n type: 'ready',\n rev: syncState.serverRevision,\n })));\n function createObservable() {\n return db.cloud.persistedSyncState.pipe(filter((syncState) => syncState === null || syncState === void 0 ? void 0 : 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) => db.cloud.currentUser.pipe(map((userLogin) => [userLogin, syncState]))), switchMap(([userLogin, syncState]) => userIsReallyActive.pipe(map((isActive) => [isActive ? userLogin : null, syncState]))), switchMap(([userLogin, syncState]) => {\n if ((userLogin === null || userLogin === void 0 ? void 0 : userLogin.isLoggedIn) && !(syncState === null || syncState === void 0 ? void 0 : 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(filter((syncState) => (syncState === null || syncState === void 0 ? void 0 : syncState.realms.includes(userLogin.userId)) || false), take(1), map((syncState) => [userLogin, syncState]));\n }\n return new BehaviorSubject([userLogin, syncState]);\n }), switchMap(([userLogin, syncState]) => __awaiter(this, void 0, void 0, function* () { return [userLogin, yield computeRealmSetHash(syncState)]; })), 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 userLogin\n ? new WSObservable(db.cloud.options.databaseUrl, db.cloud.persistedSyncState.value.serverRevision, realmSetHash, db.cloud.persistedSyncState.value.clientIdentity, messageProducer, db.cloud.webSocketStatus, userLogin.accessToken, userLogin.accessTokenExpiration)\n : from$1([])), catchError((error) => {\n if ((error === null || error === void 0 ? void 0 : error.name) === 'TokenExpiredError') {\n console.debug('WebSocket observable: Token expired. Refreshing token...');\n return of(true).pipe(switchMap(() => __awaiter(this, void 0, void 0, function* () {\n // Refresh access token\n const user = yield db.getCurrentUser();\n const refreshedLogin = yield refreshAccessToken(db.cloud.options.databaseUrl, user);\n // Persist updated access token\n yield db.table('$logins').update(user.userId, {\n accessToken: refreshedLogin.accessToken,\n accessTokenExpiration: refreshedLogin.accessTokenExpiration,\n });\n })), switchMap(() => createObservable()));\n }\n else {\n return throwError(error);\n }\n }), catchError((error) => {\n db.cloud.webSocketStatus.next(\"error\");\n return from$1(waitAndReconnectWhenUserDoesSomething(error)).pipe(switchMap(() => createObservable()));\n }));\n }\n return createObservable().subscribe((msg) => {\n if (msg) {\n console.debug('WS got message', msg);\n db.messageConsumer.enqueue(msg);\n }\n }, (error) => {\n console.error('Oops! The main observable errored!', error);\n }, () => {\n console.error('Oops! The main observable completed!');\n });\n}\n\nfunction isSyncNeeded(db) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n return ((_a = db.cloud.options) === null || _a === void 0 ? void 0 : _a.databaseUrl) && db.cloud.schema\n ? yield sync(db, db.cloud.options, db.cloud.schema, { justCheckIfNeeded: true })\n : false;\n });\n}\n\nconst SECONDS = 1000;\nconst MINUTES = 60 * SECONDS;\n\nconst myId = randomString(16);\n\nconst GUARDED_JOB_HEARTBEAT = 1 * SECONDS;\nconst GUARDED_JOB_TIMEOUT = 1 * MINUTES;\nfunction performGuardedJob(db, jobName, jobsTableName, job, { awaitRemoteJob } = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n // Start working.\n //\n // Check if someone else is working on this already.\n //\n const jobsTable = db.table(jobsTableName);\n function aquireLock() {\n return __awaiter(this, void 0, void 0, function* () {\n const gotTheLock = yield db.transaction('rw!', jobsTableName, () => __awaiter(this, void 0, void 0, function* () {\n const currentWork = yield jobsTable.get(jobName);\n if (!currentWork) {\n // No one else is working. Let's record that we are.\n yield jobsTable.add({\n nodeId: myId,\n started: new Date(),\n heartbeat: new Date()\n }, jobName);\n return true;\n }\n else if (currentWork.heartbeat.getTime() <\n Date.now() - GUARDED_JOB_TIMEOUT) {\n console.warn(`Latest ${jobName} worker seem to have died.\\n`, `The dead job started:`, currentWork.started, `\\n`, `Last heart beat was:`, currentWork.heartbeat, '\\n', `We're now taking over!`);\n // Now, take over!\n yield jobsTable.put({\n nodeId: myId,\n started: new Date(),\n heartbeat: new Date()\n }, jobName);\n return true;\n }\n return false;\n }));\n if (gotTheLock)\n return true;\n // Someone else took the job.\n if (awaitRemoteJob) {\n try {\n const jobDoneObservable = from$1(liveQuery(() => jobsTable.get(jobName))).pipe(timeout(GUARDED_JOB_TIMEOUT), filter((job) => !job)); // Wait til job is not there anymore.\n yield jobDoneObservable.toPromise();\n return false;\n }\n catch (err) {\n if (err.name !== 'TimeoutError') {\n throw err;\n }\n // Timeout stopped us! Try aquire the lock now.\n // It will likely succeed this time unless\n // another client took it.\n return yield aquireLock();\n }\n }\n return false;\n });\n }\n if (yield aquireLock()) {\n // We own the lock entry and can do our job undisturbed.\n // We're not within a transaction, but these type of locks\n // spans over transactions.\n // Start our heart beat during the job.\n // Use setInterval to make sure we are updating heartbeat even during long-lived fetch calls.\n const heartbeat = setInterval(() => {\n jobsTable.update(jobName, (job) => {\n if (job.nodeId === myId) {\n job.heartbeat = new Date();\n }\n });\n }, GUARDED_JOB_HEARTBEAT);\n try {\n return yield job();\n }\n finally {\n // Stop heartbeat\n clearInterval(heartbeat);\n // Remove the persisted job state:\n yield db.transaction('rw!', jobsTableName, () => __awaiter(this, void 0, void 0, function* () {\n const currentWork = yield jobsTable.get(jobName);\n if (currentWork && currentWork.nodeId === myId) {\n yield jobsTable.delete(jobName);\n }\n }));\n }\n }\n });\n}\n\nconst ongoingSyncs = new WeakMap();\nfunction syncIfPossible(db, cloudOptions, cloudSchema, options) {\n const ongoing = ongoingSyncs.get(db);\n if (ongoing) {\n if (ongoing.pull || (options === null || options === void 0 ? void 0 : options.purpose) === 'push') {\n console.debug('syncIfPossible(): returning the ongoing sync promise.');\n return ongoing.promise;\n }\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 // 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 (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 const promise = _syncIfPossible();\n ongoingSyncs.set(db, { promise, pull: (options === null || options === void 0 ? void 0 : options.purpose) !== 'push' });\n return promise;\n function _syncIfPossible() {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n if (db.cloud.isServiceWorkerDB) {\n // We are the dedicated sync SW:\n yield sync(db, cloudOptions, cloudSchema, options);\n }\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 yield performGuardedJob(db, CURRENT_SYNC_WORKER, '$jobs', () => 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 }\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}\n\nfunction LocalSyncWorker(db, cloudOptions, cloudSchema) {\n let localSyncEventSubscription = null;\n //let syncHandler: ((event: Event) => void) | null = null;\n //let periodicSyncHandler: ((event: Event) => void) | null = null;\n let cancelToken = { cancelled: false };\n function syncAndRetry(purpose, retryNum = 1) {\n // Use setTimeout() to get onto a clean stack and\n // break free from possible active transaction:\n setTimeout(() => {\n syncIfPossible(db, cloudOptions, cloudSchema, {\n cancelToken,\n retryImmediatelyOnFetchError: true,\n purpose,\n }).catch((e) => {\n console.error('error in syncIfPossible()', e);\n if (cancelToken.cancelled) {\n stop();\n }\n else if (retryNum < 3) {\n // Mimic service worker sync event: retry 3 times\n // * first retry after 5 minutes\n // * second retry 15 minutes later\n setTimeout(() => syncAndRetry(purpose, retryNum + 1), [0, 5, 15][retryNum] * MINUTES);\n }\n });\n }, 0);\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 }\n catch (err) {\n console.error('What-the....', err);\n }\n });\n //setTimeout(()=>db.localSyncEvent.next({}), 5000);\n };\n const stop = () => {\n console.debug('Stopping LocalSyncWorker');\n cancelToken.cancelled = true;\n if (localSyncEventSubscription)\n localSyncEventSubscription.unsubscribe();\n };\n return {\n start,\n stop,\n };\n}\n\nfunction updateSchemaFromOptions(schema, options) {\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}\n\nfunction verifySchema(db) {\n var _a, _b;\n for (const table of db.tables) {\n if ((_b = (_a = db.cloud.schema) === null || _a === void 0 ? void 0 : _a[table.name]) === null || _b === void 0 ? void 0 : _b.markedForSync) {\n if (table.schema.primKey.auto) {\n throw new Dexie.SchemaError(`Table ${table.name} is both autoIncremented and synced. ` +\n `Use db.cloud.configure({unsyncedTables: [${JSON.stringify(table.name)}]}) to blacklist it from sync`);\n }\n if (!table.schema.primKey.keyPath) {\n throw new Dexie.SchemaError(`Table ${table.name} cannot be both synced and outbound. ` +\n `Use db.cloud.configure({unsyncedTables: [${JSON.stringify(table.name)}]}) to blacklist it from sync`);\n }\n }\n }\n}\n\nvar n,l$1,u$1,t$1,o$1,f$1={},e$1=[],c$1=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function s$1(n,l){for(var u in l)n[u]=l[u];return n}function a$1(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$1(l,f,t,o,null)}function v$1(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$1:r};return null==r&&null!=l$1.vnode&&l$1.vnode(f),f}function p$1(n){return n.children}function d$1(n,l){this.props=n,this.context=l;}function _$1(n,l){if(null==l)return n.__?_$1(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?_$1(n):null}function k$1(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$1(n)}}function b$1(n){(!n.__d&&(n.__d=!0)&&t$1.push(n)&&!g$1.__r++||o$1!==l$1.debounceRendering)&&((o$1=l$1.debounceRendering)||setTimeout)(g$1);}function g$1(){for(var n;g$1.__r=t$1.length;)n=t$1.sort(function(n,l){return n.__v.__b-l.__v.__b}),t$1=[],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$1({},t)).__v=t.__v+1,j$1(r,t,i,l.__n,void 0!==r.ownerSVGElement,null!=t.__h?[o]:null,u,null==o?_$1(t):o,t.__h),z$1(u,t),t.__e!=o&&k$1(t)));});}function w$1(n,l,u,i,t,o,r,c,s,a){var h,y,d,k,b,g,w,x=i&&i.__k||e$1,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$1(null,k,null,null,k):Array.isArray(k)?v$1(p$1,{children:k},null,null,null):k.__b>0?v$1(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$1(n,k,d=d||f$1,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$1(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=_$1(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=_$1(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$1(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$1(i,l,u):A(u,i,i,t,i.__e,l));return 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$1.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$1.event?l$1.event(n):n);}function T(n){this.l[n.type+!0](l$1.event?l$1.event(n):n);}function j$1(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$1.__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$1(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$1({},h.__s)),s$1(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$1.__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$1(s$1({},t),h.getChildContext())),v||null==h.getSnapshotBeforeUpdate||(k=h.getSnapshotBeforeUpdate(y,_)),$=null!=a&&a.type===p$1&&null==a.key?a.props.children:a,w$1(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$1.diffed)&&a(u);}catch(n){u.__v=null,(c||null!=r)&&(u.__e=e,u.__h=!!c,r[r.indexOf(e)]=null),l$1.__e(n,u,i);}}function z$1(n,u){l$1.__c&&l$1.__c(u,n),n.some(function(u){try{n=u.__h,u.__h=[],n.some(function(n){n.call(u);});}catch(n){l$1.__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$1).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$1(l,Array.isArray(k)?k:[k],u,i,t,o&&\"foreignObject\"!==d,r,e,r?r[0]:i.__k&&_$1(i,0),c),null!=r)for(k=r.length;k--;)null!=r[k]&&a$1(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$1.__e(n,i);}}function N(n,u,i){var t,o;if(l$1.unmount&&l$1.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$1.__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$1(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$1.__&&l$1.__(u,i),r=(o=\"function\"==typeof t)?null:t&&t.__k||i.__k,e=[],j$1(i,u=(!o&&t||i).__k=h(p$1,null,[u]),r||f$1,f$1,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$1(e,u);}n=e$1.slice,l$1={__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$1=0,d$1.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=s$1({},this.state),\"function\"==typeof n&&(n=n(s$1({},u),this.props)),n&&s$1(u,n),null!=n&&this.__v&&(l&&this.__h.push(l),b$1(this));},d$1.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),b$1(this));},d$1.prototype.render=p$1,t$1=[],g$1.__r=0;\n\nconst Styles = {\n Error: {\n color: \"red\",\n },\n Alert: {\n error: {\n color: \"red\"\n },\n warning: {\n color: \"yellow\"\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 },\n Input: {\n height: \"35px\",\n width: \"17em\",\n borderColor: \"#ccf4\",\n outline: \"none\",\n fontSize: \"17pt\",\n padding: \"8px\"\n }\n};\n\nfunction Dialog({ children, className }) {\n return (h(\"div\", { className: className },\n h(\"div\", { style: Styles.Darken }),\n h(\"div\", { style: Styles.DialogOuter },\n h(\"div\", { style: Styles.DialogInner }, children))));\n}\n\nvar t,r,u,i,o=0,c=[],f=[],e=l$1.__b,a=l$1.__r,v=l$1.diffed,l=l$1.__c,m=l$1.unmount;function d(t,u){l$1.__h&&l$1.__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 s(u,i){var o=d(t++,4);!l$1.__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 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 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=[],l$1.__e(r,t.__v);}}l$1.__b=function(n){r=null,e&&e(n);},l$1.__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;},l$1.diffed=function(t){v&&v(t);var o=t.__c;o&&o.__H&&(o.__H.__h.length&&(1!==c.push(o)&&i===l$1.requestAnimationFrame||((i=l$1.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;},l$1.__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=[],l$1.__e(u,t.__v);}}),l&&l(t,r);},l$1.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&&l$1.__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}\n\nfunction resolveText({ message, messageCode, messageParams }) {\n return message.replace(/\\{\\w+\\}/ig, n => messageParams[n.substr(1, n.length - 2)]);\n}\n\nfunction LoginDialog({ title, alerts, fields, onCancel, onSubmit, }) {\n const [params, setParams] = p({});\n const firstFieldRef = _(null);\n s(() => { var _a; return (_a = firstFieldRef.current) === null || _a === void 0 ? void 0 : _a.focus(); }, []);\n return (h(Dialog, { className: \"dxc-login-dlg\" },\n h(p$1, null,\n h(\"h3\", { style: Styles.WindowHeader }, title),\n alerts.map((alert) => (h(\"p\", { style: Styles.Alert[alert.type] }, resolveText(alert)))),\n h(\"form\", { onSubmit: ev => {\n ev.preventDefault();\n onSubmit(params);\n } }, Object.entries(fields).map(([fieldName, { type, label, placeholder }], idx) => (h(\"label\", { style: Styles.Label },\n label ? `${label}: ` : '',\n h(\"input\", { ref: idx === 0 ? firstFieldRef : undefined, type: type, name: fieldName, autoComplete: \"on\", style: Styles.Input, autoFocus: true, placeholder: placeholder, value: params[fieldName] || '', onInput: (ev) => { var _a; return setParams(Object.assign(Object.assign({}, params), { [fieldName]: valueTransformer(type, (_a = ev.target) === null || _a === void 0 ? void 0 : _a['value']) })); } })))))),\n h(\"div\", { style: Styles.ButtonsDiv },\n h(\"button\", { type: \"submit\", style: Styles.Button, onClick: () => onSubmit(params) }, \"Submit\"),\n h(\"button\", { style: Styles.Button, onClick: onCancel }, \"Cancel\"))));\n}\nfunction valueTransformer(type, value) {\n switch (type) {\n case \"email\": return value.toLowerCase();\n case \"otp\": return value.toUpperCase();\n default: return value;\n }\n}\n\nclass LoginGui extends d$1 {\n constructor(props) {\n super(props);\n this.observer = (userInteraction) => this.setState({ userInteraction });\n this.state = { userInteraction: undefined };\n }\n componentDidMount() {\n this.subscription = from$1(this.props.db.cloud.userInteraction).subscribe(this.observer);\n }\n componentWillUnmount() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n delete this.subscription;\n }\n }\n render(props, { userInteraction }) {\n if (!userInteraction)\n return null;\n //if (props.db.cloud.userInteraction.observers.length > 1) return null; // Someone else subscribes.\n return h(LoginDialog, Object.assign({}, userInteraction));\n }\n}\nfunction setupDefaultGUI(db) {\n let closed = false;\n const el = document.createElement('div');\n if (document.body) {\n document.body.appendChild(el);\n P(h(LoginGui, { db: db.vip }), el);\n }\n else {\n addEventListener('DOMContentLoaded', () => {\n if (!closed) {\n document.body.appendChild(el);\n P(h(LoginGui, { db: db.vip }), el);\n }\n });\n }\n return {\n unsubscribe() {\n try {\n el.remove();\n }\n catch (_a) { }\n closed = true;\n },\n get closed() {\n return closed;\n }\n };\n}\n// TODO:\n/*\n * Gjort klart allt kring user interaction förutom att mounta default-ui på ett element.\n * Också att kolla först om nån annan subscribar och i så fall inte göra nåt.\n*/\n\nfunction computeSyncState(db) {\n let _prevStatus = db.cloud.webSocketStatus.value;\n const lazyWebSocketStatus = db.cloud.webSocketStatus.pipe(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 // 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 // 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 return combineLatest([\n lazyWebSocketStatus,\n db.syncStateChangedEvent.pipe(startWith({ phase: 'initial' })),\n userIsReallyActive\n ]).pipe(map(([status, syncState, userIsActive]) => {\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 if (!userIsActive) {\n adjustedStatus = 'disconnected';\n }\n const retState = {\n phase,\n error,\n progress,\n status: isOnline ? adjustedStatus : 'offline',\n };\n return retState;\n }));\n}\n\nfunction associate(factory) {\n const wm = new WeakMap();\n return (x) => {\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\nfunction createSharedValueObservable(o, defaultValue) {\n let currentValue = defaultValue;\n let shared = from$1(o).pipe(map$1((x) => (currentValue = x)), share({ resetOnRefCountZero: () => timer$1(1000) }));\n const rv = new Observable$1((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 });\n rv.getValue = () => currentValue;\n return rv;\n}\n\nconst getGlobalRolesObservable = associate((db) => {\n return createSharedValueObservable(liveQuery(() => db.roles\n .where({ realmId: 'rlm-public' })\n .toArray()\n .then((roles) => {\n const rv = {};\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\nconst getCurrentUserEmitter = associate((db) => new BehaviorSubject(UNAUTHORIZED_USER));\n\nconst getInternalAccessControlObservable = associate((db) => {\n return createSharedValueObservable(getCurrentUserEmitter(db._novip).pipe(switchMap((currentUser) => liveQuery(() => db.transaction('r', 'realms', 'members', () => Promise.all([\n db.members.where({ userId: currentUser.userId }).toArray(),\n db.realms.toArray(),\n currentUser.userId,\n ]).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 selfMembers: [],\n realms: [],\n get userId() {\n return db.cloud.currentUserId;\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\nfunction mapValueObservable(o, mapper) {\n let currentValue;\n const rv = o.pipe(map$1((x) => (currentValue = mapper(x))));\n rv.getValue = () => currentValue !== undefined\n ? currentValue\n : (currentValue = mapper(o.getValue()));\n return rv;\n}\n\n// TODO: Move to dexie-cloud-common\nfunction mergePermissions(...permissions) {\n if (permissions.length === 0)\n return {};\n const reduced = permissions.reduce((result, next) => {\n const ret = Object.assign({}, result);\n for (const [verb, rights] of Object.entries(next)) {\n if (verb in ret && ret[verb]) {\n if (ret[verb] === '*')\n continue;\n if (rights === '*') {\n ret[verb] = '*';\n }\n else if (Array.isArray(rights) && Array.isArray(ret[verb])) {\n // Both are arrays (verb is 'add' or 'manage')\n const r = ret;\n const retVerb = r[verb]; // \"!\" because Array.isArray(ret[verb])\n r[verb] = [...new Set([...retVerb, ...rights])];\n }\n else if (typeof rights === 'object' &&\n rights &&\n typeof ret[verb] === 'object') {\n // Both are objects (verb is 'update')\n const mergedRights = ret[verb]; // because we've checked that typeof ret[verb] === 'object' and earlier that not ret[verb] === '*'.\n for (const [tableName, tableRights] of Object.entries(rights)) {\n if (mergedRights[tableName] === '*')\n continue;\n if (tableRights === '*') {\n mergedRights[tableName] = '*';\n }\n else if (Array.isArray(mergedRights[tableName]) &&\n Array.isArray(tableRights)) {\n mergedRights[tableName] = [\n ...new Set([...mergedRights[tableName], ...tableRights]),\n ];\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\nconst getPermissionsLookupObservable = associate((db) => {\n const o = createSharedValueObservable(combineLatest([\n getInternalAccessControlObservable(db._novip),\n getGlobalRolesObservable(db._novip),\n ]).pipe(map(([{ selfMembers, realms, userId }, globalRoles]) => ({\n selfMembers,\n realms,\n userId,\n globalRoles,\n }))), {\n selfMembers: [],\n realms: [],\n userId: UNAUTHORIZED_USER.userId,\n globalRoles: {},\n });\n return mapValueObservable(o, ({ selfMembers, realms, userId, globalRoles }) => {\n const rv = realms\n .map((realm) => {\n const selfRealmMembers = selfMembers.filter((m) => m.realmId === realm.realmId);\n const directPermissionSets = selfRealmMembers\n .map((m) => m.permissions)\n .filter((p) => p);\n const rolePermissionSets = flatten(selfRealmMembers.map((m) => m.roles).filter((roleName) => roleName))\n .map((role) => globalRoles[role])\n .filter((role) => role)\n .map((role) => role.permissions);\n return Object.assign(Object.assign({}, realm), { permissions: realm.owner === userId\n ? { manage: '*' }\n : mergePermissions(...directPermissionSets, ...rolePermissionSets) });\n })\n .reduce((p, c) => (Object.assign(Object.assign({}, p), { [c.realmId]: c })), {\n [userId]: {\n realmId: userId,\n owner: userId,\n name: userId,\n permissions: { manage: '*' },\n },\n });\n return rv;\n });\n});\n\nclass PermissionChecker {\n constructor(permissions, tableName, isOwner) {\n this.permissions = permissions || {};\n this.tableName = tableName;\n this.isOwner = isOwner;\n }\n add(...tableNames) {\n var _a;\n // If user can manage the whole realm, return true.\n if (this.permissions.manage === '*')\n return true;\n // If user can manage given table in realm, return true\n if ((_a = this.permissions.manage) === null || _a === void 0 ? void 0 : _a.includes(this.tableName))\n return true;\n // If user can add any type, return true\n if (this.permissions.add === '*')\n return true;\n // If user can add objects into given table names in the realm, return true\n if (tableNames.every((tableName) => { var _a; return (_a = this.permissions.add) === null || _a === void 0 ? void 0 : _a.includes(tableName); })) {\n return true;\n }\n return false;\n }\n update(...props) {\n var _a, _b;\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 === '*')\n return true;\n // If user can manage given table in realm, return true\n if ((_a = this.permissions.manage) === null || _a === void 0 ? void 0 : _a.includes(this.tableName))\n 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 = (_b = this.permissions.update) === null || _b === void 0 ? void 0 : _b[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 // Explicitely listed properties to allow updates on:\n return props.every((prop) => tablePermissions === null || tablePermissions === void 0 ? void 0 : tablePermissions.some((permittedProp) => permittedProp === prop || (permittedProp === '*' && prop !== 'owner')));\n }\n delete() {\n var _a;\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 === '*')\n return true;\n // If user can manage given table in realm, return true\n if ((_a = this.permissions.manage) === null || _a === void 0 ? void 0 : _a.includes(this.tableName))\n return true;\n return false;\n }\n}\n\nfunction permissions(dexie, obj, tableName) {\n if (!obj)\n throw new TypeError(`Cannot check permissions of undefined or null. A Dexie Cloud object with realmId and owner expected.`);\n const { owner, realmId } = obj;\n if (!tableName) {\n if (typeof obj.table !== 'function') {\n throw new TypeError(`Missing 'table' argument to permissions and table could not be extracted from entity`);\n }\n tableName = obj.table();\n }\n const source = getPermissionsLookupObservable(dexie);\n const mapper = (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({}, tableName, !owner || owner === dexie.cloud.currentUserId);\n return new PermissionChecker(realm.permissions, tableName, realmId === dexie.cloud.currentUserId || owner === dexie.cloud.currentUserId);\n };\n const o = source.pipe(map(mapper));\n o.getValue = () => mapper(source.getValue());\n return o;\n}\n\nconst getInvitesObservable = associate((db) => {\n const membersByEmail = getCurrentUserEmitter(db._novip).pipe(switchMap((currentUser) => liveQuery(() => db.members.where({ email: currentUser.email || '' }).toArray())));\n const permissions = getPermissionsLookupObservable(db._novip);\n const accessControl = getInternalAccessControlObservable(db._novip);\n return createSharedValueObservable(combineLatest([membersByEmail, accessControl, permissions]).pipe(map(([membersByEmail, accessControl, realmLookup]) => {\n const reducer = (result, m) => (Object.assign(Object.assign({}, result), { [m.id]: Object.assign(Object.assign({}, m), { realm: realmLookup[m.realmId] }) }));\n const emailMembersById = membersByEmail.reduce(reducer, {});\n const membersById = accessControl.selfMembers.reduce(reducer, emailMembersById);\n return Object.values(membersById)\n .filter((invite) => !invite.accepted && !invite.rejected)\n .map((invite) => (Object.assign(Object.assign({}, invite), { accept() {\n return __awaiter(this, void 0, void 0, function* () {\n yield db.members.update(invite.id, { accepted: new Date() });\n });\n },\n reject() {\n return __awaiter(this, void 0, void 0, function* () {\n yield db.members.update(invite.id, { rejected: new Date() });\n });\n } })));\n })), []);\n});\n\nfunction getTiedRealmId(objectId) {\n return 'rlm~' + objectId;\n}\nfunction getTiedObjectId(realmId) {\n return realmId.startsWith('rlm~') ? realmId.substr(4) : null;\n}\n\nconst DEFAULT_OPTIONS = {\n nameSuffix: true,\n};\nfunction dexieCloud(dexie) {\n const origIdbName = dexie.name;\n //\n //\n //\n const currentUserEmitter = getCurrentUserEmitter(dexie);\n const subscriptions = [];\n let configuredProgramatically = false;\n // local sync worker - used when there's no service worker.\n let localSyncWorker = null;\n dexie.on('ready', (dexie) => __awaiter(this, void 0, void 0, function* () {\n try {\n yield onDbReady(dexie);\n }\n catch (error) {\n console.error(error);\n // Make sure to succeed with database open even if network is down.\n }\n }), true // true = sticky\n );\n /** Void starting subscribers after a close has happened. */\n let closed = false;\n function throwIfClosed() {\n if (closed)\n throw new Dexie.DatabaseClosedError();\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 const syncComplete = new Subject();\n dexie.cloud = {\n version: '{version}',\n options: Object.assign({}, DEFAULT_OPTIONS),\n schema: null,\n get currentUserId() {\n return currentUserEmitter.value.userId || UNAUTHORIZED_USER.userId;\n },\n currentUser: currentUserEmitter,\n syncState: new BehaviorSubject({\n phase: 'initial',\n status: 'not-started',\n }),\n events: {\n syncComplete,\n },\n persistedSyncState: new BehaviorSubject(undefined),\n userInteraction: new BehaviorSubject(undefined),\n webSocketStatus: new BehaviorSubject('not-started'),\n login(hint) {\n return __awaiter(this, void 0, void 0, function* () {\n const db = DexieCloudDB(dexie);\n yield db.cloud.sync();\n yield login(db, hint);\n });\n },\n invites: getInvitesObservable(dexie),\n roles: getGlobalRolesObservable(dexie),\n configure(options) {\n options = dexie.cloud.options = Object.assign(Object.assign({}, dexie.cloud.options), options);\n configuredProgramatically = true;\n if (options.databaseUrl && options.nameSuffix) {\n // @ts-ignore\n dexie.name = `${origIdbName}-${getDbNameFromDbUrl(options.databaseUrl)}`;\n DexieCloudDB(dexie).reconfigure(); // Update observable from new dexie.name\n }\n updateSchemaFromOptions(dexie.cloud.schema, dexie.cloud.options);\n },\n sync({ wait, purpose } = { wait: true, purpose: 'push' }) {\n return __awaiter(this, void 0, void 0, function* () {\n if (wait === undefined)\n wait = true;\n const db = DexieCloudDB(dexie);\n if (purpose === 'pull') {\n const syncState = db.cloud.persistedSyncState.value;\n triggerSync(db, purpose);\n if (wait) {\n const newSyncState = yield db.cloud.persistedSyncState\n .pipe(filter((newSyncState) => (newSyncState === null || newSyncState === void 0 ? void 0 : newSyncState.timestamp) != null &&\n (!syncState || newSyncState.timestamp > syncState.timestamp)), take(1))\n .toPromise();\n if (newSyncState === null || newSyncState === void 0 ? void 0 : newSyncState.error) {\n throw new Error(`Sync error: ` + newSyncState.error);\n }\n }\n }\n else if (yield 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 yield from$1(liveQuery(() => __awaiter(this, void 0, void 0, function* () {\n const syncNeeded = yield isSyncNeeded(db);\n const newSyncState = yield db.getPersistedSyncState();\n if ((newSyncState === null || newSyncState === void 0 ? void 0 : newSyncState.timestamp) !== (syncState === null || syncState === void 0 ? void 0 : syncState.timestamp) &&\n (newSyncState === null || newSyncState === void 0 ? void 0 : newSyncState.error))\n throw new Error(`Sync error: ` + newSyncState.error);\n return syncNeeded;\n })))\n .pipe(filter((isNeeded) => !isNeeded), take(1))\n .toPromise();\n console.debug('Done waiting for sync completion because we have nothing to push anymore');\n }\n }\n });\n },\n permissions(obj, tableName) {\n return permissions(dexie._novip, obj, tableName);\n },\n };\n dexie.Version.prototype['_parseStoresSpec'] = Dexie.override(dexie.Version.prototype['_parseStoresSpec'], (origFunc) => overrideParseStoresSpec(origFunc, dexie));\n dexie.Table.prototype.newId = function ({ colocateWith } = {}) {\n const shardKey = colocateWith && colocateWith.substr(colocateWith.length - 3);\n return generateKey(dexie.cloud.schema[this.name].idPrefix || '', shardKey);\n };\n dexie.Table.prototype.idPrefix = function () {\n var _a, _b;\n return ((_b = (_a = this.db.cloud.schema) === null || _a === void 0 ? void 0 : _a[this.name]) === null || _b === void 0 ? void 0 : _b.idPrefix) || '';\n };\n dexie.use(createMutationTrackingMiddleware({\n currentUserObservable: dexie.cloud.currentUser,\n db: DexieCloudDB(dexie),\n }));\n dexie.use(createImplicitPropSetterMiddleware(DexieCloudDB(dexie)));\n dexie.use(createIdGenerationMiddleware(DexieCloudDB(dexie)));\n function onDbReady(dexie) {\n var _a, _b, _c, _d, _e, _f, _g;\n return __awaiter(this, void 0, void 0, function* () {\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 (!((_a = db.cloud.options) === null || _a === void 0 ? void 0 : _a.customLoginGui)) {\n subscriptions.push(setupDefaultGUI(dexie));\n }\n }\n if (!db.cloud.isServiceWorkerDB) {\n subscriptions.push(computeSyncState(db).subscribe(dexie.cloud.syncState));\n }\n // Forward db.syncCompleteEvent to be publicly consumable via db.cloud.events.syncComplete:\n subscriptions.push(db.syncCompleteEvent.subscribe(syncComplete));\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 = 'serviceWorker' in navigator\n ? yield navigator.serviceWorker.getRegistrations()\n : [];\n const initiallySynced = yield db.transaction('rw', db.$syncState, () => __awaiter(this, void 0, void 0, function* () {\n var _h, _j;\n const { options, schema } = db.cloud;\n const [persistedOptions, persistedSchema, persistedSyncState] = yield 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 }\n else if (!persistedOptions ||\n JSON.stringify(persistedOptions) !== JSON.stringify(options)) {\n // Update persisted options:\n if (!options)\n throw new Error(`Internal error`); // options cannot be null if configuredProgramatically is set.\n const newPersistedOptions = Object.assign({}, options);\n delete newPersistedOptions.fetchTokens;\n yield db.$syncState.put(newPersistedOptions, 'options');\n }\n if (((_h = db.cloud.options) === null || _h === void 0 ? void 0 : _h.tryUseServiceWorker) &&\n 'serviceWorker' in navigator &&\n swRegistrations.length > 0 &&\n !DISABLE_SERVICEWORKER_STRATEGY) {\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 }\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 (((_j = db.cloud.options) === null || _j === void 0 ? void 0 : _j.tryUseServiceWorker) &&\n !db.cloud.isServiceWorkerDB) {\n console.debug('dexie-cloud-addon: Not using service worker.', 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 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 }\n else if (!persistedSchema ||\n JSON.stringify(persistedSchema) !== JSON.stringify(schema)) {\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] = Object.assign({}, tblSchema);\n }\n else {\n newTblSchema.markedForSync = tblSchema.markedForSync;\n tblSchema.deleted = newTblSchema.deleted;\n newTblSchema.generatedGlobalId = tblSchema.generatedGlobalId;\n }\n }\n yield db.$syncState.put(newPersistedSchema, 'schema');\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 === null || persistedSyncState === void 0 ? void 0 : persistedSyncState.initiallySynced;\n }));\n if (initiallySynced) {\n db.setInitiallySynced(true);\n }\n verifySchema(db);\n if (((_b = db.cloud.options) === null || _b === void 0 ? void 0 : _b.databaseUrl) && !initiallySynced) {\n yield performInitialSync(db, db.cloud.options, db.cloud.schema);\n db.setInitiallySynced(true);\n }\n // Manage CurrentUser observable:\n throwIfClosed();\n if (!db.cloud.isServiceWorkerDB) {\n subscriptions.push(liveQuery(() => db.getCurrentUser()).subscribe(currentUserEmitter));\n // Manage PersistendSyncState observable:\n subscriptions.push(liveQuery(() => db.getPersistedSyncState()).subscribe(db.cloud.persistedSyncState));\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 yield combineLatest([\n currentUserEmitter.pipe(skip(1), take(1)),\n db.cloud.persistedSyncState.pipe(skip(1), take(1)),\n ]).toPromise();\n }\n // HERE: If requireAuth, do athentication now.\n let changedUser = false;\n if ((_c = db.cloud.options) === null || _c === void 0 ? void 0 : _c.requireAuth) {\n changedUser = yield login(db);\n }\n if (localSyncWorker)\n localSyncWorker.stop();\n localSyncWorker = null;\n throwIfClosed();\n if (db.cloud.usingServiceWorker && ((_d = db.cloud.options) === null || _d === void 0 ? void 0 : _d.databaseUrl)) {\n registerSyncEvent(db, changedUser ? 'pull' : 'push').catch(() => { });\n registerPeriodicSyncEvent(db).catch(() => { });\n }\n else if (((_e = db.cloud.options) === null || _e === void 0 ? void 0 : _e.databaseUrl) &&\n db.cloud.schema &&\n !db.cloud.isServiceWorkerDB) {\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 // Listen to online event and do sync.\n throwIfClosed();\n if (!db.cloud.isServiceWorkerDB) {\n subscriptions.push(fromEvent(self, 'online').subscribe(() => {\n console.debug('online!');\n db.syncStateChangedEvent.next({\n phase: 'not-in-sync',\n });\n triggerSync(db, 'push');\n }), fromEvent(self, 'offline').subscribe(() => {\n console.debug('offline!');\n db.syncStateChangedEvent.next({\n phase: 'offline',\n });\n }));\n }\n // Connect WebSocket unless we\n if (((_f = db.cloud.options) === null || _f === void 0 ? void 0 : _f.databaseUrl) &&\n !((_g = db.cloud.options) === null || _g === void 0 ? void 0 : _g.disableWebSocket) &&\n !IS_SERVICE_WORKER) {\n subscriptions.push(connectWebSocket(db));\n }\n });\n }\n}\ndexieCloud.version = '{version}';\nDexie.Cloud = dexieCloud;\n\nexport { dexieCloud as default, dexieCloud, getTiedObjectId, getTiedRealmId };\n//# sourceMappingURL=dexie-cloud-addon.js.map\n"],"names":["extendStatics","__extends","__awaiter","__generator","__spreadArray","Dexie","__extends_1","__spreadArray_1","Observable$1","cmp","BehaviorSubject","Subject","of","fromEvent","merge","Subscription$1","__generator_1","from$1","throwError","liveQuery","combineLatest","map$1","share","timer$1"],"mappings":"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AAG,EAAE,GAAG;IACR,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,C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"}
1
+ {"version":3,"file":"dexie-cloud-addon.js","sources":["../../../../node_modules/.pnpm/tslib@2.4.0/node_modules/tslib/tslib.es6.js","../modern/dexie-cloud-addon.js"],"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","/* ========================================================================== \n * dexie-cloud-addom.js\n * ==========================================================================\n *\n * Dexie addon that syncs IndexedDB with Dexie Cloud.\n *\n * By David Fahlander, david@dexie.org\n *\n * ==========================================================================\n *\n * Version {version}, {date}\n *\n * https://dexie.org\n *\n * Apache License Version 2.0, January 2004, http://www.apache.org/licenses/\n * \n */\n\nimport Dexie, { cmp, liveQuery } from 'dexie';\nimport { Observable as Observable$1, BehaviorSubject, Subject, fromEvent, of, merge, Subscription as Subscription$1, from as from$1, throwError, combineLatest, map as map$1, share, timer as timer$1 } from 'rxjs';\n\n/******************************************************************************\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\nfunction __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\nfunction __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\nfunction __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\nfunction __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\nfunction __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\nfunction __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\nfunction __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nfunction __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\nfunction __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}\n\nfunction assert(b) {\n if (!b)\n throw new Error('Assertion Failed');\n}\nconst _hasOwn = {}.hasOwnProperty;\nfunction hasOwn(obj, prop) {\n return _hasOwn.call(obj, prop);\n}\nfunction 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}\nconst randomString$1 = 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\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 */\nfunction 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}\nfunction isValidAtID(id, idPrefix) {\n return !idPrefix || (typeof id === \"string\" && id.startsWith(idPrefix));\n}\n\nfunction 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\nfunction 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\nfunction 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\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 */\nfunction toDBOperationSet(inSet, txid = \"\") {\n // Fictive transaction:\n if (!txid)\n txid = randomString$1(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\nfunction getDbNameFromDbUrl(dbUrl) {\n const url = new URL(dbUrl);\n return url.pathname === \"/\"\n ? url.hostname.split('.')[0]\n : url.pathname.split('/')[1];\n}\n\nfunction isFunction(value) {\n return typeof value === 'function';\n}\n\nfunction hasLift(source) {\n return isFunction(source === null || source === void 0 ? void 0 : source.lift);\n}\nfunction 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\nvar isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; });\n\nfunction isPromise(value) {\n return isFunction(value === null || value === void 0 ? void 0 : value.then);\n}\n\nfunction 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\nvar 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\nfunction arrRemove(arr, item) {\n if (arr) {\n var index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n\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}());\nSubscription.EMPTY;\nfunction 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\nvar config = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n\nvar 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\nfunction 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\nfunction noop() { }\n\nvar COMPLETE_NOTIFICATION = (function () { return createNotification('C', undefined, undefined); })();\nfunction errorNotification(error) {\n return createNotification('E', undefined, error);\n}\nfunction nextNotification(value) {\n return createNotification('N', value, undefined);\n}\nfunction createNotification(kind, value, error) {\n return {\n kind: kind,\n value: value,\n error: error,\n };\n}\n\nvar context = null;\nfunction 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}\n\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));\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));\nfunction handleUnhandledError(error) {\n {\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}\nvar EMPTY_OBSERVER = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n\nvar observable = (function () { return (typeof Symbol === 'function' && Symbol.observable) || '@@observable'; })();\n\nfunction identity(x) {\n return x;\n}\n\nfunction 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\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[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}());\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\nfunction isInteropObservable(input) {\n return isFunction(input[observable]);\n}\n\nfunction isAsyncIterable(obj) {\n return Symbol.asyncIterator && isFunction(obj === null || obj === void 0 ? void 0 : obj[Symbol.asyncIterator]);\n}\n\nfunction 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\nfunction getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nvar iterator = getSymbolIterator();\n\nfunction isIterable(input) {\n return isFunction(input === null || input === void 0 ? void 0 : input[iterator]);\n}\n\nfunction 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 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}\nfunction isReadableStreamLike(obj) {\n return isFunction(obj === null || obj === void 0 ? void 0 : obj.getReader);\n}\n\nfunction 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}\nfunction fromInteropObservable(obj) {\n return new Observable(function (subscriber) {\n var obs = obj[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}\nfunction 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}\nfunction 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}\nfunction 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}\nfunction fromAsyncIterable(asyncIterable) {\n return new Observable(function (subscriber) {\n process(asyncIterable, subscriber).catch(function (err) { return subscriber.error(err); });\n });\n}\nfunction 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\nfunction 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));\n\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 return this;\n };\n return Action;\n}(Subscription));\n\nvar 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\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));\n\nvar dateTimestampProvider = {\n now: function () {\n return (dateTimestampProvider.delegate || Date).now();\n },\n delegate: undefined,\n};\n\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}());\n\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));\n\nvar asyncScheduler = new AsyncScheduler(AsyncAction);\nvar async = asyncScheduler;\n\nfunction isScheduler(value) {\n return value && isFunction(value.schedule);\n}\n\nfunction isValidDate(value) {\n return value instanceof Date && !isNaN(value);\n}\n\nfunction timer(dueTime, intervalOrScheduler, scheduler) {\n if (dueTime === void 0) { dueTime = 0; }\n if (scheduler === void 0) { scheduler = async; }\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\nfunction last(arr) {\n return arr[arr.length - 1];\n}\nfunction popScheduler(args) {\n return isScheduler(last(args)) ? args.pop() : undefined;\n}\n\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction scheduleObservable(input, scheduler) {\n return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler));\n}\n\nfunction schedulePromise(input, scheduler) {\n return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler));\n}\n\nfunction 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\nfunction scheduleIterable(input, scheduler) {\n return new Observable(function (subscriber) {\n var iterator$1;\n executeSchedule(subscriber, scheduler, function () {\n iterator$1 = input[iterator]();\n executeSchedule(subscriber, scheduler, function () {\n var _a;\n var value;\n var done;\n try {\n (_a = iterator$1.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$1 === null || iterator$1 === void 0 ? void 0 : iterator$1.return) && iterator$1.return(); };\n });\n}\n\nfunction 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\nfunction scheduleReadableStreamLike(input, scheduler) {\n return scheduleAsyncIterable(readableStreamLikeToAsyncGenerator(input), scheduler);\n}\n\nfunction 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\nfunction from(input, scheduler) {\n return scheduler ? scheduled(input, scheduler) : innerFrom(input);\n}\n\nfunction 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\nfunction 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\nfunction 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\nfunction mergeAll(concurrent) {\n if (concurrent === void 0) { concurrent = Infinity; }\n return mergeMap(identity, concurrent);\n}\n\nfunction concatAll() {\n return mergeAll(1);\n}\n\nfunction 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\nfunction concat$1() {\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\nvar EMPTY = new Observable(function (subscriber) { return subscriber.complete(); });\n\nfunction 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\nfunction ignoreElements() {\n return operate(function (source, subscriber) {\n source.subscribe(createOperatorSubscriber(subscriber, noop));\n });\n}\n\nfunction mapTo(value) {\n return map(function () { return value; });\n}\n\nfunction delayWhen(delayDurationSelector, subscriptionDelay) {\n if (subscriptionDelay) {\n return function (source) {\n return concat$1(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\nfunction delay(due, scheduler) {\n if (scheduler === void 0) { scheduler = asyncScheduler; }\n var duration = timer(due, scheduler);\n return delayWhen(function () { return duration; });\n}\n\nfunction 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\nfunction 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\nfunction skip(count) {\n return filter(function (_, index) { return count <= index; });\n}\n\nfunction 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$1(values, source, scheduler) : concat$1(values, source)).subscribe(subscriber);\n });\n}\n\nfunction 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\nfunction 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\nvar TimeoutError = createErrorClass(function (_super) {\n return function TimeoutErrorImpl(info) {\n if (info === void 0) { info = null; }\n _super(this);\n this.message = 'Timeout has occurred';\n this.name = 'TimeoutError';\n this.info = info;\n };\n});\nfunction timeout(config, schedulerArg) {\n var _a = (isValidDate(config) ? { first: config } : typeof config === 'number' ? { each: config } : config), first = _a.first, each = _a.each, _b = _a.with, _with = _b === void 0 ? timeoutErrorFactory : _b, _c = _a.scheduler, scheduler = _c === void 0 ? schedulerArg !== null && schedulerArg !== void 0 ? schedulerArg : asyncScheduler : _c, _d = _a.meta, meta = _d === void 0 ? null : _d;\n if (first == null && each == null) {\n throw new TypeError('No timeout provided.');\n }\n return operate(function (source, subscriber) {\n var originalSourceSubscription;\n var timerSubscription;\n var lastValue = null;\n var seen = 0;\n var startTimer = function (delay) {\n timerSubscription = executeSchedule(subscriber, scheduler, function () {\n try {\n originalSourceSubscription.unsubscribe();\n innerFrom(_with({\n meta: meta,\n lastValue: lastValue,\n seen: seen,\n })).subscribe(subscriber);\n }\n catch (err) {\n subscriber.error(err);\n }\n }, delay);\n };\n originalSourceSubscription = source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n timerSubscription === null || timerSubscription === void 0 ? void 0 : timerSubscription.unsubscribe();\n seen++;\n subscriber.next((lastValue = value));\n each > 0 && startTimer(each);\n }, undefined, undefined, function () {\n if (!(timerSubscription === null || timerSubscription === void 0 ? void 0 : timerSubscription.closed)) {\n timerSubscription === null || timerSubscription === void 0 ? void 0 : timerSubscription.unsubscribe();\n }\n lastValue = null;\n }));\n !seen && startTimer(first != null ? (typeof first === 'number' ? first : +first - scheduler.now()) : each);\n });\n}\nfunction timeoutErrorFactory(info) {\n throw new TimeoutError(info);\n}\n\n//const hasSW = 'serviceWorker' in navigator;\nlet hasComplainedAboutSyncEvent = false;\nfunction registerSyncEvent(db, purpose) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n // Send sync event to SW:\n const sw = yield navigator.serviceWorker.ready;\n if (purpose === \"push\" && sw.sync) {\n yield 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 }\n else {\n throw new Error(`Failed to trigger sync - there's no active service worker`);\n }\n return;\n }\n catch (e) {\n if (!hasComplainedAboutSyncEvent) {\n console.debug(`Dexie Cloud: Could not register sync event`, e);\n hasComplainedAboutSyncEvent = true;\n }\n }\n });\n}\nfunction registerPeriodicSyncEvent(db) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n try {\n // Register periodicSync event to SW:\n // @ts-ignore\n const { periodicSync } = yield navigator.serviceWorker.ready;\n if (periodicSync) {\n try {\n yield periodicSync.register(`dexie-cloud:${db.name}`, (_a = db.cloud.options) === null || _a === void 0 ? void 0 : _a.periodicSync);\n console.debug(`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 }\n else {\n console.debug(`Dexie Cloud: periodicSync not supported.`);\n }\n }\n catch (e) {\n console.debug(`Dexie Cloud: Could not register periodicSync for ${db.name}`, e);\n }\n });\n}\n\nfunction triggerSync(db, purpose) {\n if (db.cloud.usingServiceWorker) {\n registerSyncEvent(db, purpose);\n }\n else {\n db.localSyncEvent.next({ purpose });\n }\n}\n\nconst 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 };\nconst 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 return btoa(String.fromCharCode.apply(null, ArrayBuffer.isView(b) ? b : new Uint8Array(b)));\n };\n\nfunction interactWithUser(userInteraction, req) {\n return new Promise((resolve, reject) => {\n const interactionProps = Object.assign(Object.assign({}, req), { onSubmit: (res) => {\n userInteraction.next(undefined);\n resolve(res);\n }, onCancel: () => {\n userInteraction.next(undefined);\n reject(new Dexie.AbortError(\"User cancelled\"));\n } });\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}\nfunction alertUser(userInteraction, title, ...alerts) {\n return interactWithUser(userInteraction, {\n type: 'message-alert',\n title,\n alerts,\n fields: {}\n });\n}\nfunction promptForEmail(userInteraction, title, emailHint) {\n return __awaiter(this, void 0, void 0, function* () {\n let email = emailHint || '';\n while (!email || !/^[\\w-\\.]+@([\\w-]+\\.)+[\\w-]{2,10}$/.test(email)) {\n email = (yield 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 })).email;\n }\n return email;\n });\n}\nfunction promptForOTP(userInteraction, email, alert) {\n return __awaiter(this, void 0, void 0, function* () {\n const alerts = [\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 } = yield 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}\n\nfunction loadAccessToken(db) {\n var _a, _b;\n return __awaiter(this, void 0, void 0, function* () {\n const currentUser = yield db.getCurrentUser();\n const { accessToken, accessTokenExpiration, refreshToken, refreshTokenExpiration, claims, } = currentUser;\n if (!accessToken)\n return;\n const expTime = (_a = accessTokenExpiration === null || accessTokenExpiration === void 0 ? void 0 : accessTokenExpiration.getTime()) !== null && _a !== void 0 ? _a : Infinity;\n if (expTime > Date.now()) {\n return accessToken;\n }\n if (!refreshToken) {\n throw new Error(`Refresh token missing`);\n }\n const refreshExpTime = (_b = refreshTokenExpiration === null || refreshTokenExpiration === void 0 ? void 0 : refreshTokenExpiration.getTime()) !== null && _b !== void 0 ? _b : Infinity;\n if (refreshExpTime <= Date.now()) {\n throw new Error(`Refresh token has expired`);\n }\n const refreshedLogin = yield refreshAccessToken(db.cloud.options.databaseUrl, currentUser);\n yield db.table('$logins').update(claims.sub, {\n accessToken: refreshedLogin.accessToken,\n accessTokenExpiration: refreshedLogin.accessTokenExpiration,\n });\n return refreshedLogin.accessToken;\n });\n}\nfunction authenticate(url, context, fetchToken, userInteraction, hints) {\n return __awaiter(this, void 0, void 0, function* () {\n if (context.accessToken &&\n context.accessTokenExpiration.getTime() > Date.now()) {\n return context;\n }\n else if (context.refreshToken &&\n (!context.refreshTokenExpiration ||\n context.refreshTokenExpiration.getTime() > Date.now())) {\n return yield refreshAccessToken(url, context);\n }\n else {\n return yield userAuthenticate(context, fetchToken, userInteraction, hints);\n }\n });\n}\nfunction refreshAccessToken(url, login) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!login.refreshToken)\n throw new Error(`Cannot refresh token - refresh token is missing.`);\n if (!login.nonExportablePrivateKey)\n throw new Error(`login.nonExportablePrivateKey is missing - cannot sign refresh token without a private key.`);\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 = yield crypto.subtle.sign(signing_algorithm, login.nonExportablePrivateKey, data);\n const signature = b64encode(binarySignature);\n const tokenRequest = {\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 = yield 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 = yield res.json();\n login.accessToken = response.accessToken;\n login.accessTokenExpiration = response.accessTokenExpiration\n ? new Date(response.accessTokenExpiration)\n : undefined;\n return login;\n });\n}\nfunction userAuthenticate(context, fetchToken, userInteraction, hints) {\n return __awaiter(this, void 0, void 0, function* () {\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 }\n else {\n throw new Error(`This browser does not support WebCrypto.`);\n }\n }\n const { privateKey, publicKey } = yield crypto.subtle.generateKey({\n name: 'RSASSA-PKCS1-v1_5',\n modulusLength: 2048,\n publicExponent: new Uint8Array([0x01, 0x00, 0x01]),\n hash: { name: 'SHA-256' },\n }, false, // Non-exportable...\n ['sign', 'verify']);\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 = yield crypto.subtle.exportKey('spki', publicKey);\n const publicKeyPEM = spkiToPEM(publicKeySPKI);\n context.publicKey = publicKey;\n try {\n const response2 = yield fetchToken({\n public_key: publicKeyPEM,\n hints,\n });\n if (response2.type !== 'tokens')\n throw new Error(`Unexpected response type from token endpoint: ${response2.type}`);\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(response2.refreshTokenExpiration);\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 if (response2.alerts && response2.alerts.length > 0) {\n yield interactWithUser(userInteraction, {\n type: 'message-alert',\n title: 'Authentication Alert',\n fields: {},\n alerts: response2.alerts,\n });\n }\n return context;\n }\n catch (error) {\n yield alertUser(userInteraction, 'Authentication Failed', {\n type: 'error',\n messageCode: 'GENERIC_ERROR',\n message: `We're having a problem authenticating right now.`,\n messageParams: {},\n }).catch(() => { });\n throw error;\n }\n });\n}\nfunction spkiToPEM(keydata) {\n const keydataB64 = b64encode(keydata);\n const keydataB64Pem = formatAsPem(keydataB64);\n return keydataB64Pem;\n}\nfunction formatAsPem(str) {\n let finalString = '-----BEGIN PUBLIC KEY-----\\n';\n while (str.length > 0) {\n finalString += str.substring(0, 64) + '\\n';\n str = str.substring(64);\n }\n finalString = finalString + '-----END PUBLIC KEY-----';\n return finalString;\n}\n\n// Emulate true-private property db. Why? So it's not stored in DB.\nconst wm$1 = new WeakMap();\nclass AuthPersistedContext {\n constructor(db, userLogin) {\n wm$1.set(this, db);\n Object.assign(this, userLogin);\n }\n static load(db, userId) {\n return db\n .table(\"$logins\")\n .get(userId)\n .then((userLogin) => new AuthPersistedContext(db, userLogin || {\n userId,\n claims: {\n sub: userId\n },\n lastLogin: new Date(0)\n }));\n }\n save() {\n return __awaiter(this, void 0, void 0, function* () {\n const db = wm$1.get(this);\n db.table(\"$logins\").put(this);\n });\n }\n}\n\nclass HttpError extends Error {\n constructor(res, message) {\n super(message || `${res.status} ${res.statusText}`);\n this.httpStatus = res.status;\n }\n get name() {\n return \"HttpError\";\n }\n}\n\nfunction otpFetchTokenCallback(db) {\n const { userInteraction } = db.cloud;\n return function otpAuthenticate({ public_key, hints }) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n let tokenRequest;\n const url = (_a = db.cloud.options) === null || _a === void 0 ? void 0 : _a.databaseUrl;\n if (!url)\n throw new Error(`No database URL given.`);\n if ((hints === null || hints === void 0 ? void 0 : hints.grant_type) === 'demo') {\n const demo_user = yield promptForEmail(userInteraction, 'Enter a demo user email', (hints === null || hints === void 0 ? void 0 : hints.email) || (hints === null || hints === void 0 ? void 0 : hints.userId));\n tokenRequest = {\n demo_user,\n grant_type: 'demo',\n scopes: ['ACCESS_DB'],\n public_key,\n };\n }\n else {\n const email = yield promptForEmail(userInteraction, 'Enter email address', hints === null || hints === void 0 ? void 0 : hints.email);\n tokenRequest = {\n email,\n grant_type: 'otp',\n scopes: ['ACCESS_DB'],\n public_key,\n };\n }\n const res1 = yield 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 = yield res1.text();\n yield 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 = yield res1.json();\n if (response.type === 'tokens') {\n // Demo user request can get a \"tokens\" response right away\n return response;\n }\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 = yield promptForOTP(userInteraction, tokenRequest.email);\n tokenRequest.otp = otp || '';\n tokenRequest.otp_id = response.otp_id;\n let res2 = yield 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 = yield res2.text();\n tokenRequest.otp = yield promptForOTP(userInteraction, tokenRequest.email, {\n type: 'error',\n messageCode: 'INVALID_OTP',\n message: errorText,\n messageParams: {}\n });\n res2 = yield 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 = yield res2.text();\n yield alertUser(userInteraction, \"OTP Authentication Failed\", {\n type: 'error',\n messageCode: 'GENERIC_ERROR',\n message: errMsg,\n messageParams: {}\n }).catch(() => { });\n throw new HttpError(res2, errMsg);\n }\n const response2 = yield res2.json();\n return response2;\n }\n else {\n throw new Error(`Unexpected response from ${url}/token`);\n }\n });\n };\n}\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 */\nfunction setCurrentUser(db, user) {\n return __awaiter(this, void 0, void 0, function* () {\n if (user.userId === db.cloud.currentUserId)\n return; // Already this user.\n const $logins = db.table('$logins');\n yield db.transaction('rw', $logins, (tx) => __awaiter(this, void 0, void 0, function* () {\n const existingLogins = yield $logins.toArray();\n yield Promise.all(existingLogins\n .filter((login) => login.userId !== user.userId && login.isLoggedIn)\n .map((login) => {\n login.isLoggedIn = false;\n return $logins.put(login);\n }));\n user.isLoggedIn = true;\n user.lastLogin = new Date();\n yield user.save();\n console.debug('Saved new user', user.email);\n }));\n yield new Promise((resolve) => {\n if (db.cloud.currentUserId === user.userId) {\n resolve(null);\n }\n else {\n const subscription = db.cloud.currentUser.subscribe((currentUser) => {\n if (currentUser.userId === user.userId) {\n subscription.unsubscribe();\n resolve(null);\n }\n });\n }\n });\n // TANKAR!!!!\n // V: Service workern kommer inte ha tillgång till currentUserObservable om den inte istället härrör från ett liveQuery.\n // V: Samma med andra windows.\n // V: Så kanske göra om den till att häröra från liveQuery som läser $logins.orderBy('lastLogin').last().\n // V: Då bara vara medveten om:\n // V: En sån observable börjar hämta data vid första subscribe\n // V: Vi har inget \"inital value\" men kan emulera det till att vara ANONYMOUS_USER\n // V: Om requireAuth är true, så borde db.on(ready) hålla databasen stängd för alla utom denna observable.\n // V: Om inte så behöver den inte blocka.\n // Andra tankar:\n // * Man kan inte byta användare när man är offline. Skulle gå att flytta realms till undanstuff-tabell vid user-change.\n // men troligen inte värt det.\n // * Istället: sälj inte inte switch-user funktionalitet utan tala enbart om inloggat vs icke inloggat läge.\n // * populate $logins med ANONYMOUS så att en påbörjad inloggning inte räknas, alternativt ha en boolean prop!\n // Kanske bäst ha en boolean prop!\n // * Alternativ switch-user funktionalitet:\n // * DBCore gömmer data från realms man inte har tillgång till.\n // * Cursor impl behövs också då.\n // * Då blir det snabba user switch.\n // * claims-settet som skickas till servern blir summan av alla claims. Då måste servern stödja multipla tokens eller\n // att ens token är ett samlad.\n });\n}\n\nfunction login(db, hints) {\n return __awaiter(this, void 0, void 0, function* () {\n const currentUser = yield db.getCurrentUser();\n if (currentUser.isLoggedIn) {\n if (hints) {\n if (hints.email && db.cloud.currentUser.value.email !== hints.email) {\n throw new Error(`Must logout before changing user`);\n }\n if (hints.userId && db.cloud.currentUserId !== hints.userId) {\n throw new Error(`Must logout before changing user`);\n }\n }\n // Already authenticated according to given hints.\n return false;\n }\n const context = new AuthPersistedContext(db, {\n claims: {},\n lastLogin: new Date(0),\n });\n yield authenticate(db.cloud.options.databaseUrl, context, db.cloud.options.fetchTokens || otpFetchTokenCallback(db), db.cloud.userInteraction, hints);\n try {\n yield context.save();\n }\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 }\n catch (_a) { }\n throw e;\n }\n yield 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 true;\n });\n}\n\nconst UNAUTHORIZED_USER = {\n userId: \"unauthorized\",\n name: \"Unauthorized\",\n claims: {\n sub: \"unauthorized\",\n },\n lastLogin: new Date(0)\n};\ntry {\n Object.freeze(UNAUTHORIZED_USER);\n Object.freeze(UNAUTHORIZED_USER.claims);\n}\ncatch (_a) { }\n\nconst swHolder = {};\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((registration) => (swHolder.registration = registration));\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) => {\n var _a, _b;\n if ((_b = (_a = ev.data) === null || _a === void 0 ? void 0 : _a.type) === null || _b === void 0 ? void 0 : _b.startsWith('sw-broadcast-')) {\n [...self['clients'].matchAll({ includeUncontrolled: true })].forEach((client) => { var _a; return client.id !== ((_a = ev.source) === null || _a === void 0 ? void 0 : _a.id) && client.postMessage(ev.data); });\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 */\nclass SWBroadcastChannel {\n constructor(name) {\n this.name = name;\n }\n subscribe(listener) {\n if (!swContainer)\n return () => { };\n const forwarder = (ev) => {\n var _a;\n if (((_a = ev.data) === null || _a === void 0 ? void 0 : _a.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) {\n var _a;\n if (typeof self['clients'] === 'object') {\n // We're a service worker. Propagate to our browser clients.\n [...self['clients'].matchAll({ includeUncontrolled: true })].forEach((client) => 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 (_a = swHolder.registration.active) === null || _a === void 0 ? void 0 : _a.postMessage({\n type: `sw-broadcast-${this.name}`,\n message,\n });\n }\n }\n}\n\nconst events = globalThis['lbc-events'] || (globalThis['lbc-events'] = new Map());\nfunction addListener(name, listener) {\n if (events.has(name)) {\n events.get(name).push(listener);\n }\n else {\n events.set(name, [listener]);\n }\n}\nfunction removeListener(name, listener) {\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) {\n const listeners = events.get(ev.type);\n if (listeners) {\n listeners.forEach(listener => {\n try {\n listener(ev);\n }\n catch (_a) {\n }\n });\n }\n}\nclass BroadcastedAndLocalEvent extends Observable$1 {\n constructor(name) {\n const bc = typeof BroadcastChannel === \"undefined\"\n ? new SWBroadcastChannel(name) : new BroadcastChannel(name);\n super(subscriber => {\n function onCustomEvent(ev) {\n subscriber.next(ev.detail);\n }\n function onMessageEvent(ev) {\n console.debug(\"BroadcastedAndLocalEvent: onMessageEvent\", ev);\n subscriber.next(ev.data);\n }\n let unsubscribe;\n //self.addEventListener(`lbc-${name}`, onCustomEvent); // Fails in service workers\n addListener(`lbc-${name}`, onCustomEvent); // Works better in service worker\n try {\n if (bc instanceof SWBroadcastChannel) {\n unsubscribe = bc.subscribe(message => subscriber.next(message));\n }\n else {\n console.debug(\"BroadcastedAndLocalEvent: bc.addEventListener()\", name, \"bc is a\", bc);\n bc.addEventListener(\"message\", onMessageEvent);\n }\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 }\n else {\n bc.removeEventListener(\"message\", onMessageEvent);\n }\n };\n });\n this.name = name;\n this.bc = bc;\n }\n next(message) {\n console.debug(\"BroadcastedAndLocalEvent: bc.postMessage()\", Object.assign({}, 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\nfunction computeRealmSetHash({ realms, inviteRealms, }) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify([\n ...realms.map((realmId) => ({ realmId, accepted: true })),\n ...inviteRealms.map((realmId) => ({ realmId, accepted: false })),\n ].sort((a, b) => a.realmId < b.realmId ? -1 : a.realmId > b.realmId ? 1 : 0));\n const byteArray = new TextEncoder().encode(data);\n const digestBytes = yield crypto.subtle.digest('SHA-1', byteArray);\n const base64 = b64encode(digestBytes);\n return base64;\n });\n}\n\nfunction getSyncableTables(db) {\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\nfunction getMutationTable(tableName) {\n return `$${tableName}_mutations`;\n}\n\nfunction getTableFromMutationTable(mutationTable) {\n var _a;\n const tableName = (_a = /^\\$(.*)_mutations$/.exec(mutationTable)) === null || _a === void 0 ? void 0 : _a[1];\n if (!tableName)\n throw new Error(`Given mutationTable ${mutationTable} is not correct`);\n return tableName;\n}\n\nconst concat = [].concat;\nfunction flatten(a) {\n return concat.apply([], a);\n}\n\nfunction listClientChanges(mutationTables, db, { since = {}, limit = Infinity } = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const allMutsOnTables = yield Promise.all(mutationTables.map((mutationTable) => __awaiter(this, void 0, void 0, function* () {\n const tableName = getTableFromMutationTable(mutationTable.name);\n const lastRevision = since[tableName];\n let query = lastRevision\n ? mutationTable.where('rev').above(lastRevision)\n : mutationTable;\n if (limit < Infinity)\n query = query.limit(limit);\n const muts = yield query.toArray();\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 // Sort by time to get a true order of the operations (between tables)\n const sorted = flatten(allMutsOnTables).sort((a, b) => a.mut.ts - b.mut.ts);\n const result = [];\n let currentEntry = null;\n let currentTxid = null;\n for (const { table, mut } of sorted) {\n if (currentEntry &&\n currentEntry.table === table &&\n currentTxid === mut.txid) {\n currentEntry.muts.push(mut);\n }\n else {\n currentEntry = {\n table,\n muts: [mut],\n };\n currentTxid = mut.txid;\n result.push(currentEntry);\n }\n }\n // Filter out those tables that doesn't have any mutations:\n return result;\n });\n}\n\nfunction randomString(bytes) {\n const buf = new Uint8Array(bytes);\n if (typeof crypto !== 'undefined') {\n crypto.getRandomValues(buf);\n }\n else {\n for (let i = 0; i < bytes; i++)\n buf[i] = Math.floor(Math.random() * 256);\n }\n if (typeof Buffer !== 'undefined' && Buffer.from) {\n return Buffer.from(buf).toString('base64');\n }\n else if (typeof btoa !== 'undefined') {\n return btoa(String.fromCharCode.apply(null, buf));\n }\n else {\n throw new Error('No btoa or Buffer available');\n }\n}\n\nfunction listSyncifiedChanges(tablesToSyncify, currentUser, schema, alreadySyncedRealms) {\n return __awaiter(this, void 0, void 0, function* () {\n const txid = `upload-${randomString(8)}`;\n if (currentUser.isLoggedIn) {\n if (tablesToSyncify.length > 0) {\n const ignoredRealms = new Set(alreadySyncedRealms || []);\n const upserts = yield Promise.all(tablesToSyncify.map((table) => __awaiter(this, void 0, void 0, function* () {\n const { extractKey } = table.core.schema.primaryKey;\n if (!extractKey)\n return { table: table.name, muts: [] }; // Outbound tables are not synced.\n const dexieCloudTableSchema = schema[table.name];\n const query = (dexieCloudTableSchema === null || dexieCloudTableSchema === void 0 ? void 0 : dexieCloudTableSchema.generatedGlobalId)\n ? table.filter((item) => {\n extractKey(item);\n return (!ignoredRealms.has(item.realmId || '') &&\n //(id[0] !== '#' || !!item.$ts) && // Private obj need no sync if not changed\n isValidAtID(extractKey(item), dexieCloudTableSchema === null || dexieCloudTableSchema === void 0 ? void 0 : dexieCloudTableSchema.idPrefix));\n })\n : table.filter((item) => {\n const id = extractKey(item);\n return (!ignoredRealms.has(item.realmId || '') &&\n //(id[0] !== '#' || !!item.$ts) && // Private obj need no sync if not changed\n isValidSyncableID(id));\n });\n const unsyncedObjects = yield query.toArray();\n if (unsyncedObjects.length > 0) {\n const mut = {\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 }\n else {\n return {\n table: table.name,\n muts: [],\n };\n }\n })));\n return upserts.filter((op) => op.muts.length > 0);\n }\n }\n return [];\n });\n}\n\nfunction getTablesToSyncify(db, syncState) {\n const syncedTables = (syncState === null || syncState === void 0 ? void 0 : syncState.syncedTables) || [];\n const syncableTables = getSyncableTables(db);\n const tablesToSyncify = syncableTables.filter((tbl) => !syncedTables.includes(tbl.name));\n return tablesToSyncify;\n}\n\nconst { toString: toStr } = {};\nfunction getToStringTag(val) {\n return toStr.call(val).slice(8, -1);\n}\nfunction 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};\nfunction 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\nconst 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\nvar numberDef = {\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\nconst bigIntDef = {\n bigint: {\n replace: (realVal) => {\n return { $t: \"bigint\", v: \"\" + realVal };\n },\n revive: (obj) => BigInt(obj.v),\n },\n};\n\nvar DateDef = {\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\nvar SetDef = {\n Set: {\n replace: (set) => ({\n $t: \"Set\",\n v: Array.from(set.entries()),\n }),\n revive: ({ v }) => new Set(v),\n },\n};\n\nvar MapDef = {\n Map: {\n replace: (map) => ({\n $t: \"Map\",\n v: Array.from(map.entries()),\n }),\n revive: ({ v }) => new Map(v),\n },\n};\n\nconst _global = typeof globalThis !== \"undefined\"\n ? globalThis\n : typeof self !== \"undefined\"\n ? self\n : typeof global === \"undefined\"\n ? global\n : undefined;\n\nvar TypedArraysDefs = [\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\nfunction b64LexEncode(b) {\n return b64ToLex(b64encode(b));\n}\nfunction b64LexDecode(b64Lex) {\n return b64decode(lexToB64(b64Lex));\n}\nfunction 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}\nfunction 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\nvar ArrayBufferDef = {\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\nclass FakeBlob {\n constructor(buf, type) {\n this.buf = buf;\n this.type = type;\n }\n}\n\nfunction 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\nfunction 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}\n\nvar BlobDef = {\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\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};\n\nfunction 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}\nfunction 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}\nfunction 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\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 */\nvar undefinedDef = {\n undefined: {\n replace: () => ({\n $t: \"undefined\"\n }),\n revive: () => undefined,\n },\n};\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)\nconst hasBigIntSupport = typeof BigInt === 'function' && typeof BigInt(0) === 'bigint';\nclass FakeBigInt {\n toString() {\n return this.v;\n }\n constructor(value) {\n this.v = value;\n }\n}\nconst defs = Object.assign(Object.assign({}, undefinedDef), (hasBigIntSupport\n ? {}\n : {\n bigint: {\n test: (val) => val instanceof FakeBigInt,\n replace: (fakeBigInt) => {\n return Object.assign({ $t: 'bigint' }, fakeBigInt);\n },\n revive: ({ v, }) => new FakeBigInt(v)\n }\n }));\nconst TSON = TypesonSimplified(builtin, defs);\nconst BISON = Bison(defs);\n\nfunction encodeIdsForServer(schema, currentUser, changes) {\n const rv = [];\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(`Internal error: table ${table} not found in DBCore schema`);\n const { primaryKey } = tableSchema;\n let changeClone = change;\n muts.forEach((mut, mutIndex) => {\n const rewriteValues = !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 if (rewriteValues) {\n Dexie.setByKeyPath(mutClone.values[keyIndex], primaryKey.keyPath, 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(`Internal error: Cannot sync private IDs before authenticated`);\n const rewrittenKey = `${key}:${currentUser.userId}`;\n mutClone.keys[keyIndex] = rewrittenKey;\n if (rewriteValues) {\n Dexie.setByKeyPath(mutClone.values[keyIndex], primaryKey.keyPath, rewrittenKey);\n }\n }\n });\n });\n rv.push(changeClone);\n }\n return rv;\n}\nfunction cloneChange(change, rewriteValues) {\n // clone on demand:\n return Object.assign(Object.assign({}, change), { muts: rewriteValues\n ? change.muts.map((m) => {\n return (m.type === 'insert' || m.type === 'upsert') && m.values\n ? Object.assign(Object.assign({}, m), { keys: m.keys.slice(), values: m.values.slice() }) : Object.assign(Object.assign({}, m), { keys: m.keys.slice() });\n })\n : change.muts.map((m) => (Object.assign(Object.assign({}, m), { keys: m.keys.slice() }))) });\n}\n\n//import {BisonWebStreamReader} from \"dreambase-library/dist/typeson-simplified/BisonWebStreamReader\";\nfunction syncWithServer(changes, syncState, baseRevs, db, databaseUrl, schema, clientIdentity, currentUser) {\n return __awaiter(this, void 0, void 0, function* () {\n //\n // Push changes to server using fetch\n //\n const headers = {\n Accept: 'application/json, application/x-bison, application/x-bison-stream',\n 'Content-Type': 'application/tson'\n };\n const accessToken = yield loadAccessToken(db);\n if (accessToken) {\n headers.Authorization = `Bearer ${accessToken}`;\n }\n const syncRequest = {\n v: 2,\n dbID: syncState === null || syncState === void 0 ? void 0 : syncState.remoteDbId,\n clientIdentity,\n schema: schema || {},\n lastPull: syncState ? {\n serverRevision: syncState.serverRevision,\n realms: syncState.realms,\n inviteRealms: syncState.inviteRealms\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 = yield fetch(`${databaseUrl}/sync`, {\n method: 'post',\n headers,\n body: TSON.stringify(syncRequest)\n });\n //const contentLength = Number(res.headers.get('content-length'));\n db.syncStateChangedEvent.next({\n phase: 'pulling'\n });\n if (!res.ok) {\n throw new HttpError(res);\n }\n switch (res.headers.get('content-type')) {\n case 'application/x-bison':\n return BISON.fromBinary(yield res.blob());\n case 'application/x-bison-stream': //return BisonWebStreamReader(BISON, res);\n default:\n case 'application/json': {\n const text = yield res.text();\n const syncRes = TSON.parse(text);\n return syncRes;\n }\n }\n });\n}\n\nfunction modifyLocalObjectsWithNewUserId(syncifiedTables, currentUser, alreadySyncedRealms) {\n return __awaiter(this, void 0, void 0, function* () {\n const ignoredRealms = new Set(alreadySyncedRealms || []);\n for (const table of syncifiedTables) {\n if (table.name === \"members\") {\n // members\n yield table.toCollection().modify((member) => {\n if (!ignoredRealms.has(member.realmId) && (!member.userId || member.userId === UNAUTHORIZED_USER.userId)) {\n member.userId = currentUser.userId;\n }\n });\n }\n else if (table.name === \"roles\") ;\n else if (table.name === \"realms\") {\n // realms\n yield table.toCollection().modify((realm) => {\n if (!ignoredRealms.has(realm.realmId) && (realm.owner === undefined || realm.owner === UNAUTHORIZED_USER.userId)) {\n realm.owner = currentUser.userId;\n }\n });\n }\n else {\n // application entities\n yield 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}\n\nfunction throwIfCancelled(cancelToken) {\n if (cancelToken === null || cancelToken === void 0 ? void 0 : cancelToken.cancelled)\n throw new Dexie.AbortError(`Operation was cancelled`);\n}\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*/\nlet 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\nfunction updateBaseRevs(db, schema, latestRevisions, serverRev) {\n return __awaiter(this, void 0, void 0, function* () {\n yield db.$baseRevs.bulkPut(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\nfunction getLatestRevisionsPerTable(clientChangeSet, lastRevisions = {}) {\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\nfunction bulkUpdate(table, keys, changeSpecs) {\n return __awaiter(this, void 0, void 0, function* () {\n const objs = yield table.bulkGet(keys);\n const resultKeys = [];\n const resultObjs = [];\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 }\n else {\n Dexie.setByKeyPath(obj, keyPath, value);\n }\n }\n resultKeys.push(key);\n resultObjs.push(obj);\n }\n });\n yield (table.schema.primKey.keyPath == null\n ? table.bulkPut(resultObjs, resultKeys)\n : table.bulkPut(resultObjs));\n });\n}\n\nfunction applyServerChanges(changes, db) {\n return __awaiter(this, void 0, void 0, function* () {\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)\n continue; // If server sends changes on a table we don't have, ignore it.\n const { primaryKey } = table.core.schema;\n const keyDecoder = (key) => {\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 }\n catch (_a) { }\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(0, key.length - db.cloud.currentUserId.length - 1);\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 yield table.bulkAdd(mut.values, keys);\n }\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 yield table.bulkAdd(mut.values);\n }\n break;\n case 'upsert':\n if (primaryKey.outbound) {\n yield table.bulkPut(mut.values, keys);\n }\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 yield table.bulkPut(mut.values);\n }\n break;\n case 'modify':\n if (keys.length === 1) {\n yield table.update(keys[0], mut.changeSpec);\n }\n else {\n yield table.where(':id').anyOf(keys).modify(mut.changeSpec);\n }\n break;\n case 'update':\n yield bulkUpdate(table, keys, mut.changeSpecs);\n break;\n case 'delete':\n yield table.bulkDelete(keys);\n break;\n }\n }\n }\n });\n}\n\nconst CURRENT_SYNC_WORKER = 'currentSyncWorker';\nfunction sync(db, options, schema, syncOptions) {\n return _sync\n .apply(this, arguments)\n .then(() => {\n if (!(syncOptions === null || syncOptions === void 0 ? void 0 : syncOptions.justCheckIfNeeded)) { // && syncOptions?.purpose !== 'push') {\n db.syncStateChangedEvent.next({\n phase: 'in-sync',\n });\n }\n })\n .catch((error) => __awaiter(this, void 0, void 0, function* () {\n if (syncOptions === null || syncOptions === void 0 ? void 0 : syncOptions.justCheckIfNeeded)\n return Promise.reject(error); // Just rethrow.\n console.debug('Error from _sync', {\n isOnline,\n syncOptions,\n error,\n });\n if (isOnline &&\n (syncOptions === null || syncOptions === void 0 ? void 0 : syncOptions.retryImmediatelyOnFetchError) &&\n (error === null || error === void 0 ? void 0 : error.name) === 'TypeError' &&\n /fetch/.test(error === null || error === void 0 ? void 0 : error.message)) {\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 yield new Promise((resolve) => setTimeout(resolve, 500));\n return yield sync(db, options, schema, Object.assign(Object.assign({}, syncOptions), { retryImmediatelyOnFetchError: false }));\n }\n // Make sure that no matter whether sync() explodes or not,\n // always update the timestamp. Also store the error.\n yield db.$syncState.update('syncState', {\n timestamp: new Date(),\n error: '' + error,\n });\n db.syncStateChangedEvent.next({\n phase: isOnline ? 'error' : 'offline',\n error,\n });\n return Promise.reject(error);\n }));\n}\nfunction _sync(db, options, schema, { isInitialSync, cancelToken, justCheckIfNeeded, purpose } = {\n isInitialSync: false,\n}) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n if (!justCheckIfNeeded) {\n console.debug('SYNC STARTED', { isInitialSync, purpose });\n }\n if (!((_a = db.cloud.options) === null || _a === void 0 ? void 0 : _a.databaseUrl))\n throw new Error(`Internal error: sync must not be called when no databaseUrl is configured`);\n const { databaseUrl } = options;\n const currentUser = yield db.getCurrentUser(); // Keep same value across entire sync flow:\n const tablesToSync = currentUser.isLoggedIn ? getSyncableTables(db) : [];\n const mutationTables = tablesToSync.map((tbl) => db.table(getMutationTable(tbl.name)));\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 = yield 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 if (doSyncify) {\n if (justCheckIfNeeded)\n return true;\n //console.debug('sync doSyncify is true');\n yield db.transaction('rw', tablesToSyncify, (tx) => __awaiter(this, void 0, void 0, function* () {\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 yield modifyLocalObjectsWithNewUserId(tablesToSyncify, currentUser, persistedSyncState === null || persistedSyncState === void 0 ? void 0 : persistedSyncState.realms);\n }));\n throwIfCancelled(cancelToken);\n }\n //\n // List changes to sync\n //\n const [clientChangeSet, syncState, baseRevs] = yield db.transaction('r', db.tables, () => __awaiter(this, void 0, void 0, function* () {\n const syncState = yield db.getPersistedSyncState();\n const baseRevs = yield db.$baseRevs.toArray();\n let clientChanges = yield listClientChanges(mutationTables);\n throwIfCancelled(cancelToken);\n if (doSyncify) {\n const alreadySyncedRealms = [\n ...((persistedSyncState === null || persistedSyncState === void 0 ? void 0 : persistedSyncState.realms) || []),\n ...((persistedSyncState === null || persistedSyncState === void 0 ? void 0 : persistedSyncState.inviteRealms) || []),\n ];\n const syncificationInserts = yield listSyncifiedChanges(tablesToSyncify, currentUser, schema, alreadySyncedRealms);\n throwIfCancelled(cancelToken);\n clientChanges = clientChanges.concat(syncificationInserts);\n return [clientChanges, syncState, baseRevs];\n }\n return [clientChanges, syncState, baseRevs];\n }));\n const pushSyncIsNeeded = clientChangeSet.some((set) => set.muts.some((mut) => mut.keys.length > 0));\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 const latestRevisions = getLatestRevisionsPerTable(clientChangeSet, syncState === null || syncState === void 0 ? void 0 : syncState.latestRevisions);\n const clientIdentity = (syncState === null || syncState === void 0 ? void 0 : syncState.clientIdentity) || randomString$1(16);\n //\n // Push changes to server\n //\n throwIfCancelled(cancelToken);\n const res = yield syncWithServer(clientChangeSet, syncState, baseRevs, db, databaseUrl, schema, clientIdentity, currentUser);\n console.debug('Sync response', res);\n //\n // Apply changes locally and clear old change entries:\n //\n const done = yield db.transaction('rw', db.tables, (tx) => __awaiter(this, void 0, void 0, function* () {\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 // 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 yield db.$syncState.put(schema, 'schema');\n // List mutations that happened during our exchange with the server:\n const addedClientChanges = yield listClientChanges(mutationTables, db, {\n since: latestRevisions,\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 (!addedClientChanges.some((ch) => ch.table === tableName && ch.muts.length > 0)) {\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 yield Promise.all([\n mutTable.clear(),\n db.$baseRevs.where({ tableName }).delete(),\n ]);\n }\n else if (latestRevisions[tableName]) {\n const latestRev = latestRevisions[tableName] || 0;\n yield Promise.all([\n mutTable.where('rev').belowOrEqual(latestRev).delete(),\n db.$baseRevs\n .where(':id')\n .between([tableName, -Infinity], [tableName, latestRev + 1], true, true)\n .reverse()\n .offset(1) // Keep one entry (the one mapping muts that came during fetch --> previous server revision)\n .delete(),\n ]);\n }\n else ;\n }\n // Update latestRevisions object according to additional changes:\n getLatestRevisionsPerTable(addedClientChanges, latestRevisions);\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 yield updateBaseRevs(db, schema, latestRevisions, res.serverRevision);\n const syncState = yield db.getPersistedSyncState();\n //\n // Delete objects from removed realms\n //\n yield deleteObjectsFromRemovedRealms(db, res, syncState);\n //\n // Update syncState\n //\n const newSyncState = 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 const filteredChanges = filterServerChangesThroughAddedClientChanges(res.changes, addedClientChanges);\n //\n // apply server changes\n //\n yield applyServerChanges(filteredChanges, db);\n //\n // Update syncState\n //\n db.$syncState.put(newSyncState, 'syncState');\n return addedClientChanges.length === 0;\n }));\n if (!done) {\n console.debug('MORE SYNC NEEDED. Go for it again!');\n return yield _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}\nfunction deleteObjectsFromRemovedRealms(db, res, prevState) {\n return __awaiter(this, void 0, void 0, function* () {\n const deletedRealms = new Set();\n const rejectedRealms = new Set();\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)\n continue;\n if (table.schema.indexes.some((idx) => idx.keyPath === 'realmId' ||\n (Array.isArray(idx.keyPath) && idx.keyPath[0] === 'realmId'))) {\n // There's an index to use:\n //console.debug(`REMOVAL: deleting all ${table.name} where realmId anyOf `, JSON.stringify([...realmsToDelete]));\n yield table\n .where('realmId')\n .anyOf([...realmsToDelete])\n .delete();\n }\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 yield table\n .filter((obj) => !!(obj === null || obj === void 0 ? void 0 : obj.realmId) && realmsToDelete.has(obj.realmId))\n .delete();\n }\n }\n }\n });\n}\nfunction filterServerChangesThroughAddedClientChanges(serverChanges, addedClientChanges) {\n const changes = {};\n applyOperations(changes, serverChanges);\n const localPostChanges = {};\n applyOperations(localPostChanges, addedClientChanges);\n subtractChanges(changes, localPostChanges);\n return toDBOperationSet(changes);\n}\n\nfunction MessagesFromServerConsumer(db) {\n const queue = [];\n const readyToServe = new BehaviorSubject(true);\n const event = new BehaviorSubject(null);\n let isWorking = false;\n let loopWarning = 0;\n let loopDetection = [0, 0, 0, 0, 0, 0, 0, 0, 0, Date.now()];\n event.subscribe(() => __awaiter(this, void 0, void 0, function* () {\n if (isWorking)\n return;\n if (queue.length > 0) {\n isWorking = true;\n loopDetection.shift();\n loopDetection.push(Date.now());\n readyToServe.next(false);\n try {\n yield consumeQueue();\n }\n finally {\n if (loopDetection[loopDetection.length - 1] - loopDetection[0] <\n 10000) {\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 yield new Promise((resolve) => setTimeout(resolve, 60000));\n }\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 yield new Promise((resolve) => setTimeout(resolve, 10000));\n }\n }\n isWorking = false;\n readyToServe.next(true);\n }\n }\n }));\n function enqueue(msg) {\n queue.push(msg);\n event.next(null);\n }\n function consumeQueue() {\n var _a, _b, _c;\n return __awaiter(this, void 0, void 0, function* () {\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 yield db.cloud.syncState\n .pipe(filter(({ phase }) => phase === 'in-sync' || phase === 'error'), take(1))\n .toPromise();\n console.debug('processing msg', msg);\n const persistedSyncState = db.cloud.persistedSyncState.value;\n //syncState.\n if (!msg)\n continue;\n switch (msg.type) {\n case 'token-expired':\n console.debug('WebSocket observable: Token expired. Refreshing token...');\n const user = db.cloud.currentUser.value;\n // Refresh access token\n const refreshedLogin = yield refreshAccessToken(db.cloud.options.databaseUrl, user);\n // Persist updated access token\n yield db.table('$logins').update(user.userId, {\n accessToken: refreshedLogin.accessToken,\n accessTokenExpiration: refreshedLogin.accessTokenExpiration,\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 (!persistedSyncState?.realms?.includes(msg.realm) && !persistedSyncState?.inviteRealms?.includes(msg.realm)) {\n triggerSync(db, 'pull');\n //}\n break;\n case 'realm-accepted':\n //if (!persistedSyncState?.realms?.includes(msg.realm)) {\n triggerSync(db, 'pull');\n //}\n break;\n case 'realm-removed':\n //if (\n ((_a = persistedSyncState === null || persistedSyncState === void 0 ? void 0 : persistedSyncState.realms) === null || _a === void 0 ? void 0 : _a.includes(msg.realm)) ||\n ((_b = persistedSyncState === null || persistedSyncState === void 0 ? void 0 : persistedSyncState.inviteRealms) === null || _b === void 0 ? void 0 : _b.includes(msg.realm));\n //) {\n triggerSync(db, 'pull');\n //}\n break;\n case 'realms-changed':\n triggerSync(db, 'pull');\n break;\n case 'changes':\n console.debug('changes');\n if (((_c = db.cloud.syncState.value) === null || _c === void 0 ? void 0 : _c.phase) === 'error') {\n triggerSync(db, 'pull');\n break;\n }\n yield db.transaction('rw', db.dx.tables, (tx) => __awaiter(this, void 0, void 0, function* () {\n // @ts-ignore\n tx.idbtrans.disableChangeTracking = true;\n // @ts-ignore\n tx.idbtrans.disableAccessControl = true;\n const [schema, syncState, currentUser] = yield 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(`baseRev (${msg.baseRev}) differs from our serverRevision in syncState (${syncState.serverRevision})`);\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 (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 = yield Dexie.waitFor(\n // Keep TX in non-IDB work\n computeRealmSetHash(syncState));\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 // Get clientChanges\n let clientChanges = [];\n if (currentUser.isLoggedIn) {\n const mutationTables = getSyncableTables(db).map((tbl) => db.table(getMutationTable(tbl.name)));\n clientChanges = yield listClientChanges(mutationTables, db);\n console.debug('msg queue: client changes', clientChanges);\n }\n if (msg.changes.length > 0) {\n const filteredChanges = filterServerChangesThroughAddedClientChanges(msg.changes, clientChanges);\n //\n // apply server changes\n //\n console.debug('applying filtered server changes', filteredChanges);\n yield applyServerChanges(filteredChanges, db);\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(clientChanges, syncState.latestRevisions);\n syncState.serverRevision = msg.newRev;\n // Update base revs\n console.debug('Updating baseRefs', syncState.latestRevisions);\n yield updateBaseRevs(db, schema, syncState.latestRevisions, msg.newRev);\n //\n // Update syncState\n //\n console.debug('Updating syncState', syncState);\n yield db.$syncState.put(syncState, 'syncState');\n }));\n console.debug('msg queue: done with rw transaction');\n break;\n }\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\nconst wm = new WeakMap();\nconst 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};\nlet static_counter = 0;\nfunction DexieCloudDB(dx) {\n if ('vip' in dx)\n 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();\n let syncStateChangedEvent = new BroadcastedAndLocalEvent(`syncstatechanged-${dx.name}`);\n let syncCompleteEvent = new BroadcastedAndLocalEvent(`synccomplete-${dx.name}`);\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');\n },\n get $syncState() {\n return dx.table('$syncState');\n },\n get $baseRevs() {\n return dx.table('$baseRevs');\n },\n get $logins() {\n return dx.table('$logins');\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 };\n const helperMethods = {\n getCurrentUser() {\n return db.$logins\n .toArray()\n .then((logins) => logins.find((l) => l.isLoggedIn) || UNAUTHORIZED_USER);\n },\n getPersistedSyncState() {\n return db.$syncState.get('syncState');\n },\n getSchema() {\n return db.$syncState.get('schema').then((schema) => {\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(table.schema.primKey.keyPath);\n }\n }\n }\n return schema;\n });\n },\n getOptions() {\n return db.$syncState.get('options');\n },\n setInitiallySynced(value) {\n initiallySynced = value;\n },\n reconfigure() {\n syncStateChangedEvent = new BroadcastedAndLocalEvent(`syncstatechanged-${dx.name}`);\n syncCompleteEvent = new BroadcastedAndLocalEvent(`synccomplete-${dx.name}`);\n },\n };\n Object.assign(db, helperMethods);\n db.messageConsumer = MessagesFromServerConsumer(db);\n wm.set(dx.cloud, db);\n }\n return db;\n}\nfunction nameFromKeyPath(keyPath) {\n return typeof keyPath === 'string' ?\n keyPath :\n keyPath ? ('[' + [].join.call(keyPath, '+') + ']') : \"\";\n}\n\n// @ts-ignore\nconst isFirefox = typeof InstallTrigger !== 'undefined';\n\nconst isSafari = typeof navigator !== 'undefined' &&\n /Safari\\//.test(navigator.userAgent) &&\n !/Chrom(e|ium)\\/|Edge\\//.test(navigator.userAgent);\nconst safariVersion = isSafari\n ? // @ts-ignore\n [].concat(navigator.userAgent.match(/Safari\\/(\\d*)/))[1]\n : NaN;\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.\nconst DISABLE_SERVICEWORKER_STRATEGY = (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\n/* Helper function to subscribe to database close no matter if it was unexpectedly closed or manually using db.close()\n */\nfunction dbOnClosed(db, handler) {\n db.on.close.subscribe(handler);\n const origClose = db.close;\n db.close = function () {\n origClose.call(this);\n handler();\n };\n return () => {\n db.on.close.unsubscribe(handler);\n db.close = origClose;\n };\n}\n\nconst IS_SERVICE_WORKER = typeof self !== \"undefined\" && \"clients\" in self && !self.document;\n\nfunction throwVersionIncrementNeeded() {\n throw new Dexie.SchemaError(`Version increment needed to allow dexie-cloud change tracking`);\n}\n\nconst { toString } = {};\nfunction toStringTag(o) {\n return toString.call(o).slice(8, -1);\n}\nfunction getEffectiveKeys(primaryKey, req) {\n var _a;\n if (req.type === 'delete')\n return req.keys;\n return ((_a = req.keys) === null || _a === void 0 ? void 0 : _a.slice()) || req.values.map(primaryKey.extractKey);\n}\nfunction applyToUpperBitFix(orig, bits) {\n return ((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}\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) {\n return ch >= 'A' && ch <= 'Z';\n}\nfunction generateTablePrefix(tableName, allPrefixes) {\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 }\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 */\nfunction generateKey(prefix, shardKey) {\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 }\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\nfunction createIdGenerationMiddleware(db) {\n return {\n stack: 'dbcore',\n name: 'idGenerationMiddleware',\n level: 1,\n create: (core) => {\n return Object.assign(Object.assign({}, core), { table: (tableName) => {\n const table = core.table(tableName);\n function generateOrVerifyAtKeys(req, idPrefix) {\n let valueClones = 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 = 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)\n valueClones = req.values.slice();\n valueClones[idx] = Dexie.deepClone(valueClones[idx]);\n Dexie.setByKeyPath(valueClones[idx], table.schema.primaryKey.keyPath, keys[idx]);\n }\n }\n else if (typeof key !== 'string' ||\n (!key.startsWith(idPrefix) && !key.startsWith('#' + idPrefix))) {\n // Key was specified by caller. Verify it complies with id prefix.\n throw new Dexie.ConstraintError(`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 return table.mutate(Object.assign(Object.assign({}, req), { keys, values: valueClones || req.values }));\n }\n return Object.assign(Object.assign({}, table), { mutate: (req) => {\n var _a, _b;\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 = (_a = db.cloud.schema) === null || _a === void 0 ? void 0 : _a[tableName];\n if (!(cloudTableSchema === null || cloudTableSchema === void 0 ? void 0 : cloudTableSchema.generatedGlobalId)) {\n if (cloudTableSchema === null || cloudTableSchema === void 0 ? void 0 : 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(`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 (((_b = db.cloud.options) === null || _b === void 0 ? void 0 : _b.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(`Unable to create new objects without an initial sync having been performed.`);\n }\n return table.mutate(req);\n });\n }\n return generateOrVerifyAtKeys(req, cloudTableSchema.idPrefix);\n }\n }\n return table.mutate(req);\n } });\n } });\n },\n };\n}\n\nfunction createImplicitPropSetterMiddleware(db) {\n return {\n stack: 'dbcore',\n name: 'implicitPropSetterMiddleware',\n level: 1,\n create: (core) => {\n return Object.assign(Object.assign({}, core), { table: (tableName) => {\n const table = core.table(tableName);\n return Object.assign(Object.assign({}, table), { mutate: (req) => {\n var _a, _b, _c, _d;\n // @ts-ignore\n if (req.trans.disableChangeTracking) {\n return table.mutate(req);\n }\n const trans = req.trans;\n if ((_b = (_a = db.cloud.schema) === null || _a === void 0 ? void 0 : _a[tableName]) === null || _b === void 0 ? void 0 : _b.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 = (_d = (_c = table.schema.primaryKey).extractKey) === null || _d === void 0 ? void 0 : _d.call(_c, 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 // 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 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\nfunction allSettled(possiblePromises) {\n return new Promise(resolve => {\n if (possiblePromises.length === 0)\n resolve([]);\n let remaining = possiblePromises.length;\n const results = new Array(remaining);\n possiblePromises.forEach((p, i) => Promise.resolve(p).then(value => results[i] = { status: \"fulfilled\", value }, reason => results[i] = { status: \"rejected\", reason })\n .then(() => --remaining || resolve(results)));\n });\n}\n\nlet counter$1 = 0;\nfunction guardedTable(table) {\n const prop = \"$lock\" + (++counter$1);\n return Object.assign(Object.assign({}, table), { count: readLock(table.count, prop), get: readLock(table.get, prop), getMany: readLock(table.getMany, prop), openCursor: readLock(table.openCursor, prop), query: readLock(table.query, prop), mutate: writeLock(table.mutate, prop) });\n}\nfunction readLock(fn, prop) {\n return function readLocker(req) {\n const { readers, writers, } = 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)).finally(() => readers.splice(readers.indexOf(promise)));\n readers.push(promise);\n return promise;\n };\n}\nfunction writeLock(fn, prop) {\n return function writeLocker(req) {\n const { readers, writers, } = 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)).finally(() => writers.shift());\n writers.push(promise);\n return promise;\n };\n}\n\nconst outstandingTransactions = new BehaviorSubject(new Set());\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 */\nfunction createMutationTrackingMiddleware({ currentUserObservable, db }) {\n return {\n stack: 'dbcore',\n name: 'MutationTrackingMiddleware',\n level: 1,\n create: (core) => {\n const ordinaryTables = core.schema.tables.filter((t) => !/^\\$/.test(t.name));\n let mutTableMap;\n try {\n mutTableMap = new Map(ordinaryTables.map((tbl) => [\n tbl.name,\n core.table(`$${tbl.name}_mutations`)\n ]));\n }\n catch (_a) {\n throwVersionIncrementNeeded();\n }\n return Object.assign(Object.assign({}, core), { transaction: (tables, mode) => {\n let tx;\n if (mode === 'readwrite') {\n const mutationTables = tables\n .filter((tbl) => { var _a, _b; return (_b = (_a = db.cloud.schema) === null || _a === void 0 ? void 0 : _a[tbl]) === null || _b === void 0 ? void 0 : _b.markedForSync; })\n .map((tbl) => getMutationTable(tbl));\n tx = core.transaction([...tables, ...mutationTables], mode);\n }\n else {\n tx = core.transaction(tables, mode);\n }\n if (mode === 'readwrite') {\n // Give each transaction a globally unique id.\n tx.txid = randomString(16);\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 var _a;\n if (tx.mutationsAdded && ((_a = db.cloud.options) === null || _a === void 0 ? void 0 : _a.databaseUrl)) {\n if (db.cloud.usingServiceWorker) {\n console.debug('registering sync event');\n registerSyncEvent(db, \"push\");\n }\n else {\n db.localSyncEvent.next({ purpose: \"push\" });\n }\n }\n removeTransaction();\n };\n tx.addEventListener('complete', txComplete);\n tx.addEventListener('error', removeTransaction);\n tx.addEventListener('abort', removeTransaction);\n }\n return tx;\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 Object.assign(Object.assign({}, table), { mutate: (req) => {\n if (req.type === 'add' || req.type === 'put') {\n req.trans.mutationsAdded = true;\n }\n return table.mutate(req);\n } });\n }\n else if (tableName === '$logins') {\n return Object.assign(Object.assign({}, table), { mutate: (req) => {\n //console.debug('Mutating $logins table', req);\n return table\n .mutate(req)\n .then((res) => {\n //console.debug('Mutating $logins');\n req.trans.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(Object.assign(Object.assign({}, table), { mutate: (req) => {\n var _a, _b, _c;\n const trans = req.trans;\n if (!trans.txid)\n return table.mutate(req); // Upgrade transactions not guarded by us.\n if (trans.disableChangeTracking)\n return table.mutate(req);\n if (!((_b = (_a = db.cloud.schema) === null || _a === void 0 ? void 0 : _a[tableName]) === null || _b === void 0 ? void 0 : _b.markedForSync))\n return table.mutate(req);\n if (!((_c = trans.currentUser) === null || _c === void 0 ? void 0 : _c.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 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 function mutateAndLog(req) {\n const trans = req.trans;\n trans.mutationsAdded = true;\n const { txid, currentUser: { userId } } = trans;\n const { type } = req;\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 const mut = req.type === 'delete'\n ? {\n type: 'delete',\n ts,\n keys,\n criteria: req.criteria,\n txid,\n userId\n }\n : req.type === 'add'\n ? {\n type: 'insert',\n ts,\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 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 keys: updates.keys,\n changeSpecs: updates.changeSpecs,\n txid,\n userId\n }\n : {\n type: 'upsert',\n ts,\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\nfunction overrideParseStoresSpec(origFunc, dexie) {\n return function (stores, dbSchema) {\n const storesClone = Object.assign(Object.assign({}, DEXIE_CLOUD_SCHEMA), stores);\n // Merge indexes of DEXIE_CLOUD_SCHEMA with stores\n Object.keys(DEXIE_CLOUD_SCHEMA).forEach((tableName) => {\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 // 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 {${tableName}: ${JSON.stringify(DEXIE_CLOUD_SCHEMA[tableName])}`);\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 // Populate dexie.cloud.schema\n const cloudSchema = dexie.cloud.schema || (dexie.cloud.schema = {});\n const allPrefixes = new Set();\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 }\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\nfunction performInitialSync(db, cloudOptions, cloudSchema) {\n return __awaiter(this, void 0, void 0, function* () {\n console.debug('Performing initial sync');\n yield sync(db, cloudOptions, cloudSchema, { isInitialSync: true });\n console.debug('Done initial sync');\n });\n}\n\nconst USER_INACTIVITY_TIMEOUT = 180000; // 3 minutes\nconst INACTIVE_WAIT_TIME = 20000;\n// This observable will be emitted to later down....\nconst userIsActive = new BehaviorSubject(true);\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.\nconst userIsReallyActive = new BehaviorSubject(true);\nuserIsActive\n .pipe(switchMap((isActive) => {\n //console.debug('SyncStatus: DUBB: isActive changed to', isActive);\n return isActive\n ? of(true)\n : of(false).pipe(delay(INACTIVE_WAIT_TIME))\n ;\n}), distinctUntilChanged())\n .subscribe(userIsReallyActive);\n//\n// First create some corner-stone observables to build the flow on\n//\n// document.onvisibilitychange:\nconst visibilityStateIsChanged = typeof document !== 'undefined'\n ? fromEvent(document, 'visibilitychange')\n : of({});\n// document.onvisibilitychange makes document hidden:\nconst documentBecomesHidden = visibilityStateIsChanged.pipe(filter(() => document.visibilityState === 'hidden'));\n// document.onvisibilitychange makes document visible\nconst documentBecomesVisible = visibilityStateIsChanged.pipe(filter(() => document.visibilityState === 'visible'));\n// Any of various user-activity-related events happen:\nconst userDoesSomething = typeof window !== 'undefined'\n ? merge(documentBecomesVisible, fromEvent(window, 'mousedown'), fromEvent(window, 'mousemove'), fromEvent(window, 'keydown'), fromEvent(window, 'wheel'), fromEvent(window, 'touchmove'))\n : of({});\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(of(true), // Make sure something is always emitted from start\n documentBecomesHidden, // so that we can eagerly emit false!\n userDoesSomething)\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) => isActive\n ? of(0).pipe(delay(USER_INACTIVITY_TIMEOUT - INACTIVE_WAIT_TIME), tap(() => userIsActive.next(false)))\n : of(0)))\n .subscribe(() => { }); // Unless we subscribe nothing will be propagated to userIsActive observable\n}\n\nclass TokenExpiredError extends Error {\n constructor() {\n super(...arguments);\n this.name = \"TokenExpiredError\";\n }\n}\n\nconst SERVER_PING_TIMEOUT = 20000;\nconst CLIENT_PING_INTERVAL = 30000;\nconst FAIL_RETRY_WAIT_TIME = 60000;\nclass WSObservable extends Observable$1 {\n constructor(databaseUrl, rev, realmSetHash, clientIdentity, messageProducer, webSocketStatus, token, tokenExpiration) {\n super((subscriber) => new WSConnection(databaseUrl, rev, realmSetHash, clientIdentity, token, tokenExpiration, subscriber, messageProducer, webSocketStatus));\n }\n}\nlet counter = 0;\nclass WSConnection extends Subscription$1 {\n constructor(databaseUrl, rev, realmSetHash, clientIdentity, token, tokenExpiration, subscriber, messageProducer, webSocketStatus) {\n super(() => this.teardown());\n this.id = ++counter;\n this.reconnecting = false;\n console.debug('New WebSocket Connection', this.id, token ? 'authorized' : 'unauthorized');\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 teardown() {\n console.debug('Teardown WebSocket Connection', this.id);\n this.disconnect();\n }\n 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 }\n catch (_a) { }\n }\n this.ws = null;\n if (this.messageProducerSubscription) {\n this.messageProducerSubscription.unsubscribe();\n this.messageProducerSubscription = null;\n }\n }\n reconnect() {\n if (this.reconnecting)\n return;\n this.reconnecting = true;\n try {\n this.disconnect();\n }\n catch (_a) { }\n this.connect()\n .catch(() => { })\n .then(() => (this.reconnecting = false)); // finally()\n }\n connect() {\n return __awaiter(this, void 0, void 0, function* () {\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(() => __awaiter(this, void 0, void 0, function* () {\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' }));\n setTimeout(() => {\n console.debug('pinger setTimeout', this.id, this.pinger ? `alive` : 'dead');\n if (!this.pinger)\n return;\n if (this.closed) {\n console.debug('pinger setTimeout', this.id, 'subscription is closed');\n this.teardown();\n return;\n }\n if (this.lastServerActivity <\n new Date(Date.now() - SERVER_PING_TIMEOUT)) {\n // Server inactive. Reconnect if user is active.\n console.debug('pinger: server is inactive');\n console.debug('pinger reconnecting');\n this.reconnect();\n }\n else {\n console.debug('pinger: server still active');\n }\n }, SERVER_PING_TIMEOUT);\n }\n catch (_a) {\n console.debug('pinger catch error', this.id, 'reconnecting');\n this.reconnect();\n }\n }\n else {\n console.debug('pinger', this.id, 'reconnecting');\n this.reconnect();\n }\n }), CLIENT_PING_INTERVAL);\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)\n 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 // 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 ws.onclose = (event) => {\n if (!this.pinger)\n return;\n console.debug('dexie-cloud WebSocket onclosed', this.id);\n this.reconnect();\n };\n ws.onmessage = (event) => {\n if (!this.pinger)\n return;\n console.debug('dexie-cloud WebSocket onmessage', event.data);\n this.lastServerActivity = new Date();\n try {\n const msg = TSON.parse(event.data);\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 }\n catch (e) {\n this.subscriber.error(e);\n }\n };\n try {\n let everConnected = false;\n yield 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) => {\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 }\n else {\n this.reconnect();\n }\n };\n });\n this.messageProducerSubscription = this.messageProducer.subscribe((msg) => {\n var _a;\n if (!this.closed) {\n if (msg.type === 'ready' &&\n this.webSocketStatus.value !== 'connected') {\n this.webSocketStatus.next('connected');\n }\n (_a = this.ws) === null || _a === void 0 ? void 0 : _a.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}\n\nfunction sleep(ms) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\nfunction waitAndReconnectWhenUserDoesSomething(error) {\n return __awaiter(this, void 0, void 0, function* () {\n console.error(`WebSocket observable: error but revive when user does some active thing...`, error);\n // Sleep some seconds...\n yield sleep(3000);\n // Wait til user does something (move mouse, tap, scroll, click etc)\n console.debug('waiting for someone to do something');\n yield userDoesSomething.pipe(take(1)).toPromise();\n console.debug('someone did something!');\n });\n}\nfunction connectWebSocket(db) {\n var _a;\n if (!((_a = db.cloud.options) === null || _a === void 0 ? void 0 : _a.databaseUrl)) {\n throw new Error(`No database URL to connect WebSocket to`);\n }\n const messageProducer = db.messageConsumer.readyToServe.pipe(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 map((syncState) => ({\n // Produce the message to trigger server to send us new messages to consume:\n type: 'ready',\n rev: syncState.serverRevision,\n })));\n function createObservable() {\n return db.cloud.persistedSyncState.pipe(filter((syncState) => syncState === null || syncState === void 0 ? void 0 : 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) => db.cloud.currentUser.pipe(map((userLogin) => [userLogin, syncState]))), switchMap(([userLogin, syncState]) => userIsReallyActive.pipe(map((isActive) => [isActive ? userLogin : null, syncState]))), switchMap(([userLogin, syncState]) => {\n if ((userLogin === null || userLogin === void 0 ? void 0 : userLogin.isLoggedIn) && !(syncState === null || syncState === void 0 ? void 0 : 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(filter((syncState) => (syncState === null || syncState === void 0 ? void 0 : syncState.realms.includes(userLogin.userId)) || false), take(1), map((syncState) => [userLogin, syncState]));\n }\n return new BehaviorSubject([userLogin, syncState]);\n }), switchMap(([userLogin, syncState]) => __awaiter(this, void 0, void 0, function* () { return [userLogin, yield computeRealmSetHash(syncState)]; })), 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 userLogin\n ? new WSObservable(db.cloud.options.databaseUrl, db.cloud.persistedSyncState.value.serverRevision, realmSetHash, db.cloud.persistedSyncState.value.clientIdentity, messageProducer, db.cloud.webSocketStatus, userLogin.accessToken, userLogin.accessTokenExpiration)\n : from$1([])), catchError((error) => {\n if ((error === null || error === void 0 ? void 0 : error.name) === 'TokenExpiredError') {\n console.debug('WebSocket observable: Token expired. Refreshing token...');\n return of(true).pipe(switchMap(() => __awaiter(this, void 0, void 0, function* () {\n // Refresh access token\n const user = yield db.getCurrentUser();\n const refreshedLogin = yield refreshAccessToken(db.cloud.options.databaseUrl, user);\n // Persist updated access token\n yield db.table('$logins').update(user.userId, {\n accessToken: refreshedLogin.accessToken,\n accessTokenExpiration: refreshedLogin.accessTokenExpiration,\n });\n })), switchMap(() => createObservable()));\n }\n else {\n return throwError(error);\n }\n }), catchError((error) => {\n db.cloud.webSocketStatus.next(\"error\");\n return from$1(waitAndReconnectWhenUserDoesSomething(error)).pipe(switchMap(() => createObservable()));\n }));\n }\n return createObservable().subscribe((msg) => {\n if (msg) {\n console.debug('WS got message', msg);\n db.messageConsumer.enqueue(msg);\n }\n }, (error) => {\n console.error('Oops! The main observable errored!', error);\n }, () => {\n console.error('Oops! The main observable completed!');\n });\n}\n\nfunction isSyncNeeded(db) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n return ((_a = db.cloud.options) === null || _a === void 0 ? void 0 : _a.databaseUrl) && db.cloud.schema\n ? yield sync(db, db.cloud.options, db.cloud.schema, { justCheckIfNeeded: true })\n : false;\n });\n}\n\nconst SECONDS = 1000;\nconst MINUTES = 60 * SECONDS;\n\nconst myId = randomString(16);\n\nconst GUARDED_JOB_HEARTBEAT = 1 * SECONDS;\nconst GUARDED_JOB_TIMEOUT = 1 * MINUTES;\nfunction performGuardedJob(db, jobName, jobsTableName, job, { awaitRemoteJob } = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n // Start working.\n //\n // Check if someone else is working on this already.\n //\n const jobsTable = db.table(jobsTableName);\n function aquireLock() {\n return __awaiter(this, void 0, void 0, function* () {\n const gotTheLock = yield db.transaction('rw!', jobsTableName, () => __awaiter(this, void 0, void 0, function* () {\n const currentWork = yield jobsTable.get(jobName);\n if (!currentWork) {\n // No one else is working. Let's record that we are.\n yield jobsTable.add({\n nodeId: myId,\n started: new Date(),\n heartbeat: new Date()\n }, jobName);\n return true;\n }\n else if (currentWork.heartbeat.getTime() <\n Date.now() - GUARDED_JOB_TIMEOUT) {\n console.warn(`Latest ${jobName} worker seem to have died.\\n`, `The dead job started:`, currentWork.started, `\\n`, `Last heart beat was:`, currentWork.heartbeat, '\\n', `We're now taking over!`);\n // Now, take over!\n yield jobsTable.put({\n nodeId: myId,\n started: new Date(),\n heartbeat: new Date()\n }, jobName);\n return true;\n }\n return false;\n }));\n if (gotTheLock)\n return true;\n // Someone else took the job.\n if (awaitRemoteJob) {\n try {\n const jobDoneObservable = from$1(liveQuery(() => jobsTable.get(jobName))).pipe(timeout(GUARDED_JOB_TIMEOUT), filter((job) => !job)); // Wait til job is not there anymore.\n yield jobDoneObservable.toPromise();\n return false;\n }\n catch (err) {\n if (err.name !== 'TimeoutError') {\n throw err;\n }\n // Timeout stopped us! Try aquire the lock now.\n // It will likely succeed this time unless\n // another client took it.\n return yield aquireLock();\n }\n }\n return false;\n });\n }\n if (yield aquireLock()) {\n // We own the lock entry and can do our job undisturbed.\n // We're not within a transaction, but these type of locks\n // spans over transactions.\n // Start our heart beat during the job.\n // Use setInterval to make sure we are updating heartbeat even during long-lived fetch calls.\n const heartbeat = setInterval(() => {\n jobsTable.update(jobName, (job) => {\n if (job.nodeId === myId) {\n job.heartbeat = new Date();\n }\n });\n }, GUARDED_JOB_HEARTBEAT);\n try {\n return yield job();\n }\n finally {\n // Stop heartbeat\n clearInterval(heartbeat);\n // Remove the persisted job state:\n yield db.transaction('rw!', jobsTableName, () => __awaiter(this, void 0, void 0, function* () {\n const currentWork = yield jobsTable.get(jobName);\n if (currentWork && currentWork.nodeId === myId) {\n yield jobsTable.delete(jobName);\n }\n }));\n }\n }\n });\n}\n\nconst ongoingSyncs = new WeakMap();\nfunction syncIfPossible(db, cloudOptions, cloudSchema, options) {\n const ongoing = ongoingSyncs.get(db);\n if (ongoing) {\n if (ongoing.pull || (options === null || options === void 0 ? void 0 : options.purpose) === 'push') {\n console.debug('syncIfPossible(): returning the ongoing sync promise.');\n return ongoing.promise;\n }\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 // 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 (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 const promise = _syncIfPossible();\n ongoingSyncs.set(db, { promise, pull: (options === null || options === void 0 ? void 0 : options.purpose) !== 'push' });\n return promise;\n function _syncIfPossible() {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n if (db.cloud.isServiceWorkerDB) {\n // We are the dedicated sync SW:\n yield sync(db, cloudOptions, cloudSchema, options);\n }\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 yield performGuardedJob(db, CURRENT_SYNC_WORKER, '$jobs', () => 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 }\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}\n\nfunction LocalSyncWorker(db, cloudOptions, cloudSchema) {\n let localSyncEventSubscription = null;\n //let syncHandler: ((event: Event) => void) | null = null;\n //let periodicSyncHandler: ((event: Event) => void) | null = null;\n let cancelToken = { cancelled: false };\n function syncAndRetry(purpose, retryNum = 1) {\n // Use setTimeout() to get onto a clean stack and\n // break free from possible active transaction:\n setTimeout(() => {\n syncIfPossible(db, cloudOptions, cloudSchema, {\n cancelToken,\n retryImmediatelyOnFetchError: true,\n purpose,\n }).catch((e) => {\n console.error('error in syncIfPossible()', e);\n if (cancelToken.cancelled) {\n stop();\n }\n else if (retryNum < 3) {\n // Mimic service worker sync event: retry 3 times\n // * first retry after 5 minutes\n // * second retry 15 minutes later\n setTimeout(() => syncAndRetry(purpose, retryNum + 1), [0, 5, 15][retryNum] * MINUTES);\n }\n });\n }, 0);\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 }\n catch (err) {\n console.error('What-the....', err);\n }\n });\n //setTimeout(()=>db.localSyncEvent.next({}), 5000);\n };\n const stop = () => {\n console.debug('Stopping LocalSyncWorker');\n cancelToken.cancelled = true;\n if (localSyncEventSubscription)\n localSyncEventSubscription.unsubscribe();\n };\n return {\n start,\n stop,\n };\n}\n\nfunction updateSchemaFromOptions(schema, options) {\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}\n\nfunction verifySchema(db) {\n var _a, _b;\n for (const table of db.tables) {\n if ((_b = (_a = db.cloud.schema) === null || _a === void 0 ? void 0 : _a[table.name]) === null || _b === void 0 ? void 0 : _b.markedForSync) {\n if (table.schema.primKey.auto) {\n throw new Dexie.SchemaError(`Table ${table.name} is both autoIncremented and synced. ` +\n `Use db.cloud.configure({unsyncedTables: [${JSON.stringify(table.name)}]}) to blacklist it from sync`);\n }\n if (!table.schema.primKey.keyPath) {\n throw new Dexie.SchemaError(`Table ${table.name} cannot be both synced and outbound. ` +\n `Use db.cloud.configure({unsyncedTables: [${JSON.stringify(table.name)}]}) to blacklist it from sync`);\n }\n }\n }\n}\n\nvar n,l$1,u$1,t$1,o$1,f$1={},e$1=[],c$1=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function s$1(n,l){for(var u in l)n[u]=l[u];return n}function a$1(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$1(l,f,t,o,null)}function v$1(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$1:r};return null==r&&null!=l$1.vnode&&l$1.vnode(f),f}function p$1(n){return n.children}function d$1(n,l){this.props=n,this.context=l;}function _$1(n,l){if(null==l)return n.__?_$1(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?_$1(n):null}function k$1(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$1(n)}}function b$1(n){(!n.__d&&(n.__d=!0)&&t$1.push(n)&&!g$1.__r++||o$1!==l$1.debounceRendering)&&((o$1=l$1.debounceRendering)||setTimeout)(g$1);}function g$1(){for(var n;g$1.__r=t$1.length;)n=t$1.sort(function(n,l){return n.__v.__b-l.__v.__b}),t$1=[],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$1({},t)).__v=t.__v+1,j$1(r,t,i,l.__n,void 0!==r.ownerSVGElement,null!=t.__h?[o]:null,u,null==o?_$1(t):o,t.__h),z$1(u,t),t.__e!=o&&k$1(t)));});}function w$1(n,l,u,i,t,o,r,c,s,a){var h,y,d,k,b,g,w,x=i&&i.__k||e$1,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$1(null,k,null,null,k):Array.isArray(k)?v$1(p$1,{children:k},null,null,null):k.__b>0?v$1(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$1(n,k,d=d||f$1,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$1(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=_$1(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=_$1(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$1(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$1(i,l,u):A(u,i,i,t,i.__e,l));return 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$1.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$1.event?l$1.event(n):n);}function T(n){this.l[n.type+!0](l$1.event?l$1.event(n):n);}function j$1(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$1.__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$1(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$1({},h.__s)),s$1(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$1.__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$1(s$1({},t),h.getChildContext())),v||null==h.getSnapshotBeforeUpdate||(k=h.getSnapshotBeforeUpdate(y,_)),$=null!=a&&a.type===p$1&&null==a.key?a.props.children:a,w$1(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$1.diffed)&&a(u);}catch(n){u.__v=null,(c||null!=r)&&(u.__e=e,u.__h=!!c,r[r.indexOf(e)]=null),l$1.__e(n,u,i);}}function z$1(n,u){l$1.__c&&l$1.__c(u,n),n.some(function(u){try{n=u.__h,u.__h=[],n.some(function(n){n.call(u);});}catch(n){l$1.__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$1).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$1(l,Array.isArray(k)?k:[k],u,i,t,o&&\"foreignObject\"!==d,r,e,r?r[0]:i.__k&&_$1(i,0),c),null!=r)for(k=r.length;k--;)null!=r[k]&&a$1(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$1.__e(n,i);}}function N(n,u,i){var t,o;if(l$1.unmount&&l$1.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$1.__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$1(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$1.__&&l$1.__(u,i),r=(o=\"function\"==typeof t)?null:t&&t.__k||i.__k,e=[],j$1(i,u=(!o&&t||i).__k=h(p$1,null,[u]),r||f$1,f$1,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$1(e,u);}n=e$1.slice,l$1={__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$1=0,d$1.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=s$1({},this.state),\"function\"==typeof n&&(n=n(s$1({},u),this.props)),n&&s$1(u,n),null!=n&&this.__v&&(l&&this.__h.push(l),b$1(this));},d$1.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),b$1(this));},d$1.prototype.render=p$1,t$1=[],g$1.__r=0;\n\nconst Styles = {\n Error: {\n color: \"red\",\n },\n Alert: {\n error: {\n color: \"red\"\n },\n warning: {\n color: \"yellow\"\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 },\n Input: {\n height: \"35px\",\n width: \"17em\",\n borderColor: \"#ccf4\",\n outline: \"none\",\n fontSize: \"17pt\",\n padding: \"8px\"\n }\n};\n\nfunction Dialog({ children, className }) {\n return (h(\"div\", { className: className },\n h(\"div\", { style: Styles.Darken }),\n h(\"div\", { style: Styles.DialogOuter },\n h(\"div\", { style: Styles.DialogInner }, children))));\n}\n\nvar t,r,u,i,o=0,c=[],f=[],e=l$1.__b,a=l$1.__r,v=l$1.diffed,l=l$1.__c,m=l$1.unmount;function d(t,u){l$1.__h&&l$1.__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 s(u,i){var o=d(t++,4);!l$1.__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 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 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=[],l$1.__e(r,t.__v);}}l$1.__b=function(n){r=null,e&&e(n);},l$1.__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;},l$1.diffed=function(t){v&&v(t);var o=t.__c;o&&o.__H&&(o.__H.__h.length&&(1!==c.push(o)&&i===l$1.requestAnimationFrame||((i=l$1.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;},l$1.__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=[],l$1.__e(u,t.__v);}}),l&&l(t,r);},l$1.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&&l$1.__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}\n\nfunction resolveText({ message, messageCode, messageParams }) {\n return message.replace(/\\{\\w+\\}/ig, n => messageParams[n.substr(1, n.length - 2)]);\n}\n\nfunction LoginDialog({ title, alerts, fields, onCancel, onSubmit, }) {\n const [params, setParams] = p({});\n const firstFieldRef = _(null);\n s(() => { var _a; return (_a = firstFieldRef.current) === null || _a === void 0 ? void 0 : _a.focus(); }, []);\n return (h(Dialog, { className: \"dxc-login-dlg\" },\n h(p$1, null,\n h(\"h3\", { style: Styles.WindowHeader }, title),\n alerts.map((alert) => (h(\"p\", { style: Styles.Alert[alert.type] }, resolveText(alert)))),\n h(\"form\", { onSubmit: ev => {\n ev.preventDefault();\n onSubmit(params);\n } }, Object.entries(fields).map(([fieldName, { type, label, placeholder }], idx) => (h(\"label\", { style: Styles.Label },\n label ? `${label}: ` : '',\n h(\"input\", { ref: idx === 0 ? firstFieldRef : undefined, type: type, name: fieldName, autoComplete: \"on\", style: Styles.Input, autoFocus: true, placeholder: placeholder, value: params[fieldName] || '', onInput: (ev) => { var _a; return setParams(Object.assign(Object.assign({}, params), { [fieldName]: valueTransformer(type, (_a = ev.target) === null || _a === void 0 ? void 0 : _a['value']) })); } })))))),\n h(\"div\", { style: Styles.ButtonsDiv },\n h(\"button\", { type: \"submit\", style: Styles.Button, onClick: () => onSubmit(params) }, \"Submit\"),\n h(\"button\", { style: Styles.Button, onClick: onCancel }, \"Cancel\"))));\n}\nfunction valueTransformer(type, value) {\n switch (type) {\n case \"email\": return value.toLowerCase();\n case \"otp\": return value.toUpperCase();\n default: return value;\n }\n}\n\nclass LoginGui extends d$1 {\n constructor(props) {\n super(props);\n this.observer = (userInteraction) => this.setState({ userInteraction });\n this.state = { userInteraction: undefined };\n }\n componentDidMount() {\n this.subscription = from$1(this.props.db.cloud.userInteraction).subscribe(this.observer);\n }\n componentWillUnmount() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n delete this.subscription;\n }\n }\n render(props, { userInteraction }) {\n if (!userInteraction)\n return null;\n //if (props.db.cloud.userInteraction.observers.length > 1) return null; // Someone else subscribes.\n return h(LoginDialog, Object.assign({}, userInteraction));\n }\n}\nfunction setupDefaultGUI(db) {\n let closed = false;\n const el = document.createElement('div');\n if (document.body) {\n document.body.appendChild(el);\n P(h(LoginGui, { db: db.vip }), el);\n }\n else {\n addEventListener('DOMContentLoaded', () => {\n if (!closed) {\n document.body.appendChild(el);\n P(h(LoginGui, { db: db.vip }), el);\n }\n });\n }\n return {\n unsubscribe() {\n try {\n el.remove();\n }\n catch (_a) { }\n closed = true;\n },\n get closed() {\n return closed;\n }\n };\n}\n// TODO:\n/*\n * Gjort klart allt kring user interaction förutom att mounta default-ui på ett element.\n * Också att kolla först om nån annan subscribar och i så fall inte göra nåt.\n*/\n\nfunction computeSyncState(db) {\n let _prevStatus = db.cloud.webSocketStatus.value;\n const lazyWebSocketStatus = db.cloud.webSocketStatus.pipe(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 // 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 // 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 return combineLatest([\n lazyWebSocketStatus,\n db.syncStateChangedEvent.pipe(startWith({ phase: 'initial' })),\n userIsReallyActive\n ]).pipe(map(([status, syncState, userIsActive]) => {\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 if (!userIsActive) {\n adjustedStatus = 'disconnected';\n }\n const retState = {\n phase,\n error,\n progress,\n status: isOnline ? adjustedStatus : 'offline',\n };\n return retState;\n }));\n}\n\nfunction associate(factory) {\n const wm = new WeakMap();\n return (x) => {\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\nfunction createSharedValueObservable(o, defaultValue) {\n let currentValue = defaultValue;\n let shared = from$1(o).pipe(map$1((x) => (currentValue = x)), share({ resetOnRefCountZero: () => timer$1(1000) }));\n const rv = new Observable$1((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 });\n rv.getValue = () => currentValue;\n return rv;\n}\n\nconst getGlobalRolesObservable = associate((db) => {\n return createSharedValueObservable(liveQuery(() => db.roles\n .where({ realmId: 'rlm-public' })\n .toArray()\n .then((roles) => {\n const rv = {};\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\nconst getCurrentUserEmitter = associate((db) => new BehaviorSubject(UNAUTHORIZED_USER));\n\nconst getInternalAccessControlObservable = associate((db) => {\n return createSharedValueObservable(getCurrentUserEmitter(db._novip).pipe(switchMap((currentUser) => liveQuery(() => db.transaction('r', 'realms', 'members', () => Promise.all([\n db.members.where({ userId: currentUser.userId }).toArray(),\n db.realms.toArray(),\n currentUser.userId,\n ]).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 selfMembers: [],\n realms: [],\n get userId() {\n return db.cloud.currentUserId;\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\nfunction mapValueObservable(o, mapper) {\n let currentValue;\n const rv = o.pipe(map$1((x) => (currentValue = mapper(x))));\n rv.getValue = () => currentValue !== undefined\n ? currentValue\n : (currentValue = mapper(o.getValue()));\n return rv;\n}\n\n// TODO: Move to dexie-cloud-common\nfunction mergePermissions(...permissions) {\n if (permissions.length === 0)\n return {};\n const reduced = permissions.reduce((result, next) => {\n const ret = Object.assign({}, result);\n for (const [verb, rights] of Object.entries(next)) {\n if (verb in ret && ret[verb]) {\n if (ret[verb] === '*')\n continue;\n if (rights === '*') {\n ret[verb] = '*';\n }\n else if (Array.isArray(rights) && Array.isArray(ret[verb])) {\n // Both are arrays (verb is 'add' or 'manage')\n const r = ret;\n const retVerb = r[verb]; // \"!\" because Array.isArray(ret[verb])\n r[verb] = [...new Set([...retVerb, ...rights])];\n }\n else if (typeof rights === 'object' &&\n rights &&\n typeof ret[verb] === 'object') {\n // Both are objects (verb is 'update')\n const mergedRights = ret[verb]; // because we've checked that typeof ret[verb] === 'object' and earlier that not ret[verb] === '*'.\n for (const [tableName, tableRights] of Object.entries(rights)) {\n if (mergedRights[tableName] === '*')\n continue;\n if (tableRights === '*') {\n mergedRights[tableName] = '*';\n }\n else if (Array.isArray(mergedRights[tableName]) &&\n Array.isArray(tableRights)) {\n mergedRights[tableName] = [\n ...new Set([...mergedRights[tableName], ...tableRights]),\n ];\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\nconst getPermissionsLookupObservable = associate((db) => {\n const o = createSharedValueObservable(combineLatest([\n getInternalAccessControlObservable(db._novip),\n getGlobalRolesObservable(db._novip),\n ]).pipe(map(([{ selfMembers, realms, userId }, globalRoles]) => ({\n selfMembers,\n realms,\n userId,\n globalRoles,\n }))), {\n selfMembers: [],\n realms: [],\n userId: UNAUTHORIZED_USER.userId,\n globalRoles: {},\n });\n return mapValueObservable(o, ({ selfMembers, realms, userId, globalRoles }) => {\n const rv = realms\n .map((realm) => {\n const selfRealmMembers = selfMembers.filter((m) => m.realmId === realm.realmId);\n const directPermissionSets = selfRealmMembers\n .map((m) => m.permissions)\n .filter((p) => p);\n const rolePermissionSets = flatten(selfRealmMembers.map((m) => m.roles).filter((roleName) => roleName))\n .map((role) => globalRoles[role])\n .filter((role) => role)\n .map((role) => role.permissions);\n return Object.assign(Object.assign({}, realm), { permissions: realm.owner === userId\n ? { manage: '*' }\n : mergePermissions(...directPermissionSets, ...rolePermissionSets) });\n })\n .reduce((p, c) => (Object.assign(Object.assign({}, p), { [c.realmId]: c })), {\n [userId]: {\n realmId: userId,\n owner: userId,\n name: userId,\n permissions: { manage: '*' },\n },\n });\n return rv;\n });\n});\n\nclass PermissionChecker {\n constructor(permissions, tableName, isOwner) {\n this.permissions = permissions || {};\n this.tableName = tableName;\n this.isOwner = isOwner;\n }\n add(...tableNames) {\n var _a;\n // If user can manage the whole realm, return true.\n if (this.permissions.manage === '*')\n return true;\n // If user can manage given table in realm, return true\n if ((_a = this.permissions.manage) === null || _a === void 0 ? void 0 : _a.includes(this.tableName))\n return true;\n // If user can add any type, return true\n if (this.permissions.add === '*')\n return true;\n // If user can add objects into given table names in the realm, return true\n if (tableNames.every((tableName) => { var _a; return (_a = this.permissions.add) === null || _a === void 0 ? void 0 : _a.includes(tableName); })) {\n return true;\n }\n return false;\n }\n update(...props) {\n var _a, _b;\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 === '*')\n return true;\n // If user can manage given table in realm, return true\n if ((_a = this.permissions.manage) === null || _a === void 0 ? void 0 : _a.includes(this.tableName))\n 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 = (_b = this.permissions.update) === null || _b === void 0 ? void 0 : _b[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 // Explicitely listed properties to allow updates on:\n return props.every((prop) => tablePermissions === null || tablePermissions === void 0 ? void 0 : tablePermissions.some((permittedProp) => permittedProp === prop || (permittedProp === '*' && prop !== 'owner')));\n }\n delete() {\n var _a;\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 === '*')\n return true;\n // If user can manage given table in realm, return true\n if ((_a = this.permissions.manage) === null || _a === void 0 ? void 0 : _a.includes(this.tableName))\n return true;\n return false;\n }\n}\n\nfunction permissions(dexie, obj, tableName) {\n if (!obj)\n throw new TypeError(`Cannot check permissions of undefined or null. A Dexie Cloud object with realmId and owner expected.`);\n const { owner, realmId } = obj;\n if (!tableName) {\n if (typeof obj.table !== 'function') {\n throw new TypeError(`Missing 'table' argument to permissions and table could not be extracted from entity`);\n }\n tableName = obj.table();\n }\n const source = getPermissionsLookupObservable(dexie);\n const mapper = (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({}, tableName, !owner || owner === dexie.cloud.currentUserId);\n return new PermissionChecker(realm.permissions, tableName, realmId === dexie.cloud.currentUserId || owner === dexie.cloud.currentUserId);\n };\n const o = source.pipe(map(mapper));\n o.getValue = () => mapper(source.getValue());\n return o;\n}\n\nconst getInvitesObservable = associate((db) => {\n const membersByEmail = getCurrentUserEmitter(db._novip).pipe(switchMap((currentUser) => liveQuery(() => db.members.where({ email: currentUser.email || '' }).toArray())));\n const permissions = getPermissionsLookupObservable(db._novip);\n const accessControl = getInternalAccessControlObservable(db._novip);\n return createSharedValueObservable(combineLatest([membersByEmail, accessControl, permissions]).pipe(map(([membersByEmail, accessControl, realmLookup]) => {\n const reducer = (result, m) => (Object.assign(Object.assign({}, result), { [m.id]: Object.assign(Object.assign({}, m), { realm: realmLookup[m.realmId] }) }));\n const emailMembersById = membersByEmail.reduce(reducer, {});\n const membersById = accessControl.selfMembers.reduce(reducer, emailMembersById);\n return Object.values(membersById)\n .filter((invite) => !invite.accepted && !invite.rejected)\n .map((invite) => (Object.assign(Object.assign({}, invite), { accept() {\n return __awaiter(this, void 0, void 0, function* () {\n yield db.members.update(invite.id, { accepted: new Date() });\n });\n },\n reject() {\n return __awaiter(this, void 0, void 0, function* () {\n yield db.members.update(invite.id, { rejected: new Date() });\n });\n } })));\n })), []);\n});\n\nfunction getTiedRealmId(objectId) {\n return 'rlm~' + objectId;\n}\nfunction getTiedObjectId(realmId) {\n return realmId.startsWith('rlm~') ? realmId.substr(4) : null;\n}\n\nconst DEFAULT_OPTIONS = {\n nameSuffix: true,\n};\nfunction dexieCloud(dexie) {\n const origIdbName = dexie.name;\n //\n //\n //\n const currentUserEmitter = getCurrentUserEmitter(dexie);\n const subscriptions = [];\n let configuredProgramatically = false;\n // local sync worker - used when there's no service worker.\n let localSyncWorker = null;\n dexie.on('ready', (dexie) => __awaiter(this, void 0, void 0, function* () {\n try {\n yield onDbReady(dexie);\n }\n catch (error) {\n console.error(error);\n // Make sure to succeed with database open even if network is down.\n }\n }), true // true = sticky\n );\n /** Void starting subscribers after a close has happened. */\n let closed = false;\n function throwIfClosed() {\n if (closed)\n throw new Dexie.DatabaseClosedError();\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 const syncComplete = new Subject();\n dexie.cloud = {\n version: '{version}',\n options: Object.assign({}, DEFAULT_OPTIONS),\n schema: null,\n get currentUserId() {\n return currentUserEmitter.value.userId || UNAUTHORIZED_USER.userId;\n },\n currentUser: currentUserEmitter,\n syncState: new BehaviorSubject({\n phase: 'initial',\n status: 'not-started',\n }),\n events: {\n syncComplete,\n },\n persistedSyncState: new BehaviorSubject(undefined),\n userInteraction: new BehaviorSubject(undefined),\n webSocketStatus: new BehaviorSubject('not-started'),\n login(hint) {\n return __awaiter(this, void 0, void 0, function* () {\n const db = DexieCloudDB(dexie);\n yield db.cloud.sync();\n yield login(db, hint);\n });\n },\n invites: getInvitesObservable(dexie),\n roles: getGlobalRolesObservable(dexie),\n configure(options) {\n options = dexie.cloud.options = Object.assign(Object.assign({}, dexie.cloud.options), options);\n configuredProgramatically = true;\n if (options.databaseUrl && options.nameSuffix) {\n // @ts-ignore\n dexie.name = `${origIdbName}-${getDbNameFromDbUrl(options.databaseUrl)}`;\n DexieCloudDB(dexie).reconfigure(); // Update observable from new dexie.name\n }\n updateSchemaFromOptions(dexie.cloud.schema, dexie.cloud.options);\n },\n sync({ wait, purpose } = { wait: true, purpose: 'push' }) {\n return __awaiter(this, void 0, void 0, function* () {\n if (wait === undefined)\n wait = true;\n const db = DexieCloudDB(dexie);\n if (purpose === 'pull') {\n const syncState = db.cloud.persistedSyncState.value;\n triggerSync(db, purpose);\n if (wait) {\n const newSyncState = yield db.cloud.persistedSyncState\n .pipe(filter((newSyncState) => (newSyncState === null || newSyncState === void 0 ? void 0 : newSyncState.timestamp) != null &&\n (!syncState || newSyncState.timestamp > syncState.timestamp)), take(1))\n .toPromise();\n if (newSyncState === null || newSyncState === void 0 ? void 0 : newSyncState.error) {\n throw new Error(`Sync error: ` + newSyncState.error);\n }\n }\n }\n else if (yield 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 yield from$1(liveQuery(() => __awaiter(this, void 0, void 0, function* () {\n const syncNeeded = yield isSyncNeeded(db);\n const newSyncState = yield db.getPersistedSyncState();\n if ((newSyncState === null || newSyncState === void 0 ? void 0 : newSyncState.timestamp) !== (syncState === null || syncState === void 0 ? void 0 : syncState.timestamp) &&\n (newSyncState === null || newSyncState === void 0 ? void 0 : newSyncState.error))\n throw new Error(`Sync error: ` + newSyncState.error);\n return syncNeeded;\n })))\n .pipe(filter((isNeeded) => !isNeeded), take(1))\n .toPromise();\n console.debug('Done waiting for sync completion because we have nothing to push anymore');\n }\n }\n });\n },\n permissions(obj, tableName) {\n return permissions(dexie._novip, obj, tableName);\n },\n };\n dexie.Version.prototype['_parseStoresSpec'] = Dexie.override(dexie.Version.prototype['_parseStoresSpec'], (origFunc) => overrideParseStoresSpec(origFunc, dexie));\n dexie.Table.prototype.newId = function ({ colocateWith } = {}) {\n const shardKey = colocateWith && colocateWith.substr(colocateWith.length - 3);\n return generateKey(dexie.cloud.schema[this.name].idPrefix || '', shardKey);\n };\n dexie.Table.prototype.idPrefix = function () {\n var _a, _b;\n return ((_b = (_a = this.db.cloud.schema) === null || _a === void 0 ? void 0 : _a[this.name]) === null || _b === void 0 ? void 0 : _b.idPrefix) || '';\n };\n dexie.use(createMutationTrackingMiddleware({\n currentUserObservable: dexie.cloud.currentUser,\n db: DexieCloudDB(dexie),\n }));\n dexie.use(createImplicitPropSetterMiddleware(DexieCloudDB(dexie)));\n dexie.use(createIdGenerationMiddleware(DexieCloudDB(dexie)));\n function onDbReady(dexie) {\n var _a, _b, _c, _d, _e, _f, _g;\n return __awaiter(this, void 0, void 0, function* () {\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 (!((_a = db.cloud.options) === null || _a === void 0 ? void 0 : _a.customLoginGui)) {\n subscriptions.push(setupDefaultGUI(dexie));\n }\n }\n if (!db.cloud.isServiceWorkerDB) {\n subscriptions.push(computeSyncState(db).subscribe(dexie.cloud.syncState));\n }\n // Forward db.syncCompleteEvent to be publicly consumable via db.cloud.events.syncComplete:\n subscriptions.push(db.syncCompleteEvent.subscribe(syncComplete));\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 = 'serviceWorker' in navigator\n ? yield navigator.serviceWorker.getRegistrations()\n : [];\n const initiallySynced = yield db.transaction('rw', db.$syncState, () => __awaiter(this, void 0, void 0, function* () {\n var _h, _j;\n const { options, schema } = db.cloud;\n const [persistedOptions, persistedSchema, persistedSyncState] = yield 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 }\n else if (!persistedOptions ||\n JSON.stringify(persistedOptions) !== JSON.stringify(options)) {\n // Update persisted options:\n if (!options)\n throw new Error(`Internal error`); // options cannot be null if configuredProgramatically is set.\n const newPersistedOptions = Object.assign({}, options);\n delete newPersistedOptions.fetchTokens;\n yield db.$syncState.put(newPersistedOptions, 'options');\n }\n if (((_h = db.cloud.options) === null || _h === void 0 ? void 0 : _h.tryUseServiceWorker) &&\n 'serviceWorker' in navigator &&\n swRegistrations.length > 0 &&\n !DISABLE_SERVICEWORKER_STRATEGY) {\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 }\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 (((_j = db.cloud.options) === null || _j === void 0 ? void 0 : _j.tryUseServiceWorker) &&\n !db.cloud.isServiceWorkerDB) {\n console.debug('dexie-cloud-addon: Not using service worker.', 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 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 }\n else if (!persistedSchema ||\n JSON.stringify(persistedSchema) !== JSON.stringify(schema)) {\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] = Object.assign({}, tblSchema);\n }\n else {\n newTblSchema.markedForSync = tblSchema.markedForSync;\n tblSchema.deleted = newTblSchema.deleted;\n newTblSchema.generatedGlobalId = tblSchema.generatedGlobalId;\n }\n }\n yield db.$syncState.put(newPersistedSchema, 'schema');\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 === null || persistedSyncState === void 0 ? void 0 : persistedSyncState.initiallySynced;\n }));\n if (initiallySynced) {\n db.setInitiallySynced(true);\n }\n verifySchema(db);\n if (((_b = db.cloud.options) === null || _b === void 0 ? void 0 : _b.databaseUrl) && !initiallySynced) {\n yield performInitialSync(db, db.cloud.options, db.cloud.schema);\n db.setInitiallySynced(true);\n }\n // Manage CurrentUser observable:\n throwIfClosed();\n if (!db.cloud.isServiceWorkerDB) {\n subscriptions.push(liveQuery(() => db.getCurrentUser()).subscribe(currentUserEmitter));\n // Manage PersistendSyncState observable:\n subscriptions.push(liveQuery(() => db.getPersistedSyncState()).subscribe(db.cloud.persistedSyncState));\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 yield combineLatest([\n currentUserEmitter.pipe(skip(1), take(1)),\n db.cloud.persistedSyncState.pipe(skip(1), take(1)),\n ]).toPromise();\n }\n // HERE: If requireAuth, do athentication now.\n let changedUser = false;\n if ((_c = db.cloud.options) === null || _c === void 0 ? void 0 : _c.requireAuth) {\n changedUser = yield login(db);\n }\n if (localSyncWorker)\n localSyncWorker.stop();\n localSyncWorker = null;\n throwIfClosed();\n if (db.cloud.usingServiceWorker && ((_d = db.cloud.options) === null || _d === void 0 ? void 0 : _d.databaseUrl)) {\n registerSyncEvent(db, changedUser ? 'pull' : 'push').catch(() => { });\n registerPeriodicSyncEvent(db).catch(() => { });\n }\n else if (((_e = db.cloud.options) === null || _e === void 0 ? void 0 : _e.databaseUrl) &&\n db.cloud.schema &&\n !db.cloud.isServiceWorkerDB) {\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 // Listen to online event and do sync.\n throwIfClosed();\n if (!db.cloud.isServiceWorkerDB) {\n subscriptions.push(fromEvent(self, 'online').subscribe(() => {\n console.debug('online!');\n db.syncStateChangedEvent.next({\n phase: 'not-in-sync',\n });\n triggerSync(db, 'push');\n }), fromEvent(self, 'offline').subscribe(() => {\n console.debug('offline!');\n db.syncStateChangedEvent.next({\n phase: 'offline',\n });\n }));\n }\n // Connect WebSocket unless we\n if (((_f = db.cloud.options) === null || _f === void 0 ? void 0 : _f.databaseUrl) &&\n !((_g = db.cloud.options) === null || _g === void 0 ? void 0 : _g.disableWebSocket) &&\n !IS_SERVICE_WORKER) {\n subscriptions.push(connectWebSocket(db));\n }\n });\n }\n}\ndexieCloud.version = '{version}';\nDexie.Cloud = dexieCloud;\n\nexport { dexieCloud as default, dexieCloud, getTiedObjectId, getTiedRealmId };\n//# sourceMappingURL=dexie-cloud-addon.js.map\n"],"names":["extendStatics","__extends","__awaiter","__generator","__spreadArray","Dexie","__extends_1","__spreadArray_1","Observable$1","cmp","BehaviorSubject","Subject","of","fromEvent","merge","Subscription$1","__generator_1","from$1","throwError","liveQuery","combineLatest","map$1","share","timer$1"],"mappings":"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AAG,EAAE,GAAG;IACR,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,CAAC,EAAE,GAAG;IACN,IAAA,C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"}