lakutata
Version:
An IoC-based universal application framework.
345 lines (297 loc) • 8.21 kB
JavaScript
/* Build Date: Mon Jan 05 2026 23:52:23 GMT+0800 (China Standard Time) */
;
Object.defineProperty(exports, Symbol.toStringTag, {
value: "Module"
});
require("../../../../vendor/Package.internal.1.cjs");
const r = require("node:util/types");
const t = require("../../../../vendor/Package.internal.2.cjs");
const e = require("../../validation/VLD.cjs");
const n = require("../../helpers/As.cjs");
const a = require("../../../../vendor/Package.internal.8.cjs");
const i = require("../../helpers/IsHtml.cjs");
const s = require("../../helpers/IsXML.cjs");
require("url");
require("util");
require("../../../exceptions/dto/InvalidValueException.cjs");
require("../abstracts/Exception.cjs");
require("../../../../vendor/Package.internal.5.cjs");
require("../../../../vendor/Package.internal.6.cjs");
require("./ThrowWarning.cjs");
require("../../helpers/Templating.cjs");
require("./CamelCase.cjs");
require("../../helpers/NoCase.cjs");
require("../../helpers/DevNull.cjs");
var u = {};
var o = t.commonjsGlobal && t.commonjsGlobal.__assign || function() {
o = Object.assign || function(r) {
for (var t, e = 1, n = arguments.length; e < n; e++) {
t = arguments[e];
for (var a in t) if (Object.prototype.hasOwnProperty.call(t, a)) r[a] = t[a];
}
return r;
};
return o.apply(this, arguments);
};
Object.defineProperty(u, "__esModule", {
value: true
});
var c = u.isValidCron = void 0;
var l = function(r) {
if (/^\d+$/.test(r)) {
return Number(r);
} else {
return NaN;
}
};
var f = function(r) {
return r === "*";
};
var d = function(r) {
return r === "?";
};
var v = function(r, t, e) {
return r >= t && r <= e;
};
var p = function(r, t, e) {
var n = r.split("-");
switch (n.length) {
case 1:
return f(r) || v(l(r), t, e);
case 2:
var a = n.map(function(r) {
return l(r);
}), i = a[0], s = a[1];
return i <= s && v(i, t, e) && v(s, t, e);
default:
return false;
}
};
var y = function(r) {
return r === undefined || r.search(/[^\d]/) === -1 && l(r) > 0;
};
var h = function(r, t, e) {
if (r.search(/[^\d-,\/*]/) !== -1) {
return false;
}
var n = r.split(",");
return n.every(function(r) {
var n = r.split("/");
if (r.trim().endsWith("/")) {
return false;
}
if (n.length > 2) {
return false;
}
var a = n[0], i = n[1];
return p(a, t, e) && y(i);
});
};
var g = function(r) {
return h(r, 0, 59);
};
var m = function(r) {
return h(r, 0, 59);
};
var D = function(r) {
return h(r, 0, 23);
};
var V = function(r, t) {
return t && d(r) || h(r, 1, 31);
};
var j = {
jan: "1",
feb: "2",
mar: "3",
apr: "4",
may: "5",
jun: "6",
jul: "7",
aug: "8",
sep: "9",
oct: "10",
nov: "11",
dec: "12"
};
var b = function(r, t) {
if (r.search(/\/[a-zA-Z]/) !== -1) {
return false;
}
if (t) {
var e = r.toLowerCase().replace(/[a-z]{3}/g, function(r) {
return j[r] === undefined ? r : j[r];
});
return h(e, 1, 12);
}
return h(r, 1, 12);
};
var A = {
sun: "0",
mon: "1",
tue: "2",
wed: "3",
thu: "4",
fri: "5",
sat: "6"
};
var L = function(r, t) {
var e = t.allowBlankDay, n = t.alias, a = t.allowSevenAsSunday, i = t.allowNthWeekdayOfMonth;
if (e && d(r)) {
return true;
} else if (!e && d(r)) {
return false;
}
if (r.search(/\/[a-zA-Z]/) !== -1) {
return false;
}
var s = n ? r.toLowerCase().replace(/[a-z]{3}/g, function(r) {
return A[r] === undefined ? r : A[r];
}) : r;
var u = a ? 7 : 6;
var o = s.split("#");
if (i && o.length >= 2) {
var c = o[0], f = o[1], p = o.slice(2);
if (p.length !== 0) {
return false;
}
return v(l(f), 1, 5) && v(l(c), 0, u);
}
return h(s, 0, u);
};
var w = function(r, t, e) {
return !(e && d(r) && d(t));
};
var q = function(r) {
return r.trim().split(/\s+/);
};
var S = {
alias: false,
seconds: false,
allowBlankDay: false,
allowSevenAsSunday: false,
allowNthWeekdayOfMonth: false
};
c = u.isValidCron = function(r, t) {
var e = o(o({}, S), t);
var n = q(r);
if (n.length > (e.seconds ? 6 : 5) || n.length < 5) {
return false;
}
var a = [];
if (n.length === 6) {
var i = n.shift();
if (i) {
a.push(g(i));
}
}
var s = n[0], u = n[1], c = n[2], l = n[3], f = n[4];
a.push(m(s));
a.push(D(u));
a.push(V(c, e.allowBlankDay));
a.push(b(l, e.alias));
a.push(L(f, e));
a.push(w(c, f, e.allowBlankDay));
return a.every(Boolean);
};
class DataValidator {
static Any() {
return e.VLD.any().strict(true);
}
static String() {
return e.VLD.string().strict(true);
}
static Number() {
return e.VLD.number().strict(true);
}
static BigInt() {
return e.VLD.bigint().strict(true);
}
static Boolean() {
return e.VLD.boolean().strict(true);
}
static Date() {
return e.VLD.date().strict(true);
}
static Object(r) {
return e.VLD.object(r).strict(true);
}
static Array(...r) {
return e.VLD.array().items(...r).strict(true);
}
static Binary() {
return e.VLD.binary().strict(true);
}
static Function() {
return e.VLD.func().strict(true);
}
static AsyncFunction() {
return this.Function().custom((t, e) => {
if (r.isAsyncFunction(t)) return t;
return e.error("asyncFunc.invalid");
}, "Async Function Validation").error(r => {
for (const t of r) {
if (t.code === "asyncFunc.invalid") {
t.message = "Expected AsyncFunction but got Function";
return t;
}
}
return r[0];
});
}
static Class(r) {
if (!r) return e.VLD.func().class();
return this.Function().class().custom((t, e) => {
if (!n.As(r).prototype) r = n.As(r)();
if (t instanceof n.As(r) || t["prototype"] instanceof n.As(r)) return t;
return e.error("any.invalid");
}, "Class Validation");
}
static InstanceOf(r) {
return this.Any().custom((t, e) => {
if (t instanceof n.As(r) || t["prototype"] instanceof n.As(r)) return t;
return e.error("any.invalid");
}, "Class Instance Validation");
}
static Glob() {
return this.String().custom((r, t) => {
if (typeof r === "string" && a.IsGlobString(r)) return r;
return t.error("any.invalid");
}, "Glob Validation");
}
static Cron(r) {
return this.String().custom((t, e) => {
r = r ? r : {};
r.alias = r.alias !== undefined ? r.alias : false;
r.seconds = r.seconds !== undefined ? r.seconds : true;
r.allowBlankDay = r.allowBlankDay !== undefined ? r.allowBlankDay : true;
r.allowSevenAsSunday = r.allowSevenAsSunday !== undefined ? r.allowSevenAsSunday : true;
if (typeof t === "string" && c(t, r)) return t;
return e.error("any.invalid");
}, "Cron Validation");
}
static HttpDocument() {
return this.String().custom((r, t) => {
if (typeof r === "string" && (i.IsHtml(r) || s.IsXML(r))) return r;
return t.error("any.invalid");
}, "HttpDocument Validation");
}
static Symbol() {
return e.VLD.symbol().strict(true);
}
static Alternatives(...r) {
return e.VLD.alternatives(...r).strict(true);
}
static Ref(r, t) {
return e.VLD.ref(r, t);
}
static In(r, t) {
return e.VLD.in(r, t);
}
static Attempt(r, t, n) {
return e.VLD.attempt(r, t, n);
}
static Link(r) {
return e.VLD.link(r);
}
}
exports.DataValidator = DataValidator;