From a3827feb263f853e4848202aab11e86a63e3786d Mon Sep 17 00:00:00 2001 From: Tommaso Morganti Date: Mon, 30 Mar 2026 18:40:38 +0200 Subject: [PATCH 1/2] fix: set character limit in schemas as DB limit (25 instead of 20) --- package.json | 2 +- src/lib/schemas.ts | 2 +- src/lib/validations.ts | 17 +++++------------ 3 files changed, 7 insertions(+), 14 deletions(-) diff --git a/package.json b/package.json index 66baa38..fefcd0a 100644 --- a/package.json +++ b/package.json @@ -66,5 +66,5 @@ "tw-animate-css": "^1.3.8", "typescript": "^5" }, - "packageManager": "pnpm@10.18.1+sha512.77a884a165cbba2d8d1c19e3b4880eee6d2fcabd0d879121e282196b80042351d5eb3ca0935fa599da1dc51265cc68816ad2bddd2a2de5ea9fdf92adbec7cd34" + "packageManager": "pnpm@10.33.0+sha512.10568bb4a6afb58c9eb3630da90cc9516417abebd3fabbe6739f0ae795728da1491e9db5a544c76ad8eb7570f5c4bb3d6c637b2cb41bfdcdb47fa823c8649319" } diff --git a/src/lib/schemas.ts b/src/lib/schemas.ts index bd5be7d..5edff01 100644 --- a/src/lib/schemas.ts +++ b/src/lib/schemas.ts @@ -4,7 +4,7 @@ export const URLRecord = z.object({ id: z.coerce.number(), is_custom: z.boolean(), original_url: z.string().url(), - short_code: z.string().max(20), + short_code: z.string().max(25), created_at: z.coerce.date(), updated_at: z.coerce.date(), click_count: z.number().int().nonnegative(), diff --git a/src/lib/validations.ts b/src/lib/validations.ts index a2e23e4..18106e7 100644 --- a/src/lib/validations.ts +++ b/src/lib/validations.ts @@ -1,24 +1,17 @@ import { z } from "zod" -export const createUrlSchema = z.object({ +export const editUrlSchema = z.object({ url: z.string().url("Invalid URL format"), shortCode: z .string() .min(2, "Short code must be at least 3 characters") - .max(20, "Short code must be at most 20 characters") + .max(25, "Short code must be at most 25 characters") .regex( /^[a-zA-Z0-9_-]+$/, "Short code can only contain letters, numbers, hyphens and underscores" - ) - .optional(), + ), }) -export type CreateUrlInput = z.infer - -export const editUrlSchema = createUrlSchema.extend({ - shortCode: z - .string() - .min(2) - .max(20) - .regex(/^[a-zA-Z0-9_-]+$/), +export const createUrlSchema = editUrlSchema.extend({ + shortCode: editUrlSchema.shape.shortCode.optional(), }) From 99298c35367ead417e5c3037aaa63bedeb91d212 Mon Sep 17 00:00:00 2001 From: Tommaso Morganti Date: Tue, 31 Mar 2026 22:17:39 +0200 Subject: [PATCH 2/2] fix: typo --- src/lib/validations.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/validations.ts b/src/lib/validations.ts index 18106e7..0399c93 100644 --- a/src/lib/validations.ts +++ b/src/lib/validations.ts @@ -4,7 +4,7 @@ export const editUrlSchema = z.object({ url: z.string().url("Invalid URL format"), shortCode: z .string() - .min(2, "Short code must be at least 3 characters") + .min(2, "Short code must be at least 2 characters") .max(25, "Short code must be at most 25 characters") .regex( /^[a-zA-Z0-9_-]+$/,