@oxog/vld 2.0.2 → 2.0.3

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 (48) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/LICENSE +20 -20
  3. package/README.md +2 -2
  4. package/dist/chunks/{bigint-DgsCr2dC.js → bigint-CRS0QVsy.js} +147 -2
  5. package/dist/chunks/bigint-CRS0QVsy.js.map +1 -0
  6. package/dist/chunks/{date-ODue_rtq.js → date-50JV_Mfj.js} +2 -2
  7. package/dist/chunks/{date-ODue_rtq.js.map → date-50JV_Mfj.js.map} +1 -1
  8. package/dist/chunks/{index-CETyGkrv.js → index-DO8CFMxD.js} +4 -4
  9. package/dist/chunks/index-DO8CFMxD.js.map +1 -0
  10. package/dist/chunks/{json-o20GFhTh.js → json-Cp4WO0M9.js} +4 -4
  11. package/dist/chunks/json-Cp4WO0M9.js.map +1 -0
  12. package/dist/chunks/{unknown-SLIH1VCf.js → unknown-Dhzri_T-.js} +2 -2
  13. package/dist/chunks/unknown-Dhzri_T-.js.map +1 -0
  14. package/dist/cjs/index.cjs +777 -1
  15. package/dist/cjs/index.cjs.map +1 -1
  16. package/dist/cjs/locales/index.cjs.map +1 -1
  17. package/dist/cjs/mini.cjs +145 -0
  18. package/dist/cjs/mini.cjs.map +1 -1
  19. package/dist/cli/commands/validate.d.ts.map +1 -1
  20. package/dist/codecs/index.js +3 -3
  21. package/dist/coercion/index.js +2 -2
  22. package/dist/coercion/index.js.map +1 -1
  23. package/dist/index.d.ts +244 -0
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +550 -11
  26. package/dist/index.js.map +1 -1
  27. package/dist/mini.js +5 -5
  28. package/dist/utils/json-schema.d.ts +67 -0
  29. package/dist/utils/json-schema.d.ts.map +1 -0
  30. package/dist/validators/base.d.ts +79 -0
  31. package/dist/validators/base.d.ts.map +1 -1
  32. package/dist/validators/index.d.ts +3 -2
  33. package/dist/validators/index.d.ts.map +1 -1
  34. package/dist/validators/index.js +514 -4
  35. package/dist/validators/index.js.map +1 -1
  36. package/dist/validators/number.d.ts +30 -0
  37. package/dist/validators/number.d.ts.map +1 -1
  38. package/dist/validators/promise.d.ts +53 -0
  39. package/dist/validators/promise.d.ts.map +1 -0
  40. package/dist/validators/string-formats.d.ts +6 -0
  41. package/dist/validators/string-formats.d.ts.map +1 -1
  42. package/package.json +6 -5
  43. package/dist/chunks/bigint-DgsCr2dC.js.map +0 -1
  44. package/dist/chunks/index-BZqWZvVe.js +0 -426
  45. package/dist/chunks/index-BZqWZvVe.js.map +0 -1
  46. package/dist/chunks/index-CETyGkrv.js.map +0 -1
  47. package/dist/chunks/json-o20GFhTh.js.map +0 -1
  48. package/dist/chunks/unknown-SLIH1VCf.js.map +0 -1
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/logger.ts","../src/index.ts"],"sourcesContent":["/**\r\n * VLD Logger\r\n *\r\n * This module provides a debug logging system for VLD,\r\n * compatible with @oxog/log when available.\r\n */\r\n\r\n/**\r\n * Log levels\r\n */\r\nexport type LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'silent';\r\n\r\n/**\r\n * Log level priorities (lower = more verbose)\r\n */\r\nconst LOG_LEVEL_PRIORITY: Record<LogLevel, number> = {\r\n debug: 0,\r\n info: 1,\r\n warn: 2,\r\n error: 3,\r\n silent: 4\r\n};\r\n\r\n/**\r\n * Logger options\r\n */\r\nexport interface LoggerOptions {\r\n /** Logger name (appears in log output) */\r\n name?: string;\r\n /** Minimum log level to output */\r\n level?: LogLevel;\r\n /** Enable colored output (for terminals) */\r\n colored?: boolean;\r\n /** Enable timestamps in output */\r\n timestamps?: boolean;\r\n /** Custom log handler */\r\n handler?: LogHandler;\r\n}\r\n\r\n/**\r\n * Log entry\r\n */\r\nexport interface LogEntry {\r\n level: LogLevel;\r\n message: string;\r\n data?: unknown;\r\n timestamp: Date;\r\n name: string;\r\n}\r\n\r\n/**\r\n * Log handler function\r\n */\r\nexport type LogHandler = (entry: LogEntry) => void;\r\n\r\n/**\r\n * Logger interface\r\n */\r\nexport interface Logger {\r\n /** Log at debug level */\r\n debug(message: string, data?: unknown): void;\r\n /** Log at info level */\r\n info(message: string, data?: unknown): void;\r\n /** Log at warn level */\r\n warn(message: string, data?: unknown): void;\r\n /** Log at error level */\r\n error(message: string, data?: unknown): void;\r\n /** Check if level is enabled */\r\n isLevelEnabled(level: LogLevel): boolean;\r\n /** Set log level */\r\n setLevel(level: LogLevel): void;\r\n /** Get current level */\r\n getLevel(): LogLevel;\r\n /** Create a child logger with a new name */\r\n child(name: string): Logger;\r\n}\r\n\r\n/**\r\n * ANSI color codes for terminal output\r\n */\r\nconst COLORS = {\r\n reset: '\\x1b[0m',\r\n dim: '\\x1b[2m',\r\n red: '\\x1b[31m',\r\n yellow: '\\x1b[33m',\r\n blue: '\\x1b[34m',\r\n cyan: '\\x1b[36m',\r\n gray: '\\x1b[90m'\r\n};\r\n\r\n/**\r\n * Level colors\r\n */\r\nconst LEVEL_COLORS: Record<Exclude<LogLevel, 'silent'>, string> = {\r\n debug: COLORS.gray,\r\n info: COLORS.blue,\r\n warn: COLORS.yellow,\r\n error: COLORS.red\r\n};\r\n\r\n/**\r\n * Level labels\r\n */\r\nconst LEVEL_LABELS: Record<Exclude<LogLevel, 'silent'>, string> = {\r\n debug: 'DEBUG',\r\n info: 'INFO ',\r\n warn: 'WARN ',\r\n error: 'ERROR'\r\n};\r\n\r\n/**\r\n * Default log handler\r\n */\r\nfunction createDefaultHandler(options: LoggerOptions): LogHandler {\r\n const colored = options.colored ?? true;\r\n const timestamps = options.timestamps ?? true;\r\n\r\n return (entry: LogEntry) => {\r\n const parts: string[] = [];\r\n\r\n // Timestamp\r\n if (timestamps) {\r\n const time = entry.timestamp.toISOString().slice(11, 23);\r\n parts.push(colored ? `${COLORS.dim}${time}${COLORS.reset}` : time);\r\n }\r\n\r\n // Level\r\n const levelLabel = LEVEL_LABELS[entry.level as Exclude<LogLevel, 'silent'>];\r\n const levelColor = LEVEL_COLORS[entry.level as Exclude<LogLevel, 'silent'>];\r\n parts.push(colored ? `${levelColor}${levelLabel}${COLORS.reset}` : levelLabel);\r\n\r\n // Name\r\n parts.push(colored ? `${COLORS.cyan}[${entry.name}]${COLORS.reset}` : `[${entry.name}]`);\r\n\r\n // Message\r\n parts.push(entry.message);\r\n\r\n // Output\r\n const output = parts.join(' ');\r\n\r\n // Use appropriate console method\r\n switch (entry.level) {\r\n case 'debug':\r\n console.debug(output, entry.data !== undefined ? entry.data : '');\r\n break;\r\n case 'info':\r\n console.info(output, entry.data !== undefined ? entry.data : '');\r\n break;\r\n case 'warn':\r\n console.warn(output, entry.data !== undefined ? entry.data : '');\r\n break;\r\n case 'error':\r\n console.error(output, entry.data !== undefined ? entry.data : '');\r\n break;\r\n }\r\n };\r\n}\r\n\r\n/**\r\n * Create a logger instance\r\n */\r\nexport function createLogger(options: LoggerOptions = {}): Logger {\r\n const name = options.name ?? 'vld';\r\n let level = options.level ?? 'warn';\r\n const handler = options.handler ?? createDefaultHandler(options);\r\n\r\n const log = (logLevel: Exclude<LogLevel, 'silent'>, message: string, data?: unknown): void => {\r\n if (LOG_LEVEL_PRIORITY[logLevel] < LOG_LEVEL_PRIORITY[level]) {\r\n return;\r\n }\r\n\r\n const entry: LogEntry = {\r\n level: logLevel,\r\n message,\r\n data,\r\n timestamp: new Date(),\r\n name\r\n };\r\n\r\n handler(entry);\r\n };\r\n\r\n const logger: Logger = {\r\n debug: (message, data) => log('debug', message, data),\r\n info: (message, data) => log('info', message, data),\r\n warn: (message, data) => log('warn', message, data),\r\n error: (message, data) => log('error', message, data),\r\n\r\n isLevelEnabled: (checkLevel) =>\r\n LOG_LEVEL_PRIORITY[checkLevel] >= LOG_LEVEL_PRIORITY[level],\r\n\r\n setLevel: (newLevel) => {\r\n level = newLevel;\r\n },\r\n\r\n getLevel: () => level,\r\n\r\n child: (childName) =>\r\n createLogger({\r\n ...options,\r\n name: `${name}:${childName}`\r\n })\r\n };\r\n\r\n return logger;\r\n}\r\n\r\n// ============================================\r\n// Global Logger Management\r\n// ============================================\r\n\r\nlet globalLogger: Logger | null = null;\r\n\r\n/**\r\n * Initialize the global VLD logger\r\n */\r\nexport function initLogger(options?: LoggerOptions): Logger {\r\n globalLogger = createLogger({\r\n name: 'vld',\r\n ...options\r\n });\r\n return globalLogger;\r\n}\r\n\r\n/**\r\n * Get the global VLD logger\r\n * Returns null if not initialized\r\n */\r\nexport function getLogger(): Logger | null {\r\n return globalLogger;\r\n}\r\n\r\n/**\r\n * Set log level for the global logger\r\n */\r\nexport function setLogLevel(level: LogLevel): void {\r\n if (globalLogger) {\r\n globalLogger.setLevel(level);\r\n }\r\n}\r\n\r\n/**\r\n * Enable debug mode for VLD\r\n */\r\nexport function enableDebug(): void {\r\n if (!globalLogger) {\r\n initLogger({ level: 'debug' });\r\n } else {\r\n globalLogger.setLevel('debug');\r\n }\r\n}\r\n\r\n/**\r\n * Disable all VLD logging\r\n */\r\nexport function disableLogging(): void {\r\n if (globalLogger) {\r\n globalLogger.setLevel('silent');\r\n }\r\n}\r\n\r\n/**\r\n * Create a no-op logger for testing\r\n */\r\nexport function createNoOpLogger(): Logger {\r\n return createLogger({ level: 'silent' });\r\n}\r\n\r\n/**\r\n * Reset the global logger (for testing)\r\n */\r\nexport function resetLogger(): void {\r\n globalLogger = null;\r\n}\r\n","/**\r\n * VLD - Fast, Type-Safe Validation Library\r\n * Zero dependencies, blazing fast performance\r\n *\r\n * This is the new modular implementation with:\r\n * - Immutable validators (no memory leaks)\r\n * - Secure deepMerge (no prototype pollution)\r\n * - TypeScript strict mode support\r\n * - Better performance through pooling and memoization\r\n * - Plugin system for extensibility\r\n * - Event system for validation lifecycle hooks\r\n * - Result pattern for functional error handling\r\n * - Colored console output for better debugging\r\n * - Debug logging system\r\n */\r\n\r\n// Import base class\r\nimport { VldBase } from './validators/base';\r\n\r\n// Import validators\r\nimport { VldString } from './validators/string';\r\nimport { VldNumber } from './validators/number';\r\nimport { VldBoolean } from './validators/boolean';\r\nimport { VldDate } from './validators/date';\r\nimport { VldStringBool } from './validators/string-bool';\r\nimport { VldArray } from './validators/array';\r\nimport { VldObject } from './validators/object';\r\nimport { VldUnion } from './validators/union';\r\nimport { VldLiteral } from './validators/literal';\r\nimport { VldBigInt } from './validators/bigint';\r\nimport { VldSymbol } from './validators/symbol';\r\nimport { VldTuple } from './validators/tuple';\r\nimport { VldRecord } from './validators/record';\r\nimport { VldSet } from './validators/set';\r\nimport { VldMap } from './validators/map';\r\nimport { VldEnum } from './validators/enum';\r\nimport { VldIntersection } from './validators/intersection';\r\nimport { VldAny } from './validators/any';\r\nimport { VldUnknown } from './validators/unknown';\r\nimport { VldVoid } from './validators/void';\r\nimport { VldNever } from './validators/never';\r\nimport { VldNull } from './validators/null';\r\nimport { VldUndefined } from './validators/undefined';\r\nimport { VldNan } from './validators/nan';\r\nimport { VldLazy } from './validators/lazy';\r\nimport { VldDiscriminatedUnion } from './validators/discriminated-union';\r\nimport { VldXor } from './validators/xor';\r\nimport { VldJson } from './validators/json';\r\nimport { templateLiteral } from './validators/template-literal';\r\nimport { custom as customFn, type CustomValidatorOptions } from './validators/custom';\r\nimport { file as fileFn } from './validators/file';\r\nimport { functionValidator as functionFn } from './validators/function';\r\nimport { VldPreprocess } from './validators/base';\r\nimport { VldOptional } from './validators/base';\r\nimport { VldNullable } from './validators/base';\r\nimport { VldNullish } from './validators/base';\r\nimport { VldCodec } from './validators/codec';\r\nimport { VldBase64 } from './validators/base64';\r\nimport { VldHex } from './validators/hex';\r\nimport { VldUint8Array } from './validators/uint8array';\r\n\r\n// Import coercion validators\r\nimport { VldCoerceString } from './coercion/string';\r\nimport { VldCoerceNumber } from './coercion/number';\r\nimport { VldCoerceBoolean } from './coercion/boolean';\r\nimport { VldCoerceDate } from './coercion/date';\r\nimport { VldCoerceBigInt } from './coercion/bigint';\r\n\r\n// Import string format validators\r\nimport * as stringFormats from './validators/string-formats';\r\n\r\n// Re-export types\r\nexport type { ParseResult } from './validators/base';\r\nexport type { Infer, Input, Output } from './validators';\r\n\r\n// Re-export base classes for extension\r\nexport { VldBase } from './validators/base';\r\nexport { VldIntersection } from './validators/intersection';\r\n\r\n// Re-export locale functionality\r\nexport { setLocale, getLocale, getMessages, type Locale } from './locales';\r\n\r\n// Re-export error formatting utilities\r\nexport {\r\n VldError,\r\n VldIssue,\r\n VldErrorCode,\r\n VldErrorTree,\r\n VldFlattenedError,\r\n VldErrorJSON,\r\n treeifyError,\r\n prettifyError,\r\n prettifyErrorColored,\r\n prettifyErrorPlain,\r\n flattenError,\r\n type PrettifyOptions\r\n} from './errors';\r\n\r\n// Re-export codec utilities\r\nexport { \r\n base64ToUint8Array,\r\n uint8ArrayToBase64,\r\n uint8ArrayToBase64Url,\r\n hexToUint8Array,\r\n uint8ArrayToHex,\r\n stringToUint8Array,\r\n uint8ArrayToString\r\n} from './utils/codec-utils';\r\n\r\n// Re-export codec types\r\nexport type { CodecTransform } from './validators/codec';\r\n\r\n// Re-export predefined codecs\r\nexport {\r\n // String conversion codecs\r\n stringToNumber,\r\n stringToInt,\r\n stringToBigInt,\r\n numberToBigInt,\r\n stringToBoolean,\r\n \r\n // Date conversion codecs \r\n isoDatetimeToDate,\r\n epochSecondsToDate,\r\n epochMillisToDate,\r\n \r\n // JSON codec\r\n jsonCodec,\r\n \r\n // URL codecs\r\n stringToURL,\r\n stringToHttpURL,\r\n uriComponent,\r\n \r\n // Byte conversion codecs\r\n base64ToBytes,\r\n base64UrlToBytes,\r\n base64urlToBytes,\r\n hexToBytes,\r\n hexLowerToBytes,\r\n utf8ToBytes,\r\n bytesToUtf8,\r\n \r\n // Complex codecs\r\n base64Json,\r\n jwtPayload\r\n} from './codecs';\r\n\r\n/**\r\n * Main API object with factory methods for all validators\r\n */\r\nexport const v = {\r\n // Primitive validators\r\n string: () => VldString.create(),\r\n number: () => VldNumber.create(),\r\n int: () => VldNumber.create().int(),\r\n int32: () => VldNumber.create().int().min(-2147483648).max(2147483647),\r\n boolean: () => VldBoolean.create(),\r\n date: () => VldDate.create(),\r\n bigint: () => VldBigInt.create(),\r\n symbol: () => VldSymbol.create(),\r\n stringbool: (options?: { truthy?: readonly string[]; falsy?: readonly string[]; caseSensitive?: boolean }) =>\r\n VldStringBool.create(options),\r\n \r\n // Complex validators\r\n array: <T>(item: VldBase<unknown, T>) => VldArray.create(item),\r\n object: <T extends Record<string, any>>(shape: { [K in keyof T]: VldBase<unknown, T[K]> }) =>\r\n VldObject.create(shape),\r\n strictObject: <T extends Record<string, any>>(shape: { [K in keyof T]: VldBase<unknown, T[K]> }) =>\r\n VldObject.create(shape).strict(),\r\n looseObject: <T extends Record<string, any>>(shape: { [K in keyof T]: VldBase<unknown, T[K]> }) =>\r\n VldObject.create(shape).passthrough(),\r\n tuple: <T extends readonly VldBase<any, any>[]>(...items: T) => VldTuple.create(...items),\r\n record: <T>(value: VldBase<unknown, T>) => VldRecord.create(value),\r\n partialRecord: <T>(value: VldBase<unknown, T>) => VldRecord.create(value).partial(),\r\n looseRecord: <T>(value: VldBase<unknown, T>) => VldRecord.create(value).loose(),\r\n set: <T>(item: VldBase<unknown, T>) => VldSet.create(item),\r\n map: <K, V>(key: VldBase<unknown, K>, value: VldBase<unknown, V>) => VldMap.create(key, value),\r\n \r\n // Union and intersection\r\n union: <T extends readonly VldBase<any, any>[]>(...validators: T) =>\r\n VldUnion.create(...validators),\r\n intersection: <A, B>(first: VldBase<unknown, A>, second: VldBase<unknown, B>) =>\r\n VldIntersection.create(first, second),\r\n discriminatedUnion: <K extends string, T extends readonly VldBase<any, any>[]>(\r\n discriminator: K,\r\n ...options: T\r\n ) => VldDiscriminatedUnion.create(discriminator, [...options] as any),\r\n xor: <T extends readonly VldBase<any, any>[]>(...options: T) =>\r\n VldXor.create([...options] as any),\r\n \r\n // Literal and enum\r\n literal: <T extends string | number | boolean | null | undefined>(value: T) => \r\n VldLiteral.create(value),\r\n enum: <T extends readonly [string, ...string[]]>(...values: T) => VldEnum.create(values as any),\r\n \r\n // Special validators\r\n any: () => VldAny.create(),\r\n unknown: () => VldUnknown.create(),\r\n void: () => VldVoid.create(),\r\n never: () => VldNever.create(),\r\n null: () => VldNull.create(),\r\n undefined: () => VldUndefined.create(),\r\n nan: () => VldNan.create(),\r\n\r\n // NEVER constant - Zod 4 API parity for use in transforms\r\n NEVER: VldNever.create(),\r\n \r\n // Utility validators\r\n optional: <T>(validator: VldBase<unknown, T>) => VldOptional.create(validator),\r\n nullable: <T>(validator: VldBase<unknown, T>) => VldNullable.create(validator),\r\n nullish: <T>(validator: VldBase<unknown, T>) => VldNullish.create(validator),\r\n\r\n // Recursive schemas\r\n lazy: <T>(schemaGetter: () => VldBase<unknown, T>) => VldLazy.create(schemaGetter),\r\n\r\n // JSON validator\r\n json: <T = unknown>(schema?: VldBase<unknown, T>) => VldJson.create(schema),\r\n\r\n // Custom validator for type-safe user-defined schemas\r\n custom: <TOutput = unknown>(\r\n options: CustomValidatorOptions<TOutput>\r\n ) => customFn<TOutput>(options),\r\n\r\n // File validator for file uploads\r\n file: () => fileFn(),\r\n\r\n // Function validator for function validation\r\n function: () => functionFn(),\r\n\r\n // Preprocessing\r\n preprocess: <TInput, TOutput>(\r\n preprocessor: (input: unknown) => unknown,\r\n schema: VldBase<TInput, TOutput>\r\n ) => VldPreprocess.create(preprocessor, schema),\r\n\r\n // Coercion API\r\n coerce: {\r\n string: () => VldCoerceString.create(),\r\n number: () => VldCoerceNumber.create(),\r\n boolean: () => VldCoerceBoolean.create(),\r\n date: () => VldCoerceDate.create(),\r\n bigint: () => VldCoerceBigInt.create(),\r\n },\r\n\r\n // String format validators (Zod 4 parity)\r\n email: (options?: { pattern?: RegExp }) => stringFormats.email(options),\r\n uuid: (options?: { version?: 'v4' | 'v6' | 'v7' }) => stringFormats.uuid(options),\r\n uuidv4: () => stringFormats.uuidv4(),\r\n hostname: () => stringFormats.hostname(),\r\n emoji: () => stringFormats.emoji(),\r\n base64: () => stringFormats.base64(),\r\n base64url: () => stringFormats.base64url(),\r\n hex: () => stringFormats.hex(),\r\n jwt: () => stringFormats.jwt(),\r\n nanoid: () => stringFormats.nanoid(),\r\n cuid: () => stringFormats.cuid(),\r\n cuid2: () => stringFormats.cuid2(),\r\n ulid: () => stringFormats.ulid(),\r\n ipv4: () => stringFormats.ipv4(),\r\n ipv6: () => stringFormats.ipv6(),\r\n mac: () => stringFormats.mac(),\r\n cidrv4: () => stringFormats.cidrv4(),\r\n cidrv6: () => stringFormats.cidrv6(),\r\n e164: () => stringFormats.e164(),\r\n hash: (algorithm: 'md5' | 'sha1' | 'sha256' | 'sha384' | 'sha512') =>\r\n stringFormats.hash(algorithm),\r\n iso: {\r\n date: () => stringFormats.iso.date(),\r\n time: () => stringFormats.iso.time(),\r\n dateTime: () => stringFormats.iso.dateTime(),\r\n duration: () => stringFormats.iso.duration(),\r\n },\r\n stringFormat: (name: string, validator: ((val: string) => boolean) | RegExp) =>\r\n stringFormats.stringFormat(name, validator),\r\n\r\n // Template literal validator\r\n templateLiteral: (...components: (VldBase<any, any> | string)[]) => templateLiteral(...components),\r\n\r\n // Codec validators (binary data validators)\r\n base64Bytes: () => VldBase64.create(),\r\n hexBytes: () => VldHex.create(),\r\n uint8Array: () => VldUint8Array.create(),\r\n \r\n // Codec factory\r\n codec: <TInput, TOutput>(\r\n inputValidator: VldBase<unknown, TInput>,\r\n outputValidator: VldBase<unknown, TOutput>,\r\n transform: {\r\n decode: (value: TInput) => TOutput | Promise<TOutput>;\r\n encode: (value: TOutput) => TInput | Promise<TInput>;\r\n }\r\n ) => VldCodec.create(inputValidator, outputValidator, transform)\r\n};\r\n\r\n// ============================================\r\n// Result Pattern (v1.5+ features)\r\n// ============================================\r\n\r\nexport type { Result, VldResult } from './compat/result';\r\n\r\nexport {\r\n Ok,\r\n Err,\r\n success,\r\n failure,\r\n isOk,\r\n isErr,\r\n isResult,\r\n unwrap,\r\n unwrapOr,\r\n map,\r\n mapErr,\r\n flatMap,\r\n match,\r\n tryCatch,\r\n tryCatchAsync,\r\n all,\r\n fromNullable,\r\n ResultUtils\r\n} from './compat/result';\r\n\r\n// ============================================\r\n// Event Emitter (v1.5+ features)\r\n// ============================================\r\n\r\nexport {\r\n // Types\r\n type EventMap,\r\n type EventHandler,\r\n type ListenerOptions,\r\n type Emitter,\r\n // Factory functions\r\n createEmitter,\r\n createEventBus,\r\n withEmitter\r\n} from './compat/emitter';\r\n\r\n// ============================================\r\n// VLD Events (v1.5+ features)\r\n// ============================================\r\n\r\nexport type {\r\n VldEvents,\r\n VldEventPayload,\r\n ParseStartEvent,\r\n ParseSuccessEvent,\r\n ParseErrorEvent,\r\n FieldValidationEvent,\r\n TransformEvent,\r\n PluginRegisteredEvent,\r\n LocaleChangedEvent,\r\n DebugEvent,\r\n MetricsEvent\r\n} from './events';\r\n\r\n// ============================================\r\n// Plugin System (v1.5+ features)\r\n// ============================================\r\n\r\nexport {\r\n // Kernel\r\n createVldKernel,\r\n getVldKernel,\r\n resetVldKernel,\r\n usePlugin,\r\n definePlugin,\r\n // Types\r\n type VldContext,\r\n type VldPlugin,\r\n type VldKernelInstance,\r\n type VldKernelOptions,\r\n type ValidatorFactory,\r\n type TransformFactory,\r\n type CodecFactory,\r\n type HookContext,\r\n type PluginBuilder,\r\n type PluginMeta,\r\n type PluginHooks\r\n} from './kernel';\r\n\r\n// ============================================\r\n// Logger (v1.5+ features)\r\n// ============================================\r\n\r\nexport {\r\n // Logger\r\n createLogger,\r\n initLogger,\r\n getLogger,\r\n setLogLevel,\r\n enableDebug,\r\n disableLogging,\r\n createNoOpLogger,\r\n // Types\r\n type Logger,\r\n type LoggerOptions,\r\n type LogLevel,\r\n type LogEntry,\r\n type LogHandler\r\n} from './logger';\r\n\r\n// ============================================\r\n// Pigment - Colored Output (v1.5+ features)\r\n// ============================================\r\n\r\nexport {\r\n pigment,\r\n supportsColor,\r\n bold,\r\n dim,\r\n italic,\r\n underline,\r\n red,\r\n green,\r\n yellow,\r\n blue,\r\n magenta,\r\n cyan,\r\n white,\r\n gray,\r\n grey,\r\n strip,\r\n vldTheme,\r\n createTheme,\r\n type Theme\r\n} from './pigment';\r\n\r\n// For backward compatibility during migration\r\nexport default v;"],"names":["customFn","fileFn","functionFn","stringFormats.email","stringFormats.uuid","stringFormats.uuidv4","stringFormats.hostname","stringFormats.emoji","stringFormats.base64","stringFormats.base64url","stringFormats.hex","stringFormats.jwt","stringFormats.nanoid","stringFormats.cuid","stringFormats.cuid2","stringFormats.ulid","stringFormats.ipv4","stringFormats.ipv6","stringFormats.mac","stringFormats.cidrv4","stringFormats.cidrv6","stringFormats.e164","stringFormats.hash","stringFormats.iso","stringFormats.stringFormat"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/logger.ts","../src/utils/json-schema.ts","../src/index.ts"],"sourcesContent":["/**\r\n * VLD Logger\r\n *\r\n * This module provides a debug logging system for VLD,\r\n * compatible with @oxog/log when available.\r\n */\r\n\r\n/**\r\n * Log levels\r\n */\r\nexport type LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'silent';\r\n\r\n/**\r\n * Log level priorities (lower = more verbose)\r\n */\r\nconst LOG_LEVEL_PRIORITY: Record<LogLevel, number> = {\r\n debug: 0,\r\n info: 1,\r\n warn: 2,\r\n error: 3,\r\n silent: 4\r\n};\r\n\r\n/**\r\n * Logger options\r\n */\r\nexport interface LoggerOptions {\r\n /** Logger name (appears in log output) */\r\n name?: string;\r\n /** Minimum log level to output */\r\n level?: LogLevel;\r\n /** Enable colored output (for terminals) */\r\n colored?: boolean;\r\n /** Enable timestamps in output */\r\n timestamps?: boolean;\r\n /** Custom log handler */\r\n handler?: LogHandler;\r\n}\r\n\r\n/**\r\n * Log entry\r\n */\r\nexport interface LogEntry {\r\n level: LogLevel;\r\n message: string;\r\n data?: unknown;\r\n timestamp: Date;\r\n name: string;\r\n}\r\n\r\n/**\r\n * Log handler function\r\n */\r\nexport type LogHandler = (entry: LogEntry) => void;\r\n\r\n/**\r\n * Logger interface\r\n */\r\nexport interface Logger {\r\n /** Log at debug level */\r\n debug(message: string, data?: unknown): void;\r\n /** Log at info level */\r\n info(message: string, data?: unknown): void;\r\n /** Log at warn level */\r\n warn(message: string, data?: unknown): void;\r\n /** Log at error level */\r\n error(message: string, data?: unknown): void;\r\n /** Check if level is enabled */\r\n isLevelEnabled(level: LogLevel): boolean;\r\n /** Set log level */\r\n setLevel(level: LogLevel): void;\r\n /** Get current level */\r\n getLevel(): LogLevel;\r\n /** Create a child logger with a new name */\r\n child(name: string): Logger;\r\n}\r\n\r\n/**\r\n * ANSI color codes for terminal output\r\n */\r\nconst COLORS = {\r\n reset: '\\x1b[0m',\r\n dim: '\\x1b[2m',\r\n red: '\\x1b[31m',\r\n yellow: '\\x1b[33m',\r\n blue: '\\x1b[34m',\r\n cyan: '\\x1b[36m',\r\n gray: '\\x1b[90m'\r\n};\r\n\r\n/**\r\n * Level colors\r\n */\r\nconst LEVEL_COLORS: Record<Exclude<LogLevel, 'silent'>, string> = {\r\n debug: COLORS.gray,\r\n info: COLORS.blue,\r\n warn: COLORS.yellow,\r\n error: COLORS.red\r\n};\r\n\r\n/**\r\n * Level labels\r\n */\r\nconst LEVEL_LABELS: Record<Exclude<LogLevel, 'silent'>, string> = {\r\n debug: 'DEBUG',\r\n info: 'INFO ',\r\n warn: 'WARN ',\r\n error: 'ERROR'\r\n};\r\n\r\n/**\r\n * Default log handler\r\n */\r\nfunction createDefaultHandler(options: LoggerOptions): LogHandler {\r\n const colored = options.colored ?? true;\r\n const timestamps = options.timestamps ?? true;\r\n\r\n return (entry: LogEntry) => {\r\n const parts: string[] = [];\r\n\r\n // Timestamp\r\n if (timestamps) {\r\n const time = entry.timestamp.toISOString().slice(11, 23);\r\n parts.push(colored ? `${COLORS.dim}${time}${COLORS.reset}` : time);\r\n }\r\n\r\n // Level\r\n const levelLabel = LEVEL_LABELS[entry.level as Exclude<LogLevel, 'silent'>];\r\n const levelColor = LEVEL_COLORS[entry.level as Exclude<LogLevel, 'silent'>];\r\n parts.push(colored ? `${levelColor}${levelLabel}${COLORS.reset}` : levelLabel);\r\n\r\n // Name\r\n parts.push(colored ? `${COLORS.cyan}[${entry.name}]${COLORS.reset}` : `[${entry.name}]`);\r\n\r\n // Message\r\n parts.push(entry.message);\r\n\r\n // Output\r\n const output = parts.join(' ');\r\n\r\n // Use appropriate console method\r\n switch (entry.level) {\r\n case 'debug':\r\n console.debug(output, entry.data !== undefined ? entry.data : '');\r\n break;\r\n case 'info':\r\n console.info(output, entry.data !== undefined ? entry.data : '');\r\n break;\r\n case 'warn':\r\n console.warn(output, entry.data !== undefined ? entry.data : '');\r\n break;\r\n case 'error':\r\n console.error(output, entry.data !== undefined ? entry.data : '');\r\n break;\r\n }\r\n };\r\n}\r\n\r\n/**\r\n * Create a logger instance\r\n */\r\nexport function createLogger(options: LoggerOptions = {}): Logger {\r\n const name = options.name ?? 'vld';\r\n let level = options.level ?? 'warn';\r\n const handler = options.handler ?? createDefaultHandler(options);\r\n\r\n const log = (logLevel: Exclude<LogLevel, 'silent'>, message: string, data?: unknown): void => {\r\n if (LOG_LEVEL_PRIORITY[logLevel] < LOG_LEVEL_PRIORITY[level]) {\r\n return;\r\n }\r\n\r\n const entry: LogEntry = {\r\n level: logLevel,\r\n message,\r\n data,\r\n timestamp: new Date(),\r\n name\r\n };\r\n\r\n handler(entry);\r\n };\r\n\r\n const logger: Logger = {\r\n debug: (message, data) => log('debug', message, data),\r\n info: (message, data) => log('info', message, data),\r\n warn: (message, data) => log('warn', message, data),\r\n error: (message, data) => log('error', message, data),\r\n\r\n isLevelEnabled: (checkLevel) =>\r\n LOG_LEVEL_PRIORITY[checkLevel] >= LOG_LEVEL_PRIORITY[level],\r\n\r\n setLevel: (newLevel) => {\r\n level = newLevel;\r\n },\r\n\r\n getLevel: () => level,\r\n\r\n child: (childName) =>\r\n createLogger({\r\n ...options,\r\n name: `${name}:${childName}`\r\n })\r\n };\r\n\r\n return logger;\r\n}\r\n\r\n// ============================================\r\n// Global Logger Management\r\n// ============================================\r\n\r\nlet globalLogger: Logger | null = null;\r\n\r\n/**\r\n * Initialize the global VLD logger\r\n */\r\nexport function initLogger(options?: LoggerOptions): Logger {\r\n globalLogger = createLogger({\r\n name: 'vld',\r\n ...options\r\n });\r\n return globalLogger;\r\n}\r\n\r\n/**\r\n * Get the global VLD logger\r\n * Returns null if not initialized\r\n */\r\nexport function getLogger(): Logger | null {\r\n return globalLogger;\r\n}\r\n\r\n/**\r\n * Set log level for the global logger\r\n */\r\nexport function setLogLevel(level: LogLevel): void {\r\n if (globalLogger) {\r\n globalLogger.setLevel(level);\r\n }\r\n}\r\n\r\n/**\r\n * Enable debug mode for VLD\r\n */\r\nexport function enableDebug(): void {\r\n if (!globalLogger) {\r\n initLogger({ level: 'debug' });\r\n } else {\r\n globalLogger.setLevel('debug');\r\n }\r\n}\r\n\r\n/**\r\n * Disable all VLD logging\r\n */\r\nexport function disableLogging(): void {\r\n if (globalLogger) {\r\n globalLogger.setLevel('silent');\r\n }\r\n}\r\n\r\n/**\r\n * Create a no-op logger for testing\r\n */\r\nexport function createNoOpLogger(): Logger {\r\n return createLogger({ level: 'silent' });\r\n}\r\n\r\n/**\r\n * Reset the global logger (for testing)\r\n */\r\nexport function resetLogger(): void {\r\n globalLogger = null;\r\n}\r\n","/**\n * JSON Schema support for VLD validators\n * Provides conversion between VLD schemas and JSON Schema\n */\n\nimport { VldBase } from '../validators/base';\n\n/**\n * JSON Schema definition types\n */\nexport type JSONSchemaDefinition = {\n $id?: string;\n $schema?: string;\n $ref?: string;\n $defs?: Record<string, JSONSchemaDefinition>;\n type?: string | string[];\n enum?: unknown[];\n const?: unknown;\n format?: string;\n pattern?: string;\n minLength?: number;\n maxLength?: number;\n minimum?: number;\n maximum?: number;\n exclusiveMinimum?: number;\n exclusiveMaximum?: number;\n multipleOf?: number;\n properties?: Record<string, JSONSchemaDefinition>;\n additionalProperties?: boolean | JSONSchemaDefinition;\n required?: string[];\n items?: JSONSchemaDefinition | JSONSchemaDefinition[];\n contains?: JSONSchemaDefinition;\n minItems?: number;\n maxItems?: number;\n uniqueItems?: boolean;\n anyOf?: JSONSchemaDefinition[];\n allOf?: JSONSchemaDefinition[];\n oneOf?: JSONSchemaDefinition[];\n not?: JSONSchemaDefinition;\n title?: string;\n description?: string;\n default?: unknown;\n examples?: unknown[];\n deprecated?: boolean;\n readOnly?: boolean;\n writeOnly?: boolean;\n};\n\n/**\n * Options for JSON Schema conversion\n */\nexport interface ToJSONSchemaOptions {\n target?: 'draft-07' | 'draft-2019-09' | 'draft-2020-12';\n includeMetadata?: boolean;\n includeExamples?: boolean;\n}\n\n/**\n * Convert a VLD schema to JSON Schema\n * @param schema The VLD schema to convert\n * @param options Conversion options\n * @returns JSON Schema definition\n */\nexport function toJSONSchema<T>(\n schema: VldBase<unknown, T>,\n options: ToJSONSchemaOptions = {}\n): JSONSchemaDefinition {\n return schemaToJSONSchema(schema as VldBase<unknown, unknown>, options);\n}\n\n/**\n * Convert a JSON Schema to a VLD schema\n * @param json The JSON Schema definition\n * @returns A VLD schema\n */\nexport function fromJSONSchema(json: JSONSchemaDefinition): VldBase<unknown, unknown> {\n return jsonSchemaToVLD(json);\n}\n\n/**\n * Internal function to convert VLD schema to JSON Schema\n */\nfunction schemaToJSONSchema(schema: VldBase<unknown, unknown>, options: ToJSONSchemaOptions): JSONSchemaDefinition {\n const target = options.target || 'draft-07';\n\n // Handle primitives\n if (schema.constructor.name === 'VldString') {\n return buildStringSchema(target);\n }\n\n if (schema.constructor.name === 'VldNumber') {\n return buildNumberSchema(schema, target);\n }\n\n if (schema.constructor.name === 'VldBoolean') {\n return { type: 'boolean' };\n }\n\n if (schema.constructor.name === 'VldBigInt') {\n return { type: 'integer' };\n }\n\n if (schema.constructor.name === 'VldDate') {\n return { type: 'string', format: 'date-time' };\n }\n\n if (schema.constructor.name === 'VldArray') {\n return buildArraySchema(schema, options);\n }\n\n if (schema.constructor.name === 'VldObject') {\n return buildObjectSchema(schema, options);\n }\n\n // Handle union types\n if (schema.constructor.name === 'VldUnion') {\n return buildUnionSchema(schema, options);\n }\n\n // Handle literal types\n if (schema.constructor.name === 'VldLiteral') {\n return buildLiteralSchema(schema);\n }\n\n if (schema.constructor.name === 'VldEnum') {\n return buildEnumSchema(schema);\n }\n\n if (schema.constructor.name === 'VldRecord') {\n return buildRecordSchema(schema, options);\n }\n\n if (schema.constructor.name === 'VldTuple') {\n return buildTupleSchema(schema, options);\n }\n\n if (schema.constructor.name === 'VldIntersection') {\n return buildIntersectionSchema(schema, options);\n }\n\n if (schema.constructor.name === 'VldOptional') {\n return buildOptionalSchema(schema, options);\n }\n\n if (schema.constructor.name === 'VldNullable') {\n return buildNullableSchema(schema, options);\n }\n\n if (schema.constructor.name === 'VldNullish') {\n return buildNullishSchema(schema, options);\n }\n\n if (schema.constructor.name === 'VldExactOptional') {\n return buildExactOptionalSchema(schema, options);\n }\n\n if (schema.constructor.name === 'VldLazy') {\n return { type: 'object' }; // Placeholder for recursive schemas\n }\n\n if (schema.constructor.name === 'VldJson') {\n return {}; // Any JSON\n }\n\n if (schema.constructor.name === 'VldAny') {\n return {}; // JSON Schema true\n }\n\n if (schema.constructor.name === 'VldUnknown') {\n return {}; // JSON Schema true\n }\n\n if (schema.constructor.name === 'VldNever') {\n return { not: {} }; // JSON Schema false\n }\n\n if (schema.constructor.name === 'VldNull') {\n return { type: 'null' };\n }\n\n if (schema.constructor.name === 'VldUndefined') {\n return { not: {} }; // Undefined can't be represented in JSON Schema\n }\n\n if (schema.constructor.name === 'VldNan') {\n return { type: 'number', not: {} }; // NaN is a number type constraint\n }\n\n if (schema.constructor.name === 'VldVoid') {\n return { not: {} }; // Void/undefined can't be represented\n }\n\n // Handle branded types - unwrap and continue\n if (schema.constructor.name === 'VldBrand') {\n return schemaToJSONSchema((schema as any).baseValidator, options);\n }\n\n // Handle readonly types\n if (schema.constructor.name === 'VldReadonly') {\n return schemaToJSONSchema((schema as any).baseValidator, options);\n }\n\n // Handle transform types\n if (schema.constructor.name === 'VldTransform') {\n return schemaToJSONSchema((schema as any)._inner, options);\n }\n\n // Handle meta types - unwrap metadata\n if (schema.constructor.name === 'VldMeta') {\n const metaSchema = schema as any;\n const result = schemaToJSONSchema(metaSchema.baseValidator, options);\n if (options.includeMetadata !== false && metaSchema.metadata) {\n const meta = metaSchema.metadata;\n if (meta.title) result.title = meta.title;\n if (meta.description) result.description = meta.description;\n if (meta.examples && options.includeExamples) result.examples = meta.examples;\n if (meta.default !== undefined) result.default = meta.default;\n if (meta.deprecated) result.deprecated = true;\n if (meta.readOnly) result.readOnly = true;\n if (meta.writeOnly) result.writeOnly = true;\n }\n return result;\n }\n\n // Handle refine/superRefine types\n if (schema.constructor.name === 'VldRefine' || schema.constructor.name === 'VldSuperRefine') {\n return schemaToJSONSchema((schema as any)._inner || (schema as any)._baseValidator, options);\n }\n\n // Handle pipe types\n if (schema.constructor.name === 'VldPipe') {\n return schemaToJSONSchema((schema as any)._next || (schema as any).second, options);\n }\n\n // Handle default/catch types\n if (schema.constructor.name === 'VldDefault' || schema.constructor.name === 'VldCatch') {\n return schemaToJSONSchema((schema as any)._inner || (schema as any)._baseValidator, options);\n }\n\n // Handle preprocess types\n if (schema.constructor.name === 'VldPreprocess') {\n return schemaToJSONSchema((schema as any)._schema, options);\n }\n\n // Handle string format validators\n if (schema.constructor.name === 'VldStringFormat') {\n const formatSchema = schema as any;\n return { type: 'string', format: formatSchema._format };\n }\n\n // Fallback for unknown types\n return {};\n}\n\n/**\n * Build string JSON Schema\n */\nfunction buildStringSchema(_target: string): JSONSchemaDefinition {\n return { type: 'string' };\n}\n\n/**\n * Build number JSON Schema from VLD number schema\n */\nfunction buildNumberSchema(schema: any, _target: string): JSONSchemaDefinition {\n const config = schema.config || {};\n const checks = config.checks || [];\n\n const result: JSONSchemaDefinition = { type: 'number' };\n\n for (const check of checks) {\n // Try to extract constraints from closures\n const checkStr = check.toString();\n\n if (checkStr.includes('>=') || checkStr.includes('min')) {\n result.minimum = 0; // Default, actual value is in closure\n }\n if (checkStr.includes('<=') || checkStr.includes('max')) {\n result.maximum = 0; // Default, actual value is in closure\n }\n if (checkStr.includes('isInteger') || checkStr.includes('int')) {\n result.type = 'integer';\n }\n if (checkStr.includes('isSafeInteger')) {\n result.type = 'integer';\n }\n if (checkStr.includes('Number.isFinite')) {\n // Finite constraint\n }\n }\n\n return result;\n}\n\n/**\n * Build array JSON Schema\n */\nfunction buildArraySchema(schema: any, options: ToJSONSchemaOptions): JSONSchemaDefinition {\n const inner = schema._item || schema._inner;\n if (inner) {\n return {\n type: 'array',\n items: toJSONSchema(inner, options)\n };\n }\n return { type: 'array' };\n}\n\n/**\n * Build object JSON Schema\n */\nfunction buildObjectSchema(schema: any, options: ToJSONSchemaOptions): JSONSchemaDefinition {\n const shape = schema._shape || schema.shape;\n if (!shape) return { type: 'object' };\n\n const properties: Record<string, JSONSchemaDefinition> = {};\n const required: string[] = [];\n\n for (const [key, value] of Object.entries(shape)) {\n properties[key] = toJSONSchema(value as VldBase<unknown, unknown>, options);\n // VLD objects require all keys by default\n if (schema._strict !== false) {\n required.push(key);\n }\n }\n\n const result: JSONSchemaDefinition = {\n type: 'object',\n properties\n };\n\n if (required.length > 0) {\n result.required = required;\n }\n\n // Handle passthrough mode\n if (schema._passthrough || schema._loose) {\n result.additionalProperties = true;\n } else if (schema._strict) {\n result.additionalProperties = false;\n }\n\n return result;\n}\n\n/**\n * Build union JSON Schema\n */\nfunction buildUnionSchema(schema: any, options: ToJSONSchemaOptions): JSONSchemaDefinition {\n const validators = schema._validators || schema._options || [];\n return {\n anyOf: validators.map((v: VldBase<unknown, unknown>) => toJSONSchema(v, options))\n };\n}\n\n/**\n * Build literal JSON Schema\n */\nfunction buildLiteralSchema(schema: any): JSONSchemaDefinition {\n const value = schema._value || schema.value;\n if (value === null) return { type: 'null' };\n if (typeof value === 'string') return { type: 'string', const: value };\n if (typeof value === 'number') return { type: 'number', const: value };\n if (typeof value === 'boolean') return { type: 'boolean', const: value };\n return { const: value };\n}\n\n/**\n * Build enum JSON Schema\n */\nfunction buildEnumSchema(schema: any): JSONSchemaDefinition {\n const values = schema._values || schema.values;\n if (Array.isArray(values)) {\n return { enum: [...values] };\n }\n return {};\n}\n\n/**\n * Build record JSON Schema\n */\nfunction buildRecordSchema(schema: any, options: ToJSONSchemaOptions): JSONSchemaDefinition {\n const valueValidator = schema._value || schema._inner;\n if (valueValidator) {\n return {\n type: 'object',\n additionalProperties: toJSONSchema(valueValidator, options)\n };\n }\n return { type: 'object' };\n}\n\n/**\n * Build tuple JSON Schema\n */\nfunction buildTupleSchema(schema: any, options: ToJSONSchemaOptions): JSONSchemaDefinition {\n const items = schema._items || schema.items;\n if (!items || !Array.isArray(items)) {\n return { type: 'array' };\n }\n\n return {\n type: 'array',\n items: items.map((item: VldBase<unknown, unknown>) => toJSONSchema(item, options)),\n minItems: items.length,\n maxItems: items.length\n };\n}\n\n/**\n * Build intersection JSON Schema\n */\nfunction buildIntersectionSchema(schema: any, options: ToJSONSchemaOptions): JSONSchemaDefinition {\n const first = schema._first || schema.first;\n const second = schema._second || schema.second;\n\n const schemas: JSONSchemaDefinition[] = [];\n if (first) schemas.push(toJSONSchema(first, options));\n if (second) schemas.push(toJSONSchema(second, options));\n\n if (schemas.length === 0) return {};\n if (schemas.length === 1) return schemas[0];\n\n return { allOf: schemas };\n}\n\n/**\n * Build optional JSON Schema\n */\nfunction buildOptionalSchema(schema: any, options: ToJSONSchemaOptions): JSONSchemaDefinition {\n const inner = schema._inner || schema._baseValidator;\n if (!inner) return {};\n\n const result = toJSONSchema(inner, options);\n // Remove from required array - but we don't track required here\n return result;\n}\n\n/**\n * Build nullable JSON Schema\n */\nfunction buildNullableSchema(schema: any, options: ToJSONSchemaOptions): JSONSchemaDefinition {\n const inner = schema._inner || schema._baseValidator;\n if (!inner) return { type: 'null' };\n\n const result = toJSONSchema(inner, options);\n if (typeof result.type === 'string') {\n return { type: [result.type, 'null'] };\n } else if (Array.isArray(result.type)) {\n result.type.push('null');\n return result;\n }\n\n return {\n anyOf: [result, { type: 'null' }]\n };\n}\n\n/**\n * Build nullish JSON Schema\n */\nfunction buildNullishSchema(schema: any, options: ToJSONSchemaOptions): JSONSchemaDefinition {\n const inner = schema._inner || schema._baseValidator;\n if (!inner) return {};\n\n return toJSONSchema(inner, options);\n}\n\n/**\n * Build exactOptional JSON Schema\n */\nfunction buildExactOptionalSchema(schema: any, options: ToJSONSchemaOptions): JSONSchemaDefinition {\n const inner = schema._inner || schema._baseValidator;\n if (!inner) return {};\n\n return toJSONSchema(inner, options);\n}\n\n/**\n * Internal function to convert JSON Schema to VLD schema\n */\nfunction jsonSchemaToVLD(json: JSONSchemaDefinition): VldBase<unknown, unknown> {\n // This is a simplified implementation\n // Full implementation would recursively handle all JSON Schema types\n\n const VldString = require('../validators/string').VldString;\n const VldNumber = require('../validators/number').VldNumber;\n const VldBoolean = require('../validators/boolean').VldBoolean;\n const VldObject = require('../validators/object').VldObject;\n const VldArray = require('../validators/array').VldArray;\n const VldUnion = require('../validators/union').VldUnion;\n const VldLiteral = require('../validators/literal').VldLiteral;\n const VldEnum = require('../validators/enum').VldEnum;\n const VldNull = require('../validators/null').VldNull;\n const VldAny = require('../validators/any').VldAny;\n const VldRecord = require('../validators/record').VldRecord;\n\n // Handle $ref\n if (json.$ref) {\n // For now, return any - full $ref handling requires registry\n return VldAny.create();\n }\n\n // Handle anyOf/oneOf (union)\n if (json.anyOf || json.oneOf) {\n const options = (json.anyOf || json.oneOf)!\n .map((s) => jsonSchemaToVLD(s))\n .filter(Boolean);\n if (options.length > 0) {\n return VldUnion.create(...options);\n }\n }\n\n // Handle allOf (intersection)\n if (json.allOf) {\n // For intersection, we'd need VldIntersection\n const first = jsonSchemaToVLD(json.allOf[0]);\n if (json.allOf.length > 1) {\n const second = jsonSchemaToVLD({ allOf: json.allOf.slice(1) });\n const VldIntersection = require('../validators/intersection').VldIntersection;\n return VldIntersection.create(first as any, second as any);\n }\n return first;\n }\n\n // Handle not\n if (json.not) {\n // For negation, we need special handling\n return VldAny.create();\n }\n\n // Handle const\n if (json.const !== undefined) {\n return VldLiteral.create(json.const);\n }\n\n // Handle enum\n if (json.enum) {\n return VldEnum.create(json.enum as any);\n }\n\n // Handle type\n const type = json.type;\n\n if (type === 'string' || type === undefined) {\n const s = VldString.create();\n if (json.minLength) s.minLength = json.minLength;\n if (json.maxLength) s.maxLength = json.maxLength;\n if (json.pattern) s.pattern = json.pattern;\n if (json.format) {\n // Map JSON Schema formats to VLD validators\n switch (json.format) {\n case 'date-time':\n case 'date':\n case 'time':\n // Would need DateTime validator\n break;\n case 'email':\n const email = require('../validators/string-formats').email;\n return email();\n case 'uri':\n case 'uri-reference':\n const httpUrl = require('../validators/string-formats').httpUrl;\n return httpUrl();\n case 'uuid':\n const uuid = require('../validators/string-formats').uuid;\n return uuid();\n default:\n break;\n }\n }\n return s;\n }\n\n if (type === 'number' || type === 'integer') {\n const n = VldNumber.create();\n if (type === 'integer') n.int();\n if (json.minimum !== undefined) n.min(json.minimum);\n if (json.maximum !== undefined) n.max(json.maximum);\n if (json.exclusiveMinimum !== undefined) n.gt(json.exclusiveMinimum);\n if (json.exclusiveMaximum !== undefined) n.lt(json.exclusiveMaximum);\n if (json.multipleOf !== undefined) n.multipleOf(json.multipleOf);\n return n;\n }\n\n if (type === 'boolean') {\n return VldBoolean.create();\n }\n\n if (type === 'array') {\n if (json.items && !Array.isArray(json.items)) {\n return VldArray.create(jsonSchemaToVLD(json.items));\n }\n return VldArray.create(VldAny.create());\n }\n\n if (type === 'object') {\n if (json.properties) {\n const shape: Record<string, VldBase<unknown, unknown>> = {};\n const required = json.required || [];\n\n for (const [key, propSchema] of Object.entries(json.properties)) {\n shape[key] = jsonSchemaToVLD(propSchema as JSONSchemaDefinition);\n }\n\n let obj = VldObject.create(shape);\n\n if (!required.length) {\n // If no required fields, make all optional\n for (const key of Object.keys(shape)) {\n if (!required.includes(key)) {\n // The field is already optional in VLD object creation\n }\n }\n }\n\n if (json.additionalProperties === false) {\n obj = obj.strict();\n } else if (json.additionalProperties === true) {\n obj = obj.passthrough();\n } else if (json.additionalProperties) {\n // additionalProperties is a schema\n const valueSchema = jsonSchemaToVLD(json.additionalProperties as JSONSchemaDefinition);\n obj = VldRecord.create(valueSchema);\n }\n\n return obj;\n }\n // Empty object schema\n return VldObject.create({});\n }\n\n if (type === 'null') {\n return VldNull.create();\n }\n\n if (Array.isArray(type)) {\n // Union of types\n const options = type.map((t) => {\n return jsonSchemaToVLD({ ...json, type: t });\n });\n if (options.length > 0) {\n return VldUnion.create(...options);\n }\n }\n\n // Fallback to any\n return VldAny.create();\n}","/**\r\n * VLD - Fast, Type-Safe Validation Library\r\n * Zero dependencies, blazing fast performance\r\n *\r\n * This is the new modular implementation with:\r\n * - Immutable validators (no memory leaks)\r\n * - Secure deepMerge (no prototype pollution)\r\n * - TypeScript strict mode support\r\n * - Better performance through pooling and memoization\r\n * - Plugin system for extensibility\r\n * - Event system for validation lifecycle hooks\r\n * - Result pattern for functional error handling\r\n * - Colored console output for better debugging\r\n * - Debug logging system\r\n */\r\n\r\n// Import base class\r\nimport { VldBase } from './validators/base';\r\n\r\n// Import validators\r\nimport { VldString } from './validators/string';\r\nimport { VldNumber } from './validators/number';\r\nimport { VldBoolean } from './validators/boolean';\r\nimport { VldDate } from './validators/date';\r\nimport { VldStringBool } from './validators/string-bool';\r\nimport { VldArray } from './validators/array';\r\nimport { VldObject } from './validators/object';\r\nimport { VldUnion } from './validators/union';\r\nimport { VldLiteral } from './validators/literal';\r\nimport { VldBigInt } from './validators/bigint';\r\nimport { VldSymbol } from './validators/symbol';\r\nimport { VldTuple } from './validators/tuple';\r\nimport { VldRecord } from './validators/record';\r\nimport { VldSet } from './validators/set';\r\nimport { VldMap } from './validators/map';\r\nimport { VldEnum } from './validators/enum';\r\nimport { VldIntersection } from './validators/intersection';\r\nimport { VldAny } from './validators/any';\r\nimport { VldUnknown } from './validators/unknown';\r\nimport { VldVoid } from './validators/void';\r\nimport { VldNever } from './validators/never';\r\nimport { VldNull } from './validators/null';\r\nimport { VldUndefined } from './validators/undefined';\r\nimport { VldNan } from './validators/nan';\r\nimport { VldLazy } from './validators/lazy';\r\nimport { VldDiscriminatedUnion } from './validators/discriminated-union';\r\nimport { VldXor } from './validators/xor';\r\nimport { VldJson } from './validators/json';\r\nimport { templateLiteral } from './validators/template-literal';\r\nimport { custom as customFn, type CustomValidatorOptions } from './validators/custom';\r\nimport { file as fileFn } from './validators/file';\r\nimport { functionValidator as functionFn } from './validators/function';\r\nimport { VldPreprocess } from './validators/base';\r\nimport { VldOptional } from './validators/base';\r\nimport { VldExactOptional } from './validators/base';\r\nimport { VldNullable } from './validators/base';\r\nimport { VldNullish } from './validators/base';\r\nimport { VldCodec } from './validators/codec';\r\nimport { VldBase64 } from './validators/base64';\r\nimport { VldHex } from './validators/hex';\r\nimport { VldUint8Array } from './validators/uint8array';\r\nimport { promise as vldPromise } from './validators/promise';\r\n\r\n// Import coercion validators\r\nimport { VldCoerceString } from './coercion/string';\r\nimport { VldCoerceNumber } from './coercion/number';\r\nimport { VldCoerceBoolean } from './coercion/boolean';\r\nimport { VldCoerceDate } from './coercion/date';\r\nimport { VldCoerceBigInt } from './coercion/bigint';\r\n\r\n// Import string format validators\r\nimport * as stringFormats from './validators/string-formats';\r\n\r\n// Re-export types\r\nexport type { ParseResult } from './validators/base';\r\nexport type { Infer, Input, Output } from './validators';\r\n\r\n// Re-export base classes for extension\r\nexport { VldBase } from './validators/base';\r\nexport { VldIntersection } from './validators/intersection';\r\nexport { VldMeta, type SchemaMetadata } from './validators/base';\r\n\r\n// Re-export locale functionality\r\nexport { setLocale, getLocale, getMessages, type Locale } from './locales';\r\n\r\n// Re-export error formatting utilities\r\nexport {\r\n VldError,\r\n VldIssue,\r\n VldErrorCode,\r\n VldErrorTree,\r\n VldFlattenedError,\r\n VldErrorJSON,\r\n treeifyError,\r\n prettifyError,\r\n prettifyErrorColored,\r\n prettifyErrorPlain,\r\n flattenError,\r\n type PrettifyOptions\r\n} from './errors';\r\n\r\n// Re-export codec utilities\r\nexport { \r\n base64ToUint8Array,\r\n uint8ArrayToBase64,\r\n uint8ArrayToBase64Url,\r\n hexToUint8Array,\r\n uint8ArrayToHex,\r\n stringToUint8Array,\r\n uint8ArrayToString\r\n} from './utils/codec-utils';\r\n\r\n// Re-export codec types\r\nexport type { CodecTransform } from './validators/codec';\r\n\r\n// Re-export predefined codecs\r\nexport {\r\n // String conversion codecs\r\n stringToNumber,\r\n stringToInt,\r\n stringToBigInt,\r\n numberToBigInt,\r\n stringToBoolean,\r\n \r\n // Date conversion codecs \r\n isoDatetimeToDate,\r\n epochSecondsToDate,\r\n epochMillisToDate,\r\n \r\n // JSON codec\r\n jsonCodec,\r\n \r\n // URL codecs\r\n stringToURL,\r\n stringToHttpURL,\r\n uriComponent,\r\n \r\n // Byte conversion codecs\r\n base64ToBytes,\r\n base64UrlToBytes,\r\n base64urlToBytes,\r\n hexToBytes,\r\n hexLowerToBytes,\r\n utf8ToBytes,\r\n bytesToUtf8,\r\n \r\n // Complex codecs\r\n base64Json,\r\n jwtPayload\r\n} from './codecs';\r\n\r\n/**\r\n * Main API object with factory methods for all validators\r\n */\r\nexport const v = {\r\n // Primitive validators\r\n string: () => VldString.create(),\r\n number: () => VldNumber.create(),\r\n int: () => VldNumber.create().int(),\r\n int32: () => VldNumber.create().int().min(-2147483648).max(2147483647),\r\n uint32: () => VldNumber.create().uint32(),\r\n uint64: () => VldNumber.create().uint64(),\r\n int64: () => VldNumber.create().int64(),\r\n float32: () => VldNumber.create().float32(),\r\n float64: () => VldNumber.create().float64(),\r\n boolean: () => VldBoolean.create(),\r\n date: () => VldDate.create(),\r\n bigint: () => VldBigInt.create(),\r\n symbol: () => VldSymbol.create(),\r\n stringbool: (options?: { truthy?: readonly string[]; falsy?: readonly string[]; caseSensitive?: boolean }) =>\r\n VldStringBool.create(options),\r\n \r\n // Complex validators\r\n array: <T>(item: VldBase<unknown, T>) => VldArray.create(item),\r\n object: <T extends Record<string, any>>(shape: { [K in keyof T]: VldBase<unknown, T[K]> }) =>\r\n VldObject.create(shape),\r\n strictObject: <T extends Record<string, any>>(shape: { [K in keyof T]: VldBase<unknown, T[K]> }) =>\r\n VldObject.create(shape).strict(),\r\n looseObject: <T extends Record<string, any>>(shape: { [K in keyof T]: VldBase<unknown, T[K]> }) =>\r\n VldObject.create(shape).passthrough(),\r\n tuple: <T extends readonly VldBase<any, any>[]>(...items: T) => VldTuple.create(...items),\r\n record: <T>(value: VldBase<unknown, T>) => VldRecord.create(value),\r\n partialRecord: <T>(value: VldBase<unknown, T>) => VldRecord.create(value).partial(),\r\n looseRecord: <T>(value: VldBase<unknown, T>) => VldRecord.create(value).loose(),\r\n set: <T>(item: VldBase<unknown, T>) => VldSet.create(item),\r\n map: <K, V>(key: VldBase<unknown, K>, value: VldBase<unknown, V>) => VldMap.create(key, value),\r\n \r\n // Union and intersection\r\n union: <T extends readonly VldBase<any, any>[]>(...validators: T) =>\r\n VldUnion.create(...validators),\r\n intersection: <A, B>(first: VldBase<unknown, A>, second: VldBase<unknown, B>) =>\r\n VldIntersection.create(first, second),\r\n discriminatedUnion: <K extends string, T extends readonly VldBase<any, any>[]>(\r\n discriminator: K,\r\n ...options: T\r\n ) => VldDiscriminatedUnion.create(discriminator, [...options] as any),\r\n xor: <T extends readonly VldBase<any, any>[]>(...options: T) =>\r\n VldXor.create([...options] as any),\r\n \r\n // Literal and enum\r\n literal: <T extends string | number | boolean | null | undefined>(value: T) => \r\n VldLiteral.create(value),\r\n enum: <T extends readonly [string, ...string[]]>(...values: T) => VldEnum.create(values as any),\r\n \r\n // Special validators\r\n any: () => VldAny.create(),\r\n unknown: () => VldUnknown.create(),\r\n void: () => VldVoid.create(),\r\n never: () => VldNever.create(),\r\n null: () => VldNull.create(),\r\n undefined: () => VldUndefined.create(),\r\n nan: () => VldNan.create(),\r\n\r\n // NEVER constant - Zod 4 API parity for use in transforms\r\n NEVER: VldNever.create(),\r\n \r\n // Utility validators\r\n optional: <T>(validator: VldBase<unknown, T>) => VldOptional.create(validator),\r\n nullable: <T>(validator: VldBase<unknown, T>) => VldNullable.create(validator),\r\n nullish: <T>(validator: VldBase<unknown, T>) => VldNullish.create(validator),\r\n exactOptional: <T>(validator: VldBase<unknown, T>) => VldExactOptional.create(validator),\r\n\r\n // Recursive schemas\r\n lazy: <T>(schemaGetter: () => VldBase<unknown, T>) => VldLazy.create(schemaGetter),\r\n\r\n // JSON validator\r\n json: <T = unknown>(schema?: VldBase<unknown, T>) => VldJson.create(schema),\r\n\r\n // Custom validator for type-safe user-defined schemas\r\n custom: <TOutput = unknown>(\r\n options: CustomValidatorOptions<TOutput>\r\n ) => customFn<TOutput>(options),\r\n\r\n // File validator for file uploads\r\n file: () => fileFn(),\r\n\r\n // Function validator for function validation\r\n function: () => functionFn(),\r\n\r\n // Preprocessing\r\n preprocess: <TInput, TOutput>(\r\n preprocessor: (input: unknown) => unknown,\r\n schema: VldBase<TInput, TOutput>\r\n ) => VldPreprocess.create(preprocessor, schema),\r\n\r\n // Coercion API\r\n coerce: {\r\n string: () => VldCoerceString.create(),\r\n number: () => VldCoerceNumber.create(),\r\n boolean: () => VldCoerceBoolean.create(),\r\n date: () => VldCoerceDate.create(),\r\n bigint: () => VldCoerceBigInt.create(),\r\n },\r\n\r\n // String format validators (Zod 4 parity)\r\n email: (options?: { pattern?: RegExp }) => stringFormats.email(options),\r\n uuid: (options?: { version?: 'v4' | 'v6' | 'v7' }) => stringFormats.uuid(options),\r\n uuidv4: () => stringFormats.uuidv4(),\r\n hostname: () => stringFormats.hostname(),\r\n emoji: () => stringFormats.emoji(),\r\n base64: () => stringFormats.base64(),\r\n base64url: () => stringFormats.base64url(),\r\n hex: () => stringFormats.hex(),\r\n jwt: () => stringFormats.jwt(),\r\n nanoid: () => stringFormats.nanoid(),\r\n cuid: () => stringFormats.cuid(),\r\n cuid2: () => stringFormats.cuid2(),\r\n ulid: () => stringFormats.ulid(),\r\n ipv4: () => stringFormats.ipv4(),\r\n ipv6: () => stringFormats.ipv6(),\r\n mac: () => stringFormats.mac(),\r\n cidrv4: () => stringFormats.cidrv4(),\r\n cidrv6: () => stringFormats.cidrv6(),\r\n e164: () => stringFormats.e164(),\r\n hash: (algorithm: 'md5' | 'sha1' | 'sha256' | 'sha384' | 'sha512') =>\r\n stringFormats.hash(algorithm),\r\n iso: {\r\n date: () => stringFormats.iso.date(),\r\n time: () => stringFormats.iso.time(),\r\n dateTime: () => stringFormats.iso.dateTime(),\r\n duration: () => stringFormats.iso.duration(),\r\n },\r\n stringFormat: (name: string, validator: ((val: string) => boolean) | RegExp) =>\r\n stringFormats.stringFormat(name, validator),\r\n\r\n // Zod v4 parity string formats\r\n xid: () => stringFormats.xid(),\r\n guid: () => stringFormats.guid(),\r\n httpUrl: () => stringFormats.httpUrl(),\r\n\r\n // Template literal validator\r\n templateLiteral: (...components: (VldBase<any, any> | string)[]) => templateLiteral(...components),\r\n\r\n // Codec validators (binary data validators)\r\n base64Bytes: () => VldBase64.create(),\r\n hexBytes: () => VldHex.create(),\r\n uint8Array: () => VldUint8Array.create(),\r\n \r\n // Codec factory\r\n codec: <TInput, TOutput>(\r\n inputValidator: VldBase<unknown, TInput>,\r\n outputValidator: VldBase<unknown, TOutput>,\r\n transform: {\r\n decode: (value: TInput) => TOutput | Promise<TOutput>;\r\n encode: (value: TOutput) => TInput | Promise<TInput>;\r\n }\r\n ) => VldCodec.create(inputValidator, outputValidator, transform),\r\n\r\n // Promise validator (Zod v4 parity)\r\n promise: <T>(inner: VldBase<unknown, T>) => vldPromise(inner)\r\n};\r\n\r\n// ============================================\r\n// Result Pattern (v1.5+ features)\r\n// ============================================\r\n\r\nexport type { Result, VldResult } from './compat/result';\r\n\r\nexport {\r\n Ok,\r\n Err,\r\n success,\r\n failure,\r\n isOk,\r\n isErr,\r\n isResult,\r\n unwrap,\r\n unwrapOr,\r\n map,\r\n mapErr,\r\n flatMap,\r\n match,\r\n tryCatch,\r\n tryCatchAsync,\r\n all,\r\n fromNullable,\r\n ResultUtils\r\n} from './compat/result';\r\n\r\n// ============================================\r\n// Event Emitter (v1.5+ features)\r\n// ============================================\r\n\r\nexport {\r\n // Types\r\n type EventMap,\r\n type EventHandler,\r\n type ListenerOptions,\r\n type Emitter,\r\n // Factory functions\r\n createEmitter,\r\n createEventBus,\r\n withEmitter\r\n} from './compat/emitter';\r\n\r\n// ============================================\r\n// VLD Events (v1.5+ features)\r\n// ============================================\r\n\r\nexport type {\r\n VldEvents,\r\n VldEventPayload,\r\n ParseStartEvent,\r\n ParseSuccessEvent,\r\n ParseErrorEvent,\r\n FieldValidationEvent,\r\n TransformEvent,\r\n PluginRegisteredEvent,\r\n LocaleChangedEvent,\r\n DebugEvent,\r\n MetricsEvent\r\n} from './events';\r\n\r\n// ============================================\r\n// Plugin System (v1.5+ features)\r\n// ============================================\r\n\r\nexport {\r\n // Kernel\r\n createVldKernel,\r\n getVldKernel,\r\n resetVldKernel,\r\n usePlugin,\r\n definePlugin,\r\n // Types\r\n type VldContext,\r\n type VldPlugin,\r\n type VldKernelInstance,\r\n type VldKernelOptions,\r\n type ValidatorFactory,\r\n type TransformFactory,\r\n type CodecFactory,\r\n type HookContext,\r\n type PluginBuilder,\r\n type PluginMeta,\r\n type PluginHooks\r\n} from './kernel';\r\n\r\n// ============================================\r\n// Logger (v1.5+ features)\r\n// ============================================\r\n\r\nexport {\r\n // Logger\r\n createLogger,\r\n initLogger,\r\n getLogger,\r\n setLogLevel,\r\n enableDebug,\r\n disableLogging,\r\n createNoOpLogger,\r\n // Types\r\n type Logger,\r\n type LoggerOptions,\r\n type LogLevel,\r\n type LogEntry,\r\n type LogHandler\r\n} from './logger';\r\n\r\n// ============================================\r\n// Pigment - Colored Output (v1.5+ features)\r\n// ============================================\r\n\r\nexport {\r\n pigment,\r\n supportsColor,\r\n bold,\r\n dim,\r\n italic,\r\n underline,\r\n red,\r\n green,\r\n yellow,\r\n blue,\r\n magenta,\r\n cyan,\r\n white,\r\n gray,\r\n grey,\r\n strip,\r\n vldTheme,\r\n createTheme,\r\n type Theme\r\n} from './pigment';\r\n\r\n// ============================================\r\n// JSON Schema Support (v2.1+ features)\r\n// ============================================\r\n\r\nexport {\r\n toJSONSchema,\r\n fromJSONSchema,\r\n type JSONSchemaDefinition,\r\n type ToJSONSchemaOptions\r\n} from './utils/json-schema';\r\n\r\n// For backward compatibility during migration\r\nexport default v;"],"names":["customFn","fileFn","functionFn","stringFormats.email","stringFormats.uuid","stringFormats.uuidv4","stringFormats.hostname","stringFormats.emoji","stringFormats.base64","stringFormats.base64url","stringFormats.hex","stringFormats.jwt","stringFormats.nanoid","stringFormats.cuid","stringFormats.cuid2","stringFormats.ulid","stringFormats.ipv4","stringFormats.ipv6","stringFormats.mac","stringFormats.cidrv4","stringFormats.cidrv6","stringFormats.e164","stringFormats.hash","stringFormats.iso","stringFormats.stringFormat","stringFormats.xid","stringFormats.guid","stringFormats.httpUrl","vldPromise"],"mappings":";;;;;;;;;;;;;;;AAAA;;;;;AAKG;AAOH;;AAEG;AACH,MAAM,kBAAkB,GAA6B;AACnD,IAAA,KAAK,EAAE,CAAC;AACR,IAAA,IAAI,EAAE,CAAC;AACP,IAAA,IAAI,EAAE,CAAC;AACP,IAAA,KAAK,EAAE,CAAC;AACR,IAAA,MAAM,EAAE;CACT;AAwDD;;AAEG;AACH,MAAM,MAAM,GAAG;AACb,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,GAAG,EAAE,SAAS;AACd,IAAA,GAAG,EAAE,UAAU;AACf,IAAA,MAAM,EAAE,UAAU;AAClB,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,IAAI,EAAE;CACP;AAED;;AAEG;AACH,MAAM,YAAY,GAAgD;IAChE,KAAK,EAAE,MAAM,CAAC,IAAI;IAClB,IAAI,EAAE,MAAM,CAAC,IAAI;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;AAEG;AACH,MAAM,YAAY,GAAgD;AAChE,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,KAAK,EAAE;CACR;AAED;;AAEG;AACH,SAAS,oBAAoB,CAAC,OAAsB,EAAA;AAClD,IAAA,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI;AACvC,IAAA,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,IAAI;IAE7C,OAAO,CAAC,KAAe,KAAI;QACzB,MAAM,KAAK,GAAa,EAAE;;QAG1B,IAAI,UAAU,EAAE;AACd,YAAA,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;YACxD,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAA,EAAG,MAAM,CAAC,GAAG,GAAG,IAAI,CAAA,EAAG,MAAM,CAAC,KAAK,CAAA,CAAE,GAAG,IAAI,CAAC;QACpE;;QAGA,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,KAAoC,CAAC;QAC3E,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,KAAoC,CAAC;QAC3E,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,GAAG,UAAU,CAAA,EAAG,UAAU,CAAA,EAAG,MAAM,CAAC,KAAK,CAAA,CAAE,GAAG,UAAU,CAAC;;AAG9E,QAAA,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAA,EAAG,MAAM,CAAC,IAAI,CAAA,CAAA,EAAI,KAAK,CAAC,IAAI,CAAA,CAAA,EAAI,MAAM,CAAC,KAAK,CAAA,CAAE,GAAG,CAAA,CAAA,EAAI,KAAK,CAAC,IAAI,CAAA,CAAA,CAAG,CAAC;;AAGxF,QAAA,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;;QAGzB,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;;AAG9B,QAAA,QAAQ,KAAK,CAAC,KAAK;AACjB,YAAA,KAAK,OAAO;gBACV,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,KAAK,SAAS,GAAG,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC;gBACjE;AACF,YAAA,KAAK,MAAM;gBACT,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,KAAK,SAAS,GAAG,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC;gBAChE;AACF,YAAA,KAAK,MAAM;gBACT,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,KAAK,SAAS,GAAG,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC;gBAChE;AACF,YAAA,KAAK,OAAO;gBACV,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,KAAK,SAAS,GAAG,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC;gBACjE;;AAEN,IAAA,CAAC;AACH;AAEA;;AAEG;AACG,SAAU,YAAY,CAAC,OAAA,GAAyB,EAAE,EAAA;AACtD,IAAA,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,KAAK;AAClC,IAAA,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,MAAM;IACnC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,oBAAoB,CAAC,OAAO,CAAC;IAEhE,MAAM,GAAG,GAAG,CAAC,QAAqC,EAAE,OAAe,EAAE,IAAc,KAAU;QAC3F,IAAI,kBAAkB,CAAC,QAAQ,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,EAAE;YAC5D;QACF;AAEA,QAAA,MAAM,KAAK,GAAa;AACtB,YAAA,KAAK,EAAE,QAAQ;YACf,OAAO;YACP,IAAI;YACJ,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB;SACD;QAED,OAAO,CAAC,KAAK,CAAC;AAChB,IAAA,CAAC;AAED,IAAA,MAAM,MAAM,GAAW;AACrB,QAAA,KAAK,EAAE,CAAC,OAAO,EAAE,IAAI,KAAK,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC;AACrD,QAAA,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,KAAK,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC;AACnD,QAAA,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,KAAK,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC;AACnD,QAAA,KAAK,EAAE,CAAC,OAAO,EAAE,IAAI,KAAK,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC;AAErD,QAAA,cAAc,EAAE,CAAC,UAAU,KACzB,kBAAkB,CAAC,UAAU,CAAC,IAAI,kBAAkB,CAAC,KAAK,CAAC;AAE7D,QAAA,QAAQ,EAAE,CAAC,QAAQ,KAAI;YACrB,KAAK,GAAG,QAAQ;QAClB,CAAC;AAED,QAAA,QAAQ,EAAE,MAAM,KAAK;AAErB,QAAA,KAAK,EAAE,CAAC,SAAS,KACf,YAAY,CAAC;AACX,YAAA,GAAG,OAAO;AACV,YAAA,IAAI,EAAE,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,SAAS,CAAA;SAC3B;KACJ;AAED,IAAA,OAAO,MAAM;AACf;AAEA;AACA;AACA;AAEA,IAAI,YAAY,GAAkB,IAAI;AAEtC;;AAEG;AACG,SAAU,UAAU,CAAC,OAAuB,EAAA;IAChD,YAAY,GAAG,YAAY,CAAC;AAC1B,QAAA,IAAI,EAAE,KAAK;AACX,QAAA,GAAG;AACJ,KAAA,CAAC;AACF,IAAA,OAAO,YAAY;AACrB;AAEA;;;AAGG;SACa,SAAS,GAAA;AACvB,IAAA,OAAO,YAAY;AACrB;AAEA;;AAEG;AACG,SAAU,WAAW,CAAC,KAAe,EAAA;IACzC,IAAI,YAAY,EAAE;AAChB,QAAA,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC;IAC9B;AACF;AAEA;;AAEG;SACa,WAAW,GAAA;IACzB,IAAI,CAAC,YAAY,EAAE;AACjB,QAAA,UAAU,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAChC;SAAO;AACL,QAAA,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC;IAChC;AACF;AAEA;;AAEG;SACa,cAAc,GAAA;IAC5B,IAAI,YAAY,EAAE;AAChB,QAAA,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC;IACjC;AACF;AAEA;;AAEG;SACa,gBAAgB,GAAA;IAC9B,OAAO,YAAY,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AAC1C;;AC1QA;;;AAGG;AAsDH;;;;;AAKG;SACa,YAAY,CAC1B,MAA2B,EAC3B,UAA+B,EAAE,EAAA;AAEjC,IAAA,OAAO,kBAAkB,CAAC,MAAmC,EAAE,OAAO,CAAC;AACzE;AAEA;;;;AAIG;AACG,SAAU,cAAc,CAAC,IAA0B,EAAA;AACvD,IAAA,OAAO,eAAe,CAAC,IAAI,CAAC;AAC9B;AAEA;;AAEG;AACH,SAAS,kBAAkB,CAAC,MAAiC,EAAE,OAA4B,EAAA;;IAIzF,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,WAAW,EAAE;AAC3C,QAAA,OAAO,iBAAiB,CAAO,CAAC;IAClC;IAEA,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,WAAW,EAAE;AAC3C,QAAA,OAAO,iBAAiB,CAAC,MAAc,CAAC;IAC1C;IAEA,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,YAAY,EAAE;AAC5C,QAAA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;IAC5B;IAEA,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,WAAW,EAAE;AAC3C,QAAA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;IAC5B;IAEA,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,SAAS,EAAE;QACzC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE;IAChD;IAEA,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,UAAU,EAAE;AAC1C,QAAA,OAAO,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC;IAC1C;IAEA,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,WAAW,EAAE;AAC3C,QAAA,OAAO,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC;IAC3C;;IAGA,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,UAAU,EAAE;AAC1C,QAAA,OAAO,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC;IAC1C;;IAGA,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,YAAY,EAAE;AAC5C,QAAA,OAAO,kBAAkB,CAAC,MAAM,CAAC;IACnC;IAEA,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,SAAS,EAAE;AACzC,QAAA,OAAO,eAAe,CAAC,MAAM,CAAC;IAChC;IAEA,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,WAAW,EAAE;AAC3C,QAAA,OAAO,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC;IAC3C;IAEA,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,UAAU,EAAE;AAC1C,QAAA,OAAO,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC;IAC1C;IAEA,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,iBAAiB,EAAE;AACjD,QAAA,OAAO,uBAAuB,CAAC,MAAM,EAAE,OAAO,CAAC;IACjD;IAEA,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,aAAa,EAAE;AAC7C,QAAA,OAAO,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC;IAC7C;IAEA,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,aAAa,EAAE;AAC7C,QAAA,OAAO,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC;IAC7C;IAEA,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,YAAY,EAAE;AAC5C,QAAA,OAAO,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC;IAC5C;IAEA,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,kBAAkB,EAAE;AAClD,QAAA,OAAO,wBAAwB,CAAC,MAAM,EAAE,OAAO,CAAC;IAClD;IAEA,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,SAAS,EAAE;AACzC,QAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC5B;IAEA,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,SAAS,EAAE;QACzC,OAAO,EAAE,CAAC;IACZ;IAEA,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,QAAQ,EAAE;QACxC,OAAO,EAAE,CAAC;IACZ;IAEA,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,YAAY,EAAE;QAC5C,OAAO,EAAE,CAAC;IACZ;IAEA,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,UAAU,EAAE;AAC1C,QAAA,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;IACrB;IAEA,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,SAAS,EAAE;AACzC,QAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;IACzB;IAEA,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,cAAc,EAAE;AAC9C,QAAA,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;IACrB;IAEA,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,QAAQ,EAAE;QACxC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;IACrC;IAEA,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,SAAS,EAAE;AACzC,QAAA,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;IACrB;;IAGA,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,UAAU,EAAE;QAC1C,OAAO,kBAAkB,CAAE,MAAc,CAAC,aAAa,EAAE,OAAO,CAAC;IACnE;;IAGA,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,aAAa,EAAE;QAC7C,OAAO,kBAAkB,CAAE,MAAc,CAAC,aAAa,EAAE,OAAO,CAAC;IACnE;;IAGA,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,cAAc,EAAE;QAC9C,OAAO,kBAAkB,CAAE,MAAc,CAAC,MAAM,EAAE,OAAO,CAAC;IAC5D;;IAGA,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,SAAS,EAAE;QACzC,MAAM,UAAU,GAAG,MAAa;QAChC,MAAM,MAAM,GAAG,kBAAkB,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,CAAC;QACpE,IAAI,OAAO,CAAC,eAAe,KAAK,KAAK,IAAI,UAAU,CAAC,QAAQ,EAAE;AAC5D,YAAA,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ;YAChC,IAAI,IAAI,CAAC,KAAK;AAAE,gBAAA,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;YACzC,IAAI,IAAI,CAAC,WAAW;AAAE,gBAAA,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW;AAC3D,YAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,eAAe;AAAE,gBAAA,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;AAC7E,YAAA,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;AAAE,gBAAA,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO;YAC7D,IAAI,IAAI,CAAC,UAAU;AAAE,gBAAA,MAAM,CAAC,UAAU,GAAG,IAAI;YAC7C,IAAI,IAAI,CAAC,QAAQ;AAAE,gBAAA,MAAM,CAAC,QAAQ,GAAG,IAAI;YACzC,IAAI,IAAI,CAAC,SAAS;AAAE,gBAAA,MAAM,CAAC,SAAS,GAAG,IAAI;QAC7C;AACA,QAAA,OAAO,MAAM;IACf;;AAGA,IAAA,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,WAAW,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,gBAAgB,EAAE;AAC3F,QAAA,OAAO,kBAAkB,CAAE,MAAc,CAAC,MAAM,IAAK,MAAc,CAAC,cAAc,EAAE,OAAO,CAAC;IAC9F;;IAGA,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,SAAS,EAAE;AACzC,QAAA,OAAO,kBAAkB,CAAE,MAAc,CAAC,KAAK,IAAK,MAAc,CAAC,MAAM,EAAE,OAAO,CAAC;IACrF;;AAGA,IAAA,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,YAAY,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,UAAU,EAAE;AACtF,QAAA,OAAO,kBAAkB,CAAE,MAAc,CAAC,MAAM,IAAK,MAAc,CAAC,cAAc,EAAE,OAAO,CAAC;IAC9F;;IAGA,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,eAAe,EAAE;QAC/C,OAAO,kBAAkB,CAAE,MAAc,CAAC,OAAO,EAAE,OAAO,CAAC;IAC7D;;IAGA,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,iBAAiB,EAAE;QACjD,MAAM,YAAY,GAAG,MAAa;QAClC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,OAAO,EAAE;IACzD;;AAGA,IAAA,OAAO,EAAE;AACX;AAEA;;AAEG;AACH,SAAS,iBAAiB,CAAC,OAAe,EAAA;AACxC,IAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC3B;AAEA;;AAEG;AACH,SAAS,iBAAiB,CAAC,MAAW,EAAE,OAAe,EAAA;AACrD,IAAA,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE;AAClC,IAAA,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE;AAElC,IAAA,MAAM,MAAM,GAAyB,EAAE,IAAI,EAAE,QAAQ,EAAE;AAEvD,IAAA,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;;AAE1B,QAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAE;AAEjC,QAAA,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AACvD,YAAA,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC;QACrB;AACA,QAAA,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AACvD,YAAA,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC;QACrB;AACA,QAAA,IAAI,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AAC9D,YAAA,MAAM,CAAC,IAAI,GAAG,SAAS;QACzB;AACA,QAAA,IAAI,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;AACtC,YAAA,MAAM,CAAC,IAAI,GAAG,SAAS;QACzB;AACA,QAAA,IAAI,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE;IAG5C;AAEA,IAAA,OAAO,MAAM;AACf;AAEA;;AAEG;AACH,SAAS,gBAAgB,CAAC,MAAW,EAAE,OAA4B,EAAA;IACjE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM;IAC3C,IAAI,KAAK,EAAE;QACT,OAAO;AACL,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO;SACnC;IACH;AACA,IAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE;AAC1B;AAEA;;AAEG;AACH,SAAS,iBAAiB,CAAC,MAAW,EAAE,OAA4B,EAAA;IAClE,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK;AAC3C,IAAA,IAAI,CAAC,KAAK;AAAE,QAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;IAErC,MAAM,UAAU,GAAyC,EAAE;IAC3D,MAAM,QAAQ,GAAa,EAAE;AAE7B,IAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QAChD,UAAU,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,KAAkC,EAAE,OAAO,CAAC;;AAE3E,QAAA,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,EAAE;AAC5B,YAAA,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;QACpB;IACF;AAEA,IAAA,MAAM,MAAM,GAAyB;AACnC,QAAA,IAAI,EAAE,QAAQ;QACd;KACD;AAED,IAAA,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AACvB,QAAA,MAAM,CAAC,QAAQ,GAAG,QAAQ;IAC5B;;IAGA,IAAI,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE;AACxC,QAAA,MAAM,CAAC,oBAAoB,GAAG,IAAI;IACpC;AAAO,SAAA,IAAI,MAAM,CAAC,OAAO,EAAE;AACzB,QAAA,MAAM,CAAC,oBAAoB,GAAG,KAAK;IACrC;AAEA,IAAA,OAAO,MAAM;AACf;AAEA;;AAEG;AACH,SAAS,gBAAgB,CAAC,MAAW,EAAE,OAA4B,EAAA;IACjE,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,QAAQ,IAAI,EAAE;IAC9D,OAAO;AACL,QAAA,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAA4B,KAAK,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC;KACjF;AACH;AAEA;;AAEG;AACH,SAAS,kBAAkB,CAAC,MAAW,EAAA;IACrC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK;IAC3C,IAAI,KAAK,KAAK,IAAI;AAAE,QAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;IAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE;IACtE,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE;IACtE,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE;AACxE,IAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE;AACzB;AAEA;;AAEG;AACH,SAAS,eAAe,CAAC,MAAW,EAAA;IAClC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM;AAC9C,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACzB,OAAO,EAAE,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE;IAC9B;AACA,IAAA,OAAO,EAAE;AACX;AAEA;;AAEG;AACH,SAAS,iBAAiB,CAAC,MAAW,EAAE,OAA4B,EAAA;IAClE,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM;IACrD,IAAI,cAAc,EAAE;QAClB,OAAO;AACL,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,oBAAoB,EAAE,YAAY,CAAC,cAAc,EAAE,OAAO;SAC3D;IACH;AACA,IAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC3B;AAEA;;AAEG;AACH,SAAS,gBAAgB,CAAC,MAAW,EAAE,OAA4B,EAAA;IACjE,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK;IAC3C,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACnC,QAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE;IAC1B;IAEA,OAAO;AACL,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAA+B,KAAK,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAClF,QAAQ,EAAE,KAAK,CAAC,MAAM;QACtB,QAAQ,EAAE,KAAK,CAAC;KACjB;AACH;AAEA;;AAEG;AACH,SAAS,uBAAuB,CAAC,MAAW,EAAE,OAA4B,EAAA;IACxE,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK;IAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM;IAE9C,MAAM,OAAO,GAA2B,EAAE;AAC1C,IAAA,IAAI,KAAK;QAAE,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACrD,IAAA,IAAI,MAAM;QAAE,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEvD,IAAA,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;AAAE,QAAA,OAAO,EAAE;AACnC,IAAA,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;AAAE,QAAA,OAAO,OAAO,CAAC,CAAC,CAAC;AAE3C,IAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;AAC3B;AAEA;;AAEG;AACH,SAAS,mBAAmB,CAAC,MAAW,EAAE,OAA4B,EAAA;IACpE,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,cAAc;AACpD,IAAA,IAAI,CAAC,KAAK;AAAE,QAAA,OAAO,EAAE;IAErB,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC;;AAE3C,IAAA,OAAO,MAAM;AACf;AAEA;;AAEG;AACH,SAAS,mBAAmB,CAAC,MAAW,EAAE,OAA4B,EAAA;IACpE,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,cAAc;AACpD,IAAA,IAAI,CAAC,KAAK;AAAE,QAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;IAEnC,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC;AAC3C,IAAA,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE;QACnC,OAAO,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE;IACxC;SAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;AACrC,QAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AACxB,QAAA,OAAO,MAAM;IACf;IAEA,OAAO;QACL,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;KACjC;AACH;AAEA;;AAEG;AACH,SAAS,kBAAkB,CAAC,MAAW,EAAE,OAA4B,EAAA;IACnE,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,cAAc;AACpD,IAAA,IAAI,CAAC,KAAK;AAAE,QAAA,OAAO,EAAE;AAErB,IAAA,OAAO,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC;AACrC;AAEA;;AAEG;AACH,SAAS,wBAAwB,CAAC,MAAW,EAAE,OAA4B,EAAA;IACzE,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,cAAc;AACpD,IAAA,IAAI,CAAC,KAAK;AAAE,QAAA,OAAO,EAAE;AAErB,IAAA,OAAO,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC;AACrC;AAEA;;AAEG;AACH,SAAS,eAAe,CAAC,IAA0B,EAAA;;;IAIjD,MAAM,SAAS,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC,SAAS;IAC3D,MAAM,SAAS,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC,SAAS;IAC3D,MAAM,UAAU,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC,UAAU;IAC9D,MAAM,SAAS,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC,SAAS;IAC3D,MAAM,QAAQ,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC,QAAQ;IACxD,MAAM,QAAQ,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC,QAAQ;IACxD,MAAM,UAAU,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC,UAAU;IAC9D,MAAM,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO;IACrD,MAAM,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO;IACrD,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC,MAAM;IAClD,MAAM,SAAS,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC,SAAS;;AAG3D,IAAA,IAAI,IAAI,CAAC,IAAI,EAAE;;AAEb,QAAA,OAAO,MAAM,CAAC,MAAM,EAAE;IACxB;;IAGA,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE;QAC5B,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK;aACtC,GAAG,CAAC,CAAC,CAAC,KAAK,eAAe,CAAC,CAAC,CAAC;aAC7B,MAAM,CAAC,OAAO,CAAC;AAClB,QAAA,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AACtB,YAAA,OAAO,QAAQ,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC;QACpC;IACF;;AAGA,IAAA,IAAI,IAAI,CAAC,KAAK,EAAE;;QAEd,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5C,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AACzB,YAAA,MAAM,MAAM,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9D,MAAM,eAAe,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC,eAAe;YAC7E,OAAO,eAAe,CAAC,MAAM,CAAC,KAAY,EAAE,MAAa,CAAC;QAC5D;AACA,QAAA,OAAO,KAAK;IACd;;AAGA,IAAA,IAAI,IAAI,CAAC,GAAG,EAAE;;AAEZ,QAAA,OAAO,MAAM,CAAC,MAAM,EAAE;IACxB;;AAGA,IAAA,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;QAC5B,OAAO,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;IACtC;;AAGA,IAAA,IAAI,IAAI,CAAC,IAAI,EAAE;QACb,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAW,CAAC;IACzC;;AAGA,IAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI;IAEtB,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,EAAE;AAC3C,QAAA,MAAM,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE;QAC5B,IAAI,IAAI,CAAC,SAAS;AAAE,YAAA,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;QAChD,IAAI,IAAI,CAAC,SAAS;AAAE,YAAA,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;QAChD,IAAI,IAAI,CAAC,OAAO;AAAE,YAAA,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO;AAC1C,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;;AAEf,YAAA,QAAQ,IAAI,CAAC,MAAM;AACjB,gBAAA,KAAK,WAAW;AAChB,gBAAA,KAAK,MAAM;AACX,gBAAA,KAAK,MAAM;;oBAET;AACF,gBAAA,KAAK,OAAO;oBACV,MAAM,KAAK,GAAG,OAAO,CAAC,8BAA8B,CAAC,CAAC,KAAK;oBAC3D,OAAO,KAAK,EAAE;AAChB,gBAAA,KAAK,KAAK;AACV,gBAAA,KAAK,eAAe;oBAClB,MAAM,OAAO,GAAG,OAAO,CAAC,8BAA8B,CAAC,CAAC,OAAO;oBAC/D,OAAO,OAAO,EAAE;AAClB,gBAAA,KAAK,MAAM;oBACT,MAAM,IAAI,GAAG,OAAO,CAAC,8BAA8B,CAAC,CAAC,IAAI;oBACzD,OAAO,IAAI,EAAE;;QAInB;AACA,QAAA,OAAO,CAAC;IACV;IAEA,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,EAAE;AAC3C,QAAA,MAAM,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE;QAC5B,IAAI,IAAI,KAAK,SAAS;YAAE,CAAC,CAAC,GAAG,EAAE;AAC/B,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;AAAE,YAAA,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;AACnD,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;AAAE,YAAA,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;AACnD,QAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS;AAAE,YAAA,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC;AACpE,QAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS;AAAE,YAAA,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC;AACpE,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;AAAE,YAAA,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;AAChE,QAAA,OAAO,CAAC;IACV;AAEA,IAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AACtB,QAAA,OAAO,UAAU,CAAC,MAAM,EAAE;IAC5B;AAEA,IAAA,IAAI,IAAI,KAAK,OAAO,EAAE;AACpB,QAAA,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAC5C,OAAO,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrD;QACA,OAAO,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IACzC;AAEA,IAAA,IAAI,IAAI,KAAK,QAAQ,EAAE;AACrB,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,MAAM,KAAK,GAA8C,EAAE;AAC3D,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,EAAE;AAEpC,YAAA,KAAK,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;gBAC/D,KAAK,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,UAAkC,CAAC;YAClE;YAEA,IAAI,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;AAEjC,YAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;;gBAEpB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;oBACpC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBAG/B;YACF;AAEA,YAAA,IAAI,IAAI,CAAC,oBAAoB,KAAK,KAAK,EAAE;AACvC,gBAAA,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE;YACpB;AAAO,iBAAA,IAAI,IAAI,CAAC,oBAAoB,KAAK,IAAI,EAAE;AAC7C,gBAAA,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE;YACzB;AAAO,iBAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE;;gBAEpC,MAAM,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC,oBAA4C,CAAC;AACtF,gBAAA,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC;YACrC;AAEA,YAAA,OAAO,GAAG;QACZ;;AAEA,QAAA,OAAO,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;IAC7B;AAEA,IAAA,IAAI,IAAI,KAAK,MAAM,EAAE;AACnB,QAAA,OAAO,OAAO,CAAC,MAAM,EAAE;IACzB;AAEA,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;;QAEvB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAI;YAC7B,OAAO,eAAe,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AAC9C,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AACtB,YAAA,OAAO,QAAQ,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC;QACpC;IACF;;AAGA,IAAA,OAAO,MAAM,CAAC,MAAM,EAAE;AACxB;;ACxoBA;;;;;;;;;;;;;;AAcG;AAKH;AAoIA;;AAEG;AACI,MAAM,CAAC,GAAG;;AAEf,IAAA,MAAM,EAAE,MAAM,SAAS,CAAC,MAAM,EAAE;AAChC,IAAA,MAAM,EAAE,MAAM,SAAS,CAAC,MAAM,EAAE;IAChC,GAAG,EAAE,MAAM,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACnC,KAAK,EAAE,MAAM,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC;IACtE,MAAM,EAAE,MAAM,SAAS,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE;IACzC,MAAM,EAAE,MAAM,SAAS,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE;IACzC,KAAK,EAAE,MAAM,SAAS,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE;IACvC,OAAO,EAAE,MAAM,SAAS,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;IAC3C,OAAO,EAAE,MAAM,SAAS,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;AAC3C,IAAA,OAAO,EAAE,MAAM,UAAU,CAAC,MAAM,EAAE;AAClC,IAAA,IAAI,EAAE,MAAM,OAAO,CAAC,MAAM,EAAE;AAC5B,IAAA,MAAM,EAAE,MAAM,SAAS,CAAC,MAAM,EAAE;AAChC,IAAA,MAAM,EAAE,MAAM,SAAS,CAAC,MAAM,EAAE;IAChC,UAAU,EAAE,CAAC,OAA4F,KACvG,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC;;IAG/B,KAAK,EAAE,CAAI,IAAyB,KAAK,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;IAC9D,MAAM,EAAE,CAAgC,KAAiD,KACvF,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;AACzB,IAAA,YAAY,EAAE,CAAgC,KAAiD,KAC7F,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE;AAClC,IAAA,WAAW,EAAE,CAAgC,KAAiD,KAC5F,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE;AACvC,IAAA,KAAK,EAAE,CAAyC,GAAG,KAAQ,KAAK,QAAQ,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;IACzF,MAAM,EAAE,CAAI,KAA0B,KAAK,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;AAClE,IAAA,aAAa,EAAE,CAAI,KAA0B,KAAK,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE;AACnF,IAAA,WAAW,EAAE,CAAI,KAA0B,KAAK,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE;IAC/E,GAAG,EAAE,CAAI,IAAyB,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;AAC1D,IAAA,GAAG,EAAE,CAAO,GAAwB,EAAE,KAA0B,KAAK,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC;;AAG9F,IAAA,KAAK,EAAE,CAAyC,GAAG,UAAa,KAC9D,QAAQ,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC;AAChC,IAAA,YAAY,EAAE,CAAO,KAA0B,EAAE,MAA2B,KAC1E,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC;AACvC,IAAA,kBAAkB,EAAE,CAClB,aAAgB,EAChB,GAAG,OAAU,KACV,qBAAqB,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,GAAG,OAAO,CAAQ,CAAC;AACrE,IAAA,GAAG,EAAE,CAAyC,GAAG,OAAU,KACzD,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAQ,CAAC;;IAGpC,OAAO,EAAE,CAAyD,KAAQ,KACxE,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC;AAC1B,IAAA,IAAI,EAAE,CAA2C,GAAG,MAAS,KAAK,OAAO,CAAC,MAAM,CAAC,MAAa,CAAC;;AAG/F,IAAA,GAAG,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE;AAC1B,IAAA,OAAO,EAAE,MAAM,UAAU,CAAC,MAAM,EAAE;AAClC,IAAA,IAAI,EAAE,MAAM,OAAO,CAAC,MAAM,EAAE;AAC5B,IAAA,KAAK,EAAE,MAAM,QAAQ,CAAC,MAAM,EAAE;AAC9B,IAAA,IAAI,EAAE,MAAM,OAAO,CAAC,MAAM,EAAE;AAC5B,IAAA,SAAS,EAAE,MAAM,YAAY,CAAC,MAAM,EAAE;AACtC,IAAA,GAAG,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE;;AAG1B,IAAA,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE;;IAGxB,QAAQ,EAAE,CAAI,SAA8B,KAAK,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC;IAC9E,QAAQ,EAAE,CAAI,SAA8B,KAAK,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC;IAC9E,OAAO,EAAE,CAAI,SAA8B,KAAK,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC;IAC5E,aAAa,EAAE,CAAI,SAA8B,KAAK,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC;;IAGxF,IAAI,EAAE,CAAI,YAAuC,KAAK,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC;;IAGlF,IAAI,EAAE,CAAc,MAA4B,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;;IAG3E,MAAM,EAAE,CACN,OAAwC,KACrCA,MAAQ,CAAU,OAAO,CAAC;;AAG/B,IAAA,IAAI,EAAE,MAAMC,IAAM,EAAE;;AAGpB,IAAA,QAAQ,EAAE,MAAMC,iBAAU,EAAE;;AAG5B,IAAA,UAAU,EAAE,CACV,YAAyC,EACzC,MAAgC,KAC7B,aAAa,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC;;AAG/C,IAAA,MAAM,EAAE;AACN,QAAA,MAAM,EAAE,MAAM,eAAe,CAAC,MAAM,EAAE;AACtC,QAAA,MAAM,EAAE,MAAM,eAAe,CAAC,MAAM,EAAE;AACtC,QAAA,OAAO,EAAE,MAAM,gBAAgB,CAAC,MAAM,EAAE;AACxC,QAAA,IAAI,EAAE,MAAM,aAAa,CAAC,MAAM,EAAE;AAClC,QAAA,MAAM,EAAE,MAAM,eAAe,CAAC,MAAM,EAAE;AACvC,KAAA;;IAGD,KAAK,EAAE,CAAC,OAA8B,KAAKC,KAAmB,CAAC,OAAO,CAAC;IACvE,IAAI,EAAE,CAAC,OAA0C,KAAKC,IAAkB,CAAC,OAAO,CAAC;AACjF,IAAA,MAAM,EAAE,MAAMC,MAAoB,EAAE;AACpC,IAAA,QAAQ,EAAE,MAAMC,QAAsB,EAAE;AACxC,IAAA,KAAK,EAAE,MAAMC,KAAmB,EAAE;AAClC,IAAA,MAAM,EAAE,MAAMC,MAAoB,EAAE;AACpC,IAAA,SAAS,EAAE,MAAMC,SAAuB,EAAE;AAC1C,IAAA,GAAG,EAAE,MAAMC,GAAiB,EAAE;AAC9B,IAAA,GAAG,EAAE,MAAMC,GAAiB,EAAE;AAC9B,IAAA,MAAM,EAAE,MAAMC,MAAoB,EAAE;AACpC,IAAA,IAAI,EAAE,MAAMC,IAAkB,EAAE;AAChC,IAAA,KAAK,EAAE,MAAMC,KAAmB,EAAE;AAClC,IAAA,IAAI,EAAE,MAAMC,IAAkB,EAAE;AAChC,IAAA,IAAI,EAAE,MAAMC,IAAkB,EAAE;AAChC,IAAA,IAAI,EAAE,MAAMC,IAAkB,EAAE;AAChC,IAAA,GAAG,EAAE,MAAMC,GAAiB,EAAE;AAC9B,IAAA,MAAM,EAAE,MAAMC,MAAoB,EAAE;AACpC,IAAA,MAAM,EAAE,MAAMC,MAAoB,EAAE;AACpC,IAAA,IAAI,EAAE,MAAMC,IAAkB,EAAE;IAChC,IAAI,EAAE,CAAC,SAA0D,KAC/DC,IAAkB,CAAC,SAAS,CAAC;AAC/B,IAAA,GAAG,EAAE;QACH,IAAI,EAAE,MAAMC,GAAiB,CAAC,IAAI,EAAE;QACpC,IAAI,EAAE,MAAMA,GAAiB,CAAC,IAAI,EAAE;QACpC,QAAQ,EAAE,MAAMA,GAAiB,CAAC,QAAQ,EAAE;QAC5C,QAAQ,EAAE,MAAMA,GAAiB,CAAC,QAAQ,EAAE;AAC7C,KAAA;AACD,IAAA,YAAY,EAAE,CAAC,IAAY,EAAE,SAA8C,KACzEC,YAA0B,CAAC,IAAI,EAAE,SAAS,CAAC;;AAG7C,IAAA,GAAG,EAAE,MAAMC,GAAiB,EAAE;AAC9B,IAAA,IAAI,EAAE,MAAMC,IAAkB,EAAE;AAChC,IAAA,OAAO,EAAE,MAAMC,OAAqB,EAAE;;IAGtC,eAAe,EAAE,CAAC,GAAG,UAA0C,KAAK,eAAe,CAAC,GAAG,UAAU,CAAC;;AAGlG,IAAA,WAAW,EAAE,MAAM,SAAS,CAAC,MAAM,EAAE;AACrC,IAAA,QAAQ,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE;AAC/B,IAAA,UAAU,EAAE,MAAM,aAAa,CAAC,MAAM,EAAE;;AAGxC,IAAA,KAAK,EAAE,CACL,cAAwC,EACxC,eAA0C,EAC1C,SAGC,KACE,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,eAAe,EAAE,SAAS,CAAC;;IAGhE,OAAO,EAAE,CAAI,KAA0B,KAAKC,OAAU,CAAC,KAAK;;;;;"}
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-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';
1
+ import { V as VldBigInt, a as VldBoolean, b as VldDate, c as VldNumber, d as VldNullable, e as VldNullish, f as VldOptional, g as VldPreprocess, h as VldString } from './chunks/bigint-CRS0QVsy.js';
2
+ export { i as VldBase, j as VldBrand, k as VldCatch, l as VldDefault, m as VldPipe, n as VldReadonly, o as VldRefine, p as VldSuperRefine, q as VldTransform } from './chunks/bigint-CRS0QVsy.js';
3
+ import { V as VldNever, a as VldAny, b as VldArray, c as VldDiscriminatedUnion, d as VldEnum, e as VldIntersection, f as VldJson, g as VldLazy, h as VldLiteral, i as VldObject, j as VldRecord, k as VldMap, l as VldNan, m as VldNull, n as VldSet, o as VldStringBool, p as VldSymbol, q as VldTuple, r as VldUndefined, s as VldUnion, t as VldVoid, u as VldXor } from './chunks/json-Cp4WO0M9.js';
4
+ import { V as VldUnknown } from './chunks/unknown-Dhzri_T-.js';
5
+ import { V as VldCoerceDate, a as VldCoerceBoolean, b as VldCoerceNumber, c as VldCoerceString } from './chunks/date-50JV_Mfj.js';
6
6
  import { VldCoerceBigInt } from './coercion/index.js';
7
7
 
8
8
  /**
@@ -0,0 +1,67 @@
1
+ /**
2
+ * JSON Schema support for VLD validators
3
+ * Provides conversion between VLD schemas and JSON Schema
4
+ */
5
+ import { VldBase } from '../validators/base';
6
+ /**
7
+ * JSON Schema definition types
8
+ */
9
+ export type JSONSchemaDefinition = {
10
+ $id?: string;
11
+ $schema?: string;
12
+ $ref?: string;
13
+ $defs?: Record<string, JSONSchemaDefinition>;
14
+ type?: string | string[];
15
+ enum?: unknown[];
16
+ const?: unknown;
17
+ format?: string;
18
+ pattern?: string;
19
+ minLength?: number;
20
+ maxLength?: number;
21
+ minimum?: number;
22
+ maximum?: number;
23
+ exclusiveMinimum?: number;
24
+ exclusiveMaximum?: number;
25
+ multipleOf?: number;
26
+ properties?: Record<string, JSONSchemaDefinition>;
27
+ additionalProperties?: boolean | JSONSchemaDefinition;
28
+ required?: string[];
29
+ items?: JSONSchemaDefinition | JSONSchemaDefinition[];
30
+ contains?: JSONSchemaDefinition;
31
+ minItems?: number;
32
+ maxItems?: number;
33
+ uniqueItems?: boolean;
34
+ anyOf?: JSONSchemaDefinition[];
35
+ allOf?: JSONSchemaDefinition[];
36
+ oneOf?: JSONSchemaDefinition[];
37
+ not?: JSONSchemaDefinition;
38
+ title?: string;
39
+ description?: string;
40
+ default?: unknown;
41
+ examples?: unknown[];
42
+ deprecated?: boolean;
43
+ readOnly?: boolean;
44
+ writeOnly?: boolean;
45
+ };
46
+ /**
47
+ * Options for JSON Schema conversion
48
+ */
49
+ export interface ToJSONSchemaOptions {
50
+ target?: 'draft-07' | 'draft-2019-09' | 'draft-2020-12';
51
+ includeMetadata?: boolean;
52
+ includeExamples?: boolean;
53
+ }
54
+ /**
55
+ * Convert a VLD schema to JSON Schema
56
+ * @param schema The VLD schema to convert
57
+ * @param options Conversion options
58
+ * @returns JSON Schema definition
59
+ */
60
+ export declare function toJSONSchema<T>(schema: VldBase<unknown, T>, options?: ToJSONSchemaOptions): JSONSchemaDefinition;
61
+ /**
62
+ * Convert a JSON Schema to a VLD schema
63
+ * @param json The JSON Schema definition
64
+ * @returns A VLD schema
65
+ */
66
+ export declare function fromJSONSchema(json: JSONSchemaDefinition): VldBase<unknown, unknown>;
67
+ //# sourceMappingURL=json-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-schema.d.ts","sourceRoot":"","sources":["../../src/utils/json-schema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IAC7C,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IAClD,oBAAoB,CAAC,EAAE,OAAO,GAAG,oBAAoB,CAAC;IACtD,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,oBAAoB,GAAG,oBAAoB,EAAE,CAAC;IACtD,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAC/B,KAAK,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAC/B,KAAK,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAC/B,GAAG,CAAC,EAAE,oBAAoB,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,UAAU,GAAG,eAAe,GAAG,eAAe,CAAC;IACxD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAC5B,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,EAC3B,OAAO,GAAE,mBAAwB,GAChC,oBAAoB,CAEtB;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAEpF"}
@@ -97,6 +97,14 @@ export declare abstract class VldBase<TInput, TOutput = TInput> {
97
97
  * @returns A new nullish validator
98
98
  */
99
99
  nullish(): VldNullish<TInput, TOutput>;
100
+ /**
101
+ * Make this validator exactly optional - allows undefined but not missing
102
+ * Unlike .optional() which treats missing as undefined, exactOptional()
103
+ * requires the key to be present but allows undefined as a value
104
+ * Zod 4 API parity
105
+ * @returns A new exact optional validator
106
+ */
107
+ exactOptional(): VldExactOptional<TInput, TOutput>;
100
108
  /**
101
109
  * Pipe the output of this validator into another validator
102
110
  * @param next The next validator to pipe into
@@ -133,6 +141,63 @@ export declare abstract class VldBase<TInput, TOutput = TInput> {
133
141
  * const lengthSchema = v.string().apply(withLength); // validates string, returns number
134
142
  */
135
143
  apply<TNewOutput>(fn: (schema: this) => VldBase<TInput, TNewOutput>): VldBase<TInput, TNewOutput>;
144
+ /**
145
+ * Create a new validator that refines this one with a custom predicate
146
+ * Alias for refine() - check() is the Zod 4 API name
147
+ * @param predicate The refinement predicate
148
+ * @param message Optional custom error message
149
+ * @returns A new refined validator
150
+ */
151
+ check<TRefined extends TOutput>(predicate: (value: TOutput) => value is TRefined, message?: string): VldRefine<TInput, TOutput, TRefined>;
152
+ check(predicate: (value: TOutput) => boolean, message?: string): VldRefine<TInput, TOutput, TOutput>;
153
+ /**
154
+ * Get metadata for this schema
155
+ * Zod 4 API parity - allows attaching OpenAPI/JSON Schema metadata
156
+ * @returns Metadata object or undefined
157
+ */
158
+ meta(): SchemaMetadata | undefined;
159
+ /**
160
+ * Set metadata for this schema
161
+ * Zod 4 API parity - allows attaching OpenAPI/JSON Schema metadata
162
+ * @param data Metadata to attach
163
+ * @returns A new validator with the metadata
164
+ */
165
+ meta(data: Partial<SchemaMetadata>): VldMeta<TInput, TOutput>;
166
+ /**
167
+ * Add a description to this schema
168
+ * Zod 4 API parity - convenience method for .meta({ description: ... })
169
+ * @param description The description to add
170
+ * @returns A new validator with the description
171
+ */
172
+ describe(description: string): VldMeta<TInput, TOutput>;
173
+ }
174
+ /**
175
+ * Schema metadata interface for OpenAPI/JSON Schema compatibility
176
+ */
177
+ export interface SchemaMetadata {
178
+ id?: string;
179
+ title?: string;
180
+ description?: string;
181
+ examples?: unknown[];
182
+ default?: unknown;
183
+ deprecated?: boolean;
184
+ readOnly?: boolean;
185
+ writeOnly?: boolean;
186
+ [key: string]: unknown;
187
+ }
188
+ /**
189
+ * Metadata validator - wraps a schema with metadata
190
+ */
191
+ export declare class VldMeta<TInput, TOutput> extends VldBase<TInput, TOutput> {
192
+ private readonly baseValidator;
193
+ private readonly metadata;
194
+ constructor(baseValidator: VldBase<TInput, TOutput>, metadata: Partial<SchemaMetadata>);
195
+ parse(value: unknown): TOutput;
196
+ safeParse(value: unknown): ParseResult<TOutput>;
197
+ /**
198
+ * Get the metadata
199
+ */
200
+ getMeta(): Readonly<Partial<SchemaMetadata>>;
136
201
  }
137
202
  /**
138
203
  * Readonly validator - marks output as readonly
@@ -233,6 +298,20 @@ export declare class VldOptional<TInput, TOutput> extends VldBase<TInput | undef
233
298
  safeParse(value: unknown): ParseResult<TOutput | undefined>;
234
299
  unwrap(): VldBase<TInput, TOutput>;
235
300
  }
301
+ /**
302
+ * Exact optional validator - allows undefined but requires key presence
303
+ * Unlike Optional which treats missing as undefined, ExactOptional
304
+ * requires the key to be present (not missing from object) but allows undefined
305
+ * Zod 4 API parity
306
+ */
307
+ export declare class VldExactOptional<TInput, TOutput> extends VldBase<TInput | undefined, TOutput | undefined> {
308
+ private readonly baseValidator;
309
+ constructor(baseValidator: VldBase<TInput, TOutput>);
310
+ static create<TInput, TOutput>(baseValidator: VldBase<TInput, TOutput>): VldExactOptional<TInput, TOutput>;
311
+ parse(value: unknown): TOutput | undefined;
312
+ safeParse(value: unknown): ParseResult<TOutput | undefined>;
313
+ unwrap(): VldBase<TInput, TOutput>;
314
+ }
236
315
  /**
237
316
  * Nullable validator - allows null
238
317
  */
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/validators/base.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,IACrB;IAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;CAAE,GAC5C;IAAE,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC1D,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;CAC3B;AAED;;;GAGG;AACH,8BAAsB,OAAO,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM;IACpD;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAEvC;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;IAExD;;;;OAIG;IACH,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAIhC;;;;;;OAMG;IACH,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,GAAG,OAAO;IAe9D;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,SAAS,OAAO,EAC7B,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,QAAQ,EAChD,OAAO,CAAC,EAAE,MAAM,GACf,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC;IACvC,MAAM,CACJ,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,EACtC,OAAO,CAAC,EAAE,MAAM,GACf,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC;IAQtC;;;;OAIG;IACH,WAAW,CACT,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,kBAAkB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAC5E,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC;IAIlC;;;;OAIG;IACH,SAAS,CAAC,YAAY,EACpB,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,YAAY,GAC5C,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC;IAI9C;;;;OAIG;IACH,OAAO,CAAC,YAAY,EAAE,OAAO,GAAG,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC;IAI3D;;;;OAIG;IACH,KAAK,CAAC,aAAa,EAAE,OAAO,GAAG,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAIxD;;;OAGG;IACH,QAAQ,IAAI,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC;IAIxC;;;OAGG;IACH,QAAQ,IAAI,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC;IAIxC;;;OAGG;IACH,OAAO,IAAI,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC;IAItC;;;;OAIG;IACH,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC;IAI7F;;;;OAIG;IACH,QAAQ,IAAI,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC;IAIxC;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,MAAM,SAAS,MAAM,KAAK,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC;IAIjE;;;;;;;;OAQG;IACH,KAAK,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC;CAGlG;AAED;;GAEG;AACH,qBAAa,WAAW,CAAC,MAAM,EAAE,OAAO,CAAE,SAAQ,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IACtE,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC;IAIpE,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;IAIxC,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;CAO1D;AAED;;;GAGG;AACH,qBAAa,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,SAAS,MAAM,CAAE,SAAQ,OAAO,CAC3E,MAAM,EACN,OAAO,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CACvC;IAEG,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC;IAK1D,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE;IAM7D,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAAC,OAAO,GAAG;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAU/E;AAED;;GAEG;AACH,qBAAa,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,SAAS,KAAK,GAAG,KAAK,CAAE,SAAQ,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC;IAEjG,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;gBAFd,aAAa,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,EACrC,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,EACpC,aAAa,CAAC,EAAE,MAAM,YAAA;IAKzC,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAU9B,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;CAOhD;AAED;;GAEG;AACH,qBAAa,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAE,SAAQ,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC;IAE9E,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,WAAW;gBADX,aAAa,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,EACrC,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO;IAKzD,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAU9B,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;CAOhD;AAED;;;;GAIG;AACH,qBAAa,UAAU,CAAC,MAAM,EAAE,OAAO,CAAE,SAAQ,OAAO,CAAC,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC;IAEjF,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,YAAY;gBADZ,aAAa,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,YAAY,EAAE,OAAO;IAKxC,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAO9B,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;IAO/C;;;OAGG;IACH,QAAQ,IAAI,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC;CAIzC;AAED;;GAEG;AACH,qBAAa,WAAW,CAAC,MAAM,EAAE,OAAO,CAAE,SAAQ,OAAO,CAAC,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC;IAElF,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,YAAY;gBADZ,aAAa,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,YAAY,EAAE,OAAO;IAKxC,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAQ9B,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;IAO/C;;OAEG;IACH,QAAQ,IAAI,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC;CAGzC;AAED;;;GAGG;AACH,qBAAa,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAE,SAAQ,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC;IAEnE,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,aAAa;gBADb,aAAa,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,aAAa,EAAE,OAAO;IAUzC,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAQ9B,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;CAOhD;AAED;;GAEG;AACH,qBAAa,WAAW,CAAC,MAAM,EAAE,OAAO,CAAE,SAAQ,OAAO,CAAC,MAAM,GAAG,SAAS,EAAE,OAAO,GAAG,SAAS,CAAC;IACpF,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC;IAIpE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC;IAIrG,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS;IAO1C,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAAC,OAAO,GAAG,SAAS,CAAC;IAO3D,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC;CAGnC;AAED;;GAEG;AACH,qBAAa,WAAW,CAAC,MAAM,EAAE,OAAO,CAAE,SAAQ,OAAO,CAAC,MAAM,GAAG,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1E,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC;IAIpE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC;IAIrG,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG,IAAI;IAOrC,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC;IAOtD,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC;CAGnC;AAED;;GAEG;AACH,qBAAa,UAAU,CAAC,MAAM,EAAE,OAAO,CAAE,SAAQ,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;IACjG,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC;IAIpE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC;IAIpG,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS;IAOjD,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAAC,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;IAOlE,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC;CAGnC;AAED;;GAEG;AACH,qBAAa,OAAO,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,CAAE,SAAQ,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC;IAEjF,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,EACrC,MAAM,EAAE,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC;IAK1D,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAK9B,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;CAOhD;AAED;;GAEG;AACH,qBAAa,cAAc,CAAC,MAAM,EAAE,OAAO,CAAE,SAAQ,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC;IAEzE,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW;gBADX,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,kBAAkB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAKjG,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAqB9B,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;CAwBhD;AAED;;GAEG;AACH,qBAAa,aAAa,CAAC,MAAM,EAAE,OAAO,CAAE,SAAQ,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC;IAEzE,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO;gBADP,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,EAC1C,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC;IAKpD,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAC3B,YAAY,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,EACzC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC;IAIjC,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAK9B,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;CAWhD"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/validators/base.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Main entry point for all validators
3
3
  */
4
- export { VldBase, ParseResult, VldRefine, VldTransform, VldDefault, VldCatch, VldOptional, VldNullable, VldNullish, VldPipe, VldReadonly, VldBrand, SuperRefineContext, VldSuperRefine, VldPreprocess } from './base';
4
+ export { VldBase, ParseResult, VldRefine, VldTransform, VldDefault, VldCatch, VldOptional, VldExactOptional, VldNullable, VldNullish, VldPipe, VldReadonly, VldBrand, SuperRefineContext, VldSuperRefine, VldPreprocess } from './base';
5
5
  export { VldString } from './string';
6
6
  export { VldNumber } from './number';
7
7
  export { VldBoolean } from './boolean';
@@ -36,7 +36,8 @@ export type { CustomValidatorOptions } from './custom';
36
36
  export { VldFile, file } from './file';
37
37
  export type { VldFileValue } from './file';
38
38
  export { VldFunction, functionValidator } from './function';
39
- export { email, uuid, uuidv4, hostname, emoji, base64, base64url, hex, jwt, nanoid, cuid, cuid2, ulid, ipv4, ipv6, mac, cidrv4, e164, hash, iso, stringFormat, regexes } from './string-formats';
39
+ export { VldPromise, promise } from './promise';
40
+ export { email, uuid, uuidv4, hostname, emoji, base64, base64url, hex, jwt, nanoid, cuid, cuid2, ulid, ipv4, ipv6, mac, cidrv4, cidrv6, e164, hash, iso, stringFormat, regexes, xid, guid, httpUrl } from './string-formats';
40
41
  import { VldBase } from './base';
41
42
  export type Infer<T extends VldBase<any, any>> = T extends VldBase<any, infer U> ? U : never;
42
43
  export type Input<T extends VldBase<any, any>> = T extends VldBase<infer I, any> ? I : never;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validators/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validators/index.ts"],"names":[],"mappings":"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"}