@oxog/vld 1.4.0 → 2.0.1

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 (242) hide show
  1. package/CHANGELOG.md +449 -333
  2. package/README.md +1171 -1130
  3. package/dist/chunks/bigint-ZKkWLdmi.js +1628 -0
  4. package/dist/chunks/bigint-ZKkWLdmi.js.map +1 -0
  5. package/dist/{coercion/string.js → chunks/date-7Iz2BGsL.js} +271 -5
  6. package/dist/chunks/date-7Iz2BGsL.js.map +1 -0
  7. package/dist/chunks/index-BoV-4S1F.js +894 -0
  8. package/dist/chunks/index-BoV-4S1F.js.map +1 -0
  9. package/dist/chunks/index-eWXdjyyy.js +426 -0
  10. package/dist/chunks/index-eWXdjyyy.js.map +1 -0
  11. package/dist/chunks/json-nIhyRPOU.js +1934 -0
  12. package/dist/chunks/json-nIhyRPOU.js.map +1 -0
  13. package/dist/{validators/unknown.js → chunks/unknown-CjSRcELI.js} +6 -3
  14. package/dist/chunks/unknown-CjSRcELI.js.map +1 -0
  15. package/dist/cjs/errors.cjs +387 -0
  16. package/dist/cjs/errors.cjs.map +1 -0
  17. package/dist/cjs/index.cjs +9815 -0
  18. package/dist/cjs/index.cjs.map +1 -0
  19. package/dist/cjs/locales/index.cjs +2877 -0
  20. package/dist/cjs/locales/index.cjs.map +1 -0
  21. package/dist/cjs/locales/lazy.cjs +3169 -0
  22. package/dist/cjs/locales/lazy.cjs.map +1 -0
  23. package/dist/cjs/mini.cjs +7161 -0
  24. package/dist/cjs/mini.cjs.map +1 -0
  25. package/dist/cli/bin.d.ts +8 -0
  26. package/dist/cli/bin.d.ts.map +1 -0
  27. package/dist/cli/commands/benchmark.d.ts +11 -0
  28. package/dist/cli/commands/benchmark.d.ts.map +1 -0
  29. package/dist/cli/commands/validate.d.ts +11 -0
  30. package/dist/cli/commands/validate.d.ts.map +1 -0
  31. package/dist/cli/index.d.ts +59 -0
  32. package/dist/cli/index.d.ts.map +1 -0
  33. package/dist/codecs/index.d.ts.map +1 -1
  34. package/dist/codecs/index.js +4 -256
  35. package/dist/codecs/index.js.map +1 -1
  36. package/dist/coercion/boolean.d.ts.map +1 -1
  37. package/dist/coercion/index.d.ts +11 -0
  38. package/dist/coercion/index.d.ts.map +1 -0
  39. package/dist/coercion/{bigint.js → index.js} +7 -4
  40. package/dist/coercion/index.js.map +1 -0
  41. package/dist/compat/emitter.d.ts +73 -0
  42. package/dist/compat/emitter.d.ts.map +1 -0
  43. package/dist/compat/emitter.js +181 -0
  44. package/dist/compat/emitter.js.map +1 -0
  45. package/dist/compat/index.d.ts +15 -0
  46. package/dist/compat/index.d.ts.map +1 -0
  47. package/dist/compat/result.d.ts +128 -0
  48. package/dist/compat/result.d.ts.map +1 -0
  49. package/dist/compat/result.js +171 -0
  50. package/dist/compat/result.js.map +1 -0
  51. package/dist/errors.d.ts +58 -1
  52. package/dist/errors.d.ts.map +1 -1
  53. package/dist/errors.js +106 -15
  54. package/dist/errors.js.map +1 -1
  55. package/dist/events.d.ts +140 -0
  56. package/dist/events.d.ts.map +1 -0
  57. package/dist/index.d.ts +13 -1
  58. package/dist/index.d.ts.map +1 -1
  59. package/dist/index.js +230 -103
  60. package/dist/index.js.map +1 -1
  61. package/dist/kernel.d.ts +29 -0
  62. package/dist/kernel.d.ts.map +1 -0
  63. package/dist/kernel.js +405 -0
  64. package/dist/kernel.js.map +1 -0
  65. package/dist/locales/af.js +4 -2
  66. package/dist/locales/af.js.map +1 -1
  67. package/dist/locales/ar.js +4 -2
  68. package/dist/locales/ar.js.map +1 -1
  69. package/dist/locales/bn.js +4 -2
  70. package/dist/locales/bn.js.map +1 -1
  71. package/dist/locales/da.js +4 -2
  72. package/dist/locales/da.js.map +1 -1
  73. package/dist/locales/de.js +4 -2
  74. package/dist/locales/de.js.map +1 -1
  75. package/dist/locales/en.js +4 -2
  76. package/dist/locales/en.js.map +1 -1
  77. package/dist/locales/es-MX.js +4 -2
  78. package/dist/locales/es-MX.js.map +1 -1
  79. package/dist/locales/es.js +4 -2
  80. package/dist/locales/es.js.map +1 -1
  81. package/dist/locales/fi.js +4 -2
  82. package/dist/locales/fi.js.map +1 -1
  83. package/dist/locales/fr.js +4 -2
  84. package/dist/locales/fr.js.map +1 -1
  85. package/dist/locales/hi.js +4 -2
  86. package/dist/locales/hi.js.map +1 -1
  87. package/dist/locales/id.js +4 -2
  88. package/dist/locales/id.js.map +1 -1
  89. package/dist/locales/index.js +3 -91
  90. package/dist/locales/index.js.map +1 -1
  91. package/dist/locales/it.js +4 -2
  92. package/dist/locales/it.js.map +1 -1
  93. package/dist/locales/ja.js +4 -2
  94. package/dist/locales/ja.js.map +1 -1
  95. package/dist/locales/ko.js +4 -2
  96. package/dist/locales/ko.js.map +1 -1
  97. package/dist/locales/lazy.d.ts +111 -0
  98. package/dist/locales/lazy.d.ts.map +1 -0
  99. package/dist/locales/lazy.js +220 -0
  100. package/dist/locales/lazy.js.map +1 -0
  101. package/dist/locales/nl.js +4 -2
  102. package/dist/locales/nl.js.map +1 -1
  103. package/dist/locales/no.js +4 -2
  104. package/dist/locales/no.js.map +1 -1
  105. package/dist/locales/pl.js +4 -2
  106. package/dist/locales/pl.js.map +1 -1
  107. package/dist/locales/pt-BR.js +4 -2
  108. package/dist/locales/pt-BR.js.map +1 -1
  109. package/dist/locales/pt.js +4 -2
  110. package/dist/locales/pt.js.map +1 -1
  111. package/dist/locales/ru.js +4 -2
  112. package/dist/locales/ru.js.map +1 -1
  113. package/dist/locales/sv.js +4 -2
  114. package/dist/locales/sv.js.map +1 -1
  115. package/dist/locales/sw.js +4 -2
  116. package/dist/locales/sw.js.map +1 -1
  117. package/dist/locales/th.js +4 -2
  118. package/dist/locales/th.js.map +1 -1
  119. package/dist/locales/tr.js +4 -2
  120. package/dist/locales/tr.js.map +1 -1
  121. package/dist/locales/vi.js +4 -2
  122. package/dist/locales/vi.js.map +1 -1
  123. package/dist/locales/zh.js +4 -2
  124. package/dist/locales/zh.js.map +1 -1
  125. package/dist/logger.d.ts +94 -0
  126. package/dist/logger.d.ts.map +1 -0
  127. package/dist/mini.d.ts +182 -0
  128. package/dist/mini.d.ts.map +1 -0
  129. package/dist/mini.js +132 -0
  130. package/dist/mini.js.map +1 -0
  131. package/dist/pigment.d.ts +124 -0
  132. package/dist/pigment.d.ts.map +1 -0
  133. package/dist/pigment.js +178 -0
  134. package/dist/pigment.js.map +1 -0
  135. package/dist/plugins/index.d.ts +8 -0
  136. package/dist/plugins/index.d.ts.map +1 -0
  137. package/dist/plugins/types.d.ts +186 -0
  138. package/dist/plugins/types.d.ts.map +1 -0
  139. package/dist/utils/codec-utils.d.ts.map +1 -1
  140. package/dist/utils/ip-validation.d.ts.map +1 -1
  141. package/dist/validators/base.d.ts +3 -0
  142. package/dist/validators/base.d.ts.map +1 -1
  143. package/dist/validators/index.js +5 -45
  144. package/dist/validators/index.js.map +1 -1
  145. package/dist/validators/object.d.ts.map +1 -1
  146. package/dist/validators/template-literal.d.ts.map +1 -1
  147. package/package.json +153 -79
  148. package/dist/coercion/bigint.js.map +0 -1
  149. package/dist/coercion/boolean.js +0 -67
  150. package/dist/coercion/boolean.js.map +0 -1
  151. package/dist/coercion/date.js +0 -52
  152. package/dist/coercion/date.js.map +0 -1
  153. package/dist/coercion/number.js +0 -160
  154. package/dist/coercion/number.js.map +0 -1
  155. package/dist/coercion/string.js.map +0 -1
  156. package/dist/locales/backup-en.js +0 -105
  157. package/dist/locales/backup-en.js.map +0 -1
  158. package/dist/locales/types.js +0 -2
  159. package/dist/locales/types.js.map +0 -1
  160. package/dist/utils/codec-utils.js +0 -223
  161. package/dist/utils/codec-utils.js.map +0 -1
  162. package/dist/utils/deep-merge.js +0 -76
  163. package/dist/utils/deep-merge.js.map +0 -1
  164. package/dist/utils/ip-validation.js +0 -78
  165. package/dist/utils/ip-validation.js.map +0 -1
  166. package/dist/utils/security.js +0 -61
  167. package/dist/utils/security.js.map +0 -1
  168. package/dist/validators/any.js +0 -25
  169. package/dist/validators/any.js.map +0 -1
  170. package/dist/validators/array.js +0 -190
  171. package/dist/validators/array.js.map +0 -1
  172. package/dist/validators/base.js +0 -491
  173. package/dist/validators/base.js.map +0 -1
  174. package/dist/validators/base64.js +0 -65
  175. package/dist/validators/base64.js.map +0 -1
  176. package/dist/validators/bigint.js +0 -142
  177. package/dist/validators/bigint.js.map +0 -1
  178. package/dist/validators/boolean.js +0 -114
  179. package/dist/validators/boolean.js.map +0 -1
  180. package/dist/validators/codec.js +0 -182
  181. package/dist/validators/codec.js.map +0 -1
  182. package/dist/validators/custom.js +0 -50
  183. package/dist/validators/custom.js.map +0 -1
  184. package/dist/validators/date.js +0 -227
  185. package/dist/validators/date.js.map +0 -1
  186. package/dist/validators/discriminated-union.js +0 -98
  187. package/dist/validators/discriminated-union.js.map +0 -1
  188. package/dist/validators/enum.js +0 -82
  189. package/dist/validators/enum.js.map +0 -1
  190. package/dist/validators/file.js +0 -114
  191. package/dist/validators/file.js.map +0 -1
  192. package/dist/validators/function.js +0 -45
  193. package/dist/validators/function.js.map +0 -1
  194. package/dist/validators/hex.js +0 -62
  195. package/dist/validators/hex.js.map +0 -1
  196. package/dist/validators/intersection.js +0 -64
  197. package/dist/validators/intersection.js.map +0 -1
  198. package/dist/validators/json.js +0 -64
  199. package/dist/validators/json.js.map +0 -1
  200. package/dist/validators/lazy.js +0 -42
  201. package/dist/validators/lazy.js.map +0 -1
  202. package/dist/validators/literal.js +0 -45
  203. package/dist/validators/literal.js.map +0 -1
  204. package/dist/validators/map.js +0 -54
  205. package/dist/validators/map.js.map +0 -1
  206. package/dist/validators/nan.js +0 -32
  207. package/dist/validators/nan.js.map +0 -1
  208. package/dist/validators/never.js +0 -29
  209. package/dist/validators/never.js.map +0 -1
  210. package/dist/validators/null.js +0 -31
  211. package/dist/validators/null.js.map +0 -1
  212. package/dist/validators/number.js +0 -225
  213. package/dist/validators/number.js.map +0 -1
  214. package/dist/validators/object.js +0 -458
  215. package/dist/validators/object.js.map +0 -1
  216. package/dist/validators/record.js +0 -128
  217. package/dist/validators/record.js.map +0 -1
  218. package/dist/validators/set.js +0 -51
  219. package/dist/validators/set.js.map +0 -1
  220. package/dist/validators/string-bool.js +0 -127
  221. package/dist/validators/string-bool.js.map +0 -1
  222. package/dist/validators/string-formats.js +0 -120
  223. package/dist/validators/string-formats.js.map +0 -1
  224. package/dist/validators/string.js +0 -253
  225. package/dist/validators/string.js.map +0 -1
  226. package/dist/validators/symbol.js +0 -42
  227. package/dist/validators/symbol.js.map +0 -1
  228. package/dist/validators/template-literal.js +0 -101
  229. package/dist/validators/template-literal.js.map +0 -1
  230. package/dist/validators/tuple.js +0 -55
  231. package/dist/validators/tuple.js.map +0 -1
  232. package/dist/validators/uint8array.js +0 -98
  233. package/dist/validators/uint8array.js.map +0 -1
  234. package/dist/validators/undefined.js +0 -31
  235. package/dist/validators/undefined.js.map +0 -1
  236. package/dist/validators/union.js +0 -126
  237. package/dist/validators/union.js.map +0 -1
  238. package/dist/validators/unknown.js.map +0 -1
  239. package/dist/validators/void.js +0 -35
  240. package/dist/validators/void.js.map +0 -1
  241. package/dist/validators/xor.js +0 -64
  242. package/dist/validators/xor.js.map +0 -1
package/dist/index.js CHANGED
@@ -1,3 +1,196 @@
1
+ import { h as VldPreprocess, g as VldNullish, f as VldNullable, e as VldOptional, d as VldBigInt, c as VldDate, b as VldBoolean, a as VldNumber, V as VldString } from './chunks/bigint-ZKkWLdmi.js';
2
+ export { i as VldBase, r as getLocale, t as getMessages, s as setLocale } from './chunks/bigint-ZKkWLdmi.js';
3
+ import { u as VldJson, t as VldLazy, p as VldNever, s as VldNan, r as VldUndefined, q as VldNull, o as VldVoid, n as VldAny, m as VldEnum, l as VldLiteral, k as VldXor, j as VldDiscriminatedUnion, i as VldIntersection, h as VldUnion, g as VldMap, f as VldSet, e as VldRecord, d as VldTuple, c as VldObject, b as VldArray, a as VldStringBool, V as VldSymbol } from './chunks/json-nIhyRPOU.js';
4
+ import { V as VldUnknown } from './chunks/unknown-CjSRcELI.js';
5
+ import { t as templateLiteral, s as stringFormat, i as iso, h as hash, e as e164, c as cidrv6, a as cidrv4, m as mac, b as ipv6, d as ipv4, u as ulid, f as cuid2, g as cuid, n as nanoid, j as jwt, k as hex, l as base64url, o as base64, p as emoji, q as hostname, r as uuidv4, v as uuid, w as email, x as functionValidator, y as file, z as custom } from './chunks/index-eWXdjyyy.js';
6
+ import { V as VldCodec, a as VldUint8Array, b as VldHex, c as VldBase64 } from './chunks/index-BoV-4S1F.js';
7
+ export { D as base64Json, w as base64ToBytes, d as base64ToUint8Array, x as base64UrlToBytes, y as base64urlToBytes, C as bytesToUtf8, p as epochMillisToDate, o as epochSecondsToDate, A as hexLowerToBytes, z as hexToBytes, h as hexToUint8Array, m as isoDatetimeToDate, q as jsonCodec, E as jwtPayload, n as numberToBigInt, k as stringToBigInt, l as stringToBoolean, t as stringToHttpURL, j as stringToInt, i as stringToNumber, r as stringToURL, s as stringToUint8Array, u as uint8ArrayToBase64, e as uint8ArrayToBase64Url, f as uint8ArrayToHex, g as uint8ArrayToString, v as uriComponent, B as utf8ToBytes } from './chunks/index-BoV-4S1F.js';
8
+ import { V as VldCoerceDate, a as VldCoerceBoolean, b as VldCoerceNumber, c as VldCoerceString } from './chunks/date-7Iz2BGsL.js';
9
+ import { VldCoerceBigInt } from './coercion/index.js';
10
+ export { VldError, flattenError, prettifyError, prettifyErrorColored, prettifyErrorPlain, treeifyError } from './errors.js';
11
+ export { Err, Ok, ResultUtils, all, failure, flatMap, fromNullable, isErr, isOk, isResult, map, mapErr, match, success, tryCatch, tryCatchAsync, unwrap, unwrapOr } from './compat/result.js';
12
+ export { createEmitter, createEventBus, withEmitter } from './compat/emitter.js';
13
+ export { createVldKernel, definePlugin, getVldKernel, resetVldKernel, usePlugin } from './kernel.js';
14
+ export { blue, bold, createTheme, cyan, dim, gray, green, grey, italic, magenta, pigment, red, strip, supportsColor, underline, vldTheme, white, yellow } from './pigment.js';
15
+
16
+ /**
17
+ * VLD Logger
18
+ *
19
+ * This module provides a debug logging system for VLD,
20
+ * compatible with @oxog/log when available.
21
+ */
22
+ /**
23
+ * Log level priorities (lower = more verbose)
24
+ */
25
+ const LOG_LEVEL_PRIORITY = {
26
+ debug: 0,
27
+ info: 1,
28
+ warn: 2,
29
+ error: 3,
30
+ silent: 4
31
+ };
32
+ /**
33
+ * ANSI color codes for terminal output
34
+ */
35
+ const COLORS = {
36
+ reset: '\x1b[0m',
37
+ dim: '\x1b[2m',
38
+ red: '\x1b[31m',
39
+ yellow: '\x1b[33m',
40
+ blue: '\x1b[34m',
41
+ cyan: '\x1b[36m',
42
+ gray: '\x1b[90m'
43
+ };
44
+ /**
45
+ * Level colors
46
+ */
47
+ const LEVEL_COLORS = {
48
+ debug: COLORS.gray,
49
+ info: COLORS.blue,
50
+ warn: COLORS.yellow,
51
+ error: COLORS.red
52
+ };
53
+ /**
54
+ * Level labels
55
+ */
56
+ const LEVEL_LABELS = {
57
+ debug: 'DEBUG',
58
+ info: 'INFO ',
59
+ warn: 'WARN ',
60
+ error: 'ERROR'
61
+ };
62
+ /**
63
+ * Default log handler
64
+ */
65
+ function createDefaultHandler(options) {
66
+ const colored = options.colored ?? true;
67
+ const timestamps = options.timestamps ?? true;
68
+ return (entry) => {
69
+ const parts = [];
70
+ // Timestamp
71
+ if (timestamps) {
72
+ const time = entry.timestamp.toISOString().slice(11, 23);
73
+ parts.push(colored ? `${COLORS.dim}${time}${COLORS.reset}` : time);
74
+ }
75
+ // Level
76
+ const levelLabel = LEVEL_LABELS[entry.level];
77
+ const levelColor = LEVEL_COLORS[entry.level];
78
+ parts.push(colored ? `${levelColor}${levelLabel}${COLORS.reset}` : levelLabel);
79
+ // Name
80
+ parts.push(colored ? `${COLORS.cyan}[${entry.name}]${COLORS.reset}` : `[${entry.name}]`);
81
+ // Message
82
+ parts.push(entry.message);
83
+ // Output
84
+ const output = parts.join(' ');
85
+ // Use appropriate console method
86
+ switch (entry.level) {
87
+ case 'debug':
88
+ console.debug(output, entry.data !== undefined ? entry.data : '');
89
+ break;
90
+ case 'info':
91
+ console.info(output, entry.data !== undefined ? entry.data : '');
92
+ break;
93
+ case 'warn':
94
+ console.warn(output, entry.data !== undefined ? entry.data : '');
95
+ break;
96
+ case 'error':
97
+ console.error(output, entry.data !== undefined ? entry.data : '');
98
+ break;
99
+ }
100
+ };
101
+ }
102
+ /**
103
+ * Create a logger instance
104
+ */
105
+ function createLogger(options = {}) {
106
+ const name = options.name ?? 'vld';
107
+ let level = options.level ?? 'warn';
108
+ const handler = options.handler ?? createDefaultHandler(options);
109
+ const log = (logLevel, message, data) => {
110
+ if (LOG_LEVEL_PRIORITY[logLevel] < LOG_LEVEL_PRIORITY[level]) {
111
+ return;
112
+ }
113
+ const entry = {
114
+ level: logLevel,
115
+ message,
116
+ data,
117
+ timestamp: new Date(),
118
+ name
119
+ };
120
+ handler(entry);
121
+ };
122
+ const logger = {
123
+ debug: (message, data) => log('debug', message, data),
124
+ info: (message, data) => log('info', message, data),
125
+ warn: (message, data) => log('warn', message, data),
126
+ error: (message, data) => log('error', message, data),
127
+ isLevelEnabled: (checkLevel) => LOG_LEVEL_PRIORITY[checkLevel] >= LOG_LEVEL_PRIORITY[level],
128
+ setLevel: (newLevel) => {
129
+ level = newLevel;
130
+ },
131
+ getLevel: () => level,
132
+ child: (childName) => createLogger({
133
+ ...options,
134
+ name: `${name}:${childName}`
135
+ })
136
+ };
137
+ return logger;
138
+ }
139
+ // ============================================
140
+ // Global Logger Management
141
+ // ============================================
142
+ let globalLogger = null;
143
+ /**
144
+ * Initialize the global VLD logger
145
+ */
146
+ function initLogger(options) {
147
+ globalLogger = createLogger({
148
+ name: 'vld',
149
+ ...options
150
+ });
151
+ return globalLogger;
152
+ }
153
+ /**
154
+ * Get the global VLD logger
155
+ * Returns null if not initialized
156
+ */
157
+ function getLogger() {
158
+ return globalLogger;
159
+ }
160
+ /**
161
+ * Set log level for the global logger
162
+ */
163
+ function setLogLevel(level) {
164
+ if (globalLogger) {
165
+ globalLogger.setLevel(level);
166
+ }
167
+ }
168
+ /**
169
+ * Enable debug mode for VLD
170
+ */
171
+ function enableDebug() {
172
+ if (!globalLogger) {
173
+ initLogger({ level: 'debug' });
174
+ }
175
+ else {
176
+ globalLogger.setLevel('debug');
177
+ }
178
+ }
179
+ /**
180
+ * Disable all VLD logging
181
+ */
182
+ function disableLogging() {
183
+ if (globalLogger) {
184
+ globalLogger.setLevel('silent');
185
+ }
186
+ }
187
+ /**
188
+ * Create a no-op logger for testing
189
+ */
190
+ function createNoOpLogger() {
191
+ return createLogger({ level: 'silent' });
192
+ }
193
+
1
194
  /**
2
195
  * VLD - Fast, Type-Safe Validation Library
3
196
  * Zero dependencies, blazing fast performance
@@ -7,83 +200,17 @@
7
200
  * - Secure deepMerge (no prototype pollution)
8
201
  * - TypeScript strict mode support
9
202
  * - Better performance through pooling and memoization
203
+ * - Plugin system for extensibility
204
+ * - Event system for validation lifecycle hooks
205
+ * - Result pattern for functional error handling
206
+ * - Colored console output for better debugging
207
+ * - Debug logging system
10
208
  */
11
209
  // Import validators
12
- import { VldString } from './validators/string.js';
13
- import { VldNumber } from './validators/number.js';
14
- import { VldBoolean } from './validators/boolean.js';
15
- import { VldDate } from './validators/date.js';
16
- import { VldStringBool } from './validators/string-bool.js';
17
- import { VldArray } from './validators/array.js';
18
- import { VldObject } from './validators/object.js';
19
- import { VldUnion } from './validators/union.js';
20
- import { VldLiteral } from './validators/literal.js';
21
- import { VldBigInt } from './validators/bigint.js';
22
- import { VldSymbol } from './validators/symbol.js';
23
- import { VldTuple } from './validators/tuple.js';
24
- import { VldRecord } from './validators/record.js';
25
- import { VldSet } from './validators/set.js';
26
- import { VldMap } from './validators/map.js';
27
- import { VldEnum } from './validators/enum.js';
28
- import { VldIntersection } from './validators/intersection.js';
29
- import { VldAny } from './validators/any.js';
30
- import { VldUnknown } from './validators/unknown.js';
31
- import { VldVoid } from './validators/void.js';
32
- import { VldNever } from './validators/never.js';
33
- import { VldNull } from './validators/null.js';
34
- import { VldUndefined } from './validators/undefined.js';
35
- import { VldNan } from './validators/nan.js';
36
- import { VldLazy } from './validators/lazy.js';
37
- import { VldDiscriminatedUnion } from './validators/discriminated-union.js';
38
- import { VldXor } from './validators/xor.js';
39
- import { VldJson } from './validators/json.js';
40
- import { templateLiteral } from './validators/template-literal.js';
41
- import { custom as customFn } from './validators/custom.js';
42
- import { file as fileFn } from './validators/file.js';
43
- import { functionValidator as functionFn } from './validators/function.js';
44
- import { VldPreprocess } from './validators/base.js';
45
- import { VldOptional } from './validators/base.js';
46
- import { VldNullable } from './validators/base.js';
47
- import { VldNullish } from './validators/base.js';
48
- import { VldCodec } from './validators/codec.js';
49
- import { VldBase64 } from './validators/base64.js';
50
- import { VldHex } from './validators/hex.js';
51
- import { VldUint8Array } from './validators/uint8array.js';
52
- // Import coercion validators
53
- import { VldCoerceString } from './coercion/string.js';
54
- import { VldCoerceNumber } from './coercion/number.js';
55
- import { VldCoerceBoolean } from './coercion/boolean.js';
56
- import { VldCoerceDate } from './coercion/date.js';
57
- import { VldCoerceBigInt } from './coercion/bigint.js';
58
- // Import string format validators
59
- import * as stringFormats from './validators/string-formats.js';
60
- // Re-export base classes for extension
61
- export { VldBase } from './validators/base.js';
62
- export { VldIntersection } from './validators/intersection.js';
63
- // Re-export locale functionality
64
- export { setLocale, getLocale, getMessages } from './locales/index.js';
65
- // Re-export error formatting utilities
66
- export { VldError, treeifyError, prettifyError, flattenError } from './errors.js';
67
- // Re-export codec utilities
68
- export { base64ToUint8Array, uint8ArrayToBase64, uint8ArrayToBase64Url, hexToUint8Array, uint8ArrayToHex, stringToUint8Array, uint8ArrayToString } from './utils/codec-utils.js';
69
- // Re-export predefined codecs
70
- export {
71
- // String conversion codecs
72
- stringToNumber, stringToInt, stringToBigInt, numberToBigInt, stringToBoolean,
73
- // Date conversion codecs
74
- isoDatetimeToDate, epochSecondsToDate, epochMillisToDate,
75
- // JSON codec
76
- jsonCodec,
77
- // URL codecs
78
- stringToURL, stringToHttpURL, uriComponent,
79
- // Byte conversion codecs
80
- base64ToBytes, base64UrlToBytes, base64urlToBytes, hexToBytes, hexLowerToBytes, utf8ToBytes, bytesToUtf8,
81
- // Complex codecs
82
- base64Json, jwtPayload } from './codecs/index.js';
83
210
  /**
84
211
  * Main API object with factory methods for all validators
85
212
  */
86
- export const v = {
213
+ const v = {
87
214
  // Primitive validators
88
215
  string: () => VldString.create(),
89
216
  number: () => VldNumber.create(),
@@ -132,11 +259,11 @@ export const v = {
132
259
  // JSON validator
133
260
  json: (schema) => VldJson.create(schema),
134
261
  // Custom validator for type-safe user-defined schemas
135
- custom: (options) => customFn(options),
262
+ custom: (options) => custom(options),
136
263
  // File validator for file uploads
137
- file: () => fileFn(),
264
+ file: () => file(),
138
265
  // Function validator for function validation
139
- function: () => functionFn(),
266
+ function: () => functionValidator(),
140
267
  // Preprocessing
141
268
  preprocess: (preprocessor, schema) => VldPreprocess.create(preprocessor, schema),
142
269
  // Coercion API
@@ -148,33 +275,33 @@ export const v = {
148
275
  bigint: () => VldCoerceBigInt.create(),
149
276
  },
150
277
  // String format validators (Zod 4 parity)
151
- email: (options) => stringFormats.email(options),
152
- uuid: (options) => stringFormats.uuid(options),
153
- uuidv4: () => stringFormats.uuidv4(),
154
- hostname: () => stringFormats.hostname(),
155
- emoji: () => stringFormats.emoji(),
156
- base64: () => stringFormats.base64(),
157
- base64url: () => stringFormats.base64url(),
158
- hex: () => stringFormats.hex(),
159
- jwt: () => stringFormats.jwt(),
160
- nanoid: () => stringFormats.nanoid(),
161
- cuid: () => stringFormats.cuid(),
162
- cuid2: () => stringFormats.cuid2(),
163
- ulid: () => stringFormats.ulid(),
164
- ipv4: () => stringFormats.ipv4(),
165
- ipv6: () => stringFormats.ipv6(),
166
- mac: () => stringFormats.mac(),
167
- cidrv4: () => stringFormats.cidrv4(),
168
- cidrv6: () => stringFormats.cidrv6(),
169
- e164: () => stringFormats.e164(),
170
- hash: (algorithm) => stringFormats.hash(algorithm),
278
+ email: (options) => email(options),
279
+ uuid: (options) => uuid(options),
280
+ uuidv4: () => uuidv4(),
281
+ hostname: () => hostname(),
282
+ emoji: () => emoji(),
283
+ base64: () => base64(),
284
+ base64url: () => base64url(),
285
+ hex: () => hex(),
286
+ jwt: () => jwt(),
287
+ nanoid: () => nanoid(),
288
+ cuid: () => cuid(),
289
+ cuid2: () => cuid2(),
290
+ ulid: () => ulid(),
291
+ ipv4: () => ipv4(),
292
+ ipv6: () => ipv6(),
293
+ mac: () => mac(),
294
+ cidrv4: () => cidrv4(),
295
+ cidrv6: () => cidrv6(),
296
+ e164: () => e164(),
297
+ hash: (algorithm) => hash(algorithm),
171
298
  iso: {
172
- date: () => stringFormats.iso.date(),
173
- time: () => stringFormats.iso.time(),
174
- dateTime: () => stringFormats.iso.dateTime(),
175
- duration: () => stringFormats.iso.duration(),
299
+ date: () => iso.date(),
300
+ time: () => iso.time(),
301
+ dateTime: () => iso.dateTime(),
302
+ duration: () => iso.duration(),
176
303
  },
177
- stringFormat: (name, validator) => stringFormats.stringFormat(name, validator),
304
+ stringFormat: (name, validator) => stringFormat(name, validator),
178
305
  // Template literal validator
179
306
  templateLiteral: (...components) => templateLiteral(...components),
180
307
  // Codec validators (binary data validators)
@@ -184,6 +311,6 @@ export const v = {
184
311
  // Codec factory
185
312
  codec: (inputValidator, outputValidator, transform) => VldCodec.create(inputValidator, outputValidator, transform)
186
313
  };
187
- // For backward compatibility during migration
188
- export default v;
189
- //# sourceMappingURL=index.js.map
314
+
315
+ export { VldIntersection, createLogger, createNoOpLogger, v as default, disableLogging, enableDebug, getLogger, initLogger, setLogLevel, v };
316
+ //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * VLD - Fast, Type-Safe Validation Library\n * Zero dependencies, blazing fast performance\n * \n * This is the new modular implementation with:\n * - Immutable validators (no memory leaks)\n * - Secure deepMerge (no prototype pollution)\n * - TypeScript strict mode support\n * - Better performance through pooling and memoization\n */\n\n// Import base class\nimport { VldBase } from './validators/base';\n\n// Import validators\nimport { VldString } from './validators/string';\nimport { VldNumber } from './validators/number';\nimport { VldBoolean } from './validators/boolean';\nimport { VldDate } from './validators/date';\nimport { VldStringBool } from './validators/string-bool';\nimport { VldArray } from './validators/array';\nimport { VldObject } from './validators/object';\nimport { VldUnion } from './validators/union';\nimport { VldLiteral } from './validators/literal';\nimport { VldBigInt } from './validators/bigint';\nimport { VldSymbol } from './validators/symbol';\nimport { VldTuple } from './validators/tuple';\nimport { VldRecord } from './validators/record';\nimport { VldSet } from './validators/set';\nimport { VldMap } from './validators/map';\nimport { VldEnum } from './validators/enum';\nimport { VldIntersection } from './validators/intersection';\nimport { VldAny } from './validators/any';\nimport { VldUnknown } from './validators/unknown';\nimport { VldVoid } from './validators/void';\nimport { VldNever } from './validators/never';\nimport { VldNull } from './validators/null';\nimport { VldUndefined } from './validators/undefined';\nimport { VldNan } from './validators/nan';\nimport { VldLazy } from './validators/lazy';\nimport { VldDiscriminatedUnion } from './validators/discriminated-union';\nimport { VldXor } from './validators/xor';\nimport { VldJson } from './validators/json';\nimport { templateLiteral } from './validators/template-literal';\nimport { custom as customFn, type CustomValidatorOptions } from './validators/custom';\nimport { file as fileFn } from './validators/file';\nimport { functionValidator as functionFn } from './validators/function';\nimport { VldPreprocess } from './validators/base';\nimport { VldOptional } from './validators/base';\nimport { VldNullable } from './validators/base';\nimport { VldNullish } from './validators/base';\nimport { VldCodec } from './validators/codec';\nimport { VldBase64 } from './validators/base64';\nimport { VldHex } from './validators/hex';\nimport { VldUint8Array } from './validators/uint8array';\n\n// Import coercion validators\nimport { VldCoerceString } from './coercion/string';\nimport { VldCoerceNumber } from './coercion/number';\nimport { VldCoerceBoolean } from './coercion/boolean';\nimport { VldCoerceDate } from './coercion/date';\nimport { VldCoerceBigInt } from './coercion/bigint';\n\n// Import string format validators\nimport * as stringFormats from './validators/string-formats';\n\n// Re-export types\nexport type { ParseResult } from './validators/base';\nexport type { Infer, Input, Output } from './validators';\n\n// Re-export base classes for extension\nexport { VldBase } from './validators/base';\nexport { VldIntersection } from './validators/intersection';\n\n// Re-export locale functionality\nexport { setLocale, getLocale, getMessages, type Locale } from './locales';\n\n// Re-export error formatting utilities\nexport { \n VldError, \n VldIssue, \n VldErrorCode,\n VldErrorTree,\n VldFlattenedError,\n treeifyError, \n prettifyError, \n flattenError \n} from './errors';\n\n// Re-export codec utilities\nexport { \n base64ToUint8Array,\n uint8ArrayToBase64,\n uint8ArrayToBase64Url,\n hexToUint8Array,\n uint8ArrayToHex,\n stringToUint8Array,\n uint8ArrayToString\n} from './utils/codec-utils';\n\n// Re-export codec types\nexport type { CodecTransform } from './validators/codec';\n\n// Re-export predefined codecs\nexport {\n // String conversion codecs\n stringToNumber,\n stringToInt,\n stringToBigInt,\n numberToBigInt,\n stringToBoolean,\n \n // Date conversion codecs \n isoDatetimeToDate,\n epochSecondsToDate,\n epochMillisToDate,\n \n // JSON codec\n jsonCodec,\n \n // URL codecs\n stringToURL,\n stringToHttpURL,\n uriComponent,\n \n // Byte conversion codecs\n base64ToBytes,\n base64UrlToBytes,\n base64urlToBytes,\n hexToBytes,\n hexLowerToBytes,\n utf8ToBytes,\n bytesToUtf8,\n \n // Complex codecs\n base64Json,\n jwtPayload\n} from './codecs';\n\n/**\n * Main API object with factory methods for all validators\n */\nexport const v = {\n // Primitive validators\n string: () => VldString.create(),\n number: () => VldNumber.create(),\n int: () => VldNumber.create().int(),\n int32: () => VldNumber.create().int().min(-2147483648).max(2147483647),\n boolean: () => VldBoolean.create(),\n date: () => VldDate.create(),\n bigint: () => VldBigInt.create(),\n symbol: () => VldSymbol.create(),\n stringbool: (options?: { truthy?: readonly string[]; falsy?: readonly string[]; caseSensitive?: boolean }) =>\n VldStringBool.create(options),\n \n // Complex validators\n array: <T>(item: VldBase<unknown, T>) => VldArray.create(item),\n object: <T extends Record<string, any>>(shape: { [K in keyof T]: VldBase<unknown, T[K]> }) =>\n VldObject.create(shape),\n strictObject: <T extends Record<string, any>>(shape: { [K in keyof T]: VldBase<unknown, T[K]> }) =>\n VldObject.create(shape).strict(),\n looseObject: <T extends Record<string, any>>(shape: { [K in keyof T]: VldBase<unknown, T[K]> }) =>\n VldObject.create(shape).passthrough(),\n tuple: <T extends readonly VldBase<any, any>[]>(...items: T) => VldTuple.create(...items),\n record: <T>(value: VldBase<unknown, T>) => VldRecord.create(value),\n partialRecord: <T>(value: VldBase<unknown, T>) => VldRecord.create(value).partial(),\n looseRecord: <T>(value: VldBase<unknown, T>) => VldRecord.create(value).loose(),\n set: <T>(item: VldBase<unknown, T>) => VldSet.create(item),\n map: <K, V>(key: VldBase<unknown, K>, value: VldBase<unknown, V>) => VldMap.create(key, value),\n \n // Union and intersection\n union: <T extends readonly VldBase<any, any>[]>(...validators: T) =>\n VldUnion.create(...validators),\n intersection: <A, B>(first: VldBase<unknown, A>, second: VldBase<unknown, B>) =>\n VldIntersection.create(first, second),\n discriminatedUnion: <K extends string, T extends readonly VldBase<any, any>[]>(\n discriminator: K,\n ...options: T\n ) => VldDiscriminatedUnion.create(discriminator, [...options] as any),\n xor: <T extends readonly VldBase<any, any>[]>(...options: T) =>\n VldXor.create([...options] as any),\n \n // Literal and enum\n literal: <T extends string | number | boolean | null | undefined>(value: T) => \n VldLiteral.create(value),\n enum: <T extends readonly [string, ...string[]]>(...values: T) => VldEnum.create(values as any),\n \n // Special validators\n any: () => VldAny.create(),\n unknown: () => VldUnknown.create(),\n void: () => VldVoid.create(),\n never: () => VldNever.create(),\n null: () => VldNull.create(),\n undefined: () => VldUndefined.create(),\n nan: () => VldNan.create(),\n\n // NEVER constant - Zod 4 API parity for use in transforms\n NEVER: VldNever.create(),\n \n // Utility validators\n optional: <T>(validator: VldBase<unknown, T>) => VldOptional.create(validator),\n nullable: <T>(validator: VldBase<unknown, T>) => VldNullable.create(validator),\n nullish: <T>(validator: VldBase<unknown, T>) => VldNullish.create(validator),\n\n // Recursive schemas\n lazy: <T>(schemaGetter: () => VldBase<unknown, T>) => VldLazy.create(schemaGetter),\n\n // JSON validator\n json: <T = unknown>(schema?: VldBase<unknown, T>) => VldJson.create(schema),\n\n // Custom validator for type-safe user-defined schemas\n custom: <TOutput = unknown>(\n options: CustomValidatorOptions<TOutput>\n ) => customFn<TOutput>(options),\n\n // File validator for file uploads\n file: () => fileFn(),\n\n // Function validator for function validation\n function: () => functionFn(),\n\n // Preprocessing\n preprocess: <TInput, TOutput>(\n preprocessor: (input: unknown) => unknown,\n schema: VldBase<TInput, TOutput>\n ) => VldPreprocess.create(preprocessor, schema),\n\n // Coercion API\n coerce: {\n string: () => VldCoerceString.create(),\n number: () => VldCoerceNumber.create(),\n boolean: () => VldCoerceBoolean.create(),\n date: () => VldCoerceDate.create(),\n bigint: () => VldCoerceBigInt.create(),\n },\n\n // String format validators (Zod 4 parity)\n email: (options?: { pattern?: RegExp }) => stringFormats.email(options),\n uuid: (options?: { version?: 'v4' | 'v6' | 'v7' }) => stringFormats.uuid(options),\n uuidv4: () => stringFormats.uuidv4(),\n hostname: () => stringFormats.hostname(),\n emoji: () => stringFormats.emoji(),\n base64: () => stringFormats.base64(),\n base64url: () => stringFormats.base64url(),\n hex: () => stringFormats.hex(),\n jwt: () => stringFormats.jwt(),\n nanoid: () => stringFormats.nanoid(),\n cuid: () => stringFormats.cuid(),\n cuid2: () => stringFormats.cuid2(),\n ulid: () => stringFormats.ulid(),\n ipv4: () => stringFormats.ipv4(),\n ipv6: () => stringFormats.ipv6(),\n mac: () => stringFormats.mac(),\n cidrv4: () => stringFormats.cidrv4(),\n cidrv6: () => stringFormats.cidrv6(),\n e164: () => stringFormats.e164(),\n hash: (algorithm: 'md5' | 'sha1' | 'sha256' | 'sha384' | 'sha512') =>\n stringFormats.hash(algorithm),\n iso: {\n date: () => stringFormats.iso.date(),\n time: () => stringFormats.iso.time(),\n dateTime: () => stringFormats.iso.dateTime(),\n duration: () => stringFormats.iso.duration(),\n },\n stringFormat: (name: string, validator: ((val: string) => boolean) | RegExp) =>\n stringFormats.stringFormat(name, validator),\n\n // Template literal validator\n templateLiteral: (...components: (VldBase<any, any> | string)[]) => templateLiteral(...components),\n\n // Codec validators (binary data validators)\n base64Bytes: () => VldBase64.create(),\n hexBytes: () => VldHex.create(),\n uint8Array: () => VldUint8Array.create(),\n \n // Codec factory\n codec: <TInput, TOutput>(\n inputValidator: VldBase<unknown, TInput>,\n outputValidator: VldBase<unknown, TOutput>,\n transform: {\n decode: (value: TInput) => TOutput | Promise<TOutput>;\n encode: (value: TOutput) => TInput | Promise<TInput>;\n }\n ) => VldCodec.create(inputValidator, outputValidator, transform)\n};\n\n// For backward compatibility during migration\nexport default v;"]}
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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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * VLD Kernel
3
+ *
4
+ * The kernel is the core of the VLD plugin system.
5
+ * It manages plugins, validators, transforms, and codecs.
6
+ */
7
+ import type { VldPlugin, VldKernelInstance, VldKernelOptions, PluginBuilder } from './plugins/types';
8
+ /**
9
+ * Create the VLD kernel
10
+ */
11
+ export declare function createVldKernel(options?: VldKernelOptions): VldKernelInstance;
12
+ /**
13
+ * Create a plugin using the builder pattern
14
+ */
15
+ export declare function definePlugin(): PluginBuilder;
16
+ /**
17
+ * Get or create the global VLD kernel
18
+ */
19
+ export declare function getVldKernel(options?: VldKernelOptions): VldKernelInstance;
20
+ /**
21
+ * Reset the global VLD kernel
22
+ */
23
+ export declare function resetVldKernel(): Promise<void>;
24
+ /**
25
+ * Use a plugin with the global kernel
26
+ */
27
+ export declare function usePlugin(plugin: VldPlugin): VldKernelInstance;
28
+ export type { VldContext, VldPlugin, VldKernelInstance, VldKernelOptions, ValidatorFactory, TransformFactory, CodecFactory, HookContext, PluginBuilder, PluginMeta, PluginHooks } from './plugins/types';
29
+ //# sourceMappingURL=kernel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kernel.d.ts","sourceRoot":"","sources":["../src/kernel.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,KAAK,EAEV,SAAS,EACT,iBAAiB,EACjB,gBAAgB,EAKhB,aAAa,EACd,MAAM,iBAAiB,CAAC;AAEzB;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,GAAE,gBAAqB,GAAG,iBAAiB,CA6WjF;AAMD;;GAEG;AACH,wBAAgB,YAAY,IAAI,aAAa,CAsE5C;AAQD;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,iBAAiB,CAK1E;AAED;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAKpD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,iBAAiB,CAE9D;AAGD,YAAY,EACV,UAAU,EACV,SAAS,EACT,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,aAAa,EACb,UAAU,EACV,WAAW,EACZ,MAAM,iBAAiB,CAAC"}