UNPKG

lakutata

Version:

An IoC-based universal application framework.

339 lines (293 loc) 7.98 kB
/* 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 };