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