@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
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { VldBase, VLD_VALIDATOR_TYPES } from './base.js';
|
|
2
|
+
import { getMessages } from '../locales/runtime.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Immutable template literal validator
|
|
6
|
+
* Validates strings matching a template pattern
|
|
7
|
+
*/
|
|
8
|
+
class VldTemplateLiteral extends VldBase {
|
|
9
|
+
constructor(pattern) {
|
|
10
|
+
super(VLD_VALIDATOR_TYPES.TEMPLATE_LITERAL);
|
|
11
|
+
this.pattern = pattern;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Create a template literal validator from components
|
|
15
|
+
*/
|
|
16
|
+
static create(...components) {
|
|
17
|
+
// Build regex pattern from components
|
|
18
|
+
let pattern = '^';
|
|
19
|
+
for (const comp of components) {
|
|
20
|
+
if (typeof comp === 'string') {
|
|
21
|
+
// Escape special regex characters
|
|
22
|
+
pattern += comp.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
// Add appropriate pattern based on validator type
|
|
26
|
+
pattern += getPatternForValidator(comp);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
pattern += '$';
|
|
30
|
+
return new VldTemplateLiteral(new RegExp(pattern));
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Parse and validate a template literal string
|
|
34
|
+
*/
|
|
35
|
+
parse(value) {
|
|
36
|
+
if (typeof value !== 'string') {
|
|
37
|
+
throw new Error(getMessages().invalidString);
|
|
38
|
+
}
|
|
39
|
+
if (!this.pattern.test(value)) {
|
|
40
|
+
throw new Error(getMessages().stringPatternInvalid);
|
|
41
|
+
}
|
|
42
|
+
return value;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Safely parse and validate a template literal string
|
|
46
|
+
*/
|
|
47
|
+
safeParse(value) {
|
|
48
|
+
try {
|
|
49
|
+
return { success: true, data: this.parse(value) };
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
return {
|
|
53
|
+
success: false,
|
|
54
|
+
error: error
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Get regex pattern for a validator type
|
|
61
|
+
*/
|
|
62
|
+
function getPatternForValidator(validator) {
|
|
63
|
+
// For template literals, we need to identify the validator type
|
|
64
|
+
// and return an appropriate capture group pattern
|
|
65
|
+
switch (validator.validatorType) {
|
|
66
|
+
case VLD_VALIDATOR_TYPES.STRING:
|
|
67
|
+
case VLD_VALIDATOR_TYPES.STRING_FORMAT:
|
|
68
|
+
return '(.+)';
|
|
69
|
+
case VLD_VALIDATOR_TYPES.NUMBER:
|
|
70
|
+
case VLD_VALIDATOR_TYPES.COERCE_NUMBER:
|
|
71
|
+
return '(-?\\d+(?:\\.\\d+)?)';
|
|
72
|
+
case VLD_VALIDATOR_TYPES.BIGINT:
|
|
73
|
+
case VLD_VALIDATOR_TYPES.COERCE_BIGINT:
|
|
74
|
+
return '(-?\\d+)';
|
|
75
|
+
case VLD_VALIDATOR_TYPES.BOOLEAN:
|
|
76
|
+
case VLD_VALIDATOR_TYPES.COERCE_BOOLEAN:
|
|
77
|
+
return '(true|false)';
|
|
78
|
+
case VLD_VALIDATOR_TYPES.NULL:
|
|
79
|
+
return '(null)';
|
|
80
|
+
case VLD_VALIDATOR_TYPES.UNDEFINED:
|
|
81
|
+
case VLD_VALIDATOR_TYPES.VOID:
|
|
82
|
+
return '(undefined)';
|
|
83
|
+
case VLD_VALIDATOR_TYPES.LITERAL: {
|
|
84
|
+
const literalValidator = validator;
|
|
85
|
+
if (literalValidator.literal !== undefined) {
|
|
86
|
+
const valueStr = String(literalValidator.literal);
|
|
87
|
+
return '(' + valueStr.replace(/[.*+?^${}()|[\]\\]/g, '\\$&') + ')';
|
|
88
|
+
}
|
|
89
|
+
break;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
// Default: match any string
|
|
93
|
+
return '(.+)';
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Helper function to create template literal validators
|
|
97
|
+
* Usage: v.templateLiteral(v.string(), '-', v.number())
|
|
98
|
+
*/
|
|
99
|
+
function templateLiteral(...components) {
|
|
100
|
+
return VldTemplateLiteral.create(...components);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
export { VldTemplateLiteral, templateLiteral };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { VldBase, ParseResult } from './base';
|
|
1
|
+
import { VldBase, ParseResult } from './base.js';
|
|
2
2
|
/**
|
|
3
3
|
* Immutable tuple validator for fixed-length arrays
|
|
4
4
|
*/
|
|
@@ -10,7 +10,14 @@ export declare class VldTuple<T extends readonly VldBase<any, any>[]> extends Vl
|
|
|
10
10
|
/**
|
|
11
11
|
* Private constructor to enforce immutability
|
|
12
12
|
*/
|
|
13
|
+
private readonly _length;
|
|
14
|
+
private readonly _validatorTypes;
|
|
15
|
+
private readonly _simpleItemModes;
|
|
16
|
+
private readonly _simpleItemValues;
|
|
13
17
|
private constructor();
|
|
18
|
+
get items(): T;
|
|
19
|
+
private getSimpleItemMode;
|
|
20
|
+
private getSimpleItemError;
|
|
14
21
|
/**
|
|
15
22
|
* Create a new tuple validator
|
|
16
23
|
*/
|
|
@@ -21,6 +28,13 @@ export declare class VldTuple<T extends readonly VldBase<any, any>[]> extends Vl
|
|
|
21
28
|
parse(value: unknown): {
|
|
22
29
|
[K in keyof T]: T[K] extends VldBase<any, infer U> ? U : never;
|
|
23
30
|
};
|
|
31
|
+
/**
|
|
32
|
+
* Parse a value that has already passed the tuple array type guard.
|
|
33
|
+
* @internal Used by object validators to avoid duplicate hot-path checks.
|
|
34
|
+
*/
|
|
35
|
+
parseKnownTuple(value: unknown[]): {
|
|
36
|
+
[K in keyof T]: T[K] extends VldBase<any, infer U> ? U : never;
|
|
37
|
+
};
|
|
24
38
|
/**
|
|
25
39
|
* Safely parse and validate a tuple value
|
|
26
40
|
*/
|
|
@@ -28,4 +42,3 @@ export declare class VldTuple<T extends readonly VldBase<any, any>[]> extends Vl
|
|
|
28
42
|
[K in keyof T]: T[K] extends VldBase<any, infer U> ? U : never;
|
|
29
43
|
}>;
|
|
30
44
|
}
|
|
31
|
-
//# sourceMappingURL=tuple.d.ts.map
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import { VldBase, VLD_VALIDATOR_TYPES } from './base.js';
|
|
2
|
+
import { getMessages } from '../locales/runtime.js';
|
|
3
|
+
import { V as VldError } from '../chunks/errors-core-BeiFUtZM.js';
|
|
4
|
+
|
|
5
|
+
function createTupleError(message) {
|
|
6
|
+
return new VldError([{ code: 'invalid_array', path: [], message }]);
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Immutable tuple validator for fixed-length arrays
|
|
10
|
+
*/
|
|
11
|
+
class VldTuple extends VldBase {
|
|
12
|
+
constructor(validators, errorMessage) {
|
|
13
|
+
super(VLD_VALIDATOR_TYPES.TUPLE);
|
|
14
|
+
this.validators = validators;
|
|
15
|
+
this.errorMessage = errorMessage;
|
|
16
|
+
this._length = validators.length;
|
|
17
|
+
this._validatorTypes = validators.map(validator => validator.validatorType);
|
|
18
|
+
this._simpleItemModes = validators.map((validator, index) => this.getSimpleItemMode(validator, this._validatorTypes[index]));
|
|
19
|
+
this._simpleItemValues = validators.map((validator, index) => this._simpleItemModes[index] === 'literal' ? validator.literal : undefined);
|
|
20
|
+
}
|
|
21
|
+
get items() {
|
|
22
|
+
return this.validators;
|
|
23
|
+
}
|
|
24
|
+
getSimpleItemMode(validator, type) {
|
|
25
|
+
if (validator.isSimple !== true) {
|
|
26
|
+
return undefined;
|
|
27
|
+
}
|
|
28
|
+
switch (type) {
|
|
29
|
+
case VLD_VALIDATOR_TYPES.STRING:
|
|
30
|
+
return 'string';
|
|
31
|
+
case VLD_VALIDATOR_TYPES.NUMBER:
|
|
32
|
+
return 'number';
|
|
33
|
+
case VLD_VALIDATOR_TYPES.BOOLEAN:
|
|
34
|
+
return 'boolean';
|
|
35
|
+
case VLD_VALIDATOR_TYPES.BIGINT:
|
|
36
|
+
return 'bigint';
|
|
37
|
+
case VLD_VALIDATOR_TYPES.SYMBOL:
|
|
38
|
+
return 'symbol';
|
|
39
|
+
case VLD_VALIDATOR_TYPES.NULL:
|
|
40
|
+
return 'null';
|
|
41
|
+
case VLD_VALIDATOR_TYPES.UNDEFINED:
|
|
42
|
+
case VLD_VALIDATOR_TYPES.VOID:
|
|
43
|
+
return 'undefinedValue';
|
|
44
|
+
case VLD_VALIDATOR_TYPES.LITERAL:
|
|
45
|
+
return 'literal';
|
|
46
|
+
case VLD_VALIDATOR_TYPES.ANY:
|
|
47
|
+
case VLD_VALIDATOR_TYPES.UNKNOWN:
|
|
48
|
+
return 'passthrough';
|
|
49
|
+
default:
|
|
50
|
+
return undefined;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
getSimpleItemError(mode, expected, received) {
|
|
54
|
+
switch (mode) {
|
|
55
|
+
case 'string':
|
|
56
|
+
return getMessages().invalidString;
|
|
57
|
+
case 'number':
|
|
58
|
+
return getMessages().invalidNumber;
|
|
59
|
+
case 'boolean':
|
|
60
|
+
return getMessages().invalidBoolean;
|
|
61
|
+
case 'bigint':
|
|
62
|
+
return getMessages().invalidBigint;
|
|
63
|
+
case 'symbol':
|
|
64
|
+
return getMessages().invalidSymbol;
|
|
65
|
+
case 'null':
|
|
66
|
+
return `Expected null, received ${typeof received}`;
|
|
67
|
+
case 'undefinedValue':
|
|
68
|
+
return getMessages().expectedUndefined;
|
|
69
|
+
case 'literal':
|
|
70
|
+
return getMessages().literalExpected(JSON.stringify(expected), JSON.stringify(received));
|
|
71
|
+
default:
|
|
72
|
+
return getMessages().invalidTuple;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Create a new tuple validator
|
|
77
|
+
*/
|
|
78
|
+
static create(...validators) {
|
|
79
|
+
return new VldTuple(validators);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Parse and validate a tuple value
|
|
83
|
+
*/
|
|
84
|
+
parse(value) {
|
|
85
|
+
if (!Array.isArray(value)) {
|
|
86
|
+
throw new Error(this.errorMessage || getMessages().invalidTuple);
|
|
87
|
+
}
|
|
88
|
+
return this.parseKnownTuple(value);
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Parse a value that has already passed the tuple array type guard.
|
|
92
|
+
* @internal Used by object validators to avoid duplicate hot-path checks.
|
|
93
|
+
*/
|
|
94
|
+
parseKnownTuple(value) {
|
|
95
|
+
if (value.length !== this._length) {
|
|
96
|
+
throw new Error(this.errorMessage ||
|
|
97
|
+
getMessages().tupleLength(this._length, value.length));
|
|
98
|
+
}
|
|
99
|
+
const result = new Array(this._length);
|
|
100
|
+
for (let i = 0; i < this._length; i++) {
|
|
101
|
+
const simpleMode = this._simpleItemModes[i];
|
|
102
|
+
const item = value[i];
|
|
103
|
+
if (simpleMode !== undefined) {
|
|
104
|
+
switch (simpleMode) {
|
|
105
|
+
case 'string':
|
|
106
|
+
if (typeof item !== 'string') {
|
|
107
|
+
throw new Error(getMessages().arrayItem(i, getMessages().invalidString));
|
|
108
|
+
}
|
|
109
|
+
result[i] = item;
|
|
110
|
+
continue;
|
|
111
|
+
case 'number':
|
|
112
|
+
if (typeof item !== 'number' || isNaN(item)) {
|
|
113
|
+
throw new Error(getMessages().arrayItem(i, getMessages().invalidNumber));
|
|
114
|
+
}
|
|
115
|
+
result[i] = item;
|
|
116
|
+
continue;
|
|
117
|
+
case 'boolean':
|
|
118
|
+
if (typeof item !== 'boolean') {
|
|
119
|
+
throw new Error(getMessages().arrayItem(i, getMessages().invalidBoolean));
|
|
120
|
+
}
|
|
121
|
+
result[i] = item;
|
|
122
|
+
continue;
|
|
123
|
+
case 'bigint':
|
|
124
|
+
if (typeof item !== 'bigint') {
|
|
125
|
+
throw new Error(getMessages().arrayItem(i, getMessages().invalidBigint));
|
|
126
|
+
}
|
|
127
|
+
result[i] = item;
|
|
128
|
+
continue;
|
|
129
|
+
case 'symbol':
|
|
130
|
+
if (typeof item !== 'symbol') {
|
|
131
|
+
throw new Error(getMessages().arrayItem(i, getMessages().invalidSymbol));
|
|
132
|
+
}
|
|
133
|
+
result[i] = item;
|
|
134
|
+
continue;
|
|
135
|
+
case 'null':
|
|
136
|
+
if (item !== null) {
|
|
137
|
+
throw new Error(getMessages().arrayItem(i, this.getSimpleItemError(simpleMode, undefined, item)));
|
|
138
|
+
}
|
|
139
|
+
result[i] = null;
|
|
140
|
+
continue;
|
|
141
|
+
case 'undefinedValue':
|
|
142
|
+
if (item !== undefined) {
|
|
143
|
+
throw new Error(getMessages().arrayItem(i, getMessages().expectedUndefined));
|
|
144
|
+
}
|
|
145
|
+
result[i] = undefined;
|
|
146
|
+
continue;
|
|
147
|
+
case 'literal': {
|
|
148
|
+
const literal = this._simpleItemValues[i];
|
|
149
|
+
if (item !== literal) {
|
|
150
|
+
throw new Error(getMessages().arrayItem(i, this.getSimpleItemError(simpleMode, literal, item)));
|
|
151
|
+
}
|
|
152
|
+
result[i] = literal;
|
|
153
|
+
continue;
|
|
154
|
+
}
|
|
155
|
+
case 'passthrough':
|
|
156
|
+
result[i] = item;
|
|
157
|
+
continue;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
try {
|
|
161
|
+
const validator = this.validators[i];
|
|
162
|
+
result[i] = validator.parse(item);
|
|
163
|
+
}
|
|
164
|
+
catch (error) {
|
|
165
|
+
throw new Error(getMessages().arrayItem(i, error.message));
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
return result;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Safely parse and validate a tuple value
|
|
172
|
+
*/
|
|
173
|
+
safeParse(value) {
|
|
174
|
+
try {
|
|
175
|
+
return { success: true, data: this.parse(value) };
|
|
176
|
+
}
|
|
177
|
+
catch (error) {
|
|
178
|
+
return { success: false, error: createTupleError(error.message) };
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
export { VldTuple };
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { VldBase, ParseResult } from './base';
|
|
1
|
+
import { VldBase, ParseResult } from './base.js';
|
|
2
2
|
/**
|
|
3
3
|
* Configuration for Uint8Array validator
|
|
4
4
|
* BUG-NEW-010 FIX: Use config object pattern for immutability
|
|
5
5
|
*/
|
|
6
6
|
interface Uint8ArrayValidatorConfig {
|
|
7
|
-
readonly minLength?: number;
|
|
8
|
-
readonly maxLength?: number;
|
|
7
|
+
readonly minLength?: number | undefined;
|
|
8
|
+
readonly maxLength?: number | undefined;
|
|
9
9
|
readonly exactLength?: number;
|
|
10
10
|
}
|
|
11
11
|
/**
|
|
@@ -39,4 +39,3 @@ export declare class VldUint8Array extends VldBase<Uint8Array, Uint8Array> {
|
|
|
39
39
|
static create(): VldUint8Array;
|
|
40
40
|
}
|
|
41
41
|
export {};
|
|
42
|
-
//# sourceMappingURL=uint8array.d.ts.map
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { VldBase, VLD_VALIDATOR_TYPES } from './base.js';
|
|
2
|
+
import { createIssue } from '../errors.js';
|
|
3
|
+
import { getMessages } from '../locales/runtime.js';
|
|
4
|
+
import { V as VldError } from '../chunks/errors-core-BeiFUtZM.js';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Uint8Array validator with immutable configuration
|
|
8
|
+
* BUG-NEW-010 FIX: Refactored to follow immutability pattern
|
|
9
|
+
*/
|
|
10
|
+
class VldUint8Array extends VldBase {
|
|
11
|
+
/**
|
|
12
|
+
* Protected constructor to maintain immutability
|
|
13
|
+
*/
|
|
14
|
+
constructor(config) {
|
|
15
|
+
super(VLD_VALIDATOR_TYPES.UINT8_ARRAY);
|
|
16
|
+
this.config = config || {};
|
|
17
|
+
}
|
|
18
|
+
parse(value) {
|
|
19
|
+
const result = this.safeParse(value);
|
|
20
|
+
if (!result.success) {
|
|
21
|
+
throw result.error;
|
|
22
|
+
}
|
|
23
|
+
return result.data;
|
|
24
|
+
}
|
|
25
|
+
safeParse(value) {
|
|
26
|
+
if (!(value instanceof Uint8Array)) {
|
|
27
|
+
return {
|
|
28
|
+
success: false,
|
|
29
|
+
error: new VldError([
|
|
30
|
+
createIssue('invalid_type', [], getMessages().expectedUint8Array)
|
|
31
|
+
])
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
// Check exact length if specified
|
|
35
|
+
if (this.config.exactLength !== undefined && value.length !== this.config.exactLength) {
|
|
36
|
+
return {
|
|
37
|
+
success: false,
|
|
38
|
+
error: new VldError([
|
|
39
|
+
createIssue('custom', [], getMessages().uint8ArrayExactLength(this.config.exactLength))
|
|
40
|
+
])
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
// Check minimum length
|
|
44
|
+
if (this.config.minLength !== undefined && value.length < this.config.minLength) {
|
|
45
|
+
return {
|
|
46
|
+
success: false,
|
|
47
|
+
error: new VldError([
|
|
48
|
+
createIssue('custom', [], getMessages().uint8ArrayMinLength(this.config.minLength))
|
|
49
|
+
])
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
// Check maximum length
|
|
53
|
+
if (this.config.maxLength !== undefined && value.length > this.config.maxLength) {
|
|
54
|
+
return {
|
|
55
|
+
success: false,
|
|
56
|
+
error: new VldError([
|
|
57
|
+
createIssue('custom', [], getMessages().uint8ArrayMaxLength(this.config.maxLength))
|
|
58
|
+
])
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
return { success: true, data: value };
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Set minimum byte length
|
|
65
|
+
* Returns new immutable validator instance
|
|
66
|
+
*/
|
|
67
|
+
min(length) {
|
|
68
|
+
return new VldUint8Array({
|
|
69
|
+
...this.config,
|
|
70
|
+
minLength: length
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Set maximum byte length
|
|
75
|
+
* Returns new immutable validator instance
|
|
76
|
+
*/
|
|
77
|
+
max(length) {
|
|
78
|
+
return new VldUint8Array({
|
|
79
|
+
...this.config,
|
|
80
|
+
maxLength: length
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Set exact byte length
|
|
85
|
+
* Returns new immutable validator instance
|
|
86
|
+
* Clears min/max when setting exact length
|
|
87
|
+
*/
|
|
88
|
+
length(length) {
|
|
89
|
+
return new VldUint8Array({
|
|
90
|
+
exactLength: length,
|
|
91
|
+
// Clear min/max when exact length is set
|
|
92
|
+
minLength: undefined,
|
|
93
|
+
maxLength: undefined
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
static create() {
|
|
97
|
+
return new VldUint8Array();
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
export { VldUint8Array };
|
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
* VldUndefined - Validates that a value is exactly undefined
|
|
3
3
|
* Part of Zod 4 API parity implementation
|
|
4
4
|
*/
|
|
5
|
-
import { VldBase } from './base';
|
|
6
|
-
import type { ParseResult } from './base';
|
|
5
|
+
import { VldBase } from './base.js';
|
|
6
|
+
import type { ParseResult } from './base.js';
|
|
7
7
|
/**
|
|
8
8
|
* Undefined validator - validates that a value is exactly undefined
|
|
9
9
|
*/
|
|
10
10
|
export declare class VldUndefined extends VldBase<unknown, undefined> {
|
|
11
11
|
private constructor();
|
|
12
12
|
static create(): VldUndefined;
|
|
13
|
+
get isSimple(): boolean;
|
|
13
14
|
parse(value: unknown): undefined;
|
|
14
15
|
safeParse(value: unknown): ParseResult<undefined>;
|
|
15
16
|
}
|
|
16
|
-
//# sourceMappingURL=undefined.d.ts.map
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { VldBase, VLD_VALIDATOR_TYPES } from './base.js';
|
|
2
|
+
import { V as VldError } from '../chunks/errors-core-BeiFUtZM.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* VldUndefined - Validates that a value is exactly undefined
|
|
6
|
+
* Part of Zod 4 API parity implementation
|
|
7
|
+
*/
|
|
8
|
+
function createUndefinedError(message) {
|
|
9
|
+
return new VldError([{ code: 'invalid_type', path: [], message }]);
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Undefined validator - validates that a value is exactly undefined
|
|
13
|
+
*/
|
|
14
|
+
class VldUndefined extends VldBase {
|
|
15
|
+
constructor() {
|
|
16
|
+
super(VLD_VALIDATOR_TYPES.UNDEFINED);
|
|
17
|
+
}
|
|
18
|
+
static create() {
|
|
19
|
+
return new VldUndefined();
|
|
20
|
+
}
|
|
21
|
+
get isSimple() {
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
24
|
+
parse(value) {
|
|
25
|
+
if (value !== undefined) {
|
|
26
|
+
throw new Error(`Expected undefined, received ${typeof value}`);
|
|
27
|
+
}
|
|
28
|
+
return undefined;
|
|
29
|
+
}
|
|
30
|
+
safeParse(value) {
|
|
31
|
+
try {
|
|
32
|
+
return { success: true, data: this.parse(value) };
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
return { success: false, error: createUndefinedError(error.message) };
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export { VldUndefined };
|
|
@@ -1,16 +1,20 @@
|
|
|
1
|
-
import { VldBase, ParseResult } from './base';
|
|
1
|
+
import { VldBase, ParseResult } from './base.js';
|
|
2
2
|
/**
|
|
3
3
|
* Optimized immutable union validator for multiple type options
|
|
4
4
|
* Features type-checking shortcuts for 110x performance improvement
|
|
5
5
|
*/
|
|
6
6
|
export declare class VldUnion<T extends readonly VldBase<any, any>[]> extends VldBase<unknown, T[number] extends VldBase<any, infer U> ? U : never> {
|
|
7
7
|
private readonly validators;
|
|
8
|
-
private readonly errorMessage
|
|
8
|
+
private readonly errorMessage;
|
|
9
9
|
private readonly typeCheckers;
|
|
10
|
+
private readonly simpleModes;
|
|
11
|
+
private readonly simpleValues;
|
|
10
12
|
/**
|
|
11
13
|
* Private constructor to enforce immutability
|
|
12
14
|
*/
|
|
13
15
|
private constructor();
|
|
16
|
+
private createSimpleMode;
|
|
17
|
+
private parseSimpleValue;
|
|
14
18
|
/**
|
|
15
19
|
* Create type checker based on validator type for fast path optimization
|
|
16
20
|
* Uses a safer approach that's less prone to spoofing
|
|
@@ -22,7 +26,7 @@ export declare class VldUnion<T extends readonly VldBase<any, any>[]> extends Vl
|
|
|
22
26
|
static create<T extends readonly VldBase<any, any>[]>(...validators: T): VldUnion<T>;
|
|
23
27
|
/**
|
|
24
28
|
* Parse and validate a value against union options
|
|
25
|
-
* Optimized with type checking and
|
|
29
|
+
* Optimized with type checking and direct parsing to avoid success-result allocations
|
|
26
30
|
* BUG-NEW-013 FIX: Single-pass error collection to avoid double parsing
|
|
27
31
|
*/
|
|
28
32
|
parse(value: unknown): T[number] extends VldBase<any, infer U> ? U : never;
|
|
@@ -33,4 +37,3 @@ export declare class VldUnion<T extends readonly VldBase<any, any>[]> extends Vl
|
|
|
33
37
|
*/
|
|
34
38
|
safeParse(value: unknown): ParseResult<T[number] extends VldBase<any, infer U> ? U : never>;
|
|
35
39
|
}
|
|
36
|
-
//# sourceMappingURL=union.d.ts.map
|