moonflower 1.2.0 → 1.3.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/dist/errors/UserFacingErrors.cjs +1 -1
- package/dist/errors/UserFacingErrors.cjs.map +1 -1
- package/dist/errors/UserFacingErrors.d.ts +27 -0
- package/dist/errors/UserFacingErrors.d.ts.map +1 -1
- package/dist/errors/UserFacingErrors.mjs +67 -13
- package/dist/errors/UserFacingErrors.mjs.map +1 -1
- package/dist/hooks/usePathParams.cjs +1 -1
- package/dist/hooks/usePathParams.cjs.map +1 -1
- package/dist/hooks/usePathParams.d.ts.map +1 -1
- package/dist/hooks/usePathParams.mjs +20 -27
- package/dist/hooks/usePathParams.mjs.map +1 -1
- package/dist/hooks/useQueryParams.cjs +1 -1
- package/dist/hooks/useQueryParams.cjs.map +1 -1
- package/dist/hooks/useQueryParams.d.ts +4 -3
- package/dist/hooks/useQueryParams.d.ts.map +1 -1
- package/dist/hooks/useQueryParams.mjs +24 -33
- package/dist/hooks/useQueryParams.mjs.map +1 -1
- package/dist/hooks/useRequestBody.cjs +1 -1
- package/dist/hooks/useRequestBody.cjs.map +1 -1
- package/dist/hooks/useRequestBody.d.ts +4 -3
- package/dist/hooks/useRequestBody.d.ts.map +1 -1
- package/dist/hooks/useRequestBody.mjs +23 -34
- package/dist/hooks/useRequestBody.mjs.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.mjs +64 -55
- package/dist/node_modules/zod/index.cjs +2 -0
- package/dist/node_modules/zod/index.cjs.map +1 -0
- package/dist/node_modules/zod/index.mjs +6 -0
- package/dist/node_modules/zod/index.mjs.map +1 -0
- package/dist/node_modules/zod/v4/classic/checks.cjs +2 -0
- package/dist/node_modules/zod/v4/classic/checks.cjs.map +1 -0
- package/dist/node_modules/zod/v4/classic/checks.mjs +34 -0
- package/dist/node_modules/zod/v4/classic/checks.mjs.map +1 -0
- package/dist/node_modules/zod/v4/classic/coerce.cjs +2 -0
- package/dist/node_modules/zod/v4/classic/coerce.cjs.map +1 -0
- package/dist/node_modules/zod/v4/classic/coerce.mjs +26 -0
- package/dist/node_modules/zod/v4/classic/coerce.mjs.map +1 -0
- package/dist/node_modules/zod/v4/classic/compat.cjs +2 -0
- package/dist/node_modules/zod/v4/classic/compat.cjs.map +1 -0
- package/dist/node_modules/zod/v4/classic/compat.mjs +35 -0
- package/dist/node_modules/zod/v4/classic/compat.mjs.map +1 -0
- package/dist/node_modules/zod/v4/classic/errors.cjs +2 -0
- package/dist/node_modules/zod/v4/classic/errors.cjs.map +1 -0
- package/dist/node_modules/zod/v4/classic/errors.mjs +41 -0
- package/dist/node_modules/zod/v4/classic/errors.mjs.map +1 -0
- package/dist/node_modules/zod/v4/classic/external.cjs +2 -0
- package/dist/node_modules/zod/v4/classic/external.cjs.map +1 -0
- package/dist/node_modules/zod/v4/classic/external.mjs +260 -0
- package/dist/node_modules/zod/v4/classic/external.mjs.map +1 -0
- package/dist/node_modules/zod/v4/classic/from-json-schema.cjs +2 -0
- package/dist/node_modules/zod/v4/classic/from-json-schema.cjs.map +1 -0
- package/dist/node_modules/zod/v4/classic/from-json-schema.mjs +287 -0
- package/dist/node_modules/zod/v4/classic/from-json-schema.mjs.map +1 -0
- package/dist/node_modules/zod/v4/classic/iso.cjs +2 -0
- package/dist/node_modules/zod/v4/classic/iso.cjs.map +1 -0
- package/dist/node_modules/zod/v4/classic/iso.mjs +40 -0
- package/dist/node_modules/zod/v4/classic/iso.mjs.map +1 -0
- package/dist/node_modules/zod/v4/classic/parse.cjs +2 -0
- package/dist/node_modules/zod/v4/classic/parse.cjs.map +1 -0
- package/dist/node_modules/zod/v4/classic/parse.mjs +19 -0
- package/dist/node_modules/zod/v4/classic/parse.mjs.map +1 -0
- package/dist/node_modules/zod/v4/classic/schemas.cjs +2 -0
- package/dist/node_modules/zod/v4/classic/schemas.cjs.map +1 -0
- package/dist/node_modules/zod/v4/classic/schemas.mjs +912 -0
- package/dist/node_modules/zod/v4/classic/schemas.mjs.map +1 -0
- package/dist/node_modules/zod/v4/core/api.cjs +2 -0
- package/dist/node_modules/zod/v4/core/api.cjs.map +1 -0
- package/dist/node_modules/zod/v4/core/api.mjs +1110 -0
- package/dist/node_modules/zod/v4/core/api.mjs.map +1 -0
- package/dist/node_modules/zod/v4/core/checks.cjs +2 -0
- package/dist/node_modules/zod/v4/core/checks.cjs.map +1 -0
- package/dist/node_modules/zod/v4/core/checks.mjs +421 -0
- package/dist/node_modules/zod/v4/core/checks.mjs.map +1 -0
- package/dist/node_modules/zod/v4/core/core.cjs +2 -0
- package/dist/node_modules/zod/v4/core/core.cjs.map +1 -0
- package/dist/node_modules/zod/v4/core/core.mjs +62 -0
- package/dist/node_modules/zod/v4/core/core.mjs.map +1 -0
- package/dist/node_modules/zod/v4/core/doc.cjs +4 -0
- package/dist/node_modules/zod/v4/core/doc.cjs.map +1 -0
- package/dist/node_modules/zod/v4/core/doc.mjs +27 -0
- package/dist/node_modules/zod/v4/core/doc.mjs.map +1 -0
- package/dist/node_modules/zod/v4/core/errors.cjs +3 -0
- package/dist/node_modules/zod/v4/core/errors.cjs.map +1 -0
- package/dist/node_modules/zod/v4/core/errors.mjs +89 -0
- package/dist/node_modules/zod/v4/core/errors.mjs.map +1 -0
- package/dist/node_modules/zod/v4/core/index.cjs +2 -0
- package/dist/node_modules/zod/v4/core/index.cjs.map +1 -0
- package/dist/node_modules/zod/v4/core/index.mjs +293 -0
- package/dist/node_modules/zod/v4/core/index.mjs.map +1 -0
- package/dist/node_modules/zod/v4/core/json-schema-generator.cjs +2 -0
- package/dist/node_modules/zod/v4/core/json-schema-generator.cjs.map +1 -0
- package/dist/node_modules/zod/v4/core/json-schema-generator.mjs +66 -0
- package/dist/node_modules/zod/v4/core/json-schema-generator.mjs.map +1 -0
- package/dist/node_modules/zod/v4/core/json-schema-processors.cjs +2 -0
- package/dist/node_modules/zod/v4/core/json-schema-processors.cjs.map +1 -0
- package/dist/node_modules/zod/v4/core/json-schema-processors.mjs +346 -0
- package/dist/node_modules/zod/v4/core/json-schema-processors.mjs.map +1 -0
- package/dist/node_modules/zod/v4/core/json-schema.cjs +2 -0
- package/dist/node_modules/zod/v4/core/json-schema.cjs.map +1 -0
- package/dist/node_modules/zod/v4/core/json-schema.mjs +2 -0
- package/dist/node_modules/zod/v4/core/json-schema.mjs.map +1 -0
- package/dist/node_modules/zod/v4/core/parse.cjs +2 -0
- package/dist/node_modules/zod/v4/core/parse.cjs.map +1 -0
- package/dist/node_modules/zod/v4/core/parse.mjs +75 -0
- package/dist/node_modules/zod/v4/core/parse.mjs.map +1 -0
- package/dist/node_modules/zod/v4/core/regexes.cjs +2 -0
- package/dist/node_modules/zod/v4/core/regexes.cjs.map +1 -0
- package/dist/node_modules/zod/v4/core/regexes.mjs +94 -0
- package/dist/node_modules/zod/v4/core/regexes.mjs.map +1 -0
- package/dist/node_modules/zod/v4/core/registries.cjs +2 -0
- package/dist/node_modules/zod/v4/core/registries.cjs.map +1 -0
- package/dist/node_modules/zod/v4/core/registries.mjs +44 -0
- package/dist/node_modules/zod/v4/core/registries.mjs.map +1 -0
- package/dist/node_modules/zod/v4/core/schemas.cjs +36 -0
- package/dist/node_modules/zod/v4/core/schemas.cjs.map +1 -0
- package/dist/node_modules/zod/v4/core/schemas.mjs +1319 -0
- package/dist/node_modules/zod/v4/core/schemas.mjs.map +1 -0
- package/dist/node_modules/zod/v4/core/to-json-schema.cjs +4 -0
- package/dist/node_modules/zod/v4/core/to-json-schema.cjs.map +1 -0
- package/dist/node_modules/zod/v4/core/to-json-schema.mjs +244 -0
- package/dist/node_modules/zod/v4/core/to-json-schema.mjs.map +1 -0
- package/dist/node_modules/zod/v4/core/util.cjs +2 -0
- package/dist/node_modules/zod/v4/core/util.cjs.map +1 -0
- package/dist/node_modules/zod/v4/core/util.mjs +523 -0
- package/dist/node_modules/zod/v4/core/util.mjs.map +1 -0
- package/dist/node_modules/zod/v4/core/versions.cjs +2 -0
- package/dist/node_modules/zod/v4/core/versions.cjs.map +1 -0
- package/dist/node_modules/zod/v4/core/versions.mjs +9 -0
- package/dist/node_modules/zod/v4/core/versions.mjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/ar.cjs +2 -0
- package/dist/node_modules/zod/v4/locales/ar.cjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/ar.mjs +87 -0
- package/dist/node_modules/zod/v4/locales/ar.mjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/az.cjs +2 -0
- package/dist/node_modules/zod/v4/locales/az.cjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/az.mjs +87 -0
- package/dist/node_modules/zod/v4/locales/az.mjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/be.cjs +2 -0
- package/dist/node_modules/zod/v4/locales/be.cjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/be.mjs +129 -0
- package/dist/node_modules/zod/v4/locales/be.mjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/bg.cjs +2 -0
- package/dist/node_modules/zod/v4/locales/bg.cjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/bg.mjs +98 -0
- package/dist/node_modules/zod/v4/locales/bg.mjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/ca.cjs +2 -0
- package/dist/node_modules/zod/v4/locales/ca.cjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/ca.mjs +88 -0
- package/dist/node_modules/zod/v4/locales/ca.mjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/cs.cjs +2 -0
- package/dist/node_modules/zod/v4/locales/cs.cjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/cs.mjs +91 -0
- package/dist/node_modules/zod/v4/locales/cs.mjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/da.cjs +2 -0
- package/dist/node_modules/zod/v4/locales/da.cjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/da.mjs +94 -0
- package/dist/node_modules/zod/v4/locales/da.mjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/de.cjs +2 -0
- package/dist/node_modules/zod/v4/locales/de.cjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/de.mjs +89 -0
- package/dist/node_modules/zod/v4/locales/de.mjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/en.cjs +2 -0
- package/dist/node_modules/zod/v4/locales/en.cjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/en.mjs +91 -0
- package/dist/node_modules/zod/v4/locales/en.mjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/eo.cjs +2 -0
- package/dist/node_modules/zod/v4/locales/eo.cjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/eo.mjs +90 -0
- package/dist/node_modules/zod/v4/locales/eo.mjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/es.cjs +2 -0
- package/dist/node_modules/zod/v4/locales/es.cjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/es.mjs +111 -0
- package/dist/node_modules/zod/v4/locales/es.mjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/fa.cjs +2 -0
- package/dist/node_modules/zod/v4/locales/fa.cjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/fa.mjs +89 -0
- package/dist/node_modules/zod/v4/locales/fa.mjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/fi.cjs +2 -0
- package/dist/node_modules/zod/v4/locales/fi.cjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/fi.mjs +91 -0
- package/dist/node_modules/zod/v4/locales/fi.mjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/fr-CA.cjs +2 -0
- package/dist/node_modules/zod/v4/locales/fr-CA.cjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/fr-CA.mjs +87 -0
- package/dist/node_modules/zod/v4/locales/fr-CA.mjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/fr.cjs +2 -0
- package/dist/node_modules/zod/v4/locales/fr.cjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/fr.mjs +89 -0
- package/dist/node_modules/zod/v4/locales/fr.mjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/he.cjs +2 -0
- package/dist/node_modules/zod/v4/locales/he.cjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/he.mjs +152 -0
- package/dist/node_modules/zod/v4/locales/he.mjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/hu.cjs +2 -0
- package/dist/node_modules/zod/v4/locales/hu.cjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/hu.mjs +89 -0
- package/dist/node_modules/zod/v4/locales/hu.mjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/hy.cjs +2 -0
- package/dist/node_modules/zod/v4/locales/hy.cjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/hy.mjs +130 -0
- package/dist/node_modules/zod/v4/locales/hy.mjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/id.cjs +2 -0
- package/dist/node_modules/zod/v4/locales/id.cjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/id.mjs +87 -0
- package/dist/node_modules/zod/v4/locales/id.mjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/index.cjs +2 -0
- package/dist/node_modules/zod/v4/locales/index.cjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/index.mjs +101 -0
- package/dist/node_modules/zod/v4/locales/index.mjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/is.cjs +2 -0
- package/dist/node_modules/zod/v4/locales/is.cjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/is.mjs +89 -0
- package/dist/node_modules/zod/v4/locales/is.mjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/it.cjs +2 -0
- package/dist/node_modules/zod/v4/locales/it.cjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/it.mjs +89 -0
- package/dist/node_modules/zod/v4/locales/it.mjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/ja.cjs +2 -0
- package/dist/node_modules/zod/v4/locales/ja.cjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/ja.mjs +89 -0
- package/dist/node_modules/zod/v4/locales/ja.mjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/ka.cjs +2 -0
- package/dist/node_modules/zod/v4/locales/ka.cjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/ka.mjs +92 -0
- package/dist/node_modules/zod/v4/locales/ka.mjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/kh.cjs +2 -0
- package/dist/node_modules/zod/v4/locales/kh.cjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/kh.mjs +8 -0
- package/dist/node_modules/zod/v4/locales/kh.mjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/km.cjs +2 -0
- package/dist/node_modules/zod/v4/locales/km.cjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/km.mjs +90 -0
- package/dist/node_modules/zod/v4/locales/km.mjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/ko.cjs +2 -0
- package/dist/node_modules/zod/v4/locales/ko.cjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/ko.mjs +87 -0
- package/dist/node_modules/zod/v4/locales/ko.mjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/lt.cjs +2 -0
- package/dist/node_modules/zod/v4/locales/lt.cjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/lt.mjs +178 -0
- package/dist/node_modules/zod/v4/locales/lt.mjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/mk.cjs +2 -0
- package/dist/node_modules/zod/v4/locales/mk.cjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/mk.mjs +89 -0
- package/dist/node_modules/zod/v4/locales/mk.mjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/ms.cjs +2 -0
- package/dist/node_modules/zod/v4/locales/ms.cjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/ms.mjs +88 -0
- package/dist/node_modules/zod/v4/locales/ms.mjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/nl.cjs +2 -0
- package/dist/node_modules/zod/v4/locales/nl.cjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/nl.mjs +88 -0
- package/dist/node_modules/zod/v4/locales/nl.mjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/no.cjs +2 -0
- package/dist/node_modules/zod/v4/locales/no.cjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/no.mjs +89 -0
- package/dist/node_modules/zod/v4/locales/no.mjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/ota.cjs +2 -0
- package/dist/node_modules/zod/v4/locales/ota.cjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/ota.mjs +90 -0
- package/dist/node_modules/zod/v4/locales/ota.mjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/pl.cjs +2 -0
- package/dist/node_modules/zod/v4/locales/pl.cjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/pl.mjs +89 -0
- package/dist/node_modules/zod/v4/locales/pl.mjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/ps.cjs +2 -0
- package/dist/node_modules/zod/v4/locales/ps.cjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/ps.mjs +89 -0
- package/dist/node_modules/zod/v4/locales/ps.mjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/pt.cjs +2 -0
- package/dist/node_modules/zod/v4/locales/pt.cjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/pt.mjs +89 -0
- package/dist/node_modules/zod/v4/locales/pt.mjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/ru.cjs +2 -0
- package/dist/node_modules/zod/v4/locales/ru.cjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/ru.mjs +129 -0
- package/dist/node_modules/zod/v4/locales/ru.mjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/sl.cjs +2 -0
- package/dist/node_modules/zod/v4/locales/sl.cjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/sl.mjs +89 -0
- package/dist/node_modules/zod/v4/locales/sl.mjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/sv.cjs +2 -0
- package/dist/node_modules/zod/v4/locales/sv.cjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/sv.mjs +89 -0
- package/dist/node_modules/zod/v4/locales/sv.mjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/ta.cjs +2 -0
- package/dist/node_modules/zod/v4/locales/ta.cjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/ta.mjs +90 -0
- package/dist/node_modules/zod/v4/locales/ta.mjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/th.cjs +2 -0
- package/dist/node_modules/zod/v4/locales/th.cjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/th.mjs +90 -0
- package/dist/node_modules/zod/v4/locales/th.mjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/tr.cjs +2 -0
- package/dist/node_modules/zod/v4/locales/tr.cjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/tr.mjs +87 -0
- package/dist/node_modules/zod/v4/locales/tr.mjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/ua.cjs +2 -0
- package/dist/node_modules/zod/v4/locales/ua.cjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/ua.mjs +8 -0
- package/dist/node_modules/zod/v4/locales/ua.mjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/uk.cjs +2 -0
- package/dist/node_modules/zod/v4/locales/uk.cjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/uk.mjs +89 -0
- package/dist/node_modules/zod/v4/locales/uk.mjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/ur.cjs +2 -0
- package/dist/node_modules/zod/v4/locales/ur.cjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/ur.mjs +90 -0
- package/dist/node_modules/zod/v4/locales/ur.mjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/uz.cjs +2 -0
- package/dist/node_modules/zod/v4/locales/uz.cjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/uz.mjs +90 -0
- package/dist/node_modules/zod/v4/locales/uz.mjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/vi.cjs +2 -0
- package/dist/node_modules/zod/v4/locales/vi.cjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/vi.mjs +89 -0
- package/dist/node_modules/zod/v4/locales/vi.mjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/yo.cjs +2 -0
- package/dist/node_modules/zod/v4/locales/yo.cjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/yo.mjs +89 -0
- package/dist/node_modules/zod/v4/locales/yo.mjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/zh-CN.cjs +2 -0
- package/dist/node_modules/zod/v4/locales/zh-CN.cjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/zh-CN.mjs +90 -0
- package/dist/node_modules/zod/v4/locales/zh-CN.mjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/zh-TW.cjs +2 -0
- package/dist/node_modules/zod/v4/locales/zh-TW.cjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/zh-TW.mjs +87 -0
- package/dist/node_modules/zod/v4/locales/zh-TW.mjs.map +1 -0
- package/dist/openapi/analyzerModule/analyzerModule.cjs +1 -1
- package/dist/openapi/analyzerModule/analyzerModule.cjs.map +1 -1
- package/dist/openapi/analyzerModule/analyzerModule.d.ts.map +1 -1
- package/dist/openapi/analyzerModule/analyzerModule.mjs +42 -42
- package/dist/openapi/analyzerModule/analyzerModule.mjs.map +1 -1
- package/dist/openapi/analyzerModule/nodeParsers.cjs +1 -1
- package/dist/openapi/analyzerModule/nodeParsers.cjs.map +1 -1
- package/dist/openapi/analyzerModule/nodeParsers.d.ts +1 -0
- package/dist/openapi/analyzerModule/nodeParsers.d.ts.map +1 -1
- package/dist/openapi/analyzerModule/nodeParsers.mjs +261 -206
- package/dist/openapi/analyzerModule/nodeParsers.mjs.map +1 -1
- package/dist/openapi/analyzerModule/parseEndpoint.cjs +1 -1
- package/dist/openapi/analyzerModule/parseEndpoint.cjs.map +1 -1
- package/dist/openapi/analyzerModule/parseEndpoint.d.ts.map +1 -1
- package/dist/openapi/analyzerModule/parseEndpoint.mjs +62 -62
- package/dist/openapi/analyzerModule/parseEndpoint.mjs.map +1 -1
- package/dist/openapi/analyzerModule/test/TestCase.d.ts +9 -0
- package/dist/openapi/analyzerModule/test/TestCase.d.ts.map +1 -0
- package/dist/openapi/analyzerModule/test/openApiAnalyzer.zod.spec.d.ts +2 -0
- package/dist/openapi/analyzerModule/test/openApiAnalyzer.zod.spec.d.ts.map +1 -0
- package/dist/openapi/analyzerModule/test/openApiAnalyzer.zod.spec.data.d.ts +2 -0
- package/dist/openapi/analyzerModule/test/openApiAnalyzer.zod.spec.data.d.ts.map +1 -0
- package/dist/utils/getValueAsNullableString.cjs +2 -0
- package/dist/utils/getValueAsNullableString.cjs.map +1 -0
- package/dist/utils/getValueAsNullableString.d.ts +2 -0
- package/dist/utils/getValueAsNullableString.d.ts.map +1 -0
- package/dist/utils/getValueAsNullableString.mjs +7 -0
- package/dist/utils/getValueAsNullableString.mjs.map +1 -0
- package/dist/utils/validationMessages.cjs +1 -1
- package/dist/utils/validationMessages.cjs.map +1 -1
- package/dist/utils/validationMessages.d.ts +1 -1
- package/dist/utils/validationMessages.d.ts.map +1 -1
- package/dist/utils/validationMessages.mjs +8 -8
- package/dist/utils/validationMessages.mjs.map +1 -1
- package/dist/validators/types.d.ts +4 -0
- package/dist/validators/types.d.ts.map +1 -1
- package/dist/validators/validateMissingParams.cjs +2 -0
- package/dist/validators/validateMissingParams.cjs.map +1 -0
- package/dist/validators/validateMissingParams.d.ts +7 -0
- package/dist/validators/validateMissingParams.d.ts.map +1 -0
- package/dist/validators/validateMissingParams.mjs +17 -0
- package/dist/validators/validateMissingParams.mjs.map +1 -0
- package/dist/validators/validateParam.cjs +2 -0
- package/dist/validators/validateParam.cjs.map +1 -0
- package/dist/validators/validateParam.d.ts +8 -0
- package/dist/validators/validateParam.d.ts.map +1 -0
- package/dist/validators/validateParam.mjs +41 -0
- package/dist/validators/validateParam.mjs.map +1 -0
- package/package.json +9 -2
- package/src/errors/UserFacingErrors.ts +54 -0
- package/src/hooks/usePathParams.spec.ts +27 -0
- package/src/hooks/usePathParams.ts +5 -13
- package/src/hooks/useQueryParams.spec.ts +99 -0
- package/src/hooks/useQueryParams.ts +16 -25
- package/src/hooks/useRequestBody.spec.ts +99 -0
- package/src/hooks/useRequestBody.ts +16 -35
- package/src/openapi/analyzerModule/analyzerModule.ts +2 -3
- package/src/openapi/analyzerModule/nodeParsers.ts +113 -8
- package/src/openapi/analyzerModule/parseEndpoint.ts +2 -2
- package/src/openapi/analyzerModule/test/TestCase.ts +8 -0
- package/src/openapi/analyzerModule/test/openApiAnalyzer.spec.data.ts +9 -0
- package/src/openapi/analyzerModule/test/openApiAnalyzer.spec.ts +21 -0
- package/src/openapi/analyzerModule/test/openApiAnalyzer.zod.spec.data.ts +87 -0
- package/src/openapi/analyzerModule/test/openApiAnalyzer.zod.spec.ts +178 -0
- package/src/utils/getValueAsNullableString.ts +8 -0
- package/src/utils/validationMessages.ts +4 -0
- package/src/validators/types.ts +5 -0
- package/src/validators/validateMissingParams.ts +27 -0
- package/src/validators/validateParam.ts +69 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./BaseHttpError.cjs"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./BaseHttpError.cjs"),s=require("./StatusCodes.cjs"),e=t.BaseHttpError;class a extends t.BaseHttpError{constructor(r){super(s.StatusCodes.BAD_REQUEST,r)}}class E extends t.BaseHttpError{constructor(r){super(s.StatusCodes.BAD_REQUEST,r)}}class n extends t.BaseHttpError{constructor(r){super(s.StatusCodes.UNAUTHORIZED,r)}}class u extends t.BaseHttpError{constructor(r){super(s.StatusCodes.NOT_FOUND,r)}}class c extends t.BaseHttpError{constructor(r){super(s.StatusCodes.INTERNAL_SERVER_ERROR,r)}}class d extends t.BaseHttpError{constructor(r){super(s.StatusCodes.FORBIDDEN,r)}}class l extends t.BaseHttpError{constructor(r){super(s.StatusCodes.METHOD_NOT_ALLOWED,r)}}class p extends t.BaseHttpError{constructor(r){super(s.StatusCodes.CONFLICT,r)}}class S extends t.BaseHttpError{constructor(r){super(s.StatusCodes.GONE,r)}}class B extends t.BaseHttpError{constructor(r){super(s.StatusCodes.UNPROCESSABLE_ENTITY,r)}}class C extends t.BaseHttpError{constructor(r){super(s.StatusCodes.TOO_MANY_REQUESTS,r)}}class i extends t.BaseHttpError{constructor(r){super(s.StatusCodes.NOT_IMPLEMENTED,r)}}class T extends t.BaseHttpError{constructor(r){super(s.StatusCodes.BAD_GATEWAY,r)}}class N extends t.BaseHttpError{constructor(r){super(s.StatusCodes.SERVICE_UNAVAILABLE,r)}}class H extends t.BaseHttpError{constructor(r){super(s.StatusCodes.GATEWAY_TIMEOUT,r)}}exports.HttpStatusCodes=s.StatusCodes;exports.BadGatewayError=T;exports.BadRequestError=E;exports.ConflictError=p;exports.ForbiddenError=d;exports.GatewayTimeoutError=H;exports.GoneError=S;exports.InternalServerError=c;exports.MethodNotAllowedError=l;exports.MoonflowerError=e;exports.NotFoundError=u;exports.NotImplementedError=i;exports.ServiceUnavailableError=N;exports.TooManyRequestsError=C;exports.UnauthorizedError=n;exports.UnprocessableEntityError=B;exports.ValidationError=a;
|
|
2
2
|
//# sourceMappingURL=UserFacingErrors.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserFacingErrors.cjs","sources":["../../src/errors/UserFacingErrors.ts"],"sourcesContent":["import { BaseHttpError } from './BaseHttpError'\nimport { StatusCodes } from './StatusCodes'\n\nexport const MoonflowerError = BaseHttpError\nexport { StatusCodes as HttpStatusCodes }\n\nexport class ValidationError extends BaseHttpError {\n\tconstructor(message: string) {\n\t\tsuper(StatusCodes.BAD_REQUEST, message)\n\t}\n}\n\nexport class BadRequestError extends BaseHttpError {\n\tconstructor(message: string) {\n\t\tsuper(StatusCodes.BAD_REQUEST, message)\n\t}\n}\n\nexport class UnauthorizedError extends BaseHttpError {\n\tconstructor(message: string) {\n\t\tsuper(StatusCodes.UNAUTHORIZED, message)\n\t}\n}\n\nexport class NotFoundError extends BaseHttpError {\n\tconstructor(message: string) {\n\t\tsuper(StatusCodes.NOT_FOUND, message)\n\t}\n}\n\nexport class InternalServerError extends BaseHttpError {\n\tconstructor(message: string) {\n\t\tsuper(StatusCodes.INTERNAL_SERVER_ERROR, message)\n\t}\n}\n\nexport class ServiceUnavailableError extends BaseHttpError {\n\tconstructor(message: string) {\n\t\tsuper(StatusCodes.SERVICE_UNAVAILABLE, message)\n\t}\n}\n\n// To be used later\n// export const errorNameToStatusCode = (name: string): number => {\n// \tswitch (name) {\n// \t\tcase 'ValidationError':\n// \t\t\treturn StatusCodes.BAD_REQUEST\n// \t\tcase 'BadRequestError':\n// \t\t\treturn StatusCodes.BAD_REQUEST\n// \t\tcase 'UnauthorizedError':\n// \t\t\treturn StatusCodes.UNAUTHORIZED\n// \t}\n// \treturn StatusCodes.INTERNAL_SERVER_ERROR\n// }\n\n// import { getReasonPhrase } from 'http-status-codes'\n// export const errorNameToReason = (name: string): string => {\n// \treturn getReasonPhrase(errorNameToStatusCode(name) || 500)\n// }\n"],"names":["MoonflowerError","BaseHttpError","ValidationError","message","StatusCodes","BadRequestError","UnauthorizedError","NotFoundError","InternalServerError","ServiceUnavailableError"],"mappings":"sJAGaA,EAAkBC,EAAAA,cAGxB,MAAMC,UAAwBD,EAAAA,aAAc,CAClD,YAAYE,EAAiB,CACtB,MAAAC,EAAAA,YAAY,YAAaD,CAAO,CAAA,CAExC,CAEO,MAAME,UAAwBJ,EAAAA,aAAc,CAClD,YAAYE,EAAiB,CACtB,MAAAC,EAAAA,YAAY,YAAaD,CAAO,CAAA,CAExC,CAEO,MAAMG,UAA0BL,EAAAA,aAAc,CACpD,YAAYE,EAAiB,CACtB,MAAAC,EAAAA,YAAY,aAAcD,CAAO,CAAA,CAEzC,CAEO,MAAMI,UAAsBN,EAAAA,aAAc,CAChD,YAAYE,EAAiB,CACtB,MAAAC,EAAAA,YAAY,UAAWD,CAAO,CAAA,CAEtC,CAEO,MAAMK,UAA4BP,EAAAA,aAAc,CACtD,YAAYE,EAAiB,CACtB,MAAAC,EAAAA,YAAY,sBAAuBD,CAAO,CAAA,CAElD,CAEO,MAAMM,
|
|
1
|
+
{"version":3,"file":"UserFacingErrors.cjs","sources":["../../src/errors/UserFacingErrors.ts"],"sourcesContent":["import { BaseHttpError } from './BaseHttpError'\nimport { StatusCodes } from './StatusCodes'\n\nexport const MoonflowerError = BaseHttpError\nexport { StatusCodes as HttpStatusCodes }\n\nexport class ValidationError extends BaseHttpError {\n\tconstructor(message: string) {\n\t\tsuper(StatusCodes.BAD_REQUEST, message)\n\t}\n}\n\nexport class BadRequestError extends BaseHttpError {\n\tconstructor(message: string) {\n\t\tsuper(StatusCodes.BAD_REQUEST, message)\n\t}\n}\n\nexport class UnauthorizedError extends BaseHttpError {\n\tconstructor(message: string) {\n\t\tsuper(StatusCodes.UNAUTHORIZED, message)\n\t}\n}\n\nexport class NotFoundError extends BaseHttpError {\n\tconstructor(message: string) {\n\t\tsuper(StatusCodes.NOT_FOUND, message)\n\t}\n}\n\nexport class InternalServerError extends BaseHttpError {\n\tconstructor(message: string) {\n\t\tsuper(StatusCodes.INTERNAL_SERVER_ERROR, message)\n\t}\n}\n\nexport class ForbiddenError extends BaseHttpError {\n\tconstructor(message: string) {\n\t\tsuper(StatusCodes.FORBIDDEN, message)\n\t}\n}\n\nexport class MethodNotAllowedError extends BaseHttpError {\n\tconstructor(message: string) {\n\t\tsuper(StatusCodes.METHOD_NOT_ALLOWED, message)\n\t}\n}\n\nexport class ConflictError extends BaseHttpError {\n\tconstructor(message: string) {\n\t\tsuper(StatusCodes.CONFLICT, message)\n\t}\n}\n\nexport class GoneError extends BaseHttpError {\n\tconstructor(message: string) {\n\t\tsuper(StatusCodes.GONE, message)\n\t}\n}\n\nexport class UnprocessableEntityError extends BaseHttpError {\n\tconstructor(message: string) {\n\t\tsuper(StatusCodes.UNPROCESSABLE_ENTITY, message)\n\t}\n}\n\nexport class TooManyRequestsError extends BaseHttpError {\n\tconstructor(message: string) {\n\t\tsuper(StatusCodes.TOO_MANY_REQUESTS, message)\n\t}\n}\n\nexport class NotImplementedError extends BaseHttpError {\n\tconstructor(message: string) {\n\t\tsuper(StatusCodes.NOT_IMPLEMENTED, message)\n\t}\n}\n\nexport class BadGatewayError extends BaseHttpError {\n\tconstructor(message: string) {\n\t\tsuper(StatusCodes.BAD_GATEWAY, message)\n\t}\n}\n\nexport class ServiceUnavailableError extends BaseHttpError {\n\tconstructor(message: string) {\n\t\tsuper(StatusCodes.SERVICE_UNAVAILABLE, message)\n\t}\n}\n\nexport class GatewayTimeoutError extends BaseHttpError {\n\tconstructor(message: string) {\n\t\tsuper(StatusCodes.GATEWAY_TIMEOUT, message)\n\t}\n}\n\n// To be used later\n// export const errorNameToStatusCode = (name: string): number => {\n// \tswitch (name) {\n// \t\tcase 'ValidationError':\n// \t\t\treturn StatusCodes.BAD_REQUEST\n// \t\tcase 'BadRequestError':\n// \t\t\treturn StatusCodes.BAD_REQUEST\n// \t\tcase 'UnauthorizedError':\n// \t\t\treturn StatusCodes.UNAUTHORIZED\n// \t}\n// \treturn StatusCodes.INTERNAL_SERVER_ERROR\n// }\n\n// import { getReasonPhrase } from 'http-status-codes'\n// export const errorNameToReason = (name: string): string => {\n// \treturn getReasonPhrase(errorNameToStatusCode(name) || 500)\n// }\n"],"names":["MoonflowerError","BaseHttpError","ValidationError","message","StatusCodes","BadRequestError","UnauthorizedError","NotFoundError","InternalServerError","ForbiddenError","MethodNotAllowedError","ConflictError","GoneError","UnprocessableEntityError","TooManyRequestsError","NotImplementedError","BadGatewayError","ServiceUnavailableError","GatewayTimeoutError"],"mappings":"sJAGaA,EAAkBC,EAAAA,cAGxB,MAAMC,UAAwBD,EAAAA,aAAc,CAClD,YAAYE,EAAiB,CACtB,MAAAC,EAAAA,YAAY,YAAaD,CAAO,CAAA,CAExC,CAEO,MAAME,UAAwBJ,EAAAA,aAAc,CAClD,YAAYE,EAAiB,CACtB,MAAAC,EAAAA,YAAY,YAAaD,CAAO,CAAA,CAExC,CAEO,MAAMG,UAA0BL,EAAAA,aAAc,CACpD,YAAYE,EAAiB,CACtB,MAAAC,EAAAA,YAAY,aAAcD,CAAO,CAAA,CAEzC,CAEO,MAAMI,UAAsBN,EAAAA,aAAc,CAChD,YAAYE,EAAiB,CACtB,MAAAC,EAAAA,YAAY,UAAWD,CAAO,CAAA,CAEtC,CAEO,MAAMK,UAA4BP,EAAAA,aAAc,CACtD,YAAYE,EAAiB,CACtB,MAAAC,EAAAA,YAAY,sBAAuBD,CAAO,CAAA,CAElD,CAEO,MAAMM,UAAuBR,EAAAA,aAAc,CACjD,YAAYE,EAAiB,CACtB,MAAAC,EAAAA,YAAY,UAAWD,CAAO,CAAA,CAEtC,CAEO,MAAMO,UAA8BT,EAAAA,aAAc,CACxD,YAAYE,EAAiB,CACtB,MAAAC,EAAAA,YAAY,mBAAoBD,CAAO,CAAA,CAE/C,CAEO,MAAMQ,UAAsBV,EAAAA,aAAc,CAChD,YAAYE,EAAiB,CACtB,MAAAC,EAAAA,YAAY,SAAUD,CAAO,CAAA,CAErC,CAEO,MAAMS,UAAkBX,EAAAA,aAAc,CAC5C,YAAYE,EAAiB,CACtB,MAAAC,EAAAA,YAAY,KAAMD,CAAO,CAAA,CAEjC,CAEO,MAAMU,UAAiCZ,EAAAA,aAAc,CAC3D,YAAYE,EAAiB,CACtB,MAAAC,EAAAA,YAAY,qBAAsBD,CAAO,CAAA,CAEjD,CAEO,MAAMW,UAA6Bb,EAAAA,aAAc,CACvD,YAAYE,EAAiB,CACtB,MAAAC,EAAAA,YAAY,kBAAmBD,CAAO,CAAA,CAE9C,CAEO,MAAMY,UAA4Bd,EAAAA,aAAc,CACtD,YAAYE,EAAiB,CACtB,MAAAC,EAAAA,YAAY,gBAAiBD,CAAO,CAAA,CAE5C,CAEO,MAAMa,UAAwBf,EAAAA,aAAc,CAClD,YAAYE,EAAiB,CACtB,MAAAC,EAAAA,YAAY,YAAaD,CAAO,CAAA,CAExC,CAEO,MAAMc,UAAgChB,EAAAA,aAAc,CAC1D,YAAYE,EAAiB,CACtB,MAAAC,EAAAA,YAAY,oBAAqBD,CAAO,CAAA,CAEhD,CAEO,MAAMe,UAA4BjB,EAAAA,aAAc,CACtD,YAAYE,EAAiB,CACtB,MAAAC,EAAAA,YAAY,gBAAiBD,CAAO,CAAA,CAE5C"}
|
|
@@ -18,7 +18,34 @@ export declare class NotFoundError extends BaseHttpError {
|
|
|
18
18
|
export declare class InternalServerError extends BaseHttpError {
|
|
19
19
|
constructor(message: string);
|
|
20
20
|
}
|
|
21
|
+
export declare class ForbiddenError extends BaseHttpError {
|
|
22
|
+
constructor(message: string);
|
|
23
|
+
}
|
|
24
|
+
export declare class MethodNotAllowedError extends BaseHttpError {
|
|
25
|
+
constructor(message: string);
|
|
26
|
+
}
|
|
27
|
+
export declare class ConflictError extends BaseHttpError {
|
|
28
|
+
constructor(message: string);
|
|
29
|
+
}
|
|
30
|
+
export declare class GoneError extends BaseHttpError {
|
|
31
|
+
constructor(message: string);
|
|
32
|
+
}
|
|
33
|
+
export declare class UnprocessableEntityError extends BaseHttpError {
|
|
34
|
+
constructor(message: string);
|
|
35
|
+
}
|
|
36
|
+
export declare class TooManyRequestsError extends BaseHttpError {
|
|
37
|
+
constructor(message: string);
|
|
38
|
+
}
|
|
39
|
+
export declare class NotImplementedError extends BaseHttpError {
|
|
40
|
+
constructor(message: string);
|
|
41
|
+
}
|
|
42
|
+
export declare class BadGatewayError extends BaseHttpError {
|
|
43
|
+
constructor(message: string);
|
|
44
|
+
}
|
|
21
45
|
export declare class ServiceUnavailableError extends BaseHttpError {
|
|
22
46
|
constructor(message: string);
|
|
23
47
|
}
|
|
48
|
+
export declare class GatewayTimeoutError extends BaseHttpError {
|
|
49
|
+
constructor(message: string);
|
|
50
|
+
}
|
|
24
51
|
//# sourceMappingURL=UserFacingErrors.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserFacingErrors.d.ts","sourceRoot":"","sources":["../../src/errors/UserFacingErrors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C,eAAO,MAAM,eAAe,sBAAgB,CAAA;AAC5C,OAAO,EAAE,WAAW,IAAI,eAAe,EAAE,CAAA;AAEzC,qBAAa,eAAgB,SAAQ,aAAa;gBACrC,OAAO,EAAE,MAAM;CAG3B;AAED,qBAAa,eAAgB,SAAQ,aAAa;gBACrC,OAAO,EAAE,MAAM;CAG3B;AAED,qBAAa,iBAAkB,SAAQ,aAAa;gBACvC,OAAO,EAAE,MAAM;CAG3B;AAED,qBAAa,aAAc,SAAQ,aAAa;gBACnC,OAAO,EAAE,MAAM;CAG3B;AAED,qBAAa,mBAAoB,SAAQ,aAAa;gBACzC,OAAO,EAAE,MAAM;CAG3B;AAED,qBAAa,uBAAwB,SAAQ,aAAa;gBAC7C,OAAO,EAAE,MAAM;CAG3B"}
|
|
1
|
+
{"version":3,"file":"UserFacingErrors.d.ts","sourceRoot":"","sources":["../../src/errors/UserFacingErrors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C,eAAO,MAAM,eAAe,sBAAgB,CAAA;AAC5C,OAAO,EAAE,WAAW,IAAI,eAAe,EAAE,CAAA;AAEzC,qBAAa,eAAgB,SAAQ,aAAa;gBACrC,OAAO,EAAE,MAAM;CAG3B;AAED,qBAAa,eAAgB,SAAQ,aAAa;gBACrC,OAAO,EAAE,MAAM;CAG3B;AAED,qBAAa,iBAAkB,SAAQ,aAAa;gBACvC,OAAO,EAAE,MAAM;CAG3B;AAED,qBAAa,aAAc,SAAQ,aAAa;gBACnC,OAAO,EAAE,MAAM;CAG3B;AAED,qBAAa,mBAAoB,SAAQ,aAAa;gBACzC,OAAO,EAAE,MAAM;CAG3B;AAED,qBAAa,cAAe,SAAQ,aAAa;gBACpC,OAAO,EAAE,MAAM;CAG3B;AAED,qBAAa,qBAAsB,SAAQ,aAAa;gBAC3C,OAAO,EAAE,MAAM;CAG3B;AAED,qBAAa,aAAc,SAAQ,aAAa;gBACnC,OAAO,EAAE,MAAM;CAG3B;AAED,qBAAa,SAAU,SAAQ,aAAa;gBAC/B,OAAO,EAAE,MAAM;CAG3B;AAED,qBAAa,wBAAyB,SAAQ,aAAa;gBAC9C,OAAO,EAAE,MAAM;CAG3B;AAED,qBAAa,oBAAqB,SAAQ,aAAa;gBAC1C,OAAO,EAAE,MAAM;CAG3B;AAED,qBAAa,mBAAoB,SAAQ,aAAa;gBACzC,OAAO,EAAE,MAAM;CAG3B;AAED,qBAAa,eAAgB,SAAQ,aAAa;gBACrC,OAAO,EAAE,MAAM;CAG3B;AAED,qBAAa,uBAAwB,SAAQ,aAAa;gBAC7C,OAAO,EAAE,MAAM;CAG3B;AAED,qBAAa,mBAAoB,SAAQ,aAAa;gBACzC,OAAO,EAAE,MAAM;CAG3B"}
|
|
@@ -1,44 +1,98 @@
|
|
|
1
1
|
import { BaseHttpError as s } from "./BaseHttpError.mjs";
|
|
2
|
-
import { StatusCodes as
|
|
2
|
+
import { StatusCodes as e } from "./StatusCodes.mjs";
|
|
3
3
|
const n = s;
|
|
4
4
|
class E extends s {
|
|
5
5
|
constructor(r) {
|
|
6
|
-
super(
|
|
6
|
+
super(e.BAD_REQUEST, r);
|
|
7
7
|
}
|
|
8
8
|
}
|
|
9
|
-
class
|
|
9
|
+
class u extends s {
|
|
10
10
|
constructor(r) {
|
|
11
|
-
super(
|
|
11
|
+
super(e.BAD_REQUEST, r);
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
|
-
class
|
|
14
|
+
class a extends s {
|
|
15
15
|
constructor(r) {
|
|
16
|
-
super(
|
|
16
|
+
super(e.UNAUTHORIZED, r);
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
19
|
class d extends s {
|
|
20
20
|
constructor(r) {
|
|
21
|
-
super(
|
|
21
|
+
super(e.NOT_FOUND, r);
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
class l extends s {
|
|
25
25
|
constructor(r) {
|
|
26
|
-
super(
|
|
26
|
+
super(e.INTERNAL_SERVER_ERROR, r);
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
class p extends s {
|
|
30
30
|
constructor(r) {
|
|
31
|
-
super(
|
|
31
|
+
super(e.FORBIDDEN, r);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
class T extends s {
|
|
35
|
+
constructor(r) {
|
|
36
|
+
super(e.METHOD_NOT_ALLOWED, r);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
class N extends s {
|
|
40
|
+
constructor(r) {
|
|
41
|
+
super(e.CONFLICT, r);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
class x extends s {
|
|
45
|
+
constructor(r) {
|
|
46
|
+
super(e.GONE, r);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
class A extends s {
|
|
50
|
+
constructor(r) {
|
|
51
|
+
super(e.UNPROCESSABLE_ENTITY, r);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
class O extends s {
|
|
55
|
+
constructor(r) {
|
|
56
|
+
super(e.TOO_MANY_REQUESTS, r);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
class R extends s {
|
|
60
|
+
constructor(r) {
|
|
61
|
+
super(e.NOT_IMPLEMENTED, r);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
class _ extends s {
|
|
65
|
+
constructor(r) {
|
|
66
|
+
super(e.BAD_GATEWAY, r);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
class S extends s {
|
|
70
|
+
constructor(r) {
|
|
71
|
+
super(e.SERVICE_UNAVAILABLE, r);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
class U extends s {
|
|
75
|
+
constructor(r) {
|
|
76
|
+
super(e.GATEWAY_TIMEOUT, r);
|
|
32
77
|
}
|
|
33
78
|
}
|
|
34
79
|
export {
|
|
35
|
-
|
|
36
|
-
|
|
80
|
+
_ as BadGatewayError,
|
|
81
|
+
u as BadRequestError,
|
|
82
|
+
N as ConflictError,
|
|
83
|
+
p as ForbiddenError,
|
|
84
|
+
U as GatewayTimeoutError,
|
|
85
|
+
x as GoneError,
|
|
86
|
+
e as HttpStatusCodes,
|
|
37
87
|
l as InternalServerError,
|
|
88
|
+
T as MethodNotAllowedError,
|
|
38
89
|
n as MoonflowerError,
|
|
39
90
|
d as NotFoundError,
|
|
40
|
-
|
|
41
|
-
|
|
91
|
+
R as NotImplementedError,
|
|
92
|
+
S as ServiceUnavailableError,
|
|
93
|
+
O as TooManyRequestsError,
|
|
94
|
+
a as UnauthorizedError,
|
|
95
|
+
A as UnprocessableEntityError,
|
|
42
96
|
E as ValidationError
|
|
43
97
|
};
|
|
44
98
|
//# sourceMappingURL=UserFacingErrors.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserFacingErrors.mjs","sources":["../../src/errors/UserFacingErrors.ts"],"sourcesContent":["import { BaseHttpError } from './BaseHttpError'\nimport { StatusCodes } from './StatusCodes'\n\nexport const MoonflowerError = BaseHttpError\nexport { StatusCodes as HttpStatusCodes }\n\nexport class ValidationError extends BaseHttpError {\n\tconstructor(message: string) {\n\t\tsuper(StatusCodes.BAD_REQUEST, message)\n\t}\n}\n\nexport class BadRequestError extends BaseHttpError {\n\tconstructor(message: string) {\n\t\tsuper(StatusCodes.BAD_REQUEST, message)\n\t}\n}\n\nexport class UnauthorizedError extends BaseHttpError {\n\tconstructor(message: string) {\n\t\tsuper(StatusCodes.UNAUTHORIZED, message)\n\t}\n}\n\nexport class NotFoundError extends BaseHttpError {\n\tconstructor(message: string) {\n\t\tsuper(StatusCodes.NOT_FOUND, message)\n\t}\n}\n\nexport class InternalServerError extends BaseHttpError {\n\tconstructor(message: string) {\n\t\tsuper(StatusCodes.INTERNAL_SERVER_ERROR, message)\n\t}\n}\n\nexport class ServiceUnavailableError extends BaseHttpError {\n\tconstructor(message: string) {\n\t\tsuper(StatusCodes.SERVICE_UNAVAILABLE, message)\n\t}\n}\n\n// To be used later\n// export const errorNameToStatusCode = (name: string): number => {\n// \tswitch (name) {\n// \t\tcase 'ValidationError':\n// \t\t\treturn StatusCodes.BAD_REQUEST\n// \t\tcase 'BadRequestError':\n// \t\t\treturn StatusCodes.BAD_REQUEST\n// \t\tcase 'UnauthorizedError':\n// \t\t\treturn StatusCodes.UNAUTHORIZED\n// \t}\n// \treturn StatusCodes.INTERNAL_SERVER_ERROR\n// }\n\n// import { getReasonPhrase } from 'http-status-codes'\n// export const errorNameToReason = (name: string): string => {\n// \treturn getReasonPhrase(errorNameToStatusCode(name) || 500)\n// }\n"],"names":["MoonflowerError","BaseHttpError","ValidationError","message","StatusCodes","BadRequestError","UnauthorizedError","NotFoundError","InternalServerError","ServiceUnavailableError"],"mappings":";;AAGO,MAAMA,IAAkBC;AAGxB,MAAMC,UAAwBD,EAAc;AAAA,EAClD,YAAYE,GAAiB;AACtB,UAAAC,EAAY,aAAaD,CAAO;AAAA,EAAA;AAExC;AAEO,MAAME,UAAwBJ,EAAc;AAAA,EAClD,YAAYE,GAAiB;AACtB,UAAAC,EAAY,aAAaD,CAAO;AAAA,EAAA;AAExC;AAEO,MAAMG,UAA0BL,EAAc;AAAA,EACpD,YAAYE,GAAiB;AACtB,UAAAC,EAAY,cAAcD,CAAO;AAAA,EAAA;AAEzC;AAEO,MAAMI,UAAsBN,EAAc;AAAA,EAChD,YAAYE,GAAiB;AACtB,UAAAC,EAAY,WAAWD,CAAO;AAAA,EAAA;AAEtC;AAEO,MAAMK,UAA4BP,EAAc;AAAA,EACtD,YAAYE,GAAiB;AACtB,UAAAC,EAAY,uBAAuBD,CAAO;AAAA,EAAA;AAElD;AAEO,MAAMM,
|
|
1
|
+
{"version":3,"file":"UserFacingErrors.mjs","sources":["../../src/errors/UserFacingErrors.ts"],"sourcesContent":["import { BaseHttpError } from './BaseHttpError'\nimport { StatusCodes } from './StatusCodes'\n\nexport const MoonflowerError = BaseHttpError\nexport { StatusCodes as HttpStatusCodes }\n\nexport class ValidationError extends BaseHttpError {\n\tconstructor(message: string) {\n\t\tsuper(StatusCodes.BAD_REQUEST, message)\n\t}\n}\n\nexport class BadRequestError extends BaseHttpError {\n\tconstructor(message: string) {\n\t\tsuper(StatusCodes.BAD_REQUEST, message)\n\t}\n}\n\nexport class UnauthorizedError extends BaseHttpError {\n\tconstructor(message: string) {\n\t\tsuper(StatusCodes.UNAUTHORIZED, message)\n\t}\n}\n\nexport class NotFoundError extends BaseHttpError {\n\tconstructor(message: string) {\n\t\tsuper(StatusCodes.NOT_FOUND, message)\n\t}\n}\n\nexport class InternalServerError extends BaseHttpError {\n\tconstructor(message: string) {\n\t\tsuper(StatusCodes.INTERNAL_SERVER_ERROR, message)\n\t}\n}\n\nexport class ForbiddenError extends BaseHttpError {\n\tconstructor(message: string) {\n\t\tsuper(StatusCodes.FORBIDDEN, message)\n\t}\n}\n\nexport class MethodNotAllowedError extends BaseHttpError {\n\tconstructor(message: string) {\n\t\tsuper(StatusCodes.METHOD_NOT_ALLOWED, message)\n\t}\n}\n\nexport class ConflictError extends BaseHttpError {\n\tconstructor(message: string) {\n\t\tsuper(StatusCodes.CONFLICT, message)\n\t}\n}\n\nexport class GoneError extends BaseHttpError {\n\tconstructor(message: string) {\n\t\tsuper(StatusCodes.GONE, message)\n\t}\n}\n\nexport class UnprocessableEntityError extends BaseHttpError {\n\tconstructor(message: string) {\n\t\tsuper(StatusCodes.UNPROCESSABLE_ENTITY, message)\n\t}\n}\n\nexport class TooManyRequestsError extends BaseHttpError {\n\tconstructor(message: string) {\n\t\tsuper(StatusCodes.TOO_MANY_REQUESTS, message)\n\t}\n}\n\nexport class NotImplementedError extends BaseHttpError {\n\tconstructor(message: string) {\n\t\tsuper(StatusCodes.NOT_IMPLEMENTED, message)\n\t}\n}\n\nexport class BadGatewayError extends BaseHttpError {\n\tconstructor(message: string) {\n\t\tsuper(StatusCodes.BAD_GATEWAY, message)\n\t}\n}\n\nexport class ServiceUnavailableError extends BaseHttpError {\n\tconstructor(message: string) {\n\t\tsuper(StatusCodes.SERVICE_UNAVAILABLE, message)\n\t}\n}\n\nexport class GatewayTimeoutError extends BaseHttpError {\n\tconstructor(message: string) {\n\t\tsuper(StatusCodes.GATEWAY_TIMEOUT, message)\n\t}\n}\n\n// To be used later\n// export const errorNameToStatusCode = (name: string): number => {\n// \tswitch (name) {\n// \t\tcase 'ValidationError':\n// \t\t\treturn StatusCodes.BAD_REQUEST\n// \t\tcase 'BadRequestError':\n// \t\t\treturn StatusCodes.BAD_REQUEST\n// \t\tcase 'UnauthorizedError':\n// \t\t\treturn StatusCodes.UNAUTHORIZED\n// \t}\n// \treturn StatusCodes.INTERNAL_SERVER_ERROR\n// }\n\n// import { getReasonPhrase } from 'http-status-codes'\n// export const errorNameToReason = (name: string): string => {\n// \treturn getReasonPhrase(errorNameToStatusCode(name) || 500)\n// }\n"],"names":["MoonflowerError","BaseHttpError","ValidationError","message","StatusCodes","BadRequestError","UnauthorizedError","NotFoundError","InternalServerError","ForbiddenError","MethodNotAllowedError","ConflictError","GoneError","UnprocessableEntityError","TooManyRequestsError","NotImplementedError","BadGatewayError","ServiceUnavailableError","GatewayTimeoutError"],"mappings":";;AAGO,MAAMA,IAAkBC;AAGxB,MAAMC,UAAwBD,EAAc;AAAA,EAClD,YAAYE,GAAiB;AACtB,UAAAC,EAAY,aAAaD,CAAO;AAAA,EAAA;AAExC;AAEO,MAAME,UAAwBJ,EAAc;AAAA,EAClD,YAAYE,GAAiB;AACtB,UAAAC,EAAY,aAAaD,CAAO;AAAA,EAAA;AAExC;AAEO,MAAMG,UAA0BL,EAAc;AAAA,EACpD,YAAYE,GAAiB;AACtB,UAAAC,EAAY,cAAcD,CAAO;AAAA,EAAA;AAEzC;AAEO,MAAMI,UAAsBN,EAAc;AAAA,EAChD,YAAYE,GAAiB;AACtB,UAAAC,EAAY,WAAWD,CAAO;AAAA,EAAA;AAEtC;AAEO,MAAMK,UAA4BP,EAAc;AAAA,EACtD,YAAYE,GAAiB;AACtB,UAAAC,EAAY,uBAAuBD,CAAO;AAAA,EAAA;AAElD;AAEO,MAAMM,UAAuBR,EAAc;AAAA,EACjD,YAAYE,GAAiB;AACtB,UAAAC,EAAY,WAAWD,CAAO;AAAA,EAAA;AAEtC;AAEO,MAAMO,UAA8BT,EAAc;AAAA,EACxD,YAAYE,GAAiB;AACtB,UAAAC,EAAY,oBAAoBD,CAAO;AAAA,EAAA;AAE/C;AAEO,MAAMQ,UAAsBV,EAAc;AAAA,EAChD,YAAYE,GAAiB;AACtB,UAAAC,EAAY,UAAUD,CAAO;AAAA,EAAA;AAErC;AAEO,MAAMS,UAAkBX,EAAc;AAAA,EAC5C,YAAYE,GAAiB;AACtB,UAAAC,EAAY,MAAMD,CAAO;AAAA,EAAA;AAEjC;AAEO,MAAMU,UAAiCZ,EAAc;AAAA,EAC3D,YAAYE,GAAiB;AACtB,UAAAC,EAAY,sBAAsBD,CAAO;AAAA,EAAA;AAEjD;AAEO,MAAMW,UAA6Bb,EAAc;AAAA,EACvD,YAAYE,GAAiB;AACtB,UAAAC,EAAY,mBAAmBD,CAAO;AAAA,EAAA;AAE9C;AAEO,MAAMY,UAA4Bd,EAAc;AAAA,EACtD,YAAYE,GAAiB;AACtB,UAAAC,EAAY,iBAAiBD,CAAO;AAAA,EAAA;AAE5C;AAEO,MAAMa,UAAwBf,EAAc;AAAA,EAClD,YAAYE,GAAiB;AACtB,UAAAC,EAAY,aAAaD,CAAO;AAAA,EAAA;AAExC;AAEO,MAAMc,UAAgChB,EAAc;AAAA,EAC1D,YAAYE,GAAiB;AACtB,UAAAC,EAAY,qBAAqBD,CAAO;AAAA,EAAA;AAEhD;AAEO,MAAMe,UAA4BjB,EAAc;AAAA,EACtD,YAAYE,GAAiB;AACtB,UAAAC,EAAY,iBAAiBD,CAAO;AAAA,EAAA;AAE5C;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("../errors/UserFacingErrors.cjs"),u=require("../utils/object.cjs"),c=require("../utils/validationMessages.cjs"),m=require("../validators/validateParam.cjs"),p=(o,e)=>{const n=o.params,t=u.keysOf(e).map(a=>({name:a,validator:e[a]})).map(a=>{const i=n[a.name];return i===void 0?{param:a,validated:!0,parsedValue:void 0,exception:null}:{...m.validateParam(a.validator,i),param:a}}),r=t.filter(a=>!a.validated);if(r.length>0)throw new d.ValidationError(`Failed route param validation: ${r.map(a=>c.getValidationResultMessage(a.param)).join(", ")}`);const l=t.filter(a=>a.validated),s={};return l.forEach(a=>{s[a.param.name]=a.parsedValue}),s};exports.usePathParams=p;
|
|
2
2
|
//# sourceMappingURL=usePathParams.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePathParams.cjs","sources":["../../src/hooks/usePathParams.ts"],"sourcesContent":["import { ParameterizedContext } from 'koa'\n\nimport { ValidationError } from '../errors/UserFacingErrors'\nimport { keysOf } from '../utils/object'\nimport { CleanUpPathParam } from '../utils/TypeUtils'\nimport { getValidationResultMessage } from '../utils/validationMessages'\nimport { Validator } from '../validators/types'\n\ntype CheckIfOptional<T, B> = B extends string ? (B extends `${string}?` ? T | undefined : T) : never\n\ntype ValidatedData<\n\tParamsT extends string[],\n\tTestTemplate extends {\n\t\t[K in keyof ParamsT]: {\n\t\t\toriginal: ParamsT[K]\n\t\t\tcleaned: CleanUpPathParam<ParamsT[K]>\n\t\t\tcallback: ValidatorsT[CleanUpPathParam<ParamsT[K]>]\n\t\t}\n\t},\n\tValidatorsT extends Record<TestTemplate[number]['cleaned'], Omit<Validator<any>, 'optional'>>,\n> = {\n\t[K in keyof TestTemplate as K extends `${number}` ? TestTemplate[K]['cleaned'] : never]: CheckIfOptional<\n\t\tReturnType<TestTemplate[K]['callback']['parse']>,\n\t\tTestTemplate[K]['original']\n\t>\n}\n\nexport const usePathParams = <\n\tParamsT extends string[],\n\tTestTemplate extends {\n\t\t[K in keyof ParamsT]: {\n\t\t\toriginal: ParamsT[K]\n\t\t\tcleaned: CleanUpPathParam<ParamsT[K]>\n\t\t\tcallback: ValidatorsT[CleanUpPathParam<ParamsT[K]>]\n\t\t}\n\t},\n\tValidatorsT extends Record<CleanUpPathParam<ParamsT[number]>, Omit<Validator<any>, 'optional'>>,\n>(\n\tctx: ParameterizedContext & { parsedPathParams: ParamsT },\n\tvalidators: ValidatorsT,\n): ValidatedData<ParamsT, TestTemplate, ValidatorsT> => {\n\tconst params = ctx.params\n\tconst expectedParams = keysOf(validators).map((name) => ({\n\t\tname,\n\t\tvalidator: validators[name],\n\t}))\n\n\tconst validationResults = expectedParams.map((param) => {\n\t\tconst paramValue = params[param.name] as string\n\n\t\t// Param is optional and is not provided - skip validation\n\t\tif (paramValue === undefined) {\n\t\t\treturn { param, validated: true }\n\t\t}\n\n\t\
|
|
1
|
+
{"version":3,"file":"usePathParams.cjs","sources":["../../src/hooks/usePathParams.ts"],"sourcesContent":["import { ParameterizedContext } from 'koa'\n\nimport { ValidationError } from '../errors/UserFacingErrors'\nimport { keysOf } from '../utils/object'\nimport { CleanUpPathParam } from '../utils/TypeUtils'\nimport { getValidationResultMessage } from '../utils/validationMessages'\nimport { Validator } from '../validators/types'\nimport { validateParam } from '../validators/validateParam'\n\ntype CheckIfOptional<T, B> = B extends string ? (B extends `${string}?` ? T | undefined : T) : never\n\ntype ValidatedData<\n\tParamsT extends string[],\n\tTestTemplate extends {\n\t\t[K in keyof ParamsT]: {\n\t\t\toriginal: ParamsT[K]\n\t\t\tcleaned: CleanUpPathParam<ParamsT[K]>\n\t\t\tcallback: ValidatorsT[CleanUpPathParam<ParamsT[K]>]\n\t\t}\n\t},\n\tValidatorsT extends Record<TestTemplate[number]['cleaned'], Omit<Validator<any>, 'optional'>>,\n> = {\n\t[K in keyof TestTemplate as K extends `${number}` ? TestTemplate[K]['cleaned'] : never]: CheckIfOptional<\n\t\tReturnType<TestTemplate[K]['callback']['parse']>,\n\t\tTestTemplate[K]['original']\n\t>\n}\n\nexport const usePathParams = <\n\tParamsT extends string[],\n\tTestTemplate extends {\n\t\t[K in keyof ParamsT]: {\n\t\t\toriginal: ParamsT[K]\n\t\t\tcleaned: CleanUpPathParam<ParamsT[K]>\n\t\t\tcallback: ValidatorsT[CleanUpPathParam<ParamsT[K]>]\n\t\t}\n\t},\n\tValidatorsT extends Record<CleanUpPathParam<ParamsT[number]>, Omit<Validator<any>, 'optional'>>,\n>(\n\tctx: ParameterizedContext & { parsedPathParams: ParamsT },\n\tvalidators: ValidatorsT,\n): ValidatedData<ParamsT, TestTemplate, ValidatorsT> => {\n\tconst params = ctx.params\n\tconst expectedParams = keysOf(validators).map((name) => ({\n\t\tname,\n\t\tvalidator: validators[name],\n\t}))\n\n\tconst validationResults = expectedParams.map((param) => {\n\t\tconst paramValue = params[param.name] as string\n\n\t\t// Param is optional and is not provided - skip validation\n\t\tif (paramValue === undefined) {\n\t\t\treturn { param, validated: true, parsedValue: undefined, exception: null }\n\t\t}\n\n\t\treturn {\n\t\t\t...validateParam(param.validator, paramValue),\n\t\t\tparam,\n\t\t}\n\t})\n\n\tconst failedValidations = validationResults.filter((result) => !result.validated)\n\n\tif (failedValidations.length > 0) {\n\t\tthrow new ValidationError(\n\t\t\t`Failed route param validation: ${failedValidations\n\t\t\t\t.map((result) => getValidationResultMessage(result.param))\n\t\t\t\t.join(', ')}`,\n\t\t)\n\t}\n\n\tconst successfulValidations = validationResults.filter((result) => result.validated)\n\n\tconst returnValue: Record<string, unknown> = {}\n\tsuccessfulValidations.forEach((result) => {\n\t\treturnValue[result.param.name] = result.parsedValue\n\t})\n\n\treturn returnValue as ValidatedData<ParamsT, TestTemplate, ValidatorsT>\n}\n"],"names":["usePathParams","ctx","validators","params","validationResults","keysOf","name","param","paramValue","validateParam","failedValidations","result","ValidationError","getValidationResultMessage","successfulValidations","returnValue"],"mappings":"6PA4BaA,EAAgB,CAW5BC,EACAC,IACuD,CACvD,MAAMC,EAASF,EAAI,OAMbG,EALiBC,EAAAA,OAAOH,CAAU,EAAE,IAAKI,IAAU,CACxD,KAAAA,EACA,UAAWJ,EAAWI,CAAI,CAAA,EACzB,EAEuC,IAAKC,GAAU,CACjD,MAAAC,EAAaL,EAAOI,EAAM,IAAI,EAGpC,OAAIC,IAAe,OACX,CAAE,MAAAD,EAAO,UAAW,GAAM,YAAa,OAAW,UAAW,IAAK,EAGnE,CACN,GAAGE,gBAAcF,EAAM,UAAWC,CAAU,EAC5C,MAAAD,CACD,CAAA,CACA,EAEKG,EAAoBN,EAAkB,OAAQO,GAAW,CAACA,EAAO,SAAS,EAE5E,GAAAD,EAAkB,OAAS,EAC9B,MAAM,IAAIE,EAAA,gBACT,kCAAkCF,EAChC,IAAKC,GAAWE,EAAAA,2BAA2BF,EAAO,KAAK,CAAC,EACxD,KAAK,IAAI,CAAC,EACb,EAGD,MAAMG,EAAwBV,EAAkB,OAAQO,GAAWA,EAAO,SAAS,EAE7EI,EAAuC,CAAC,EACxB,OAAAD,EAAA,QAASH,GAAW,CACzCI,EAAYJ,EAAO,MAAM,IAAI,EAAIA,EAAO,WAAA,CACxC,EAEMI,CACR"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePathParams.d.ts","sourceRoot":"","sources":["../../src/hooks/usePathParams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,KAAK,CAAA;AAI1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAErD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"usePathParams.d.ts","sourceRoot":"","sources":["../../src/hooks/usePathParams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,KAAK,CAAA;AAI1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAErD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAG/C,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,MAAM,GAAG,CAAC,CAAC,SAAS,GAAG,MAAM,GAAG,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,GAAG,KAAK,CAAA;AAEpG,KAAK,aAAa,CACjB,OAAO,SAAS,MAAM,EAAE,EACxB,YAAY,SAAS;KACnB,CAAC,IAAI,MAAM,OAAO,GAAG;QACrB,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;QACpB,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;QACrC,QAAQ,EAAE,WAAW,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KACnD;CACD,EACD,WAAW,SAAS,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,CAAC,IAC1F;KACF,CAAC,IAAI,MAAM,YAAY,IAAI,CAAC,SAAS,GAAG,MAAM,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,KAAK,GAAG,eAAe,CACvG,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,EAChD,YAAY,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAC3B;CACD,CAAA;AAED,eAAO,MAAM,aAAa,GACzB,OAAO,SAAS,MAAM,EAAE,EACxB,YAAY,SAAS,GACnB,CAAC,IAAI,MAAM,OAAO,GAAG;IACrB,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;IACpB,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;IACrC,QAAQ,EAAE,WAAW,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;CACnD,GACD,EACD,WAAW,SAAS,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,CAAC,OAE1F,oBAAoB,GAAG;IAAE,gBAAgB,EAAE,OAAO,CAAA;CAAE,cAC7C,WAAW,KACrB,aAAa,CAAC,OAAO,EAAE,YAAY,EAAE,WAAW,CAuClD,CAAA"}
|
|
@@ -1,35 +1,28 @@
|
|
|
1
|
-
import { ValidationError as
|
|
1
|
+
import { ValidationError as d } from "../errors/UserFacingErrors.mjs";
|
|
2
2
|
import { keysOf as m } from "../utils/object.mjs";
|
|
3
|
-
import { getValidationResultMessage as
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
import { getValidationResultMessage as p } from "../utils/validationMessages.mjs";
|
|
4
|
+
import { validateParam as u } from "../validators/validateParam.mjs";
|
|
5
|
+
const h = (s, t) => {
|
|
6
|
+
const l = s.params, e = m(t).map((a) => ({
|
|
6
7
|
name: a,
|
|
7
|
-
validator:
|
|
8
|
+
validator: t[a]
|
|
8
9
|
})).map((a) => {
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
};
|
|
19
|
-
} catch {
|
|
20
|
-
return { param: a, validated: !1 };
|
|
21
|
-
}
|
|
22
|
-
}), o = i.filter((a) => !a.validated);
|
|
23
|
-
if (o.length > 0)
|
|
24
|
-
throw new v(
|
|
25
|
-
`Failed route param validation: ${o.map((a) => f(a.param)).join(", ")}`
|
|
10
|
+
const i = l[a.name];
|
|
11
|
+
return i === void 0 ? { param: a, validated: !0, parsedValue: void 0, exception: null } : {
|
|
12
|
+
...u(a.validator, i),
|
|
13
|
+
param: a
|
|
14
|
+
};
|
|
15
|
+
}), r = e.filter((a) => !a.validated);
|
|
16
|
+
if (r.length > 0)
|
|
17
|
+
throw new d(
|
|
18
|
+
`Failed route param validation: ${r.map((a) => p(a.param)).join(", ")}`
|
|
26
19
|
);
|
|
27
|
-
const
|
|
28
|
-
return
|
|
29
|
-
|
|
30
|
-
}),
|
|
20
|
+
const n = e.filter((a) => a.validated), o = {};
|
|
21
|
+
return n.forEach((a) => {
|
|
22
|
+
o[a.param.name] = a.parsedValue;
|
|
23
|
+
}), o;
|
|
31
24
|
};
|
|
32
25
|
export {
|
|
33
|
-
|
|
26
|
+
h as usePathParams
|
|
34
27
|
};
|
|
35
28
|
//# sourceMappingURL=usePathParams.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePathParams.mjs","sources":["../../src/hooks/usePathParams.ts"],"sourcesContent":["import { ParameterizedContext } from 'koa'\n\nimport { ValidationError } from '../errors/UserFacingErrors'\nimport { keysOf } from '../utils/object'\nimport { CleanUpPathParam } from '../utils/TypeUtils'\nimport { getValidationResultMessage } from '../utils/validationMessages'\nimport { Validator } from '../validators/types'\n\ntype CheckIfOptional<T, B> = B extends string ? (B extends `${string}?` ? T | undefined : T) : never\n\ntype ValidatedData<\n\tParamsT extends string[],\n\tTestTemplate extends {\n\t\t[K in keyof ParamsT]: {\n\t\t\toriginal: ParamsT[K]\n\t\t\tcleaned: CleanUpPathParam<ParamsT[K]>\n\t\t\tcallback: ValidatorsT[CleanUpPathParam<ParamsT[K]>]\n\t\t}\n\t},\n\tValidatorsT extends Record<TestTemplate[number]['cleaned'], Omit<Validator<any>, 'optional'>>,\n> = {\n\t[K in keyof TestTemplate as K extends `${number}` ? TestTemplate[K]['cleaned'] : never]: CheckIfOptional<\n\t\tReturnType<TestTemplate[K]['callback']['parse']>,\n\t\tTestTemplate[K]['original']\n\t>\n}\n\nexport const usePathParams = <\n\tParamsT extends string[],\n\tTestTemplate extends {\n\t\t[K in keyof ParamsT]: {\n\t\t\toriginal: ParamsT[K]\n\t\t\tcleaned: CleanUpPathParam<ParamsT[K]>\n\t\t\tcallback: ValidatorsT[CleanUpPathParam<ParamsT[K]>]\n\t\t}\n\t},\n\tValidatorsT extends Record<CleanUpPathParam<ParamsT[number]>, Omit<Validator<any>, 'optional'>>,\n>(\n\tctx: ParameterizedContext & { parsedPathParams: ParamsT },\n\tvalidators: ValidatorsT,\n): ValidatedData<ParamsT, TestTemplate, ValidatorsT> => {\n\tconst params = ctx.params\n\tconst expectedParams = keysOf(validators).map((name) => ({\n\t\tname,\n\t\tvalidator: validators[name],\n\t}))\n\n\tconst validationResults = expectedParams.map((param) => {\n\t\tconst paramValue = params[param.name] as string\n\n\t\t// Param is optional and is not provided - skip validation\n\t\tif (paramValue === undefined) {\n\t\t\treturn { param, validated: true }\n\t\t}\n\n\t\
|
|
1
|
+
{"version":3,"file":"usePathParams.mjs","sources":["../../src/hooks/usePathParams.ts"],"sourcesContent":["import { ParameterizedContext } from 'koa'\n\nimport { ValidationError } from '../errors/UserFacingErrors'\nimport { keysOf } from '../utils/object'\nimport { CleanUpPathParam } from '../utils/TypeUtils'\nimport { getValidationResultMessage } from '../utils/validationMessages'\nimport { Validator } from '../validators/types'\nimport { validateParam } from '../validators/validateParam'\n\ntype CheckIfOptional<T, B> = B extends string ? (B extends `${string}?` ? T | undefined : T) : never\n\ntype ValidatedData<\n\tParamsT extends string[],\n\tTestTemplate extends {\n\t\t[K in keyof ParamsT]: {\n\t\t\toriginal: ParamsT[K]\n\t\t\tcleaned: CleanUpPathParam<ParamsT[K]>\n\t\t\tcallback: ValidatorsT[CleanUpPathParam<ParamsT[K]>]\n\t\t}\n\t},\n\tValidatorsT extends Record<TestTemplate[number]['cleaned'], Omit<Validator<any>, 'optional'>>,\n> = {\n\t[K in keyof TestTemplate as K extends `${number}` ? TestTemplate[K]['cleaned'] : never]: CheckIfOptional<\n\t\tReturnType<TestTemplate[K]['callback']['parse']>,\n\t\tTestTemplate[K]['original']\n\t>\n}\n\nexport const usePathParams = <\n\tParamsT extends string[],\n\tTestTemplate extends {\n\t\t[K in keyof ParamsT]: {\n\t\t\toriginal: ParamsT[K]\n\t\t\tcleaned: CleanUpPathParam<ParamsT[K]>\n\t\t\tcallback: ValidatorsT[CleanUpPathParam<ParamsT[K]>]\n\t\t}\n\t},\n\tValidatorsT extends Record<CleanUpPathParam<ParamsT[number]>, Omit<Validator<any>, 'optional'>>,\n>(\n\tctx: ParameterizedContext & { parsedPathParams: ParamsT },\n\tvalidators: ValidatorsT,\n): ValidatedData<ParamsT, TestTemplate, ValidatorsT> => {\n\tconst params = ctx.params\n\tconst expectedParams = keysOf(validators).map((name) => ({\n\t\tname,\n\t\tvalidator: validators[name],\n\t}))\n\n\tconst validationResults = expectedParams.map((param) => {\n\t\tconst paramValue = params[param.name] as string\n\n\t\t// Param is optional and is not provided - skip validation\n\t\tif (paramValue === undefined) {\n\t\t\treturn { param, validated: true, parsedValue: undefined, exception: null }\n\t\t}\n\n\t\treturn {\n\t\t\t...validateParam(param.validator, paramValue),\n\t\t\tparam,\n\t\t}\n\t})\n\n\tconst failedValidations = validationResults.filter((result) => !result.validated)\n\n\tif (failedValidations.length > 0) {\n\t\tthrow new ValidationError(\n\t\t\t`Failed route param validation: ${failedValidations\n\t\t\t\t.map((result) => getValidationResultMessage(result.param))\n\t\t\t\t.join(', ')}`,\n\t\t)\n\t}\n\n\tconst successfulValidations = validationResults.filter((result) => result.validated)\n\n\tconst returnValue: Record<string, unknown> = {}\n\tsuccessfulValidations.forEach((result) => {\n\t\treturnValue[result.param.name] = result.parsedValue\n\t})\n\n\treturn returnValue as ValidatedData<ParamsT, TestTemplate, ValidatorsT>\n}\n"],"names":["usePathParams","ctx","validators","params","validationResults","keysOf","name","param","paramValue","validateParam","failedValidations","result","ValidationError","getValidationResultMessage","successfulValidations","returnValue"],"mappings":";;;;AA4Ba,MAAAA,IAAgB,CAW5BC,GACAC,MACuD;AACvD,QAAMC,IAASF,EAAI,QAMbG,IALiBC,EAAOH,CAAU,EAAE,IAAI,CAACI,OAAU;AAAA,IACxD,MAAAA;AAAA,IACA,WAAWJ,EAAWI,CAAI;AAAA,EAAA,EACzB,EAEuC,IAAI,CAACC,MAAU;AACjD,UAAAC,IAAaL,EAAOI,EAAM,IAAI;AAGpC,WAAIC,MAAe,SACX,EAAE,OAAAD,GAAO,WAAW,IAAM,aAAa,QAAW,WAAW,KAAK,IAGnE;AAAA,MACN,GAAGE,EAAcF,EAAM,WAAWC,CAAU;AAAA,MAC5C,OAAAD;AAAA,IACD;AAAA,EAAA,CACA,GAEKG,IAAoBN,EAAkB,OAAO,CAACO,MAAW,CAACA,EAAO,SAAS;AAE5E,MAAAD,EAAkB,SAAS;AAC9B,UAAM,IAAIE;AAAA,MACT,kCAAkCF,EAChC,IAAI,CAACC,MAAWE,EAA2BF,EAAO,KAAK,CAAC,EACxD,KAAK,IAAI,CAAC;AAAA,IACb;AAGD,QAAMG,IAAwBV,EAAkB,OAAO,CAACO,MAAWA,EAAO,SAAS,GAE7EI,IAAuC,CAAC;AACxB,SAAAD,EAAA,QAAQ,CAACH,MAAW;AACzC,IAAAI,EAAYJ,EAAO,MAAM,IAAI,IAAIA,EAAO;AAAA,EAAA,CACxC,GAEMI;AACR;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("../errors/UserFacingErrors.cjs"),c=require("../utils/object.cjs"),m=require("../utils/validationMessages.cjs"),v=require("../validators/validateMissingParams.cjs"),f=require("../validators/validateParam.cjs"),g=(l,a)=>{const r=l.query,t=c.keysOf(a).map(e=>({name:e,validator:a[e]}));v.validateMissingParams(t,r,a,"query");const i=t.map(e=>{const o=r[e.name];return o===void 0?{param:e,validated:!0,parsedValue:void 0,exception:null}:{...f.validateParam(e.validator,o),param:e}}),s=i.filter(e=>!e.validated);if(s.length>0)throw new d.ValidationError(`Failed query param validation: ${s.map(e=>m.getValidationResultMessage(e.param)).join(", ")}`);const u=i.filter(e=>e.validated),n={};return u.forEach(e=>{n[e.param.name]=e.parsedValue}),n};exports.useQueryParams=g;
|
|
2
2
|
//# sourceMappingURL=useQueryParams.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useQueryParams.cjs","sources":["../../src/hooks/useQueryParams.ts"],"sourcesContent":["import { ParameterizedContext } from 'koa'\n\nimport { ValidationError } from '../errors/UserFacingErrors'\nimport { keysOf } from '../utils/object'\nimport {
|
|
1
|
+
{"version":3,"file":"useQueryParams.cjs","sources":["../../src/hooks/useQueryParams.ts"],"sourcesContent":["import { ParameterizedContext } from 'koa'\nimport z from 'zod'\n\nimport { ValidationError } from '../errors/UserFacingErrors'\nimport { keysOf } from '../utils/object'\nimport { getValidationResultMessage } from '../utils/validationMessages'\nimport { Validator } from '../validators/types'\nimport { validateMissingParams } from '../validators/validateMissingParams'\nimport { validateParam } from '../validators/validateParam'\n\ntype CheckIfOptional<T, B extends boolean | undefined> = B extends false ? T : T | undefined\n\ntype ValidatedData<T extends Record<string, Validator<any> | z.ZodType<any>>> = {\n\t[K in keyof T]: CheckIfOptional<\n\t\tReturnType<T[K] extends Validator<any> ? T[K]['parse'] : T[K]['parse']>,\n\t\tT[K] extends Validator<any> ? T[K]['optional'] : false\n\t>\n}\n\nexport const useQueryParams = <ValidatorsT extends Record<string, Validator<any> | z.ZodType<any>>>(\n\tctx: ParameterizedContext,\n\tvalidators: ValidatorsT,\n): ValidatedData<ValidatorsT> => {\n\tconst query = ctx.query\n\tconst params = keysOf(validators).map((name) => ({\n\t\tname,\n\t\tvalidator: validators[name],\n\t}))\n\n\tvalidateMissingParams(params, query, validators, 'query')\n\n\tconst validationResults = params.map((param) => {\n\t\tconst paramValue = query[param.name]\n\n\t\t// Param is optional and is not provided - skip validation\n\t\tif (paramValue === undefined) {\n\t\t\treturn { param, validated: true, parsedValue: undefined, exception: null }\n\t\t}\n\n\t\treturn {\n\t\t\t...validateParam(param.validator, paramValue),\n\t\t\tparam,\n\t\t}\n\t})\n\n\tconst failedValidations = validationResults.filter((result) => !result.validated)\n\n\tif (failedValidations.length > 0) {\n\t\tthrow new ValidationError(\n\t\t\t`Failed query param validation: ${failedValidations\n\t\t\t\t.map((result) => getValidationResultMessage(result.param))\n\t\t\t\t.join(', ')}`,\n\t\t)\n\t}\n\n\tconst successfulValidations = validationResults.filter((result) => result.validated)\n\n\tconst returnValue: Record<string, unknown> = {}\n\tsuccessfulValidations.forEach((result) => {\n\t\treturnValue[result.param.name] = result.parsedValue\n\t})\n\n\treturn returnValue as ValidatedData<ValidatorsT>\n}\n"],"names":["useQueryParams","ctx","validators","query","params","keysOf","name","validateMissingParams","validationResults","param","paramValue","validateParam","failedValidations","result","ValidationError","getValidationResultMessage","successfulValidations","returnValue"],"mappings":"kTAmBaA,EAAiB,CAC7BC,EACAC,IACgC,CAChC,MAAMC,EAAQF,EAAI,MACZG,EAASC,EAAAA,OAAOH,CAAU,EAAE,IAAKI,IAAU,CAChD,KAAAA,EACA,UAAWJ,EAAWI,CAAI,CAAA,EACzB,EAEoBC,EAAAA,sBAAAH,EAAQD,EAAOD,EAAY,OAAO,EAExD,MAAMM,EAAoBJ,EAAO,IAAKK,GAAU,CACzC,MAAAC,EAAaP,EAAMM,EAAM,IAAI,EAGnC,OAAIC,IAAe,OACX,CAAE,MAAAD,EAAO,UAAW,GAAM,YAAa,OAAW,UAAW,IAAK,EAGnE,CACN,GAAGE,gBAAcF,EAAM,UAAWC,CAAU,EAC5C,MAAAD,CACD,CAAA,CACA,EAEKG,EAAoBJ,EAAkB,OAAQK,GAAW,CAACA,EAAO,SAAS,EAE5E,GAAAD,EAAkB,OAAS,EAC9B,MAAM,IAAIE,EAAA,gBACT,kCAAkCF,EAChC,IAAKC,GAAWE,EAAAA,2BAA2BF,EAAO,KAAK,CAAC,EACxD,KAAK,IAAI,CAAC,EACb,EAGD,MAAMG,EAAwBR,EAAkB,OAAQK,GAAWA,EAAO,SAAS,EAE7EI,EAAuC,CAAC,EACxB,OAAAD,EAAA,QAASH,GAAW,CACzCI,EAAYJ,EAAO,MAAM,IAAI,EAAIA,EAAO,WAAA,CACxC,EAEMI,CACR"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { ParameterizedContext } from 'koa';
|
|
2
|
+
import { default as z } from 'zod';
|
|
2
3
|
import { Validator } from '../validators/types';
|
|
3
4
|
|
|
4
5
|
type CheckIfOptional<T, B extends boolean | undefined> = B extends false ? T : T | undefined;
|
|
5
|
-
type ValidatedData<T extends Record<string, Validator<any>>> = {
|
|
6
|
-
[K in keyof T]: CheckIfOptional<ReturnType<T[K]['parse']>, T[K]['optional']>;
|
|
6
|
+
type ValidatedData<T extends Record<string, Validator<any> | z.ZodType<any>>> = {
|
|
7
|
+
[K in keyof T]: CheckIfOptional<ReturnType<T[K] extends Validator<any> ? T[K]['parse'] : T[K]['parse']>, T[K] extends Validator<any> ? T[K]['optional'] : false>;
|
|
7
8
|
};
|
|
8
|
-
export declare const useQueryParams: <ValidatorsT extends Record<string, Validator<any>>>(ctx: ParameterizedContext, validators: ValidatorsT) => ValidatedData<ValidatorsT>;
|
|
9
|
+
export declare const useQueryParams: <ValidatorsT extends Record<string, Validator<any> | z.ZodType<any>>>(ctx: ParameterizedContext, validators: ValidatorsT) => ValidatedData<ValidatorsT>;
|
|
9
10
|
export {};
|
|
10
11
|
//# sourceMappingURL=useQueryParams.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useQueryParams.d.ts","sourceRoot":"","sources":["../../src/hooks/useQueryParams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"useQueryParams.d.ts","sourceRoot":"","sources":["../../src/hooks/useQueryParams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,KAAK,CAAA;AAC1C,OAAO,CAAC,MAAM,KAAK,CAAA;AAKnB,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAI/C,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,GAAG,SAAS,IAAI,CAAC,SAAS,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS,CAAA;AAE5F,KAAK,aAAa,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI;KAC9E,CAAC,IAAI,MAAM,CAAC,GAAG,eAAe,CAC9B,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EACvE,CAAC,CAAC,CAAC,CAAC,SAAS,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,KAAK,CACtD;CACD,CAAA;AAED,eAAO,MAAM,cAAc,GAAI,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAC5F,oBAAoB,cACb,WAAW,KACrB,aAAa,CAAC,WAAW,CAyC3B,CAAA"}
|
|
@@ -1,40 +1,31 @@
|
|
|
1
|
-
import { ValidationError as
|
|
2
|
-
import { keysOf as
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { ValidationError as m } from "../errors/UserFacingErrors.mjs";
|
|
2
|
+
import { keysOf as u } from "../utils/object.mjs";
|
|
3
|
+
import { getValidationResultMessage as p } from "../utils/validationMessages.mjs";
|
|
4
|
+
import { validateMissingParams as f } from "../validators/validateMissingParams.mjs";
|
|
5
|
+
import { validateParam as c } from "../validators/validateParam.mjs";
|
|
6
|
+
const h = (s, e) => {
|
|
7
|
+
const r = s.query, t = u(e).map((a) => ({
|
|
6
8
|
name: a,
|
|
7
|
-
validator:
|
|
8
|
-
}))
|
|
9
|
+
validator: e[a]
|
|
10
|
+
}));
|
|
11
|
+
f(t, r, e, "query");
|
|
12
|
+
const i = t.map((a) => {
|
|
13
|
+
const l = r[a.name];
|
|
14
|
+
return l === void 0 ? { param: a, validated: !0, parsedValue: void 0, exception: null } : {
|
|
15
|
+
...c(a.validator, l),
|
|
16
|
+
param: a
|
|
17
|
+
};
|
|
18
|
+
}), o = i.filter((a) => !a.validated);
|
|
9
19
|
if (o.length > 0)
|
|
10
|
-
throw new
|
|
11
|
-
`
|
|
20
|
+
throw new m(
|
|
21
|
+
`Failed query param validation: ${o.map((a) => p(a.param)).join(", ")}`
|
|
12
22
|
);
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
try {
|
|
18
|
-
const t = a.validator, p = !t.prevalidate || t.prevalidate(e), c = t.parse(e), f = !t.validate || t.validate(c);
|
|
19
|
-
return {
|
|
20
|
-
param: a,
|
|
21
|
-
validated: p && f,
|
|
22
|
-
parsedValue: c
|
|
23
|
-
};
|
|
24
|
-
} catch {
|
|
25
|
-
return { param: a, validated: !1 };
|
|
26
|
-
}
|
|
27
|
-
}), l = n.filter((a) => !a.validated);
|
|
28
|
-
if (l.length > 0)
|
|
29
|
-
throw new u(
|
|
30
|
-
`Failed query param validation: ${l.map((a) => y(a.param)).join(", ")}`
|
|
31
|
-
);
|
|
32
|
-
const v = n.filter((a) => a.validated), d = {};
|
|
33
|
-
return v.forEach((a) => {
|
|
34
|
-
d[a.param.name] = a.parsedValue;
|
|
35
|
-
}), d;
|
|
23
|
+
const d = i.filter((a) => a.validated), n = {};
|
|
24
|
+
return d.forEach((a) => {
|
|
25
|
+
n[a.param.name] = a.parsedValue;
|
|
26
|
+
}), n;
|
|
36
27
|
};
|
|
37
28
|
export {
|
|
38
|
-
|
|
29
|
+
h as useQueryParams
|
|
39
30
|
};
|
|
40
31
|
//# sourceMappingURL=useQueryParams.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useQueryParams.mjs","sources":["../../src/hooks/useQueryParams.ts"],"sourcesContent":["import { ParameterizedContext } from 'koa'\n\nimport { ValidationError } from '../errors/UserFacingErrors'\nimport { keysOf } from '../utils/object'\nimport {
|
|
1
|
+
{"version":3,"file":"useQueryParams.mjs","sources":["../../src/hooks/useQueryParams.ts"],"sourcesContent":["import { ParameterizedContext } from 'koa'\nimport z from 'zod'\n\nimport { ValidationError } from '../errors/UserFacingErrors'\nimport { keysOf } from '../utils/object'\nimport { getValidationResultMessage } from '../utils/validationMessages'\nimport { Validator } from '../validators/types'\nimport { validateMissingParams } from '../validators/validateMissingParams'\nimport { validateParam } from '../validators/validateParam'\n\ntype CheckIfOptional<T, B extends boolean | undefined> = B extends false ? T : T | undefined\n\ntype ValidatedData<T extends Record<string, Validator<any> | z.ZodType<any>>> = {\n\t[K in keyof T]: CheckIfOptional<\n\t\tReturnType<T[K] extends Validator<any> ? T[K]['parse'] : T[K]['parse']>,\n\t\tT[K] extends Validator<any> ? T[K]['optional'] : false\n\t>\n}\n\nexport const useQueryParams = <ValidatorsT extends Record<string, Validator<any> | z.ZodType<any>>>(\n\tctx: ParameterizedContext,\n\tvalidators: ValidatorsT,\n): ValidatedData<ValidatorsT> => {\n\tconst query = ctx.query\n\tconst params = keysOf(validators).map((name) => ({\n\t\tname,\n\t\tvalidator: validators[name],\n\t}))\n\n\tvalidateMissingParams(params, query, validators, 'query')\n\n\tconst validationResults = params.map((param) => {\n\t\tconst paramValue = query[param.name]\n\n\t\t// Param is optional and is not provided - skip validation\n\t\tif (paramValue === undefined) {\n\t\t\treturn { param, validated: true, parsedValue: undefined, exception: null }\n\t\t}\n\n\t\treturn {\n\t\t\t...validateParam(param.validator, paramValue),\n\t\t\tparam,\n\t\t}\n\t})\n\n\tconst failedValidations = validationResults.filter((result) => !result.validated)\n\n\tif (failedValidations.length > 0) {\n\t\tthrow new ValidationError(\n\t\t\t`Failed query param validation: ${failedValidations\n\t\t\t\t.map((result) => getValidationResultMessage(result.param))\n\t\t\t\t.join(', ')}`,\n\t\t)\n\t}\n\n\tconst successfulValidations = validationResults.filter((result) => result.validated)\n\n\tconst returnValue: Record<string, unknown> = {}\n\tsuccessfulValidations.forEach((result) => {\n\t\treturnValue[result.param.name] = result.parsedValue\n\t})\n\n\treturn returnValue as ValidatedData<ValidatorsT>\n}\n"],"names":["useQueryParams","ctx","validators","query","params","keysOf","name","validateMissingParams","validationResults","param","paramValue","validateParam","failedValidations","result","ValidationError","getValidationResultMessage","successfulValidations","returnValue"],"mappings":";;;;;AAmBa,MAAAA,IAAiB,CAC7BC,GACAC,MACgC;AAChC,QAAMC,IAAQF,EAAI,OACZG,IAASC,EAAOH,CAAU,EAAE,IAAI,CAACI,OAAU;AAAA,IAChD,MAAAA;AAAA,IACA,WAAWJ,EAAWI,CAAI;AAAA,EAAA,EACzB;AAEoB,EAAAC,EAAAH,GAAQD,GAAOD,GAAY,OAAO;AAExD,QAAMM,IAAoBJ,EAAO,IAAI,CAACK,MAAU;AACzC,UAAAC,IAAaP,EAAMM,EAAM,IAAI;AAGnC,WAAIC,MAAe,SACX,EAAE,OAAAD,GAAO,WAAW,IAAM,aAAa,QAAW,WAAW,KAAK,IAGnE;AAAA,MACN,GAAGE,EAAcF,EAAM,WAAWC,CAAU;AAAA,MAC5C,OAAAD;AAAA,IACD;AAAA,EAAA,CACA,GAEKG,IAAoBJ,EAAkB,OAAO,CAACK,MAAW,CAACA,EAAO,SAAS;AAE5E,MAAAD,EAAkB,SAAS;AAC9B,UAAM,IAAIE;AAAA,MACT,kCAAkCF,EAChC,IAAI,CAACC,MAAWE,EAA2BF,EAAO,KAAK,CAAC,EACxD,KAAK,IAAI,CAAC;AAAA,IACb;AAGD,QAAMG,IAAwBR,EAAkB,OAAO,CAACK,MAAWA,EAAO,SAAS,GAE7EI,IAAuC,CAAC;AACxB,SAAAD,EAAA,QAAQ,CAACH,MAAW;AACzC,IAAAI,EAAYJ,EAAO,MAAM,IAAI,IAAIA,EAAO;AAAA,EAAA,CACxC,GAEMI;AACR;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("../errors/UserFacingErrors.cjs"),c=require("../utils/object.cjs"),v=require("../utils/validationMessages.cjs"),m=require("../validators/validateMissingParams.cjs"),p=require("../validators/validateParam.cjs"),f=(d,a)=>{const t=d.request.body||{},i=c.keysOf(a).map(e=>({name:e,validator:a[e]}));m.validateMissingParams(i,t,a,"body");const r=i.map(e=>{const n=t[e.name];return n===void 0?{param:e,validated:!0,parsedValue:void 0,exception:null}:{...p.validateParam(e.validator,n),param:e}}),s=r.filter(e=>!e.validated);if(s.length>0)throw new u.ValidationError(`Failed body param validation: ${s.map(e=>v.getValidationResultMessage(e.param,e.exception)).join(", ")}`);const l=r.filter(e=>e.validated),o={};return l.forEach(e=>{o[e.param.name]=e.parsedValue}),o};exports.useRequestBody=f;
|
|
2
2
|
//# sourceMappingURL=useRequestBody.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRequestBody.cjs","sources":["../../src/hooks/useRequestBody.ts"],"sourcesContent":["import { ParameterizedContext } from 'koa'\n\nimport { ValidationError } from '../errors/UserFacingErrors'\nimport { keysOf } from '../utils/object'\nimport {
|
|
1
|
+
{"version":3,"file":"useRequestBody.cjs","sources":["../../src/hooks/useRequestBody.ts"],"sourcesContent":["import { ParameterizedContext } from 'koa'\nimport z from 'zod'\n\nimport { ValidationError } from '../errors/UserFacingErrors'\nimport { keysOf } from '../utils/object'\nimport { getValidationResultMessage } from '../utils/validationMessages'\nimport { Validator } from '../validators/types'\nimport { validateMissingParams } from '../validators/validateMissingParams'\nimport { validateParam } from '../validators/validateParam'\n\ntype CheckIfOptional<T, B extends boolean | undefined> = B extends false ? T : T | undefined\n\ntype ValidatedData<T extends Record<string, Validator<any> | z.ZodType<any>>> = {\n\t[K in keyof T]: CheckIfOptional<\n\t\tReturnType<T[K] extends Validator<any> ? T[K]['parse'] : T[K]['parse']>,\n\t\tT[K] extends Validator<any> ? T[K]['optional'] : false\n\t>\n}\n\n/**\n * Hook to access request body data in JSON or form formats.\n *\n * Supported content types:\n * - `application/json`\n * - `application/x-www-form-urlencoded`\n *\n * @param ctx Koa context\n * @param validators Validator definitions\n * @returns Validated parameters\n */\nexport const useRequestBody = <ValidatorsT extends Record<string, Validator<any> | z.ZodType<any>>>(\n\tctx: ParameterizedContext,\n\tvalidators: ValidatorsT,\n): ValidatedData<ValidatorsT> => {\n\tconst providedParams = (ctx.request.body || {}) as Record<string, string | number | boolean | object>\n\tconst params = keysOf(validators).map((name) => ({\n\t\tname,\n\t\tvalidator: validators[name],\n\t}))\n\n\tvalidateMissingParams(params, providedParams, validators, 'body')\n\n\tconst validationResults = params.map((param) => {\n\t\tconst paramValue = providedParams[param.name]\n\n\t\t// Param is optional and is not provided - skip validation\n\t\tif (paramValue === undefined) {\n\t\t\treturn { param, validated: true, parsedValue: undefined, exception: null }\n\t\t}\n\n\t\treturn {\n\t\t\t...validateParam(param.validator, paramValue),\n\t\t\tparam,\n\t\t}\n\t})\n\n\tconst failedValidations = validationResults.filter((result) => !result.validated)\n\n\tif (failedValidations.length > 0) {\n\t\tthrow new ValidationError(\n\t\t\t`Failed body param validation: ${failedValidations\n\t\t\t\t.map((result) => getValidationResultMessage(result.param, result.exception))\n\t\t\t\t.join(', ')}`,\n\t\t)\n\t}\n\n\tconst successfulValidations = validationResults.filter((result) => result.validated)\n\n\tconst returnValue: Record<string, unknown> = {}\n\tsuccessfulValidations.forEach((result) => {\n\t\treturnValue[result.param.name] = result.parsedValue\n\t})\n\n\treturn returnValue as ValidatedData<ValidatorsT>\n}\n"],"names":["useRequestBody","ctx","validators","providedParams","params","keysOf","name","validateMissingParams","validationResults","param","paramValue","validateParam","failedValidations","result","ValidationError","getValidationResultMessage","successfulValidations","returnValue"],"mappings":"kTA8BaA,EAAiB,CAC7BC,EACAC,IACgC,CAChC,MAAMC,EAAkBF,EAAI,QAAQ,MAAQ,CAAC,EACvCG,EAASC,EAAAA,OAAOH,CAAU,EAAE,IAAKI,IAAU,CAChD,KAAAA,EACA,UAAWJ,EAAWI,CAAI,CAAA,EACzB,EAEoBC,EAAAA,sBAAAH,EAAQD,EAAgBD,EAAY,MAAM,EAEhE,MAAMM,EAAoBJ,EAAO,IAAKK,GAAU,CACzC,MAAAC,EAAaP,EAAeM,EAAM,IAAI,EAG5C,OAAIC,IAAe,OACX,CAAE,MAAAD,EAAO,UAAW,GAAM,YAAa,OAAW,UAAW,IAAK,EAGnE,CACN,GAAGE,gBAAcF,EAAM,UAAWC,CAAU,EAC5C,MAAAD,CACD,CAAA,CACA,EAEKG,EAAoBJ,EAAkB,OAAQK,GAAW,CAACA,EAAO,SAAS,EAE5E,GAAAD,EAAkB,OAAS,EAC9B,MAAM,IAAIE,EAAA,gBACT,iCAAiCF,EAC/B,IAAKC,GAAWE,EAAAA,2BAA2BF,EAAO,MAAOA,EAAO,SAAS,CAAC,EAC1E,KAAK,IAAI,CAAC,EACb,EAGD,MAAMG,EAAwBR,EAAkB,OAAQK,GAAWA,EAAO,SAAS,EAE7EI,EAAuC,CAAC,EACxB,OAAAD,EAAA,QAASH,GAAW,CACzCI,EAAYJ,EAAO,MAAM,IAAI,EAAIA,EAAO,WAAA,CACxC,EAEMI,CACR"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { ParameterizedContext } from 'koa';
|
|
2
|
+
import { default as z } from 'zod';
|
|
2
3
|
import { Validator } from '../validators/types';
|
|
3
4
|
|
|
4
5
|
type CheckIfOptional<T, B extends boolean | undefined> = B extends false ? T : T | undefined;
|
|
5
|
-
type ValidatedData<T extends Record<string, Validator<any>>> = {
|
|
6
|
-
[K in keyof T]: CheckIfOptional<ReturnType<T[K]['parse']>, T[K]['optional']>;
|
|
6
|
+
type ValidatedData<T extends Record<string, Validator<any> | z.ZodType<any>>> = {
|
|
7
|
+
[K in keyof T]: CheckIfOptional<ReturnType<T[K] extends Validator<any> ? T[K]['parse'] : T[K]['parse']>, T[K] extends Validator<any> ? T[K]['optional'] : false>;
|
|
7
8
|
};
|
|
8
|
-
export declare const useRequestBody: <ValidatorsT extends Record<string, Validator<any>>>(ctx: ParameterizedContext, validators: ValidatorsT) => ValidatedData<ValidatorsT>;
|
|
9
|
+
export declare const useRequestBody: <ValidatorsT extends Record<string, Validator<any> | z.ZodType<any>>>(ctx: ParameterizedContext, validators: ValidatorsT) => ValidatedData<ValidatorsT>;
|
|
9
10
|
export {};
|
|
10
11
|
//# sourceMappingURL=useRequestBody.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRequestBody.d.ts","sourceRoot":"","sources":["../../src/hooks/useRequestBody.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"useRequestBody.d.ts","sourceRoot":"","sources":["../../src/hooks/useRequestBody.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,KAAK,CAAA;AAC1C,OAAO,CAAC,MAAM,KAAK,CAAA;AAKnB,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAI/C,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,GAAG,SAAS,IAAI,CAAC,SAAS,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS,CAAA;AAE5F,KAAK,aAAa,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI;KAC9E,CAAC,IAAI,MAAM,CAAC,GAAG,eAAe,CAC9B,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EACvE,CAAC,CAAC,CAAC,CAAC,SAAS,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,KAAK,CACtD;CACD,CAAA;AAaD,eAAO,MAAM,cAAc,GAAI,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAC5F,oBAAoB,cACb,WAAW,KACrB,aAAa,CAAC,WAAW,CAyC3B,CAAA"}
|