@oxog/vld 2.0.3 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +33 -1
- package/README.md +101 -37
- package/dist/chunks/errors-core-BeiFUtZM.js +81 -0
- package/dist/chunks/{index-DO8CFMxD.js → index-0R2ntSud.js} +16 -402
- package/dist/chunks/index-BvH403Yy.js +88 -0
- package/dist/chunks/security-B0Pd_vSY.js +35 -0
- package/dist/chunks/string-BJRQod3t.js +530 -0
- package/dist/cjs/chunks/errors-core-DWxLFs2f.cjs +83 -0
- package/dist/cjs/chunks/index-BkI37108.cjs +538 -0
- package/dist/cjs/chunks/index-Cc3bjUMX.cjs +91 -0
- package/dist/cjs/chunks/security-Dc3Jh13T.cjs +37 -0
- package/dist/cjs/chunks/string-BKZrc4hs.cjs +533 -0
- package/dist/cjs/cli/bin.cjs +506 -0
- package/dist/cjs/cli/index.cjs +209 -0
- package/dist/cjs/codecs/index.cjs +45 -0
- package/dist/{chunks/date-50JV_Mfj.js → cjs/coercion/index.cjs} +185 -103
- package/dist/cjs/compat/emitter.cjs +184 -0
- package/dist/cjs/compat/result.cjs +189 -0
- package/dist/cjs/errors.cjs +6 -213
- package/dist/cjs/index.cjs +1471 -10336
- package/dist/cjs/kernel.cjs +415 -0
- package/dist/cjs/locales/af.cjs +108 -0
- package/dist/cjs/locales/ar.cjs +108 -0
- package/dist/cjs/locales/bn.cjs +108 -0
- package/dist/cjs/locales/da.cjs +108 -0
- package/dist/cjs/locales/de.cjs +108 -0
- package/dist/cjs/locales/en.cjs +108 -0
- package/dist/cjs/locales/es-MX.cjs +107 -0
- package/dist/cjs/locales/es.cjs +96 -0
- package/dist/cjs/locales/fi.cjs +108 -0
- package/dist/cjs/locales/fr.cjs +96 -0
- package/dist/cjs/locales/hi.cjs +108 -0
- package/dist/cjs/locales/id.cjs +108 -0
- package/dist/cjs/locales/index.cjs +41 -2875
- package/dist/cjs/locales/it.cjs +108 -0
- package/dist/cjs/locales/ja.cjs +108 -0
- package/dist/cjs/locales/ko.cjs +108 -0
- package/dist/cjs/locales/lazy.cjs +42 -3023
- package/dist/cjs/locales/nl.cjs +108 -0
- package/dist/cjs/locales/no.cjs +108 -0
- package/dist/cjs/locales/pl.cjs +108 -0
- package/dist/cjs/locales/pt-BR.cjs +108 -0
- package/dist/cjs/locales/pt.cjs +108 -0
- package/dist/cjs/locales/ru.cjs +108 -0
- package/dist/cjs/locales/runtime.cjs +51 -0
- package/dist/cjs/locales/sv.cjs +108 -0
- package/dist/cjs/locales/sw.cjs +108 -0
- package/dist/cjs/locales/th.cjs +108 -0
- package/dist/cjs/locales/tr.cjs +108 -0
- package/dist/cjs/locales/vi.cjs +108 -0
- package/dist/cjs/locales/zh.cjs +108 -0
- package/dist/cjs/mini.cjs +121 -7353
- package/dist/cjs/pigment.cjs +207 -0
- package/dist/cjs/plugins/index.cjs +12 -0
- package/dist/cjs/registry.cjs +37 -0
- package/dist/cjs/v3/index.cjs +425 -0
- package/dist/cjs/v4/core/index.cjs +894 -0
- package/dist/cjs/v4/index.cjs +425 -0
- package/dist/cjs/v4/locales/index.cjs +130 -0
- package/dist/cjs/v4/mini/index.cjs +509 -0
- package/dist/cjs/v4-mini/index.cjs +532 -0
- package/dist/cjs/validators/any.cjs +40 -0
- package/dist/cjs/validators/array.cjs +283 -0
- package/dist/cjs/validators/base.cjs +887 -0
- package/dist/cjs/validators/base64.cjs +73 -0
- package/dist/cjs/validators/bigint.cjs +232 -0
- package/dist/cjs/validators/boolean.cjs +146 -0
- package/dist/cjs/validators/codec.cjs +205 -0
- package/dist/cjs/validators/custom.cjs +71 -0
- package/dist/cjs/validators/date.cjs +278 -0
- package/dist/cjs/validators/discriminated-union.cjs +130 -0
- package/dist/cjs/validators/enum.cjs +154 -0
- package/dist/cjs/validators/file.cjs +130 -0
- package/dist/cjs/validators/function.cjs +63 -0
- package/dist/cjs/validators/hex.cjs +70 -0
- package/dist/cjs/validators/index.cjs +123 -0
- package/dist/cjs/validators/intersection.cjs +120 -0
- package/dist/cjs/validators/json.cjs +70 -0
- package/dist/cjs/validators/lazy.cjs +53 -0
- package/dist/cjs/validators/literal.cjs +64 -0
- package/dist/cjs/validators/map.cjs +218 -0
- package/dist/cjs/validators/nan.cjs +41 -0
- package/dist/cjs/validators/never.cjs +36 -0
- package/dist/cjs/validators/null.cjs +43 -0
- package/dist/cjs/validators/number.cjs +427 -0
- package/dist/cjs/validators/object.cjs +868 -0
- package/dist/cjs/validators/promise.cjs +115 -0
- package/dist/cjs/validators/record.cjs +262 -0
- package/dist/cjs/validators/set.cjs +203 -0
- package/dist/cjs/validators/string-bool.cjs +124 -0
- package/dist/cjs/validators/string-formats.cjs +168 -0
- package/dist/cjs/validators/string.cjs +12 -0
- package/dist/cjs/validators/symbol.cjs +62 -0
- package/dist/cjs/validators/template-literal.cjs +108 -0
- package/dist/cjs/validators/tuple.cjs +187 -0
- package/dist/cjs/validators/uint8array.cjs +106 -0
- package/dist/cjs/validators/undefined.cjs +43 -0
- package/dist/cjs/validators/union.cjs +191 -0
- package/dist/cjs/validators/unknown.cjs +40 -0
- package/dist/cjs/validators/void.cjs +48 -0
- package/dist/cjs/validators/xor.cjs +69 -0
- package/dist/cli/bin.d.ts +0 -1
- package/dist/cli/bin.js +407 -0
- package/dist/cli/commands/benchmark.d.ts +1 -2
- package/dist/cli/commands/validate.d.ts +1 -2
- package/dist/cli/index.d.ts +0 -1
- package/dist/cli/index.js +205 -0
- package/dist/codecs/index.d.ts +21 -4
- package/dist/codecs/index.js +11 -4
- package/dist/coercion/bigint.d.ts +2 -3
- package/dist/coercion/boolean.d.ts +3 -3
- package/dist/coercion/date.d.ts +3 -3
- package/dist/coercion/index.d.ts +5 -6
- package/dist/coercion/index.js +473 -5
- package/dist/coercion/number.d.ts +2 -3
- package/dist/coercion/string.d.ts +2 -3
- package/dist/compat/emitter.d.ts +0 -1
- package/dist/compat/emitter.js +0 -1
- package/dist/compat/index.d.ts +4 -5
- package/dist/compat/result.d.ts +1 -2
- package/dist/compat/result.js +0 -1
- package/dist/errors-core.d.ts +39 -0
- package/dist/errors.d.ts +4 -54
- package/dist/errors.js +4 -68
- package/dist/events.d.ts +3 -4
- package/dist/index.d.ts +1186 -835
- package/dist/index.js +1046 -367
- package/dist/kernel.d.ts +2 -3
- package/dist/kernel.js +10 -6
- package/dist/locales/af.d.ts +1 -2
- package/dist/locales/af.js +0 -1
- package/dist/locales/ar.d.ts +1 -2
- package/dist/locales/ar.js +0 -1
- package/dist/locales/bn.d.ts +1 -2
- package/dist/locales/bn.js +0 -1
- package/dist/locales/da.d.ts +1 -2
- package/dist/locales/da.js +0 -1
- package/dist/locales/de.d.ts +1 -2
- package/dist/locales/de.js +0 -1
- package/dist/locales/en.d.ts +1 -2
- package/dist/locales/en.js +0 -1
- package/dist/locales/es-MX.d.ts +1 -2
- package/dist/locales/es-MX.js +0 -1
- package/dist/locales/es.d.ts +1 -2
- package/dist/locales/es.js +0 -1
- package/dist/locales/fi.d.ts +1 -2
- package/dist/locales/fi.js +0 -1
- package/dist/locales/fr.d.ts +1 -2
- package/dist/locales/fr.js +0 -1
- package/dist/locales/hi.d.ts +1 -2
- package/dist/locales/hi.js +0 -1
- package/dist/locales/id.d.ts +1 -2
- package/dist/locales/id.js +0 -1
- package/dist/locales/index.d.ts +10 -15
- package/dist/locales/index.js +28 -2
- package/dist/locales/it.d.ts +1 -2
- package/dist/locales/it.js +0 -1
- package/dist/locales/ja.d.ts +1 -2
- package/dist/locales/ja.js +0 -1
- package/dist/locales/ko.d.ts +1 -2
- package/dist/locales/ko.js +0 -1
- package/dist/locales/lazy.d.ts +4 -26
- package/dist/locales/lazy.js +12 -55
- package/dist/locales/nl.d.ts +1 -2
- package/dist/locales/nl.js +0 -1
- package/dist/locales/no.d.ts +1 -2
- package/dist/locales/no.js +0 -1
- package/dist/locales/pl.d.ts +1 -2
- package/dist/locales/pl.js +0 -1
- package/dist/locales/pt-BR.d.ts +1 -2
- package/dist/locales/pt-BR.js +0 -1
- package/dist/locales/pt.d.ts +1 -2
- package/dist/locales/pt.js +0 -1
- package/dist/locales/ru.d.ts +1 -2
- package/dist/locales/ru.js +0 -1
- package/dist/locales/runtime.d.ts +10 -0
- package/dist/locales/runtime.js +41 -0
- package/dist/locales/sv.d.ts +1 -2
- package/dist/locales/sv.js +0 -1
- package/dist/locales/sw.d.ts +1 -2
- package/dist/locales/sw.js +0 -1
- package/dist/locales/th.d.ts +1 -2
- package/dist/locales/th.js +0 -1
- package/dist/locales/tr.d.ts +1 -2
- package/dist/locales/tr.js +0 -1
- package/dist/locales/types.d.ts +0 -1
- package/dist/locales/vi.d.ts +1 -2
- package/dist/locales/vi.js +0 -1
- package/dist/locales/zh.d.ts +1 -2
- package/dist/locales/zh.js +0 -1
- package/dist/logger.d.ts +0 -1
- package/dist/mini.d.ts +64 -65
- package/dist/mini.js +31 -7
- package/dist/pigment.d.ts +0 -1
- package/dist/pigment.js +6 -4
- package/dist/plugins/index.d.ts +2 -3
- package/dist/plugins/index.js +1 -0
- package/dist/plugins/types.d.ts +4 -5
- package/dist/registry.d.ts +23 -0
- package/dist/registry.js +34 -0
- package/dist/utils/codec-utils.d.ts +0 -1
- package/dist/utils/deep-merge.d.ts +0 -1
- package/dist/utils/ip-validation.d.ts +0 -1
- package/dist/utils/json-schema.d.ts +16 -6
- package/dist/utils/security.d.ts +2 -6
- package/dist/v3/index.d.ts +2 -0
- package/dist/v3/index.js +46 -0
- package/dist/v4/core/index.d.ts +260 -0
- package/dist/v4/core/index.js +277 -0
- package/dist/v4/index.d.ts +4 -0
- package/dist/v4/index.js +50 -0
- package/dist/v4/locales/index.d.ts +53 -0
- package/dist/v4/locales/index.js +77 -0
- package/dist/v4/mini/index.d.ts +2 -0
- package/dist/v4/mini/index.js +47 -0
- package/dist/v4-mini/index.d.ts +22 -0
- package/dist/v4-mini/index.js +75 -0
- package/dist/validators/any.d.ts +7 -2
- package/dist/validators/any.js +37 -0
- package/dist/validators/array.d.ts +9 -2
- package/dist/validators/array.js +279 -0
- package/dist/validators/base.d.ts +150 -6
- package/dist/validators/base.js +868 -0
- package/dist/validators/base64.d.ts +1 -2
- package/dist/validators/base64.js +68 -0
- package/dist/validators/bigint.d.ts +21 -3
- package/dist/validators/bigint.js +228 -0
- package/dist/validators/boolean.d.ts +13 -4
- package/dist/validators/boolean.js +142 -0
- package/dist/validators/codec.d.ts +9 -2
- package/dist/validators/codec.js +200 -0
- package/dist/validators/custom.d.ts +15 -2
- package/dist/validators/custom.js +67 -0
- package/dist/validators/date.d.ts +19 -3
- package/dist/validators/date.js +274 -0
- package/dist/validators/discriminated-union.d.ts +4 -3
- package/dist/validators/discriminated-union.js +123 -0
- package/dist/validators/enum.d.ts +10 -7
- package/dist/validators/enum.js +150 -0
- package/dist/validators/file.d.ts +7 -2
- package/dist/validators/file.js +125 -0
- package/dist/validators/function.d.ts +11 -5
- package/dist/validators/function.js +58 -0
- package/dist/validators/hex.d.ts +1 -2
- package/dist/validators/hex.js +65 -0
- package/dist/validators/index.d.ts +38 -39
- package/dist/validators/index.js +35 -515
- package/dist/validators/intersection.d.ts +1 -2
- package/dist/validators/intersection.js +116 -0
- package/dist/validators/json.d.ts +1 -2
- package/dist/validators/json.js +66 -0
- package/dist/validators/lazy.d.ts +5 -9
- package/dist/validators/lazy.js +50 -0
- package/dist/validators/literal.d.ts +2 -2
- package/dist/validators/literal.js +60 -0
- package/dist/validators/map.d.ts +15 -2
- package/dist/validators/map.js +214 -0
- package/dist/validators/nan.d.ts +2 -3
- package/dist/validators/nan.js +38 -0
- package/dist/validators/never.d.ts +1 -2
- package/dist/validators/never.js +32 -0
- package/dist/validators/null.d.ts +3 -3
- package/dist/validators/null.js +40 -0
- package/dist/validators/number.d.ts +56 -27
- package/dist/validators/number.js +423 -0
- package/dist/validators/object.d.ts +30 -9
- package/dist/validators/object.js +864 -0
- package/dist/validators/promise.d.ts +15 -10
- package/dist/validators/promise.js +111 -0
- package/dist/validators/record.d.ts +11 -2
- package/dist/validators/record.js +258 -0
- package/dist/validators/set.d.ts +11 -2
- package/dist/validators/set.js +199 -0
- package/dist/validators/string-bool.d.ts +7 -10
- package/dist/validators/string-bool.js +120 -0
- package/dist/validators/string-formats.d.ts +7 -4
- package/dist/validators/string-formats.js +135 -0
- package/dist/validators/string.d.ts +39 -18
- package/dist/validators/string.js +4 -0
- package/dist/validators/symbol.d.ts +8 -3
- package/dist/validators/symbol.js +58 -0
- package/dist/validators/template-literal.d.ts +1 -2
- package/dist/validators/template-literal.js +103 -0
- package/dist/validators/tuple.d.ts +15 -2
- package/dist/validators/tuple.js +183 -0
- package/dist/validators/uint8array.d.ts +3 -4
- package/dist/validators/uint8array.js +101 -0
- package/dist/validators/undefined.d.ts +3 -3
- package/dist/validators/undefined.js +40 -0
- package/dist/validators/union.d.ts +7 -4
- package/dist/validators/union.js +187 -0
- package/dist/validators/unknown.d.ts +7 -2
- package/dist/{chunks/unknown-Dhzri_T-.js → validators/unknown.js} +12 -3
- package/dist/validators/void.d.ts +3 -2
- package/dist/validators/void.js +44 -0
- package/dist/validators/xor.d.ts +2 -3
- package/dist/validators/xor.js +66 -0
- package/package.json +114 -30
- package/dist/chunks/bigint-CRS0QVsy.js +0 -1854
- package/dist/chunks/bigint-CRS0QVsy.js.map +0 -1
- package/dist/chunks/date-50JV_Mfj.js.map +0 -1
- package/dist/chunks/index-DO8CFMxD.js.map +0 -1
- package/dist/chunks/json-Cp4WO0M9.js +0 -2021
- package/dist/chunks/json-Cp4WO0M9.js.map +0 -1
- package/dist/chunks/unknown-Dhzri_T-.js.map +0 -1
- package/dist/cjs/errors.cjs.map +0 -1
- package/dist/cjs/index.cjs.map +0 -1
- package/dist/cjs/locales/index.cjs.map +0 -1
- package/dist/cjs/locales/lazy.cjs.map +0 -1
- package/dist/cjs/mini.cjs.map +0 -1
- package/dist/cli/bin.d.ts.map +0 -1
- package/dist/cli/commands/benchmark.d.ts.map +0 -1
- package/dist/cli/commands/validate.d.ts.map +0 -1
- package/dist/cli/index.d.ts.map +0 -1
- package/dist/codecs/index.d.ts.map +0 -1
- package/dist/codecs/index.js.map +0 -1
- package/dist/coercion/bigint.d.ts.map +0 -1
- package/dist/coercion/boolean.d.ts.map +0 -1
- package/dist/coercion/date.d.ts.map +0 -1
- package/dist/coercion/index.d.ts.map +0 -1
- package/dist/coercion/index.js.map +0 -1
- package/dist/coercion/number.d.ts.map +0 -1
- package/dist/coercion/string.d.ts.map +0 -1
- package/dist/compat/emitter.d.ts.map +0 -1
- package/dist/compat/emitter.js.map +0 -1
- package/dist/compat/index.d.ts.map +0 -1
- package/dist/compat/result.d.ts.map +0 -1
- package/dist/compat/result.js.map +0 -1
- package/dist/errors.d.ts.map +0 -1
- package/dist/errors.js.map +0 -1
- package/dist/events.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/kernel.d.ts.map +0 -1
- package/dist/kernel.js.map +0 -1
- package/dist/locales/af.d.ts.map +0 -1
- package/dist/locales/af.js.map +0 -1
- package/dist/locales/ar.d.ts.map +0 -1
- package/dist/locales/ar.js.map +0 -1
- package/dist/locales/backup-en.d.ts +0 -3
- package/dist/locales/backup-en.d.ts.map +0 -1
- package/dist/locales/bn.d.ts.map +0 -1
- package/dist/locales/bn.js.map +0 -1
- package/dist/locales/da.d.ts.map +0 -1
- package/dist/locales/da.js.map +0 -1
- package/dist/locales/de.d.ts.map +0 -1
- package/dist/locales/de.js.map +0 -1
- package/dist/locales/en.d.ts.map +0 -1
- package/dist/locales/en.js.map +0 -1
- package/dist/locales/es-MX.d.ts.map +0 -1
- package/dist/locales/es-MX.js.map +0 -1
- package/dist/locales/es.d.ts.map +0 -1
- package/dist/locales/es.js.map +0 -1
- package/dist/locales/fi.d.ts.map +0 -1
- package/dist/locales/fi.js.map +0 -1
- package/dist/locales/fr.d.ts.map +0 -1
- package/dist/locales/fr.js.map +0 -1
- package/dist/locales/hi.d.ts.map +0 -1
- package/dist/locales/hi.js.map +0 -1
- package/dist/locales/id.d.ts.map +0 -1
- package/dist/locales/id.js.map +0 -1
- package/dist/locales/index.d.ts.map +0 -1
- package/dist/locales/index.js.map +0 -1
- package/dist/locales/it.d.ts.map +0 -1
- package/dist/locales/it.js.map +0 -1
- package/dist/locales/ja.d.ts.map +0 -1
- package/dist/locales/ja.js.map +0 -1
- package/dist/locales/ko.d.ts.map +0 -1
- package/dist/locales/ko.js.map +0 -1
- package/dist/locales/lazy.d.ts.map +0 -1
- package/dist/locales/lazy.js.map +0 -1
- package/dist/locales/nl.d.ts.map +0 -1
- package/dist/locales/nl.js.map +0 -1
- package/dist/locales/no.d.ts.map +0 -1
- package/dist/locales/no.js.map +0 -1
- package/dist/locales/pl.d.ts.map +0 -1
- package/dist/locales/pl.js.map +0 -1
- package/dist/locales/pt-BR.d.ts.map +0 -1
- package/dist/locales/pt-BR.js.map +0 -1
- package/dist/locales/pt.d.ts.map +0 -1
- package/dist/locales/pt.js.map +0 -1
- package/dist/locales/ru.d.ts.map +0 -1
- package/dist/locales/ru.js.map +0 -1
- package/dist/locales/sv.d.ts.map +0 -1
- package/dist/locales/sv.js.map +0 -1
- package/dist/locales/sw.d.ts.map +0 -1
- package/dist/locales/sw.js.map +0 -1
- package/dist/locales/th.d.ts.map +0 -1
- package/dist/locales/th.js.map +0 -1
- package/dist/locales/tr.d.ts.map +0 -1
- package/dist/locales/tr.js.map +0 -1
- package/dist/locales/types.d.ts.map +0 -1
- package/dist/locales/vi.d.ts.map +0 -1
- package/dist/locales/vi.js.map +0 -1
- package/dist/locales/zh.d.ts.map +0 -1
- package/dist/locales/zh.js.map +0 -1
- package/dist/logger.d.ts.map +0 -1
- package/dist/mini.d.ts.map +0 -1
- package/dist/mini.js.map +0 -1
- package/dist/pigment.d.ts.map +0 -1
- package/dist/pigment.js.map +0 -1
- package/dist/plugins/index.d.ts.map +0 -1
- package/dist/plugins/types.d.ts.map +0 -1
- package/dist/utils/codec-utils.d.ts.map +0 -1
- package/dist/utils/deep-merge.d.ts.map +0 -1
- package/dist/utils/ip-validation.d.ts.map +0 -1
- package/dist/utils/json-schema.d.ts.map +0 -1
- package/dist/utils/security.d.ts.map +0 -1
- package/dist/validators/any.d.ts.map +0 -1
- package/dist/validators/array.d.ts.map +0 -1
- package/dist/validators/base.d.ts.map +0 -1
- package/dist/validators/base64.d.ts.map +0 -1
- package/dist/validators/bigint.d.ts.map +0 -1
- package/dist/validators/boolean.d.ts.map +0 -1
- package/dist/validators/codec.d.ts.map +0 -1
- package/dist/validators/custom.d.ts.map +0 -1
- package/dist/validators/date.d.ts.map +0 -1
- package/dist/validators/discriminated-union.d.ts.map +0 -1
- package/dist/validators/enum.d.ts.map +0 -1
- package/dist/validators/file.d.ts.map +0 -1
- package/dist/validators/function.d.ts.map +0 -1
- package/dist/validators/hex.d.ts.map +0 -1
- package/dist/validators/index.d.ts.map +0 -1
- package/dist/validators/index.js.map +0 -1
- package/dist/validators/intersection.d.ts.map +0 -1
- package/dist/validators/json.d.ts.map +0 -1
- package/dist/validators/lazy.d.ts.map +0 -1
- package/dist/validators/literal.d.ts.map +0 -1
- package/dist/validators/map.d.ts.map +0 -1
- package/dist/validators/nan.d.ts.map +0 -1
- package/dist/validators/never.d.ts.map +0 -1
- package/dist/validators/null.d.ts.map +0 -1
- package/dist/validators/number.d.ts.map +0 -1
- package/dist/validators/object.d.ts.map +0 -1
- package/dist/validators/promise.d.ts.map +0 -1
- package/dist/validators/record.d.ts.map +0 -1
- package/dist/validators/set.d.ts.map +0 -1
- package/dist/validators/string-bool.d.ts.map +0 -1
- package/dist/validators/string-formats.d.ts.map +0 -1
- package/dist/validators/string.d.ts.map +0 -1
- package/dist/validators/symbol.d.ts.map +0 -1
- package/dist/validators/template-literal.d.ts.map +0 -1
- package/dist/validators/tuple.d.ts.map +0 -1
- package/dist/validators/uint8array.d.ts.map +0 -1
- package/dist/validators/undefined.d.ts.map +0 -1
- package/dist/validators/union.d.ts.map +0 -1
- package/dist/validators/unknown.d.ts.map +0 -1
- package/dist/validators/void.d.ts.map +0 -1
- package/dist/validators/xor.d.ts.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,38 @@ All notable changes to VLD will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [2.1.0] - 2026-06-16
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- Added first-class Zod drop-in package subpaths:
|
|
13
|
+
- `@oxog/vld/v3`
|
|
14
|
+
- `@oxog/vld/v4`
|
|
15
|
+
- `@oxog/vld/v4-mini`
|
|
16
|
+
- `@oxog/vld/v4/mini`
|
|
17
|
+
- `@oxog/vld/v4/core`
|
|
18
|
+
- `@oxog/vld/v4/locales`
|
|
19
|
+
- `@oxog/vld/v4/locales/*`
|
|
20
|
+
- Added Zod-style mini aliases and helpers for `v4-mini` and `v4/mini`, including `ZodMini*` class aliases, `pick`, `omit`, `partial`, `required`, `extend`, `safeExtend`, `merge`, `catchall`, `minimum`, `maximum`, and `_default`.
|
|
21
|
+
- Added Zod-style `v4/locales` named locale functions.
|
|
22
|
+
- Added `v4/core` compatibility exports for the full Zod core export-name/type surface, plus common Zod core factory calling conventions.
|
|
23
|
+
- Added `verify:drop-in`, a real TypeScript fixture app that compiles and runs once with `zod` and once with built VLD, then compares normalized runtime output.
|
|
24
|
+
- Added release guards for Zod latest parity, package exports, published types, install smoke tests, package budgets, bundle budgets, drop-in fixture behavior, runtime performance, startup, and memory.
|
|
25
|
+
|
|
26
|
+
### Changed
|
|
27
|
+
|
|
28
|
+
- Strengthened `release:check` to include `verify:drop-in`.
|
|
29
|
+
- Updated package metadata and budgets for the broader drop-in compatibility surface.
|
|
30
|
+
- Kept validator `safeParse` failures aligned with public `VldError` formatting helpers across primitive, collection, scalar, and special validators.
|
|
31
|
+
|
|
32
|
+
### Verified
|
|
33
|
+
|
|
34
|
+
- Tested against npm latest `zod@4.4.3`.
|
|
35
|
+
- 82 test suites and 2160 tests passing.
|
|
36
|
+
- 100% statement, branch, and line coverage.
|
|
37
|
+
- Zod subpath export parity has zero missing exports and zero type mismatches for `zod/v4`, `zod/v4-mini`, `zod/v4/mini`, `zod/v4/core`, and `zod/v4/locales`.
|
|
38
|
+
- Latest release gate snapshot: runtime guard average 11.81x faster than Zod, startup total 1.50x faster, and 4.77x less retained heap.
|
|
39
|
+
|
|
8
40
|
## [2.0.3] - 2026-05-08
|
|
9
41
|
|
|
10
42
|
### 🐛 Bug Fixes
|
|
@@ -541,4 +573,4 @@ VLD continues to outperform Zod across all benchmarks:
|
|
|
541
573
|
|
|
542
574
|
---
|
|
543
575
|
|
|
544
|
-
For more details, see the [GitHub Releases](https://github.com/ersinkoc/vld/releases)
|
|
576
|
+
For more details, see the [GitHub Releases](https://github.com/ersinkoc/vld/releases)
|
package/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# VLD - Fast & Lightweight TypeScript Validation Library
|
|
2
2
|
|
|
3
|
-
[](https://www.npmjs.com/package/@oxog/vld) [](https://opensource.org/licenses/MIT) [](https://www.typescriptlang.org/) [](package.json) [](https://www.npmjs.com/package/@oxog/vld) [](https://opensource.org/licenses/MIT) [](https://www.typescriptlang.org/) [](package.json) [](package.json)
|
|
4
4
|
|
|
5
|
-
VLD is a blazing-fast, type-safe validation library for TypeScript and JavaScript with **
|
|
5
|
+
VLD is a blazing-fast, type-safe validation library for TypeScript and JavaScript with **Zod-compatible root and subpath APIs**. Built with performance in mind, it provides a simple and intuitive API while maintaining excellent type inference and 27+ language internationalization support.
|
|
6
6
|
|
|
7
7
|
## Table of Contents
|
|
8
8
|
|
|
@@ -34,8 +34,9 @@ VLD is a blazing-fast, type-safe validation library for TypeScript and JavaScrip
|
|
|
34
34
|
- **Composable**: Chain validations for complex schemas
|
|
35
35
|
- **Advanced Error Formatting**: Tree, pretty, and flatten error utilities
|
|
36
36
|
- **Multi-language**: Built-in support for 27+ languages
|
|
37
|
-
- **
|
|
38
|
-
- **
|
|
37
|
+
- **100% Statement / Branch / Line Coverage**: Rigorously tested with 2160 passing tests
|
|
38
|
+
- **Release-Gated Performance**: CI guards require VLD to stay faster than the latest stable Zod across runtime, startup, and memory benchmarks
|
|
39
|
+
- **Drop-in App Verification**: A real TypeScript fixture is compiled and run once with `zod` and once with built VLD, then normalized runtime output is compared
|
|
39
40
|
|
|
40
41
|
### Advanced Zod-Compatible Features
|
|
41
42
|
- **Type Coercion**: `v.coerce.string()`, `v.coerce.number()`, `v.coerce.boolean()`, etc.
|
|
@@ -149,14 +150,18 @@ await setLocaleAsync('tr'); // Loads Turkish on demand
|
|
|
149
150
|
|
|
150
151
|
VLD is designed for speed and efficiency with recent optimizations delivering exceptional performance:
|
|
151
152
|
|
|
152
|
-
### Speed Benchmarks (
|
|
153
|
-
-
|
|
154
|
-
-
|
|
155
|
-
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
- **
|
|
159
|
-
- **
|
|
153
|
+
### Release-Gated Speed Benchmarks (v2.1.0 vs Zod 4.4.3)
|
|
154
|
+
- Runtime guard: VLD must stay at least 1.2x faster on every guarded hot path and keep at least a 3x average ratio
|
|
155
|
+
- Startup guard: VLD must keep at least 1.1x faster import, 1.25x faster total startup, and 1.25x faster warm parse ratios than Zod
|
|
156
|
+
- Memory guard: VLD must keep at least 2x lower total retained heap, 1.5x higher aggregate throughput, and no guarded case below 1.1x speed
|
|
157
|
+
|
|
158
|
+
### Recent Local Benchmark Snapshot
|
|
159
|
+
- **52.92x faster** for nullish validation
|
|
160
|
+
- **46.58x faster** for catch validation
|
|
161
|
+
- **27.62x faster** for number validation
|
|
162
|
+
- **14.88x faster** for bigint validation
|
|
163
|
+
- **10.71x faster** for nullable validation
|
|
164
|
+
- **Over 10x faster** average guarded runtime ratio in recent release checks
|
|
160
165
|
|
|
161
166
|
### Optimizations
|
|
162
167
|
- **110x improvement** in union type validation
|
|
@@ -167,10 +172,10 @@ VLD is designed for speed and efficiency with recent optimizations delivering ex
|
|
|
167
172
|
- **Pre-computed keys** with Set for O(1) lookups
|
|
168
173
|
|
|
169
174
|
### Memory Efficiency
|
|
170
|
-
- **
|
|
171
|
-
- **
|
|
172
|
-
- **
|
|
173
|
-
- **
|
|
175
|
+
- **18.13x less memory** for schema creation
|
|
176
|
+
- **6.20x less memory** for union validation
|
|
177
|
+
- **2.81x less memory** for simple string validation
|
|
178
|
+
- **4.85x less memory** overall
|
|
174
179
|
|
|
175
180
|
### A Note on Real-World Benchmarking
|
|
176
181
|
|
|
@@ -527,7 +532,8 @@ v.function()
|
|
|
527
532
|
### Type Inference
|
|
528
533
|
|
|
529
534
|
```typescript
|
|
530
|
-
import { v
|
|
535
|
+
import { v } from '@oxog/vld';
|
|
536
|
+
import type { Infer } from '@oxog/vld';
|
|
531
537
|
|
|
532
538
|
const schema = v.object({
|
|
533
539
|
name: v.string(),
|
|
@@ -542,8 +548,8 @@ type User = Infer<typeof schema>;
|
|
|
542
548
|
### Error Formatting Types
|
|
543
549
|
|
|
544
550
|
```typescript
|
|
545
|
-
import {
|
|
546
|
-
|
|
551
|
+
import { VldError } from '@oxog/vld';
|
|
552
|
+
import type {
|
|
547
553
|
VldIssue, // Individual validation issue
|
|
548
554
|
VldErrorTree, // Nested error structure
|
|
549
555
|
VldFlattenedError // Flattened error structure
|
|
@@ -1095,8 +1101,8 @@ VLD is designed as a compelling alternative to Zod, offering full feature parity
|
|
|
1095
1101
|
|
|
1096
1102
|
| Feature | VLD | Zod |
|
|
1097
1103
|
| ----------------------- | ---------------------------------- | ------------------------------------ |
|
|
1098
|
-
| **Performance** |
|
|
1099
|
-
| **Memory Usage** | **~
|
|
1104
|
+
| **Performance** | **Release-gated faster runtime, startup, and memory paths** | Baseline |
|
|
1105
|
+
| **Memory Usage** | **~4.85x less** overall | Baseline |
|
|
1100
1106
|
| **Internationalization**| **Built-in (27+ languages)** | Requires third-party library |
|
|
1101
1107
|
| **Dependencies** | **Zero** | `zod-i18n` for locales |
|
|
1102
1108
|
| **Bundle Size** | Smaller | Larger |
|
|
@@ -1104,7 +1110,7 @@ VLD is designed as a compelling alternative to Zod, offering full feature parity
|
|
|
1104
1110
|
| **Plugin System** | **Built-in** | Not available |
|
|
1105
1111
|
| **Result Pattern** | **Built-in** | Not available |
|
|
1106
1112
|
| **CLI Tools** | **Built-in** | Not available |
|
|
1107
|
-
| **Codecs** | Built-in, bidirectional |
|
|
1113
|
+
| **Codecs** | Built-in, bidirectional | Built-in |
|
|
1108
1114
|
| **Type Inference** | Excellent | Excellent |
|
|
1109
1115
|
|
|
1110
1116
|
### Seamless Migration from Zod
|
|
@@ -1119,26 +1125,75 @@ import { v } from '@oxog/vld';
|
|
|
1119
1125
|
const schema = v.string().email();
|
|
1120
1126
|
```
|
|
1121
1127
|
|
|
1128
|
+
### Drop-in Package Subpaths
|
|
1129
|
+
|
|
1130
|
+
VLD also exposes Zod-compatible package subpaths so applications that import Zod 4 entry points can migrate by changing the package name:
|
|
1131
|
+
|
|
1132
|
+
```typescript
|
|
1133
|
+
// Before
|
|
1134
|
+
import { z } from 'zod';
|
|
1135
|
+
import * as core from 'zod/v4/core';
|
|
1136
|
+
import * as mini from 'zod/v4-mini';
|
|
1137
|
+
import * as locales from 'zod/v4/locales';
|
|
1138
|
+
|
|
1139
|
+
// After
|
|
1140
|
+
import { z } from '@oxog/vld';
|
|
1141
|
+
import * as core from '@oxog/vld/v4/core';
|
|
1142
|
+
import * as mini from '@oxog/vld/v4-mini';
|
|
1143
|
+
import * as locales from '@oxog/vld/v4/locales';
|
|
1144
|
+
```
|
|
1145
|
+
|
|
1146
|
+
Release checks enforce zero missing exports and zero `typeof` mismatches for `zod/v4`, `zod/v4-mini`, `zod/v4/mini`, `zod/v4/core`, and `zod/v4/locales` against the installed latest Zod.
|
|
1147
|
+
|
|
1148
|
+
### Real App Drop-in Verification
|
|
1149
|
+
|
|
1150
|
+
`npm run verify:drop-in` creates two temporary TypeScript applications from the same fixture:
|
|
1151
|
+
|
|
1152
|
+
- One imports and runs against real `zod`.
|
|
1153
|
+
- One imports and runs against the locally built `@oxog/vld` package.
|
|
1154
|
+
- The fixture exercises root APIs, `v4`, `v4-mini`, `v4/core`, `v4/locales`, parsing, error formatting, JSON Schema output, mini helpers, and core factories.
|
|
1155
|
+
- The normalized runtime outputs must match exactly.
|
|
1156
|
+
|
|
1122
1157
|
## Benchmarks
|
|
1123
1158
|
|
|
1124
1159
|
### Performance Results
|
|
1125
1160
|
|
|
1126
|
-
|
|
1161
|
+
Median of 11 samples per case against Zod 4.4.3, the latest stable release at the time of measurement. The release gate also runs focused runtime, startup, memory, package, install, security, Zod parity, and real drop-in app checks before publishing.
|
|
1162
|
+
|
|
1163
|
+
| Test Case | VLD Median Performance | Improvement |
|
|
1127
1164
|
|-----------|----------------|-------------|
|
|
1128
|
-
| Simple String |
|
|
1129
|
-
| Email Validation |
|
|
1130
|
-
|
|
|
1131
|
-
|
|
|
1132
|
-
|
|
|
1133
|
-
|
|
|
1134
|
-
|
|
|
1135
|
-
|
|
|
1136
|
-
|
|
|
1137
|
-
|
|
|
1138
|
-
|
|
|
1139
|
-
|
|
|
1140
|
-
|
|
1141
|
-
|
|
1165
|
+
| Simple String | 719.2M ops/sec | **3.40x faster** |
|
|
1166
|
+
| Email Validation | 22.1M ops/sec | **2.87x faster** |
|
|
1167
|
+
| Top-level Email Format | 22.8M ops/sec | **3.66x faster** |
|
|
1168
|
+
| StringBool Validation | 32.7M ops/sec | **3.44x faster** |
|
|
1169
|
+
| Number Validation | 226.2M ops/sec | **27.62x faster** |
|
|
1170
|
+
| Simple Object | 37.7M ops/sec | **1.40x faster** |
|
|
1171
|
+
| Complex Object | 2.3M ops/sec | **1.02x faster** |
|
|
1172
|
+
| Array Validation | 39.8M ops/sec | **6.74x faster** |
|
|
1173
|
+
| Union Types | 38.1M ops/sec | **4.10x faster** |
|
|
1174
|
+
| Optional Values | 236.9M ops/sec | **7.57x faster** |
|
|
1175
|
+
| Nullable Values | 224.7M ops/sec | **10.71x faster** |
|
|
1176
|
+
| Nullish Values | 228.4M ops/sec | **52.92x faster** |
|
|
1177
|
+
| Default Values | 207.8M ops/sec | **9.71x faster** |
|
|
1178
|
+
| Catch Values | 232.1M ops/sec | **46.58x faster** |
|
|
1179
|
+
| SafeParse | 162.0M ops/sec | **1.80x faster** |
|
|
1180
|
+
| Type Coercion | 204.5M ops/sec | **8.72x faster** |
|
|
1181
|
+
| Enum Validation | 180.3M ops/sec | **1.32x faster** |
|
|
1182
|
+
| Discriminated Union | 19.2M ops/sec | **1.79x faster** |
|
|
1183
|
+
| Tuple Validation | 50.0M ops/sec | **7.99x faster** |
|
|
1184
|
+
| Record Validation | 10.7M ops/sec | **5.63x faster** |
|
|
1185
|
+
| Set Validation | 18.9M ops/sec | **1.84x faster** |
|
|
1186
|
+
| Map Validation | 14.8M ops/sec | **2.37x faster** |
|
|
1187
|
+
| BigInt Validation | 164.8M ops/sec | **14.88x faster** |
|
|
1188
|
+
| Date Validation | 227.2M ops/sec | **2.57x faster** |
|
|
1189
|
+
| Symbol Validation | 230.0M ops/sec | **1.01x faster** |
|
|
1190
|
+
| Any Validation | 232.5M ops/sec | **1.01x faster** |
|
|
1191
|
+
| Unknown Validation | 234.9M ops/sec | **1.04x faster** |
|
|
1192
|
+
| Function Validation | 233.6M ops/sec | **3.52x faster** |
|
|
1193
|
+
| Template Literal Validation | 39.3M ops/sec | **1.15x faster** |
|
|
1194
|
+
| Promise Async Validation | 6.3M ops/sec | **1.38x faster** |
|
|
1195
|
+
|
|
1196
|
+
**VLD won 30/30 snapshot tests. Release checks additionally enforce runtime, startup, memory, Zod subpath parity, and real drop-in app guard thresholds against Zod.**
|
|
1142
1197
|
|
|
1143
1198
|
### Run Benchmarks
|
|
1144
1199
|
|
|
@@ -1146,6 +1201,15 @@ const schema = v.string().email();
|
|
|
1146
1201
|
# Quick performance comparison
|
|
1147
1202
|
npm run benchmark
|
|
1148
1203
|
|
|
1204
|
+
# Median-based stable comparison
|
|
1205
|
+
npm run benchmark:stable
|
|
1206
|
+
|
|
1207
|
+
# Fast CI-friendly performance regression guard
|
|
1208
|
+
npm run benchmark:guard
|
|
1209
|
+
|
|
1210
|
+
# Full release gate: lint, source and published types, tests, exports, package and install checks, security audit, Zod parity, real drop-in app verification, and performance guards
|
|
1211
|
+
npm run release:check
|
|
1212
|
+
|
|
1149
1213
|
# Memory usage comparison
|
|
1150
1214
|
npm run benchmark:memory
|
|
1151
1215
|
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
function serializeIssue(issue) {
|
|
2
|
+
const result = {
|
|
3
|
+
code: issue.code,
|
|
4
|
+
path: issue.path,
|
|
5
|
+
message: issue.message
|
|
6
|
+
};
|
|
7
|
+
if (issue.expected !== undefined)
|
|
8
|
+
result.expected = issue.expected;
|
|
9
|
+
if (issue.received !== undefined)
|
|
10
|
+
result.received = issue.received;
|
|
11
|
+
if (issue.keys !== undefined)
|
|
12
|
+
result.keys = issue.keys;
|
|
13
|
+
if (issue.minimum !== undefined)
|
|
14
|
+
result.minimum = issue.minimum;
|
|
15
|
+
if (issue.maximum !== undefined)
|
|
16
|
+
result.maximum = issue.maximum;
|
|
17
|
+
if (issue.exact !== undefined)
|
|
18
|
+
result.exact = issue.exact;
|
|
19
|
+
if (issue.inclusive !== undefined)
|
|
20
|
+
result.inclusive = issue.inclusive;
|
|
21
|
+
return result;
|
|
22
|
+
}
|
|
23
|
+
function deserializeIssue(issue) {
|
|
24
|
+
const result = {
|
|
25
|
+
code: issue.code,
|
|
26
|
+
path: issue.path,
|
|
27
|
+
message: issue.message
|
|
28
|
+
};
|
|
29
|
+
if (issue.expected !== undefined)
|
|
30
|
+
result.expected = issue.expected;
|
|
31
|
+
if (issue.received !== undefined)
|
|
32
|
+
result.received = issue.received;
|
|
33
|
+
if (issue.keys !== undefined)
|
|
34
|
+
result.keys = issue.keys;
|
|
35
|
+
if (issue.minimum !== undefined)
|
|
36
|
+
result.minimum = issue.minimum;
|
|
37
|
+
if (issue.maximum !== undefined)
|
|
38
|
+
result.maximum = issue.maximum;
|
|
39
|
+
if (issue.exact !== undefined)
|
|
40
|
+
result.exact = issue.exact;
|
|
41
|
+
if (issue.inclusive !== undefined)
|
|
42
|
+
result.inclusive = issue.inclusive;
|
|
43
|
+
return result;
|
|
44
|
+
}
|
|
45
|
+
class VldError extends Error {
|
|
46
|
+
constructor(issues) {
|
|
47
|
+
const firstIssue = issues[0];
|
|
48
|
+
const message = issues.length === 1 && firstIssue !== undefined
|
|
49
|
+
? firstIssue.message
|
|
50
|
+
: `${issues.length} validation errors`;
|
|
51
|
+
super(message);
|
|
52
|
+
this.name = 'VldError';
|
|
53
|
+
this.issues = issues;
|
|
54
|
+
if (Error.captureStackTrace) {
|
|
55
|
+
Error.captureStackTrace(this, VldError);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
get firstError() {
|
|
59
|
+
return this.issues[0];
|
|
60
|
+
}
|
|
61
|
+
get formattedErrors() {
|
|
62
|
+
return this.issues.map((issue) => issue.message);
|
|
63
|
+
}
|
|
64
|
+
toJSON() {
|
|
65
|
+
return {
|
|
66
|
+
name: this.name,
|
|
67
|
+
message: this.message,
|
|
68
|
+
code: 'VLD_VALIDATION_ERROR',
|
|
69
|
+
issues: this.issues.map(serializeIssue)
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
static fromJSON(json) {
|
|
73
|
+
const issues = json.issues.map(deserializeIssue);
|
|
74
|
+
return new VldError(issues);
|
|
75
|
+
}
|
|
76
|
+
static isVldError(value) {
|
|
77
|
+
return value instanceof VldError;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export { VldError as V };
|