@zipbul/baker 0.0.1 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/README.ko.md +64 -12
  2. package/README.md +64 -12
  3. package/dist/index-jzjz61tg.js +14 -0
  4. package/dist/index-jzjz61tg.js.map +31 -0
  5. package/dist/index-txxjqhgc.js +6 -0
  6. package/dist/{index-w36xamck.js.map → index-txxjqhgc.js.map} +3 -3
  7. package/dist/index.d.ts +3 -0
  8. package/dist/index.js +2 -142
  9. package/dist/index.js.map +3 -12
  10. package/dist/src/collect.d.ts +2 -0
  11. package/dist/src/create-rule.d.ts +4 -0
  12. package/dist/src/decorators/common.d.ts +6 -0
  13. package/dist/src/decorators/index.d.ts +4 -1
  14. package/dist/src/decorators/index.js +2 -2
  15. package/dist/src/decorators/index.js.map +1 -1
  16. package/dist/src/decorators/nested.d.ts +17 -0
  17. package/dist/src/decorators/number.d.ts +8 -4
  18. package/dist/src/decorators/schema.d.ts +13 -0
  19. package/dist/src/errors.d.ts +2 -0
  20. package/dist/src/functions/index.d.ts +2 -0
  21. package/dist/src/functions/to-json-schema.d.ts +14 -0
  22. package/dist/src/interfaces.d.ts +7 -1
  23. package/dist/src/rules/index.js +2 -2
  24. package/dist/src/rules/index.js.map +1 -1
  25. package/dist/src/rules/number.d.ts +6 -2
  26. package/dist/src/seal/deserialize-builder.d.ts +3 -3
  27. package/dist/src/symbols.d.ts +2 -0
  28. package/dist/src/symbols.js +2 -2
  29. package/dist/src/symbols.js.map +1 -1
  30. package/dist/src/types.d.ts +65 -4
  31. package/package.json +4 -8
  32. package/dist/index-6pbm9cq6.js +0 -15
  33. package/dist/index-6pbm9cq6.js.map +0 -17
  34. package/dist/index-fww37qs9.js +0 -5
  35. package/dist/index-fww37qs9.js.map +0 -20
  36. package/dist/index-w36xamck.js +0 -6
  37. package/dist/src/aot/array.d.ts +0 -7
  38. package/dist/src/aot/common.d.ts +0 -15
  39. package/dist/src/aot/date.d.ts +0 -3
  40. package/dist/src/aot/index.d.ts +0 -9
  41. package/dist/src/aot/index.js +0 -5
  42. package/dist/src/aot/index.js.map +0 -18
  43. package/dist/src/aot/locales.d.ts +0 -5
  44. package/dist/src/aot/number.d.ts +0 -6
  45. package/dist/src/aot/object.d.ts +0 -6
  46. package/dist/src/aot/string.d.ts +0 -72
  47. package/dist/src/aot/transform.d.ts +0 -25
  48. package/dist/src/aot/typechecker.d.ts +0 -10
package/README.ko.md CHANGED
@@ -43,7 +43,9 @@ Baker는 class-validator의 **익숙한 데코레이터 DX**를 유지하면서,
43
43
  - 🔁 **순환 참조 감지** — seal 시점에 자동 정적 분석
44
44
  - 🏷️ **그룹 기반 검증** — `groups` 옵션으로 요청별 다른 규칙 적용
45
45
  - 🧩 **커스텀 규칙** — `createRule()`로 코드생성을 지원하는 사용자 정의 검증기 작성
46
- - 🚀 **AOT 모드**zipbul CLI로 빌드 시점에 코드 생성, 런타임 `seal()` 비용 제거
46
+ - 📐 **JSON Schema 출력** `toJsonSchema()`로 DTO에서 JSON Schema Draft 2020-12 생성
47
+ - 🪆 **`@Nested`** — 단일 데코레이터 중첩 DTO 검증 + discriminator 지원
48
+ - 🛡️ **Whitelist 모드** — `seal({ whitelist: true })`로 미선언 필드 거부
47
49
 
48
50
  ---
49
51
 
@@ -143,6 +145,7 @@ const plain = await serialize(userInstance);
143
145
  |---|---|
144
146
  | `@IsDefined()` | `!== undefined && !== null` |
145
147
  | `@IsOptional()` | 값이 없으면 이후 규칙 건너뜀 |
148
+ | `@IsNullable()` | `null` 허용 (검증 건너뜀), `undefined` 거부 |
146
149
  | `@IsNotEmpty()` | `!== undefined && !== null && !== ''` |
147
150
  | `@IsEmpty()` | `=== undefined \|\| === null \|\| === ''` |
148
151
  | `@Equals(val)` | `=== val` |
@@ -251,8 +254,10 @@ const plain = await serialize(userInstance);
251
254
  |---|---|
252
255
  | `@Transform(fn, opts?)` | 커스텀 변환 함수 |
253
256
  | `@Type(fn)` | 중첩 DTO 타입 지정 + 암묵적 변환 |
257
+ | `@Nested(fn, opts?)` | `@ValidateNested()` + `@Type(fn)` 축약 + discriminator 지원 |
254
258
  | `@Expose(opts?)` | 프로퍼티 노출 제어 |
255
259
  | `@Exclude(opts?)` | 직렬화에서 프로퍼티 제외 |
260
+ | `@Schema(schema)` | JSON Schema 메타데이터 부착 (클래스 또는 프로퍼티 레벨) |
256
261
 
257
262
  ---
258
263
 
@@ -267,7 +272,7 @@ interface ValidationOptions {
267
272
  message?: string | ((args: {
268
273
  property: string;
269
274
  value: unknown;
270
- constraints: unknown[];
275
+ constraints: Record<string, unknown>;
271
276
  }) => string); // 커스텀 에러 메시지
272
277
  context?: unknown; // 에러에 첨부할 임의 컨텍스트
273
278
  }
@@ -348,8 +353,10 @@ const user = await deserialize(UserDto, body, { groups: ['create'] });
348
353
 
349
354
  ## 🪆 중첩 객체
350
355
 
356
+ `@Nested`로 중첩 DTO를 검증합니다:
357
+
351
358
  ```typescript
352
- import { ValidateNested, Type } from '@zipbul/baker/decorators';
359
+ import { Nested, IsString } from '@zipbul/baker';
353
360
 
354
361
  class AddressDto {
355
362
  @IsString()
@@ -357,12 +364,38 @@ class AddressDto {
357
364
  }
358
365
 
359
366
  class UserDto {
360
- @ValidateNested()
361
- @Type(() => AddressDto)
367
+ @Nested(() => AddressDto)
362
368
  address!: AddressDto;
363
369
  }
364
370
  ```
365
371
 
372
+ 배열 중첩과 discriminator 다형성:
373
+
374
+ ```typescript
375
+ class ItemDto {
376
+ @IsString()
377
+ label!: string;
378
+ }
379
+
380
+ class ListDto {
381
+ @Nested(() => ItemDto, { each: true })
382
+ items!: ItemDto[];
383
+ }
384
+
385
+ class PetOwnerDto {
386
+ @Nested(() => DogDto, {
387
+ discriminator: {
388
+ property: 'type',
389
+ subTypes: [
390
+ { value: DogDto, name: 'dog' },
391
+ { value: CatDto, name: 'cat' },
392
+ ],
393
+ },
394
+ })
395
+ pet!: DogDto | CatDto;
396
+ }
397
+ ```
398
+
366
399
  ---
367
400
 
368
401
  ## 🧩 커스텀 규칙
@@ -390,23 +423,43 @@ seal({
390
423
  enableCircularCheck: 'auto', // 순환 참조 감지 ('auto' | true | false)
391
424
  exposeDefaultValues: false, // 누락된 키에 클래스 기본값 사용
392
425
  stopAtFirstError: false, // 첫 에러에서 중단 또는 전체 수집
426
+ whitelist: false, // 미선언 필드 거부
393
427
  debug: false, // 생성된 소스를 검사용으로 저장
394
428
  });
395
429
  ```
396
430
 
397
431
  ---
398
432
 
399
- ## 🔧 AOT 모드
433
+ ## 📐 JSON Schema
400
434
 
401
- **zipbul CLI**를 사용하면 빌드 시점에 검증 코드를 생성하여, 런타임 `seal()` 비용을 완전히 제거할 수 있습니다.
435
+ DTO에서 JSON Schema Draft 2020-12를 생성합니다:
402
436
 
403
- AOT 모드에서는 `/aot` 임포트(빈 스텁 데코레이터)를 사용합니다:
437
+ ```typescript
438
+ import { toJsonSchema } from '@zipbul/baker';
439
+
440
+ const schema = toJsonSchema(CreateUserDto);
441
+ // { $schema: "https://json-schema.org/draft/2020-12/schema", type: "object", properties: { ... } }
442
+ ```
443
+
444
+ 옵션:
404
445
 
405
446
  ```typescript
406
- import { IsString } from '@zipbul/baker/aot';
447
+ toJsonSchema(CreateUserDto, {
448
+ direction: 'deserialize', // 'deserialize' | 'serialize' — @Expose/@Exclude 방향 필터링
449
+ groups: ['create'], // 그룹별 규칙/필드 필터링
450
+ });
407
451
  ```
408
452
 
409
- CLI가 빌드 단계에서 스텁들을 사전 생성된 검증 코드로 대체합니다.
453
+ `@Schema()`로 추가 JSON Schema 메타데이터를 부착합니다:
454
+
455
+ ```typescript
456
+ @Schema({ title: 'CreateUser', description: '새 사용자 생성' })
457
+ class CreateUserDto {
458
+ @IsString()
459
+ @Schema({ description: '표시 이름', examples: ['Alice'] })
460
+ name!: string;
461
+ }
462
+ ```
410
463
 
411
464
  ---
412
465
 
@@ -414,9 +467,8 @@ CLI가 빌드 단계에서 이 스텁들을 사전 생성된 검증 코드로
414
467
 
415
468
  | 임포트 경로 | 용도 |
416
469
  |---|---|
417
- | `@zipbul/baker` | 메인 API: `seal`, `deserialize`, `serialize`, 모든 데코레이터 |
470
+ | `@zipbul/baker` | 메인 API: `seal`, `deserialize`, `serialize`, `toJsonSchema`, 모든 데코레이터 |
418
471
  | `@zipbul/baker/decorators` | 데코레이터만 |
419
- | `@zipbul/baker/aot` | AOT 모드용 빈 스텁 데코레이터 |
420
472
  | `@zipbul/baker/rules` | 원시 규칙 객체 |
421
473
  | `@zipbul/baker/symbols` | 내부 심볼 |
422
474
 
package/README.md CHANGED
@@ -43,7 +43,9 @@ Baker gives you the **familiar decorator DX** of class-validator while generatin
43
43
  - 🔁 **Circular reference detection** — automatic static analysis at seal time
44
44
  - 🏷️ **Group-based validation** — apply different rules per request with `groups`
45
45
  - 🧩 **Custom rules** — `createRule()` for user-defined validators with codegen support
46
- - 🚀 **AOT mode** — zipbul CLI generates code at build time, eliminating runtime `seal()` cost
46
+ - 📐 **JSON Schema output** — `toJsonSchema()` generates JSON Schema Draft 2020-12 from your DTOs
47
+ - 🪆 **`@Nested`** — single-decorator nested DTO validation with discriminator support
48
+ - 🛡️ **Whitelist mode** — reject undeclared fields with `seal({ whitelist: true })`
47
49
 
48
50
  ---
49
51
 
@@ -143,6 +145,7 @@ const plain = await serialize(userInstance);
143
145
  |---|---|
144
146
  | `@IsDefined()` | `!== undefined && !== null` |
145
147
  | `@IsOptional()` | Skip subsequent rules if value is absent |
148
+ | `@IsNullable()` | Allow `null` (skip validation), reject `undefined` |
146
149
  | `@IsNotEmpty()` | `!== undefined && !== null && !== ''` |
147
150
  | `@IsEmpty()` | `=== undefined \|\| === null \|\| === ''` |
148
151
  | `@Equals(val)` | `=== val` |
@@ -251,8 +254,10 @@ const plain = await serialize(userInstance);
251
254
  |---|---|
252
255
  | `@Transform(fn, opts?)` | Custom transform function |
253
256
  | `@Type(fn)` | Nested DTO type + implicit conversion |
257
+ | `@Nested(fn, opts?)` | Shorthand for `@ValidateNested()` + `@Type(fn)` with discriminator support |
254
258
  | `@Expose(opts?)` | Control property exposure |
255
259
  | `@Exclude(opts?)` | Exclude property from serialization |
260
+ | `@Schema(schema)` | Attach JSON Schema metadata (class or property level) |
256
261
 
257
262
  ---
258
263
 
@@ -267,7 +272,7 @@ interface ValidationOptions {
267
272
  message?: string | ((args: {
268
273
  property: string;
269
274
  value: unknown;
270
- constraints: unknown[];
275
+ constraints: Record<string, unknown>;
271
276
  }) => string); // Custom error message
272
277
  context?: unknown; // Arbitrary context attached to error
273
278
  }
@@ -348,8 +353,10 @@ const user = await deserialize(UserDto, body, { groups: ['create'] });
348
353
 
349
354
  ## 🪆 Nested Objects
350
355
 
356
+ Use `@Nested` for nested DTO validation:
357
+
351
358
  ```typescript
352
- import { ValidateNested, Type } from '@zipbul/baker/decorators';
359
+ import { Nested, IsString } from '@zipbul/baker';
353
360
 
354
361
  class AddressDto {
355
362
  @IsString()
@@ -357,12 +364,38 @@ class AddressDto {
357
364
  }
358
365
 
359
366
  class UserDto {
360
- @ValidateNested()
361
- @Type(() => AddressDto)
367
+ @Nested(() => AddressDto)
362
368
  address!: AddressDto;
363
369
  }
364
370
  ```
365
371
 
372
+ Array nesting and discriminator polymorphism:
373
+
374
+ ```typescript
375
+ class ItemDto {
376
+ @IsString()
377
+ label!: string;
378
+ }
379
+
380
+ class ListDto {
381
+ @Nested(() => ItemDto, { each: true })
382
+ items!: ItemDto[];
383
+ }
384
+
385
+ class PetOwnerDto {
386
+ @Nested(() => DogDto, {
387
+ discriminator: {
388
+ property: 'type',
389
+ subTypes: [
390
+ { value: DogDto, name: 'dog' },
391
+ { value: CatDto, name: 'cat' },
392
+ ],
393
+ },
394
+ })
395
+ pet!: DogDto | CatDto;
396
+ }
397
+ ```
398
+
366
399
  ---
367
400
 
368
401
  ## 🧩 Custom Rules
@@ -390,23 +423,43 @@ seal({
390
423
  enableCircularCheck: 'auto', // Detect circular references ('auto' | true | false)
391
424
  exposeDefaultValues: false, // Use class defaults for missing keys
392
425
  stopAtFirstError: false, // Stop at first error or collect all
426
+ whitelist: false, // Reject undeclared fields
393
427
  debug: false, // Store generated source for inspection
394
428
  });
395
429
  ```
396
430
 
397
431
  ---
398
432
 
399
- ## 🔧 AOT Mode
433
+ ## 📐 JSON Schema
400
434
 
401
- With the **zipbul CLI**, you can generate validation code at build time — eliminating the runtime `seal()` cost entirely.
435
+ Generate JSON Schema Draft 2020-12 from your DTOs:
402
436
 
403
- In AOT mode, use the `/aot` import (no-op stub decorators):
437
+ ```typescript
438
+ import { toJsonSchema } from '@zipbul/baker';
439
+
440
+ const schema = toJsonSchema(CreateUserDto);
441
+ // { $schema: "https://json-schema.org/draft/2020-12/schema", type: "object", properties: { ... } }
442
+ ```
443
+
444
+ Options:
404
445
 
405
446
  ```typescript
406
- import { IsString } from '@zipbul/baker/aot';
447
+ toJsonSchema(CreateUserDto, {
448
+ direction: 'deserialize', // 'deserialize' | 'serialize' — filters @Expose/@Exclude direction
449
+ groups: ['create'], // Filter rules/fields by group
450
+ });
407
451
  ```
408
452
 
409
- The CLI replaces these stubs with pre-generated validation code during the build step.
453
+ Use `@Schema()` to attach additional JSON Schema metadata:
454
+
455
+ ```typescript
456
+ @Schema({ title: 'CreateUser', description: 'Creates a new user' })
457
+ class CreateUserDto {
458
+ @IsString()
459
+ @Schema({ description: 'Display name', examples: ['Alice'] })
460
+ name!: string;
461
+ }
462
+ ```
410
463
 
411
464
  ---
412
465
 
@@ -414,9 +467,8 @@ The CLI replaces these stubs with pre-generated validation code during the build
414
467
 
415
468
  | Import path | Purpose |
416
469
  |---|---|
417
- | `@zipbul/baker` | Main API: `seal`, `deserialize`, `serialize`, all decorators |
470
+ | `@zipbul/baker` | Main API: `seal`, `deserialize`, `serialize`, `toJsonSchema`, all decorators |
418
471
  | `@zipbul/baker/decorators` | Decorators only |
419
- | `@zipbul/baker/aot` | No-op stub decorators for AOT mode |
420
472
  | `@zipbul/baker/rules` | Raw rule objects |
421
473
  | `@zipbul/baker/symbols` | Internal symbols |
422
474
 
@@ -0,0 +1,14 @@
1
+ // @bun
2
+ import{fb as L,hb as v}from"./index-txxjqhgc.js";var m=new Set;function W(Q,Z){if(m.add(Q),!Object.prototype.hasOwnProperty.call(Q,L))Q[L]=Object.create(null);let $=Q[L];return $[Z]??={validation:[],transform:[],expose:[],exclude:null,type:null,flags:{},schema:null}}function K(Q,Z,$){W(Q.constructor,Z).validation.push($)}function h6(Q,Z,$){W(Q.constructor,Z).transform.push($)}function C6(Q,Z,$){W(Q.constructor,Z).expose.push($)}function T6(Q,Z,$){let z=W(Q.constructor,Z);z.exclude=$}function O(Q,Z,$){let z=W(Q.constructor,Z);z.type=$}function L6(Q,Z,$){let z=W(Q.constructor,Z);if(typeof $==="function"||typeof z.schema==="function")z.schema=$;else z.schema={...z.schema??{},...$}}function O6(Q,Z){m.add(Q);let $=Q[v];Q[v]={...$??{},...Z}}function A6(Q){let Z=($)=>$===Q;return Z.emit=($,z)=>{let I=z.addRef(Q);return`if (${$} !== _refs[${I}]) ${z.fail("equals")};`},Z.ruleName="equals",Z.constraints={value:Q},Z}function V6(Q){let Z=($)=>$!==Q;return Z.emit=($,z)=>{let I=z.addRef(Q);return`if (${$} === _refs[${I}]) ${z.fail("notEquals")};`},Z.ruleName="notEquals",Z.constraints={value:Q},Z}var A=(Q)=>Q===void 0||Q===null||Q==="";A.emit=(Q,Z)=>`if (${Q} !== undefined && ${Q} !== null && ${Q} !== '') ${Z.fail("isEmpty")};`;A.ruleName="isEmpty";A.constraints={};var S6=A,V=(Q)=>Q!==void 0&&Q!==null&&Q!=="";V.emit=(Q,Z)=>`if (${Q} === undefined || ${Q} === null || ${Q} === '') ${Z.fail("isNotEmpty")};`;V.ruleName="isNotEmpty";V.constraints={};var R6=V;function E6(Q){let Z=($)=>Q.indexOf($)!==-1;return Z.emit=($,z)=>{return`if (_refs[${z.addRef(Q)}].indexOf(${$}) === -1) ${z.fail("isIn")};`},Z.ruleName="isIn",Z.constraints={values:Q},Z}function f6(Q){let Z=($)=>Q.indexOf($)===-1;return Z.emit=($,z)=>{return`if (_refs[${z.addRef(Q)}].indexOf(${$}) !== -1) ${z.fail("isNotIn")};`},Z.ruleName="isNotIn",Z.constraints={values:Q},Z}function NQ(Q){return(Z,$)=>{let z=W(Z.constructor,$);z.flags.isDefined=!0}}function xQ(Q){return(Z,$)=>{let z=W(Z.constructor,$);z.flags.isOptional=!0}}function uQ(Q){return(Z,$)=>{let z=W(Z.constructor,$);z.flags.validateIf=Q}}function mQ(Q){return(Z,$)=>{let z=W(Z.constructor,$);if(z.flags.validateNested=!0,Q?.each)z.flags.validateNestedEach=!0}}function vQ(Q){return(Z,$)=>{let z=W(Z.constructor,$);z.flags.isNullable=!0}}function cQ(Q,Z){return($,z)=>{K($,z,{rule:A6(Q),each:Z?.each,groups:Z?.groups,message:Z?.message,context:Z?.context})}}function rQ(Q,Z){return($,z)=>{K($,z,{rule:V6(Q),each:Z?.each,groups:Z?.groups,message:Z?.message,context:Z?.context})}}function lQ(Q){return(Z,$)=>{K(Z,$,{rule:S6,each:Q?.each,groups:Q?.groups,message:Q?.message,context:Q?.context})}}function pQ(Q){return(Z,$)=>{K(Z,$,{rule:R6,each:Q?.each,groups:Q?.groups,message:Q?.message,context:Q?.context})}}function sQ(Q,Z){return($,z)=>{K($,z,{rule:E6(Q),each:Z?.each,groups:Z?.groups,message:Z?.message,context:Z?.context})}}function nQ(Q,Z){return($,z)=>{K($,z,{rule:f6(Q),each:Z?.each,groups:Z?.groups,message:Z?.message,context:Z?.context})}}class c extends Error{constructor(Q){super(Q);this.name="SealError"}}function iQ(Q,Z){if(Z?.discriminator&&Z?.each)throw new c("@Nested: discriminator + each \uB3D9\uC2DC \uC0AC\uC6A9 \uBD88\uAC00");return($,z)=>{O($,z,{fn:Q,discriminator:Z?.discriminator,keepDiscriminatorProperty:Z?.keepDiscriminatorProperty});let I=W($.constructor,z);if(I.flags.validateNested=!0,Z?.each)I.flags.validateNestedEach=!0}}var S=(Q)=>typeof Q==="string";S.emit=(Q,Z)=>`if (typeof ${Q} !== 'string') ${Z.fail("isString")};`;S.ruleName="isString";S.constraints={};var d6=S;function _6(Q){let Z=Q?.allowNaN??!1,$=Q?.allowInfinity??!1,z=Q?.maxDecimalPlaces,I=(j)=>{if(typeof j!=="number")return!1;if(isNaN(j))return Z;if(!isFinite(j))return $;if(z!==void 0){let J=j.toString(),Y=J.indexOf(".");if(Y!==-1&&J.length-Y-1>z)return!1}return!0};return I.emit=(j,J)=>{let Y=`if (typeof ${j} !== 'number') ${J.fail("isNumber")};`;if(!Z)Y+=`
3
+ else if (isNaN(${j})) ${J.fail("isNumber")};`;if(!$)Y+=`
4
+ else if (${j} === Infinity || ${j} === -Infinity) ${J.fail("isNumber")};`;if(z!==void 0)Y+=`
5
+ else { var _s=${j}.toString(); var _d=_s.indexOf('.'); if(_d!==-1&&_s.length-_d-1>${z}) ${J.fail("isNumber")}; }`;return Y},I.ruleName="isNumber",I.constraints={allowNaN:Q?.allowNaN,allowInfinity:Q?.allowInfinity,maxDecimalPlaces:Q?.maxDecimalPlaces},I}var R=(Q)=>typeof Q==="boolean";R.emit=(Q,Z)=>`if (typeof ${Q} !== 'boolean') ${Z.fail("isBoolean")};`;R.ruleName="isBoolean";R.constraints={};var k6=R,E=(Q)=>Q instanceof Date&&!isNaN(Q.getTime());E.emit=(Q,Z)=>`if (!(${Q} instanceof Date) || isNaN(${Q}.getTime())) ${Z.fail("isDate")};`;E.ruleName="isDate";E.constraints={};var y6=E;function g6(Q){let Z=Object.values(Q),$=(z)=>Z.indexOf(z)!==-1;return $.emit=(z,I)=>{return`if (_refs[${I.addRef(Z)}].indexOf(${z}) === -1) ${I.fail("isEnum")};`},$.ruleName="isEnum",$.constraints={values:Object.values(Q)},$}var X=(Q)=>typeof Q==="number"&&Number.isInteger(Q);X.emit=(Q,Z)=>`if (typeof ${Q} !== 'number' || !Number.isInteger(${Q})) ${Z.fail("isInt")};`;X.ruleName="isInt";X.requiresType="number";X.constraints={};var N6=X,f=(Q)=>Array.isArray(Q);f.emit=(Q,Z)=>`if (!Array.isArray(${Q})) ${Z.fail("isArray")};`;f.ruleName="isArray";f.constraints={};var x6=f,d=(Q)=>typeof Q==="object"&&Q!==null&&!Array.isArray(Q);d.emit=(Q,Z)=>`if (typeof ${Q} !== 'object' || ${Q} === null || Array.isArray(${Q})) ${Z.fail("isObject")};`;d.ruleName="isObject";d.constraints={};var u6=d;function aQ(Q){return(Z,$)=>{K(Z,$,{rule:d6,each:Q?.each,groups:Q?.groups,message:Q?.message,context:Q?.context})}}function eQ(Q,Z){return($,z)=>{K($,z,{rule:_6(Q),each:Z?.each,groups:Z?.groups,message:Z?.message,context:Z?.context})}}function oQ(Q){return(Z,$)=>{K(Z,$,{rule:k6,each:Q?.each,groups:Q?.groups,message:Q?.message,context:Q?.context})}}function tQ(Q){return(Z,$)=>{K(Z,$,{rule:y6,each:Q?.each,groups:Q?.groups,message:Q?.message,context:Q?.context})}}function QZ(Q,Z){return($,z)=>{K($,z,{rule:g6(Q),each:Z?.each,groups:Z?.groups,message:Z?.message,context:Z?.context})}}function ZZ(Q){return(Z,$)=>{K(Z,$,{rule:N6,each:Q?.each,groups:Q?.groups,message:Q?.message,context:Q?.context})}}function $Z(Q){return(Z,$)=>{K(Z,$,{rule:x6,each:Q?.each,groups:Q?.groups,message:Q?.message,context:Q?.context})}}function zZ(Q){return(Z,$)=>{K(Z,$,{rule:u6,each:Q?.each,groups:Q?.groups,message:Q?.message,context:Q?.context})}}function m6(Q,Z){let $=Z?.exclusive??!1,z=$?(I)=>I>Q:(I)=>I>=Q;return z.emit=(I,j)=>$?`if (${I} <= ${Q}) ${j.fail("min")};`:`if (${I} < ${Q}) ${j.fail("min")};`,z.ruleName="min",z.requiresType="number",z.constraints=$?{min:Q,exclusive:!0}:{min:Q},z}function v6(Q,Z){let $=Z?.exclusive??!1,z=$?(I)=>I<Q:(I)=>I<=Q;return z.emit=(I,j)=>$?`if (${I} >= ${Q}) ${j.fail("max")};`:`if (${I} > ${Q}) ${j.fail("max")};`,z.ruleName="max",z.requiresType="number",z.constraints=$?{max:Q,exclusive:!0}:{max:Q},z}var b=(Q)=>Q>0;b.emit=(Q,Z)=>`if (${Q} <= 0) ${Z.fail("isPositive")};`;b.ruleName="isPositive";b.requiresType="number";b.constraints={min:0,exclusive:!0};var c6=b,F=(Q)=>Q<0;F.emit=(Q,Z)=>`if (${Q} >= 0) ${Z.fail("isNegative")};`;F.ruleName="isNegative";F.requiresType="number";F.constraints={max:0,exclusive:!0};var r6=F;function l6(Q){let Z=($)=>$%Q===0;return Z.emit=($,z)=>`if (${$} % ${Q} !== 0) ${z.fail("isDivisibleBy")};`,Z.ruleName="isDivisibleBy",Z.requiresType="number",Z.constraints={divisor:Q},Z}function IZ(Q,Z){return($,z)=>{K($,z,{rule:m6(Q,Z?.exclusive?{exclusive:!0}:void 0),each:Z?.each,groups:Z?.groups,message:Z?.message,context:Z?.context})}}function KZ(Q,Z){return($,z)=>{K($,z,{rule:v6(Q,Z?.exclusive?{exclusive:!0}:void 0),each:Z?.each,groups:Z?.groups,message:Z?.message,context:Z?.context})}}function jZ(Q){return(Z,$)=>{K(Z,$,{rule:c6,each:Q?.each,groups:Q?.groups,message:Q?.message,context:Q?.context})}}function JZ(Q){return(Z,$)=>{K(Z,$,{rule:r6,each:Q?.each,groups:Q?.groups,message:Q?.message,context:Q?.context})}}function qZ(Q,Z){return($,z)=>{K($,z,{rule:l6(Q),each:Z?.each,groups:Z?.groups,message:Z?.message,context:Z?.context})}}function p6(Q){let Z=Q.getTime(),$=(z)=>z instanceof Date&&z.getTime()>=Z;return $.emit=(z,I)=>{let j=I.addRef(Z);return`if (!(${z} instanceof Date) || ${z}.getTime() < _refs[${j}]) ${I.fail("minDate")};`},$.ruleName="minDate",$.requiresType="date",$.constraints={min:Q.toISOString()},$}function s6(Q){let Z=Q.getTime(),$=(z)=>z instanceof Date&&z.getTime()<=Z;return $.emit=(z,I)=>{let j=I.addRef(Z);return`if (!(${z} instanceof Date) || ${z}.getTime() > _refs[${j}]) ${I.fail("maxDate")};`},$.ruleName="maxDate",$.requiresType="date",$.constraints={max:Q.toISOString()},$}function YZ(Q,Z){return($,z)=>{K($,z,{rule:p6(Q),each:Z?.each,groups:Z?.groups,message:Z?.message,context:Z?.context})}}function wZ(Q,Z){return($,z)=>{K($,z,{rule:s6(Q),each:Z?.each,groups:Z?.groups,message:Z?.message,context:Z?.context})}}function q(Q,Z,$,z="string"){let I=(j)=>{if(typeof j!=="string")return!1;return Z(j)};if(I.emit=$,I.ruleName=Q,z!==void 0)I.requiresType=z;return I}function k0(Q){let Z=($)=>typeof $==="string"&&$.length>=Q;return Z.emit=($,z)=>`if (${$}.length < ${Q}) ${z.fail("minLength")};`,Z.ruleName="minLength",Z.requiresType="string",Z.constraints={min:Q},Z}function y0(Q){let Z=($)=>typeof $==="string"&&$.length<=Q;return Z.emit=($,z)=>`if (${$}.length > ${Q}) ${z.fail("maxLength")};`,Z.ruleName="maxLength",Z.requiresType="string",Z.constraints={max:Q},Z}function g0(Q,Z){let $=(z)=>typeof z==="string"&&z.length>=Q&&z.length<=Z;return $.emit=(z,I)=>`if (${z}.length < ${Q} || ${z}.length > ${Z}) ${I.fail("length")};`,$.ruleName="length",$.requiresType="string",$.constraints={min:Q,max:Z},$}function N0(Q){let Z=($)=>typeof $==="string"&&$.includes(Q);return Z.emit=($,z)=>{let I=z.addRef(Q);return`if (${$}.indexOf(_refs[${I}]) === -1) ${z.fail("contains")};`},Z.ruleName="contains",Z.requiresType="string",Z.constraints={seed:Q},Z}function x0(Q){let Z=($)=>typeof $==="string"&&!$.includes(Q);return Z.emit=($,z)=>{let I=z.addRef(Q);return`if (${$}.indexOf(_refs[${I}]) !== -1) ${z.fail("notContains")};`},Z.ruleName="notContains",Z.requiresType="string",Z.constraints={seed:Q},Z}function u0(Q,Z){let $=Q instanceof RegExp?Q:new RegExp(Q,Z),z=(I)=>typeof I==="string"&&$.test(I);return z.emit=(I,j)=>{return`if (!_re[${j.addRegex($)}].test(${I})) ${j.fail("matches")};`},z.ruleName="matches",z.requiresType="string",z.constraints={pattern:$.source},z}var M=(Q)=>typeof Q==="string"&&Q===Q.toLowerCase();M.emit=(Q,Z)=>`if (${Q} !== ${Q}.toLowerCase()) ${Z.fail("isLowercase")};`;M.ruleName="isLowercase";M.requiresType="string";M.constraints={};var m0=M,U=(Q)=>typeof Q==="string"&&Q===Q.toUpperCase();U.emit=(Q,Z)=>`if (${Q} !== ${Q}.toUpperCase()) ${Z.fail("isUppercase")};`;U.ruleName="isUppercase";U.requiresType="string";U.constraints={};var v0=U,n6=/^[\x00-\x7F]*$/,p=q("isAscii",(Q)=>n6.test(Q),(Q,Z)=>{return`if (!_re[${Z.addRegex(n6)}].test(${Q})) ${Z.fail("isAscii")};`});p.constraints={};var c0=/^[a-zA-Z]+$/;function WZ(Q){return typeof Q==="string"&&Q.length>0&&c0.test(Q)}var B=function Q(Z){if(Z===void 0)return Q;return WZ(Z)};B.emit=(Q,Z)=>{return`if (!_re[${Z.addRegex(c0)}].test(${Q})) ${Z.fail("isAlpha")};`};B.ruleName="isAlpha";B.requiresType="string";B.constraints={};var r0=B,l0=/^[a-zA-Z0-9]+$/;function GZ(Q){return typeof Q==="string"&&Q.length>0&&l0.test(Q)}var H=function Q(Z){if(Z===void 0)return Q;return GZ(Z)};H.emit=(Q,Z)=>{return`if (!_re[${Z.addRegex(l0)}].test(${Q})) ${Z.fail("isAlphanumeric")};`};H.ruleName="isAlphanumeric";H.requiresType="string";H.constraints={};var p0=H,P=(Q)=>Q==="true"||Q==="false"||Q==="1"||Q==="0";P.emit=(Q,Z)=>`if (${Q} !== 'true' && ${Q} !== 'false' && ${Q} !== '1' && ${Q} !== '0') ${Z.fail("isBooleanString")};`;P.ruleName="isBooleanString";P.requiresType="string";P.constraints={};var s0=P;function n0(Q){let Z=q("isNumberString",($)=>{if($.length===0)return!1;let z=Number($);return!isNaN(z)&&isFinite(z)},($,z)=>{let I=(J)=>{if(J.length===0)return!1;let Y=Number(J);return!isNaN(Y)&&isFinite(Y)};return`if (!_refs[${z.addRef(I)}](${$})) ${z.fail("isNumberString")};`});return Z.constraints={},Z}function i0(Q){let Z=/^[-+]?(?:\d+(?:\.\d*)?|\.\d+)$/,$=q("isDecimal",(z)=>Z.test(z),(z,I)=>{return`if (!_re[${I.addRegex(Z)}].test(${z})) ${I.fail("isDecimal")};`});return $.constraints={},$}var y=/[^\u0020-\u007E\uFF61-\uFF9F]/,s=q("isFullWidth",(Q)=>Q.length>0&&y.test(Q),(Q,Z)=>{let $=Z.addRegex(y);return`if (${Q}.length === 0 || !_re[${$}].test(${Q})) ${Z.fail("isFullWidth")};`});s.constraints={};var g=/[\u0020-\u007E\uFF61-\uFF9F]/,n=q("isHalfWidth",(Q)=>Q.length>0&&g.test(Q),(Q,Z)=>{let $=Z.addRegex(g);return`if (${Q}.length === 0 || !_re[${$}].test(${Q})) ${Z.fail("isHalfWidth")};`});n.constraints={};var i=q("isVariableWidth",(Q)=>y.test(Q)&&g.test(Q),(Q,Z)=>{let $=Z.addRegex(y),z=Z.addRegex(g);return`if (!_re[${$}].test(${Q}) || !_re[${z}].test(${Q})) ${Z.fail("isVariableWidth")};`});i.constraints={};var i6=/[^\x00-\xFF]/,a=q("isMultibyte",(Q)=>Q.length>0&&i6.test(Q),(Q,Z)=>{let $=Z.addRegex(i6);return`if (${Q}.length === 0 || !_re[${$}].test(${Q})) ${Z.fail("isMultibyte")};`});a.constraints={};var a6=/[\uD800-\uDBFF][\uDC00-\uDFFF]/,e=q("isSurrogatePair",(Q)=>Q.length>0&&a6.test(Q),(Q,Z)=>{let $=Z.addRegex(a6);return`if (${Q}.length === 0 || !_re[${$}].test(${Q})) ${Z.fail("isSurrogatePair")};`});e.constraints={};var e6=/^[0-9a-fA-F]+$/,o=q("isHexadecimal",(Q)=>e6.test(Q),(Q,Z)=>{return`if (!_re[${Z.addRegex(e6)}].test(${Q})) ${Z.fail("isHexadecimal")};`});o.constraints={};var o6=/^(0[oO])?[0-7]+$/,t=q("isOctal",(Q)=>Q.length>0&&o6.test(Q),(Q,Z)=>{let $=Z.addRegex(o6);return`if (${Q}.length === 0 || !_re[${$}].test(${Q})) ${Z.fail("isOctal")};`});t.constraints={};var t6=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*\.[a-zA-Z]{2,}$/;function a0(Q){let Z=q("isEmail",($)=>t6.test($),($,z)=>{return`if (!_re[${z.addRegex(t6)}].test(${$})) ${z.fail("isEmail")};`});return Z.constraints={format:"email"},Z}var XZ=["http","https","ftp"];function e0(Q){let $=(Q?.protocols??XZ).map((j)=>j.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("|"),z=new RegExp(`^(?:${$}):\\/\\/(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)(?::\\d{1,5})?(?:\\/[^\\s]*)?$`),I=(j)=>{if(typeof j!=="string"||j.length===0)return!1;return z.test(j)};return I.emit=(j,J)=>{return`if (!_re[${J.addRegex(z)}].test(${j})) ${J.fail("isURL")};`},I.ruleName="isURL",I.requiresType="string",I.constraints={format:"uri"},I}var r={all:/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,1:/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-1[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$/,2:/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-2[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$/,3:/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-3[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$/,4:/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$/,5:/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-5[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$/};function o0(Q){let Z=Q!=null?r[Q]??r.all:r.all,$=q("isUUID",(z)=>Z.test(z),(z,I)=>{return`if (!_re[${I.addRegex(Z)}].test(${z})) ${I.fail("isUUID")};`});return $.constraints={format:"uuid"},$}var _=/^(25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.(25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.(25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.(25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/,k=/^(?:[0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$|^::(?:[0-9a-fA-F]{1,4}:){0,6}[0-9a-fA-F]{1,4}$|^(?:[0-9a-fA-F]{1,4}:){1,7}:$|^(?:[0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}$|^(?:[0-9a-fA-F]{1,4}:){1,5}(?::[0-9a-fA-F]{1,4}){1,2}$|^(?:[0-9a-fA-F]{1,4}:){1,4}(?::[0-9a-fA-F]{1,4}){1,3}$|^(?:[0-9a-fA-F]{1,4}:){1,3}(?::[0-9a-fA-F]{1,4}){1,4}$|^(?:[0-9a-fA-F]{1,4}:){1,2}(?::[0-9a-fA-F]{1,4}){1,5}$|^[0-9a-fA-F]{1,4}:(?::[0-9a-fA-F]{1,4}){1,6}$|^::$|^::1$|^::(?:ffff(?::0{1,4})?:)?(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$|^(?:[0-9a-fA-F]{1,4}:){1,4}:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/;function t0(Q){let Z=($)=>{if(typeof $!=="string")return!1;if(Q===4)return _.test($);if(Q===6)return k.test($);return _.test($)||k.test($)};return Z.emit=($,z)=>{if(Q===4)return`if (!_re[${z.addRegex(_)}].test(${$})) ${z.fail("isIP")};`;if(Q===6)return`if (!_re[${z.addRegex(k)}].test(${$})) ${z.fail("isIP")};`;let I=z.addRegex(_),j=z.addRegex(k);return`if (!_re[${I}].test(${$}) && !_re[${j}].test(${$})) ${z.fail("isIP")};`},Z.ruleName="isIP",Z.requiresType="string",Z.constraints={version:Q},Z}var Q0=/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/,Q6=q("isHexColor",(Q)=>Q0.test(Q),(Q,Z)=>{return`if (!_re[${Z.addRegex(Q0)}].test(${Q})) ${Z.fail("isHexColor")};`});Q6.constraints={};var Z0=/^rgb\(\s*(25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\s*,\s*(25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\s*,\s*(25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\s*\)$/,$0=/^rgba\(\s*(25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\s*,\s*(25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\s*,\s*(25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\s*,\s*(0|0?\.\d+|1(\.0+)?)\s*\)$/,z0=/^rgba?\(\s*(\d{1,2}|100)%\s*,\s*(\d{1,2}|100)%\s*,\s*(\d{1,2}|100)%(?:\s*,\s*(0|0?\.\d+|1(?:\.0+)?))?\s*\)$/;function QQ(Q=!1){let Z=($)=>{if(typeof $!=="string")return!1;if(Q)return z0.test($);return Z0.test($)||$0.test($)};return Z.emit=($,z)=>{if(Q)return`if (!_re[${z.addRegex(z0)}].test(${$})) ${z.fail("isRgbColor")};`;let I=z.addRegex(Z0),j=z.addRegex($0);return`if (!_re[${I}].test(${$}) && !_re[${j}].test(${$})) ${z.fail("isRgbColor")};`},Z.ruleName="isRgbColor",Z.requiresType="string",Z.constraints={},Z}var I0=/^hsla?\(\s*(360|3[0-5]\d|[12]\d{2}|[1-9]\d|\d)\s*,\s*(100|[1-9]\d|\d)%\s*,\s*(100|[1-9]\d|\d)%(?:\s*,\s*(0|0?\.\d+|1(?:\.0+)?))?\s*\)$/,Z6=q("isHSL",(Q)=>I0.test(Q),(Q,Z)=>{return`if (!_re[${Z.addRegex(I0)}].test(${Q})) ${Z.fail("isHSL")};`});Z6.constraints={};var K0=/^[0-9a-fA-F]{2}(?::[0-9a-fA-F]{2}){5}$/,j0=/^[0-9a-fA-F]{2}(?:-[0-9a-fA-F]{2}){5}$/,J0=/^[0-9a-fA-F]{12}$/;function ZQ(Q){let Z=($)=>{if(typeof $!=="string")return!1;if(Q?.no_separators)return J0.test($);return K0.test($)||j0.test($)};return Z.emit=($,z)=>{if(Q?.no_separators)return`if (!_re[${z.addRegex(J0)}].test(${$})) ${z.fail("isMACAddress")};`;let I=z.addRegex(K0),j=z.addRegex(j0);return`if (!_re[${I}].test(${$}) && !_re[${j}].test(${$})) ${z.fail("isMACAddress")};`},Z.ruleName="isMACAddress",Z.requiresType="string",Z.constraints={},Z}function q0(Q){let Z=Q.replace(/[-\s]/g,"");if(!/^\d{9}[\dX]$/.test(Z))return!1;let $=0;for(let I=0;I<9;I++)$+=(10-I)*(Z.charCodeAt(I)-48);let z=Z[9]==="X"?10:Z.charCodeAt(9)-48;return $+=z,$%11===0}function Y0(Q){let Z=Q.replace(/[-\s]/g,"");if(!/^\d{13}$/.test(Z))return!1;let $=0;for(let I=0;I<12;I++)$+=(Z.charCodeAt(I)-48)*(I%2===0?1:3);return(10-$%10)%10===Z.charCodeAt(12)-48}function $Q(Q){let Z=($)=>{if(typeof $!=="string")return!1;if(Q===10)return q0($);if(Q===13)return Y0($);return q0($)||Y0($)};return Z.emit=($,z)=>{return`if (!_refs[${z.addRef(Z)}](${$})) ${z.fail("isISBN")};`},Z.ruleName="isISBN",Z.requiresType="string",Z.constraints={},Z}var bZ=/^[A-Z]{2}[A-Z0-9]{9}[0-9]$/;function w0(Q){if(!bZ.test(Q))return!1;let Z=Q.split("").map((I)=>{let j=I.charCodeAt(0);return j>=65?String(j-55):I}).join(""),$=0,z=!1;for(let I=Z.length-1;I>=0;I--){let j=parseInt(Z[I],10);if(z){if(j*=2,j>9)j-=9}$+=j,z=!z}return $%10===0}var $6=q("isISIN",w0,(Q,Z)=>{return`if (!_refs[${Z.addRef(w0)}](${Q})) ${Z.fail("isISIN")};`});$6.constraints={};var l=/^\d{4}(?:-\d{2}(?:-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:?\d{2})?)?)?)?$/;function FZ(Q){if(!l.test(Q))return!1;let Z=Q.match(/^(\d{4})-(\d{2})-(\d{2})/);if(!Z)return!0;let $=Number(Z[2]),z=Number(Z[3]);if($<1||$>12)return!1;let I=new Date(Number(Z[1]),$,0).getDate();return z>=1&&z<=I}function zQ(Q){if(Q?.strict){let $=(z)=>{if(typeof z!=="string")return!1;return FZ(z)};return $.ruleName="isISO8601",$.emit=(z,I)=>{return`if (!_refs[${I.addRef($)}](${z})) ${I.fail("isISO8601")};`},$.constraints={format:"date-time"},$}let Z=q("isISO8601",($)=>l.test($),($,z)=>{return`if (!_re[${z.addRegex(l)}].test(${$})) ${z.fail("isISO8601")};`});return Z.constraints={format:"date-time"},Z}var W0=/^[A-Z]{2}-[A-Z0-9]{3}-\d{2}-\d{5}$|^[A-Z]{2}[A-Z0-9]{3}\d{7}$/,z6=q("isISRC",(Q)=>W0.test(Q),(Q,Z)=>{return`if (!_re[${Z.addRegex(W0)}].test(${Q})) ${Z.fail("isISRC")};`});z6.constraints={};function MZ(Q,Z){let $=Z?.requireHyphen!==!1,z=$?Q:Q.replace(/-/g,"");if(!($?/^\d{4}-\d{3}[\dX]$/:/^\d{7}[\dX]$/).test(z))return!1;let j=z.replace(/-/g,""),J=0;for(let w=0;w<7;w++)J+=(8-w)*(j.charCodeAt(w)-48);let Y=j[7]==="X"?10:j.charCodeAt(7)-48;return J+=Y,J%11===0}function IQ(Q){let Z=($)=>{if(typeof $!=="string")return!1;return MZ($,Q)};return Z.emit=($,z)=>{return`if (!_refs[${z.addRef(Z)}](${$})) ${z.fail("isISSN")};`},Z.ruleName="isISSN",Z.requiresType="string",Z.constraints={},Z}var G0=/^[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+$/,I6=q("isJWT",(Q)=>G0.test(Q),(Q,Z)=>{return`if (!_re[${Z.addRegex(G0)}].test(${Q})) ${Z.fail("isJWT")};`});I6.constraints={};var X0=/^[-+]?([1-8]?\d(?:\.\d+)?|90(?:\.0+)?),\s*[-+]?(180(?:\.0+)?|1[0-7]\d(?:\.\d+)?|\d{1,2}(?:\.\d+)?)$/;function KQ(Q){let Z=q("isLatLong",($)=>X0.test($),($,z)=>{return`if (!_re[${z.addRegex(X0)}].test(${$})) ${z.fail("isLatLong")};`});return Z.constraints={},Z}var b0=/^[a-zA-Z]{2,3}(?:-[a-zA-Z]{4})?(?:-(?:[a-zA-Z]{2}|\d{3}))?(?:-[a-zA-Z\d]{5,8})*$/,K6=q("isLocale",(Q)=>b0.test(Q),(Q,Z)=>{return`if (!_re[${Z.addRegex(b0)}].test(${Q})) ${Z.fail("isLocale")};`});K6.constraints={};var F0=/^data:([a-zA-Z0-9!#$&\-^_]+\/[a-zA-Z0-9!#$&\-^_]+)(?:;[a-zA-Z0-9\-]+=[a-zA-Z0-9\-]+)*(?:;base64)?,[\s\S]*$/,j6=q("isDataURI",(Q)=>F0.test(Q),(Q,Z)=>{return`if (!_re[${Z.addRegex(F0)}].test(${Q})) ${Z.fail("isDataURI")};`});j6.constraints={};function jQ(Q){let Z=Q?.require_tld!==!1,$=(z)=>{if(typeof z!=="string")return!1;let I=z;if(Q?.allow_trailing_dot&&I.endsWith("."))I=I.slice(0,-1);if(I.length===0)return!1;let j=I.split(".");if(Z&&j.length<2)return!1;if(Z){let J=j[j.length-1];if(!J||J.length<2||!/^[a-zA-Z]{2,}$/.test(J))return!1}return j.every((J)=>{if(J.length===0||J.length>63)return!1;if(Q?.allow_underscores)return/^[a-zA-Z0-9_-]+$/.test(J);return/^[a-zA-Z0-9-]+$/.test(J)&&!J.startsWith("-")&&!J.endsWith("-")})};return $.emit=(z,I)=>{return`if (!_refs[${I.addRef($)}](${z})) ${I.fail("isFQDN")};`},$.ruleName="isFQDN",$.requiresType="string",$.constraints={},$}var M0=/^(?:6553[0-5]|655[0-2]\d|65[0-4]\d{2}|6[0-4]\d{3}|[1-5]\d{4}|[1-9]\d{1,3}|\d)$/,J6=q("isPort",(Q)=>M0.test(Q),(Q,Z)=>{return`if (!_re[${Z.addRegex(M0)}].test(${Q})) ${Z.fail("isPort")};`});J6.constraints={};function U0(Q){if(!/^\d{8}$/.test(Q)&&!/^\d{13}$/.test(Q))return!1;let Z=Q.split("").map(Number),$=Z.length,z=0;for(let j=0;j<$-1;j++)z+=Z[j]*($===8?j%2===0?3:1:j%2===0?1:3);return(10-z%10)%10===Z[$-1]}var q6=q("isEAN",U0,(Q,Z)=>{return`if (!_refs[${Z.addRef(U0)}](${Q})) ${Z.fail("isEAN")};`});q6.constraints={};var JQ=new Set(["AD","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW"]),D=(Q)=>{if(typeof Q!=="string")return!1;return JQ.has(Q.toUpperCase())};D.emit=(Q,Z)=>{return`if (!_refs[${Z.addRef(JQ)}].has(${Q}.toUpperCase())) ${Z.fail("isISO31661Alpha2")};`};D.ruleName="isISO31661Alpha2";D.requiresType="string";D.constraints={};var qQ=D,YQ=new Set(["ABW","AFG","AGO","AIA","ALA","ALB","AND","ANT","ARE","ARG","ARM","ASM","ATA","ATF","ATG","AUS","AUT","AZE","BDI","BEL","BEN","BES","BFA","BGD","BGR","BHR","BHS","BIH","BLM","BLR","BLZ","BMU","BOL","BRA","BRB","BRN","BTN","BVT","BWA","CAF","CAN","CCK","CHE","CHL","CHN","CIV","CMR","COD","COG","COK","COL","COM","CPV","CRI","CUB","CUW","CXR","CYM","CYP","CZE","DEU","DJI","DMA","DNK","DOM","DZA","ECU","EGY","ERI","ESH","ESP","EST","ETH","FIN","FJI","FLK","FRA","FRO","FSM","GAB","GBR","GEO","GGY","GHA","GIB","GIN","GLP","GMB","GNB","GNQ","GRC","GRD","GRL","GTM","GUF","GUM","GUY","HKG","HMD","HND","HRV","HTI","HUN","IDN","IMN","IND","IOT","IRL","IRN","IRQ","ISL","ISR","ITA","JAM","JEY","JOR","JPN","KAZ","KEN","KGZ","KHM","KIR","KNA","KOR","KWT","LAO","LBN","LBR","LBY","LCA","LIE","LKA","LSO","LTU","LUX","LVA","MAC","MAF","MAR","MCO","MDA","MDG","MDV","MEX","MHL","MKD","MLI","MLT","MMR","MNE","MNG","MNP","MOZ","MRT","MSR","MTQ","MUS","MWI","MYS","MYT","NAM","NCL","NER","NFK","NGA","NIC","NIU","NLD","NOR","NPL","NRU","NZL","OMN","PAK","PAN","PCN","PER","PHL","PLW","PNG","POL","PRI","PRK","PRT","PRY","PSE","PYF","QAT","REU","ROU","RUS","RWA","SAU","SDN","SEN","SGP","SGS","SHN","SJM","SLB","SLE","SLV","SMR","SOM","SPM","SRB","SSD","STP","SUR","SVK","SVN","SWE","SWZ","SXM","SYC","SYR","TCA","TCD","TGO","THA","TJK","TKL","TKM","TLS","TON","TTO","TUN","TUR","TUV","TWN","TZA","UGA","UKR","UMI","URY","USA","UZB","VAT","VCT","VEN","VGB","VIR","VNM","VUT","WLF","WSM","YEM","ZAF","ZMB","ZWE"]),h=(Q)=>{if(typeof Q!=="string")return!1;return YQ.has(Q.toUpperCase())};h.emit=(Q,Z)=>{return`if (!_refs[${Z.addRef(YQ)}].has(${Q}.toUpperCase())) ${Z.fail("isISO31661Alpha3")};`};h.ruleName="isISO31661Alpha3";h.requiresType="string";h.constraints={};var wQ=h,B0=/^[A-Z]{6}[A-Z0-9]{2}(?:[A-Z0-9]{3})?$/,Y6=q("isBIC",(Q)=>B0.test(Q.toUpperCase()),(Q,Z)=>{return`if (!_re[${Z.addRegex(B0)}].test(${Q}.toUpperCase())) ${Z.fail("isBIC")};`});Y6.constraints={};var H0=/^[a-zA-Z0-9_-]{20}$/,w6=q("isFirebasePushId",(Q)=>H0.test(Q),(Q,Z)=>{return`if (!_re[${Z.addRegex(H0)}].test(${Q})) ${Z.fail("isFirebasePushId")};`});w6.constraints={};var P0=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,W6=q("isSemVer",(Q)=>P0.test(Q),(Q,Z)=>{return`if (!_re[${Z.addRegex(P0)}].test(${Q})) ${Z.fail("isSemVer")};`});W6.constraints={};var D0=/^[0-9a-fA-F]{24}$/,G6=q("isMongoId",(Q)=>D0.test(Q),(Q,Z)=>{return`if (!_re[${Z.addRegex(D0)}].test(${Q})) ${Z.fail("isMongoId")};`});G6.constraints={};var C=(Q)=>{if(typeof Q!=="string")return!1;try{return JSON.parse(Q),!0}catch{return!1}};C.emit=(Q,Z)=>{return`if (!_refs[${Z.addRef((z)=>{try{return JSON.parse(z),!0}catch{return!1}})}](${Q})) ${Z.fail("isJSON")};`};C.ruleName="isJSON";C.requiresType="string";C.constraints={};var WQ=C,UZ=/^[A-Z2-7]+=*$/i;function GQ(Q){let Z=UZ,$=q("isBase32",(z)=>{if(z.length===0)return!1;if(z.length%8!==0)return!1;return Z.test(z)},(z,I)=>{let j=I.addRegex(Z);return`if (${z}.length === 0 || ${z}.length % 8 !== 0 || !_re[${j}].test(${z})) ${I.fail("isBase32")};`});return $.constraints={},$}var h0=/^[1-9A-HJ-NP-Za-km-z]+$/,X6=q("isBase58",(Q)=>h0.test(Q),(Q,Z)=>{return`if (!_re[${Z.addRegex(h0)}].test(${Q})) ${Z.fail("isBase58")};`});X6.constraints={};var BZ=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$/,HZ=/^[A-Za-z0-9_-]+={0,2}$/;function XQ(Q){let Z=Q?.urlSafe?HZ:BZ,$=q("isBase64",(z)=>{if(z.length===0)return!1;return Z.test(z)},(z,I)=>{let j=I.addRegex(Z);return`if (${z}.length === 0 || !_re[${j}].test(${z})) ${I.fail("isBase64")};`});return $.constraints={},$}var C0=/^\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])$/;function bQ(Q){let Z=q("isDateString",($)=>C0.test($),($,z)=>{return`if (!_re[${z.addRegex(C0)}].test(${$})) ${z.fail("isDateString")};`});return Z.constraints={},Z}var T0=/^(application|audio|font|image|message|model|multipart|text|video)\/[a-zA-Z0-9][a-zA-Z0-9!#$&\-^_.+]*(?:;.+)?$/,b6=q("isMimeType",(Q)=>T0.test(Q),(Q,Z)=>{return`if (!_re[${Z.addRegex(T0)}].test(${Q})) ${Z.fail("isMimeType")};`});b6.constraints={};var L0=/^[-+]?(?:[,.\d]+)(?:[.,]\d{2})?$|^\$?-?(?:\d+|\d{1,3}(?:,\d{3})*)(?:\.\d{1,2})?$/;function FQ(Q){let Z=q("isCurrency",($)=>{if($.length===0)return!1;return L0.test($)},($,z)=>{let I=z.addRegex(L0);return`if (${$}.length === 0 || !_re[${I}].test(${$})) ${z.fail("isCurrency")};`});return Z.constraints={},Z}var O0=/^magnet:\?xt=urn:[a-z0-9]+:[a-z0-9]{32,40}/i,F6=q("isMagnetURI",(Q)=>O0.test(Q),(Q,Z)=>{return`if (!_re[${Z.addRegex(O0)}].test(${Q})) ${Z.fail("isMagnetURI")};`});F6.constraints={};function PZ(Q){let Z=Q.replace(/[\s-]/g,"");if(Z.length===0||!/^\d+$/.test(Z))return!1;let $=0,z=!1;for(let I=Z.length-1;I>=0;I--){let j=Z.charCodeAt(I)-48;if(z){if(j*=2,j>9)j-=9}$+=j,z=!z}return $%10===0}var T=(Q)=>{if(typeof Q!=="string")return!1;return PZ(Q)};T.emit=(Q,Z)=>`{
6
+ var _cs=${Q}.replace(/[\\s-]/g,'');
7
+ if(_cs.length===0||!/^\\d+$/.test(_cs)){${Z.fail("isCreditCard")}}
8
+ else{var _sum=0,_alt=false;
9
+ for(var _ci=_cs.length-1;_ci>=0;_ci--){var _cn=_cs.charCodeAt(_ci)-48;if(_alt){_cn*=2;if(_cn>9)_cn-=9;}_sum+=_cn;_alt=!_alt;}
10
+ if(_sum%10!==0)${Z.fail("isCreditCard")};}
11
+ }`;T.ruleName="isCreditCard";T.requiresType="string";T.constraints={};var MQ=T,DZ={AD:24,AE:23,AL:28,AT:20,AZ:28,BA:20,BE:16,BG:22,BH:22,BR:29,CH:21,CR:22,CY:28,CZ:24,DE:22,DK:18,DO:28,EE:20,ES:24,FI:18,FO:18,FR:27,GB:22,GE:22,GI:23,GL:18,GR:27,GT:28,HR:21,HU:28,IE:22,IL:23,IS:26,IT:27,JO:30,KW:30,KZ:20,LB:28,LC:32,LI:21,LT:20,LU:20,LV:21,MC:27,MD:24,ME:22,MK:19,MR:27,MT:31,MU:30,NL:18,NO:15,PK:24,PL:28,PS:29,PT:25,QA:29,RO:24,RS:22,SA:24,SC:31,SE:24,SI:19,SK:24,SM:27,ST:25,SV:28,TL:23,TN:24,TR:26,UA:29,VA:22,VG:24,XK:20};function hZ(Q,Z){let $=Z?.allowSpaces?Q.replace(/\s/g,""):Q;if($=$.toUpperCase(),!/^[A-Z]{2}\d{2}[A-Z0-9]+$/.test($))return!1;let z=$.slice(0,2),I=DZ[z];if(I!==void 0&&$.length!==I)return!1;let J=($.slice(4)+$.slice(0,4)).replace(/[A-Z]/g,(w)=>String(w.charCodeAt(0)-55)),Y=0;for(let w=0;w<J.length;w+=7){let G=String(Y)+J.slice(w,w+7);Y=parseInt(G,10)%97}return Y===1}function UQ(Q){let Z=($)=>{if(typeof $!=="string")return!1;return hZ($,Q)};return Z.emit=($,z)=>{return`if (!_refs[${z.addRef(Z)}](${$})) ${z.fail("isIBAN")};`},Z.ruleName="isIBAN",Z.requiresType="string",Z.constraints={},Z}function BQ(Q,Z){let $=(z)=>{if(typeof z!=="string")return!1;let I=Buffer.byteLength(z,"utf8");if(I<Q)return!1;if(Z!==void 0&&I>Z)return!1;return!0};return $.emit=(z,I)=>{let j=(Y)=>{let w=Buffer.byteLength(Y,"utf8");if(w<Q)return!1;if(Z!==void 0&&w>Z)return!1;return!0};return`if (!_refs[${I.addRef(j)}](${z})) ${I.fail("isByteLength")};`},$.ruleName="isByteLength",$.requiresType="string",$.constraints={},$}var CZ={md5:/^[a-f0-9]{32}$/i,md4:/^[a-f0-9]{32}$/i,md2:/^[a-f0-9]{32}$/i,sha1:/^[a-f0-9]{40}$/i,sha256:/^[a-f0-9]{64}$/i,sha384:/^[a-f0-9]{96}$/i,sha512:/^[a-f0-9]{128}$/i,ripemd128:/^[a-f0-9]{32}$/i,ripemd160:/^[a-f0-9]{40}$/i,"tiger128,3":/^[a-f0-9]{32}$/i,"tiger128,4":/^[a-f0-9]{32}$/i,"tiger160,3":/^[a-f0-9]{40}$/i,"tiger160,4":/^[a-f0-9]{40}$/i,"tiger192,3":/^[a-f0-9]{48}$/i,"tiger192,4":/^[a-f0-9]{48}$/i,crc32:/^[a-f0-9]{8}$/i,crc32b:/^[a-f0-9]{8}$/i};function HQ(Q){let Z=CZ[Q],$=(z)=>{if(typeof z!=="string")return!1;if(!Z)return!1;return Z.test(z)};return $.emit=(z,I)=>{if(!Z)return I.fail("isHash")+";";return`if (!_re[${I.addRegex(Z)}].test(${z})) ${I.fail("isHash")};`},$.ruleName="isHash",$.requiresType="string",$.constraints={},$}var A0=/^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-]\d{2}:\d{2})$/i,M6=q("isRFC3339",(Q)=>A0.test(Q),(Q,Z)=>{return`if (!_re[${Z.addRegex(A0)}].test(${Q})) ${Z.fail("isRFC3339")};`});M6.constraints={};var V0=/^([01]\d|2[0-3]):[0-5]\d$/,U6=q("isMilitaryTime",(Q)=>V0.test(Q),(Q,Z)=>{return`if (!_re[${Z.addRegex(V0)}].test(${Q})) ${Z.fail("isMilitaryTime")};`});U6.constraints={};function PQ(Q){if(typeof Q==="number")return Q>=-90&&Q<=90;if(typeof Q==="string"){let Z=parseFloat(Q);if(isNaN(Z))return!1;if(String(Z)!==Q&&Q!==String(Z)){if(!/^-?\d+(\.\d+)?$/.test(Q))return!1}return Z>=-90&&Z<=90}return!1}var N=(Q)=>PQ(Q);N.emit=(Q,Z)=>{return`if (!_refs[${Z.addRef(PQ)}](${Q})) ${Z.fail("isLatitude")};`};N.ruleName="isLatitude";N.constraints={};var DQ=N;function hQ(Q){if(typeof Q==="number")return Q>=-180&&Q<=180;if(typeof Q==="string"){let Z=parseFloat(Q);if(isNaN(Z))return!1;if(!/^-?\d+(\.\d+)?$/.test(Q))return!1;return Z>=-180&&Z<=180}return!1}var x=(Q)=>hQ(Q);x.emit=(Q,Z)=>{return`if (!_refs[${Z.addRef(hQ)}](${Q})) ${Z.fail("isLongitude")};`};x.ruleName="isLongitude";x.constraints={};var CQ=x,S0=/^0x[0-9a-fA-F]{40}$/,B6=q("isEthereumAddress",(Q)=>S0.test(Q),(Q,Z)=>{return`if (!_re[${Z.addRegex(S0)}].test(${Q})) ${Z.fail("isEthereumAddress")};`});B6.constraints={};var R0=/^1[a-km-zA-HJ-NP-Z1-9]{25,34}$/,E0=/^3[a-km-zA-HJ-NP-Z1-9]{25,34}$/,f0=/^(bc1)[a-z0-9]{6,87}$/,H6=q("isBtcAddress",(Q)=>R0.test(Q)||E0.test(Q)||f0.test(Q),(Q,Z)=>{let $=Z.addRegex(R0),z=Z.addRegex(E0),I=Z.addRegex(f0);return`if (!_re[${$}].test(${Q}) && !_re[${z}].test(${Q}) && !_re[${I}].test(${Q})) ${Z.fail("isBtcAddress")};`});H6.constraints={};var d0=new Set(["AED","AFN","ALL","AMD","ANG","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BMD","BND","BOB","BOV","BRL","BSD","BTN","BWP","BYN","BZD","CAD","CDF","CHE","CHF","CHW","CLF","CLP","CNY","COP","COU","CRC","CUC","CUP","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ERN","ETB","EUR","FJD","FKP","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HRK","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MRU","MUR","MVR","MWK","MXN","MXV","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SHP","SLE","SLL","SOS","SRD","SSP","STN","SVC","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","USN","UYI","UYU","UYW","UZS","VED","VES","VND","VUV","WST","XAF","XAG","XAU","XBA","XBB","XBC","XBD","XCD","XDR","XOF","XPD","XPF","XPT","XSU","XTS","XUA","YER","ZAR","ZMW","ZWL"]),P6=q("isISO4217CurrencyCode",(Q)=>d0.has(Q),(Q,Z)=>{return`if (!_refs[${Z.addRef(d0)}].has(${Q})) ${Z.fail("isISO4217CurrencyCode")};`});P6.constraints={};var _0=/^\+[1-9]\d{6,14}$/,D6=q("isPhoneNumber",(Q)=>_0.test(Q),(Q,Z)=>{return`if (!_re[${Z.addRegex(_0)}].test(${Q})) ${Z.fail("isPhoneNumber")};`});D6.constraints={};function TQ(Q){let Z=Q?.minLength??8,$=Q?.minLowercase??1,z=Q?.minUppercase??1,I=Q?.minNumbers??1,j=Q?.minSymbols??1,J=(w)=>{if(w.length<Z)return!1;if($>0){if((w.match(/[a-z]/g)||[]).length<$)return!1}if(z>0){if((w.match(/[A-Z]/g)||[]).length<z)return!1}if(I>0){if((w.match(/[0-9]/g)||[]).length<I)return!1}if(j>0){if((w.match(/[^a-zA-Z0-9]/g)||[]).length<j)return!1}return!0},Y=(w)=>{if(typeof w!=="string")return!1;return J(w)};return Y.emit=(w,G)=>{return`if (!_refs[${G.addRef(J)}](${w})) ${G.fail("isStrongPassword")};`},Y.ruleName="isStrongPassword",Y.requiresType="string",Y.constraints={},Y}var TZ={US:/^\d{2}-\d{7}$/,KR:/^\d{3}-\d{2}-\d{5}$/,DE:/^\d{11}$/,FR:/^[0-9]{13}$/,GB:/^\d{10}$/,IT:/^[A-Z]{6}\d{2}[A-Z]\d{2}[A-Z]\d{3}[A-Z]$/i,ES:/^[0-9A-Z]\d{7}[0-9A-Z]$/i,AU:/^\d{11}$/,CA:/^\d{9}$/,IN:/^[A-Z]{5}\d{4}[A-Z]$/i};function LQ(Q){let Z=TZ[Q],$=(z)=>{if(typeof z!=="string")return!1;if(!Z)return!1;return Z.test(z)};return $.emit=(z,I)=>{if(!Z)return I.fail("isTaxId")+";";return`if (!_re[${I.addRegex(Z)}].test(${z})) ${I.fail("isTaxId")};`},$.ruleName="isTaxId",$.requiresType="string",$.constraints={},$}function LZ(Q,Z){return($,z)=>{K($,z,{rule:k0(Q),each:Z?.each,groups:Z?.groups,message:Z?.message,context:Z?.context})}}function OZ(Q,Z){return($,z)=>{K($,z,{rule:y0(Q),each:Z?.each,groups:Z?.groups,message:Z?.message,context:Z?.context})}}function AZ(Q,Z,$){return(z,I)=>{K(z,I,{rule:g0(Q,Z),each:$?.each,groups:$?.groups,message:$?.message,context:$?.context})}}function VZ(Q,Z){return($,z)=>{K($,z,{rule:N0(Q),each:Z?.each,groups:Z?.groups,message:Z?.message,context:Z?.context})}}function SZ(Q,Z){return($,z)=>{K($,z,{rule:x0(Q),each:Z?.each,groups:Z?.groups,message:Z?.message,context:Z?.context})}}function RZ(Q,Z,$){return(z,I)=>{K(z,I,{rule:u0(Q,Z),each:$?.each,groups:$?.groups,message:$?.message,context:$?.context})}}function EZ(Q){return(Z,$)=>{K(Z,$,{rule:m0,each:Q?.each,groups:Q?.groups,message:Q?.message,context:Q?.context})}}function fZ(Q){return(Z,$)=>{K(Z,$,{rule:v0,each:Q?.each,groups:Q?.groups,message:Q?.message,context:Q?.context})}}function dZ(Q){return(Z,$)=>{K(Z,$,{rule:p,each:Q?.each,groups:Q?.groups,message:Q?.message,context:Q?.context})}}function _Z(Q){return(Z,$)=>{K(Z,$,{rule:r0,each:Q?.each,groups:Q?.groups,message:Q?.message,context:Q?.context})}}function kZ(Q){return(Z,$)=>{K(Z,$,{rule:p0,each:Q?.each,groups:Q?.groups,message:Q?.message,context:Q?.context})}}function yZ(Q){return(Z,$)=>{K(Z,$,{rule:s0,each:Q?.each,groups:Q?.groups,message:Q?.message,context:Q?.context})}}function gZ(Q,Z){return($,z)=>{K($,z,{rule:n0(Q),each:Z?.each,groups:Z?.groups,message:Z?.message,context:Z?.context})}}function NZ(Q,Z){return($,z)=>{K($,z,{rule:i0(Q),each:Z?.each,groups:Z?.groups,message:Z?.message,context:Z?.context})}}function xZ(Q){return(Z,$)=>{K(Z,$,{rule:s,each:Q?.each,groups:Q?.groups,message:Q?.message,context:Q?.context})}}function uZ(Q){return(Z,$)=>{K(Z,$,{rule:n,each:Q?.each,groups:Q?.groups,message:Q?.message,context:Q?.context})}}function mZ(Q){return(Z,$)=>{K(Z,$,{rule:i,each:Q?.each,groups:Q?.groups,message:Q?.message,context:Q?.context})}}function vZ(Q){return(Z,$)=>{K(Z,$,{rule:a,each:Q?.each,groups:Q?.groups,message:Q?.message,context:Q?.context})}}function cZ(Q){return(Z,$)=>{K(Z,$,{rule:e,each:Q?.each,groups:Q?.groups,message:Q?.message,context:Q?.context})}}function rZ(Q){return(Z,$)=>{K(Z,$,{rule:o,each:Q?.each,groups:Q?.groups,message:Q?.message,context:Q?.context})}}function lZ(Q){return(Z,$)=>{K(Z,$,{rule:t,each:Q?.each,groups:Q?.groups,message:Q?.message,context:Q?.context})}}function pZ(Q,Z){return($,z)=>{K($,z,{rule:a0(Q),each:Z?.each,groups:Z?.groups,message:Z?.message,context:Z?.context})}}function sZ(Q,Z){return($,z)=>{K($,z,{rule:e0(Q),each:Z?.each,groups:Z?.groups,message:Z?.message,context:Z?.context})}}function nZ(Q,Z){return($,z)=>{K($,z,{rule:o0(Q),each:Z?.each,groups:Z?.groups,message:Z?.message,context:Z?.context})}}function iZ(Q,Z){return($,z)=>{K($,z,{rule:t0(Q),each:Z?.each,groups:Z?.groups,message:Z?.message,context:Z?.context})}}function aZ(Q){return(Z,$)=>{K(Z,$,{rule:Q6,each:Q?.each,groups:Q?.groups,message:Q?.message,context:Q?.context})}}function eZ(Q,Z){return($,z)=>{K($,z,{rule:QQ(Q??!1),each:Z?.each,groups:Z?.groups,message:Z?.message,context:Z?.context})}}function oZ(Q){return(Z,$)=>{K(Z,$,{rule:Z6,each:Q?.each,groups:Q?.groups,message:Q?.message,context:Q?.context})}}function tZ(Q,Z){return($,z)=>{K($,z,{rule:ZQ(Q),each:Z?.each,groups:Z?.groups,message:Z?.message,context:Z?.context})}}function Q$(Q,Z){return($,z)=>{K($,z,{rule:$Q(Q),each:Z?.each,groups:Z?.groups,message:Z?.message,context:Z?.context})}}function Z$(Q){return(Z,$)=>{K(Z,$,{rule:$6,each:Q?.each,groups:Q?.groups,message:Q?.message,context:Q?.context})}}function $$(Q,Z){return($,z)=>{K($,z,{rule:zQ(Q),each:Z?.each,groups:Z?.groups,message:Z?.message,context:Z?.context})}}function z$(Q){return(Z,$)=>{K(Z,$,{rule:z6,each:Q?.each,groups:Q?.groups,message:Q?.message,context:Q?.context})}}function I$(Q,Z){return($,z)=>{K($,z,{rule:IQ(Q),each:Z?.each,groups:Z?.groups,message:Z?.message,context:Z?.context})}}function K$(Q){return(Z,$)=>{K(Z,$,{rule:I6,each:Q?.each,groups:Q?.groups,message:Q?.message,context:Q?.context})}}function j$(Q,Z){return($,z)=>{K($,z,{rule:KQ(Q),each:Z?.each,groups:Z?.groups,message:Z?.message,context:Z?.context})}}function J$(Q){return(Z,$)=>{K(Z,$,{rule:K6,each:Q?.each,groups:Q?.groups,message:Q?.message,context:Q?.context})}}function q$(Q){return(Z,$)=>{K(Z,$,{rule:j6,each:Q?.each,groups:Q?.groups,message:Q?.message,context:Q?.context})}}function Y$(Q,Z){return($,z)=>{K($,z,{rule:jQ(Q),each:Z?.each,groups:Z?.groups,message:Z?.message,context:Z?.context})}}function w$(Q){return(Z,$)=>{K(Z,$,{rule:J6,each:Q?.each,groups:Q?.groups,message:Q?.message,context:Q?.context})}}function W$(Q){return(Z,$)=>{K(Z,$,{rule:q6,each:Q?.each,groups:Q?.groups,message:Q?.message,context:Q?.context})}}function G$(Q){return(Z,$)=>{K(Z,$,{rule:qQ,each:Q?.each,groups:Q?.groups,message:Q?.message,context:Q?.context})}}function X$(Q){return(Z,$)=>{K(Z,$,{rule:wQ,each:Q?.each,groups:Q?.groups,message:Q?.message,context:Q?.context})}}function b$(Q){return(Z,$)=>{K(Z,$,{rule:Y6,each:Q?.each,groups:Q?.groups,message:Q?.message,context:Q?.context})}}function F$(Q){return(Z,$)=>{K(Z,$,{rule:w6,each:Q?.each,groups:Q?.groups,message:Q?.message,context:Q?.context})}}function M$(Q){return(Z,$)=>{K(Z,$,{rule:W6,each:Q?.each,groups:Q?.groups,message:Q?.message,context:Q?.context})}}function U$(Q){return(Z,$)=>{K(Z,$,{rule:G6,each:Q?.each,groups:Q?.groups,message:Q?.message,context:Q?.context})}}function B$(Q){return(Z,$)=>{K(Z,$,{rule:WQ,each:Q?.each,groups:Q?.groups,message:Q?.message,context:Q?.context})}}function H$(Q,Z){return($,z)=>{K($,z,{rule:GQ(Q),each:Z?.each,groups:Z?.groups,message:Z?.message,context:Z?.context})}}function P$(Q){return(Z,$)=>{K(Z,$,{rule:X6,each:Q?.each,groups:Q?.groups,message:Q?.message,context:Q?.context})}}function D$(Q,Z){return($,z)=>{K($,z,{rule:XQ(Q),each:Z?.each,groups:Z?.groups,message:Z?.message,context:Z?.context})}}function h$(Q,Z){return($,z)=>{K($,z,{rule:bQ(Q),each:Z?.each,groups:Z?.groups,message:Z?.message,context:Z?.context})}}function C$(Q){return(Z,$)=>{K(Z,$,{rule:b6,each:Q?.each,groups:Q?.groups,message:Q?.message,context:Q?.context})}}function T$(Q,Z){return($,z)=>{K($,z,{rule:FQ(Q),each:Z?.each,groups:Z?.groups,message:Z?.message,context:Z?.context})}}function L$(Q){return(Z,$)=>{K(Z,$,{rule:F6,each:Q?.each,groups:Q?.groups,message:Q?.message,context:Q?.context})}}function O$(Q){return(Z,$)=>{K(Z,$,{rule:MQ,each:Q?.each,groups:Q?.groups,message:Q?.message,context:Q?.context})}}function A$(Q,Z){return($,z)=>{K($,z,{rule:UQ(Q),each:Z?.each,groups:Z?.groups,message:Z?.message,context:Z?.context})}}function V$(Q,Z,$){return(z,I)=>{K(z,I,{rule:BQ(Q,Z),each:$?.each,groups:$?.groups,message:$?.message,context:$?.context})}}function S$(Q,Z){return($,z)=>{K($,z,{rule:HQ(Q),each:Z?.each,groups:Z?.groups,message:Z?.message,context:Z?.context})}}function R$(Q){return(Z,$)=>{K(Z,$,{rule:M6,each:Q?.each,groups:Q?.groups,message:Q?.message,context:Q?.context})}}function E$(Q){return(Z,$)=>{K(Z,$,{rule:U6,each:Q?.each,groups:Q?.groups,message:Q?.message,context:Q?.context})}}function f$(Q){return(Z,$)=>{K(Z,$,{rule:DQ,each:Q?.each,groups:Q?.groups,message:Q?.message,context:Q?.context})}}function d$(Q){return(Z,$)=>{K(Z,$,{rule:CQ,each:Q?.each,groups:Q?.groups,message:Q?.message,context:Q?.context})}}function _$(Q){return(Z,$)=>{K(Z,$,{rule:B6,each:Q?.each,groups:Q?.groups,message:Q?.message,context:Q?.context})}}function k$(Q){return(Z,$)=>{K(Z,$,{rule:H6,each:Q?.each,groups:Q?.groups,message:Q?.message,context:Q?.context})}}function y$(Q){return(Z,$)=>{K(Z,$,{rule:P6,each:Q?.each,groups:Q?.groups,message:Q?.message,context:Q?.context})}}function g$(Q){return(Z,$)=>{K(Z,$,{rule:D6,each:Q?.each,groups:Q?.groups,message:Q?.message,context:Q?.context})}}function N$(Q,Z){return($,z)=>{K($,z,{rule:TQ(Q),each:Z?.each,groups:Z?.groups,message:Z?.message,context:Z?.context})}}function x$(Q,Z){return($,z)=>{K($,z,{rule:LQ(Q),each:Z?.each,groups:Z?.groups,message:Z?.message,context:Z?.context})}}function OQ(Q){let Z=($)=>{if(!Array.isArray($))return!1;return Q.every((z)=>$.includes(z))};return Z.emit=($,z)=>{return`if (!_refs[${z.addRef(Q)}].every(function(v){return ${$}.indexOf(v)!==-1;})) ${z.fail("arrayContains")};`},Z.ruleName="arrayContains",Z.constraints={values:Q},Z}function AQ(Q){let Z=($)=>{if(!Array.isArray($))return!1;return Q.every((z)=>!$.includes(z))};return Z.emit=($,z)=>{return`if (_refs[${z.addRef(Q)}].some(function(v){return ${$}.indexOf(v)!==-1;})) ${z.fail("arrayNotContains")};`},Z.ruleName="arrayNotContains",Z.constraints={values:Q},Z}function VQ(Q){let Z=($)=>Array.isArray($)&&$.length>=Q;return Z.emit=($,z)=>`if (${$}.length < ${Q}) ${z.fail("arrayMinSize")};`,Z.ruleName="arrayMinSize",Z.constraints={min:Q},Z}function SQ(Q){let Z=($)=>Array.isArray($)&&$.length<=Q;return Z.emit=($,z)=>`if (${$}.length > ${Q}) ${z.fail("arrayMaxSize")};`,Z.ruleName="arrayMaxSize",Z.constraints={max:Q},Z}function RQ(Q){let Z=($)=>{if(!Array.isArray($))return!1;if(Q){let z=$.map(Q);return new Set(z).size===z.length}return new Set($).size===$.length};return Z.emit=($,z)=>{if(Q){let I=z.addRef(Q);return`{var _keys=${$}.map(_refs[${I}]);if(new Set(_keys).size!==_keys.length)${z.fail("arrayUnique")};}`}return`if(new Set(${$}).size!==${$}.length)${z.fail("arrayUnique")};`},Z.ruleName="arrayUnique",Z.constraints={},Z}var u=(Q)=>Array.isArray(Q)&&Q.length>0;u.emit=(Q,Z)=>`if (${Q}.length === 0) ${Z.fail("arrayNotEmpty")};`;u.ruleName="arrayNotEmpty";u.constraints={};var EQ=u;function u$(Q,Z){return($,z)=>{K($,z,{rule:OQ(Q),each:Z?.each,groups:Z?.groups,message:Z?.message,context:Z?.context})}}function m$(Q,Z){return($,z)=>{K($,z,{rule:AQ(Q),each:Z?.each,groups:Z?.groups,message:Z?.message,context:Z?.context})}}function v$(Q,Z){return($,z)=>{K($,z,{rule:VQ(Q),each:Z?.each,groups:Z?.groups,message:Z?.message,context:Z?.context})}}function c$(Q,Z){return($,z)=>{K($,z,{rule:SQ(Q),each:Z?.each,groups:Z?.groups,message:Z?.message,context:Z?.context})}}function r$(Q,Z){return($,z)=>{K($,z,{rule:RQ(Q),each:Z?.each,groups:Z?.groups,message:Z?.message,context:Z?.context})}}function l$(Q){return(Z,$)=>{K(Z,$,{rule:EQ,each:Q?.each,groups:Q?.groups,message:Q?.message,context:Q?.context})}}function fQ(Q){let Z=($)=>{if($===null||typeof $!=="object"||Array.isArray($))return!1;let z=Object.keys($);if(Q?.nullable)return z.some((I)=>$[I]!=null);return z.length>0};return Z.emit=($,z)=>{if(Q?.nullable)return`if (!_refs[${z.addRef(Z)}](${$})) ${z.fail("isNotEmptyObject")};`;return`if (Object.keys(${$}).length === 0) ${z.fail("isNotEmptyObject")};`},Z.ruleName="isNotEmptyObject",Z.constraints={nullable:Q?.nullable},Z}function dQ(Q){let Z=($)=>$ instanceof Q;return Z.emit=($,z)=>{let I=z.addRef(Q);return`if (!(${$} instanceof _refs[${I}])) ${z.fail("isInstance")};`},Z.ruleName="isInstance",Z.constraints={type:Q.name},Z}function p$(Q,Z){return($,z)=>{K($,z,{rule:fQ(Q),each:Z?.each,groups:Z?.groups,message:Z?.message,context:Z?.context})}}function s$(Q,Z){return($,z)=>{K($,z,{rule:dQ(Q),each:Z?.each,groups:Z?.groups,message:Z?.message,context:Z?.context})}}function n$(Q){return(Z,$)=>{C6(Z,$,Q??{})}}function i$(Q){return(Z,$)=>{T6(Z,$,Q??{})}}function a$(Q,Z){return($,z)=>{h6($,z,{fn:Q,options:Z?{groups:Z.groups,deserializeOnly:Z.deserializeOnly,serializeOnly:Z.serializeOnly}:void 0})}}function e$(Q,Z){return($,z)=>{O($,z,{fn:Q,discriminator:Z?.discriminator,keepDiscriminatorProperty:Z?.keepDiscriminatorProperty})}}function o$(Q){return(Z,$)=>{if($!==void 0)L6(Z,$,Q);else{if(typeof Q==="function")throw Error("@Schema(fn) function form is not supported at class level");O6(Z,Q)}}}var t$={"ko-KR":/^(\+?82|0)1[016789]\d{7,8}$/,"en-US":/^\+?1?[2-9]\d{2}[2-9]\d{6}$/,"zh-CN":/^(\+?86)?1[3-9]\d{9}$/,"zh-TW":/^(\+?886)?9\d{8}$/,"ja-JP":/^(\+?81)?0?[789]0[0-9]{8}$/,"de-DE":/^(\+?49)?1(5\d|6[0-9]|7[0-9])\d{8}$/,"fr-FR":/^(\+?33)?[67]\d{8}$/,"en-GB":/^(\+?44)?7[1-9]\d{8}$/,"ru-RU":/^(\+?7)?9\d{9}$/,"pt-BR":/^(\+?55)?[1-9]{2}9?\d{8}$/,"in-IN":/^(\+?91)?[6-9]\d{9}$/,"ar-SA":/^(\+?966)?5\d{8}$/,"ar-EG":/^(\+?20)?1[0125]\d{8}$/,"vi-VN":/^(\+?84)?[35789]\d{8}$/,"th-TH":/^(\+?66)?[689]\d{8}$/,"id-ID":/^(\+?62)?8\d{9,11}$/,"ms-MY":/^(\+?60)?1\d{8,9}$/,"nl-NL":/^(\+?31)?6\d{8}$/,"it-IT":/^(\+?39)?3\d{9}$/,"es-ES":/^(\+?34)?[67]\d{8}$/,"pl-PL":/^(\+?48)?[45789]\d{8}$/};function _Q(Q){let Z=t$[Q],$=(z)=>{if(typeof z!=="string")return!1;if(!Z)return!1;return Z.test(z)};return $.emit=(z,I)=>{if(!Z)return I.fail("isMobilePhone")+";";return`if (!_re[${I.addRegex(Z)}].test(${z})) ${I.fail("isMobilePhone")};`},$.ruleName="isMobilePhone",$.requiresType="string",$.constraints={locale:Q},$}var Q8={AD:/^AD\d{3}$/,AT:/^\d{4}$/,AU:/^\d{4}$/,AZ:/^\d{4}$/,BE:/^\d{4}$/,BG:/^\d{4}$/,BR:/^\d{5}-?\d{3}$/,BY:/^\d{6}$/,CA:/^[ABCEGHJKLMNPRSTVXY]\d[ABCEGHJ-NPRSTV-Z] ?\d[ABCEGHJ-NPRSTV-Z]\d$/i,CH:/^\d{4}$/,CN:/^\d{6}$/,CZ:/^\d{3} ?\d{2}$/,DE:/^\d{5}$/,DK:/^\d{4}$/,EE:/^\d{5}$/,ES:/^\d{5}$/,FI:/^\d{5}$/,FR:/^\d{2} ?\d{3}$/,GB:/^(GIR ?0AA|[A-PR-UWYZ]([0-9]{1,2}|([A-HK-Y][0-9]([0-9ABEHMNPRV-Y])?)|[0-9][A-HJKPSTUW]) ?[0-9][ABD-HJLNP-UW-Z]{2})$/i,GR:/^\d{3} ?\d{2}$/,HR:/^\d{5}$/,HU:/^\d{4}$/,ID:/^\d{5}$/,IL:/^\d{5}(\d{2})?$/,IN:/^\d{6}$/,IS:/^\d{3}$/,IT:/^\d{5}$/,JP:/^\d{3}-?\d{4}$/,KR:/^\d{5}$/,LI:/^(948[5-9]|949[0-7])$/,LT:/^LT-\d{5}$/,LU:/^\d{4}$/,LV:/^LV-\d{4}$/,MX:/^\d{5}$/,MT:/^[A-Z]{3} ?\d{4}$/i,MZ:/^\d{4}$/,NL:/^\d{4} ?[A-Z]{2}$/i,NO:/^\d{4}$/,NP:/^\d{5}$/,NZ:/^\d{4}$/,PH:/^\d{4}$/,PK:/^\d{5}$/,PL:/^\d{2}-\d{3}$/,PR:/^009\d{2}([ -]\d{4})?$/,PT:/^\d{4}-\d{3}$/,RO:/^\d{6}$/,RU:/^\d{6}$/,SE:/^\d{3} ?\d{2}$/,SG:/^\d{6}$/,SI:/^\d{4}$/,SK:/^\d{3} ?\d{2}$/,TH:/^\d{5}$/,TN:/^\d{4}$/,TW:/^\d{3}(\d{2})?$/,UA:/^\d{5}$/,US:/^\d{5}(-\d{4})?$/,ZA:/^\d{4}$/,ZM:/^\d{5}$/};function kQ(Q){let Z=Q8[Q],$=(z)=>{if(typeof z!=="string")return!1;if(!Z)return!1;return Z.test(z)};return $.emit=(z,I)=>{if(!Z)return I.fail("isPostalCode")+";";return`if (!_re[${I.addRegex(Z)}].test(${z})) ${I.fail("isPostalCode")};`},$.ruleName="isPostalCode",$.requiresType="string",$.constraints={locale:Q},$}var Z8={AF:/^\d{8}$/,AL:/^[A-Z]\d{8}[A-Z]$/i,AR:/^\d{7,8}$/,AZ:/^AZE\d{8}$/,BE:/^\d{11}$/,BG:/^\d{10}$/,BR:/^\d{9}$/,BY:/^[A-Z]{2}\d{7}$/i,CA:/^\d{9}$/,CH:/^756\d{10}$/,CN:/^\d{15}(\d{2}[0-9xX])?$/,CY:/^\d{7}[A-Z]$/i,CZ:/^\d{9,10}$/,DE:/^[LI TOUAEVBMNPRSZDFGHCK]{9}$/i,DK:/^\d{10}$/,EE:/^\d{11}$/,ES:/^[0-9X-Z]\d{7}[TRWAGMYFPDXBNJZSQVHLCKE]$/i,FI:/^\d{6}[+-A]\d{3}[0-9A-FHJ-NPR-Y]$/,FR:/^\d{8,9}[0-9\u00C1-\u00FF]{1}$/i,GB:/^[A-Z]{2}\d{6}[A-Z]$/i,GR:/^[A-Z]{2}\d{6}$/i,HR:/^\d{11}$/,HU:/^\d{8}[A-Z]{2}$/i,ID:/^\d{16}$/,IE:/^\d{7}[A-W][A-W]?$/,IL:/^\d{9}$/,IN:/^\d{12}$/,IR:/^\d{10}$/,IS:/^\d{10}$/,IT:/^[A-Z]{6}\d{2}[A-Z]\d{2}[A-Z]\d{3}[A-Z]$/i,JP:/^\d{12}$/,KR:/^\d{6}-\d{7}$/,LT:/^\d{11}$/,LU:/^\d{13}$/,LV:/^\d{6}-\d{5}$/,MK:/^\d{13}$/,MX:/^[A-Z]{4}\d{6}[HM][A-Z]{2}[B-DF-HJ-NP-TV-Z]{3}[A-Z0-9]\d$/i,MT:/^\d{7}[A-Z]$/i,NL:/^\d{9}$/,NO:/^\d{11}$/,PL:/^\d{11}$/,PT:/^[1-9]\d{7}[0-9TV]$/i,RO:/^\d{13}$/,RS:/^\d{13}$/,RU:/^\d{10}$/,SE:/^\d{10,12}$/,SI:/^\d{13}$/,SK:/^\d{9,10}$/,TH:/^\d{13}$/,TR:/^\d{11}$/,TW:/^[A-Z]\d{9}$/i,UA:/^\d{9}$/,US:/^\d{3}-\d{2}-\d{4}$/,ZA:/^\d{13}$/};function yQ(Q){let Z=Z8[Q],$=(z)=>{if(typeof z!=="string")return!1;if(!Z)return!1;return Z.test(z)};return $.emit=(z,I)=>{if(!Z)return I.fail("isIdentityCard")+";";return`if (!_re[${I.addRegex(Z)}].test(${z})) ${I.fail("isIdentityCard")};`},$.ruleName="isIdentityCard",$.requiresType="string",$.constraints={locale:Q},$}var $8={AM:/^[A-Z]{2}\d{7}$/i,AR:/^[A-Z]{3}\d{6}$/i,AT:/^[A-Z]\d{7}$/i,AU:/^[A-Z]\d{7}$/i,AZ:/^[Aa]\d{8}$/,BE:/^[A-Z]{2}\d{6}$/i,BG:/^\d{9}$/,BH:/^[A-Z]{2}\d{6}$/i,BR:/^[A-Z]{2}\d{6}$/i,BY:/^[A-Z]{2}\d{7}$/i,CA:/^[A-Z]{2}\d{6}$/i,CH:/^[A-Z]\d{7}$/i,CN:/^G\d{8}$/,CY:/^[A-Z](\d{6}|\d{8})$/i,CZ:/^\d{8}$/,DE:/^[CFGHJKLMNPRTVWXYZ0-9]{9}$/i,DK:/^\d{9}$/,EE:/^([A-Z]\d{7}|[A-Z]{2}\d{7})$/i,ES:/^[A-Z0-9]{2}([A-Z0-9]?)\d{6}$/i,FI:/^[A-Z]{2}\d{7}$/i,FR:/[A-Z0-9]{9}/i,GB:/^\d{9}$/,GR:/^[A-Z]{2}\d{7}$/i,HR:/^\d{9}$/,HU:/^[A-Z]{2}(\d{6}|\d{7})$/i,ID:/^[A-C]\d{7}$/i,IE:/^[A-Z0-9]{2}\d{7}$/i,IL:/^\d{9}$/,IN:/^[A-Z]\d{7}$/i,IR:/^[A-Z]\d{8}$/i,IS:/^(A)\d{7}$/i,IT:/^[A-Z0-9]{9}$/i,JO:/^[A-Z]{2}\d{7}$/i,JP:/^[A-Z]{2}\d{7}$/i,KR:/^[A-Z][A-Z0-9]\d{7}$/i,KW:/^\d{8}$/,KZ:/^[A-Z]\d{8}$/i,LI:/^[A-Z]\d{6}X$/i,LT:/^[A-Z0-9]{8}$/i,LU:/^[A-Z0-9]{8}$/i,LV:/^[A-Z0-9]{2}\d{7}$/i,LY:/^[A-Z]{2}\d{7}$/i,MA:/^[A-Z0-9]{2}\d{7}$/i,MD:/^[A-Z]{2}\d{7}$/i,ME:/^[A-Z]{2}\d{7}$/i,MK:/^[A-Z]\d{7}$/i,MT:/^\d{7}$/,MX:/^[A-Z]\d{8}$/i,MY:/^[AHK]\d{8}[A-Z]$/i,NL:/^[A-NP-Z]{2}[A-NP-Z0-9]{6}\d$/i,NO:/^\d{9}$/,NZ:/^[A-Z]{2}\d{6}$/i,PH:/^[A-Z]\d{7}[A-Z]$/i,PK:/^[A-Z]{2}\d{7}$/i,PL:/^[A-Z]{2}\d{7}$/i,PT:/^[A-Z]\d{6}$/i,RO:/^\d{8}$/,RS:/^\d{9}$/,RU:/^\d{9}$/,SA:/^[A-Z]\d{8}$/i,SE:/^\d{8}$/,SL:/^(P)[A-Z]\d{7}$/i,SK:/^[0-9A-Z]\d{7}$/i,TH:/^[A-Z]{1,2}\d{6,7}$/i,TN:/^\d{8}$/,TR:/^[A-Z]\d{8}$/i,TW:/^[A-Z]\d{9}$/i,UA:/^[A-Z]{2}\d{6}$/i,US:/^\d{9}$/,ZA:/^[A-Z]\d{8}$/i};function gQ(Q){let Z=$8[Q],$=(z)=>{if(typeof z!=="string")return!1;if(!Z)return!1;return Z.test(z)};return $.emit=(z,I)=>{if(!Z)return I.fail("isPassportNumber")+";";return`if (!_re[${I.addRegex(Z)}].test(${z})) ${I.fail("isPassportNumber")};`},$.ruleName="isPassportNumber",$.requiresType="string",$.constraints={locale:Q},$}function z8(Q,Z){return($,z)=>{K($,z,{rule:_Q(Q),each:Z?.each,groups:Z?.groups,message:Z?.message,context:Z?.context})}}function I8(Q,Z){return($,z)=>{K($,z,{rule:kQ(Q),each:Z?.each,groups:Z?.groups,message:Z?.message,context:Z?.context})}}function K8(Q,Z){return($,z)=>{K($,z,{rule:yQ(Q),each:Z?.each,groups:Z?.groups,message:Z?.message,context:Z?.context})}}function j8(Q,Z){return($,z)=>{K($,z,{rule:gQ(Q),each:Z?.each,groups:Z?.groups,message:Z?.message,context:Z?.context})}}export{NQ as a,xQ as b,uQ as c,mQ as d,vQ as e,cQ as f,rQ as g,lQ as h,pQ as i,sQ as j,nQ as k,iQ as l,aQ as m,eQ as n,oQ as o,tQ as p,QZ as q,ZZ as r,$Z as s,zZ as t,IZ as u,KZ as v,jZ as w,JZ as x,qZ as y,YZ as z,wZ as A,LZ as B,OZ as C,AZ as D,VZ as E,SZ as F,RZ as G,EZ as H,fZ as I,dZ as J,_Z as K,kZ as L,yZ as M,gZ as N,NZ as O,xZ as P,uZ as Q,mZ as R,vZ as S,cZ as T,rZ as U,lZ as V,pZ as W,sZ as X,nZ as Y,iZ as Z,aZ as _,eZ as $,oZ as aa,tZ as ba,Q$ as ca,Z$ as da,$$ as ea,z$ as fa,I$ as ga,K$ as ha,j$ as ia,J$ as ja,q$ as ka,Y$ as la,w$ as ma,W$ as na,G$ as oa,X$ as pa,b$ as qa,F$ as ra,M$ as sa,U$ as ta,B$ as ua,H$ as va,P$ as wa,D$ as xa,h$ as ya,C$ as za,T$ as Aa,L$ as Ba,O$ as Ca,A$ as Da,V$ as Ea,S$ as Fa,R$ as Ga,E$ as Ha,f$ as Ia,d$ as Ja,_$ as Ka,k$ as La,y$ as Ma,g$ as Na,N$ as Oa,x$ as Pa,u$ as Qa,m$ as Ra,v$ as Sa,c$ as Ta,r$ as Ua,l$ as Va,p$ as Wa,s$ as Xa,n$ as Ya,i$ as Za,a$ as _a,e$ as $a,o$ as ab,z8 as bb,I8 as cb,K8 as db,j8 as eb};
12
+
13
+ //# debugId=AA223C1C9EEBEA8B64756E2164756E21
14
+ //# sourceMappingURL=index-jzjz61tg.js.map