فهرست منبع

fix(domain-core): allow any version and variant of the UUID format

Karol Sójko 1 سال پیش
والد
کامیت
de081fe786
2فایلهای تغییر یافته به همراه4 افزوده شده و 2 حذف شده
  1. 1 0
      packages/domain-core/src/Domain/Core/Validator.spec.ts
  2. 3 2
      packages/domain-core/src/Domain/Core/Validator.ts

+ 1 - 0
packages/domain-core/src/Domain/Core/Validator.spec.ts

@@ -5,6 +5,7 @@ describe('Validator', () => {
     '2221101c-1da9-4d2b-9b32-b8be2a8d1c82',
     'c08f2f29-a74b-42b4-aefd-98af9832391c',
     'b453fa64-1493-443b-b5bb-bca7b9c696c7',
+    'fa7350b3-77cf-8c0c-40b2-6046b13254fe',
   ]
 
   const invalidUuids = [

+ 3 - 2
packages/domain-core/src/Domain/Core/Validator.ts

@@ -1,12 +1,13 @@
 import { Result } from './Result'
 
 export class Validator {
-  private static readonly UUID_REGEX = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i
+  private static readonly UUID_ANY_VERSION_AND_VARIANT_REGEX =
+    /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i
   private static readonly EMAIL_REGEX =
     /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
 
   static isValidUuid(value: string): Result<string> {
-    const matchesUuidRegex = String(value).toLowerCase().match(Validator.UUID_REGEX) !== null
+    const matchesUuidRegex = String(value).toLowerCase().match(Validator.UUID_ANY_VERSION_AND_VARIANT_REGEX) !== null
     if (matchesUuidRegex) {
       return Result.ok()
     }