@oxog/vld 2.0.1 → 2.0.2

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.
Files changed (44) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/LICENSE +20 -20
  3. package/README.md +2 -2
  4. package/dist/chunks/{bigint-ZKkWLdmi.js → bigint-DgsCr2dC.js} +96 -15
  5. package/dist/chunks/bigint-DgsCr2dC.js.map +1 -0
  6. package/dist/chunks/{date-7Iz2BGsL.js → date-ODue_rtq.js} +2 -2
  7. package/dist/chunks/{date-7Iz2BGsL.js.map → date-ODue_rtq.js.map} +1 -1
  8. package/dist/chunks/{index-eWXdjyyy.js → index-BZqWZvVe.js} +4 -4
  9. package/dist/chunks/{index-eWXdjyyy.js.map → index-BZqWZvVe.js.map} +1 -1
  10. package/dist/chunks/{index-BoV-4S1F.js → index-CETyGkrv.js} +3 -3
  11. package/dist/chunks/index-CETyGkrv.js.map +1 -0
  12. package/dist/chunks/{json-nIhyRPOU.js → json-o20GFhTh.js} +225 -138
  13. package/dist/chunks/json-o20GFhTh.js.map +1 -0
  14. package/dist/chunks/{unknown-CjSRcELI.js → unknown-SLIH1VCf.js} +2 -2
  15. package/dist/chunks/unknown-SLIH1VCf.js.map +1 -0
  16. package/dist/cjs/index.cjs +318 -150
  17. package/dist/cjs/index.cjs.map +1 -1
  18. package/dist/cjs/locales/index.cjs.map +1 -1
  19. package/dist/cjs/mini.cjs +317 -149
  20. package/dist/cjs/mini.cjs.map +1 -1
  21. package/dist/codecs/index.js +3 -3
  22. package/dist/coercion/index.js +2 -2
  23. package/dist/coercion/index.js.map +1 -1
  24. package/dist/index.js +8 -8
  25. package/dist/mini.js +5 -5
  26. package/dist/validators/array.d.ts +5 -0
  27. package/dist/validators/array.d.ts.map +1 -1
  28. package/dist/validators/discriminated-union.d.ts.map +1 -1
  29. package/dist/validators/enum.d.ts +5 -1
  30. package/dist/validators/enum.d.ts.map +1 -1
  31. package/dist/validators/index.js +4 -4
  32. package/dist/validators/lazy.d.ts +8 -1
  33. package/dist/validators/lazy.d.ts.map +1 -1
  34. package/dist/validators/literal.d.ts +5 -1
  35. package/dist/validators/literal.d.ts.map +1 -1
  36. package/dist/validators/object.d.ts +30 -3
  37. package/dist/validators/object.d.ts.map +1 -1
  38. package/dist/validators/string.d.ts +12 -1
  39. package/dist/validators/string.d.ts.map +1 -1
  40. package/package.json +1 -1
  41. package/dist/chunks/bigint-ZKkWLdmi.js.map +0 -1
  42. package/dist/chunks/index-BoV-4S1F.js.map +0 -1
  43. package/dist/chunks/json-nIhyRPOU.js.map +0 -1
  44. package/dist/chunks/unknown-CjSRcELI.js.map +0 -1
@@ -1,4 +1,4 @@
1
- export { D as base64Json, w as base64ToBytes, x as base64UrlToBytes, y as base64urlToBytes, C as bytesToUtf8, p as epochMillisToDate, o as epochSecondsToDate, A as hexLowerToBytes, z as hexToBytes, m as isoDatetimeToDate, q as jsonCodec, E as jwtPayload, n as numberToBigInt, k as stringToBigInt, l as stringToBoolean, t as stringToHttpURL, j as stringToInt, i as stringToNumber, r as stringToURL, v as uriComponent, B as utf8ToBytes } from '../chunks/index-BoV-4S1F.js';
2
- import '../chunks/bigint-ZKkWLdmi.js';
3
- import '../chunks/unknown-CjSRcELI.js';
1
+ export { D as base64Json, w as base64ToBytes, x as base64UrlToBytes, y as base64urlToBytes, C as bytesToUtf8, p as epochMillisToDate, o as epochSecondsToDate, A as hexLowerToBytes, z as hexToBytes, m as isoDatetimeToDate, q as jsonCodec, E as jwtPayload, n as numberToBigInt, k as stringToBigInt, l as stringToBoolean, t as stringToHttpURL, j as stringToInt, i as stringToNumber, r as stringToURL, v as uriComponent, B as utf8ToBytes } from '../chunks/index-CETyGkrv.js';
2
+ import '../chunks/bigint-DgsCr2dC.js';
3
+ import '../chunks/unknown-SLIH1VCf.js';
4
4
  //# sourceMappingURL=index.js.map
@@ -1,5 +1,5 @@
1
- export { a as VldCoerceBoolean, V as VldCoerceDate, b as VldCoerceNumber, c as VldCoerceString } from '../chunks/date-7Iz2BGsL.js';
2
- import { d as VldBigInt, t as getMessages } from '../chunks/bigint-ZKkWLdmi.js';
1
+ export { a as VldCoerceBoolean, V as VldCoerceDate, b as VldCoerceNumber, c as VldCoerceString } from '../chunks/date-ODue_rtq.js';
2
+ import { d as VldBigInt, t as getMessages } from '../chunks/bigint-DgsCr2dC.js';
3
3
 
4
4
  /**
5
5
  * BigInt coercion validator that attempts to convert values to bigint
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/coercion/bigint.ts"],"sourcesContent":["import { VldBigInt } from '../validators/bigint';\nimport { ParseResult } from '../validators/base';\nimport { getMessages } from '../locales';\n\n/**\n * BigInt coercion validator that attempts to convert values to bigint\n */\nexport class VldCoerceBigInt extends VldBigInt {\n protected constructor(config?: any) {\n super(config);\n }\n \n /**\n * Create a new coerce bigint validator\n */\n static create(): VldCoerceBigInt {\n return new VldCoerceBigInt();\n }\n \n // Override all chain methods to return VldCoerceBigInt instances\n min(value: bigint, message?: string): VldCoerceBigInt {\n return new VldCoerceBigInt({\n checks: [...this.config.checks, (v: bigint) => v >= value],\n errorMessage: message || `BigInt must be at least ${value}`\n });\n }\n \n max(value: bigint, message?: string): VldCoerceBigInt {\n return new VldCoerceBigInt({\n checks: [...this.config.checks, (v: bigint) => v <= value],\n errorMessage: message || `BigInt must be at most ${value}`\n });\n }\n \n positive(message?: string): VldCoerceBigInt {\n return new VldCoerceBigInt({\n checks: [...this.config.checks, (v: bigint) => v > 0n],\n errorMessage: message || 'BigInt must be positive'\n });\n }\n \n negative(message?: string): VldCoerceBigInt {\n return new VldCoerceBigInt({\n checks: [...this.config.checks, (v: bigint) => v < 0n],\n errorMessage: message || 'BigInt must be negative'\n });\n }\n \n nonnegative(message?: string): VldCoerceBigInt {\n return new VldCoerceBigInt({\n checks: [...this.config.checks, (v: bigint) => v >= 0n],\n errorMessage: message || 'BigInt must be non-negative'\n });\n }\n \n nonpositive(message?: string): VldCoerceBigInt {\n return new VldCoerceBigInt({\n checks: [...this.config.checks, (v: bigint) => v <= 0n],\n errorMessage: message || 'BigInt must be non-positive'\n });\n }\n \n /**\n * Parse and coerce a value to bigint\n */\n parse(value: unknown): bigint {\n // If it's already a bigint, use parent validation directly\n if (typeof value === 'bigint') {\n return super.parse(value);\n }\n \n // Handle string values\n if (typeof value === 'string') {\n const trimmed = value.trim();\n if (trimmed === '') {\n throw new Error(getMessages().coercionFailed('bigint', value));\n }\n try {\n const coerced = BigInt(trimmed);\n return super.parse(coerced);\n } catch {\n throw new Error(getMessages().coercionFailed('bigint', value));\n }\n }\n \n // Handle number values (must be integer)\n if (typeof value === 'number') {\n if (!Number.isInteger(value)) {\n throw new Error(getMessages().coercionFailed('bigint', value));\n }\n const coerced = BigInt(value);\n return super.parse(coerced);\n }\n \n // Handle null and undefined\n if (value === null || value === undefined) {\n throw new Error(getMessages().coercionFailed('bigint', value));\n }\n \n // Try to coerce other values\n try {\n const coerced = BigInt(value as any);\n return super.parse(coerced);\n } catch {\n throw new Error(getMessages().coercionFailed('bigint', value));\n }\n }\n \n /**\n * Safely parse and coerce a value to bigint\n */\n safeParse(value: unknown): ParseResult<bigint> {\n try {\n return { success: true, data: this.parse(value) };\n } catch (error) {\n return { success: false, error: error as Error };\n }\n }\n}"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../src/coercion/bigint.ts"],"sourcesContent":["import { VldBigInt } from '../validators/bigint';\r\nimport { ParseResult } from '../validators/base';\r\nimport { getMessages } from '../locales';\r\n\r\n/**\r\n * BigInt coercion validator that attempts to convert values to bigint\r\n */\r\nexport class VldCoerceBigInt extends VldBigInt {\r\n protected constructor(config?: any) {\r\n super(config);\r\n }\r\n \r\n /**\r\n * Create a new coerce bigint validator\r\n */\r\n static create(): VldCoerceBigInt {\r\n return new VldCoerceBigInt();\r\n }\r\n \r\n // Override all chain methods to return VldCoerceBigInt instances\r\n min(value: bigint, message?: string): VldCoerceBigInt {\r\n return new VldCoerceBigInt({\r\n checks: [...this.config.checks, (v: bigint) => v >= value],\r\n errorMessage: message || `BigInt must be at least ${value}`\r\n });\r\n }\r\n \r\n max(value: bigint, message?: string): VldCoerceBigInt {\r\n return new VldCoerceBigInt({\r\n checks: [...this.config.checks, (v: bigint) => v <= value],\r\n errorMessage: message || `BigInt must be at most ${value}`\r\n });\r\n }\r\n \r\n positive(message?: string): VldCoerceBigInt {\r\n return new VldCoerceBigInt({\r\n checks: [...this.config.checks, (v: bigint) => v > 0n],\r\n errorMessage: message || 'BigInt must be positive'\r\n });\r\n }\r\n \r\n negative(message?: string): VldCoerceBigInt {\r\n return new VldCoerceBigInt({\r\n checks: [...this.config.checks, (v: bigint) => v < 0n],\r\n errorMessage: message || 'BigInt must be negative'\r\n });\r\n }\r\n \r\n nonnegative(message?: string): VldCoerceBigInt {\r\n return new VldCoerceBigInt({\r\n checks: [...this.config.checks, (v: bigint) => v >= 0n],\r\n errorMessage: message || 'BigInt must be non-negative'\r\n });\r\n }\r\n \r\n nonpositive(message?: string): VldCoerceBigInt {\r\n return new VldCoerceBigInt({\r\n checks: [...this.config.checks, (v: bigint) => v <= 0n],\r\n errorMessage: message || 'BigInt must be non-positive'\r\n });\r\n }\r\n \r\n /**\r\n * Parse and coerce a value to bigint\r\n */\r\n parse(value: unknown): bigint {\r\n // If it's already a bigint, use parent validation directly\r\n if (typeof value === 'bigint') {\r\n return super.parse(value);\r\n }\r\n \r\n // Handle string values\r\n if (typeof value === 'string') {\r\n const trimmed = value.trim();\r\n if (trimmed === '') {\r\n throw new Error(getMessages().coercionFailed('bigint', value));\r\n }\r\n try {\r\n const coerced = BigInt(trimmed);\r\n return super.parse(coerced);\r\n } catch {\r\n throw new Error(getMessages().coercionFailed('bigint', value));\r\n }\r\n }\r\n \r\n // Handle number values (must be integer)\r\n if (typeof value === 'number') {\r\n if (!Number.isInteger(value)) {\r\n throw new Error(getMessages().coercionFailed('bigint', value));\r\n }\r\n const coerced = BigInt(value);\r\n return super.parse(coerced);\r\n }\r\n \r\n // Handle null and undefined\r\n if (value === null || value === undefined) {\r\n throw new Error(getMessages().coercionFailed('bigint', value));\r\n }\r\n \r\n // Try to coerce other values\r\n try {\r\n const coerced = BigInt(value as any);\r\n return super.parse(coerced);\r\n } catch {\r\n throw new Error(getMessages().coercionFailed('bigint', value));\r\n }\r\n }\r\n \r\n /**\r\n * Safely parse and coerce a value to bigint\r\n */\r\n safeParse(value: unknown): ParseResult<bigint> {\r\n try {\r\n return { success: true, data: this.parse(value) };\r\n } catch (error) {\r\n return { success: false, error: error as Error };\r\n }\r\n }\r\n}"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,11 +1,11 @@
1
- import { h as VldPreprocess, g as VldNullish, f as VldNullable, e as VldOptional, d as VldBigInt, c as VldDate, b as VldBoolean, a as VldNumber, V as VldString } from './chunks/bigint-ZKkWLdmi.js';
2
- export { i as VldBase, r as getLocale, t as getMessages, s as setLocale } from './chunks/bigint-ZKkWLdmi.js';
3
- import { u as VldJson, t as VldLazy, p as VldNever, s as VldNan, r as VldUndefined, q as VldNull, o as VldVoid, n as VldAny, m as VldEnum, l as VldLiteral, k as VldXor, j as VldDiscriminatedUnion, i as VldIntersection, h as VldUnion, g as VldMap, f as VldSet, e as VldRecord, d as VldTuple, c as VldObject, b as VldArray, a as VldStringBool, V as VldSymbol } from './chunks/json-nIhyRPOU.js';
4
- import { V as VldUnknown } from './chunks/unknown-CjSRcELI.js';
5
- import { t as templateLiteral, s as stringFormat, i as iso, h as hash, e as e164, c as cidrv6, a as cidrv4, m as mac, b as ipv6, d as ipv4, u as ulid, f as cuid2, g as cuid, n as nanoid, j as jwt, k as hex, l as base64url, o as base64, p as emoji, q as hostname, r as uuidv4, v as uuid, w as email, x as functionValidator, y as file, z as custom } from './chunks/index-eWXdjyyy.js';
6
- import { V as VldCodec, a as VldUint8Array, b as VldHex, c as VldBase64 } from './chunks/index-BoV-4S1F.js';
7
- export { D as base64Json, w as base64ToBytes, d as base64ToUint8Array, x as base64UrlToBytes, y as base64urlToBytes, C as bytesToUtf8, p as epochMillisToDate, o as epochSecondsToDate, A as hexLowerToBytes, z as hexToBytes, h as hexToUint8Array, m as isoDatetimeToDate, q as jsonCodec, E as jwtPayload, n as numberToBigInt, k as stringToBigInt, l as stringToBoolean, t as stringToHttpURL, j as stringToInt, i as stringToNumber, r as stringToURL, s as stringToUint8Array, u as uint8ArrayToBase64, e as uint8ArrayToBase64Url, f as uint8ArrayToHex, g as uint8ArrayToString, v as uriComponent, B as utf8ToBytes } from './chunks/index-BoV-4S1F.js';
8
- import { V as VldCoerceDate, a as VldCoerceBoolean, b as VldCoerceNumber, c as VldCoerceString } from './chunks/date-7Iz2BGsL.js';
1
+ import { h as VldPreprocess, g as VldNullish, f as VldNullable, e as VldOptional, d as VldBigInt, c as VldDate, b as VldBoolean, a as VldNumber, V as VldString } from './chunks/bigint-DgsCr2dC.js';
2
+ export { i as VldBase, r as getLocale, t as getMessages, s as setLocale } from './chunks/bigint-DgsCr2dC.js';
3
+ import { u as VldJson, t as VldLazy, p as VldNever, s as VldNan, r as VldUndefined, q as VldNull, o as VldVoid, n as VldAny, m as VldEnum, l as VldLiteral, k as VldXor, j as VldDiscriminatedUnion, i as VldIntersection, h as VldUnion, g as VldMap, f as VldSet, e as VldRecord, d as VldTuple, c as VldObject, b as VldArray, a as VldStringBool, V as VldSymbol } from './chunks/json-o20GFhTh.js';
4
+ import { V as VldUnknown } from './chunks/unknown-SLIH1VCf.js';
5
+ import { t as templateLiteral, s as stringFormat, i as iso, h as hash, e as e164, c as cidrv6, a as cidrv4, m as mac, b as ipv6, d as ipv4, u as ulid, f as cuid2, g as cuid, n as nanoid, j as jwt, k as hex, l as base64url, o as base64, p as emoji, q as hostname, r as uuidv4, v as uuid, w as email, x as functionValidator, y as file, z as custom } from './chunks/index-BZqWZvVe.js';
6
+ import { V as VldCodec, a as VldUint8Array, b as VldHex, c as VldBase64 } from './chunks/index-CETyGkrv.js';
7
+ export { D as base64Json, w as base64ToBytes, d as base64ToUint8Array, x as base64UrlToBytes, y as base64urlToBytes, C as bytesToUtf8, p as epochMillisToDate, o as epochSecondsToDate, A as hexLowerToBytes, z as hexToBytes, h as hexToUint8Array, m as isoDatetimeToDate, q as jsonCodec, E as jwtPayload, n as numberToBigInt, k as stringToBigInt, l as stringToBoolean, t as stringToHttpURL, j as stringToInt, i as stringToNumber, r as stringToURL, s as stringToUint8Array, u as uint8ArrayToBase64, e as uint8ArrayToBase64Url, f as uint8ArrayToHex, g as uint8ArrayToString, v as uriComponent, B as utf8ToBytes } from './chunks/index-CETyGkrv.js';
8
+ import { V as VldCoerceDate, a as VldCoerceBoolean, b as VldCoerceNumber, c as VldCoerceString } from './chunks/date-ODue_rtq.js';
9
9
  import { VldCoerceBigInt } from './coercion/index.js';
10
10
  export { VldError, flattenError, prettifyError, prettifyErrorColored, prettifyErrorPlain, treeifyError } from './errors.js';
11
11
  export { Err, Ok, ResultUtils, all, failure, flatMap, fromNullable, isErr, isOk, isResult, map, mapErr, match, success, tryCatch, tryCatchAsync, unwrap, unwrapOr } from './compat/result.js';
package/dist/mini.js CHANGED
@@ -1,8 +1,8 @@
1
- import { V as VldString, a as VldNumber, b as VldBoolean, c as VldDate, d as VldBigInt, e as VldOptional, f as VldNullable, g as VldNullish, h as VldPreprocess } from './chunks/bigint-ZKkWLdmi.js';
2
- export { i as VldBase, p as VldBrand, m as VldCatch, l as VldDefault, n as VldPipe, o as VldReadonly, j as VldRefine, q as VldSuperRefine, k as VldTransform } from './chunks/bigint-ZKkWLdmi.js';
3
- import { V as VldSymbol, a as VldStringBool, b as VldArray, c as VldObject, d as VldTuple, e as VldRecord, f as VldSet, g as VldMap, h as VldUnion, i as VldIntersection, j as VldDiscriminatedUnion, k as VldXor, l as VldLiteral, m as VldEnum, n as VldAny, o as VldVoid, p as VldNever, q as VldNull, r as VldUndefined, s as VldNan, t as VldLazy, u as VldJson } from './chunks/json-nIhyRPOU.js';
4
- import { V as VldUnknown } from './chunks/unknown-CjSRcELI.js';
5
- import { V as VldCoerceDate, a as VldCoerceBoolean, b as VldCoerceNumber, c as VldCoerceString } from './chunks/date-7Iz2BGsL.js';
1
+ import { V as VldString, a as VldNumber, b as VldBoolean, c as VldDate, d as VldBigInt, e as VldOptional, f as VldNullable, g as VldNullish, h as VldPreprocess } from './chunks/bigint-DgsCr2dC.js';
2
+ export { i as VldBase, p as VldBrand, m as VldCatch, l as VldDefault, n as VldPipe, o as VldReadonly, j as VldRefine, q as VldSuperRefine, k as VldTransform } from './chunks/bigint-DgsCr2dC.js';
3
+ import { V as VldSymbol, a as VldStringBool, b as VldArray, c as VldObject, d as VldTuple, e as VldRecord, f as VldSet, g as VldMap, h as VldUnion, i as VldIntersection, j as VldDiscriminatedUnion, k as VldXor, l as VldLiteral, m as VldEnum, n as VldAny, o as VldVoid, p as VldNever, q as VldNull, r as VldUndefined, s as VldNan, t as VldLazy, u as VldJson } from './chunks/json-o20GFhTh.js';
4
+ import { V as VldUnknown } from './chunks/unknown-SLIH1VCf.js';
5
+ import { V as VldCoerceDate, a as VldCoerceBoolean, b as VldCoerceNumber, c as VldCoerceString } from './chunks/date-ODue_rtq.js';
6
6
  import { VldCoerceBigInt } from './coercion/index.js';
7
7
 
8
8
  /**
@@ -20,6 +20,11 @@ export declare class VldArray<T> extends VldBase<unknown[], T[]> {
20
20
  * Safely parse and validate an array value
21
21
  */
22
22
  safeParse(value: unknown): ParseResult<T[]>;
23
+ /**
24
+ * Optimized uniqueness check using Map-based approach
25
+ * Avoids repeated stableStringify calls by caching serialized values
26
+ */
27
+ private checkUnique;
23
28
  /**
24
29
  * Create a stable string representation of an object for hashing
25
30
  * Handles circular references and deep nesting gracefully
@@ -1 +1 @@
1
- {"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../src/validators/array.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAe9C;;GAEG;AACH,qBAAa,QAAQ,CAAC,CAAC,CAAE,SAAQ,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC;IACtD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;IAEjD;;OAEG;IACH,OAAO;IAKP;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;IAIjE;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC,EAAE;IA6C1B;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC,EAAE,CAAC;IAQ3C;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IAqDvB;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC;IAQlD;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC;IAQlD;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC;IAUrD;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC;IAQvC;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC;IAQrC;;OAEG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC;CAQjE"}
1
+ {"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../src/validators/array.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAe9C;;GAEG;AACH,qBAAa,QAAQ,CAAC,CAAC,CAAE,SAAQ,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC;IACtD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;IAEjD;;OAEG;IACH,OAAO;IAKP;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;IAIjE;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC,EAAE;IAsC1B;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC,EAAE,CAAC;IAQ3C;;;OAGG;IACH,OAAO,CAAC,WAAW;IA8BnB;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IAqDvB;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC;IAQlD;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC;IAQlD;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC;IAUrD;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC;IAQvC;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC;IAQrC;;OAEG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC;CAQjE"}
@@ -1 +1 @@
1
- {"version":3,"file":"discriminated-union.d.ts","sourceRoot":"","sources":["../../src/validators/discriminated-union.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAIjC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAgB1C;;;GAGG;AACH,qBAAa,qBAAqB,CAAC,CAAC,SAAS,MAAM,EAAE,OAAO,SAAS,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CACtF,SAAQ,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAKjF,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAJ3B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAkC;gBAGjD,cAAc,EAAE,CAAC,EACjB,QAAQ,EAAE,OAAO;IA4BpC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,OAAO,SAAS,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EACjE,aAAa,EAAE,CAAC,EAChB,OAAO,EAAE,OAAO,GACf,qBAAqB,CAAC,CAAC,EAAE,OAAO,CAAC;IAIpC,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;IAQhF,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAiCjG;;OAEG;IACH,gBAAgB,IAAI,CAAC;IAIrB;;OAEG;IACH,UAAU,IAAI,OAAO;CAGtB"}
1
+ {"version":3,"file":"discriminated-union.d.ts","sourceRoot":"","sources":["../../src/validators/discriminated-union.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAIjC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAe1C;;;GAGG;AACH,qBAAa,qBAAqB,CAAC,CAAC,SAAS,MAAM,EAAE,OAAO,SAAS,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CACtF,SAAQ,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAKjF,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAJ3B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAkC;gBAGjD,cAAc,EAAE,CAAC,EACjB,QAAQ,EAAE,OAAO;IA4BpC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,OAAO,SAAS,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EACjE,aAAa,EAAE,CAAC,EAChB,OAAO,EAAE,OAAO,GACf,qBAAqB,CAAC,CAAC,EAAE,OAAO,CAAC;IAIpC,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;IAQhF,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAiCjG;;OAEG;IACH,gBAAgB,IAAI,CAAC;IAIrB;;OAEG;IACH,UAAU,IAAI,OAAO;CAGtB"}
@@ -3,12 +3,16 @@ import { VldBase, ParseResult } from './base';
3
3
  * Immutable enum validator for string enum values
4
4
  */
5
5
  export declare class VldEnum<T extends readonly [string, ...string[]]> extends VldBase<string, T[number]> {
6
- private readonly values;
6
+ private readonly _values;
7
7
  private readonly errorMessage?;
8
8
  /**
9
9
  * Private constructor to enforce immutability
10
10
  */
11
11
  private constructor();
12
+ /**
13
+ * Get the enum values
14
+ */
15
+ get values(): T;
12
16
  /**
13
17
  * Create a new enum validator
14
18
  */
@@ -1 +1 @@
1
- {"version":3,"file":"enum.d.ts","sourceRoot":"","sources":["../../src/validators/enum.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAG9C;;GAEG;AACH,qBAAa,OAAO,CAAC,CAAC,SAAS,SAAS,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAE,SAAQ,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;IAK7F,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IALhC;;OAEG;IACH,OAAO;IAOP;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,SAAS,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAI9E;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC;IAiBhC;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAuBjD;;;OAGG;IACH,OAAO,CAAC,KAAK,CAAC,CAAC,SAAS,SAAS,MAAM,EAAE,EAAE,GAAG,aAAa,EAAE,CAAC,GAAG,OAAO,CACtE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAC1G;IASD;;;OAGG;IACH,OAAO,CAAC,KAAK,CAAC,CAAC,SAAS,SAAS,MAAM,EAAE,EAAE,GAAG,aAAa,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;CAQhG"}
1
+ {"version":3,"file":"enum.d.ts","sourceRoot":"","sources":["../../src/validators/enum.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAG9C;;GAEG;AACH,qBAAa,OAAO,CAAC,CAAC,SAAS,SAAS,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAE,SAAQ,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;IAK7F,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IALhC;;OAEG;IACH,OAAO;IAOP;;OAEG;IACH,IAAI,MAAM,IAAI,CAAC,CAEd;IAED;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,SAAS,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAI9E;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC;IAiBhC;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAuBjD;;;OAGG;IACH,OAAO,CAAC,KAAK,CAAC,CAAC,SAAS,SAAS,MAAM,EAAE,EAAE,GAAG,aAAa,EAAE,CAAC,GAAG,OAAO,CACtE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAC1G;IASD;;;OAGG;IACH,OAAO,CAAC,KAAK,CAAC,CAAC,SAAS,SAAS,MAAM,EAAE,EAAE,GAAG,aAAa,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;CAQhG"}
@@ -1,5 +1,5 @@
1
- export { i as VldBase, d as VldBigInt, b as VldBoolean, p as VldBrand, m as VldCatch, c as VldDate, l as VldDefault, f as VldNullable, g as VldNullish, a as VldNumber, e as VldOptional, n as VldPipe, h as VldPreprocess, o as VldReadonly, j as VldRefine, V as VldString, q as VldSuperRefine, k as VldTransform } from '../chunks/bigint-ZKkWLdmi.js';
2
- export { n as VldAny, b as VldArray, j as VldDiscriminatedUnion, m as VldEnum, i as VldIntersection, u as VldJson, t as VldLazy, l as VldLiteral, g as VldMap, s as VldNan, p as VldNever, q as VldNull, c as VldObject, e as VldRecord, f as VldSet, a as VldStringBool, V as VldSymbol, d as VldTuple, r as VldUndefined, h as VldUnion, o as VldVoid, k as VldXor } from '../chunks/json-nIhyRPOU.js';
3
- export { V as VldUnknown } from '../chunks/unknown-CjSRcELI.js';
4
- export { A as VldCustom, B as VldFile, C as VldFunction, V as VldTemplateLiteral, o as base64, l as base64url, a as cidrv4, g as cuid, f as cuid2, z as custom, e as e164, w as email, p as emoji, y as file, x as functionValidator, h as hash, k as hex, q as hostname, d as ipv4, b as ipv6, i as iso, j as jwt, m as mac, n as nanoid, R as regexes, s as stringFormat, t as templateLiteral, u as ulid, v as uuid, r as uuidv4 } from '../chunks/index-eWXdjyyy.js';
1
+ export { i as VldBase, d as VldBigInt, b as VldBoolean, p as VldBrand, m as VldCatch, c as VldDate, l as VldDefault, f as VldNullable, g as VldNullish, a as VldNumber, e as VldOptional, n as VldPipe, h as VldPreprocess, o as VldReadonly, j as VldRefine, V as VldString, q as VldSuperRefine, k as VldTransform } from '../chunks/bigint-DgsCr2dC.js';
2
+ export { n as VldAny, b as VldArray, j as VldDiscriminatedUnion, m as VldEnum, i as VldIntersection, u as VldJson, t as VldLazy, l as VldLiteral, g as VldMap, s as VldNan, p as VldNever, q as VldNull, c as VldObject, e as VldRecord, f as VldSet, a as VldStringBool, V as VldSymbol, d as VldTuple, r as VldUndefined, h as VldUnion, o as VldVoid, k as VldXor } from '../chunks/json-o20GFhTh.js';
3
+ export { V as VldUnknown } from '../chunks/unknown-SLIH1VCf.js';
4
+ export { A as VldCustom, B as VldFile, C as VldFunction, V as VldTemplateLiteral, o as base64, l as base64url, a as cidrv4, g as cuid, f as cuid2, z as custom, e as e164, w as email, p as emoji, y as file, x as functionValidator, h as hash, k as hex, q as hostname, d as ipv4, b as ipv6, i as iso, j as jwt, m as mac, n as nanoid, R as regexes, s as stringFormat, t as templateLiteral, u as ulid, v as uuid, r as uuidv4 } from '../chunks/index-BZqWZvVe.js';
5
5
  //# sourceMappingURL=index.js.map
@@ -8,18 +8,25 @@ import type { ParseResult } from './base';
8
8
  /**
9
9
  * Lazy validator - defers schema evaluation until runtime
10
10
  * Essential for recursive and self-referencing types
11
+ *
12
+ * MEMORY OPTIMIZATION: Uses WeakRef for the cached schema to allow garbage collection
13
+ * when the validator is no longer in use. This prevents memory leaks in long-running
14
+ * applications with dynamically created schemas.
11
15
  */
12
16
  export declare class VldLazy<TInput, TOutput> extends VldBase<TInput, TOutput> {
13
17
  private readonly _schemaGetter;
14
- private _cachedSchema;
18
+ private _cachedSchemaRef;
19
+ private _strongRef;
15
20
  private constructor();
16
21
  static create<TInput, TOutput>(schemaGetter: () => VldBase<TInput, TOutput>): VldLazy<TInput, TOutput>;
17
22
  /**
18
23
  * Get the actual schema, caching it after first retrieval
24
+ * Uses WeakRef to allow garbage collection when validator is not in use
19
25
  */
20
26
  private _getSchema;
21
27
  /**
22
28
  * Get the inner schema (unwrap)
29
+ * Returns a strong reference that will keep the schema alive
23
30
  */
24
31
  unwrap(): VldBase<TInput, TOutput>;
25
32
  parse(value: unknown): TOutput;
@@ -1 +1 @@
1
- {"version":3,"file":"lazy.d.ts","sourceRoot":"","sources":["../../src/validators/lazy.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAE1C;;;GAGG;AACH,qBAAa,OAAO,CAAC,MAAM,EAAE,OAAO,CAAE,SAAQ,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC;IAIlE,OAAO,CAAC,QAAQ,CAAC,aAAa;IAHhC,OAAO,CAAC,aAAa,CAAyC;IAE9D,OAAO;IAMP,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAC3B,YAAY,EAAE,MAAM,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3C,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC;IAI3B;;OAEG;IACH,OAAO,CAAC,UAAU;IAOlB;;OAEG;IACH,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC;IAIlC,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAI9B,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;CAGhD"}
1
+ {"version":3,"file":"lazy.d.ts","sourceRoot":"","sources":["../../src/validators/lazy.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAE1C;;;;;;;GAOG;AACH,qBAAa,OAAO,CAAC,MAAM,EAAE,OAAO,CAAE,SAAQ,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC;IAOlE,OAAO,CAAC,QAAQ,CAAC,aAAa;IALhC,OAAO,CAAC,gBAAgB,CAAkD;IAE1E,OAAO,CAAC,UAAU,CAAyC;IAE3D,OAAO;IAMP,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAC3B,YAAY,EAAE,MAAM,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3C,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC;IAI3B;;;OAGG;IACH,OAAO,CAAC,UAAU;IA+BlB;;;OAGG;IACH,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC;IAIlC,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAI9B,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;CAGhD"}
@@ -3,12 +3,16 @@ import { VldBase, ParseResult } from './base';
3
3
  * Immutable literal validator for exact value matching
4
4
  */
5
5
  export declare class VldLiteral<T extends string | number | boolean | null | undefined> extends VldBase<T, T> {
6
- private readonly literal;
6
+ private readonly _literal;
7
7
  private readonly errorMessage?;
8
8
  /**
9
9
  * Private constructor to enforce immutability
10
10
  */
11
11
  private constructor();
12
+ /**
13
+ * Get the literal value
14
+ */
15
+ get literal(): T;
12
16
  /**
13
17
  * Create a new literal validator
14
18
  */
@@ -1 +1 @@
1
- {"version":3,"file":"literal.d.ts","sourceRoot":"","sources":["../../src/validators/literal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAG9C;;GAEG;AACH,qBAAa,UAAU,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAE,SAAQ,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IAKjG,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IALhC;;OAEG;IACH,OAAO;IAOP;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,EAAE,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;IAIhG;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC;IAUxB;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC;CAY1C"}
1
+ {"version":3,"file":"literal.d.ts","sourceRoot":"","sources":["../../src/validators/literal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAG9C;;GAEG;AACH,qBAAa,UAAU,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAE,SAAQ,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IAKjG,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IALhC;;OAEG;IACH,OAAO;IAOP;;OAEG;IACH,IAAI,OAAO,IAAI,CAAC,CAEf;IAED;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,EAAE,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;IAIhG;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC;IAUxB;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC;CAY1C"}
@@ -1,17 +1,43 @@
1
1
  import { VldBase, ParseResult } from './base';
2
2
  import { VldEnum } from './enum';
3
+ /**
4
+ * Configuration for object validator
5
+ */
6
+ interface ObjectValidatorConfig<T extends Record<string, any>> {
7
+ readonly shape: {
8
+ readonly [K in keyof T]: VldBase<unknown, T[K]>;
9
+ };
10
+ readonly strict?: boolean;
11
+ readonly passthrough?: boolean;
12
+ readonly catchall?: VldBase<unknown, any>;
13
+ readonly errorMessage?: string;
14
+ }
3
15
  /**
4
16
  * Optimized immutable object validator with chainable methods
5
17
  * Features pre-computed keys and Set-based lookups for better performance
6
18
  */
7
19
  export declare class VldObject<T extends Record<string, any>> extends VldBase<unknown, T> {
8
- private readonly config;
9
- private readonly shapeKeys;
10
- private readonly shapeKeysSet;
20
+ private readonly _config;
21
+ private readonly _shapeKeys;
22
+ private readonly _shapeKeysSet;
11
23
  /**
12
24
  * Private constructor to enforce immutability
13
25
  */
14
26
  private constructor();
27
+ /**
28
+ * Get the validator configuration
29
+ * @internal Used by discriminated union validator
30
+ */
31
+ get config(): ObjectValidatorConfig<T>;
32
+ /**
33
+ * Get the shape keys array
34
+ */
35
+ get shapeKeys(): string[];
36
+ /**
37
+ * Get the shape keys set for O(1) lookups
38
+ * @internal Used by discriminated union validator
39
+ */
40
+ get shapeKeysSet(): Set<string>;
15
41
  /**
16
42
  * Create a new object validator
17
43
  */
@@ -107,4 +133,5 @@ export declare class VldObject<T extends Record<string, any>> extends VldBase<un
107
133
  [K in keyof U]: VldBase<unknown, U[K]>;
108
134
  }): VldObject<T & U>;
109
135
  }
136
+ export {};
110
137
  //# sourceMappingURL=object.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../../src/validators/object.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../../src/validators/object.ts"],"names":[],"mappings":"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"}
@@ -17,19 +17,30 @@ interface StringValidatorConfig {
17
17
  }
18
18
  /**
19
19
  * Immutable string validator with chainable methods
20
+ * Features pre-compiled validation functions for maximum performance
20
21
  */
21
22
  export declare class VldString extends VldBase<string, string> {
22
23
  protected readonly config: StringValidatorConfig;
24
+ private _compiledValidator;
23
25
  /**
24
26
  * Protected constructor to allow extension while maintaining immutability
25
27
  */
26
28
  protected constructor(config?: Partial<StringValidatorConfig>);
29
+ /**
30
+ * Compile all transforms and checks into a single optimized function
31
+ * This eliminates loop overhead and enables better JIT optimization
32
+ */
33
+ private _compileValidator;
34
+ /**
35
+ * Get the cached compiled validator, creating it if necessary
36
+ */
37
+ private _getCompiledValidator;
27
38
  /**
28
39
  * Create a new string validator
29
40
  */
30
41
  static create(): VldString;
31
42
  /**
32
- * Parse and validate a string value - ultra-optimized
43
+ * Parse and validate a string value - ultra-optimized with pre-compiled validator
33
44
  */
34
45
  parse(value: unknown): string;
35
46
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"string.d.ts","sourceRoot":"","sources":["../../src/validators/string.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAyB9C;;GAEG;AACH,KAAK,WAAW,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;AAE9C;;GAEG;AACH,KAAK,eAAe,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;AAEjD;;GAEG;AACH,UAAU,qBAAqB;IAC7B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;IACpD,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAED;;GAEG;AACH,qBAAa,SAAU,SAAQ,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC;IACpD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;IAEjD;;OAEG;IACH,SAAS,aAAa,MAAM,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC;IAS7D;;OAEG;IACH,MAAM,CAAC,MAAM,IAAI,SAAS;IAI1B;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM;IAwB7B;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC;IAQ9C;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;IAQhD;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;IAQhD;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;IAQnD;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;IAQlC;;OAEG;IACH,GAAG,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;IAQhC;;OAEG;IACH,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;IAQjC;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;IAQnD;;OAEG;IACH,IAAI,IAAI,SAAS;IAQjB;;OAEG;IACH,WAAW,IAAI,SAAS;IAQxB;;OAEG;IACH,WAAW,IAAI,SAAS;IAQxB;;OAEG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;IAQpD;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;IAQlD;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;IAQlD;;OAEG;IACH,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;IAY/B;;OAEG;IACH,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;IAQjC;;OAEG;IACH,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;IAWjC;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;CAOtC"}
1
+ {"version":3,"file":"string.d.ts","sourceRoot":"","sources":["../../src/validators/string.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAyB9C;;GAEG;AACH,KAAK,WAAW,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;AAE9C;;GAEG;AACH,KAAK,eAAe,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;AAEjD;;GAEG;AACH,UAAU,qBAAqB;IAC7B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;IACpD,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAOD;;;GAGG;AACH,qBAAa,SAAU,SAAQ,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC;IACpD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;IAEjD,OAAO,CAAC,kBAAkB,CAAwC;IAElE;;OAEG;IACH,SAAS,aAAa,MAAM,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC;IAS7D;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IA4EzB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAO7B;;OAEG;IACH,MAAM,CAAC,MAAM,IAAI,SAAS;IAI1B;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM;IAe7B;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC;IAQ9C;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;IAQhD;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;IAQhD;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;IAQnD;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;IAQlC;;OAEG;IACH,GAAG,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;IAQhC;;OAEG;IACH,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;IAQjC;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;IAQnD;;OAEG;IACH,IAAI,IAAI,SAAS;IAQjB;;OAEG;IACH,WAAW,IAAI,SAAS;IAQxB;;OAEG;IACH,WAAW,IAAI,SAAS;IAQxB;;OAEG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;IAQpD;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;IAQlD;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;IAQlD;;OAEG;IACH,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;IAY/B;;OAEG;IACH,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;IAQjC;;OAEG;IACH,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;IAWjC;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;CAOtC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oxog/vld",
3
- "version": "2.0.1",
3
+ "version": "2.0.2",
4
4
  "description": "Ultra-fast TypeScript-first schema validation with zero dependencies, 27+ language support, plugin system, and CLI tools",
5
5
  "type": "module",
6
6
  "main": "./dist/cjs/index.cjs",