From fe97fae00e4f4d96968cf9401dfb581dd55d5c84 Mon Sep 17 00:00:00 2001 From: Romain Date: Tue, 21 Mar 2023 18:32:12 +0100 Subject: [PATCH] fix ulid regex --- deno/lib/__tests__/string.test.ts | 2 ++ deno/lib/types.ts | 2 +- src/__tests__/string.test.ts | 2 ++ src/types.ts | 2 +- 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/deno/lib/__tests__/string.test.ts b/deno/lib/__tests__/string.test.ts index b1959eac4..64a0e8b7a 100644 --- a/deno/lib/__tests__/string.test.ts +++ b/deno/lib/__tests__/string.test.ts @@ -228,6 +228,8 @@ test("ulid", () => { ulid.parse("01ARZ3NDEKTSV4RRFFQ69G5FAV"); const result = ulid.safeParse("invalidulid"); expect(result.success).toEqual(false); + const tooLong = "01ARZ3NDEKTSV4RRFFQ69G5FAVA" + expect(ulid.safeParse(tooLong).success).toEqual(false); if (!result.success) { expect(result.error.issues[0].message).toEqual("Invalid ulid"); } diff --git a/deno/lib/types.ts b/deno/lib/types.ts index caacc6cd2..ae19d5dac 100644 --- a/deno/lib/types.ts +++ b/deno/lib/types.ts @@ -540,7 +540,7 @@ export interface ZodStringDef extends ZodTypeDef { const cuidRegex = /^c[^\s-]{8,}$/i; const cuid2Regex = /^[a-z][a-z0-9]*$/; -const ulidRegex = /[0-9A-HJKMNP-TV-Z]{26}/; +const ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/; const uuidRegex = /^([a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}|00000000-0000-0000-0000-000000000000)$/i; // from https://stackoverflow.com/a/46181/1550155 diff --git a/src/__tests__/string.test.ts b/src/__tests__/string.test.ts index 51343a918..21de86560 100644 --- a/src/__tests__/string.test.ts +++ b/src/__tests__/string.test.ts @@ -227,6 +227,8 @@ test("ulid", () => { ulid.parse("01ARZ3NDEKTSV4RRFFQ69G5FAV"); const result = ulid.safeParse("invalidulid"); expect(result.success).toEqual(false); + const tooLong = "01ARZ3NDEKTSV4RRFFQ69G5FAVA" + expect(ulid.safeParse(tooLong).success).toEqual(false); if (!result.success) { expect(result.error.issues[0].message).toEqual("Invalid ulid"); } diff --git a/src/types.ts b/src/types.ts index 0aadaaf86..2c08afaae 100644 --- a/src/types.ts +++ b/src/types.ts @@ -540,7 +540,7 @@ export interface ZodStringDef extends ZodTypeDef { const cuidRegex = /^c[^\s-]{8,}$/i; const cuid2Regex = /^[a-z][a-z0-9]*$/; -const ulidRegex = /[0-9A-HJKMNP-TV-Z]{26}/; +const ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/; const uuidRegex = /^([a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}|00000000-0000-0000-0000-000000000000)$/i; // from https://stackoverflow.com/a/46181/1550155