@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,116 @@
|
|
|
1
|
+
import { VldBase, VLD_VALIDATOR_TYPES } from './base.js';
|
|
2
|
+
import { i as isDangerousKey } from '../chunks/security-B0Pd_vSY.js';
|
|
3
|
+
import { getMessages } from '../locales/runtime.js';
|
|
4
|
+
import { V as VldError } from '../chunks/errors-core-BeiFUtZM.js';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Type guard to check if a value is a plain object
|
|
8
|
+
*/
|
|
9
|
+
function isPlainObject(obj) {
|
|
10
|
+
return (obj !== null &&
|
|
11
|
+
typeof obj === 'object' &&
|
|
12
|
+
obj.constructor === Object &&
|
|
13
|
+
Object.prototype.toString.call(obj) === '[object Object]');
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Safely deep merge two objects without prototype pollution vulnerability
|
|
17
|
+
* Optimized for performance with minimal object allocations
|
|
18
|
+
* BUG-NEW-020 FIX: Use comprehensive dangerous key protection from shared utility
|
|
19
|
+
* @param target The target object
|
|
20
|
+
* @param source The source object to merge from
|
|
21
|
+
* @returns A new merged object
|
|
22
|
+
*/
|
|
23
|
+
function deepMerge(target, source) {
|
|
24
|
+
// Create a new object to avoid mutations (only once)
|
|
25
|
+
const result = { ...target };
|
|
26
|
+
// Get source keys directly for better performance
|
|
27
|
+
const sourceKeys = Object.keys(source);
|
|
28
|
+
for (let i = 0; i < sourceKeys.length; i++) {
|
|
29
|
+
const key = sourceKeys[i];
|
|
30
|
+
// Skip dangerous keys that could lead to prototype pollution
|
|
31
|
+
if (isDangerousKey(key)) {
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
// Only process own properties (redundant with Object.keys but safe)
|
|
35
|
+
if (!Object.prototype.hasOwnProperty.call(source, key)) {
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
const sourceValue = source[key];
|
|
39
|
+
const targetValue = target[key];
|
|
40
|
+
// If both values are plain objects, merge them recursively
|
|
41
|
+
if (isPlainObject(sourceValue) && isPlainObject(targetValue)) {
|
|
42
|
+
result[key] = deepMerge(targetValue, sourceValue);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
// Otherwise, use the source value (including undefined)
|
|
46
|
+
result[key] = sourceValue;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return result;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
function createIntersectionError(message) {
|
|
53
|
+
return new VldError([{ code: 'invalid_type', path: [], message }]);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Immutable intersection validator for combining validators
|
|
57
|
+
*/
|
|
58
|
+
class VldIntersection extends VldBase {
|
|
59
|
+
/**
|
|
60
|
+
* Private constructor to enforce immutability
|
|
61
|
+
*/
|
|
62
|
+
constructor(validatorA, validatorB) {
|
|
63
|
+
super(VLD_VALIDATOR_TYPES.INTERSECTION);
|
|
64
|
+
this.validatorA = validatorA;
|
|
65
|
+
this.validatorB = validatorB;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Create a new intersection validator
|
|
69
|
+
*/
|
|
70
|
+
static create(validatorA, validatorB) {
|
|
71
|
+
return new VldIntersection(validatorA, validatorB);
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Parse and validate a value against both validators
|
|
75
|
+
*/
|
|
76
|
+
parse(value) {
|
|
77
|
+
try {
|
|
78
|
+
// Both validators must pass
|
|
79
|
+
const resultA = this.validatorA.parse(value);
|
|
80
|
+
const resultB = this.validatorB.parse(value);
|
|
81
|
+
// BUG-NEW-015 FIX: Check type consistency before merging
|
|
82
|
+
const aIsObject = isPlainObject(resultA);
|
|
83
|
+
const bIsObject = isPlainObject(resultB);
|
|
84
|
+
// Both are objects - safe to merge
|
|
85
|
+
if (aIsObject && bIsObject) {
|
|
86
|
+
return deepMerge(resultA, resultB);
|
|
87
|
+
}
|
|
88
|
+
// Neither are objects - must be identical primitives
|
|
89
|
+
if (!aIsObject && !bIsObject) {
|
|
90
|
+
if (resultA === resultB) {
|
|
91
|
+
return resultA;
|
|
92
|
+
}
|
|
93
|
+
throw new Error('Values must be identical for intersection of primitive types');
|
|
94
|
+
}
|
|
95
|
+
// One is object, one is primitive - invalid intersection
|
|
96
|
+
throw new Error('Cannot create intersection of object and primitive types. ' +
|
|
97
|
+
'Both validators must produce the same type category.');
|
|
98
|
+
}
|
|
99
|
+
catch (error) {
|
|
100
|
+
throw new Error(getMessages().intersectionError(error.message));
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Safely parse and validate a value against both validators
|
|
105
|
+
*/
|
|
106
|
+
safeParse(value) {
|
|
107
|
+
try {
|
|
108
|
+
return { success: true, data: this.parse(value) };
|
|
109
|
+
}
|
|
110
|
+
catch (error) {
|
|
111
|
+
return { success: false, error: createIntersectionError(error.message) };
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
export { VldIntersection };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { VldBase, ParseResult } from './base';
|
|
1
|
+
import { VldBase, ParseResult } from './base.js';
|
|
2
2
|
/**
|
|
3
3
|
* Immutable JSON validator that validates and parses JSON strings
|
|
4
4
|
* Accepts both strings (which are parsed) and already-parsed objects
|
|
@@ -23,4 +23,3 @@ export declare class VldJson<T = unknown> extends VldBase<unknown, T> {
|
|
|
23
23
|
*/
|
|
24
24
|
withSchema<U>(schema: VldBase<unknown, U>): VldJson<U>;
|
|
25
25
|
}
|
|
26
|
-
//# sourceMappingURL=json.d.ts.map
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { VldBase, VLD_VALIDATOR_TYPES } from './base.js';
|
|
2
|
+
import { getMessages } from '../locales/runtime.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Immutable JSON validator that validates and parses JSON strings
|
|
6
|
+
* Accepts both strings (which are parsed) and already-parsed objects
|
|
7
|
+
*/
|
|
8
|
+
class VldJson extends VldBase {
|
|
9
|
+
constructor(schema) {
|
|
10
|
+
super(VLD_VALIDATOR_TYPES.JSON);
|
|
11
|
+
this.schema = schema;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Create a new JSON validator
|
|
15
|
+
*/
|
|
16
|
+
static create(schema) {
|
|
17
|
+
return new VldJson(schema);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Parse and validate a JSON value
|
|
21
|
+
*/
|
|
22
|
+
parse(value) {
|
|
23
|
+
let parsed;
|
|
24
|
+
// If it's a string, try to parse it as JSON first
|
|
25
|
+
if (typeof value === 'string') {
|
|
26
|
+
try {
|
|
27
|
+
parsed = JSON.parse(value);
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
throw new Error(getMessages().invalidJson);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
// Not a string - assume it's already parsed
|
|
35
|
+
parsed = value;
|
|
36
|
+
}
|
|
37
|
+
// If we have a schema, validate against it
|
|
38
|
+
if (this.schema) {
|
|
39
|
+
return this.schema.parse(parsed);
|
|
40
|
+
}
|
|
41
|
+
// No schema - just return the parsed value
|
|
42
|
+
return parsed;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Safely parse and validate a JSON value
|
|
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
|
+
* Create a new JSON validator with a schema for validation
|
|
60
|
+
*/
|
|
61
|
+
withSchema(schema) {
|
|
62
|
+
return new VldJson(schema);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export { VldJson };
|
|
@@ -3,25 +3,22 @@
|
|
|
3
3
|
* Part of Zod 4 API parity implementation
|
|
4
4
|
* Allows schemas that reference themselves (e.g., tree structures, nested categories)
|
|
5
5
|
*/
|
|
6
|
-
import { VldBase } from './base';
|
|
7
|
-
import type { ParseResult } from './base';
|
|
6
|
+
import { VldBase } from './base.js';
|
|
7
|
+
import type { ParseResult } from './base.js';
|
|
8
8
|
/**
|
|
9
9
|
* Lazy validator - defers schema evaluation until runtime
|
|
10
10
|
* Essential for recursive and self-referencing types
|
|
11
11
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* applications with dynamically created schemas.
|
|
12
|
+
* Caches the resolved schema after first use. This keeps recursive schemas stable
|
|
13
|
+
* and avoids re-running the schema getter on hot parse paths.
|
|
15
14
|
*/
|
|
16
15
|
export declare class VldLazy<TInput, TOutput> extends VldBase<TInput, TOutput> {
|
|
17
16
|
private readonly _schemaGetter;
|
|
18
|
-
private
|
|
19
|
-
private _strongRef;
|
|
17
|
+
private _cachedSchema;
|
|
20
18
|
private constructor();
|
|
21
19
|
static create<TInput, TOutput>(schemaGetter: () => VldBase<TInput, TOutput>): VldLazy<TInput, TOutput>;
|
|
22
20
|
/**
|
|
23
21
|
* Get the actual schema, caching it after first retrieval
|
|
24
|
-
* Uses WeakRef to allow garbage collection when validator is not in use
|
|
25
22
|
*/
|
|
26
23
|
private _getSchema;
|
|
27
24
|
/**
|
|
@@ -32,4 +29,3 @@ export declare class VldLazy<TInput, TOutput> extends VldBase<TInput, TOutput> {
|
|
|
32
29
|
parse(value: unknown): TOutput;
|
|
33
30
|
safeParse(value: unknown): ParseResult<TOutput>;
|
|
34
31
|
}
|
|
35
|
-
//# sourceMappingURL=lazy.d.ts.map
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { VldBase, VLD_VALIDATOR_TYPES } from './base.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* VldLazy - Lazy evaluation for recursive schemas
|
|
5
|
+
* Part of Zod 4 API parity implementation
|
|
6
|
+
* Allows schemas that reference themselves (e.g., tree structures, nested categories)
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Lazy validator - defers schema evaluation until runtime
|
|
10
|
+
* Essential for recursive and self-referencing types
|
|
11
|
+
*
|
|
12
|
+
* Caches the resolved schema after first use. This keeps recursive schemas stable
|
|
13
|
+
* and avoids re-running the schema getter on hot parse paths.
|
|
14
|
+
*/
|
|
15
|
+
class VldLazy extends VldBase {
|
|
16
|
+
constructor(_schemaGetter) {
|
|
17
|
+
super(VLD_VALIDATOR_TYPES.LAZY);
|
|
18
|
+
this._schemaGetter = _schemaGetter;
|
|
19
|
+
this._cachedSchema = null;
|
|
20
|
+
}
|
|
21
|
+
static create(schemaGetter) {
|
|
22
|
+
return new VldLazy(schemaGetter);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Get the actual schema, caching it after first retrieval
|
|
26
|
+
*/
|
|
27
|
+
_getSchema() {
|
|
28
|
+
if (this._cachedSchema) {
|
|
29
|
+
return this._cachedSchema;
|
|
30
|
+
}
|
|
31
|
+
const schema = this._schemaGetter();
|
|
32
|
+
this._cachedSchema = schema;
|
|
33
|
+
return schema;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Get the inner schema (unwrap)
|
|
37
|
+
* Returns a strong reference that will keep the schema alive
|
|
38
|
+
*/
|
|
39
|
+
unwrap() {
|
|
40
|
+
return this._getSchema();
|
|
41
|
+
}
|
|
42
|
+
parse(value) {
|
|
43
|
+
return this._getSchema().parse(value);
|
|
44
|
+
}
|
|
45
|
+
safeParse(value) {
|
|
46
|
+
return this._getSchema().safeParse(value);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export { VldLazy };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { VldBase, ParseResult } from './base';
|
|
1
|
+
import { VldBase, ParseResult } from './base.js';
|
|
2
2
|
/**
|
|
3
3
|
* Immutable literal validator for exact value matching
|
|
4
4
|
*/
|
|
@@ -13,6 +13,7 @@ export declare class VldLiteral<T extends string | number | boolean | null | und
|
|
|
13
13
|
* Get the literal value
|
|
14
14
|
*/
|
|
15
15
|
get literal(): T;
|
|
16
|
+
get isSimple(): boolean;
|
|
16
17
|
/**
|
|
17
18
|
* Create a new literal validator
|
|
18
19
|
*/
|
|
@@ -26,4 +27,3 @@ export declare class VldLiteral<T extends string | number | boolean | null | und
|
|
|
26
27
|
*/
|
|
27
28
|
safeParse(value: unknown): ParseResult<T>;
|
|
28
29
|
}
|
|
29
|
-
//# sourceMappingURL=literal.d.ts.map
|
|
@@ -0,0 +1,60 @@
|
|
|
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 createLiteralError(message) {
|
|
6
|
+
return new VldError([{ code: 'invalid_literal', path: [], message }]);
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Immutable literal validator for exact value matching
|
|
10
|
+
*/
|
|
11
|
+
class VldLiteral extends VldBase {
|
|
12
|
+
/**
|
|
13
|
+
* Private constructor to enforce immutability
|
|
14
|
+
*/
|
|
15
|
+
constructor(_literal, errorMessage) {
|
|
16
|
+
super(VLD_VALIDATOR_TYPES.LITERAL);
|
|
17
|
+
this._literal = _literal;
|
|
18
|
+
this.errorMessage = errorMessage;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Get the literal value
|
|
22
|
+
*/
|
|
23
|
+
get literal() {
|
|
24
|
+
return this._literal;
|
|
25
|
+
}
|
|
26
|
+
get isSimple() {
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Create a new literal validator
|
|
31
|
+
*/
|
|
32
|
+
static create(literal) {
|
|
33
|
+
return new VldLiteral(literal);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Parse and validate a literal value
|
|
37
|
+
*/
|
|
38
|
+
parse(value) {
|
|
39
|
+
if (value !== this._literal) {
|
|
40
|
+
throw new Error(this.errorMessage ||
|
|
41
|
+
getMessages().literalExpected(JSON.stringify(this._literal), JSON.stringify(value)));
|
|
42
|
+
}
|
|
43
|
+
return this._literal;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Safely parse and validate a literal value
|
|
47
|
+
*/
|
|
48
|
+
safeParse(value) {
|
|
49
|
+
if (value === this._literal) {
|
|
50
|
+
return { success: true, data: this._literal };
|
|
51
|
+
}
|
|
52
|
+
return {
|
|
53
|
+
success: false,
|
|
54
|
+
error: createLiteralError(this.errorMessage ||
|
|
55
|
+
getMessages().literalExpected(JSON.stringify(this._literal), JSON.stringify(value)))
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export { VldLiteral };
|
package/dist/validators/map.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { VldBase, ParseResult } from './base';
|
|
1
|
+
import { VldBase, ParseResult } from './base.js';
|
|
2
2
|
/**
|
|
3
3
|
* Immutable Map validator
|
|
4
4
|
*/
|
|
@@ -10,17 +10,30 @@ export declare class VldMap<K, V> extends VldBase<unknown, Map<K, V>> {
|
|
|
10
10
|
* Private constructor to enforce immutability
|
|
11
11
|
*/
|
|
12
12
|
private constructor();
|
|
13
|
+
private readonly _simpleKeyMode;
|
|
14
|
+
private readonly _simpleValueMode;
|
|
15
|
+
private readonly _simpleKeyValue;
|
|
16
|
+
private readonly _simpleValueValue;
|
|
17
|
+
get keySchema(): VldBase<unknown, K>;
|
|
18
|
+
get valueSchema(): VldBase<unknown, V>;
|
|
13
19
|
/**
|
|
14
20
|
* Create a new Map validator
|
|
15
21
|
*/
|
|
16
22
|
static create<K, V>(keyValidator: VldBase<unknown, K>, valueValidator: VldBase<unknown, V>): VldMap<K, V>;
|
|
23
|
+
private getSimpleItemMode;
|
|
24
|
+
private getSimpleItemError;
|
|
25
|
+
private parseSimpleItem;
|
|
17
26
|
/**
|
|
18
27
|
* Parse and validate a Map value
|
|
19
28
|
*/
|
|
20
29
|
parse(value: unknown): Map<K, V>;
|
|
30
|
+
/**
|
|
31
|
+
* Parse a value that has already passed the Map instance guard.
|
|
32
|
+
* @internal Used by object validators to avoid duplicate hot-path checks.
|
|
33
|
+
*/
|
|
34
|
+
parseKnownMap(value: Map<unknown, unknown>): Map<K, V>;
|
|
21
35
|
/**
|
|
22
36
|
* Safely parse and validate a Map value
|
|
23
37
|
*/
|
|
24
38
|
safeParse(value: unknown): ParseResult<Map<K, V>>;
|
|
25
39
|
}
|
|
26
|
-
//# sourceMappingURL=map.d.ts.map
|
|
@@ -0,0 +1,214 @@
|
|
|
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 createMapError(message) {
|
|
6
|
+
return new VldError([{ code: 'invalid_type', path: [], message }]);
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Immutable Map validator
|
|
10
|
+
*/
|
|
11
|
+
class VldMap extends VldBase {
|
|
12
|
+
/**
|
|
13
|
+
* Private constructor to enforce immutability
|
|
14
|
+
*/
|
|
15
|
+
constructor(keyValidator, valueValidator, errorMessage) {
|
|
16
|
+
super(VLD_VALIDATOR_TYPES.MAP);
|
|
17
|
+
this.keyValidator = keyValidator;
|
|
18
|
+
this.valueValidator = valueValidator;
|
|
19
|
+
this.errorMessage = errorMessage;
|
|
20
|
+
this._simpleKeyMode = this.getSimpleItemMode(keyValidator);
|
|
21
|
+
this._simpleValueMode = this.getSimpleItemMode(valueValidator);
|
|
22
|
+
this._simpleKeyValue = this._simpleKeyMode === 'literal' ? keyValidator.literal : undefined;
|
|
23
|
+
this._simpleValueValue = this._simpleValueMode === 'literal' ? valueValidator.literal : undefined;
|
|
24
|
+
}
|
|
25
|
+
get keySchema() {
|
|
26
|
+
return this.keyValidator;
|
|
27
|
+
}
|
|
28
|
+
get valueSchema() {
|
|
29
|
+
return this.valueValidator;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Create a new Map validator
|
|
33
|
+
*/
|
|
34
|
+
static create(keyValidator, valueValidator) {
|
|
35
|
+
return new VldMap(keyValidator, valueValidator);
|
|
36
|
+
}
|
|
37
|
+
getSimpleItemMode(validator) {
|
|
38
|
+
if (validator.isSimple !== true) {
|
|
39
|
+
return undefined;
|
|
40
|
+
}
|
|
41
|
+
switch (validator.validatorType) {
|
|
42
|
+
case VLD_VALIDATOR_TYPES.STRING:
|
|
43
|
+
return 'string';
|
|
44
|
+
case VLD_VALIDATOR_TYPES.NUMBER:
|
|
45
|
+
return 'number';
|
|
46
|
+
case VLD_VALIDATOR_TYPES.BOOLEAN:
|
|
47
|
+
return 'boolean';
|
|
48
|
+
case VLD_VALIDATOR_TYPES.BIGINT:
|
|
49
|
+
return 'bigint';
|
|
50
|
+
case VLD_VALIDATOR_TYPES.SYMBOL:
|
|
51
|
+
return 'symbol';
|
|
52
|
+
case VLD_VALIDATOR_TYPES.NULL:
|
|
53
|
+
return 'null';
|
|
54
|
+
case VLD_VALIDATOR_TYPES.UNDEFINED:
|
|
55
|
+
case VLD_VALIDATOR_TYPES.VOID:
|
|
56
|
+
return 'undefinedValue';
|
|
57
|
+
case VLD_VALIDATOR_TYPES.LITERAL:
|
|
58
|
+
return 'literal';
|
|
59
|
+
case VLD_VALIDATOR_TYPES.ANY:
|
|
60
|
+
case VLD_VALIDATOR_TYPES.UNKNOWN:
|
|
61
|
+
return 'passthrough';
|
|
62
|
+
default:
|
|
63
|
+
return undefined;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
getSimpleItemError(mode, expected, received) {
|
|
67
|
+
switch (mode) {
|
|
68
|
+
case 'string':
|
|
69
|
+
return getMessages().invalidString;
|
|
70
|
+
case 'number':
|
|
71
|
+
return getMessages().invalidNumber;
|
|
72
|
+
case 'boolean':
|
|
73
|
+
return getMessages().invalidBoolean;
|
|
74
|
+
case 'bigint':
|
|
75
|
+
return getMessages().invalidBigint;
|
|
76
|
+
case 'symbol':
|
|
77
|
+
return getMessages().invalidSymbol;
|
|
78
|
+
case 'null':
|
|
79
|
+
return `Expected null, received ${typeof received}`;
|
|
80
|
+
case 'undefinedValue':
|
|
81
|
+
return getMessages().expectedUndefined;
|
|
82
|
+
case 'literal':
|
|
83
|
+
return getMessages().literalExpected(JSON.stringify(expected), JSON.stringify(received));
|
|
84
|
+
default:
|
|
85
|
+
return getMessages().invalidMap;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
parseSimpleItem(mode, expected, value) {
|
|
89
|
+
switch (mode) {
|
|
90
|
+
case 'string':
|
|
91
|
+
if (typeof value !== 'string') {
|
|
92
|
+
throw new Error(this.getSimpleItemError(mode, expected, value));
|
|
93
|
+
}
|
|
94
|
+
return value;
|
|
95
|
+
case 'number':
|
|
96
|
+
if (typeof value !== 'number' || isNaN(value)) {
|
|
97
|
+
throw new Error(this.getSimpleItemError(mode, expected, value));
|
|
98
|
+
}
|
|
99
|
+
return value;
|
|
100
|
+
case 'boolean':
|
|
101
|
+
if (typeof value !== 'boolean') {
|
|
102
|
+
throw new Error(this.getSimpleItemError(mode, expected, value));
|
|
103
|
+
}
|
|
104
|
+
return value;
|
|
105
|
+
case 'bigint':
|
|
106
|
+
if (typeof value !== 'bigint') {
|
|
107
|
+
throw new Error(this.getSimpleItemError(mode, expected, value));
|
|
108
|
+
}
|
|
109
|
+
return value;
|
|
110
|
+
case 'symbol':
|
|
111
|
+
if (typeof value !== 'symbol') {
|
|
112
|
+
throw new Error(this.getSimpleItemError(mode, expected, value));
|
|
113
|
+
}
|
|
114
|
+
return value;
|
|
115
|
+
case 'null':
|
|
116
|
+
if (value !== null) {
|
|
117
|
+
throw new Error(this.getSimpleItemError(mode, expected, value));
|
|
118
|
+
}
|
|
119
|
+
return null;
|
|
120
|
+
case 'undefinedValue':
|
|
121
|
+
if (value !== undefined) {
|
|
122
|
+
throw new Error(this.getSimpleItemError(mode, expected, value));
|
|
123
|
+
}
|
|
124
|
+
return undefined;
|
|
125
|
+
case 'literal':
|
|
126
|
+
if (value !== expected) {
|
|
127
|
+
throw new Error(this.getSimpleItemError(mode, expected, value));
|
|
128
|
+
}
|
|
129
|
+
return expected;
|
|
130
|
+
case 'passthrough':
|
|
131
|
+
return value;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Parse and validate a Map value
|
|
136
|
+
*/
|
|
137
|
+
parse(value) {
|
|
138
|
+
if (!(value instanceof Map)) {
|
|
139
|
+
throw new Error(this.errorMessage || getMessages().invalidMap);
|
|
140
|
+
}
|
|
141
|
+
return this.parseKnownMap(value);
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Parse a value that has already passed the Map instance guard.
|
|
145
|
+
* @internal Used by object validators to avoid duplicate hot-path checks.
|
|
146
|
+
*/
|
|
147
|
+
parseKnownMap(value) {
|
|
148
|
+
const result = new Map();
|
|
149
|
+
const simpleKeyMode = this._simpleKeyMode;
|
|
150
|
+
const simpleValueMode = this._simpleValueMode;
|
|
151
|
+
if (simpleKeyMode === 'string' && simpleValueMode === 'number') {
|
|
152
|
+
for (const [key, val] of value) {
|
|
153
|
+
if (typeof key !== 'string') {
|
|
154
|
+
throw new Error(this.getSimpleItemError(simpleKeyMode, this._simpleKeyValue, key));
|
|
155
|
+
}
|
|
156
|
+
if (typeof val !== 'number' || isNaN(val)) {
|
|
157
|
+
throw new Error(this.getSimpleItemError(simpleValueMode, this._simpleValueValue, val));
|
|
158
|
+
}
|
|
159
|
+
result.set(key, val);
|
|
160
|
+
}
|
|
161
|
+
return result;
|
|
162
|
+
}
|
|
163
|
+
if (simpleKeyMode === 'string' && simpleValueMode === 'string') {
|
|
164
|
+
for (const [key, val] of value) {
|
|
165
|
+
if (typeof key !== 'string') {
|
|
166
|
+
throw new Error(this.getSimpleItemError(simpleKeyMode, this._simpleKeyValue, key));
|
|
167
|
+
}
|
|
168
|
+
if (typeof val !== 'string') {
|
|
169
|
+
throw new Error(this.getSimpleItemError(simpleValueMode, this._simpleValueValue, val));
|
|
170
|
+
}
|
|
171
|
+
result.set(key, val);
|
|
172
|
+
}
|
|
173
|
+
return result;
|
|
174
|
+
}
|
|
175
|
+
if (simpleKeyMode !== undefined && simpleValueMode !== undefined) {
|
|
176
|
+
const keyMode = simpleKeyMode;
|
|
177
|
+
const valueMode = simpleValueMode;
|
|
178
|
+
for (const [key, val] of value) {
|
|
179
|
+
const validKey = this.parseSimpleItem(keyMode, this._simpleKeyValue, key);
|
|
180
|
+
const validValue = this.parseSimpleItem(valueMode, this._simpleValueValue, val);
|
|
181
|
+
result.set(validKey, validValue);
|
|
182
|
+
}
|
|
183
|
+
return result;
|
|
184
|
+
}
|
|
185
|
+
for (const [key, val] of value) {
|
|
186
|
+
try {
|
|
187
|
+
const validKey = simpleKeyMode === undefined
|
|
188
|
+
? this.keyValidator.parse(key)
|
|
189
|
+
: this.parseSimpleItem(simpleKeyMode, this._simpleKeyValue, key);
|
|
190
|
+
const validValue = simpleValueMode === undefined
|
|
191
|
+
? this.valueValidator.parse(val)
|
|
192
|
+
: this.parseSimpleItem(simpleValueMode, this._simpleValueValue, val);
|
|
193
|
+
result.set(validKey, validValue);
|
|
194
|
+
}
|
|
195
|
+
catch (error) {
|
|
196
|
+
throw new Error(error.message);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
return result;
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Safely parse and validate a Map value
|
|
203
|
+
*/
|
|
204
|
+
safeParse(value) {
|
|
205
|
+
try {
|
|
206
|
+
return { success: true, data: this.parse(value) };
|
|
207
|
+
}
|
|
208
|
+
catch (error) {
|
|
209
|
+
return { success: false, error: createMapError(error.message) };
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
export { VldMap };
|
package/dist/validators/nan.d.ts
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* VldNan - Validates that a value is NaN (Not a Number)
|
|
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
|
* NaN validator - validates that a value is NaN
|
|
9
9
|
* Note: Uses Number.isNaN() which is more strict than global isNaN()
|
|
@@ -14,4 +14,3 @@ export declare class VldNan extends VldBase<unknown, number> {
|
|
|
14
14
|
parse(value: unknown): number;
|
|
15
15
|
safeParse(value: unknown): ParseResult<number>;
|
|
16
16
|
}
|
|
17
|
-
//# sourceMappingURL=nan.d.ts.map
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { VldBase, VLD_VALIDATOR_TYPES } from './base.js';
|
|
2
|
+
import { V as VldError } from '../chunks/errors-core-BeiFUtZM.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* VldNan - Validates that a value is NaN (Not a Number)
|
|
6
|
+
* Part of Zod 4 API parity implementation
|
|
7
|
+
*/
|
|
8
|
+
function createNanError(message) {
|
|
9
|
+
return new VldError([{ code: 'invalid_number', path: [], message }]);
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* NaN validator - validates that a value is NaN
|
|
13
|
+
* Note: Uses Number.isNaN() which is more strict than global isNaN()
|
|
14
|
+
*/
|
|
15
|
+
class VldNan extends VldBase {
|
|
16
|
+
constructor() {
|
|
17
|
+
super(VLD_VALIDATOR_TYPES.NAN);
|
|
18
|
+
}
|
|
19
|
+
static create() {
|
|
20
|
+
return new VldNan();
|
|
21
|
+
}
|
|
22
|
+
parse(value) {
|
|
23
|
+
if (typeof value !== 'number' || !Number.isNaN(value)) {
|
|
24
|
+
throw new Error(`Expected NaN, received ${typeof value === 'number' ? 'a valid number' : typeof value}`);
|
|
25
|
+
}
|
|
26
|
+
return value;
|
|
27
|
+
}
|
|
28
|
+
safeParse(value) {
|
|
29
|
+
try {
|
|
30
|
+
return { success: true, data: this.parse(value) };
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
return { success: false, error: createNanError(error.message) };
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export { VldNan };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { VldBase, ParseResult } from './base';
|
|
1
|
+
import { VldBase, ParseResult } from './base.js';
|
|
2
2
|
/**
|
|
3
3
|
* Validator that never succeeds
|
|
4
4
|
*/
|
|
@@ -16,4 +16,3 @@ export declare class VldNever extends VldBase<never, never> {
|
|
|
16
16
|
*/
|
|
17
17
|
safeParse(_value: unknown): ParseResult<never>;
|
|
18
18
|
}
|
|
19
|
-
//# sourceMappingURL=never.d.ts.map
|