@ztimson/momentum 0.14.1 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/momentum.cjs +1 -1
- package/dist/momentum.cjs.map +1 -1
- package/dist/momentum.mjs +33 -33
- package/dist/momentum.mjs.map +1 -1
- package/package.json +1 -1
package/dist/momentum.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"momentum.mjs","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/sockets.ts","../src/storage.ts","../src/users.ts","../src/settings.ts","../src/static.ts","../src/momentum.ts"],"sourcesContent":["var M = Object.defineProperty;\nvar U = (n, e, t) => e in n ? M(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t;\nvar c = (n, e, t) => (U(n, typeof e != \"symbol\" ? e + \"\" : e, t), t);\nfunction Y(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 _(n) {\n return JSON.parse(JSON.stringify(n));\n}\nfunction A(n, e, t) {\n if (!(n == null || !e))\n return e.split(/[.[\\]]/g).filter((r) => r.length).reduce((r, s, o, i) => {\n if ((s[0] == '\"' || s[0] == \"'\") && (s = s.slice(1, -1)), !(r != null && r.hasOwnProperty(s))) {\n if (t == null)\n return;\n r[s] = {};\n }\n return t !== void 0 && o == i.length - 1 ? r[s] = t : r[s];\n }, n);\n}\nfunction H(n, e, t = {}) {\n if (typeof n == \"object\" && !Array.isArray(n)) {\n for (const r of Object.keys(n)) {\n const s = e ? e + \".\" + r : r;\n typeof n[r] == \"object\" ? H(n[r], s, t) : t[s] = n[r];\n }\n return t;\n }\n}\nfunction I(n, e, t = !1) {\n if (n == null)\n return t;\n if (Array.isArray(e))\n return e.findIndex((s, o) => !I(n[o], e[o], t)) == -1;\n const r = typeof e;\n return r != typeof n ? !1 : r == \"object\" ? Object.keys(e).find((s) => !I(n[s], e[s], t)) == null : r == \"function\" ? n.toString() == e.toString() : n == e;\n}\nfunction m(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((o) => m(n[o], e[o]));\n}\nfunction tt(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 et(n, e) {\n let t = [];\n return JSON.parse(JSON.stringify(n, (r, s) => {\n if (typeof s == \"object\" && s !== null) {\n if (t.includes(s))\n return;\n t.push(s);\n }\n return s;\n }, e));\n}\nfunction nt(n, e) {\n return n.indexOf(e) === -1 && n.push(e), n;\n}\nfunction rt(n, e) {\n return q([\n ...n.filter((t) => !e.includes((r) => m(t, r))),\n ...e.filter((t) => !n.includes((r) => m(t, r)))\n ]);\n}\nfunction st(n) {\n return function(e, t) {\n const r = A(e, n), s = A(t, n);\n return typeof r != \"string\" || typeof s != \"string\" ? 1 : r.toLowerCase().localeCompare(s.toLowerCase());\n };\n}\nfunction W(n, e = []) {\n return n.forEach((t) => Array.isArray(t) ? W(t, e) : e.push(t)), e;\n}\nfunction ot(n, e = !1) {\n return function(t, r) {\n const s = A(t, n), o = A(r, n);\n return typeof s == \"number\" && typeof o == \"number\" ? (e ? -1 : 1) * (s - o) : s > o ? e ? -1 : 1 : s < o ? e ? 1 : -1 : 0;\n };\n}\nfunction it(n, e) {\n return (t) => m(t[n], e);\n}\nfunction q(n) {\n for (let e = n.length - 1; e >= 0; e--)\n n.slice(0, e).find((t) => m(t, n[e])) && n.splice(e, 1);\n return n;\n}\nfunction ct(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 ut(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 $ {\n constructor() {\n c(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((s) => s === t);\n }\n static on(e, t) {\n var s;\n const r = e.toString();\n return this.listeners[r] || (this.listeners[r] = []), (s = this.listeners[r]) == null || s.push(t), () => this.off(e, t);\n }\n static once(e, t) {\n return new Promise((r) => {\n const s = this.on(e, (...o) => {\n r(o.length == 1 ? o[0] : o), t && t(...o), s();\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 s = this.on(e, (...o) => {\n r(o.length == 1 ? o[0] : o), t && t(...o), s();\n });\n });\n }\n}\nc($, \"listeners\", {});\nconst d = class d {\n constructor(e = {}) {\n c(this, \"interceptors\", {});\n c(this, \"headers\", {});\n this.opts = e, this.headers = e.headers || {}, e.interceptors && e.interceptors.forEach((t) => d.addInterceptor(t));\n }\n static addInterceptor(e) {\n const t = Object.keys(d.interceptors).length.toString();\n return d.interceptors[t] = e, () => {\n d.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 s, o;\n if (!this.opts.url && !e.url)\n throw new Error(\"URL needs to be set\");\n const t = ((s = e.url) != null && s.startsWith(\"http\") ? e.url : (this.opts.url || \"\") + (e.url || \"\")).replace(/([^:]\\/)\\/+/g, \"$1\"), r = Y({\n \"Content-Type\": e.body && !(e.body instanceof FormData) ? \"application/json\" : void 0,\n ...d.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: (o = r[\"Content-Type\"]) != null && o.startsWith(\"application/json\") && e.body ? JSON.stringify(e.body) : e.body\n }).then(async (i) => {\n var g, E;\n for (let O of [...Object.values(d.interceptors), ...Object.values(this.interceptors)])\n await new Promise((S) => O(i, () => S()));\n if (!i.ok)\n throw new Error(i.statusText);\n return !e.skipConverting && ((g = i.headers.get(\"Content-Type\")) != null && g.startsWith(\"application/json\")) ? await i.json() : !e.skipConverting && ((E = i.headers.get(\"Content-Type\")) != null && E.startsWith(\"text/plain\")) ? await i.text() : i;\n });\n }\n};\nc(d, \"interceptors\", {}), c(d, \"headers\", {});\nlet T = d;\nT.addInterceptor((n, e) => {\n if (n.status == 200)\n return e();\n throw n.status == 400 ? new D(n.statusText) : n.status == 401 ? new k(n.statusText) : n.status == 403 ? new G(n.statusText) : n.status == 404 ? new j(n.statusText) : n.status == 500 ? new P(n.statusText) : new y(n.statusText, n.status);\n});\nclass y extends Error {\n constructor(t, r) {\n super(t);\n c(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), s = new this(t.message || t.toString());\n return Object.assign(s, {\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}\nc(y, \"code\", 500);\nclass D extends y {\n constructor(e = \"Bad Request\") {\n super(e);\n }\n static instanceof(e) {\n return e.constructor.code == this.code;\n }\n}\nc(D, \"code\", 400);\nclass k extends y {\n constructor(e = \"Unauthorized\") {\n super(e);\n }\n static instanceof(e) {\n return e.constructor.code == this.code;\n }\n}\nc(k, \"code\", 401);\nclass G extends y {\n constructor(e = \"Forbidden\") {\n super(e);\n }\n static instanceof(e) {\n return e.constructor.code == this.code;\n }\n}\nc(G, \"code\", 403);\nclass j extends y {\n constructor(e = \"Not Found\") {\n super(e);\n }\n static instanceof(e) {\n return e.constructor.code == this.code;\n }\n}\nc(j, \"code\", 404);\nclass P extends y {\n constructor(e = \"Internal Server Error\") {\n super(e);\n }\n static instanceof(e) {\n return e.constructor.code == this.code;\n }\n}\nc(P, \"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}, B = {\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}, at = {\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 f = class f extends $ {\n constructor(e) {\n super(), this.namespace = e;\n }\n pad(e, t, r, s = !1) {\n const o = e.toString(), i = t - o.length;\n if (i <= 0)\n return o;\n const g = Array(~~(i / r.length)).fill(r).join(\"\");\n return s ? o + g : g + o;\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 (f.LOG_LEVEL < 4)\n return;\n const t = this.format(...e);\n f.emit(4, t), console.debug(B.LIGHT_GREY + t + x.CLEAR);\n }\n log(...e) {\n if (f.LOG_LEVEL < 3)\n return;\n const t = this.format(...e);\n f.emit(3, t), console.log(x.CLEAR + t);\n }\n info(...e) {\n if (f.LOG_LEVEL < 2)\n return;\n const t = this.format(...e);\n f.emit(2, t), console.info(B.BLUE + t + x.CLEAR);\n }\n warn(...e) {\n if (f.LOG_LEVEL < 1)\n return;\n const t = this.format(...e);\n f.emit(1, t), console.warn(B.YELLOW + t + x.CLEAR);\n }\n error(...e) {\n if (f.LOG_LEVEL < 0)\n return;\n const t = this.format(...e);\n f.emit(0, t), console.error(B.RED + t + x.CLEAR);\n }\n};\nc(f, \"LOG_LEVEL\", 4);\nlet L = f;\nfunction ht(n, e) {\n return n.length - n.replaceAll(e, \"\").length;\n}\nfunction lt(n) {\n return Array(n).fill(null).map(() => Math.round(Math.random() * 15).toString(16)).join(\"\");\n}\nconst R = \"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\", N = \"0123456789\", b = \"~`!@#$%^&*()_-+={[}]|\\\\:;\\\"'<,>.?/\", v = R + N + b;\nfunction ft(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 dt(n, e, t) {\n return `${n.slice(0, t)}${e}${n.slice(t + 1)}`;\n}\nfunction gt(n, e, t, r = !0) {\n const s = n.toString(), o = e - s.length;\n if (o <= 0)\n return s;\n const i = Array(~~(o / t.length)).fill(t).join(\"\");\n return r ? i + s : s + i;\n}\nfunction pt(n, e = v) {\n return Array(n).fill(null).map(() => {\n const t = ~~(Math.random() * e.length);\n return e[t];\n }).join(\"\");\n}\nfunction yt(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 s;\n do {\n const o = ~~(Math.random() * 3);\n e && o == 0 ? s = R[~~(Math.random() * R.length)] : t && o == 1 ? s = N[~~(Math.random() * N.length)] : r && o == 2 && (s = b[~~(Math.random() * b.length)]);\n } while (!s);\n return s;\n }).join(\"\");\n}\nfunction Et(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 z(n) {\n var e = J(V(Z(K(n), 8 * n.length)));\n return e.toLowerCase();\n}\nfunction J(n) {\n for (var e, t = \"0123456789ABCDEF\", r = \"\", s = 0; s < n.length; s++)\n e = n.charCodeAt(s), r += t.charAt(e >>> 4 & 15) + t.charAt(15 & e);\n return r;\n}\nfunction K(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 V(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 Z(n, e) {\n n[e >> 5] |= 128 << e % 32, n[14 + (e + 64 >>> 9 << 4)] = e;\n for (var t = 1732584193, r = -271733879, s = -1732584194, o = 271733878, i = 0; i < n.length; i += 16) {\n var g = t, E = r, O = s, S = o;\n r = l(r = l(r = l(r = l(r = h(r = h(r = h(r = h(r = a(r = a(r = a(r = a(r = u(r = u(r = u(r = u(r, s = u(s, o = u(o, t = u(t, r, s, o, n[i + 0], 7, -680876936), r, s, n[i + 1], 12, -389564586), t, r, n[i + 2], 17, 606105819), o, t, n[i + 3], 22, -1044525330), s = u(s, o = u(o, t = u(t, r, s, o, n[i + 4], 7, -176418897), r, s, n[i + 5], 12, 1200080426), t, r, n[i + 6], 17, -1473231341), o, t, n[i + 7], 22, -45705983), s = u(s, o = u(o, t = u(t, r, s, o, n[i + 8], 7, 1770035416), r, s, n[i + 9], 12, -1958414417), t, r, n[i + 10], 17, -42063), o, t, n[i + 11], 22, -1990404162), s = u(s, o = u(o, t = u(t, r, s, o, n[i + 12], 7, 1804603682), r, s, n[i + 13], 12, -40341101), t, r, n[i + 14], 17, -1502002290), o, t, n[i + 15], 22, 1236535329), s = a(s, o = a(o, t = a(t, r, s, o, n[i + 1], 5, -165796510), r, s, n[i + 6], 9, -1069501632), t, r, n[i + 11], 14, 643717713), o, t, n[i + 0], 20, -373897302), s = a(s, o = a(o, t = a(t, r, s, o, n[i + 5], 5, -701558691), r, s, n[i + 10], 9, 38016083), t, r, n[i + 15], 14, -660478335), o, t, n[i + 4], 20, -405537848), s = a(s, o = a(o, t = a(t, r, s, o, n[i + 9], 5, 568446438), r, s, n[i + 14], 9, -1019803690), t, r, n[i + 3], 14, -187363961), o, t, n[i + 8], 20, 1163531501), s = a(s, o = a(o, t = a(t, r, s, o, n[i + 13], 5, -1444681467), r, s, n[i + 2], 9, -51403784), t, r, n[i + 7], 14, 1735328473), o, t, n[i + 12], 20, -1926607734), s = h(s, o = h(o, t = h(t, r, s, o, n[i + 5], 4, -378558), r, s, n[i + 8], 11, -2022574463), t, r, n[i + 11], 16, 1839030562), o, t, n[i + 14], 23, -35309556), s = h(s, o = h(o, t = h(t, r, s, o, n[i + 1], 4, -1530992060), r, s, n[i + 4], 11, 1272893353), t, r, n[i + 7], 16, -155497632), o, t, n[i + 10], 23, -1094730640), s = h(s, o = h(o, t = h(t, r, s, o, n[i + 13], 4, 681279174), r, s, n[i + 0], 11, -358537222), t, r, n[i + 3], 16, -722521979), o, t, n[i + 6], 23, 76029189), s = h(s, o = h(o, t = h(t, r, s, o, n[i + 9], 4, -640364487), r, s, n[i + 12], 11, -421815835), t, r, n[i + 15], 16, 530742520), o, t, n[i + 2], 23, -995338651), s = l(s, o = l(o, t = l(t, r, s, o, n[i + 0], 6, -198630844), r, s, n[i + 7], 10, 1126891415), t, r, n[i + 14], 15, -1416354905), o, t, n[i + 5], 21, -57434055), s = l(s, o = l(o, t = l(t, r, s, o, n[i + 12], 6, 1700485571), r, s, n[i + 3], 10, -1894986606), t, r, n[i + 10], 15, -1051523), o, t, n[i + 1], 21, -2054922799), s = l(s, o = l(o, t = l(t, r, s, o, n[i + 8], 6, 1873313359), r, s, n[i + 15], 10, -30611744), t, r, n[i + 6], 15, -1560198380), o, t, n[i + 13], 21, 1309151649), s = l(s, o = l(o, t = l(t, r, s, o, n[i + 4], 6, -145523070), r, s, n[i + 11], 10, -1120210379), t, r, n[i + 2], 15, 718787259), o, t, n[i + 9], 21, -343485551), t = p(t, g), r = p(r, E), s = p(s, O), o = p(o, S);\n }\n return Array(t, r, s, o);\n}\nfunction C(n, e, t, r, s, o) {\n return p(Q(p(p(e, n), p(r, o)), s), t);\n}\nfunction u(n, e, t, r, s, o, i) {\n return C(e & t | ~e & r, n, e, s, o, i);\n}\nfunction a(n, e, t, r, s, o, i) {\n return C(e & r | t & ~r, n, e, s, o, i);\n}\nfunction h(n, e, t, r, s, o, i) {\n return C(e ^ t ^ r, n, e, s, o, i);\n}\nfunction l(n, e, t, r, s, o, i) {\n return C(t ^ (e | ~r), n, e, s, o, i);\n}\nfunction p(n, e) {\n var t = (65535 & n) + (65535 & e);\n return (n >> 16) + (e >> 16) + (t >> 16) << 16 | 65535 & t;\n}\nfunction Q(n, e) {\n return n << e | n >>> 32 - e;\n}\nfunction xt(n) {\n return /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$/.test(n);\n}\nfunction wt(n) {\n return Object.entries(n).map(\n ([e, t]) => encodeURIComponent(e) + \"=\" + encodeURIComponent(t)\n ).join(\"&\");\n}\nfunction mt(n, e = \"mp\") {\n return n ? `https://www.gravatar.com/avatar/${z(n)}?d=${e}` : \"\";\n}\nfunction Bt(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 s = t.query.split(\"&\"), o = {};\n s.forEach((i) => {\n const [g, E] = i.split(\"=\");\n o[g] = E;\n }), t.query = o;\n }\n return t;\n}\nclass At extends Promise {\n constructor(t) {\n super((r, s) => t(\n (o) => r(o),\n (o) => s(o),\n (o) => this.progress = o\n ));\n c(this, \"listeners\", []);\n c(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 Ct(n) {\n return (n instanceof Date ? n.getTime() : n) - (/* @__PURE__ */ new Date()).getTime();\n}\nfunction Ot(n) {\n return new Promise((e) => setTimeout(e, n));\n}\nfunction St(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}\nexport {\n w as ASet,\n D as BadRequestError,\n at as CliBackground,\n x as CliEffects,\n B as CliForeground,\n y as CustomError,\n G as ForbiddenError,\n P as InternalServerError,\n F as LOG_LEVEL,\n L as Logger,\n j as NotFoundError,\n At as PromiseProgress,\n $ as TypedEmitter,\n k as UnauthorizedError,\n T as XHR,\n nt as addUnique,\n rt as arrayDiff,\n st as caseInsensitiveSort,\n Y as clean,\n ht as countChars,\n lt as createHex,\n _ as deepCopy,\n A as dotNotation,\n ut as download,\n it as findByProp,\n W as flattenArr,\n H as flattenObj,\n wt as formEncode,\n St as formatDate,\n ft as formatPhoneNumber,\n mt as gravatar,\n I as includes,\n dt as insertAt,\n m as isEqual,\n ct as makeArray,\n q as makeUnique,\n Et as matchAll,\n z as md5,\n tt as mixin,\n gt as pad,\n pt as randomString,\n yt as randomStringBuilder,\n et as sanitizedJSON,\n Ot as sleep,\n ot as sortByProp,\n Ct as timeUntil,\n Bt as urlParser,\n xt 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\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\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;\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 }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\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 {TypedEmitter, XhrOptions, 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}\n\nexport type ActionResponse = {\n\taction: string;\n\tstdout: any[];\n\tstderr: any[];\n\treturn?: any;\n}\n\nexport enum ActionType {\n\t'DISABLED',\n\t'CRON',\n\t'EVENT',\n\t'GET',\n\t'POST',\n\t'PATCH',\n\t'PUT',\n\t'DELETE'\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: XhrOptions = {}) {\n\t\treturn this.api.request<T>({url: (`/api/actions/run/` + path).replaceAll('//', '/'), ...opts});\n\t}\n\n\trunById(action: string | Action, opts: XhrOptions = {}) {\n\t\tconst id = typeof action == 'string' ? action : action._id;\n\t\treturn this.api.request<ActionResponse>({url: '/api/actions/run-by-id/' + id, ...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/send';\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\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\turl: location.href,\r\n\t\t\t\tres: [window.innerWidth, window.innerHeight],\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';\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.downloadName || <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, opts.downloadAs || 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 {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 & 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\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.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.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":["M","U","n","c","Y","m","o","ut","$","s","r","d","t","i","g","E","O","S","T","D","k","G","j","P","y","x","B","F","f","At","Api","XHR","url","opts","__publicField","TypedEmitter","token","options","req","resp","err","extendStatics","b","p","__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","u","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","v","logs","LOG_LEVEL","_Socket","retry","channel","payload","Socket","Storage","target","link","PromiseProgress","progress","response","contentLength","total","chunks","loaded","reader","process","result","blob","download","chunk","files","data","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]}
|
|
1
|
+
{"version":3,"file":"momentum.mjs","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/sockets.ts","../src/storage.ts","../src/users.ts","../src/settings.ts","../src/static.ts","../src/momentum.ts"],"sourcesContent":["var M = Object.defineProperty;\nvar U = (n, e, t) => e in n ? M(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t;\nvar c = (n, e, t) => (U(n, typeof e != \"symbol\" ? e + \"\" : e, t), t);\nfunction Y(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 _(n) {\n return JSON.parse(JSON.stringify(n));\n}\nfunction A(n, e, t) {\n if (!(n == null || !e))\n return e.split(/[.[\\]]/g).filter((r) => r.length).reduce((r, s, o, i) => {\n if ((s[0] == '\"' || s[0] == \"'\") && (s = s.slice(1, -1)), !(r != null && r.hasOwnProperty(s))) {\n if (t == null)\n return;\n r[s] = {};\n }\n return t !== void 0 && o == i.length - 1 ? r[s] = t : r[s];\n }, n);\n}\nfunction H(n, e, t = {}) {\n if (typeof n == \"object\" && !Array.isArray(n)) {\n for (const r of Object.keys(n)) {\n const s = e ? e + \".\" + r : r;\n typeof n[r] == \"object\" ? H(n[r], s, t) : t[s] = n[r];\n }\n return t;\n }\n}\nfunction I(n, e, t = !1) {\n if (n == null)\n return t;\n if (Array.isArray(e))\n return e.findIndex((s, o) => !I(n[o], e[o], t)) == -1;\n const r = typeof e;\n return r != typeof n ? !1 : r == \"object\" ? Object.keys(e).find((s) => !I(n[s], e[s], t)) == null : r == \"function\" ? n.toString() == e.toString() : n == e;\n}\nfunction m(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((o) => m(n[o], e[o]));\n}\nfunction tt(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 et(n, e) {\n let t = [];\n return JSON.parse(JSON.stringify(n, (r, s) => {\n if (typeof s == \"object\" && s !== null) {\n if (t.includes(s))\n return;\n t.push(s);\n }\n return s;\n }, e));\n}\nfunction nt(n, e) {\n return n.indexOf(e) === -1 && n.push(e), n;\n}\nfunction rt(n, e) {\n return q([\n ...n.filter((t) => !e.includes((r) => m(t, r))),\n ...e.filter((t) => !n.includes((r) => m(t, r)))\n ]);\n}\nfunction st(n) {\n return function(e, t) {\n const r = A(e, n), s = A(t, n);\n return typeof r != \"string\" || typeof s != \"string\" ? 1 : r.toLowerCase().localeCompare(s.toLowerCase());\n };\n}\nfunction W(n, e = []) {\n return n.forEach((t) => Array.isArray(t) ? W(t, e) : e.push(t)), e;\n}\nfunction ot(n, e = !1) {\n return function(t, r) {\n const s = A(t, n), o = A(r, n);\n return typeof s == \"number\" && typeof o == \"number\" ? (e ? -1 : 1) * (s - o) : s > o ? e ? -1 : 1 : s < o ? e ? 1 : -1 : 0;\n };\n}\nfunction it(n, e) {\n return (t) => m(t[n], e);\n}\nfunction q(n) {\n for (let e = n.length - 1; e >= 0; e--)\n n.slice(0, e).find((t) => m(t, n[e])) && n.splice(e, 1);\n return n;\n}\nfunction ct(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 ut(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 $ {\n constructor() {\n c(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((s) => s === t);\n }\n static on(e, t) {\n var s;\n const r = e.toString();\n return this.listeners[r] || (this.listeners[r] = []), (s = this.listeners[r]) == null || s.push(t), () => this.off(e, t);\n }\n static once(e, t) {\n return new Promise((r) => {\n const s = this.on(e, (...o) => {\n r(o.length == 1 ? o[0] : o), t && t(...o), s();\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 s = this.on(e, (...o) => {\n r(o.length == 1 ? o[0] : o), t && t(...o), s();\n });\n });\n }\n}\nc($, \"listeners\", {});\nconst d = class d {\n constructor(e = {}) {\n c(this, \"interceptors\", {});\n c(this, \"headers\", {});\n this.opts = e, this.headers = e.headers || {}, e.interceptors && e.interceptors.forEach((t) => d.addInterceptor(t));\n }\n static addInterceptor(e) {\n const t = Object.keys(d.interceptors).length.toString();\n return d.interceptors[t] = e, () => {\n d.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 s, o;\n if (!this.opts.url && !e.url)\n throw new Error(\"URL needs to be set\");\n const t = ((s = e.url) != null && s.startsWith(\"http\") ? e.url : (this.opts.url || \"\") + (e.url || \"\")).replace(/([^:]\\/)\\/+/g, \"$1\"), r = Y({\n \"Content-Type\": e.body && !(e.body instanceof FormData) ? \"application/json\" : void 0,\n ...d.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: (o = r[\"Content-Type\"]) != null && o.startsWith(\"application/json\") && e.body ? JSON.stringify(e.body) : e.body\n }).then(async (i) => {\n var g, E;\n for (let O of [...Object.values(d.interceptors), ...Object.values(this.interceptors)])\n await new Promise((S) => O(i, () => S()));\n if (!i.ok)\n throw new Error(i.statusText);\n return !e.skipConverting && ((g = i.headers.get(\"Content-Type\")) != null && g.startsWith(\"application/json\")) ? await i.json() : !e.skipConverting && ((E = i.headers.get(\"Content-Type\")) != null && E.startsWith(\"text/plain\")) ? await i.text() : i;\n });\n }\n};\nc(d, \"interceptors\", {}), c(d, \"headers\", {});\nlet T = d;\nT.addInterceptor((n, e) => {\n if (n.status == 200)\n return e();\n throw n.status == 400 ? new D(n.statusText) : n.status == 401 ? new k(n.statusText) : n.status == 403 ? new G(n.statusText) : n.status == 404 ? new j(n.statusText) : n.status == 500 ? new P(n.statusText) : new y(n.statusText, n.status);\n});\nclass y extends Error {\n constructor(t, r) {\n super(t);\n c(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), s = new this(t.message || t.toString());\n return Object.assign(s, {\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}\nc(y, \"code\", 500);\nclass D extends y {\n constructor(e = \"Bad Request\") {\n super(e);\n }\n static instanceof(e) {\n return e.constructor.code == this.code;\n }\n}\nc(D, \"code\", 400);\nclass k extends y {\n constructor(e = \"Unauthorized\") {\n super(e);\n }\n static instanceof(e) {\n return e.constructor.code == this.code;\n }\n}\nc(k, \"code\", 401);\nclass G extends y {\n constructor(e = \"Forbidden\") {\n super(e);\n }\n static instanceof(e) {\n return e.constructor.code == this.code;\n }\n}\nc(G, \"code\", 403);\nclass j extends y {\n constructor(e = \"Not Found\") {\n super(e);\n }\n static instanceof(e) {\n return e.constructor.code == this.code;\n }\n}\nc(j, \"code\", 404);\nclass P extends y {\n constructor(e = \"Internal Server Error\") {\n super(e);\n }\n static instanceof(e) {\n return e.constructor.code == this.code;\n }\n}\nc(P, \"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}, B = {\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}, at = {\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 f = class f extends $ {\n constructor(e) {\n super(), this.namespace = e;\n }\n pad(e, t, r, s = !1) {\n const o = e.toString(), i = t - o.length;\n if (i <= 0)\n return o;\n const g = Array(~~(i / r.length)).fill(r).join(\"\");\n return s ? o + g : g + o;\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 (f.LOG_LEVEL < 4)\n return;\n const t = this.format(...e);\n f.emit(4, t), console.debug(B.LIGHT_GREY + t + x.CLEAR);\n }\n log(...e) {\n if (f.LOG_LEVEL < 3)\n return;\n const t = this.format(...e);\n f.emit(3, t), console.log(x.CLEAR + t);\n }\n info(...e) {\n if (f.LOG_LEVEL < 2)\n return;\n const t = this.format(...e);\n f.emit(2, t), console.info(B.BLUE + t + x.CLEAR);\n }\n warn(...e) {\n if (f.LOG_LEVEL < 1)\n return;\n const t = this.format(...e);\n f.emit(1, t), console.warn(B.YELLOW + t + x.CLEAR);\n }\n error(...e) {\n if (f.LOG_LEVEL < 0)\n return;\n const t = this.format(...e);\n f.emit(0, t), console.error(B.RED + t + x.CLEAR);\n }\n};\nc(f, \"LOG_LEVEL\", 4);\nlet L = f;\nfunction ht(n, e) {\n return n.length - n.replaceAll(e, \"\").length;\n}\nfunction lt(n) {\n return Array(n).fill(null).map(() => Math.round(Math.random() * 15).toString(16)).join(\"\");\n}\nconst R = \"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\", N = \"0123456789\", b = \"~`!@#$%^&*()_-+={[}]|\\\\:;\\\"'<,>.?/\", v = R + N + b;\nfunction ft(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 dt(n, e, t) {\n return `${n.slice(0, t)}${e}${n.slice(t + 1)}`;\n}\nfunction gt(n, e, t, r = !0) {\n const s = n.toString(), o = e - s.length;\n if (o <= 0)\n return s;\n const i = Array(~~(o / t.length)).fill(t).join(\"\");\n return r ? i + s : s + i;\n}\nfunction pt(n, e = v) {\n return Array(n).fill(null).map(() => {\n const t = ~~(Math.random() * e.length);\n return e[t];\n }).join(\"\");\n}\nfunction yt(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 s;\n do {\n const o = ~~(Math.random() * 3);\n e && o == 0 ? s = R[~~(Math.random() * R.length)] : t && o == 1 ? s = N[~~(Math.random() * N.length)] : r && o == 2 && (s = b[~~(Math.random() * b.length)]);\n } while (!s);\n return s;\n }).join(\"\");\n}\nfunction Et(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 z(n) {\n var e = J(V(Z(K(n), 8 * n.length)));\n return e.toLowerCase();\n}\nfunction J(n) {\n for (var e, t = \"0123456789ABCDEF\", r = \"\", s = 0; s < n.length; s++)\n e = n.charCodeAt(s), r += t.charAt(e >>> 4 & 15) + t.charAt(15 & e);\n return r;\n}\nfunction K(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 V(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 Z(n, e) {\n n[e >> 5] |= 128 << e % 32, n[14 + (e + 64 >>> 9 << 4)] = e;\n for (var t = 1732584193, r = -271733879, s = -1732584194, o = 271733878, i = 0; i < n.length; i += 16) {\n var g = t, E = r, O = s, S = o;\n r = l(r = l(r = l(r = l(r = h(r = h(r = h(r = h(r = a(r = a(r = a(r = a(r = u(r = u(r = u(r = u(r, s = u(s, o = u(o, t = u(t, r, s, o, n[i + 0], 7, -680876936), r, s, n[i + 1], 12, -389564586), t, r, n[i + 2], 17, 606105819), o, t, n[i + 3], 22, -1044525330), s = u(s, o = u(o, t = u(t, r, s, o, n[i + 4], 7, -176418897), r, s, n[i + 5], 12, 1200080426), t, r, n[i + 6], 17, -1473231341), o, t, n[i + 7], 22, -45705983), s = u(s, o = u(o, t = u(t, r, s, o, n[i + 8], 7, 1770035416), r, s, n[i + 9], 12, -1958414417), t, r, n[i + 10], 17, -42063), o, t, n[i + 11], 22, -1990404162), s = u(s, o = u(o, t = u(t, r, s, o, n[i + 12], 7, 1804603682), r, s, n[i + 13], 12, -40341101), t, r, n[i + 14], 17, -1502002290), o, t, n[i + 15], 22, 1236535329), s = a(s, o = a(o, t = a(t, r, s, o, n[i + 1], 5, -165796510), r, s, n[i + 6], 9, -1069501632), t, r, n[i + 11], 14, 643717713), o, t, n[i + 0], 20, -373897302), s = a(s, o = a(o, t = a(t, r, s, o, n[i + 5], 5, -701558691), r, s, n[i + 10], 9, 38016083), t, r, n[i + 15], 14, -660478335), o, t, n[i + 4], 20, -405537848), s = a(s, o = a(o, t = a(t, r, s, o, n[i + 9], 5, 568446438), r, s, n[i + 14], 9, -1019803690), t, r, n[i + 3], 14, -187363961), o, t, n[i + 8], 20, 1163531501), s = a(s, o = a(o, t = a(t, r, s, o, n[i + 13], 5, -1444681467), r, s, n[i + 2], 9, -51403784), t, r, n[i + 7], 14, 1735328473), o, t, n[i + 12], 20, -1926607734), s = h(s, o = h(o, t = h(t, r, s, o, n[i + 5], 4, -378558), r, s, n[i + 8], 11, -2022574463), t, r, n[i + 11], 16, 1839030562), o, t, n[i + 14], 23, -35309556), s = h(s, o = h(o, t = h(t, r, s, o, n[i + 1], 4, -1530992060), r, s, n[i + 4], 11, 1272893353), t, r, n[i + 7], 16, -155497632), o, t, n[i + 10], 23, -1094730640), s = h(s, o = h(o, t = h(t, r, s, o, n[i + 13], 4, 681279174), r, s, n[i + 0], 11, -358537222), t, r, n[i + 3], 16, -722521979), o, t, n[i + 6], 23, 76029189), s = h(s, o = h(o, t = h(t, r, s, o, n[i + 9], 4, -640364487), r, s, n[i + 12], 11, -421815835), t, r, n[i + 15], 16, 530742520), o, t, n[i + 2], 23, -995338651), s = l(s, o = l(o, t = l(t, r, s, o, n[i + 0], 6, -198630844), r, s, n[i + 7], 10, 1126891415), t, r, n[i + 14], 15, -1416354905), o, t, n[i + 5], 21, -57434055), s = l(s, o = l(o, t = l(t, r, s, o, n[i + 12], 6, 1700485571), r, s, n[i + 3], 10, -1894986606), t, r, n[i + 10], 15, -1051523), o, t, n[i + 1], 21, -2054922799), s = l(s, o = l(o, t = l(t, r, s, o, n[i + 8], 6, 1873313359), r, s, n[i + 15], 10, -30611744), t, r, n[i + 6], 15, -1560198380), o, t, n[i + 13], 21, 1309151649), s = l(s, o = l(o, t = l(t, r, s, o, n[i + 4], 6, -145523070), r, s, n[i + 11], 10, -1120210379), t, r, n[i + 2], 15, 718787259), o, t, n[i + 9], 21, -343485551), t = p(t, g), r = p(r, E), s = p(s, O), o = p(o, S);\n }\n return Array(t, r, s, o);\n}\nfunction C(n, e, t, r, s, o) {\n return p(Q(p(p(e, n), p(r, o)), s), t);\n}\nfunction u(n, e, t, r, s, o, i) {\n return C(e & t | ~e & r, n, e, s, o, i);\n}\nfunction a(n, e, t, r, s, o, i) {\n return C(e & r | t & ~r, n, e, s, o, i);\n}\nfunction h(n, e, t, r, s, o, i) {\n return C(e ^ t ^ r, n, e, s, o, i);\n}\nfunction l(n, e, t, r, s, o, i) {\n return C(t ^ (e | ~r), n, e, s, o, i);\n}\nfunction p(n, e) {\n var t = (65535 & n) + (65535 & e);\n return (n >> 16) + (e >> 16) + (t >> 16) << 16 | 65535 & t;\n}\nfunction Q(n, e) {\n return n << e | n >>> 32 - e;\n}\nfunction xt(n) {\n return /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$/.test(n);\n}\nfunction wt(n) {\n return Object.entries(n).map(\n ([e, t]) => encodeURIComponent(e) + \"=\" + encodeURIComponent(t)\n ).join(\"&\");\n}\nfunction mt(n, e = \"mp\") {\n return n ? `https://www.gravatar.com/avatar/${z(n)}?d=${e}` : \"\";\n}\nfunction Bt(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 s = t.query.split(\"&\"), o = {};\n s.forEach((i) => {\n const [g, E] = i.split(\"=\");\n o[g] = E;\n }), t.query = o;\n }\n return t;\n}\nclass At extends Promise {\n constructor(t) {\n super((r, s) => t(\n (o) => r(o),\n (o) => s(o),\n (o) => this.progress = o\n ));\n c(this, \"listeners\", []);\n c(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 Ct(n) {\n return (n instanceof Date ? n.getTime() : n) - (/* @__PURE__ */ new Date()).getTime();\n}\nfunction Ot(n) {\n return new Promise((e) => setTimeout(e, n));\n}\nfunction St(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}\nexport {\n w as ASet,\n D as BadRequestError,\n at as CliBackground,\n x as CliEffects,\n B as CliForeground,\n y as CustomError,\n G as ForbiddenError,\n P as InternalServerError,\n F as LOG_LEVEL,\n L as Logger,\n j as NotFoundError,\n At as PromiseProgress,\n $ as TypedEmitter,\n k as UnauthorizedError,\n T as XHR,\n nt as addUnique,\n rt as arrayDiff,\n st as caseInsensitiveSort,\n Y as clean,\n ht as countChars,\n lt as createHex,\n _ as deepCopy,\n A as dotNotation,\n ut as download,\n it as findByProp,\n W as flattenArr,\n H as flattenObj,\n wt as formEncode,\n St as formatDate,\n ft as formatPhoneNumber,\n mt as gravatar,\n I as includes,\n dt as insertAt,\n m as isEqual,\n ct as makeArray,\n q as makeUnique,\n Et as matchAll,\n z as md5,\n tt as mixin,\n gt as pad,\n pt as randomString,\n yt as randomStringBuilder,\n et as sanitizedJSON,\n Ot as sleep,\n ot as sortByProp,\n Ct as timeUntil,\n Bt as urlParser,\n xt 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\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\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;\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 }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\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 {TypedEmitter, XhrOptions, 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}\n\nexport type ActionResponse = {\n\taction: string;\n\tstdout: any[];\n\tstderr: any[];\n\treturn?: any;\n}\n\nexport enum ActionType {\n\t'DISABLED',\n\t'CRON',\n\t'EVENT',\n\t'GET',\n\t'POST',\n\t'PATCH',\n\t'PUT',\n\t'DELETE'\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: XhrOptions = {}) {\n\t\treturn this.api.request<T>({url: (`/api/actions/run/` + path).replaceAll('//', '/'), ...opts});\n\t}\n\n\trunById(action: string | Action, opts: XhrOptions = {}) {\n\t\tconst id = typeof action == 'string' ? action : action._id;\n\t\treturn this.api.request<ActionResponse>({url: '/api/actions/run-by-id/' + id, ...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/send';\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\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\turl: location.href,\r\n\t\t\t\tres: [window.innerWidth, window.innerHeight],\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';\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 {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 & 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\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.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.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":["M","U","n","c","Y","m","o","ut","$","s","r","d","t","i","g","E","O","S","T","D","k","G","j","P","y","x","B","F","f","At","Api","XHR","url","opts","__publicField","TypedEmitter","token","options","req","resp","err","extendStatics","b","p","__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","u","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","v","logs","LOG_LEVEL","_Socket","retry","channel","payload","Socket","Storage","target","link","PromiseProgress","progress","response","contentLength","total","chunks","loaded","reader","process","result","blob","download","chunk","files","data","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]}
|