@oxog/vld 2.0.3 → 2.2.5
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 +120 -1
- package/README.md +1296 -1171
- package/dist/chunks/errors-core-Cqi4-9ew.js +1 -0
- package/dist/chunks/index-CkbfQQ4n.js +1 -0
- package/dist/chunks/index-yjpbvFgw.js +1 -0
- package/dist/chunks/ip-validation-g5LWgy9t.js +1 -0
- package/dist/chunks/security-Dy24T8N7.js +1 -0
- package/dist/cjs/chunks/errors-core-DKPohm9I.cjs +1 -0
- package/dist/cjs/chunks/index-BEV9nG0N.cjs +1 -0
- package/dist/cjs/chunks/index-ZjHAxYdA.cjs +1 -0
- package/dist/cjs/chunks/ip-validation-BZqPamPC.cjs +1 -0
- package/dist/cjs/chunks/security-aXZVI7qW.cjs +1 -0
- package/dist/cjs/cli/bin.cjs +2 -0
- package/dist/cjs/cli/index.cjs +1 -0
- package/dist/cjs/codecs/index.cjs +1 -0
- package/dist/cjs/coercion/index.cjs +1 -0
- package/dist/cjs/compat/emitter.cjs +1 -0
- package/dist/cjs/compat/result.cjs +1 -0
- package/dist/cjs/errors.cjs +1 -387
- package/dist/cjs/index.cjs +1 -10759
- package/dist/cjs/kernel.cjs +1 -0
- package/dist/cjs/locales/af.cjs +1 -0
- package/dist/cjs/locales/ar.cjs +1 -0
- package/dist/cjs/locales/bn.cjs +1 -0
- package/dist/cjs/locales/da.cjs +1 -0
- package/dist/cjs/locales/de.cjs +1 -0
- package/dist/cjs/locales/en.cjs +1 -0
- package/dist/cjs/locales/es-MX.cjs +1 -0
- package/dist/cjs/locales/es.cjs +1 -0
- package/dist/cjs/locales/fi.cjs +1 -0
- package/dist/cjs/locales/fr.cjs +1 -0
- package/dist/cjs/locales/hi.cjs +1 -0
- package/dist/cjs/locales/id.cjs +1 -0
- package/dist/cjs/locales/index.cjs +1 -2877
- package/dist/cjs/locales/it.cjs +1 -0
- package/dist/cjs/locales/ja.cjs +1 -0
- package/dist/cjs/locales/ko.cjs +1 -0
- package/dist/cjs/locales/lazy.cjs +1 -3169
- package/dist/cjs/locales/nl.cjs +1 -0
- package/dist/cjs/locales/no.cjs +1 -0
- package/dist/cjs/locales/pl.cjs +1 -0
- package/dist/cjs/locales/pt-BR.cjs +1 -0
- package/dist/cjs/locales/pt.cjs +1 -0
- package/dist/cjs/locales/ru.cjs +1 -0
- package/dist/cjs/locales/runtime.cjs +1 -0
- package/dist/cjs/locales/sv.cjs +1 -0
- package/dist/cjs/locales/sw.cjs +1 -0
- package/dist/cjs/locales/th.cjs +1 -0
- package/dist/cjs/locales/tr.cjs +1 -0
- package/dist/cjs/locales/vi.cjs +1 -0
- package/dist/cjs/locales/zh.cjs +1 -0
- package/dist/cjs/mini.cjs +1 -7474
- package/dist/cjs/pigment.cjs +1 -0
- package/dist/cjs/plugins/index.cjs +1 -0
- package/dist/cjs/registry.cjs +1 -0
- package/dist/cjs/v3/index.cjs +1 -0
- package/dist/cjs/v4/core/index.cjs +1 -0
- package/dist/cjs/v4/index.cjs +1 -0
- package/dist/cjs/v4/locales/index.cjs +1 -0
- package/dist/cjs/v4/mini/index.cjs +1 -0
- package/dist/cjs/v4-mini/index.cjs +1 -0
- package/dist/cjs/validators/any.cjs +1 -0
- package/dist/cjs/validators/array.cjs +1 -0
- package/dist/cjs/validators/base.cjs +1 -0
- package/dist/cjs/validators/base64.cjs +1 -0
- package/dist/cjs/validators/bigint.cjs +1 -0
- package/dist/cjs/validators/boolean.cjs +1 -0
- package/dist/cjs/validators/codec.cjs +1 -0
- package/dist/cjs/validators/custom.cjs +1 -0
- package/dist/cjs/validators/date.cjs +1 -0
- package/dist/cjs/validators/discriminated-union.cjs +1 -0
- package/dist/cjs/validators/enum.cjs +1 -0
- package/dist/cjs/validators/file.cjs +1 -0
- package/dist/cjs/validators/function.cjs +1 -0
- package/dist/cjs/validators/hex.cjs +1 -0
- package/dist/cjs/validators/index.cjs +1 -0
- package/dist/cjs/validators/intersection.cjs +1 -0
- package/dist/cjs/validators/json.cjs +1 -0
- package/dist/cjs/validators/lazy.cjs +1 -0
- package/dist/cjs/validators/literal.cjs +1 -0
- package/dist/cjs/validators/map.cjs +1 -0
- package/dist/cjs/validators/nan.cjs +1 -0
- package/dist/cjs/validators/never.cjs +1 -0
- package/dist/cjs/validators/null.cjs +1 -0
- package/dist/cjs/validators/number.cjs +1 -0
- package/dist/cjs/validators/object.cjs +1 -0
- package/dist/cjs/validators/promise.cjs +1 -0
- package/dist/cjs/validators/record.cjs +1 -0
- package/dist/cjs/validators/set.cjs +1 -0
- package/dist/cjs/validators/string-bool.cjs +1 -0
- package/dist/cjs/validators/string-formats.cjs +1 -0
- package/dist/cjs/validators/string.cjs +1 -0
- package/dist/cjs/validators/symbol.cjs +1 -0
- package/dist/cjs/validators/template-literal.cjs +1 -0
- package/dist/cjs/validators/tuple.cjs +1 -0
- package/dist/cjs/validators/uint8array.cjs +1 -0
- package/dist/cjs/validators/undefined.cjs +1 -0
- package/dist/cjs/validators/union.cjs +1 -0
- package/dist/cjs/validators/unknown.cjs +1 -0
- package/dist/cjs/validators/void.cjs +1 -0
- package/dist/cjs/validators/xor.cjs +1 -0
- package/dist/cli/bin.d.ts +0 -1
- package/dist/cli/bin.js +2 -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 +1 -0
- package/dist/codecs/index.d.ts +21 -4
- package/dist/codecs/index.js +1 -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 +1 -111
- 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 +1 -181
- package/dist/compat/index.d.ts +4 -5
- package/dist/compat/result.d.ts +1 -2
- package/dist/compat/result.js +1 -171
- package/dist/errors-core.d.ts +58 -0
- package/dist/errors.d.ts +4 -54
- package/dist/errors.js +1 -235
- package/dist/events.d.ts +3 -4
- package/dist/index.d.ts +1093 -851
- package/dist/index.js +1 -855
- package/dist/kernel.d.ts +2 -3
- package/dist/kernel.js +1 -405
- package/dist/locales/af.d.ts +1 -2
- package/dist/locales/af.js +1 -107
- package/dist/locales/ar.d.ts +1 -2
- package/dist/locales/ar.js +1 -107
- package/dist/locales/bn.d.ts +1 -2
- package/dist/locales/bn.js +1 -107
- package/dist/locales/da.d.ts +1 -2
- package/dist/locales/da.js +1 -107
- package/dist/locales/de.d.ts +1 -2
- package/dist/locales/de.js +1 -107
- package/dist/locales/en.d.ts +1 -2
- package/dist/locales/en.js +1 -107
- package/dist/locales/es-MX.d.ts +1 -2
- package/dist/locales/es-MX.js +1 -106
- package/dist/locales/es.d.ts +1 -2
- package/dist/locales/es.js +1 -95
- package/dist/locales/fi.d.ts +1 -2
- package/dist/locales/fi.js +1 -107
- package/dist/locales/fr.d.ts +1 -2
- package/dist/locales/fr.js +1 -95
- package/dist/locales/hi.d.ts +1 -2
- package/dist/locales/hi.js +1 -107
- package/dist/locales/id.d.ts +1 -2
- package/dist/locales/id.js +1 -107
- package/dist/locales/index.d.ts +10 -15
- package/dist/locales/index.js +1 -3
- package/dist/locales/it.d.ts +1 -2
- package/dist/locales/it.js +1 -107
- package/dist/locales/ja.d.ts +1 -2
- package/dist/locales/ja.js +1 -107
- package/dist/locales/ko.d.ts +1 -2
- package/dist/locales/ko.js +1 -107
- package/dist/locales/lazy.d.ts +4 -26
- package/dist/locales/lazy.js +1 -220
- package/dist/locales/nl.d.ts +1 -2
- package/dist/locales/nl.js +1 -107
- package/dist/locales/no.d.ts +1 -2
- package/dist/locales/no.js +1 -107
- package/dist/locales/pl.d.ts +1 -2
- package/dist/locales/pl.js +1 -107
- package/dist/locales/pt-BR.d.ts +1 -2
- package/dist/locales/pt-BR.js +1 -107
- package/dist/locales/pt.d.ts +1 -2
- package/dist/locales/pt.js +1 -107
- package/dist/locales/ru.d.ts +1 -2
- package/dist/locales/ru.js +1 -107
- package/dist/locales/runtime.d.ts +10 -0
- package/dist/locales/runtime.js +1 -0
- package/dist/locales/sv.d.ts +1 -2
- package/dist/locales/sv.js +1 -107
- package/dist/locales/sw.d.ts +1 -2
- package/dist/locales/sw.js +1 -107
- package/dist/locales/th.d.ts +1 -2
- package/dist/locales/th.js +1 -107
- package/dist/locales/tr.d.ts +1 -2
- package/dist/locales/tr.js +1 -107
- package/dist/locales/types.d.ts +0 -1
- package/dist/locales/vi.d.ts +1 -2
- package/dist/locales/vi.js +1 -107
- package/dist/locales/zh.d.ts +1 -2
- package/dist/locales/zh.js +1 -107
- package/dist/logger.d.ts +0 -1
- package/dist/mini.d.ts +67 -68
- package/dist/mini.js +1 -132
- package/dist/pigment.d.ts +0 -1
- package/dist/pigment.js +1 -178
- 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 +1 -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 +26 -7
- package/dist/utils/security.d.ts +2 -6
- package/dist/v3/index.d.ts +2 -0
- package/dist/v3/index.js +1 -0
- package/dist/v4/core/index.d.ts +272 -0
- package/dist/v4/core/index.js +1 -0
- package/dist/v4/index.d.ts +4 -0
- package/dist/v4/index.js +1 -0
- package/dist/v4/locales/index.d.ts +57 -0
- package/dist/v4/locales/index.js +1 -0
- package/dist/v4/mini/index.d.ts +2 -0
- package/dist/v4/mini/index.js +1 -0
- package/dist/v4-mini/index.d.ts +22 -0
- package/dist/v4-mini/index.js +1 -0
- package/dist/validators/any.d.ts +7 -2
- package/dist/validators/any.js +1 -0
- package/dist/validators/array.d.ts +16 -2
- package/dist/validators/array.js +1 -0
- package/dist/validators/base.d.ts +213 -14
- package/dist/validators/base.js +1 -0
- package/dist/validators/base64.d.ts +1 -2
- package/dist/validators/base64.js +1 -0
- package/dist/validators/bigint.d.ts +21 -3
- package/dist/validators/bigint.js +1 -0
- package/dist/validators/boolean.d.ts +13 -4
- package/dist/validators/boolean.js +1 -0
- package/dist/validators/codec.d.ts +9 -2
- package/dist/validators/codec.js +1 -0
- package/dist/validators/custom.d.ts +15 -2
- package/dist/validators/custom.js +1 -0
- package/dist/validators/date.d.ts +19 -3
- package/dist/validators/date.js +1 -0
- package/dist/validators/discriminated-union.d.ts +6 -5
- package/dist/validators/discriminated-union.js +1 -0
- package/dist/validators/enum.d.ts +10 -7
- package/dist/validators/enum.js +1 -0
- package/dist/validators/file.d.ts +7 -2
- package/dist/validators/file.js +1 -0
- package/dist/validators/function.d.ts +11 -5
- package/dist/validators/function.js +1 -0
- package/dist/validators/hex.d.ts +1 -2
- package/dist/validators/hex.js +1 -0
- package/dist/validators/index.d.ts +38 -39
- package/dist/validators/index.js +1 -515
- package/dist/validators/intersection.d.ts +1 -2
- package/dist/validators/intersection.js +1 -0
- package/dist/validators/json.d.ts +1 -2
- package/dist/validators/json.js +1 -0
- package/dist/validators/lazy.d.ts +5 -9
- package/dist/validators/lazy.js +1 -0
- package/dist/validators/literal.d.ts +9 -5
- package/dist/validators/literal.js +1 -0
- package/dist/validators/map.d.ts +15 -2
- package/dist/validators/map.js +1 -0
- package/dist/validators/nan.d.ts +2 -3
- package/dist/validators/nan.js +1 -0
- package/dist/validators/never.d.ts +1 -2
- package/dist/validators/never.js +1 -0
- package/dist/validators/null.d.ts +3 -3
- package/dist/validators/null.js +1 -0
- package/dist/validators/number.d.ts +75 -27
- package/dist/validators/number.js +1 -0
- package/dist/validators/object.d.ts +42 -11
- package/dist/validators/object.js +1 -0
- package/dist/validators/promise.d.ts +15 -10
- package/dist/validators/promise.js +1 -0
- package/dist/validators/record.d.ts +21 -9
- package/dist/validators/record.js +1 -0
- package/dist/validators/set.d.ts +11 -2
- package/dist/validators/set.js +1 -0
- package/dist/validators/string-bool.d.ts +7 -10
- package/dist/validators/string-bool.js +1 -0
- package/dist/validators/string-formats.d.ts +64 -65
- package/dist/validators/string-formats.js +1 -0
- package/dist/validators/string.d.ts +84 -26
- package/dist/validators/string.js +1 -0
- package/dist/validators/symbol.d.ts +8 -3
- package/dist/validators/symbol.js +1 -0
- package/dist/validators/template-literal.d.ts +1 -2
- package/dist/validators/template-literal.js +1 -0
- package/dist/validators/tuple.d.ts +29 -12
- package/dist/validators/tuple.js +1 -0
- package/dist/validators/uint8array.d.ts +3 -4
- package/dist/validators/uint8array.js +1 -0
- package/dist/validators/undefined.d.ts +3 -3
- package/dist/validators/undefined.js +1 -0
- package/dist/validators/union.d.ts +7 -4
- package/dist/validators/union.js +1 -0
- package/dist/validators/unknown.d.ts +7 -2
- package/dist/validators/unknown.js +1 -0
- package/dist/validators/void.d.ts +3 -2
- package/dist/validators/void.js +1 -0
- package/dist/validators/xor.d.ts +4 -5
- package/dist/validators/xor.js +1 -0
- package/package.json +239 -154
- package/dist/chunks/bigint-CRS0QVsy.js +0 -1854
- package/dist/chunks/bigint-CRS0QVsy.js.map +0 -1
- package/dist/chunks/date-50JV_Mfj.js +0 -506
- package/dist/chunks/date-50JV_Mfj.js.map +0 -1
- package/dist/chunks/index-DO8CFMxD.js +0 -894
- 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 +0 -28
- 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 @@
|
|
|
1
|
+
function e(e){return null===e?"null":void 0===e?"undefined":Array.isArray(e)?"array":"number"==typeof e?Number.isNaN(e)?"nan":e===1/0?"Infinity":e===-1/0?"-Infinity":"number":e instanceof Date?"date":e instanceof Map?"map":e instanceof Set?"set":typeof e}function i(e,i,r){return{code:"invalid_type",path:[],expected:e,received:i,message:r??`Invalid input: expected ${e}, received ${i}`}}function r(e){const i={code:e.code,path:e.path,message:e.message};return void 0!==e.expected&&(i.expected=e.expected),void 0!==e.received&&(i.received=e.received),void 0!==e.keys&&(i.keys=e.keys),void 0!==e.minimum&&(i.minimum=e.minimum),void 0!==e.maximum&&(i.maximum=e.maximum),void 0!==e.exact&&(i.exact=e.exact),void 0!==e.inclusive&&(i.inclusive=e.inclusive),void 0!==e.origin&&(i.origin=e.origin),void 0!==e.format&&(i.format=e.format),void 0!==e.values&&(i.values=e.values),void 0!==e.pattern&&(i.pattern=e.pattern),i}function t(e){const i={code:e.code,path:e.path,message:e.message};return void 0!==e.expected&&(i.expected=e.expected),void 0!==e.received&&(i.received=e.received),void 0!==e.keys&&(i.keys=e.keys),void 0!==e.minimum&&(i.minimum=e.minimum),void 0!==e.maximum&&(i.maximum=e.maximum),void 0!==e.exact&&(i.exact=e.exact),void 0!==e.inclusive&&(i.inclusive=e.inclusive),void 0!==e.origin&&(i.origin=e.origin),void 0!==e.format&&(i.format=e.format),void 0!==e.values&&(i.values=e.values),void 0!==e.pattern&&(i.pattern=e.pattern),i}class VldError extends Error{constructor(e){const i=e[0];super(1===e.length&&void 0!==i?i.message:`${e.length} validation errors`),this.name="VldError",this.issues=e,Error.captureStackTrace&&Error.captureStackTrace(this,VldError)}get firstError(){return this.issues[0]}get formattedErrors(){return this.issues.map(e=>e.message)}toJSON(){return{name:this.name,message:this.message,code:"VLD_VALIDATION_ERROR",issues:this.issues.map(r)}}static fromJSON(e){const i=e.issues.map(t);return new VldError(i)}static isVldError(e){return e instanceof VldError}}export{VldError as V,i as c,e as g};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{VldCodec as e}from"../validators/codec.js";import{VldBase64 as r}from"../validators/base64.js";import{VldHex as t}from"../validators/hex.js";import{VldUint8Array as o}from"../validators/uint8array.js";import{VldString as n}from"../validators/string.js";import{VldNumber as a}from"../validators/number.js";import{VldBigInt as c}from"../validators/bigint.js";import{VldBoolean as i}from"../validators/boolean.js";import{VldDate as s}from"../validators/date.js";import{VldUnknown as d}from"../validators/unknown.js";function l(e){const r=e.replace(/-/g,"+").replace(/_/g,"/"),t=function(e){if(function(e){if(null==e)throw new Error("Base64 input cannot be null or undefined");if("string"!=typeof e)throw new Error("Base64 input must be a string");if(e.length>1e7)throw new Error("Base64 input is too large");if(!/^[A-Za-z0-9+/]*={0,2}$/.test(e))throw new Error("Invalid base64 format");const r=e.indexOf("=");if(-1!==r){const t=e.substring(r);if(!/^={1,2}$/.test(t))throw new Error("Invalid base64 padding");if(r<e.length-2)throw new Error("Base64 padding must be at the end")}const t=[/eval/i,/function/i,/javascript:/i,/<script/i,/on\w+\s*=/i,/__proto__/i,/constructor/i,/prototype/i];try{const r=Math.min(100,e.length),o=e.substring(0,r),n="undefined"!=typeof atob?atob(o):Buffer.from(o,"base64").toString("utf8",0,50);for(const e of t)if(e.test(n))throw new Error("Suspicious content detected in base64 input")}catch(e){if(e instanceof Error&&e.message.includes("Suspicious content"))throw e}}(e),"undefined"!=typeof atob)try{return atob(e)}catch{throw new Error("Failed to decode base64 data")}if(m())try{const r=Buffer.from(e,"base64");if(r.length>5e6)throw new Error("Decoded base64 data is too large");return r.toString("binary")}catch(e){if(e instanceof Error&&e.message.includes("Invalid base64"))throw new Error("Invalid base64 format");throw new Error("Failed to decode base64 data in Node.js environment")}throw new Error("Base64 decoding not supported in this environment")}(r.padEnd(r.length+(4-r.length%4)%4,"=")),o=new Uint8Array(t.length);for(let e=0;e<t.length;e++)o[e]=t.charCodeAt(e);return o}function f(e){let r="";for(let t=0;t<e.length;t++)r+=String.fromCharCode(e[t]);return function(e){if("undefined"!=typeof btoa)return btoa(e);if(m())return Buffer.from(e,"binary").toString("base64");throw new Error("Base64 encoding not supported in this environment")}(r)}function u(e){return f(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function h(e){if(e.length>2e7)throw new Error("Hex string is too large (max 10MB)");const r=e.startsWith("0x")?e.slice(2):e;if(!/^[0-9a-fA-F]*$/.test(r))throw new Error("Invalid hex string: contains non-hexadecimal characters");const t=r.length%2==0?r:"0"+r,o=new Uint8Array(t.length/2);for(let e=0;e<t.length;e+=2)o[e/2]=parseInt(t.substring(e,e+2),16);return o}function g(e){let r="";for(let t=0;t<e.length;t++){const o=e[t].toString(16);r+=1===o.length?"0"+o:o}return r}function w(e){const r=1e7;if(e.length>r)throw new Error("String is too large for UTF-8 encoding (max 10000000 characters)");return(new TextEncoder).encode(e)}function p(e){const r=1e7;if(e.length>r)throw new Error("Byte array is too large for UTF-8 decoding (max 10000000 bytes)");return(new TextDecoder).decode(e)}function m(){return"undefined"!=typeof globalThis&&void 0!==globalThis.process&&null!=globalThis.process.versions&&null!=globalThis.process.versions.node}function b(e){return e.invert()}const v=e.create(n.create(),a.create(),{decode:e=>{const r=Number(e);if(isNaN(r))throw new Error("Invalid number");return r},encode:e=>e.toString()}),E=e.create(n.create(),a.create().int(),{decode:e=>{const r=parseInt(e,10);if(isNaN(r))throw new Error("Invalid integer");return r},encode:e=>Math.floor(e).toString()}),y=e.create(n.create(),c.create(),{decode:e=>{try{return BigInt(e)}catch{throw new Error("Invalid BigInt")}},encode:e=>e.toString()}),S=e.create(a.create().int(),c.create(),{decode:e=>BigInt(Math.floor(e)),encode:e=>Number(e)}),T=e.create(n.create().regex(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{3})?Z?$/,"Invalid ISO datetime format"),s.create(),{decode:e=>{const r=new Date(e);if(isNaN(r.getTime()))throw new Error("Invalid date");return r},encode:e=>e.toISOString()}),I=e.create(a.create(),s.create(),{decode:e=>new Date(1e3*e),encode:e=>Math.floor(e.getTime()/1e3)}),x=e.create(a.create(),s.create(),{decode:e=>new Date(e),encode:e=>e.getTime()}),N=r=>{const t=r||d.create();return e.create(n.create(),t,{decode:e=>{try{return JSON.parse(e)}catch{throw new Error("Invalid JSON")}},encode:e=>JSON.stringify(e)})},B=e.create(n.create().url(),d.create(),{decode:e=>{try{return new URL(e)}catch{throw new Error("Invalid URL")}},encode:e=>e.toString()}),j=e.create(n.create().regex(/^https?:\/\//,"Must be HTTP or HTTPS URL"),d.create(),{decode:e=>{try{const r=new URL(e);if(!["http:","https:"].includes(r.protocol))throw new Error("Must be HTTP or HTTPS");return r}catch{throw new Error("Invalid HTTP URL")}},encode:e=>e.toString()}),J=e.create(n.create(),n.create(),{decode:e=>{try{return decodeURIComponent(e)}catch{throw new Error("Invalid URI component")}},encode:e=>encodeURIComponent(e)}),U=e.create(n.create(),i.create(),{decode:e=>{const r=e.toLowerCase();if("true"===r||"1"===r||"yes"===r||"on"===r)return!0;if("false"===r||"0"===r||"no"===r||"off"===r)return!1;throw new Error("Invalid boolean string")},encode:e=>e.toString()}),M=e.create(r.create(),o.create(),{decode:l,encode:f}),O=e.create(r.create().urlSafeMode(),o.create(),{decode:l,encode:u}),C=e.create(t.create(),o.create(),{decode:h,encode:g}),R=e.create(t.create().lowercaseMode(),o.create(),{decode:h,encode:e=>g(e).toLowerCase()}),F=e.create(n.create(),o.create(),{decode:w,encode:p}),L=e.create(o.create(),n.create(),{decode:p,encode:w}),W=e.create(r.create().urlSafeMode(),o.create(),{decode:l,encode:u}),_=t=>{const o=t||d.create();return e.create(r.create(),o,{decode:e=>{try{const r=p(l(e));return JSON.parse(r)}catch(e){throw new Error(`Failed to parse base64 JSON: ${e.message}`)}},encode:e=>f(w(JSON.stringify(e)))})},A=r=>{const t=r||d.create();return e.create(n.create().refine(e=>3===e.split(".").length,"Invalid JWT format"),t,{decode:e=>{try{const r=e.split(".");if(3!==r.length)throw new Error("JWT must have exactly 3 parts");const t=r[1];if(!t)throw new Error("JWT payload is empty");const o=p(l(t.replace(/-/g,"+").replace(/_/g,"/").padEnd(t.length+(4-t.length%4)%4,"=")));return JSON.parse(o)}catch(e){throw new Error(`Failed to decode JWT payload: ${e.message}`)}},encode:()=>{throw new Error("JWT encoding not supported - use a proper JWT library")}})};export{p as A,J as B,F as C,M as a,_ as b,l as c,O as d,W as e,L as f,x as g,I as h,R as i,C as j,h as k,b as l,T as m,N as n,A as o,S as p,U as q,j as r,y as s,E as t,v as u,B as v,w,f as x,u as y,g as z};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{registerLocale as o,registerFallbackLocale as s,setLocale as r,getLocale as l,getMessages as e,getMessagesForLocale as t,getSupportedLocales as m,isLocaleLoaded as a,isLocaleSupported as i}from"../locales/runtime.js";import{en as c}from"../locales/en.js";import{tr as f}from"../locales/tr.js";import{es as p}from"../locales/es.js";import{fr as j}from"../locales/fr.js";import{de as n}from"../locales/de.js";import{it as d}from"../locales/it.js";import{pt as h}from"../locales/pt.js";import{ru as u}from"../locales/ru.js";import{ja as g}from"../locales/ja.js";import{ko as k}from"../locales/ko.js";import{zh as v}from"../locales/zh.js";import{ar as L}from"../locales/ar.js";import{hi as y}from"../locales/hi.js";import{nl as z}from"../locales/nl.js";import{pl as b}from"../locales/pl.js";import{da as M}from"../locales/da.js";import{sv as R}from"../locales/sv.js";import{no as _}from"../locales/no.js";import{fi as w}from"../locales/fi.js";import{th as A}from"../locales/th.js";import{vi as B}from"../locales/vi.js";import{id as X}from"../locales/id.js";import{bn as q}from"../locales/bn.js";import{sw as x}from"../locales/sw.js";import{af as S}from"../locales/af.js";import{ptBR as C}from"../locales/pt-BR.js";import{esMX as F}from"../locales/es-MX.js";const O=["en","tr","es","fr","de","it","pt","ru","ja","ko","zh","ar","hi","nl","pl","da","sv","no","fi","th","vi","id","bn","sw","af","pt-BR","es-MX"],D=["is","cs","sk","hu","ro","bg","hr","sl","lv","lt","et","el","mk","sq","sr","bs","me","mt","ga","cy","eu","ca","ms","tl","ur","fa","he","ka","am","hy","az","kk","ky","uz","tg","mn","my","km","lo","si","ta","te","ml","kn","gu","pa","or","as","ne","mr","sd","dv","ha","yo","ig","zu","xh","st","tn","ts","ve","nr","ss","es-AR","fr-CA","qu","gn","ay"],E={en:c,tr:f,es:p,fr:j,de:n,it:d,pt:h,ru:u,ja:g,ko:k,zh:v,ar:L,hi:y,nl:z,pl:b,da:M,sv:R,no:_,fi:w,th:A,vi:B,id:X,bn:q,sw:x,af:S,"pt-BR":C,"es-MX":F};for(const s of O)o(s,E[s]);for(const o of D)s(o);async function G(o){r(o)}var H=Object.freeze({__proto__:null,getLocale:l,getMessages:e,getMessagesForLocale:t,getSupportedLocales:m,isLocaleLoaded:a,isLocaleSupported:i,registerLocale:o,setLocale:r,setLocaleAsync:G});export{H as l,G as s};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function t(t){if(0===t.length||t.length>64)return!1;const e=t.split("%"),n=e[0],r=e[1]?n:t;if(r.includes(".")){const t=r.lastIndexOf(":");if(-1===t)return!1;const e=r.substring(t+1),n=r.substring(0,t);return!!/^(?:(?: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(e)&&!!n.includes("::")}if(!/^[0-9a-fA-F:]+$/.test(r))return!1;if(r.length>45)return!1;if(r.includes(":::"))return!1;if(["2001:0db8:85a3:0000:0000:8a2e:0370:7334","2001:db8:85a3::8a2e:370:7334","::1","fe80::1ff:fe23:4567:890a","2001:db8::","::ffff:192.0.2.1"].includes(r))return!0;if((r.match(/::/g)||[]).length>1)return!1;const f=r.includes("::"),i=r.split(":").filter(t=>""!==t);if(f){if(i.length>7)return!1}else if(8!==i.length)return!1;for(const t of i){if(0===t.length||t.length>4)return!1;if(!/^[0-9a-fA-F]+$/.test(t))return!1}return!0}export{t as i};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const _=new Set(["__proto__","constructor","prototype","__defineGetter__","__defineSetter__","__lookupGetter__","__lookupSetter__"]);function t(t){return _.has(t)}export{t as i};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";function e(e){const i={code:e.code,path:e.path,message:e.message};return void 0!==e.expected&&(i.expected=e.expected),void 0!==e.received&&(i.received=e.received),void 0!==e.keys&&(i.keys=e.keys),void 0!==e.minimum&&(i.minimum=e.minimum),void 0!==e.maximum&&(i.maximum=e.maximum),void 0!==e.exact&&(i.exact=e.exact),void 0!==e.inclusive&&(i.inclusive=e.inclusive),void 0!==e.origin&&(i.origin=e.origin),void 0!==e.format&&(i.format=e.format),void 0!==e.values&&(i.values=e.values),void 0!==e.pattern&&(i.pattern=e.pattern),i}function i(e){const i={code:e.code,path:e.path,message:e.message};return void 0!==e.expected&&(i.expected=e.expected),void 0!==e.received&&(i.received=e.received),void 0!==e.keys&&(i.keys=e.keys),void 0!==e.minimum&&(i.minimum=e.minimum),void 0!==e.maximum&&(i.maximum=e.maximum),void 0!==e.exact&&(i.exact=e.exact),void 0!==e.inclusive&&(i.inclusive=e.inclusive),void 0!==e.origin&&(i.origin=e.origin),void 0!==e.format&&(i.format=e.format),void 0!==e.values&&(i.values=e.values),void 0!==e.pattern&&(i.pattern=e.pattern),i}class VldError extends Error{constructor(e){const i=e[0];super(1===e.length&&void 0!==i?i.message:`${e.length} validation errors`),this.name="VldError",this.issues=e,Error.captureStackTrace&&Error.captureStackTrace(this,VldError)}get firstError(){return this.issues[0]}get formattedErrors(){return this.issues.map(e=>e.message)}toJSON(){return{name:this.name,message:this.message,code:"VLD_VALIDATION_ERROR",issues:this.issues.map(e)}}static fromJSON(e){const r=e.issues.map(i);return new VldError(r)}static isVldError(e){return e instanceof VldError}}exports.VldError=VldError,exports.createInvalidTypeIssue=function(e,i,r){return{code:"invalid_type",path:[],expected:e,received:i,message:r??`Invalid input: expected ${e}, received ${i}`}},exports.getTypeName=function(e){return null===e?"null":void 0===e?"undefined":Array.isArray(e)?"array":"number"==typeof e?Number.isNaN(e)?"nan":e===1/0?"Infinity":e===-1/0?"-Infinity":"number":e instanceof Date?"date":e instanceof Map?"map":e instanceof Set?"set":typeof e};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var e=require("../locales/runtime.cjs"),s=require("../locales/en.cjs"),r=require("../locales/tr.cjs"),l=require("../locales/es.cjs"),c=require("../locales/fr.cjs"),a=require("../locales/de.cjs"),o=require("../locales/it.cjs"),i=require("../locales/pt.cjs"),t=require("../locales/ru.cjs"),u=require("../locales/ja.cjs"),j=require("../locales/ko.cjs"),n=require("../locales/zh.cjs"),q=require("../locales/ar.cjs"),p=require("../locales/hi.cjs"),d=require("../locales/nl.cjs"),g=require("../locales/pl.cjs"),L=require("../locales/da.cjs"),f=require("../locales/sv.cjs"),h=require("../locales/no.cjs"),k=require("../locales/fi.cjs"),v=require("../locales/th.cjs"),m=require("../locales/vi.cjs"),y=require("../locales/id.cjs"),b=require("../locales/bn.cjs"),z=require("../locales/sw.cjs"),M=require("../locales/af.cjs"),R=require("../locales/pt-BR.cjs"),w=require("../locales/es-MX.cjs");const A=["en","tr","es","fr","de","it","pt","ru","ja","ko","zh","ar","hi","nl","pl","da","sv","no","fi","th","vi","id","bn","sw","af","pt-BR","es-MX"],B=["is","cs","sk","hu","ro","bg","hr","sl","lv","lt","et","el","mk","sq","sr","bs","me","mt","ga","cy","eu","ca","ms","tl","ur","fa","he","ka","am","hy","az","kk","ky","uz","tg","mn","my","km","lo","si","ta","te","ml","kn","gu","pa","or","as","ne","mr","sd","dv","ha","yo","ig","zu","xh","st","tn","ts","ve","nr","ss","es-AR","fr-CA","qu","gn","ay"],S={en:s.en,tr:r.tr,es:l.es,fr:c.fr,de:a.de,it:o.it,pt:i.pt,ru:t.ru,ja:u.ja,ko:j.ko,zh:n.zh,ar:q.ar,hi:p.hi,nl:d.nl,pl:g.pl,da:L.da,sv:f.sv,no:h.no,fi:k.fi,th:v.th,vi:m.vi,id:y.id,bn:b.bn,sw:z.sw,af:M.af,"pt-BR":R.ptBR,"es-MX":w.esMX};for(const s of A)e.registerLocale(s,S[s]);for(const s of B)e.registerFallbackLocale(s);async function X(s){e.setLocale(s)}var _=Object.freeze({__proto__:null,getLocale:e.getLocale,getMessages:e.getMessages,getMessagesForLocale:e.getMessagesForLocale,getSupportedLocales:e.getSupportedLocales,isLocaleLoaded:e.isLocaleLoaded,isLocaleSupported:e.isLocaleSupported,registerLocale:e.registerLocale,setLocale:e.setLocale,setLocaleAsync:X});exports.localeNamespace=_,exports.setLocaleAsync=X;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var e=require("../validators/codec.cjs"),r=require("../validators/base64.cjs"),t=require("../validators/hex.cjs"),o=require("../validators/uint8array.cjs"),n=require("../validators/string.cjs"),a=require("../validators/number.cjs"),d=require("../validators/bigint.cjs"),c=require("../validators/boolean.cjs"),i=require("../validators/date.cjs"),s=require("../validators/unknown.cjs");function l(e){const r=e.replace(/-/g,"+").replace(/_/g,"/"),t=function(e){if(function(e){if(null==e)throw new Error("Base64 input cannot be null or undefined");if("string"!=typeof e)throw new Error("Base64 input must be a string");if(e.length>1e7)throw new Error("Base64 input is too large");if(!/^[A-Za-z0-9+/]*={0,2}$/.test(e))throw new Error("Invalid base64 format");const r=e.indexOf("=");if(-1!==r){const t=e.substring(r);if(!/^={1,2}$/.test(t))throw new Error("Invalid base64 padding");if(r<e.length-2)throw new Error("Base64 padding must be at the end")}const t=[/eval/i,/function/i,/javascript:/i,/<script/i,/on\w+\s*=/i,/__proto__/i,/constructor/i,/prototype/i];try{const r=Math.min(100,e.length),o=e.substring(0,r),n="undefined"!=typeof atob?atob(o):Buffer.from(o,"base64").toString("utf8",0,50);for(const e of t)if(e.test(n))throw new Error("Suspicious content detected in base64 input")}catch(e){if(e instanceof Error&&e.message.includes("Suspicious content"))throw e}}(e),"undefined"!=typeof atob)try{return atob(e)}catch{throw new Error("Failed to decode base64 data")}if(V())try{const r=Buffer.from(e,"base64");if(r.length>5e6)throw new Error("Decoded base64 data is too large");return r.toString("binary")}catch(e){if(e instanceof Error&&e.message.includes("Invalid base64"))throw new Error("Invalid base64 format");throw new Error("Failed to decode base64 data in Node.js environment")}throw new Error("Base64 decoding not supported in this environment")}(r.padEnd(r.length+(4-r.length%4)%4,"=")),o=new Uint8Array(t.length);for(let e=0;e<t.length;e++)o[e]=t.charCodeAt(e);return o}function u(e){let r="";for(let t=0;t<e.length;t++)r+=String.fromCharCode(e[t]);return function(e){if("undefined"!=typeof btoa)return btoa(e);if(V())return Buffer.from(e,"binary").toString("base64");throw new Error("Base64 encoding not supported in this environment")}(r)}function g(e){return u(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function h(e){if(e.length>2e7)throw new Error("Hex string is too large (max 10MB)");const r=e.startsWith("0x")?e.slice(2):e;if(!/^[0-9a-fA-F]*$/.test(r))throw new Error("Invalid hex string: contains non-hexadecimal characters");const t=r.length%2==0?r:"0"+r,o=new Uint8Array(t.length/2);for(let e=0;e<t.length;e+=2)o[e/2]=parseInt(t.substring(e,e+2),16);return o}function f(e){let r="";for(let t=0;t<e.length;t++){const o=e[t].toString(16);r+=1===o.length?"0"+o:o}return r}function p(e){const r=1e7;if(e.length>r)throw new Error("String is too large for UTF-8 encoding (max 10000000 characters)");return(new TextEncoder).encode(e)}function w(e){const r=1e7;if(e.length>r)throw new Error("Byte array is too large for UTF-8 decoding (max 10000000 bytes)");return(new TextDecoder).decode(e)}function V(){return"undefined"!=typeof globalThis&&void 0!==globalThis.process&&null!=globalThis.process.versions&&null!=globalThis.process.versions.node}const b=e.VldCodec.create(n.VldString.create(),a.VldNumber.create(),{decode:e=>{const r=Number(e);if(isNaN(r))throw new Error("Invalid number");return r},encode:e=>e.toString()}),y=e.VldCodec.create(n.VldString.create(),a.VldNumber.create().int(),{decode:e=>{const r=parseInt(e,10);if(isNaN(r))throw new Error("Invalid integer");return r},encode:e=>Math.floor(e).toString()}),T=e.VldCodec.create(n.VldString.create(),d.VldBigInt.create(),{decode:e=>{try{return BigInt(e)}catch{throw new Error("Invalid BigInt")}},encode:e=>e.toString()}),x=e.VldCodec.create(a.VldNumber.create().int(),d.VldBigInt.create(),{decode:e=>BigInt(Math.floor(e)),encode:e=>Number(e)}),m=e.VldCodec.create(n.VldString.create().regex(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{3})?Z?$/,"Invalid ISO datetime format"),i.VldDate.create(),{decode:e=>{const r=new Date(e);if(isNaN(r.getTime()))throw new Error("Invalid date");return r},encode:e=>e.toISOString()}),S=e.VldCodec.create(a.VldNumber.create(),i.VldDate.create(),{decode:e=>new Date(1e3*e),encode:e=>Math.floor(e.getTime()/1e3)}),v=e.VldCodec.create(a.VldNumber.create(),i.VldDate.create(),{decode:e=>new Date(e),encode:e=>e.getTime()}),E=e.VldCodec.create(n.VldString.create().url(),s.VldUnknown.create(),{decode:e=>{try{return new URL(e)}catch{throw new Error("Invalid URL")}},encode:e=>e.toString()}),B=e.VldCodec.create(n.VldString.create().regex(/^https?:\/\//,"Must be HTTP or HTTPS URL"),s.VldUnknown.create(),{decode:e=>{try{const r=new URL(e);if(!["http:","https:"].includes(r.protocol))throw new Error("Must be HTTP or HTTPS");return r}catch{throw new Error("Invalid HTTP URL")}},encode:e=>e.toString()}),U=e.VldCodec.create(n.VldString.create(),n.VldString.create(),{decode:e=>{try{return decodeURIComponent(e)}catch{throw new Error("Invalid URI component")}},encode:e=>encodeURIComponent(e)}),C=e.VldCodec.create(n.VldString.create(),c.VldBoolean.create(),{decode:e=>{const r=e.toLowerCase();if("true"===r||"1"===r||"yes"===r||"on"===r)return!0;if("false"===r||"0"===r||"no"===r||"off"===r)return!1;throw new Error("Invalid boolean string")},encode:e=>e.toString()}),I=e.VldCodec.create(r.VldBase64.create(),o.VldUint8Array.create(),{decode:l,encode:u}),N=e.VldCodec.create(r.VldBase64.create().urlSafeMode(),o.VldUint8Array.create(),{decode:l,encode:g}),A=e.VldCodec.create(t.VldHex.create(),o.VldUint8Array.create(),{decode:h,encode:f}),j=e.VldCodec.create(t.VldHex.create().lowercaseMode(),o.VldUint8Array.create(),{decode:h,encode:e=>f(e).toLowerCase()}),J=e.VldCodec.create(n.VldString.create(),o.VldUint8Array.create(),{decode:p,encode:w}),D=e.VldCodec.create(o.VldUint8Array.create(),n.VldString.create(),{decode:w,encode:p}),M=e.VldCodec.create(r.VldBase64.create().urlSafeMode(),o.VldUint8Array.create(),{decode:l,encode:g});exports.base64Json=t=>{const o=t||s.VldUnknown.create();return e.VldCodec.create(r.VldBase64.create(),o,{decode:e=>{try{const r=w(l(e));return JSON.parse(r)}catch(e){throw new Error(`Failed to parse base64 JSON: ${e.message}`)}},encode:e=>u(p(JSON.stringify(e)))})},exports.base64ToBytes=I,exports.base64ToUint8Array=l,exports.base64UrlToBytes=N,exports.base64urlToBytes=M,exports.bytesToUtf8=D,exports.epochMillisToDate=v,exports.epochSecondsToDate=S,exports.hexLowerToBytes=j,exports.hexToBytes=A,exports.hexToUint8Array=h,exports.invertCodec=function(e){return e.invert()},exports.isoDatetimeToDate=m,exports.jsonCodec=r=>{const t=r||s.VldUnknown.create();return e.VldCodec.create(n.VldString.create(),t,{decode:e=>{try{return JSON.parse(e)}catch{throw new Error("Invalid JSON")}},encode:e=>JSON.stringify(e)})},exports.jwtPayload=r=>{const t=r||s.VldUnknown.create();return e.VldCodec.create(n.VldString.create().refine(e=>3===e.split(".").length,"Invalid JWT format"),t,{decode:e=>{try{const r=e.split(".");if(3!==r.length)throw new Error("JWT must have exactly 3 parts");const t=r[1];if(!t)throw new Error("JWT payload is empty");const o=w(l(t.replace(/-/g,"+").replace(/_/g,"/").padEnd(t.length+(4-t.length%4)%4,"=")));return JSON.parse(o)}catch(e){throw new Error(`Failed to decode JWT payload: ${e.message}`)}},encode:()=>{throw new Error("JWT encoding not supported - use a proper JWT library")}})},exports.numberToBigInt=x,exports.stringToBigInt=T,exports.stringToBoolean=C,exports.stringToHttpURL=B,exports.stringToInt=y,exports.stringToNumber=b,exports.stringToURL=E,exports.stringToUint8Array=p,exports.uint8ArrayToBase64=u,exports.uint8ArrayToBase64Url=g,exports.uint8ArrayToHex=f,exports.uint8ArrayToString=w,exports.uriComponent=U,exports.utf8ToBytes=J;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";exports.isValidIPv6=function(t){if(0===t.length||t.length>64)return!1;const e=t.split("%"),n=e[0],r=e[1]?n:t;if(r.includes(".")){const t=r.lastIndexOf(":");if(-1===t)return!1;const e=r.substring(t+1),n=r.substring(0,t);return!!/^(?:(?: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(e)&&!!n.includes("::")}if(!/^[0-9a-fA-F:]+$/.test(r))return!1;if(r.length>45)return!1;if(r.includes(":::"))return!1;if(["2001:0db8:85a3:0000:0000:8a2e:0370:7334","2001:db8:85a3::8a2e:370:7334","::1","fe80::1ff:fe23:4567:890a","2001:db8::","::ffff:192.0.2.1"].includes(r))return!0;if((r.match(/::/g)||[]).length>1)return!1;const f=r.includes("::"),i=r.split(":").filter(t=>""!==t);if(f){if(i.length>7)return!1}else if(8!==i.length)return!1;for(const t of i){if(0===t.length||t.length>4)return!1;if(!/^[0-9a-fA-F]+$/.test(t))return!1}return!0};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const e=new Set(["__proto__","constructor","prototype","__defineGetter__","__defineSetter__","__lookupGetter__","__lookupSetter__"]);exports.isDangerousKey=function(t){return e.has(t)};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";var e=require("./index.cjs"),r=require("fs"),s=require("path"),o=require("../pigment.cjs"),a=require("../errors.cjs"),t=require("../index.cjs");require("../chunks/errors-core-DKPohm9I.cjs"),require("../validators/base.cjs"),require("../registry.cjs"),require("../validators/string.cjs"),require("../locales/runtime.cjs"),require("../locales/en.cjs"),require("../chunks/ip-validation-BZqPamPC.cjs"),require("../validators/number.cjs"),require("../validators/boolean.cjs"),require("../validators/date.cjs"),require("../validators/string-bool.cjs"),require("../validators/array.cjs"),require("../validators/object.cjs"),require("../validators/enum.cjs"),require("../chunks/security-aXZVI7qW.cjs"),require("../validators/union.cjs"),require("../validators/literal.cjs"),require("../validators/bigint.cjs"),require("../validators/symbol.cjs"),require("../validators/tuple.cjs"),require("../validators/record.cjs"),require("../validators/set.cjs"),require("../validators/map.cjs"),require("../validators/intersection.cjs"),require("../validators/any.cjs"),require("../validators/unknown.cjs"),require("../validators/void.cjs"),require("../validators/never.cjs"),require("../validators/null.cjs"),require("../validators/undefined.cjs"),require("../validators/nan.cjs"),require("../validators/lazy.cjs"),require("../validators/discriminated-union.cjs"),require("../validators/xor.cjs"),require("../validators/json.cjs"),require("../validators/template-literal.cjs"),require("../validators/custom.cjs"),require("../validators/file.cjs"),require("../validators/function.cjs"),require("../validators/codec.cjs"),require("../validators/base64.cjs"),require("../validators/hex.cjs"),require("../validators/uint8array.cjs"),require("../validators/promise.cjs"),require("../compat/result.cjs"),require("../chunks/index-BEV9nG0N.cjs"),require("../locales/tr.cjs"),require("../locales/es.cjs"),require("../locales/fr.cjs"),require("../locales/de.cjs"),require("../locales/it.cjs"),require("../locales/pt.cjs"),require("../locales/ru.cjs"),require("../locales/ja.cjs"),require("../locales/ko.cjs"),require("../locales/zh.cjs"),require("../locales/ar.cjs"),require("../locales/hi.cjs"),require("../locales/nl.cjs"),require("../locales/pl.cjs"),require("../locales/da.cjs"),require("../locales/sv.cjs"),require("../locales/no.cjs"),require("../locales/fi.cjs"),require("../locales/th.cjs"),require("../locales/vi.cjs"),require("../locales/id.cjs"),require("../locales/bn.cjs"),require("../locales/sw.cjs"),require("../locales/af.cjs"),require("../locales/pt-BR.cjs"),require("../locales/es-MX.cjs"),require("../coercion/index.cjs"),require("../validators/string-formats.cjs"),require("../chunks/index-ZjHAxYdA.cjs"),require("../compat/emitter.cjs"),require("../kernel.cjs");var i="undefined"!=typeof document?document.currentScript:null;function l(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach(function(s){if("default"!==s){var o=Object.getOwnPropertyDescriptor(e,s);Object.defineProperty(r,s,o.get?o:{enumerable:!0,get:function(){return e[s]}})}}),r.default=e,Object.freeze(r)}var c=l(r),n=l(s);function u(e,r,s){const o=process.cwd();if(!e.startsWith(o+n.sep)&&e!==o)throw new Error(`${r} path escapes allowed directory: ${s}`)}const d={name:"validate",description:"Validate JSON data against a VLD schema",aliases:["v"],arguments:[{name:"schema",description:"Path to schema file (.ts or .js)",required:!0},{name:"data",description:"Path to JSON data file or JSON string",required:!0}],options:[{name:"strict",short:"s",description:"Enable strict mode (no extra keys)",type:"boolean",default:!1},{name:"quiet",short:"q",description:"Only output errors",type:"boolean",default:!1},{name:"json",short:"j",description:"Output as JSON",type:"boolean",default:!1},{name:"no-color",description:"Disable colored output",type:"boolean",default:!1}],action:async(e,r)=>{const s=e.schema,t=e.data,i=r.quiet,l=r.json,d=r["no-color"];let p,f;try{const e=n.resolve(process.cwd(),s);if(u(e,"Schema",s),!c.existsSync(e))throw new Error(`Schema file not found: ${s}`);const r=await(import(e));if(p=r.default||r.schema||r,!p||"function"!=typeof p.parse)throw new Error("Schema must export a VLD validator with parse() method")}catch(e){return l?console.log(JSON.stringify({success:!1,error:e.message})):console.error(o.default.red("Schema Error:"),e.message),void(process.exitCode=1)}try{if(t.startsWith("{")||t.startsWith("["))f=JSON.parse(t);else{const e=n.resolve(process.cwd(),t);if(u(e,"Data",t),!c.existsSync(e))throw new Error(`Data file not found: ${t}`);const r=c.readFileSync(e,"utf-8");f=JSON.parse(r)}}catch(e){return l?console.log(JSON.stringify({success:!1,error:e.message})):console.error(o.default.red("Data Error:"),e.message),void(process.exitCode=1)}const m=p.safeParse(f);if(l)if(m.success)console.log(JSON.stringify({success:!0,data:m.data}));else{const e=m.error,r={success:!1,error:e?.message,issues:e?.issues};console.log(JSON.stringify(r))}else if(m.success)i||(console.log(o.default.green("Validation passed")),console.log(""),console.log(o.default.dim("Data:")),console.log(JSON.stringify(m.data,null,2)));else{if(console.error(o.default.red("Validation failed")),console.error(""),m.error&&"issues"in m.error){const e=d?a.prettifyError(m.error,{colored:!1}):a.prettifyErrorColored(m.error);console.error(e)}else console.error(m.error?.message||"Unknown error");process.exitCode=1}}};function p(e,r,s){for(let e=0;e<Math.min(100,s/10);e++)r();const o=performance.now();for(let e=0;e<s;e++)r();const a=performance.now()-o,t=a/s;return{name:e,iterations:s,totalMs:a,avgMs:t,opsPerSec:1e3/t}}function f(e){return e.toLocaleString("en-US",{maximumFractionDigits:2})}function m(e,r){return`${r?o.default.cyan(e.name.padEnd(30)):e.name.padEnd(30)} ${r?o.default.green(f(e.opsPerSec).padStart(12)):f(e.opsPerSec).padStart(12)} ops/sec ${r?o.default.yellow(e.avgMs.toFixed(6).padStart(12)):e.avgMs.toFixed(6).padStart(12)} ms/op`}const j={name:"benchmark",description:"Run performance benchmarks",aliases:["bench","b"],options:[{name:"iterations",short:"n",description:"Number of iterations",type:"number",default:1e4},{name:"suite",short:"s",description:"Benchmark suite to run (all, primitives, objects, arrays)",type:"string",default:"all"},{name:"json",short:"j",description:"Output as JSON",type:"boolean",default:!1},{name:"no-color",description:"Disable colored output",type:"boolean",default:!1}],action:async(e,r)=>{const s=r.iterations,a=r.suite,i=r.json,l=!r["no-color"],c=[],n=t.default.string(),u=t.default.number(),d=t.default.boolean(),j=t.default.date(),q=t.default.object({name:t.default.string(),email:t.default.string(),age:t.default.number(),active:t.default.boolean()}),v=t.default.array(t.default.number()),g=t.default.object({user:t.default.object({name:t.default.string(),email:t.default.string()}),items:t.default.array(t.default.object({id:t.default.number(),name:t.default.string(),price:t.default.number()}))}),h="hello world",b=new Date,y={name:"John",email:"john@example.com",age:30,active:!0},S=[1,2,3,4,5,6,7,8,9,10],w={user:{name:"John",email:"john@example.com"},items:[{id:1,name:"Item 1",price:10.99},{id:2,name:"Item 2",price:20.99},{id:3,name:"Item 3",price:30.99}]};if(i||(console.log(o.default.bold("VLD Performance Benchmark")),console.log(o.default.dim(`Running ${f(s)} iterations per test`)),console.log("")),("all"===a||"primitives"===a)&&(i||console.log(o.default.bold("Primitives:")),c.push(p("string.parse()",()=>n.parse(h),s)),c.push(p("number.parse()",()=>u.parse(42),s)),c.push(p("boolean.parse()",()=>d.parse(true),s)),c.push(p("date.parse()",()=>j.parse(b),s)),c.push(p("string.safeParse()",()=>n.safeParse(h),s)),!i)){for(const e of c.slice(-5))console.log(" "+m(e,l));console.log("")}if(("all"===a||"objects"===a)&&(i||console.log(o.default.bold("Objects:")),c.push(p("object.parse()",()=>q.parse(y),s)),c.push(p("object.safeParse()",()=>q.safeParse(y),s)),c.push(p("nested.parse()",()=>g.parse(w),s)),!i)){for(const e of c.slice(-3))console.log(" "+m(e,l));console.log("")}if(("all"===a||"arrays"===a)&&(i||console.log(o.default.bold("Arrays:")),c.push(p("array.parse()",()=>v.parse(S),s)),c.push(p("array.safeParse()",()=>v.safeParse(S),s)),!i)){for(const e of c.slice(-2))console.log(" "+m(e,l));console.log("")}if(i)console.log(JSON.stringify({iterations:s,suite:a,results:c.map(e=>({name:e.name,iterations:e.iterations,totalMs:e.totalMs,avgMs:e.avgMs,opsPerSec:e.opsPerSec}))}));else{const e=c.reduce((e,r)=>e+r.opsPerSec,0)/c.length;console.log(o.default.bold("Summary:")),console.log(` Total benchmarks: ${c.length}`),console.log(` Average ops/sec: ${f(e)}`)}}},q=JSON.parse(r.readFileSync(new URL("../../package.json","undefined"==typeof document?require("url").pathToFileURL(__filename).href:i&&"SCRIPT"===i.tagName.toUpperCase()&&i.src||new URL("cli/bin.cjs",document.baseURI).href),"utf-8")).version||"0.0.0";e.vldCli.version=q,e.vldCli.command(d),e.vldCli.command(j),e.vldCli.command({name:"help",description:"Show help information",aliases:["h"],action:()=>{console.log(e.vldCli.help())}}),e.vldCli.command({name:"version",description:"Show version information",action:()=>{console.log(`vld v${q}`)}}),e.vldCli.run(process.argv.slice(2)).catch(e=>{console.error("Fatal error:",e),process.exitCode=1});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var e=require("../pigment.cjs");function o(o,s,n){const t=new Map,i={name:o,version:s,description:n,commands:t,command(e){if(t.set(e.name,e),e.aliases)for(const o of e.aliases)t.set(o,e);return this},help(){const s=[];s.push(e.default.bold(`${this.name} v${this.version}`)),s.push(e.default.dim(n)),s.push(""),s.push(e.default.bold("Usage:")),s.push(` ${o} <command> [options]`),s.push(""),s.push(e.default.bold("Commands:"));const i=new Map;for(const[,e]of t)i.has(e.name)||i.set(e.name,e);for(const[o,n]of i){const t=n.aliases?.length?e.default.dim(` (${n.aliases.join(", ")})`):"";s.push(` ${e.default.cyan(o)}${t}`),s.push(` ${n.description}`)}return s.push(""),s.push(e.default.bold("Options:")),s.push(` ${e.default.cyan("-h, --help")} Show help`),s.push(` ${e.default.cyan("-v, --version")} Show version`),s.join("\n")},async run(o){if(o.includes("--help")||o.includes("-h")||0===o.length)return void console.log(this.help());if(o.includes("--version")||o.includes("-v"))return void console.log(`${this.name} v${this.version}`);const s=o[0];if(void 0===s)return void console.log(this.help());const n=t.get(s);if(!n)return console.error(e.default.red(`Unknown command: ${s}`)),console.log(""),console.log(this.help()),void(process.exitCode=1);const i=function(e,o=[]){const s={positional:[],options:{}};for(const e of o)void 0!==e.default&&(s.options[e.name]=e.default);let n=0;for(;n<e.length;){const t=e[n];if(void 0!==t){if(t.startsWith("--")){const[i,r]=t.slice(2).split("=");if(void 0===i||""===i){n++;continue}const l=o.find(e=>e.name===i);if(l)if("boolean"===l.type)s.options[i]="false"!==r;else if(void 0!==r)s.options[i]="number"===l.type?Number(r):r;else if(n+1<e.length&&void 0!==e[n+1]&&!e[n+1].startsWith("-")){n++;const o=e[n];void 0!==o&&(s.options[i]="number"===l.type?Number(o):o)}else s.options[i]=!0}else if(t.startsWith("-")){const i=t.slice(1),r=o.find(e=>e.short===i);if(r)if("boolean"===r.type)s.options[r.name]=!0;else if(n+1<e.length&&void 0!==e[n+1]&&!e[n+1].startsWith("-")){n++;const o=e[n];if(void 0===o){n++;continue}s.options[r.name]="number"===r.type?Number(o):o}}else s.positional.push(t);n++}else n++}return s}(o.slice(1),n.options),r={};if(n.arguments)for(let o=0;o<n.arguments.length;o++){const s=n.arguments[o];if(void 0!==s)if(o<i.positional.length)r[s.name]=i.positional[o];else if(void 0!==s.default)r[s.name]=s.default;else if(s.required)return console.error(e.default.red(`Missing required argument: ${s.name}`)),void(process.exitCode=1)}if(n.options)for(const o of n.options)if(o.required&&void 0===i.options[o.name])return console.error(e.default.red(`Missing required option: --${o.name}`)),void(process.exitCode=1);try{await n.action(r,i.options)}catch(o){console.error(e.default.red("Error:"),o.message),process.exitCode=1}}};return i}const s=o("vld","1.5.0","Fast TypeScript Validation Library");exports.cli=o,exports.createCli=o,exports.vldCli=s;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";require("../validators/codec.cjs"),require("../validators/base64.cjs"),require("../validators/hex.cjs"),require("../validators/uint8array.cjs"),require("../validators/string.cjs"),require("../validators/number.cjs"),require("../validators/bigint.cjs"),require("../validators/boolean.cjs"),require("../validators/date.cjs"),require("../validators/unknown.cjs");var e=require("../chunks/index-ZjHAxYdA.cjs");require("../validators/base.cjs"),require("../registry.cjs"),require("../errors.cjs"),require("../pigment.cjs"),require("../chunks/errors-core-DKPohm9I.cjs"),require("../locales/runtime.cjs"),require("../locales/en.cjs"),require("../chunks/ip-validation-BZqPamPC.cjs"),exports.base64Json=e.base64Json,exports.base64ToBytes=e.base64ToBytes,exports.base64UrlToBytes=e.base64UrlToBytes,exports.base64urlToBytes=e.base64urlToBytes,exports.bytesToUtf8=e.bytesToUtf8,exports.epochMillisToDate=e.epochMillisToDate,exports.epochSecondsToDate=e.epochSecondsToDate,exports.hexLowerToBytes=e.hexLowerToBytes,exports.hexToBytes=e.hexToBytes,exports.invertCodec=e.invertCodec,exports.isoDatetimeToDate=e.isoDatetimeToDate,exports.jsonCodec=e.jsonCodec,exports.jwtPayload=e.jwtPayload,exports.numberToBigInt=e.numberToBigInt,exports.stringToBigInt=e.stringToBigInt,exports.stringToBoolean=e.stringToBoolean,exports.stringToHttpURL=e.stringToHttpURL,exports.stringToInt=e.stringToInt,exports.stringToNumber=e.stringToNumber,exports.stringToURL=e.stringToURL,exports.uriComponent=e.uriComponent,exports.utf8ToBytes=e.utf8ToBytes;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var e=require("../validators/string.cjs"),r=require("../validators/base.cjs"),s=require("../locales/runtime.cjs"),t=require("../chunks/ip-validation-BZqPamPC.cjs"),n=require("../validators/number.cjs"),c=require("../validators/boolean.cjs"),i=require("../validators/date.cjs"),o=require("../validators/bigint.cjs");require("../chunks/errors-core-DKPohm9I.cjs"),require("../registry.cjs"),require("../locales/en.cjs");class VldCoerceString extends e.VldString{constructor(e){super({...e,validatorType:r.VLD_VALIDATOR_TYPES.COERCE_STRING})}static create(){return new VldCoerceString}min(e,r){return new VldCoerceString({checks:[...this.config.checks,r=>r.length>=e],transforms:this.config.transforms,errorMessage:r||s.getMessages().stringMin(e)})}max(e,r){return new VldCoerceString({checks:[...this.config.checks,r=>r.length<=e],transforms:this.config.transforms,errorMessage:r||s.getMessages().stringMax(e)})}length(e,r){return new VldCoerceString({checks:[...this.config.checks,r=>r.length===e],transforms:this.config.transforms,errorMessage:r||s.getMessages().stringLength(e)})}email(e){const r=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;return new VldCoerceString({checks:[...this.config.checks,e=>r.test(e)],transforms:this.config.transforms,errorMessage:e||s.getMessages().stringEmail})}url(e){return new VldCoerceString({checks:[...this.config.checks,e=>/^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)$/.test(e)],transforms:this.config.transforms,errorMessage:e||s.getMessages().stringUrl})}uuid(e){return new VldCoerceString({checks:[...this.config.checks,e=>/^[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(e)],transforms:this.config.transforms,errorMessage:e||s.getMessages().stringUuid})}regex(e,r){return new VldCoerceString({checks:[...this.config.checks,r=>e.test(r)],transforms:this.config.transforms,errorMessage:r||s.getMessages().stringRegex})}trim(){return new VldCoerceString({checks:this.config.checks,transforms:[...this.config.transforms,e=>e.trim()],errorMessage:this.config.errorMessage})}toLowerCase(){return new VldCoerceString({checks:this.config.checks,transforms:[...this.config.transforms,e=>e.toLowerCase()],errorMessage:this.config.errorMessage})}toUpperCase(){return new VldCoerceString({checks:this.config.checks,transforms:[...this.config.transforms,e=>e.toUpperCase()],errorMessage:this.config.errorMessage})}startsWith(e,r){return new VldCoerceString({checks:[...this.config.checks,r=>r.startsWith(e)],transforms:this.config.transforms,errorMessage:r||s.getMessages().stringStartsWith(e)})}endsWith(e,r){return new VldCoerceString({checks:[...this.config.checks,r=>r.endsWith(e)],transforms:this.config.transforms,errorMessage:r||s.getMessages().stringEndsWith(e)})}includes(e,r){return new VldCoerceString({checks:[...this.config.checks,r=>r.includes(e)],transforms:this.config.transforms,errorMessage:r||s.getMessages().stringIncludes(e)})}ip(e){const r=/^(?:(?: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]?)$/;return new VldCoerceString({checks:[...this.config.checks,e=>!(e.length>100)&&(r.test(e)||t.isValidIPv6(e))],transforms:this.config.transforms,errorMessage:e||s.getMessages().stringIp})}ipv4(e){return new VldCoerceString({checks:[...this.config.checks,e=>/^(?:(?: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(e)],transforms:this.config.transforms,errorMessage:e||s.getMessages().stringIpv4})}ipv6(e){return new VldCoerceString({checks:[...this.config.checks,e=>t.isValidIPv6(e)],transforms:this.config.transforms,errorMessage:e||s.getMessages().stringIpv6})}nonempty(e){return new VldCoerceString({checks:[...this.config.checks,e=>e.length>0],transforms:this.config.transforms,errorMessage:e||s.getMessages().stringEmpty})}parse(e){if("string"==typeof e){if(e.length>1e6)throw new Error(s.getMessages().coercionFailed("string",e));const r=e.replace(/[\x00-\x1F\x7F]/g,"");return super.parse(r)}let r;if(r="number"==typeof e?String(e):"boolean"==typeof e?e?"true":"false":"bigint"==typeof e?e.toString():"symbol"==typeof e?String(e):"object"==typeof e?e instanceof Date?e.toISOString():Array.isArray(e)?e.join(","):e instanceof RegExp?e.toString():e instanceof Error?e.message||e.toString():String(e):String(e),r.length>1e6)throw new Error(s.getMessages().coercionFailed("string",e));const t=r.replace(/[\x00-\x1F\x7F]/g,"");return super.parse(t)}safeParse(e){try{return{success:!0,data:this.parse(e)}}catch(e){return{success:!1,error:e}}}}class VldCoerceNumber extends n.VldNumber{constructor(e){super({...e,validatorType:r.VLD_VALIDATOR_TYPES.COERCE_NUMBER})}static create(){return new VldCoerceNumber}min(e,r){return new VldCoerceNumber({checks:[...this.config.checks,r=>r>=e],errorMessage:r||s.getMessages().numberMin(e)})}max(e,r){return new VldCoerceNumber({checks:[...this.config.checks,r=>r<=e],errorMessage:r||s.getMessages().numberMax(e)})}int(e){return new VldCoerceNumber({checks:[...this.config.checks,e=>Number.isInteger(e)],errorMessage:e||s.getMessages().numberInt})}positive(e){return new VldCoerceNumber({checks:[...this.config.checks,e=>e>0],errorMessage:e||s.getMessages().numberPositive})}negative(e){return new VldCoerceNumber({checks:[...this.config.checks,e=>e<0],errorMessage:e||s.getMessages().numberNegative})}nonnegative(e){return new VldCoerceNumber({checks:[...this.config.checks,e=>e>=0],errorMessage:e||s.getMessages().numberNonnegative})}nonpositive(e){return new VldCoerceNumber({checks:[...this.config.checks,e=>e<=0],errorMessage:e||s.getMessages().numberNonpositive})}finite(e){return new VldCoerceNumber({checks:[...this.config.checks,e=>Number.isFinite(e)],errorMessage:e||s.getMessages().numberFinite})}safe(e){return new VldCoerceNumber({checks:[...this.config.checks,e=>Number.isSafeInteger(e)],errorMessage:e||s.getMessages().numberSafe})}multipleOf(e,r){return new VldCoerceNumber({checks:[...this.config.checks,r=>{const s=Math.abs(r%e);return s<Number.EPSILON||Math.abs(s-Math.abs(e))<Number.EPSILON}],errorMessage:r||s.getMessages().numberMultipleOf(e)})}step(e,r){return this.multipleOf(e,r)}between(e,r,s){return new VldCoerceNumber({checks:[...this.config.checks,s=>s>=e&&s<=r],errorMessage:s||`Number must be between ${e} and ${r}`})}even(e){return new VldCoerceNumber({checks:[...this.config.checks,e=>!!Number.isInteger(e)&&e%2==0],errorMessage:e||"Number must be even"})}odd(e){return new VldCoerceNumber({checks:[...this.config.checks,e=>!!Number.isInteger(e)&&e%2!=0],errorMessage:e||"Number must be odd"})}parse(e){if("number"==typeof e&&!isNaN(e))return 0===this.config.checks.length?e:super.parse(e);let r;try{r=Number(e)}catch{throw new Error(s.getMessages().coercionFailed("number",e))}if(isNaN(r))throw new Error(s.getMessages().coercionFailed("number",e));return 0===this.config.checks.length?r:super.parse(r)}safeParse(e){try{return{success:!0,data:this.parse(e)}}catch(e){return{success:!1,error:e}}}}class VldCoerceBoolean extends c.VldBoolean{static create(){return new VldCoerceBoolean}constructor(){super(void 0,r.VLD_VALIDATOR_TYPES.COERCE_BOOLEAN)}parse(e){return Boolean(e)}safeParse(e){try{return{success:!0,data:this.parse(e)}}catch(e){return{success:!1,error:e}}}}class VldCoerceDate extends i.VldDate{static create(){return new VldCoerceDate}constructor(){super({validatorType:r.VLD_VALIDATOR_TYPES.COERCE_DATE})}parse(e){try{if(e instanceof Date)return super.parse(e);const r=new Date(e);if(isNaN(r.getTime()))throw new Error(s.getMessages().coercionFailed("date",e));return super.parse(r)}catch(r){if(r.message.includes("Cannot coerce"))throw r;throw new Error(s.getMessages().coercionFailed("date",e))}}safeParse(e){try{return{success:!0,data:this.parse(e)}}catch(e){return{success:!1,error:e}}}}class VldCoerceBigInt extends o.VldBigInt{constructor(e){super({...e,validatorType:r.VLD_VALIDATOR_TYPES.COERCE_BIGINT})}static create(){return new VldCoerceBigInt}min(e,r){return new VldCoerceBigInt({checks:[...this.config.checks,r=>r>=e],errorMessage:r||`BigInt must be at least ${e}`})}max(e,r){return new VldCoerceBigInt({checks:[...this.config.checks,r=>r<=e],errorMessage:r||`BigInt must be at most ${e}`})}positive(e){return new VldCoerceBigInt({checks:[...this.config.checks,e=>e>0n],errorMessage:e||"BigInt must be positive"})}negative(e){return new VldCoerceBigInt({checks:[...this.config.checks,e=>e<0n],errorMessage:e||"BigInt must be negative"})}nonnegative(e){return new VldCoerceBigInt({checks:[...this.config.checks,e=>e>=0n],errorMessage:e||"BigInt must be non-negative"})}nonpositive(e){return new VldCoerceBigInt({checks:[...this.config.checks,e=>e<=0n],errorMessage:e||"BigInt must be non-positive"})}parse(e){if("bigint"==typeof e)return super.parse(e);if("string"==typeof e){const r=e.trim();if(""===r)throw new Error(s.getMessages().coercionFailed("bigint",e));try{const e=BigInt(r);return super.parse(e)}catch{throw new Error(s.getMessages().coercionFailed("bigint",e))}}if("number"==typeof e){if(!Number.isInteger(e))throw new Error(s.getMessages().coercionFailed("bigint",e));const r=BigInt(e);return super.parse(r)}if(null==e)throw new Error(s.getMessages().coercionFailed("bigint",e));try{const r=BigInt(e);return super.parse(r)}catch{throw new Error(s.getMessages().coercionFailed("bigint",e))}}safeParse(e){try{return{success:!0,data:this.parse(e)}}catch(e){return{success:!1,error:e}}}}exports.VldCoerceBigInt=VldCoerceBigInt,exports.VldCoerceBoolean=VldCoerceBoolean,exports.VldCoerceDate=VldCoerceDate,exports.VldCoerceNumber=VldCoerceNumber,exports.VldCoerceString=VldCoerceString;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";function e(){const e=new Map,t=t=>(e.has(t)||e.set(t,[]),e.get(t)),n=(e,n,o={})=>{const s={handler:n,once:o.once??!1,priority:o.priority??0};return t(e).push(s),(e=>{t(e).sort((e,t)=>t.priority-e.priority)})(e),()=>r(e,n)},r=(t,n)=>{const r=e.get(t);if(!r)return;const o=r.findIndex(e=>e.handler===n);-1!==o&&r.splice(o,1)};return{on:n,once:(e,t)=>n(e,t,{once:!0}),off:r,emit:(t,n)=>{const o=e.get(t);if(!o||0===o.length)return;const s=[...o];for(const e of s){e.once&&r(t,e.handler);try{e.handler(n)}catch(e){console.error(`Error in event handler for "${String(t)}":`,e)}}},emitAsync:async(t,n)=>{const o=e.get(t);if(!o||0===o.length)return;const s=[...o];for(const e of s){e.once&&r(t,e.handler);try{await e.handler(n)}catch(e){console.error(`Error in async event handler for "${String(t)}":`,e)}}},removeAllListeners:t=>{void 0!==t?e.delete(t):e.clear()},listenerCount:t=>e.get(t)?.length??0,eventNames:()=>Array.from(e.keys()).filter(t=>{const n=e.get(t);return void 0!==n&&n.length>0})}}exports.createEmitter=e,exports.createEventBus=function(){const t=e();return{...t,createScope:()=>{const e=[];return{on:(n,r,o)=>{const s=t.on(n,r,o);return e.push(s),s},once:(n,r)=>{const o=t.once(n,r);return e.push(o),o},off:t.off,emit:t.emit,emitAsync:t.emitAsync,removeAllListeners:t.removeAllListeners,listenerCount:t.listenerCount,eventNames:t.eventNames,dispose:()=>{for(const t of e)t();e.length=0}}}}},exports.withEmitter=function(){return function(t){return class extends t{constructor(){super(...arguments),this._emitter=e()}on(e,t,n){return this._emitter.on(e,t,n)}once(e,t){return this._emitter.once(e,t)}off(e,t){this._emitter.off(e,t)}emit(e,t){this._emitter.emit(e,t)}async emitAsync(e,t){await this._emitter.emitAsync(e,t)}}}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";function r(r){return{success:!0,data:r,value:r}}function t(r){return{success:!1,error:r}}const n=r,e=t;function s(r){return!0===r.success}function o(r){return!1===r.success}function u(r){return"object"==typeof r&&null!==r&&"success"in r&&"boolean"==typeof r.success}function c(r){if(s(r))return r.data;throw r.error}function a(r,t){return s(r)?r.data:t}function i(t,n){return s(t)?r(n(t.data)):t}function p(r,n){return o(r)?t(n(r.error)):r}function f(r,t){return s(r)?t(r.data):r}function l(r,t){return s(r)?t.ok(r.data):t.err(r.error)}function x(n){try{return r(n())}catch(r){return t(r instanceof Error?r:new Error(String(r)))}}async function y(n){try{return r(await n())}catch(r){return t(r instanceof Error?r:new Error(String(r)))}}function E(t){const n=[];for(const r of t){if(o(r))return r;n.push(r.data)}return r(n)}function h(n,e=new Error("Value is null or undefined")){return null==n?t(e):r(n)}const d={Ok:r,Err:t,success:n,failure:e,isOk:s,isErr:o,isResult:u,unwrap:c,unwrapOr:a,map:i,mapErr:p,flatMap:f,match:l,tryCatch:x,tryCatchAsync:y,all:E,fromNullable:h};exports.Err=t,exports.Ok=r,exports.ResultUtils=d,exports.all=E,exports.failure=e,exports.flatMap=f,exports.fromNullable=h,exports.isErr=o,exports.isOk=s,exports.isResult=u,exports.map=i,exports.mapErr=p,exports.match=l,exports.success=n,exports.tryCatch=x,exports.tryCatchAsync=y,exports.unwrap=c,exports.unwrapOr=a;
|
package/dist/cjs/errors.cjs
CHANGED
|
@@ -1,387 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* VLD Pigment - Colored Console Output
|
|
5
|
-
*
|
|
6
|
-
* This module provides ANSI color utilities for terminal output,
|
|
7
|
-
* compatible with @oxog/pigment when available.
|
|
8
|
-
*/
|
|
9
|
-
/* eslint-enable @typescript-eslint/no-explicit-any */
|
|
10
|
-
/**
|
|
11
|
-
* Check if colors are supported in the current environment
|
|
12
|
-
*/
|
|
13
|
-
function supportsColor() {
|
|
14
|
-
// Check for NO_COLOR environment variable
|
|
15
|
-
if (typeof process !== 'undefined' && process.env?.NO_COLOR) {
|
|
16
|
-
return false;
|
|
17
|
-
}
|
|
18
|
-
// Check for FORCE_COLOR environment variable
|
|
19
|
-
if (typeof process !== 'undefined' && process.env?.FORCE_COLOR) {
|
|
20
|
-
return true;
|
|
21
|
-
}
|
|
22
|
-
// Check for TTY
|
|
23
|
-
if (typeof process !== 'undefined' && process.stdout?.isTTY) {
|
|
24
|
-
return true;
|
|
25
|
-
}
|
|
26
|
-
// Browser environment - no ANSI colors
|
|
27
|
-
if (typeof window !== 'undefined') {
|
|
28
|
-
return false;
|
|
29
|
-
}
|
|
30
|
-
return false;
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* ANSI escape codes
|
|
34
|
-
*/
|
|
35
|
-
const ANSI = {
|
|
36
|
-
// Reset
|
|
37
|
-
reset: '\x1b[0m',
|
|
38
|
-
// Styles
|
|
39
|
-
bold: '\x1b[1m',
|
|
40
|
-
dim: '\x1b[2m',
|
|
41
|
-
italic: '\x1b[3m',
|
|
42
|
-
underline: '\x1b[4m',
|
|
43
|
-
inverse: '\x1b[7m',
|
|
44
|
-
hidden: '\x1b[8m',
|
|
45
|
-
strikethrough: '\x1b[9m',
|
|
46
|
-
// Foreground colors
|
|
47
|
-
black: '\x1b[30m',
|
|
48
|
-
red: '\x1b[31m',
|
|
49
|
-
green: '\x1b[32m',
|
|
50
|
-
yellow: '\x1b[33m',
|
|
51
|
-
blue: '\x1b[34m',
|
|
52
|
-
magenta: '\x1b[35m',
|
|
53
|
-
cyan: '\x1b[36m',
|
|
54
|
-
white: '\x1b[37m',
|
|
55
|
-
gray: '\x1b[90m',
|
|
56
|
-
grey: '\x1b[90m',
|
|
57
|
-
// Bright foreground colors
|
|
58
|
-
brightRed: '\x1b[91m',
|
|
59
|
-
brightGreen: '\x1b[92m',
|
|
60
|
-
brightYellow: '\x1b[93m',
|
|
61
|
-
brightBlue: '\x1b[94m',
|
|
62
|
-
brightMagenta: '\x1b[95m',
|
|
63
|
-
brightCyan: '\x1b[96m',
|
|
64
|
-
brightWhite: '\x1b[97m',
|
|
65
|
-
// Background colors
|
|
66
|
-
bgBlack: '\x1b[40m',
|
|
67
|
-
bgRed: '\x1b[41m',
|
|
68
|
-
bgGreen: '\x1b[42m',
|
|
69
|
-
bgYellow: '\x1b[43m',
|
|
70
|
-
bgBlue: '\x1b[44m',
|
|
71
|
-
bgMagenta: '\x1b[45m',
|
|
72
|
-
bgCyan: '\x1b[46m',
|
|
73
|
-
bgWhite: '\x1b[47m'};
|
|
74
|
-
/**
|
|
75
|
-
* Create a color function
|
|
76
|
-
*/
|
|
77
|
-
function createColorFn(code) {
|
|
78
|
-
const enabled = supportsColor();
|
|
79
|
-
return (text) => {
|
|
80
|
-
if (!enabled || text === '')
|
|
81
|
-
return text;
|
|
82
|
-
return `${code}${text}${ANSI.reset}`;
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Pigment - Color utilities for terminal output
|
|
87
|
-
*/
|
|
88
|
-
const pigment = {
|
|
89
|
-
// Styles
|
|
90
|
-
bold: createColorFn(ANSI.bold),
|
|
91
|
-
dim: createColorFn(ANSI.dim),
|
|
92
|
-
italic: createColorFn(ANSI.italic),
|
|
93
|
-
underline: createColorFn(ANSI.underline),
|
|
94
|
-
inverse: createColorFn(ANSI.inverse),
|
|
95
|
-
hidden: createColorFn(ANSI.hidden),
|
|
96
|
-
strikethrough: createColorFn(ANSI.strikethrough),
|
|
97
|
-
// Foreground colors
|
|
98
|
-
black: createColorFn(ANSI.black),
|
|
99
|
-
red: createColorFn(ANSI.red),
|
|
100
|
-
green: createColorFn(ANSI.green),
|
|
101
|
-
yellow: createColorFn(ANSI.yellow),
|
|
102
|
-
blue: createColorFn(ANSI.blue),
|
|
103
|
-
magenta: createColorFn(ANSI.magenta),
|
|
104
|
-
cyan: createColorFn(ANSI.cyan),
|
|
105
|
-
white: createColorFn(ANSI.white),
|
|
106
|
-
gray: createColorFn(ANSI.gray),
|
|
107
|
-
grey: createColorFn(ANSI.grey),
|
|
108
|
-
// Bright colors
|
|
109
|
-
brightRed: createColorFn(ANSI.brightRed),
|
|
110
|
-
brightGreen: createColorFn(ANSI.brightGreen),
|
|
111
|
-
brightYellow: createColorFn(ANSI.brightYellow),
|
|
112
|
-
brightBlue: createColorFn(ANSI.brightBlue),
|
|
113
|
-
brightMagenta: createColorFn(ANSI.brightMagenta),
|
|
114
|
-
brightCyan: createColorFn(ANSI.brightCyan),
|
|
115
|
-
brightWhite: createColorFn(ANSI.brightWhite),
|
|
116
|
-
// Background colors
|
|
117
|
-
bgBlack: createColorFn(ANSI.bgBlack),
|
|
118
|
-
bgRed: createColorFn(ANSI.bgRed),
|
|
119
|
-
bgGreen: createColorFn(ANSI.bgGreen),
|
|
120
|
-
bgYellow: createColorFn(ANSI.bgYellow),
|
|
121
|
-
bgBlue: createColorFn(ANSI.bgBlue),
|
|
122
|
-
bgMagenta: createColorFn(ANSI.bgMagenta),
|
|
123
|
-
bgCyan: createColorFn(ANSI.bgCyan),
|
|
124
|
-
bgWhite: createColorFn(ANSI.bgWhite),
|
|
125
|
-
// Semantic colors
|
|
126
|
-
success: createColorFn(ANSI.green),
|
|
127
|
-
error: createColorFn(ANSI.red),
|
|
128
|
-
warning: createColorFn(ANSI.yellow),
|
|
129
|
-
info: createColorFn(ANSI.blue),
|
|
130
|
-
muted: createColorFn(ANSI.gray)};
|
|
131
|
-
// Aliases for convenience
|
|
132
|
-
const { bold, dim, red, green, yellow, blue, cyan} = pigment;
|
|
133
|
-
/**
|
|
134
|
-
* Default VLD theme for error formatting
|
|
135
|
-
*/
|
|
136
|
-
const vldTheme = {
|
|
137
|
-
error: red,
|
|
138
|
-
success: green,
|
|
139
|
-
warning: yellow,
|
|
140
|
-
info: blue,
|
|
141
|
-
muted: dim,
|
|
142
|
-
path: cyan,
|
|
143
|
-
value: yellow,
|
|
144
|
-
key: bold,
|
|
145
|
-
symbol: red
|
|
146
|
-
};
|
|
147
|
-
|
|
148
|
-
// VLD Error System - Advanced error formatting and utilities
|
|
149
|
-
class VldError extends Error {
|
|
150
|
-
constructor(issues) {
|
|
151
|
-
const message = issues.length === 1 ? issues[0].message : `${issues.length} validation errors`;
|
|
152
|
-
super(message);
|
|
153
|
-
this.name = 'VldError';
|
|
154
|
-
this.issues = issues;
|
|
155
|
-
// Maintain proper stack trace
|
|
156
|
-
if (Error.captureStackTrace) {
|
|
157
|
-
Error.captureStackTrace(this, VldError);
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
get firstError() {
|
|
161
|
-
return this.issues[0];
|
|
162
|
-
}
|
|
163
|
-
get formattedErrors() {
|
|
164
|
-
return this.issues.map((issue) => issue.message);
|
|
165
|
-
}
|
|
166
|
-
/**
|
|
167
|
-
* Convert error to JSON representation
|
|
168
|
-
* Compatible with @oxog/types OxogError
|
|
169
|
-
*/
|
|
170
|
-
toJSON() {
|
|
171
|
-
return {
|
|
172
|
-
name: this.name,
|
|
173
|
-
message: this.message,
|
|
174
|
-
code: 'VLD_VALIDATION_ERROR',
|
|
175
|
-
issues: this.issues.map((issue) => ({
|
|
176
|
-
code: issue.code,
|
|
177
|
-
path: issue.path,
|
|
178
|
-
message: issue.message,
|
|
179
|
-
expected: issue.expected,
|
|
180
|
-
received: issue.received,
|
|
181
|
-
keys: issue.keys,
|
|
182
|
-
minimum: issue.minimum,
|
|
183
|
-
maximum: issue.maximum,
|
|
184
|
-
exact: issue.exact,
|
|
185
|
-
inclusive: issue.inclusive
|
|
186
|
-
}))
|
|
187
|
-
};
|
|
188
|
-
}
|
|
189
|
-
/**
|
|
190
|
-
* Create VldError from JSON representation
|
|
191
|
-
*/
|
|
192
|
-
static fromJSON(json) {
|
|
193
|
-
const issues = json.issues.map((issue) => ({
|
|
194
|
-
code: issue.code,
|
|
195
|
-
path: issue.path,
|
|
196
|
-
message: issue.message,
|
|
197
|
-
expected: issue.expected,
|
|
198
|
-
received: issue.received,
|
|
199
|
-
keys: issue.keys,
|
|
200
|
-
minimum: issue.minimum,
|
|
201
|
-
maximum: issue.maximum,
|
|
202
|
-
exact: issue.exact,
|
|
203
|
-
inclusive: issue.inclusive
|
|
204
|
-
}));
|
|
205
|
-
return new VldError(issues);
|
|
206
|
-
}
|
|
207
|
-
/**
|
|
208
|
-
* Check if a value is a VldError
|
|
209
|
-
*/
|
|
210
|
-
static isVldError(value) {
|
|
211
|
-
return value instanceof VldError;
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
/**
|
|
215
|
-
* Convert VldError to a nested tree structure
|
|
216
|
-
*/
|
|
217
|
-
function treeifyError(error) {
|
|
218
|
-
const tree = { errors: [] };
|
|
219
|
-
for (const issue of error.issues) {
|
|
220
|
-
let currentNode = tree;
|
|
221
|
-
const path = issue.path;
|
|
222
|
-
// Navigate to the correct position in the tree
|
|
223
|
-
for (let i = 0; i < path.length; i++) {
|
|
224
|
-
const segment = path[i];
|
|
225
|
-
const isLast = i === path.length - 1;
|
|
226
|
-
if (typeof segment === 'string') {
|
|
227
|
-
// Object property
|
|
228
|
-
if (!currentNode.properties) {
|
|
229
|
-
currentNode.properties = {};
|
|
230
|
-
}
|
|
231
|
-
if (!currentNode.properties[segment]) {
|
|
232
|
-
currentNode.properties[segment] = { errors: [] };
|
|
233
|
-
}
|
|
234
|
-
if (isLast) {
|
|
235
|
-
currentNode.properties[segment].errors.push(issue.message);
|
|
236
|
-
}
|
|
237
|
-
else {
|
|
238
|
-
currentNode = currentNode.properties[segment];
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
else if (typeof segment === 'number') {
|
|
242
|
-
// Array index
|
|
243
|
-
if (!currentNode.items) {
|
|
244
|
-
currentNode.items = [];
|
|
245
|
-
}
|
|
246
|
-
while (currentNode.items.length <= segment) {
|
|
247
|
-
currentNode.items.push(undefined);
|
|
248
|
-
}
|
|
249
|
-
if (!currentNode.items[segment]) {
|
|
250
|
-
currentNode.items[segment] = { errors: [] };
|
|
251
|
-
}
|
|
252
|
-
if (isLast) {
|
|
253
|
-
currentNode.items[segment].errors.push(issue.message);
|
|
254
|
-
}
|
|
255
|
-
else {
|
|
256
|
-
currentNode = currentNode.items[segment];
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
}
|
|
260
|
-
// If path is empty, add to root errors
|
|
261
|
-
if (path.length === 0) {
|
|
262
|
-
tree.errors.push(issue.message);
|
|
263
|
-
}
|
|
264
|
-
}
|
|
265
|
-
return tree;
|
|
266
|
-
}
|
|
267
|
-
/**
|
|
268
|
-
* Convert VldError to human-readable string
|
|
269
|
-
*/
|
|
270
|
-
function prettifyError(error, options = {}) {
|
|
271
|
-
const { colored = true, theme = vldTheme, includeCode = false, includeDetails = false } = options;
|
|
272
|
-
const lines = [];
|
|
273
|
-
for (const issue of error.issues) {
|
|
274
|
-
// Symbol and message
|
|
275
|
-
const symbol = colored ? theme.symbol('✖') : '✖';
|
|
276
|
-
const message = colored ? theme.error(issue.message) : issue.message;
|
|
277
|
-
let line = `${symbol} ${message}`;
|
|
278
|
-
// Error code
|
|
279
|
-
if (includeCode) {
|
|
280
|
-
const code = colored ? theme.muted(`[${issue.code}]`) : `[${issue.code}]`;
|
|
281
|
-
line += ` ${code}`;
|
|
282
|
-
}
|
|
283
|
-
// Path
|
|
284
|
-
if (issue.path.length > 0) {
|
|
285
|
-
const pathStr = issue.path
|
|
286
|
-
.map((segment, index) => {
|
|
287
|
-
if (typeof segment === 'string') {
|
|
288
|
-
const str = index === 0 ? segment : `.${segment}`;
|
|
289
|
-
return colored ? theme.path(str) : str;
|
|
290
|
-
}
|
|
291
|
-
else {
|
|
292
|
-
const str = `[${segment}]`;
|
|
293
|
-
return colored ? theme.path(str) : str;
|
|
294
|
-
}
|
|
295
|
-
})
|
|
296
|
-
.join('');
|
|
297
|
-
const arrow = colored ? theme.muted('→ at ') : '→ at ';
|
|
298
|
-
line += `\n ${arrow}${pathStr}`;
|
|
299
|
-
}
|
|
300
|
-
// Details
|
|
301
|
-
if (includeDetails) {
|
|
302
|
-
if (issue.expected) {
|
|
303
|
-
const expected = colored
|
|
304
|
-
? theme.muted('expected: ') + theme.success(issue.expected)
|
|
305
|
-
: `expected: ${issue.expected}`;
|
|
306
|
-
line += `\n ${expected}`;
|
|
307
|
-
}
|
|
308
|
-
if (issue.received) {
|
|
309
|
-
const received = colored
|
|
310
|
-
? theme.muted('received: ') + theme.warning(issue.received)
|
|
311
|
-
: `received: ${issue.received}`;
|
|
312
|
-
line += `\n ${received}`;
|
|
313
|
-
}
|
|
314
|
-
}
|
|
315
|
-
lines.push(line);
|
|
316
|
-
}
|
|
317
|
-
return lines.join('\n');
|
|
318
|
-
}
|
|
319
|
-
/**
|
|
320
|
-
* Convert VldError to human-readable string with full colors
|
|
321
|
-
* Shorthand for prettifyError with colored: true
|
|
322
|
-
*/
|
|
323
|
-
function prettifyErrorColored(error, options = {}) {
|
|
324
|
-
return prettifyError(error, { ...options, colored: true });
|
|
325
|
-
}
|
|
326
|
-
/**
|
|
327
|
-
* Convert VldError to plain text string (no colors)
|
|
328
|
-
* Shorthand for prettifyError with colored: false
|
|
329
|
-
*/
|
|
330
|
-
function prettifyErrorPlain(error, options = {}) {
|
|
331
|
-
return prettifyError(error, { ...options, colored: false });
|
|
332
|
-
}
|
|
333
|
-
/**
|
|
334
|
-
* Flatten VldError for simple form validation
|
|
335
|
-
*/
|
|
336
|
-
function flattenError(error) {
|
|
337
|
-
const formErrors = [];
|
|
338
|
-
const fieldErrors = {};
|
|
339
|
-
for (const issue of error.issues) {
|
|
340
|
-
if (issue.path.length === 0) {
|
|
341
|
-
formErrors.push(issue.message);
|
|
342
|
-
}
|
|
343
|
-
else {
|
|
344
|
-
const fieldName = issue.path[0].toString();
|
|
345
|
-
if (!fieldErrors[fieldName]) {
|
|
346
|
-
fieldErrors[fieldName] = [];
|
|
347
|
-
}
|
|
348
|
-
fieldErrors[fieldName].push(issue.message);
|
|
349
|
-
}
|
|
350
|
-
}
|
|
351
|
-
return { formErrors, fieldErrors };
|
|
352
|
-
}
|
|
353
|
-
/**
|
|
354
|
-
* Create a validation issue
|
|
355
|
-
*/
|
|
356
|
-
function createIssue(code, path, message, extra) {
|
|
357
|
-
return {
|
|
358
|
-
code,
|
|
359
|
-
path: [...path],
|
|
360
|
-
message,
|
|
361
|
-
...extra
|
|
362
|
-
};
|
|
363
|
-
}
|
|
364
|
-
/**
|
|
365
|
-
* Helper to determine the type of a value for error messages
|
|
366
|
-
*/
|
|
367
|
-
function getValueType(value) {
|
|
368
|
-
if (value === null)
|
|
369
|
-
return 'null';
|
|
370
|
-
if (value === undefined)
|
|
371
|
-
return 'undefined';
|
|
372
|
-
if (Array.isArray(value))
|
|
373
|
-
return 'array';
|
|
374
|
-
if (value instanceof Date)
|
|
375
|
-
return 'date';
|
|
376
|
-
return typeof value;
|
|
377
|
-
}
|
|
378
|
-
|
|
379
|
-
exports.VldError = VldError;
|
|
380
|
-
exports.createIssue = createIssue;
|
|
381
|
-
exports.flattenError = flattenError;
|
|
382
|
-
exports.getValueType = getValueType;
|
|
383
|
-
exports.prettifyError = prettifyError;
|
|
384
|
-
exports.prettifyErrorColored = prettifyErrorColored;
|
|
385
|
-
exports.prettifyErrorPlain = prettifyErrorPlain;
|
|
386
|
-
exports.treeifyError = treeifyError;
|
|
387
|
-
//# sourceMappingURL=errors.cjs.map
|
|
1
|
+
"use strict";var e=require("./pigment.cjs"),r=require("./chunks/errors-core-DKPohm9I.cjs");function t(r,t={}){const{colored:s=!0,theme:o=e.vldTheme,includeCode:n=!1,includeDetails:i=!1}=t,p=[];for(const e of r.issues){let r=`${s?o.symbol("✖"):"✖"} ${s?o.error(e.message):e.message}`;if(n){r+=` ${s?o.muted(`[${e.code}]`):`[${e.code}]`}`}if(e.path.length>0){const t=e.path.map((e,r)=>{if("string"==typeof e){const t=0===r?e:`.${e}`;return s?o.path(t):t}{const r=`[${e}]`;return s?o.path(r):r}}).join("");r+=`\n ${s?o.muted("→ at "):"→ at "}${t}`}if(i){if(e.expected){r+=`\n ${s?o.muted("expected: ")+o.success(e.expected):`expected: ${e.expected}`}`}if(e.received){r+=`\n ${s?o.muted("received: ")+o.warning(e.received):`received: ${e.received}`}`}}p.push(r)}return p.join("\n")}exports.VldError=r.VldError,exports.createIssue=function(e,r,t,s){return{code:e,path:[...r],message:t,...s}},exports.flattenError=function(e){const r=[],t={};for(const s of e.issues)if(0===s.path.length)r.push(s.message);else{const e=s.path[0].toString();t[e]||(t[e]=[]),t[e].push(s.message)}return{formErrors:r,fieldErrors:t}},exports.getValueType=function(e){return null===e?"null":void 0===e?"undefined":Array.isArray(e)?"array":e instanceof Date?"date":typeof e},exports.prettifyError=t,exports.prettifyErrorColored=function(e,r={}){return t(e,{...r,colored:!0})},exports.prettifyErrorPlain=function(e,r={}){return t(e,{...r,colored:!1})},exports.treeifyError=function(e){const r={errors:[]};for(const t of e.issues){let e=r;const s=t.path;for(let r=0;r<s.length;r++){const o=s[r],n=r===s.length-1;if("string"==typeof o)e.properties||(e.properties={}),e.properties[o]||(e.properties[o]={errors:[]}),n?e.properties[o].errors.push(t.message):e=e.properties[o];else if("number"==typeof o){for(e.items||(e.items=[]);e.items.length<=o;)e.items.push(void 0);e.items[o]||(e.items[o]={errors:[]}),n?e.items[o].errors.push(t.message):e=e.items[o]}}0===s.length&&r.errors.push(t.message)}return r};
|