@ztimson/momentum 0.20.0 → 0.27.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +46 -33
- package/dist/actions.d.ts +1 -2
- package/dist/actions.js +70 -0
- package/dist/api.d.ts +1 -2
- package/dist/api.js +40 -0
- package/dist/auth.d.ts +17 -29
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +164 -0
- package/dist/core.js +2 -0
- package/dist/data.d.ts +2 -3
- package/dist/data.js +48 -0
- package/dist/email.d.ts +1 -2
- package/dist/email.js +22 -0
- package/dist/groups.d.ts +10 -3
- package/dist/groups.d.ts.map +1 -1
- package/dist/groups.js +51 -0
- package/dist/index.js +31 -0
- package/dist/index.mjs +1 -0
- package/dist/logger.d.ts +0 -1
- package/dist/logger.js +59 -0
- package/dist/momentum.d.ts +9 -10
- package/dist/momentum.js +74 -0
- package/dist/pdf.d.ts +1 -2
- package/dist/pdf.js +33 -0
- package/dist/settings.d.ts +1 -2
- package/dist/settings.js +48 -0
- package/dist/sockets.d.ts +0 -1
- package/dist/sockets.js +54 -0
- package/dist/static.d.ts +2 -3
- package/dist/static.js +33 -0
- package/dist/storage.d.ts +2 -3
- package/dist/storage.js +99 -0
- package/dist/users.d.ts +17 -3
- package/dist/users.d.ts.map +1 -1
- package/dist/users.js +76 -0
- package/package.json +13 -16
- package/dist/momentum.cjs +0 -4
- package/dist/momentum.cjs.map +0 -1
- package/dist/momentum.mjs +0 -1304
- package/dist/momentum.mjs.map +0 -1
package/dist/momentum.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"momentum.cjs","sources":["../node_modules/@ztimson/utils/dist/utils.mjs","../src/api.ts","../node_modules/tslib/tslib.es6.mjs","../node_modules/rxjs/dist/esm5/internal/util/isFunction.js","../node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js","../node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js","../node_modules/rxjs/dist/esm5/internal/util/arrRemove.js","../node_modules/rxjs/dist/esm5/internal/Subscription.js","../node_modules/rxjs/dist/esm5/internal/config.js","../node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js","../node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js","../node_modules/rxjs/dist/esm5/internal/util/noop.js","../node_modules/rxjs/dist/esm5/internal/util/errorContext.js","../node_modules/rxjs/dist/esm5/internal/Subscriber.js","../node_modules/rxjs/dist/esm5/internal/symbol/observable.js","../node_modules/rxjs/dist/esm5/internal/util/identity.js","../node_modules/rxjs/dist/esm5/internal/util/pipe.js","../node_modules/rxjs/dist/esm5/internal/Observable.js","../node_modules/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js","../node_modules/rxjs/dist/esm5/internal/Subject.js","../node_modules/rxjs/dist/esm5/internal/BehaviorSubject.js","../src/actions.ts","../src/auth.ts","../src/data.ts","../src/email.ts","../src/groups.ts","../src/logger.ts","../src/pdf.ts","../src/sockets.ts","../src/storage.ts","../src/users.ts","../src/settings.ts","../src/static.ts","../src/momentum.ts"],"sourcesContent":["var k = Object.defineProperty;\nvar G = (n, e, t) => e in n ? k(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t;\nvar u = (n, e, t) => (G(n, typeof e != \"symbol\" ? e + \"\" : e, t), t);\nfunction j(n, e = !1) {\n if (n == null)\n throw new Error(\"Cannot clean a NULL value\");\n return Array.isArray(n) ? n = n.filter((t) => t != null) : Object.entries(n).forEach(([t, r]) => {\n (e && r === void 0 || !e && r == null) && delete n[t];\n }), n;\n}\nfunction tt(n) {\n return JSON.parse(JSON.stringify(n));\n}\nfunction S(n, e, t) {\n if (!(n == null || !e))\n return e.split(/[.[\\]]/g).filter((r) => r.length).reduce((r, o, s, i) => {\n if ((o[0] == '\"' || o[0] == \"'\") && (o = o.slice(1, -1)), !(r != null && r.hasOwnProperty(o))) {\n if (t == null)\n return;\n r[o] = {};\n }\n return t !== void 0 && s == i.length - 1 ? r[o] = t : r[o];\n }, n);\n}\nfunction M(n, e, t = {}) {\n if (typeof n == \"object\" && !Array.isArray(n)) {\n for (const r of Object.keys(n)) {\n const o = e ? e + \".\" + r : r;\n typeof n[r] == \"object\" ? M(n[r], o, t) : t[o] = n[r];\n }\n return t;\n }\n}\nfunction L(n, e, t = !1) {\n if (n == null)\n return t;\n if (Array.isArray(e))\n return e.findIndex((o, s) => !L(n[s], e[s], t)) == -1;\n const r = typeof e;\n return r != typeof n ? !1 : r == \"object\" ? Object.keys(e).find((o) => !L(n[o], e[o], t)) == null : r == \"function\" ? n.toString() == e.toString() : n == e;\n}\nfunction A(n, e) {\n const t = typeof n, r = typeof e;\n return t != \"object\" || n == null || r != \"object\" || e == null ? t == \"function\" && r == \"function\" ? n.toString() == e.toString() : n === e : Object.keys(n).length != Object.keys(e).length ? !1 : Object.keys(n).every((s) => A(n[s], e[s]));\n}\nfunction et(n, e) {\n e.forEach((t) => {\n Object.getOwnPropertyNames(t.prototype).forEach((r) => {\n Object.defineProperty(\n n.prototype,\n r,\n Object.getOwnPropertyDescriptor(t.prototype, r) || /* @__PURE__ */ Object.create(null)\n );\n });\n });\n}\nfunction nt(n, e) {\n let t = [];\n return JSON.parse(JSON.stringify(n, (r, o) => {\n if (typeof o == \"object\" && o !== null) {\n if (t.includes(o))\n return;\n t.push(o);\n }\n return o;\n }, e));\n}\nfunction rt(n, e) {\n return n.indexOf(e) === -1 && n.push(e), n;\n}\nfunction ot(n, e) {\n return U([\n ...n.filter((t) => !e.includes((r) => A(t, r))),\n ...e.filter((t) => !n.includes((r) => A(t, r)))\n ]);\n}\nfunction st(n) {\n return function(e, t) {\n const r = S(e, n), o = S(t, n);\n return typeof r != \"string\" || typeof o != \"string\" ? 1 : r.toLowerCase().localeCompare(o.toLowerCase());\n };\n}\nfunction P(n, e = []) {\n return n.forEach((t) => Array.isArray(t) ? P(t, e) : e.push(t)), e;\n}\nfunction it(n, e = !1) {\n return function(t, r) {\n const o = S(t, n), s = S(r, n);\n return typeof o == \"number\" && typeof s == \"number\" ? (e ? -1 : 1) * (o - s) : o > s ? e ? -1 : 1 : o < s ? e ? 1 : -1 : 0;\n };\n}\nfunction ct(n, e) {\n return (t) => A(t[n], e);\n}\nfunction U(n) {\n for (let e = n.length - 1; e >= 0; e--)\n n.slice(0, e).find((t) => A(t, n[e])) && n.splice(e, 1);\n return n;\n}\nfunction ut(n) {\n return Array.isArray(n) ? n : [n];\n}\nclass w extends Array {\n get size() {\n return this.length;\n }\n constructor(e = []) {\n super(), e != null && e.forEach && e.forEach((t) => this.add(t));\n }\n add(e) {\n this.has(e) || this.push(e);\n }\n delete(e) {\n const t = this.indexOf(e);\n t != -1 && this.slice(t, 1);\n }\n difference(e) {\n return new w(this.reduce((t, r) => (e.has(r) || t.push(r), t), []));\n }\n has(e) {\n return this.indexOf(e) != -1;\n }\n intersection(e) {\n return new w(this.reduce((t, r) => (e.has(r) && t.push(r), t), []));\n }\n isDisjointFrom(e) {\n return this.intersection(e).size == 0;\n }\n isSubsetOf(e) {\n return this.findIndex((t) => !e.has(t)) == -1;\n }\n isSuperset(e) {\n return e.findIndex((t) => !this.has(t)) == -1;\n }\n symmetricDifference(e) {\n return new w([...this.difference(e), ...e.difference(this)]);\n }\n union(e) {\n return new w([...this, ...e]);\n }\n}\nfunction at(n, e) {\n const t = document.createElement(\"a\");\n t.href = n, t.download = e, document.body.appendChild(t), t.click(), document.body.removeChild(t);\n}\nclass D {\n constructor() {\n u(this, \"listeners\", {});\n }\n static emit(e, ...t) {\n (this.listeners[\"*\"] || []).forEach((r) => r(e, ...t)), (this.listeners[e.toString()] || []).forEach((r) => r(...t));\n }\n static off(e, t) {\n const r = e.toString();\n this.listeners[r] = (this.listeners[r] || []).filter((o) => o === t);\n }\n static on(e, t) {\n var o;\n const r = e.toString();\n return this.listeners[r] || (this.listeners[r] = []), (o = this.listeners[r]) == null || o.push(t), () => this.off(e, t);\n }\n static once(e, t) {\n return new Promise((r) => {\n const o = this.on(e, (...s) => {\n r(s.length == 1 ? s[0] : s), t && t(...s), o();\n });\n });\n }\n emit(e, ...t) {\n (this.listeners[\"*\"] || []).forEach((r) => r(e, ...t)), (this.listeners[e] || []).forEach((r) => r(...t));\n }\n off(e, t) {\n this.listeners[e] = (this.listeners[e] || []).filter((r) => r === t);\n }\n on(e, t) {\n var r;\n return this.listeners[e] || (this.listeners[e] = []), (r = this.listeners[e]) == null || r.push(t), () => this.off(e, t);\n }\n once(e, t) {\n return new Promise((r) => {\n const o = this.on(e, (...s) => {\n r(s.length == 1 ? s[0] : s), t && t(...s), o();\n });\n });\n }\n}\nu(D, \"listeners\", {});\nclass m extends Error {\n constructor(t, r) {\n super(t);\n u(this, \"_code\");\n r != null && (this._code = r);\n }\n get code() {\n return this._code || this.constructor.code;\n }\n set code(t) {\n this._code = t;\n }\n static from(t) {\n const r = Number(t.statusCode) ?? Number(t.code), o = new this(t.message || t.toString());\n return Object.assign(o, {\n stack: t.stack,\n ...t,\n code: r ?? void 0\n });\n }\n static instanceof(t) {\n return t.constructor.code != null;\n }\n toString() {\n return this.message || super.toString();\n }\n}\nu(m, \"code\", 500);\nclass q extends m {\n constructor(e = \"Bad Request\") {\n super(e);\n }\n static instanceof(e) {\n return e.constructor.code == this.code;\n }\n}\nu(q, \"code\", 400);\nclass Y extends m {\n constructor(e = \"Unauthorized\") {\n super(e);\n }\n static instanceof(e) {\n return e.constructor.code == this.code;\n }\n}\nu(Y, \"code\", 401);\nclass H extends m {\n constructor(e = \"Forbidden\") {\n super(e);\n }\n static instanceof(e) {\n return e.constructor.code == this.code;\n }\n}\nu(H, \"code\", 403);\nclass W extends m {\n constructor(e = \"Not Found\") {\n super(e);\n }\n static instanceof(e) {\n return e.constructor.code == this.code;\n }\n}\nu(W, \"code\", 404);\nclass v extends m {\n constructor(e = \"Internal Server Error\") {\n super(e);\n }\n static instanceof(e) {\n return e.constructor.code == this.code;\n }\n}\nu(v, \"code\", 500);\nconst x = {\n CLEAR: \"\\x1B[0m\",\n BRIGHT: \"\\x1B[1m\",\n DIM: \"\\x1B[2m\",\n UNDERSCORE: \"\\x1B[4m\",\n BLINK: \"\\x1B[5m\",\n REVERSE: \"\\x1B[7m\",\n HIDDEN: \"\\x1B[8m\"\n}, C = {\n BLACK: \"\\x1B[30m\",\n RED: \"\\x1B[31m\",\n GREEN: \"\\x1B[32m\",\n YELLOW: \"\\x1B[33m\",\n BLUE: \"\\x1B[34m\",\n MAGENTA: \"\\x1B[35m\",\n CYAN: \"\\x1B[36m\",\n LIGHT_GREY: \"\\x1B[37m\",\n GREY: \"\\x1B[90m\",\n LIGHT_RED: \"\\x1B[91m\",\n LIGHT_GREEN: \"\\x1B[92m\",\n LIGHT_YELLOW: \"\\x1B[93m\",\n LIGHT_BLUE: \"\\x1B[94m\",\n LIGHT_MAGENTA: \"\\x1B[95m\",\n LIGHT_CYAN: \"\\x1B[96m\",\n WHITE: \"\\x1B[97m\"\n}, lt = {\n BLACK: \"\\x1B[40m\",\n RED: \"\\x1B[41m\",\n GREEN: \"\\x1B[42m\",\n YELLOW: \"\\x1B[43m\",\n BLUE: \"\\x1B[44m\",\n MAGENTA: \"\\x1B[45m\",\n CYAN: \"\\x1B[46m\",\n WHITE: \"\\x1B[47m\",\n GREY: \"\\x1B[100m\"\n};\nvar F = /* @__PURE__ */ ((n) => (n[n.ERROR = 0] = \"ERROR\", n[n.WARN = 1] = \"WARN\", n[n.INFO = 2] = \"INFO\", n[n.LOG = 3] = \"LOG\", n[n.DEBUG = 4] = \"DEBUG\", n))(F || {});\nconst d = class d extends D {\n constructor(e) {\n super(), this.namespace = e;\n }\n pad(e, t, r, o = !1) {\n const s = e.toString(), i = t - s.length;\n if (i <= 0)\n return s;\n const c = Array(~~(i / r.length)).fill(r).join(\"\");\n return o ? s + c : c + s;\n }\n format(...e) {\n const t = /* @__PURE__ */ new Date();\n return `${`${t.getFullYear()}-${t.getMonth() + 1}-${t.getDate()} ${this.pad(t.getHours().toString(), 2, \"0\")}:${this.pad(t.getMinutes().toString(), 2, \"0\")}:${this.pad(t.getSeconds().toString(), 2, \"0\")}.${this.pad(t.getMilliseconds().toString(), 3, \"0\", !0)}`}${this.namespace ? ` [${this.namespace}]` : \"\"} ${e.join(\" \")}`;\n }\n debug(...e) {\n if (d.LOG_LEVEL < 4)\n return;\n const t = this.format(...e);\n d.emit(4, t), console.debug(C.LIGHT_GREY + t + x.CLEAR);\n }\n log(...e) {\n if (d.LOG_LEVEL < 3)\n return;\n const t = this.format(...e);\n d.emit(3, t), console.log(x.CLEAR + t);\n }\n info(...e) {\n if (d.LOG_LEVEL < 2)\n return;\n const t = this.format(...e);\n d.emit(2, t), console.info(C.BLUE + t + x.CLEAR);\n }\n warn(...e) {\n if (d.LOG_LEVEL < 1)\n return;\n const t = this.format(...e);\n d.emit(1, t), console.warn(C.YELLOW + t + x.CLEAR);\n }\n error(...e) {\n if (d.LOG_LEVEL < 0)\n return;\n const t = this.format(...e);\n d.emit(0, t), console.error(C.RED + t + x.CLEAR);\n }\n};\nu(d, \"LOG_LEVEL\", 4);\nlet $ = d;\nfunction ht(n) {\n const e = (c, g) => g < 1e-7 ? c : e(g, ~~(c % g)), t = n.toString().length - 2;\n let r = Math.pow(10, t), o = n * r;\n const s = e(o, r);\n o = ~~(o / s), r = ~~(r / s);\n const i = ~~(o / r);\n return o -= i * r, `${i ? i + \" \" : \"\"}${~~o}/${~~r}`;\n}\nfunction ft(n) {\n let e = n.split(\" \");\n const t = e.length == 2 ? Number(e[0]) : 0;\n return e = e.pop().split(\"/\"), t + Number(e[0]) / Number(e[1]);\n}\nfunction dt(n, e) {\n return n.length - n.replaceAll(e, \"\").length;\n}\nfunction gt(n) {\n return Array(n).fill(null).map(() => Math.round(Math.random() * 15).toString(16)).join(\"\");\n}\nconst N = \"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\", b = \"0123456789\", T = \"~`!@#$%^&*()_-+={[}]|\\\\:;\\\"'<,>.?/\", z = N + b + T;\nfunction pt(n) {\n const e = /(\\+?1)?.*?(\\d{3}).*?(\\d{3}).*?(\\d{4})/g.exec(n);\n if (!e)\n throw new Error(`Number cannot be parsed: ${n}`);\n return `${e[1] ?? \"\"} (${e[2]}) ${e[3]}-${e[4]}`.trim();\n}\nfunction yt(n, e, t) {\n return `${n.slice(0, t)}${e}${n.slice(t + 1)}`;\n}\nfunction Et(n, e, t, r = !0) {\n const o = n.toString(), s = e - o.length;\n if (s <= 0)\n return o;\n const i = Array(~~(s / t.length)).fill(t).join(\"\");\n return r ? i + o : o + i;\n}\nfunction mt(n, e = z) {\n return Array(n).fill(null).map(() => {\n const t = ~~(Math.random() * e.length);\n return e[t];\n }).join(\"\");\n}\nfunction xt(n, e = !1, t = !1, r = !1) {\n if (!e && !t && !r)\n throw new Error(\"Must enable at least one: letters, numbers, symbols\");\n return Array(n).fill(null).map(() => {\n let o;\n do {\n const s = ~~(Math.random() * 3);\n e && s == 0 ? o = N[~~(Math.random() * N.length)] : t && s == 1 ? o = b[~~(Math.random() * b.length)] : r && s == 2 && (o = T[~~(Math.random() * T.length)]);\n } while (!o);\n return o;\n }).join(\"\");\n}\nfunction wt(n, e) {\n if (typeof e == \"string\" && (e = new RegExp(e, \"g\")), !e.global)\n throw new TypeError(\"Regular expression must be global.\");\n let t = [], r;\n for (; (r = e.exec(n)) !== null; )\n t.push(r);\n return t;\n}\nfunction J(n) {\n var e = K(Z(Q(V(n), 8 * n.length)));\n return e.toLowerCase();\n}\nfunction K(n) {\n for (var e, t = \"0123456789ABCDEF\", r = \"\", o = 0; o < n.length; o++)\n e = n.charCodeAt(o), r += t.charAt(e >>> 4 & 15) + t.charAt(15 & e);\n return r;\n}\nfunction V(n) {\n for (var e = Array(n.length >> 2), t = 0; t < e.length; t++)\n e[t] = 0;\n for (t = 0; t < 8 * n.length; t += 8)\n e[t >> 5] |= (255 & n.charCodeAt(t / 8)) << t % 32;\n return e;\n}\nfunction Z(n) {\n for (var e = \"\", t = 0; t < 32 * n.length; t += 8)\n e += String.fromCharCode(n[t >> 5] >>> t % 32 & 255);\n return e;\n}\nfunction Q(n, e) {\n n[e >> 5] |= 128 << e % 32, n[14 + (e + 64 >>> 9 << 4)] = e;\n for (var t = 1732584193, r = -271733879, o = -1732584194, s = 271733878, i = 0; i < n.length; i += 16) {\n var c = t, g = r, B = o, E = s;\n r = f(r = f(r = f(r = f(r = h(r = h(r = h(r = h(r = l(r = l(r = l(r = l(r = a(r = a(r = a(r = a(r, o = a(o, s = a(s, t = a(t, r, o, s, n[i + 0], 7, -680876936), r, o, n[i + 1], 12, -389564586), t, r, n[i + 2], 17, 606105819), s, t, n[i + 3], 22, -1044525330), o = a(o, s = a(s, t = a(t, r, o, s, n[i + 4], 7, -176418897), r, o, n[i + 5], 12, 1200080426), t, r, n[i + 6], 17, -1473231341), s, t, n[i + 7], 22, -45705983), o = a(o, s = a(s, t = a(t, r, o, s, n[i + 8], 7, 1770035416), r, o, n[i + 9], 12, -1958414417), t, r, n[i + 10], 17, -42063), s, t, n[i + 11], 22, -1990404162), o = a(o, s = a(s, t = a(t, r, o, s, n[i + 12], 7, 1804603682), r, o, n[i + 13], 12, -40341101), t, r, n[i + 14], 17, -1502002290), s, t, n[i + 15], 22, 1236535329), o = l(o, s = l(s, t = l(t, r, o, s, n[i + 1], 5, -165796510), r, o, n[i + 6], 9, -1069501632), t, r, n[i + 11], 14, 643717713), s, t, n[i + 0], 20, -373897302), o = l(o, s = l(s, t = l(t, r, o, s, n[i + 5], 5, -701558691), r, o, n[i + 10], 9, 38016083), t, r, n[i + 15], 14, -660478335), s, t, n[i + 4], 20, -405537848), o = l(o, s = l(s, t = l(t, r, o, s, n[i + 9], 5, 568446438), r, o, n[i + 14], 9, -1019803690), t, r, n[i + 3], 14, -187363961), s, t, n[i + 8], 20, 1163531501), o = l(o, s = l(s, t = l(t, r, o, s, n[i + 13], 5, -1444681467), r, o, n[i + 2], 9, -51403784), t, r, n[i + 7], 14, 1735328473), s, t, n[i + 12], 20, -1926607734), o = h(o, s = h(s, t = h(t, r, o, s, n[i + 5], 4, -378558), r, o, n[i + 8], 11, -2022574463), t, r, n[i + 11], 16, 1839030562), s, t, n[i + 14], 23, -35309556), o = h(o, s = h(s, t = h(t, r, o, s, n[i + 1], 4, -1530992060), r, o, n[i + 4], 11, 1272893353), t, r, n[i + 7], 16, -155497632), s, t, n[i + 10], 23, -1094730640), o = h(o, s = h(s, t = h(t, r, o, s, n[i + 13], 4, 681279174), r, o, n[i + 0], 11, -358537222), t, r, n[i + 3], 16, -722521979), s, t, n[i + 6], 23, 76029189), o = h(o, s = h(s, t = h(t, r, o, s, n[i + 9], 4, -640364487), r, o, n[i + 12], 11, -421815835), t, r, n[i + 15], 16, 530742520), s, t, n[i + 2], 23, -995338651), o = f(o, s = f(s, t = f(t, r, o, s, n[i + 0], 6, -198630844), r, o, n[i + 7], 10, 1126891415), t, r, n[i + 14], 15, -1416354905), s, t, n[i + 5], 21, -57434055), o = f(o, s = f(s, t = f(t, r, o, s, n[i + 12], 6, 1700485571), r, o, n[i + 3], 10, -1894986606), t, r, n[i + 10], 15, -1051523), s, t, n[i + 1], 21, -2054922799), o = f(o, s = f(s, t = f(t, r, o, s, n[i + 8], 6, 1873313359), r, o, n[i + 15], 10, -30611744), t, r, n[i + 6], 15, -1560198380), s, t, n[i + 13], 21, 1309151649), o = f(o, s = f(s, t = f(t, r, o, s, n[i + 4], 6, -145523070), r, o, n[i + 11], 10, -1120210379), t, r, n[i + 2], 15, 718787259), s, t, n[i + 9], 21, -343485551), t = y(t, c), r = y(r, g), o = y(o, B), s = y(s, E);\n }\n return Array(t, r, o, s);\n}\nfunction R(n, e, t, r, o, s) {\n return y(X(y(y(e, n), y(r, s)), o), t);\n}\nfunction a(n, e, t, r, o, s, i) {\n return R(e & t | ~e & r, n, e, o, s, i);\n}\nfunction l(n, e, t, r, o, s, i) {\n return R(e & r | t & ~r, n, e, o, s, i);\n}\nfunction h(n, e, t, r, o, s, i) {\n return R(e ^ t ^ r, n, e, o, s, i);\n}\nfunction f(n, e, t, r, o, s, i) {\n return R(t ^ (e | ~r), n, e, o, s, i);\n}\nfunction y(n, e) {\n var t = (65535 & n) + (65535 & e);\n return (n >> 16) + (e >> 16) + (t >> 16) << 16 | 65535 & t;\n}\nfunction X(n, e) {\n return n << e | n >>> 32 - e;\n}\nfunction At(n) {\n return /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$/.test(n);\n}\nfunction Bt(n) {\n return Object.entries(n).map(\n ([e, t]) => encodeURIComponent(e) + \"=\" + encodeURIComponent(t)\n ).join(\"&\");\n}\nfunction Ot(n, e = \"mp\") {\n return n ? `https://www.gravatar.com/avatar/${J(n)}?d=${e}` : \"\";\n}\nfunction Ct(n) {\n const e = new RegExp(\n \"(?:(?<protocol>[\\\\w\\\\d]+)\\\\:\\\\/\\\\/)?(?:(?<user>.+)\\\\@)?(?<host>(?<domain>[^:\\\\/\\\\?#@\\\\n]+)(?:\\\\:(?<port>\\\\d*))?)(?<path>\\\\/.*?)?(?:\\\\?(?<query>.*?))?(?:#(?<fragment>.*?))?$\",\n \"gm\"\n ).exec(n), t = (e == null ? void 0 : e.groups) ?? {}, r = t.domain.split(\".\");\n if (t.port != null && (t.port = Number(t.port)), r.length > 2 && (t.domain = r.splice(-2, 2).join(\".\"), t.subdomain = r.join(\".\")), t.query) {\n const o = t.query.split(\"&\"), s = {};\n o.forEach((i) => {\n const [c, g] = i.split(\"=\");\n s[c] = g;\n }), t.query = s;\n }\n return t;\n}\nclass St extends Promise {\n constructor(t) {\n super((r, o) => t(\n (s) => r(s),\n (s) => o(s),\n (s) => this.progress = s\n ));\n u(this, \"listeners\", []);\n u(this, \"_progress\", 0);\n }\n get progress() {\n return this._progress;\n }\n set progress(t) {\n t != this._progress && (this._progress = t, this.listeners.forEach((r) => r(t)));\n }\n onProgress(t) {\n return this.listeners.push(t), this;\n }\n}\nfunction Rt(n) {\n return (n instanceof Date ? n.getTime() : n) - (/* @__PURE__ */ new Date()).getTime();\n}\nfunction Nt(n) {\n return new Promise((e) => setTimeout(e, n));\n}\nfunction bt(n) {\n const e = n instanceof Date ? n : new Date(n);\n return new Intl.DateTimeFormat(\"en-us\", {\n weekday: \"long\",\n month: \"short\",\n day: \"numeric\",\n hour: \"numeric\",\n minute: \"numeric\",\n hour12: !0\n }).format(e);\n}\nconst p = class p {\n constructor(e = {}) {\n u(this, \"interceptors\", {});\n u(this, \"headers\", {});\n this.opts = e, this.headers = e.headers || {}, e.interceptors && e.interceptors.forEach((t) => p.addInterceptor(t));\n }\n static addInterceptor(e) {\n const t = Object.keys(p.interceptors).length.toString();\n return p.interceptors[t] = e, () => {\n p.interceptors[t] = null;\n };\n }\n addInterceptor(e) {\n const t = Object.keys(this.interceptors).length.toString();\n return this.interceptors[t] = e, () => {\n this.interceptors[t] = null;\n };\n }\n async request(e = {}) {\n var o, s;\n if (!this.opts.url && !e.url)\n throw new Error(\"URL needs to be set\");\n let t = ((o = e.url) != null && o.startsWith(\"http\") ? e.url : (this.opts.url || \"\") + (e.url || \"\")).replace(/([^:]\\/)\\/+/g, \"$1\");\n if (e.fragment && (t.includes(\"#\") ? t.replace(/#.*(\\?|\\n)/g, (i, c) => `#${e.fragment}${c}`) : t += \"#\" + e.fragment), e.query) {\n const i = Array.isArray(e.query) ? e.query : Object.keys(e.query).map((c) => ({ key: c, value: e.query[c] }));\n t += (t.includes(\"?\") ? \"&\" : \"?\") + i.map((c) => `${c.key}=${c.value}`).join(\"&\");\n }\n const r = j({\n \"Content-Type\": e.body && !(e.body instanceof FormData) ? \"application/json\" : void 0,\n ...p.headers,\n ...this.headers,\n ...e.headers\n });\n return fetch(t, {\n headers: r,\n method: e.method || (e.body ? \"POST\" : \"GET\"),\n body: (s = r[\"Content-Type\"]) != null && s.startsWith(\"application/json\") && e.body ? JSON.stringify(e.body) : e.body\n }).then(async (i) => {\n for (let E of [...Object.values(p.interceptors), ...Object.values(this.interceptors)])\n await new Promise((O) => E(i, () => O()));\n const g = await (async () => {\n var E, O;\n return !e.skipConverting && ((E = i.headers.get(\"Content-Type\")) != null && E.startsWith(\"application/json\")) ? await i.json() : !e.skipConverting && ((O = i.headers.get(\"Content-Type\")) != null && O.startsWith(\"text/plain\")) ? await i.text() : i;\n })();\n if (i.ok)\n return g;\n const B = i.statusText || (typeof g == \"string\" ? g : null);\n throw B ? new Error(B) : g;\n });\n }\n};\nu(p, \"interceptors\", {}), u(p, \"headers\", {});\nlet I = p;\nexport {\n w as ASet,\n q as BadRequestError,\n lt as CliBackground,\n x as CliEffects,\n C as CliForeground,\n m as CustomError,\n H as ForbiddenError,\n v as InternalServerError,\n F as LOG_LEVEL,\n $ as Logger,\n W as NotFoundError,\n St as PromiseProgress,\n D as TypedEmitter,\n Y as UnauthorizedError,\n I as XHR,\n rt as addUnique,\n ot as arrayDiff,\n st as caseInsensitiveSort,\n j as clean,\n dt as countChars,\n gt as createHex,\n ht as dec2Frac,\n tt as deepCopy,\n S as dotNotation,\n at as download,\n ct as findByProp,\n P as flattenArr,\n M as flattenObj,\n Bt as formEncode,\n bt as formatDate,\n pt as formatPhoneNumber,\n ft as fracToDec,\n Ot as gravatar,\n L as includes,\n yt as insertAt,\n A as isEqual,\n ut as makeArray,\n U as makeUnique,\n wt as matchAll,\n J as md5,\n et as mixin,\n Et as pad,\n mt as randomString,\n xt as randomStringBuilder,\n nt as sanitizedJSON,\n Nt as sleep,\n it as sortByProp,\n Rt as timeUntil,\n Ct as urlParser,\n At as validateEmail\n};\n//# sourceMappingURL=utils.mjs.map\n","import {\r\n\tTypedEmitter,\r\n\ttype TypedEvents,\r\n\ttype RequestOptions,\r\n\tXHR,\r\n\ttype XhrOptions,\r\n} from '@ztimson/utils';\r\n\r\nexport type ApiEvents = TypedEvents & {\r\n\tREQUEST: (request: Promise<any>, options: RequestOptions) => any;\r\n\tRESPONSE: (response: any, options: RequestOptions) => any;\r\n\tREJECTED: (response: Error, options: RequestOptions) => any;\r\n\tTOKEN: (token: string | null) => any\r\n}\r\n\r\nexport class Api extends XHR {\r\n\tprivate emitter = new TypedEmitter<ApiEvents>();\r\n\r\n\tprivate _token: string | null = null;\r\n\tget token(): string | null { return this._token; }\r\n\tset token(token: string | null) {\r\n\t\tif(token == this._token) return;\r\n\t\tthis._token = token;\r\n\t\tthis.headers['Authorization'] = `Bearer ${token}`;\r\n\t\tthis.emit('TOKEN', token);\r\n\t}\r\n\r\n\tconstructor(public readonly url: string = location.origin, public readonly opts: XhrOptions = {}) {\r\n\t\topts.url = url;\r\n\t\tsuper(opts);\r\n\t}\r\n\r\n\temit = this.emitter.emit.bind(this.emitter);\r\n\toff = this.emitter.off.bind(this.emitter);\r\n\ton = this.emitter.on.bind(this.emitter);\r\n\tonce = this.emitter.once.bind(this.emitter);\r\n\r\n\trequest<T>(options: RequestOptions): Promise<T> {\r\n\t\tconst req = super.request<T>(options).then(resp => {\r\n\t\t\tthis.emit('RESPONSE', resp, options);\r\n\t\t\treturn resp;\r\n\t\t}).catch(err => {\r\n\t\t\tthis.emit('REJECTED', err, options);\r\n\t\t\tthrow err;\r\n\t\t});\r\n\t\tthis.emit('REQUEST', req, options);\r\n\t\treturn req;\r\n\t}\r\n}\r\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\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);\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); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\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\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\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\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","export function isFunction(value) {\n return typeof value === 'function';\n}\n//# sourceMappingURL=isFunction.js.map","export function createErrorClass(createImpl) {\n var _super = function (instance) {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n var ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n//# sourceMappingURL=createErrorClass.js.map","import { createErrorClass } from './createErrorClass';\nexport var UnsubscriptionError = createErrorClass(function (_super) {\n return function UnsubscriptionErrorImpl(errors) {\n _super(this);\n this.message = errors\n ? errors.length + \" errors occurred during unsubscription:\\n\" + errors.map(function (err, i) { return i + 1 + \") \" + err.toString(); }).join('\\n ')\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n };\n});\n//# sourceMappingURL=UnsubscriptionError.js.map","export function arrRemove(arr, item) {\n if (arr) {\n var index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n//# sourceMappingURL=arrRemove.js.map","import { __read, __spreadArray, __values } from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { arrRemove } from './util/arrRemove';\nvar Subscription = (function () {\n function Subscription(initialTeardown) {\n this.initialTeardown = initialTeardown;\n this.closed = false;\n this._parentage = null;\n this._finalizers = null;\n }\n Subscription.prototype.unsubscribe = function () {\n var e_1, _a, e_2, _b;\n var errors;\n if (!this.closed) {\n this.closed = true;\n var _parentage = this._parentage;\n if (_parentage) {\n this._parentage = null;\n if (Array.isArray(_parentage)) {\n try {\n for (var _parentage_1 = __values(_parentage), _parentage_1_1 = _parentage_1.next(); !_parentage_1_1.done; _parentage_1_1 = _parentage_1.next()) {\n var parent_1 = _parentage_1_1.value;\n parent_1.remove(this);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_parentage_1_1 && !_parentage_1_1.done && (_a = _parentage_1.return)) _a.call(_parentage_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n else {\n _parentage.remove(this);\n }\n }\n var initialFinalizer = this.initialTeardown;\n if (isFunction(initialFinalizer)) {\n try {\n initialFinalizer();\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n var _finalizers = this._finalizers;\n if (_finalizers) {\n this._finalizers = null;\n try {\n for (var _finalizers_1 = __values(_finalizers), _finalizers_1_1 = _finalizers_1.next(); !_finalizers_1_1.done; _finalizers_1_1 = _finalizers_1.next()) {\n var finalizer = _finalizers_1_1.value;\n try {\n execFinalizer(finalizer);\n }\n catch (err) {\n errors = errors !== null && errors !== void 0 ? errors : [];\n if (err instanceof UnsubscriptionError) {\n errors = __spreadArray(__spreadArray([], __read(errors)), __read(err.errors));\n }\n else {\n errors.push(err);\n }\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_finalizers_1_1 && !_finalizers_1_1.done && (_b = _finalizers_1.return)) _b.call(_finalizers_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n };\n Subscription.prototype.add = function (teardown) {\n var _a;\n if (teardown && teardown !== this) {\n if (this.closed) {\n execFinalizer(teardown);\n }\n else {\n if (teardown instanceof Subscription) {\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push(teardown);\n }\n }\n };\n Subscription.prototype._hasParent = function (parent) {\n var _parentage = this._parentage;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n };\n Subscription.prototype._addParent = function (parent) {\n var _parentage = this._parentage;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n };\n Subscription.prototype._removeParent = function (parent) {\n var _parentage = this._parentage;\n if (_parentage === parent) {\n this._parentage = null;\n }\n else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n };\n Subscription.prototype.remove = function (teardown) {\n var _finalizers = this._finalizers;\n _finalizers && arrRemove(_finalizers, teardown);\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n };\n Subscription.EMPTY = (function () {\n var empty = new Subscription();\n empty.closed = true;\n return empty;\n })();\n return Subscription;\n}());\nexport { Subscription };\nexport var EMPTY_SUBSCRIPTION = Subscription.EMPTY;\nexport function isSubscription(value) {\n return (value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe)));\n}\nfunction execFinalizer(finalizer) {\n if (isFunction(finalizer)) {\n finalizer();\n }\n else {\n finalizer.unsubscribe();\n }\n}\n//# sourceMappingURL=Subscription.js.map","export var config = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n//# sourceMappingURL=config.js.map","import { __read, __spreadArray } from \"tslib\";\nexport var timeoutProvider = {\n setTimeout: function (handler, timeout) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n var delegate = timeoutProvider.delegate;\n if (delegate === null || delegate === void 0 ? void 0 : delegate.setTimeout) {\n return delegate.setTimeout.apply(delegate, __spreadArray([handler, timeout], __read(args)));\n }\n return setTimeout.apply(void 0, __spreadArray([handler, timeout], __read(args)));\n },\n clearTimeout: function (handle) {\n var delegate = timeoutProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearTimeout) || clearTimeout)(handle);\n },\n delegate: undefined,\n};\n//# sourceMappingURL=timeoutProvider.js.map","import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\nexport function reportUnhandledError(err) {\n timeoutProvider.setTimeout(function () {\n var onUnhandledError = config.onUnhandledError;\n if (onUnhandledError) {\n onUnhandledError(err);\n }\n else {\n throw err;\n }\n });\n}\n//# sourceMappingURL=reportUnhandledError.js.map","export function noop() { }\n//# sourceMappingURL=noop.js.map","import { config } from '../config';\nvar context = null;\nexport function errorContext(cb) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n var isRoot = !context;\n if (isRoot) {\n context = { errorThrown: false, error: null };\n }\n cb();\n if (isRoot) {\n var _a = context, errorThrown = _a.errorThrown, error = _a.error;\n context = null;\n if (errorThrown) {\n throw error;\n }\n }\n }\n else {\n cb();\n }\n}\nexport function captureError(err) {\n if (config.useDeprecatedSynchronousErrorHandling && context) {\n context.errorThrown = true;\n context.error = err;\n }\n}\n//# sourceMappingURL=errorContext.js.map","import { __extends } from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nimport { captureError } from './util/errorContext';\nvar Subscriber = (function (_super) {\n __extends(Subscriber, _super);\n function Subscriber(destination) {\n var _this = _super.call(this) || this;\n _this.isStopped = false;\n if (destination) {\n _this.destination = destination;\n if (isSubscription(destination)) {\n destination.add(_this);\n }\n }\n else {\n _this.destination = EMPTY_OBSERVER;\n }\n return _this;\n }\n Subscriber.create = function (next, error, complete) {\n return new SafeSubscriber(next, error, complete);\n };\n Subscriber.prototype.next = function (value) {\n if (this.isStopped) {\n handleStoppedNotification(nextNotification(value), this);\n }\n else {\n this._next(value);\n }\n };\n Subscriber.prototype.error = function (err) {\n if (this.isStopped) {\n handleStoppedNotification(errorNotification(err), this);\n }\n else {\n this.isStopped = true;\n this._error(err);\n }\n };\n Subscriber.prototype.complete = function () {\n if (this.isStopped) {\n handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n }\n else {\n this.isStopped = true;\n this._complete();\n }\n };\n Subscriber.prototype.unsubscribe = function () {\n if (!this.closed) {\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n this.destination = null;\n }\n };\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n Subscriber.prototype._error = function (err) {\n try {\n this.destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n };\n Subscriber.prototype._complete = function () {\n try {\n this.destination.complete();\n }\n finally {\n this.unsubscribe();\n }\n };\n return Subscriber;\n}(Subscription));\nexport { Subscriber };\nvar _bind = Function.prototype.bind;\nfunction bind(fn, thisArg) {\n return _bind.call(fn, thisArg);\n}\nvar ConsumerObserver = (function () {\n function ConsumerObserver(partialObserver) {\n this.partialObserver = partialObserver;\n }\n ConsumerObserver.prototype.next = function (value) {\n var partialObserver = this.partialObserver;\n if (partialObserver.next) {\n try {\n partialObserver.next(value);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n };\n ConsumerObserver.prototype.error = function (err) {\n var partialObserver = this.partialObserver;\n if (partialObserver.error) {\n try {\n partialObserver.error(err);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n else {\n handleUnhandledError(err);\n }\n };\n ConsumerObserver.prototype.complete = function () {\n var partialObserver = this.partialObserver;\n if (partialObserver.complete) {\n try {\n partialObserver.complete();\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n };\n return ConsumerObserver;\n}());\nvar SafeSubscriber = (function (_super) {\n __extends(SafeSubscriber, _super);\n function SafeSubscriber(observerOrNext, error, complete) {\n var _this = _super.call(this) || this;\n var partialObserver;\n if (isFunction(observerOrNext) || !observerOrNext) {\n partialObserver = {\n next: (observerOrNext !== null && observerOrNext !== void 0 ? observerOrNext : undefined),\n error: error !== null && error !== void 0 ? error : undefined,\n complete: complete !== null && complete !== void 0 ? complete : undefined,\n };\n }\n else {\n var context_1;\n if (_this && config.useDeprecatedNextContext) {\n context_1 = Object.create(observerOrNext);\n context_1.unsubscribe = function () { return _this.unsubscribe(); };\n partialObserver = {\n next: observerOrNext.next && bind(observerOrNext.next, context_1),\n error: observerOrNext.error && bind(observerOrNext.error, context_1),\n complete: observerOrNext.complete && bind(observerOrNext.complete, context_1),\n };\n }\n else {\n partialObserver = observerOrNext;\n }\n }\n _this.destination = new ConsumerObserver(partialObserver);\n return _this;\n }\n return SafeSubscriber;\n}(Subscriber));\nexport { SafeSubscriber };\nfunction handleUnhandledError(error) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n captureError(error);\n }\n else {\n reportUnhandledError(error);\n }\n}\nfunction defaultErrorHandler(err) {\n throw err;\n}\nfunction handleStoppedNotification(notification, subscriber) {\n var onStoppedNotification = config.onStoppedNotification;\n onStoppedNotification && timeoutProvider.setTimeout(function () { return onStoppedNotification(notification, subscriber); });\n}\nexport var EMPTY_OBSERVER = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n//# sourceMappingURL=Subscriber.js.map","export var observable = (function () { return (typeof Symbol === 'function' && Symbol.observable) || '@@observable'; })();\n//# sourceMappingURL=observable.js.map","export function identity(x) {\n return x;\n}\n//# sourceMappingURL=identity.js.map","import { identity } from './identity';\nexport function pipe() {\n var fns = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i] = arguments[_i];\n }\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce(function (prev, fn) { return fn(prev); }, input);\n };\n}\n//# sourceMappingURL=pipe.js.map","import { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription } from './Subscription';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nimport { errorContext } from './util/errorContext';\nvar Observable = (function () {\n function Observable(subscribe) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n Observable.prototype.lift = function (operator) {\n var observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n };\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n var _this = this;\n var subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n errorContext(function () {\n var _a = _this, operator = _a.operator, source = _a.source;\n subscriber.add(operator\n ?\n operator.call(subscriber, source)\n : source\n ?\n _this._subscribe(subscriber)\n :\n _this._trySubscribe(subscriber));\n });\n return subscriber;\n };\n Observable.prototype._trySubscribe = function (sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n sink.error(err);\n }\n };\n Observable.prototype.forEach = function (next, promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var subscriber = new SafeSubscriber({\n next: function (value) {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n subscriber.unsubscribe();\n }\n },\n error: reject,\n complete: resolve,\n });\n _this.subscribe(subscriber);\n });\n };\n Observable.prototype._subscribe = function (subscriber) {\n var _a;\n return (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber);\n };\n Observable.prototype[Symbol_observable] = function () {\n return this;\n };\n Observable.prototype.pipe = function () {\n var operations = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n operations[_i] = arguments[_i];\n }\n return pipeFromArray(operations)(this);\n };\n Observable.prototype.toPromise = function (promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var value;\n _this.subscribe(function (x) { return (value = x); }, function (err) { return reject(err); }, function () { return resolve(value); });\n });\n };\n Observable.create = function (subscribe) {\n return new Observable(subscribe);\n };\n return Observable;\n}());\nexport { Observable };\nfunction getPromiseCtor(promiseCtor) {\n var _a;\n return (_a = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config.Promise) !== null && _a !== void 0 ? _a : Promise;\n}\nfunction isObserver(value) {\n return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\nfunction isSubscriber(value) {\n return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n//# sourceMappingURL=Observable.js.map","import { createErrorClass } from './createErrorClass';\nexport var ObjectUnsubscribedError = createErrorClass(function (_super) {\n return function ObjectUnsubscribedErrorImpl() {\n _super(this);\n this.name = 'ObjectUnsubscribedError';\n this.message = 'object unsubscribed';\n };\n});\n//# sourceMappingURL=ObjectUnsubscribedError.js.map","import { __extends, __values } from \"tslib\";\nimport { Observable } from './Observable';\nimport { Subscription, EMPTY_SUBSCRIPTION } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { arrRemove } from './util/arrRemove';\nimport { errorContext } from './util/errorContext';\nvar Subject = (function (_super) {\n __extends(Subject, _super);\n function Subject() {\n var _this = _super.call(this) || this;\n _this.closed = false;\n _this.currentObservers = null;\n _this.observers = [];\n _this.isStopped = false;\n _this.hasError = false;\n _this.thrownError = null;\n return _this;\n }\n Subject.prototype.lift = function (operator) {\n var subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n };\n Subject.prototype._throwIfClosed = function () {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n };\n Subject.prototype.next = function (value) {\n var _this = this;\n errorContext(function () {\n var e_1, _a;\n _this._throwIfClosed();\n if (!_this.isStopped) {\n if (!_this.currentObservers) {\n _this.currentObservers = Array.from(_this.observers);\n }\n try {\n for (var _b = __values(_this.currentObservers), _c = _b.next(); !_c.done; _c = _b.next()) {\n var observer = _c.value;\n observer.next(value);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n });\n };\n Subject.prototype.error = function (err) {\n var _this = this;\n errorContext(function () {\n _this._throwIfClosed();\n if (!_this.isStopped) {\n _this.hasError = _this.isStopped = true;\n _this.thrownError = err;\n var observers = _this.observers;\n while (observers.length) {\n observers.shift().error(err);\n }\n }\n });\n };\n Subject.prototype.complete = function () {\n var _this = this;\n errorContext(function () {\n _this._throwIfClosed();\n if (!_this.isStopped) {\n _this.isStopped = true;\n var observers = _this.observers;\n while (observers.length) {\n observers.shift().complete();\n }\n }\n });\n };\n Subject.prototype.unsubscribe = function () {\n this.isStopped = this.closed = true;\n this.observers = this.currentObservers = null;\n };\n Object.defineProperty(Subject.prototype, \"observed\", {\n get: function () {\n var _a;\n return ((_a = this.observers) === null || _a === void 0 ? void 0 : _a.length) > 0;\n },\n enumerable: false,\n configurable: true\n });\n Subject.prototype._trySubscribe = function (subscriber) {\n this._throwIfClosed();\n return _super.prototype._trySubscribe.call(this, subscriber);\n };\n Subject.prototype._subscribe = function (subscriber) {\n this._throwIfClosed();\n this._checkFinalizedStatuses(subscriber);\n return this._innerSubscribe(subscriber);\n };\n Subject.prototype._innerSubscribe = function (subscriber) {\n var _this = this;\n var _a = this, hasError = _a.hasError, isStopped = _a.isStopped, observers = _a.observers;\n if (hasError || isStopped) {\n return EMPTY_SUBSCRIPTION;\n }\n this.currentObservers = null;\n observers.push(subscriber);\n return new Subscription(function () {\n _this.currentObservers = null;\n arrRemove(observers, subscriber);\n });\n };\n Subject.prototype._checkFinalizedStatuses = function (subscriber) {\n var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, isStopped = _a.isStopped;\n if (hasError) {\n subscriber.error(thrownError);\n }\n else if (isStopped) {\n subscriber.complete();\n }\n };\n Subject.prototype.asObservable = function () {\n var observable = new Observable();\n observable.source = this;\n return observable;\n };\n Subject.create = function (destination, source) {\n return new AnonymousSubject(destination, source);\n };\n return Subject;\n}(Observable));\nexport { Subject };\nvar AnonymousSubject = (function (_super) {\n __extends(AnonymousSubject, _super);\n function AnonymousSubject(destination, source) {\n var _this = _super.call(this) || this;\n _this.destination = destination;\n _this.source = source;\n return _this;\n }\n AnonymousSubject.prototype.next = function (value) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.next) === null || _b === void 0 ? void 0 : _b.call(_a, value);\n };\n AnonymousSubject.prototype.error = function (err) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.call(_a, err);\n };\n AnonymousSubject.prototype.complete = function () {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.complete) === null || _b === void 0 ? void 0 : _b.call(_a);\n };\n AnonymousSubject.prototype._subscribe = function (subscriber) {\n var _a, _b;\n return (_b = (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber)) !== null && _b !== void 0 ? _b : EMPTY_SUBSCRIPTION;\n };\n return AnonymousSubject;\n}(Subject));\nexport { AnonymousSubject };\n//# sourceMappingURL=Subject.js.map","import { __extends } from \"tslib\";\nimport { Subject } from './Subject';\nvar BehaviorSubject = (function (_super) {\n __extends(BehaviorSubject, _super);\n function BehaviorSubject(_value) {\n var _this = _super.call(this) || this;\n _this._value = _value;\n return _this;\n }\n Object.defineProperty(BehaviorSubject.prototype, \"value\", {\n get: function () {\n return this.getValue();\n },\n enumerable: false,\n configurable: true\n });\n BehaviorSubject.prototype._subscribe = function (subscriber) {\n var subscription = _super.prototype._subscribe.call(this, subscriber);\n !subscription.closed && subscriber.next(this._value);\n return subscription;\n };\n BehaviorSubject.prototype.getValue = function () {\n var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, _value = _a._value;\n if (hasError) {\n throw thrownError;\n }\n this._throwIfClosed();\n return _value;\n };\n BehaviorSubject.prototype.next = function (value) {\n _super.prototype.next.call(this, (this._value = value));\n };\n return BehaviorSubject;\n}(Subject));\nexport { BehaviorSubject };\n//# sourceMappingURL=BehaviorSubject.js.map","import {Api} from './api';\nimport {RequestOptions, TypedEmitter, type TypedEvents} from '@ztimson/utils';\nimport {BehaviorSubject} from 'rxjs';\nimport {Meta} from './core';\n\nexport type Action = Meta & {\n\tname: string;\n\ttrigger: {type: ActionType, value: string};\n\tsystem?: boolean;\n\tfn: string;\n\tnotes?: string;\n\tlastRun?: number;\n\tnextRun?: number;\n}\n\nexport type ActionResponse = {\n\taction: string;\n\tstdout: any[];\n\tstderr: any[];\n\treturn?: any;\n}\n\nexport enum ActionType {\n\t'CRON',\n\t'EVENT',\n\t'DELETE',\n\t'GET',\n\t'PATCH',\n\t'POST',\n\t'PUT',\n}\n\nexport type ActionEvents = TypedEvents & {\n\tLIST: (actions: Action[]) => any;\n\tDELETE: (id: string) => any;\n\tREAD: (action: Action | null) => any;\n\tUPDATE: (action: Action) => any;\n\tEXECUTE: (action: Action, resp: any) => any;\n}\n\nexport class Actions extends TypedEmitter<ActionEvents> {\n\tprivate readonly api!: Api;\n\n\t$cache = new BehaviorSubject<Action[]>([]);\n\tget cache() { return this.$cache.value; }\n\tset cache(val) { this.$cache.next(val); }\n\n\tconstructor(api: Api | string) {\n\t\tsuper();\n\t\tthis.api = typeof api == 'string' ? new Api(api) : api;\n\t}\n\n\tdelete(id: string): Promise<void> {\n\t\treturn this.api.request({url: `/api/actions/${id}`, method: 'DELETE'}).then(() => {\n\t\t\tthis.cache = this.cache.filter(a => a._id != id);\n\t\t\tthis.emit('DELETE', id);\n\t\t});\n\t}\n\n\tlist(): Promise<Action[]> {\n\t\treturn this.api.request<Action[]>({url: `/api/actions`}).then(resp => {\n\t\t\tthis.cache = resp;\n\t\t\tthis.emit('LIST', resp);\n\t\t\treturn resp;\n\t\t});\n\t}\n\n\tread(id: string, reload=false): Promise<Action | null> {\n\t\tconst cached = this.cache.find(a => a._id == id);\n\t\tif(!reload && cached) return Promise.resolve(cached);\n\t\treturn this.api.request<Action | null>({url: `/api/actions/${id}`}).then(action => {\n\t\t\tif(action) this.cache = this.cache.filter(a => a._id != id).concat([action]);\n\t\t\tthis.emit('READ', action);\n\t\t\treturn action;\n\t\t});\n\t}\n\n\trun<T>(path: string, opts: RequestOptions = {}) {\n\t\treturn this.api.request<T>({url: (`/api/actions/run/` + path).replaceAll('//', '/'), ...opts});\n\t}\n\n\trunById(action: string | Action, opts: RequestOptions = {}) {\n\t\tconst id = typeof action == 'string' ? action : action._id;\n\t\treturn this.api.request<ActionResponse>({url: '/api/actions/run-by-id/' + id, method: 'POST', ...opts});\n\t}\n\n\tupdate(action: Action): Promise<Action> {\n\t\treturn this.api.request<Action>({\n\t\t\turl: `/api/actions${action._id ? `/${action._id}` : ''}`,\n\t\t\tmethod: 'POST',\n\t\t\tbody: action\n\t\t}).then(action => {\n\t\t\tif(action) this.cache = this.cache.filter(a => a._id != action._id).concat([action]);\n\t\t\tthis.emit('UPDATE', action);\n\t\t\treturn action;\n\t\t});\n\t}\n}\n","import {BehaviorSubject} from 'rxjs';\r\nimport {Api} from './api';\r\nimport {type Meta} from './core';\r\nimport {isEqual, TypedEmitter, type TypedEvents} from '@ztimson/utils';\r\n\r\nexport type Group = Meta & {\r\n\tname: string;\r\n\tdescription?: string,\r\n\tnotes?: string;\r\n\tusers: string[];\r\n\tpermissions: string[];\r\n\textra: any;\r\n}\r\n\r\nexport type User = Meta & {\r\n\tusername: string;\r\n\tname: string;\r\n\temail: string;\r\n\timage?: string;\r\n\tdisabled?: boolean;\r\n\tgroups?: string[];\r\n\tpermissions?: string[];\r\n\tnotes?: string;\r\n\textra: any;\r\n\tlastLogin?: number | null;\r\n}\r\n\r\nexport type AuthEvents = TypedEvents & {\r\n\tUSER: (user: User | null) => any;\r\n\tLOGIN: (user: User) => any;\r\n\tLOGOUT: () => any;\r\n\tREGISTER: (user: Partial<User>) => any;\r\n\tRESET_REQUEST: (email: string) => any;\r\n\tRESET_COMPLETE: (token: string) => any;\r\n}\r\n\r\nexport type AuthOptions = {\r\n\tloginUi?: string;\r\n\tpersist?: boolean;\r\n}\r\n\r\nexport class Auth extends TypedEmitter<AuthEvents> {\r\n\tprivate readonly api!: Api;\r\n\tprivate readonly storageKey!: string;\r\n\r\n\t$user = new BehaviorSubject<User | null | undefined>(undefined)\r\n\tget user(): User | null | undefined { return this.$user.value; }\r\n\tset user(user: User | null | undefined) {\r\n\t\tif(!isEqual(this.user, user)) {\r\n\t\t\tconst u = user ? user : null;\r\n\t\t\tthis.$user.next(u);\r\n\t\t\tthis.emit('USER', u);\r\n\t\t}\r\n\t}\r\n\r\n\tconstructor(api: Api | string, private readonly opts?: AuthOptions) {\r\n\t\tsuper();\r\n\t\tthis.api = typeof api == 'string' ? new Api(api) : api;\r\n\t\tif(!this.opts?.loginUi) this.opts = {...this.opts, loginUi: this.api.url + '/ui/login'};\r\n\t\tthis.storageKey = `momentum:${new URL(this.api.url).host}`;\r\n\r\n\t\tthis.api.on('TOKEN', token => {\r\n\t\t\tif(this.opts?.persist) {\r\n\t\t\t\tif(token) localStorage.setItem(this.storageKey, token);\r\n\t\t\t\telse localStorage.removeItem(this.storageKey);\r\n\t\t\t}\r\n\t\t\tif(token) this.whoAmI(token, true);\r\n\t\t\telse this.user = null;\r\n\t\t});\r\n\r\n\t\tif(opts?.persist) {\r\n\t\t\tconst token = localStorage.getItem(this.storageKey);\r\n\t\t\tif(token) this.api.token = token;\r\n\t\t\telse this.user = null;\r\n\t\t} else {\r\n\t\t\tthis.user = null;\r\n\t\t}\r\n\t}\r\n\r\n\tknownHost(host: string = location.origin): Promise<void> {\r\n\t\tif(host.startsWith('/')) return Promise.resolve();\r\n\t\treturn this.api.request({url: `/api/auth/known-host?host=${encodeURI(new URL(host).origin)}`});\r\n\t}\r\n\r\n\tlogin(username: string, password: string): Promise<User | null> {\r\n\t\treturn this.api.request<{token: string}>({\r\n\t\t\turl: '/api/auth/login',\r\n\t\t\theaders: {Authorization: undefined},\r\n\t\t\tbody: {\r\n\t\t\t\tusername,\r\n\t\t\t\tpassword\r\n\t\t\t}\r\n\t\t}).then(async resp => {\r\n\t\t\tthis.api.token = resp.token;\r\n\t\t\treturn await this.once('USER');\r\n\t\t});\r\n\t}\r\n\r\n\tloginRedirect(host: string = location.origin): Promise<string> {\r\n\t\treturn new Promise((res, rej) => {\r\n\t\t\tconst win = window.open(encodeURI(`${this.opts?.loginUi}?redirect=postmessage&host=${host}`), '_blank');\r\n\t\t\tif(!win) return rej('Unable to open login');\r\n\t\t\twin.addEventListener('message', (event: MessageEvent) => {\r\n\t\t\t\tif(!event?.data?.token) return rej('Unknown response from login');\r\n\t\t\t\tthis.api.token = event.data.token;\r\n\t\t\t\tres(event.data.token);\r\n\t\t\t\twin.close();\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tlogout(): void {\r\n\t\tthis.api.token = null;\r\n\t\tthis.user = null;\r\n\t\tthis.emit('LOGOUT');\r\n\t}\r\n\r\n\tasync register(user: Partial<User> & {username: string, password: string}): Promise<void> {\r\n\t\tconst req = await this.api.request<void>({url: '/api/auth/register', body: {...user}});\r\n\t\tthis.emit('REGISTER', user);\r\n\t\treturn req;\r\n\t}\r\n\r\n\treset(password: string, token?: string): Promise<void>;\r\n\treset(email: string): Promise<void>;\r\n\tasync reset(emailOrPass: string, token?: string): Promise<void> {\r\n\t\tawait this.api.request({\r\n\t\t\turl: '/api/auth/reset',\r\n\t\t\theaders: {'Authorization': token ? `Bearer ${token}` : undefined},\r\n\t\t\tbody: {\r\n\t\t\t\temail: token ? undefined : emailOrPass,\r\n\t\t\t\tpassword: token ? emailOrPass : undefined,\r\n\t\t\t}\r\n\t\t});\r\n\t\tthis.emit(!token ? 'RESET_REQUEST' : 'RESET_COMPLETE', !token ? emailOrPass : token);\r\n\t}\r\n\r\n\tasync whoAmI(token?: string, set = false): Promise<{token: string, user: User, permissions: string[]} | null> {\r\n\t\tif(!token) token = <string>this.api.token;\r\n\t\tconst user = await this.api.request<{token: string, user: User, permissions: string[]} | null>({\r\n\t\t\turl: '/api/auth/whoami',\r\n\t\t\theaders: token ? {'Authorization': `Bearer ${token}`} : undefined\r\n\t\t});\r\n\t\tif(set) {\r\n\t\t\tthis.api.token = token;\r\n\t\t\tthis.user = user?.user || null;\r\n\t\t\tif(user) this.emit('LOGIN', user.user);\r\n\t\t}\r\n\t\treturn user;\r\n\t}\r\n}\r\n","import {Api} from './api';\r\nimport {type Meta} from './core';\r\nimport {TypedEmitter, type TypedEvents} from '@ztimson/utils';\r\n\r\nexport type DataEvents = TypedEvents & {\r\n\tDELETE: (collection: string, document: string) => any;\r\n\tGET: (collection: string, documents: any) => any;\r\n\tRAW: (collection: string, response: any) => any;\r\n\tSET: (collection: string, document: any) => any;\r\n};\r\n\r\nexport class Data extends TypedEmitter<DataEvents> {\r\n\tprivate readonly api!: Api;\r\n\r\n\tconstructor(api: Api | string) {\r\n\t\tsuper();\r\n\t\tthis.api = typeof api == 'string' ? new Api(api) : api;\r\n\t}\r\n\r\n\tdelete(collection: string, document: string): Promise<void> {\r\n\t\treturn this.api.request<void>({\r\n\t\t\turl: `/api/data/${collection}/${document}`,\r\n\t\t\tmethod: 'DELETE'\r\n\t\t}).then(() => this.emit('DELETE', collection, document));\r\n\t}\r\n\r\n\tget<T extends Meta>(collection: string): Promise<T[]>;\r\n\tget<T extends Meta>(collection: string, document: string): Promise<T>;\r\n\tget<T extends Meta>(collection: string, document?: string): Promise<T | T[]> {\r\n\t\treturn this.api.request<T | T[]>({url: `/api/data/${collection}${document ? `/${document}` : ''}`}).then(resp => {\r\n\t\t\tthis.emit('GET', collection, resp);\r\n\t\t\treturn resp;\r\n\t\t});\r\n\t}\r\n\r\n\traw<T>(collection: string, operand: string, query: any, options: any): Promise<T> {\r\n\t\treturn this.api.request<T>({\r\n\t\t\turl: `/api/data/${collection}`,\r\n\t\t\tbody: {\r\n\t\t\t\toperand,\r\n\t\t\t\tquery,\r\n\t\t\t\toptions,\r\n\t\t\t}\r\n\t\t}).then(resp => {\r\n\t\t\tthis.emit('RAW', collection, resp);\r\n\t\t\treturn resp;\r\n\t\t});\r\n\t}\r\n\r\n\tset<T extends Meta>(collection: string, document: Partial<T> & {_id?: string}, append = false): Promise<T> {\r\n\t\treturn this.api.request<T>({\r\n\t\t\turl: `/api/data/${collection}/${document._id || ''}`,\r\n\t\t\tmethod: append ? 'PATCH' : 'POST',\r\n\t\t\tbody: document\r\n\t\t}).then(resp => {\r\n\t\t\tthis.emit('SET', collection, document);\r\n\t\t\treturn resp;\r\n\t\t});\r\n\t}\r\n}\r\n","import {Api} from './api';\r\nimport {TypedEmitter, type TypedEvents} from '@ztimson/utils';\r\n\r\nexport type MailTemplate = {template: string, data?: any};\r\nexport type Mail = {\r\n\tto: string | string[];\r\n\tcc?: string[];\r\n\tbcc?: string[];\r\n\tsubject?: string;\r\n\tbody?: string | MailTemplate;\r\n}\r\n\r\nexport type EmailEvents = TypedEvents & {\r\n\tSENT: (email: Mail) => any\r\n}\r\n\r\nexport class Email extends TypedEmitter<EmailEvents> {\r\n\tprivate readonly api!: Api;\r\n\r\n\tconstructor(api: Api | string) {\r\n\t\tsuper();\r\n\t\tthis.api = typeof api == 'string' ? new Api(api) : api;\r\n\t}\r\n\r\n\tsend(email: Mail) {\r\n\t\tlet url = '/api/email';\r\n\t\tif(typeof email.body == 'object') url += `/${email.body.template}`;\r\n\t\treturn this.api.request({url, body: email}).then(resp => {\r\n\t\t\tthis.emit('SENT', email);\r\n\t\t\treturn resp;\r\n\t\t});\r\n\t}\r\n}\r\n","import {Api} from './api';\nimport {type Group} from './auth';\nimport {TypedEmitter, type TypedEvents} from '@ztimson/utils';\n\nexport type GroupEvents = TypedEvents & {\n\tLIST: (users: Group[]) => any;\n\tCREATE: (user: Group) => any;\n\tREAD: (user: Group) => any;\n\tUPDATE: (user: Group) => any;\n\tDELETE: (name: string) => any;\n};\n\nexport class Groups extends TypedEmitter<GroupEvents> {\n\tprivate readonly api!: Api;\n\n\tconstructor(api: Api | string) {\n\t\tsuper();\n\t\tthis.api = typeof api == 'string' ? new Api(api) : api;\n\t}\n\n\tcreate(group: Group): Promise<Group> {\n\t\treturn this.api.request<Group>({\n\t\t\turl: `/api/groups/${group.name}`,\n\t\t\tmethod: 'POST',\n\t\t\tbody: group\n\t\t}).then(resp => {\n\t\t\tthis.emit('CREATE', resp);\n\t\t\treturn resp;\n\t\t});\n\t}\n\n\tlist(): Promise<Group[]> {\n\t\treturn this.api.request<Group[]>({url: `/api/groups`}).then(resp => {\n\t\t\tthis.emit('LIST', resp);\n\t\t\treturn resp;\n\t\t});\n\t}\n\n\tread(name: string): Promise<Group> {\n\t\treturn this.api.request<Group>({url: `/api/groups/${name}`}).then(resp => {\n\t\t\tthis.emit('READ', resp);\n\t\t\treturn resp;\n\t\t});\n\t}\n\n\tupdate(group: Group): Promise<Group> {\n\t\treturn this.api.request<Group>({\n\t\t\turl: `/api/groups/${group.name}`,\n\t\t\tmethod: 'PATCH',\n\t\t\tbody: group\n\t\t}).then(resp => {\n\t\t\tthis.emit('UPDATE', resp);\n\t\t\treturn resp;\n\t\t});\n\t}\n\n\tdelete(name: string): Promise<void> {\n\t\treturn this.api.request<void>({\n\t\t\turl: `/api/groups/${name}`,\n\t\t\tmethod: 'DELETE'\n\t\t}).then(() => this.emit('DELETE', name));\n\t}\n}\n","import {Api} from './api';\r\nimport {LOG_LEVEL} from '@ztimson/utils';\r\n\r\nexport type LogLevel = 'ERROR' | 'WARN' | 'INFO' | 'LOG' | 'DEBUG' | 'NONE';\r\n\r\nexport type Log<T> = {\r\n\ttime: number;\r\n\tlevel: LOG_LEVEL;\r\n\tlog: any[];\r\n\tctx?: T\r\n}\r\n\r\nexport type ClientLog = Log<{\r\n\turl: string;\r\n\tuser: string;\r\n\tip: string;\r\n\tcores: number | 'Unknown';\r\n\tmem: number | 'Unknown';\r\n\tres: [number, number];\r\n\tua: string | {\r\n\t\tua: string;\r\n\t\tbrowser: {name: string, version: string, major: string};\r\n\t\tcpu: {architecture: string};\r\n\t\tdevice: {mode?: string, type?: string};\r\n\t\tengine: {name: string, version: string};\r\n\t\tos: {name: string, version: string};\r\n\t}\r\n}>;\r\n\r\nexport class Logger {\r\n\tprivate readonly api!: Api;\r\n\r\n\tconstructor(api: Api | string, logLevel?: LogLevel | null) {\r\n\t\tthis.api = typeof api == 'string' ? new Api(api) : api;\r\n\t\tif(logLevel != null && logLevel != 'NONE') {\r\n\t\t\t// LOG_LEVEL[logLevel];\r\n\t\t\twindow.addEventListener('error', (event: ErrorEvent) => this.error(event.error.stack));\r\n\t\t\twindow.addEventListener('unhandledrejection', async (event: any) => this.error(event.reason.stack));\r\n\t\t}\r\n\t}\r\n\r\n\tprivate buildLog(level: LOG_LEVEL, log: any[]) {\r\n\t\treturn {\r\n\t\t\ttime: new Date().getTime(),\r\n\t\t\tlevel,\r\n\t\t\tlog,\r\n\t\t\tctx: {\r\n\t\t\t\tcores: navigator.hardwareConcurrency,\r\n\t\t\t\tmem: (<any>navigator)?.deviceMemory,\r\n\t\t\t\tres: [window.innerWidth, window.innerHeight],\r\n\t\t\t\turl: location.href,\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tclearClientLogs() {\r\n\t\treturn this.api.request<ClientLog[]>({url: `/api/logs/client`, method: 'DELETE'});\r\n\t}\r\n\r\n\tclearServerLogs() {\r\n\t\treturn this.api.request<ClientLog[]>({url: `/api/logs/server`, method: 'DELETE'});\r\n\t}\r\n\r\n\tclientLogs(length?: number, page?: number): Promise<ClientLog[]> {\r\n\t\tconst query = [length ? `length=${length}` : undefined, page ? `page=${page}` : undefined, ].filter(v => !!v).join('&');\r\n\t\treturn this.api.request<ClientLog[]>({url: `/api/logs/client${query ? `?${query}` : ''}`});\r\n\t}\r\n\r\n\tserverLogs(length?: number, page?: number): Promise<Log<any>[]> {\r\n\t\tconst query = [length ? `length=${length}` : undefined, page ? `page=${page}` : undefined, ].filter(v => !!v).join('&');\r\n\t\treturn this.api.request<Log<any>[]>({url: `/api/logs/server${query ? `?${query}` : ''}`});\r\n\t}\r\n\r\n\tdebug(...logs: any[]) {\r\n\t\treturn this.api.request({url: `/api/logs/client`, body: this.buildLog(LOG_LEVEL.DEBUG, logs)}).catch(() => {});\r\n\t}\r\n\r\n\tlog(...logs: any[]) {\r\n\t\treturn this.api.request({url: `/api/logs/client`, body: this.buildLog(LOG_LEVEL.LOG, logs)}).catch(() => {});\r\n\t}\r\n\r\n\tinfo(...logs: any[]) {\r\n\t\treturn this.api.request({url: `/api/logs/client`, body: this.buildLog(LOG_LEVEL.INFO, logs)}).catch(() => {});\r\n\t}\r\n\r\n\twarn(...logs: any[]) {\r\n\t\treturn this.api.request({url: `/api/logs/client`, body: this.buildLog(LOG_LEVEL.WARN, logs)}).catch(() => {});\r\n\t}\r\n\r\n\terror(...logs: any[]) {\r\n\t\treturn this.api.request({url: `/api/logs/client`, body: this.buildLog(LOG_LEVEL.ERROR, logs)}).catch(() => {});\r\n\t}\r\n}\r\n","import {Api} from './api';\nimport {download, TypedEmitter, type TypedEvents} from '@ztimson/utils';\n\nexport type PdfTemplate = {template: string, data: any};\n\nexport type PdfEvents = TypedEvents & {\n\tCREATE: (pdf: Blob) => any;\n}\n\nexport class Pdf extends TypedEmitter<PdfEvents> {\n\tprivate readonly api!: Api;\n\n\tconstructor(api: Api | string) {\n\t\tsuper();\n\t\tthis.api = typeof api == 'string' ? new Api(api) : api;\n\t}\n\n\tprivate async handleResponse(resp: Response, fileName?: string) {\n\t\tconst blob = await resp.blob();\n\t\tif(fileName) {\n\t\t\tconst url = URL.createObjectURL(blob);\n\t\t\tdownload(url, fileName.endsWith('.pdf') ? fileName : fileName + '.pdf');\n\t\t\tURL.revokeObjectURL(url);\n\t\t}\n\t\tthis.emit('CREATE', blob);\n\t\treturn blob;\n\t}\n\n\tgenerate(content: string | PdfTemplate, opts: {download?: boolean, 'fileName'?: string} = {}) {\n\t\tconst template = (<any>content)?.template;\n\t\treturn this.api.request<Response>({\n\t\t\turl: `/api/pdf${template ? `/${template}` : ''}`,\n\t\t\tbody: template ? (<any>content)?.data : {html: content}\n\t\t}).then((resp) => this.handleResponse(resp, opts.download ? (opts.fileName || new Date().toISOString()) : undefined));\n\t}\n\n\tfromUrl(url: string, opts: {download?: boolean, 'fileName'?: string} = {}) {\n\t\treturn this.api.request<Response>({url: `/api/pdf?url=${url}`}).then((resp) =>\n\t\t\tthis.handleResponse(resp, opts.download ? (opts.fileName || new Date().toISOString()) : undefined));\n\t}\n}\n","import {Api} from './api';\n\nexport class Socket {\n\tstatic readonly timeout = 10000;\n\n\tprivate readonly api!: Api;\n\n\treadonly url!: string;\n\n\tprivate connection!: WebSocket;\n\n\topen = false;\n\n\tconstructor(api: Api | string) {\n\t\tthis.api = typeof api == 'string' ? new Api(api) : api;\n\t\tthis.url = this.api.url.replace('http', 'ws');\n\t\tthis.api.on('TOKEN', () => this.connect());\n\t\tif(!this.api.token) this.connect();\n\t}\n\n\tclose() {\n\t\tconsole.debug('Disconnected from Momentum');\n\t\tthis.open = false;\n\t\tthis.connection.close();\n\t}\n\n\tconnect(retry = 3) {\n\t\tif(this.connection?.readyState < 2) this.connection.close();\n\t\tthis.connection = new WebSocket(this.url + (this.api.token ? `?token=${this.api.token}` : ''));\n\t\tconst timeout = setTimeout(() => {\n\t\t\tif(this.open) return;\n\t\t\tthis.connection.close();\n\t\t\tconsole.error(`Momentum connection timeout`);\n\t\t\tif(retry > 0) this.connect(retry - 1);\n\t\t}, Socket.timeout);\n\t\tthis.connection.onclose = () => this.open = false;\n\t\tthis.connection.onmessage = this.handle;\n\t\tthis.connection.onopen = () => {\n\t\t\tthis.open = true;\n\t\t\tclearTimeout(timeout);\n\t\t\tconsole.debug('Connected to Momentum');\n\t\t}\n\t}\n\n\tprivate handle(...args: any[]) {\n\t\tconsole.log(args);\n\t}\n\n\tsend(channel: string, payload?: any) {\n\t\tthis.connection.send(JSON.stringify({\n\t\t\ttoken: this.api.token,\n\t\t\tchannel,\n\t\t\tpayload\n\t\t}));\n\t}\n}\n","import {Api} from './api';\r\nimport {type Meta} from './core';\r\nimport {PromiseProgress, type RequestOptions, TypedEmitter, download, type TypedEvents} from '@ztimson/utils';\r\n\r\nexport type DirMeta = {\r\n\tchildren: (DirMeta | FileMeta)[];\r\n\tpath: string;\r\n\tname: string;\r\n\tmime: 'directory',\r\n\tsize: number;\r\n}\r\n\r\nexport type FileMeta = Meta & {\r\n\tpath: string;\r\n\tname: string;\r\n\tmime: string;\r\n\tsize: number;\r\n}\r\n\r\nexport type StorageEvents = TypedEvents & {\r\n\tLIST: (path: string, response: DirMeta | FileMeta) => any;\r\n\tDELETE: (path: string) => any;\r\n\tDOWNLOAD: (path: string, data: Blob) => any;\r\n\tOPEN: (path: string) => any;\r\n\tUPLOAD: (files: FileMeta[]) => any;\r\n};\r\nexport class Storage extends TypedEmitter<StorageEvents> {\r\n\treadonly api!: Api;\r\n\r\n\tconstructor(api: Api | string) {\r\n\t\tsuper();\r\n\t\tthis.api = typeof api == 'string' ? new Api(api) : api;\r\n\t}\r\n\r\n\tdelete(path: string): Promise<void> {\r\n\t\tconst url = (path.startsWith('/api/storage/') ? path : '/api/storage/' + path).replaceAll('//', '/');\r\n\t\treturn this.api.request({url, method: 'DELETE'}).then(() => {\r\n\t\t\tthis.emit('DELETE', url);\r\n\t\t});\r\n\t}\r\n\r\n\tlist(path: string): Promise<DirMeta | FileMeta> {\r\n\t\tconst url = (path.startsWith('/api/storage/') ? path : '/api/storage/' + path).replaceAll('//', '/');\r\n\t\treturn this.api.request<DirMeta | FileMeta>({url: url + '?list'}).then(resp => {\r\n\t\t\tthis.emit('LIST', path, resp);\r\n\t\t\treturn resp;\r\n\t\t});\r\n\t}\r\n\r\n\topen(path: string, target: false): string;\r\n\topen(path: string, target?: '_blank' | '_self'): Window | null;\r\n\topen(path: string, target: false | '_blank' | '_self' = '_blank'): string | Window | null {\r\n\t\tconst p = (path.startsWith('/api/storage/') ? path : '/api/storage/' + path).replaceAll(/\\/{2,}/g, '/');\r\n\t\tconst link = `${this.api.url}${p}${this.api.token ? `?token=${this.api.token}` : ''}`;\r\n\t\tif(!target) return link;\r\n\t\tthis.emit('OPEN', path);\r\n\t\treturn window.open(link, target);\r\n\t}\r\n\r\n\tmkdir(path: string): Promise<DirMeta> {\r\n\t\tconst p = (path.startsWith('/api/storage/') ? path : '/api/storage/' + path).replaceAll(/\\/{2,}/g, '/');\r\n\t\treturn this.api.request({url: p + '?directory', method: 'POST'});\r\n\t}\r\n\r\n\tdownload(path: string, opts: RequestOptions & {'downloadAs'?: string} = {}): PromiseProgress<Blob> {\r\n\t\treturn new PromiseProgress<Blob>((res: Function, rej: Function, progress: Function) => {\r\n\t\t\tconst p = ('/api/storage/' + path).replaceAll('//', '/');\r\n\t\t\tthis.api.request({...opts, url: p, skipConverting: true}).then((response: any) => {\r\n\t\t\t\tif(!response.ok) return rej(response.statusText);\r\n\t\t\t\tconst contentLength = response.headers.get('Content-Length');\r\n\t\t\t\tconst total = contentLength ? parseInt(contentLength, 10) : 0;\r\n\t\t\t\tlet chunks: any[] = [], loaded = 0;\r\n\t\t\t\tconst reader = response.body?.getReader();\r\n\t\t\t\tconst process = (result: any) => {\r\n\t\t\t\t\tif(result.done) {\r\n\t\t\t\t\t\tprogress(1);\r\n\t\t\t\t\t\tconst blob = new Blob(chunks);\r\n\t\t\t\t\t\tconst name = opts.downloadAs || <string>new URL(response.url).pathname.split('/').pop();\r\n\t\t\t\t\t\tconst url = URL.createObjectURL(blob);\r\n\t\t\t\t\t\tdownload(url, name.includes('.') ? name : name + '.zip');\r\n\t\t\t\t\t\tURL.revokeObjectURL(url);\r\n\t\t\t\t\t\tthis.emit('DOWNLOAD', path, blob);\r\n\t\t\t\t\t\tres(blob);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tconst chunk = result.value;\r\n\t\t\t\t\t\tchunks.push(chunk);\r\n\t\t\t\t\t\tloaded += chunk.length;\r\n\t\t\t\t\t\tprogress(loaded / total);\r\n\t\t\t\t\t\treader.read().then(process);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treader?.read().then(process);\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tasync upload(files?: File | File[] | null, opts: string | {path?: string, accept?: string, multiple?: boolean} = '') {\r\n\t\tconst fileBrowser = (): Promise<File[]> => {\r\n\t\t\treturn new Promise(res => {\r\n\t\t\t\tconst input = document.createElement('input');\r\n\t\t\t\tinput.type = 'file';\r\n\t\t\t\tinput.accept = (<any>opts)?.accept || '*';\r\n\t\t\t\tinput.style.display='none';\r\n\t\t\t\tinput.multiple = !!(<any>opts)?.multiple;\r\n\t\t\t\tinput.onblur = input.onchange = async () => {\r\n\t\t\t\t\tres(Array.from(<any>input.files));\r\n\t\t\t\t\tinput.remove();\r\n\t\t\t\t}\r\n\t\t\t\tdocument.body.appendChild(input);\r\n\t\t\t\tinput.click();\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif(!files) files = await fileBrowser();\r\n\t\tif(!files || Array.isArray(files) && !files.length) return [];\r\n\r\n\t\tconst data = new FormData();\r\n\t\tconst p = ('/api/storage/' + (typeof opts == 'string' ? opts : opts?.path)).replaceAll('//', '/');\r\n\t\t(Array.isArray(files) ? files : [files]).forEach(f => data.append('file', <Blob>f));\r\n\t\treturn this.api.request<FileMeta[]>({url: p, body: data}).then(resp => {\r\n\t\t\tthis.emit('UPLOAD', resp);\r\n\t\t\treturn resp;\r\n\t\t});\r\n\t}\r\n}\r\n","import {Api} from './api';\nimport {type User} from './auth';\nimport {TypedEmitter, type TypedEvents} from '@ztimson/utils';\nimport {BehaviorSubject} from 'rxjs';\n\nexport type UserEvents = TypedEvents & {\n\tLIST: (users: User[]) => any;\n\tREAD: (user: User) => any;\n\tUPDATE: (user: User) => any;\n\tDELETE: (username: string) => any;\n};\n\nexport class Users extends TypedEmitter<UserEvents> {\n\tprivate readonly api!: Api;\n\tprivate listed = false;\n\n\t$cache = new BehaviorSubject<User[]>([])\n\tget cache() { return this.$cache.value; }\n\tset cache(val) { this.$cache.next(val); }\n\n\tconstructor(api: Api | string) {\n\t\tsuper();\n\t\tthis.api = typeof api == 'string' ? new Api(api) : api;\n\t}\n\n\tdelete(username: string): Promise<void> {\n\t\treturn this.api.request<void>({\n\t\t\turl: `/api/users/${username}`,\n\t\t\tmethod: 'DELETE'\n\t\t}).then(() => {\n\t\t\tthis.cache = this.cache.filter(u => u.username != username);\n\t\t\tthis.emit('DELETE', username)\n\t\t});\n\t}\n\n\tlist(reload=false): Promise<User[]> {\n\t\tif(!reload && this.listed) return Promise.resolve(this.cache);\n\t\treturn this.api.request<User[]>({url: `/api/users`}).then(resp => {\n\t\t\tthis.cache = resp;\n\t\t\tthis.listed = true;\n\t\t\tthis.emit('LIST', resp);\n\t\t\treturn resp;\n\t\t});\n\t}\n\n\tread(username: string, reload=false): Promise<User> {\n\t\tif(!reload) {\n\t\t\tconst cached = this.cache.find(u => u.username == username);\n\t\t\tif(cached) return Promise.resolve(cached);\n\t\t}\n\t\treturn this.api.request<User>({url: `/api/users/${username}`}).then(resp => {\n\t\t\tif(resp) this.cache = {...this.cache, [resp.username]: resp};\n\t\t\tthis.emit('READ', resp);\n\t\t\treturn resp;\n\t\t});\n\t}\n\n\tupdate(user: User): Promise<User> {\n\t\treturn this.api.request<User>({\n\t\t\turl: `/api/users/${user.username}`,\n\t\t\tmethod: 'PATCH',\n\t\t\tbody: user\n\t\t}).then(resp => {\n\t\t\tif(resp) this.cache = this.cache.filter(u => u.username != user.username).concat([resp]);\n\t\t\tthis.emit('UPDATE', resp);\n\t\t\treturn resp;\n\t\t});\n\t}\n}\n","import {Api} from './api';\nimport {TypedEmitter, type TypedEvents} from '@ztimson/utils';\nimport {BehaviorSubject} from 'rxjs';\n\n/** Momentum variable */\nexport type Setting<T> = {\n\t/** Internal ID */\n\t_id?: string;\n\t/** Variable name */\n\tkey: string;\n\t/** Variable value */\n\tvalue: T;\n\t/** Visible without authenticating */\n\tpublic?: boolean;\n\t/** Momentum variable, cannot be deleted */\n\tsystem?: boolean;\n}\n\nexport type SettingEvents = TypedEvents & {\n\tLIST: (variables: {[key: string]: any}) => any;\n\tDELETE: (key: string) => any;\n\tREAD: (variable: Setting<any> | null) => any;\n\tUPDATE: (variable: Setting<any>) => any;\n}\n\nexport class Settings extends TypedEmitter<SettingEvents> {\n\tprivate readonly api!: Api;\n\n\t$cache = new BehaviorSubject<{[key: string]: any}>({});\n\tget cache() { return this.$cache.value; }\n\tset cache(val) { this.$cache.next(val); }\n\n\tconstructor(api: Api | string) {\n\t\tsuper();\n\t\tthis.api = typeof api == 'string' ? new Api(api) : api;\n\t}\n\n\tlist(detailed = false): Promise<{[key: string]: any}> {\n\t\treturn this.api.request<{[key: string]: any}>({url: `/api/settings` + (detailed ? '?detailed' : '')}).then(resp => {\n\t\t\tthis.cache = !detailed ? resp : Object.values(resp).reduce((acc, v) => ({...acc, [v.key]: v.value}), {});\n\t\t\tthis.emit('LIST', resp);\n\t\t\treturn resp;\n\t\t});\n\t}\n\n\tdelete(key: string): Promise<void> {\n\t\treturn this.api.request({url: `/api/settings/${key}`, method: 'DELETE'}).then(() => {\n\t\t\tthis.cache = {...this.cache, [key]: undefined};\n\t\t\tthis.emit('DELETE', key);\n\t\t});\n\t}\n\n\tread(key: string, reload=false): Promise<Setting<any> | null> {\n\t\tif(!reload && this.cache[key]) return Promise.resolve(this.cache[key]);\n\t\treturn this.api.request<Setting<any> | null>({url: `/api/settings/${key}`}).then(variable => {\n\t\t\tif(variable) this.cache = {...this.cache, [variable.key]: variable};\n\t\t\tthis.emit('READ', variable);\n\t\t\treturn variable;\n\t\t});\n\t}\n\n\tupdate(variable: Setting<any>): Promise<Setting<any>> {\n\t\treturn this.api.request<Setting<any>>({url: `/api/settings/${variable.key}`, body: variable}).then(variable => {\n\t\t\tif(variable) this.cache = {...this.cache, [variable.key]: variable.value};\n\t\t\tthis.emit('UPDATE', variable);\n\t\t\treturn variable;\n\t\t});\n\t}\n}\n","import {Api} from './api';\nimport {TypedEmitter, type TypedEvents} from '@ztimson/utils';\nimport {type FileMeta} from './storage';\n\nexport type StaticEvents = TypedEvents & {\n\tLIST: (path: string, response: string[] | FileMeta) => any;\n\tDELETE: (path: string) => any;\n\tUPLOAD: (files: FileMeta[]) => any;\n};\n\nexport class Static extends TypedEmitter<StaticEvents> {\n\tprivate readonly api!: Api;\n\n\tconstructor(api: Api | string) {\n\t\tsuper();\n\t\tthis.api = typeof api == 'string' ? new Api(api) : api;\n\t}\n\n\tdelete(path: string): Promise<void> {\n\t\treturn this.api.request({url: `/api/static/${path}`, method: 'DELETE'}).then(() => {\n\t\t\tthis.emit('DELETE', path);\n\t\t});\n\t}\n\n\tlist(path: string): Promise<string[] | FileMeta> {\n\t\tconst url = ('/api/static/' + path).replaceAll('//', '/');\n\t\treturn this.api.request<string[] | FileMeta>({url}).then(resp => {\n\t\t\tthis.emit('LIST', path, resp);\n\t\t\treturn resp;\n\t\t});\n\t}\n\n\tupload(files: File | File[], path = '/'): Promise<FileMeta[]> {\n\t\tconst data = new FormData();\n\t\t(Array.isArray(files) ? files : [files]).forEach(f => data.append('file', <Blob>f));\n\t\treturn this.api.request<FileMeta[]>({url: '/api/static' + path, body: data}).then(resp => {\n\t\t\tthis.emit('UPLOAD', resp);\n\t\t\treturn resp;\n\t\t});\n\t}\n}\n","import {Actions} from './actions';\nimport {Api, type ApiEvents} from './api';\nimport {Auth, type AuthEvents, AuthOptions} from './auth';\nimport {Data, type DataEvents} from './data';\nimport {Email, type EmailEvents} from './email';\nimport {Groups} from './groups';\nimport {TypedEmitter, type TypedEvents, type XhrOptions} from '@ztimson/utils';\nimport {Logger, LogLevel} from './logger';\nimport {Pdf, type PdfEvents} from './pdf';\nimport {Socket} from './sockets';\nimport {Storage, type StorageEvents} from './storage';\nimport {Users} from './users';\nimport {Settings, type SettingEvents} from './settings';\nimport {Static, type StaticEvents} from './static';\n\nexport type MomentumEvents = TypedEvents & ApiEvents & AuthEvents & DataEvents & EmailEvents & PdfEvents & StaticEvents & StorageEvents & SettingEvents;\n\nexport type MomentumOptions = AuthOptions & {\n\tlogLevel?: LogLevel;\n\tsocket?: boolean;\n\tapi?: XhrOptions;\n}\n\nexport class Momentum extends TypedEmitter<MomentumEvents> {\n\tapi!: Api;\n\tactions!: Actions;\n\tauth!: Auth;\n\tdata!: Data;\n\temail!: Email;\n\tgroups!: Groups;\n\tlogger!: Logger;\n\tpdf!: Pdf;\n\tsettings!: Settings;\n\tsocket?: Socket;\n\tstatic!: Static;\n\tstorage!: Storage;\n\tusers!: Users;\n\tconstructor(url?: string, opts?: MomentumOptions) {\n\t\tsuper();\n\t\tthis.api = new Api(url, opts?.api);\n\t\tthis.actions = new Actions(this.api);\n\t\tthis.auth = new Auth(this.api, {\n\t\t\tpersist: opts?.persist ?? true,\n\t\t\tloginUi: opts?.loginUi\n\t\t});\n\t\tthis.data = new Data(this.api);\n\t\tthis.email = new Email(this.api);\n\t\tthis.groups = new Groups(this.api);\n\t\tthis.logger = new Logger(this.api, opts?.logLevel);\n\t\tthis.pdf = new Pdf(this.api);\n\t\tthis.settings = new Settings(this.api);\n\t\tthis.static = new Static(this.api);\n\t\tthis.storage = new Storage(this.api);\n\t\tthis.users = new Users(this.api);\n\t\tif(opts?.socket) this.socket = new Socket(this.api);\n\n\t\tthis.api.on('*', (event, ...args: any[]) => this.emit(`API::${event}`, ...args));\n\t\tthis.actions.on('*', (event, ...args: any[]) => this.emit(`ACTIONS::${event}`, ...args));\n\t\tthis.auth.on('*', (event, ...args: any[]) => this.emit(`AUTH::${event}`, ...args));\n\t\tthis.data.on('*', (event, ...args: any[]) => this.emit(`DATA::${event}`, ...args));\n\t\tthis.email.on('*', (event, ...args: any[]) => this.emit(`EMAIL::${event}`, ...args));\n\t\tthis.groups.on('*', (event, ...args: any[]) => this.emit(`GROUPS::${event}`, ...args));\n\t\tthis.pdf.on('*', (event, ...args: any[]) => this.emit(`PDF::${event}`, ...args));\n\t\tthis.settings.on('*', (event, ...args: any[]) => this.emit(`SETTINGS::${event}`, ...args));\n\t\tthis.static.on('*', (event, ...args: any[]) => this.emit(`STATIC::${event}`, ...args));\n\t\tthis.storage.on('*', (event, ...args: any[]) => this.emit(`STORAGE::${event}`, ...args));\n\t\tthis.users.on('*', (event, ...args: any[]) => this.emit(`USERS::${event}`, ...args));\n\n\t\tthis.users.on('*', (event, ...args: any[]) => {\n\t\t\tif(Array.isArray(args[0])) {\n\t\t\t\tconst u = args[0].find(u => u._id == this.auth.user?._id);\n\t\t\t\tif(u) this.auth.user = u;\n\t\t\t} else if(args[0]._id == this.auth.user?._id) {\n\t\t\t\tthis.auth.user = args[0];\n\t\t\t}\n\t\t});\n\t}\n}\n"],"names":["k","G","n","u","j","A","s","at","D","o","r","m","t","q","Y","H","W","v","x","C","F","d","i","c","St","p","E","O","g","B","I","Api","XHR","url","opts","__publicField","TypedEmitter","token","options","req","resp","err","extendStatics","b","__extends","__","__values","__read","ar","e","error","__spreadArray","to","from","pack","l","isFunction","value","createErrorClass","createImpl","_super","instance","ctorFunc","UnsubscriptionError","errors","arrRemove","arr","item","index","Subscription","initialTeardown","e_1","_a","e_2","_b","_parentage","_parentage_1","_parentage_1_1","parent_1","e_1_1","initialFinalizer","_finalizers","_finalizers_1","_finalizers_1_1","finalizer","execFinalizer","e_2_1","teardown","parent","empty","EMPTY_SUBSCRIPTION","isSubscription","config","timeoutProvider","handler","timeout","args","_i","handle","delegate","reportUnhandledError","noop","errorContext","cb","Subscriber","destination","_this","EMPTY_OBSERVER","next","complete","SafeSubscriber","_bind","bind","fn","thisArg","ConsumerObserver","partialObserver","handleUnhandledError","observerOrNext","context_1","defaultErrorHandler","observable","identity","pipeFromArray","fns","input","prev","Observable","subscribe","operator","subscriber","isSubscriber","source","sink","promiseCtor","getPromiseCtor","resolve","reject","Symbol_observable","operations","isObserver","ObjectUnsubscribedError","Subject","subject","AnonymousSubject","_c","observer","observers","hasError","isStopped","thrownError","BehaviorSubject","_value","subscription","ActionType","ActionType2","Actions","api","val","id","a","reload","cached","action","path","Auth","user","isEqual","host","username","password","res","rej","win","event","emailOrPass","set","Data","collection","document","operand","query","append","Email","email","Groups","group","name","Logger","logLevel","level","log","length","page","logs","LOG_LEVEL","Pdf","fileName","blob","download","content","template","_Socket","retry","channel","payload","Socket","Storage","target","link","PromiseProgress","progress","response","contentLength","total","chunks","loaded","reader","process","result","chunk","files","data","f","Users","Settings","detailed","acc","key","variable","Static","Momentum"],"mappings":"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","x_google_ignoreList":[0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]}
|