@zipbul/baker 0.0.1 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.ko.md +64 -12
- package/README.md +64 -12
- package/dist/index-jzjz61tg.js +14 -0
- package/dist/index-jzjz61tg.js.map +31 -0
- package/dist/index-txxjqhgc.js +6 -0
- package/dist/{index-w36xamck.js.map → index-txxjqhgc.js.map} +3 -3
- package/dist/index.d.ts +3 -0
- package/dist/index.js +2 -142
- package/dist/index.js.map +3 -12
- package/dist/src/collect.d.ts +2 -0
- package/dist/src/create-rule.d.ts +4 -0
- package/dist/src/decorators/common.d.ts +6 -0
- package/dist/src/decorators/index.d.ts +4 -1
- package/dist/src/decorators/index.js +2 -2
- package/dist/src/decorators/index.js.map +1 -1
- package/dist/src/decorators/nested.d.ts +17 -0
- package/dist/src/decorators/number.d.ts +8 -4
- package/dist/src/decorators/schema.d.ts +13 -0
- package/dist/src/errors.d.ts +2 -0
- package/dist/src/functions/index.d.ts +2 -0
- package/dist/src/functions/to-json-schema.d.ts +14 -0
- package/dist/src/interfaces.d.ts +7 -1
- package/dist/src/rules/index.js +2 -2
- package/dist/src/rules/index.js.map +1 -1
- package/dist/src/rules/number.d.ts +6 -2
- package/dist/src/seal/deserialize-builder.d.ts +3 -3
- package/dist/src/symbols.d.ts +2 -0
- package/dist/src/symbols.js +2 -2
- package/dist/src/symbols.js.map +1 -1
- package/dist/src/types.d.ts +65 -4
- package/package.json +4 -8
- package/dist/index-6pbm9cq6.js +0 -15
- package/dist/index-6pbm9cq6.js.map +0 -17
- package/dist/index-fww37qs9.js +0 -5
- package/dist/index-fww37qs9.js.map +0 -20
- package/dist/index-w36xamck.js +0 -6
- package/dist/src/aot/array.d.ts +0 -7
- package/dist/src/aot/common.d.ts +0 -15
- package/dist/src/aot/date.d.ts +0 -3
- package/dist/src/aot/index.d.ts +0 -9
- package/dist/src/aot/index.js +0 -5
- package/dist/src/aot/index.js.map +0 -18
- package/dist/src/aot/locales.d.ts +0 -5
- package/dist/src/aot/number.d.ts +0 -6
- package/dist/src/aot/object.d.ts +0 -6
- package/dist/src/aot/string.d.ts +0 -72
- package/dist/src/aot/transform.d.ts +0 -25
- package/dist/src/aot/typechecker.d.ts +0 -10
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { JsonSchema202012 } from '../types';
|
|
2
|
+
export interface ToJsonSchemaOptions {
|
|
3
|
+
direction?: 'deserialize' | 'serialize';
|
|
4
|
+
groups?: string[];
|
|
5
|
+
/** true: 모든 object 스키마에 unevaluatedProperties: false 추가 (seal의 whitelist 옵션 대응) */
|
|
6
|
+
whitelist?: boolean;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* 등록된 DTO 클래스를 JSON Schema Draft 2020-12 형식으로 변환한다.
|
|
10
|
+
* - 루트 클래스는 인라인, 중첩 클래스는 $defs에 배치
|
|
11
|
+
* - 순환 참조는 $ref로 안전 처리
|
|
12
|
+
* - seal() 이전에도 호출 가능 (RAW 메타데이터 직접 사용)
|
|
13
|
+
*/
|
|
14
|
+
export declare function toJsonSchema(Class: Function, options?: ToJsonSchemaOptions): JsonSchema202012;
|
package/dist/src/interfaces.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export interface ValidationOptions {
|
|
|
7
7
|
message?: string | ((args: {
|
|
8
8
|
property: string;
|
|
9
9
|
value: unknown;
|
|
10
|
-
constraints: unknown
|
|
10
|
+
constraints: Record<string, unknown>;
|
|
11
11
|
}) => string);
|
|
12
12
|
/** 검증 실패 시 BakerError.context에 포함할 임의 값 */
|
|
13
13
|
context?: unknown;
|
|
@@ -40,6 +40,12 @@ export interface SealOptions {
|
|
|
40
40
|
* @default false
|
|
41
41
|
*/
|
|
42
42
|
debug?: boolean;
|
|
43
|
+
/**
|
|
44
|
+
* true: 미선언 필드 거부. mergeInheritance(Class)의 key 집합을 허용 목록으로 사용.
|
|
45
|
+
* @Exclude 필드도 whitelist에 포함 — 존재는 허용하되 결과에서 제외.
|
|
46
|
+
* @default false
|
|
47
|
+
*/
|
|
48
|
+
whitelist?: boolean;
|
|
43
49
|
}
|
|
44
50
|
export interface RuntimeOptions {
|
|
45
51
|
/** 요청별 groups — 요청마다 다를 수 있으므로 런타임에 전달 */
|
package/dist/src/rules/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
|
|
2
|
+
export{x as notEquals,M as notContains,f as minLength,c as minDate,l as min,D as maxLength,g as maxDate,O as max,U as matches,E as length,J as isVariableWidth,F as isUppercase,Y as isUUID,X as isURL,ws as isTaxId,V as isSurrogatePair,vs as isStrongPassword,t as isString,gs as isSemVer,$ as isRgbColor,Us as isRFC3339,si as isPostalCode,S as isPositive,Os as isPort,qs as isPhoneNumber,ti as isPassportNumber,G as isOctal,I as isObject,q as isNumberString,e as isNumber,B as isNotIn,Ys as isNotEmptyObject,b as isNotEmpty,d as isNegative,Q as isMultibyte,us as isMongoId,$s as isMobilePhone,Bs as isMimeType,Rs as isMilitaryTime,fs as isMagnetURI,is as isMACAddress,R as isLowercase,Hs as isLongitude,Is as isLocale,Fs as isLatitude,ps as isLatLong,ns as isJWT,hs as isJSON,n as isInt,Zs as isInstance,A as isIn,ii as isIdentityCard,as as isISSN,os as isISRC,rs as isISO8601,Ws as isISO4217CurrencyCode,ys as isISO31661Alpha3,ds as isISO31661Alpha2,es as isISIN,ts as isISBN,Z as isIP,Es as isIBAN,k as isHexadecimal,_ as isHexColor,Ms as isHash,z as isHalfWidth,ss as isHSL,w as isFullWidth,cs as isFirebasePushId,ls as isFQDN,js as isEthereumAddress,a as isEnum,C as isEmpty,K as isEmail,Ss as isEAN,y as isDivisibleBy,v as isDecimal,As as isDateString,o as isDate,ms as isDataURI,Ls as isCurrency,Ds as isCreditCard,Ps as isByteLength,Ts as isBtcAddress,W as isBooleanString,r as isBoolean,bs as isBase64,Cs as isBase58,xs as isBase32,Ns as isBIC,H as isAscii,p as isArray,T as isAlphanumeric,j as isAlpha,h as equals,P as contains,Gs as arrayUnique,Ks as arrayNotEmpty,Qs as arrayNotContains,Vs as arrayMinSize,ks as arrayMaxSize,Js as arrayContains};
|
|
3
3
|
|
|
4
|
-
//# debugId=
|
|
4
|
+
//# debugId=AC23C05EF4DB0DA864756E2164756E21
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import type { EmittableRule } from '../types';
|
|
2
|
-
export declare function min(n: number
|
|
3
|
-
|
|
2
|
+
export declare function min(n: number, opts?: {
|
|
3
|
+
exclusive?: boolean;
|
|
4
|
+
}): EmittableRule;
|
|
5
|
+
export declare function max(n: number, opts?: {
|
|
6
|
+
exclusive?: boolean;
|
|
7
|
+
}): EmittableRule;
|
|
4
8
|
export declare const isPositive: EmittableRule;
|
|
5
9
|
export declare const isNegative: EmittableRule;
|
|
6
10
|
export declare function isDivisibleBy(n: number): EmittableRule;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { Result, ResultAsync } from '@zipbul/result';
|
|
2
2
|
import type { RawClassMeta } from '../types';
|
|
3
3
|
import type { SealOptions, RuntimeOptions } from '../interfaces';
|
|
4
|
-
import type
|
|
5
|
-
export declare function buildDeserializeCode<T>(Class: Function, merged: RawClassMeta, options: SealOptions | undefined, needsCircularCheck: boolean, isAsync: boolean): (input: unknown, opts?: RuntimeOptions) =>
|
|
4
|
+
import { type BakerError } from '../errors';
|
|
5
|
+
export declare function buildDeserializeCode<T>(Class: Function, merged: RawClassMeta, options: SealOptions | undefined, needsCircularCheck: boolean, isAsync: boolean): (input: unknown, opts?: RuntimeOptions) => Result<T, BakerError[]> | ResultAsync<T, BakerError[]>;
|
package/dist/src/symbols.d.ts
CHANGED
package/dist/src/symbols.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{
|
|
2
|
+
import{fb as a,gb as b,hb as c}from"../index-txxjqhgc.js";export{b as SEALED,c as RAW_CLASS_SCHEMA,a as RAW};
|
|
3
3
|
|
|
4
|
-
//# debugId=
|
|
4
|
+
//# debugId=D3457461D4E4095264756E2164756E21
|
|
5
5
|
//# sourceMappingURL=symbols.js.map
|
package/dist/src/symbols.js.map
CHANGED
package/dist/src/types.d.ts
CHANGED
|
@@ -19,7 +19,9 @@ export interface EmittableRule {
|
|
|
19
19
|
* 해당 타입을 전제하는 rule만 설정 (예: isEmail → 'string').
|
|
20
20
|
* @IsString 자체는 undefined (자체 typeof 포함).
|
|
21
21
|
*/
|
|
22
|
-
readonly requiresType?: 'string' | 'number';
|
|
22
|
+
readonly requiresType?: 'string' | 'number' | 'boolean' | 'date';
|
|
23
|
+
/** 룰 파라미터를 외부에서 읽을 수 있도록 노출 — toJsonSchema 매핑에 사용 */
|
|
24
|
+
readonly constraints?: Record<string, unknown>;
|
|
23
25
|
/** async validate 함수 사용 시 true — deserialize-builder가 await 코드를 생성 */
|
|
24
26
|
readonly isAsync?: boolean;
|
|
25
27
|
}
|
|
@@ -27,7 +29,7 @@ export interface EmittableRule {
|
|
|
27
29
|
export interface MessageArgs {
|
|
28
30
|
property: string;
|
|
29
31
|
value: unknown;
|
|
30
|
-
constraints: unknown
|
|
32
|
+
constraints: Record<string, unknown>;
|
|
31
33
|
}
|
|
32
34
|
export interface RuleDef {
|
|
33
35
|
rule: EmittableRule;
|
|
@@ -79,8 +81,10 @@ export interface TypeDef {
|
|
|
79
81
|
export interface PropertyFlags {
|
|
80
82
|
/** @IsOptional() — undefined/null 시 validation 전체 skip */
|
|
81
83
|
isOptional?: boolean;
|
|
82
|
-
/** @IsDefined() —
|
|
84
|
+
/** @IsDefined() — undefined 불허 (@IsOptional 오버라이드). 현재 코드는 undefined만 거부, null은 후속 검증에 위임 */
|
|
83
85
|
isDefined?: boolean;
|
|
86
|
+
/** @IsNullable() — null 허용+할당, undefined는 거부 */
|
|
87
|
+
isNullable?: boolean;
|
|
84
88
|
/** @ValidateIf(cond) — false 시 필드 전체 검증 skip */
|
|
85
89
|
validateIf?: (obj: any) => boolean;
|
|
86
90
|
/** @ValidateNested() — 중첩 DTO 재귀 검증 트리거. @Type과 함께 사용 */
|
|
@@ -95,15 +99,17 @@ export interface RawPropertyMeta {
|
|
|
95
99
|
exclude: ExcludeDef | null;
|
|
96
100
|
type: TypeDef | null;
|
|
97
101
|
flags: PropertyFlags;
|
|
102
|
+
schema: Record<string, unknown> | ((auto: Record<string, unknown>) => Record<string, unknown>) | null;
|
|
98
103
|
}
|
|
99
104
|
export interface RawClassMeta {
|
|
100
105
|
[propertyKey: string]: RawPropertyMeta;
|
|
101
106
|
}
|
|
102
107
|
import type { RuntimeOptions } from './interfaces';
|
|
103
108
|
import type { BakerError } from './errors';
|
|
109
|
+
import type { Result, ResultAsync } from '@zipbul/result';
|
|
104
110
|
export interface SealedExecutors<T> {
|
|
105
111
|
/** 내부 executor — Result 패턴. deserialize()가 감싸서 throw로 변환 */
|
|
106
|
-
_deserialize(input: unknown, options?: RuntimeOptions):
|
|
112
|
+
_deserialize(input: unknown, options?: RuntimeOptions): Result<T, BakerError[]> | ResultAsync<T, BakerError[]>;
|
|
107
113
|
/** 내부 executor — 항상 성공. serialize는 무검증 전제 */
|
|
108
114
|
_serialize(instance: T, options?: RuntimeOptions): Record<string, unknown> | Promise<Record<string, unknown>>;
|
|
109
115
|
/** deserialize 방향에 async 규칙/transform/nested가 있으면 true */
|
|
@@ -116,4 +122,59 @@ export interface SealedExecutors<T> {
|
|
|
116
122
|
serialize: string;
|
|
117
123
|
};
|
|
118
124
|
}
|
|
125
|
+
export interface JsonSchema202012 {
|
|
126
|
+
$schema?: string;
|
|
127
|
+
$id?: string;
|
|
128
|
+
$ref?: string;
|
|
129
|
+
$defs?: Record<string, JsonSchema202012>;
|
|
130
|
+
$comment?: string;
|
|
131
|
+
type?: string | string[];
|
|
132
|
+
enum?: unknown[];
|
|
133
|
+
const?: unknown;
|
|
134
|
+
minimum?: number;
|
|
135
|
+
maximum?: number;
|
|
136
|
+
exclusiveMinimum?: number;
|
|
137
|
+
exclusiveMaximum?: number;
|
|
138
|
+
multipleOf?: number;
|
|
139
|
+
minLength?: number;
|
|
140
|
+
maxLength?: number;
|
|
141
|
+
pattern?: string;
|
|
142
|
+
format?: string;
|
|
143
|
+
items?: JsonSchema202012;
|
|
144
|
+
prefixItems?: JsonSchema202012[];
|
|
145
|
+
contains?: JsonSchema202012;
|
|
146
|
+
minContains?: number;
|
|
147
|
+
maxContains?: number;
|
|
148
|
+
minItems?: number;
|
|
149
|
+
maxItems?: number;
|
|
150
|
+
uniqueItems?: boolean;
|
|
151
|
+
properties?: Record<string, JsonSchema202012>;
|
|
152
|
+
required?: string[];
|
|
153
|
+
additionalProperties?: boolean | JsonSchema202012;
|
|
154
|
+
unevaluatedProperties?: boolean | JsonSchema202012;
|
|
155
|
+
patternProperties?: Record<string, JsonSchema202012>;
|
|
156
|
+
propertyNames?: JsonSchema202012;
|
|
157
|
+
minProperties?: number;
|
|
158
|
+
maxProperties?: number;
|
|
159
|
+
dependentRequired?: Record<string, string[]>;
|
|
160
|
+
dependentSchemas?: Record<string, JsonSchema202012>;
|
|
161
|
+
allOf?: JsonSchema202012[];
|
|
162
|
+
anyOf?: JsonSchema202012[];
|
|
163
|
+
oneOf?: JsonSchema202012[];
|
|
164
|
+
not?: JsonSchema202012;
|
|
165
|
+
if?: JsonSchema202012;
|
|
166
|
+
then?: JsonSchema202012;
|
|
167
|
+
else?: JsonSchema202012;
|
|
168
|
+
title?: string;
|
|
169
|
+
description?: string;
|
|
170
|
+
default?: unknown;
|
|
171
|
+
examples?: unknown[];
|
|
172
|
+
deprecated?: boolean;
|
|
173
|
+
readOnly?: boolean;
|
|
174
|
+
writeOnly?: boolean;
|
|
175
|
+
contentEncoding?: string;
|
|
176
|
+
contentMediaType?: string;
|
|
177
|
+
contentSchema?: JsonSchema202012;
|
|
178
|
+
[key: string]: unknown;
|
|
179
|
+
}
|
|
119
180
|
export type { ValidationOptions } from './interfaces';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zipbul/baker",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "Decorator-based validate + transform with inline code generation. class-validator DX, AOT-level performance, zero reflect-metadata.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Junhyung Park (https://github.com/parkrevil)",
|
|
@@ -40,10 +40,6 @@
|
|
|
40
40
|
"import": "./dist/src/decorators/index.js",
|
|
41
41
|
"types": "./dist/src/decorators/index.d.ts"
|
|
42
42
|
},
|
|
43
|
-
"./aot": {
|
|
44
|
-
"import": "./dist/src/aot/index.js",
|
|
45
|
-
"types": "./dist/src/aot/index.d.ts"
|
|
46
|
-
},
|
|
47
43
|
"./rules": {
|
|
48
44
|
"import": "./dist/src/rules/index.js",
|
|
49
45
|
"types": "./dist/src/rules/index.d.ts"
|
|
@@ -61,10 +57,10 @@
|
|
|
61
57
|
"access": "public"
|
|
62
58
|
},
|
|
63
59
|
"dependencies": {
|
|
64
|
-
"@zipbul/result": "^0.
|
|
60
|
+
"@zipbul/result": "^0.1.4"
|
|
65
61
|
},
|
|
66
62
|
"scripts": {
|
|
67
|
-
"build": "bun build index.ts src/decorators/index.ts src/
|
|
63
|
+
"build": "bun build index.ts src/decorators/index.ts src/rules/index.ts src/symbols.ts --outdir dist --target bun --format esm --splitting --packages external --sourcemap=linked --root . --production && tsc -p tsconfig.build.json",
|
|
68
64
|
"typecheck": "tsc --noEmit",
|
|
69
65
|
"test": "bun test",
|
|
70
66
|
"test:coverage": "bun test --coverage",
|
|
@@ -80,4 +76,4 @@
|
|
|
80
76
|
"@types/bun": "^1.3.9",
|
|
81
77
|
"husky": "^9.1.7"
|
|
82
78
|
}
|
|
83
|
-
}
|
|
79
|
+
}
|
package/dist/index-6pbm9cq6.js
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
// @bun
|
|
2
|
-
function vz(z){let Q=(Z)=>Z===z;return Q.emit=(Z,$)=>{let K=$.addRef(z);return`if (${Z} !== _refs[${K}]) ${$.fail("equals")};`},Q.ruleName="equals",Q}function ez(z){let Q=(Z)=>Z!==z;return Q.emit=(Z,$)=>{let K=$.addRef(z);return`if (${Z} === _refs[${K}]) ${$.fail("notEquals")};`},Q.ruleName="notEquals",Q}var O=(z)=>z===void 0||z===null||z==="";O.emit=(z,Q)=>`if (${z} !== undefined && ${z} !== null && ${z} !== '') ${Q.fail("isEmpty")};`;O.ruleName="isEmpty";var az=O,g=(z)=>z!==void 0&&z!==null&&z!=="";g.emit=(z,Q)=>`if (${z} === undefined || ${z} === null || ${z} === '') ${Q.fail("isNotEmpty")};`;g.ruleName="isNotEmpty";var zQ=g;function QQ(z){let Q=(Z)=>z.indexOf(Z)!==-1;return Q.emit=(Z,$)=>{return`if (_refs[${$.addRef(z)}].indexOf(${Z}) === -1) ${$.fail("isIn")};`},Q.ruleName="isIn",Q}function ZQ(z){let Q=(Z)=>z.indexOf(Z)===-1;return Q.emit=(Z,$)=>{return`if (_refs[${$.addRef(z)}].indexOf(${Z}) !== -1) ${$.fail("isNotIn")};`},Q.ruleName="isNotIn",Q}var T=(z)=>typeof z==="string";T.emit=(z,Q)=>`if (typeof ${z} !== 'string') ${Q.fail("isString")};`;T.ruleName="isString";var KQ=T;function jQ(z){let Q=z?.allowNaN??!1,Z=z?.allowInfinity??!1,$=z?.maxDecimalPlaces,K=(j)=>{if(typeof j!=="number")return!1;if(isNaN(j))return Q;if(!isFinite(j))return Z;if($!==void 0){let J=j.toString(),W=J.indexOf(".");if(W!==-1&&J.length-W-1>$)return!1}return!0};return K.emit=(j,J)=>{let W=`if (typeof ${j} !== 'number') ${J.fail("isNumber")};`;if(!Q)W+=`
|
|
3
|
-
else if (isNaN(${j})) ${J.fail("isNumber")};`;if(!Z)W+=`
|
|
4
|
-
else if (${j} === Infinity || ${j} === -Infinity) ${J.fail("isNumber")};`;if($!==void 0)W+=`
|
|
5
|
-
else { var _s=${j}.toString(); var _d=_s.indexOf('.'); if(_d!==-1&&_s.length-_d-1>${$}) ${J.fail("isNumber")}; }`;return W},K.ruleName="isNumber",K}var L=(z)=>typeof z==="boolean";L.emit=(z,Q)=>`if (typeof ${z} !== 'boolean') ${Q.fail("isBoolean")};`;L.ruleName="isBoolean";var JQ=L,A=(z)=>z instanceof Date&&!isNaN(z.getTime());A.emit=(z,Q)=>`if (!(${z} instanceof Date) || isNaN(${z}.getTime())) ${Q.fail("isDate")};`;A.ruleName="isDate";var qQ=A;function wQ(z){let Q=Object.values(z),Z=($)=>Q.indexOf($)!==-1;return Z.emit=($,K)=>{return`if (_refs[${K.addRef(Q)}].indexOf(${$}) === -1) ${K.fail("isEnum")};`},Z.ruleName="isEnum",Z}var I=(z)=>typeof z==="number"&&Number.isInteger(z);I.emit=(z,Q)=>`if (typeof ${z} !== 'number' || !Number.isInteger(${z})) ${Q.fail("isInt")};`;I.ruleName="isInt";var WQ=I,d=(z)=>Array.isArray(z);d.emit=(z,Q)=>`if (!Array.isArray(${z})) ${Q.fail("isArray")};`;d.ruleName="isArray";var bQ=d,S=(z)=>typeof z==="object"&&z!==null&&!Array.isArray(z);S.emit=(z,Q)=>`if (typeof ${z} !== 'object' || ${z} === null || Array.isArray(${z})) ${Q.fail("isObject")};`;S.ruleName="isObject";var YQ=S;function GQ(z){let Q=(Z)=>Z>=z;return Q.emit=(Z,$)=>`if (${Z} < ${z}) ${$.fail("min")};`,Q.ruleName="min",Q.requiresType="number",Q}function FQ(z){let Q=(Z)=>Z<=z;return Q.emit=(Z,$)=>`if (${Z} > ${z}) ${$.fail("max")};`,Q.ruleName="max",Q.requiresType="number",Q}var Y=(z)=>z>0;Y.emit=(z,Q)=>`if (${z} <= 0) ${Q.fail("isPositive")};`;Y.ruleName="isPositive";Y.requiresType="number";var MQ=Y,V=(z)=>z<0;V.emit=(z,Q)=>`if (${z} >= 0) ${Q.fail("isNegative")};`;V.ruleName="isNegative";V.requiresType="number";var XQ=V;function UQ(z){let Q=(Z)=>Z%z===0;return Q.emit=(Z,$)=>`if (${Z} % ${z} !== 0) ${$.fail("isDivisibleBy")};`,Q.ruleName="isDivisibleBy",Q.requiresType="number",Q}function HQ(z){let Q=z.getTime(),Z=($)=>$ instanceof Date&&$.getTime()>=Q;return Z.emit=($,K)=>{let j=K.addRef(Q);return`if (!(${$} instanceof Date) || ${$}.getTime() < _refs[${j}]) ${K.fail("minDate")};`},Z.ruleName="minDate",Z}function BQ(z){let Q=z.getTime(),Z=($)=>$ instanceof Date&&$.getTime()<=Q;return Z.emit=($,K)=>{let j=K.addRef(Q);return`if (!(${$} instanceof Date) || ${$}.getTime() > _refs[${j}]) ${K.fail("maxDate")};`},Z.ruleName="maxDate",Z}function q(z,Q,Z,$="string"){let K=(j)=>{if(typeof j!=="string")return!1;return Q(j)};if(K.emit=Z,K.ruleName=z,$!==void 0)K.requiresType=$;return K}function PQ(z){let Q=(Z)=>typeof Z==="string"&&Z.length>=z;return Q.emit=(Z,$)=>`if (${Z}.length < ${z}) ${$.fail("minLength")};`,Q.ruleName="minLength",Q.requiresType="string",Q}function kQ(z){let Q=(Z)=>typeof Z==="string"&&Z.length<=z;return Q.emit=(Z,$)=>`if (${Z}.length > ${z}) ${$.fail("maxLength")};`,Q.ruleName="maxLength",Q.requiresType="string",Q}function yQ(z,Q){let Z=($)=>typeof $==="string"&&$.length>=z&&$.length<=Q;return Z.emit=($,K)=>`if (${$}.length < ${z} || ${$}.length > ${Q}) ${K.fail("length")};`,Z.ruleName="length",Z.requiresType="string",Z}function CQ(z){let Q=(Z)=>typeof Z==="string"&&Z.includes(z);return Q.emit=(Z,$)=>{let K=$.addRef(z);return`if (${Z}.indexOf(_refs[${K}]) === -1) ${$.fail("contains")};`},Q.ruleName="contains",Q.requiresType="string",Q}function OQ(z){let Q=(Z)=>typeof Z==="string"&&!Z.includes(z);return Q.emit=(Z,$)=>{let K=$.addRef(z);return`if (${Z}.indexOf(_refs[${K}]) !== -1) ${$.fail("notContains")};`},Q.ruleName="notContains",Q.requiresType="string",Q}function gQ(z,Q){let Z=z instanceof RegExp?z:new RegExp(z,Q),$=(K)=>typeof K==="string"&&Z.test(K);return $.emit=(K,j)=>{return`if (!_re[${j.addRegex(Z)}].test(${K})) ${j.fail("matches")};`},$.ruleName="matches",$.requiresType="string",$}var U=(z)=>typeof z==="string"&&z===z.toLowerCase();U.emit=(z,Q)=>`if (${z} !== ${z}.toLowerCase()) ${Q.fail("isLowercase")};`;U.ruleName="isLowercase";U.requiresType="string";var TQ=U,h=(z)=>typeof z==="string"&&z===z.toUpperCase();h.emit=(z,Q)=>`if (${z} !== ${z}.toUpperCase()) ${Q.fail("isUppercase")};`;h.ruleName="isUppercase";h.requiresType="string";var LQ=h,_=/^[\x00-\x7F]*$/,AQ=q("isAscii",(z)=>_.test(z),(z,Q)=>{return`if (!_re[${Q.addRegex(_)}].test(${z})) ${Q.fail("isAscii")};`}),Oz=/^[a-zA-Z]+$/;function dz(z){return typeof z==="string"&&z.length>0&&Oz.test(z)}var H=function z(Q){if(Q===void 0)return z;return dz(Q)};H.emit=(z,Q)=>{return`if (!_re[${Q.addRegex(Oz)}].test(${z})) ${Q.fail("isAlpha")};`};H.ruleName="isAlpha";H.requiresType="string";var IQ=H,gz=/^[a-zA-Z0-9]+$/;function Sz(z){return typeof z==="string"&&z.length>0&&gz.test(z)}var B=function z(Q){if(Q===void 0)return z;return Sz(Q)};B.emit=(z,Q)=>{return`if (!_re[${Q.addRegex(gz)}].test(${z})) ${Q.fail("isAlphanumeric")};`};B.ruleName="isAlphanumeric";B.requiresType="string";var dQ=B,D=(z)=>z==="true"||z==="false"||z==="1"||z==="0";D.emit=(z,Q)=>`if (${z} !== 'true' && ${z} !== 'false' && ${z} !== '1' && ${z} !== '0') ${Q.fail("isBooleanString")};`;D.ruleName="isBooleanString";D.requiresType="string";var SQ=D;function pQ(z){return q("isNumberString",(Q)=>{if(Q.length===0)return!1;let Z=Number(Q);return!isNaN(Z)&&isFinite(Z)},(Q,Z)=>{let $=(j)=>{if(j.length===0)return!1;let J=Number(j);return!isNaN(J)&&isFinite(J)};return`if (!_refs[${Z.addRef($)}](${Q})) ${Z.fail("isNumberString")};`})}function fQ(z){let Q=/^[-+]?(?:\d+(?:\.\d*)?|\.\d+)$/;return q("isDecimal",(Z)=>Q.test(Z),(Z,$)=>{return`if (!_re[${$.addRegex(Q)}].test(${Z})) ${$.fail("isDecimal")};`})}var M=/[^\u0020-\u007E\uFF61-\uFF9F]/,oQ=q("isFullWidth",(z)=>z.length>0&&M.test(z),(z,Q)=>{let Z=Q.addRegex(M);return`if (${z}.length === 0 || !_re[${Z}].test(${z})) ${Q.fail("isFullWidth")};`}),X=/[\u0020-\u007E\uFF61-\uFF9F]/,RQ=q("isHalfWidth",(z)=>z.length>0&&X.test(z),(z,Q)=>{let Z=Q.addRegex(X);return`if (${z}.length === 0 || !_re[${Z}].test(${z})) ${Q.fail("isHalfWidth")};`}),EQ=q("isVariableWidth",(z)=>M.test(z)&&X.test(z),(z,Q)=>{let Z=Q.addRegex(M),$=Q.addRegex(X);return`if (!_re[${Z}].test(${z}) || !_re[${$}].test(${z})) ${Q.fail("isVariableWidth")};`}),s=/[^\x00-\xFF]/,_Q=q("isMultibyte",(z)=>z.length>0&&s.test(z),(z,Q)=>{let Z=Q.addRegex(s);return`if (${z}.length === 0 || !_re[${Z}].test(${z})) ${Q.fail("isMultibyte")};`}),N=/[\uD800-\uDBFF][\uDC00-\uDFFF]/,sQ=q("isSurrogatePair",(z)=>z.length>0&&N.test(z),(z,Q)=>{let Z=Q.addRegex(N);return`if (${z}.length === 0 || !_re[${Z}].test(${z})) ${Q.fail("isSurrogatePair")};`}),i=/^[0-9a-fA-F]+$/,NQ=q("isHexadecimal",(z)=>i.test(z),(z,Q)=>{return`if (!_re[${Q.addRegex(i)}].test(${z})) ${Q.fail("isHexadecimal")};`}),n=/^(0[oO])?[0-7]+$/,iQ=q("isOctal",(z)=>z.length>0&&n.test(z),(z,Q)=>{let Z=Q.addRegex(n);return`if (${z}.length === 0 || !_re[${Z}].test(${z})) ${Q.fail("isOctal")};`}),u=/^[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 nQ(z){return q("isEmail",(Q)=>u.test(Q),(Q,Z)=>{return`if (!_re[${Z.addRegex(u)}].test(${Q})) ${Z.fail("isEmail")};`})}var pz=["http","https","ftp"];function uQ(z){let Z=(z?.protocols??pz).map((j)=>j.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("|"),$=new RegExp(`^(?:${Z}):\\/\\/(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)(?::\\d{1,5})?(?:\\/[^\\s]*)?$`),K=(j)=>{if(typeof j!=="string"||j.length===0)return!1;return $.test(j)};return K.emit=(j,J)=>{return`if (!_re[${J.addRegex($)}].test(${j})) ${J.fail("isURL")};`},K.ruleName="isURL",K.requiresType="string",K}var p={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 xQ(z){let Q=z!=null?p[z]??p.all:p.all;return q("isUUID",(Z)=>Q.test(Z),(Z,$)=>{return`if (!_re[${$.addRegex(Q)}].test(${Z})) ${$.fail("isUUID")};`})}var G=/^(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)$/,F=/^(?:[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 mQ(z){let Q=(Z)=>{if(typeof Z!=="string")return!1;if(z===4)return G.test(Z);if(z===6)return F.test(Z);return G.test(Z)||F.test(Z)};return Q.emit=(Z,$)=>{if(z===4)return`if (!_re[${$.addRegex(G)}].test(${Z})) ${$.fail("isIP")};`;if(z===6)return`if (!_re[${$.addRegex(F)}].test(${Z})) ${$.fail("isIP")};`;let K=$.addRegex(G),j=$.addRegex(F);return`if (!_re[${K}].test(${Z}) && !_re[${j}].test(${Z})) ${$.fail("isIP")};`},Q.ruleName="isIP",Q.requiresType="string",Q}var x=/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/,lQ=q("isHexColor",(z)=>x.test(z),(z,Q)=>{return`if (!_re[${Q.addRegex(x)}].test(${z})) ${Q.fail("isHexColor")};`}),m=/^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*\)$/,l=/^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 cQ(z=!1){let Q=(Z)=>{if(typeof Z!=="string")return!1;if(z)return c.test(Z);return m.test(Z)||l.test(Z)};return Q.emit=(Z,$)=>{if(z)return`if (!_re[${$.addRegex(c)}].test(${Z})) ${$.fail("isRgbColor")};`;let K=$.addRegex(m),j=$.addRegex(l);return`if (!_re[${K}].test(${Z}) && !_re[${j}].test(${Z})) ${$.fail("isRgbColor")};`},Q.ruleName="isRgbColor",Q.requiresType="string",Q}var r=/^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*\)$/,rQ=q("isHSL",(z)=>r.test(z),(z,Q)=>{return`if (!_re[${Q.addRegex(r)}].test(${z})) ${Q.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 tQ(z){let Q=(Z)=>{if(typeof Z!=="string")return!1;if(z?.no_separators)return e.test(Z);return t.test(Z)||v.test(Z)};return Q.emit=(Z,$)=>{if(z?.no_separators)return`if (!_re[${$.addRegex(e)}].test(${Z})) ${$.fail("isMACAddress")};`;let K=$.addRegex(t),j=$.addRegex(v);return`if (!_re[${K}].test(${Z}) && !_re[${j}].test(${Z})) ${$.fail("isMACAddress")};`},Q.ruleName="isMACAddress",Q.requiresType="string",Q}function a(z){let Q=z.replace(/[-\s]/g,"");if(!/^\d{9}[\dX]$/.test(Q))return!1;let Z=0;for(let K=0;K<9;K++)Z+=(10-K)*(Q.charCodeAt(K)-48);let $=Q[9]==="X"?10:Q.charCodeAt(9)-48;return Z+=$,Z%11===0}function zz(z){let Q=z.replace(/[-\s]/g,"");if(!/^\d{13}$/.test(Q))return!1;let Z=0;for(let K=0;K<12;K++)Z+=(Q.charCodeAt(K)-48)*(K%2===0?1:3);return(10-Z%10)%10===Q.charCodeAt(12)-48}function vQ(z){let Q=(Z)=>{if(typeof Z!=="string")return!1;if(z===10)return a(Z);if(z===13)return zz(Z);return a(Z)||zz(Z)};return Q.emit=(Z,$)=>{return`if (!_refs[${$.addRef(Q)}](${Z})) ${$.fail("isISBN")};`},Q.ruleName="isISBN",Q.requiresType="string",Q}var fz=/^[A-Z]{2}[A-Z0-9]{9}[0-9]$/;function Qz(z){if(!fz.test(z))return!1;let Q=z.split("").map((K)=>{let j=K.charCodeAt(0);return j>=65?String(j-55):K}).join(""),Z=0,$=!1;for(let K=Q.length-1;K>=0;K--){let j=parseInt(Q[K],10);if($){if(j*=2,j>9)j-=9}Z+=j,$=!$}return Z%10===0}var eQ=q("isISIN",Qz,(z,Q)=>{return`if (!_refs[${Q.addRef(Qz)}](${z})) ${Q.fail("isISIN")};`}),f=/^\d{4}(?:-\d{2}(?:-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:?\d{2})?)?)?)?$/;function oz(z){if(!f.test(z))return!1;let Q=z.match(/^(\d{4})-(\d{2})-(\d{2})/);if(!Q)return!0;let Z=Number(Q[2]),$=Number(Q[3]);if(Z<1||Z>12)return!1;let K=new Date(Number(Q[1]),Z,0).getDate();return $>=1&&$<=K}function aQ(z){if(z?.strict){let Q=(Z)=>{if(typeof Z!=="string")return!1;return oz(Z)};return Q.ruleName="isISO8601",Q.emit=(Z,$)=>{return`if (!_refs[${$.addRef(Q)}](${Z})) ${$.fail("isISO8601")};`},Q}return q("isISO8601",(Q)=>f.test(Q),(Q,Z)=>{return`if (!_re[${Z.addRegex(f)}].test(${Q})) ${Z.fail("isISO8601")};`})}var Zz=/^[A-Z]{2}-[A-Z0-9]{3}-\d{2}-\d{5}$|^[A-Z]{2}[A-Z0-9]{3}\d{7}$/,zZ=q("isISRC",(z)=>Zz.test(z),(z,Q)=>{return`if (!_re[${Q.addRegex(Zz)}].test(${z})) ${Q.fail("isISRC")};`});function Rz(z,Q){let Z=Q?.requireHyphen!==!1,$=Z?z:z.replace(/-/g,"");if(!(Z?/^\d{4}-\d{3}[\dX]$/:/^\d{7}[\dX]$/).test($))return!1;let j=$.replace(/-/g,""),J=0;for(let w=0;w<7;w++)J+=(8-w)*(j.charCodeAt(w)-48);let W=j[7]==="X"?10:j.charCodeAt(7)-48;return J+=W,J%11===0}function QZ(z){let Q=(Z)=>{if(typeof Z!=="string")return!1;return Rz(Z,z)};return Q.emit=(Z,$)=>{return`if (!_refs[${$.addRef(Q)}](${Z})) ${$.fail("isISSN")};`},Q.ruleName="isISSN",Q.requiresType="string",Q}var $z=/^[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+$/,ZZ=q("isJWT",(z)=>$z.test(z),(z,Q)=>{return`if (!_re[${Q.addRegex($z)}].test(${z})) ${Q.fail("isJWT")};`}),Kz=/^[-+]?([1-8]?\d(?:\.\d+)?|90(?:\.0+)?),\s*[-+]?(180(?:\.0+)?|1[0-7]\d(?:\.\d+)?|\d{1,2}(?:\.\d+)?)$/;function $Z(z){return q("isLatLong",(Q)=>Kz.test(Q),(Q,Z)=>{return`if (!_re[${Z.addRegex(Kz)}].test(${Q})) ${Z.fail("isLatLong")};`})}var jz=/^[a-zA-Z]{2,3}(?:-[a-zA-Z]{4})?(?:-(?:[a-zA-Z]{2}|\d{3}))?(?:-[a-zA-Z\d]{5,8})*$/,KZ=q("isLocale",(z)=>jz.test(z),(z,Q)=>{return`if (!_re[${Q.addRegex(jz)}].test(${z})) ${Q.fail("isLocale")};`}),Jz=/^data:([a-zA-Z0-9!#$&\-^_]+\/[a-zA-Z0-9!#$&\-^_]+)(?:;[a-zA-Z0-9\-]+=[a-zA-Z0-9\-]+)*(?:;base64)?,[\s\S]*$/,jZ=q("isDataURI",(z)=>Jz.test(z),(z,Q)=>{return`if (!_re[${Q.addRegex(Jz)}].test(${z})) ${Q.fail("isDataURI")};`});function JZ(z){let Q=z?.require_tld!==!1,Z=($)=>{if(typeof $!=="string")return!1;let K=$;if(z?.allow_trailing_dot&&K.endsWith("."))K=K.slice(0,-1);if(K.length===0)return!1;let j=K.split(".");if(Q&&j.length<2)return!1;if(Q){let J=j[j.length-1];if(!J||J.length<2||!/^[a-zA-Z]{2,}$/.test(J))return!1}return j.every((J)=>{if(J.length===0||J.length>63)return!1;if(z?.allow_underscores)return/^[a-zA-Z0-9_-]+$/.test(J);return/^[a-zA-Z0-9-]+$/.test(J)&&!J.startsWith("-")&&!J.endsWith("-")})};return Z.emit=($,K)=>{return`if (!_refs[${K.addRef(Z)}](${$})) ${K.fail("isFQDN")};`},Z.ruleName="isFQDN",Z.requiresType="string",Z}var qz=/^(?: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)$/,qZ=q("isPort",(z)=>qz.test(z),(z,Q)=>{return`if (!_re[${Q.addRegex(qz)}].test(${z})) ${Q.fail("isPort")};`});function wz(z){if(!/^\d{8}$/.test(z)&&!/^\d{13}$/.test(z))return!1;let Q=z.split("").map(Number),Z=Q.length,$=0;for(let j=0;j<Z-1;j++)$+=Q[j]*(Z===8?j%2===0?3:1:j%2===0?1:3);return(10-$%10)%10===Q[Z-1]}var wZ=q("isEAN",wz,(z,Q)=>{return`if (!_refs[${Q.addRef(wz)}](${z})) ${Q.fail("isEAN")};`}),Tz=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"]),P=(z)=>{if(typeof z!=="string")return!1;return Tz.has(z.toUpperCase())};P.emit=(z,Q)=>{return`if (!_refs[${Q.addRef(Tz)}].has(${z}.toUpperCase())) ${Q.fail("isISO31661Alpha2")};`};P.ruleName="isISO31661Alpha2";P.requiresType="string";var WZ=P,Lz=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"]),k=(z)=>{if(typeof z!=="string")return!1;return Lz.has(z.toUpperCase())};k.emit=(z,Q)=>{return`if (!_refs[${Q.addRef(Lz)}].has(${z}.toUpperCase())) ${Q.fail("isISO31661Alpha3")};`};k.ruleName="isISO31661Alpha3";k.requiresType="string";var bZ=k,Wz=/^[A-Z]{6}[A-Z0-9]{2}(?:[A-Z0-9]{3})?$/,YZ=q("isBIC",(z)=>Wz.test(z.toUpperCase()),(z,Q)=>{return`if (!_re[${Q.addRegex(Wz)}].test(${z}.toUpperCase())) ${Q.fail("isBIC")};`}),bz=/^[a-zA-Z0-9_-]{20}$/,VZ=q("isFirebasePushId",(z)=>bz.test(z),(z,Q)=>{return`if (!_re[${Q.addRegex(bz)}].test(${z})) ${Q.fail("isFirebasePushId")};`}),Yz=/^(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-]+)*))?$/,GZ=q("isSemVer",(z)=>Yz.test(z),(z,Q)=>{return`if (!_re[${Q.addRegex(Yz)}].test(${z})) ${Q.fail("isSemVer")};`}),Vz=/^[0-9a-fA-F]{24}$/,FZ=q("isMongoId",(z)=>Vz.test(z),(z,Q)=>{return`if (!_re[${Q.addRegex(Vz)}].test(${z})) ${Q.fail("isMongoId")};`}),y=(z)=>{if(typeof z!=="string")return!1;try{return JSON.parse(z),!0}catch{return!1}};y.emit=(z,Q)=>{return`if (!_refs[${Q.addRef(($)=>{try{return JSON.parse($),!0}catch{return!1}})}](${z})) ${Q.fail("isJSON")};`};y.ruleName="isJSON";y.requiresType="string";var MZ=y,Ez=/^[A-Z2-7]+=*$/i;function XZ(z){let Q=Ez;return q("isBase32",(Z)=>{if(Z.length===0)return!1;if(Z.length%8!==0)return!1;return Q.test(Z)},(Z,$)=>{let K=$.addRegex(Q);return`if (${Z}.length === 0 || ${Z}.length % 8 !== 0 || !_re[${K}].test(${Z})) ${$.fail("isBase32")};`})}var Gz=/^[1-9A-HJ-NP-Za-km-z]+$/,UZ=q("isBase58",(z)=>Gz.test(z),(z,Q)=>{return`if (!_re[${Q.addRegex(Gz)}].test(${z})) ${Q.fail("isBase58")};`}),_z=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$/,sz=/^[A-Za-z0-9_-]+={0,2}$/;function hZ(z){let Q=z?.urlSafe?sz:_z;return q("isBase64",(Z)=>{if(Z.length===0)return!1;return Q.test(Z)},(Z,$)=>{let K=$.addRegex(Q);return`if (${Z}.length === 0 || !_re[${K}].test(${Z})) ${$.fail("isBase64")};`})}var Fz=/^\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])$/;function HZ(z){return q("isDateString",(Q)=>Fz.test(Q),(Q,Z)=>{return`if (!_re[${Z.addRegex(Fz)}].test(${Q})) ${Z.fail("isDateString")};`})}var Mz=/^(application|audio|font|image|message|model|multipart|text|video)\/[a-zA-Z0-9][a-zA-Z0-9!#$&\-^_.+]*(?:;.+)?$/,BZ=q("isMimeType",(z)=>Mz.test(z),(z,Q)=>{return`if (!_re[${Q.addRegex(Mz)}].test(${z})) ${Q.fail("isMimeType")};`}),Xz=/^[-+]?(?:[,.\d]+)(?:[.,]\d{2})?$|^\$?-?(?:\d+|\d{1,3}(?:,\d{3})*)(?:\.\d{1,2})?$/;function DZ(z){return q("isCurrency",(Q)=>{if(Q.length===0)return!1;return Xz.test(Q)},(Q,Z)=>{let $=Z.addRegex(Xz);return`if (${Q}.length === 0 || !_re[${$}].test(${Q})) ${Z.fail("isCurrency")};`})}var Uz=/^magnet:\?xt=urn:[a-z0-9]+:[a-z0-9]{32,40}/i,PZ=q("isMagnetURI",(z)=>Uz.test(z),(z,Q)=>{return`if (!_re[${Q.addRegex(Uz)}].test(${z})) ${Q.fail("isMagnetURI")};`});function Nz(z){let Q=z.replace(/[\s-]/g,"");if(Q.length===0||!/^\d+$/.test(Q))return!1;let Z=0,$=!1;for(let K=Q.length-1;K>=0;K--){let j=Q.charCodeAt(K)-48;if($){if(j*=2,j>9)j-=9}Z+=j,$=!$}return Z%10===0}var C=(z)=>{if(typeof z!=="string")return!1;return Nz(z)};C.emit=(z,Q)=>`{
|
|
6
|
-
var _cs=${z}.replace(/[\\s-]/g,'');
|
|
7
|
-
if(_cs.length===0||!/^\\d+$/.test(_cs)){${Q.fail("isCreditCard")}}
|
|
8
|
-
else{var _sum=0,_alt=false;
|
|
9
|
-
for(var _ci=_cs.length-1;_ci>=0;_ci--){var _cn=_cs.charCodeAt(_ci)-48;if(_alt){_cn*=2;if(_cn>9)_cn-=9;}_sum+=_cn;_alt=!_alt;}
|
|
10
|
-
if(_sum%10!==0)${Q.fail("isCreditCard")};}
|
|
11
|
-
}`;C.ruleName="isCreditCard";C.requiresType="string";var kZ=C,iz={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 nz(z,Q){let Z=Q?.allowSpaces?z.replace(/\s/g,""):z;if(Z=Z.toUpperCase(),!/^[A-Z]{2}\d{2}[A-Z0-9]+$/.test(Z))return!1;let $=Z.slice(0,2),K=iz[$];if(K!==void 0&&Z.length!==K)return!1;let J=(Z.slice(4)+Z.slice(0,4)).replace(/[A-Z]/g,(w)=>String(w.charCodeAt(0)-55)),W=0;for(let w=0;w<J.length;w+=7){let b=String(W)+J.slice(w,w+7);W=parseInt(b,10)%97}return W===1}function yZ(z){let Q=(Z)=>{if(typeof Z!=="string")return!1;return nz(Z,z)};return Q.emit=(Z,$)=>{return`if (!_refs[${$.addRef(Q)}](${Z})) ${$.fail("isIBAN")};`},Q.ruleName="isIBAN",Q.requiresType="string",Q}function CZ(z,Q){let Z=($)=>{if(typeof $!=="string")return!1;let K=Buffer.byteLength($,"utf8");if(K<z)return!1;if(Q!==void 0&&K>Q)return!1;return!0};return Z.emit=($,K)=>{let j=(W)=>{let w=Buffer.byteLength(W,"utf8");if(w<z)return!1;if(Q!==void 0&&w>Q)return!1;return!0};return`if (!_refs[${K.addRef(j)}](${$})) ${K.fail("isByteLength")};`},Z.ruleName="isByteLength",Z.requiresType="string",Z}var uz={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 OZ(z){let Q=uz[z],Z=($)=>{if(typeof $!=="string")return!1;if(!Q)return!1;return Q.test($)};return Z.emit=($,K)=>{if(!Q)return K.fail("isHash")+";";return`if (!_re[${K.addRegex(Q)}].test(${$})) ${K.fail("isHash")};`},Z.ruleName="isHash",Z.requiresType="string",Z}var hz=/^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-]\d{2}:\d{2})$/i,gZ=q("isRFC3339",(z)=>hz.test(z),(z,Q)=>{return`if (!_re[${Q.addRegex(hz)}].test(${z})) ${Q.fail("isRFC3339")};`}),Hz=/^([01]\d|2[0-3]):[0-5]\d$/,TZ=q("isMilitaryTime",(z)=>Hz.test(z),(z,Q)=>{return`if (!_re[${Q.addRegex(Hz)}].test(${z})) ${Q.fail("isMilitaryTime")};`});function Az(z){if(typeof z==="number")return z>=-90&&z<=90;if(typeof z==="string"){let Q=parseFloat(z);if(isNaN(Q))return!1;if(String(Q)!==z&&z!==String(Q)){if(!/^-?\d+(\.\d+)?$/.test(z))return!1}return Q>=-90&&Q<=90}return!1}var o=(z)=>Az(z);o.emit=(z,Q)=>{return`if (!_refs[${Q.addRef(Az)}](${z})) ${Q.fail("isLatitude")};`};o.ruleName="isLatitude";var LZ=o;function Iz(z){if(typeof z==="number")return z>=-180&&z<=180;if(typeof z==="string"){let Q=parseFloat(z);if(isNaN(Q))return!1;if(!/^-?\d+(\.\d+)?$/.test(z))return!1;return Q>=-180&&Q<=180}return!1}var R=(z)=>Iz(z);R.emit=(z,Q)=>{return`if (!_refs[${Q.addRef(Iz)}](${z})) ${Q.fail("isLongitude")};`};R.ruleName="isLongitude";var AZ=R,Bz=/^0x[0-9a-fA-F]{40}$/,IZ=q("isEthereumAddress",(z)=>Bz.test(z),(z,Q)=>{return`if (!_re[${Q.addRegex(Bz)}].test(${z})) ${Q.fail("isEthereumAddress")};`}),Dz=/^1[a-km-zA-HJ-NP-Z1-9]{25,34}$/,Pz=/^3[a-km-zA-HJ-NP-Z1-9]{25,34}$/,kz=/^(bc1)[a-z0-9]{6,87}$/,dZ=q("isBtcAddress",(z)=>Dz.test(z)||Pz.test(z)||kz.test(z),(z,Q)=>{let Z=Q.addRegex(Dz),$=Q.addRegex(Pz),K=Q.addRegex(kz);return`if (!_re[${Z}].test(${z}) && !_re[${$}].test(${z}) && !_re[${K}].test(${z})) ${Q.fail("isBtcAddress")};`}),yz=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"]),SZ=q("isISO4217CurrencyCode",(z)=>yz.has(z),(z,Q)=>{return`if (!_refs[${Q.addRef(yz)}].has(${z})) ${Q.fail("isISO4217CurrencyCode")};`}),Cz=/^\+[1-9]\d{6,14}$/,pZ=q("isPhoneNumber",(z)=>Cz.test(z),(z,Q)=>{return`if (!_re[${Q.addRegex(Cz)}].test(${z})) ${Q.fail("isPhoneNumber")};`});function fZ(z){let Q=z?.minLength??8,Z=z?.minLowercase??1,$=z?.minUppercase??1,K=z?.minNumbers??1,j=z?.minSymbols??1,J=(w)=>{if(w.length<Q)return!1;if(Z>0){if((w.match(/[a-z]/g)||[]).length<Z)return!1}if($>0){if((w.match(/[A-Z]/g)||[]).length<$)return!1}if(K>0){if((w.match(/[0-9]/g)||[]).length<K)return!1}if(j>0){if((w.match(/[^a-zA-Z0-9]/g)||[]).length<j)return!1}return!0},W=(w)=>{if(typeof w!=="string")return!1;return J(w)};return W.emit=(w,b)=>{return`if (!_refs[${b.addRef(J)}](${w})) ${b.fail("isStrongPassword")};`},W.ruleName="isStrongPassword",W.requiresType="string",W}var xz={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 oZ(z){let Q=xz[z],Z=($)=>{if(typeof $!=="string")return!1;if(!Q)return!1;return Q.test($)};return Z.emit=($,K)=>{if(!Q)return K.fail("isTaxId")+";";return`if (!_re[${K.addRegex(Q)}].test(${$})) ${K.fail("isTaxId")};`},Z.ruleName="isTaxId",Z.requiresType="string",Z}function EZ(z){let Q=(Z)=>{if(!Array.isArray(Z))return!1;return z.every(($)=>Z.includes($))};return Q.emit=(Z,$)=>{return`if (!_refs[${$.addRef(z)}].every(function(v){return ${Z}.indexOf(v)!==-1;})) ${$.fail("arrayContains")};`},Q.ruleName="arrayContains",Q}function _Z(z){let Q=(Z)=>{if(!Array.isArray(Z))return!1;return z.every(($)=>!Z.includes($))};return Q.emit=(Z,$)=>{return`if (_refs[${$.addRef(z)}].some(function(v){return ${Z}.indexOf(v)!==-1;})) ${$.fail("arrayNotContains")};`},Q.ruleName="arrayNotContains",Q}function sZ(z){let Q=(Z)=>Array.isArray(Z)&&Z.length>=z;return Q.emit=(Z,$)=>`if (${Z}.length < ${z}) ${$.fail("arrayMinSize")};`,Q.ruleName="arrayMinSize",Q}function NZ(z){let Q=(Z)=>Array.isArray(Z)&&Z.length<=z;return Q.emit=(Z,$)=>`if (${Z}.length > ${z}) ${$.fail("arrayMaxSize")};`,Q.ruleName="arrayMaxSize",Q}function iZ(z){let Q=(Z)=>{if(!Array.isArray(Z))return!1;if(z){let $=Z.map(z);return new Set($).size===$.length}return new Set(Z).size===Z.length};return Q.emit=(Z,$)=>{if(z){let K=$.addRef(z);return`{var _keys=${Z}.map(_refs[${K}]);if(new Set(_keys).size!==_keys.length)${$.fail("arrayUnique")};}`}return`if(new Set(${Z}).size!==${Z}.length)${$.fail("arrayUnique")};`},Q.ruleName="arrayUnique",Q}var E=(z)=>Array.isArray(z)&&z.length>0;E.emit=(z,Q)=>`if (${z}.length === 0) ${Q.fail("arrayNotEmpty")};`;E.ruleName="arrayNotEmpty";var nZ=E;function xZ(z){let Q=(Z)=>{if(Z===null||typeof Z!=="object"||Array.isArray(Z))return!1;let $=Object.keys(Z);if(z?.nullable)return $.some((K)=>Z[K]!=null);return $.length>0};return Q.emit=(Z,$)=>{if(z?.nullable)return`if (!_refs[${$.addRef(Q)}](${Z})) ${$.fail("isNotEmptyObject")};`;return`if (Object.keys(${Z}).length === 0) ${$.fail("isNotEmptyObject")};`},Q.ruleName="isNotEmptyObject",Q}function mZ(z){let Q=(Z)=>Z instanceof z;return Q.emit=(Z,$)=>{let K=$.addRef(z);return`if (!(${Z} instanceof _refs[${K}])) ${$.fail("isInstance")};`},Q.ruleName="isInstance",Q}var mz={"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 cZ(z){let Q=mz[z],Z=($)=>{if(typeof $!=="string")return!1;if(!Q)return!1;return Q.test($)};return Z.emit=($,K)=>{if(!Q)return K.fail("isMobilePhone")+";";return`if (!_re[${K.addRegex(Q)}].test(${$})) ${K.fail("isMobilePhone")};`},Z.ruleName="isMobilePhone",Z.requiresType="string",Z}var lz={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 rZ(z){let Q=lz[z],Z=($)=>{if(typeof $!=="string")return!1;if(!Q)return!1;return Q.test($)};return Z.emit=($,K)=>{if(!Q)return K.fail("isPostalCode")+";";return`if (!_re[${K.addRegex(Q)}].test(${$})) ${K.fail("isPostalCode")};`},Z.ruleName="isPostalCode",Z.requiresType="string",Z}var cz={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 tZ(z){let Q=cz[z],Z=($)=>{if(typeof $!=="string")return!1;if(!Q)return!1;return Q.test($)};return Z.emit=($,K)=>{if(!Q)return K.fail("isIdentityCard")+";";return`if (!_re[${K.addRegex(Q)}].test(${$})) ${K.fail("isIdentityCard")};`},Z.ruleName="isIdentityCard",Z.requiresType="string",Z}var rz={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 vZ(z){let Q=rz[z],Z=($)=>{if(typeof $!=="string")return!1;if(!Q)return!1;return Q.test($)};return Z.emit=($,K)=>{if(!Q)return K.fail("isPassportNumber")+";";return`if (!_re[${K.addRegex(Q)}].test(${$})) ${K.fail("isPassportNumber")};`},Z.ruleName="isPassportNumber",Z.requiresType="string",Z}
|
|
12
|
-
export{vz as eb,ez as fb,az as gb,zQ as hb,QQ as ib,ZQ as jb,KQ as kb,jQ as lb,JQ as mb,qQ as nb,wQ as ob,WQ as pb,bQ as qb,YQ as rb,GQ as sb,FQ as tb,MQ as ub,XQ as vb,UQ as wb,HQ as xb,BQ as yb,PQ as zb,kQ as Ab,yQ as Bb,CQ as Cb,OQ as Db,gQ as Eb,TQ as Fb,LQ as Gb,AQ as Hb,IQ as Ib,dQ as Jb,SQ as Kb,pQ as Lb,fQ as Mb,oQ as Nb,RQ as Ob,EQ as Pb,_Q as Qb,sQ as Rb,NQ as Sb,iQ as Tb,nQ as Ub,uQ as Vb,xQ as Wb,mQ as Xb,lQ as Yb,cQ as Zb,rQ as _b,tQ as $b,vQ as ac,eQ as bc,aQ as cc,zZ as dc,QZ as ec,ZZ as fc,$Z as gc,KZ as hc,jZ as ic,JZ as jc,qZ as kc,wZ as lc,WZ as mc,bZ as nc,YZ as oc,VZ as pc,GZ as qc,FZ as rc,MZ as sc,XZ as tc,UZ as uc,hZ as vc,HZ as wc,BZ as xc,DZ as yc,PZ as zc,kZ as Ac,yZ as Bc,CZ as Cc,OZ as Dc,gZ as Ec,TZ as Fc,LZ as Gc,AZ as Hc,IZ as Ic,dZ as Jc,SZ as Kc,pZ as Lc,fZ as Mc,oZ as Nc,EZ as Oc,_Z as Pc,sZ as Qc,NZ as Rc,iZ as Sc,nZ as Tc,xZ as Uc,mZ as Vc,cZ as Wc,rZ as Xc,tZ as Yc,vZ as Zc};
|
|
13
|
-
|
|
14
|
-
//# debugId=4B47A8B54E42A7B464756E2164756E21
|
|
15
|
-
//# sourceMappingURL=index-6pbm9cq6.js.map
|