@zipbul/baker 2.1.0 → 2.2.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.md +20 -20
- package/dist/index-03cysbck.js +3 -0
- package/dist/index-dcbd798a.js +3 -0
- package/dist/{index-fnv35wrf.js → index-jp2yjd6g.js} +1 -1
- package/dist/{index-s0n74vx1.js → index-mw7met6r.js} +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +301 -209
- package/dist/src/configure.d.ts +1 -6
- package/dist/src/create-rule.d.ts +1 -1
- package/dist/src/decorators/index.js +1 -1
- package/dist/src/errors.d.ts +4 -3
- package/dist/src/functions/deserialize.d.ts +4 -3
- package/dist/src/functions/serialize.d.ts +3 -2
- package/dist/src/functions/validate.d.ts +6 -4
- package/dist/src/rule-plan.d.ts +30 -0
- package/dist/src/rules/array.d.ts +1 -1
- package/dist/src/rules/common.d.ts +2 -2
- package/dist/src/rules/index.js +18 -8
- package/dist/src/rules/number.d.ts +2 -2
- package/dist/src/rules/string.d.ts +9 -9
- package/dist/src/rules/typechecker.d.ts +6 -6
- package/dist/src/seal/codegen-utils.d.ts +7 -0
- package/dist/src/seal/deserialize-builder.d.ts +2 -1
- package/dist/src/seal/seal.d.ts +1 -1
- package/dist/src/symbols.js +1 -1
- package/dist/src/transformers/index.js +1 -1
- package/dist/src/types.d.ts +44 -6
- package/dist/src/utils.d.ts +2 -0
- package/package.json +1 -1
- package/dist/index-k3d659ad.js +0 -3
package/dist/src/configure.d.ts
CHANGED
|
@@ -11,16 +11,11 @@ export interface BakerConfig {
|
|
|
11
11
|
/** Include field exclusion reasons as comments in generated code. @default false */
|
|
12
12
|
debug?: boolean;
|
|
13
13
|
}
|
|
14
|
-
export interface ConfigureResult {
|
|
15
|
-
warnings: string[];
|
|
16
|
-
}
|
|
17
14
|
/**
|
|
18
15
|
* Baker global configuration. Call before the first auto-seal.
|
|
19
16
|
* If not called, defaults are applied.
|
|
20
|
-
*
|
|
21
|
-
* @returns `{ warnings }` — contains warning messages if called after seal.
|
|
22
17
|
*/
|
|
23
|
-
export declare function configure(config: BakerConfig):
|
|
18
|
+
export declare function configure(config: BakerConfig): void;
|
|
24
19
|
/** @internal — used by seal */
|
|
25
20
|
export declare function _getGlobalOptions(): SealOptions;
|
|
26
21
|
/** @internal — reset to defaults on unseal */
|
|
@@ -7,7 +7,7 @@ export interface CreateRuleOptions {
|
|
|
7
7
|
/** Rule parameters */
|
|
8
8
|
constraints?: Record<string, unknown>;
|
|
9
9
|
/** Type assumed by this rule — used for type gate optimization */
|
|
10
|
-
requiresType?: 'string' | 'number' | 'boolean' | 'date';
|
|
10
|
+
requiresType?: 'string' | 'number' | 'boolean' | 'date' | 'array' | 'object';
|
|
11
11
|
}
|
|
12
12
|
/**
|
|
13
13
|
* Creates a user-defined validation rule.
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import"../../index-xdn55cz3.js";import{
|
|
2
|
+
import"../../index-xdn55cz3.js";import{m as a,n as b}from"../../index-03cysbck.js";import"../../index-jp2yjd6g.js";import"../../index-mw7met6r.js";export{a as arrayOf,b as Field};
|
package/dist/src/errors.d.ts
CHANGED
|
@@ -21,13 +21,13 @@ export interface BakerError {
|
|
|
21
21
|
}
|
|
22
22
|
/** Symbol tag for isBakerError() type guard — collision-proof discriminator */
|
|
23
23
|
export declare const BAKER_ERROR: unique symbol;
|
|
24
|
-
/** Validation failure — returned by deserialize() on invalid input */
|
|
24
|
+
/** Validation failure — returned by deserialize()/validate() on invalid input */
|
|
25
25
|
export interface BakerErrors {
|
|
26
26
|
readonly [BAKER_ERROR]: true;
|
|
27
27
|
readonly errors: readonly BakerError[];
|
|
28
28
|
}
|
|
29
29
|
/**
|
|
30
|
-
* Type guard — narrows deserialize() result to BakerErrors.
|
|
30
|
+
* Type guard — narrows deserialize()/validate() result to BakerErrors.
|
|
31
31
|
*
|
|
32
32
|
* @example
|
|
33
33
|
* const result = await deserialize(UserDto, input);
|
|
@@ -43,7 +43,8 @@ export declare function _toBakerErrors(errors: BakerError[]): BakerErrors;
|
|
|
43
43
|
/**
|
|
44
44
|
* Seal-related error:
|
|
45
45
|
* - When seal() is called more than once
|
|
46
|
-
* - When deserialize()/serialize() is called on an unsealed class
|
|
46
|
+
* - When deserialize()/serialize()/validate() is called on an unsealed class
|
|
47
|
+
* - When configure() is called after auto-seal
|
|
47
48
|
*/
|
|
48
49
|
export declare class SealError extends Error {
|
|
49
50
|
constructor(message: string);
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type BakerErrors } from '../errors';
|
|
2
2
|
import type { RuntimeOptions } from '../interfaces';
|
|
3
3
|
/**
|
|
4
4
|
* Converts input to a Class instance + validates.
|
|
5
5
|
* - Auto-seals on first call (batches entire globalRegistry)
|
|
6
|
-
* - Sync DTOs return directly
|
|
6
|
+
* - Sync DTOs return directly; async DTOs return Promise
|
|
7
7
|
* - Success: T
|
|
8
8
|
* - Validation failure: BakerErrors (use isBakerError() to narrow)
|
|
9
9
|
* - Class without decorators: throws SealError
|
|
10
10
|
*/
|
|
11
|
-
export declare function deserialize<T>(Class: new (...args: any[]) => T, input: unknown, options?: RuntimeOptions): T | BakerErrors
|
|
11
|
+
export declare function deserialize<T>(Class: new (...args: any[]) => T, input: unknown, options?: RuntimeOptions): T | BakerErrors;
|
|
12
|
+
export declare function deserialize<T>(Class: new (...args: any[]) => T, input: unknown, options?: RuntimeOptions): Promise<T | BakerErrors>;
|
|
@@ -2,8 +2,9 @@ import type { RuntimeOptions } from '../interfaces';
|
|
|
2
2
|
/**
|
|
3
3
|
* Converts a Class instance to a plain object.
|
|
4
4
|
* - Auto-seals on first call (batches entire globalRegistry)
|
|
5
|
-
* - Sync DTOs return directly
|
|
5
|
+
* - Sync DTOs return directly; async DTOs return Promise
|
|
6
6
|
* - No validation — always returns Record<string, unknown>
|
|
7
7
|
* - Class without decorators: throws SealError
|
|
8
8
|
*/
|
|
9
|
-
export declare function serialize<T>(instance: T, options?: RuntimeOptions): Record<string, unknown
|
|
9
|
+
export declare function serialize<T>(instance: T, options?: RuntimeOptions): Record<string, unknown>;
|
|
10
|
+
export declare function serialize<T>(instance: T, options?: RuntimeOptions): Promise<Record<string, unknown>>;
|
|
@@ -3,11 +3,13 @@ import type { EmittableRule } from '../types';
|
|
|
3
3
|
import type { RuntimeOptions } from '../interfaces';
|
|
4
4
|
/**
|
|
5
5
|
* DTO-level validation — validates input against a decorated class.
|
|
6
|
-
* Sync DTOs return directly
|
|
6
|
+
* Sync DTOs return directly; async DTOs return Promise.
|
|
7
7
|
*/
|
|
8
|
-
export declare function validate<T>(Class: new (...args: any[]) => T, input: unknown, options?: RuntimeOptions): true | BakerErrors
|
|
8
|
+
export declare function validate<T>(Class: new (...args: any[]) => T, input: unknown, options?: RuntimeOptions): true | BakerErrors;
|
|
9
|
+
export declare function validate<T>(Class: new (...args: any[]) => T, input: unknown, options?: RuntimeOptions): Promise<true | BakerErrors>;
|
|
9
10
|
/**
|
|
10
11
|
* Ad-hoc validation — validates a single value against one or more rules.
|
|
11
|
-
* Sync rules return directly
|
|
12
|
+
* Sync rules return directly; async rules return Promise.
|
|
12
13
|
*/
|
|
13
|
-
export declare function validate(input: unknown, ...rules: EmittableRule[]): true | BakerErrors
|
|
14
|
+
export declare function validate(input: unknown, ...rules: EmittableRule[]): true | BakerErrors;
|
|
15
|
+
export declare function validate(input: unknown, ...rules: EmittableRule[]): Promise<true | BakerErrors>;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { EmitContext, InternalRule, RulePlan, RulePlanCheck, RulePlanExpr } from './types';
|
|
2
|
+
type RulePlanCache = {
|
|
3
|
+
length?: string;
|
|
4
|
+
time?: string;
|
|
5
|
+
};
|
|
6
|
+
export declare const planValue: () => RulePlanExpr;
|
|
7
|
+
export declare const planLength: (object?: RulePlanExpr) => RulePlanExpr;
|
|
8
|
+
export declare const planTime: (object?: RulePlanExpr) => RulePlanExpr;
|
|
9
|
+
export declare const planLiteral: (value: number) => RulePlanExpr;
|
|
10
|
+
export declare const planCompare: (left: RulePlanExpr, op: "<" | "<=" | ">" | ">=" | "===" | "!==", right: number | RulePlanExpr) => RulePlanCheck;
|
|
11
|
+
export declare const planAnd: (...checks: RulePlanCheck[]) => RulePlanCheck;
|
|
12
|
+
export declare const planOr: (...checks: RulePlanCheck[]) => RulePlanCheck;
|
|
13
|
+
export declare function makePlannedRule(options: {
|
|
14
|
+
name: string;
|
|
15
|
+
requiresType: 'string' | 'number' | 'boolean' | 'date' | 'array' | 'object';
|
|
16
|
+
constraints?: Record<string, unknown>;
|
|
17
|
+
plan: RulePlan;
|
|
18
|
+
validate: (value: unknown) => boolean;
|
|
19
|
+
}): InternalRule;
|
|
20
|
+
export declare function makeRule(options: {
|
|
21
|
+
name: string;
|
|
22
|
+
validate: (value: unknown) => boolean | Promise<boolean>;
|
|
23
|
+
emit: (varName: string, ctx: EmitContext) => string;
|
|
24
|
+
requiresType?: 'string' | 'number' | 'boolean' | 'date' | 'array' | 'object';
|
|
25
|
+
constraints?: Record<string, unknown>;
|
|
26
|
+
isAsync?: boolean;
|
|
27
|
+
plan?: RulePlan;
|
|
28
|
+
}): InternalRule;
|
|
29
|
+
export declare function emitRulePlan(varName: string, ctx: EmitContext, ruleName: string, plan: RulePlan, cache?: RulePlanCache, insideTypeGate?: boolean): string;
|
|
30
|
+
export {};
|
|
@@ -4,4 +4,4 @@ export declare function arrayNotContains(values: unknown[]): EmittableRule;
|
|
|
4
4
|
export declare function arrayMinSize(min: number): EmittableRule;
|
|
5
5
|
export declare function arrayMaxSize(max: number): EmittableRule;
|
|
6
6
|
export declare function arrayUnique(identifier?: (val: unknown) => unknown): EmittableRule;
|
|
7
|
-
export declare const arrayNotEmpty:
|
|
7
|
+
export declare const arrayNotEmpty: import("../types").InternalRule;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { EmittableRule } from '../types';
|
|
2
2
|
export declare function equals(comparison: unknown): EmittableRule;
|
|
3
3
|
export declare function notEquals(comparison: unknown): EmittableRule;
|
|
4
|
-
export declare const isEmpty:
|
|
5
|
-
export declare const isNotEmpty:
|
|
4
|
+
export declare const isEmpty: import("../types").InternalRule;
|
|
5
|
+
export declare const isNotEmpty: import("../types").InternalRule;
|
|
6
6
|
export declare function isIn(array: unknown[]): EmittableRule;
|
|
7
7
|
export declare function isNotIn(array: unknown[]): EmittableRule;
|
package/dist/src/rules/index.js
CHANGED
|
@@ -1,11 +1,21 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{b as
|
|
3
|
-
else if (
|
|
4
|
-
else if (${
|
|
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}) ${J.fail("isNumber")}; }`;return W},Z.ruleName="isNumber",Z.constraints={allowNaN:z?.allowNaN,allowInfinity:z?.allowInfinity,maxDecimalPlaces:z?.maxDecimalPlaces},Z}var D=(z)=>typeof z==="boolean";D.emit=(z,Q)=>`if (typeof ${z} !== 'boolean') ${Q.fail("isBoolean")};`;D.ruleName="isBoolean";D.constraints={};var p6=D,P=(z)=>z instanceof Date&&!isNaN(z.getTime());P.emit=(z,Q)=>`if (!(${z} instanceof Date) || isNaN(${z}.getTime())) ${Q.fail("isDate")};`;P.ruleName="isDate";P.constraints={};var f6=P;function R6(z){let Q=Object.values(z),b=(j)=>Q.indexOf(j)!==-1;return b.emit=(j,Z)=>{return`if (_refs[${Z.addRef(Q)}].indexOf(${j}) === -1) ${Z.fail("isEnum")};`},b.ruleName="isEnum",b.constraints={values:Q},b}var X=(z)=>typeof z==="number"&&Number.isInteger(z);X.emit=(z,Q)=>`if (typeof ${z} !== 'number' || !Number.isInteger(${z})) ${Q.fail("isInt")};`;X.ruleName="isInt";X.requiresType="number";X.constraints={};var E6=X,C=(z)=>Array.isArray(z);C.emit=(z,Q)=>`if (!Array.isArray(${z})) ${Q.fail("isArray")};`;C.ruleName="isArray";C.constraints={};var o6=C,O=(z)=>typeof z==="object"&&z!==null&&!Array.isArray(z);O.emit=(z,Q)=>`if (typeof ${z} !== 'object' || ${z} === null || Array.isArray(${z})) ${Q.fail("isObject")};`;O.ruleName="isObject";O.constraints={};var s6=O;function _6(z,Q){if(!Number.isFinite(z))throw Error(`min: bound must be a finite number, got ${z}`);let b=Q?.exclusive??!1,j=b?(Z)=>Z>z:(Z)=>Z>=z;return j.emit=(Z,$)=>b?`if (${Z} <= ${z}) ${$.fail("min")};`:`if (${Z} < ${z}) ${$.fail("min")};`,j.ruleName="min",j.requiresType="number",j.constraints=b?{min:z,exclusive:!0}:{min:z},j}function i6(z,Q){if(!Number.isFinite(z))throw Error(`max: bound must be a finite number, got ${z}`);let b=Q?.exclusive??!1,j=b?(Z)=>Z<z:(Z)=>Z<=z;return j.emit=(Z,$)=>b?`if (${Z} >= ${z}) ${$.fail("max")};`:`if (${Z} > ${z}) ${$.fail("max")};`,j.ruleName="max",j.requiresType="number",j.constraints=b?{max:z,exclusive:!0}:{max:z},j}var Y=(z)=>z>0;Y.emit=(z,Q)=>`if (${z} <= 0) ${Q.fail("isPositive")};`;Y.ruleName="isPositive";Y.requiresType="number";Y.constraints={min:0,exclusive:!0};var N6=Y,V=(z)=>z<0;V.emit=(z,Q)=>`if (${z} >= 0) ${Q.fail("isNegative")};`;V.ruleName="isNegative";V.requiresType="number";V.constraints={max:0,exclusive:!0};var u6=V;function x6(z){if(z===0)throw Error("isDivisibleBy: divisor must not be zero");let Q=(b)=>b%z===0;return Q.emit=(b,j)=>`if (${b} % ${z} !== 0) ${j.fail("isDivisibleBy")};`,Q.ruleName="isDivisibleBy",Q.requiresType="number",Q.constraints={divisor:z},Q}function m6(z){let Q=z.getTime(),b=(j)=>j instanceof Date&&j.getTime()>=Q;return b.emit=(j,Z)=>{let $=Z.addRef(Q);return`if (!(${j} instanceof Date) || ${j}.getTime() < _refs[${$}]) ${Z.fail("minDate")};`},b.ruleName="minDate",b.requiresType="date",b.constraints={min:z.toISOString()},b}function r6(z){let Q=z.getTime(),b=(j)=>j instanceof Date&&j.getTime()<=Q;return b.emit=(j,Z)=>{let $=Z.addRef(Q);return`if (!(${j} instanceof Date) || ${j}.getTime() > _refs[${$}]) ${Z.fail("maxDate")};`},b.ruleName="maxDate",b.requiresType="date",b.constraints={max:z.toISOString()},b}function l6(z){let Q=(b)=>b===z;return Q.emit=(b,j)=>{let Z=j.addRef(z);return`if (${b} !== _refs[${Z}]) ${j.fail("equals")};`},Q.ruleName="equals",Q.constraints={value:z},Q}function n6(z){let Q=(b)=>b!==z;return Q.emit=(b,j)=>{let Z=j.addRef(z);return`if (${b} === _refs[${Z}]) ${j.fail("notEquals")};`},Q.ruleName="notEquals",Q.constraints={value:z},Q}var k=(z)=>z===void 0||z===null||z==="";k.emit=(z,Q)=>`if (${z} !== undefined && ${z} !== null && ${z} !== '') ${Q.fail("isEmpty")};`;k.ruleName="isEmpty";k.constraints={};var c6=k,I=(z)=>z!==void 0&&z!==null&&z!=="";I.emit=(z,Q)=>`if (${z} === undefined || ${z} === null || ${z} === '') ${Q.fail("isNotEmpty")};`;I.ruleName="isNotEmpty";I.constraints={};var t6=I;function v6(z){let Q=new Set(z),b=(j)=>Q.has(j);return b.emit=(j,Z)=>{return`if (!_refs[${Z.addRef(Q)}].has(${j})) ${Z.fail("isIn")};`},b.ruleName="isIn",b.constraints={values:z},b}function e6(z){let Q=new Set(z),b=(j)=>!Q.has(j);return b.emit=(j,Z)=>{return`if (_refs[${Z.addRef(Q)}].has(${j})) ${Z.fail("isNotIn")};`},b.ruleName="isNotIn",b.constraints={values:z},b}function K(z,Q,b,j="string",Z={}){let $=(J)=>{if(typeof J!=="string")return!1;return Q(J)};if($.emit=b,$.ruleName=z,j!==void 0)$.requiresType=j;return $.constraints=Z,$}function a6(z){let Q=(b)=>typeof b==="string"&&b.length>=z;return Q.emit=(b,j)=>`if (${b}.length < ${z}) ${j.fail("minLength")};`,Q.ruleName="minLength",Q.requiresType="string",Q.constraints={min:z},Q}function zz(z){let Q=(b)=>typeof b==="string"&&b.length<=z;return Q.emit=(b,j)=>`if (${b}.length > ${z}) ${j.fail("maxLength")};`,Q.ruleName="maxLength",Q.requiresType="string",Q.constraints={max:z},Q}function Qz(z,Q){let b=(j)=>typeof j==="string"&&j.length>=z&&j.length<=Q;return b.emit=(j,Z)=>`if (${j}.length < ${z} || ${j}.length > ${Q}) ${Z.fail("length")};`,b.ruleName="length",b.requiresType="string",b.constraints={min:z,max:Q},b}function bz(z){let Q=(b)=>typeof b==="string"&&b.includes(z);return Q.emit=(b,j)=>{let Z=j.addRef(z);return`if (${b}.indexOf(_refs[${Z}]) === -1) ${j.fail("contains")};`},Q.ruleName="contains",Q.requiresType="string",Q.constraints={seed:z},Q}function jz(z){let Q=(b)=>typeof b==="string"&&!b.includes(z);return Q.emit=(b,j)=>{let Z=j.addRef(z);return`if (${b}.indexOf(_refs[${Z}]) !== -1) ${j.fail("notContains")};`},Q.ruleName="notContains",Q.requiresType="string",Q.constraints={seed:z},Q}function Zz(z,Q){let b=z instanceof RegExp?z:new RegExp(z,Q),j=(Z)=>typeof Z==="string"&&b.test(Z);return j.emit=(Z,$)=>{return`if (!_re[${$.addRegex(b)}].test(${Z})) ${$.fail("matches")};`},j.ruleName="matches",j.requiresType="string",j.constraints={pattern:b.source},j}var h=(z)=>typeof z==="string"&&z===z.toLowerCase();h.emit=(z,Q)=>`if (${z} !== ${z}.toLowerCase()) ${Q.fail("isLowercase")};`;h.ruleName="isLowercase";h.requiresType="string";h.constraints={};var $z=h,M=(z)=>typeof z==="string"&&z===z.toUpperCase();M.emit=(z,Q)=>`if (${z} !== ${z}.toUpperCase()) ${Q.fail("isUppercase")};`;M.ruleName="isUppercase";M.requiresType="string";M.constraints={};var Kz=M,E=/^[\x00-\x7F]*$/,Jz=K("isAscii",(z)=>E.test(z),(z,Q)=>{return`if (!_re[${Q.addRegex(E)}].test(${z})) ${Q.fail("isAscii")};`}),o=/^[a-zA-Z]+$/,qz=K("isAlpha",(z)=>z.length>0&&o.test(z),(z,Q)=>{return`if (!_re[${Q.addRegex(o)}].test(${z})) ${Q.fail("isAlpha")};`}),s=/^[a-zA-Z0-9]+$/,Wz=K("isAlphanumeric",(z)=>z.length>0&&s.test(z),(z,Q)=>{return`if (!_re[${Q.addRegex(s)}].test(${z})) ${Q.fail("isAlphanumeric")};`}),F=(z)=>z==="true"||z==="false"||z==="1"||z==="0";F.emit=(z,Q)=>`if (${z} !== 'true' && ${z} !== 'false' && ${z} !== '1' && ${z} !== '0') ${Q.fail("isBooleanString")};`;F.ruleName="isBooleanString";F.requiresType="string";F.constraints={};var wz=F,Xz=/^[0-9]+$/;function Yz(z){let Q=z?.no_symbols??!1,b=Q?(j)=>j.length>0&&Xz.test(j):(j)=>{if(j.length===0)return!1;let Z=Number(j);return!isNaN(Z)&&isFinite(Z)};return K("isNumberString",b,(j,Z)=>{return`if (!_refs[${Z.addRef(b)}](${j})) ${Z.fail("isNumberString")};`},"string",{no_symbols:Q})}function Vz(){let z=/^[-+]?(?:\d+(?:\.\d*)?|\.\d+)$/;return K("isDecimal",(Q)=>z.test(Q),(Q,b)=>{return`if (!_re[${b.addRegex(z)}].test(${Q})) ${b.fail("isDecimal")};`})}var T=/[^\u0020-\u007E\uFF61-\uFF9F]/,hz=K("isFullWidth",(z)=>z.length>0&&T.test(z),(z,Q)=>{let b=Q.addRegex(T);return`if (${z}.length === 0 || !_re[${b}].test(${z})) ${Q.fail("isFullWidth")};`}),L=/[\u0020-\u007E\uFF61-\uFF9F]/,Mz=K("isHalfWidth",(z)=>z.length>0&&L.test(z),(z,Q)=>{let b=Q.addRegex(L);return`if (${z}.length === 0 || !_re[${b}].test(${z})) ${Q.fail("isHalfWidth")};`}),Fz=K("isVariableWidth",(z)=>z.length>0&&T.test(z)&&L.test(z),(z,Q)=>{let b=Q.addRegex(T),j=Q.addRegex(L);return`if (${z}.length === 0 || !_re[${b}].test(${z}) || !_re[${j}].test(${z})) ${Q.fail("isVariableWidth")};`}),_=/[^\x00-\xFF]/,Gz=K("isMultibyte",(z)=>z.length>0&&_.test(z),(z,Q)=>{let b=Q.addRegex(_);return`if (${z}.length === 0 || !_re[${b}].test(${z})) ${Q.fail("isMultibyte")};`}),i=/[\uD800-\uDBFF][\uDC00-\uDFFF]/,Bz=K("isSurrogatePair",(z)=>z.length>0&&i.test(z),(z,Q)=>{let b=Q.addRegex(i);return`if (${z}.length === 0 || !_re[${b}].test(${z})) ${Q.fail("isSurrogatePair")};`}),N=/^[0-9a-fA-F]+$/,Uz=K("isHexadecimal",(z)=>N.test(z),(z,Q)=>{return`if (!_re[${Q.addRegex(N)}].test(${z})) ${Q.fail("isHexadecimal")};`}),u=/^(0[oO])?[0-7]+$/,Hz=K("isOctal",(z)=>z.length>0&&u.test(z),(z,Q)=>{let b=Q.addRegex(u);return`if (${z}.length === 0 || !_re[${b}].test(${z})) ${Q.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 yz(){return K("isEmail",(z)=>x.test(z),(z,Q)=>{return`if (!_re[${Q.addRegex(x)}].test(${z})) ${Q.fail("isEmail")};`},"string",{format:"email"})}var Dz=["http","https","ftp"];function Pz(z){let Q=z?.protocols??Dz,b=Q.map(($)=>$.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("|"),j=new RegExp(`^(?:${b}):\\/\\/(?:[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=($,J)=>{return`if (!_re[${J.addRegex(j)}].test(${$})) ${J.fail("isURL")};`},Z.ruleName="isURL",Z.requiresType="string",Z.constraints={format:"uri",protocols:Q},Z}var f={all:/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,1:/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-1[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$/,2:/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-2[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$/,3:/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-3[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$/,4:/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$/,5:/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-5[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$/};function Cz(z){let Q=z!=null?f[z]??f.all:f.all;return K("isUUID",(b)=>Q.test(b),(b,j)=>{return`if (!_re[${j.addRegex(Q)}].test(${b})) ${j.fail("isUUID")};`},"string",{format:"uuid",version:z})}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)$/,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 Oz(z){let Q=(b)=>{if(typeof b!=="string")return!1;if(z===4)return g.test(b);if(z===6)return A.test(b);return g.test(b)||A.test(b)};return Q.emit=(b,j)=>{if(z===4)return`if (!_re[${j.addRegex(g)}].test(${b})) ${j.fail("isIP")};`;if(z===6)return`if (!_re[${j.addRegex(A)}].test(${b})) ${j.fail("isIP")};`;let Z=j.addRegex(g),$=j.addRegex(A);return`if (!_re[${Z}].test(${b}) && !_re[${$}].test(${b})) ${j.fail("isIP")};`},Q.ruleName="isIP",Q.requiresType="string",Q.constraints={version:z},Q}var m=/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/,kz=K("isHexColor",(z)=>m.test(z),(z,Q)=>{return`if (!_re[${Q.addRegex(m)}].test(${z})) ${Q.fail("isHexColor")};`}),r=/^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*\)$/,n=/^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 Iz(z=!1){let Q=(b)=>{if(typeof b!=="string")return!1;if(z)return n.test(b);return r.test(b)||l.test(b)};return Q.emit=(b,j)=>{if(z)return`if (!_re[${j.addRegex(n)}].test(${b})) ${j.fail("isRgbColor")};`;let Z=j.addRegex(r),$=j.addRegex(l);return`if (!_re[${Z}].test(${b}) && !_re[${$}].test(${b})) ${j.fail("isRgbColor")};`},Q.ruleName="isRgbColor",Q.requiresType="string",Q.constraints={includePercentValues:z},Q}var c=/^hsla?\(\s*(360|3[0-5]\d|[12]\d{2}|[1-9]\d|\d)\s*,\s*(100|[1-9]\d|\d)%\s*,\s*(100|[1-9]\d|\d)%(?:\s*,\s*(0|0?\.\d+|1(?:\.0+)?))?\s*\)$/,gz=K("isHSL",(z)=>c.test(z),(z,Q)=>{return`if (!_re[${Q.addRegex(c)}].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 Az(z){let Q=(b)=>{if(typeof b!=="string")return!1;if(z?.no_separators)return e.test(b);return t.test(b)||v.test(b)};return Q.emit=(b,j)=>{if(z?.no_separators)return`if (!_re[${j.addRegex(e)}].test(${b})) ${j.fail("isMACAddress")};`;let Z=j.addRegex(t),$=j.addRegex(v);return`if (!_re[${Z}].test(${b}) && !_re[${$}].test(${b})) ${j.fail("isMACAddress")};`},Q.ruleName="isMACAddress",Q.requiresType="string",Q.constraints={no_separators:z?.no_separators},Q}function a(z){let Q=z.replace(/[-\s]/g,"");if(!/^\d{9}[\dX]$/.test(Q))return!1;let b=0;for(let Z=0;Z<9;Z++)b+=(10-Z)*(Q.charCodeAt(Z)-48);let j=Q[9]==="X"?10:Q.charCodeAt(9)-48;return b+=j,b%11===0}function z6(z){let Q=z.replace(/[-\s]/g,"");if(!/^\d{13}$/.test(Q))return!1;let b=0;for(let Z=0;Z<12;Z++)b+=(Q.charCodeAt(Z)-48)*(Z%2===0?1:3);return(10-b%10)%10===Q.charCodeAt(12)-48}function Tz(z){let Q=(b)=>{if(typeof b!=="string")return!1;if(z===10)return a(b);if(z===13)return z6(b);return a(b)||z6(b)};return Q.emit=(b,j)=>{return`if (!_refs[${j.addRef(Q)}](${b})) ${j.fail("isISBN")};`},Q.ruleName="isISBN",Q.requiresType="string",Q.constraints={version:z},Q}var Lz=/^[A-Z]{2}[A-Z0-9]{9}[0-9]$/;function Q6(z){if(!Lz.test(z))return!1;let Q=z.split("").map((Z)=>{let $=Z.charCodeAt(0);return $>=65?String($-55):Z}).join(""),b=0,j=!1;for(let Z=Q.length-1;Z>=0;Z--){let $=parseInt(Q[Z],10);if(j){if($*=2,$>9)$-=9}b+=$,j=!j}return b%10===0}var dz=K("isISIN",Q6,(z,Q)=>{return`if (!_refs[${Q.addRef(Q6)}](${z})) ${Q.fail("isISIN")};`}),R=/^\d{4}(?:-\d{2}(?:-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:?\d{2})?)?)?)?$/;function Sz(z){if(!R.test(z))return!1;let Q=z.match(/^(\d{4})-(\d{2})-(\d{2})/);if(!Q)return!0;let b=Number(Q[2]),j=Number(Q[3]);if(b<1||b>12)return!1;let Z=new Date(Number(Q[1]),b,0).getDate();return j>=1&&j<=Z}function pz(z){if(z?.strict){let Q=(b)=>{if(typeof b!=="string")return!1;return Sz(b)};return Q.ruleName="isISO8601",Q.emit=(b,j)=>{return`if (!_refs[${j.addRef(Q)}](${b})) ${j.fail("isISO8601")};`},Q.constraints={format:"date-time",strict:!0},Q}return K("isISO8601",(Q)=>R.test(Q),(Q,b)=>{return`if (!_re[${b.addRegex(R)}].test(${Q})) ${b.fail("isISO8601")};`},"string",{format:"date-time",strict:!1})}var b6=/^[A-Z]{2}-[A-Z0-9]{3}-\d{2}-\d{5}$|^[A-Z]{2}[A-Z0-9]{3}\d{7}$/,fz=K("isISRC",(z)=>b6.test(z),(z,Q)=>{return`if (!_re[${Q.addRegex(b6)}].test(${z})) ${Q.fail("isISRC")};`});function Rz(z,Q){let b=Q?.requireHyphen!==!1,j=b?z:z.replace(/-/g,"");if(!(b?/^\d{4}-\d{3}[\dX]$/:/^\d{7}[\dX]$/).test(j))return!1;let $=j.replace(/-/g,""),J=0;for(let q=0;q<7;q++)J+=(8-q)*($.charCodeAt(q)-48);let W=$[7]==="X"?10:$.charCodeAt(7)-48;return J+=W,J%11===0}function Ez(z){let Q=(b)=>{if(typeof b!=="string")return!1;return Rz(b,z)};return Q.emit=(b,j)=>{return`if (!_refs[${j.addRef(Q)}](${b})) ${j.fail("isISSN")};`},Q.ruleName="isISSN",Q.requiresType="string",Q.constraints={requireHyphen:z?.requireHyphen},Q}var j6=/^[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+$/,oz=K("isJWT",(z)=>j6.test(z),(z,Q)=>{return`if (!_re[${Q.addRegex(j6)}].test(${z})) ${Q.fail("isJWT")};`}),Z6=/^[-+]?([1-8]?\d(?:\.\d+)?|90(?:\.0+)?),\s*[-+]?(180(?:\.0+)?|1[0-7]\d(?:\.\d+)?|\d{1,2}(?:\.\d+)?)$/;function sz(){return K("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})*$/,_z=K("isLocale",(z)=>$6.test(z),(z,Q)=>{return`if (!_re[${Q.addRegex($6)}].test(${z})) ${Q.fail("isLocale")};`}),K6=/^data:([a-zA-Z0-9!#$&\-^_]+\/[a-zA-Z0-9!#$&\-^_]+)(?:;[a-zA-Z0-9\-]+=[a-zA-Z0-9\-]+)*(?:;base64)?,[\s\S]*$/,iz=K("isDataURI",(z)=>K6.test(z),(z,Q)=>{return`if (!_re[${Q.addRegex(K6)}].test(${z})) ${Q.fail("isDataURI")};`});function Nz(z){let Q=z?.require_tld!==!1,b=(j)=>{if(typeof j!=="string")return!1;let Z=j;if(z?.allow_trailing_dot&&Z.endsWith("."))Z=Z.slice(0,-1);if(Z.length===0)return!1;let $=Z.split(".");if(Q&&$.length<2)return!1;if(Q){let J=$[$.length-1];if(!J||J.length<2||!/^[a-zA-Z]{2,}$/.test(J))return!1}return $.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 b.emit=(j,Z)=>{return`if (!_refs[${Z.addRef(b)}](${j})) ${Z.fail("isFQDN")};`},b.ruleName="isFQDN",b.requiresType="string",b.constraints={require_tld:z?.require_tld,allow_underscores:z?.allow_underscores,allow_trailing_dot:z?.allow_trailing_dot},b}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)$/,uz=K("isPort",(z)=>J6.test(z),(z,Q)=>{return`if (!_re[${Q.addRegex(J6)}].test(${z})) ${Q.fail("isPort")};`});function q6(z){if(!/^\d{8}$/.test(z)&&!/^\d{13}$/.test(z))return!1;let Q=z.split("").map(Number),b=Q.length,j=0;for(let $=0;$<b-1;$++)j+=Q[$]*(b===8?$%2===0?3:1:$%2===0?1:3);return(10-j%10)%10===Q[b-1]}var xz=K("isEAN",q6,(z,Q)=>{return`if (!_refs[${Q.addRef(q6)}](${z})) ${Q.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"]),G=(z)=>{if(typeof z!=="string")return!1;return g6.has(z.toUpperCase())};G.emit=(z,Q)=>{return`if (!_refs[${Q.addRef(g6)}].has(${z}.toUpperCase())) ${Q.fail("isISO31661Alpha2")};`};G.ruleName="isISO31661Alpha2";G.requiresType="string";G.constraints={};var mz=G,A6=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"]),B=(z)=>{if(typeof z!=="string")return!1;return A6.has(z.toUpperCase())};B.emit=(z,Q)=>{return`if (!_refs[${Q.addRef(A6)}].has(${z}.toUpperCase())) ${Q.fail("isISO31661Alpha3")};`};B.ruleName="isISO31661Alpha3";B.requiresType="string";B.constraints={};var rz=B,W6=/^[A-Z]{6}[A-Z0-9]{2}(?:[A-Z0-9]{3})?$/,lz=K("isBIC",(z)=>W6.test(z.toUpperCase()),(z,Q)=>{return`if (!_re[${Q.addRegex(W6)}].test(${z}.toUpperCase())) ${Q.fail("isBIC")};`}),w6=/^[a-zA-Z0-9_-]{20}$/,nz=K("isFirebasePushId",(z)=>w6.test(z),(z,Q)=>{return`if (!_re[${Q.addRegex(w6)}].test(${z})) ${Q.fail("isFirebasePushId")};`}),X6=/^(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-]+)*))?$/,cz=K("isSemVer",(z)=>X6.test(z),(z,Q)=>{return`if (!_re[${Q.addRegex(X6)}].test(${z})) ${Q.fail("isSemVer")};`}),Y6=/^[0-9a-fA-F]{24}$/,tz=K("isMongoId",(z)=>Y6.test(z),(z,Q)=>{return`if (!_re[${Q.addRegex(Y6)}].test(${z})) ${Q.fail("isMongoId")};`}),U=(z)=>{if(typeof z!=="string")return!1;try{return JSON.parse(z),!0}catch{return!1}};U.emit=(z,Q)=>{return`if (!_refs[${Q.addRef((j)=>{try{return JSON.parse(j),!0}catch{return!1}})}](${z})) ${Q.fail("isJSON")};`};U.ruleName="isJSON";U.requiresType="string";U.constraints={};var vz=U,ez=/^[A-Z2-7]+=*$/i;function az(){let z=ez;return K("isBase32",(Q)=>{if(Q.length===0)return!1;if(Q.length%8!==0)return!1;return z.test(Q)},(Q,b)=>{let j=b.addRegex(z);return`if (${Q}.length === 0 || ${Q}.length % 8 !== 0 || !_re[${j}].test(${Q})) ${b.fail("isBase32")};`})}var V6=/^[1-9A-HJ-NP-Za-km-z]+$/,zQ=K("isBase58",(z)=>V6.test(z),(z,Q)=>{return`if (!_re[${Q.addRegex(V6)}].test(${z})) ${Q.fail("isBase58")};`}),QQ=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$/,bQ=/^[A-Za-z0-9_-]+={0,2}$/;function jQ(z){let Q=z?.urlSafe?bQ:QQ;return K("isBase64",(b)=>{if(b.length===0)return!1;return Q.test(b)},(b,j)=>{let Z=j.addRegex(Q);return`if (${b}.length === 0 || !_re[${Z}].test(${b})) ${j.fail("isBase64")};`},"string",{urlSafe:z?.urlSafe})}var h6=/^\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])$/;function ZQ(){return K("isDateString",(z)=>h6.test(z),(z,Q)=>{return`if (!_re[${Q.addRegex(h6)}].test(${z})) ${Q.fail("isDateString")};`})}var M6=/^(application|audio|font|image|message|model|multipart|text|video)\/[a-zA-Z0-9][a-zA-Z0-9!#$&\-^_.+]*(?:;.+)?$/,$Q=K("isMimeType",(z)=>M6.test(z),(z,Q)=>{return`if (!_re[${Q.addRegex(M6)}].test(${z})) ${Q.fail("isMimeType")};`}),F6=/^[-+]?(?:[,.\d]+)(?:[.,]\d{2})?$|^\$?-?(?:\d+|\d{1,3}(?:,\d{3})*)(?:\.\d{1,2})?$/;function KQ(){return K("isCurrency",(z)=>{if(z.length===0)return!1;return F6.test(z)},(z,Q)=>{let b=Q.addRegex(F6);return`if (${z}.length === 0 || !_re[${b}].test(${z})) ${Q.fail("isCurrency")};`})}var G6=/^magnet:\?xt=urn:[a-z0-9]+:[a-z0-9]{32,40}/i,JQ=K("isMagnetURI",(z)=>G6.test(z),(z,Q)=>{return`if (!_re[${Q.addRegex(G6)}].test(${z})) ${Q.fail("isMagnetURI")};`});function qQ(z){let Q=z.replace(/[\s-]/g,"");if(Q.length===0||!/^\d+$/.test(Q))return!1;let b=0,j=!1;for(let Z=Q.length-1;Z>=0;Z--){let $=Q.charCodeAt(Z)-48;if(j){if($*=2,$>9)$-=9}b+=$,j=!j}return b%10===0}var H=(z)=>{if(typeof z!=="string")return!1;return qQ(z)};H.emit=(z,Q)=>`{
|
|
6
|
-
|
|
7
|
-
|
|
2
|
+
import{a as Y,b as y,c as B,d as G,e as h,f as M,g as F,h as $}from"../../index-dcbd798a.js";import{m as Ez}from"../../index-03cysbck.js";import"../../index-jp2yjd6g.js";import"../../index-mw7met6r.js";var U6=$({name:"isString",constraints:{},validate:(j)=>typeof j==="string",emit:(j,z)=>`if (typeof ${j} !== 'string') ${z.fail("isString")};`});function D6(j){let z=j?.allowNaN??!1,Q=j?.allowInfinity??!1,b=j?.maxDecimalPlaces,f=(Z)=>{if(typeof Z!=="number")return!1;if(isNaN(Z))return z;if(!isFinite(Z))return Q;if(b!==void 0){let q=Z.toExponential().split("e"),J=(q[0].split(".")[1]||"").length,W=parseInt(q[1],10);if(Math.max(0,J-W)>b)return!1}return!0};return $({name:"isNumber",constraints:{allowNaN:j?.allowNaN,allowInfinity:j?.allowInfinity,maxDecimalPlaces:j?.maxDecimalPlaces},validate:f,emit:(Z,q)=>{if(q.insideTypeGate){let W="";if(!Q)W+=`if (${Z} === Infinity || ${Z} === -Infinity) ${q.fail("isNumber")};`;if(b!==void 0)W+=`${W?`
|
|
3
|
+
else `:""}{ var _exp=${Z}.toExponential().split('e'); var _mant=(_exp[0].split('.')[1]||'').length; var _exp2=parseInt(_exp[1],10); if(Math.max(0,_mant-_exp2)>${b}) ${q.fail("isNumber")}; }`;return W}let J=`if (typeof ${Z} !== 'number') ${q.fail("isNumber")};`;if(!z)J+=`
|
|
4
|
+
else if (isNaN(${Z})) ${q.fail("isNumber")};`;if(!Q)J+=`
|
|
5
|
+
else if (${Z} === Infinity || ${Z} === -Infinity) ${q.fail("isNumber")};`;if(b!==void 0)J+=`
|
|
6
|
+
else { var _exp=${Z}.toExponential().split('e'); var _mant=(_exp[0].split('.')[1]||'').length; var _exp2=parseInt(_exp[1],10); if(Math.max(0,_mant-_exp2)>${b}) ${q.fail("isNumber")}; }`;return J}})}var H6=$({name:"isBoolean",constraints:{},validate:(j)=>typeof j==="boolean",emit:(j,z)=>`if (typeof ${j} !== 'boolean') ${z.fail("isBoolean")};`}),O6=$({name:"isDate",constraints:{},validate:(j)=>j instanceof Date&&!isNaN(j.getTime()),emit:(j,z)=>`if (!(${j} instanceof Date) || isNaN(${j}.getTime())) ${z.fail("isDate")};`});function P6(j){let z=Object.values(j);return $({name:"isEnum",constraints:{values:z},validate:(Q)=>z.indexOf(Q)!==-1,emit:(Q,b)=>{return`if (_refs[${b.addRef(z)}].indexOf(${Q}) === -1) ${b.fail("isEnum")};`}})}var C6=$({name:"isInt",requiresType:"number",constraints:{},validate:(j)=>typeof j==="number"&&Number.isInteger(j),emit:(j,z)=>z.insideTypeGate?`if (!Number.isInteger(${j})) ${z.fail("isInt")};`:`if (typeof ${j} !== 'number' || !Number.isInteger(${j})) ${z.fail("isInt")};`}),A6=$({name:"isArray",constraints:{},validate:(j)=>Array.isArray(j),emit:(j,z)=>`if (!Array.isArray(${j})) ${z.fail("isArray")};`}),I6=$({name:"isObject",constraints:{},validate:(j)=>typeof j==="object"&&j!==null&&!Array.isArray(j),emit:(j,z)=>`if (typeof ${j} !== 'object' || ${j} === null || Array.isArray(${j})) ${z.fail("isObject")};`});function g6(j,z){if(!Number.isFinite(j))throw Error(`min: bound must be a finite number, got ${j}`);let Q=z?.exclusive??!1,b={failure:M(h(Y(),"!==",Y()),h(Y(),Q?"<=":"<",G(j)))};return F({name:"min",requiresType:"number",constraints:Q?{min:j,exclusive:!0}:{min:j},plan:b,validate:Q?(f)=>typeof f==="number"&&!isNaN(f)&&f>j:(f)=>typeof f==="number"&&!isNaN(f)&&f>=j})}function T6(j,z){if(!Number.isFinite(j))throw Error(`max: bound must be a finite number, got ${j}`);let Q=z?.exclusive??!1,b={failure:M(h(Y(),"!==",Y()),h(Y(),Q?">=":">",G(j)))};return F({name:"max",requiresType:"number",constraints:Q?{max:j,exclusive:!0}:{max:j},plan:b,validate:Q?(f)=>typeof f==="number"&&!isNaN(f)&&f<j:(f)=>typeof f==="number"&&!isNaN(f)&&f<=j})}var L6=F({name:"isPositive",requiresType:"number",constraints:{min:0,exclusive:!0},plan:{failure:M(h(Y(),"!==",Y()),h(Y(),"<=",G(0)))},validate:(j)=>typeof j==="number"&&!isNaN(j)&&j>0}),S6=F({name:"isNegative",requiresType:"number",constraints:{max:0,exclusive:!0},plan:{failure:M(h(Y(),"!==",Y()),h(Y(),">=",G(0)))},validate:(j)=>typeof j==="number"&&!isNaN(j)&&j<0});function k6(j){if(j===0)throw Error("isDivisibleBy: divisor must not be zero");return $({name:"isDivisibleBy",requiresType:"number",constraints:{divisor:j},validate:(z)=>typeof z==="number"&&!isNaN(z)&&z%j===0,emit:(z,Q)=>`if (${z} % ${j} !== 0) ${Q.fail("isDivisibleBy")};`})}function d6(j){let z=j.getTime(),Q={cacheKey:"time",failure:M(h(B(),"!==",B()),h(B(),"<",G(z)))};return F({name:"minDate",requiresType:"date",constraints:{min:j.toISOString()},plan:Q,validate:(b)=>b instanceof Date&&b.getTime()>=z})}function s6(j){let z=j.getTime(),Q={cacheKey:"time",failure:M(h(B(),"!==",B()),h(B(),">",G(z)))};return F({name:"maxDate",requiresType:"date",constraints:{max:j.toISOString()},plan:Q,validate:(b)=>b instanceof Date&&b.getTime()<=z})}function _6(j){return $({name:"equals",constraints:{value:j},validate:(z)=>z===j,emit:(z,Q)=>{let b=Q.addRef(j);return`if (${z} !== _refs[${b}]) ${Q.fail("equals")};`}})}function E6(j){return $({name:"notEquals",constraints:{value:j},validate:(z)=>z!==j,emit:(z,Q)=>{let b=Q.addRef(j);return`if (${z} === _refs[${b}]) ${Q.fail("notEquals")};`}})}var p6=$({name:"isEmpty",constraints:{},validate:(j)=>j===void 0||j===null||j==="",emit:(j,z)=>`if (${j} !== undefined && ${j} !== null && ${j} !== '') ${z.fail("isEmpty")};`}),o6=$({name:"isNotEmpty",constraints:{},validate:(j)=>j!==void 0&&j!==null&&j!=="",emit:(j,z)=>`if (${j} === undefined || ${j} === null || ${j} === '') ${z.fail("isNotEmpty")};`});function i6(j){let z=new Set(j);return $({name:"isIn",constraints:{values:j},validate:(Q)=>z.has(Q),emit:(Q,b)=>{return`if (!_refs[${b.addRef(z)}].has(${Q})) ${b.fail("isIn")};`}})}function R6(j){let z=new Set(j);return $({name:"isNotIn",constraints:{values:j},validate:(Q)=>!z.has(Q),emit:(Q,b)=>{return`if (_refs[${b.addRef(z)}].has(${Q})) ${b.fail("isNotIn")};`}})}function K(j,z,Q,b="string",f={}){return $({name:j,requiresType:b,constraints:f,validate:(Z)=>typeof Z==="string"&&z(Z),emit:Q})}function N6(j){let z={cacheKey:"length",failure:h(y(),"<",j)};return F({name:"minLength",requiresType:"string",constraints:{min:j},plan:z,validate:(Q)=>typeof Q==="string"&&Q.length>=j})}function n6(j){let z={cacheKey:"length",failure:h(y(),">",j)};return F({name:"maxLength",requiresType:"string",constraints:{max:j},plan:z,validate:(Q)=>typeof Q==="string"&&Q.length<=j})}function x6(j,z){let Q={cacheKey:"length",failure:M(h(y(),"<",j),h(y(),">",z))};return F({name:"length",requiresType:"string",constraints:{min:j,max:z},plan:Q,validate:(b)=>typeof b==="string"&&b.length>=j&&b.length<=z})}function u6(j){return $({name:"contains",requiresType:"string",constraints:{seed:j},validate:(z)=>typeof z==="string"&&z.includes(j),emit:(z,Q)=>{let b=Q.addRef(j);return`if (${z}.indexOf(_refs[${b}]) === -1) ${Q.fail("contains")};`}})}function r6(j){return $({name:"notContains",requiresType:"string",constraints:{seed:j},validate:(z)=>typeof z==="string"&&!z.includes(j),emit:(z,Q)=>{let b=Q.addRef(j);return`if (${z}.indexOf(_refs[${b}]) !== -1) ${Q.fail("notContains")};`}})}function c6(j,z){let Q=j instanceof RegExp?j:new RegExp(j,z);return $({name:"matches",requiresType:"string",constraints:{pattern:Q.source},validate:(b)=>typeof b==="string"&&Q.test(b),emit:(b,f)=>{return`if (!_re[${f.addRegex(Q)}].test(${b})) ${f.fail("matches")};`}})}var m6=$({name:"isLowercase",requiresType:"string",constraints:{},validate:(j)=>typeof j==="string"&&j===j.toLowerCase(),emit:(j,z)=>`if (${j} !== ${j}.toLowerCase()) ${z.fail("isLowercase")};`}),t6=$({name:"isUppercase",requiresType:"string",constraints:{},validate:(j)=>typeof j==="string"&&j===j.toUpperCase(),emit:(j,z)=>`if (${j} !== ${j}.toUpperCase()) ${z.fail("isUppercase")};`}),A=/^[\x00-\x7F]*$/,l6=K("isAscii",(j)=>A.test(j),(j,z)=>{return`if (!_re[${z.addRegex(A)}].test(${j})) ${z.fail("isAscii")};`}),I=/^[a-zA-Z]+$/,v6=K("isAlpha",(j)=>j.length>0&&I.test(j),(j,z)=>{return`if (!_re[${z.addRegex(I)}].test(${j})) ${z.fail("isAlpha")};`}),g=/^[a-zA-Z0-9]+$/,e6=K("isAlphanumeric",(j)=>j.length>0&&g.test(j),(j,z)=>{return`if (!_re[${z.addRegex(g)}].test(${j})) ${z.fail("isAlphanumeric")};`}),a6=$({name:"isBooleanString",requiresType:"string",constraints:{},validate:(j)=>j==="true"||j==="false"||j==="1"||j==="0",emit:(j,z)=>`if (${j} !== 'true' && ${j} !== 'false' && ${j} !== '1' && ${j} !== '0') ${z.fail("isBooleanString")};`}),T=/^[0-9]+$/;function jj(j){let z=j?.no_symbols??!1;return K("isNumberString",z?(b)=>b.length>0&&T.test(b):(b)=>{if(b.length===0)return!1;let f=Number(b);return!isNaN(f)&&isFinite(f)},(b,f)=>{if(z){let Z=f.addRegex(T);return`if (${b}.length === 0 || !_re[${Z}].test(${b})) ${f.fail("isNumberString")};`}return`if (${b}.length === 0) ${f.fail("isNumberString")};
|
|
7
|
+
else { var _ns=Number(${b}); if (isNaN(_ns) || !isFinite(_ns)) ${f.fail("isNumberString")}; }`},"string",{no_symbols:z})}function zj(){let j=/^[-+]?(?:\d+(?:\.\d*)?|\.\d+)$/;return K("isDecimal",(z)=>j.test(z),(z,Q)=>{return`if (!_re[${Q.addRegex(j)}].test(${z})) ${Q.fail("isDecimal")};`})}var H=/[^\u0020-\u007E\uFF61-\uFF9F]/,Qj=K("isFullWidth",(j)=>j.length>0&&H.test(j),(j,z)=>{let Q=z.addRegex(H);return`if (${j}.length === 0 || !_re[${Q}].test(${j})) ${z.fail("isFullWidth")};`}),O=/[\u0020-\u007E\uFF61-\uFF9F]/,bj=K("isHalfWidth",(j)=>j.length>0&&O.test(j),(j,z)=>{let Q=z.addRegex(O);return`if (${j}.length === 0 || !_re[${Q}].test(${j})) ${z.fail("isHalfWidth")};`}),fj=K("isVariableWidth",(j)=>j.length>0&&H.test(j)&&O.test(j),(j,z)=>{let Q=z.addRegex(H),b=z.addRegex(O);return`if (${j}.length === 0 || !_re[${Q}].test(${j}) || !_re[${b}].test(${j})) ${z.fail("isVariableWidth")};`}),L=/[^\x00-\xFF]/,Zj=K("isMultibyte",(j)=>j.length>0&&L.test(j),(j,z)=>{let Q=z.addRegex(L);return`if (${j}.length === 0 || !_re[${Q}].test(${j})) ${z.fail("isMultibyte")};`}),S=/[\uD800-\uDBFF][\uDC00-\uDFFF]/,$j=K("isSurrogatePair",(j)=>j.length>0&&S.test(j),(j,z)=>{let Q=z.addRegex(S);return`if (${j}.length === 0 || !_re[${Q}].test(${j})) ${z.fail("isSurrogatePair")};`}),k=/^[0-9a-fA-F]+$/,Jj=K("isHexadecimal",(j)=>k.test(j),(j,z)=>{return`if (!_re[${z.addRegex(k)}].test(${j})) ${z.fail("isHexadecimal")};`}),d=/^(0[oO])?[0-7]+$/,Kj=K("isOctal",(j)=>j.length>0&&d.test(j),(j,z)=>{let Q=z.addRegex(d);return`if (${j}.length === 0 || !_re[${Q}].test(${j})) ${z.fail("isOctal")};`}),s=/^[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 Wj(){return K("isEmail",(j)=>s.test(j),(j,z)=>{return`if (!_re[${z.addRegex(s)}].test(${j})) ${z.fail("isEmail")};`},"string",{format:"email"})}var qj=["http","https","ftp"];function hj(j){let z=j?.protocols??qj,Q=z.map((f)=>f.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("|"),b=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]*)?$`);return $({name:"isURL",requiresType:"string",constraints:{format:"uri",protocols:z},validate:(f)=>typeof f==="string"&&f.length>0&&b.test(f),emit:(f,Z)=>{return`if (!_re[${Z.addRegex(b)}].test(${f})) ${Z.fail("isURL")};`}})}var C={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 Xj(j){let z=j!=null?C[j]??C.all:C.all;return K("isUUID",(Q)=>z.test(Q),(Q,b)=>{return`if (!_re[${b.addRegex(z)}].test(${Q})) ${b.fail("isUUID")};`},"string",{format:"uuid",version:j})}var V=/^(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)$/,U=/^(?:[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 wj(j){return $({name:"isIP",requiresType:"string",constraints:{version:j},validate:(z)=>{if(typeof z!=="string")return!1;if(j===4)return V.test(z);if(j===6)return U.test(z);return V.test(z)||U.test(z)},emit:(z,Q)=>{if(j===4)return`if (!_re[${Q.addRegex(V)}].test(${z})) ${Q.fail("isIP")};`;if(j===6)return`if (!_re[${Q.addRegex(U)}].test(${z})) ${Q.fail("isIP")};`;let b=Q.addRegex(V),f=Q.addRegex(U);return`if (!_re[${b}].test(${z}) && !_re[${f}].test(${z})) ${Q.fail("isIP")};`}})}var _=/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/,Fj=K("isHexColor",(j)=>_.test(j),(j,z)=>{return`if (!_re[${z.addRegex(_)}].test(${j})) ${z.fail("isHexColor")};`}),E=/^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*\)$/,p=/^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*\)$/,o=/^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 Yj(j=!1){return $({name:"isRgbColor",requiresType:"string",constraints:{includePercentValues:j},validate:(z)=>{if(typeof z!=="string")return!1;if(j)return o.test(z);return E.test(z)||p.test(z)},emit:(z,Q)=>{if(j)return`if (!_re[${Q.addRegex(o)}].test(${z})) ${Q.fail("isRgbColor")};`;let b=Q.addRegex(E),f=Q.addRegex(p);return`if (!_re[${b}].test(${z}) && !_re[${f}].test(${z})) ${Q.fail("isRgbColor")};`}})}var i=/^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*\)$/,Mj=K("isHSL",(j)=>i.test(j),(j,z)=>{return`if (!_re[${z.addRegex(i)}].test(${j})) ${z.fail("isHSL")};`}),R=/^[0-9a-fA-F]{2}(?::[0-9a-fA-F]{2}){5}$/,N=/^[0-9a-fA-F]{2}(?:-[0-9a-fA-F]{2}){5}$/,n=/^[0-9a-fA-F]{12}$/;function yj(j){return $({name:"isMACAddress",requiresType:"string",constraints:{no_separators:j?.no_separators},validate:(z)=>{if(typeof z!=="string")return!1;if(j?.no_separators)return n.test(z);return R.test(z)||N.test(z)},emit:(z,Q)=>{if(j?.no_separators)return`if (!_re[${Q.addRegex(n)}].test(${z})) ${Q.fail("isMACAddress")};`;let b=Q.addRegex(R),f=Q.addRegex(N);return`if (!_re[${b}].test(${z}) && !_re[${f}].test(${z})) ${Q.fail("isMACAddress")};`}})}function x(j){let z=j.replace(/[-\s]/g,"");if(!/^\d{9}[\dX]$/.test(z))return!1;let Q=0;for(let f=0;f<9;f++)Q+=(10-f)*(z.charCodeAt(f)-48);let b=z[9]==="X"?10:z.charCodeAt(9)-48;return Q+=b,Q%11===0}function u(j){let z=j.replace(/[-\s]/g,"");if(!/^\d{13}$/.test(z))return!1;let Q=0;for(let f=0;f<12;f++)Q+=(z.charCodeAt(f)-48)*(f%2===0?1:3);return(10-Q%10)%10===z.charCodeAt(12)-48}function Gj(j){let z=(f)=>{if(typeof f!=="string")return!1;if(j===10)return x(f);if(j===13)return u(f);return x(f)||u(f)},Q=(f)=>`{var _s=${f}.replace(/[-\\s]/g,'');if(!/^\\d{9}[\\dX]$/.test(_s)){%%FAIL%%}else{var _sm=0;for(var _i=0;_i<9;_i++)_sm+=(10-_i)*(_s.charCodeAt(_i)-48);var _l=_s[9]==='X'?10:(_s.charCodeAt(9)-48);_sm+=_l;if(_sm%11!==0){%%FAIL%%}}}`,b=(f)=>`{var _s=${f}.replace(/[-\\s]/g,'');if(!/^\\d{13}$/.test(_s)){%%FAIL%%}else{var _sm=0;for(var _i=0;_i<12;_i++)_sm+=(_s.charCodeAt(_i)-48)*(_i%2===0?1:3);var _ck=(10-(_sm%10))%10;if(_ck!==(_s.charCodeAt(12)-48)){%%FAIL%%}}}`;return $({name:"isISBN",requiresType:"string",constraints:{version:j},validate:z,emit:(f,Z)=>{let q=Z.fail("isISBN");if(j===10)return Q(f).replace(/%%FAIL%%/g,q);if(j===13)return b(f).replace(/%%FAIL%%/g,q);let J=Q(f).replace(/%%FAIL%%/g,"__isbn_ok=false"),W=b(f).replace(/%%FAIL%%/g,"__isbn_ok=false");return`{var __isbn_ok=true;${J} if(!__isbn_ok){__isbn_ok=true;${W}} if(!__isbn_ok)${q};}`}})}var B6=/^[A-Z]{2}[A-Z0-9]{9}[0-9]$/;function Bj(j){if(!B6.test(j))return!1;let z=j.split("").map((f)=>{let Z=f.charCodeAt(0);return Z>=65?String(Z-55):f}).join(""),Q=0,b=!1;for(let f=z.length-1;f>=0;f--){let Z=parseInt(z[f],10);if(b){if(Z*=2,Z>9)Z-=9}Q+=Z,b=!b}return Q%10===0}var Vj=K("isISIN",Bj,(j,z)=>{return`if (!_re[${z.addRegex(B6)}].test(${j})) ${z.fail("isISIN")};
|
|
8
|
+
else { var _isExp=${j}.split('').map(function(c){var _cd=c.charCodeAt(0);return _cd>=65?String(_cd-55):c;}).join('');
|
|
9
|
+
var _isSum=0,_isAlt=false;for(var _isI=_isExp.length-1;_isI>=0;_isI--){var _isN=parseInt(_isExp[_isI],10);if(_isAlt){_isN*=2;if(_isN>9)_isN-=9;}_isSum+=_isN;_isAlt=!_isAlt;}
|
|
10
|
+
if(_isSum%10!==0)${z.fail("isISIN")}; }`}),D=/^\d{4}(?:-\d{2}(?:-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:?\d{2})?)?)?)?$/;function Uj(j){if(!D.test(j))return!1;let z=j.match(/^(\d{4})-(\d{2})-(\d{2})/);if(!z)return!0;let Q=Number(z[2]),b=Number(z[3]);if(Q<1||Q>12)return!1;let f=new Date(Number(z[1]),Q,0).getDate();return b>=1&&b<=f}function Dj(j){if(j?.strict)return $({name:"isISO8601",requiresType:"string",constraints:{format:"date-time",strict:!0},validate:(Q)=>typeof Q==="string"&&Uj(Q),emit:(Q,b)=>{return`if (!_re[${b.addRegex(D)}].test(${Q})) ${b.fail("isISO8601")};
|
|
11
|
+
else { var _dm=${Q}.match(/^(\\d{4})-(\\d{2})-(\\d{2})/);if(_dm){var _mo=Number(_dm[2]),_da=Number(_dm[3]);if(_mo<1||_mo>12){${b.fail("isISO8601")}}else{var _md=new Date(Number(_dm[1]),_mo,0).getDate();if(_da<1||_da>_md)${b.fail("isISO8601")};}} }`}});return K("isISO8601",(z)=>D.test(z),(z,Q)=>{return`if (!_re[${Q.addRegex(D)}].test(${z})) ${Q.fail("isISO8601")};`},"string",{format:"date-time",strict:!1})}var r=/^[A-Z]{2}-[A-Z0-9]{3}-\d{2}-\d{5}$|^[A-Z]{2}[A-Z0-9]{3}\d{7}$/,Hj=K("isISRC",(j)=>r.test(j),(j,z)=>{return`if (!_re[${z.addRegex(r)}].test(${j})) ${z.fail("isISRC")};`});function Oj(j,z){let Q=z?.requireHyphen!==!1,b=Q?j:j.replace(/-/g,"");if(!(Q?/^\d{4}-\d{3}[\dX]$/:/^\d{7}[\dX]$/).test(b))return!1;let Z=b.replace(/-/g,""),q=0;for(let W=0;W<7;W++)q+=(8-W)*(Z.charCodeAt(W)-48);let J=Z[7]==="X"?10:Z.charCodeAt(7)-48;return q+=J,q%11===0}function Pj(j){let z=j?.requireHyphen!==!1,Q=(f)=>typeof f==="string"&&Oj(f,j),b=z?/^\d{4}-\d{3}[\dX]$/:/^\d{7}[\dX]$/;return $({name:"isISSN",requiresType:"string",constraints:{requireHyphen:j?.requireHyphen},validate:Q,emit:(f,Z)=>{let q=Z.addRegex(b);return`{var _is=${z?f:`${f}.replace(/-/g,'')`};if(!_re[${q}].test(_is)){${Z.fail("isISSN")}}else{var _id=_is.replace(/-/g,''),_iss=0;for(var _ii=0;_ii<7;_ii++)_iss+=(8-_ii)*(_id.charCodeAt(_ii)-48);var _il=_id[7]==='X'?10:(_id.charCodeAt(7)-48);_iss+=_il;if(_iss%11!==0)${Z.fail("isISSN")};}}`}})}var c=/^[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+$/,Cj=K("isJWT",(j)=>c.test(j),(j,z)=>{return`if (!_re[${z.addRegex(c)}].test(${j})) ${z.fail("isJWT")};`}),m=/^[-+]?([1-8]?\d(?:\.\d+)?|90(?:\.0+)?),\s*[-+]?(180(?:\.0+)?|1[0-7]\d(?:\.\d+)?|\d{1,2}(?:\.\d+)?)$/;function Aj(){return K("isLatLong",(j)=>m.test(j),(j,z)=>{return`if (!_re[${z.addRegex(m)}].test(${j})) ${z.fail("isLatLong")};`})}var t=/^[a-zA-Z]{2,3}(?:-[a-zA-Z]{4})?(?:-(?:[a-zA-Z]{2}|\d{3}))?(?:-[a-zA-Z\d]{5,8})*$/,Ij=K("isLocale",(j)=>t.test(j),(j,z)=>{return`if (!_re[${z.addRegex(t)}].test(${j})) ${z.fail("isLocale")};`}),l=/^data:([a-zA-Z0-9!#$&\-^_]+\/[a-zA-Z0-9!#$&\-^_]+)(?:;[a-zA-Z0-9\-]+=[a-zA-Z0-9\-]+)*(?:;base64)?,[\s\S]*$/,gj=K("isDataURI",(j)=>l.test(j),(j,z)=>{return`if (!_re[${z.addRegex(l)}].test(${j})) ${z.fail("isDataURI")};`});function Tj(j){let z=j?.require_tld!==!1,Q=j?.allow_underscores??!1,b=j?.allow_trailing_dot??!1,f=Q?/^[a-zA-Z0-9_-]+$/:/^[a-zA-Z0-9-]+$/,Z=(q)=>{if(typeof q!=="string")return!1;let J=q;if(b&&J.endsWith("."))J=J.slice(0,-1);if(J.length===0)return!1;let W=J.split(".");if(z&&W.length<2)return!1;if(z){let X=W[W.length-1];if(!X||X.length<2||!/^[a-zA-Z]{2,}$/.test(X))return!1}return W.every((X)=>{if(X.length===0||X.length>63)return!1;if(!f.test(X))return!1;if(!Q&&(X.startsWith("-")||X.endsWith("-")))return!1;return!0})};return $({name:"isFQDN",requiresType:"string",constraints:{require_tld:j?.require_tld,allow_underscores:j?.allow_underscores,allow_trailing_dot:j?.allow_trailing_dot},validate:Z,emit:(q,J)=>{let W=J.addRegex(f),X=z?J.addRegex(/^[a-zA-Z]{2,}$/):-1,w=`{var _fq=${q};`;if(b)w+="if(_fq.endsWith('.'))_fq=_fq.slice(0,-1);";if(w+=`if(_fq.length===0)${J.fail("isFQDN")};`,w+="else{var _fp=_fq.split('.');",z)w+=`if(_fp.length<2)${J.fail("isFQDN")};`,w+="else{var _tld=_fp[_fp.length-1];",w+=`if(!_tld||_tld.length<2||!_re[${X}].test(_tld))${J.fail("isFQDN")};`,w+="else if(!_fp.every(function(p){";else w+="if(!_fp.every(function(p){";if(w+="if(p.length===0||p.length>63)return false;",w+=`if(!_re[${W}].test(p))return false;`,!Q)w+="if(p[0]==='-'||p[p.length-1]==='-')return false;";if(w+=`return true;}))${J.fail("isFQDN")};`,z)w+="}";return w+="}",w+="}",w}})}var v=/^(?: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)$/,Lj=K("isPort",(j)=>v.test(j),(j,z)=>{return`if (!_re[${z.addRegex(v)}].test(${j})) ${z.fail("isPort")};`});function Sj(j){if(!/^\d{8}$/.test(j)&&!/^\d{13}$/.test(j))return!1;let z=j.split("").map(Number),Q=z.length,b=0;for(let Z=0;Z<Q-1;Z++)b+=z[Z]*(Q===8?Z%2===0?3:1:Z%2===0?1:3);return(10-b%10)%10===z[Q-1]}var kj=K("isEAN",Sj,(j,z)=>{let Q=z.addRegex(/^\d{8}$/),b=z.addRegex(/^\d{13}$/);return`{var _ev=${j};if(!_re[${Q}].test(_ev)&&!_re[${b}].test(_ev)){${z.fail("isEAN")}}else{var _el=_ev.length,_es=0;for(var _ei=0;_ei<_el-1;_ei++){var _ed=_ev.charCodeAt(_ei)-48;_es+=_ed*(_el===8?(_ei%2===0?3:1):(_ei%2===0?1:3));}var _ec=(10-(_es%10))%10;if(_ec!==(_ev.charCodeAt(_el-1)-48))${z.fail("isEAN")};}}`}),e=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"]),dj=$({name:"isISO31661Alpha2",requiresType:"string",constraints:{},validate:(j)=>typeof j==="string"&&e.has(j.toUpperCase()),emit:(j,z)=>{return`if (!_refs[${z.addRef(e)}].has(${j}.toUpperCase())) ${z.fail("isISO31661Alpha2")};`}}),a=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"]),sj=$({name:"isISO31661Alpha3",requiresType:"string",constraints:{},validate:(j)=>typeof j==="string"&&a.has(j.toUpperCase()),emit:(j,z)=>{return`if (!_refs[${z.addRef(a)}].has(${j}.toUpperCase())) ${z.fail("isISO31661Alpha3")};`}}),j6=/^[A-Z]{6}[A-Z0-9]{2}(?:[A-Z0-9]{3})?$/,_j=K("isBIC",(j)=>j6.test(j.toUpperCase()),(j,z)=>{return`if (!_re[${z.addRegex(j6)}].test(${j}.toUpperCase())) ${z.fail("isBIC")};`}),z6=/^[a-zA-Z0-9_-]{20}$/,Ej=K("isFirebasePushId",(j)=>z6.test(j),(j,z)=>{return`if (!_re[${z.addRegex(z6)}].test(${j})) ${z.fail("isFirebasePushId")};`}),Q6=/^(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-]+)*))?$/,pj=K("isSemVer",(j)=>Q6.test(j),(j,z)=>{return`if (!_re[${z.addRegex(Q6)}].test(${j})) ${z.fail("isSemVer")};`}),b6=/^[0-9a-fA-F]{24}$/,oj=K("isMongoId",(j)=>b6.test(j),(j,z)=>{return`if (!_re[${z.addRegex(b6)}].test(${j})) ${z.fail("isMongoId")};`}),ij=(j)=>{if(typeof j!=="string")return!1;try{return JSON.parse(j),!0}catch{return!1}},Rj=$({name:"isJSON",requiresType:"string",constraints:{},validate:ij,emit:(j,z)=>`try { JSON.parse(${j}); } catch(_e) { ${z.fail("isJSON")}; }`}),Nj=/^[A-Z2-7]+=*$/i;function nj(){let j=Nj;return K("isBase32",(z)=>{if(z.length===0)return!1;if(z.length%8!==0)return!1;return j.test(z)},(z,Q)=>{let b=Q.addRegex(j);return`if (${z}.length === 0 || ${z}.length % 8 !== 0 || !_re[${b}].test(${z})) ${Q.fail("isBase32")};`})}var f6=/^[1-9A-HJ-NP-Za-km-z]+$/,xj=K("isBase58",(j)=>f6.test(j),(j,z)=>{return`if (!_re[${z.addRegex(f6)}].test(${j})) ${z.fail("isBase58")};`}),uj=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$/,rj=/^[A-Za-z0-9_-]+={0,2}$/;function cj(j){let z=j?.urlSafe?rj:uj;return K("isBase64",(Q)=>{if(Q.length===0)return!1;return z.test(Q)},(Q,b)=>{let f=b.addRegex(z);return`if (${Q}.length === 0 || !_re[${f}].test(${Q})) ${b.fail("isBase64")};`},"string",{urlSafe:j?.urlSafe})}var Z6=/^\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])$/;function mj(){return K("isDateString",(j)=>Z6.test(j),(j,z)=>{return`if (!_re[${z.addRegex(Z6)}].test(${j})) ${z.fail("isDateString")};`})}var $6=/^(application|audio|font|image|message|model|multipart|text|video)\/[a-zA-Z0-9][a-zA-Z0-9!#$&\-^_.+]*(?:;.+)?$/,tj=K("isMimeType",(j)=>$6.test(j),(j,z)=>{return`if (!_re[${z.addRegex($6)}].test(${j})) ${z.fail("isMimeType")};`}),J6=/^[-+]?(?:[,.\d]+)(?:[.,]\d{2})?$|^\$?-?(?:\d+|\d{1,3}(?:,\d{3})*)(?:\.\d{1,2})?$/;function lj(){return K("isCurrency",(j)=>{if(j.length===0)return!1;return J6.test(j)},(j,z)=>{let Q=z.addRegex(J6);return`if (${j}.length === 0 || !_re[${Q}].test(${j})) ${z.fail("isCurrency")};`})}var K6=/^magnet:\?xt=urn:[a-z0-9]+:[a-z0-9]{32,40}/i,vj=K("isMagnetURI",(j)=>K6.test(j),(j,z)=>{return`if (!_re[${z.addRegex(K6)}].test(${j})) ${z.fail("isMagnetURI")};`});function ej(j){let z=j.replace(/[\s-]/g,"");if(z.length===0||!/^\d+$/.test(z))return!1;let Q=0,b=!1;for(let f=z.length-1;f>=0;f--){let Z=z.charCodeAt(f)-48;if(b){if(Z*=2,Z>9)Z-=9}Q+=Z,b=!b}return Q%10===0}var aj=$({name:"isCreditCard",requiresType:"string",constraints:{},validate:(j)=>typeof j==="string"&&ej(j),emit:(j,z)=>`{
|
|
12
|
+
var _cs=${j}.replace(/[\\s-]/g,'');
|
|
13
|
+
if(_cs.length===0||!/^\\d+$/.test(_cs)){${z.fail("isCreditCard")}}
|
|
8
14
|
else{var _sum=0,_alt=false;
|
|
9
15
|
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)${
|
|
11
|
-
}`;H.ruleName="isCreditCard";H.requiresType="string";H.constraints={};var WQ=H,wQ={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 XQ(z,Q){let b=Q?.allowSpaces?z.replace(/\s/g,""):z;if(b=b.toUpperCase(),!/^[A-Z]{2}\d{2}[A-Z0-9]+$/.test(b))return!1;let j=b.slice(0,2),Z=wQ[j];if(Z!==void 0&&b.length!==Z)return!1;let J=(b.slice(4)+b.slice(0,4)).replace(/[A-Z]/g,(q)=>String(q.charCodeAt(0)-55)),W=0;for(let q=0;q<J.length;q+=7){let w=String(W)+J.slice(q,q+7);W=parseInt(w,10)%97}return W===1}function YQ(z){let Q=(b)=>{if(typeof b!=="string")return!1;return XQ(b,z)};return Q.emit=(b,j)=>{return`if (!_refs[${j.addRef(Q)}](${b})) ${j.fail("isIBAN")};`},Q.ruleName="isIBAN",Q.requiresType="string",Q.constraints={allowSpaces:z?.allowSpaces},Q}function VQ(z,Q){let b=(j)=>{if(typeof j!=="string")return!1;let Z=Buffer.byteLength(j,"utf8");if(Z<z)return!1;if(Q!==void 0&&Z>Q)return!1;return!0};return b.emit=(j,Z)=>{let $=(W)=>{let q=Buffer.byteLength(W,"utf8");if(q<z)return!1;if(Q!==void 0&&q>Q)return!1;return!0};return`if (!_refs[${Z.addRef($)}](${j})) ${Z.fail("isByteLength")};`},b.ruleName="isByteLength",b.requiresType="string",b.constraints={min:z,max:Q},b}var hQ={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 MQ(z){let Q=hQ[z],b=(j)=>{if(typeof j!=="string")return!1;if(!Q)return!1;return Q.test(j)};return b.emit=(j,Z)=>{if(!Q)return Z.fail("isHash")+";";return`if (!_re[${Z.addRegex(Q)}].test(${j})) ${Z.fail("isHash")};`},b.ruleName="isHash",b.requiresType="string",b.constraints={algorithm:z},b}var B6=/^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-]\d{2}:\d{2})$/i,FQ=K("isRFC3339",(z)=>B6.test(z),(z,Q)=>{return`if (!_re[${Q.addRegex(B6)}].test(${z})) ${Q.fail("isRFC3339")};`}),U6=/^([01]\d|2[0-3]):[0-5]\d$/,GQ=K("isMilitaryTime",(z)=>U6.test(z),(z,Q)=>{return`if (!_re[${Q.addRegex(U6)}].test(${z})) ${Q.fail("isMilitaryTime")};`});function T6(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 d=(z)=>T6(z);d.emit=(z,Q)=>{return`if (!_refs[${Q.addRef(T6)}](${z})) ${Q.fail("isLatitude")};`};d.ruleName="isLatitude";d.constraints={};var BQ=d;function L6(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 S=(z)=>L6(z);S.emit=(z,Q)=>{return`if (!_refs[${Q.addRef(L6)}](${z})) ${Q.fail("isLongitude")};`};S.ruleName="isLongitude";S.constraints={};var UQ=S,H6=/^0x[0-9a-fA-F]{40}$/,HQ=K("isEthereumAddress",(z)=>H6.test(z),(z,Q)=>{return`if (!_re[${Q.addRegex(H6)}].test(${z})) ${Q.fail("isEthereumAddress")};`}),y6=/^1[a-km-zA-HJ-NP-Z1-9]{25,34}$/,D6=/^3[a-km-zA-HJ-NP-Z1-9]{25,34}$/,P6=/^(bc1)[a-z0-9]{6,87}$/,yQ=K("isBtcAddress",(z)=>y6.test(z)||D6.test(z)||P6.test(z),(z,Q)=>{let b=Q.addRegex(y6),j=Q.addRegex(D6),Z=Q.addRegex(P6);return`if (!_re[${b}].test(${z}) && !_re[${j}].test(${z}) && !_re[${Z}].test(${z})) ${Q.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"]),DQ=K("isISO4217CurrencyCode",(z)=>C6.has(z),(z,Q)=>{return`if (!_refs[${Q.addRef(C6)}].has(${z})) ${Q.fail("isISO4217CurrencyCode")};`}),O6=/^\+[1-9]\d{6,14}$/,PQ=K("isPhoneNumber",(z)=>O6.test(z),(z,Q)=>{return`if (!_re[${Q.addRegex(O6)}].test(${z})) ${Q.fail("isPhoneNumber")};`});function CQ(z){let Q=z?.minLength??8,b=z?.minLowercase??1,j=z?.minUppercase??1,Z=z?.minNumbers??1,$=z?.minSymbols??1,J=(q)=>{if(q.length<Q)return!1;if(b>0){if((q.match(/[a-z]/g)||[]).length<b)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 J(q)};return W.emit=(q,w)=>{return`if (!_refs[${w.addRef(J)}](${q})) ${w.fail("isStrongPassword")};`},W.ruleName="isStrongPassword",W.requiresType="string",W.constraints={},W}var OQ={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 kQ(z){let Q=OQ[z],b=(j)=>{if(typeof j!=="string")return!1;if(!Q)return!1;return Q.test(j)};return b.emit=(j,Z)=>{if(!Q)return Z.fail("isTaxId")+";";return`if (!_re[${Z.addRegex(Q)}].test(${j})) ${Z.fail("isTaxId")};`},b.ruleName="isTaxId",b.requiresType="string",b.constraints={},b}var k6=/^[0-9A-HJKMNP-TV-Z]{26}$/;function IQ(){return K("isULID",(z)=>k6.test(z),(z,Q)=>{return`if (!_re[${Q.addRegex(k6)}].test(${z})) ${Q.fail("isULID")};`},"string",{format:"ulid"})}var I6=/^[a-z][0-9a-z]{23,}$/;function gQ(){return K("isCUID2",(z)=>I6.test(z),(z,Q)=>{return`if (!_re[${Q.addRegex(I6)}].test(${z})) ${Q.fail("isCUID2")};`},"string",{format:"cuid2"})}function AQ(z){let Q=(b)=>{if(!Array.isArray(b))return!1;return z.every((j)=>b.indexOf(j)!==-1)};return Q.emit=(b,j)=>{return`if (!_refs[${j.addRef(z)}].every(function(v){return ${b}.indexOf(v)!==-1;})) ${j.fail("arrayContains")};`},Q.ruleName="arrayContains",Q.constraints={values:z},Q}function TQ(z){let Q=(b)=>{if(!Array.isArray(b))return!1;return z.every((j)=>!b.includes(j))};return Q.emit=(b,j)=>{return`if (_refs[${j.addRef(z)}].some(function(v){return ${b}.indexOf(v)!==-1;})) ${j.fail("arrayNotContains")};`},Q.ruleName="arrayNotContains",Q.constraints={values:z},Q}function LQ(z){let Q=(b)=>Array.isArray(b)&&b.length>=z;return Q.emit=(b,j)=>`if (${b}.length < ${z}) ${j.fail("arrayMinSize")};`,Q.ruleName="arrayMinSize",Q.constraints={min:z},Q}function dQ(z){let Q=(b)=>Array.isArray(b)&&b.length<=z;return Q.emit=(b,j)=>`if (${b}.length > ${z}) ${j.fail("arrayMaxSize")};`,Q.ruleName="arrayMaxSize",Q.constraints={max:z},Q}function SQ(z){let Q=(b)=>{if(!Array.isArray(b))return!1;if(z){let j=b.map(z);return new Set(j).size===j.length}return new Set(b).size===b.length};return Q.emit=(b,j)=>{if(z){let Z=j.addRef(z);return`{var _keys=${b}.map(_refs[${Z}]);if(new Set(_keys).size!==_keys.length)${j.fail("arrayUnique")};}`}return`if(new Set(${b}).size!==${b}.length)${j.fail("arrayUnique")};`},Q.ruleName="arrayUnique",Q.constraints={},Q}var p=(z)=>Array.isArray(z)&&z.length>0;p.emit=(z,Q)=>`if (${z}.length === 0) ${Q.fail("arrayNotEmpty")};`;p.ruleName="arrayNotEmpty";p.constraints={};var pQ=p;function fQ(z){let Q=(b)=>{if(b===null||typeof b!=="object"||Array.isArray(b))return!1;let j=Object.keys(b);if(z?.nullable)return j.some((Z)=>b[Z]!=null);return j.length>0};return Q.emit=(b,j)=>{if(z?.nullable)return`if (!_refs[${j.addRef(Q)}](${b})) ${j.fail("isNotEmptyObject")};`;return`if (Object.keys(${b}).length === 0) ${j.fail("isNotEmptyObject")};`},Q.ruleName="isNotEmptyObject",Q.constraints={nullable:z?.nullable},Q}function RQ(z){let Q=(b)=>b instanceof z;return Q.emit=(b,j)=>{let Z=j.addRef(z);return`if (!(${b} instanceof _refs[${Z}])) ${j.fail("isInstance")};`},Q.ruleName="isInstance",Q.constraints={type:z.name},Q}var EQ={"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 oQ(z){let Q=EQ[z];if(!Q)throw Error(`Unsupported locale: "${z}" for isMobilePhone`);let b=(j)=>{if(typeof j!=="string")return!1;return Q.test(j)};return b.emit=(j,Z)=>{return`if (!_re[${Z.addRegex(Q)}].test(${j})) ${Z.fail("isMobilePhone")};`},b.ruleName="isMobilePhone",b.requiresType="string",b.constraints={locale:z},b}var sQ={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 _Q(z){let Q=sQ[z];if(!Q)throw Error(`Unsupported locale: "${z}" for isPostalCode`);let b=(j)=>{if(typeof j!=="string")return!1;return Q.test(j)};return b.emit=(j,Z)=>{return`if (!_re[${Z.addRegex(Q)}].test(${j})) ${Z.fail("isPostalCode")};`},b.ruleName="isPostalCode",b.requiresType="string",b.constraints={locale:z},b}var iQ={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 NQ(z){let Q=iQ[z];if(!Q)throw Error(`Unsupported locale: "${z}" for isIdentityCard`);let b=(j)=>{if(typeof j!=="string")return!1;return Q.test(j)};return b.emit=(j,Z)=>{return`if (!_re[${Z.addRegex(Q)}].test(${j})) ${Z.fail("isIdentityCard")};`},b.ruleName="isIdentityCard",b.requiresType="string",b.constraints={locale:z},b}var uQ={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 xQ(z){let Q=uQ[z];if(!Q)throw Error(`Unsupported locale: "${z}" for isPassportNumber`);let b=(j)=>{if(typeof j!=="string")return!1;return Q.test(j)};return b.emit=(j,Z)=>{return`if (!_re[${Z.addRegex(Q)}].test(${j})) ${Z.fail("isPassportNumber")};`},b.ruleName="isPassportNumber",b.requiresType="string",b.constraints={locale:z},b}export{n6 as notEquals,jz as notContains,a6 as minLength,m6 as minDate,_6 as min,zz as maxLength,r6 as maxDate,i6 as max,Zz as matches,Qz as length,Fz as isVariableWidth,Kz as isUppercase,Cz as isUUID,Pz as isURL,IQ as isULID,kQ as isTaxId,Bz as isSurrogatePair,CQ as isStrongPassword,d6 as isString,cz as isSemVer,Iz as isRgbColor,FQ as isRFC3339,_Q as isPostalCode,N6 as isPositive,uz as isPort,PQ as isPhoneNumber,xQ as isPassportNumber,Hz as isOctal,s6 as isObject,Yz as isNumberString,S6 as isNumber,e6 as isNotIn,fQ as isNotEmptyObject,t6 as isNotEmpty,u6 as isNegative,Gz as isMultibyte,tz as isMongoId,oQ as isMobilePhone,$Q as isMimeType,GQ as isMilitaryTime,JQ as isMagnetURI,Az as isMACAddress,$z as isLowercase,UQ as isLongitude,_z as isLocale,BQ as isLatitude,sz as isLatLong,oz as isJWT,vz as isJSON,E6 as isInt,RQ as isInstance,v6 as isIn,NQ as isIdentityCard,Ez as isISSN,fz as isISRC,pz as isISO8601,DQ as isISO4217CurrencyCode,rz as isISO31661Alpha3,mz as isISO31661Alpha2,dz as isISIN,Tz as isISBN,Oz as isIP,YQ as isIBAN,Uz as isHexadecimal,kz as isHexColor,MQ as isHash,Mz as isHalfWidth,gz as isHSL,hz as isFullWidth,nz as isFirebasePushId,Nz as isFQDN,HQ as isEthereumAddress,R6 as isEnum,c6 as isEmpty,yz as isEmail,xz as isEAN,x6 as isDivisibleBy,Vz as isDecimal,ZQ as isDateString,f6 as isDate,iz as isDataURI,KQ as isCurrency,WQ as isCreditCard,gQ as isCUID2,VQ as isByteLength,yQ as isBtcAddress,wz as isBooleanString,p6 as isBoolean,jQ as isBase64,zQ as isBase58,az as isBase32,lz as isBIC,Jz as isAscii,o6 as isArray,Wz as isAlphanumeric,qz as isAlpha,l6 as equals,bz as contains,SQ as arrayUnique,mQ as arrayOf,pQ as arrayNotEmpty,TQ as arrayNotContains,LQ as arrayMinSize,dQ as arrayMaxSize,AQ as arrayContains};
|
|
16
|
+
if(_sum%10!==0)${z.fail("isCreditCard")};}
|
|
17
|
+
}`}),V6={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 jz(j,z){let Q=z?.allowSpaces?j.replace(/\s/g,""):j;if(Q=Q.toUpperCase(),!/^[A-Z]{2}\d{2}[A-Z0-9]+$/.test(Q))return!1;let b=Q.slice(0,2),f=V6[b];if(f!==void 0&&Q.length!==f)return!1;let q=(Q.slice(4)+Q.slice(0,4)).replace(/[A-Z]/g,(W)=>String(W.charCodeAt(0)-55)),J=0;for(let W=0;W<q.length;W+=7){let X=String(J)+q.slice(W,W+7);J=parseInt(X,10)%97}return J===1}function zz(j){let z=j?.allowSpaces??!1,Q=(b)=>typeof b==="string"&&jz(b,j);return $({name:"isIBAN",requiresType:"string",constraints:{allowSpaces:j?.allowSpaces},validate:Q,emit:(b,f)=>{let Z=f.addRegex(/^[A-Z]{2}\d{2}[A-Z0-9]+$/),q=f.addRef(V6),J="{";return J+=`var _ib=${z?`${b}.replace(/\\s/g,'')`:b}.toUpperCase();`,J+=`if(!_re[${Z}].test(_ib)){${f.fail("isIBAN")}}`,J+=`else{var _ic=_ib.slice(0,2),_il=_refs[${q}][_ic];`,J+=`if(_il!==undefined&&_ib.length!==_il){${f.fail("isIBAN")}}`,J+="else{var _ir=_ib.slice(4)+_ib.slice(0,4);",J+="var _in=_ir.replace(/[A-Z]/g,function(c){return String(c.charCodeAt(0)-55);});",J+="var _im=0;for(var _ii=0;_ii<_in.length;_ii+=7){_im=parseInt(String(_im)+_in.slice(_ii,_ii+7),10)%97;}",J+=`if(_im!==1)${f.fail("isIBAN")};}}}`,J}})}function Qz(j,z){return $({name:"isByteLength",requiresType:"string",constraints:{min:j,max:z},validate:(b)=>{if(typeof b!=="string")return!1;let f=Buffer.byteLength(b,"utf8");if(f<j)return!1;if(z!==void 0&&f>z)return!1;return!0},emit:(b,f)=>{let Z=`{var _bl=Buffer.byteLength(${b},'utf8');`;if(Z+=`if(_bl<${j})${f.fail("isByteLength")};`,z!==void 0)Z+=`else if(_bl>${z})${f.fail("isByteLength")};`;return Z+="}",Z}})}var bz={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 fz(j){let z=bz[j];return $({name:"isHash",requiresType:"string",constraints:{algorithm:j},validate:(Q)=>typeof Q==="string"&&!!z&&z.test(Q),emit:(Q,b)=>{if(!z)return b.fail("isHash")+";";return`if (!_re[${b.addRegex(z)}].test(${Q})) ${b.fail("isHash")};`}})}var W6=/^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-]\d{2}:\d{2})$/i,Zz=K("isRFC3339",(j)=>W6.test(j),(j,z)=>{return`if (!_re[${z.addRegex(W6)}].test(${j})) ${z.fail("isRFC3339")};`}),q6=/^([01]\d|2[0-3]):[0-5]\d$/,$z=K("isMilitaryTime",(j)=>q6.test(j),(j,z)=>{return`if (!_re[${z.addRegex(q6)}].test(${j})) ${z.fail("isMilitaryTime")};`});function Jz(j){if(typeof j==="number")return j>=-90&&j<=90;if(typeof j==="string"){let z=parseFloat(j);if(isNaN(z))return!1;if(String(z)!==j&&j!==String(z)){if(!/^-?\d+(\.\d+)?$/.test(j))return!1}return z>=-90&&z<=90}return!1}var Kz=$({name:"isLatitude",constraints:{},validate:Jz,emit:(j,z)=>{let Q=z.addRegex(/^-?\d+(\.\d+)?$/);return`if(typeof ${j}==='number'){if(${j}<-90||${j}>90)${z.fail("isLatitude")};}else if(typeof ${j}==='string'){var _lt=parseFloat(${j});if(isNaN(_lt)||!_re[${Q}].test(${j})||_lt<-90||_lt>90)${z.fail("isLatitude")};}else{${z.fail("isLatitude")};}`}});function Wz(j){if(typeof j==="number")return j>=-180&&j<=180;if(typeof j==="string"){let z=parseFloat(j);if(isNaN(z))return!1;if(!/^-?\d+(\.\d+)?$/.test(j))return!1;return z>=-180&&z<=180}return!1}var qz=$({name:"isLongitude",constraints:{},validate:Wz,emit:(j,z)=>{let Q=z.addRegex(/^-?\d+(\.\d+)?$/);return`if(typeof ${j}==='number'){if(${j}<-180||${j}>180)${z.fail("isLongitude")};}else if(typeof ${j}==='string'){var _ln=parseFloat(${j});if(isNaN(_ln)||!_re[${Q}].test(${j})||_ln<-180||_ln>180)${z.fail("isLongitude")};}else{${z.fail("isLongitude")};}`}}),h6=/^0x[0-9a-fA-F]{40}$/,hz=K("isEthereumAddress",(j)=>h6.test(j),(j,z)=>{return`if (!_re[${z.addRegex(h6)}].test(${j})) ${z.fail("isEthereumAddress")};`}),X6=/^1[a-km-zA-HJ-NP-Z1-9]{25,34}$/,w6=/^3[a-km-zA-HJ-NP-Z1-9]{25,34}$/,F6=/^(bc1)[a-z0-9]{6,87}$/,Xz=K("isBtcAddress",(j)=>X6.test(j)||w6.test(j)||F6.test(j),(j,z)=>{let Q=z.addRegex(X6),b=z.addRegex(w6),f=z.addRegex(F6);return`if (!_re[${Q}].test(${j}) && !_re[${b}].test(${j}) && !_re[${f}].test(${j})) ${z.fail("isBtcAddress")};`}),Y6=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"]),wz=K("isISO4217CurrencyCode",(j)=>Y6.has(j),(j,z)=>{return`if (!_refs[${z.addRef(Y6)}].has(${j})) ${z.fail("isISO4217CurrencyCode")};`}),M6=/^\+[1-9]\d{6,14}$/,Fz=K("isPhoneNumber",(j)=>M6.test(j),(j,z)=>{return`if (!_re[${z.addRegex(M6)}].test(${j})) ${z.fail("isPhoneNumber")};`});function Yz(j){let z=j?.minLength??8,Q=j?.minLowercase??1,b=j?.minUppercase??1,f=j?.minNumbers??1,Z=j?.minSymbols??1,q=(J)=>{if(J.length<z)return!1;if(Q>0){if((J.match(/[a-z]/g)||[]).length<Q)return!1}if(b>0){if((J.match(/[A-Z]/g)||[]).length<b)return!1}if(f>0){if((J.match(/[0-9]/g)||[]).length<f)return!1}if(Z>0){if((J.match(/[^a-zA-Z0-9]/g)||[]).length<Z)return!1}return!0};return $({name:"isStrongPassword",requiresType:"string",constraints:{},validate:(J)=>typeof J==="string"&&q(J),emit:(J,W)=>{let X="";if(X+=`if(${J}.length<${z})${W.fail("isStrongPassword")};`,Q>0)X+=`
|
|
18
|
+
else if((${J}.match(/[a-z]/g)||[]).length<${Q})${W.fail("isStrongPassword")};`;if(b>0)X+=`
|
|
19
|
+
else if((${J}.match(/[A-Z]/g)||[]).length<${b})${W.fail("isStrongPassword")};`;if(f>0)X+=`
|
|
20
|
+
else if((${J}.match(/[0-9]/g)||[]).length<${f})${W.fail("isStrongPassword")};`;if(Z>0)X+=`
|
|
21
|
+
else if((${J}.match(/[^a-zA-Z0-9]/g)||[]).length<${Z})${W.fail("isStrongPassword")};`;return X}})}var Mz={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 yz(j){let z=Mz[j];return $({name:"isTaxId",requiresType:"string",constraints:{locale:j},validate:(Q)=>typeof Q==="string"&&!!z&&z.test(Q),emit:(Q,b)=>{if(!z)return b.fail("isTaxId")+";";return`if (!_re[${b.addRegex(z)}].test(${Q})) ${b.fail("isTaxId")};`}})}var y6=/^[0-9A-HJKMNP-TV-Z]{26}$/;function Gz(){return K("isULID",(j)=>y6.test(j),(j,z)=>{return`if (!_re[${z.addRegex(y6)}].test(${j})) ${z.fail("isULID")};`},"string",{format:"ulid"})}var G6=/^[a-z][0-9a-z]{23,}$/;function Bz(){return K("isCUID2",(j)=>G6.test(j),(j,z)=>{return`if (!_re[${z.addRegex(G6)}].test(${j})) ${z.fail("isCUID2")};`},"string",{format:"cuid2"})}function Vz(j){return $({name:"arrayContains",requiresType:"array",constraints:{values:j},validate:(z)=>Array.isArray(z)&&j.every((Q)=>z.indexOf(Q)!==-1),emit:(z,Q)=>{return`if (!_refs[${Q.addRef(j)}].every(function(v){return ${z}.indexOf(v)!==-1;})) ${Q.fail("arrayContains")};`}})}function Uz(j){return $({name:"arrayNotContains",requiresType:"array",constraints:{values:j},validate:(z)=>Array.isArray(z)&&j.every((Q)=>!z.includes(Q)),emit:(z,Q)=>{return`if (_refs[${Q.addRef(j)}].some(function(v){return ${z}.indexOf(v)!==-1;})) ${Q.fail("arrayNotContains")};`}})}function Dz(j){let z={cacheKey:"length",failure:h(y(),"<",j)};return F({name:"arrayMinSize",requiresType:"array",constraints:{min:j},plan:z,validate:(Q)=>Array.isArray(Q)&&Q.length>=j})}function Hz(j){let z={cacheKey:"length",failure:h(y(),">",j)};return F({name:"arrayMaxSize",requiresType:"array",constraints:{max:j},plan:z,validate:(Q)=>Array.isArray(Q)&&Q.length<=j})}function Oz(j){return $({name:"arrayUnique",requiresType:"array",constraints:{},validate:(z)=>{if(!Array.isArray(z))return!1;if(j){let Q=z.map(j);return new Set(Q).size===Q.length}return new Set(z).size===z.length},emit:(z,Q)=>{if(j){let b=Q.addRef(j);return`{var _keys=${z}.map(_refs[${b}]);if(new Set(_keys).size!==_keys.length)${Q.fail("arrayUnique")};}`}return`if(new Set(${z}).size!==${z}.length)${Q.fail("arrayUnique")};`}})}var Pz={cacheKey:"length",failure:h(y(),"===",0)},Cz=F({name:"arrayNotEmpty",requiresType:"array",constraints:{},plan:Pz,validate:(j)=>Array.isArray(j)&&j.length>0});function Az(j){let z=(Q)=>{if(Q===null||typeof Q!=="object"||Array.isArray(Q))return!1;let b=Object.keys(Q);if(j?.nullable)return b.some((f)=>Q[f]!=null);return b.length>0};return $({name:"isNotEmptyObject",requiresType:"object",constraints:{nullable:j?.nullable},validate:z,emit:(Q,b)=>{if(j?.nullable)return`if (!Object.keys(${Q}).some(function(_k){return ${Q}[_k]!=null;})) ${b.fail("isNotEmptyObject")};`;return`if (Object.keys(${Q}).length === 0) ${b.fail("isNotEmptyObject")};`}})}function Iz(j){return $({name:"isInstance",constraints:{type:j.name},validate:(z)=>z instanceof j,emit:(z,Q)=>{let b=Q.addRef(j);return`if (!(${z} instanceof _refs[${b}])) ${Q.fail("isInstance")};`}})}var gz={"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 Tz(j){return P("isMobilePhone",j,gz)}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 Sz(j){return P("isPostalCode",j,Lz)}var kz={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 dz(j){return P("isIdentityCard",j,kz)}var sz={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 _z(j){return P("isPassportNumber",j,sz)}function P(j,z,Q){let b=Q[z];if(!b)throw Error(`Unsupported locale: "${z}" for ${j}`);return $({name:j,requiresType:"string",constraints:{locale:z},validate:(f)=>typeof f==="string"&&b.test(f),emit:(f,Z)=>{return`if (!_re[${Z.addRegex(b)}].test(${f})) ${Z.fail(j)};`}})}export{E6 as notEquals,r6 as notContains,N6 as minLength,d6 as minDate,g6 as min,n6 as maxLength,s6 as maxDate,T6 as max,c6 as matches,x6 as length,fj as isVariableWidth,t6 as isUppercase,Xj as isUUID,hj as isURL,Gz as isULID,yz as isTaxId,$j as isSurrogatePair,Yz as isStrongPassword,U6 as isString,pj as isSemVer,Yj as isRgbColor,Zz as isRFC3339,Sz as isPostalCode,L6 as isPositive,Lj as isPort,Fz as isPhoneNumber,_z as isPassportNumber,Kj as isOctal,I6 as isObject,jj as isNumberString,D6 as isNumber,R6 as isNotIn,Az as isNotEmptyObject,o6 as isNotEmpty,S6 as isNegative,Zj as isMultibyte,oj as isMongoId,Tz as isMobilePhone,tj as isMimeType,$z as isMilitaryTime,vj as isMagnetURI,yj as isMACAddress,m6 as isLowercase,qz as isLongitude,Ij as isLocale,Kz as isLatitude,Aj as isLatLong,Cj as isJWT,Rj as isJSON,C6 as isInt,Iz as isInstance,i6 as isIn,dz as isIdentityCard,Pj as isISSN,Hj as isISRC,Dj as isISO8601,wz as isISO4217CurrencyCode,sj as isISO31661Alpha3,dj as isISO31661Alpha2,Vj as isISIN,Gj as isISBN,wj as isIP,zz as isIBAN,Jj as isHexadecimal,Fj as isHexColor,fz as isHash,bj as isHalfWidth,Mj as isHSL,Qj as isFullWidth,Ej as isFirebasePushId,Tj as isFQDN,hz as isEthereumAddress,P6 as isEnum,p6 as isEmpty,Wj as isEmail,kj as isEAN,k6 as isDivisibleBy,zj as isDecimal,mj as isDateString,O6 as isDate,gj as isDataURI,lj as isCurrency,aj as isCreditCard,Bz as isCUID2,Qz as isByteLength,Xz as isBtcAddress,a6 as isBooleanString,H6 as isBoolean,cj as isBase64,xj as isBase58,nj as isBase32,_j as isBIC,l6 as isAscii,A6 as isArray,e6 as isAlphanumeric,v6 as isAlpha,_6 as equals,u6 as contains,Oz as arrayUnique,Ez as arrayOf,Cz as arrayNotEmpty,Uz as arrayNotContains,Dz as arrayMinSize,Hz as arrayMaxSize,Vz as arrayContains};
|
|
@@ -5,6 +5,6 @@ export declare function min(n: number, opts?: {
|
|
|
5
5
|
export declare function max(n: number, opts?: {
|
|
6
6
|
exclusive?: boolean;
|
|
7
7
|
}): EmittableRule;
|
|
8
|
-
export declare const isPositive:
|
|
9
|
-
export declare const isNegative:
|
|
8
|
+
export declare const isPositive: import("../types").InternalRule;
|
|
9
|
+
export declare const isNegative: import("../types").InternalRule;
|
|
10
10
|
export declare function isDivisibleBy(n: number): EmittableRule;
|
|
@@ -5,12 +5,12 @@ export declare function length(minLen: number, maxLen: number): EmittableRule;
|
|
|
5
5
|
export declare function contains(seed: string): EmittableRule;
|
|
6
6
|
export declare function notContains(seed: string): EmittableRule;
|
|
7
7
|
export declare function matches(pattern: string | RegExp, modifiers?: string): EmittableRule;
|
|
8
|
-
export declare const isLowercase:
|
|
9
|
-
export declare const isUppercase:
|
|
8
|
+
export declare const isLowercase: import("../types").InternalRule;
|
|
9
|
+
export declare const isUppercase: import("../types").InternalRule;
|
|
10
10
|
export declare const isAscii: EmittableRule;
|
|
11
11
|
export declare const isAlpha: EmittableRule;
|
|
12
12
|
export declare const isAlphanumeric: EmittableRule;
|
|
13
|
-
export declare const isBooleanString:
|
|
13
|
+
export declare const isBooleanString: import("../types").InternalRule;
|
|
14
14
|
export interface IsNumberStringOptions {
|
|
15
15
|
no_symbols?: boolean;
|
|
16
16
|
}
|
|
@@ -60,13 +60,13 @@ export interface IsFQDNOptions {
|
|
|
60
60
|
export declare function isFQDN(options?: IsFQDNOptions): EmittableRule;
|
|
61
61
|
export declare const isPort: EmittableRule;
|
|
62
62
|
export declare const isEAN: EmittableRule;
|
|
63
|
-
export declare const isISO31661Alpha2:
|
|
64
|
-
export declare const isISO31661Alpha3:
|
|
63
|
+
export declare const isISO31661Alpha2: import("../types").InternalRule;
|
|
64
|
+
export declare const isISO31661Alpha3: import("../types").InternalRule;
|
|
65
65
|
export declare const isBIC: EmittableRule;
|
|
66
66
|
export declare const isFirebasePushId: EmittableRule;
|
|
67
67
|
export declare const isSemVer: EmittableRule;
|
|
68
68
|
export declare const isMongoId: EmittableRule;
|
|
69
|
-
export declare const isJSON:
|
|
69
|
+
export declare const isJSON: import("../types").InternalRule;
|
|
70
70
|
export declare function isBase32(): EmittableRule;
|
|
71
71
|
export declare const isBase58: EmittableRule;
|
|
72
72
|
export interface IsBase64Options {
|
|
@@ -77,7 +77,7 @@ export declare function isDateString(): EmittableRule;
|
|
|
77
77
|
export declare const isMimeType: EmittableRule;
|
|
78
78
|
export declare function isCurrency(): EmittableRule;
|
|
79
79
|
export declare const isMagnetURI: EmittableRule;
|
|
80
|
-
export declare const isCreditCard:
|
|
80
|
+
export declare const isCreditCard: import("../types").InternalRule;
|
|
81
81
|
export interface IsIBANOptions {
|
|
82
82
|
allowSpaces?: boolean;
|
|
83
83
|
}
|
|
@@ -86,8 +86,8 @@ export declare function isByteLength(min: number, max?: number): EmittableRule;
|
|
|
86
86
|
export declare function isHash(algorithm: string): EmittableRule;
|
|
87
87
|
export declare const isRFC3339: EmittableRule;
|
|
88
88
|
export declare const isMilitaryTime: EmittableRule;
|
|
89
|
-
export declare const isLatitude:
|
|
90
|
-
export declare const isLongitude:
|
|
89
|
+
export declare const isLatitude: import("../types").InternalRule;
|
|
90
|
+
export declare const isLongitude: import("../types").InternalRule;
|
|
91
91
|
export declare const isEthereumAddress: EmittableRule;
|
|
92
92
|
export declare const isBtcAddress: EmittableRule;
|
|
93
93
|
export declare const isISO4217CurrencyCode: EmittableRule;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import type { EmittableRule } from '../types';
|
|
2
|
-
export declare const isString:
|
|
2
|
+
export declare const isString: import("../types").InternalRule;
|
|
3
3
|
export interface IsNumberOptions {
|
|
4
4
|
allowNaN?: boolean;
|
|
5
5
|
allowInfinity?: boolean;
|
|
6
6
|
maxDecimalPlaces?: number;
|
|
7
7
|
}
|
|
8
8
|
export declare function isNumber(options?: IsNumberOptions): EmittableRule;
|
|
9
|
-
export declare const isBoolean:
|
|
10
|
-
export declare const isDate:
|
|
9
|
+
export declare const isBoolean: import("../types").InternalRule;
|
|
10
|
+
export declare const isDate: import("../types").InternalRule;
|
|
11
11
|
export declare function isEnum(entity: object): EmittableRule;
|
|
12
|
-
export declare const isInt:
|
|
13
|
-
export declare const isArray:
|
|
14
|
-
export declare const isObject:
|
|
12
|
+
export declare const isInt: import("../types").InternalRule;
|
|
13
|
+
export declare const isArray: import("../types").InternalRule;
|
|
14
|
+
export declare const isObject: import("../types").InternalRule;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** Convert key to a valid JS identifier suffix (encode non-alphanumeric chars via charCode to prevent collisions) */
|
|
2
|
+
export declare function sanitizeKey(key: string): string;
|
|
3
|
+
/**
|
|
4
|
+
* Generate a groups-has expression for the fast-path single-group / Set pattern.
|
|
5
|
+
* Checks if any of the given groups match the runtime groups.
|
|
6
|
+
*/
|
|
7
|
+
export declare function buildGroupsHasExpr(singleGroupVar: string, groupsVar: string, groups: string[]): string;
|
|
@@ -2,4 +2,5 @@ import type { Result, ResultAsync } from '@zipbul/result';
|
|
|
2
2
|
import type { RawClassMeta } from '../types';
|
|
3
3
|
import type { SealOptions, RuntimeOptions } from '../interfaces';
|
|
4
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[]>;
|
|
5
|
+
export declare function buildDeserializeCode<T>(Class: Function, merged: RawClassMeta, options: SealOptions | undefined, needsCircularCheck: boolean, isAsync: boolean, validateOnly?: boolean): (input: unknown, opts?: RuntimeOptions) => Result<T, BakerError[]> | ResultAsync<T, BakerError[]>;
|
|
6
|
+
export declare function buildValidateCode(Class: Function, merged: RawClassMeta, options: SealOptions | undefined, needsCircularCheck: boolean, isAsync: boolean): (input: unknown, opts?: RuntimeOptions) => BakerError[] | null | Promise<BakerError[] | null>;
|
package/dist/src/seal/seal.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { RawClassMeta, SealedExecutors } from '../types';
|
|
2
2
|
/** @internal Placeholder executor for circular dependency detection during seal */
|
|
3
3
|
declare function _circularPlaceholder(className: string): SealedExecutors<unknown>;
|
|
4
|
-
/** @internal — used by configure() to
|
|
4
|
+
/** @internal — used by configure() to reject post-seal calls */
|
|
5
5
|
export declare function _isSealed(): boolean;
|
|
6
6
|
/** List of sealed classes — used by unseal to remove SEALED */
|
|
7
7
|
export declare const _sealedClasses: Set<Function>;
|
package/dist/src/symbols.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{
|
|
2
|
+
import{o as a,p as b}from"../index-jp2yjd6g.js";import"../index-mw7met6r.js";export{b as SEALED,a as RAW};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{
|
|
2
|
+
import{q as n}from"../../index-mw7met6r.js";var s={deserialize:({value:r})=>typeof r==="string"?r.trim():r,serialize:({value:r})=>typeof r==="string"?r.trim():r},i={deserialize:({value:r})=>typeof r==="string"?r.toLowerCase():r,serialize:({value:r})=>typeof r==="string"?r.toLowerCase():r},f={deserialize:({value:r})=>typeof r==="string"?r.toUpperCase():r,serialize:({value:r})=>typeof r==="string"?r.toUpperCase():r};function m(r=0){let t=Math.pow(10,r),e=(o)=>typeof o==="number"&&Number.isFinite(o)?Math.round(o*t)/t:o;return{deserialize:({value:o})=>e(o),serialize:({value:o})=>e(o)}}var a={deserialize:({value:r})=>typeof r==="number"?new Date(r*1000):r,serialize:({value:r})=>r instanceof Date?Math.floor(r.getTime()/1000):r},p={deserialize:({value:r})=>typeof r==="number"?new Date(r):r,serialize:({value:r})=>r instanceof Date?r.getTime():r},T={deserialize:({value:r})=>{if(typeof r!=="string")return r;let t=new Date(r);return Number.isNaN(t.getTime())?r:t},serialize:({value:r})=>r instanceof Date?r.toISOString():r};function y(r=","){return{deserialize:({value:t})=>typeof t==="string"?t.split(r):t,serialize:({value:t})=>Array.isArray(t)?t.join(r):t}}var c={deserialize:({value:r})=>{if(typeof r!=="string")return r;try{return JSON.parse(r)}catch{return r}},serialize:({value:r})=>{if(r!=null&&typeof r==="object")return JSON.stringify(r);return r}};async function x(r){let{DateTime:t}=await import("luxon"),e=r?.zone??"utc";return{deserialize:({value:o})=>{if(typeof o==="string")return t.fromISO(o,{zone:e});if(o instanceof Date)return t.fromJSDate(o,{zone:e});return o},serialize:({value:o})=>{if(o&&typeof o==="object"&&typeof o.toISO==="function")return r?.format?o.toFormat(r.format):o.toISO();return o}}}async function z(r){let t=(await import("moment")).default;return{deserialize:({value:e})=>{if(typeof e==="string"||e instanceof Date)return t(e);return e},serialize:({value:e})=>{if(e&&typeof e==="object"&&typeof e.toISOString==="function"&&typeof e.format==="function")return r?.format?e.format(r.format):e.toISOString();return e}}}export{a as unixSecondsTransformer,p as unixMillisTransformer,s as trimTransformer,f as toUpperCaseTransformer,i as toLowerCaseTransformer,m as roundTransformer,z as momentTransformer,x as luxonTransformer,c as jsonTransformer,T as isoStringTransformer,y as csvTransformer};
|