@oxog/vld 2.0.2 → 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 +75 -1
- package/LICENSE +20 -20
- package/README.md +101 -37
- package/dist/chunks/errors-core-BeiFUtZM.js +81 -0
- package/dist/chunks/{index-CETyGkrv.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-ODue_rtq.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 +1558 -9647
- 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 -7208
- 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 +1195 -600
- package/dist/index.js +1262 -44
- 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 +77 -0
- 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 +228 -5
- 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 -38
- package/dist/validators/index.js +35 -5
- 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 +80 -21
- 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 +58 -0
- 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 +13 -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-SLIH1VCf.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 +116 -31
- package/dist/chunks/bigint-DgsCr2dC.js +0 -1709
- package/dist/chunks/bigint-DgsCr2dC.js.map +0 -1
- package/dist/chunks/date-ODue_rtq.js.map +0 -1
- package/dist/chunks/index-BZqWZvVe.js +0 -426
- package/dist/chunks/index-BZqWZvVe.js.map +0 -1
- package/dist/chunks/index-CETyGkrv.js.map +0 -1
- package/dist/chunks/json-o20GFhTh.js +0 -2021
- package/dist/chunks/json-o20GFhTh.js.map +0 -1
- package/dist/chunks/unknown-SLIH1VCf.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/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/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,191 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var validators_base = require('./base.cjs');
|
|
4
|
+
var locales_runtime = require('../locales/runtime.cjs');
|
|
5
|
+
require('../registry.cjs');
|
|
6
|
+
require('../locales/en.cjs');
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Optimized immutable union validator for multiple type options
|
|
10
|
+
* Features type-checking shortcuts for 110x performance improvement
|
|
11
|
+
*/
|
|
12
|
+
class VldUnion extends validators_base.VldBase {
|
|
13
|
+
/**
|
|
14
|
+
* Private constructor to enforce immutability
|
|
15
|
+
*/
|
|
16
|
+
constructor(validators, errorMessage) {
|
|
17
|
+
super(validators_base.VLD_VALIDATOR_TYPES.UNION);
|
|
18
|
+
this.validators = validators;
|
|
19
|
+
this.errorMessage = errorMessage;
|
|
20
|
+
this.typeCheckers = validators.map(validator => this.createTypeChecker(validator));
|
|
21
|
+
this.simpleModes = validators.map(validator => this.createSimpleMode(validator));
|
|
22
|
+
this.simpleValues = validators.map((validator, i) => this.simpleModes[i] === 'literal' ? validator.literal : undefined);
|
|
23
|
+
}
|
|
24
|
+
createSimpleMode(validator) {
|
|
25
|
+
if (validator.isSimple !== true) {
|
|
26
|
+
return undefined;
|
|
27
|
+
}
|
|
28
|
+
switch (validator.validatorType) {
|
|
29
|
+
case validators_base.VLD_VALIDATOR_TYPES.STRING:
|
|
30
|
+
return 'string';
|
|
31
|
+
case validators_base.VLD_VALIDATOR_TYPES.NUMBER:
|
|
32
|
+
return 'number';
|
|
33
|
+
case validators_base.VLD_VALIDATOR_TYPES.BOOLEAN:
|
|
34
|
+
return 'boolean';
|
|
35
|
+
case validators_base.VLD_VALIDATOR_TYPES.BIGINT:
|
|
36
|
+
return 'bigint';
|
|
37
|
+
case validators_base.VLD_VALIDATOR_TYPES.SYMBOL:
|
|
38
|
+
return 'symbol';
|
|
39
|
+
case validators_base.VLD_VALIDATOR_TYPES.NULL:
|
|
40
|
+
return 'null';
|
|
41
|
+
case validators_base.VLD_VALIDATOR_TYPES.UNDEFINED:
|
|
42
|
+
case validators_base.VLD_VALIDATOR_TYPES.VOID:
|
|
43
|
+
return 'undefined';
|
|
44
|
+
case validators_base.VLD_VALIDATOR_TYPES.LITERAL:
|
|
45
|
+
return 'literal';
|
|
46
|
+
case validators_base.VLD_VALIDATOR_TYPES.ANY:
|
|
47
|
+
case validators_base.VLD_VALIDATOR_TYPES.UNKNOWN:
|
|
48
|
+
return 'passthrough';
|
|
49
|
+
default:
|
|
50
|
+
return undefined;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
parseSimpleValue(mode, index, value) {
|
|
54
|
+
switch (mode) {
|
|
55
|
+
case 'string':
|
|
56
|
+
case 'number':
|
|
57
|
+
case 'boolean':
|
|
58
|
+
case 'bigint':
|
|
59
|
+
case 'symbol':
|
|
60
|
+
return value;
|
|
61
|
+
case 'null':
|
|
62
|
+
return null;
|
|
63
|
+
case 'undefined':
|
|
64
|
+
return undefined;
|
|
65
|
+
case 'literal':
|
|
66
|
+
return this.simpleValues[index];
|
|
67
|
+
case 'passthrough':
|
|
68
|
+
return value;
|
|
69
|
+
default:
|
|
70
|
+
return undefined;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Create type checker based on validator type for fast path optimization
|
|
75
|
+
* Uses a safer approach that's less prone to spoofing
|
|
76
|
+
*/
|
|
77
|
+
createTypeChecker(validator) {
|
|
78
|
+
switch (validator.validatorType) {
|
|
79
|
+
case validators_base.VLD_VALIDATOR_TYPES.STRING:
|
|
80
|
+
return (v) => typeof v === 'string';
|
|
81
|
+
case validators_base.VLD_VALIDATOR_TYPES.NUMBER:
|
|
82
|
+
return (v) => typeof v === 'number' && !isNaN(v);
|
|
83
|
+
case validators_base.VLD_VALIDATOR_TYPES.BOOLEAN:
|
|
84
|
+
return (v) => typeof v === 'boolean';
|
|
85
|
+
case validators_base.VLD_VALIDATOR_TYPES.BIGINT:
|
|
86
|
+
return (v) => typeof v === 'bigint';
|
|
87
|
+
case validators_base.VLD_VALIDATOR_TYPES.SYMBOL:
|
|
88
|
+
return (v) => typeof v === 'symbol';
|
|
89
|
+
case validators_base.VLD_VALIDATOR_TYPES.NAN:
|
|
90
|
+
return (v) => typeof v === 'number' && Number.isNaN(v);
|
|
91
|
+
case validators_base.VLD_VALIDATOR_TYPES.ARRAY:
|
|
92
|
+
return Array.isArray;
|
|
93
|
+
case validators_base.VLD_VALIDATOR_TYPES.OBJECT:
|
|
94
|
+
return (v) => typeof v === 'object' && v !== null && !Array.isArray(v);
|
|
95
|
+
case validators_base.VLD_VALIDATOR_TYPES.NULL:
|
|
96
|
+
return (v) => v === null;
|
|
97
|
+
case validators_base.VLD_VALIDATOR_TYPES.UNDEFINED:
|
|
98
|
+
case validators_base.VLD_VALIDATOR_TYPES.VOID:
|
|
99
|
+
return (v) => v === undefined;
|
|
100
|
+
case validators_base.VLD_VALIDATOR_TYPES.ENUM:
|
|
101
|
+
return (v) => typeof v === 'string' || typeof v === 'number';
|
|
102
|
+
case validators_base.VLD_VALIDATOR_TYPES.LITERAL: {
|
|
103
|
+
const literal = validator.literal;
|
|
104
|
+
return (v) => v === literal;
|
|
105
|
+
}
|
|
106
|
+
case validators_base.VLD_VALIDATOR_TYPES.NEVER:
|
|
107
|
+
return () => false;
|
|
108
|
+
case validators_base.VLD_VALIDATOR_TYPES.ANY:
|
|
109
|
+
case validators_base.VLD_VALIDATOR_TYPES.UNKNOWN:
|
|
110
|
+
return () => true;
|
|
111
|
+
default:
|
|
112
|
+
return () => true;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Create a new union validator
|
|
117
|
+
*/
|
|
118
|
+
static create(...validators) {
|
|
119
|
+
return new VldUnion(validators);
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Parse and validate a value against union options
|
|
123
|
+
* Optimized with type checking and direct parsing to avoid success-result allocations
|
|
124
|
+
* BUG-NEW-013 FIX: Single-pass error collection to avoid double parsing
|
|
125
|
+
*/
|
|
126
|
+
parse(value) {
|
|
127
|
+
// Single pass: collect errors during validation
|
|
128
|
+
const errors = [];
|
|
129
|
+
for (let i = 0; i < this.validators.length; i++) {
|
|
130
|
+
const validator = this.validators[i];
|
|
131
|
+
const typeChecker = this.typeCheckers[i];
|
|
132
|
+
// Skip validators that definitely won't match based on type
|
|
133
|
+
if (typeChecker && !typeChecker(value)) {
|
|
134
|
+
continue;
|
|
135
|
+
}
|
|
136
|
+
const simpleMode = this.simpleModes[i];
|
|
137
|
+
if (simpleMode !== undefined) {
|
|
138
|
+
return this.parseSimpleValue(simpleMode, i, value);
|
|
139
|
+
}
|
|
140
|
+
try {
|
|
141
|
+
return validator.parse(value);
|
|
142
|
+
}
|
|
143
|
+
catch (error) {
|
|
144
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
145
|
+
errors.push(message);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
// All validators failed - throw with collected errors
|
|
149
|
+
throw new Error(this.errorMessage ||
|
|
150
|
+
locales_runtime.getMessages().unionNoMatch(errors));
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Safely parse and validate a value against union options
|
|
154
|
+
* Optimized version using type checking shortcuts
|
|
155
|
+
* BUG-NEW-013 FIX: Single-pass error collection to avoid double parsing
|
|
156
|
+
*/
|
|
157
|
+
safeParse(value) {
|
|
158
|
+
// Single pass: collect errors during validation
|
|
159
|
+
const errors = [];
|
|
160
|
+
for (let i = 0; i < this.validators.length; i++) {
|
|
161
|
+
const validator = this.validators[i];
|
|
162
|
+
const typeChecker = this.typeCheckers[i];
|
|
163
|
+
// Skip validators that definitely won't match based on type
|
|
164
|
+
if (typeChecker && !typeChecker(value)) {
|
|
165
|
+
continue;
|
|
166
|
+
}
|
|
167
|
+
const simpleMode = this.simpleModes[i];
|
|
168
|
+
if (simpleMode !== undefined) {
|
|
169
|
+
return {
|
|
170
|
+
success: true,
|
|
171
|
+
data: this.parseSimpleValue(simpleMode, i, value)
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
try {
|
|
175
|
+
return { success: true, data: validator.parse(value) };
|
|
176
|
+
}
|
|
177
|
+
catch (error) {
|
|
178
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
179
|
+
errors.push(message);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
// All validators failed - return error with collected messages
|
|
183
|
+
return {
|
|
184
|
+
success: false,
|
|
185
|
+
error: new Error(this.errorMessage ||
|
|
186
|
+
locales_runtime.getMessages().unionNoMatch(errors))
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
exports.VldUnion = VldUnion;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var validators_base = require('./base.cjs');
|
|
4
|
+
require('../registry.cjs');
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Validator that accepts unknown values
|
|
8
|
+
*/
|
|
9
|
+
class VldUnknown extends validators_base.VldBase {
|
|
10
|
+
constructor() {
|
|
11
|
+
super(validators_base.VLD_VALIDATOR_TYPES.UNKNOWN);
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Create a new unknown validator
|
|
15
|
+
*/
|
|
16
|
+
static create() {
|
|
17
|
+
return new VldUnknown();
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Returns true because unknown accepts every input without checks.
|
|
21
|
+
* Used by composite validators for passthrough fast paths.
|
|
22
|
+
*/
|
|
23
|
+
get isSimple() {
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Parse unknown value (always succeeds)
|
|
28
|
+
*/
|
|
29
|
+
parse(value) {
|
|
30
|
+
return value;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Safely parse unknown value (always succeeds)
|
|
34
|
+
*/
|
|
35
|
+
safeParse(value) {
|
|
36
|
+
return { success: true, data: value };
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
exports.VldUnknown = VldUnknown;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var validators_base = require('./base.cjs');
|
|
4
|
+
var locales_runtime = require('../locales/runtime.cjs');
|
|
5
|
+
var errorsCore = require('../chunks/errors-core-DWxLFs2f.cjs');
|
|
6
|
+
require('../registry.cjs');
|
|
7
|
+
require('../locales/en.cjs');
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Validator that only accepts undefined
|
|
11
|
+
*/
|
|
12
|
+
class VldVoid extends validators_base.VldBase {
|
|
13
|
+
constructor() {
|
|
14
|
+
super(validators_base.VLD_VALIDATOR_TYPES.VOID);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Create a new void validator
|
|
18
|
+
*/
|
|
19
|
+
static create() {
|
|
20
|
+
return new VldVoid();
|
|
21
|
+
}
|
|
22
|
+
get isSimple() {
|
|
23
|
+
return true;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Parse void value (must be undefined)
|
|
27
|
+
*/
|
|
28
|
+
parse(value) {
|
|
29
|
+
if (value !== undefined) {
|
|
30
|
+
throw new Error(locales_runtime.getMessages().expectedUndefined);
|
|
31
|
+
}
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Safely parse void value
|
|
36
|
+
*/
|
|
37
|
+
safeParse(value) {
|
|
38
|
+
if (value === undefined) {
|
|
39
|
+
return { success: true, data: undefined };
|
|
40
|
+
}
|
|
41
|
+
return {
|
|
42
|
+
success: false,
|
|
43
|
+
error: new errorsCore.VldError([{ code: 'invalid_type', path: [], message: locales_runtime.getMessages().expectedUndefined }])
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
exports.VldVoid = VldVoid;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var validators_base = require('./base.cjs');
|
|
4
|
+
require('../registry.cjs');
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* VldXor - Exclusive union validator
|
|
8
|
+
* Part of Zod 4 API parity implementation
|
|
9
|
+
* Ensures exactly one schema in the union matches
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* XOR validator - ensures exactly one option matches
|
|
13
|
+
* Unlike regular union which allows multiple matches, XOR requires exactly one
|
|
14
|
+
*/
|
|
15
|
+
class VldXor extends validators_base.VldBase {
|
|
16
|
+
constructor(_options) {
|
|
17
|
+
super(validators_base.VLD_VALIDATOR_TYPES.XOR);
|
|
18
|
+
this._options = _options;
|
|
19
|
+
}
|
|
20
|
+
static create(options) {
|
|
21
|
+
if (options.length < 2) {
|
|
22
|
+
throw new Error('XOR requires at least 2 options');
|
|
23
|
+
}
|
|
24
|
+
return new VldXor(options);
|
|
25
|
+
}
|
|
26
|
+
parse(value) {
|
|
27
|
+
const result = this.safeParse(value);
|
|
28
|
+
if (!result.success) {
|
|
29
|
+
throw result.error;
|
|
30
|
+
}
|
|
31
|
+
return result.data;
|
|
32
|
+
}
|
|
33
|
+
safeParse(value) {
|
|
34
|
+
let matchCount = 0;
|
|
35
|
+
let lastSuccess = null;
|
|
36
|
+
for (const option of this._options) {
|
|
37
|
+
const result = option.safeParse(value);
|
|
38
|
+
if (result.success) {
|
|
39
|
+
matchCount++;
|
|
40
|
+
lastSuccess = result;
|
|
41
|
+
if (matchCount > 1) {
|
|
42
|
+
// Early exit if more than one match
|
|
43
|
+
break;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
if (matchCount === 0) {
|
|
48
|
+
return {
|
|
49
|
+
success: false,
|
|
50
|
+
error: new Error('No schema matched in XOR union')
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
if (matchCount > 1) {
|
|
54
|
+
return {
|
|
55
|
+
success: false,
|
|
56
|
+
error: new Error(`Input matches ${matchCount} schemas in XOR union, but exactly one is required`)
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
return lastSuccess;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Get all options
|
|
63
|
+
*/
|
|
64
|
+
getOptions() {
|
|
65
|
+
return this._options;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
exports.VldXor = VldXor;
|
package/dist/cli/bin.d.ts
CHANGED