@zipbul/baker 1.0.0 → 1.1.0

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.
@@ -1,22 +1,22 @@
1
1
  import type { EmittableRule } from './types';
2
2
  export interface CreateRuleOptions {
3
- /** 규칙 이름. 에러 코드로 사용됨. */
3
+ /** Rule name. Used as the error code. */
4
4
  name: string;
5
- /** 검증 함수 — true: 통과, false: 실패. async 함수 허용 (Promise<boolean> 반환 자동으로 async 룰로 등록). */
5
+ /** Validation function — true: pass, false: fail. Async functions allowed (automatically registered as async rule when returning Promise<boolean>). */
6
6
  validate: (value: unknown) => boolean | Promise<boolean>;
7
- /** 파라미터 — toJsonSchema 매핑에 사용 */
7
+ /** Rule parametersused for toJsonSchema mapping */
8
8
  constraints?: Record<string, unknown>;
9
- /** 룰이 전제하는 타입타입 게이트 최적화에 사용 */
9
+ /** Type assumed by this rule used for type gate optimization */
10
10
  requiresType?: 'string' | 'number' | 'boolean' | 'date';
11
11
  }
12
12
  /**
13
- * 사용자 정의 검증 규칙을 생성한다.
13
+ * Creates a user-defined validation rule.
14
14
  *
15
15
  * @example
16
- * // 간단 형태
16
+ * // Simple form
17
17
  * const koreanPhone = createRule('koreanPhone', (v) => /^01[016789]/.test(v as string));
18
18
  *
19
- * // 옵션 형태
19
+ * // Options form
20
20
  * const isEven = createRule({
21
21
  * name: 'isEven',
22
22
  * validate: (v) => typeof v === 'number' && v % 2 === 0,
@@ -4,7 +4,7 @@ export interface ArrayOfMarker {
4
4
  readonly rules: EmittableRule[];
5
5
  }
6
6
  /**
7
- * 배열의 원소에 규칙 적용.
7
+ * Apply rules to each element of an array.
8
8
  *
9
9
  * @example
10
10
  * @Field(arrayOf(isString(), minLength(1)))
@@ -25,9 +25,9 @@ export interface JsonSchemaOverride {
25
25
  [key: string]: unknown;
26
26
  }
27
27
  export interface FieldOptions {
28
- /** 중첩 DTO 타입. thunk순환 참조 지원. [Dto] 배열. */
28
+ /** Nested DTO type. Thunksupports circular references. [Dto] for arrays. */
29
29
  type?: () => (new (...args: any[]) => any) | (new (...args: any[]) => any)[];
30
- /** 다형성 discriminator 설정type과 함께 사용 */
30
+ /** Polymorphic discriminator configurationused with type */
31
31
  discriminator?: {
32
32
  property: string;
33
33
  subTypes: {
@@ -35,40 +35,52 @@ export interface FieldOptions {
35
35
  name: string;
36
36
  }[];
37
37
  };
38
- /** discriminator 프로퍼티를 결과 객체에 유지할지 여부 */
38
+ /** Whether to keep the discriminator property in the result object */
39
39
  keepDiscriminatorProperty?: boolean;
40
- /** 검증 규칙 배열 */
40
+ /** Validation rules array */
41
41
  rules?: (EmittableRule | ArrayOfMarker)[];
42
- /** undefined 허용 */
42
+ /** Allow undefined */
43
43
  optional?: boolean;
44
- /** null 허용 */
44
+ /** Allow null */
45
45
  nullable?: boolean;
46
- /** JSON 매핑 (양방향) */
46
+ /** JSON key mapping (bidirectional) */
47
47
  name?: string;
48
- /** deserialize 방향 매핑 (name과 동시 사용 불가) */
48
+ /** Deserialize direction key mapping (cannot be used with name) */
49
49
  deserializeName?: string;
50
- /** serialize 방향 매핑 (name과 동시 사용 불가) */
50
+ /** Serialize direction key mapping (cannot be used with name) */
51
51
  serializeName?: string;
52
- /** 필드 제외 — true: 양방향, 'deserializeOnly': 역직렬화만, 'serializeOnly': 직렬화만 */
52
+ /** Field exclusion — true: bidirectional, 'deserializeOnly': deserialization only, 'serializeOnly': serialization only */
53
53
  exclude?: boolean | 'deserializeOnly' | 'serializeOnly';
54
- /** 그룹필드 가시성 제어 + validation rule 조건부 적용 */
54
+ /** Groupsfield visibility control + conditional validation rule application */
55
55
  groups?: string[];
56
- /** 조건부 검증false 필드 전체 검증 skip */
56
+ /** Conditional validationskip all field validation when false */
57
57
  when?: (obj: any) => boolean;
58
- /** JSON Schema 커스텀 (프로퍼티 레벨) */
58
+ /** JSON Schema custom override (property level) */
59
59
  schema?: JsonSchemaOverride;
60
- /** 변환 함수 */
60
+ /** Value transform function */
61
61
  transform?: (params: FieldTransformParams) => unknown;
62
- /** transform 방향 제한 */
62
+ /** Transform direction restriction */
63
63
  transformDirection?: 'deserializeOnly' | 'serializeOnly';
64
+ /** Error message on validation failure — applied to all rules of the field (rule's own message takes precedence) */
65
+ message?: string | ((args: {
66
+ property: string;
67
+ value: unknown;
68
+ constraints: Record<string, unknown>;
69
+ }) => string);
70
+ /** Error context on validation failure — applied to all rules of the field (rule's own context takes precedence) */
71
+ context?: unknown;
72
+ /** Nested DTO class thunk for Map values — used with type: () => Map */
73
+ mapValue?: () => new (...args: any[]) => any;
74
+ /** Nested DTO class thunk for Set elements — used with type: () => Set */
75
+ setValue?: () => new (...args: any[]) => any;
64
76
  }
65
77
  type RuleArg = EmittableRule | ArrayOfMarker;
66
- /** @Field() — 필드 등록 */
78
+ /** @Field() — empty field registration */
67
79
  export declare function Field(): PropertyDecorator;
68
- /** @Field(isString(), email()) — 가변 인자 규칙 */
80
+ /** @Field(isString(), email()) — variadic rules */
69
81
  export declare function Field(...rules: RuleArg[]): PropertyDecorator;
70
- /** @Field({ type: () => Dto }) — 옵션 객체 */
82
+ /** @Field({ type: () => Dto }) — options object */
71
83
  export declare function Field(options: FieldOptions): PropertyDecorator;
72
- /** @Field(isString(), { optional: true }) — 규칙 + 옵션 혼합 */
84
+ /** @Field(isString(), { optional: true }) — rules + options mixed */
73
85
  export declare function Field(...rulesAndOptions: [...RuleArg[], FieldOptions]): PropertyDecorator;
74
86
  export {};
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import"../../index-xdn55cz3.js";import{c as a,d as b}from"../../index-57gr0v18.js";import"../../index-aegrb1kn.js";export{a as arrayOf,b as Field};
2
+ import"../../index-xdn55cz3.js";import{c as a,d as b}from"../../index-gcptd79v.js";import"../../index-70ggmxsa.js";export{a as arrayOf,b as Field};
3
3
 
4
4
  //# debugId=9E4BFE621FA3997464756E2164756E21
5
5
  //# sourceMappingURL=index.js.map
@@ -1,38 +1,38 @@
1
1
  /**
2
- * 개별 필드 에러최소 계약(minimum contract).
2
+ * Individual field error — minimum contract.
3
3
  *
4
- * 예약 에러 코드:
5
- * - 'invalidInput': input null, 비객체, 배열일 (path='')
6
- * - 'isObject': 중첩 @Type 필드의 값이 객체가 아닐
7
- * - 'isArray': 배열 중첩 (each:true) 필드의 값이 배열이 아닐
8
- * - 'invalidDiscriminator': discriminator 값이 subTypes에 없을
9
- * - 'conversionFailed': enableImplicitConversion에서 타입 변환 실패
10
- * - 'whitelistViolation': whitelist: true에서 미선언 필드가 input 존재할
4
+ * Reserved error codes:
5
+ * - 'invalidInput': when input is null, non-object, or array (path='')
6
+ * - 'isObject': when a nested @Type field's value is not an object
7
+ * - 'isArray': when an array-nested (each:true) field's value is not an array
8
+ * - 'invalidDiscriminator': when the discriminator value is not in subTypes
9
+ * - 'conversionFailed': when type conversion fails in enableImplicitConversion
10
+ * - 'whitelistViolation': when undeclared fields exist in input with whitelist: true
11
11
  *
12
- * 향후 확장 필드(message, expected, actual ) 반드시 Optional로 추가.
12
+ * Future extension fields (message, expected, actual, etc.) must be added as Optional.
13
13
  */
14
14
  export interface BakerError {
15
15
  readonly path: string;
16
16
  readonly code: string;
17
- /** 사용자 정의 에러 메시지 데코레이터 message 옵션이 설정된 경우에만 포함 */
17
+ /** User-defined error messageincluded only when the decorator message option is set */
18
18
  readonly message?: string;
19
- /** 사용자 정의 컨텍스트 데코레이터 context 옵션이 설정된 경우에만 포함 */
19
+ /** User-defined contextincluded only when the decorator context option is set */
20
20
  readonly context?: unknown;
21
21
  }
22
22
  /**
23
- * deserialize() 검증 실패 시 throw되는 에러.
24
- * errors 배열에 모든 필드 에러가 담겨 있다.
23
+ * Error thrown on deserialize() validation failure.
24
+ * The errors array contains all field errors.
25
25
  */
26
26
  export declare class BakerValidationError extends Error {
27
27
  readonly errors: BakerError[];
28
- /** 검증 대상 DTO 클래스명 (DX-2) */
28
+ /** Target DTO class name for validation (DX-2) */
29
29
  readonly className?: string;
30
30
  constructor(errors: BakerError[], className?: string);
31
31
  }
32
32
  /**
33
- * 봉인 관련 에러:
34
- * - seal() 2회 이상 호출
35
- * - 미봉인 클래스에 deserialize()/serialize() 호출
33
+ * Seal-related error:
34
+ * - When seal() is called more than once
35
+ * - When deserialize()/serialize() is called on an unsealed class
36
36
  */
37
37
  export declare class SealError extends Error {
38
38
  constructor(message: string);
@@ -1,9 +1,10 @@
1
1
  import type { RuntimeOptions } from '../interfaces';
2
2
  /**
3
- * input Class 인스턴스 변환 + 검증.
4
- * - 호출 auto-seal (globalRegistry 전체 배치)
5
- * - 성공: Promise<T> 반환
6
- * - 검증 실패: BakerValidationError throw
7
- * - 데코레이터 없는 클래스: SealError throw
3
+ * Converts input to a Class instance + validates.
4
+ * - Auto-seals on first call (batches entire globalRegistry)
5
+ * - DTOs without async transform/rules run without `async function`, returned via Promise.resolve
6
+ * - Success: returns Promise<T>
7
+ * - Validation failure: BakerValidationError (rejected promise)
8
+ * - Class without decorators: throws SealError
8
9
  */
9
10
  export declare function deserialize<T>(Class: new (...args: any[]) => T, input: unknown, options?: RuntimeOptions): Promise<T>;
@@ -1,8 +1,9 @@
1
1
  import type { RuntimeOptions } from '../interfaces';
2
2
  /**
3
- * Class 인스턴스 plain 객체 변환.
4
- * - 호출 auto-seal (globalRegistry 전체 배치)
5
- * - 무검증 전제 항상 Record<string, unknown> 반환 (또는 Promise)
6
- * - 데코레이터 없는 클래스: SealError throw
3
+ * Converts a Class instance to a plain object.
4
+ * - Auto-seals on first call (batches entire globalRegistry)
5
+ * - DTOs without async transforms run without `async function`, returned via Promise.resolve
6
+ * - No validation always returns Record<string, unknown>
7
+ * - Class without decorators: throws SealError
7
8
  */
8
9
  export declare function serialize<T>(instance: T, options?: RuntimeOptions): Promise<Record<string, unknown>>;
@@ -2,19 +2,19 @@ import type { JsonSchema202012 } from '../types';
2
2
  export interface ToJsonSchemaOptions {
3
3
  direction?: 'deserialize' | 'serialize';
4
4
  groups?: string[];
5
- /** true: 모든 object 스키마에 unevaluatedProperties: false 추가 (seal whitelist 옵션 대응) */
5
+ /** true: adds unevaluatedProperties: false to all object schemas (corresponds to seal's whitelist option) */
6
6
  whitelist?: boolean;
7
- /** 클래스 레벨 JSON Schema 메타데이터 (title, description ) */
7
+ /** Class-level JSON Schema metadata (title, description, etc.) */
8
8
  title?: string;
9
9
  description?: string;
10
10
  $id?: string;
11
- /** 매핑되지 않은 규칙에 대한 콜백 (기본: console.warn) */
11
+ /** Callback for unmapped rules (default: console.warn) */
12
12
  onUnmappedRule?: (ruleName: string, fieldKey: string) => void;
13
13
  }
14
14
  /**
15
- * 등록된 DTO 클래스를 JSON Schema Draft 2020-12 형식으로 변환한다.
16
- * - 루트 클래스는 인라인, 중첩 클래스는 $defs에 배치
17
- * - 순환 참조는 $ref로 안전 처리
18
- * - seal() 이전에도 호출 가능 (RAW 메타데이터 직접 사용)
15
+ * Converts a registered DTO class to JSON Schema Draft 2020-12 format.
16
+ * - Root class is inlined, nested classes are placed in $defs
17
+ * - Circular references are safely handled via $ref
18
+ * - Can be called before seal() (uses RAW metadata directly)
19
19
  */
20
20
  export declare function toJsonSchema(Class: Function, options?: ToJsonSchemaOptions): JsonSchema202012;
@@ -1,32 +1,32 @@
1
1
  export interface SealOptions {
2
2
  /**
3
- * validation 데코레이터를 타입 힌트로 활용한 자동 변환.
3
+ * Automatic conversion using validation decorators as type hints.
4
4
  * @default false
5
5
  */
6
6
  enableImplicitConversion?: boolean;
7
7
  /**
8
- * input에 해당 키가 없을 클래스 기본값을 사용.
8
+ * Use class default values when the key is missing from input.
9
9
  * @default false
10
10
  */
11
11
  exposeDefaultValues?: boolean;
12
12
  /**
13
- * true: 에러 즉시 반환. false(기본): 전체 에러 수집.
13
+ * true: return immediately on first error. false (default): collect all errors.
14
14
  * @default false
15
15
  */
16
16
  stopAtFirstError?: boolean;
17
17
  /**
18
- * true: 미선언 필드 거부. mergeInheritance(Class) key 집합을 허용 목록으로 사용.
19
- * @Exclude 필드도 whitelist 포함 존재는 허용하되 결과에서 제외.
18
+ * true: reject undeclared fields. Uses the key set from mergeInheritance(Class) as the allowlist.
19
+ * @Exclude fields are also included in the whitelist — their presence is allowed but they are excluded from the result.
20
20
  * @default false
21
21
  */
22
22
  whitelist?: boolean;
23
23
  /**
24
- * true: 생성 코드에 필드 제외 사유를 주석으로 포함.
24
+ * true: include field exclusion reasons as comments in generated code.
25
25
  * @default false
26
26
  */
27
27
  debug?: boolean;
28
28
  }
29
29
  export interface RuntimeOptions {
30
- /** 요청별 groups — 요청마다 다를 있으므로 런타임에 전달 */
30
+ /** Per-request groups — passed at runtime since they may vary per request */
31
31
  groups?: string[];
32
32
  }
@@ -1,8 +1,8 @@
1
1
  /**
2
- * 전역 레지스트리데코레이터가 1개라도 부착된 클래스를 자동 등록
2
+ * Global registryautomatically registers classes with at least one decorator attached
3
3
  *
4
- * - ensureMeta()에서 자동 호출
5
- * - seal() Set 순회하여 모든 DTO를 봉인
6
- * - 메타데이터는 여기에 저장되지 않음인덱스(어떤 클래스가 등록되었는지)로만 사용
4
+ * - Automatically called from ensureMeta()
5
+ * - seal() iterates this Set to seal all DTOs
6
+ * - Metadata is not stored here used only as an index (which classes are registered)
7
7
  */
8
8
  export declare const globalRegistry: Set<Function>;
@@ -1,14 +1,14 @@
1
1
  // @bun
2
- import{c as xz}from"../../index-57gr0v18.js";import"../../index-aegrb1kn.js";var P=(b)=>typeof b==="string";P.emit=(b,z)=>`if (typeof ${b} !== 'string') ${z.fail("isString")};`;P.ruleName="isString";P.constraints={};var d6=P;function S6(b){let z=b?.allowNaN??!1,Q=b?.allowInfinity??!1,j=b?.maxDecimalPlaces,Z=($)=>{if(typeof $!=="number")return!1;if(isNaN($))return z;if(!isFinite($))return Q;if(j!==void 0){let K=$.toExponential().split("e"),W=(K[0].split(".")[1]||"").length,q=parseInt(K[1],10);if(Math.max(0,W-q)>j)return!1}return!0};return Z.emit=($,K)=>{let W=`if (typeof ${$} !== 'number') ${K.fail("isNumber")};`;if(!z)W+=`
2
+ import{c as xz}from"../../index-gcptd79v.js";import"../../index-70ggmxsa.js";var P=(b)=>typeof b==="string";P.emit=(b,z)=>`if (typeof ${b} !== 'string') ${z.fail("isString")};`;P.ruleName="isString";P.constraints={};var d6=P;function S6(b){let z=b?.allowNaN??!1,Q=b?.allowInfinity??!1,j=b?.maxDecimalPlaces,Z=($)=>{if(typeof $!=="number")return!1;if(isNaN($))return z;if(!isFinite($))return Q;if(j!==void 0){let K=$.toExponential().split("e"),W=(K[0].split(".")[1]||"").length,q=parseInt(K[1],10);if(Math.max(0,W-q)>j)return!1}return!0};return Z.emit=($,K)=>{let W=`if (typeof ${$} !== 'number') ${K.fail("isNumber")};`;if(!z)W+=`
3
3
  else if (isNaN(${$})) ${K.fail("isNumber")};`;if(!Q)W+=`
4
4
  else if (${$} === Infinity || ${$} === -Infinity) ${K.fail("isNumber")};`;if(j!==void 0)W+=`
5
- else { var _exp=${$}.toExponential().split('e'); var _mant=(_exp[0].split('.')[1]||'').length; var _exp2=parseInt(_exp[1],10); if(Math.max(0,_mant-_exp2)>${j}) ${K.fail("isNumber")}; }`;return W},Z.ruleName="isNumber",Z.constraints={allowNaN:b?.allowNaN,allowInfinity:b?.allowInfinity,maxDecimalPlaces:b?.maxDecimalPlaces},Z}var C=(b)=>typeof b==="boolean";C.emit=(b,z)=>`if (typeof ${b} !== 'boolean') ${z.fail("isBoolean")};`;C.ruleName="isBoolean";C.constraints={};var p6=C,O=(b)=>b instanceof Date&&!isNaN(b.getTime());O.emit=(b,z)=>`if (!(${b} instanceof Date) || isNaN(${b}.getTime())) ${z.fail("isDate")};`;O.ruleName="isDate";O.constraints={};var o6=O;function s6(b){let z=Object.values(b),Q=(j)=>z.indexOf(j)!==-1;return Q.emit=(j,Z)=>{return`if (_refs[${Z.addRef(z)}].indexOf(${j}) === -1) ${Z.fail("isEnum")};`},Q.ruleName="isEnum",Q.constraints={values:Object.values(b)},Q}var Y=(b)=>typeof b==="number"&&Number.isInteger(b);Y.emit=(b,z)=>`if (typeof ${b} !== 'number' || !Number.isInteger(${b})) ${z.fail("isInt")};`;Y.ruleName="isInt";Y.requiresType="number";Y.constraints={};var R6=Y,k=(b)=>Array.isArray(b);k.emit=(b,z)=>`if (!Array.isArray(${b})) ${z.fail("isArray")};`;k.ruleName="isArray";k.constraints={};var f6=k,I=(b)=>typeof b==="object"&&b!==null&&!Array.isArray(b);I.emit=(b,z)=>`if (typeof ${b} !== 'object' || ${b} === null || Array.isArray(${b})) ${z.fail("isObject")};`;I.ruleName="isObject";I.constraints={};var E6=I;function _6(b,z){if(!Number.isFinite(b))throw Error(`min: bound must be a finite number, got ${b}`);let Q=z?.exclusive??!1,j=Q?(Z)=>Z>b:(Z)=>Z>=b;return j.emit=(Z,$)=>Q?`if (${Z} <= ${b}) ${$.fail("min")};`:`if (${Z} < ${b}) ${$.fail("min")};`,j.ruleName="min",j.requiresType="number",j.constraints=Q?{min:b,exclusive:!0}:{min:b},j}function i6(b,z){if(!Number.isFinite(b))throw Error(`max: bound must be a finite number, got ${b}`);let Q=z?.exclusive??!1,j=Q?(Z)=>Z<b:(Z)=>Z<=b;return j.emit=(Z,$)=>Q?`if (${Z} >= ${b}) ${$.fail("max")};`:`if (${Z} > ${b}) ${$.fail("max")};`,j.ruleName="max",j.requiresType="number",j.constraints=Q?{max:b,exclusive:!0}:{max:b},j}var V=(b)=>b>0;V.emit=(b,z)=>`if (${b} <= 0) ${z.fail("isPositive")};`;V.ruleName="isPositive";V.requiresType="number";V.constraints={min:0,exclusive:!0};var N6=V,M=(b)=>b<0;M.emit=(b,z)=>`if (${b} >= 0) ${z.fail("isNegative")};`;M.ruleName="isNegative";M.requiresType="number";M.constraints={max:0,exclusive:!0};var u6=M;function x6(b){if(b===0)throw Error("isDivisibleBy: divisor must not be zero");let z=(Q)=>Q%b===0;return z.emit=(Q,j)=>`if (${Q} % ${b} !== 0) ${j.fail("isDivisibleBy")};`,z.ruleName="isDivisibleBy",z.requiresType="number",z.constraints={divisor:b},z}function m6(b){let z=b.getTime(),Q=(j)=>j instanceof Date&&j.getTime()>=z;return Q.emit=(j,Z)=>{let $=Z.addRef(z);return`if (!(${j} instanceof Date) || ${j}.getTime() < _refs[${$}]) ${Z.fail("minDate")};`},Q.ruleName="minDate",Q.requiresType="date",Q.constraints={min:b.toISOString()},Q}function n6(b){let z=b.getTime(),Q=(j)=>j instanceof Date&&j.getTime()<=z;return Q.emit=(j,Z)=>{let $=Z.addRef(z);return`if (!(${j} instanceof Date) || ${j}.getTime() > _refs[${$}]) ${Z.fail("maxDate")};`},Q.ruleName="maxDate",Q.requiresType="date",Q.constraints={max:b.toISOString()},Q}function r6(b){let z=(Q)=>Q===b;return z.emit=(Q,j)=>{let Z=j.addRef(b);return`if (${Q} !== _refs[${Z}]) ${j.fail("equals")};`},z.ruleName="equals",z.constraints={value:b},z}function c6(b){let z=(Q)=>Q!==b;return z.emit=(Q,j)=>{let Z=j.addRef(b);return`if (${Q} === _refs[${Z}]) ${j.fail("notEquals")};`},z.ruleName="notEquals",z.constraints={value:b},z}var g=(b)=>b===void 0||b===null||b==="";g.emit=(b,z)=>`if (${b} !== undefined && ${b} !== null && ${b} !== '') ${z.fail("isEmpty")};`;g.ruleName="isEmpty";g.constraints={};var l6=g,T=(b)=>b!==void 0&&b!==null&&b!=="";T.emit=(b,z)=>`if (${b} === undefined || ${b} === null || ${b} === '') ${z.fail("isNotEmpty")};`;T.ruleName="isNotEmpty";T.constraints={};var t6=T;function v6(b){let z=new Set(b),Q=(j)=>z.has(j);return Q.emit=(j,Z)=>{return`if (!_refs[${Z.addRef(z)}].has(${j})) ${Z.fail("isIn")};`},Q.ruleName="isIn",Q.constraints={values:b},Q}function e6(b){let z=new Set(b),Q=(j)=>!z.has(j);return Q.emit=(j,Z)=>{return`if (_refs[${Z.addRef(z)}].has(${j})) ${Z.fail("isNotIn")};`},Q.ruleName="isNotIn",Q.constraints={values:b},Q}function J(b,z,Q,j="string",Z={}){let $=(K)=>{if(typeof K!=="string")return!1;return z(K)};if($.emit=Q,$.ruleName=b,j!==void 0)$.requiresType=j;return $.constraints=Z,$}function a6(b){let z=(Q)=>typeof Q==="string"&&Q.length>=b;return z.emit=(Q,j)=>`if (${Q}.length < ${b}) ${j.fail("minLength")};`,z.ruleName="minLength",z.requiresType="string",z.constraints={min:b},z}function bb(b){let z=(Q)=>typeof Q==="string"&&Q.length<=b;return z.emit=(Q,j)=>`if (${Q}.length > ${b}) ${j.fail("maxLength")};`,z.ruleName="maxLength",z.requiresType="string",z.constraints={max:b},z}function zb(b,z){let Q=(j)=>typeof j==="string"&&j.length>=b&&j.length<=z;return Q.emit=(j,Z)=>`if (${j}.length < ${b} || ${j}.length > ${z}) ${Z.fail("length")};`,Q.ruleName="length",Q.requiresType="string",Q.constraints={min:b,max:z},Q}function Qb(b){let z=(Q)=>typeof Q==="string"&&Q.includes(b);return z.emit=(Q,j)=>{let Z=j.addRef(b);return`if (${Q}.indexOf(_refs[${Z}]) === -1) ${j.fail("contains")};`},z.ruleName="contains",z.requiresType="string",z.constraints={seed:b},z}function jb(b){let z=(Q)=>typeof Q==="string"&&!Q.includes(b);return z.emit=(Q,j)=>{let Z=j.addRef(b);return`if (${Q}.indexOf(_refs[${Z}]) !== -1) ${j.fail("notContains")};`},z.ruleName="notContains",z.requiresType="string",z.constraints={seed:b},z}function Zb(b,z){let Q=b instanceof RegExp?b:new RegExp(b,z),j=(Z)=>typeof Z==="string"&&Q.test(Z);return j.emit=(Z,$)=>{return`if (!_re[${$.addRegex(Q)}].test(${Z})) ${$.fail("matches")};`},j.ruleName="matches",j.requiresType="string",j.constraints={pattern:Q.source},j}var F=(b)=>typeof b==="string"&&b===b.toLowerCase();F.emit=(b,z)=>`if (${b} !== ${b}.toLowerCase()) ${z.fail("isLowercase")};`;F.ruleName="isLowercase";F.requiresType="string";F.constraints={};var $b=F,G=(b)=>typeof b==="string"&&b===b.toUpperCase();G.emit=(b,z)=>`if (${b} !== ${b}.toUpperCase()) ${z.fail("isUppercase")};`;G.ruleName="isUppercase";G.requiresType="string";G.constraints={};var Kb=G,E=/^[\x00-\x7F]*$/,Jb=J("isAscii",(b)=>E.test(b),(b,z)=>{return`if (!_re[${z.addRegex(E)}].test(${b})) ${z.fail("isAscii")};`}),k6=/^[a-zA-Z]+$/;function qb(b){return typeof b==="string"&&b.length>0&&k6.test(b)}var h=function b(z){if(z===void 0)return b;return qb(z)};h.emit=(b,z)=>{return`if (!_re[${z.addRegex(k6)}].test(${b})) ${z.fail("isAlpha")};`};h.ruleName="isAlpha";h.requiresType="string";h.constraints={};var Wb=h,I6=/^[a-zA-Z0-9]+$/;function wb(b){return typeof b==="string"&&b.length>0&&I6.test(b)}var X=function b(z){if(z===void 0)return b;return wb(z)};X.emit=(b,z)=>{return`if (!_re[${z.addRegex(I6)}].test(${b})) ${z.fail("isAlphanumeric")};`};X.ruleName="isAlphanumeric";X.requiresType="string";X.constraints={};var Yb=X,B=(b)=>b==="true"||b==="false"||b==="1"||b==="0";B.emit=(b,z)=>`if (${b} !== 'true' && ${b} !== 'false' && ${b} !== '1' && ${b} !== '0') ${z.fail("isBooleanString")};`;B.ruleName="isBooleanString";B.requiresType="string";B.constraints={};var Vb=B;function Mb(b){return J("isNumberString",(z)=>{if(z.length===0)return!1;let Q=Number(z);return!isNaN(Q)&&isFinite(Q)},(z,Q)=>{let j=($)=>{if($.length===0)return!1;let K=Number($);return!isNaN(K)&&isFinite(K)};return`if (!_refs[${Q.addRef(j)}](${z})) ${Q.fail("isNumberString")};`})}function Fb(b){let z=/^[-+]?(?:\d+(?:\.\d*)?|\.\d+)$/;return J("isDecimal",(Q)=>z.test(Q),(Q,j)=>{return`if (!_re[${j.addRegex(z)}].test(${Q})) ${j.fail("isDecimal")};`})}var d=/[^\u0020-\u007E\uFF61-\uFF9F]/,Gb=J("isFullWidth",(b)=>b.length>0&&d.test(b),(b,z)=>{let Q=z.addRegex(d);return`if (${b}.length === 0 || !_re[${Q}].test(${b})) ${z.fail("isFullWidth")};`}),S=/[\u0020-\u007E\uFF61-\uFF9F]/,hb=J("isHalfWidth",(b)=>b.length>0&&S.test(b),(b,z)=>{let Q=z.addRegex(S);return`if (${b}.length === 0 || !_re[${Q}].test(${b})) ${z.fail("isHalfWidth")};`}),Xb=J("isVariableWidth",(b)=>b.length>0&&d.test(b)&&S.test(b),(b,z)=>{let Q=z.addRegex(d),j=z.addRegex(S);return`if (${b}.length === 0 || !_re[${Q}].test(${b}) || !_re[${j}].test(${b})) ${z.fail("isVariableWidth")};`}),_=/[^\x00-\xFF]/,Bb=J("isMultibyte",(b)=>b.length>0&&_.test(b),(b,z)=>{let Q=z.addRegex(_);return`if (${b}.length === 0 || !_re[${Q}].test(${b})) ${z.fail("isMultibyte")};`}),i=/[\uD800-\uDBFF][\uDC00-\uDFFF]/,Ub=J("isSurrogatePair",(b)=>b.length>0&&i.test(b),(b,z)=>{let Q=z.addRegex(i);return`if (${b}.length === 0 || !_re[${Q}].test(${b})) ${z.fail("isSurrogatePair")};`}),N=/^[0-9a-fA-F]+$/,Db=J("isHexadecimal",(b)=>N.test(b),(b,z)=>{return`if (!_re[${z.addRegex(N)}].test(${b})) ${z.fail("isHexadecimal")};`}),u=/^(0[oO])?[0-7]+$/,Hb=J("isOctal",(b)=>b.length>0&&u.test(b),(b,z)=>{let Q=z.addRegex(u);return`if (${b}.length === 0 || !_re[${Q}].test(${b})) ${z.fail("isOctal")};`}),x=/^[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 yb(b){return J("isEmail",(z)=>x.test(z),(z,Q)=>{return`if (!_re[${Q.addRegex(x)}].test(${z})) ${Q.fail("isEmail")};`},"string",{format:"email"})}var Pb=["http","https","ftp"];function Cb(b){let Q=(b?.protocols??Pb).map(($)=>$.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("|"),j=new RegExp(`^(?:${Q}):\\/\\/(?:[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])?)*)(?::(6553[0-5]|655[0-2]\\d|65[0-4]\\d{2}|6[0-4]\\d{3}|[1-5]\\d{4}|[1-9]\\d{0,3}|0))?(?:\\/[^\\s]*)?$`),Z=($)=>{if(typeof $!=="string"||$.length===0)return!1;return j.test($)};return Z.emit=($,K)=>{return`if (!_re[${K.addRegex(j)}].test(${$})) ${K.fail("isURL")};`},Z.ruleName="isURL",Z.requiresType="string",Z.constraints={format:"uri"},Z}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 Ob(b){let z=b!=null?R[b]??R.all:R.all;return J("isUUID",(Q)=>z.test(Q),(Q,j)=>{return`if (!_re[${j.addRegex(z)}].test(${Q})) ${j.fail("isUUID")};`},"string",{format:"uuid"})}var L=/^(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)$/,A=/^(?:[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 kb(b){let z=(Q)=>{if(typeof Q!=="string")return!1;if(b===4)return L.test(Q);if(b===6)return A.test(Q);return L.test(Q)||A.test(Q)};return z.emit=(Q,j)=>{if(b===4)return`if (!_re[${j.addRegex(L)}].test(${Q})) ${j.fail("isIP")};`;if(b===6)return`if (!_re[${j.addRegex(A)}].test(${Q})) ${j.fail("isIP")};`;let Z=j.addRegex(L),$=j.addRegex(A);return`if (!_re[${Z}].test(${Q}) && !_re[${$}].test(${Q})) ${j.fail("isIP")};`},z.ruleName="isIP",z.requiresType="string",z.constraints={version:b},z}var m=/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/,Ib=J("isHexColor",(b)=>m.test(b),(b,z)=>{return`if (!_re[${z.addRegex(m)}].test(${b})) ${z.fail("isHexColor")};`}),n=/^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*\)$/,r=/^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*\)$/,c=/^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 gb(b=!1){let z=(Q)=>{if(typeof Q!=="string")return!1;if(b)return c.test(Q);return n.test(Q)||r.test(Q)};return z.emit=(Q,j)=>{if(b)return`if (!_re[${j.addRegex(c)}].test(${Q})) ${j.fail("isRgbColor")};`;let Z=j.addRegex(n),$=j.addRegex(r);return`if (!_re[${Z}].test(${Q}) && !_re[${$}].test(${Q})) ${j.fail("isRgbColor")};`},z.ruleName="isRgbColor",z.requiresType="string",z.constraints={},z}var l=/^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*\)$/,Tb=J("isHSL",(b)=>l.test(b),(b,z)=>{return`if (!_re[${z.addRegex(l)}].test(${b})) ${z.fail("isHSL")};`}),t=/^[0-9a-fA-F]{2}(?::[0-9a-fA-F]{2}){5}$/,v=/^[0-9a-fA-F]{2}(?:-[0-9a-fA-F]{2}){5}$/,e=/^[0-9a-fA-F]{12}$/;function Lb(b){let z=(Q)=>{if(typeof Q!=="string")return!1;if(b?.no_separators)return e.test(Q);return t.test(Q)||v.test(Q)};return z.emit=(Q,j)=>{if(b?.no_separators)return`if (!_re[${j.addRegex(e)}].test(${Q})) ${j.fail("isMACAddress")};`;let Z=j.addRegex(t),$=j.addRegex(v);return`if (!_re[${Z}].test(${Q}) && !_re[${$}].test(${Q})) ${j.fail("isMACAddress")};`},z.ruleName="isMACAddress",z.requiresType="string",z.constraints={},z}function a(b){let z=b.replace(/[-\s]/g,"");if(!/^\d{9}[\dX]$/.test(z))return!1;let Q=0;for(let Z=0;Z<9;Z++)Q+=(10-Z)*(z.charCodeAt(Z)-48);let j=z[9]==="X"?10:z.charCodeAt(9)-48;return Q+=j,Q%11===0}function b6(b){let z=b.replace(/[-\s]/g,"");if(!/^\d{13}$/.test(z))return!1;let Q=0;for(let Z=0;Z<12;Z++)Q+=(z.charCodeAt(Z)-48)*(Z%2===0?1:3);return(10-Q%10)%10===z.charCodeAt(12)-48}function Ab(b){let z=(Q)=>{if(typeof Q!=="string")return!1;if(b===10)return a(Q);if(b===13)return b6(Q);return a(Q)||b6(Q)};return z.emit=(Q,j)=>{return`if (!_refs[${j.addRef(z)}](${Q})) ${j.fail("isISBN")};`},z.ruleName="isISBN",z.requiresType="string",z.constraints={},z}var db=/^[A-Z]{2}[A-Z0-9]{9}[0-9]$/;function z6(b){if(!db.test(b))return!1;let z=b.split("").map((Z)=>{let $=Z.charCodeAt(0);return $>=65?String($-55):Z}).join(""),Q=0,j=!1;for(let Z=z.length-1;Z>=0;Z--){let $=parseInt(z[Z],10);if(j){if($*=2,$>9)$-=9}Q+=$,j=!j}return Q%10===0}var Sb=J("isISIN",z6,(b,z)=>{return`if (!_refs[${z.addRef(z6)}](${b})) ${z.fail("isISIN")};`}),f=/^\d{4}(?:-\d{2}(?:-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:?\d{2})?)?)?)?$/;function pb(b){if(!f.test(b))return!1;let z=b.match(/^(\d{4})-(\d{2})-(\d{2})/);if(!z)return!0;let Q=Number(z[2]),j=Number(z[3]);if(Q<1||Q>12)return!1;let Z=new Date(Number(z[1]),Q,0).getDate();return j>=1&&j<=Z}function ob(b){if(b?.strict){let z=(Q)=>{if(typeof Q!=="string")return!1;return pb(Q)};return z.ruleName="isISO8601",z.emit=(Q,j)=>{return`if (!_refs[${j.addRef(z)}](${Q})) ${j.fail("isISO8601")};`},z.constraints={format:"date-time"},z}return J("isISO8601",(z)=>f.test(z),(z,Q)=>{return`if (!_re[${Q.addRegex(f)}].test(${z})) ${Q.fail("isISO8601")};`},"string",{format:"date-time"})}var Q6=/^[A-Z]{2}-[A-Z0-9]{3}-\d{2}-\d{5}$|^[A-Z]{2}[A-Z0-9]{3}\d{7}$/,sb=J("isISRC",(b)=>Q6.test(b),(b,z)=>{return`if (!_re[${z.addRegex(Q6)}].test(${b})) ${z.fail("isISRC")};`});function Rb(b,z){let Q=z?.requireHyphen!==!1,j=Q?b:b.replace(/-/g,"");if(!(Q?/^\d{4}-\d{3}[\dX]$/:/^\d{7}[\dX]$/).test(j))return!1;let $=j.replace(/-/g,""),K=0;for(let q=0;q<7;q++)K+=(8-q)*($.charCodeAt(q)-48);let W=$[7]==="X"?10:$.charCodeAt(7)-48;return K+=W,K%11===0}function fb(b){let z=(Q)=>{if(typeof Q!=="string")return!1;return Rb(Q,b)};return z.emit=(Q,j)=>{return`if (!_refs[${j.addRef(z)}](${Q})) ${j.fail("isISSN")};`},z.ruleName="isISSN",z.requiresType="string",z.constraints={},z}var j6=/^[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+$/,Eb=J("isJWT",(b)=>j6.test(b),(b,z)=>{return`if (!_re[${z.addRegex(j6)}].test(${b})) ${z.fail("isJWT")};`}),Z6=/^[-+]?([1-8]?\d(?:\.\d+)?|90(?:\.0+)?),\s*[-+]?(180(?:\.0+)?|1[0-7]\d(?:\.\d+)?|\d{1,2}(?:\.\d+)?)$/;function _b(b){return J("isLatLong",(z)=>Z6.test(z),(z,Q)=>{return`if (!_re[${Q.addRegex(Z6)}].test(${z})) ${Q.fail("isLatLong")};`})}var $6=/^[a-zA-Z]{2,3}(?:-[a-zA-Z]{4})?(?:-(?:[a-zA-Z]{2}|\d{3}))?(?:-[a-zA-Z\d]{5,8})*$/,ib=J("isLocale",(b)=>$6.test(b),(b,z)=>{return`if (!_re[${z.addRegex($6)}].test(${b})) ${z.fail("isLocale")};`}),K6=/^data:([a-zA-Z0-9!#$&\-^_]+\/[a-zA-Z0-9!#$&\-^_]+)(?:;[a-zA-Z0-9\-]+=[a-zA-Z0-9\-]+)*(?:;base64)?,[\s\S]*$/,Nb=J("isDataURI",(b)=>K6.test(b),(b,z)=>{return`if (!_re[${z.addRegex(K6)}].test(${b})) ${z.fail("isDataURI")};`});function ub(b){let z=b?.require_tld!==!1,Q=(j)=>{if(typeof j!=="string")return!1;let Z=j;if(b?.allow_trailing_dot&&Z.endsWith("."))Z=Z.slice(0,-1);if(Z.length===0)return!1;let $=Z.split(".");if(z&&$.length<2)return!1;if(z){let K=$[$.length-1];if(!K||K.length<2||!/^[a-zA-Z]{2,}$/.test(K))return!1}return $.every((K)=>{if(K.length===0||K.length>63)return!1;if(b?.allow_underscores)return/^[a-zA-Z0-9_-]+$/.test(K);return/^[a-zA-Z0-9-]+$/.test(K)&&!K.startsWith("-")&&!K.endsWith("-")})};return Q.emit=(j,Z)=>{return`if (!_refs[${Z.addRef(Q)}](${j})) ${Z.fail("isFQDN")};`},Q.ruleName="isFQDN",Q.requiresType="string",Q.constraints={},Q}var J6=/^(?: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)$/,xb=J("isPort",(b)=>J6.test(b),(b,z)=>{return`if (!_re[${z.addRegex(J6)}].test(${b})) ${z.fail("isPort")};`});function q6(b){if(!/^\d{8}$/.test(b)&&!/^\d{13}$/.test(b))return!1;let z=b.split("").map(Number),Q=z.length,j=0;for(let $=0;$<Q-1;$++)j+=z[$]*(Q===8?$%2===0?3:1:$%2===0?1:3);return(10-j%10)%10===z[Q-1]}var mb=J("isEAN",q6,(b,z)=>{return`if (!_refs[${z.addRef(q6)}](${b})) ${z.fail("isEAN")};`}),g6=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"]),U=(b)=>{if(typeof b!=="string")return!1;return g6.has(b.toUpperCase())};U.emit=(b,z)=>{return`if (!_refs[${z.addRef(g6)}].has(${b}.toUpperCase())) ${z.fail("isISO31661Alpha2")};`};U.ruleName="isISO31661Alpha2";U.requiresType="string";U.constraints={};var nb=U,T6=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"]),D=(b)=>{if(typeof b!=="string")return!1;return T6.has(b.toUpperCase())};D.emit=(b,z)=>{return`if (!_refs[${z.addRef(T6)}].has(${b}.toUpperCase())) ${z.fail("isISO31661Alpha3")};`};D.ruleName="isISO31661Alpha3";D.requiresType="string";D.constraints={};var rb=D,W6=/^[A-Z]{6}[A-Z0-9]{2}(?:[A-Z0-9]{3})?$/,cb=J("isBIC",(b)=>W6.test(b.toUpperCase()),(b,z)=>{return`if (!_re[${z.addRegex(W6)}].test(${b}.toUpperCase())) ${z.fail("isBIC")};`}),w6=/^[a-zA-Z0-9_-]{20}$/,lb=J("isFirebasePushId",(b)=>w6.test(b),(b,z)=>{return`if (!_re[${z.addRegex(w6)}].test(${b})) ${z.fail("isFirebasePushId")};`}),Y6=/^(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-]+)*))?$/,tb=J("isSemVer",(b)=>Y6.test(b),(b,z)=>{return`if (!_re[${z.addRegex(Y6)}].test(${b})) ${z.fail("isSemVer")};`}),V6=/^[0-9a-fA-F]{24}$/,vb=J("isMongoId",(b)=>V6.test(b),(b,z)=>{return`if (!_re[${z.addRegex(V6)}].test(${b})) ${z.fail("isMongoId")};`}),H=(b)=>{if(typeof b!=="string")return!1;try{return JSON.parse(b),!0}catch{return!1}};H.emit=(b,z)=>{return`if (!_refs[${z.addRef((j)=>{try{return JSON.parse(j),!0}catch{return!1}})}](${b})) ${z.fail("isJSON")};`};H.ruleName="isJSON";H.requiresType="string";H.constraints={};var eb=H,ab=/^[A-Z2-7]+=*$/i;function bz(b){let z=ab;return J("isBase32",(Q)=>{if(Q.length===0)return!1;if(Q.length%8!==0)return!1;return z.test(Q)},(Q,j)=>{let Z=j.addRegex(z);return`if (${Q}.length === 0 || ${Q}.length % 8 !== 0 || !_re[${Z}].test(${Q})) ${j.fail("isBase32")};`})}var M6=/^[1-9A-HJ-NP-Za-km-z]+$/,zz=J("isBase58",(b)=>M6.test(b),(b,z)=>{return`if (!_re[${z.addRegex(M6)}].test(${b})) ${z.fail("isBase58")};`}),Qz=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$/,jz=/^[A-Za-z0-9_-]+={0,2}$/;function Zz(b){let z=b?.urlSafe?jz:Qz;return J("isBase64",(Q)=>{if(Q.length===0)return!1;return z.test(Q)},(Q,j)=>{let Z=j.addRegex(z);return`if (${Q}.length === 0 || !_re[${Z}].test(${Q})) ${j.fail("isBase64")};`})}var F6=/^\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])$/;function $z(b){return J("isDateString",(z)=>F6.test(z),(z,Q)=>{return`if (!_re[${Q.addRegex(F6)}].test(${z})) ${Q.fail("isDateString")};`})}var G6=/^(application|audio|font|image|message|model|multipart|text|video)\/[a-zA-Z0-9][a-zA-Z0-9!#$&\-^_.+]*(?:;.+)?$/,Kz=J("isMimeType",(b)=>G6.test(b),(b,z)=>{return`if (!_re[${z.addRegex(G6)}].test(${b})) ${z.fail("isMimeType")};`}),h6=/^[-+]?(?:[,.\d]+)(?:[.,]\d{2})?$|^\$?-?(?:\d+|\d{1,3}(?:,\d{3})*)(?:\.\d{1,2})?$/;function Jz(b){return J("isCurrency",(z)=>{if(z.length===0)return!1;return h6.test(z)},(z,Q)=>{let j=Q.addRegex(h6);return`if (${z}.length === 0 || !_re[${j}].test(${z})) ${Q.fail("isCurrency")};`})}var X6=/^magnet:\?xt=urn:[a-z0-9]+:[a-z0-9]{32,40}/i,qz=J("isMagnetURI",(b)=>X6.test(b),(b,z)=>{return`if (!_re[${z.addRegex(X6)}].test(${b})) ${z.fail("isMagnetURI")};`});function Wz(b){let z=b.replace(/[\s-]/g,"");if(z.length===0||!/^\d+$/.test(z))return!1;let Q=0,j=!1;for(let Z=z.length-1;Z>=0;Z--){let $=z.charCodeAt(Z)-48;if(j){if($*=2,$>9)$-=9}Q+=$,j=!j}return Q%10===0}var y=(b)=>{if(typeof b!=="string")return!1;return Wz(b)};y.emit=(b,z)=>`{
5
+ else { var _exp=${$}.toExponential().split('e'); var _mant=(_exp[0].split('.')[1]||'').length; var _exp2=parseInt(_exp[1],10); if(Math.max(0,_mant-_exp2)>${j}) ${K.fail("isNumber")}; }`;return W},Z.ruleName="isNumber",Z.constraints={allowNaN:b?.allowNaN,allowInfinity:b?.allowInfinity,maxDecimalPlaces:b?.maxDecimalPlaces},Z}var C=(b)=>typeof b==="boolean";C.emit=(b,z)=>`if (typeof ${b} !== 'boolean') ${z.fail("isBoolean")};`;C.ruleName="isBoolean";C.constraints={};var p6=C,O=(b)=>b instanceof Date&&!isNaN(b.getTime());O.emit=(b,z)=>`if (!(${b} instanceof Date) || isNaN(${b}.getTime())) ${z.fail("isDate")};`;O.ruleName="isDate";O.constraints={};var o6=O;function R6(b){let z=Object.values(b),Q=(j)=>z.indexOf(j)!==-1;return Q.emit=(j,Z)=>{return`if (_refs[${Z.addRef(z)}].indexOf(${j}) === -1) ${Z.fail("isEnum")};`},Q.ruleName="isEnum",Q.constraints={values:Object.values(b)},Q}var Y=(b)=>typeof b==="number"&&Number.isInteger(b);Y.emit=(b,z)=>`if (typeof ${b} !== 'number' || !Number.isInteger(${b})) ${z.fail("isInt")};`;Y.ruleName="isInt";Y.requiresType="number";Y.constraints={};var f6=Y,k=(b)=>Array.isArray(b);k.emit=(b,z)=>`if (!Array.isArray(${b})) ${z.fail("isArray")};`;k.ruleName="isArray";k.constraints={};var s6=k,I=(b)=>typeof b==="object"&&b!==null&&!Array.isArray(b);I.emit=(b,z)=>`if (typeof ${b} !== 'object' || ${b} === null || Array.isArray(${b})) ${z.fail("isObject")};`;I.ruleName="isObject";I.constraints={};var E6=I;function _6(b,z){if(!Number.isFinite(b))throw Error(`min: bound must be a finite number, got ${b}`);let Q=z?.exclusive??!1,j=Q?(Z)=>Z>b:(Z)=>Z>=b;return j.emit=(Z,$)=>Q?`if (${Z} <= ${b}) ${$.fail("min")};`:`if (${Z} < ${b}) ${$.fail("min")};`,j.ruleName="min",j.requiresType="number",j.constraints=Q?{min:b,exclusive:!0}:{min:b},j}function i6(b,z){if(!Number.isFinite(b))throw Error(`max: bound must be a finite number, got ${b}`);let Q=z?.exclusive??!1,j=Q?(Z)=>Z<b:(Z)=>Z<=b;return j.emit=(Z,$)=>Q?`if (${Z} >= ${b}) ${$.fail("max")};`:`if (${Z} > ${b}) ${$.fail("max")};`,j.ruleName="max",j.requiresType="number",j.constraints=Q?{max:b,exclusive:!0}:{max:b},j}var V=(b)=>b>0;V.emit=(b,z)=>`if (${b} <= 0) ${z.fail("isPositive")};`;V.ruleName="isPositive";V.requiresType="number";V.constraints={min:0,exclusive:!0};var N6=V,M=(b)=>b<0;M.emit=(b,z)=>`if (${b} >= 0) ${z.fail("isNegative")};`;M.ruleName="isNegative";M.requiresType="number";M.constraints={max:0,exclusive:!0};var u6=M;function x6(b){if(b===0)throw Error("isDivisibleBy: divisor must not be zero");let z=(Q)=>Q%b===0;return z.emit=(Q,j)=>`if (${Q} % ${b} !== 0) ${j.fail("isDivisibleBy")};`,z.ruleName="isDivisibleBy",z.requiresType="number",z.constraints={divisor:b},z}function m6(b){let z=b.getTime(),Q=(j)=>j instanceof Date&&j.getTime()>=z;return Q.emit=(j,Z)=>{let $=Z.addRef(z);return`if (!(${j} instanceof Date) || ${j}.getTime() < _refs[${$}]) ${Z.fail("minDate")};`},Q.ruleName="minDate",Q.requiresType="date",Q.constraints={min:b.toISOString()},Q}function n6(b){let z=b.getTime(),Q=(j)=>j instanceof Date&&j.getTime()<=z;return Q.emit=(j,Z)=>{let $=Z.addRef(z);return`if (!(${j} instanceof Date) || ${j}.getTime() > _refs[${$}]) ${Z.fail("maxDate")};`},Q.ruleName="maxDate",Q.requiresType="date",Q.constraints={max:b.toISOString()},Q}function r6(b){let z=(Q)=>Q===b;return z.emit=(Q,j)=>{let Z=j.addRef(b);return`if (${Q} !== _refs[${Z}]) ${j.fail("equals")};`},z.ruleName="equals",z.constraints={value:b},z}function l6(b){let z=(Q)=>Q!==b;return z.emit=(Q,j)=>{let Z=j.addRef(b);return`if (${Q} === _refs[${Z}]) ${j.fail("notEquals")};`},z.ruleName="notEquals",z.constraints={value:b},z}var g=(b)=>b===void 0||b===null||b==="";g.emit=(b,z)=>`if (${b} !== undefined && ${b} !== null && ${b} !== '') ${z.fail("isEmpty")};`;g.ruleName="isEmpty";g.constraints={};var c6=g,T=(b)=>b!==void 0&&b!==null&&b!=="";T.emit=(b,z)=>`if (${b} === undefined || ${b} === null || ${b} === '') ${z.fail("isNotEmpty")};`;T.ruleName="isNotEmpty";T.constraints={};var t6=T;function v6(b){let z=new Set(b),Q=(j)=>z.has(j);return Q.emit=(j,Z)=>{return`if (!_refs[${Z.addRef(z)}].has(${j})) ${Z.fail("isIn")};`},Q.ruleName="isIn",Q.constraints={values:b},Q}function e6(b){let z=new Set(b),Q=(j)=>!z.has(j);return Q.emit=(j,Z)=>{return`if (_refs[${Z.addRef(z)}].has(${j})) ${Z.fail("isNotIn")};`},Q.ruleName="isNotIn",Q.constraints={values:b},Q}function J(b,z,Q,j="string",Z={}){let $=(K)=>{if(typeof K!=="string")return!1;return z(K)};if($.emit=Q,$.ruleName=b,j!==void 0)$.requiresType=j;return $.constraints=Z,$}function a6(b){let z=(Q)=>typeof Q==="string"&&Q.length>=b;return z.emit=(Q,j)=>`if (${Q}.length < ${b}) ${j.fail("minLength")};`,z.ruleName="minLength",z.requiresType="string",z.constraints={min:b},z}function bb(b){let z=(Q)=>typeof Q==="string"&&Q.length<=b;return z.emit=(Q,j)=>`if (${Q}.length > ${b}) ${j.fail("maxLength")};`,z.ruleName="maxLength",z.requiresType="string",z.constraints={max:b},z}function zb(b,z){let Q=(j)=>typeof j==="string"&&j.length>=b&&j.length<=z;return Q.emit=(j,Z)=>`if (${j}.length < ${b} || ${j}.length > ${z}) ${Z.fail("length")};`,Q.ruleName="length",Q.requiresType="string",Q.constraints={min:b,max:z},Q}function Qb(b){let z=(Q)=>typeof Q==="string"&&Q.includes(b);return z.emit=(Q,j)=>{let Z=j.addRef(b);return`if (${Q}.indexOf(_refs[${Z}]) === -1) ${j.fail("contains")};`},z.ruleName="contains",z.requiresType="string",z.constraints={seed:b},z}function jb(b){let z=(Q)=>typeof Q==="string"&&!Q.includes(b);return z.emit=(Q,j)=>{let Z=j.addRef(b);return`if (${Q}.indexOf(_refs[${Z}]) !== -1) ${j.fail("notContains")};`},z.ruleName="notContains",z.requiresType="string",z.constraints={seed:b},z}function Zb(b,z){let Q=b instanceof RegExp?b:new RegExp(b,z),j=(Z)=>typeof Z==="string"&&Q.test(Z);return j.emit=(Z,$)=>{return`if (!_re[${$.addRegex(Q)}].test(${Z})) ${$.fail("matches")};`},j.ruleName="matches",j.requiresType="string",j.constraints={pattern:Q.source},j}var F=(b)=>typeof b==="string"&&b===b.toLowerCase();F.emit=(b,z)=>`if (${b} !== ${b}.toLowerCase()) ${z.fail("isLowercase")};`;F.ruleName="isLowercase";F.requiresType="string";F.constraints={};var $b=F,G=(b)=>typeof b==="string"&&b===b.toUpperCase();G.emit=(b,z)=>`if (${b} !== ${b}.toUpperCase()) ${z.fail("isUppercase")};`;G.ruleName="isUppercase";G.requiresType="string";G.constraints={};var Kb=G,E=/^[\x00-\x7F]*$/,Jb=J("isAscii",(b)=>E.test(b),(b,z)=>{return`if (!_re[${z.addRegex(E)}].test(${b})) ${z.fail("isAscii")};`}),k6=/^[a-zA-Z]+$/;function qb(b){return typeof b==="string"&&b.length>0&&k6.test(b)}var h=function b(z){if(z===void 0)return b;return qb(z)};h.emit=(b,z)=>{return`if (!_re[${z.addRegex(k6)}].test(${b})) ${z.fail("isAlpha")};`};h.ruleName="isAlpha";h.requiresType="string";h.constraints={};var Wb=h,I6=/^[a-zA-Z0-9]+$/;function wb(b){return typeof b==="string"&&b.length>0&&I6.test(b)}var X=function b(z){if(z===void 0)return b;return wb(z)};X.emit=(b,z)=>{return`if (!_re[${z.addRegex(I6)}].test(${b})) ${z.fail("isAlphanumeric")};`};X.ruleName="isAlphanumeric";X.requiresType="string";X.constraints={};var Yb=X,B=(b)=>b==="true"||b==="false"||b==="1"||b==="0";B.emit=(b,z)=>`if (${b} !== 'true' && ${b} !== 'false' && ${b} !== '1' && ${b} !== '0') ${z.fail("isBooleanString")};`;B.ruleName="isBooleanString";B.requiresType="string";B.constraints={};var Vb=B;function Mb(b){return J("isNumberString",(z)=>{if(z.length===0)return!1;let Q=Number(z);return!isNaN(Q)&&isFinite(Q)},(z,Q)=>{let j=($)=>{if($.length===0)return!1;let K=Number($);return!isNaN(K)&&isFinite(K)};return`if (!_refs[${Q.addRef(j)}](${z})) ${Q.fail("isNumberString")};`})}function Fb(b){let z=/^[-+]?(?:\d+(?:\.\d*)?|\.\d+)$/;return J("isDecimal",(Q)=>z.test(Q),(Q,j)=>{return`if (!_re[${j.addRegex(z)}].test(${Q})) ${j.fail("isDecimal")};`})}var d=/[^\u0020-\u007E\uFF61-\uFF9F]/,Gb=J("isFullWidth",(b)=>b.length>0&&d.test(b),(b,z)=>{let Q=z.addRegex(d);return`if (${b}.length === 0 || !_re[${Q}].test(${b})) ${z.fail("isFullWidth")};`}),S=/[\u0020-\u007E\uFF61-\uFF9F]/,hb=J("isHalfWidth",(b)=>b.length>0&&S.test(b),(b,z)=>{let Q=z.addRegex(S);return`if (${b}.length === 0 || !_re[${Q}].test(${b})) ${z.fail("isHalfWidth")};`}),Xb=J("isVariableWidth",(b)=>b.length>0&&d.test(b)&&S.test(b),(b,z)=>{let Q=z.addRegex(d),j=z.addRegex(S);return`if (${b}.length === 0 || !_re[${Q}].test(${b}) || !_re[${j}].test(${b})) ${z.fail("isVariableWidth")};`}),_=/[^\x00-\xFF]/,Bb=J("isMultibyte",(b)=>b.length>0&&_.test(b),(b,z)=>{let Q=z.addRegex(_);return`if (${b}.length === 0 || !_re[${Q}].test(${b})) ${z.fail("isMultibyte")};`}),i=/[\uD800-\uDBFF][\uDC00-\uDFFF]/,Ub=J("isSurrogatePair",(b)=>b.length>0&&i.test(b),(b,z)=>{let Q=z.addRegex(i);return`if (${b}.length === 0 || !_re[${Q}].test(${b})) ${z.fail("isSurrogatePair")};`}),N=/^[0-9a-fA-F]+$/,Db=J("isHexadecimal",(b)=>N.test(b),(b,z)=>{return`if (!_re[${z.addRegex(N)}].test(${b})) ${z.fail("isHexadecimal")};`}),u=/^(0[oO])?[0-7]+$/,Hb=J("isOctal",(b)=>b.length>0&&u.test(b),(b,z)=>{let Q=z.addRegex(u);return`if (${b}.length === 0 || !_re[${Q}].test(${b})) ${z.fail("isOctal")};`}),x=/^[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 yb(b){return J("isEmail",(z)=>x.test(z),(z,Q)=>{return`if (!_re[${Q.addRegex(x)}].test(${z})) ${Q.fail("isEmail")};`},"string",{format:"email"})}var Pb=["http","https","ftp"];function Cb(b){let Q=(b?.protocols??Pb).map(($)=>$.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("|"),j=new RegExp(`^(?:${Q}):\\/\\/(?:[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])?)*)(?::(6553[0-5]|655[0-2]\\d|65[0-4]\\d{2}|6[0-4]\\d{3}|[1-5]\\d{4}|[1-9]\\d{0,3}|0))?(?:\\/[^\\s]*)?$`),Z=($)=>{if(typeof $!=="string"||$.length===0)return!1;return j.test($)};return Z.emit=($,K)=>{return`if (!_re[${K.addRegex(j)}].test(${$})) ${K.fail("isURL")};`},Z.ruleName="isURL",Z.requiresType="string",Z.constraints={format:"uri"},Z}var f={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 Ob(b){let z=b!=null?f[b]??f.all:f.all;return J("isUUID",(Q)=>z.test(Q),(Q,j)=>{return`if (!_re[${j.addRegex(z)}].test(${Q})) ${j.fail("isUUID")};`},"string",{format:"uuid"})}var L=/^(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)$/,A=/^(?:[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 kb(b){let z=(Q)=>{if(typeof Q!=="string")return!1;if(b===4)return L.test(Q);if(b===6)return A.test(Q);return L.test(Q)||A.test(Q)};return z.emit=(Q,j)=>{if(b===4)return`if (!_re[${j.addRegex(L)}].test(${Q})) ${j.fail("isIP")};`;if(b===6)return`if (!_re[${j.addRegex(A)}].test(${Q})) ${j.fail("isIP")};`;let Z=j.addRegex(L),$=j.addRegex(A);return`if (!_re[${Z}].test(${Q}) && !_re[${$}].test(${Q})) ${j.fail("isIP")};`},z.ruleName="isIP",z.requiresType="string",z.constraints={version:b},z}var m=/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/,Ib=J("isHexColor",(b)=>m.test(b),(b,z)=>{return`if (!_re[${z.addRegex(m)}].test(${b})) ${z.fail("isHexColor")};`}),n=/^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*\)$/,r=/^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*\)$/,l=/^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 gb(b=!1){let z=(Q)=>{if(typeof Q!=="string")return!1;if(b)return l.test(Q);return n.test(Q)||r.test(Q)};return z.emit=(Q,j)=>{if(b)return`if (!_re[${j.addRegex(l)}].test(${Q})) ${j.fail("isRgbColor")};`;let Z=j.addRegex(n),$=j.addRegex(r);return`if (!_re[${Z}].test(${Q}) && !_re[${$}].test(${Q})) ${j.fail("isRgbColor")};`},z.ruleName="isRgbColor",z.requiresType="string",z.constraints={},z}var c=/^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*\)$/,Tb=J("isHSL",(b)=>c.test(b),(b,z)=>{return`if (!_re[${z.addRegex(c)}].test(${b})) ${z.fail("isHSL")};`}),t=/^[0-9a-fA-F]{2}(?::[0-9a-fA-F]{2}){5}$/,v=/^[0-9a-fA-F]{2}(?:-[0-9a-fA-F]{2}){5}$/,e=/^[0-9a-fA-F]{12}$/;function Lb(b){let z=(Q)=>{if(typeof Q!=="string")return!1;if(b?.no_separators)return e.test(Q);return t.test(Q)||v.test(Q)};return z.emit=(Q,j)=>{if(b?.no_separators)return`if (!_re[${j.addRegex(e)}].test(${Q})) ${j.fail("isMACAddress")};`;let Z=j.addRegex(t),$=j.addRegex(v);return`if (!_re[${Z}].test(${Q}) && !_re[${$}].test(${Q})) ${j.fail("isMACAddress")};`},z.ruleName="isMACAddress",z.requiresType="string",z.constraints={},z}function a(b){let z=b.replace(/[-\s]/g,"");if(!/^\d{9}[\dX]$/.test(z))return!1;let Q=0;for(let Z=0;Z<9;Z++)Q+=(10-Z)*(z.charCodeAt(Z)-48);let j=z[9]==="X"?10:z.charCodeAt(9)-48;return Q+=j,Q%11===0}function b6(b){let z=b.replace(/[-\s]/g,"");if(!/^\d{13}$/.test(z))return!1;let Q=0;for(let Z=0;Z<12;Z++)Q+=(z.charCodeAt(Z)-48)*(Z%2===0?1:3);return(10-Q%10)%10===z.charCodeAt(12)-48}function Ab(b){let z=(Q)=>{if(typeof Q!=="string")return!1;if(b===10)return a(Q);if(b===13)return b6(Q);return a(Q)||b6(Q)};return z.emit=(Q,j)=>{return`if (!_refs[${j.addRef(z)}](${Q})) ${j.fail("isISBN")};`},z.ruleName="isISBN",z.requiresType="string",z.constraints={},z}var db=/^[A-Z]{2}[A-Z0-9]{9}[0-9]$/;function z6(b){if(!db.test(b))return!1;let z=b.split("").map((Z)=>{let $=Z.charCodeAt(0);return $>=65?String($-55):Z}).join(""),Q=0,j=!1;for(let Z=z.length-1;Z>=0;Z--){let $=parseInt(z[Z],10);if(j){if($*=2,$>9)$-=9}Q+=$,j=!j}return Q%10===0}var Sb=J("isISIN",z6,(b,z)=>{return`if (!_refs[${z.addRef(z6)}](${b})) ${z.fail("isISIN")};`}),s=/^\d{4}(?:-\d{2}(?:-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:?\d{2})?)?)?)?$/;function pb(b){if(!s.test(b))return!1;let z=b.match(/^(\d{4})-(\d{2})-(\d{2})/);if(!z)return!0;let Q=Number(z[2]),j=Number(z[3]);if(Q<1||Q>12)return!1;let Z=new Date(Number(z[1]),Q,0).getDate();return j>=1&&j<=Z}function ob(b){if(b?.strict){let z=(Q)=>{if(typeof Q!=="string")return!1;return pb(Q)};return z.ruleName="isISO8601",z.emit=(Q,j)=>{return`if (!_refs[${j.addRef(z)}](${Q})) ${j.fail("isISO8601")};`},z.constraints={format:"date-time"},z}return J("isISO8601",(z)=>s.test(z),(z,Q)=>{return`if (!_re[${Q.addRegex(s)}].test(${z})) ${Q.fail("isISO8601")};`},"string",{format:"date-time"})}var Q6=/^[A-Z]{2}-[A-Z0-9]{3}-\d{2}-\d{5}$|^[A-Z]{2}[A-Z0-9]{3}\d{7}$/,Rb=J("isISRC",(b)=>Q6.test(b),(b,z)=>{return`if (!_re[${z.addRegex(Q6)}].test(${b})) ${z.fail("isISRC")};`});function fb(b,z){let Q=z?.requireHyphen!==!1,j=Q?b:b.replace(/-/g,"");if(!(Q?/^\d{4}-\d{3}[\dX]$/:/^\d{7}[\dX]$/).test(j))return!1;let $=j.replace(/-/g,""),K=0;for(let q=0;q<7;q++)K+=(8-q)*($.charCodeAt(q)-48);let W=$[7]==="X"?10:$.charCodeAt(7)-48;return K+=W,K%11===0}function sb(b){let z=(Q)=>{if(typeof Q!=="string")return!1;return fb(Q,b)};return z.emit=(Q,j)=>{return`if (!_refs[${j.addRef(z)}](${Q})) ${j.fail("isISSN")};`},z.ruleName="isISSN",z.requiresType="string",z.constraints={},z}var j6=/^[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+$/,Eb=J("isJWT",(b)=>j6.test(b),(b,z)=>{return`if (!_re[${z.addRegex(j6)}].test(${b})) ${z.fail("isJWT")};`}),Z6=/^[-+]?([1-8]?\d(?:\.\d+)?|90(?:\.0+)?),\s*[-+]?(180(?:\.0+)?|1[0-7]\d(?:\.\d+)?|\d{1,2}(?:\.\d+)?)$/;function _b(b){return J("isLatLong",(z)=>Z6.test(z),(z,Q)=>{return`if (!_re[${Q.addRegex(Z6)}].test(${z})) ${Q.fail("isLatLong")};`})}var $6=/^[a-zA-Z]{2,3}(?:-[a-zA-Z]{4})?(?:-(?:[a-zA-Z]{2}|\d{3}))?(?:-[a-zA-Z\d]{5,8})*$/,ib=J("isLocale",(b)=>$6.test(b),(b,z)=>{return`if (!_re[${z.addRegex($6)}].test(${b})) ${z.fail("isLocale")};`}),K6=/^data:([a-zA-Z0-9!#$&\-^_]+\/[a-zA-Z0-9!#$&\-^_]+)(?:;[a-zA-Z0-9\-]+=[a-zA-Z0-9\-]+)*(?:;base64)?,[\s\S]*$/,Nb=J("isDataURI",(b)=>K6.test(b),(b,z)=>{return`if (!_re[${z.addRegex(K6)}].test(${b})) ${z.fail("isDataURI")};`});function ub(b){let z=b?.require_tld!==!1,Q=(j)=>{if(typeof j!=="string")return!1;let Z=j;if(b?.allow_trailing_dot&&Z.endsWith("."))Z=Z.slice(0,-1);if(Z.length===0)return!1;let $=Z.split(".");if(z&&$.length<2)return!1;if(z){let K=$[$.length-1];if(!K||K.length<2||!/^[a-zA-Z]{2,}$/.test(K))return!1}return $.every((K)=>{if(K.length===0||K.length>63)return!1;if(b?.allow_underscores)return/^[a-zA-Z0-9_-]+$/.test(K);return/^[a-zA-Z0-9-]+$/.test(K)&&!K.startsWith("-")&&!K.endsWith("-")})};return Q.emit=(j,Z)=>{return`if (!_refs[${Z.addRef(Q)}](${j})) ${Z.fail("isFQDN")};`},Q.ruleName="isFQDN",Q.requiresType="string",Q.constraints={},Q}var J6=/^(?: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)$/,xb=J("isPort",(b)=>J6.test(b),(b,z)=>{return`if (!_re[${z.addRegex(J6)}].test(${b})) ${z.fail("isPort")};`});function q6(b){if(!/^\d{8}$/.test(b)&&!/^\d{13}$/.test(b))return!1;let z=b.split("").map(Number),Q=z.length,j=0;for(let $=0;$<Q-1;$++)j+=z[$]*(Q===8?$%2===0?3:1:$%2===0?1:3);return(10-j%10)%10===z[Q-1]}var mb=J("isEAN",q6,(b,z)=>{return`if (!_refs[${z.addRef(q6)}](${b})) ${z.fail("isEAN")};`}),g6=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"]),U=(b)=>{if(typeof b!=="string")return!1;return g6.has(b.toUpperCase())};U.emit=(b,z)=>{return`if (!_refs[${z.addRef(g6)}].has(${b}.toUpperCase())) ${z.fail("isISO31661Alpha2")};`};U.ruleName="isISO31661Alpha2";U.requiresType="string";U.constraints={};var nb=U,T6=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"]),D=(b)=>{if(typeof b!=="string")return!1;return T6.has(b.toUpperCase())};D.emit=(b,z)=>{return`if (!_refs[${z.addRef(T6)}].has(${b}.toUpperCase())) ${z.fail("isISO31661Alpha3")};`};D.ruleName="isISO31661Alpha3";D.requiresType="string";D.constraints={};var rb=D,W6=/^[A-Z]{6}[A-Z0-9]{2}(?:[A-Z0-9]{3})?$/,lb=J("isBIC",(b)=>W6.test(b.toUpperCase()),(b,z)=>{return`if (!_re[${z.addRegex(W6)}].test(${b}.toUpperCase())) ${z.fail("isBIC")};`}),w6=/^[a-zA-Z0-9_-]{20}$/,cb=J("isFirebasePushId",(b)=>w6.test(b),(b,z)=>{return`if (!_re[${z.addRegex(w6)}].test(${b})) ${z.fail("isFirebasePushId")};`}),Y6=/^(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-]+)*))?$/,tb=J("isSemVer",(b)=>Y6.test(b),(b,z)=>{return`if (!_re[${z.addRegex(Y6)}].test(${b})) ${z.fail("isSemVer")};`}),V6=/^[0-9a-fA-F]{24}$/,vb=J("isMongoId",(b)=>V6.test(b),(b,z)=>{return`if (!_re[${z.addRegex(V6)}].test(${b})) ${z.fail("isMongoId")};`}),H=(b)=>{if(typeof b!=="string")return!1;try{return JSON.parse(b),!0}catch{return!1}};H.emit=(b,z)=>{return`if (!_refs[${z.addRef((j)=>{try{return JSON.parse(j),!0}catch{return!1}})}](${b})) ${z.fail("isJSON")};`};H.ruleName="isJSON";H.requiresType="string";H.constraints={};var eb=H,ab=/^[A-Z2-7]+=*$/i;function bz(b){let z=ab;return J("isBase32",(Q)=>{if(Q.length===0)return!1;if(Q.length%8!==0)return!1;return z.test(Q)},(Q,j)=>{let Z=j.addRegex(z);return`if (${Q}.length === 0 || ${Q}.length % 8 !== 0 || !_re[${Z}].test(${Q})) ${j.fail("isBase32")};`})}var M6=/^[1-9A-HJ-NP-Za-km-z]+$/,zz=J("isBase58",(b)=>M6.test(b),(b,z)=>{return`if (!_re[${z.addRegex(M6)}].test(${b})) ${z.fail("isBase58")};`}),Qz=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$/,jz=/^[A-Za-z0-9_-]+={0,2}$/;function Zz(b){let z=b?.urlSafe?jz:Qz;return J("isBase64",(Q)=>{if(Q.length===0)return!1;return z.test(Q)},(Q,j)=>{let Z=j.addRegex(z);return`if (${Q}.length === 0 || !_re[${Z}].test(${Q})) ${j.fail("isBase64")};`})}var F6=/^\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])$/;function $z(b){return J("isDateString",(z)=>F6.test(z),(z,Q)=>{return`if (!_re[${Q.addRegex(F6)}].test(${z})) ${Q.fail("isDateString")};`})}var G6=/^(application|audio|font|image|message|model|multipart|text|video)\/[a-zA-Z0-9][a-zA-Z0-9!#$&\-^_.+]*(?:;.+)?$/,Kz=J("isMimeType",(b)=>G6.test(b),(b,z)=>{return`if (!_re[${z.addRegex(G6)}].test(${b})) ${z.fail("isMimeType")};`}),h6=/^[-+]?(?:[,.\d]+)(?:[.,]\d{2})?$|^\$?-?(?:\d+|\d{1,3}(?:,\d{3})*)(?:\.\d{1,2})?$/;function Jz(b){return J("isCurrency",(z)=>{if(z.length===0)return!1;return h6.test(z)},(z,Q)=>{let j=Q.addRegex(h6);return`if (${z}.length === 0 || !_re[${j}].test(${z})) ${Q.fail("isCurrency")};`})}var X6=/^magnet:\?xt=urn:[a-z0-9]+:[a-z0-9]{32,40}/i,qz=J("isMagnetURI",(b)=>X6.test(b),(b,z)=>{return`if (!_re[${z.addRegex(X6)}].test(${b})) ${z.fail("isMagnetURI")};`});function Wz(b){let z=b.replace(/[\s-]/g,"");if(z.length===0||!/^\d+$/.test(z))return!1;let Q=0,j=!1;for(let Z=z.length-1;Z>=0;Z--){let $=z.charCodeAt(Z)-48;if(j){if($*=2,$>9)$-=9}Q+=$,j=!j}return Q%10===0}var y=(b)=>{if(typeof b!=="string")return!1;return Wz(b)};y.emit=(b,z)=>`{
6
6
  var _cs=${b}.replace(/[\\s-]/g,'');
7
7
  if(_cs.length===0||!/^\\d+$/.test(_cs)){${z.fail("isCreditCard")}}
8
8
  else{var _sum=0,_alt=false;
9
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
10
  if(_sum%10!==0)${z.fail("isCreditCard")};}
11
- }`;y.ruleName="isCreditCard";y.requiresType="string";y.constraints={};var wz=y,Yz={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 Vz(b,z){let Q=z?.allowSpaces?b.replace(/\s/g,""):b;if(Q=Q.toUpperCase(),!/^[A-Z]{2}\d{2}[A-Z0-9]+$/.test(Q))return!1;let j=Q.slice(0,2),Z=Yz[j];if(Z!==void 0&&Q.length!==Z)return!1;let K=(Q.slice(4)+Q.slice(0,4)).replace(/[A-Z]/g,(q)=>String(q.charCodeAt(0)-55)),W=0;for(let q=0;q<K.length;q+=7){let w=String(W)+K.slice(q,q+7);W=parseInt(w,10)%97}return W===1}function Mz(b){let z=(Q)=>{if(typeof Q!=="string")return!1;return Vz(Q,b)};return z.emit=(Q,j)=>{return`if (!_refs[${j.addRef(z)}](${Q})) ${j.fail("isIBAN")};`},z.ruleName="isIBAN",z.requiresType="string",z.constraints={},z}function Fz(b,z){let Q=(j)=>{if(typeof j!=="string")return!1;let Z=Buffer.byteLength(j,"utf8");if(Z<b)return!1;if(z!==void 0&&Z>z)return!1;return!0};return Q.emit=(j,Z)=>{let $=(W)=>{let q=Buffer.byteLength(W,"utf8");if(q<b)return!1;if(z!==void 0&&q>z)return!1;return!0};return`if (!_refs[${Z.addRef($)}](${j})) ${Z.fail("isByteLength")};`},Q.ruleName="isByteLength",Q.requiresType="string",Q.constraints={},Q}var Gz={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 hz(b){let z=Gz[b],Q=(j)=>{if(typeof j!=="string")return!1;if(!z)return!1;return z.test(j)};return Q.emit=(j,Z)=>{if(!z)return Z.fail("isHash")+";";return`if (!_re[${Z.addRegex(z)}].test(${j})) ${Z.fail("isHash")};`},Q.ruleName="isHash",Q.requiresType="string",Q.constraints={},Q}var B6=/^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-]\d{2}:\d{2})$/i,Xz=J("isRFC3339",(b)=>B6.test(b),(b,z)=>{return`if (!_re[${z.addRegex(B6)}].test(${b})) ${z.fail("isRFC3339")};`}),U6=/^([01]\d|2[0-3]):[0-5]\d$/,Bz=J("isMilitaryTime",(b)=>U6.test(b),(b,z)=>{return`if (!_re[${z.addRegex(U6)}].test(${b})) ${z.fail("isMilitaryTime")};`});function L6(b){if(typeof b==="number")return b>=-90&&b<=90;if(typeof b==="string"){let z=parseFloat(b);if(isNaN(z))return!1;if(String(z)!==b&&b!==String(z)){if(!/^-?\d+(\.\d+)?$/.test(b))return!1}return z>=-90&&z<=90}return!1}var p=(b)=>L6(b);p.emit=(b,z)=>{return`if (!_refs[${z.addRef(L6)}](${b})) ${z.fail("isLatitude")};`};p.ruleName="isLatitude";p.constraints={};var Uz=p;function A6(b){if(typeof b==="number")return b>=-180&&b<=180;if(typeof b==="string"){let z=parseFloat(b);if(isNaN(z))return!1;if(!/^-?\d+(\.\d+)?$/.test(b))return!1;return z>=-180&&z<=180}return!1}var o=(b)=>A6(b);o.emit=(b,z)=>{return`if (!_refs[${z.addRef(A6)}](${b})) ${z.fail("isLongitude")};`};o.ruleName="isLongitude";o.constraints={};var Dz=o,D6=/^0x[0-9a-fA-F]{40}$/,Hz=J("isEthereumAddress",(b)=>D6.test(b),(b,z)=>{return`if (!_re[${z.addRegex(D6)}].test(${b})) ${z.fail("isEthereumAddress")};`}),H6=/^1[a-km-zA-HJ-NP-Z1-9]{25,34}$/,y6=/^3[a-km-zA-HJ-NP-Z1-9]{25,34}$/,P6=/^(bc1)[a-z0-9]{6,87}$/,yz=J("isBtcAddress",(b)=>H6.test(b)||y6.test(b)||P6.test(b),(b,z)=>{let Q=z.addRegex(H6),j=z.addRegex(y6),Z=z.addRegex(P6);return`if (!_re[${Q}].test(${b}) && !_re[${j}].test(${b}) && !_re[${Z}].test(${b})) ${z.fail("isBtcAddress")};`}),C6=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"]),Pz=J("isISO4217CurrencyCode",(b)=>C6.has(b),(b,z)=>{return`if (!_refs[${z.addRef(C6)}].has(${b})) ${z.fail("isISO4217CurrencyCode")};`}),O6=/^\+[1-9]\d{6,14}$/,Cz=J("isPhoneNumber",(b)=>O6.test(b),(b,z)=>{return`if (!_re[${z.addRegex(O6)}].test(${b})) ${z.fail("isPhoneNumber")};`});function Oz(b){let z=b?.minLength??8,Q=b?.minLowercase??1,j=b?.minUppercase??1,Z=b?.minNumbers??1,$=b?.minSymbols??1,K=(q)=>{if(q.length<z)return!1;if(Q>0){if((q.match(/[a-z]/g)||[]).length<Q)return!1}if(j>0){if((q.match(/[A-Z]/g)||[]).length<j)return!1}if(Z>0){if((q.match(/[0-9]/g)||[]).length<Z)return!1}if($>0){if((q.match(/[^a-zA-Z0-9]/g)||[]).length<$)return!1}return!0},W=(q)=>{if(typeof q!=="string")return!1;return K(q)};return W.emit=(q,w)=>{return`if (!_refs[${w.addRef(K)}](${q})) ${w.fail("isStrongPassword")};`},W.ruleName="isStrongPassword",W.requiresType="string",W.constraints={},W}var kz={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 Iz(b){let z=kz[b],Q=(j)=>{if(typeof j!=="string")return!1;if(!z)return!1;return z.test(j)};return Q.emit=(j,Z)=>{if(!z)return Z.fail("isTaxId")+";";return`if (!_re[${Z.addRegex(z)}].test(${j})) ${Z.fail("isTaxId")};`},Q.ruleName="isTaxId",Q.requiresType="string",Q.constraints={},Q}function gz(b){let z=(Q)=>{if(!Array.isArray(Q))return!1;let j=new Set(Q);return b.every((Z)=>j.has(Z))};return z.emit=(Q,j)=>{return`if (!_refs[${j.addRef(b)}].every(function(v){return ${Q}.indexOf(v)!==-1;})) ${j.fail("arrayContains")};`},z.ruleName="arrayContains",z.constraints={values:b},z}function Tz(b){let z=(Q)=>{if(!Array.isArray(Q))return!1;return b.every((j)=>!Q.includes(j))};return z.emit=(Q,j)=>{return`if (_refs[${j.addRef(b)}].some(function(v){return ${Q}.indexOf(v)!==-1;})) ${j.fail("arrayNotContains")};`},z.ruleName="arrayNotContains",z.constraints={values:b},z}function Lz(b){let z=(Q)=>Array.isArray(Q)&&Q.length>=b;return z.emit=(Q,j)=>`if (${Q}.length < ${b}) ${j.fail("arrayMinSize")};`,z.ruleName="arrayMinSize",z.constraints={min:b},z}function Az(b){let z=(Q)=>Array.isArray(Q)&&Q.length<=b;return z.emit=(Q,j)=>`if (${Q}.length > ${b}) ${j.fail("arrayMaxSize")};`,z.ruleName="arrayMaxSize",z.constraints={max:b},z}function dz(b){let z=(Q)=>{if(!Array.isArray(Q))return!1;if(b){let j=Q.map(b);return new Set(j).size===j.length}return new Set(Q).size===Q.length};return z.emit=(Q,j)=>{if(b){let Z=j.addRef(b);return`{var _keys=${Q}.map(_refs[${Z}]);if(new Set(_keys).size!==_keys.length)${j.fail("arrayUnique")};}`}return`if(new Set(${Q}).size!==${Q}.length)${j.fail("arrayUnique")};`},z.ruleName="arrayUnique",z.constraints={},z}var s=(b)=>Array.isArray(b)&&b.length>0;s.emit=(b,z)=>`if (${b}.length === 0) ${z.fail("arrayNotEmpty")};`;s.ruleName="arrayNotEmpty";s.constraints={};var Sz=s;function pz(b){let z=(Q)=>{if(Q===null||typeof Q!=="object"||Array.isArray(Q))return!1;let j=Object.keys(Q);if(b?.nullable)return j.some((Z)=>Q[Z]!=null);return j.length>0};return z.emit=(Q,j)=>{if(b?.nullable)return`if (!_refs[${j.addRef(z)}](${Q})) ${j.fail("isNotEmptyObject")};`;return`if (Object.keys(${Q}).length === 0) ${j.fail("isNotEmptyObject")};`},z.ruleName="isNotEmptyObject",z.constraints={nullable:b?.nullable},z}function oz(b){let z=(Q)=>Q instanceof b;return z.emit=(Q,j)=>{let Z=j.addRef(b);return`if (!(${Q} instanceof _refs[${Z}])) ${j.fail("isInstance")};`},z.ruleName="isInstance",z.constraints={type:b.name},z}var sz={"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 Rz(b){let z=sz[b],Q=(j)=>{if(typeof j!=="string")return!1;if(!z)return!1;return z.test(j)};return Q.emit=(j,Z)=>{if(!z)return Z.fail("isMobilePhone")+";";return`if (!_re[${Z.addRegex(z)}].test(${j})) ${Z.fail("isMobilePhone")};`},Q.ruleName="isMobilePhone",Q.requiresType="string",Q.constraints={locale:b},Q}var fz={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 Ez(b){let z=fz[b],Q=(j)=>{if(typeof j!=="string")return!1;if(!z)return!1;return z.test(j)};return Q.emit=(j,Z)=>{if(!z)return Z.fail("isPostalCode")+";";return`if (!_re[${Z.addRegex(z)}].test(${j})) ${Z.fail("isPostalCode")};`},Q.ruleName="isPostalCode",Q.requiresType="string",Q.constraints={locale:b},Q}var _z={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 iz(b){let z=_z[b],Q=(j)=>{if(typeof j!=="string")return!1;if(!z)return!1;return z.test(j)};return Q.emit=(j,Z)=>{if(!z)return Z.fail("isIdentityCard")+";";return`if (!_re[${Z.addRegex(z)}].test(${j})) ${Z.fail("isIdentityCard")};`},Q.ruleName="isIdentityCard",Q.requiresType="string",Q.constraints={locale:b},Q}var Nz={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 uz(b){let z=Nz[b],Q=(j)=>{if(typeof j!=="string")return!1;if(!z)return!1;return z.test(j)};return Q.emit=(j,Z)=>{if(!z)return Z.fail("isPassportNumber")+";";return`if (!_re[${Z.addRegex(z)}].test(${j})) ${Z.fail("isPassportNumber")};`},Q.ruleName="isPassportNumber",Q.requiresType="string",Q.constraints={locale:b},Q}export{c6 as notEquals,jb as notContains,a6 as minLength,m6 as minDate,_6 as min,bb as maxLength,n6 as maxDate,i6 as max,Zb as matches,zb as length,Xb as isVariableWidth,Kb as isUppercase,Ob as isUUID,Cb as isURL,Iz as isTaxId,Ub as isSurrogatePair,Oz as isStrongPassword,d6 as isString,tb as isSemVer,gb as isRgbColor,Xz as isRFC3339,Ez as isPostalCode,N6 as isPositive,xb as isPort,Cz as isPhoneNumber,uz as isPassportNumber,Hb as isOctal,E6 as isObject,Mb as isNumberString,S6 as isNumber,e6 as isNotIn,pz as isNotEmptyObject,t6 as isNotEmpty,u6 as isNegative,Bb as isMultibyte,vb as isMongoId,Rz as isMobilePhone,Kz as isMimeType,Bz as isMilitaryTime,qz as isMagnetURI,Lb as isMACAddress,$b as isLowercase,Dz as isLongitude,ib as isLocale,Uz as isLatitude,_b as isLatLong,Eb as isJWT,eb as isJSON,R6 as isInt,oz as isInstance,v6 as isIn,iz as isIdentityCard,fb as isISSN,sb as isISRC,ob as isISO8601,Pz as isISO4217CurrencyCode,rb as isISO31661Alpha3,nb as isISO31661Alpha2,Sb as isISIN,Ab as isISBN,kb as isIP,Mz as isIBAN,Db as isHexadecimal,Ib as isHexColor,hz as isHash,hb as isHalfWidth,Tb as isHSL,Gb as isFullWidth,lb as isFirebasePushId,ub as isFQDN,Hz as isEthereumAddress,s6 as isEnum,l6 as isEmpty,yb as isEmail,mb as isEAN,x6 as isDivisibleBy,Fb as isDecimal,$z as isDateString,o6 as isDate,Nb as isDataURI,Jz as isCurrency,wz as isCreditCard,Fz as isByteLength,yz as isBtcAddress,Vb as isBooleanString,p6 as isBoolean,Zz as isBase64,zz as isBase58,bz as isBase32,cb as isBIC,Jb as isAscii,f6 as isArray,Yb as isAlphanumeric,Wb as isAlpha,r6 as equals,Qb as contains,dz as arrayUnique,xz as arrayOf,Sz as arrayNotEmpty,Tz as arrayNotContains,Lz as arrayMinSize,Az as arrayMaxSize,gz as arrayContains};
11
+ }`;y.ruleName="isCreditCard";y.requiresType="string";y.constraints={};var wz=y,Yz={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 Vz(b,z){let Q=z?.allowSpaces?b.replace(/\s/g,""):b;if(Q=Q.toUpperCase(),!/^[A-Z]{2}\d{2}[A-Z0-9]+$/.test(Q))return!1;let j=Q.slice(0,2),Z=Yz[j];if(Z!==void 0&&Q.length!==Z)return!1;let K=(Q.slice(4)+Q.slice(0,4)).replace(/[A-Z]/g,(q)=>String(q.charCodeAt(0)-55)),W=0;for(let q=0;q<K.length;q+=7){let w=String(W)+K.slice(q,q+7);W=parseInt(w,10)%97}return W===1}function Mz(b){let z=(Q)=>{if(typeof Q!=="string")return!1;return Vz(Q,b)};return z.emit=(Q,j)=>{return`if (!_refs[${j.addRef(z)}](${Q})) ${j.fail("isIBAN")};`},z.ruleName="isIBAN",z.requiresType="string",z.constraints={},z}function Fz(b,z){let Q=(j)=>{if(typeof j!=="string")return!1;let Z=Buffer.byteLength(j,"utf8");if(Z<b)return!1;if(z!==void 0&&Z>z)return!1;return!0};return Q.emit=(j,Z)=>{let $=(W)=>{let q=Buffer.byteLength(W,"utf8");if(q<b)return!1;if(z!==void 0&&q>z)return!1;return!0};return`if (!_refs[${Z.addRef($)}](${j})) ${Z.fail("isByteLength")};`},Q.ruleName="isByteLength",Q.requiresType="string",Q.constraints={},Q}var Gz={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 hz(b){let z=Gz[b],Q=(j)=>{if(typeof j!=="string")return!1;if(!z)return!1;return z.test(j)};return Q.emit=(j,Z)=>{if(!z)return Z.fail("isHash")+";";return`if (!_re[${Z.addRegex(z)}].test(${j})) ${Z.fail("isHash")};`},Q.ruleName="isHash",Q.requiresType="string",Q.constraints={},Q}var B6=/^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-]\d{2}:\d{2})$/i,Xz=J("isRFC3339",(b)=>B6.test(b),(b,z)=>{return`if (!_re[${z.addRegex(B6)}].test(${b})) ${z.fail("isRFC3339")};`}),U6=/^([01]\d|2[0-3]):[0-5]\d$/,Bz=J("isMilitaryTime",(b)=>U6.test(b),(b,z)=>{return`if (!_re[${z.addRegex(U6)}].test(${b})) ${z.fail("isMilitaryTime")};`});function L6(b){if(typeof b==="number")return b>=-90&&b<=90;if(typeof b==="string"){let z=parseFloat(b);if(isNaN(z))return!1;if(String(z)!==b&&b!==String(z)){if(!/^-?\d+(\.\d+)?$/.test(b))return!1}return z>=-90&&z<=90}return!1}var p=(b)=>L6(b);p.emit=(b,z)=>{return`if (!_refs[${z.addRef(L6)}](${b})) ${z.fail("isLatitude")};`};p.ruleName="isLatitude";p.constraints={};var Uz=p;function A6(b){if(typeof b==="number")return b>=-180&&b<=180;if(typeof b==="string"){let z=parseFloat(b);if(isNaN(z))return!1;if(!/^-?\d+(\.\d+)?$/.test(b))return!1;return z>=-180&&z<=180}return!1}var o=(b)=>A6(b);o.emit=(b,z)=>{return`if (!_refs[${z.addRef(A6)}](${b})) ${z.fail("isLongitude")};`};o.ruleName="isLongitude";o.constraints={};var Dz=o,D6=/^0x[0-9a-fA-F]{40}$/,Hz=J("isEthereumAddress",(b)=>D6.test(b),(b,z)=>{return`if (!_re[${z.addRegex(D6)}].test(${b})) ${z.fail("isEthereumAddress")};`}),H6=/^1[a-km-zA-HJ-NP-Z1-9]{25,34}$/,y6=/^3[a-km-zA-HJ-NP-Z1-9]{25,34}$/,P6=/^(bc1)[a-z0-9]{6,87}$/,yz=J("isBtcAddress",(b)=>H6.test(b)||y6.test(b)||P6.test(b),(b,z)=>{let Q=z.addRegex(H6),j=z.addRegex(y6),Z=z.addRegex(P6);return`if (!_re[${Q}].test(${b}) && !_re[${j}].test(${b}) && !_re[${Z}].test(${b})) ${z.fail("isBtcAddress")};`}),C6=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"]),Pz=J("isISO4217CurrencyCode",(b)=>C6.has(b),(b,z)=>{return`if (!_refs[${z.addRef(C6)}].has(${b})) ${z.fail("isISO4217CurrencyCode")};`}),O6=/^\+[1-9]\d{6,14}$/,Cz=J("isPhoneNumber",(b)=>O6.test(b),(b,z)=>{return`if (!_re[${z.addRegex(O6)}].test(${b})) ${z.fail("isPhoneNumber")};`});function Oz(b){let z=b?.minLength??8,Q=b?.minLowercase??1,j=b?.minUppercase??1,Z=b?.minNumbers??1,$=b?.minSymbols??1,K=(q)=>{if(q.length<z)return!1;if(Q>0){if((q.match(/[a-z]/g)||[]).length<Q)return!1}if(j>0){if((q.match(/[A-Z]/g)||[]).length<j)return!1}if(Z>0){if((q.match(/[0-9]/g)||[]).length<Z)return!1}if($>0){if((q.match(/[^a-zA-Z0-9]/g)||[]).length<$)return!1}return!0},W=(q)=>{if(typeof q!=="string")return!1;return K(q)};return W.emit=(q,w)=>{return`if (!_refs[${w.addRef(K)}](${q})) ${w.fail("isStrongPassword")};`},W.ruleName="isStrongPassword",W.requiresType="string",W.constraints={},W}var kz={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 Iz(b){let z=kz[b],Q=(j)=>{if(typeof j!=="string")return!1;if(!z)return!1;return z.test(j)};return Q.emit=(j,Z)=>{if(!z)return Z.fail("isTaxId")+";";return`if (!_re[${Z.addRegex(z)}].test(${j})) ${Z.fail("isTaxId")};`},Q.ruleName="isTaxId",Q.requiresType="string",Q.constraints={},Q}function gz(b){let z=(Q)=>{if(!Array.isArray(Q))return!1;let j=new Set(Q);return b.every((Z)=>j.has(Z))};return z.emit=(Q,j)=>{return`if (!_refs[${j.addRef(b)}].every(function(v){return ${Q}.indexOf(v)!==-1;})) ${j.fail("arrayContains")};`},z.ruleName="arrayContains",z.constraints={values:b},z}function Tz(b){let z=(Q)=>{if(!Array.isArray(Q))return!1;return b.every((j)=>!Q.includes(j))};return z.emit=(Q,j)=>{return`if (_refs[${j.addRef(b)}].some(function(v){return ${Q}.indexOf(v)!==-1;})) ${j.fail("arrayNotContains")};`},z.ruleName="arrayNotContains",z.constraints={values:b},z}function Lz(b){let z=(Q)=>Array.isArray(Q)&&Q.length>=b;return z.emit=(Q,j)=>`if (${Q}.length < ${b}) ${j.fail("arrayMinSize")};`,z.ruleName="arrayMinSize",z.constraints={min:b},z}function Az(b){let z=(Q)=>Array.isArray(Q)&&Q.length<=b;return z.emit=(Q,j)=>`if (${Q}.length > ${b}) ${j.fail("arrayMaxSize")};`,z.ruleName="arrayMaxSize",z.constraints={max:b},z}function dz(b){let z=(Q)=>{if(!Array.isArray(Q))return!1;if(b){let j=Q.map(b);return new Set(j).size===j.length}return new Set(Q).size===Q.length};return z.emit=(Q,j)=>{if(b){let Z=j.addRef(b);return`{var _keys=${Q}.map(_refs[${Z}]);if(new Set(_keys).size!==_keys.length)${j.fail("arrayUnique")};}`}return`if(new Set(${Q}).size!==${Q}.length)${j.fail("arrayUnique")};`},z.ruleName="arrayUnique",z.constraints={},z}var R=(b)=>Array.isArray(b)&&b.length>0;R.emit=(b,z)=>`if (${b}.length === 0) ${z.fail("arrayNotEmpty")};`;R.ruleName="arrayNotEmpty";R.constraints={};var Sz=R;function pz(b){let z=(Q)=>{if(Q===null||typeof Q!=="object"||Array.isArray(Q))return!1;let j=Object.keys(Q);if(b?.nullable)return j.some((Z)=>Q[Z]!=null);return j.length>0};return z.emit=(Q,j)=>{if(b?.nullable)return`if (!_refs[${j.addRef(z)}](${Q})) ${j.fail("isNotEmptyObject")};`;return`if (Object.keys(${Q}).length === 0) ${j.fail("isNotEmptyObject")};`},z.ruleName="isNotEmptyObject",z.constraints={nullable:b?.nullable},z}function oz(b){let z=(Q)=>Q instanceof b;return z.emit=(Q,j)=>{let Z=j.addRef(b);return`if (!(${Q} instanceof _refs[${Z}])) ${j.fail("isInstance")};`},z.ruleName="isInstance",z.constraints={type:b.name},z}var Rz={"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 fz(b){let z=Rz[b],Q=(j)=>{if(typeof j!=="string")return!1;if(!z)return!1;return z.test(j)};return Q.emit=(j,Z)=>{if(!z)return Z.fail("isMobilePhone")+";";return`if (!_re[${Z.addRegex(z)}].test(${j})) ${Z.fail("isMobilePhone")};`},Q.ruleName="isMobilePhone",Q.requiresType="string",Q.constraints={locale:b},Q}var sz={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 Ez(b){let z=sz[b],Q=(j)=>{if(typeof j!=="string")return!1;if(!z)return!1;return z.test(j)};return Q.emit=(j,Z)=>{if(!z)return Z.fail("isPostalCode")+";";return`if (!_re[${Z.addRegex(z)}].test(${j})) ${Z.fail("isPostalCode")};`},Q.ruleName="isPostalCode",Q.requiresType="string",Q.constraints={locale:b},Q}var _z={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 iz(b){let z=_z[b],Q=(j)=>{if(typeof j!=="string")return!1;if(!z)return!1;return z.test(j)};return Q.emit=(j,Z)=>{if(!z)return Z.fail("isIdentityCard")+";";return`if (!_re[${Z.addRegex(z)}].test(${j})) ${Z.fail("isIdentityCard")};`},Q.ruleName="isIdentityCard",Q.requiresType="string",Q.constraints={locale:b},Q}var Nz={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 uz(b){let z=Nz[b],Q=(j)=>{if(typeof j!=="string")return!1;if(!z)return!1;return z.test(j)};return Q.emit=(j,Z)=>{if(!z)return Z.fail("isPassportNumber")+";";return`if (!_re[${Z.addRegex(z)}].test(${j})) ${Z.fail("isPassportNumber")};`},Q.ruleName="isPassportNumber",Q.requiresType="string",Q.constraints={locale:b},Q}export{l6 as notEquals,jb as notContains,a6 as minLength,m6 as minDate,_6 as min,bb as maxLength,n6 as maxDate,i6 as max,Zb as matches,zb as length,Xb as isVariableWidth,Kb as isUppercase,Ob as isUUID,Cb as isURL,Iz as isTaxId,Ub as isSurrogatePair,Oz as isStrongPassword,d6 as isString,tb as isSemVer,gb as isRgbColor,Xz as isRFC3339,Ez as isPostalCode,N6 as isPositive,xb as isPort,Cz as isPhoneNumber,uz as isPassportNumber,Hb as isOctal,E6 as isObject,Mb as isNumberString,S6 as isNumber,e6 as isNotIn,pz as isNotEmptyObject,t6 as isNotEmpty,u6 as isNegative,Bb as isMultibyte,vb as isMongoId,fz as isMobilePhone,Kz as isMimeType,Bz as isMilitaryTime,qz as isMagnetURI,Lb as isMACAddress,$b as isLowercase,Dz as isLongitude,ib as isLocale,Uz as isLatitude,_b as isLatLong,Eb as isJWT,eb as isJSON,f6 as isInt,oz as isInstance,v6 as isIn,iz as isIdentityCard,sb as isISSN,Rb as isISRC,ob as isISO8601,Pz as isISO4217CurrencyCode,rb as isISO31661Alpha3,nb as isISO31661Alpha2,Sb as isISIN,Ab as isISBN,kb as isIP,Mz as isIBAN,Db as isHexadecimal,Ib as isHexColor,hz as isHash,hb as isHalfWidth,Tb as isHSL,Gb as isFullWidth,cb as isFirebasePushId,ub as isFQDN,Hz as isEthereumAddress,R6 as isEnum,c6 as isEmpty,yb as isEmail,mb as isEAN,x6 as isDivisibleBy,Fb as isDecimal,$z as isDateString,o6 as isDate,Nb as isDataURI,Jz as isCurrency,wz as isCreditCard,Fz as isByteLength,yz as isBtcAddress,Vb as isBooleanString,p6 as isBoolean,Zz as isBase64,zz as isBase58,bz as isBase32,lb as isBIC,Jb as isAscii,s6 as isArray,Yb as isAlphanumeric,Wb as isAlpha,r6 as equals,Qb as contains,dz as arrayUnique,xz as arrayOf,Sz as arrayNotEmpty,Tz as arrayNotContains,Lz as arrayMinSize,Az as arrayMaxSize,gz as arrayContains};
12
12
 
13
- //# debugId=CD2241A1B47E6FB464756E2164756E21
13
+ //# debugId=5E6680DFECB2E48764756E2164756E21
14
14
  //# sourceMappingURL=index.js.map
@@ -1,6 +1,6 @@
1
1
  import type { EmittableRule } from '../types';
2
2
  export interface IsNotEmptyObjectOptions {
3
- /** null/undefined 값을 가진 키를 무시할지 여부 (기본: false 무시하지 않음) */
3
+ /** Whether to ignore keys with null/undefined values (default: false do not ignore) */
4
4
  nullable?: boolean;
5
5
  }
6
6
  export declare function isNotEmptyObject(options?: IsNotEmptyObjectOptions): EmittableRule;
@@ -1,9 +1,9 @@
1
1
  /**
2
- * 순환 참조 정적 분석 (§4.6)
2
+ * Static analysis for circular references (§4.6)
3
3
  *
4
- * @Type 참조 그래프를 DFS 탐색해 순환 감지.
4
+ * Traverses the @Type reference graph via DFS to detect cycles.
5
5
  *
6
- * 순환 없는 flat DTO → false (WeakSet 오버헤드 0)
7
- * 순환 있는 DTO → true (WeakSet 자동 삽입)
6
+ * Flat DTO without cycles → false (zero WeakSet overhead)
7
+ * DTO with cycles → true (WeakSet automatically inserted)
8
8
  */
9
9
  export declare function analyzeCircular(Class: Function): boolean;