UNPKG

@dbs-portal/core-config

Version:

Advanced configuration management for DBS Portal with convict schema validation and deepmerge support

1,406 lines 129 kB
import Ut, { existsSync as Qr, readFileSync as en, watchFile as tn, unwatchFile as rn } from "fs"; import nn, { resolve as lt } from "path"; var Ue = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {}; function $t(f) { return f && f.__esModule && Object.prototype.hasOwnProperty.call(f, "default") ? f.default : f; } function on(f) { if (Object.prototype.hasOwnProperty.call(f, "__esModule")) return f; var e = f.default; if (typeof e == "function") { var t = function n() { return this instanceof n ? Reflect.construct(e, arguments, this.constructor) : e.apply(this, arguments); }; t.prototype = e.prototype; } else t = {}; return Object.defineProperty(t, "__esModule", { value: !0 }), Object.keys(f).forEach(function(n) { var l = Object.getOwnPropertyDescriptor(f, n); Object.defineProperty(t, n, l.get ? l : { enumerable: !0, get: function() { return f[n]; } }); }), t; } function Nt(f) { throw new Error('Could not dynamically require "' + f + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.'); } const sn = {}, an = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ __proto__: null, default: sn }, Symbol.toStringTag, { value: "Module" })), cn = /* @__PURE__ */ on(an); var ut, jt; function ln() { if (jt) return ut; jt = 1; var f = cn, e = Ut, t = nn; function n(h) { if (h !== h.toLowerCase() && h !== h.toUpperCase() || (h = h.toLowerCase()), h.indexOf("-") === -1 && h.indexOf("_") === -1) return h; { let L = "", T = !1; const v = h.match(/^-+/); for (let U = v ? v[0].length : 0; U < h.length; U++) { let P = h.charAt(U); T && (T = !1, P = P.toUpperCase()), U !== 0 && (P === "-" || P === "_") ? T = !0 : P !== "-" && P !== "_" && (L += P); } return L; } } function l(h, S) { const L = h.toLowerCase(); S = S || "-"; let T = ""; for (let v = 0; v < h.length; v++) { const U = L.charAt(v), P = h.charAt(v); U !== P && v > 0 ? T += `${S}${L.charAt(v)}` : T += P; } return T; } function _(h) { return h == null ? !1 : typeof h == "number" || /^0x[0-9a-f]+$/i.test(h) ? !0 : /^0[^.]/.test(h) ? !1 : /^[-]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(h); } function N(h) { if (Array.isArray(h)) return h.map((P) => typeof P != "string" ? P + "" : P); h = h.trim(); let S = 0, L = null, T = null, v = null; const U = []; for (let P = 0; P < h.length; P++) { if (L = T, T = h.charAt(P), T === " " && !v) { L !== " " && S++; continue; } T === v ? v = null : (T === "'" || T === '"') && !v && (v = T), U[S] || (U[S] = ""), U[S] += T; } return U; } var I; (function(h) { h.BOOLEAN = "boolean", h.STRING = "string", h.NUMBER = "number", h.ARRAY = "array"; })(I || (I = {})); let j; class H { constructor(S) { j = S; } parse(S, L) { const T = Object.assign({ alias: void 0, array: void 0, boolean: void 0, config: void 0, configObjects: void 0, configuration: void 0, coerce: void 0, count: void 0, default: void 0, envPrefix: void 0, narg: void 0, normalize: void 0, string: void 0, number: void 0, __: void 0, key: void 0 }, L), v = N(S), U = z(Object.assign(/* @__PURE__ */ Object.create(null), T.alias)), P = Object.assign({ "boolean-negation": !0, "camel-case-expansion": !0, "combine-arrays": !1, "dot-notation": !0, "duplicate-arguments-array": !0, "flatten-duplicate-arrays": !0, "greedy-arrays": !0, "halt-at-non-option": !1, "nargs-eats-options": !1, "negation-prefix": "no-", "parse-numbers": !0, "parse-positional-numbers": !0, "populate--": !1, "set-placeholder-key": !1, "short-option-groups": !0, "strip-aliased": !1, "strip-dashed": !1, "unknown-options-as-args": !1 }, T.configuration), k = Object.assign(/* @__PURE__ */ Object.create(null), T.default), pe = T.configObjects || [], ue = T.envPrefix, _e = P["populate--"], ae = _e ? "--" : "_", se = /* @__PURE__ */ Object.create(null), p = /* @__PURE__ */ Object.create(null), g = T.__ || j.format, a = { aliases: /* @__PURE__ */ Object.create(null), arrays: /* @__PURE__ */ Object.create(null), bools: /* @__PURE__ */ Object.create(null), strings: /* @__PURE__ */ Object.create(null), numbers: /* @__PURE__ */ Object.create(null), counts: /* @__PURE__ */ Object.create(null), normalize: /* @__PURE__ */ Object.create(null), configs: /* @__PURE__ */ Object.create(null), nargs: /* @__PURE__ */ Object.create(null), coercions: /* @__PURE__ */ Object.create(null), keys: [] }, m = /^-([0-9]+(\.[0-9]+)?|\.[0-9]+)$/, b = new RegExp("^--" + P["negation-prefix"] + "(.+)"); [].concat(T.array || []).filter(Boolean).forEach(function(o) { const s = typeof o == "object" ? o.key : o, E = Object.keys(o).map(function(u) { return { boolean: "bools", string: "strings", number: "numbers" }[u]; }).filter(Boolean).pop(); E && (a[E][s] = !0), a.arrays[s] = !0, a.keys.push(s); }), [].concat(T.boolean || []).filter(Boolean).forEach(function(o) { a.bools[o] = !0, a.keys.push(o); }), [].concat(T.string || []).filter(Boolean).forEach(function(o) { a.strings[o] = !0, a.keys.push(o); }), [].concat(T.number || []).filter(Boolean).forEach(function(o) { a.numbers[o] = !0, a.keys.push(o); }), [].concat(T.count || []).filter(Boolean).forEach(function(o) { a.counts[o] = !0, a.keys.push(o); }), [].concat(T.normalize || []).filter(Boolean).forEach(function(o) { a.normalize[o] = !0, a.keys.push(o); }), typeof T.narg == "object" && Object.entries(T.narg).forEach(([o, s]) => { typeof s == "number" && (a.nargs[o] = s, a.keys.push(o)); }), typeof T.coerce == "object" && Object.entries(T.coerce).forEach(([o, s]) => { typeof s == "function" && (a.coercions[o] = s, a.keys.push(o)); }), typeof T.config < "u" && (Array.isArray(T.config) || typeof T.config == "string" ? [].concat(T.config).filter(Boolean).forEach(function(o) { a.configs[o] = !0; }) : typeof T.config == "object" && Object.entries(T.config).forEach(([o, s]) => { (typeof s == "boolean" || typeof s == "function") && (a.configs[o] = s); })), tt(T.key, U, T.default, a.arrays), Object.keys(k).forEach(function(o) { (a.aliases[o] || []).forEach(function(s) { k[s] = k[o]; }); }); let x = null; rt(); let y = []; const O = Object.assign(/* @__PURE__ */ Object.create(null), { _: [] }), V = {}; for (let o = 0; o < v.length; o++) { const s = v[o], E = s.replace(/^-{3,}/, "---"); let u, i, A, w, D, W; if (s !== "--" && ie(s)) $(s); else if (E.match(/---+(=|$)/)) { $(s); continue; } else if (s.match(/^--.+=/) || !P["short-option-groups"] && s.match(/^-.+=/)) w = s.match(/^--?([^=]+)=([\s\S]*)$/), w !== null && Array.isArray(w) && w.length >= 3 && (M(w[1], a.arrays) ? o = G(o, w[1], v, w[2]) : M(w[1], a.nargs) !== !1 ? o = B(o, w[1], v, w[2]) : F(w[1], w[2])); else if (s.match(b) && P["boolean-negation"]) w = s.match(b), w !== null && Array.isArray(w) && w.length >= 2 && (i = w[1], F(i, M(i, a.arrays) ? [!1] : !1)); else if (s.match(/^--.+/) || !P["short-option-groups"] && s.match(/^-[^-]+/)) w = s.match(/^--?(.+)/), w !== null && Array.isArray(w) && w.length >= 2 && (i = w[1], M(i, a.arrays) ? o = G(o, i, v) : M(i, a.nargs) !== !1 ? o = B(o, i, v) : (D = v[o + 1], D !== void 0 && (!D.match(/^-/) || D.match(m)) && !M(i, a.bools) && !M(i, a.counts) || /^(true|false)$/.test(D) ? (F(i, D), o++) : F(i, ye(i)))); else if (s.match(/^-.\..+=/)) w = s.match(/^-([^=]+)=([\s\S]*)$/), w !== null && Array.isArray(w) && w.length >= 3 && F(w[1], w[2]); else if (s.match(/^-.\..+/) && !s.match(m)) D = v[o + 1], w = s.match(/^-(.\..+)/), w !== null && Array.isArray(w) && w.length >= 2 && (i = w[1], D !== void 0 && !D.match(/^-/) && !M(i, a.bools) && !M(i, a.counts) ? (F(i, D), o++) : F(i, ye(i))); else if (s.match(/^-[^-]+/) && !s.match(m)) { A = s.slice(1, -1).split(""), u = !1; for (let K = 0; K < A.length; K++) { if (D = s.slice(K + 2), A[K + 1] && A[K + 1] === "=") { W = s.slice(K + 3), i = A[K], M(i, a.arrays) ? o = G(o, i, v, W) : M(i, a.nargs) !== !1 ? o = B(o, i, v, W) : F(i, W), u = !0; break; } if (D === "-") { F(A[K], D); continue; } if (/[A-Za-z]/.test(A[K]) && /^-?\d+(\.\d*)?(e-?\d+)?$/.test(D) && M(D, a.bools) === !1) { F(A[K], D), u = !0; break; } if (A[K + 1] && A[K + 1].match(/\W/)) { F(A[K], D), u = !0; break; } else F(A[K], ye(A[K])); } i = s.slice(-1)[0], !u && i !== "-" && (M(i, a.arrays) ? o = G(o, i, v) : M(i, a.nargs) !== !1 ? o = B(o, i, v) : (D = v[o + 1], D !== void 0 && (!/^(-|--)[^-]/.test(D) || D.match(m)) && !M(i, a.bools) && !M(i, a.counts) || /^(true|false)$/.test(D) ? (F(i, D), o++) : F(i, ye(i)))); } else if (s.match(/^-[0-9]$/) && s.match(m) && M(s.slice(1), a.bools)) i = s.slice(1), F(i, ye(i)); else if (s === "--") { y = v.slice(o + 1); break; } else if (P["halt-at-non-option"]) { y = v.slice(o); break; } else $(s); } We(O, !0), We(O, !1), Ee(O), et(), Ie(O, a.aliases, k, !0), Ke(O), P["set-placeholder-key"] && ke(O), Object.keys(a.counts).forEach(function(o) { be(O, o.split(".")) || F(o, 0); }), _e && y.length && (O[ae] = []), y.forEach(function(o) { O[ae].push(o); }), P["camel-case-expansion"] && P["strip-dashed"] && Object.keys(O).filter((o) => o !== "--" && o.includes("-")).forEach((o) => { delete O[o]; }), P["strip-aliased"] && [].concat(...Object.keys(U).map((o) => U[o])).forEach((o) => { P["camel-case-expansion"] && o.includes("-") && delete O[o.split(".").map((s) => n(s)).join(".")], delete O[o]; }); function $(o) { const s = Z("_", o); (typeof s == "string" || typeof s == "number") && O._.push(s); } function B(o, s, E, u) { let i, A = M(s, a.nargs); if (A = typeof A != "number" || isNaN(A) ? 1 : A, A === 0) return ce(u) || (x = Error(g("Argument unexpected for: %s", s))), F(s, ye(s)), o; let w = ce(u) ? 0 : 1; if (P["nargs-eats-options"]) E.length - (o + 1) + w < A && (x = Error(g("Not enough arguments following: %s", s))), w = A; else { for (i = o + 1; i < E.length && (!E[i].match(/^-[^0-9]/) || E[i].match(m) || ie(E[i])); i++) w++; w < A && (x = Error(g("Not enough arguments following: %s", s))); } let D = Math.min(w, A); for (!ce(u) && D > 0 && (F(s, u), D--), i = o + 1; i < D + o + 1; i++) F(s, E[i]); return o + D; } function G(o, s, E, u) { let i = [], A = u || E[o + 1]; const w = M(s, a.nargs); if (M(s, a.bools) && !/^(true|false)$/.test(A)) i.push(!0); else if (ce(A) || ce(u) && /^-/.test(A) && !m.test(A) && !ie(A)) { if (k[s] !== void 0) { const D = k[s]; i = Array.isArray(D) ? D : [D]; } } else { ce(u) || i.push(X(s, u)); for (let D = o + 1; D < E.length && !(!P["greedy-arrays"] && i.length > 0 || w && typeof w == "number" && i.length >= w || (A = E[D], /^-/.test(A) && !m.test(A) && !ie(A))); D++) o = D, i.push(X(s, A)); } return typeof w == "number" && (w && i.length < w || isNaN(w) && i.length === 0) && (x = Error(g("Not enough arguments following: %s", s))), F(s, i), o; } function F(o, s) { if (/-/.test(o) && P["camel-case-expansion"]) { const i = o.split(".").map(function(A) { return n(A); }).join("."); Se(o, i); } const E = X(o, s), u = o.split("."); ve(O, u, E), a.aliases[o] && a.aliases[o].forEach(function(i) { const A = i.split("."); ve(O, A, E); }), u.length > 1 && P["dot-notation"] && (a.aliases[u[0]] || []).forEach(function(i) { let A = i.split("."); const w = [].concat(u); w.shift(), A = A.concat(w), (a.aliases[o] || []).includes(A.join(".")) || ve(O, A, E); }), M(o, a.normalize) && !M(o, a.arrays) && [o].concat(a.aliases[o] || []).forEach(function(A) { Object.defineProperty(V, A, { enumerable: !0, get() { return s; }, set(w) { s = typeof w == "string" ? j.normalize(w) : w; } }); }); } function Se(o, s) { a.aliases[o] && a.aliases[o].length || (a.aliases[o] = [s], se[s] = !0), a.aliases[s] && a.aliases[s].length || Se(s, o); } function X(o, s) { typeof s == "string" && (s[0] === "'" || s[0] === '"') && s[s.length - 1] === s[0] && (s = s.substring(1, s.length - 1)), (M(o, a.bools) || M(o, a.counts)) && typeof s == "string" && (s = s === "true"); let E = Array.isArray(s) ? s.map(function(u) { return Z(o, u); }) : Z(o, s); return M(o, a.counts) && (ce(E) || typeof E == "boolean") && (E = re()), M(o, a.normalize) && M(o, a.arrays) && (Array.isArray(s) ? E = s.map((u) => j.normalize(u)) : E = j.normalize(s)), E; } function Z(o, s) { return !P["parse-positional-numbers"] && o === "_" || !M(o, a.strings) && !M(o, a.bools) && !Array.isArray(s) && (_(s) && P["parse-numbers"] && Number.isSafeInteger(Math.floor(parseFloat(`${s}`))) || !ce(s) && M(o, a.numbers)) && (s = Number(s)), s; } function Ee(o) { const s = /* @__PURE__ */ Object.create(null); Ie(s, a.aliases, k), Object.keys(a.configs).forEach(function(E) { const u = o[E] || s[E]; if (u) try { let i = null; const A = j.resolve(j.cwd(), u), w = a.configs[E]; if (typeof w == "function") { try { i = w(A); } catch (D) { i = D; } if (i instanceof Error) { x = i; return; } } else i = j.require(A); Q(i); } catch (i) { i.name === "PermissionDenied" ? x = i : o[E] && (x = Error(g("Invalid JSON config file: %s", u))); } }); } function Q(o, s) { Object.keys(o).forEach(function(E) { const u = o[E], i = s ? s + "." + E : E; typeof u == "object" && u !== null && !Array.isArray(u) && P["dot-notation"] ? Q(u, i) : (!be(O, i.split(".")) || M(i, a.arrays) && P["combine-arrays"]) && F(i, u); }); } function et() { typeof pe < "u" && pe.forEach(function(o) { Q(o); }); } function We(o, s) { if (typeof ue > "u") return; const E = typeof ue == "string" ? ue : "", u = j.env(); Object.keys(u).forEach(function(i) { if (E === "" || i.lastIndexOf(E, 0) === 0) { const A = i.split("__").map(function(w, D) { return D === 0 && (w = w.substring(E.length)), n(w); }); (s && a.configs[A.join(".")] || !s) && !be(o, A) && F(A.join("."), u[i]); } }); } function Ke(o) { let s; const E = /* @__PURE__ */ new Set(); Object.keys(o).forEach(function(u) { if (!E.has(u) && (s = M(u, a.coercions), typeof s == "function")) try { const i = Z(u, s(o[u])); [].concat(a.aliases[u] || [], u).forEach((A) => { E.add(A), o[A] = i; }); } catch (i) { x = i; } }); } function ke(o) { return a.keys.forEach((s) => { ~s.indexOf(".") || typeof o[s] > "u" && (o[s] = void 0); }), o; } function Ie(o, s, E, u = !1) { Object.keys(E).forEach(function(i) { be(o, i.split(".")) || (ve(o, i.split("."), E[i]), u && (p[i] = !0), (s[i] || []).forEach(function(A) { be(o, A.split(".")) || ve(o, A.split("."), E[i]); })); }); } function be(o, s) { let E = o; P["dot-notation"] || (s = [s.join(".")]), s.slice(0, -1).forEach(function(i) { E = E[i] || {}; }); const u = s[s.length - 1]; return typeof E != "object" ? !1 : u in E; } function ve(o, s, E) { let u = o; P["dot-notation"] || (s = [s.join(".")]), s.slice(0, -1).forEach(function(W) { W = ne(W), typeof u == "object" && u[W] === void 0 && (u[W] = {}), typeof u[W] != "object" || Array.isArray(u[W]) ? (Array.isArray(u[W]) ? u[W].push({}) : u[W] = [u[W], {}], u = u[W][u[W].length - 1]) : u = u[W]; }); const i = ne(s[s.length - 1]), A = M(s.join("."), a.arrays), w = Array.isArray(E); let D = P["duplicate-arguments-array"]; !D && M(i, a.nargs) && (D = !0, (!ce(u[i]) && a.nargs[i] === 1 || Array.isArray(u[i]) && u[i].length === a.nargs[i]) && (u[i] = void 0)), E === re() ? u[i] = re(u[i]) : Array.isArray(u[i]) ? D && A && w ? u[i] = P["flatten-duplicate-arrays"] ? u[i].concat(E) : (Array.isArray(u[i][0]) ? u[i] : [u[i]]).concat([E]) : !D && !!A == !!w ? u[i] = E : u[i] = u[i].concat([E]) : u[i] === void 0 && A ? u[i] = w ? E : [E] : D && !(u[i] === void 0 || M(i, a.counts) || M(i, a.bools)) ? u[i] = [u[i], E] : u[i] = E; } function tt(...o) { o.forEach(function(s) { Object.keys(s || {}).forEach(function(E) { a.aliases[E] || (a.aliases[E] = [].concat(U[E] || []), a.aliases[E].concat(E).forEach(function(u) { if (/-/.test(u) && P["camel-case-expansion"]) { const i = n(u); i !== E && a.aliases[E].indexOf(i) === -1 && (a.aliases[E].push(i), se[i] = !0); } }), a.aliases[E].concat(E).forEach(function(u) { if (u.length > 1 && /[A-Z]/.test(u) && P["camel-case-expansion"]) { const i = l(u, "-"); i !== E && a.aliases[E].indexOf(i) === -1 && (a.aliases[E].push(i), se[i] = !0); } }), a.aliases[E].forEach(function(u) { a.aliases[u] = [E].concat(a.aliases[E].filter(function(i) { return u !== i; })); })); }); }); } function M(o, s) { const E = [].concat(a.aliases[o] || [], o), u = Object.keys(s), i = E.find((A) => u.includes(A)); return i ? s[i] : !1; } function Re(o) { const s = Object.keys(a); return [].concat(s.map((u) => a[u])).some(function(u) { return Array.isArray(u) ? u.includes(o) : u[o]; }); } function He(o, ...s) { return [].concat(...s).some(function(u) { const i = o.match(u); return i && Re(i[1]); }); } function Ge(o) { if (o.match(m) || !o.match(/^-[^-]+/)) return !1; let s = !0, E; const u = o.slice(1).split(""); for (let i = 0; i < u.length; i++) { if (E = o.slice(i + 2), !Re(u[i])) { s = !1; break; } if (u[i + 1] && u[i + 1] === "=" || E === "-" || /[A-Za-z]/.test(u[i]) && /^-?\d+(\.\d*)?(e-?\d+)?$/.test(E) || u[i + 1] && u[i + 1].match(/\W/)) break; } return s; } function ie(o) { return P["unknown-options-as-args"] && Ce(o); } function Ce(o) { return o = o.replace(/^-{3,}/, "--"), o.match(m) || Ge(o) ? !1 : !He(o, /^-+([^=]+?)=[\s\S]*$/, b, /^-+([^=]+?)$/, /^-+([^=]+?)-$/, /^-+([^=]+?\d+)$/, /^-+([^=]+?)\W+.*$/); } function ye(o) { return !M(o, a.bools) && !M(o, a.counts) && `${o}` in k ? k[o] : qe(Ye(o)); } function qe(o) { return { [I.BOOLEAN]: !0, [I.STRING]: "", [I.NUMBER]: void 0, [I.ARRAY]: [] }[o]; } function Ye(o) { let s = I.BOOLEAN; return M(o, a.strings) ? s = I.STRING : M(o, a.numbers) ? s = I.NUMBER : M(o, a.bools) ? s = I.BOOLEAN : M(o, a.arrays) && (s = I.ARRAY), s; } function ce(o) { return o === void 0; } function rt() { Object.keys(a.counts).find((o) => M(o, a.arrays) ? (x = Error(g("Invalid configuration: %s, opts.count excludes opts.array.", o)), !0) : M(o, a.nargs) ? (x = Error(g("Invalid configuration: %s, opts.count excludes opts.narg.", o)), !0) : !1); } return { aliases: Object.assign({}, a.aliases), argv: Object.assign(V, O), configuration: P, defaulted: Object.assign({}, p), error: x, newAliases: Object.assign({}, se) }; } } function z(h) { const S = [], L = /* @__PURE__ */ Object.create(null); let T = !0; for (Object.keys(h).forEach(function(v) { S.push([].concat(h[v], v)); }); T; ) { T = !1; for (let v = 0; v < S.length; v++) for (let U = v + 1; U < S.length; U++) if (S[v].filter(function(k) { return S[U].indexOf(k) !== -1; }).length) { S[v] = S[v].concat(S[U]), S.splice(U, 1), T = !0; break; } } return S.forEach(function(v) { v = v.filter(function(P, k, pe) { return pe.indexOf(P) === k; }); const U = v.pop(); U !== void 0 && typeof U == "string" && (L[U] = v); }), L; } function re(h) { return h !== void 0 ? h + 1 : 1; } function ne(h) { return h === "__proto__" ? "___proto___" : h; } const de = process && process.env && process.env.YARGS_MIN_NODE_VERSION ? Number(process.env.YARGS_MIN_NODE_VERSION) : 10; if (process && process.version && Number(process.version.match(/v([^.]+)/)[1]) < de) throw Error(`yargs parser supports a minimum Node.js version of ${de}. Read our version support policy: https://github.com/yargs/yargs-parser#supported-nodejs-versions`); const he = process ? process.env : {}, Y = new H({ cwd: process.cwd, env: () => he, format: f.format, normalize: t.normalize, resolve: t.resolve, require: (h) => { if (typeof Nt < "u") return Nt(h); if (h.match(/\.json$/)) return e.readFileSync(h, "utf8"); throw Error("only .json config files are supported in ESM"); } }), oe = function(S, L) { return Y.parse(S.slice(), L).argv; }; return oe.detailed = function(h, S) { return Y.parse(h.slice(), S); }, oe.camelCase = n, oe.decamelize = l, oe.looksLikeNumber = _, ut = oe, ut; } var $e = { exports: {} }; $e.exports; var Lt; function un() { return Lt || (Lt = 1, function(f, e) { var t = 200, n = "__lodash_hash_undefined__", l = 9007199254740991, _ = "[object Arguments]", N = "[object Array]", I = "[object Boolean]", j = "[object Date]", H = "[object Error]", z = "[object Function]", re = "[object GeneratorFunction]", ne = "[object Map]", de = "[object Number]", he = "[object Object]", Y = "[object Promise]", oe = "[object RegExp]", h = "[object Set]", S = "[object String]", L = "[object Symbol]", T = "[object WeakMap]", v = "[object ArrayBuffer]", U = "[object DataView]", P = "[object Float32Array]", k = "[object Float64Array]", pe = "[object Int8Array]", ue = "[object Int16Array]", _e = "[object Int32Array]", ae = "[object Uint8Array]", se = "[object Uint8ClampedArray]", p = "[object Uint16Array]", g = "[object Uint32Array]", a = /[\\^$.*+?()[\]{}|]/g, m = /\w*$/, b = /^\[object .+?Constructor\]$/, x = /^(?:0|[1-9]\d*)$/, y = {}; y[_] = y[N] = y[v] = y[U] = y[I] = y[j] = y[P] = y[k] = y[pe] = y[ue] = y[_e] = y[ne] = y[de] = y[he] = y[oe] = y[h] = y[S] = y[L] = y[ae] = y[se] = y[p] = y[g] = !0, y[H] = y[z] = y[T] = !1; var O = typeof Ue == "object" && Ue && Ue.Object === Object && Ue, V = typeof self == "object" && self && self.Object === Object && self, $ = O || V || Function("return this")(), B = e && !e.nodeType && e, G = B && !0 && f && !f.nodeType && f, F = G && G.exports === B; function Se(r, c) { return r.set(c[0], c[1]), r; } function X(r, c) { return r.add(c), r; } function Z(r, c) { for (var d = -1, R = r ? r.length : 0; ++d < R && c(r[d], d, r) !== !1; ) ; return r; } function Ee(r, c) { for (var d = -1, R = c.length, q = r.length; ++d < R; ) r[q + d] = c[d]; return r; } function Q(r, c, d, R) { for (var q = -1, ee = r ? r.length : 0; ++q < ee; ) d = c(d, r[q], q, r); return d; } function et(r, c) { for (var d = -1, R = Array(r); ++d < r; ) R[d] = c(d); return R; } function We(r, c) { return r == null ? void 0 : r[c]; } function Ke(r) { var c = !1; if (r != null && typeof r.toString != "function") try { c = !!(r + ""); } catch { } return c; } function ke(r) { var c = -1, d = Array(r.size); return r.forEach(function(R, q) { d[++c] = [q, R]; }), d; } function Ie(r, c) { return function(d) { return r(c(d)); }; } function be(r) { var c = -1, d = Array(r.size); return r.forEach(function(R) { d[++c] = R; }), d; } var ve = Array.prototype, tt = Function.prototype, M = Object.prototype, Re = $["__core-js_shared__"], He = function() { var r = /[^.]+$/.exec(Re && Re.keys && Re.keys.IE_PROTO || ""); return r ? "Symbol(src)_1." + r : ""; }(), Ge = tt.toString, ie = M.hasOwnProperty, Ce = M.toString, ye = RegExp( "^" + Ge.call(ie).replace(a, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$" ), qe = F ? $.Buffer : void 0, Ye = $.Symbol, ce = $.Uint8Array, rt = Ie(Object.getPrototypeOf, Object), o = Object.create, s = M.propertyIsEnumerable, E = ve.splice, u = Object.getOwnPropertySymbols, i = qe ? qe.isBuffer : void 0, A = Ie(Object.keys, Object), w = Ne($, "DataView"), D = Ne($, "Map"), W = Ne($, "Promise"), K = Ne($, "Set"), nt = Ne($, "WeakMap"), Ve = Ne(Object, "create"), Xt = Te(w), Zt = Te(D), Qt = Te(W), er = Te(K), tr = Te(nt), bt = Ye ? Ye.prototype : void 0, yt = bt ? bt.valueOf : void 0; function we(r) { var c = -1, d = r ? r.length : 0; for (this.clear(); ++c < d; ) { var R = r[c]; this.set(R[0], R[1]); } } function rr() { this.__data__ = Ve ? Ve(null) : {}; } function nr(r) { return this.has(r) && delete this.__data__[r]; } function or(r) { var c = this.__data__; if (Ve) { var d = c[r]; return d === n ? void 0 : d; } return ie.call(c, r) ? c[r] : void 0; } function sr(r) { var c = this.__data__; return Ve ? c[r] !== void 0 : ie.call(c, r); } function ir(r, c) { var d = this.__data__; return d[r] = Ve && c === void 0 ? n : c, this; } we.prototype.clear = rr, we.prototype.delete = nr, we.prototype.get = or, we.prototype.has = sr, we.prototype.set = ir; function ge(r) { var c = -1, d = r ? r.length : 0; for (this.clear(); ++c < d; ) { var R = r[c]; this.set(R[0], R[1]); } } function ar() { this.__data__ = []; } function cr(r) { var c = this.__data__, d = Je(c, r); if (d < 0) return !1; var R = c.length - 1; return d == R ? c.pop() : E.call(c, d, 1), !0; } function lr(r) { var c = this.__data__, d = Je(c, r); return d < 0 ? void 0 : c[d][1]; } function ur(r) { return Je(this.__data__, r) > -1; } function fr(r, c) { var d = this.__data__, R = Je(d, r); return R < 0 ? d.push([r, c]) : d[R][1] = c, this; } ge.prototype.clear = ar, ge.prototype.delete = cr, ge.prototype.get = lr, ge.prototype.has = ur, ge.prototype.set = fr; function Pe(r) { var c = -1, d = r ? r.length : 0; for (this.clear(); ++c < d; ) { var R = r[c]; this.set(R[0], R[1]); } } function dr() { this.__data__ = { hash: new we(), map: new (D || ge)(), string: new we() }; } function hr(r) { return ze(this, r).delete(r); } function pr(r) { return ze(this, r).get(r); } function gr(r) { return ze(this, r).has(r); } function mr(r, c) { return ze(this, r).set(r, c), this; } Pe.prototype.clear = dr, Pe.prototype.delete = hr, Pe.prototype.get = pr, Pe.prototype.has = gr, Pe.prototype.set = mr; function De(r) { this.__data__ = new ge(r); } function _r() { this.__data__ = new ge(); } function Er(r) { return this.__data__.delete(r); } function br(r) { return this.__data__.get(r); } function yr(r) { return this.__data__.has(r); } function Sr(r, c) { var d = this.__data__; if (d instanceof ge) { var R = d.__data__; if (!D || R.length < t - 1) return R.push([r, c]), this; d = this.__data__ = new Pe(R); } return d.set(r, c), this; } De.prototype.clear = _r, De.prototype.delete = Er, De.prototype.get = br, De.prototype.has = yr, De.prototype.set = Sr; function vr(r, c) { var d = it(r) || Gr(r) ? et(r.length, String) : [], R = d.length, q = !!R; for (var ee in r) ie.call(r, ee) && !(q && (ee == "length" || Wr(ee, R))) && d.push(ee); return d; } function St(r, c, d) { var R = r[c]; (!(ie.call(r, c) && Tt(R, d)) || d === void 0 && !(c in r)) && (r[c] = d); } function Je(r, c) { for (var d = r.length; d--; ) if (Tt(r[d][0], c)) return d; return -1; } function wr(r, c) { return r && vt(c, at(c), r); } function ot(r, c, d, R, q, ee, me) { var te; if (R && (te = ee ? R(r, q, ee, me) : R(r)), te !== void 0) return te; if (!Xe(r)) return r; var Rt = it(r); if (Rt) { if (te = $r(r), !c) return xr(r, te); } else { var je = Ae(r), Ct = je == z || je == re; if (Yr(r)) return Cr(r, c); if (je == he || je == _ || Ct && !ee) { if (Ke(r)) return ee ? r : {}; if (te = Br(Ct ? {} : r), !c) return Vr(r, wr(te, r)); } else { if (!y[je]) return ee ? r : {}; te = Fr(r, je, ot, c); } } me || (me = new De()); var Pt = me.get(r); if (Pt) return Pt; if (me.set(r, te), !Rt) var Dt = d ? Ur(r) : at(r); return Z(Dt || r, function(ct, Ze) { Dt && (Ze = ct, ct = r[Ze]), St(te, Ze, ot(ct, c, d, R, Ze, r, me)); }), te; } function Ar(r) { return Xe(r) ? o(r) : {}; } function Tr(r, c, d) { var R = c(r); return it(r) ? R : Ee(R, d(r)); } function Or(r) { return Ce.call(r); } function Ir(r) { if (!Xe(r) || kr(r)) return !1; var c = It(r) || Ke(r) ? ye : b; return c.test(Te(r)); } function Rr(r) { if (!At(r)) return A(r); var c = []; for (var d in Object(r)) ie.call(r, d) && d != "constructor" && c.push(d); return c; } function Cr(r, c) { if (c) return r.slice(); var d = new r.constructor(r.length); return r.copy(d), d; } function st(r) { var c = new r.constructor(r.byteLength); return new ce(c).set(new ce(r)), c; } function Pr(r, c) { var d = c ? st(r.buffer) : r.buffer; return new r.constructor(d, r.byteOffset, r.byteLength); } function Dr(r, c, d) { var R = c ? d(ke(r), !0) : ke(r); return Q(R, Se, new r.constructor()); } function Nr(r) { var c = new r.constructor(r.source, m.exec(r)); return c.lastIndex = r.lastIndex, c; } function jr(r, c, d) { var R = c ? d(be(r), !0) : be(r); return Q(R, X, new r.constructor()); } function Lr(r) { return yt ? Object(yt.call(r)) : {}; } function Mr(r, c) { var d = c ? st(r.buffer) : r.buffer; return new r.constructor(d, r.byteOffset, r.length); } function xr(r, c) { var d = -1, R = r.length; for (c || (c = Array(R)); ++d < R; ) c[d] = r[d]; return c; } function vt(r, c, d, R) { d || (d = {}); for (var q = -1, ee = c.length; ++q < ee; ) { var me = c[q], te = void 0; St(d, me, te === void 0 ? r[me] : te); } return d; } function Vr(r, c) { return vt(r, wt(r), c); } function Ur(r) { return Tr(r, at, wt); } function ze(r, c) { var d = r.__data__; return Kr(c) ? d[typeof c == "string" ? "string" : "hash"] : d.map; } function Ne(r, c) { var d = We(r, c); return Ir(d) ? d : void 0; } var wt = u ? Ie(u, Object) : Xr, Ae = Or; (w && Ae(new w(new ArrayBuffer(1))) != U || D && Ae(new D()) != ne || W && Ae(W.resolve()) != Y || K && Ae(new K()) != h || nt && Ae(new nt()) != T) && (Ae = function(r) { var c = Ce.call(r), d = c == he ? r.constructor : void 0, R = d ? Te(d) : void 0; if (R) switch (R) { case Xt: return U; case Zt: return ne; case Qt: return Y; case er: return h; case tr: return T; } return c; }); function $r(r) { var c = r.length, d = r.constructor(c); return c && typeof r[0] == "string" && ie.call(r, "index") && (d.index = r.index, d.input = r.input), d; } function Br(r) { return typeof r.constructor == "function" && !At(r) ? Ar(rt(r)) : {}; } function Fr(r, c, d, R) { var q = r.constructor; switch (c) { case v: return st(r); case I: case j: return new q(+r); case U: return Pr(r, R); case P: case k: case pe: case ue: case _e: case ae: case se: case p: case g: return Mr(r, R); case ne: return Dr(r, R, d); case de: case S: return new q(r); case oe: return Nr(r); case h: return jr(r, R, d); case L: return Lr(r); } } function Wr(r, c) { return c = c ?? l, !!c && (typeof r == "number" || x.test(r)) && r > -1 && r % 1 == 0 && r < c; } function Kr(r) { var c = typeof r; return c == "string" || c == "number" || c == "symbol" || c == "boolean" ? r !== "__proto__" : r === null; } function kr(r) { return !!He && He in r; } function At(r) { var c = r && r.constructor, d = typeof c == "function" && c.prototype || M; return r === d; } function Te(r) { if (r != null) { try { return Ge.call(r); } catch { } try { return r + ""; } catch { } } return ""; } function Hr(r) { return ot(r, !0, !0); } function Tt(r, c) { return r === c || r !== r && c !== c; } function Gr(r) { return qr(r) && ie.call(r, "callee") && (!s.call(r, "callee") || Ce.call(r) == _); } var it = Array.isArray; function Ot(r) { return r != null && Jr(r.length) && !It(r); } function qr(r) { return zr(r) && Ot(r); } var Yr = i || Zr; function It(r) { var c = Xe(r) ? Ce.call(r) : ""; return c == z || c == re; } function Jr(r) { return typeof r == "number" && r > -1 && r % 1 == 0 && r <= l; } function Xe(r) { var c = typeof r; return !!r && (c == "object" || c == "function"); } function zr(r) { return !!r && typeof r == "object"; } function at(r) { return Ot(r) ? vr(r) : Rr(r); } function Xr() { return []; } function Zr() { return !1; } f.exports = Hr; }($e, $e.exports)), $e.exports; } var ft, Mt; function fn() { if (Mt) return ft; Mt = 1; const f = Ut, e = ln(), t = un(), n = [ "__proto__.", "constructor.prototype." ], l = "strict", _ = "warn"; function N(p, g) { if (!p) throw new Error(g); } function I(p) { return Number.isInteger(p) && p >= 0 && p <= 65535; } function j(p) { return String(p).includes("\\\\.\\pipe\\"); } const H = { "*": function() { }, int: function(p) { N(Number.isInteger(p), "must be an integer"); }, nat: function(p) { N(Number.isInteger(p) && p >= 0, "must be a positive integer"); }, port: function(p) { N(I(p), "ports must be within range 0 - 65535"); }, windows_named_pipe: function(p) { N(j(p), "must be a valid pipe"); }, port_or_windows_named_pipe: function(p) { j(p) || N(I(p), "must be a windows named pipe or a number within range 0 - 65535"); } }; H.integer = H.int; const z = /* @__PURE__ */ new Map(), re = { "*": JSON.parse }; function ne(p, g) { const a = Object.keys(p); let m; const b = []; for (; a.length; ) { m = a.shift(); let y = ae(p, m); if (typeof y == "object" && !Array.isArray(y) && y != null) { if (g) if ("_cvtProperties" in y) y = y._cvtProperties, m = `${m}._cvtProperties`; else { b.push([m, y]); continue; } const O = Object.keys(y); if (O.length > 0) { O.forEach(function(V) { a.push(`${m}.${V}`); }); continue; } } b.push([m, y]); } const x = {}; return b.forEach(function(y) { let O = y[0]; g && (O = O.replace(/\._cvtProperties/g, "")); const V = y[1]; x[O] = V; }), x; } function de(p, g, a) { const m = { undeclared: [], invalid_type: [], missing: [] }, b = ne(p), x = ne(g._cvtProperties, !0); return Object.keys(x).forEach(function(y) { const O = x[y]; let V = b[y]; if (!(y in b)) try { if (typeof O.default == "object" && !Array.isArray(O.default)) V = ae(p, y); else throw new Error("missing"); } catch { const B = new Error(`configuration param '${y}' missing from config, did you override its parent?`); m.missing.push(B); return; } if (delete b[y], (O.format === "object" || typeof O.default == "object") && Object.keys(b).filter(function($) { return $.lastIndexOf(`${y}.`, 0) === 0; }).forEach(function($) { delete b[$]; }), !(typeof O.default > "u" && V === O.default)) try { O._format(V); } catch ($) { m.invalid_type.push($); } }), a && Object.keys(b).forEach(function(y) { const O = new Error(`configuration param '${y}' not declared in the schema`); m.undeclared.push(O); }), m; } function he(p, g) { N( p.indexOf(g) !== -1, `must be one of the possible values: ${JSON.stringify(p)}` ); } const Y = { Object, Array, String, Number, Boolean, RegExp }, oe = Object.keys(Y), h = oe.map(function(p) { return Y[p]; }); function S(p, g, a, m, b, x, y) { if (p === "_cvtProperties") throw new Error(`'${m}': '_cvtProperties' is reserved word of convict.`); if (typeof g == "object" && g !== null && !Array.isArray(g) && Object.keys(g).length > 0 && !("default" in g)) { a[p] = { _cvtProperties: {} }, Object.keys(g).forEach(function(B) { S(B, g[B], a[p]._cvtProperties, `${m}.${B}`, b, x, y); }); return; } else (typeof g != "object" || Array.isArray(g) || g === null || Object.keys(g).length == 0) && (g = { default: g }); const O = t(g); if (a[p] = O, O.env && (b[O.env] || (b[O.env] = []), b[O.env].push(m)), O.arg) { if (x[O.arg]) throw new Error(`'${m}' reuses a command-line argument: ${O.arg}`); x[O.arg] = m; } O.sensitive === !0 && y.add(m); const V = O.format; let $; if (h.indexOf(V) >= 0 || oe.indexOf(V) >= 0) { const B = typeof V == "string" ? Y[V] : V; $ = function(G) { N(Object.prototype.toString.call(G) == Object.prototype.toString.call(new B()), `must be of type ${B.name}`); }, O.format = B.name.toLowerCase(); } else if (typeof V == "string") { if (!H[V]) throw new Error(`'${m}' uses an unknown format type: ${V}`); $ = H[V]; } else if (Array.isArray(V)) $ = he.bind(null, V); else if (typeof V == "function") $ = V; else if (V && typeof V != "function") throw new Error(`'${m}': "format" must be a function or a known format type.`); if (!$ && !V) { const B = Object.prototype.toString.call(O.default); $ = function(G) { N( Object.prototype.toString.call(G) == B, " should be of type " + B.replace(/\[.* |]/g, "") ); }; } O._format = function(B) { if (!(this.nullable && B === null)) try { $(B, this); } catch (G) { throw G.fullName = m, G.value = B, G; } }; } function L(p) { const g = p.getEnv(); Object.keys(p._env).forEach(function(a) { g[a] !== void 0 && p._env[a].forEach(function(b) { p.set(b, g[a]); }); }); } function T(p) { const g = e(p.getArgs(), { configuration: { "dot-notation": !1 } }); Object.keys(p._argv).forEach(function(a) { const m = p._argv[a]; g[a] !== void 0 && p.set(m, String(g[a])); }); } function v(p, g, a) { Object.keys(p._cvtProperties).forEach(function(m) { const b = p._cvtProperties[m]; if (b._cvtProperties) { const x = g[m] || {}; v(b, x, a), g[m] = x; } else g[m] = ue(m, t(b.default), p, a); }); } function U(p) { return typeof p == "object" && p !== null; } function P(p, g, a) { Object.keys(p).forEach(function(m) { Array.isArray(p[m]) || !U(p[m]) || !a || a.format === "object" ? g[m] = ue(m, p[m], a) : (U(g[m]) || (g[m] = {}), P(p[m], g[m], a._cvtProperties[m])); }); } function k(p, g) { const a = g.split("."); let m = p; for (; a.length > 0; ) { const b = a.shift(); if (m && m._cvtProperties && m._cvtProperties[b]) m = m._cvtProperties[b]; else { m = null; break; } } return m; } function pe(p, g) { const a = k(p, g); return a == null ? null : typeof a.format == "string" ? a.format : a.default != null ? typeof a.default : null; } function ue(p, g, a, m) { const b = pe(a, p); if (typeof g == "string") { if (z.has(b)) return z.get(b)(g, m, p); switch (b) { case "port": case "nat": case "integer": case "int": g = parseInt(g, 10); break; case "port_or_windows_named_pipe": g = j(g) ? g : parseInt(g, 10); break; case "number": g = parseFloat(g); break; case "boolean": g = String(g).toLowerCase() !== "false"; break; case "array": g = g.split(","); break; case "object": g = JSON.parse(g); break; case "regexp": g = new RegExp(g); break; } } return g; } function _e(p) { const g = p.split("."), a = g.length > 1 ? g.pop() : ""; return (re[a] || re["*"])(f.readFileSync(p, "utf-8")); } function ae(p, g, a) { if (g) { const m = g.split("."); for (; m.length; ) { const b = m.shift(); if (a && p[b] == null) p[b] = {}, p = p[b]; else if (b in p) p = p[b]; else throw new Error(`cannot find configuration param '${g}'`); } } return p; } const se = function(g, a) { const m = { /** * Gets the array of process arguments, using the override passed to the * convict function or process.argv if no override was passed. */ getArgs: function() { return a && a.args || process.argv.slice(2); }, /** * Gets the environment variable map, using the override passed to the * convict function or process.env if no override was passed. */ getEnv: function() { return a && a.env || process.env; }, /** * Exports all the properties (that is the keys and their current values) as JSON */ getProperties: function() { return t(this._instance); }, /** * Exports all the properties (that is the keys and their current values) as * a JSON string, with sensitive values masked. Sensitive values are masked * even if they aren't set, to avoid revealing any information. */ toString: function() { const b = t(this._instance); return this._sensitive.forEach(function(x) { const y = x.split("."), O = y.pop(), V = y.join("."), $ = ae(b, V); $[O] = "[Sensitive]"; }), JSON.stringify(b, null, 2); }, /** * Exports the schema as JSON. */ getSchema: function() { return JSON.parse(JSON.stringify(this._schema)); }, /** * Exports the schema as a JSON string */ getSchemaString: function() { return JSON.stringify(this._schema, null, 2); }, /** * @returns the current value of the name property. name can use dot * notation to reference nested values */ get: function(b) { const x = ae(this._instance, b); return t(x); }, /** * @returns the default value of the name property. name can use dot * notation to reference nested values */ default: function(b) { b = b.split(".").join("._cvtProperties.") + ".default"; const x = ae(this._schema._cvtProperties, b); return t(x); }, /** * Resets a property to its default value as defined in the schema */ reset: function(b) { this.set(b, this.default(b)); }, /** * @returns true if the property name is defined, or false otherwise */ has: function(b) { try { return typeof this.get(b) < "u"; } catch { return !1; } }, /** * Sets the value of name to value. name can use dot notation to reference * nested values, e.g. "database.port". If objects in the chain don't yet * exist, they will be initialized to empty objects */ set: function(b, x) { for (const B of n) if (b.startsWith(B) || b.includes(`.${B}`)) return this; x = ue(b, x, this._schema, this); const y = b.split("."), O = y.pop(), V = y.join("."), $ = ae(this._instance, V, !0); return $[O] = x, this; }, /** * Loads and merges a JavaScript object into config */ load: function(b) { return P(b, this._instance, this._schema), L(m), T(m), this; }, /** * Loads and merges one or multiple JSON configuration files into config */ loadFile: function(b) { const x = this; return Array.isArray(b) || (b = [b]), b.forEach(function(y) { const O = _e(y); O && P(O, x._instance, x._schema); }), L(m), T(m), this; }, /** * Validates config against the schema used to initialize it */ validate: function(b) { if (b = b || {}, b.allowed = b.allowed || _, b.output && typeof b.output != "function") throw new Error("options.output is optional and must be a function."); const x = b.output || Ue.console.log, y = de(this._instance, this._schema, b.allowed); if (y.invalid_type.length + y.undeclared.length + y.missing.length) { const O = this._sensitive, V = function(X) { let Z = ""; for (let Ee = 0; Ee < X.length; Ee++) { Z.length && (Z += ` `); const Q = X[Ee]; Q.fullName && (Z += Q.fullName + ": "), Q.message && (Z += Q.message), Q.value && !O.has(Q.fullName) && (Z += ": value was " + JSON.stringify(Q.value)); } return Z; }, $ = V(y.invalid_type), B = V(y.undeclared), G = V(y.missing), F = [$, G]; if (b.