@zipbul/baker 0.1.2 → 1.0.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.
- package/README.ko.md +368 -280
- package/README.md +369 -281
- package/dist/index-57gr0v18.js +6 -0
- package/dist/index-aegrb1kn.js +6 -0
- package/dist/index-xdn55cz3.js +4 -0
- package/dist/index.d.ts +6 -5
- package/dist/index.js +151 -152
- package/dist/src/configure.d.ts +33 -0
- package/dist/src/create-rule.d.ts +6 -15
- package/dist/src/decorators/field.d.ts +74 -0
- package/dist/src/decorators/index.d.ts +2 -14
- package/dist/src/decorators/index.js +2 -2
- package/dist/src/functions/deserialize.d.ts +2 -1
- package/dist/src/functions/serialize.d.ts +2 -2
- package/dist/src/functions/to-json-schema.d.ts +6 -0
- package/dist/src/interfaces.d.ts +5 -26
- package/dist/src/registry.d.ts +0 -8
- package/dist/src/rules/index.d.ts +2 -0
- package/dist/src/rules/index.js +11 -2
- package/dist/src/seal/circular-analyzer.d.ts +2 -6
- package/dist/src/seal/index.d.ts +1 -1
- package/dist/src/seal/seal.d.ts +21 -6
- package/dist/src/symbols.js +2 -2
- package/dist/src/types.d.ts +7 -7
- package/dist/src/utils.d.ts +2 -0
- package/package.json +1 -1
- package/dist/index-3gcf6hkv.js +0 -5
- package/dist/index-mx6gnk4h.js +0 -6
- package/dist/index-wy5sh2nx.js +0 -15
- package/dist/src/decorators/array.d.ts +0 -13
- package/dist/src/decorators/common.d.ts +0 -39
- package/dist/src/decorators/date.d.ts +0 -5
- package/dist/src/decorators/locales.d.ts +0 -9
- package/dist/src/decorators/nested.d.ts +0 -17
- package/dist/src/decorators/number.d.ts +0 -15
- package/dist/src/decorators/object.d.ts +0 -9
- package/dist/src/decorators/schema.d.ts +0 -13
- package/dist/src/decorators/string.d.ts +0 -72
- package/dist/src/decorators/transform.d.ts +0 -68
- package/dist/src/decorators/typechecker.d.ts +0 -18
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import type { EmittableRule } from '../types';
|
|
2
|
+
export interface ArrayOfMarker {
|
|
3
|
+
readonly [key: symbol]: true;
|
|
4
|
+
readonly rules: EmittableRule[];
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* 배열의 각 원소에 규칙 적용.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* @Field(arrayOf(isString(), minLength(1)))
|
|
11
|
+
* tags!: string[];
|
|
12
|
+
*/
|
|
13
|
+
export declare function arrayOf(...rules: EmittableRule[]): ArrayOfMarker;
|
|
14
|
+
export interface FieldTransformParams {
|
|
15
|
+
value: unknown;
|
|
16
|
+
key: string;
|
|
17
|
+
obj: Record<string, unknown>;
|
|
18
|
+
direction: 'deserialize' | 'serialize';
|
|
19
|
+
}
|
|
20
|
+
export interface JsonSchemaOverride {
|
|
21
|
+
title?: string;
|
|
22
|
+
description?: string;
|
|
23
|
+
default?: unknown;
|
|
24
|
+
examples?: unknown[];
|
|
25
|
+
[key: string]: unknown;
|
|
26
|
+
}
|
|
27
|
+
export interface FieldOptions {
|
|
28
|
+
/** 중첩 DTO 타입. thunk — 순환 참조 지원. [Dto]면 배열. */
|
|
29
|
+
type?: () => (new (...args: any[]) => any) | (new (...args: any[]) => any)[];
|
|
30
|
+
/** 다형성 discriminator 설정 — type과 함께 사용 */
|
|
31
|
+
discriminator?: {
|
|
32
|
+
property: string;
|
|
33
|
+
subTypes: {
|
|
34
|
+
value: Function;
|
|
35
|
+
name: string;
|
|
36
|
+
}[];
|
|
37
|
+
};
|
|
38
|
+
/** discriminator 프로퍼티를 결과 객체에 유지할지 여부 */
|
|
39
|
+
keepDiscriminatorProperty?: boolean;
|
|
40
|
+
/** 검증 규칙 배열 */
|
|
41
|
+
rules?: (EmittableRule | ArrayOfMarker)[];
|
|
42
|
+
/** undefined 허용 */
|
|
43
|
+
optional?: boolean;
|
|
44
|
+
/** null 허용 */
|
|
45
|
+
nullable?: boolean;
|
|
46
|
+
/** JSON 키 매핑 (양방향) */
|
|
47
|
+
name?: string;
|
|
48
|
+
/** deserialize 방향 키 매핑 (name과 동시 사용 불가) */
|
|
49
|
+
deserializeName?: string;
|
|
50
|
+
/** serialize 방향 키 매핑 (name과 동시 사용 불가) */
|
|
51
|
+
serializeName?: string;
|
|
52
|
+
/** 필드 제외 — true: 양방향, 'deserializeOnly': 역직렬화만, 'serializeOnly': 직렬화만 */
|
|
53
|
+
exclude?: boolean | 'deserializeOnly' | 'serializeOnly';
|
|
54
|
+
/** 그룹 — 필드 가시성 제어 + validation rule 조건부 적용 */
|
|
55
|
+
groups?: string[];
|
|
56
|
+
/** 조건부 검증 — false 시 필드 전체 검증 skip */
|
|
57
|
+
when?: (obj: any) => boolean;
|
|
58
|
+
/** JSON Schema 커스텀 (프로퍼티 레벨) */
|
|
59
|
+
schema?: JsonSchemaOverride;
|
|
60
|
+
/** 값 변환 함수 */
|
|
61
|
+
transform?: (params: FieldTransformParams) => unknown;
|
|
62
|
+
/** transform 방향 제한 */
|
|
63
|
+
transformDirection?: 'deserializeOnly' | 'serializeOnly';
|
|
64
|
+
}
|
|
65
|
+
type RuleArg = EmittableRule | ArrayOfMarker;
|
|
66
|
+
/** @Field() — 빈 필드 등록 */
|
|
67
|
+
export declare function Field(): PropertyDecorator;
|
|
68
|
+
/** @Field(isString(), email()) — 가변 인자 규칙 */
|
|
69
|
+
export declare function Field(...rules: RuleArg[]): PropertyDecorator;
|
|
70
|
+
/** @Field({ type: () => Dto }) — 옵션 객체 */
|
|
71
|
+
export declare function Field(options: FieldOptions): PropertyDecorator;
|
|
72
|
+
/** @Field(isString(), { optional: true }) — 규칙 + 옵션 혼합 */
|
|
73
|
+
export declare function Field(...rulesAndOptions: [...RuleArg[], FieldOptions]): PropertyDecorator;
|
|
74
|
+
export {};
|
|
@@ -1,14 +1,2 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
3
|
-
export type { NestedOptions } from './nested';
|
|
4
|
-
export { IsString, IsNumber, IsBoolean, IsDate, IsEnum, IsInt, IsArray, IsObject, } from './typechecker';
|
|
5
|
-
export { Min, Max, IsPositive, IsNegative, IsDivisibleBy, } from './number';
|
|
6
|
-
export { MinDate, MaxDate, } from './date';
|
|
7
|
-
export { MinLength, MaxLength, Length, Contains, NotContains, Matches, IsLowercase, IsUppercase, IsAscii, IsAlpha, IsAlphanumeric, IsBooleanString, IsNumberString, IsDecimal, IsFullWidth, IsHalfWidth, IsVariableWidth, IsMultibyte, IsSurrogatePair, IsHexadecimal, IsOctal, IsEmail, IsURL, IsUUID, IsIP, IsHexColor, IsRgbColor, IsHSL, IsMACAddress, IsISBN, IsISIN, IsISO8601, IsISRC, IsISSN, IsJWT, IsLatLong, IsLocale, IsDataURI, IsFQDN, IsPort, IsEAN, IsISO31661Alpha2, IsISO31661Alpha3, IsBIC, IsFirebasePushId, IsSemVer, IsMongoId, IsJSON, IsBase32, IsBase58, IsBase64, IsDateString, IsMimeType, IsCurrency, IsMagnetURI, IsCreditCard, IsIBAN, IsByteLength, IsHash, IsRFC3339, IsMilitaryTime, IsLatitude, IsLongitude, IsEthereumAddress, IsBtcAddress, IsISO4217CurrencyCode, IsPhoneNumber, IsStrongPassword, IsTaxId, } from './string';
|
|
8
|
-
export type { IsEmailOptions, IsURLOptions, IsBase32Options, IsBase64Options, IsDateStringOptions, IsCurrencyOptions, IsMACAddressOptions, IsIBANOptions, IsISSNOptions, IsFQDNOptions, IsLatLongOptions, IsISO8601Options, IsNumberStringOptions, IsDecimalOptions, IsStrongPasswordOptions, } from './string';
|
|
9
|
-
export { ArrayContains, ArrayNotContains, ArrayMinSize, ArrayMaxSize, ArrayUnique, ArrayNotEmpty, } from './array';
|
|
10
|
-
export { IsNotEmptyObject, IsInstance, } from './object';
|
|
11
|
-
export { Expose, Exclude, Transform, Type, } from './transform';
|
|
12
|
-
export type { ExposeOptions, ExcludeOptions, TransformOptions, TypeOptions, } from './transform';
|
|
13
|
-
export { Schema } from './schema';
|
|
14
|
-
export { IsMobilePhone, IsPostalCode, IsIdentityCard, IsPassportNumber, } from './locales';
|
|
1
|
+
export { Field, arrayOf } from './field';
|
|
2
|
+
export type { FieldOptions, FieldTransformParams, JsonSchemaOverride, ArrayOfMarker } from './field';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{
|
|
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};
|
|
3
3
|
|
|
4
|
-
//# debugId=
|
|
4
|
+
//# debugId=9E4BFE621FA3997464756E2164756E21
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import type { RuntimeOptions } from '../interfaces';
|
|
2
2
|
/**
|
|
3
3
|
* input → Class 인스턴스 변환 + 검증.
|
|
4
|
+
* - 첫 호출 시 auto-seal (globalRegistry 전체 배치)
|
|
4
5
|
* - 성공: Promise<T> 반환
|
|
5
6
|
* - 검증 실패: BakerValidationError throw
|
|
6
|
-
* -
|
|
7
|
+
* - 데코레이터 없는 클래스: SealError throw
|
|
7
8
|
*/
|
|
8
9
|
export declare function deserialize<T>(Class: new (...args: any[]) => T, input: unknown, options?: RuntimeOptions): Promise<T>;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { RuntimeOptions } from '../interfaces';
|
|
2
2
|
/**
|
|
3
3
|
* Class 인스턴스 → plain 객체 변환.
|
|
4
|
+
* - 첫 호출 시 auto-seal (globalRegistry 전체 배치)
|
|
4
5
|
* - 무검증 전제 — 항상 Record<string, unknown> 반환 (또는 Promise)
|
|
5
|
-
* -
|
|
6
|
-
* - 미봉인: SealError throw
|
|
6
|
+
* - 데코레이터 없는 클래스: SealError throw
|
|
7
7
|
*/
|
|
8
8
|
export declare function serialize<T>(instance: T, options?: RuntimeOptions): Promise<Record<string, unknown>>;
|
|
@@ -4,6 +4,12 @@ export interface ToJsonSchemaOptions {
|
|
|
4
4
|
groups?: string[];
|
|
5
5
|
/** true: 모든 object 스키마에 unevaluatedProperties: false 추가 (seal의 whitelist 옵션 대응) */
|
|
6
6
|
whitelist?: boolean;
|
|
7
|
+
/** 클래스 레벨 JSON Schema 메타데이터 (title, description 등) */
|
|
8
|
+
title?: string;
|
|
9
|
+
description?: string;
|
|
10
|
+
$id?: string;
|
|
11
|
+
/** 매핑되지 않은 규칙에 대한 콜백 (기본: console.warn) */
|
|
12
|
+
onUnmappedRule?: (ruleName: string, fieldKey: string) => void;
|
|
7
13
|
}
|
|
8
14
|
/**
|
|
9
15
|
* 등록된 DTO 클래스를 JSON Schema Draft 2020-12 형식으로 변환한다.
|
package/dist/src/interfaces.d.ts
CHANGED
|
@@ -1,29 +1,9 @@
|
|
|
1
|
-
export interface ValidationOptions {
|
|
2
|
-
/** true: 배열의 각 원소에 규칙 적용 */
|
|
3
|
-
each?: boolean;
|
|
4
|
-
/** 이 규칙이 속하는 그룹 목록 */
|
|
5
|
-
groups?: string[];
|
|
6
|
-
/** 사용자 정의 에러 메시지 — 검증 실패 시 BakerError.message에 포함 */
|
|
7
|
-
message?: string | ((args: {
|
|
8
|
-
property: string;
|
|
9
|
-
value: unknown;
|
|
10
|
-
constraints: Record<string, unknown>;
|
|
11
|
-
}) => string);
|
|
12
|
-
/** 검증 실패 시 BakerError.context에 포함할 임의 값 */
|
|
13
|
-
context?: unknown;
|
|
14
|
-
}
|
|
15
1
|
export interface SealOptions {
|
|
16
2
|
/**
|
|
17
3
|
* validation 데코레이터를 타입 힌트로 활용한 자동 변환.
|
|
18
4
|
* @default false
|
|
19
5
|
*/
|
|
20
6
|
enableImplicitConversion?: boolean;
|
|
21
|
-
/**
|
|
22
|
-
* 순환 참조 감지.
|
|
23
|
-
* 'auto' = 정적 분석으로 필요한 DTO만 WeakSet 삽입.
|
|
24
|
-
* @default 'auto'
|
|
25
|
-
*/
|
|
26
|
-
enableCircularCheck?: boolean | 'auto';
|
|
27
7
|
/**
|
|
28
8
|
* input에 해당 키가 없을 때 클래스 기본값을 사용.
|
|
29
9
|
* @default false
|
|
@@ -34,18 +14,17 @@ export interface SealOptions {
|
|
|
34
14
|
* @default false
|
|
35
15
|
*/
|
|
36
16
|
stopAtFirstError?: boolean;
|
|
37
|
-
/**
|
|
38
|
-
* true: 생성된 executor 소스코드를 `SealedExecutors._source`에 저장.
|
|
39
|
-
* 디버깅용. 프로덕션에서는 false(기본).
|
|
40
|
-
* @default false
|
|
41
|
-
*/
|
|
42
|
-
debug?: boolean;
|
|
43
17
|
/**
|
|
44
18
|
* true: 미선언 필드 거부. mergeInheritance(Class)의 key 집합을 허용 목록으로 사용.
|
|
45
19
|
* @Exclude 필드도 whitelist에 포함 — 존재는 허용하되 결과에서 제외.
|
|
46
20
|
* @default false
|
|
47
21
|
*/
|
|
48
22
|
whitelist?: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* true: 생성 코드에 필드 제외 사유를 주석으로 포함.
|
|
25
|
+
* @default false
|
|
26
|
+
*/
|
|
27
|
+
debug?: boolean;
|
|
49
28
|
}
|
|
50
29
|
export interface RuntimeOptions {
|
|
51
30
|
/** 요청별 groups — 요청마다 다를 수 있으므로 런타임에 전달 */
|
package/dist/src/registry.d.ts
CHANGED
|
@@ -6,11 +6,3 @@
|
|
|
6
6
|
* - 메타데이터는 여기에 저장되지 않음 — 인덱스(어떤 클래스가 등록되었는지)로만 사용
|
|
7
7
|
*/
|
|
8
8
|
export declare const globalRegistry: Set<Function>;
|
|
9
|
-
/**
|
|
10
|
-
* 클래스를 레지스트리에서 제거한다.
|
|
11
|
-
* seal() 후 더 이상 필요 없는 DTO를 GC 대상으로 돌린다 (§L1).
|
|
12
|
-
*
|
|
13
|
-
* @param cls 제거할 클래스 생성자
|
|
14
|
-
* @returns 세트에 존재했는지 여부
|
|
15
|
-
*/
|
|
16
|
-
export declare function unregister(cls: Function): boolean;
|
|
@@ -9,3 +9,5 @@ export { arrayContains, arrayNotContains, arrayMinSize, arrayMaxSize, arrayUniqu
|
|
|
9
9
|
export { isNotEmptyObject, isInstance } from './object';
|
|
10
10
|
export type { IsNotEmptyObjectOptions } from './object';
|
|
11
11
|
export { isMobilePhone, isPostalCode, isIdentityCard, isPassportNumber } from './locales';
|
|
12
|
+
export { arrayOf } from '../decorators/field';
|
|
13
|
+
export type { ArrayOfMarker } from '../decorators/field';
|
package/dist/src/rules/index.js
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{
|
|
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+=`
|
|
3
|
+
else if (isNaN(${$})) ${K.fail("isNumber")};`;if(!Q)W+=`
|
|
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)=>`{
|
|
6
|
+
var _cs=${b}.replace(/[\\s-]/g,'');
|
|
7
|
+
if(_cs.length===0||!/^\\d+$/.test(_cs)){${z.fail("isCreditCard")}}
|
|
8
|
+
else{var _sum=0,_alt=false;
|
|
9
|
+
for(var _ci=_cs.length-1;_ci>=0;_ci--){var _cn=_cs.charCodeAt(_ci)-48;if(_alt){_cn*=2;if(_cn>9)_cn-=9;}_sum+=_cn;_alt=!_alt;}
|
|
10
|
+
if(_sum%10!==0)${z.fail("isCreditCard")};}
|
|
11
|
+
}`;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};
|
|
3
12
|
|
|
4
|
-
//# debugId=
|
|
13
|
+
//# debugId=CD2241A1B47E6FB464756E2164756E21
|
|
5
14
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,13 +1,9 @@
|
|
|
1
|
-
import type { RawClassMeta } from '../types';
|
|
2
|
-
import type { SealOptions } from '../interfaces';
|
|
3
1
|
/**
|
|
4
2
|
* 순환 참조 정적 분석 (§4.6)
|
|
5
3
|
*
|
|
6
|
-
*
|
|
7
|
-
* - enableCircularCheck: false → 항상 false
|
|
8
|
-
* - 'auto' (기본) → @Type 참조 그래프를 DFS로 탐색해 순환 감지
|
|
4
|
+
* @Type 참조 그래프를 DFS로 탐색해 순환 감지.
|
|
9
5
|
*
|
|
10
6
|
* 순환 없는 flat DTO → false (WeakSet 오버헤드 0)
|
|
11
7
|
* 순환 있는 DTO → true (WeakSet 자동 삽입)
|
|
12
8
|
*/
|
|
13
|
-
export declare function analyzeCircular(Class: Function
|
|
9
|
+
export declare function analyzeCircular(Class: Function): boolean;
|
package/dist/src/seal/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { _autoSeal, _sealOnDemand, _resetForTesting, _sealedClasses, mergeInheritance } from './seal';
|
|
2
2
|
export { buildDeserializeCode } from './deserialize-builder';
|
|
3
3
|
export { buildSerializeCode } from './serialize-builder';
|
|
4
4
|
export { analyzeCircular } from './circular-analyzer';
|
package/dist/src/seal/seal.d.ts
CHANGED
|
@@ -1,15 +1,28 @@
|
|
|
1
|
-
import type { RawClassMeta } from '../types';
|
|
2
|
-
|
|
1
|
+
import type { RawClassMeta, SealedExecutors } from '../types';
|
|
2
|
+
/** @internal Placeholder executor for circular dependency detection during seal */
|
|
3
|
+
declare function _circularPlaceholder(className: string): SealedExecutors<unknown>;
|
|
4
|
+
/** @internal — configure()에서 사후 호출 경고용 */
|
|
5
|
+
export declare function _isSealed(): boolean;
|
|
6
|
+
/** seal 완료된 클래스 목록 — unseal에서 SEALED 제거 시 사용 */
|
|
7
|
+
export declare const _sealedClasses: Set<Function>;
|
|
3
8
|
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* - 순환 참조 DTO는 placeholder 패턴으로 안전하게 처리
|
|
9
|
+
* @internal — deserialize/serialize에서 호출.
|
|
10
|
+
* 이미 sealed면 no-op.
|
|
7
11
|
*/
|
|
8
|
-
export declare function
|
|
12
|
+
export declare function _autoSeal(): void;
|
|
13
|
+
/**
|
|
14
|
+
* @internal — 동적 import로 auto-seal 이후에 등록된 클래스를 즉석 seal.
|
|
15
|
+
* Class[RAW]가 있고 Class[SEALED]가 없는 경우에만 동작.
|
|
16
|
+
*/
|
|
17
|
+
export declare function _sealOnDemand(Class: Function): void;
|
|
9
18
|
/**
|
|
10
19
|
* @internal 테스트 전용 — testing.ts의 unseal()에서 호출
|
|
11
20
|
*/
|
|
12
21
|
export declare function _resetForTesting(): void;
|
|
22
|
+
/**
|
|
23
|
+
* @internal — serialize/deserialize에서 사용. sealed executor를 보장하여 반환.
|
|
24
|
+
*/
|
|
25
|
+
export declare function _ensureSealed(Class: Function): SealedExecutors<unknown>;
|
|
13
26
|
/**
|
|
14
27
|
* Class의 prototype chain을 따라 RAW 메타데이터를 child-first로 병합한다.
|
|
15
28
|
*
|
|
@@ -24,4 +37,6 @@ export declare function _resetForTesting(): void;
|
|
|
24
37
|
export declare function mergeInheritance(Class: Function): RawClassMeta;
|
|
25
38
|
export declare const __testing__: {
|
|
26
39
|
mergeInheritance: typeof mergeInheritance;
|
|
40
|
+
_circularPlaceholder: typeof _circularPlaceholder;
|
|
27
41
|
};
|
|
42
|
+
export {};
|
package/dist/src/symbols.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{
|
|
2
|
+
import{e as a,f as b,g as c}from"../index-aegrb1kn.js";export{b as SEALED,c as RAW_CLASS_SCHEMA,a as RAW};
|
|
3
3
|
|
|
4
|
-
//# debugId=
|
|
4
|
+
//# debugId=51B5F46B85FFE3B364756E2164756E21
|
|
5
5
|
//# sourceMappingURL=symbols.js.map
|
package/dist/src/types.d.ts
CHANGED
|
@@ -68,7 +68,7 @@ export interface ExcludeDef {
|
|
|
68
68
|
serializeOnly?: boolean;
|
|
69
69
|
}
|
|
70
70
|
export interface TypeDef {
|
|
71
|
-
fn: () => new (...args: any[]) => any;
|
|
71
|
+
fn: () => (new (...args: any[]) => any) | (new (...args: any[]) => any)[];
|
|
72
72
|
discriminator?: {
|
|
73
73
|
property: string;
|
|
74
74
|
subTypes: {
|
|
@@ -77,6 +77,10 @@ export interface TypeDef {
|
|
|
77
77
|
}[];
|
|
78
78
|
};
|
|
79
79
|
keepDiscriminatorProperty?: boolean;
|
|
80
|
+
/** seal() 정규화 결과 — fn()이 배열을 반환하면 true */
|
|
81
|
+
isArray?: boolean;
|
|
82
|
+
/** seal() 정규화 결과 — fn() 해석 후 캐시된 클래스 (프리미티브 제외, DTO만) */
|
|
83
|
+
resolvedClass?: new (...args: any[]) => any;
|
|
80
84
|
}
|
|
81
85
|
export interface PropertyFlags {
|
|
82
86
|
/** @IsOptional() — undefined/null 시 validation 전체 skip */
|
|
@@ -116,11 +120,8 @@ export interface SealedExecutors<T> {
|
|
|
116
120
|
_isAsync: boolean;
|
|
117
121
|
/** serialize 방향에 async transform/nested가 있으면 true */
|
|
118
122
|
_isSerializeAsync: boolean;
|
|
119
|
-
/**
|
|
120
|
-
|
|
121
|
-
deserialize: string;
|
|
122
|
-
serialize: string;
|
|
123
|
-
};
|
|
123
|
+
/** seal 시 병합된 메타데이터 캐시 — toJsonSchema에서 사용 (RAW 삭제 후에도 유효) */
|
|
124
|
+
_merged?: RawClassMeta;
|
|
124
125
|
}
|
|
125
126
|
export interface JsonSchema202012 {
|
|
126
127
|
$schema?: string;
|
|
@@ -177,4 +178,3 @@ export interface JsonSchema202012 {
|
|
|
177
178
|
contentSchema?: JsonSchema202012;
|
|
178
179
|
[key: string]: unknown;
|
|
179
180
|
}
|
|
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": "1.0.0",
|
|
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)",
|
package/dist/index-3gcf6hkv.js
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
// @bun
|
|
2
|
-
import{$b as JI,$c as J6,Ab as O,Ac as OI,Bb as v,Bc as vI,Cb as u,Cc as uI,Db as m,Dc as mI,Eb as V,Ec as VI,Fb as d,Fc as dI,Gb as k,Gc as kI,Hb as g,Hc as gI,Ib as y,Ic as yI,Jb as c,Jc as cI,Kb as r,Kc as rI,Lb as l,Lc as lI,Mb as a,Mc as aI,Nb as e,Nc as eI,Ob as p,Oc as pI,Pb as s,Pc as sI,Qb as n,Qc as nI,Rb as i,Rc as iI,Sb as t,Sc as tI,Tb as o,Tc as oI,Ub as II,Uc as I6,Vb as BI,Vc as B6,Wb as EI,Wc as E6,Xb as NI,Xc as N6,Yb as QI,Yc as Q6,Zb as UI,Zc as U6,_b as xI,_c as x6,ac as KI,ad as K6,bc as XI,bd as X6,cc as YI,cd as Y6,dc as ZI,ec as $I,fc as GI,gc as LI,hc as PI,ic as qI,jb as w,jc as wI,kb as z,kc as zI,lb as A,lc as AI,mb as H,mc as HI,nb as S,nc as SI,ob as j,oc as jI,pb as C,pc as CI,qb as T,qc as TI,rb as W,rc as WI,sb as _,sc as _I,tb as M,tc as MI,ub as F,uc as FI,vb as R,vc as RI,wb as D,wc as DI,xb as f,xc as fI,yb as b,yc as bI,zb as h,zc as hI}from"./index-wy5sh2nx.js";import{dd as K,fd as Y}from"./index-mx6gnk4h.js";var J=new Set;function w3(I){return J.delete(I)}function U(I,B){if(J.add(I),!Object.prototype.hasOwnProperty.call(I,K))I[K]=Object.create(null);let E=I[K];return E[B]??={validation:[],transform:[],expose:[],exclude:null,type:null,flags:{},schema:null}}function Q(I,B,E){U(I.constructor,B).validation.push(E)}function $(I,B,E){U(I.constructor,B).transform.push(E)}function G(I,B,E){U(I.constructor,B).expose.push(E)}function L(I,B,E){let N=U(I.constructor,B);N.exclude=E}function X(I,B,E){let N=U(I.constructor,B);N.type=E}function P(I,B,E){let N=U(I.constructor,B);if(typeof E==="function"||typeof N.schema==="function")N.schema=E;else N.schema={...N.schema??{},...E}}function q(I,B){J.add(I);let E=I[Y];I[Y]={...E??{},...B}}function Z6(I){return(B,E)=>{let N=U(B.constructor,E);N.flags.isDefined=!0}}function $6(I){return(B,E)=>{let N=U(B.constructor,E);N.flags.isOptional=!0}}function G6(I){return(B,E)=>{let N=U(B.constructor,E);N.flags.validateIf=I}}function L6(I){return(B,E)=>{let N=U(B.constructor,E);if(N.flags.validateNested=!0,I?.each)N.flags.validateNestedEach=!0}}function P6(I){return(B,E)=>{let N=U(B.constructor,E);N.flags.isNullable=!0}}function q6(I,B){return(E,N)=>{Q(E,N,{rule:w(I),each:B?.each,groups:B?.groups,message:B?.message,context:B?.context})}}function w6(I,B){return(E,N)=>{Q(E,N,{rule:z(I),each:B?.each,groups:B?.groups,message:B?.message,context:B?.context})}}function z6(I){return(B,E)=>{Q(B,E,{rule:A,each:I?.each,groups:I?.groups,message:I?.message,context:I?.context})}}function A6(I){return(B,E)=>{Q(B,E,{rule:H,each:I?.each,groups:I?.groups,message:I?.message,context:I?.context})}}function H6(I,B){return(E,N)=>{Q(E,N,{rule:S(I),each:B?.each,groups:B?.groups,message:B?.message,context:B?.context})}}function S6(I,B){return(E,N)=>{Q(E,N,{rule:j(I),each:B?.each,groups:B?.groups,message:B?.message,context:B?.context})}}class j6 extends Error{errors;className;constructor(I,B){let E=B?`Validation failed for ${B}`:"Validation failed";super(`${E}: ${I.length} error(s)`);this.name="BakerValidationError",this.errors=I,this.className=B}}class Z extends Error{constructor(I){super(I);this.name="SealError"}}function C6(I,B){if(B?.discriminator&&B?.each)throw new Z("@Nested: discriminator + each \uB3D9\uC2DC \uC0AC\uC6A9 \uBD88\uAC00");return(E,N)=>{X(E,N,{fn:I,discriminator:B?.discriminator,keepDiscriminatorProperty:B?.keepDiscriminatorProperty});let x=U(E.constructor,N);if(x.flags.validateNested=!0,B?.each)x.flags.validateNestedEach=!0}}function T6(I){return(B,E)=>{Q(B,E,{rule:C,each:I?.each,groups:I?.groups,message:I?.message,context:I?.context})}}function W6(I,B){return(E,N)=>{Q(E,N,{rule:T(I),each:B?.each,groups:B?.groups,message:B?.message,context:B?.context})}}function _6(I){return(B,E)=>{Q(B,E,{rule:W,each:I?.each,groups:I?.groups,message:I?.message,context:I?.context})}}function M6(I){return(B,E)=>{Q(B,E,{rule:_,each:I?.each,groups:I?.groups,message:I?.message,context:I?.context})}}function F6(I,B){return(E,N)=>{Q(E,N,{rule:M(I),each:B?.each,groups:B?.groups,message:B?.message,context:B?.context})}}function R6(I){return(B,E)=>{Q(B,E,{rule:F,each:I?.each,groups:I?.groups,message:I?.message,context:I?.context})}}function D6(I){return(B,E)=>{Q(B,E,{rule:R,each:I?.each,groups:I?.groups,message:I?.message,context:I?.context})}}function f6(I){return(B,E)=>{Q(B,E,{rule:D,each:I?.each,groups:I?.groups,message:I?.message,context:I?.context})}}function b6(I,B){return(E,N)=>{Q(E,N,{rule:f(I,B?.exclusive?{exclusive:!0}:void 0),each:B?.each,groups:B?.groups,message:B?.message,context:B?.context})}}function h6(I,B){return(E,N)=>{Q(E,N,{rule:b(I,B?.exclusive?{exclusive:!0}:void 0),each:B?.each,groups:B?.groups,message:B?.message,context:B?.context})}}function O6(I){return(B,E)=>{Q(B,E,{rule:h,each:I?.each,groups:I?.groups,message:I?.message,context:I?.context})}}function v6(I){return(B,E)=>{Q(B,E,{rule:O,each:I?.each,groups:I?.groups,message:I?.message,context:I?.context})}}function u6(I,B){return(E,N)=>{Q(E,N,{rule:v(I),each:B?.each,groups:B?.groups,message:B?.message,context:B?.context})}}function m6(I,B){return(E,N)=>{Q(E,N,{rule:u(I),each:B?.each,groups:B?.groups,message:B?.message,context:B?.context})}}function V6(I,B){return(E,N)=>{Q(E,N,{rule:m(I),each:B?.each,groups:B?.groups,message:B?.message,context:B?.context})}}function d6(I,B){return(E,N)=>{Q(E,N,{rule:V(I),each:B?.each,groups:B?.groups,message:B?.message,context:B?.context})}}function k6(I,B){return(E,N)=>{Q(E,N,{rule:d(I),each:B?.each,groups:B?.groups,message:B?.message,context:B?.context})}}function g6(I,B,E){return(N,x)=>{Q(N,x,{rule:k(I,B),each:E?.each,groups:E?.groups,message:E?.message,context:E?.context})}}function y6(I,B){return(E,N)=>{Q(E,N,{rule:g(I),each:B?.each,groups:B?.groups,message:B?.message,context:B?.context})}}function c6(I,B){return(E,N)=>{Q(E,N,{rule:y(I),each:B?.each,groups:B?.groups,message:B?.message,context:B?.context})}}function r6(I,B,E){return(N,x)=>{Q(N,x,{rule:c(I,B),each:E?.each,groups:E?.groups,message:E?.message,context:E?.context})}}function l6(I){return(B,E)=>{Q(B,E,{rule:r,each:I?.each,groups:I?.groups,message:I?.message,context:I?.context})}}function a6(I){return(B,E)=>{Q(B,E,{rule:l,each:I?.each,groups:I?.groups,message:I?.message,context:I?.context})}}function e6(I){return(B,E)=>{Q(B,E,{rule:a,each:I?.each,groups:I?.groups,message:I?.message,context:I?.context})}}function p6(I){return(B,E)=>{Q(B,E,{rule:e,each:I?.each,groups:I?.groups,message:I?.message,context:I?.context})}}function s6(I){return(B,E)=>{Q(B,E,{rule:p,each:I?.each,groups:I?.groups,message:I?.message,context:I?.context})}}function n6(I){return(B,E)=>{Q(B,E,{rule:s,each:I?.each,groups:I?.groups,message:I?.message,context:I?.context})}}function i6(I,B){return(E,N)=>{Q(E,N,{rule:n(I),each:B?.each,groups:B?.groups,message:B?.message,context:B?.context})}}function t6(I,B){return(E,N)=>{Q(E,N,{rule:i(I),each:B?.each,groups:B?.groups,message:B?.message,context:B?.context})}}function o6(I){return(B,E)=>{Q(B,E,{rule:t,each:I?.each,groups:I?.groups,message:I?.message,context:I?.context})}}function IB(I){return(B,E)=>{Q(B,E,{rule:o,each:I?.each,groups:I?.groups,message:I?.message,context:I?.context})}}function BB(I){return(B,E)=>{Q(B,E,{rule:II,each:I?.each,groups:I?.groups,message:I?.message,context:I?.context})}}function EB(I){return(B,E)=>{Q(B,E,{rule:BI,each:I?.each,groups:I?.groups,message:I?.message,context:I?.context})}}function NB(I){return(B,E)=>{Q(B,E,{rule:EI,each:I?.each,groups:I?.groups,message:I?.message,context:I?.context})}}function QB(I){return(B,E)=>{Q(B,E,{rule:NI,each:I?.each,groups:I?.groups,message:I?.message,context:I?.context})}}function UB(I){return(B,E)=>{Q(B,E,{rule:QI,each:I?.each,groups:I?.groups,message:I?.message,context:I?.context})}}function xB(I,B){return(E,N)=>{Q(E,N,{rule:UI(I),each:B?.each,groups:B?.groups,message:B?.message,context:B?.context})}}function JB(I,B){return(E,N)=>{Q(E,N,{rule:xI(I),each:B?.each,groups:B?.groups,message:B?.message,context:B?.context})}}function KB(I,B){return(E,N)=>{Q(E,N,{rule:JI(I),each:B?.each,groups:B?.groups,message:B?.message,context:B?.context})}}function XB(I,B){return(E,N)=>{Q(E,N,{rule:KI(I),each:B?.each,groups:B?.groups,message:B?.message,context:B?.context})}}function YB(I){return(B,E)=>{Q(B,E,{rule:XI,each:I?.each,groups:I?.groups,message:I?.message,context:I?.context})}}function ZB(I,B){return(E,N)=>{Q(E,N,{rule:YI(I??!1),each:B?.each,groups:B?.groups,message:B?.message,context:B?.context})}}function $B(I){return(B,E)=>{Q(B,E,{rule:ZI,each:I?.each,groups:I?.groups,message:I?.message,context:I?.context})}}function GB(I,B){return(E,N)=>{Q(E,N,{rule:$I(I),each:B?.each,groups:B?.groups,message:B?.message,context:B?.context})}}function LB(I,B){return(E,N)=>{Q(E,N,{rule:GI(I),each:B?.each,groups:B?.groups,message:B?.message,context:B?.context})}}function PB(I){return(B,E)=>{Q(B,E,{rule:LI,each:I?.each,groups:I?.groups,message:I?.message,context:I?.context})}}function qB(I,B){return(E,N)=>{Q(E,N,{rule:PI(I),each:B?.each,groups:B?.groups,message:B?.message,context:B?.context})}}function wB(I){return(B,E)=>{Q(B,E,{rule:qI,each:I?.each,groups:I?.groups,message:I?.message,context:I?.context})}}function zB(I,B){return(E,N)=>{Q(E,N,{rule:wI(I),each:B?.each,groups:B?.groups,message:B?.message,context:B?.context})}}function AB(I){return(B,E)=>{Q(B,E,{rule:zI,each:I?.each,groups:I?.groups,message:I?.message,context:I?.context})}}function HB(I,B){return(E,N)=>{Q(E,N,{rule:AI(I),each:B?.each,groups:B?.groups,message:B?.message,context:B?.context})}}function SB(I){return(B,E)=>{Q(B,E,{rule:HI,each:I?.each,groups:I?.groups,message:I?.message,context:I?.context})}}function jB(I){return(B,E)=>{Q(B,E,{rule:SI,each:I?.each,groups:I?.groups,message:I?.message,context:I?.context})}}function CB(I,B){return(E,N)=>{Q(E,N,{rule:jI(I),each:B?.each,groups:B?.groups,message:B?.message,context:B?.context})}}function TB(I){return(B,E)=>{Q(B,E,{rule:CI,each:I?.each,groups:I?.groups,message:I?.message,context:I?.context})}}function WB(I){return(B,E)=>{Q(B,E,{rule:TI,each:I?.each,groups:I?.groups,message:I?.message,context:I?.context})}}function _B(I){return(B,E)=>{Q(B,E,{rule:WI,each:I?.each,groups:I?.groups,message:I?.message,context:I?.context})}}function MB(I){return(B,E)=>{Q(B,E,{rule:_I,each:I?.each,groups:I?.groups,message:I?.message,context:I?.context})}}function FB(I){return(B,E)=>{Q(B,E,{rule:MI,each:I?.each,groups:I?.groups,message:I?.message,context:I?.context})}}function RB(I){return(B,E)=>{Q(B,E,{rule:FI,each:I?.each,groups:I?.groups,message:I?.message,context:I?.context})}}function DB(I){return(B,E)=>{Q(B,E,{rule:RI,each:I?.each,groups:I?.groups,message:I?.message,context:I?.context})}}function fB(I){return(B,E)=>{Q(B,E,{rule:DI,each:I?.each,groups:I?.groups,message:I?.message,context:I?.context})}}function bB(I){return(B,E)=>{Q(B,E,{rule:fI,each:I?.each,groups:I?.groups,message:I?.message,context:I?.context})}}function hB(I,B){return(E,N)=>{Q(E,N,{rule:bI(I),each:B?.each,groups:B?.groups,message:B?.message,context:B?.context})}}function OB(I){return(B,E)=>{Q(B,E,{rule:hI,each:I?.each,groups:I?.groups,message:I?.message,context:I?.context})}}function vB(I,B){return(E,N)=>{Q(E,N,{rule:OI(I),each:B?.each,groups:B?.groups,message:B?.message,context:B?.context})}}function uB(I,B){return(E,N)=>{Q(E,N,{rule:vI(I),each:B?.each,groups:B?.groups,message:B?.message,context:B?.context})}}function mB(I){return(B,E)=>{Q(B,E,{rule:uI,each:I?.each,groups:I?.groups,message:I?.message,context:I?.context})}}function VB(I,B){return(E,N)=>{Q(E,N,{rule:mI(I),each:B?.each,groups:B?.groups,message:B?.message,context:B?.context})}}function dB(I){return(B,E)=>{Q(B,E,{rule:VI,each:I?.each,groups:I?.groups,message:I?.message,context:I?.context})}}function kB(I){return(B,E)=>{Q(B,E,{rule:dI,each:I?.each,groups:I?.groups,message:I?.message,context:I?.context})}}function gB(I,B){return(E,N)=>{Q(E,N,{rule:kI(I),each:B?.each,groups:B?.groups,message:B?.message,context:B?.context})}}function yB(I,B,E){return(N,x)=>{Q(N,x,{rule:gI(I,B),each:E?.each,groups:E?.groups,message:E?.message,context:E?.context})}}function cB(I,B){return(E,N)=>{Q(E,N,{rule:yI(I),each:B?.each,groups:B?.groups,message:B?.message,context:B?.context})}}function rB(I){return(B,E)=>{Q(B,E,{rule:cI,each:I?.each,groups:I?.groups,message:I?.message,context:I?.context})}}function lB(I){return(B,E)=>{Q(B,E,{rule:rI,each:I?.each,groups:I?.groups,message:I?.message,context:I?.context})}}function aB(I){return(B,E)=>{Q(B,E,{rule:lI,each:I?.each,groups:I?.groups,message:I?.message,context:I?.context})}}function eB(I){return(B,E)=>{Q(B,E,{rule:aI,each:I?.each,groups:I?.groups,message:I?.message,context:I?.context})}}function pB(I){return(B,E)=>{Q(B,E,{rule:eI,each:I?.each,groups:I?.groups,message:I?.message,context:I?.context})}}function sB(I){return(B,E)=>{Q(B,E,{rule:pI,each:I?.each,groups:I?.groups,message:I?.message,context:I?.context})}}function nB(I){return(B,E)=>{Q(B,E,{rule:sI,each:I?.each,groups:I?.groups,message:I?.message,context:I?.context})}}function iB(I){return(B,E)=>{Q(B,E,{rule:nI,each:I?.each,groups:I?.groups,message:I?.message,context:I?.context})}}function tB(I,B){return(E,N)=>{Q(E,N,{rule:iI(I),each:B?.each,groups:B?.groups,message:B?.message,context:B?.context})}}function oB(I,B){return(E,N)=>{Q(E,N,{rule:tI(I),each:B?.each,groups:B?.groups,message:B?.message,context:B?.context})}}function I3(I,B){return(E,N)=>{Q(E,N,{rule:oI(I),each:B?.each,groups:B?.groups,message:B?.message,context:B?.context})}}function B3(I,B){return(E,N)=>{Q(E,N,{rule:I6(I),each:B?.each,groups:B?.groups,message:B?.message,context:B?.context})}}function E3(I,B){return(E,N)=>{Q(E,N,{rule:B6(I),each:B?.each,groups:B?.groups,message:B?.message,context:B?.context})}}function N3(I,B){return(E,N)=>{Q(E,N,{rule:E6(I),each:B?.each,groups:B?.groups,message:B?.message,context:B?.context})}}function Q3(I,B){return(E,N)=>{Q(E,N,{rule:N6(I),each:B?.each,groups:B?.groups,message:B?.message,context:B?.context})}}function U3(I){return(B,E)=>{Q(B,E,{rule:Q6,each:I?.each,groups:I?.groups,message:I?.message,context:I?.context})}}function x3(I,B){return(E,N)=>{Q(E,N,{rule:U6(I),each:B?.each,groups:B?.groups,message:B?.message,context:B?.context})}}function J3(I,B){return(E,N)=>{Q(E,N,{rule:x6(I),each:B?.each,groups:B?.groups,message:B?.message,context:B?.context})}}function K3(I){return(B,E)=>{G(B,E,I??{})}}function X3(I){return(B,E)=>{L(B,E,I??{})}}function Y3(I,B){return(E,N)=>{$(E,N,{fn:I,options:B?{groups:B.groups,deserializeOnly:B.deserializeOnly,serializeOnly:B.serializeOnly}:void 0})}}function Z3(I,B){return(E,N)=>{X(E,N,{fn:I,discriminator:B?.discriminator,keepDiscriminatorProperty:B?.keepDiscriminatorProperty})}}function $3(I){return(B,E)=>{if(E!==void 0)P(B,E,I);else{if(typeof I==="function")throw Error("@Schema(fn) function form is not supported at class level");q(B,I)}}}function G3(I,B){return(E,N)=>{Q(E,N,{rule:J6(I),each:B?.each,groups:B?.groups,message:B?.message,context:B?.context})}}function L3(I,B){return(E,N)=>{Q(E,N,{rule:K6(I),each:B?.each,groups:B?.groups,message:B?.message,context:B?.context})}}function P3(I,B){return(E,N)=>{Q(E,N,{rule:X6(I),each:B?.each,groups:B?.groups,message:B?.message,context:B?.context})}}function q3(I,B){return(E,N)=>{Q(E,N,{rule:Y6(I),each:B?.each,groups:B?.groups,message:B?.message,context:B?.context})}}export{J as a,w3 as b,j6 as c,Z as d,Z6 as e,$6 as f,G6 as g,L6 as h,P6 as i,q6 as j,w6 as k,z6 as l,A6 as m,H6 as n,S6 as o,C6 as p,T6 as q,W6 as r,_6 as s,M6 as t,F6 as u,R6 as v,D6 as w,f6 as x,b6 as y,h6 as z,O6 as A,v6 as B,u6 as C,m6 as D,V6 as E,d6 as F,k6 as G,g6 as H,y6 as I,c6 as J,r6 as K,l6 as L,a6 as M,e6 as N,p6 as O,s6 as P,n6 as Q,i6 as R,t6 as S,o6 as T,IB as U,BB as V,EB as W,NB as X,QB as Y,UB as Z,xB as _,JB as $,KB as aa,XB as ba,YB as ca,ZB as da,$B as ea,GB as fa,LB as ga,PB as ha,qB as ia,wB as ja,zB as ka,AB as la,HB as ma,SB as na,jB as oa,CB as pa,TB as qa,WB as ra,_B as sa,MB as ta,FB as ua,RB as va,DB as wa,fB as xa,bB as ya,hB as za,OB as Aa,vB as Ba,uB as Ca,mB as Da,VB as Ea,dB as Fa,kB as Ga,gB as Ha,yB as Ia,cB as Ja,rB as Ka,lB as La,aB as Ma,eB as Na,pB as Oa,sB as Pa,nB as Qa,iB as Ra,tB as Sa,oB as Ta,I3 as Ua,B3 as Va,E3 as Wa,N3 as Xa,Q3 as Ya,U3 as Za,x3 as _a,J3 as $a,K3 as ab,X3 as bb,Y3 as cb,Z3 as db,$3 as eb,G3 as fb,L3 as gb,P3 as hb,q3 as ib};
|
|
3
|
-
|
|
4
|
-
//# debugId=EA08FE35462633F164756E2164756E21
|
|
5
|
-
//# sourceMappingURL=index-3gcf6hkv.js.map
|
package/dist/index-mx6gnk4h.js
DELETED