@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
|
@@ -1,13 +1,25 @@
|
|
|
1
|
-
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var validators_string = require('../chunks/string-BKZrc4hs.cjs');
|
|
4
|
+
var validators_base = require('../validators/base.cjs');
|
|
5
|
+
var locales_runtime = require('../locales/runtime.cjs');
|
|
6
|
+
var validators_number = require('../validators/number.cjs');
|
|
7
|
+
var validators_boolean = require('../validators/boolean.cjs');
|
|
8
|
+
var validators_date = require('../validators/date.cjs');
|
|
9
|
+
var validators_bigint = require('../validators/bigint.cjs');
|
|
10
|
+
require('../chunks/errors-core-DWxLFs2f.cjs');
|
|
11
|
+
require('../registry.cjs');
|
|
12
|
+
require('../locales/en.cjs');
|
|
2
13
|
|
|
3
14
|
// BUG-NEW-001 FIX: IPv6 validation moved to shared utility (src/utils/ip-validation.ts)
|
|
4
15
|
// to eliminate code duplication between string.ts and coercion/string.ts
|
|
5
16
|
/**
|
|
6
17
|
* String coercion validator that attempts to convert values to strings
|
|
7
18
|
*/
|
|
8
|
-
class VldCoerceString extends VldString {
|
|
19
|
+
class VldCoerceString extends validators_string.VldString {
|
|
9
20
|
constructor(config) {
|
|
10
|
-
|
|
21
|
+
// Pass COERCE_STRING type to base class instead of STRING
|
|
22
|
+
super({ ...config, validatorType: validators_base.VLD_VALIDATOR_TYPES.COERCE_STRING });
|
|
11
23
|
}
|
|
12
24
|
/**
|
|
13
25
|
* Create a new coerce string validator
|
|
@@ -20,21 +32,21 @@ class VldCoerceString extends VldString {
|
|
|
20
32
|
return new VldCoerceString({
|
|
21
33
|
checks: [...this.config.checks, (v) => v.length >= length],
|
|
22
34
|
transforms: this.config.transforms,
|
|
23
|
-
errorMessage: message || getMessages().stringMin(length)
|
|
35
|
+
errorMessage: message || locales_runtime.getMessages().stringMin(length)
|
|
24
36
|
});
|
|
25
37
|
}
|
|
26
38
|
max(length, message) {
|
|
27
39
|
return new VldCoerceString({
|
|
28
40
|
checks: [...this.config.checks, (v) => v.length <= length],
|
|
29
41
|
transforms: this.config.transforms,
|
|
30
|
-
errorMessage: message || getMessages().stringMax(length)
|
|
42
|
+
errorMessage: message || locales_runtime.getMessages().stringMax(length)
|
|
31
43
|
});
|
|
32
44
|
}
|
|
33
45
|
length(length, message) {
|
|
34
46
|
return new VldCoerceString({
|
|
35
47
|
checks: [...this.config.checks, (v) => v.length === length],
|
|
36
48
|
transforms: this.config.transforms,
|
|
37
|
-
errorMessage: message || getMessages().stringLength(length)
|
|
49
|
+
errorMessage: message || locales_runtime.getMessages().stringLength(length)
|
|
38
50
|
});
|
|
39
51
|
}
|
|
40
52
|
email(message) {
|
|
@@ -43,28 +55,28 @@ class VldCoerceString extends VldString {
|
|
|
43
55
|
return new VldCoerceString({
|
|
44
56
|
checks: [...this.config.checks, (v) => FAST_EMAIL_REGEX.test(v)],
|
|
45
57
|
transforms: this.config.transforms,
|
|
46
|
-
errorMessage: message || getMessages().stringEmail
|
|
58
|
+
errorMessage: message || locales_runtime.getMessages().stringEmail
|
|
47
59
|
});
|
|
48
60
|
}
|
|
49
61
|
url(message) {
|
|
50
62
|
return new VldCoerceString({
|
|
51
63
|
checks: [...this.config.checks, (v) => /^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)$/.test(v)],
|
|
52
64
|
transforms: this.config.transforms,
|
|
53
|
-
errorMessage: message || getMessages().stringUrl
|
|
65
|
+
errorMessage: message || locales_runtime.getMessages().stringUrl
|
|
54
66
|
});
|
|
55
67
|
}
|
|
56
68
|
uuid(message) {
|
|
57
69
|
return new VldCoerceString({
|
|
58
70
|
checks: [...this.config.checks, (v) => /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(v)],
|
|
59
71
|
transforms: this.config.transforms,
|
|
60
|
-
errorMessage: message || getMessages().stringUuid
|
|
72
|
+
errorMessage: message || locales_runtime.getMessages().stringUuid
|
|
61
73
|
});
|
|
62
74
|
}
|
|
63
75
|
regex(pattern, message) {
|
|
64
76
|
return new VldCoerceString({
|
|
65
77
|
checks: [...this.config.checks, (v) => pattern.test(v)],
|
|
66
78
|
transforms: this.config.transforms,
|
|
67
|
-
errorMessage: message || getMessages().stringRegex
|
|
79
|
+
errorMessage: message || locales_runtime.getMessages().stringRegex
|
|
68
80
|
});
|
|
69
81
|
}
|
|
70
82
|
trim() {
|
|
@@ -92,21 +104,21 @@ class VldCoerceString extends VldString {
|
|
|
92
104
|
return new VldCoerceString({
|
|
93
105
|
checks: [...this.config.checks, (v) => v.startsWith(str)],
|
|
94
106
|
transforms: this.config.transforms,
|
|
95
|
-
errorMessage: message || getMessages().stringStartsWith(str)
|
|
107
|
+
errorMessage: message || locales_runtime.getMessages().stringStartsWith(str)
|
|
96
108
|
});
|
|
97
109
|
}
|
|
98
110
|
endsWith(str, message) {
|
|
99
111
|
return new VldCoerceString({
|
|
100
112
|
checks: [...this.config.checks, (v) => v.endsWith(str)],
|
|
101
113
|
transforms: this.config.transforms,
|
|
102
|
-
errorMessage: message || getMessages().stringEndsWith(str)
|
|
114
|
+
errorMessage: message || locales_runtime.getMessages().stringEndsWith(str)
|
|
103
115
|
});
|
|
104
116
|
}
|
|
105
117
|
includes(str, message) {
|
|
106
118
|
return new VldCoerceString({
|
|
107
119
|
checks: [...this.config.checks, (v) => v.includes(str)],
|
|
108
120
|
transforms: this.config.transforms,
|
|
109
|
-
errorMessage: message || getMessages().stringIncludes(str)
|
|
121
|
+
errorMessage: message || locales_runtime.getMessages().stringIncludes(str)
|
|
110
122
|
});
|
|
111
123
|
}
|
|
112
124
|
ip(message) {
|
|
@@ -116,34 +128,34 @@ class VldCoerceString extends VldString {
|
|
|
116
128
|
// Prevent ReDoS: Check length before validation
|
|
117
129
|
if (v.length > 100)
|
|
118
130
|
return false;
|
|
119
|
-
return ipv4.test(v) || isValidIPv6(v);
|
|
131
|
+
return ipv4.test(v) || validators_string.isValidIPv6(v);
|
|
120
132
|
}],
|
|
121
133
|
transforms: this.config.transforms,
|
|
122
|
-
errorMessage: message || getMessages().stringIp
|
|
134
|
+
errorMessage: message || locales_runtime.getMessages().stringIp
|
|
123
135
|
});
|
|
124
136
|
}
|
|
125
137
|
ipv4(message) {
|
|
126
138
|
return new VldCoerceString({
|
|
127
139
|
checks: [...this.config.checks, (v) => /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test(v)],
|
|
128
140
|
transforms: this.config.transforms,
|
|
129
|
-
errorMessage: message || getMessages().stringIpv4
|
|
141
|
+
errorMessage: message || locales_runtime.getMessages().stringIpv4
|
|
130
142
|
});
|
|
131
143
|
}
|
|
132
144
|
ipv6(message) {
|
|
133
145
|
return new VldCoerceString({
|
|
134
146
|
checks: [...this.config.checks, (v) => {
|
|
135
147
|
// Use safe IPv6 validation to prevent ReDoS attacks
|
|
136
|
-
return isValidIPv6(v);
|
|
148
|
+
return validators_string.isValidIPv6(v);
|
|
137
149
|
}],
|
|
138
150
|
transforms: this.config.transforms,
|
|
139
|
-
errorMessage: message || getMessages().stringIpv6
|
|
151
|
+
errorMessage: message || locales_runtime.getMessages().stringIpv6
|
|
140
152
|
});
|
|
141
153
|
}
|
|
142
154
|
nonempty(message) {
|
|
143
155
|
return new VldCoerceString({
|
|
144
156
|
checks: [...this.config.checks, (v) => v.length > 0],
|
|
145
157
|
transforms: this.config.transforms,
|
|
146
|
-
errorMessage: message || getMessages().stringEmpty
|
|
158
|
+
errorMessage: message || locales_runtime.getMessages().stringEmpty
|
|
147
159
|
});
|
|
148
160
|
}
|
|
149
161
|
/**
|
|
@@ -154,7 +166,7 @@ class VldCoerceString extends VldString {
|
|
|
154
166
|
if (typeof value === 'string') {
|
|
155
167
|
// Enforce length limits to prevent DoS
|
|
156
168
|
if (value.length > 1000000) {
|
|
157
|
-
throw new Error(getMessages().coercionFailed('string', value));
|
|
169
|
+
throw new Error(locales_runtime.getMessages().coercionFailed('string', value));
|
|
158
170
|
}
|
|
159
171
|
// Sanitize control characters for security
|
|
160
172
|
// Remove characters that could cause issues in logs, databases, or UI
|
|
@@ -163,10 +175,6 @@ class VldCoerceString extends VldString {
|
|
|
163
175
|
// Use parent validation with sanitized string
|
|
164
176
|
return super.parse(sanitized);
|
|
165
177
|
}
|
|
166
|
-
// Handle null and undefined explicitly
|
|
167
|
-
if (value === null || value === undefined) {
|
|
168
|
-
throw new Error(getMessages().coercionFailed('string', value));
|
|
169
|
-
}
|
|
170
178
|
// Safe type coercion with security measures
|
|
171
179
|
let coerced;
|
|
172
180
|
if (typeof value === 'number') {
|
|
@@ -182,8 +190,8 @@ class VldCoerceString extends VldString {
|
|
|
182
190
|
coerced = value.toString();
|
|
183
191
|
}
|
|
184
192
|
else if (typeof value === 'symbol') {
|
|
185
|
-
// Symbols:
|
|
186
|
-
|
|
193
|
+
// Symbols: String() matches Zod coercion semantics without throwing.
|
|
194
|
+
coerced = String(value);
|
|
187
195
|
}
|
|
188
196
|
else if (typeof value === 'object') {
|
|
189
197
|
// Objects: only allow specific safe object types
|
|
@@ -215,7 +223,7 @@ class VldCoerceString extends VldString {
|
|
|
215
223
|
// Apply security controls
|
|
216
224
|
// Enforce length limits to prevent DoS
|
|
217
225
|
if (coerced.length > 1000000) {
|
|
218
|
-
throw new Error(getMessages().coercionFailed('string', value));
|
|
226
|
+
throw new Error(locales_runtime.getMessages().coercionFailed('string', value));
|
|
219
227
|
}
|
|
220
228
|
// Sanitize control characters for security
|
|
221
229
|
// Remove characters that could cause issues in logs, databases, or UI
|
|
@@ -240,9 +248,9 @@ class VldCoerceString extends VldString {
|
|
|
240
248
|
/**
|
|
241
249
|
* Number coercion validator that attempts to convert values to numbers
|
|
242
250
|
*/
|
|
243
|
-
class VldCoerceNumber extends VldNumber {
|
|
251
|
+
class VldCoerceNumber extends validators_number.VldNumber {
|
|
244
252
|
constructor(config) {
|
|
245
|
-
super(config);
|
|
253
|
+
super({ ...config, validatorType: validators_base.VLD_VALIDATOR_TYPES.COERCE_NUMBER });
|
|
246
254
|
}
|
|
247
255
|
/**
|
|
248
256
|
* Create a new coerce number validator
|
|
@@ -254,55 +262,55 @@ class VldCoerceNumber extends VldNumber {
|
|
|
254
262
|
min(value, message) {
|
|
255
263
|
return new VldCoerceNumber({
|
|
256
264
|
checks: [...this.config.checks, (v) => v >= value],
|
|
257
|
-
errorMessage: message || getMessages().numberMin(value)
|
|
265
|
+
errorMessage: message || locales_runtime.getMessages().numberMin(value)
|
|
258
266
|
});
|
|
259
267
|
}
|
|
260
268
|
max(value, message) {
|
|
261
269
|
return new VldCoerceNumber({
|
|
262
270
|
checks: [...this.config.checks, (v) => v <= value],
|
|
263
|
-
errorMessage: message || getMessages().numberMax(value)
|
|
271
|
+
errorMessage: message || locales_runtime.getMessages().numberMax(value)
|
|
264
272
|
});
|
|
265
273
|
}
|
|
266
274
|
int(message) {
|
|
267
275
|
return new VldCoerceNumber({
|
|
268
276
|
checks: [...this.config.checks, (v) => Number.isInteger(v)],
|
|
269
|
-
errorMessage: message || getMessages().numberInt
|
|
277
|
+
errorMessage: message || locales_runtime.getMessages().numberInt
|
|
270
278
|
});
|
|
271
279
|
}
|
|
272
280
|
positive(message) {
|
|
273
281
|
return new VldCoerceNumber({
|
|
274
282
|
checks: [...this.config.checks, (v) => v > 0],
|
|
275
|
-
errorMessage: message || getMessages().numberPositive
|
|
283
|
+
errorMessage: message || locales_runtime.getMessages().numberPositive
|
|
276
284
|
});
|
|
277
285
|
}
|
|
278
286
|
negative(message) {
|
|
279
287
|
return new VldCoerceNumber({
|
|
280
288
|
checks: [...this.config.checks, (v) => v < 0],
|
|
281
|
-
errorMessage: message || getMessages().numberNegative
|
|
289
|
+
errorMessage: message || locales_runtime.getMessages().numberNegative
|
|
282
290
|
});
|
|
283
291
|
}
|
|
284
292
|
nonnegative(message) {
|
|
285
293
|
return new VldCoerceNumber({
|
|
286
294
|
checks: [...this.config.checks, (v) => v >= 0],
|
|
287
|
-
errorMessage: message || getMessages().numberNonnegative
|
|
295
|
+
errorMessage: message || locales_runtime.getMessages().numberNonnegative
|
|
288
296
|
});
|
|
289
297
|
}
|
|
290
298
|
nonpositive(message) {
|
|
291
299
|
return new VldCoerceNumber({
|
|
292
300
|
checks: [...this.config.checks, (v) => v <= 0],
|
|
293
|
-
errorMessage: message || getMessages().numberNonpositive
|
|
301
|
+
errorMessage: message || locales_runtime.getMessages().numberNonpositive
|
|
294
302
|
});
|
|
295
303
|
}
|
|
296
304
|
finite(message) {
|
|
297
305
|
return new VldCoerceNumber({
|
|
298
306
|
checks: [...this.config.checks, (v) => Number.isFinite(v)],
|
|
299
|
-
errorMessage: message || getMessages().numberFinite
|
|
307
|
+
errorMessage: message || locales_runtime.getMessages().numberFinite
|
|
300
308
|
});
|
|
301
309
|
}
|
|
302
310
|
safe(message) {
|
|
303
311
|
return new VldCoerceNumber({
|
|
304
312
|
checks: [...this.config.checks, (v) => Number.isSafeInteger(v)],
|
|
305
|
-
errorMessage: message || getMessages().numberSafe
|
|
313
|
+
errorMessage: message || locales_runtime.getMessages().numberSafe
|
|
306
314
|
});
|
|
307
315
|
}
|
|
308
316
|
multipleOf(value, message) {
|
|
@@ -312,7 +320,7 @@ class VldCoerceNumber extends VldNumber {
|
|
|
312
320
|
const remainder = Math.abs(v % value);
|
|
313
321
|
return remainder < Number.EPSILON || Math.abs(remainder - Math.abs(value)) < Number.EPSILON;
|
|
314
322
|
}],
|
|
315
|
-
errorMessage: message || getMessages().numberMultipleOf(value)
|
|
323
|
+
errorMessage: message || locales_runtime.getMessages().numberMultipleOf(value)
|
|
316
324
|
});
|
|
317
325
|
}
|
|
318
326
|
step(value, message) {
|
|
@@ -354,30 +362,23 @@ class VldCoerceNumber extends VldNumber {
|
|
|
354
362
|
parse(value) {
|
|
355
363
|
// If it's already a valid number, use parent validation directly
|
|
356
364
|
if (typeof value === 'number' && !isNaN(value)) {
|
|
365
|
+
if (this.config.checks.length === 0) {
|
|
366
|
+
return value;
|
|
367
|
+
}
|
|
357
368
|
return super.parse(value);
|
|
358
369
|
}
|
|
359
370
|
let coerced;
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
if (trimmed === '') {
|
|
363
|
-
throw new Error(getMessages().coercionFailed('number', value));
|
|
364
|
-
}
|
|
365
|
-
coerced = Number(trimmed);
|
|
366
|
-
if (isNaN(coerced)) {
|
|
367
|
-
throw new Error(getMessages().coercionFailed('number', value));
|
|
368
|
-
}
|
|
371
|
+
try {
|
|
372
|
+
coerced = Number(value);
|
|
369
373
|
}
|
|
370
|
-
|
|
371
|
-
|
|
374
|
+
catch {
|
|
375
|
+
throw new Error(locales_runtime.getMessages().coercionFailed('number', value));
|
|
372
376
|
}
|
|
373
|
-
|
|
374
|
-
throw new Error(getMessages().coercionFailed('number', value));
|
|
377
|
+
if (isNaN(coerced)) {
|
|
378
|
+
throw new Error(locales_runtime.getMessages().coercionFailed('number', value));
|
|
375
379
|
}
|
|
376
|
-
|
|
377
|
-
coerced
|
|
378
|
-
if (isNaN(coerced)) {
|
|
379
|
-
throw new Error(getMessages().coercionFailed('number', value));
|
|
380
|
-
}
|
|
380
|
+
if (this.config.checks.length === 0) {
|
|
381
|
+
return coerced;
|
|
381
382
|
}
|
|
382
383
|
// Use parent validation with coerced value
|
|
383
384
|
return super.parse(coerced);
|
|
@@ -398,46 +399,21 @@ class VldCoerceNumber extends VldNumber {
|
|
|
398
399
|
/**
|
|
399
400
|
* Boolean coercion validator that attempts to convert values to booleans
|
|
400
401
|
*/
|
|
401
|
-
class VldCoerceBoolean extends VldBoolean {
|
|
402
|
+
class VldCoerceBoolean extends validators_boolean.VldBoolean {
|
|
402
403
|
/**
|
|
403
404
|
* Create a new coerce boolean validator
|
|
404
405
|
*/
|
|
405
406
|
static create() {
|
|
406
407
|
return new VldCoerceBoolean();
|
|
407
408
|
}
|
|
409
|
+
constructor() {
|
|
410
|
+
super(undefined, validators_base.VLD_VALIDATOR_TYPES.COERCE_BOOLEAN);
|
|
411
|
+
}
|
|
408
412
|
/**
|
|
409
413
|
* Parse and coerce a value to boolean
|
|
410
414
|
*/
|
|
411
415
|
parse(value) {
|
|
412
|
-
|
|
413
|
-
if (typeof value === 'string') {
|
|
414
|
-
const lower = value.toLowerCase().trim();
|
|
415
|
-
if (lower === 'true' || lower === '1' || lower === 'yes' || lower === 'on') {
|
|
416
|
-
return true;
|
|
417
|
-
}
|
|
418
|
-
if (lower === 'false' || lower === '0' || lower === 'no' || lower === 'off') {
|
|
419
|
-
return false;
|
|
420
|
-
}
|
|
421
|
-
throw new Error(getMessages().coercionFailed('boolean', value));
|
|
422
|
-
}
|
|
423
|
-
// Handle number values
|
|
424
|
-
if (typeof value === 'number') {
|
|
425
|
-
if (value === 1)
|
|
426
|
-
return true;
|
|
427
|
-
if (value === 0)
|
|
428
|
-
return false;
|
|
429
|
-
throw new Error(getMessages().coercionFailed('boolean', value));
|
|
430
|
-
}
|
|
431
|
-
// Handle null and undefined
|
|
432
|
-
if (value === null || value === undefined) {
|
|
433
|
-
throw new Error(getMessages().coercionFailed('boolean', value));
|
|
434
|
-
}
|
|
435
|
-
// Handle actual boolean values
|
|
436
|
-
if (typeof value === 'boolean') {
|
|
437
|
-
return value;
|
|
438
|
-
}
|
|
439
|
-
// Reject all other unsupported types (objects, arrays, etc.)
|
|
440
|
-
throw new Error(getMessages().coercionFailed('boolean', value));
|
|
416
|
+
return Boolean(value);
|
|
441
417
|
}
|
|
442
418
|
/**
|
|
443
419
|
* Safely parse and coerce a value to boolean
|
|
@@ -455,38 +431,35 @@ class VldCoerceBoolean extends VldBoolean {
|
|
|
455
431
|
/**
|
|
456
432
|
* Date coercion validator that attempts to convert values to dates
|
|
457
433
|
*/
|
|
458
|
-
class VldCoerceDate extends VldDate {
|
|
434
|
+
class VldCoerceDate extends validators_date.VldDate {
|
|
459
435
|
/**
|
|
460
436
|
* Create a new coerce date validator
|
|
461
437
|
*/
|
|
462
438
|
static create() {
|
|
463
439
|
return new VldCoerceDate();
|
|
464
440
|
}
|
|
441
|
+
constructor() {
|
|
442
|
+
super({ validatorType: validators_base.VLD_VALIDATOR_TYPES.COERCE_DATE });
|
|
443
|
+
}
|
|
465
444
|
/**
|
|
466
445
|
* Parse and coerce a value to date
|
|
467
446
|
*/
|
|
468
447
|
parse(value) {
|
|
469
448
|
try {
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
const date = new Date(value);
|
|
473
|
-
if (isNaN(date.getTime())) {
|
|
474
|
-
throw new Error(getMessages().coercionFailed('date', value));
|
|
475
|
-
}
|
|
476
|
-
return super.parse(date);
|
|
449
|
+
if (value instanceof Date) {
|
|
450
|
+
return super.parse(value);
|
|
477
451
|
}
|
|
478
|
-
|
|
479
|
-
if (
|
|
480
|
-
throw new Error(getMessages().coercionFailed('date', value));
|
|
452
|
+
const date = new Date(value);
|
|
453
|
+
if (isNaN(date.getTime())) {
|
|
454
|
+
throw new Error(locales_runtime.getMessages().coercionFailed('date', value));
|
|
481
455
|
}
|
|
482
|
-
|
|
483
|
-
return super.parse(value);
|
|
456
|
+
return super.parse(date);
|
|
484
457
|
}
|
|
485
458
|
catch (error) {
|
|
486
459
|
if (error.message.includes('Cannot coerce')) {
|
|
487
460
|
throw error;
|
|
488
461
|
}
|
|
489
|
-
throw new Error(getMessages().coercionFailed('date', value));
|
|
462
|
+
throw new Error(locales_runtime.getMessages().coercionFailed('date', value));
|
|
490
463
|
}
|
|
491
464
|
}
|
|
492
465
|
/**
|
|
@@ -502,5 +475,114 @@ class VldCoerceDate extends VldDate {
|
|
|
502
475
|
}
|
|
503
476
|
}
|
|
504
477
|
|
|
505
|
-
|
|
506
|
-
|
|
478
|
+
/**
|
|
479
|
+
* BigInt coercion validator that attempts to convert values to bigint
|
|
480
|
+
*/
|
|
481
|
+
class VldCoerceBigInt extends validators_bigint.VldBigInt {
|
|
482
|
+
constructor(config) {
|
|
483
|
+
super({ ...config, validatorType: validators_base.VLD_VALIDATOR_TYPES.COERCE_BIGINT });
|
|
484
|
+
}
|
|
485
|
+
/**
|
|
486
|
+
* Create a new coerce bigint validator
|
|
487
|
+
*/
|
|
488
|
+
static create() {
|
|
489
|
+
return new VldCoerceBigInt();
|
|
490
|
+
}
|
|
491
|
+
// Override all chain methods to return VldCoerceBigInt instances
|
|
492
|
+
min(value, message) {
|
|
493
|
+
return new VldCoerceBigInt({
|
|
494
|
+
checks: [...this.config.checks, (v) => v >= value],
|
|
495
|
+
errorMessage: message || `BigInt must be at least ${value}`
|
|
496
|
+
});
|
|
497
|
+
}
|
|
498
|
+
max(value, message) {
|
|
499
|
+
return new VldCoerceBigInt({
|
|
500
|
+
checks: [...this.config.checks, (v) => v <= value],
|
|
501
|
+
errorMessage: message || `BigInt must be at most ${value}`
|
|
502
|
+
});
|
|
503
|
+
}
|
|
504
|
+
positive(message) {
|
|
505
|
+
return new VldCoerceBigInt({
|
|
506
|
+
checks: [...this.config.checks, (v) => v > 0n],
|
|
507
|
+
errorMessage: message || 'BigInt must be positive'
|
|
508
|
+
});
|
|
509
|
+
}
|
|
510
|
+
negative(message) {
|
|
511
|
+
return new VldCoerceBigInt({
|
|
512
|
+
checks: [...this.config.checks, (v) => v < 0n],
|
|
513
|
+
errorMessage: message || 'BigInt must be negative'
|
|
514
|
+
});
|
|
515
|
+
}
|
|
516
|
+
nonnegative(message) {
|
|
517
|
+
return new VldCoerceBigInt({
|
|
518
|
+
checks: [...this.config.checks, (v) => v >= 0n],
|
|
519
|
+
errorMessage: message || 'BigInt must be non-negative'
|
|
520
|
+
});
|
|
521
|
+
}
|
|
522
|
+
nonpositive(message) {
|
|
523
|
+
return new VldCoerceBigInt({
|
|
524
|
+
checks: [...this.config.checks, (v) => v <= 0n],
|
|
525
|
+
errorMessage: message || 'BigInt must be non-positive'
|
|
526
|
+
});
|
|
527
|
+
}
|
|
528
|
+
/**
|
|
529
|
+
* Parse and coerce a value to bigint
|
|
530
|
+
*/
|
|
531
|
+
parse(value) {
|
|
532
|
+
// If it's already a bigint, use parent validation directly
|
|
533
|
+
if (typeof value === 'bigint') {
|
|
534
|
+
return super.parse(value);
|
|
535
|
+
}
|
|
536
|
+
// Handle string values
|
|
537
|
+
if (typeof value === 'string') {
|
|
538
|
+
const trimmed = value.trim();
|
|
539
|
+
if (trimmed === '') {
|
|
540
|
+
throw new Error(locales_runtime.getMessages().coercionFailed('bigint', value));
|
|
541
|
+
}
|
|
542
|
+
try {
|
|
543
|
+
const coerced = BigInt(trimmed);
|
|
544
|
+
return super.parse(coerced);
|
|
545
|
+
}
|
|
546
|
+
catch {
|
|
547
|
+
throw new Error(locales_runtime.getMessages().coercionFailed('bigint', value));
|
|
548
|
+
}
|
|
549
|
+
}
|
|
550
|
+
// Handle number values (must be integer)
|
|
551
|
+
if (typeof value === 'number') {
|
|
552
|
+
if (!Number.isInteger(value)) {
|
|
553
|
+
throw new Error(locales_runtime.getMessages().coercionFailed('bigint', value));
|
|
554
|
+
}
|
|
555
|
+
const coerced = BigInt(value);
|
|
556
|
+
return super.parse(coerced);
|
|
557
|
+
}
|
|
558
|
+
// Handle null and undefined
|
|
559
|
+
if (value === null || value === undefined) {
|
|
560
|
+
throw new Error(locales_runtime.getMessages().coercionFailed('bigint', value));
|
|
561
|
+
}
|
|
562
|
+
// Try to coerce other values
|
|
563
|
+
try {
|
|
564
|
+
const coerced = BigInt(value);
|
|
565
|
+
return super.parse(coerced);
|
|
566
|
+
}
|
|
567
|
+
catch {
|
|
568
|
+
throw new Error(locales_runtime.getMessages().coercionFailed('bigint', value));
|
|
569
|
+
}
|
|
570
|
+
}
|
|
571
|
+
/**
|
|
572
|
+
* Safely parse and coerce a value to bigint
|
|
573
|
+
*/
|
|
574
|
+
safeParse(value) {
|
|
575
|
+
try {
|
|
576
|
+
return { success: true, data: this.parse(value) };
|
|
577
|
+
}
|
|
578
|
+
catch (error) {
|
|
579
|
+
return { success: false, error: error };
|
|
580
|
+
}
|
|
581
|
+
}
|
|
582
|
+
}
|
|
583
|
+
|
|
584
|
+
exports.VldCoerceBigInt = VldCoerceBigInt;
|
|
585
|
+
exports.VldCoerceBoolean = VldCoerceBoolean;
|
|
586
|
+
exports.VldCoerceDate = VldCoerceDate;
|
|
587
|
+
exports.VldCoerceNumber = VldCoerceNumber;
|
|
588
|
+
exports.VldCoerceString = VldCoerceString;
|