/** * Frontend route parameter validation helpers (RHL-021). * * Goals: * - Catch obviously invalid params early (before any API calls / UI rendering). * - Keep helpers pure and easily testable. * * Conventions: * - branch: "NL01" (strict, uppercase) * - year: "YYYY" * - month: "MM" (01-12) * - day: "DD" (01-31) */ const BRANCH_RE = /^NL\d{2}$/; const YEAR_RE = /^\d{4}$/; const MONTH_RE = /^(0[1-9]|1[0-2])$/; const DAY_RE = /^(0[1-9]|[12]\d|3[01])$/; /** * @param {unknown} value * @returns {boolean} */ export function isValidBranchParam(value) { return typeof value === "string" && BRANCH_RE.test(value); } /** * @param {unknown} value * @returns {boolean} */ export function isValidYearParam(value) { return typeof value === "string" && YEAR_RE.test(value); } /** * @param {unknown} value * @returns {boolean} */ export function isValidMonthParam(value) { return typeof value === "string" && MONTH_RE.test(value); } /** * @param {unknown} value * @returns {boolean} */ export function isValidDayParam(value) { return typeof value === "string" && DAY_RE.test(value); }