@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.
@@ -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): ConfigureResult;
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{b as a,c as b}from"../../index-k3d659ad.js";import"../../index-fnv35wrf.js";import"../../index-s0n74vx1.js";export{a as arrayOf,b as Field};
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};
@@ -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 { BakerErrors } from '../errors';
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, async DTOs return Promise
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 | Promise<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, async DTOs return Promise
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> | Promise<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, async DTOs return Promise.
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 | Promise<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, async rules return Promise.
12
+ * Sync rules return directly; async rules return Promise.
12
13
  */
13
- export declare function validate(input: unknown, ...rules: EmittableRule[]): true | BakerErrors | Promise<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: EmittableRule;
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: EmittableRule;
5
- export declare const isNotEmpty: EmittableRule;
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;
@@ -1,11 +1,21 @@
1
1
  // @bun
2
- import{b as mQ}from"../../index-k3d659ad.js";import"../../index-fnv35wrf.js";import"../../index-s0n74vx1.js";var y=(z)=>typeof z==="string";y.emit=(z,Q)=>`if (typeof ${z} !== 'string') ${Q.fail("isString")};`;y.ruleName="isString";y.constraints={};var d6=y;function S6(z){let Q=z?.allowNaN??!1,b=z?.allowInfinity??!1,j=z?.maxDecimalPlaces,Z=($)=>{if(typeof $!=="number")return!1;if(isNaN($))return Q;if(!isFinite($))return b;if(j!==void 0){let J=$.toExponential().split("e"),W=(J[0].split(".")[1]||"").length,q=parseInt(J[1],10);if(Math.max(0,W-q)>j)return!1}return!0};return Z.emit=($,J)=>{let W=`if (typeof ${$} !== 'number') ${J.fail("isNumber")};`;if(!Q)W+=`
3
- else if (isNaN(${$})) ${J.fail("isNumber")};`;if(!b)W+=`
4
- else if (${$} === Infinity || ${$} === -Infinity) ${J.fail("isNumber")};`;if(j!==void 0)W+=`
5
- else { var _exp=${$}.toExponential().split('e'); var _mant=(_exp[0].split('.')[1]||'').length; var _exp2=parseInt(_exp[1],10); if(Math.max(0,_mant-_exp2)>${j}) ${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
- var _cs=${z}.replace(/[\\s-]/g,'');
7
- if(_cs.length===0||!/^\\d+$/.test(_cs)){${Q.fail("isCreditCard")}}
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)${Q.fail("isCreditCard")};}
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: EmittableRule;
9
- export declare const isNegative: EmittableRule;
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: EmittableRule;
9
- export declare const isUppercase: EmittableRule;
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: EmittableRule;
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: EmittableRule;
64
- export declare const isISO31661Alpha3: EmittableRule;
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: EmittableRule;
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: EmittableRule;
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: EmittableRule;
90
- export declare const isLongitude: EmittableRule;
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: EmittableRule;
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: EmittableRule;
10
- export declare const isDate: EmittableRule;
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: EmittableRule;
13
- export declare const isArray: EmittableRule;
14
- export declare const isObject: EmittableRule;
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>;
@@ -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 warn about post-seal calls */
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>;
@@ -1,2 +1,2 @@
1
1
  // @bun
2
- import{d as a,e as b}from"../index-fnv35wrf.js";import"../index-s0n74vx1.js";export{b as SEALED,a as RAW};
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{f as n}from"../../index-s0n74vx1.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};
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};