@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.
- package/CHANGELOG.md +449 -333
- package/README.md +1171 -1130
- package/dist/chunks/bigint-ZKkWLdmi.js +1628 -0
- package/dist/chunks/bigint-ZKkWLdmi.js.map +1 -0
- package/dist/{coercion/string.js → chunks/date-7Iz2BGsL.js} +271 -5
- package/dist/chunks/date-7Iz2BGsL.js.map +1 -0
- package/dist/chunks/index-BoV-4S1F.js +894 -0
- package/dist/chunks/index-BoV-4S1F.js.map +1 -0
- package/dist/chunks/index-eWXdjyyy.js +426 -0
- package/dist/chunks/index-eWXdjyyy.js.map +1 -0
- package/dist/chunks/json-nIhyRPOU.js +1934 -0
- package/dist/chunks/json-nIhyRPOU.js.map +1 -0
- package/dist/{validators/unknown.js → chunks/unknown-CjSRcELI.js} +6 -3
- package/dist/chunks/unknown-CjSRcELI.js.map +1 -0
- package/dist/cjs/errors.cjs +387 -0
- package/dist/cjs/errors.cjs.map +1 -0
- package/dist/cjs/index.cjs +9815 -0
- package/dist/cjs/index.cjs.map +1 -0
- package/dist/cjs/locales/index.cjs +2877 -0
- package/dist/cjs/locales/index.cjs.map +1 -0
- package/dist/cjs/locales/lazy.cjs +3169 -0
- package/dist/cjs/locales/lazy.cjs.map +1 -0
- package/dist/cjs/mini.cjs +7161 -0
- package/dist/cjs/mini.cjs.map +1 -0
- package/dist/cli/bin.d.ts +8 -0
- package/dist/cli/bin.d.ts.map +1 -0
- package/dist/cli/commands/benchmark.d.ts +11 -0
- package/dist/cli/commands/benchmark.d.ts.map +1 -0
- package/dist/cli/commands/validate.d.ts +11 -0
- package/dist/cli/commands/validate.d.ts.map +1 -0
- package/dist/cli/index.d.ts +59 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/codecs/index.d.ts.map +1 -1
- package/dist/codecs/index.js +4 -256
- package/dist/codecs/index.js.map +1 -1
- package/dist/coercion/boolean.d.ts.map +1 -1
- package/dist/coercion/index.d.ts +11 -0
- package/dist/coercion/index.d.ts.map +1 -0
- package/dist/coercion/{bigint.js → index.js} +7 -4
- package/dist/coercion/index.js.map +1 -0
- package/dist/compat/emitter.d.ts +73 -0
- package/dist/compat/emitter.d.ts.map +1 -0
- package/dist/compat/emitter.js +181 -0
- package/dist/compat/emitter.js.map +1 -0
- package/dist/compat/index.d.ts +15 -0
- package/dist/compat/index.d.ts.map +1 -0
- package/dist/compat/result.d.ts +128 -0
- package/dist/compat/result.d.ts.map +1 -0
- package/dist/compat/result.js +171 -0
- package/dist/compat/result.js.map +1 -0
- package/dist/errors.d.ts +58 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +106 -15
- package/dist/errors.js.map +1 -1
- package/dist/events.d.ts +140 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/index.d.ts +13 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +230 -103
- package/dist/index.js.map +1 -1
- package/dist/kernel.d.ts +29 -0
- package/dist/kernel.d.ts.map +1 -0
- package/dist/kernel.js +405 -0
- package/dist/kernel.js.map +1 -0
- package/dist/locales/af.js +4 -2
- package/dist/locales/af.js.map +1 -1
- package/dist/locales/ar.js +4 -2
- package/dist/locales/ar.js.map +1 -1
- package/dist/locales/bn.js +4 -2
- package/dist/locales/bn.js.map +1 -1
- package/dist/locales/da.js +4 -2
- package/dist/locales/da.js.map +1 -1
- package/dist/locales/de.js +4 -2
- package/dist/locales/de.js.map +1 -1
- package/dist/locales/en.js +4 -2
- package/dist/locales/en.js.map +1 -1
- package/dist/locales/es-MX.js +4 -2
- package/dist/locales/es-MX.js.map +1 -1
- package/dist/locales/es.js +4 -2
- package/dist/locales/es.js.map +1 -1
- package/dist/locales/fi.js +4 -2
- package/dist/locales/fi.js.map +1 -1
- package/dist/locales/fr.js +4 -2
- package/dist/locales/fr.js.map +1 -1
- package/dist/locales/hi.js +4 -2
- package/dist/locales/hi.js.map +1 -1
- package/dist/locales/id.js +4 -2
- package/dist/locales/id.js.map +1 -1
- package/dist/locales/index.js +3 -91
- package/dist/locales/index.js.map +1 -1
- package/dist/locales/it.js +4 -2
- package/dist/locales/it.js.map +1 -1
- package/dist/locales/ja.js +4 -2
- package/dist/locales/ja.js.map +1 -1
- package/dist/locales/ko.js +4 -2
- package/dist/locales/ko.js.map +1 -1
- package/dist/locales/lazy.d.ts +111 -0
- package/dist/locales/lazy.d.ts.map +1 -0
- package/dist/locales/lazy.js +220 -0
- package/dist/locales/lazy.js.map +1 -0
- package/dist/locales/nl.js +4 -2
- package/dist/locales/nl.js.map +1 -1
- package/dist/locales/no.js +4 -2
- package/dist/locales/no.js.map +1 -1
- package/dist/locales/pl.js +4 -2
- package/dist/locales/pl.js.map +1 -1
- package/dist/locales/pt-BR.js +4 -2
- package/dist/locales/pt-BR.js.map +1 -1
- package/dist/locales/pt.js +4 -2
- package/dist/locales/pt.js.map +1 -1
- package/dist/locales/ru.js +4 -2
- package/dist/locales/ru.js.map +1 -1
- package/dist/locales/sv.js +4 -2
- package/dist/locales/sv.js.map +1 -1
- package/dist/locales/sw.js +4 -2
- package/dist/locales/sw.js.map +1 -1
- package/dist/locales/th.js +4 -2
- package/dist/locales/th.js.map +1 -1
- package/dist/locales/tr.js +4 -2
- package/dist/locales/tr.js.map +1 -1
- package/dist/locales/vi.js +4 -2
- package/dist/locales/vi.js.map +1 -1
- package/dist/locales/zh.js +4 -2
- package/dist/locales/zh.js.map +1 -1
- package/dist/logger.d.ts +94 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/mini.d.ts +182 -0
- package/dist/mini.d.ts.map +1 -0
- package/dist/mini.js +132 -0
- package/dist/mini.js.map +1 -0
- package/dist/pigment.d.ts +124 -0
- package/dist/pigment.d.ts.map +1 -0
- package/dist/pigment.js +178 -0
- package/dist/pigment.js.map +1 -0
- package/dist/plugins/index.d.ts +8 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/types.d.ts +186 -0
- package/dist/plugins/types.d.ts.map +1 -0
- package/dist/utils/codec-utils.d.ts.map +1 -1
- package/dist/utils/ip-validation.d.ts.map +1 -1
- package/dist/validators/base.d.ts +3 -0
- package/dist/validators/base.d.ts.map +1 -1
- package/dist/validators/index.js +5 -45
- package/dist/validators/index.js.map +1 -1
- package/dist/validators/object.d.ts.map +1 -1
- package/dist/validators/template-literal.d.ts.map +1 -1
- package/package.json +153 -79
- package/dist/coercion/bigint.js.map +0 -1
- package/dist/coercion/boolean.js +0 -67
- package/dist/coercion/boolean.js.map +0 -1
- package/dist/coercion/date.js +0 -52
- package/dist/coercion/date.js.map +0 -1
- package/dist/coercion/number.js +0 -160
- package/dist/coercion/number.js.map +0 -1
- package/dist/coercion/string.js.map +0 -1
- package/dist/locales/backup-en.js +0 -105
- package/dist/locales/backup-en.js.map +0 -1
- package/dist/locales/types.js +0 -2
- package/dist/locales/types.js.map +0 -1
- package/dist/utils/codec-utils.js +0 -223
- package/dist/utils/codec-utils.js.map +0 -1
- package/dist/utils/deep-merge.js +0 -76
- package/dist/utils/deep-merge.js.map +0 -1
- package/dist/utils/ip-validation.js +0 -78
- package/dist/utils/ip-validation.js.map +0 -1
- package/dist/utils/security.js +0 -61
- package/dist/utils/security.js.map +0 -1
- package/dist/validators/any.js +0 -25
- package/dist/validators/any.js.map +0 -1
- package/dist/validators/array.js +0 -190
- package/dist/validators/array.js.map +0 -1
- package/dist/validators/base.js +0 -491
- package/dist/validators/base.js.map +0 -1
- package/dist/validators/base64.js +0 -65
- package/dist/validators/base64.js.map +0 -1
- package/dist/validators/bigint.js +0 -142
- package/dist/validators/bigint.js.map +0 -1
- package/dist/validators/boolean.js +0 -114
- package/dist/validators/boolean.js.map +0 -1
- package/dist/validators/codec.js +0 -182
- package/dist/validators/codec.js.map +0 -1
- package/dist/validators/custom.js +0 -50
- package/dist/validators/custom.js.map +0 -1
- package/dist/validators/date.js +0 -227
- package/dist/validators/date.js.map +0 -1
- package/dist/validators/discriminated-union.js +0 -98
- package/dist/validators/discriminated-union.js.map +0 -1
- package/dist/validators/enum.js +0 -82
- package/dist/validators/enum.js.map +0 -1
- package/dist/validators/file.js +0 -114
- package/dist/validators/file.js.map +0 -1
- package/dist/validators/function.js +0 -45
- package/dist/validators/function.js.map +0 -1
- package/dist/validators/hex.js +0 -62
- package/dist/validators/hex.js.map +0 -1
- package/dist/validators/intersection.js +0 -64
- package/dist/validators/intersection.js.map +0 -1
- package/dist/validators/json.js +0 -64
- package/dist/validators/json.js.map +0 -1
- package/dist/validators/lazy.js +0 -42
- package/dist/validators/lazy.js.map +0 -1
- package/dist/validators/literal.js +0 -45
- package/dist/validators/literal.js.map +0 -1
- package/dist/validators/map.js +0 -54
- package/dist/validators/map.js.map +0 -1
- package/dist/validators/nan.js +0 -32
- package/dist/validators/nan.js.map +0 -1
- package/dist/validators/never.js +0 -29
- package/dist/validators/never.js.map +0 -1
- package/dist/validators/null.js +0 -31
- package/dist/validators/null.js.map +0 -1
- package/dist/validators/number.js +0 -225
- package/dist/validators/number.js.map +0 -1
- package/dist/validators/object.js +0 -458
- package/dist/validators/object.js.map +0 -1
- package/dist/validators/record.js +0 -128
- package/dist/validators/record.js.map +0 -1
- package/dist/validators/set.js +0 -51
- package/dist/validators/set.js.map +0 -1
- package/dist/validators/string-bool.js +0 -127
- package/dist/validators/string-bool.js.map +0 -1
- package/dist/validators/string-formats.js +0 -120
- package/dist/validators/string-formats.js.map +0 -1
- package/dist/validators/string.js +0 -253
- package/dist/validators/string.js.map +0 -1
- package/dist/validators/symbol.js +0 -42
- package/dist/validators/symbol.js.map +0 -1
- package/dist/validators/template-literal.js +0 -101
- package/dist/validators/template-literal.js.map +0 -1
- package/dist/validators/tuple.js +0 -55
- package/dist/validators/tuple.js.map +0 -1
- package/dist/validators/uint8array.js +0 -98
- package/dist/validators/uint8array.js.map +0 -1
- package/dist/validators/undefined.js +0 -31
- package/dist/validators/undefined.js.map +0 -1
- package/dist/validators/union.js +0 -126
- package/dist/validators/union.js.map +0 -1
- package/dist/validators/unknown.js.map +0 -1
- package/dist/validators/void.js +0 -35
- package/dist/validators/void.js.map +0 -1
- package/dist/validators/xor.js +0 -64
- 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
|
-
|
|
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) =>
|
|
262
|
+
custom: (options) => custom(options),
|
|
136
263
|
// File validator for file uploads
|
|
137
|
-
file: () =>
|
|
264
|
+
file: () => file(),
|
|
138
265
|
// Function validator for function validation
|
|
139
|
-
function: () =>
|
|
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) =>
|
|
152
|
-
uuid: (options) =>
|
|
153
|
-
uuidv4: () =>
|
|
154
|
-
hostname: () =>
|
|
155
|
-
emoji: () =>
|
|
156
|
-
base64: () =>
|
|
157
|
-
base64url: () =>
|
|
158
|
-
hex: () =>
|
|
159
|
-
jwt: () =>
|
|
160
|
-
nanoid: () =>
|
|
161
|
-
cuid: () =>
|
|
162
|
-
cuid2: () =>
|
|
163
|
-
ulid: () =>
|
|
164
|
-
ipv4: () =>
|
|
165
|
-
ipv6: () =>
|
|
166
|
-
mac: () =>
|
|
167
|
-
cidrv4: () =>
|
|
168
|
-
cidrv6: () =>
|
|
169
|
-
e164: () =>
|
|
170
|
-
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: () =>
|
|
173
|
-
time: () =>
|
|
174
|
-
dateTime: () =>
|
|
175
|
-
duration: () =>
|
|
299
|
+
date: () => iso.date(),
|
|
300
|
+
time: () => iso.time(),
|
|
301
|
+
dateTime: () => iso.dateTime(),
|
|
302
|
+
duration: () => iso.duration(),
|
|
176
303
|
},
|
|
177
|
-
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
|
-
|
|
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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"}
|
package/dist/kernel.d.ts
ADDED
|
@@ -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"}
|