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.
Files changed (398) hide show
  1. package/dist/errors/UserFacingErrors.cjs +1 -1
  2. package/dist/errors/UserFacingErrors.cjs.map +1 -1
  3. package/dist/errors/UserFacingErrors.d.ts +27 -0
  4. package/dist/errors/UserFacingErrors.d.ts.map +1 -1
  5. package/dist/errors/UserFacingErrors.mjs +67 -13
  6. package/dist/errors/UserFacingErrors.mjs.map +1 -1
  7. package/dist/hooks/usePathParams.cjs +1 -1
  8. package/dist/hooks/usePathParams.cjs.map +1 -1
  9. package/dist/hooks/usePathParams.d.ts.map +1 -1
  10. package/dist/hooks/usePathParams.mjs +20 -27
  11. package/dist/hooks/usePathParams.mjs.map +1 -1
  12. package/dist/hooks/useQueryParams.cjs +1 -1
  13. package/dist/hooks/useQueryParams.cjs.map +1 -1
  14. package/dist/hooks/useQueryParams.d.ts +4 -3
  15. package/dist/hooks/useQueryParams.d.ts.map +1 -1
  16. package/dist/hooks/useQueryParams.mjs +24 -33
  17. package/dist/hooks/useQueryParams.mjs.map +1 -1
  18. package/dist/hooks/useRequestBody.cjs +1 -1
  19. package/dist/hooks/useRequestBody.cjs.map +1 -1
  20. package/dist/hooks/useRequestBody.d.ts +4 -3
  21. package/dist/hooks/useRequestBody.d.ts.map +1 -1
  22. package/dist/hooks/useRequestBody.mjs +23 -34
  23. package/dist/hooks/useRequestBody.mjs.map +1 -1
  24. package/dist/index.cjs +1 -1
  25. package/dist/index.mjs +64 -55
  26. package/dist/node_modules/zod/index.cjs +2 -0
  27. package/dist/node_modules/zod/index.cjs.map +1 -0
  28. package/dist/node_modules/zod/index.mjs +6 -0
  29. package/dist/node_modules/zod/index.mjs.map +1 -0
  30. package/dist/node_modules/zod/v4/classic/checks.cjs +2 -0
  31. package/dist/node_modules/zod/v4/classic/checks.cjs.map +1 -0
  32. package/dist/node_modules/zod/v4/classic/checks.mjs +34 -0
  33. package/dist/node_modules/zod/v4/classic/checks.mjs.map +1 -0
  34. package/dist/node_modules/zod/v4/classic/coerce.cjs +2 -0
  35. package/dist/node_modules/zod/v4/classic/coerce.cjs.map +1 -0
  36. package/dist/node_modules/zod/v4/classic/coerce.mjs +26 -0
  37. package/dist/node_modules/zod/v4/classic/coerce.mjs.map +1 -0
  38. package/dist/node_modules/zod/v4/classic/compat.cjs +2 -0
  39. package/dist/node_modules/zod/v4/classic/compat.cjs.map +1 -0
  40. package/dist/node_modules/zod/v4/classic/compat.mjs +35 -0
  41. package/dist/node_modules/zod/v4/classic/compat.mjs.map +1 -0
  42. package/dist/node_modules/zod/v4/classic/errors.cjs +2 -0
  43. package/dist/node_modules/zod/v4/classic/errors.cjs.map +1 -0
  44. package/dist/node_modules/zod/v4/classic/errors.mjs +41 -0
  45. package/dist/node_modules/zod/v4/classic/errors.mjs.map +1 -0
  46. package/dist/node_modules/zod/v4/classic/external.cjs +2 -0
  47. package/dist/node_modules/zod/v4/classic/external.cjs.map +1 -0
  48. package/dist/node_modules/zod/v4/classic/external.mjs +260 -0
  49. package/dist/node_modules/zod/v4/classic/external.mjs.map +1 -0
  50. package/dist/node_modules/zod/v4/classic/from-json-schema.cjs +2 -0
  51. package/dist/node_modules/zod/v4/classic/from-json-schema.cjs.map +1 -0
  52. package/dist/node_modules/zod/v4/classic/from-json-schema.mjs +287 -0
  53. package/dist/node_modules/zod/v4/classic/from-json-schema.mjs.map +1 -0
  54. package/dist/node_modules/zod/v4/classic/iso.cjs +2 -0
  55. package/dist/node_modules/zod/v4/classic/iso.cjs.map +1 -0
  56. package/dist/node_modules/zod/v4/classic/iso.mjs +40 -0
  57. package/dist/node_modules/zod/v4/classic/iso.mjs.map +1 -0
  58. package/dist/node_modules/zod/v4/classic/parse.cjs +2 -0
  59. package/dist/node_modules/zod/v4/classic/parse.cjs.map +1 -0
  60. package/dist/node_modules/zod/v4/classic/parse.mjs +19 -0
  61. package/dist/node_modules/zod/v4/classic/parse.mjs.map +1 -0
  62. package/dist/node_modules/zod/v4/classic/schemas.cjs +2 -0
  63. package/dist/node_modules/zod/v4/classic/schemas.cjs.map +1 -0
  64. package/dist/node_modules/zod/v4/classic/schemas.mjs +912 -0
  65. package/dist/node_modules/zod/v4/classic/schemas.mjs.map +1 -0
  66. package/dist/node_modules/zod/v4/core/api.cjs +2 -0
  67. package/dist/node_modules/zod/v4/core/api.cjs.map +1 -0
  68. package/dist/node_modules/zod/v4/core/api.mjs +1110 -0
  69. package/dist/node_modules/zod/v4/core/api.mjs.map +1 -0
  70. package/dist/node_modules/zod/v4/core/checks.cjs +2 -0
  71. package/dist/node_modules/zod/v4/core/checks.cjs.map +1 -0
  72. package/dist/node_modules/zod/v4/core/checks.mjs +421 -0
  73. package/dist/node_modules/zod/v4/core/checks.mjs.map +1 -0
  74. package/dist/node_modules/zod/v4/core/core.cjs +2 -0
  75. package/dist/node_modules/zod/v4/core/core.cjs.map +1 -0
  76. package/dist/node_modules/zod/v4/core/core.mjs +62 -0
  77. package/dist/node_modules/zod/v4/core/core.mjs.map +1 -0
  78. package/dist/node_modules/zod/v4/core/doc.cjs +4 -0
  79. package/dist/node_modules/zod/v4/core/doc.cjs.map +1 -0
  80. package/dist/node_modules/zod/v4/core/doc.mjs +27 -0
  81. package/dist/node_modules/zod/v4/core/doc.mjs.map +1 -0
  82. package/dist/node_modules/zod/v4/core/errors.cjs +3 -0
  83. package/dist/node_modules/zod/v4/core/errors.cjs.map +1 -0
  84. package/dist/node_modules/zod/v4/core/errors.mjs +89 -0
  85. package/dist/node_modules/zod/v4/core/errors.mjs.map +1 -0
  86. package/dist/node_modules/zod/v4/core/index.cjs +2 -0
  87. package/dist/node_modules/zod/v4/core/index.cjs.map +1 -0
  88. package/dist/node_modules/zod/v4/core/index.mjs +293 -0
  89. package/dist/node_modules/zod/v4/core/index.mjs.map +1 -0
  90. package/dist/node_modules/zod/v4/core/json-schema-generator.cjs +2 -0
  91. package/dist/node_modules/zod/v4/core/json-schema-generator.cjs.map +1 -0
  92. package/dist/node_modules/zod/v4/core/json-schema-generator.mjs +66 -0
  93. package/dist/node_modules/zod/v4/core/json-schema-generator.mjs.map +1 -0
  94. package/dist/node_modules/zod/v4/core/json-schema-processors.cjs +2 -0
  95. package/dist/node_modules/zod/v4/core/json-schema-processors.cjs.map +1 -0
  96. package/dist/node_modules/zod/v4/core/json-schema-processors.mjs +346 -0
  97. package/dist/node_modules/zod/v4/core/json-schema-processors.mjs.map +1 -0
  98. package/dist/node_modules/zod/v4/core/json-schema.cjs +2 -0
  99. package/dist/node_modules/zod/v4/core/json-schema.cjs.map +1 -0
  100. package/dist/node_modules/zod/v4/core/json-schema.mjs +2 -0
  101. package/dist/node_modules/zod/v4/core/json-schema.mjs.map +1 -0
  102. package/dist/node_modules/zod/v4/core/parse.cjs +2 -0
  103. package/dist/node_modules/zod/v4/core/parse.cjs.map +1 -0
  104. package/dist/node_modules/zod/v4/core/parse.mjs +75 -0
  105. package/dist/node_modules/zod/v4/core/parse.mjs.map +1 -0
  106. package/dist/node_modules/zod/v4/core/regexes.cjs +2 -0
  107. package/dist/node_modules/zod/v4/core/regexes.cjs.map +1 -0
  108. package/dist/node_modules/zod/v4/core/regexes.mjs +94 -0
  109. package/dist/node_modules/zod/v4/core/regexes.mjs.map +1 -0
  110. package/dist/node_modules/zod/v4/core/registries.cjs +2 -0
  111. package/dist/node_modules/zod/v4/core/registries.cjs.map +1 -0
  112. package/dist/node_modules/zod/v4/core/registries.mjs +44 -0
  113. package/dist/node_modules/zod/v4/core/registries.mjs.map +1 -0
  114. package/dist/node_modules/zod/v4/core/schemas.cjs +36 -0
  115. package/dist/node_modules/zod/v4/core/schemas.cjs.map +1 -0
  116. package/dist/node_modules/zod/v4/core/schemas.mjs +1319 -0
  117. package/dist/node_modules/zod/v4/core/schemas.mjs.map +1 -0
  118. package/dist/node_modules/zod/v4/core/to-json-schema.cjs +4 -0
  119. package/dist/node_modules/zod/v4/core/to-json-schema.cjs.map +1 -0
  120. package/dist/node_modules/zod/v4/core/to-json-schema.mjs +244 -0
  121. package/dist/node_modules/zod/v4/core/to-json-schema.mjs.map +1 -0
  122. package/dist/node_modules/zod/v4/core/util.cjs +2 -0
  123. package/dist/node_modules/zod/v4/core/util.cjs.map +1 -0
  124. package/dist/node_modules/zod/v4/core/util.mjs +523 -0
  125. package/dist/node_modules/zod/v4/core/util.mjs.map +1 -0
  126. package/dist/node_modules/zod/v4/core/versions.cjs +2 -0
  127. package/dist/node_modules/zod/v4/core/versions.cjs.map +1 -0
  128. package/dist/node_modules/zod/v4/core/versions.mjs +9 -0
  129. package/dist/node_modules/zod/v4/core/versions.mjs.map +1 -0
  130. package/dist/node_modules/zod/v4/locales/ar.cjs +2 -0
  131. package/dist/node_modules/zod/v4/locales/ar.cjs.map +1 -0
  132. package/dist/node_modules/zod/v4/locales/ar.mjs +87 -0
  133. package/dist/node_modules/zod/v4/locales/ar.mjs.map +1 -0
  134. package/dist/node_modules/zod/v4/locales/az.cjs +2 -0
  135. package/dist/node_modules/zod/v4/locales/az.cjs.map +1 -0
  136. package/dist/node_modules/zod/v4/locales/az.mjs +87 -0
  137. package/dist/node_modules/zod/v4/locales/az.mjs.map +1 -0
  138. package/dist/node_modules/zod/v4/locales/be.cjs +2 -0
  139. package/dist/node_modules/zod/v4/locales/be.cjs.map +1 -0
  140. package/dist/node_modules/zod/v4/locales/be.mjs +129 -0
  141. package/dist/node_modules/zod/v4/locales/be.mjs.map +1 -0
  142. package/dist/node_modules/zod/v4/locales/bg.cjs +2 -0
  143. package/dist/node_modules/zod/v4/locales/bg.cjs.map +1 -0
  144. package/dist/node_modules/zod/v4/locales/bg.mjs +98 -0
  145. package/dist/node_modules/zod/v4/locales/bg.mjs.map +1 -0
  146. package/dist/node_modules/zod/v4/locales/ca.cjs +2 -0
  147. package/dist/node_modules/zod/v4/locales/ca.cjs.map +1 -0
  148. package/dist/node_modules/zod/v4/locales/ca.mjs +88 -0
  149. package/dist/node_modules/zod/v4/locales/ca.mjs.map +1 -0
  150. package/dist/node_modules/zod/v4/locales/cs.cjs +2 -0
  151. package/dist/node_modules/zod/v4/locales/cs.cjs.map +1 -0
  152. package/dist/node_modules/zod/v4/locales/cs.mjs +91 -0
  153. package/dist/node_modules/zod/v4/locales/cs.mjs.map +1 -0
  154. package/dist/node_modules/zod/v4/locales/da.cjs +2 -0
  155. package/dist/node_modules/zod/v4/locales/da.cjs.map +1 -0
  156. package/dist/node_modules/zod/v4/locales/da.mjs +94 -0
  157. package/dist/node_modules/zod/v4/locales/da.mjs.map +1 -0
  158. package/dist/node_modules/zod/v4/locales/de.cjs +2 -0
  159. package/dist/node_modules/zod/v4/locales/de.cjs.map +1 -0
  160. package/dist/node_modules/zod/v4/locales/de.mjs +89 -0
  161. package/dist/node_modules/zod/v4/locales/de.mjs.map +1 -0
  162. package/dist/node_modules/zod/v4/locales/en.cjs +2 -0
  163. package/dist/node_modules/zod/v4/locales/en.cjs.map +1 -0
  164. package/dist/node_modules/zod/v4/locales/en.mjs +91 -0
  165. package/dist/node_modules/zod/v4/locales/en.mjs.map +1 -0
  166. package/dist/node_modules/zod/v4/locales/eo.cjs +2 -0
  167. package/dist/node_modules/zod/v4/locales/eo.cjs.map +1 -0
  168. package/dist/node_modules/zod/v4/locales/eo.mjs +90 -0
  169. package/dist/node_modules/zod/v4/locales/eo.mjs.map +1 -0
  170. package/dist/node_modules/zod/v4/locales/es.cjs +2 -0
  171. package/dist/node_modules/zod/v4/locales/es.cjs.map +1 -0
  172. package/dist/node_modules/zod/v4/locales/es.mjs +111 -0
  173. package/dist/node_modules/zod/v4/locales/es.mjs.map +1 -0
  174. package/dist/node_modules/zod/v4/locales/fa.cjs +2 -0
  175. package/dist/node_modules/zod/v4/locales/fa.cjs.map +1 -0
  176. package/dist/node_modules/zod/v4/locales/fa.mjs +89 -0
  177. package/dist/node_modules/zod/v4/locales/fa.mjs.map +1 -0
  178. package/dist/node_modules/zod/v4/locales/fi.cjs +2 -0
  179. package/dist/node_modules/zod/v4/locales/fi.cjs.map +1 -0
  180. package/dist/node_modules/zod/v4/locales/fi.mjs +91 -0
  181. package/dist/node_modules/zod/v4/locales/fi.mjs.map +1 -0
  182. package/dist/node_modules/zod/v4/locales/fr-CA.cjs +2 -0
  183. package/dist/node_modules/zod/v4/locales/fr-CA.cjs.map +1 -0
  184. package/dist/node_modules/zod/v4/locales/fr-CA.mjs +87 -0
  185. package/dist/node_modules/zod/v4/locales/fr-CA.mjs.map +1 -0
  186. package/dist/node_modules/zod/v4/locales/fr.cjs +2 -0
  187. package/dist/node_modules/zod/v4/locales/fr.cjs.map +1 -0
  188. package/dist/node_modules/zod/v4/locales/fr.mjs +89 -0
  189. package/dist/node_modules/zod/v4/locales/fr.mjs.map +1 -0
  190. package/dist/node_modules/zod/v4/locales/he.cjs +2 -0
  191. package/dist/node_modules/zod/v4/locales/he.cjs.map +1 -0
  192. package/dist/node_modules/zod/v4/locales/he.mjs +152 -0
  193. package/dist/node_modules/zod/v4/locales/he.mjs.map +1 -0
  194. package/dist/node_modules/zod/v4/locales/hu.cjs +2 -0
  195. package/dist/node_modules/zod/v4/locales/hu.cjs.map +1 -0
  196. package/dist/node_modules/zod/v4/locales/hu.mjs +89 -0
  197. package/dist/node_modules/zod/v4/locales/hu.mjs.map +1 -0
  198. package/dist/node_modules/zod/v4/locales/hy.cjs +2 -0
  199. package/dist/node_modules/zod/v4/locales/hy.cjs.map +1 -0
  200. package/dist/node_modules/zod/v4/locales/hy.mjs +130 -0
  201. package/dist/node_modules/zod/v4/locales/hy.mjs.map +1 -0
  202. package/dist/node_modules/zod/v4/locales/id.cjs +2 -0
  203. package/dist/node_modules/zod/v4/locales/id.cjs.map +1 -0
  204. package/dist/node_modules/zod/v4/locales/id.mjs +87 -0
  205. package/dist/node_modules/zod/v4/locales/id.mjs.map +1 -0
  206. package/dist/node_modules/zod/v4/locales/index.cjs +2 -0
  207. package/dist/node_modules/zod/v4/locales/index.cjs.map +1 -0
  208. package/dist/node_modules/zod/v4/locales/index.mjs +101 -0
  209. package/dist/node_modules/zod/v4/locales/index.mjs.map +1 -0
  210. package/dist/node_modules/zod/v4/locales/is.cjs +2 -0
  211. package/dist/node_modules/zod/v4/locales/is.cjs.map +1 -0
  212. package/dist/node_modules/zod/v4/locales/is.mjs +89 -0
  213. package/dist/node_modules/zod/v4/locales/is.mjs.map +1 -0
  214. package/dist/node_modules/zod/v4/locales/it.cjs +2 -0
  215. package/dist/node_modules/zod/v4/locales/it.cjs.map +1 -0
  216. package/dist/node_modules/zod/v4/locales/it.mjs +89 -0
  217. package/dist/node_modules/zod/v4/locales/it.mjs.map +1 -0
  218. package/dist/node_modules/zod/v4/locales/ja.cjs +2 -0
  219. package/dist/node_modules/zod/v4/locales/ja.cjs.map +1 -0
  220. package/dist/node_modules/zod/v4/locales/ja.mjs +89 -0
  221. package/dist/node_modules/zod/v4/locales/ja.mjs.map +1 -0
  222. package/dist/node_modules/zod/v4/locales/ka.cjs +2 -0
  223. package/dist/node_modules/zod/v4/locales/ka.cjs.map +1 -0
  224. package/dist/node_modules/zod/v4/locales/ka.mjs +92 -0
  225. package/dist/node_modules/zod/v4/locales/ka.mjs.map +1 -0
  226. package/dist/node_modules/zod/v4/locales/kh.cjs +2 -0
  227. package/dist/node_modules/zod/v4/locales/kh.cjs.map +1 -0
  228. package/dist/node_modules/zod/v4/locales/kh.mjs +8 -0
  229. package/dist/node_modules/zod/v4/locales/kh.mjs.map +1 -0
  230. package/dist/node_modules/zod/v4/locales/km.cjs +2 -0
  231. package/dist/node_modules/zod/v4/locales/km.cjs.map +1 -0
  232. package/dist/node_modules/zod/v4/locales/km.mjs +90 -0
  233. package/dist/node_modules/zod/v4/locales/km.mjs.map +1 -0
  234. package/dist/node_modules/zod/v4/locales/ko.cjs +2 -0
  235. package/dist/node_modules/zod/v4/locales/ko.cjs.map +1 -0
  236. package/dist/node_modules/zod/v4/locales/ko.mjs +87 -0
  237. package/dist/node_modules/zod/v4/locales/ko.mjs.map +1 -0
  238. package/dist/node_modules/zod/v4/locales/lt.cjs +2 -0
  239. package/dist/node_modules/zod/v4/locales/lt.cjs.map +1 -0
  240. package/dist/node_modules/zod/v4/locales/lt.mjs +178 -0
  241. package/dist/node_modules/zod/v4/locales/lt.mjs.map +1 -0
  242. package/dist/node_modules/zod/v4/locales/mk.cjs +2 -0
  243. package/dist/node_modules/zod/v4/locales/mk.cjs.map +1 -0
  244. package/dist/node_modules/zod/v4/locales/mk.mjs +89 -0
  245. package/dist/node_modules/zod/v4/locales/mk.mjs.map +1 -0
  246. package/dist/node_modules/zod/v4/locales/ms.cjs +2 -0
  247. package/dist/node_modules/zod/v4/locales/ms.cjs.map +1 -0
  248. package/dist/node_modules/zod/v4/locales/ms.mjs +88 -0
  249. package/dist/node_modules/zod/v4/locales/ms.mjs.map +1 -0
  250. package/dist/node_modules/zod/v4/locales/nl.cjs +2 -0
  251. package/dist/node_modules/zod/v4/locales/nl.cjs.map +1 -0
  252. package/dist/node_modules/zod/v4/locales/nl.mjs +88 -0
  253. package/dist/node_modules/zod/v4/locales/nl.mjs.map +1 -0
  254. package/dist/node_modules/zod/v4/locales/no.cjs +2 -0
  255. package/dist/node_modules/zod/v4/locales/no.cjs.map +1 -0
  256. package/dist/node_modules/zod/v4/locales/no.mjs +89 -0
  257. package/dist/node_modules/zod/v4/locales/no.mjs.map +1 -0
  258. package/dist/node_modules/zod/v4/locales/ota.cjs +2 -0
  259. package/dist/node_modules/zod/v4/locales/ota.cjs.map +1 -0
  260. package/dist/node_modules/zod/v4/locales/ota.mjs +90 -0
  261. package/dist/node_modules/zod/v4/locales/ota.mjs.map +1 -0
  262. package/dist/node_modules/zod/v4/locales/pl.cjs +2 -0
  263. package/dist/node_modules/zod/v4/locales/pl.cjs.map +1 -0
  264. package/dist/node_modules/zod/v4/locales/pl.mjs +89 -0
  265. package/dist/node_modules/zod/v4/locales/pl.mjs.map +1 -0
  266. package/dist/node_modules/zod/v4/locales/ps.cjs +2 -0
  267. package/dist/node_modules/zod/v4/locales/ps.cjs.map +1 -0
  268. package/dist/node_modules/zod/v4/locales/ps.mjs +89 -0
  269. package/dist/node_modules/zod/v4/locales/ps.mjs.map +1 -0
  270. package/dist/node_modules/zod/v4/locales/pt.cjs +2 -0
  271. package/dist/node_modules/zod/v4/locales/pt.cjs.map +1 -0
  272. package/dist/node_modules/zod/v4/locales/pt.mjs +89 -0
  273. package/dist/node_modules/zod/v4/locales/pt.mjs.map +1 -0
  274. package/dist/node_modules/zod/v4/locales/ru.cjs +2 -0
  275. package/dist/node_modules/zod/v4/locales/ru.cjs.map +1 -0
  276. package/dist/node_modules/zod/v4/locales/ru.mjs +129 -0
  277. package/dist/node_modules/zod/v4/locales/ru.mjs.map +1 -0
  278. package/dist/node_modules/zod/v4/locales/sl.cjs +2 -0
  279. package/dist/node_modules/zod/v4/locales/sl.cjs.map +1 -0
  280. package/dist/node_modules/zod/v4/locales/sl.mjs +89 -0
  281. package/dist/node_modules/zod/v4/locales/sl.mjs.map +1 -0
  282. package/dist/node_modules/zod/v4/locales/sv.cjs +2 -0
  283. package/dist/node_modules/zod/v4/locales/sv.cjs.map +1 -0
  284. package/dist/node_modules/zod/v4/locales/sv.mjs +89 -0
  285. package/dist/node_modules/zod/v4/locales/sv.mjs.map +1 -0
  286. package/dist/node_modules/zod/v4/locales/ta.cjs +2 -0
  287. package/dist/node_modules/zod/v4/locales/ta.cjs.map +1 -0
  288. package/dist/node_modules/zod/v4/locales/ta.mjs +90 -0
  289. package/dist/node_modules/zod/v4/locales/ta.mjs.map +1 -0
  290. package/dist/node_modules/zod/v4/locales/th.cjs +2 -0
  291. package/dist/node_modules/zod/v4/locales/th.cjs.map +1 -0
  292. package/dist/node_modules/zod/v4/locales/th.mjs +90 -0
  293. package/dist/node_modules/zod/v4/locales/th.mjs.map +1 -0
  294. package/dist/node_modules/zod/v4/locales/tr.cjs +2 -0
  295. package/dist/node_modules/zod/v4/locales/tr.cjs.map +1 -0
  296. package/dist/node_modules/zod/v4/locales/tr.mjs +87 -0
  297. package/dist/node_modules/zod/v4/locales/tr.mjs.map +1 -0
  298. package/dist/node_modules/zod/v4/locales/ua.cjs +2 -0
  299. package/dist/node_modules/zod/v4/locales/ua.cjs.map +1 -0
  300. package/dist/node_modules/zod/v4/locales/ua.mjs +8 -0
  301. package/dist/node_modules/zod/v4/locales/ua.mjs.map +1 -0
  302. package/dist/node_modules/zod/v4/locales/uk.cjs +2 -0
  303. package/dist/node_modules/zod/v4/locales/uk.cjs.map +1 -0
  304. package/dist/node_modules/zod/v4/locales/uk.mjs +89 -0
  305. package/dist/node_modules/zod/v4/locales/uk.mjs.map +1 -0
  306. package/dist/node_modules/zod/v4/locales/ur.cjs +2 -0
  307. package/dist/node_modules/zod/v4/locales/ur.cjs.map +1 -0
  308. package/dist/node_modules/zod/v4/locales/ur.mjs +90 -0
  309. package/dist/node_modules/zod/v4/locales/ur.mjs.map +1 -0
  310. package/dist/node_modules/zod/v4/locales/uz.cjs +2 -0
  311. package/dist/node_modules/zod/v4/locales/uz.cjs.map +1 -0
  312. package/dist/node_modules/zod/v4/locales/uz.mjs +90 -0
  313. package/dist/node_modules/zod/v4/locales/uz.mjs.map +1 -0
  314. package/dist/node_modules/zod/v4/locales/vi.cjs +2 -0
  315. package/dist/node_modules/zod/v4/locales/vi.cjs.map +1 -0
  316. package/dist/node_modules/zod/v4/locales/vi.mjs +89 -0
  317. package/dist/node_modules/zod/v4/locales/vi.mjs.map +1 -0
  318. package/dist/node_modules/zod/v4/locales/yo.cjs +2 -0
  319. package/dist/node_modules/zod/v4/locales/yo.cjs.map +1 -0
  320. package/dist/node_modules/zod/v4/locales/yo.mjs +89 -0
  321. package/dist/node_modules/zod/v4/locales/yo.mjs.map +1 -0
  322. package/dist/node_modules/zod/v4/locales/zh-CN.cjs +2 -0
  323. package/dist/node_modules/zod/v4/locales/zh-CN.cjs.map +1 -0
  324. package/dist/node_modules/zod/v4/locales/zh-CN.mjs +90 -0
  325. package/dist/node_modules/zod/v4/locales/zh-CN.mjs.map +1 -0
  326. package/dist/node_modules/zod/v4/locales/zh-TW.cjs +2 -0
  327. package/dist/node_modules/zod/v4/locales/zh-TW.cjs.map +1 -0
  328. package/dist/node_modules/zod/v4/locales/zh-TW.mjs +87 -0
  329. package/dist/node_modules/zod/v4/locales/zh-TW.mjs.map +1 -0
  330. package/dist/openapi/analyzerModule/analyzerModule.cjs +1 -1
  331. package/dist/openapi/analyzerModule/analyzerModule.cjs.map +1 -1
  332. package/dist/openapi/analyzerModule/analyzerModule.d.ts.map +1 -1
  333. package/dist/openapi/analyzerModule/analyzerModule.mjs +42 -42
  334. package/dist/openapi/analyzerModule/analyzerModule.mjs.map +1 -1
  335. package/dist/openapi/analyzerModule/nodeParsers.cjs +1 -1
  336. package/dist/openapi/analyzerModule/nodeParsers.cjs.map +1 -1
  337. package/dist/openapi/analyzerModule/nodeParsers.d.ts +1 -0
  338. package/dist/openapi/analyzerModule/nodeParsers.d.ts.map +1 -1
  339. package/dist/openapi/analyzerModule/nodeParsers.mjs +261 -206
  340. package/dist/openapi/analyzerModule/nodeParsers.mjs.map +1 -1
  341. package/dist/openapi/analyzerModule/parseEndpoint.cjs +1 -1
  342. package/dist/openapi/analyzerModule/parseEndpoint.cjs.map +1 -1
  343. package/dist/openapi/analyzerModule/parseEndpoint.d.ts.map +1 -1
  344. package/dist/openapi/analyzerModule/parseEndpoint.mjs +62 -62
  345. package/dist/openapi/analyzerModule/parseEndpoint.mjs.map +1 -1
  346. package/dist/openapi/analyzerModule/test/TestCase.d.ts +9 -0
  347. package/dist/openapi/analyzerModule/test/TestCase.d.ts.map +1 -0
  348. package/dist/openapi/analyzerModule/test/openApiAnalyzer.zod.spec.d.ts +2 -0
  349. package/dist/openapi/analyzerModule/test/openApiAnalyzer.zod.spec.d.ts.map +1 -0
  350. package/dist/openapi/analyzerModule/test/openApiAnalyzer.zod.spec.data.d.ts +2 -0
  351. package/dist/openapi/analyzerModule/test/openApiAnalyzer.zod.spec.data.d.ts.map +1 -0
  352. package/dist/utils/getValueAsNullableString.cjs +2 -0
  353. package/dist/utils/getValueAsNullableString.cjs.map +1 -0
  354. package/dist/utils/getValueAsNullableString.d.ts +2 -0
  355. package/dist/utils/getValueAsNullableString.d.ts.map +1 -0
  356. package/dist/utils/getValueAsNullableString.mjs +7 -0
  357. package/dist/utils/getValueAsNullableString.mjs.map +1 -0
  358. package/dist/utils/validationMessages.cjs +1 -1
  359. package/dist/utils/validationMessages.cjs.map +1 -1
  360. package/dist/utils/validationMessages.d.ts +1 -1
  361. package/dist/utils/validationMessages.d.ts.map +1 -1
  362. package/dist/utils/validationMessages.mjs +8 -8
  363. package/dist/utils/validationMessages.mjs.map +1 -1
  364. package/dist/validators/types.d.ts +4 -0
  365. package/dist/validators/types.d.ts.map +1 -1
  366. package/dist/validators/validateMissingParams.cjs +2 -0
  367. package/dist/validators/validateMissingParams.cjs.map +1 -0
  368. package/dist/validators/validateMissingParams.d.ts +7 -0
  369. package/dist/validators/validateMissingParams.d.ts.map +1 -0
  370. package/dist/validators/validateMissingParams.mjs +17 -0
  371. package/dist/validators/validateMissingParams.mjs.map +1 -0
  372. package/dist/validators/validateParam.cjs +2 -0
  373. package/dist/validators/validateParam.cjs.map +1 -0
  374. package/dist/validators/validateParam.d.ts +8 -0
  375. package/dist/validators/validateParam.d.ts.map +1 -0
  376. package/dist/validators/validateParam.mjs +41 -0
  377. package/dist/validators/validateParam.mjs.map +1 -0
  378. package/package.json +9 -2
  379. package/src/errors/UserFacingErrors.ts +54 -0
  380. package/src/hooks/usePathParams.spec.ts +27 -0
  381. package/src/hooks/usePathParams.ts +5 -13
  382. package/src/hooks/useQueryParams.spec.ts +99 -0
  383. package/src/hooks/useQueryParams.ts +16 -25
  384. package/src/hooks/useRequestBody.spec.ts +99 -0
  385. package/src/hooks/useRequestBody.ts +16 -35
  386. package/src/openapi/analyzerModule/analyzerModule.ts +2 -3
  387. package/src/openapi/analyzerModule/nodeParsers.ts +113 -8
  388. package/src/openapi/analyzerModule/parseEndpoint.ts +2 -2
  389. package/src/openapi/analyzerModule/test/TestCase.ts +8 -0
  390. package/src/openapi/analyzerModule/test/openApiAnalyzer.spec.data.ts +9 -0
  391. package/src/openapi/analyzerModule/test/openApiAnalyzer.spec.ts +21 -0
  392. package/src/openapi/analyzerModule/test/openApiAnalyzer.zod.spec.data.ts +87 -0
  393. package/src/openapi/analyzerModule/test/openApiAnalyzer.zod.spec.ts +178 -0
  394. package/src/utils/getValueAsNullableString.ts +8 -0
  395. package/src/utils/validationMessages.ts +4 -0
  396. package/src/validators/types.ts +5 -0
  397. package/src/validators/validateMissingParams.ts +27 -0
  398. package/src/validators/validateParam.ts +69 -0
@@ -0,0 +1,87 @@
1
+ import { z } from 'zod'
2
+ import { z as valibot } from 'zod'
3
+
4
+ import { usePathParams } from '../../../hooks/usePathParams'
5
+ import { useRequestBody } from '../../../hooks/useRequestBody'
6
+ import { Router } from '../../../router/Router'
7
+ import { TestCase } from './TestCase'
8
+
9
+ const router = new Router()
10
+
11
+ router.post(`/test/${TestCase.parsesInlineZodNumber}/:id`, (ctx) => {
12
+ usePathParams(ctx, {
13
+ id: z.number(),
14
+ })
15
+
16
+ useRequestBody(ctx, {
17
+ data: z.number(),
18
+ })
19
+ })
20
+
21
+ router.post(`/test/${TestCase.parsesInlineZodString}/:id`, (ctx) => {
22
+ usePathParams(ctx, {
23
+ id: z.string(),
24
+ })
25
+
26
+ useRequestBody(ctx, {
27
+ data: z.string(),
28
+ })
29
+ })
30
+
31
+ router.post(`/test/${TestCase.parsesInlineZodObject}/:id`, (ctx) => {
32
+ usePathParams(ctx, {
33
+ id: z.object({
34
+ value: z.number(),
35
+ }),
36
+ })
37
+
38
+ useRequestBody(ctx, {
39
+ data: z.object({
40
+ value: z.number(),
41
+ }),
42
+ })
43
+ })
44
+
45
+ router.post(`/test/${TestCase.parsesInlineZodNumberArray}/:id`, (ctx) => {
46
+ usePathParams(ctx, {
47
+ id: z.array(z.number()),
48
+ })
49
+
50
+ useRequestBody(ctx, {
51
+ data: z.array(z.number()),
52
+ })
53
+ })
54
+
55
+ router.post(`/test/${TestCase.parsesInlineZodObjectArray}/:id`, (ctx) => {
56
+ usePathParams(ctx, {
57
+ id: z.array(
58
+ z.object({
59
+ value: z.number(),
60
+ }),
61
+ ),
62
+ })
63
+
64
+ useRequestBody(ctx, {
65
+ data: z.array(
66
+ z.object({
67
+ value: z.number(),
68
+ }),
69
+ ),
70
+ })
71
+ })
72
+
73
+ router.post(`/test/${TestCase.parsedAliasedZodSchema}/:id`, (ctx) => {
74
+ const schema = valibot.array(
75
+ valibot.object({
76
+ value: valibot.number(),
77
+ }),
78
+ )
79
+
80
+ usePathParams(ctx, {
81
+ id: schema,
82
+ })
83
+
84
+ useRequestBody(ctx, {
85
+ data: schema,
86
+ })
87
+ })
@@ -0,0 +1,178 @@
1
+ import { loadTestData } from '../../../utils/loadTestData'
2
+ import { discoverRouters } from '../../discoveryModule/discoverRouters/discoverRouters'
3
+ import { analyzeSourceFileEndpoints } from '../analyzerModule'
4
+ import { TestCase } from './TestCase'
5
+
6
+ describe('OpenApi Analyzer (Zod Validator)', () => {
7
+ describe('when analyzing a test data file', () => {
8
+ const dataFile = loadTestData('openApiAnalyzer.zod.spec.data.ts')
9
+ let analysisResult: ReturnType<typeof analyzeSourceFileEndpoints>
10
+
11
+ const analyzeEndpointById = (id: string) => {
12
+ analysisResult = analyzeSourceFileEndpoints(
13
+ {
14
+ fileName: 'test',
15
+ sourceFile: dataFile,
16
+ routers: discoverRouters(dataFile),
17
+ },
18
+ [`/test/${id}`],
19
+ )
20
+ const endpoint = analysisResult.find((endpoint) => endpoint.path.startsWith(`/test/${id}`))
21
+ if (!endpoint) {
22
+ throw new Error(`No endpoint with id ${id} found!`)
23
+ }
24
+ return endpoint
25
+ }
26
+
27
+ describe('zod validators', () => {
28
+ it('parses inline zod number validators', () => {
29
+ const endpoint = analyzeEndpointById(TestCase.parsesInlineZodNumber)
30
+
31
+ expect(endpoint.requestPathParams[0].identifier).toEqual('id')
32
+ expect(endpoint.requestPathParams[0].signature).toEqual('number')
33
+ expect(endpoint.requestPathParams[0].optional).toEqual(false)
34
+
35
+ expect(endpoint.objectBody[0].identifier).toEqual('data')
36
+ expect(endpoint.objectBody[0].signature).toEqual('number')
37
+ expect(endpoint.objectBody[0].optional).toEqual(false)
38
+ })
39
+
40
+ it('parses inline zod string validators', () => {
41
+ const endpoint = analyzeEndpointById(TestCase.parsesInlineZodString)
42
+
43
+ expect(endpoint.requestPathParams[0].identifier).toEqual('id')
44
+ expect(endpoint.requestPathParams[0].signature).toEqual('string')
45
+ expect(endpoint.requestPathParams[0].optional).toEqual(false)
46
+
47
+ expect(endpoint.objectBody[0].identifier).toEqual('data')
48
+ expect(endpoint.objectBody[0].signature).toEqual('string')
49
+ expect(endpoint.objectBody[0].optional).toEqual(false)
50
+ })
51
+
52
+ it('parses inline zod object validators', () => {
53
+ const endpoint = analyzeEndpointById(TestCase.parsesInlineZodObject)
54
+
55
+ expect(endpoint.requestPathParams[0].identifier).toEqual('id')
56
+ expect(endpoint.requestPathParams[0].signature).toEqual([
57
+ {
58
+ identifier: 'value',
59
+ optional: false,
60
+ role: 'property',
61
+ shape: 'number',
62
+ },
63
+ ])
64
+ expect(endpoint.requestPathParams[0].optional).toEqual(false)
65
+
66
+ expect(endpoint.objectBody[0].identifier).toEqual('data')
67
+ expect(endpoint.objectBody[0].signature).toEqual([
68
+ {
69
+ identifier: 'value',
70
+ optional: false,
71
+ role: 'property',
72
+ shape: 'number',
73
+ },
74
+ ])
75
+ expect(endpoint.objectBody[0].optional).toEqual(false)
76
+ })
77
+
78
+ it('parses inline zod number array validators', () => {
79
+ const endpoint = analyzeEndpointById(TestCase.parsesInlineZodNumberArray)
80
+
81
+ expect(endpoint.requestPathParams[0].identifier).toEqual('id')
82
+ expect(endpoint.requestPathParams[0].signature).toEqual([
83
+ {
84
+ role: 'array',
85
+ shape: 'number',
86
+ optional: false,
87
+ },
88
+ ])
89
+ expect(endpoint.requestPathParams[0].optional).toEqual(false)
90
+ expect(endpoint.objectBody[0].identifier).toEqual('data')
91
+ expect(endpoint.objectBody[0].signature).toEqual([
92
+ {
93
+ role: 'array',
94
+ shape: 'number',
95
+ optional: false,
96
+ },
97
+ ])
98
+ expect(endpoint.objectBody[0].optional).toEqual(false)
99
+ })
100
+
101
+ it('parses inline zod object array validators', () => {
102
+ const endpoint = analyzeEndpointById(TestCase.parsesInlineZodObjectArray)
103
+
104
+ expect(endpoint.requestPathParams[0].identifier).toEqual('id')
105
+ expect(endpoint.requestPathParams[0].signature).toEqual([
106
+ {
107
+ role: 'array',
108
+ shape: [
109
+ {
110
+ identifier: 'value',
111
+ optional: false,
112
+ role: 'property',
113
+ shape: 'number',
114
+ },
115
+ ],
116
+ optional: false,
117
+ },
118
+ ])
119
+ expect(endpoint.requestPathParams[0].optional).toEqual(false)
120
+
121
+ expect(endpoint.objectBody[0].identifier).toEqual('data')
122
+ expect(endpoint.objectBody[0].signature).toEqual([
123
+ {
124
+ role: 'array',
125
+ shape: [
126
+ {
127
+ identifier: 'value',
128
+ optional: false,
129
+ role: 'property',
130
+ shape: 'number',
131
+ },
132
+ ],
133
+ optional: false,
134
+ },
135
+ ])
136
+ expect(endpoint.objectBody[0].optional).toEqual(false)
137
+ })
138
+
139
+ it('parses aliased zod object array validators', () => {
140
+ const endpoint = analyzeEndpointById(TestCase.parsedAliasedZodSchema)
141
+
142
+ expect(endpoint.requestPathParams[0].identifier).toEqual('id')
143
+ expect(endpoint.requestPathParams[0].signature).toEqual([
144
+ {
145
+ role: 'array',
146
+ shape: [
147
+ {
148
+ identifier: 'value',
149
+ optional: false,
150
+ role: 'property',
151
+ shape: 'number',
152
+ },
153
+ ],
154
+ optional: false,
155
+ },
156
+ ])
157
+ expect(endpoint.requestPathParams[0].optional).toEqual(false)
158
+
159
+ expect(endpoint.objectBody[0].identifier).toEqual('data')
160
+ expect(endpoint.objectBody[0].signature).toEqual([
161
+ {
162
+ role: 'array',
163
+ shape: [
164
+ {
165
+ identifier: 'value',
166
+ optional: false,
167
+ role: 'property',
168
+ shape: 'number',
169
+ },
170
+ ],
171
+ optional: false,
172
+ },
173
+ ])
174
+ expect(endpoint.objectBody[0].optional).toEqual(false)
175
+ })
176
+ })
177
+ })
178
+ })
@@ -0,0 +1,8 @@
1
+ export function getValueAsNullableString(value: unknown) {
2
+ if (value === null) {
3
+ return null
4
+ } else if (typeof value === 'object') {
5
+ return JSON.stringify(value)
6
+ }
7
+ return String(value)
8
+ }
@@ -30,10 +30,14 @@ export const getValidationResultMessage = (
30
30
  originalName: string
31
31
  validator: Pick<Validator<unknown>, 'description' | 'errorMessage'>
32
32
  },
33
+ exception?: string | null,
33
34
  ) => {
34
35
  const name = 'name' in result ? result.name : result.originalName
35
36
  const { description, errorMessage } = result.validator
36
37
 
38
+ if (exception) {
39
+ return `'${name}' (${exception})`
40
+ }
37
41
  if (errorMessage) {
38
42
  return `'${name}' (${errorMessage})`
39
43
  }
@@ -1,3 +1,5 @@
1
+ import z from 'zod'
2
+
1
3
  type DeepPartial<T> = {
2
4
  [P in keyof T]?: T[P] extends Array<infer U>
3
5
  ? Array<DeepPartial<U>>
@@ -33,3 +35,6 @@ export type BuiltInValidator<T, DescriptionT extends string, ErrorMessageT exten
33
35
  description: DescriptionT
34
36
  errorMessage: ErrorMessageT
35
37
  }
38
+
39
+ export type ValidatorUnion = Omit<Validator<any>, 'optional'> | z.ZodType
40
+ export type MaybeOptionalValidatorUnion = Validator<any> | z.ZodType
@@ -0,0 +1,27 @@
1
+ import z from 'zod'
2
+
3
+ import { ValidationError } from '../errors/UserFacingErrors'
4
+ import { getMissingParamMessage } from '../utils/validationMessages'
5
+ import { MaybeOptionalValidatorUnion, Validator } from './types'
6
+
7
+ export function validateMissingParams<ValidatorsT extends Record<string, MaybeOptionalValidatorUnion>>(
8
+ params: { name: string; validator: Pick<Validator<unknown>, 'description' | 'errorMessage'> }[],
9
+ providedParams: Record<string, unknown>,
10
+ validators: ValidatorsT,
11
+ suffix: 'body' | 'query' | 'path',
12
+ ) {
13
+ const missingParams = params.filter((param) => {
14
+ let isOptional = validators[param.name].optional
15
+ if (validators[param.name] instanceof z.ZodType) {
16
+ isOptional = (validators[param.name] as z.ZodType).safeParse(undefined).success
17
+ }
18
+
19
+ return providedParams[param.name] === undefined && !isOptional
20
+ })
21
+
22
+ if (missingParams.length > 0) {
23
+ throw new ValidationError(
24
+ `Missing ${suffix} params: ${missingParams.map((param) => getMissingParamMessage(param)).join(', ')}`,
25
+ )
26
+ }
27
+ }
@@ -0,0 +1,69 @@
1
+ import z, { ZodError } from 'zod'
2
+
3
+ import { getValueAsNullableString } from '../utils/getValueAsNullableString'
4
+ import { ValidatorUnion } from './types'
5
+
6
+ export function validateParam(
7
+ validator: ValidatorUnion,
8
+ value: string | number | boolean | object | null,
9
+ ): {
10
+ validated: boolean
11
+ parsedValue: unknown
12
+ exception: string | null
13
+ } {
14
+ try {
15
+ const prevalidatorSuccess = runPrevalidator(validator, value)
16
+ const parsedValue = runParser(validator, value)
17
+ const validatorSuccess = runValidator(validator, parsedValue)
18
+
19
+ return {
20
+ validated: prevalidatorSuccess && validatorSuccess,
21
+ parsedValue,
22
+ exception: null,
23
+ }
24
+ } catch (error) {
25
+ const exception = getErrorMessage(error)
26
+ return { validated: false, parsedValue: null, exception }
27
+ }
28
+ }
29
+
30
+ function runPrevalidator(validator: ValidatorUnion, value: string | number | boolean | object | null) {
31
+ // Legacy validator
32
+ if ('prevalidate' in validator && typeof validator.prevalidate === 'function') {
33
+ return validator.prevalidate(getValueAsNullableString(value))
34
+ }
35
+ // Zod (skip)
36
+ return true
37
+ }
38
+
39
+ function runParser(validator: ValidatorUnion, value: string | number | boolean | object | null) {
40
+ // Zod validator
41
+ if (validator instanceof z.ZodType) {
42
+ const coercedValue = (() => {
43
+ try {
44
+ return typeof value === 'string' ? JSON.parse(value) : value
45
+ } catch {
46
+ return value
47
+ }
48
+ })()
49
+ return validator.parse(coercedValue)
50
+ }
51
+ // Legacy validator
52
+ return validator.parse(getValueAsNullableString(value))
53
+ }
54
+
55
+ function runValidator(validator: ValidatorUnion, parsedValue: unknown) {
56
+ // Legacy validator
57
+ if ('validate' in validator && typeof validator.validate === 'function') {
58
+ return validator.validate(parsedValue)
59
+ }
60
+ // Zod (skip)
61
+ return true
62
+ }
63
+
64
+ function getErrorMessage(error: unknown) {
65
+ if (error instanceof ZodError) {
66
+ return z.treeifyError(error).errors.join('; ').replace('Invalid input: ', '')
67
+ }
68
+ return 'Validation failed'
69
+ }