UNPKG

lakutata

Version:

An IoC-based universal application framework.

2,276 lines (1,689 loc) 49 kB
/* Build Date: Mon Jan 05 2026 23:52:23 GMT+0800 (China Standard Time) */ import { _ as t, a as r } from "../../../vendor/Package.internal.3.mjs"; import { Component as e } from "../../lib/core/Component.mjs"; import { Configurable as n } from "../../decorators/di/Configurable.mjs"; import { BindControllerToComponent as o, GetComponentControllerActionMap as a } from "../../lib/base/internal/ControllerEntrypoint.mjs"; import { PatternManager as i } from "../../lib/base/internal/PatternManager.mjs"; import { Controller as s } from "./lib/Controller.mjs"; import { As as c } from "../../lib/helpers/As.mjs"; import { ControllerActionNotFoundException as u } from "./exceptions/ControllerActionNotFoundException.mjs"; import { DestroyRuntimeContainerException as p } from "../../exceptions/DestroyRuntimeContainerException.mjs"; import { GetObjectPropertyPaths as l } from "../../lib/helpers/GetObjectPropertyPaths.mjs"; import { g as f, a as v, c as h } from "../../../vendor/Package.internal.2.mjs"; import { UniqueArray as m } from "../../lib/helpers/UniqueArray.mjs"; import { D as d } from "../../../vendor/Package.internal.7.mjs"; import { Singleton as y } from "../../decorators/di/Lifetime.mjs"; import { DuplicateActionNameException as b } from "./exceptions/DuplicateActionNameException.mjs"; import { AccessControl as j } from "./lib/AccessControl.mjs"; import { ContextType as g } from "../../lib/base/Context.mjs"; export { BaseContext } from "../../lib/base/Context.mjs"; import { AccessControlRule as A } from "./lib/AccessControlRule.mjs"; import { InvalidActionGroupException as w } from "./exceptions/InvalidActionGroupException.mjs"; export { CLIContext } from "../../lib/context/CLIContext.mjs"; export { HTTPContext } from "../../lib/context/HTTPContext.mjs"; export { ServiceContext } from "../../lib/context/ServiceContext.mjs"; import "../../../vendor/Package.internal.4.mjs"; import "../../lib/base/async-constructor/AsyncConstructor.mjs"; import "../../lib/base/async-constructor/Append.mjs"; import "../../lib/helpers/IsPromiseLike.mjs"; import "../../lib/helpers/IsPromise.mjs"; import "util/types"; import "../../exceptions/MethodNotFoundException.mjs"; import "../../lib/base/abstracts/Exception.mjs"; import "../../../vendor/Package.internal.5.mjs"; import "../../../vendor/Package.internal.6.mjs"; import "../../lib/base/internal/ThrowWarning.mjs"; import "../../lib/helpers/Templating.mjs"; import "../../lib/base/internal/CamelCase.mjs"; import "../../lib/helpers/NoCase.mjs"; import "../../lib/helpers/DevNull.mjs"; import "../../lib/ioc/DependencyInjectionContainer.mjs"; import "util"; import "../../lib/ioc/Errors.mjs"; import "../../exceptions/di/DependencyInjectionException.mjs"; import "../../lib/base/internal/ConstructorSymbol.mjs"; import "../../constants/DIMetadataKey.mjs"; import "../../../vendor/Package.internal.1.mjs"; import "node:crypto"; import "../../lib/base/internal/DataValidator.mjs"; import "node:util/types"; import "../../lib/validation/VLD.mjs"; import "url"; import "../../exceptions/dto/InvalidValueException.mjs"; import "../../../vendor/Package.internal.8.mjs"; import "../../lib/helpers/IsHtml.mjs"; import "../../lib/helpers/IsXML.mjs"; import "../../constants/DTOMetadataKey.mjs"; import "../../lib/helpers/ObjectConstructor.mjs"; import "../../lib/helpers/ObjectParentConstructors.mjs"; import "../../lib/helpers/ObjectParentConstructor.mjs"; import "../../lib/helpers/ObjectPrototype.mjs"; import "../../lib/ioc/InjectionMode.mjs"; import "../../lib/ioc/Lifetime.mjs"; import "../../lib/ioc/ListModules.mjs"; import "os"; import "path"; import "stream"; import "events"; import "fs"; import "../../lib/ioc/Utils.mjs"; import "../../lib/ioc/FunctionTokenizer.mjs"; import "../../lib/ioc/LoadModules.mjs"; import "../../lib/ioc/Resolvers.mjs"; import "../../lib/ioc/ParamParser.mjs"; import "../../lib/base/internal/ObjectLifetime.mjs"; import "../../exceptions/di/LifetimeLockedException.mjs"; import "../../lib/base/internal/ObjectWeakRefs.mjs"; import "../../lib/base/internal/ConfigurableRecordsInjection.mjs"; import "../../lib/base/internal/ObjectConfiguration.mjs"; import "../../lib/base/internal/ObjectInjection.mjs"; import "../../lib/base/internal/ObjectContainer.mjs"; import "../../decorators/dto/Expect.mjs"; import "../../decorators/dto/IndexSignature.mjs"; import "../../decorators/dto/Accept.mjs"; import "../../lib/base/internal/MethodValidation.mjs"; import "../../exceptions/dto/InvalidMethodAcceptException.mjs"; import "../../exceptions/dto/InvalidMethodReturnException.mjs"; import "../../lib/helpers/IsEmptyObject.mjs"; import "../../lib/base/EventEmitter.mjs"; import "../../lib/core/Provider.mjs"; import "../../lib/helpers/ObjectHash.mjs"; import "crypto"; import "../../lib/helpers/GetObjectNestingDepth.mjs"; import "../../exceptions/InvalidActionPatternDepthException.mjs"; import "../../lib/base/internal/StringifyPattern.mjs"; import "../../../vendor/Package.internal.522.mjs"; import "../../../vendor/Package.internal.55.mjs"; import "node:http"; import "./exceptions/AccessDenyException.mjs"; // -- Shims -- import cjsUrl from 'node:url'; import cjsPath from 'node:path'; import cjsModule from 'node:module'; const __filename = cjsUrl.fileURLToPath(import.meta.url); const __dirname = cjsPath.dirname(__filename); const require = cjsModule.createRequire(import.meta.url); function _(t) { return t != null && typeof t === "object" && Array.isArray(t) === false; } const I = Object.freeze(Object.defineProperty({ __proto__: null, default: _ }, Symbol.toStringTag, { value: "Module" })); const O = f(I); var C = function t(r) { return r != null && typeof r === "object" && Array.isArray(r) === false; }; const S = C; var x = function(t, r, e) { if (!S(e)) { e = { default: e }; } if (!T(t)) { return typeof e.default !== "undefined" ? e.default : t; } if (typeof r === "number") { r = String(r); } const n = Array.isArray(r); const o = typeof r === "string"; const a = e.separator || "."; const i = e.joinChar || (typeof a === "string" ? a : "."); if (!o && !n) { return t; } if (o && r in t) { return E(r, t, e) ? t[r] : e.default; } let s = n ? r : M(r, a, e); let c = s.length; let u = 0; do { let r = s[u]; if (typeof r === "number") { r = String(r); } while (r && r.slice(-1) === "\\") { r = P([ r.slice(0, -1), s[++u] || "" ], i, e); } if (r in t) { if (!E(r, t, e)) { return e.default; } t = t[r]; } else { let n = false; let o = u + 1; while (o < c) { r = P([ r, s[o++] ], i, e); if (n = r in t) { if (!E(r, t, e)) { return e.default; } t = t[r]; u = o - 1; break; } } if (!n) { return e.default; } } } while (++u < c && T(t)); if (u === c) { return t; } return e.default; }; function P(t, r, e) { if (typeof e.join === "function") { return e.join(t); } return t[0] + r + t[1]; } function M(t, r, e) { if (typeof e.split === "function") { return e.split(t); } return t.split(r); } function E(t, r, e) { if (typeof e.isValid === "function") { return e.isValid(t, r); } return true; } function T(t) { return S(t) || Array.isArray(t) || typeof t === "function"; } var k = Object.prototype.toString; var D = function t(r) { if (r === void 0) return "undefined"; if (r === null) return "null"; var e = typeof r; if (e === "boolean") return "boolean"; if (e === "string") return "string"; if (e === "number") return "number"; if (e === "symbol") return "symbol"; if (e === "function") { return H(r) ? "generatorfunction" : "function"; } if (G(r)) return "array"; if (V(r)) return "buffer"; if (R(r)) return "arguments"; if (F(r)) return "date"; if (N(r)) return "error"; if (z(r)) return "regexp"; switch (L(r)) { case "Symbol": return "symbol"; case "Promise": return "promise"; case "WeakMap": return "weakmap"; case "WeakSet": return "weakset"; case "Map": return "map"; case "Set": return "set"; case "Int8Array": return "int8array"; case "Uint8Array": return "uint8array"; case "Uint8ClampedArray": return "uint8clampedarray"; case "Int16Array": return "int16array"; case "Uint16Array": return "uint16array"; case "Int32Array": return "int32array"; case "Uint32Array": return "uint32array"; case "Float32Array": return "float32array"; case "Float64Array": return "float64array"; } if (U(r)) { return "generator"; } e = k.call(r); switch (e) { case "[object Object]": return "object"; case "[object Map Iterator]": return "mapiterator"; case "[object Set Iterator]": return "setiterator"; case "[object String Iterator]": return "stringiterator"; case "[object Array Iterator]": return "arrayiterator"; } return e.slice(8, -1).toLowerCase().replace(/\s/g, ""); }; function L(t) { return typeof t.constructor === "function" ? t.constructor.name : null; } function G(t) { if (Array.isArray) return Array.isArray(t); return t instanceof Array; } function N(t) { return t instanceof Error || typeof t.message === "string" && t.constructor && typeof t.constructor.stackTraceLimit === "number"; } function F(t) { if (t instanceof Date) return true; return typeof t.toDateString === "function" && typeof t.getDate === "function" && typeof t.setDate === "function"; } function z(t) { if (t instanceof RegExp) return true; return typeof t.flags === "string" && typeof t.ignoreCase === "boolean" && typeof t.multiline === "boolean" && typeof t.global === "boolean"; } function H(t, r) { return L(t) === "GeneratorFunction"; } function U(t) { return typeof t.throw === "function" && typeof t.return === "function" && typeof t.next === "function"; } function R(t) { try { if (typeof t.length === "number" && typeof t.callee === "function") { return true; } } catch (t) { if (t.message.indexOf("callee") !== -1) { return true; } } return false; } function V(t) { if (t.constructor && typeof t.constructor.isBuffer === "function") { return t.constructor.isBuffer(t); } return false; } const B = D; var W = function t(r) { switch (B(r)) { case "boolean": case "date": case "function": case "null": case "number": return true; case "undefined": return false; case "regexp": return r.source !== "(?:)" && r.source !== ""; case "buffer": return r.toString() !== ""; case "error": return r.message !== ""; case "string": case "arguments": return r.length !== 0; case "file": case "map": case "set": return r.size !== 0; case "array": case "object": for (const e of Object.keys(r)) { if (t(r[e])) { return true; } } return false; default: { return true; } } }; const $ = x; const q = W; var K = function(t, r, e) { if (X(t) && (typeof r === "string" || Array.isArray(r))) { return q($(t, r, e)); } return false; }; function X(t) { return t != null && (typeof t === "object" || typeof t === "function" || Array.isArray(t)); } var J = O; var Q = K; const Y = t => t === "__proto__" || t === "constructor" || t === "prototype"; const Z = t => { if (Y(t)) { throw new Error(`Cannot set unsafe key: "${t}"`); } }; var tt = function t(r, e) { if (!J(r)) { throw new TypeError("expected an object."); } var n = Array.isArray(e); if (!n && r.hasOwnProperty(e)) { delete r[e]; return true; } if (Q(r, e)) { var o = n ? e.slice() : e.split("."); var a = o.pop(); while (o.length && o[o.length - 1].slice(-1) === "\\") { a = o.pop().slice(0, -1) + "." + a; } while (o.length) { e = o.shift(); Z(e); r = r[e]; } return delete r[a]; } return true; }; const rt = v(tt); function et() { this.__data__ = []; this.size = 0; } var nt = et; function ot(t, r) { return t === r || t !== t && r !== r; } var at = ot; var it = at; function st(t, r) { var e = t.length; while (e--) { if (it(t[e][0], r)) { return e; } } return -1; } var ct = st; var ut = ct; var pt = Array.prototype; var lt = pt.splice; function ft(t) { var r = this.__data__, e = ut(r, t); if (e < 0) { return false; } var n = r.length - 1; if (e == n) { r.pop(); } else { lt.call(r, e, 1); } --this.size; return true; } var vt = ft; var ht = ct; function mt(t) { var r = this.__data__, e = ht(r, t); return e < 0 ? undefined : r[e][1]; } var dt = mt; var yt = ct; function bt(t) { return yt(this.__data__, t) > -1; } var jt = bt; var gt = ct; function At(t, r) { var e = this.__data__, n = gt(e, t); if (n < 0) { ++this.size; e.push([ t, r ]); } else { e[n][1] = r; } return this; } var wt = At; var _t = nt, It = vt, Ot = dt, Ct = jt, St = wt; function xt(t) { var r = -1, e = t == null ? 0 : t.length; this.clear(); while (++r < e) { var n = t[r]; this.set(n[0], n[1]); } } xt.prototype.clear = _t; xt.prototype["delete"] = It; xt.prototype.get = Ot; xt.prototype.has = Ct; xt.prototype.set = St; var Pt = xt; var Mt = Pt; function Et() { this.__data__ = new Mt; this.size = 0; } var Tt = Et; function kt(t) { var r = this.__data__, e = r["delete"](t); this.size = r.size; return e; } var Dt = kt; function Lt(t) { return this.__data__.get(t); } var Gt = Lt; function Nt(t) { return this.__data__.has(t); } var Ft = Nt; var zt = typeof h == "object" && h && h.Object === Object && h; var Ht = zt; var Ut = Ht; var Rt = typeof self == "object" && self && self.Object === Object && self; var Vt = Ut || Rt || Function("return this")(); var Bt = Vt; var Wt = Bt; var $t = Wt.Symbol; var qt = $t; var Kt = qt; var Xt = Object.prototype; var Jt = Xt.hasOwnProperty; var Qt = Xt.toString; var Yt = Kt ? Kt.toStringTag : undefined; function Zt(t) { var r = Jt.call(t, Yt), e = t[Yt]; try { t[Yt] = undefined; var n = true; } catch (t) {} var o = Qt.call(t); if (n) { if (r) { t[Yt] = e; } else { delete t[Yt]; } } return o; } var tr = Zt; var rr = Object.prototype; var er = rr.toString; function nr(t) { return er.call(t); } var or = nr; var ar = qt, ir = tr, sr = or; var cr = "[object Null]", ur = "[object Undefined]"; var pr = ar ? ar.toStringTag : undefined; function lr(t) { if (t == null) { return t === undefined ? ur : cr; } return pr && pr in Object(t) ? ir(t) : sr(t); } var fr = lr; function vr(t) { var r = typeof t; return t != null && (r == "object" || r == "function"); } var hr = vr; var mr = fr, dr = hr; var yr = "[object AsyncFunction]", br = "[object Function]", jr = "[object GeneratorFunction]", gr = "[object Proxy]"; function Ar(t) { if (!dr(t)) { return false; } var r = mr(t); return r == br || r == jr || r == yr || r == gr; } var wr = Ar; var _r = Bt; var Ir = _r["__core-js_shared__"]; var Or = Ir; var Cr = Or; var Sr = function() { var t = /[^.]+$/.exec(Cr && Cr.keys && Cr.keys.IE_PROTO || ""); return t ? "Symbol(src)_1." + t : ""; }(); function xr(t) { return !!Sr && Sr in t; } var Pr = xr; var Mr = Function.prototype; var Er = Mr.toString; function Tr(t) { if (t != null) { try { return Er.call(t); } catch (t) {} try { return t + ""; } catch (t) {} } return ""; } var kr = Tr; var Dr = wr, Lr = Pr, Gr = hr, Nr = kr; var Fr = /[\\^$.*+?()[\]{}|]/g; var zr = /^\[object .+?Constructor\]$/; var Hr = Function.prototype, Ur = Object.prototype; var Rr = Hr.toString; var Vr = Ur.hasOwnProperty; var Br = RegExp("^" + Rr.call(Vr).replace(Fr, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"); function Wr(t) { if (!Gr(t) || Lr(t)) { return false; } var r = Dr(t) ? Br : zr; return r.test(Nr(t)); } var $r = Wr; function qr(t, r) { return t == null ? undefined : t[r]; } var Kr = qr; var Xr = $r, Jr = Kr; function Qr(t, r) { var e = Jr(t, r); return Xr(e) ? e : undefined; } var Yr = Qr; var Zr = Yr, te = Bt; var re = Zr(te, "Map"); var ee = re; var ne = Yr; var oe = ne(Object, "create"); var ae = oe; var ie = ae; function se() { this.__data__ = ie ? ie(null) : {}; this.size = 0; } var ce = se; function ue(t) { var r = this.has(t) && delete this.__data__[t]; this.size -= r ? 1 : 0; return r; } var pe = ue; var le = ae; var fe = "__lodash_hash_undefined__"; var ve = Object.prototype; var he = ve.hasOwnProperty; function me(t) { var r = this.__data__; if (le) { var e = r[t]; return e === fe ? undefined : e; } return he.call(r, t) ? r[t] : undefined; } var de = me; var ye = ae; var be = Object.prototype; var je = be.hasOwnProperty; function ge(t) { var r = this.__data__; return ye ? r[t] !== undefined : je.call(r, t); } var Ae = ge; var we = ae; var _e = "__lodash_hash_undefined__"; function Ie(t, r) { var e = this.__data__; this.size += this.has(t) ? 0 : 1; e[t] = we && r === undefined ? _e : r; return this; } var Oe = Ie; var Ce = ce, Se = pe, xe = de, Pe = Ae, Me = Oe; function Ee(t) { var r = -1, e = t == null ? 0 : t.length; this.clear(); while (++r < e) { var n = t[r]; this.set(n[0], n[1]); } } Ee.prototype.clear = Ce; Ee.prototype["delete"] = Se; Ee.prototype.get = xe; Ee.prototype.has = Pe; Ee.prototype.set = Me; var Te = Ee; var ke = Te, De = Pt, Le = ee; function Ge() { this.size = 0; this.__data__ = { hash: new ke, map: new (Le || De), string: new ke }; } var Ne = Ge; function Fe(t) { var r = typeof t; return r == "string" || r == "number" || r == "symbol" || r == "boolean" ? t !== "__proto__" : t === null; } var ze = Fe; var He = ze; function Ue(t, r) { var e = t.__data__; return He(r) ? e[typeof r == "string" ? "string" : "hash"] : e.map; } var Re = Ue; var Ve = Re; function Be(t) { var r = Ve(this, t)["delete"](t); this.size -= r ? 1 : 0; return r; } var We = Be; var $e = Re; function qe(t) { return $e(this, t).get(t); } var Ke = qe; var Xe = Re; function Je(t) { return Xe(this, t).has(t); } var Qe = Je; var Ye = Re; function Ze(t, r) { var e = Ye(this, t), n = e.size; e.set(t, r); this.size += e.size == n ? 0 : 1; return this; } var tn = Ze; var rn = Ne, en = We, nn = Ke, on = Qe, an = tn; function sn(t) { var r = -1, e = t == null ? 0 : t.length; this.clear(); while (++r < e) { var n = t[r]; this.set(n[0], n[1]); } } sn.prototype.clear = rn; sn.prototype["delete"] = en; sn.prototype.get = nn; sn.prototype.has = on; sn.prototype.set = an; var cn = sn; var un = Pt, pn = ee, ln = cn; var fn = 200; function vn(t, r) { var e = this.__data__; if (e instanceof un) { var n = e.__data__; if (!pn || n.length < fn - 1) { n.push([ t, r ]); this.size = ++e.size; return this; } e = this.__data__ = new ln(n); } e.set(t, r); this.size = e.size; return this; } var hn = vn; var mn = Pt, dn = Tt, yn = Dt, bn = Gt, jn = Ft, gn = hn; function An(t) { var r = this.__data__ = new mn(t); this.size = r.size; } An.prototype.clear = dn; An.prototype["delete"] = yn; An.prototype.get = bn; An.prototype.has = jn; An.prototype.set = gn; var wn = An; function _n(t, r) { var e = -1, n = t == null ? 0 : t.length; while (++e < n) { if (r(t[e], e, t) === false) { break; } } return t; } var In = _n; var On = Yr; var Cn = function() { try { var t = On(Object, "defineProperty"); t({}, "", {}); return t; } catch (t) {} }(); var Sn = Cn; var xn = Sn; function Pn(t, r, e) { if (r == "__proto__" && xn) { xn(t, r, { configurable: true, enumerable: true, value: e, writable: true }); } else { t[r] = e; } } var Mn = Pn; var En = Mn, Tn = at; var kn = Object.prototype; var Dn = kn.hasOwnProperty; function Ln(t, r, e) { var n = t[r]; if (!(Dn.call(t, r) && Tn(n, e)) || e === undefined && !(r in t)) { En(t, r, e); } } var Gn = Ln; var Nn = Gn, Fn = Mn; function zn(t, r, e, n) { var o = !e; e || (e = {}); var a = -1, i = r.length; while (++a < i) { var s = r[a]; var c = n ? n(e[s], t[s], s, e, t) : undefined; if (c === undefined) { c = t[s]; } if (o) { Fn(e, s, c); } else { Nn(e, s, c); } } return e; } var Hn = zn; function Un(t, r) { var e = -1, n = Array(t); while (++e < t) { n[e] = r(e); } return n; } var Rn = Un; function Vn(t) { return t != null && typeof t == "object"; } var Bn = Vn; var Wn = fr, $n = Bn; var qn = "[object Arguments]"; function Kn(t) { return $n(t) && Wn(t) == qn; } var Xn = Kn; var Jn = Xn, Qn = Bn; var Yn = Object.prototype; var Zn = Yn.hasOwnProperty; var to = Yn.propertyIsEnumerable; var ro = Jn(function() { return arguments; }()) ? Jn : function(t) { return Qn(t) && Zn.call(t, "callee") && !to.call(t, "callee"); }; var eo = ro; var no = Array.isArray; var oo = no; var ao = { exports: {} }; function io() { return false; } var so = io; ao.exports; (function(t, r) { var e = Bt, n = so; var o = r && !r.nodeType && r; var a = o && "object" == "object" && t && !t.nodeType && t; var i = a && a.exports === o; var s = i ? e.Buffer : undefined; var c = s ? s.isBuffer : undefined; var u = c || n; t.exports = u; })(ao, ao.exports); var co = ao.exports; var uo = 9007199254740991; var po = /^(?:0|[1-9]\d*)$/; function lo(t, r) { var e = typeof t; r = r == null ? uo : r; return !!r && (e == "number" || e != "symbol" && po.test(t)) && (t > -1 && t % 1 == 0 && t < r); } var fo = lo; var vo = 9007199254740991; function ho(t) { return typeof t == "number" && t > -1 && t % 1 == 0 && t <= vo; } var mo = ho; var yo = fr, bo = mo, jo = Bn; var go = "[object Arguments]", Ao = "[object Array]", wo = "[object Boolean]", _o = "[object Date]", Io = "[object Error]", Oo = "[object Function]", Co = "[object Map]", So = "[object Number]", xo = "[object Object]", Po = "[object RegExp]", Mo = "[object Set]", Eo = "[object String]", To = "[object WeakMap]"; var ko = "[object ArrayBuffer]", Do = "[object DataView]", Lo = "[object Float32Array]", Go = "[object Float64Array]", No = "[object Int8Array]", Fo = "[object Int16Array]", zo = "[object Int32Array]", Ho = "[object Uint8Array]", Uo = "[object Uint8ClampedArray]", Ro = "[object Uint16Array]", Vo = "[object Uint32Array]"; var Bo = {}; Bo[Lo] = Bo[Go] = Bo[No] = Bo[Fo] = Bo[zo] = Bo[Ho] = Bo[Uo] = Bo[Ro] = Bo[Vo] = true; Bo[go] = Bo[Ao] = Bo[ko] = Bo[wo] = Bo[Do] = Bo[_o] = Bo[Io] = Bo[Oo] = Bo[Co] = Bo[So] = Bo[xo] = Bo[Po] = Bo[Mo] = Bo[Eo] = Bo[To] = false; function Wo(t) { return jo(t) && bo(t.length) && !!Bo[yo(t)]; } var $o = Wo; function qo(t) { return function(r) { return t(r); }; } var Ko = qo; var Xo = { exports: {} }; Xo.exports; (function(t, r) { var e = Ht; var n = r && !r.nodeType && r; var o = n && "object" == "object" && t && !t.nodeType && t; var a = o && o.exports === n; var i = a && e.process; var s = function() { try { var t = o && o.require && o.require("util").types; if (t) { return t; } return i && i.binding && i.binding("util"); } catch (t) {} }(); t.exports = s; })(Xo, Xo.exports); var Jo = Xo.exports; var Qo = $o, Yo = Ko, Zo = Jo; var ta = Zo && Zo.isTypedArray; var ra = ta ? Yo(ta) : Qo; var ea = ra; var na = Rn, oa = eo, aa = oo, ia = co, sa = fo, ca = ea; var ua = Object.prototype; var pa = ua.hasOwnProperty; function la(t, r) { var e = aa(t), n = !e && oa(t), o = !e && !n && ia(t), a = !e && !n && !o && ca(t), i = e || n || o || a, s = i ? na(t.length, String) : [], c = s.length; for (var u in t) { if ((r || pa.call(t, u)) && !(i && (u == "length" || o && (u == "offset" || u == "parent") || a && (u == "buffer" || u == "byteLength" || u == "byteOffset") || sa(u, c)))) { s.push(u); } } return s; } var fa = la; var va = Object.prototype; function ha(t) { var r = t && t.constructor, e = typeof r == "function" && r.prototype || va; return t === e; } var ma = ha; function da(t, r) { return function(e) { return t(r(e)); }; } var ya = da; var ba = ya; var ja = ba(Object.keys, Object); var ga = ja; var Aa = ma, wa = ga; var _a = Object.prototype; var Ia = _a.hasOwnProperty; function Oa(t) { if (!Aa(t)) { return wa(t); } var r = []; for (var e in Object(t)) { if (Ia.call(t, e) && e != "constructor") { r.push(e); } } return r; } var Ca = Oa; var Sa = wr, xa = mo; function Pa(t) { return t != null && xa(t.length) && !Sa(t); } var Ma = Pa; var Ea = fa, Ta = Ca, ka = Ma; function Da(t) { return ka(t) ? Ea(t) : Ta(t); } var La = Da; var Ga = Hn, Na = La; function Fa(t, r) { return t && Ga(r, Na(r), t); } var za = Fa; function Ha(t) { var r = []; if (t != null) { for (var e in Object(t)) { r.push(e); } } return r; } var Ua = Ha; var Ra = hr, Va = ma, Ba = Ua; var Wa = Object.prototype; var $a = Wa.hasOwnProperty; function qa(t) { if (!Ra(t)) { return Ba(t); } var r = Va(t), e = []; for (var n in t) { if (!(n == "constructor" && (r || !$a.call(t, n)))) { e.push(n); } } return e; } var Ka = qa; var Xa = fa, Ja = Ka, Qa = Ma; function Ya(t) { return Qa(t) ? Xa(t, true) : Ja(t); } var Za = Ya; var ti = Hn, ri = Za; function ei(t, r) { return t && ti(r, ri(r), t); } var ni = ei; var oi = { exports: {} }; oi.exports; (function(t, r) { var e = Bt; var n = r && !r.nodeType && r; var o = n && "object" == "object" && t && !t.nodeType && t; var a = o && o.exports === n; var i = a ? e.Buffer : undefined, s = i ? i.allocUnsafe : undefined; function c(t, r) { if (r) { return t.slice(); } var e = t.length, n = s ? s(e) : new t.constructor(e); t.copy(n); return n; } t.exports = c; })(oi, oi.exports); var ai = oi.exports; function ii(t, r) { var e = -1, n = t.length; r || (r = Array(n)); while (++e < n) { r[e] = t[e]; } return r; } var si = ii; function ci(t, r) { var e = -1, n = t == null ? 0 : t.length, o = 0, a = []; while (++e < n) { var i = t[e]; if (r(i, e, t)) { a[o++] = i; } } return a; } var ui = ci; function pi() { return []; } var li = pi; var fi = ui, vi = li; var hi = Object.prototype; var mi = hi.propertyIsEnumerable; var di = Object.getOwnPropertySymbols; var yi = !di ? vi : function(t) { if (t == null) { return []; } t = Object(t); return fi(di(t), function(r) { return mi.call(t, r); }); }; var bi = yi; var ji = Hn, gi = bi; function Ai(t, r) { return ji(t, gi(t), r); } var wi = Ai; function _i(t, r) { var e = -1, n = r.length, o = t.length; while (++e < n) { t[o + e] = r[e]; } return t; } var Ii = _i; var Oi = ya; var Ci = Oi(Object.getPrototypeOf, Object); var Si = Ci; var xi = Ii, Pi = Si, Mi = bi, Ei = li; var Ti = Object.getOwnPropertySymbols; var ki = !Ti ? Ei : function(t) { var r = []; while (t) { xi(r, Mi(t)); t = Pi(t); } return r; }; var Di = ki; var Li = Hn, Gi = Di; function Ni(t, r) { return Li(t, Gi(t), r); } var Fi = Ni; var zi = Ii, Hi = oo; function Ui(t, r, e) { var n = r(t); return Hi(t) ? n : zi(n, e(t)); } var Ri = Ui; var Vi = Ri, Bi = bi, Wi = La; function $i(t) { return Vi(t, Wi, Bi); } var qi = $i; var Ki = Ri, Xi = Di, Ji = Za; function Qi(t) { return Ki(t, Ji, Xi); } var Yi = Qi; var Zi = Yr, ts = Bt; var rs = Zi(ts, "DataView"); var es = rs; var ns = Yr, os = Bt; var as = ns(os, "Promise"); var is = as; var ss = Yr, cs = Bt; var us = ss(cs, "Set"); var ps = us; var ls = Yr, fs = Bt; var vs = ls(fs, "WeakMap"); var hs = vs; var ms = es, ds = ee, ys = is, bs = ps, js = hs, gs = fr, As = kr; var ws = "[object Map]", _s = "[object Object]", Is = "[object Promise]", Os = "[object Set]", Cs = "[object WeakMap]"; var Ss = "[object DataView]"; var xs = As(ms), Ps = As(ds), Ms = As(ys), Es = As(bs), Ts = As(js); var ks = gs; if (ms && ks(new ms(new ArrayBuffer(1))) != Ss || ds && ks(new ds) != ws || ys && ks(ys.resolve()) != Is || bs && ks(new bs) != Os || js && ks(new js) != Cs) { ks = function(t) { var r = gs(t), e = r == _s ? t.constructor : undefined, n = e ? As(e) : ""; if (n) { switch (n) { case xs: return Ss; case Ps: return ws; case Ms: return Is; case Es: return Os; case Ts: return Cs; } } return r; }; } var Ds = ks; var Ls = Object.prototype; var Gs = Ls.hasOwnProperty; function Ns(t) { var r = t.length, e = new t.constructor(r); if (r && typeof t[0] == "string" && Gs.call(t, "index")) { e.index = t.index; e.input = t.input; } return e; } var Fs = Ns; var zs = Bt; var Hs = zs.Uint8Array; var Us = Hs; var Rs = Us; function Vs(t) { var r = new t.constructor(t.byteLength); new Rs(r).set(new Rs(t)); return r; } var Bs = Vs; var Ws = Bs; function $s(t, r) { var e = r ? Ws(t.buffer) : t.buffer; return new t.constructor(e, t.byteOffset, t.byteLength); } var qs = $s; var Ks = /\w*$/; function Xs(t) { var r = new t.constructor(t.source, Ks.exec(t)); r.lastIndex = t.lastIndex; return r; } var Js = Xs; var Qs = qt; var Ys = Qs ? Qs.prototype : undefined, Zs = Ys ? Ys.valueOf : undefined; function tc(t) { return Zs ? Object(Zs.call(t)) : {}; } var rc = tc; var ec = Bs; function nc(t, r) { var e = r ? ec(t.buffer) : t.buffer; return new t.constructor(e, t.byteOffset, t.length); } var oc = nc; var ac = Bs, ic = qs, sc = Js, cc = rc, uc = oc; var pc = "[object Boolean]", lc = "[object Date]", fc = "[object Map]", vc = "[object Number]", hc = "[object RegExp]", mc = "[object Set]", dc = "[object String]", yc = "[object Symbol]"; var bc = "[object ArrayBuffer]", jc = "[object DataView]", gc = "[object Float32Array]", Ac = "[object Float64Array]", wc = "[object Int8Array]", _c = "[object Int16Array]", Ic = "[object Int32Array]", Oc = "[object Uint8Array]", Cc = "[object Uint8ClampedArray]", Sc = "[object Uint16Array]", xc = "[object Uint32Array]"; function Pc(t, r, e) { var n = t.constructor; switch (r) { case bc: return ac(t); case pc: case lc: return new n(+t); case jc: return ic(t, e); case gc: case Ac: case wc: case _c: case Ic: case Oc: case Cc: case Sc: case xc: return uc(t, e); case fc: return new n; case vc: case dc: return new n(t); case hc: return sc(t); case mc: return new n; case yc: return cc(t); } } var Mc = Pc; var Ec = hr; var Tc = Object.create; var kc = function() { function t() {} return function(r) { if (!Ec(r)) { return {}; } if (Tc) { return Tc(r); } t.prototype = r; var e = new t; t.prototype = undefined; return e; }; }(); var Dc = kc; var Lc = Dc, Gc = Si, Nc = ma; function Fc(t) { return typeof t.constructor == "function" && !Nc(t) ? Lc(Gc(t)) : {}; } var zc = Fc; var Hc = Ds, Uc = Bn; var Rc = "[object Map]"; function Vc(t) { return Uc(t) && Hc(t) == Rc; } var Bc = Vc; var Wc = Bc, $c = Ko, qc = Jo; var Kc = qc && qc.isMap; var Xc = Kc ? $c(Kc) : Wc; var Jc = Xc; var Qc = Ds, Yc = Bn; var Zc = "[object Set]"; function tu(t) { return Yc(t) && Qc(t) == Zc; } var ru = tu; var eu = ru, nu = Ko, ou = Jo; var au = ou && ou.isSet; var iu = au ? nu(au) : eu; var su = iu; var cu = wn, uu = In, pu = Gn, lu = za, fu = ni, vu = ai, hu = si, mu = wi, du = Fi, yu = qi, bu = Yi, ju = Ds, gu = Fs, Au = Mc, wu = zc, _u = oo, Iu = co, Ou = Jc, Cu = hr, Su = su, xu = La, Pu = Za; var Mu = 1, Eu = 2, Tu = 4; var ku = "[object Arguments]", Du = "[object Array]", Lu = "[object Boolean]", Gu = "[object Date]", Nu = "[object Error]", Fu = "[object Function]", zu = "[object GeneratorFunction]", Hu = "[object Map]", Uu = "[object Number]", Ru = "[object Object]", Vu = "[object RegExp]", Bu = "[object Set]", Wu = "[object String]", $u = "[object Symbol]", qu = "[object WeakMap]"; var Ku = "[object ArrayBuffer]", Xu = "[object DataView]", Ju = "[object Float32Array]", Qu = "[object Float64Array]", Yu = "[object Int8Array]", Zu = "[object Int16Array]", tp = "[object Int32Array]", rp = "[object Uint8Array]", ep = "[object Uint8ClampedArray]", np = "[object Uint16Array]", op = "[object Uint32Array]"; var ap = {}; ap[ku] = ap[Du] = ap[Ku] = ap[Xu] = ap[Lu] = ap[Gu] = ap[Ju] = ap[Qu] = ap[Yu] = ap[Zu] = ap[tp] = ap[Hu] = ap[Uu] = ap[Ru] = ap[Vu] = ap[Bu] = ap[Wu] = ap[$u] = ap[rp] = ap[ep] = ap[np] = ap[op] = true; ap[Nu] = ap[Fu] = ap[qu] = false; function ip(t, r, e, n, o, a) { var i, s = r & Mu, c = r & Eu, u = r & Tu; if (e) { i = o ? e(t, n, o, a) : e(t); } if (i !== undefined) { return i; } if (!Cu(t)) { return t; } var p = _u(t); if (p) { i = gu(t); if (!s) { return hu(t, i); } } else { var l = ju(t), f = l == Fu || l == zu; if (Iu(t)) { return vu(t, s); } if (l == Ru || l == ku || f && !o) { i = c || f ? {} : wu(t); if (!s) { return c ? du(t, fu(i, t)) : mu(t, lu(i, t)); } } else { if (!ap[l]) { return o ? t : {}; } i = Au(t, l, s); } } a || (a = new cu); var v = a.get(t); if (v) { return v; } a.set(t, i); if (Su(t)) { t.forEach(function(n) { i.add(ip(n, r, e, n, t, a)); }); } else if (Ou(t)) { t.forEach(function(n, o) { i.set(o, ip(n, r, e, o, t, a)); }); } var h = u ? c ? bu : yu : c ? Pu : xu; var m = p ? undefined : h(t); uu(m || t, function(n, o) { if (m) { o = n; n = t[o]; } pu(i, o, ip(n, r, e, o, t, a)); }); return i; } var sp = ip; var cp = sp; var up = 1, pp = 4; function lp(t) { return cp(t, up | pp); } var fp = lp; const vp = v(fp); const hp = t => t; const mp = t => t; const dp = t => t; const yp = t => t; let bp = class Entrypoint extends e { constructor() { super(...arguments); this.CLIActionPatternMap = new Map; this.HTTPActionPatternMap = new Map; this.ServiceActionPatternMap = new Map; this.CLIActionPatternManager = new i; this.HTTPActionPatternManager = new i; this.ServiceActionPatternManager = new i; this.entrypointDestroyers = []; this.httpActionInfoMap = new Map; this.serviceActionInfoMap = new Map; this.cliActionInfoMap = new Map; this.accessControl = j; } async init() { await Promise.all(this.controllers.map(t => { o(this, t); return new Promise((r, e) => this.container.register(t).then(r).catch(e)); })); const {CLI: t, HTTP: r, Service: e} = a(this); t.forEach((t, r) => { this.cliActionInfoMap.set(t.id, { id: t.id, command: t.pattern.command, acl: t.acl, name: t.name, description: t.description, groups: t.groups, controller: t.constructor.className, method: t.method.toString(), jsonSchema: t.jsonSchema }); this.CLIActionPatternMap.set(r, t); this.CLIActionPatternManager.add(r, t); }); r.forEach((t, r) => { this.httpActionInfoMap.set(t.id, { id: t.id, route: t.pattern.route, acl: t.acl, name: t.name, description: t.description, groups: t.groups, controller: t.constructor.className, method: t.method.toString(), jsonSchema: t.jsonSchema }); this.HTTPActionPatternMap.set(r, t); this.HTTPActionPatternManager.add(r, t); }); e.forEach((t, r) => { this.serviceActionInfoMap.set(t.id, { id: t.id, pattern: t.pattern, acl: t.acl, name: t.name, description: t.description, groups: t.groups, controller: t.constructor.className, method: t.method.toString(), jsonSchema: t.jsonSchema }); this.ServiceActionPatternMap.set(r, t); this.ServiceActionPatternManager.add(r, t); }); this.register(this.service, t => this.registerServiceEntrypoint(t)); this.register(this.cli, t => this.registerCLIEntrypoint(t)); this.register(this.http, t => this.registerHTTPEntrypoint(t)); const n = this.findInvalidActionGroupIds(this.cliActionInfoMap, "cli"); if (n.length) throw new w("Found {type} action groups are not defined in cliActionGroups: {groupIds}", { type: "CLI", groupIds: n }); const i = this.findInvalidActionGroupIds(this.httpActionInfoMap, "http"); if (i.length) throw new w("Found {type} action groups are not defined in httpActionGroups: {groupIds}", { type: "HTTP", groupIds: i }); const s = this.findInvalidActionGroupIds(this.serviceActionInfoMap, "service"); if (s.length) throw new w("Found {type} action groups are not defined in serviceActionGroups: {groupIds}", { type: "Service", groupIds: s }); const c = this.findDuplicateActionNames(this.cliActionInfoMap); if (c.length) throw new b("Duplicate {type} action names found: {names}", { type: "CLI", names: c }); const u = this.findDuplicateActionNames(this.httpActionInfoMap); if (u.length) throw new b("Duplicate {type} action names found: {names}", { type: "HTTP", names: u }); const p = this.findDuplicateActionNames(this.serviceActionInfoMap); if (p.length) throw new b("Duplicate {type} action names found: {names}", { type: "Service", names: p }); } get HTTP_ACTIONS() { return [ ...this.httpActionInfoMap.values() ]; } get SERVICE_ACTIONS() { return [ ...this.serviceActionInfoMap.values() ]; } get CLI_ACTIONS() { return [ ...this.cliActionInfoMap.values() ]; } async destroy() { await Promise.all(this.entrypointDestroyers.map(t => new Promise((r, e) => Promise.resolve(t()).then(r).catch(e)))); } getEntrypointActions(t) { const r = new Map; let e; let n; switch (t) { case "http": { n = c(this.HTTP_ACTIONS); e = this.httpActionGroups; } break; case "cli": { n = c(this.CLI_ACTIONS); e = this.cliActionGroups; } break; case "service": { n = c(this.SERVICE_ACTIONS); e = this.serviceActionGroups; } break; default: { n = []; e = {}; } } n.forEach(t => { t.groups.forEach(n => { if (!r.has(n)) r.set(n, { id: n, name: e[n], actions: [] }); r.get(n)?.actions.push(t); }); }); return { groups: [ ...r.values() ], actions: n }; } findInvalidActionGroupIds(t, r) { const e = [ ...t.values() ]; const n = new Set; e.forEach(t => { t.groups.forEach(t => { switch (r) { case "cli": if (this.cliActionGroups[t] !== undefined) return; break; case "http": if (this.httpActionGroups[t] !== undefined) return; break; case "service": if (this.serviceActionGroups[t] !== undefined) return; break; } n.add(t); }); }); return [ ...n ]; } findDuplicateActionNames(t) { const r = [ ...t.values() ].map(t => t.name); const e = new Set; const n = new Set; r.forEach(t => e.has(t) ? n.add(t) : e.add(t)); return Array.from(n); } async runAccessControl(t, r, e, n, o) { const [a, i] = await this.accessControl.run(t, r, e, n, o, t => { switch (t) { case g.HTTP: return this.HTTP_ACTIONS; case g.SERVICE: return this.SERVICE_ACTIONS; case g.CLI: return this.CLI_ACTIONS; default: return []; } }); if (!a) throw i; } async runControllerMethodWithoutAbortController(t, r, e) { const n = this.createScope(); const o = await n.get(t.constructor, { context: r }); try { const a = vp(await e.validateAsync(r.data)); await this.runAccessControl(this.rules, n, r, a, t); return await o.getMethod(c(t.method))(a); } catch (t) { throw t; } finally { n.destroy().catch(t => { throw new p(t.message); }); } } async runControllerMethodWithAbortController(t, r, e, n) { let o = false; const a = () => { o = true; i.destroy().catch(t => { throw new p(t.message); }); }; n.signal.addEventListener("abort", a, { once: true }); const i = this.createScope(); const s = await i.get(t.constructor, { context: r }); try { const n = vp(await e.validateAsync(r.data)); await this.runAccessControl(this.rules, i, r, n, t); const a = await s.getMethod(c(t.method))(n); if (!o) return a; } catch (t) { if (!o) n.signal.removeEventListener("abort", a); throw t; } } async runControllerMethod(t, r, e, n) { if (n) return await this.runControllerMethodWithAbortController(t, r, e, n); return await this.runControllerMethodWithoutAbortController(t, r, e); } register(t, r) { (t ? Array.isArray(t) ? t : [ t ] : []).forEach(t => r(t)); } registerCLIEntrypoint(t) { const r = new Map; this.CLIActionPatternMap.forEach((t, e) => r.set(e.command, t.jsonSchema)); return t(this.getModule(), r, async (t, r) => { const e = { command: t.command }; const n = this.CLIActionPatternManager.find(e); if (!n) throw new u("Command not found"); return await this.runControllerMethod(n, t, n.dtoConstructor, r); }, t => this.entrypointDestroyers.push(t)); } registerHTTPEntrypoint(t) { const r = new Map; for (const t of this.HTTPActionPatternMap.keys()) { const e = r.get(t.route) || new Set; e.add(t.method); r.set(t.route, e); } return t(this.getModule(), r, async (t, r) => { const e = { route: t.route, method: t.method }; const n = this.HTTPActionPatternManager.find(e); if (!n) throw new u("Route '{route}' not found", t); return await this.runControllerMethod(n, t, n.dtoConstructor, r); }, t => this.entrypointDestroyers.push(t)); } registerServiceEntrypoint(t) { return t(this.getModule(), async (t, r) => { const e = this.ServiceActionPatternManager.find(t.input); if (!e) throw new u("Controller action not found"); const n = l(e.pattern); n.forEach(r => rt(t.data, r)); const o = m(n.map(t => t.substring(0, t.lastIndexOf("."))).filter(t => !!t)); o.forEach(r => { let e = t.data; r.split(".").forEach(t => e = e[t] ? e[t] : undefined); if (e && !Object.keys(e).length) rt(t.data, r); }); return await this.runControllerMethod(e, t, e.dtoConstructor, r); }, t => this.entrypointDestroyers.push(t)); } getHttpActionGroups() { return this.httpActionGroups; } getServiceActionGroups() { return this.serviceActionGroups; } getCliActionGroups() { return this.cliActionGroups; } getHttpActions() { return this.getEntrypointActions("http"); } getServiceActions() { return this.getEntrypointActions("service"); } getCliActions() { return this.getEntrypointActions("cli"); } }; t([ n(d.Array(d.Class(s)).optional().default([])), r("design:type", Array) ], bp.prototype, "controllers", void 0); t([ n(d.Array(d.Class(A)).optional().default([])), r("design:type", Array) ], bp.prototype, "rules", void 0); t([ n(d.Object().pattern(d.String(), d.String()).optional().default({})), r("design:type", Object) ], bp.prototype, "cliActionGroups", void 0); t([ n(d.Object().pattern(d.String(), d.String()).optional().default({})), r("design:type", Object) ], bp.prototype, "httpActionGroups", void 0); t([ n(d.Object().pattern(d.String(), d.String()).optional().default({})), r("design:type", Object) ], bp.prototype, "serviceActionGroups", void 0); t([ n(), r("design:type", Object) ], bp.prototype, "cli", void 0); t([ n(), r("design:type", Object) ], bp.prototype, "http", void 0); t([ n(), r("design:type", Object) ], bp.prototype, "service", void 0); bp = t([ y() ], bp); export { hp as BuildCLIEntrypoint, yp as BuildEntrypoints, mp as BuildHTTPEntrypoint, dp as BuildServiceEntrypoint, g as ContextType, bp as Entrypoint };