/** * WHMCS Coercion Utilities (domain-internal) */ /** * Coerce boolean-like values from WHMCS into actual booleans. * * Handles all shapes that WHMCS returns for boolean fields: * - boolean → pass-through * - number → 1 is true, everything else false * - string → "1", "true", "yes", "on" are true (case-insensitive) * - null / undefined → false */ export function coerceBoolean(value: boolean | number | string | null | undefined): boolean { if (typeof value === "boolean") return value; if (typeof value === "number") return value === 1; if (typeof value === "string") { const normalized = value.trim().toLowerCase(); return ( normalized === "1" || normalized === "true" || normalized === "yes" || normalized === "on" ); } return false; }