use zod for rules ip validation

This commit is contained in:
Milo Schwartz 2025-02-12 21:52:58 -05:00
parent fdf1dfdeba
commit 19273ddbd5
No known key found for this signature in database
3 changed files with 14 additions and 28 deletions

9
eslint.config.js Normal file
View file

@ -0,0 +1,9 @@
// eslint.config.js
export default [
{
rules: {
semi: "error",
"prefer-const": "error"
}
}
];

View file

@ -95,6 +95,7 @@ export async function validateSessionToken(
} }
export async function invalidateSession(sessionId: string): Promise<void> { export async function invalidateSession(sessionId: string): Promise<void> {
await db.delete(resourceSessions).where(eq(resourceSessions.userSessionId, sessionId));
await db.delete(sessions).where(eq(sessions.sessionId, sessionId)); await db.delete(sessions).where(eq(sessions.sessionId, sessionId));
} }

View file

@ -1,35 +1,11 @@
import z from "zod";
export function isValidCIDR(cidr: string): boolean { export function isValidCIDR(cidr: string): boolean {
// Match CIDR pattern (e.g., "192.168.0.0/24") return z.string().cidr().safeParse(cidr).success;
const cidrPattern =
/^([0-9]{1,3}\.){3}[0-9]{1,3}\/([0-9]|[1-2][0-9]|3[0-2])$/;
if (!cidrPattern.test(cidr)) {
return false;
}
// Validate IP address part
const ipPart = cidr.split("/")[0];
const octets = ipPart.split(".");
return octets.every((octet) => {
const num = parseInt(octet, 10);
return num >= 0 && num <= 255;
});
} }
export function isValidIP(ip: string): boolean { export function isValidIP(ip: string): boolean {
const ipPattern = /^([0-9]{1,3}\.){3}[0-9]{1,3}$/; return z.string().ip().safeParse(ip).success;
if (!ipPattern.test(ip)) {
return false;
}
const octets = ip.split(".");
return octets.every((octet) => {
const num = parseInt(octet, 10);
return num >= 0 && num <= 255;
});
} }
export function isValidUrlGlobPattern(pattern: string): boolean { export function isValidUrlGlobPattern(pattern: string): boolean {