moonflower 1.3.0 → 1.3.2

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 (349) hide show
  1. package/cli/entry.cjs +1 -1
  2. package/dist/cli/cli.cjs +2 -0
  3. package/dist/cli/cli.cjs.map +1 -0
  4. package/dist/cli/cli.d.ts +2 -0
  5. package/dist/cli/cli.d.ts.map +1 -0
  6. package/dist/cli/cli.mjs +62 -0
  7. package/dist/cli/cli.mjs.map +1 -0
  8. package/dist/cli/prettyprint.cjs +2 -0
  9. package/dist/cli/prettyprint.cjs.map +1 -0
  10. package/dist/cli/prettyprint.d.ts +5 -0
  11. package/dist/cli/prettyprint.d.ts.map +1 -0
  12. package/dist/cli/prettyprint.mjs +15 -0
  13. package/dist/cli/prettyprint.mjs.map +1 -0
  14. package/dist/openapi/initOpenApiEngine.cjs +1 -1
  15. package/dist/openapi/initOpenApiEngine.cjs.map +1 -1
  16. package/dist/openapi/initOpenApiEngine.d.ts +7 -2
  17. package/dist/openapi/initOpenApiEngine.d.ts.map +1 -1
  18. package/dist/openapi/initOpenApiEngine.mjs +13 -7
  19. package/dist/openapi/initOpenApiEngine.mjs.map +1 -1
  20. package/dist/openapi/manager/OpenApiManager.cjs +1 -1
  21. package/dist/openapi/manager/OpenApiManager.cjs.map +1 -1
  22. package/dist/openapi/manager/OpenApiManager.d.ts +4 -0
  23. package/dist/openapi/manager/OpenApiManager.d.ts.map +1 -1
  24. package/dist/openapi/manager/OpenApiManager.mjs +11 -2
  25. package/dist/openapi/manager/OpenApiManager.mjs.map +1 -1
  26. package/dist/openapi/router/OpenApiRouter.cjs +1 -1
  27. package/dist/openapi/router/OpenApiRouter.cjs.map +1 -1
  28. package/dist/openapi/router/OpenApiRouter.d.ts.map +1 -1
  29. package/dist/openapi/router/OpenApiRouter.mjs +9 -6
  30. package/dist/openapi/router/OpenApiRouter.mjs.map +1 -1
  31. package/dist/validators/validateMissingParams.cjs +1 -1
  32. package/dist/validators/validateMissingParams.cjs.map +1 -1
  33. package/dist/validators/validateMissingParams.mjs +8 -8
  34. package/dist/validators/validateParam.cjs +1 -1
  35. package/dist/validators/validateParam.cjs.map +1 -1
  36. package/dist/validators/validateParam.mjs +16 -17
  37. package/dist/validators/validateParam.mjs.map +1 -1
  38. package/package.json +4 -4
  39. package/{cli → src/cli}/cli.ts +26 -6
  40. package/{cli → src/cli}/prettyprint.ts +2 -2
  41. package/src/openapi/initOpenApiEngine.ts +48 -6
  42. package/src/openapi/manager/OpenApiManager.ts +16 -0
  43. package/src/openapi/router/OpenApiRouter.ts +6 -1
  44. package/src/test/app.spec.ts +27 -0
  45. package/vite.config.ts +4 -0
  46. package/dist/node_modules/zod/index.cjs +0 -2
  47. package/dist/node_modules/zod/index.cjs.map +0 -1
  48. package/dist/node_modules/zod/index.mjs +0 -6
  49. package/dist/node_modules/zod/index.mjs.map +0 -1
  50. package/dist/node_modules/zod/v4/classic/checks.cjs +0 -2
  51. package/dist/node_modules/zod/v4/classic/checks.cjs.map +0 -1
  52. package/dist/node_modules/zod/v4/classic/checks.mjs +0 -34
  53. package/dist/node_modules/zod/v4/classic/checks.mjs.map +0 -1
  54. package/dist/node_modules/zod/v4/classic/coerce.cjs +0 -2
  55. package/dist/node_modules/zod/v4/classic/coerce.cjs.map +0 -1
  56. package/dist/node_modules/zod/v4/classic/coerce.mjs +0 -26
  57. package/dist/node_modules/zod/v4/classic/coerce.mjs.map +0 -1
  58. package/dist/node_modules/zod/v4/classic/compat.cjs +0 -2
  59. package/dist/node_modules/zod/v4/classic/compat.cjs.map +0 -1
  60. package/dist/node_modules/zod/v4/classic/compat.mjs +0 -35
  61. package/dist/node_modules/zod/v4/classic/compat.mjs.map +0 -1
  62. package/dist/node_modules/zod/v4/classic/errors.cjs +0 -2
  63. package/dist/node_modules/zod/v4/classic/errors.cjs.map +0 -1
  64. package/dist/node_modules/zod/v4/classic/errors.mjs +0 -41
  65. package/dist/node_modules/zod/v4/classic/errors.mjs.map +0 -1
  66. package/dist/node_modules/zod/v4/classic/external.cjs +0 -2
  67. package/dist/node_modules/zod/v4/classic/external.cjs.map +0 -1
  68. package/dist/node_modules/zod/v4/classic/external.mjs +0 -260
  69. package/dist/node_modules/zod/v4/classic/external.mjs.map +0 -1
  70. package/dist/node_modules/zod/v4/classic/from-json-schema.cjs +0 -2
  71. package/dist/node_modules/zod/v4/classic/from-json-schema.cjs.map +0 -1
  72. package/dist/node_modules/zod/v4/classic/from-json-schema.mjs +0 -287
  73. package/dist/node_modules/zod/v4/classic/from-json-schema.mjs.map +0 -1
  74. package/dist/node_modules/zod/v4/classic/iso.cjs +0 -2
  75. package/dist/node_modules/zod/v4/classic/iso.cjs.map +0 -1
  76. package/dist/node_modules/zod/v4/classic/iso.mjs +0 -40
  77. package/dist/node_modules/zod/v4/classic/iso.mjs.map +0 -1
  78. package/dist/node_modules/zod/v4/classic/parse.cjs +0 -2
  79. package/dist/node_modules/zod/v4/classic/parse.cjs.map +0 -1
  80. package/dist/node_modules/zod/v4/classic/parse.mjs +0 -19
  81. package/dist/node_modules/zod/v4/classic/parse.mjs.map +0 -1
  82. package/dist/node_modules/zod/v4/classic/schemas.cjs +0 -2
  83. package/dist/node_modules/zod/v4/classic/schemas.cjs.map +0 -1
  84. package/dist/node_modules/zod/v4/classic/schemas.mjs +0 -912
  85. package/dist/node_modules/zod/v4/classic/schemas.mjs.map +0 -1
  86. package/dist/node_modules/zod/v4/core/api.cjs +0 -2
  87. package/dist/node_modules/zod/v4/core/api.cjs.map +0 -1
  88. package/dist/node_modules/zod/v4/core/api.mjs +0 -1110
  89. package/dist/node_modules/zod/v4/core/api.mjs.map +0 -1
  90. package/dist/node_modules/zod/v4/core/checks.cjs +0 -2
  91. package/dist/node_modules/zod/v4/core/checks.cjs.map +0 -1
  92. package/dist/node_modules/zod/v4/core/checks.mjs +0 -421
  93. package/dist/node_modules/zod/v4/core/checks.mjs.map +0 -1
  94. package/dist/node_modules/zod/v4/core/core.cjs +0 -2
  95. package/dist/node_modules/zod/v4/core/core.cjs.map +0 -1
  96. package/dist/node_modules/zod/v4/core/core.mjs +0 -62
  97. package/dist/node_modules/zod/v4/core/core.mjs.map +0 -1
  98. package/dist/node_modules/zod/v4/core/doc.cjs +0 -4
  99. package/dist/node_modules/zod/v4/core/doc.cjs.map +0 -1
  100. package/dist/node_modules/zod/v4/core/doc.mjs +0 -27
  101. package/dist/node_modules/zod/v4/core/doc.mjs.map +0 -1
  102. package/dist/node_modules/zod/v4/core/errors.cjs +0 -3
  103. package/dist/node_modules/zod/v4/core/errors.cjs.map +0 -1
  104. package/dist/node_modules/zod/v4/core/errors.mjs +0 -89
  105. package/dist/node_modules/zod/v4/core/errors.mjs.map +0 -1
  106. package/dist/node_modules/zod/v4/core/index.cjs +0 -2
  107. package/dist/node_modules/zod/v4/core/index.cjs.map +0 -1
  108. package/dist/node_modules/zod/v4/core/index.mjs +0 -293
  109. package/dist/node_modules/zod/v4/core/index.mjs.map +0 -1
  110. package/dist/node_modules/zod/v4/core/json-schema-generator.cjs +0 -2
  111. package/dist/node_modules/zod/v4/core/json-schema-generator.cjs.map +0 -1
  112. package/dist/node_modules/zod/v4/core/json-schema-generator.mjs +0 -66
  113. package/dist/node_modules/zod/v4/core/json-schema-generator.mjs.map +0 -1
  114. package/dist/node_modules/zod/v4/core/json-schema-processors.cjs +0 -2
  115. package/dist/node_modules/zod/v4/core/json-schema-processors.cjs.map +0 -1
  116. package/dist/node_modules/zod/v4/core/json-schema-processors.mjs +0 -346
  117. package/dist/node_modules/zod/v4/core/json-schema-processors.mjs.map +0 -1
  118. package/dist/node_modules/zod/v4/core/json-schema.cjs +0 -2
  119. package/dist/node_modules/zod/v4/core/json-schema.cjs.map +0 -1
  120. package/dist/node_modules/zod/v4/core/json-schema.mjs +0 -2
  121. package/dist/node_modules/zod/v4/core/json-schema.mjs.map +0 -1
  122. package/dist/node_modules/zod/v4/core/parse.cjs +0 -2
  123. package/dist/node_modules/zod/v4/core/parse.cjs.map +0 -1
  124. package/dist/node_modules/zod/v4/core/parse.mjs +0 -75
  125. package/dist/node_modules/zod/v4/core/parse.mjs.map +0 -1
  126. package/dist/node_modules/zod/v4/core/regexes.cjs +0 -2
  127. package/dist/node_modules/zod/v4/core/regexes.cjs.map +0 -1
  128. package/dist/node_modules/zod/v4/core/regexes.mjs +0 -94
  129. package/dist/node_modules/zod/v4/core/regexes.mjs.map +0 -1
  130. package/dist/node_modules/zod/v4/core/registries.cjs +0 -2
  131. package/dist/node_modules/zod/v4/core/registries.cjs.map +0 -1
  132. package/dist/node_modules/zod/v4/core/registries.mjs +0 -44
  133. package/dist/node_modules/zod/v4/core/registries.mjs.map +0 -1
  134. package/dist/node_modules/zod/v4/core/schemas.cjs +0 -36
  135. package/dist/node_modules/zod/v4/core/schemas.cjs.map +0 -1
  136. package/dist/node_modules/zod/v4/core/schemas.mjs +0 -1319
  137. package/dist/node_modules/zod/v4/core/schemas.mjs.map +0 -1
  138. package/dist/node_modules/zod/v4/core/to-json-schema.cjs +0 -4
  139. package/dist/node_modules/zod/v4/core/to-json-schema.cjs.map +0 -1
  140. package/dist/node_modules/zod/v4/core/to-json-schema.mjs +0 -244
  141. package/dist/node_modules/zod/v4/core/to-json-schema.mjs.map +0 -1
  142. package/dist/node_modules/zod/v4/core/util.cjs +0 -2
  143. package/dist/node_modules/zod/v4/core/util.cjs.map +0 -1
  144. package/dist/node_modules/zod/v4/core/util.mjs +0 -523
  145. package/dist/node_modules/zod/v4/core/util.mjs.map +0 -1
  146. package/dist/node_modules/zod/v4/core/versions.cjs +0 -2
  147. package/dist/node_modules/zod/v4/core/versions.cjs.map +0 -1
  148. package/dist/node_modules/zod/v4/core/versions.mjs +0 -9
  149. package/dist/node_modules/zod/v4/core/versions.mjs.map +0 -1
  150. package/dist/node_modules/zod/v4/locales/ar.cjs +0 -2
  151. package/dist/node_modules/zod/v4/locales/ar.cjs.map +0 -1
  152. package/dist/node_modules/zod/v4/locales/ar.mjs +0 -87
  153. package/dist/node_modules/zod/v4/locales/ar.mjs.map +0 -1
  154. package/dist/node_modules/zod/v4/locales/az.cjs +0 -2
  155. package/dist/node_modules/zod/v4/locales/az.cjs.map +0 -1
  156. package/dist/node_modules/zod/v4/locales/az.mjs +0 -87
  157. package/dist/node_modules/zod/v4/locales/az.mjs.map +0 -1
  158. package/dist/node_modules/zod/v4/locales/be.cjs +0 -2
  159. package/dist/node_modules/zod/v4/locales/be.cjs.map +0 -1
  160. package/dist/node_modules/zod/v4/locales/be.mjs +0 -129
  161. package/dist/node_modules/zod/v4/locales/be.mjs.map +0 -1
  162. package/dist/node_modules/zod/v4/locales/bg.cjs +0 -2
  163. package/dist/node_modules/zod/v4/locales/bg.cjs.map +0 -1
  164. package/dist/node_modules/zod/v4/locales/bg.mjs +0 -98
  165. package/dist/node_modules/zod/v4/locales/bg.mjs.map +0 -1
  166. package/dist/node_modules/zod/v4/locales/ca.cjs +0 -2
  167. package/dist/node_modules/zod/v4/locales/ca.cjs.map +0 -1
  168. package/dist/node_modules/zod/v4/locales/ca.mjs +0 -88
  169. package/dist/node_modules/zod/v4/locales/ca.mjs.map +0 -1
  170. package/dist/node_modules/zod/v4/locales/cs.cjs +0 -2
  171. package/dist/node_modules/zod/v4/locales/cs.cjs.map +0 -1
  172. package/dist/node_modules/zod/v4/locales/cs.mjs +0 -91
  173. package/dist/node_modules/zod/v4/locales/cs.mjs.map +0 -1
  174. package/dist/node_modules/zod/v4/locales/da.cjs +0 -2
  175. package/dist/node_modules/zod/v4/locales/da.cjs.map +0 -1
  176. package/dist/node_modules/zod/v4/locales/da.mjs +0 -94
  177. package/dist/node_modules/zod/v4/locales/da.mjs.map +0 -1
  178. package/dist/node_modules/zod/v4/locales/de.cjs +0 -2
  179. package/dist/node_modules/zod/v4/locales/de.cjs.map +0 -1
  180. package/dist/node_modules/zod/v4/locales/de.mjs +0 -89
  181. package/dist/node_modules/zod/v4/locales/de.mjs.map +0 -1
  182. package/dist/node_modules/zod/v4/locales/en.cjs +0 -2
  183. package/dist/node_modules/zod/v4/locales/en.cjs.map +0 -1
  184. package/dist/node_modules/zod/v4/locales/en.mjs +0 -91
  185. package/dist/node_modules/zod/v4/locales/en.mjs.map +0 -1
  186. package/dist/node_modules/zod/v4/locales/eo.cjs +0 -2
  187. package/dist/node_modules/zod/v4/locales/eo.cjs.map +0 -1
  188. package/dist/node_modules/zod/v4/locales/eo.mjs +0 -90
  189. package/dist/node_modules/zod/v4/locales/eo.mjs.map +0 -1
  190. package/dist/node_modules/zod/v4/locales/es.cjs +0 -2
  191. package/dist/node_modules/zod/v4/locales/es.cjs.map +0 -1
  192. package/dist/node_modules/zod/v4/locales/es.mjs +0 -111
  193. package/dist/node_modules/zod/v4/locales/es.mjs.map +0 -1
  194. package/dist/node_modules/zod/v4/locales/fa.cjs +0 -2
  195. package/dist/node_modules/zod/v4/locales/fa.cjs.map +0 -1
  196. package/dist/node_modules/zod/v4/locales/fa.mjs +0 -89
  197. package/dist/node_modules/zod/v4/locales/fa.mjs.map +0 -1
  198. package/dist/node_modules/zod/v4/locales/fi.cjs +0 -2
  199. package/dist/node_modules/zod/v4/locales/fi.cjs.map +0 -1
  200. package/dist/node_modules/zod/v4/locales/fi.mjs +0 -91
  201. package/dist/node_modules/zod/v4/locales/fi.mjs.map +0 -1
  202. package/dist/node_modules/zod/v4/locales/fr-CA.cjs +0 -2
  203. package/dist/node_modules/zod/v4/locales/fr-CA.cjs.map +0 -1
  204. package/dist/node_modules/zod/v4/locales/fr-CA.mjs +0 -87
  205. package/dist/node_modules/zod/v4/locales/fr-CA.mjs.map +0 -1
  206. package/dist/node_modules/zod/v4/locales/fr.cjs +0 -2
  207. package/dist/node_modules/zod/v4/locales/fr.cjs.map +0 -1
  208. package/dist/node_modules/zod/v4/locales/fr.mjs +0 -89
  209. package/dist/node_modules/zod/v4/locales/fr.mjs.map +0 -1
  210. package/dist/node_modules/zod/v4/locales/he.cjs +0 -2
  211. package/dist/node_modules/zod/v4/locales/he.cjs.map +0 -1
  212. package/dist/node_modules/zod/v4/locales/he.mjs +0 -152
  213. package/dist/node_modules/zod/v4/locales/he.mjs.map +0 -1
  214. package/dist/node_modules/zod/v4/locales/hu.cjs +0 -2
  215. package/dist/node_modules/zod/v4/locales/hu.cjs.map +0 -1
  216. package/dist/node_modules/zod/v4/locales/hu.mjs +0 -89
  217. package/dist/node_modules/zod/v4/locales/hu.mjs.map +0 -1
  218. package/dist/node_modules/zod/v4/locales/hy.cjs +0 -2
  219. package/dist/node_modules/zod/v4/locales/hy.cjs.map +0 -1
  220. package/dist/node_modules/zod/v4/locales/hy.mjs +0 -130
  221. package/dist/node_modules/zod/v4/locales/hy.mjs.map +0 -1
  222. package/dist/node_modules/zod/v4/locales/id.cjs +0 -2
  223. package/dist/node_modules/zod/v4/locales/id.cjs.map +0 -1
  224. package/dist/node_modules/zod/v4/locales/id.mjs +0 -87
  225. package/dist/node_modules/zod/v4/locales/id.mjs.map +0 -1
  226. package/dist/node_modules/zod/v4/locales/index.cjs +0 -2
  227. package/dist/node_modules/zod/v4/locales/index.cjs.map +0 -1
  228. package/dist/node_modules/zod/v4/locales/index.mjs +0 -101
  229. package/dist/node_modules/zod/v4/locales/index.mjs.map +0 -1
  230. package/dist/node_modules/zod/v4/locales/is.cjs +0 -2
  231. package/dist/node_modules/zod/v4/locales/is.cjs.map +0 -1
  232. package/dist/node_modules/zod/v4/locales/is.mjs +0 -89
  233. package/dist/node_modules/zod/v4/locales/is.mjs.map +0 -1
  234. package/dist/node_modules/zod/v4/locales/it.cjs +0 -2
  235. package/dist/node_modules/zod/v4/locales/it.cjs.map +0 -1
  236. package/dist/node_modules/zod/v4/locales/it.mjs +0 -89
  237. package/dist/node_modules/zod/v4/locales/it.mjs.map +0 -1
  238. package/dist/node_modules/zod/v4/locales/ja.cjs +0 -2
  239. package/dist/node_modules/zod/v4/locales/ja.cjs.map +0 -1
  240. package/dist/node_modules/zod/v4/locales/ja.mjs +0 -89
  241. package/dist/node_modules/zod/v4/locales/ja.mjs.map +0 -1
  242. package/dist/node_modules/zod/v4/locales/ka.cjs +0 -2
  243. package/dist/node_modules/zod/v4/locales/ka.cjs.map +0 -1
  244. package/dist/node_modules/zod/v4/locales/ka.mjs +0 -92
  245. package/dist/node_modules/zod/v4/locales/ka.mjs.map +0 -1
  246. package/dist/node_modules/zod/v4/locales/kh.cjs +0 -2
  247. package/dist/node_modules/zod/v4/locales/kh.cjs.map +0 -1
  248. package/dist/node_modules/zod/v4/locales/kh.mjs +0 -8
  249. package/dist/node_modules/zod/v4/locales/kh.mjs.map +0 -1
  250. package/dist/node_modules/zod/v4/locales/km.cjs +0 -2
  251. package/dist/node_modules/zod/v4/locales/km.cjs.map +0 -1
  252. package/dist/node_modules/zod/v4/locales/km.mjs +0 -90
  253. package/dist/node_modules/zod/v4/locales/km.mjs.map +0 -1
  254. package/dist/node_modules/zod/v4/locales/ko.cjs +0 -2
  255. package/dist/node_modules/zod/v4/locales/ko.cjs.map +0 -1
  256. package/dist/node_modules/zod/v4/locales/ko.mjs +0 -87
  257. package/dist/node_modules/zod/v4/locales/ko.mjs.map +0 -1
  258. package/dist/node_modules/zod/v4/locales/lt.cjs +0 -2
  259. package/dist/node_modules/zod/v4/locales/lt.cjs.map +0 -1
  260. package/dist/node_modules/zod/v4/locales/lt.mjs +0 -178
  261. package/dist/node_modules/zod/v4/locales/lt.mjs.map +0 -1
  262. package/dist/node_modules/zod/v4/locales/mk.cjs +0 -2
  263. package/dist/node_modules/zod/v4/locales/mk.cjs.map +0 -1
  264. package/dist/node_modules/zod/v4/locales/mk.mjs +0 -89
  265. package/dist/node_modules/zod/v4/locales/mk.mjs.map +0 -1
  266. package/dist/node_modules/zod/v4/locales/ms.cjs +0 -2
  267. package/dist/node_modules/zod/v4/locales/ms.cjs.map +0 -1
  268. package/dist/node_modules/zod/v4/locales/ms.mjs +0 -88
  269. package/dist/node_modules/zod/v4/locales/ms.mjs.map +0 -1
  270. package/dist/node_modules/zod/v4/locales/nl.cjs +0 -2
  271. package/dist/node_modules/zod/v4/locales/nl.cjs.map +0 -1
  272. package/dist/node_modules/zod/v4/locales/nl.mjs +0 -88
  273. package/dist/node_modules/zod/v4/locales/nl.mjs.map +0 -1
  274. package/dist/node_modules/zod/v4/locales/no.cjs +0 -2
  275. package/dist/node_modules/zod/v4/locales/no.cjs.map +0 -1
  276. package/dist/node_modules/zod/v4/locales/no.mjs +0 -89
  277. package/dist/node_modules/zod/v4/locales/no.mjs.map +0 -1
  278. package/dist/node_modules/zod/v4/locales/ota.cjs +0 -2
  279. package/dist/node_modules/zod/v4/locales/ota.cjs.map +0 -1
  280. package/dist/node_modules/zod/v4/locales/ota.mjs +0 -90
  281. package/dist/node_modules/zod/v4/locales/ota.mjs.map +0 -1
  282. package/dist/node_modules/zod/v4/locales/pl.cjs +0 -2
  283. package/dist/node_modules/zod/v4/locales/pl.cjs.map +0 -1
  284. package/dist/node_modules/zod/v4/locales/pl.mjs +0 -89
  285. package/dist/node_modules/zod/v4/locales/pl.mjs.map +0 -1
  286. package/dist/node_modules/zod/v4/locales/ps.cjs +0 -2
  287. package/dist/node_modules/zod/v4/locales/ps.cjs.map +0 -1
  288. package/dist/node_modules/zod/v4/locales/ps.mjs +0 -89
  289. package/dist/node_modules/zod/v4/locales/ps.mjs.map +0 -1
  290. package/dist/node_modules/zod/v4/locales/pt.cjs +0 -2
  291. package/dist/node_modules/zod/v4/locales/pt.cjs.map +0 -1
  292. package/dist/node_modules/zod/v4/locales/pt.mjs +0 -89
  293. package/dist/node_modules/zod/v4/locales/pt.mjs.map +0 -1
  294. package/dist/node_modules/zod/v4/locales/ru.cjs +0 -2
  295. package/dist/node_modules/zod/v4/locales/ru.cjs.map +0 -1
  296. package/dist/node_modules/zod/v4/locales/ru.mjs +0 -129
  297. package/dist/node_modules/zod/v4/locales/ru.mjs.map +0 -1
  298. package/dist/node_modules/zod/v4/locales/sl.cjs +0 -2
  299. package/dist/node_modules/zod/v4/locales/sl.cjs.map +0 -1
  300. package/dist/node_modules/zod/v4/locales/sl.mjs +0 -89
  301. package/dist/node_modules/zod/v4/locales/sl.mjs.map +0 -1
  302. package/dist/node_modules/zod/v4/locales/sv.cjs +0 -2
  303. package/dist/node_modules/zod/v4/locales/sv.cjs.map +0 -1
  304. package/dist/node_modules/zod/v4/locales/sv.mjs +0 -89
  305. package/dist/node_modules/zod/v4/locales/sv.mjs.map +0 -1
  306. package/dist/node_modules/zod/v4/locales/ta.cjs +0 -2
  307. package/dist/node_modules/zod/v4/locales/ta.cjs.map +0 -1
  308. package/dist/node_modules/zod/v4/locales/ta.mjs +0 -90
  309. package/dist/node_modules/zod/v4/locales/ta.mjs.map +0 -1
  310. package/dist/node_modules/zod/v4/locales/th.cjs +0 -2
  311. package/dist/node_modules/zod/v4/locales/th.cjs.map +0 -1
  312. package/dist/node_modules/zod/v4/locales/th.mjs +0 -90
  313. package/dist/node_modules/zod/v4/locales/th.mjs.map +0 -1
  314. package/dist/node_modules/zod/v4/locales/tr.cjs +0 -2
  315. package/dist/node_modules/zod/v4/locales/tr.cjs.map +0 -1
  316. package/dist/node_modules/zod/v4/locales/tr.mjs +0 -87
  317. package/dist/node_modules/zod/v4/locales/tr.mjs.map +0 -1
  318. package/dist/node_modules/zod/v4/locales/ua.cjs +0 -2
  319. package/dist/node_modules/zod/v4/locales/ua.cjs.map +0 -1
  320. package/dist/node_modules/zod/v4/locales/ua.mjs +0 -8
  321. package/dist/node_modules/zod/v4/locales/ua.mjs.map +0 -1
  322. package/dist/node_modules/zod/v4/locales/uk.cjs +0 -2
  323. package/dist/node_modules/zod/v4/locales/uk.cjs.map +0 -1
  324. package/dist/node_modules/zod/v4/locales/uk.mjs +0 -89
  325. package/dist/node_modules/zod/v4/locales/uk.mjs.map +0 -1
  326. package/dist/node_modules/zod/v4/locales/ur.cjs +0 -2
  327. package/dist/node_modules/zod/v4/locales/ur.cjs.map +0 -1
  328. package/dist/node_modules/zod/v4/locales/ur.mjs +0 -90
  329. package/dist/node_modules/zod/v4/locales/ur.mjs.map +0 -1
  330. package/dist/node_modules/zod/v4/locales/uz.cjs +0 -2
  331. package/dist/node_modules/zod/v4/locales/uz.cjs.map +0 -1
  332. package/dist/node_modules/zod/v4/locales/uz.mjs +0 -90
  333. package/dist/node_modules/zod/v4/locales/uz.mjs.map +0 -1
  334. package/dist/node_modules/zod/v4/locales/vi.cjs +0 -2
  335. package/dist/node_modules/zod/v4/locales/vi.cjs.map +0 -1
  336. package/dist/node_modules/zod/v4/locales/vi.mjs +0 -89
  337. package/dist/node_modules/zod/v4/locales/vi.mjs.map +0 -1
  338. package/dist/node_modules/zod/v4/locales/yo.cjs +0 -2
  339. package/dist/node_modules/zod/v4/locales/yo.cjs.map +0 -1
  340. package/dist/node_modules/zod/v4/locales/yo.mjs +0 -89
  341. package/dist/node_modules/zod/v4/locales/yo.mjs.map +0 -1
  342. package/dist/node_modules/zod/v4/locales/zh-CN.cjs +0 -2
  343. package/dist/node_modules/zod/v4/locales/zh-CN.cjs.map +0 -1
  344. package/dist/node_modules/zod/v4/locales/zh-CN.mjs +0 -90
  345. package/dist/node_modules/zod/v4/locales/zh-CN.mjs.map +0 -1
  346. package/dist/node_modules/zod/v4/locales/zh-TW.cjs +0 -2
  347. package/dist/node_modules/zod/v4/locales/zh-TW.cjs.map +0 -1
  348. package/dist/node_modules/zod/v4/locales/zh-TW.mjs +0 -87
  349. package/dist/node_modules/zod/v4/locales/zh-TW.mjs.map +0 -1
package/cli/entry.cjs CHANGED
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- require('../dist/cli/cli.js')
3
+ require('../dist/cli/cli.cjs')
@@ -0,0 +1,2 @@
1
+ "use strict";const i=require("fs"),c=require("path"),p=require("yargs"),f=require("yargs/helpers"),l=require("../openapi/analyzerModule/analyzerModule.cjs"),u=require("../openapi/generatorModule/generatorModule.cjs"),d=require("../openapi/manager/OpenApiManager.cjs"),g=require("./prettyprint.cjs");function a(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const r=a(i),s=a(c),h=console.info;console.info=(e,...t)=>{h(`${e}`,...t)};p(f.hideBin(process.argv)).showHelpOnFail(!0).command({command:"openapi <targetPath>",describe:"Generates the current openapi spec into a specified file path",builder:{targetPath:{describe:"Target path",demandOption:!0,type:"string",coerce:e=>s.resolve(e)},tsConfigPath:{describe:"tsconfig",type:"string",coerce:e=>s.resolve(e)},force:{describe:"Overwrite existing file",type:"boolean",default:!1}},handler(e){if(r.existsSync(e.targetPath)&&!e.force&&!y(e.targetPath)){console.error(`[Error] File already exists at ${e.targetPath} and does not appear to be a moonflower output. Use --force to overwrite.`);return}if(e.tsConfigPath&&!r.existsSync(e.tsConfigPath)){console.error(`[Error] Unable to find a tsconfig file at ${e.tsConfigPath}`);return}l.prepareOpenApiSpec({tsconfigPath:e.tsConfigPath??"tsconfig.json"});const t=d.OpenApiManager.getInstance();g.printAnalysisStats(t.getStats());const n=u.generateOpenApiSpec(t);r.writeFileSync(e.targetPath,JSON.stringify(n))}}).demandCommand().parse();function y(e){try{const t=r.readFileSync(e,"utf-8"),n=JSON.parse(t);return typeof n=="object"&&n!==null&&typeof n.openapi=="string"}catch{return!1}}
2
+ //# sourceMappingURL=cli.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.cjs","sources":["../../src/cli/cli.ts"],"sourcesContent":["import * as fs from 'fs'\nimport * as path from 'path'\nimport yargs, { ArgumentsCamelCase } from 'yargs'\nimport { hideBin } from 'yargs/helpers'\n\nimport { prepareOpenApiSpec } from '../openapi/analyzerModule/analyzerModule'\nimport { generateOpenApiSpec } from '../openapi/generatorModule'\nimport { OpenApiManager } from '../openapi/manager/OpenApiManager'\nimport { printAnalysisStats } from './prettyprint'\n\nconst originalConsole = console.info\nconsole.info = (message, ...args) => {\n\toriginalConsole(`${message}`, ...args)\n}\n\nyargs(hideBin(process.argv))\n\t.showHelpOnFail(true)\n\t.command({\n\t\tcommand: 'openapi <targetPath>',\n\t\tdescribe: 'Generates the current openapi spec into a specified file path',\n\t\tbuilder: {\n\t\t\ttargetPath: {\n\t\t\t\tdescribe: 'Target path',\n\t\t\t\tdemandOption: true,\n\t\t\t\ttype: 'string',\n\t\t\t\tcoerce: (f) => path.resolve(f),\n\t\t\t},\n\n\t\t\ttsConfigPath: {\n\t\t\t\tdescribe: 'tsconfig',\n\t\t\t\ttype: 'string',\n\t\t\t\tcoerce: (f) => path.resolve(f),\n\t\t\t},\n\n\t\t\tforce: {\n\t\t\t\tdescribe: 'Overwrite existing file',\n\t\t\t\ttype: 'boolean',\n\t\t\t\tdefault: false,\n\t\t\t},\n\t\t},\n\n\t\thandler(argv: ArgumentsCamelCase<{ targetPath: string; tsConfigPath?: string; force: boolean }>) {\n\t\t\tif (fs.existsSync(argv.targetPath)) {\n\t\t\t\tif (!argv.force && !isValidMoonflowerOutput(argv.targetPath)) {\n\t\t\t\t\tconsole.error(\n\t\t\t\t\t\t`[Error] File already exists at ${argv.targetPath} and does not appear to be a moonflower output. Use --force to overwrite.`,\n\t\t\t\t\t)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (argv.tsConfigPath && !fs.existsSync(argv.tsConfigPath)) {\n\t\t\t\tconsole.error(`[Error] Unable to find a tsconfig file at ${argv.tsConfigPath}`)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tprepareOpenApiSpec({\n\t\t\t\ttsconfigPath: argv.tsConfigPath ?? 'tsconfig.json',\n\t\t\t})\n\n\t\t\tconst manager = OpenApiManager.getInstance()\n\t\t\tprintAnalysisStats(manager.getStats())\n\n\t\t\tconst spec = generateOpenApiSpec(manager)\n\t\t\tfs.writeFileSync(argv.targetPath, JSON.stringify(spec))\n\t\t},\n\t})\n\t.demandCommand()\n\t.parse()\n\nfunction isValidMoonflowerOutput(filePath: string): boolean {\n\ttry {\n\t\tconst content = fs.readFileSync(filePath, 'utf-8')\n\t\tconst parsed = JSON.parse(content)\n\t\treturn typeof parsed === 'object' && parsed !== null && typeof parsed.openapi === 'string'\n\t} catch {\n\t\treturn false\n\t}\n}\n"],"names":["originalConsole","message","args","yargs","hideBin","f","path","argv","fs","isValidMoonflowerOutput","prepareOpenApiSpec","manager","OpenApiManager","printAnalysisStats","spec","generateOpenApiSpec","filePath","content","parsed"],"mappings":"4kBAUMA,EAAkB,QAAQ,KAChC,QAAQ,KAAO,CAACC,KAAYC,IAAS,CACpCF,EAAgB,GAAGC,CAAO,GAAI,GAAGC,CAAI,CACtC,EAEAC,EAAMC,EAAAA,QAAQ,QAAQ,IAAI,CAAC,EACzB,eAAe,EAAI,EACnB,QAAQ,CACR,QAAS,uBACT,SAAU,gEACV,QAAS,CACR,WAAY,CACX,SAAU,cACV,aAAc,GACd,KAAM,SACN,OAASC,GAAMC,EAAK,QAAQD,CAAC,CAC9B,EAEA,aAAc,CACb,SAAU,WACV,KAAM,SACN,OAASA,GAAMC,EAAK,QAAQD,CAAC,CAC9B,EAEA,MAAO,CACN,SAAU,0BACV,KAAM,UACN,QAAS,EAAA,CAEX,EAEA,QAAQE,EAAyF,CAChG,GAAIC,EAAG,WAAWD,EAAK,UAAU,GAC5B,CAACA,EAAK,OAAS,CAACE,EAAwBF,EAAK,UAAU,EAAG,CACrD,QAAA,MACP,kCAAkCA,EAAK,UAAU,2EAClD,EACA,MAAA,CAIF,GAAIA,EAAK,cAAgB,CAACC,EAAG,WAAWD,EAAK,YAAY,EAAG,CAC3D,QAAQ,MAAM,6CAA6CA,EAAK,YAAY,EAAE,EAC9E,MAAA,CAGkBG,qBAAA,CAClB,aAAcH,EAAK,cAAgB,eAAA,CACnC,EAEK,MAAAI,EAAUC,iBAAe,YAAY,EACxBC,qBAAAF,EAAQ,UAAU,EAE/B,MAAAG,EAAOC,sBAAoBJ,CAAO,EACxCH,EAAG,cAAcD,EAAK,WAAY,KAAK,UAAUO,CAAI,CAAC,CAAA,CAExD,CAAC,EACA,cAAc,EACd,MAAM,EAER,SAASL,EAAwBO,EAA2B,CACvD,GAAA,CACH,MAAMC,EAAUT,EAAG,aAAaQ,EAAU,OAAO,EAC3CE,EAAS,KAAK,MAAMD,CAAO,EACjC,OAAO,OAAOC,GAAW,UAAYA,IAAW,MAAQ,OAAOA,EAAO,SAAY,QAAA,MAC3E,CACA,MAAA,EAAA,CAET"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli/cli.ts"],"names":[],"mappings":""}
@@ -0,0 +1,62 @@
1
+ import * as r from "fs";
2
+ import * as n from "path";
3
+ import i from "yargs";
4
+ import { hideBin as a } from "yargs/helpers";
5
+ import { prepareOpenApiSpec as s } from "../openapi/analyzerModule/analyzerModule.mjs";
6
+ import { generateOpenApiSpec as p } from "../openapi/generatorModule/generatorModule.mjs";
7
+ import { OpenApiManager as c } from "../openapi/manager/OpenApiManager.mjs";
8
+ import { printAnalysisStats as f } from "./prettyprint.mjs";
9
+ const l = console.info;
10
+ console.info = (e, ...t) => {
11
+ l(`${e}`, ...t);
12
+ };
13
+ i(a(process.argv)).showHelpOnFail(!0).command({
14
+ command: "openapi <targetPath>",
15
+ describe: "Generates the current openapi spec into a specified file path",
16
+ builder: {
17
+ targetPath: {
18
+ describe: "Target path",
19
+ demandOption: !0,
20
+ type: "string",
21
+ coerce: (e) => n.resolve(e)
22
+ },
23
+ tsConfigPath: {
24
+ describe: "tsconfig",
25
+ type: "string",
26
+ coerce: (e) => n.resolve(e)
27
+ },
28
+ force: {
29
+ describe: "Overwrite existing file",
30
+ type: "boolean",
31
+ default: !1
32
+ }
33
+ },
34
+ handler(e) {
35
+ if (r.existsSync(e.targetPath) && !e.force && !m(e.targetPath)) {
36
+ console.error(
37
+ `[Error] File already exists at ${e.targetPath} and does not appear to be a moonflower output. Use --force to overwrite.`
38
+ );
39
+ return;
40
+ }
41
+ if (e.tsConfigPath && !r.existsSync(e.tsConfigPath)) {
42
+ console.error(`[Error] Unable to find a tsconfig file at ${e.tsConfigPath}`);
43
+ return;
44
+ }
45
+ s({
46
+ tsconfigPath: e.tsConfigPath ?? "tsconfig.json"
47
+ });
48
+ const t = c.getInstance();
49
+ f(t.getStats());
50
+ const o = p(t);
51
+ r.writeFileSync(e.targetPath, JSON.stringify(o));
52
+ }
53
+ }).demandCommand().parse();
54
+ function m(e) {
55
+ try {
56
+ const t = r.readFileSync(e, "utf-8"), o = JSON.parse(t);
57
+ return typeof o == "object" && o !== null && typeof o.openapi == "string";
58
+ } catch {
59
+ return !1;
60
+ }
61
+ }
62
+ //# sourceMappingURL=cli.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.mjs","sources":["../../src/cli/cli.ts"],"sourcesContent":["import * as fs from 'fs'\nimport * as path from 'path'\nimport yargs, { ArgumentsCamelCase } from 'yargs'\nimport { hideBin } from 'yargs/helpers'\n\nimport { prepareOpenApiSpec } from '../openapi/analyzerModule/analyzerModule'\nimport { generateOpenApiSpec } from '../openapi/generatorModule'\nimport { OpenApiManager } from '../openapi/manager/OpenApiManager'\nimport { printAnalysisStats } from './prettyprint'\n\nconst originalConsole = console.info\nconsole.info = (message, ...args) => {\n\toriginalConsole(`${message}`, ...args)\n}\n\nyargs(hideBin(process.argv))\n\t.showHelpOnFail(true)\n\t.command({\n\t\tcommand: 'openapi <targetPath>',\n\t\tdescribe: 'Generates the current openapi spec into a specified file path',\n\t\tbuilder: {\n\t\t\ttargetPath: {\n\t\t\t\tdescribe: 'Target path',\n\t\t\t\tdemandOption: true,\n\t\t\t\ttype: 'string',\n\t\t\t\tcoerce: (f) => path.resolve(f),\n\t\t\t},\n\n\t\t\ttsConfigPath: {\n\t\t\t\tdescribe: 'tsconfig',\n\t\t\t\ttype: 'string',\n\t\t\t\tcoerce: (f) => path.resolve(f),\n\t\t\t},\n\n\t\t\tforce: {\n\t\t\t\tdescribe: 'Overwrite existing file',\n\t\t\t\ttype: 'boolean',\n\t\t\t\tdefault: false,\n\t\t\t},\n\t\t},\n\n\t\thandler(argv: ArgumentsCamelCase<{ targetPath: string; tsConfigPath?: string; force: boolean }>) {\n\t\t\tif (fs.existsSync(argv.targetPath)) {\n\t\t\t\tif (!argv.force && !isValidMoonflowerOutput(argv.targetPath)) {\n\t\t\t\t\tconsole.error(\n\t\t\t\t\t\t`[Error] File already exists at ${argv.targetPath} and does not appear to be a moonflower output. Use --force to overwrite.`,\n\t\t\t\t\t)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (argv.tsConfigPath && !fs.existsSync(argv.tsConfigPath)) {\n\t\t\t\tconsole.error(`[Error] Unable to find a tsconfig file at ${argv.tsConfigPath}`)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tprepareOpenApiSpec({\n\t\t\t\ttsconfigPath: argv.tsConfigPath ?? 'tsconfig.json',\n\t\t\t})\n\n\t\t\tconst manager = OpenApiManager.getInstance()\n\t\t\tprintAnalysisStats(manager.getStats())\n\n\t\t\tconst spec = generateOpenApiSpec(manager)\n\t\t\tfs.writeFileSync(argv.targetPath, JSON.stringify(spec))\n\t\t},\n\t})\n\t.demandCommand()\n\t.parse()\n\nfunction isValidMoonflowerOutput(filePath: string): boolean {\n\ttry {\n\t\tconst content = fs.readFileSync(filePath, 'utf-8')\n\t\tconst parsed = JSON.parse(content)\n\t\treturn typeof parsed === 'object' && parsed !== null && typeof parsed.openapi === 'string'\n\t} catch {\n\t\treturn false\n\t}\n}\n"],"names":["originalConsole","message","args","yargs","hideBin","f","path","argv","fs","isValidMoonflowerOutput","prepareOpenApiSpec","manager","OpenApiManager","printAnalysisStats","spec","generateOpenApiSpec","filePath","content","parsed"],"mappings":";;;;;;;;AAUA,MAAMA,IAAkB,QAAQ;AAChC,QAAQ,OAAO,CAACC,MAAYC,MAAS;AACpC,EAAAF,EAAgB,GAAGC,CAAO,IAAI,GAAGC,CAAI;AACtC;AAEAC,EAAMC,EAAQ,QAAQ,IAAI,CAAC,EACzB,eAAe,EAAI,EACnB,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,UAAU;AAAA,EACV,SAAS;AAAA,IACR,YAAY;AAAA,MACX,UAAU;AAAA,MACV,cAAc;AAAA,MACd,MAAM;AAAA,MACN,QAAQ,CAACC,MAAMC,EAAK,QAAQD,CAAC;AAAA,IAC9B;AAAA,IAEA,cAAc;AAAA,MACb,UAAU;AAAA,MACV,MAAM;AAAA,MACN,QAAQ,CAACA,MAAMC,EAAK,QAAQD,CAAC;AAAA,IAC9B;AAAA,IAEA,OAAO;AAAA,MACN,UAAU;AAAA,MACV,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,EAEX;AAAA,EAEA,QAAQE,GAAyF;AAChG,QAAIC,EAAG,WAAWD,EAAK,UAAU,KAC5B,CAACA,EAAK,SAAS,CAACE,EAAwBF,EAAK,UAAU,GAAG;AACrD,cAAA;AAAA,QACP,kCAAkCA,EAAK,UAAU;AAAA,MAClD;AACA;AAAA,IAAA;AAIF,QAAIA,EAAK,gBAAgB,CAACC,EAAG,WAAWD,EAAK,YAAY,GAAG;AAC3D,cAAQ,MAAM,6CAA6CA,EAAK,YAAY,EAAE;AAC9E;AAAA,IAAA;AAGkB,IAAAG,EAAA;AAAA,MAClB,cAAcH,EAAK,gBAAgB;AAAA,IAAA,CACnC;AAEK,UAAAI,IAAUC,EAAe,YAAY;AACxB,IAAAC,EAAAF,EAAQ,UAAU;AAE/B,UAAAG,IAAOC,EAAoBJ,CAAO;AACxC,IAAAH,EAAG,cAAcD,EAAK,YAAY,KAAK,UAAUO,CAAI,CAAC;AAAA,EAAA;AAExD,CAAC,EACA,cAAc,EACd,MAAM;AAER,SAASL,EAAwBO,GAA2B;AACvD,MAAA;AACH,UAAMC,IAAUT,EAAG,aAAaQ,GAAU,OAAO,GAC3CE,IAAS,KAAK,MAAMD,CAAO;AACjC,WAAO,OAAOC,KAAW,YAAYA,MAAW,QAAQ,OAAOA,EAAO,WAAY;AAAA,EAAA,QAC3E;AACA,WAAA;AAAA,EAAA;AAET;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../utils/logger.cjs"),n=o=>{o.explicitRouterFiles.forEach(e=>t(e)),o.discoveredRouterFiles.forEach(e=>t(e))},t=o=>{r.Logger.info(`${o.path}`),o.routers.forEach(e=>{r.Logger.info(`└ ${e.name}`),e.endpoints.forEach(i=>{r.Logger.info(` └ ${i}`)})})};exports.printAnalysisStats=n;exports.printRouterFile=t;
2
+ //# sourceMappingURL=prettyprint.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prettyprint.cjs","sources":["../../src/cli/prettyprint.ts"],"sourcesContent":["import { ApiAnalysisStats } from '../openapi/manager/OpenApiManager'\nimport { Logger } from '../utils/logger'\n\nexport const printAnalysisStats = (stats: ApiAnalysisStats) => {\n\tstats.explicitRouterFiles.forEach((file) => printRouterFile(file))\n\tstats.discoveredRouterFiles.forEach((file) => printRouterFile(file))\n}\n\nexport const printRouterFile = (file: ApiAnalysisStats['discoveredRouterFiles'][number]) => {\n\tLogger.info(`${file.path}`)\n\tfile.routers.forEach((r) => {\n\t\tLogger.info(`└ ${r.name}`)\n\t\tr.endpoints.forEach((e) => {\n\t\t\tLogger.info(` └ ${e}`)\n\t\t})\n\t})\n}\n"],"names":["printAnalysisStats","stats","file","printRouterFile","Logger","r","e"],"mappings":"uHAGaA,EAAsBC,GAA4B,CAC9DA,EAAM,oBAAoB,QAASC,GAASC,EAAgBD,CAAI,CAAC,EACjED,EAAM,sBAAsB,QAASC,GAASC,EAAgBD,CAAI,CAAC,CACpE,EAEaC,EAAmBD,GAA4D,CAC3FE,EAAAA,OAAO,KAAK,GAAGF,EAAK,IAAI,EAAE,EACrBA,EAAA,QAAQ,QAASG,GAAM,CAC3BD,EAAA,OAAO,KAAK,KAAKC,EAAE,IAAI,EAAE,EACvBA,EAAA,UAAU,QAASC,GAAM,CACnBF,EAAAA,OAAA,KAAK,OAAOE,CAAC,EAAE,CAAA,CACtB,CAAA,CACD,CACF"}
@@ -0,0 +1,5 @@
1
+ import { ApiAnalysisStats } from '../openapi/manager/OpenApiManager';
2
+
3
+ export declare const printAnalysisStats: (stats: ApiAnalysisStats) => void;
4
+ export declare const printRouterFile: (file: ApiAnalysisStats["discoveredRouterFiles"][number]) => void;
5
+ //# sourceMappingURL=prettyprint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prettyprint.d.ts","sourceRoot":"","sources":["../../src/cli/prettyprint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AAGpE,eAAO,MAAM,kBAAkB,UAAW,gBAAgB,SAGzD,CAAA;AAED,eAAO,MAAM,eAAe,SAAU,gBAAgB,CAAC,uBAAuB,CAAC,CAAC,MAAM,CAAC,SAQtF,CAAA"}
@@ -0,0 +1,15 @@
1
+ import { Logger as e } from "../utils/logger.mjs";
2
+ const c = (r) => {
3
+ r.explicitRouterFiles.forEach((o) => i(o)), r.discoveredRouterFiles.forEach((o) => i(o));
4
+ }, i = (r) => {
5
+ e.info(`${r.path}`), r.routers.forEach((o) => {
6
+ e.info(`└ ${o.name}`), o.endpoints.forEach((t) => {
7
+ e.info(` └ ${t}`);
8
+ });
9
+ });
10
+ };
11
+ export {
12
+ c as printAnalysisStats,
13
+ i as printRouterFile
14
+ };
15
+ //# sourceMappingURL=prettyprint.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prettyprint.mjs","sources":["../../src/cli/prettyprint.ts"],"sourcesContent":["import { ApiAnalysisStats } from '../openapi/manager/OpenApiManager'\nimport { Logger } from '../utils/logger'\n\nexport const printAnalysisStats = (stats: ApiAnalysisStats) => {\n\tstats.explicitRouterFiles.forEach((file) => printRouterFile(file))\n\tstats.discoveredRouterFiles.forEach((file) => printRouterFile(file))\n}\n\nexport const printRouterFile = (file: ApiAnalysisStats['discoveredRouterFiles'][number]) => {\n\tLogger.info(`${file.path}`)\n\tfile.routers.forEach((r) => {\n\t\tLogger.info(`└ ${r.name}`)\n\t\tr.endpoints.forEach((e) => {\n\t\t\tLogger.info(` └ ${e}`)\n\t\t})\n\t})\n}\n"],"names":["printAnalysisStats","stats","file","printRouterFile","Logger","r","e"],"mappings":";AAGa,MAAAA,IAAqB,CAACC,MAA4B;AAC9D,EAAAA,EAAM,oBAAoB,QAAQ,CAACC,MAASC,EAAgBD,CAAI,CAAC,GACjED,EAAM,sBAAsB,QAAQ,CAACC,MAASC,EAAgBD,CAAI,CAAC;AACpE,GAEaC,IAAkB,CAACD,MAA4D;AAC3F,EAAAE,EAAO,KAAK,GAAGF,EAAK,IAAI,EAAE,GACrBA,EAAA,QAAQ,QAAQ,CAACG,MAAM;AAC3B,IAAAD,EAAO,KAAK,KAAKC,EAAE,IAAI,EAAE,GACvBA,EAAA,UAAU,QAAQ,CAACC,MAAM;AACnB,MAAAF,EAAA,KAAK,OAAOE,CAAC,EAAE;AAAA,IAAA,CACtB;AAAA,EAAA,CACD;AACF;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("./analyzerModule/analyzerModule.cjs"),n=require("./router/OpenApiRouter.cjs"),u=t=>{p.prepareOpenApiSpec(t);const i=n.OpenApiRouter.routes(),o=n.OpenApiRouter.allowedMethods();return(e,r)=>i(e,()=>o(e,r))};exports.initOpenApiEngine=u;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("fs"),a=require("./manager/OpenApiManager.cjs"),i=require("./router/OpenApiRouter.cjs");function u(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const l=u(c),p=e=>{const t="specPath"in e?d(e.specPath):Promise.resolve().then(()=>require("./analyzerModule/analyzerModule.cjs")).then(({prepareOpenApiSpec:o})=>o(e)),n=i.OpenApiRouter.routes(),r=i.OpenApiRouter.allowedMethods();return async(o,s)=>(await t,n(o,()=>r(o,s)))},d=e=>{const t=a.OpenApiManager.getInstance();if(t.isReady())return;const n=l.readFileSync(e,"utf-8"),r=JSON.parse(n);t.setPrebuiltSpec(r),t.markAsReady()};exports.initOpenApiEngine=p;
2
2
  //# sourceMappingURL=initOpenApiEngine.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"initOpenApiEngine.cjs","sources":["../../src/openapi/initOpenApiEngine.ts"],"sourcesContent":["import Koa from 'koa'\n\nimport { prepareOpenApiSpec } from './analyzerModule/analyzerModule'\nimport { OpenApiRouter } from './router/OpenApiRouter'\n\n/**\n * Middleware to initialize the openApi engine.\n * Can be at any position in the middleware execution order.\n * All files with routers or exposed models must be included in `props.sourceFilePaths`.\n * @param props Paths to files to analyze, relative to project root.\n */\nexport const initOpenApiEngine = (props: Parameters<typeof prepareOpenApiSpec>[0]) => {\n\tprepareOpenApiSpec(props)\n\n\tconst builtInRoutes = OpenApiRouter.routes()\n\tconst builtInAllowedMethods = OpenApiRouter.allowedMethods()\n\treturn (ctx: Koa.ParameterizedContext<any, any>, next: Koa.Next) => {\n\t\treturn builtInRoutes(ctx, () => builtInAllowedMethods(ctx, next))\n\t}\n}\n"],"names":["initOpenApiEngine","props","prepareOpenApiSpec","builtInRoutes","OpenApiRouter","builtInAllowedMethods","ctx","next"],"mappings":"+KAWaA,EAAqBC,GAAoD,CACrFC,EAAAA,mBAAmBD,CAAK,EAElB,MAAAE,EAAgBC,gBAAc,OAAO,EACrCC,EAAwBD,gBAAc,eAAe,EACpD,MAAA,CAACE,EAAyCC,IACzCJ,EAAcG,EAAK,IAAMD,EAAsBC,EAAKC,CAAI,CAAC,CAElE"}
1
+ {"version":3,"file":"initOpenApiEngine.cjs","sources":["../../src/openapi/initOpenApiEngine.ts"],"sourcesContent":["import * as fs from 'fs'\nimport Koa from 'koa'\n\nimport type * as AnalyzerModule from './analyzerModule/analyzerModule'\nimport { OpenApiManager } from './manager/OpenApiManager'\nimport { OpenApiRouter } from './router/OpenApiRouter'\n\ntype AnalyzerProps = Parameters<typeof AnalyzerModule.prepareOpenApiSpec>[0]\n\ntype PrebuiltSpecProps = {\n\t/**\n\t * Path to a pre-built OpenAPI spec JSON file.\n\t * When provided, the analyzer is skipped entirely and the spec is served from this file.\n\t * Use this in production to avoid running the TypeScript analyzer on startup.\n\t *\n\t * Generate the spec file at build time using the CLI:\n\t * ```\n\t * moonflower openapi ./openapi-spec.json\n\t * ```\n\t */\n\tspecPath: string\n}\n\n/**\n * Middleware to initialize the openApi engine.\n * Can be at any position in the middleware execution order.\n *\n * In development, pass analyzer options to generate the spec on startup:\n * ```\n * initOpenApiEngine({ tsconfigPath: 'tsconfig.json', sourceFileDiscovery: true })\n * ```\n *\n * In production, pass a pre-built spec file to skip analysis:\n * ```\n * initOpenApiEngine({ specPath: './openapi-spec.json' })\n * ```\n */\nexport const initOpenApiEngine = (props: AnalyzerProps | PrebuiltSpecProps) => {\n\tconst ready =\n\t\t'specPath' in props\n\t\t\t? loadPrebuiltSpec(props.specPath)\n\t\t\t: import('./analyzerModule/analyzerModule').then(({ prepareOpenApiSpec }) => prepareOpenApiSpec(props))\n\n\tconst builtInRoutes = OpenApiRouter.routes()\n\tconst builtInAllowedMethods = OpenApiRouter.allowedMethods()\n\treturn async (ctx: Koa.ParameterizedContext<any, any>, next: Koa.Next) => {\n\t\tawait ready\n\t\treturn builtInRoutes(ctx, () => builtInAllowedMethods(ctx, next))\n\t}\n}\n\nconst loadPrebuiltSpec = (specPath: string) => {\n\tconst manager = OpenApiManager.getInstance()\n\tif (manager.isReady()) {\n\t\treturn\n\t}\n\n\tconst content = fs.readFileSync(specPath, 'utf-8')\n\tconst spec = JSON.parse(content)\n\tmanager.setPrebuiltSpec(spec)\n\tmanager.markAsReady()\n}\n"],"names":["initOpenApiEngine","props","ready","loadPrebuiltSpec","prepareOpenApiSpec","builtInRoutes","OpenApiRouter","builtInAllowedMethods","ctx","next","specPath","manager","OpenApiManager","content","fs","spec"],"mappings":"kdAqCaA,EAAqBC,GAA6C,CAC9E,MAAMC,EACL,aAAcD,EACXE,EAAiBF,EAAM,QAAQ,EAC/B,QAAO,QAAA,EAAA,KAAA,IAAA,QAAA,qCAAiC,CAAA,EAAE,KAAK,CAAC,CAAE,mBAAAG,KAAyBA,EAAmBH,CAAK,CAAC,EAElGI,EAAgBC,gBAAc,OAAO,EACrCC,EAAwBD,gBAAc,eAAe,EACpD,MAAA,OAAOE,EAAyCC,KAChD,MAAAP,EACCG,EAAcG,EAAK,IAAMD,EAAsBC,EAAKC,CAAI,CAAC,EAElE,EAEMN,EAAoBO,GAAqB,CACxC,MAAAC,EAAUC,iBAAe,YAAY,EACvC,GAAAD,EAAQ,UACX,OAGD,MAAME,EAAUC,EAAG,aAAaJ,EAAU,OAAO,EAC3CK,EAAO,KAAK,MAAMF,CAAO,EAC/BF,EAAQ,gBAAgBI,CAAI,EAC5BJ,EAAQ,YAAY,CACrB"}
@@ -1,5 +1,10 @@
1
1
  import { default as Koa } from 'koa';
2
- import { prepareOpenApiSpec } from './analyzerModule/analyzerModule';
3
2
 
4
- export declare const initOpenApiEngine: (props: Parameters<typeof prepareOpenApiSpec>[0]) => (ctx: Koa.ParameterizedContext<any, any>, next: Koa.Next) => any;
3
+ import type * as AnalyzerModule from './analyzerModule/analyzerModule';
4
+ type AnalyzerProps = Parameters<typeof AnalyzerModule.prepareOpenApiSpec>[0];
5
+ type PrebuiltSpecProps = {
6
+ specPath: string;
7
+ };
8
+ export declare const initOpenApiEngine: (props: AnalyzerProps | PrebuiltSpecProps) => (ctx: Koa.ParameterizedContext<any, any>, next: Koa.Next) => Promise<any>;
9
+ export {};
5
10
  //# sourceMappingURL=initOpenApiEngine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"initOpenApiEngine.d.ts","sourceRoot":"","sources":["../../src/openapi/initOpenApiEngine.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AAErB,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AASpE,eAAO,MAAM,iBAAiB,UAAW,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC,CAAC,WAKnE,GAAG,CAAC,oBAAoB,CAAC,GAAG,EAAE,GAAG,CAAC,QAAQ,GAAG,CAAC,IAAI,QAG/D,CAAA"}
1
+ {"version":3,"file":"initOpenApiEngine.d.ts","sourceRoot":"","sources":["../../src/openapi/initOpenApiEngine.ts"],"names":[],"mappings":"AACA,OAAO,GAAG,MAAM,KAAK,CAAA;AAErB,OAAO,KAAK,KAAK,cAAc,MAAM,iCAAiC,CAAA;AAItE,KAAK,aAAa,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAA;AAE5E,KAAK,iBAAiB,GAAG;IAWxB,QAAQ,EAAE,MAAM,CAAA;CAChB,CAAA;AAgBD,eAAO,MAAM,iBAAiB,UAAW,aAAa,GAAG,iBAAiB,WAQtD,GAAG,CAAC,oBAAoB,CAAC,GAAG,EAAE,GAAG,CAAC,QAAQ,GAAG,CAAC,IAAI,iBAIrE,CAAA"}
@@ -1,11 +1,17 @@
1
- import { prepareOpenApiSpec as i } from "./analyzerModule/analyzerModule.mjs";
2
- import { OpenApiRouter as o } from "./router/OpenApiRouter.mjs";
3
- const l = (t) => {
4
- i(t);
5
- const n = o.routes(), r = o.allowedMethods();
6
- return (e, p) => n(e, () => r(e, p));
1
+ import * as i from "fs";
2
+ import { OpenApiManager as c } from "./manager/OpenApiManager.mjs";
3
+ import { OpenApiRouter as s } from "./router/OpenApiRouter.mjs";
4
+ const d = (e) => {
5
+ const t = "specPath" in e ? p(e.specPath) : import("./analyzerModule/analyzerModule.mjs").then(({ prepareOpenApiSpec: n }) => n(e)), o = s.routes(), r = s.allowedMethods();
6
+ return async (n, a) => (await t, o(n, () => r(n, a)));
7
+ }, p = (e) => {
8
+ const t = c.getInstance();
9
+ if (t.isReady())
10
+ return;
11
+ const o = i.readFileSync(e, "utf-8"), r = JSON.parse(o);
12
+ t.setPrebuiltSpec(r), t.markAsReady();
7
13
  };
8
14
  export {
9
- l as initOpenApiEngine
15
+ d as initOpenApiEngine
10
16
  };
11
17
  //# sourceMappingURL=initOpenApiEngine.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"initOpenApiEngine.mjs","sources":["../../src/openapi/initOpenApiEngine.ts"],"sourcesContent":["import Koa from 'koa'\n\nimport { prepareOpenApiSpec } from './analyzerModule/analyzerModule'\nimport { OpenApiRouter } from './router/OpenApiRouter'\n\n/**\n * Middleware to initialize the openApi engine.\n * Can be at any position in the middleware execution order.\n * All files with routers or exposed models must be included in `props.sourceFilePaths`.\n * @param props Paths to files to analyze, relative to project root.\n */\nexport const initOpenApiEngine = (props: Parameters<typeof prepareOpenApiSpec>[0]) => {\n\tprepareOpenApiSpec(props)\n\n\tconst builtInRoutes = OpenApiRouter.routes()\n\tconst builtInAllowedMethods = OpenApiRouter.allowedMethods()\n\treturn (ctx: Koa.ParameterizedContext<any, any>, next: Koa.Next) => {\n\t\treturn builtInRoutes(ctx, () => builtInAllowedMethods(ctx, next))\n\t}\n}\n"],"names":["initOpenApiEngine","props","prepareOpenApiSpec","builtInRoutes","OpenApiRouter","builtInAllowedMethods","ctx","next"],"mappings":";;AAWa,MAAAA,IAAoB,CAACC,MAAoD;AACrF,EAAAC,EAAmBD,CAAK;AAElB,QAAAE,IAAgBC,EAAc,OAAO,GACrCC,IAAwBD,EAAc,eAAe;AACpD,SAAA,CAACE,GAAyCC,MACzCJ,EAAcG,GAAK,MAAMD,EAAsBC,GAAKC,CAAI,CAAC;AAElE;"}
1
+ {"version":3,"file":"initOpenApiEngine.mjs","sources":["../../src/openapi/initOpenApiEngine.ts"],"sourcesContent":["import * as fs from 'fs'\nimport Koa from 'koa'\n\nimport type * as AnalyzerModule from './analyzerModule/analyzerModule'\nimport { OpenApiManager } from './manager/OpenApiManager'\nimport { OpenApiRouter } from './router/OpenApiRouter'\n\ntype AnalyzerProps = Parameters<typeof AnalyzerModule.prepareOpenApiSpec>[0]\n\ntype PrebuiltSpecProps = {\n\t/**\n\t * Path to a pre-built OpenAPI spec JSON file.\n\t * When provided, the analyzer is skipped entirely and the spec is served from this file.\n\t * Use this in production to avoid running the TypeScript analyzer on startup.\n\t *\n\t * Generate the spec file at build time using the CLI:\n\t * ```\n\t * moonflower openapi ./openapi-spec.json\n\t * ```\n\t */\n\tspecPath: string\n}\n\n/**\n * Middleware to initialize the openApi engine.\n * Can be at any position in the middleware execution order.\n *\n * In development, pass analyzer options to generate the spec on startup:\n * ```\n * initOpenApiEngine({ tsconfigPath: 'tsconfig.json', sourceFileDiscovery: true })\n * ```\n *\n * In production, pass a pre-built spec file to skip analysis:\n * ```\n * initOpenApiEngine({ specPath: './openapi-spec.json' })\n * ```\n */\nexport const initOpenApiEngine = (props: AnalyzerProps | PrebuiltSpecProps) => {\n\tconst ready =\n\t\t'specPath' in props\n\t\t\t? loadPrebuiltSpec(props.specPath)\n\t\t\t: import('./analyzerModule/analyzerModule').then(({ prepareOpenApiSpec }) => prepareOpenApiSpec(props))\n\n\tconst builtInRoutes = OpenApiRouter.routes()\n\tconst builtInAllowedMethods = OpenApiRouter.allowedMethods()\n\treturn async (ctx: Koa.ParameterizedContext<any, any>, next: Koa.Next) => {\n\t\tawait ready\n\t\treturn builtInRoutes(ctx, () => builtInAllowedMethods(ctx, next))\n\t}\n}\n\nconst loadPrebuiltSpec = (specPath: string) => {\n\tconst manager = OpenApiManager.getInstance()\n\tif (manager.isReady()) {\n\t\treturn\n\t}\n\n\tconst content = fs.readFileSync(specPath, 'utf-8')\n\tconst spec = JSON.parse(content)\n\tmanager.setPrebuiltSpec(spec)\n\tmanager.markAsReady()\n}\n"],"names":["initOpenApiEngine","props","ready","loadPrebuiltSpec","prepareOpenApiSpec","builtInRoutes","OpenApiRouter","builtInAllowedMethods","ctx","next","specPath","manager","OpenApiManager","content","fs","spec"],"mappings":";;;AAqCa,MAAAA,IAAoB,CAACC,MAA6C;AAC9E,QAAMC,IACL,cAAcD,IACXE,EAAiBF,EAAM,QAAQ,IAC/B,OAAO,qCAAiC,EAAE,KAAK,CAAC,EAAE,oBAAAG,QAAyBA,EAAmBH,CAAK,CAAC,GAElGI,IAAgBC,EAAc,OAAO,GACrCC,IAAwBD,EAAc,eAAe;AACpD,SAAA,OAAOE,GAAyCC,OAChD,MAAAP,GACCG,EAAcG,GAAK,MAAMD,EAAsBC,GAAKC,CAAI,CAAC;AAElE,GAEMN,IAAmB,CAACO,MAAqB;AACxC,QAAAC,IAAUC,EAAe,YAAY;AACvC,MAAAD,EAAQ;AACX;AAGD,QAAME,IAAUC,EAAG,aAAaJ,GAAU,OAAO,GAC3CK,IAAO,KAAK,MAAMF,CAAO;AAC/B,EAAAF,EAAQ,gBAAgBI,CAAI,GAC5BJ,EAAQ,YAAY;AACrB;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});class t{constructor(e,s,i,r,n){this.apiDocsHeader=e,this.exposedModels=s,this.endpoints=i,this.preferences=r,this.stats=n,this.isInitialized=!1,this.registeredRouters=[]}static{this.instance=null}isReady(){return this.isInitialized}hasExposedModel(e){return this.exposedModels.some(s=>s.name===e)}getExposedModels(){return this.exposedModels}setExposedModels(e){return this.exposedModels=e,this}setEndpoints(e){return this.endpoints=e,this}markAsReady(){return this.isInitialized=!0,this}getHeader(){return this.apiDocsHeader}setHeader(e){return this.apiDocsHeader=e,this}getEndpoints(){return this.endpoints}getPreferences(){return this.preferences}setPreferences(e){return this.preferences={...e},this}getStats(){return this.stats}setStats(e){return this.stats={...e},this}getRouters(){return this.registeredRouters}registerRouters(e){return e.forEach(s=>this.registeredRouters.push(s)),this}reset(){this.exposedModels=[],this.endpoints=[]}static getInstance(){return t.instance||(t.instance=new t({title:"Default title",version:"1.0.0"},[],[],{allowOptionalPathParams:!1},{discoveredRouterFiles:[],explicitRouterFiles:[]})),t.instance}}exports.OpenApiManager=t;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});class t{constructor(e,s,i,r,n){this.apiDocsHeader=e,this.exposedModels=s,this.endpoints=i,this.preferences=r,this.stats=n,this.isInitialized=!1,this.registeredRouters=[],this.prebuiltSpec=null}static{this.instance=null}isReady(){return this.isInitialized}hasExposedModel(e){return this.exposedModels.some(s=>s.name===e)}getExposedModels(){return this.exposedModels}setExposedModels(e){return this.exposedModels=e,this}setEndpoints(e){return this.endpoints=e,this}markAsReady(){return this.isInitialized=!0,this}getHeader(){return this.apiDocsHeader}setHeader(e){return this.apiDocsHeader=e,this}getEndpoints(){return this.endpoints}getPreferences(){return this.preferences}setPreferences(e){return this.preferences={...e},this}getStats(){return this.stats}setStats(e){return this.stats={...e},this}getRouters(){return this.registeredRouters}registerRouters(e){return e.forEach(s=>this.registeredRouters.push(s)),this}getPrebuiltSpec(){return this.prebuiltSpec}setPrebuiltSpec(e){return this.prebuiltSpec=e,this}clearPrebuiltSpec(){return this.prebuiltSpec=null,this}reset(){this.exposedModels=[],this.endpoints=[],this.prebuiltSpec=null}static getInstance(){return t.instance||(t.instance=new t({title:"Default title",version:"1.0.0"},[],[],{allowOptionalPathParams:!1},{discoveredRouterFiles:[],explicitRouterFiles:[]})),t.instance}}exports.OpenApiManager=t;
2
2
  //# sourceMappingURL=OpenApiManager.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"OpenApiManager.cjs","sources":["../../../src/openapi/manager/OpenApiManager.ts"],"sourcesContent":["import { Router } from '../../router/Router'\nimport { EndpointData, ExposedModelData } from '../types'\n\ntype UrlType = `${'http' | 'https'}://${string}.${string}`\n\nexport type ApiDocsHeader = {\n\ttitle: string\n\tversion: string\n\tdescription?: string\n\ttermsOfService?: UrlType\n\tcontact?: {\n\t\tname?: string\n\t\turl?: UrlType\n\t\temail?: string\n\t}\n\tlicense?: {\n\t\tname?: string\n\t\turl?: UrlType\n\t}\n}\n\nexport type ApiDocsPreferences = {\n\tallowOptionalPathParams: boolean\n}\n\nexport type ApiAnalysisStats = {\n\texplicitRouterFiles: {\n\t\tpath: string\n\t\trouters: {\n\t\t\tname: string\n\t\t\tendpoints: string[]\n\t\t}[]\n\t}[]\n\tdiscoveredRouterFiles: {\n\t\tpath: string\n\t\trouters: {\n\t\t\tname: string\n\t\t\tendpoints: string[]\n\t\t}[]\n\t}[]\n}\n\nexport class OpenApiManager {\n\tprivate static instance: OpenApiManager | null = null\n\n\tprivate isInitialized = false\n\tprivate registeredRouters: Router[] = []\n\n\tconstructor(\n\t\tprivate apiDocsHeader: ApiDocsHeader,\n\t\tprivate exposedModels: ExposedModelData[],\n\t\tprivate endpoints: EndpointData[],\n\t\tprivate preferences: ApiDocsPreferences,\n\t\tprivate stats: ApiAnalysisStats,\n\t) {}\n\n\tpublic isReady(): boolean {\n\t\treturn this.isInitialized\n\t}\n\n\tpublic hasExposedModel(name: string) {\n\t\treturn this.exposedModels.some((model) => model.name === name)\n\t}\n\n\tpublic getExposedModels() {\n\t\treturn this.exposedModels\n\t}\n\n\tpublic setExposedModels(models: ExposedModelData[]) {\n\t\tthis.exposedModels = models\n\t\treturn this\n\t}\n\n\tpublic setEndpoints(endpoints: EndpointData[]) {\n\t\tthis.endpoints = endpoints\n\t\treturn this\n\t}\n\n\tpublic markAsReady() {\n\t\tthis.isInitialized = true\n\t\treturn this\n\t}\n\n\tpublic getHeader(): ApiDocsHeader {\n\t\treturn this.apiDocsHeader\n\t}\n\n\tpublic setHeader(docs: ApiDocsHeader) {\n\t\tthis.apiDocsHeader = docs\n\t\treturn this\n\t}\n\n\tpublic getEndpoints() {\n\t\treturn this.endpoints\n\t}\n\n\tpublic getPreferences() {\n\t\treturn this.preferences\n\t}\n\n\tpublic setPreferences(preferences: ApiDocsPreferences) {\n\t\tthis.preferences = {\n\t\t\t...preferences,\n\t\t}\n\t\treturn this\n\t}\n\n\tpublic getStats() {\n\t\treturn this.stats\n\t}\n\n\tpublic setStats(stats: ApiAnalysisStats) {\n\t\tthis.stats = {\n\t\t\t...stats,\n\t\t}\n\t\treturn this\n\t}\n\n\tpublic getRouters(): readonly Router[] {\n\t\treturn this.registeredRouters\n\t}\n\n\tpublic registerRouters(routers: Router<any, any>[]) {\n\t\trouters.forEach((r) => this.registeredRouters.push(r))\n\t\treturn this\n\t}\n\n\tpublic reset() {\n\t\tthis.exposedModels = []\n\t\tthis.endpoints = []\n\t}\n\n\tpublic static getInstance() {\n\t\tif (!OpenApiManager.instance) {\n\t\t\tOpenApiManager.instance = new OpenApiManager(\n\t\t\t\t{\n\t\t\t\t\ttitle: 'Default title',\n\t\t\t\t\tversion: '1.0.0',\n\t\t\t\t},\n\t\t\t\t[],\n\t\t\t\t[],\n\t\t\t\t{\n\t\t\t\t\tallowOptionalPathParams: false,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tdiscoveredRouterFiles: [],\n\t\t\t\t\texplicitRouterFiles: [],\n\t\t\t\t},\n\t\t\t)\n\t\t}\n\t\treturn OpenApiManager.instance\n\t}\n}\n"],"names":["OpenApiManager","apiDocsHeader","exposedModels","endpoints","preferences","stats","name","model","models","docs","routers","r"],"mappings":"gFA0CO,MAAMA,CAAe,CAM3B,YACSC,EACAC,EACAC,EACAC,EACAC,EACP,CALO,KAAA,cAAAJ,EACA,KAAA,cAAAC,EACA,KAAA,UAAAC,EACA,KAAA,YAAAC,EACA,KAAA,MAAAC,EART,KAAQ,cAAgB,GACxB,KAAQ,kBAA8B,CAAC,CAAA,CAHvC,MAAA,CAAA,KAAe,SAAkC,IAAA,CAa1C,SAAmB,CACzB,OAAO,KAAK,aAAA,CAGN,gBAAgBC,EAAc,CACpC,OAAO,KAAK,cAAc,KAAMC,GAAUA,EAAM,OAASD,CAAI,CAAA,CAGvD,kBAAmB,CACzB,OAAO,KAAK,aAAA,CAGN,iBAAiBE,EAA4B,CACnD,YAAK,cAAgBA,EACd,IAAA,CAGD,aAAaL,EAA2B,CAC9C,YAAK,UAAYA,EACV,IAAA,CAGD,aAAc,CACpB,YAAK,cAAgB,GACd,IAAA,CAGD,WAA2B,CACjC,OAAO,KAAK,aAAA,CAGN,UAAUM,EAAqB,CACrC,YAAK,cAAgBA,EACd,IAAA,CAGD,cAAe,CACrB,OAAO,KAAK,SAAA,CAGN,gBAAiB,CACvB,OAAO,KAAK,WAAA,CAGN,eAAeL,EAAiC,CACtD,YAAK,YAAc,CAClB,GAAGA,CACJ,EACO,IAAA,CAGD,UAAW,CACjB,OAAO,KAAK,KAAA,CAGN,SAASC,EAAyB,CACxC,YAAK,MAAQ,CACZ,GAAGA,CACJ,EACO,IAAA,CAGD,YAAgC,CACtC,OAAO,KAAK,iBAAA,CAGN,gBAAgBK,EAA6B,CACnD,OAAAA,EAAQ,QAASC,GAAM,KAAK,kBAAkB,KAAKA,CAAC,CAAC,EAC9C,IAAA,CAGD,OAAQ,CACd,KAAK,cAAgB,CAAC,EACtB,KAAK,UAAY,CAAC,CAAA,CAGnB,OAAc,aAAc,CACvB,OAACX,EAAe,WACnBA,EAAe,SAAW,IAAIA,EAC7B,CACC,MAAO,gBACP,QAAS,OACV,EACA,CAAC,EACD,CAAC,EACD,CACC,wBAAyB,EAC1B,EACA,CACC,sBAAuB,CAAC,EACxB,oBAAqB,CAAA,CAAC,CAExB,GAEMA,EAAe,QAAA,CAExB"}
1
+ {"version":3,"file":"OpenApiManager.cjs","sources":["../../../src/openapi/manager/OpenApiManager.ts"],"sourcesContent":["import { Router } from '../../router/Router'\nimport { EndpointData, ExposedModelData } from '../types'\n\ntype UrlType = `${'http' | 'https'}://${string}.${string}`\n\nexport type ApiDocsHeader = {\n\ttitle: string\n\tversion: string\n\tdescription?: string\n\ttermsOfService?: UrlType\n\tcontact?: {\n\t\tname?: string\n\t\turl?: UrlType\n\t\temail?: string\n\t}\n\tlicense?: {\n\t\tname?: string\n\t\turl?: UrlType\n\t}\n}\n\nexport type ApiDocsPreferences = {\n\tallowOptionalPathParams: boolean\n}\n\nexport type ApiAnalysisStats = {\n\texplicitRouterFiles: {\n\t\tpath: string\n\t\trouters: {\n\t\t\tname: string\n\t\t\tendpoints: string[]\n\t\t}[]\n\t}[]\n\tdiscoveredRouterFiles: {\n\t\tpath: string\n\t\trouters: {\n\t\t\tname: string\n\t\t\tendpoints: string[]\n\t\t}[]\n\t}[]\n}\n\nexport class OpenApiManager {\n\tprivate static instance: OpenApiManager | null = null\n\n\tprivate isInitialized = false\n\tprivate registeredRouters: Router[] = []\n\tprivate prebuiltSpec: Record<string, unknown> | null = null\n\n\tconstructor(\n\t\tprivate apiDocsHeader: ApiDocsHeader,\n\t\tprivate exposedModels: ExposedModelData[],\n\t\tprivate endpoints: EndpointData[],\n\t\tprivate preferences: ApiDocsPreferences,\n\t\tprivate stats: ApiAnalysisStats,\n\t) {}\n\n\tpublic isReady(): boolean {\n\t\treturn this.isInitialized\n\t}\n\n\tpublic hasExposedModel(name: string) {\n\t\treturn this.exposedModels.some((model) => model.name === name)\n\t}\n\n\tpublic getExposedModels() {\n\t\treturn this.exposedModels\n\t}\n\n\tpublic setExposedModels(models: ExposedModelData[]) {\n\t\tthis.exposedModels = models\n\t\treturn this\n\t}\n\n\tpublic setEndpoints(endpoints: EndpointData[]) {\n\t\tthis.endpoints = endpoints\n\t\treturn this\n\t}\n\n\tpublic markAsReady() {\n\t\tthis.isInitialized = true\n\t\treturn this\n\t}\n\n\tpublic getHeader(): ApiDocsHeader {\n\t\treturn this.apiDocsHeader\n\t}\n\n\tpublic setHeader(docs: ApiDocsHeader) {\n\t\tthis.apiDocsHeader = docs\n\t\treturn this\n\t}\n\n\tpublic getEndpoints() {\n\t\treturn this.endpoints\n\t}\n\n\tpublic getPreferences() {\n\t\treturn this.preferences\n\t}\n\n\tpublic setPreferences(preferences: ApiDocsPreferences) {\n\t\tthis.preferences = {\n\t\t\t...preferences,\n\t\t}\n\t\treturn this\n\t}\n\n\tpublic getStats() {\n\t\treturn this.stats\n\t}\n\n\tpublic setStats(stats: ApiAnalysisStats) {\n\t\tthis.stats = {\n\t\t\t...stats,\n\t\t}\n\t\treturn this\n\t}\n\n\tpublic getRouters(): readonly Router[] {\n\t\treturn this.registeredRouters\n\t}\n\n\tpublic registerRouters(routers: Router<any, any>[]) {\n\t\trouters.forEach((r) => this.registeredRouters.push(r))\n\t\treturn this\n\t}\n\n\tpublic getPrebuiltSpec(): Record<string, unknown> | null {\n\t\treturn this.prebuiltSpec\n\t}\n\n\tpublic setPrebuiltSpec(spec: Record<string, unknown>) {\n\t\tthis.prebuiltSpec = spec\n\t\treturn this\n\t}\n\n\tpublic clearPrebuiltSpec() {\n\t\tthis.prebuiltSpec = null\n\t\treturn this\n\t}\n\n\tpublic reset() {\n\t\tthis.exposedModels = []\n\t\tthis.endpoints = []\n\t\tthis.prebuiltSpec = null\n\t}\n\n\tpublic static getInstance() {\n\t\tif (!OpenApiManager.instance) {\n\t\t\tOpenApiManager.instance = new OpenApiManager(\n\t\t\t\t{\n\t\t\t\t\ttitle: 'Default title',\n\t\t\t\t\tversion: '1.0.0',\n\t\t\t\t},\n\t\t\t\t[],\n\t\t\t\t[],\n\t\t\t\t{\n\t\t\t\t\tallowOptionalPathParams: false,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tdiscoveredRouterFiles: [],\n\t\t\t\t\texplicitRouterFiles: [],\n\t\t\t\t},\n\t\t\t)\n\t\t}\n\t\treturn OpenApiManager.instance\n\t}\n}\n"],"names":["OpenApiManager","apiDocsHeader","exposedModels","endpoints","preferences","stats","name","model","models","docs","routers","r","spec"],"mappings":"gFA0CO,MAAMA,CAAe,CAO3B,YACSC,EACAC,EACAC,EACAC,EACAC,EACP,CALO,KAAA,cAAAJ,EACA,KAAA,cAAAC,EACA,KAAA,UAAAC,EACA,KAAA,YAAAC,EACA,KAAA,MAAAC,EATT,KAAQ,cAAgB,GACxB,KAAQ,kBAA8B,CAAC,EACvC,KAAQ,aAA+C,IAAA,CAJvD,MAAA,CAAA,KAAe,SAAkC,IAAA,CAc1C,SAAmB,CACzB,OAAO,KAAK,aAAA,CAGN,gBAAgBC,EAAc,CACpC,OAAO,KAAK,cAAc,KAAMC,GAAUA,EAAM,OAASD,CAAI,CAAA,CAGvD,kBAAmB,CACzB,OAAO,KAAK,aAAA,CAGN,iBAAiBE,EAA4B,CACnD,YAAK,cAAgBA,EACd,IAAA,CAGD,aAAaL,EAA2B,CAC9C,YAAK,UAAYA,EACV,IAAA,CAGD,aAAc,CACpB,YAAK,cAAgB,GACd,IAAA,CAGD,WAA2B,CACjC,OAAO,KAAK,aAAA,CAGN,UAAUM,EAAqB,CACrC,YAAK,cAAgBA,EACd,IAAA,CAGD,cAAe,CACrB,OAAO,KAAK,SAAA,CAGN,gBAAiB,CACvB,OAAO,KAAK,WAAA,CAGN,eAAeL,EAAiC,CACtD,YAAK,YAAc,CAClB,GAAGA,CACJ,EACO,IAAA,CAGD,UAAW,CACjB,OAAO,KAAK,KAAA,CAGN,SAASC,EAAyB,CACxC,YAAK,MAAQ,CACZ,GAAGA,CACJ,EACO,IAAA,CAGD,YAAgC,CACtC,OAAO,KAAK,iBAAA,CAGN,gBAAgBK,EAA6B,CACnD,OAAAA,EAAQ,QAASC,GAAM,KAAK,kBAAkB,KAAKA,CAAC,CAAC,EAC9C,IAAA,CAGD,iBAAkD,CACxD,OAAO,KAAK,YAAA,CAGN,gBAAgBC,EAA+B,CACrD,YAAK,aAAeA,EACb,IAAA,CAGD,mBAAoB,CAC1B,YAAK,aAAe,KACb,IAAA,CAGD,OAAQ,CACd,KAAK,cAAgB,CAAC,EACtB,KAAK,UAAY,CAAC,EAClB,KAAK,aAAe,IAAA,CAGrB,OAAc,aAAc,CACvB,OAACZ,EAAe,WACnBA,EAAe,SAAW,IAAIA,EAC7B,CACC,MAAO,gBACP,QAAS,OACV,EACA,CAAC,EACD,CAAC,EACD,CACC,wBAAyB,EAC1B,EACA,CACC,sBAAuB,CAAC,EACxB,oBAAqB,CAAA,CAAC,CAExB,GAEMA,EAAe,QAAA,CAExB"}
@@ -45,6 +45,7 @@ export declare class OpenApiManager {
45
45
  private static instance;
46
46
  private isInitialized;
47
47
  private registeredRouters;
48
+ private prebuiltSpec;
48
49
  constructor(apiDocsHeader: ApiDocsHeader, exposedModels: ExposedModelData[], endpoints: EndpointData[], preferences: ApiDocsPreferences, stats: ApiAnalysisStats);
49
50
  isReady(): boolean;
50
51
  hasExposedModel(name: string): boolean;
@@ -61,6 +62,9 @@ export declare class OpenApiManager {
61
62
  setStats(stats: ApiAnalysisStats): this;
62
63
  getRouters(): readonly Router[];
63
64
  registerRouters(routers: Router<any, any>[]): this;
65
+ getPrebuiltSpec(): Record<string, unknown> | null;
66
+ setPrebuiltSpec(spec: Record<string, unknown>): this;
67
+ clearPrebuiltSpec(): this;
64
68
  reset(): void;
65
69
  static getInstance(): OpenApiManager;
66
70
  }
@@ -1 +1 @@
1
- {"version":3,"file":"OpenApiManager.d.ts","sourceRoot":"","sources":["../../../src/openapi/manager/OpenApiManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAEzD,KAAK,OAAO,GAAG,GAAG,MAAM,GAAG,OAAO,MAAM,MAAM,IAAI,MAAM,EAAE,CAAA;AAE1D,MAAM,MAAM,aAAa,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,OAAO,CAAC,EAAE;QACT,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,GAAG,CAAC,EAAE,OAAO,CAAA;QACb,KAAK,CAAC,EAAE,MAAM,CAAA;KACd,CAAA;IACD,OAAO,CAAC,EAAE;QACT,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,GAAG,CAAC,EAAE,OAAO,CAAA;KACb,CAAA;CACD,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAChC,uBAAuB,EAAE,OAAO,CAAA;CAChC,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC9B,mBAAmB,EAAE;QACpB,IAAI,EAAE,MAAM,CAAA;QACZ,OAAO,EAAE;YACR,IAAI,EAAE,MAAM,CAAA;YACZ,SAAS,EAAE,MAAM,EAAE,CAAA;SACnB,EAAE,CAAA;KACH,EAAE,CAAA;IACH,qBAAqB,EAAE;QACtB,IAAI,EAAE,MAAM,CAAA;QACZ,OAAO,EAAE;YACR,IAAI,EAAE,MAAM,CAAA;YACZ,SAAS,EAAE,MAAM,EAAE,CAAA;SACnB,EAAE,CAAA;KACH,EAAE,CAAA;CACH,CAAA;AAED,qBAAa,cAAc;IAOzB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,KAAK;IAVd,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA8B;IAErD,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,iBAAiB,CAAe;gBAG/B,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,gBAAgB,EAAE,EACjC,SAAS,EAAE,YAAY,EAAE,EACzB,WAAW,EAAE,kBAAkB,EAC/B,KAAK,EAAE,gBAAgB;IAGzB,OAAO,IAAI,OAAO;IAIlB,eAAe,CAAC,IAAI,EAAE,MAAM;IAI5B,gBAAgB;IAIhB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,EAAE;IAK3C,YAAY,CAAC,SAAS,EAAE,YAAY,EAAE;IAKtC,WAAW;IAKX,SAAS,IAAI,aAAa;IAI1B,SAAS,CAAC,IAAI,EAAE,aAAa;IAK7B,YAAY;IAIZ,cAAc;IAId,cAAc,CAAC,WAAW,EAAE,kBAAkB;IAO9C,QAAQ;IAIR,QAAQ,CAAC,KAAK,EAAE,gBAAgB;IAOhC,UAAU,IAAI,SAAS,MAAM,EAAE;IAI/B,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;IAK3C,KAAK;WAKE,WAAW;CAoBzB"}
1
+ {"version":3,"file":"OpenApiManager.d.ts","sourceRoot":"","sources":["../../../src/openapi/manager/OpenApiManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAEzD,KAAK,OAAO,GAAG,GAAG,MAAM,GAAG,OAAO,MAAM,MAAM,IAAI,MAAM,EAAE,CAAA;AAE1D,MAAM,MAAM,aAAa,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,OAAO,CAAC,EAAE;QACT,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,GAAG,CAAC,EAAE,OAAO,CAAA;QACb,KAAK,CAAC,EAAE,MAAM,CAAA;KACd,CAAA;IACD,OAAO,CAAC,EAAE;QACT,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,GAAG,CAAC,EAAE,OAAO,CAAA;KACb,CAAA;CACD,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAChC,uBAAuB,EAAE,OAAO,CAAA;CAChC,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC9B,mBAAmB,EAAE;QACpB,IAAI,EAAE,MAAM,CAAA;QACZ,OAAO,EAAE;YACR,IAAI,EAAE,MAAM,CAAA;YACZ,SAAS,EAAE,MAAM,EAAE,CAAA;SACnB,EAAE,CAAA;KACH,EAAE,CAAA;IACH,qBAAqB,EAAE;QACtB,IAAI,EAAE,MAAM,CAAA;QACZ,OAAO,EAAE;YACR,IAAI,EAAE,MAAM,CAAA;YACZ,SAAS,EAAE,MAAM,EAAE,CAAA;SACnB,EAAE,CAAA;KACH,EAAE,CAAA;CACH,CAAA;AAED,qBAAa,cAAc;IAQzB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,KAAK;IAXd,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA8B;IAErD,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,iBAAiB,CAAe;IACxC,OAAO,CAAC,YAAY,CAAuC;gBAGlD,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,gBAAgB,EAAE,EACjC,SAAS,EAAE,YAAY,EAAE,EACzB,WAAW,EAAE,kBAAkB,EAC/B,KAAK,EAAE,gBAAgB;IAGzB,OAAO,IAAI,OAAO;IAIlB,eAAe,CAAC,IAAI,EAAE,MAAM;IAI5B,gBAAgB;IAIhB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,EAAE;IAK3C,YAAY,CAAC,SAAS,EAAE,YAAY,EAAE;IAKtC,WAAW;IAKX,SAAS,IAAI,aAAa;IAI1B,SAAS,CAAC,IAAI,EAAE,aAAa;IAK7B,YAAY;IAIZ,cAAc;IAId,cAAc,CAAC,WAAW,EAAE,kBAAkB;IAO9C,QAAQ;IAIR,QAAQ,CAAC,KAAK,EAAE,gBAAgB;IAOhC,UAAU,IAAI,SAAS,MAAM,EAAE;IAI/B,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;IAK3C,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAIjD,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAK7C,iBAAiB;IAKjB,KAAK;WAME,WAAW;CAoBzB"}
@@ -1,6 +1,6 @@
1
1
  class s {
2
2
  constructor(e, t, i, r, n) {
3
- this.apiDocsHeader = e, this.exposedModels = t, this.endpoints = i, this.preferences = r, this.stats = n, this.isInitialized = !1, this.registeredRouters = [];
3
+ this.apiDocsHeader = e, this.exposedModels = t, this.endpoints = i, this.preferences = r, this.stats = n, this.isInitialized = !1, this.registeredRouters = [], this.prebuiltSpec = null;
4
4
  }
5
5
  static {
6
6
  this.instance = null;
@@ -54,8 +54,17 @@ class s {
54
54
  registerRouters(e) {
55
55
  return e.forEach((t) => this.registeredRouters.push(t)), this;
56
56
  }
57
+ getPrebuiltSpec() {
58
+ return this.prebuiltSpec;
59
+ }
60
+ setPrebuiltSpec(e) {
61
+ return this.prebuiltSpec = e, this;
62
+ }
63
+ clearPrebuiltSpec() {
64
+ return this.prebuiltSpec = null, this;
65
+ }
57
66
  reset() {
58
- this.exposedModels = [], this.endpoints = [];
67
+ this.exposedModels = [], this.endpoints = [], this.prebuiltSpec = null;
59
68
  }
60
69
  static getInstance() {
61
70
  return s.instance || (s.instance = new s(
@@ -1 +1 @@
1
- {"version":3,"file":"OpenApiManager.mjs","sources":["../../../src/openapi/manager/OpenApiManager.ts"],"sourcesContent":["import { Router } from '../../router/Router'\nimport { EndpointData, ExposedModelData } from '../types'\n\ntype UrlType = `${'http' | 'https'}://${string}.${string}`\n\nexport type ApiDocsHeader = {\n\ttitle: string\n\tversion: string\n\tdescription?: string\n\ttermsOfService?: UrlType\n\tcontact?: {\n\t\tname?: string\n\t\turl?: UrlType\n\t\temail?: string\n\t}\n\tlicense?: {\n\t\tname?: string\n\t\turl?: UrlType\n\t}\n}\n\nexport type ApiDocsPreferences = {\n\tallowOptionalPathParams: boolean\n}\n\nexport type ApiAnalysisStats = {\n\texplicitRouterFiles: {\n\t\tpath: string\n\t\trouters: {\n\t\t\tname: string\n\t\t\tendpoints: string[]\n\t\t}[]\n\t}[]\n\tdiscoveredRouterFiles: {\n\t\tpath: string\n\t\trouters: {\n\t\t\tname: string\n\t\t\tendpoints: string[]\n\t\t}[]\n\t}[]\n}\n\nexport class OpenApiManager {\n\tprivate static instance: OpenApiManager | null = null\n\n\tprivate isInitialized = false\n\tprivate registeredRouters: Router[] = []\n\n\tconstructor(\n\t\tprivate apiDocsHeader: ApiDocsHeader,\n\t\tprivate exposedModels: ExposedModelData[],\n\t\tprivate endpoints: EndpointData[],\n\t\tprivate preferences: ApiDocsPreferences,\n\t\tprivate stats: ApiAnalysisStats,\n\t) {}\n\n\tpublic isReady(): boolean {\n\t\treturn this.isInitialized\n\t}\n\n\tpublic hasExposedModel(name: string) {\n\t\treturn this.exposedModels.some((model) => model.name === name)\n\t}\n\n\tpublic getExposedModels() {\n\t\treturn this.exposedModels\n\t}\n\n\tpublic setExposedModels(models: ExposedModelData[]) {\n\t\tthis.exposedModels = models\n\t\treturn this\n\t}\n\n\tpublic setEndpoints(endpoints: EndpointData[]) {\n\t\tthis.endpoints = endpoints\n\t\treturn this\n\t}\n\n\tpublic markAsReady() {\n\t\tthis.isInitialized = true\n\t\treturn this\n\t}\n\n\tpublic getHeader(): ApiDocsHeader {\n\t\treturn this.apiDocsHeader\n\t}\n\n\tpublic setHeader(docs: ApiDocsHeader) {\n\t\tthis.apiDocsHeader = docs\n\t\treturn this\n\t}\n\n\tpublic getEndpoints() {\n\t\treturn this.endpoints\n\t}\n\n\tpublic getPreferences() {\n\t\treturn this.preferences\n\t}\n\n\tpublic setPreferences(preferences: ApiDocsPreferences) {\n\t\tthis.preferences = {\n\t\t\t...preferences,\n\t\t}\n\t\treturn this\n\t}\n\n\tpublic getStats() {\n\t\treturn this.stats\n\t}\n\n\tpublic setStats(stats: ApiAnalysisStats) {\n\t\tthis.stats = {\n\t\t\t...stats,\n\t\t}\n\t\treturn this\n\t}\n\n\tpublic getRouters(): readonly Router[] {\n\t\treturn this.registeredRouters\n\t}\n\n\tpublic registerRouters(routers: Router<any, any>[]) {\n\t\trouters.forEach((r) => this.registeredRouters.push(r))\n\t\treturn this\n\t}\n\n\tpublic reset() {\n\t\tthis.exposedModels = []\n\t\tthis.endpoints = []\n\t}\n\n\tpublic static getInstance() {\n\t\tif (!OpenApiManager.instance) {\n\t\t\tOpenApiManager.instance = new OpenApiManager(\n\t\t\t\t{\n\t\t\t\t\ttitle: 'Default title',\n\t\t\t\t\tversion: '1.0.0',\n\t\t\t\t},\n\t\t\t\t[],\n\t\t\t\t[],\n\t\t\t\t{\n\t\t\t\t\tallowOptionalPathParams: false,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tdiscoveredRouterFiles: [],\n\t\t\t\t\texplicitRouterFiles: [],\n\t\t\t\t},\n\t\t\t)\n\t\t}\n\t\treturn OpenApiManager.instance\n\t}\n}\n"],"names":["OpenApiManager","apiDocsHeader","exposedModels","endpoints","preferences","stats","name","model","models","docs","routers","r"],"mappings":"AA0CO,MAAMA,EAAe;AAAA,EAM3B,YACSC,GACAC,GACAC,GACAC,GACAC,GACP;AALO,SAAA,gBAAAJ,GACA,KAAA,gBAAAC,GACA,KAAA,YAAAC,GACA,KAAA,cAAAC,GACA,KAAA,QAAAC,GART,KAAQ,gBAAgB,IACxB,KAAQ,oBAA8B,CAAC;AAAA,EAAA;AAAA,EAHvC,OAAA;AAAA,SAAe,WAAkC;AAAA,EAAA;AAAA,EAa1C,UAAmB;AACzB,WAAO,KAAK;AAAA,EAAA;AAAA,EAGN,gBAAgBC,GAAc;AACpC,WAAO,KAAK,cAAc,KAAK,CAACC,MAAUA,EAAM,SAASD,CAAI;AAAA,EAAA;AAAA,EAGvD,mBAAmB;AACzB,WAAO,KAAK;AAAA,EAAA;AAAA,EAGN,iBAAiBE,GAA4B;AACnD,gBAAK,gBAAgBA,GACd;AAAA,EAAA;AAAA,EAGD,aAAaL,GAA2B;AAC9C,gBAAK,YAAYA,GACV;AAAA,EAAA;AAAA,EAGD,cAAc;AACpB,gBAAK,gBAAgB,IACd;AAAA,EAAA;AAAA,EAGD,YAA2B;AACjC,WAAO,KAAK;AAAA,EAAA;AAAA,EAGN,UAAUM,GAAqB;AACrC,gBAAK,gBAAgBA,GACd;AAAA,EAAA;AAAA,EAGD,eAAe;AACrB,WAAO,KAAK;AAAA,EAAA;AAAA,EAGN,iBAAiB;AACvB,WAAO,KAAK;AAAA,EAAA;AAAA,EAGN,eAAeL,GAAiC;AACtD,gBAAK,cAAc;AAAA,MAClB,GAAGA;AAAA,IACJ,GACO;AAAA,EAAA;AAAA,EAGD,WAAW;AACjB,WAAO,KAAK;AAAA,EAAA;AAAA,EAGN,SAASC,GAAyB;AACxC,gBAAK,QAAQ;AAAA,MACZ,GAAGA;AAAA,IACJ,GACO;AAAA,EAAA;AAAA,EAGD,aAAgC;AACtC,WAAO,KAAK;AAAA,EAAA;AAAA,EAGN,gBAAgBK,GAA6B;AACnD,WAAAA,EAAQ,QAAQ,CAACC,MAAM,KAAK,kBAAkB,KAAKA,CAAC,CAAC,GAC9C;AAAA,EAAA;AAAA,EAGD,QAAQ;AACd,SAAK,gBAAgB,CAAC,GACtB,KAAK,YAAY,CAAC;AAAA,EAAA;AAAA,EAGnB,OAAc,cAAc;AACvB,WAACX,EAAe,aACnBA,EAAe,WAAW,IAAIA;AAAA,MAC7B;AAAA,QACC,OAAO;AAAA,QACP,SAAS;AAAA,MACV;AAAA,MACA,CAAC;AAAA,MACD,CAAC;AAAA,MACD;AAAA,QACC,yBAAyB;AAAA,MAC1B;AAAA,MACA;AAAA,QACC,uBAAuB,CAAC;AAAA,QACxB,qBAAqB,CAAA;AAAA,MAAC;AAAA,IAExB,IAEMA,EAAe;AAAA,EAAA;AAExB;"}
1
+ {"version":3,"file":"OpenApiManager.mjs","sources":["../../../src/openapi/manager/OpenApiManager.ts"],"sourcesContent":["import { Router } from '../../router/Router'\nimport { EndpointData, ExposedModelData } from '../types'\n\ntype UrlType = `${'http' | 'https'}://${string}.${string}`\n\nexport type ApiDocsHeader = {\n\ttitle: string\n\tversion: string\n\tdescription?: string\n\ttermsOfService?: UrlType\n\tcontact?: {\n\t\tname?: string\n\t\turl?: UrlType\n\t\temail?: string\n\t}\n\tlicense?: {\n\t\tname?: string\n\t\turl?: UrlType\n\t}\n}\n\nexport type ApiDocsPreferences = {\n\tallowOptionalPathParams: boolean\n}\n\nexport type ApiAnalysisStats = {\n\texplicitRouterFiles: {\n\t\tpath: string\n\t\trouters: {\n\t\t\tname: string\n\t\t\tendpoints: string[]\n\t\t}[]\n\t}[]\n\tdiscoveredRouterFiles: {\n\t\tpath: string\n\t\trouters: {\n\t\t\tname: string\n\t\t\tendpoints: string[]\n\t\t}[]\n\t}[]\n}\n\nexport class OpenApiManager {\n\tprivate static instance: OpenApiManager | null = null\n\n\tprivate isInitialized = false\n\tprivate registeredRouters: Router[] = []\n\tprivate prebuiltSpec: Record<string, unknown> | null = null\n\n\tconstructor(\n\t\tprivate apiDocsHeader: ApiDocsHeader,\n\t\tprivate exposedModels: ExposedModelData[],\n\t\tprivate endpoints: EndpointData[],\n\t\tprivate preferences: ApiDocsPreferences,\n\t\tprivate stats: ApiAnalysisStats,\n\t) {}\n\n\tpublic isReady(): boolean {\n\t\treturn this.isInitialized\n\t}\n\n\tpublic hasExposedModel(name: string) {\n\t\treturn this.exposedModels.some((model) => model.name === name)\n\t}\n\n\tpublic getExposedModels() {\n\t\treturn this.exposedModels\n\t}\n\n\tpublic setExposedModels(models: ExposedModelData[]) {\n\t\tthis.exposedModels = models\n\t\treturn this\n\t}\n\n\tpublic setEndpoints(endpoints: EndpointData[]) {\n\t\tthis.endpoints = endpoints\n\t\treturn this\n\t}\n\n\tpublic markAsReady() {\n\t\tthis.isInitialized = true\n\t\treturn this\n\t}\n\n\tpublic getHeader(): ApiDocsHeader {\n\t\treturn this.apiDocsHeader\n\t}\n\n\tpublic setHeader(docs: ApiDocsHeader) {\n\t\tthis.apiDocsHeader = docs\n\t\treturn this\n\t}\n\n\tpublic getEndpoints() {\n\t\treturn this.endpoints\n\t}\n\n\tpublic getPreferences() {\n\t\treturn this.preferences\n\t}\n\n\tpublic setPreferences(preferences: ApiDocsPreferences) {\n\t\tthis.preferences = {\n\t\t\t...preferences,\n\t\t}\n\t\treturn this\n\t}\n\n\tpublic getStats() {\n\t\treturn this.stats\n\t}\n\n\tpublic setStats(stats: ApiAnalysisStats) {\n\t\tthis.stats = {\n\t\t\t...stats,\n\t\t}\n\t\treturn this\n\t}\n\n\tpublic getRouters(): readonly Router[] {\n\t\treturn this.registeredRouters\n\t}\n\n\tpublic registerRouters(routers: Router<any, any>[]) {\n\t\trouters.forEach((r) => this.registeredRouters.push(r))\n\t\treturn this\n\t}\n\n\tpublic getPrebuiltSpec(): Record<string, unknown> | null {\n\t\treturn this.prebuiltSpec\n\t}\n\n\tpublic setPrebuiltSpec(spec: Record<string, unknown>) {\n\t\tthis.prebuiltSpec = spec\n\t\treturn this\n\t}\n\n\tpublic clearPrebuiltSpec() {\n\t\tthis.prebuiltSpec = null\n\t\treturn this\n\t}\n\n\tpublic reset() {\n\t\tthis.exposedModels = []\n\t\tthis.endpoints = []\n\t\tthis.prebuiltSpec = null\n\t}\n\n\tpublic static getInstance() {\n\t\tif (!OpenApiManager.instance) {\n\t\t\tOpenApiManager.instance = new OpenApiManager(\n\t\t\t\t{\n\t\t\t\t\ttitle: 'Default title',\n\t\t\t\t\tversion: '1.0.0',\n\t\t\t\t},\n\t\t\t\t[],\n\t\t\t\t[],\n\t\t\t\t{\n\t\t\t\t\tallowOptionalPathParams: false,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tdiscoveredRouterFiles: [],\n\t\t\t\t\texplicitRouterFiles: [],\n\t\t\t\t},\n\t\t\t)\n\t\t}\n\t\treturn OpenApiManager.instance\n\t}\n}\n"],"names":["OpenApiManager","apiDocsHeader","exposedModels","endpoints","preferences","stats","name","model","models","docs","routers","r","spec"],"mappings":"AA0CO,MAAMA,EAAe;AAAA,EAO3B,YACSC,GACAC,GACAC,GACAC,GACAC,GACP;AALO,SAAA,gBAAAJ,GACA,KAAA,gBAAAC,GACA,KAAA,YAAAC,GACA,KAAA,cAAAC,GACA,KAAA,QAAAC,GATT,KAAQ,gBAAgB,IACxB,KAAQ,oBAA8B,CAAC,GACvC,KAAQ,eAA+C;AAAA,EAAA;AAAA,EAJvD,OAAA;AAAA,SAAe,WAAkC;AAAA,EAAA;AAAA,EAc1C,UAAmB;AACzB,WAAO,KAAK;AAAA,EAAA;AAAA,EAGN,gBAAgBC,GAAc;AACpC,WAAO,KAAK,cAAc,KAAK,CAACC,MAAUA,EAAM,SAASD,CAAI;AAAA,EAAA;AAAA,EAGvD,mBAAmB;AACzB,WAAO,KAAK;AAAA,EAAA;AAAA,EAGN,iBAAiBE,GAA4B;AACnD,gBAAK,gBAAgBA,GACd;AAAA,EAAA;AAAA,EAGD,aAAaL,GAA2B;AAC9C,gBAAK,YAAYA,GACV;AAAA,EAAA;AAAA,EAGD,cAAc;AACpB,gBAAK,gBAAgB,IACd;AAAA,EAAA;AAAA,EAGD,YAA2B;AACjC,WAAO,KAAK;AAAA,EAAA;AAAA,EAGN,UAAUM,GAAqB;AACrC,gBAAK,gBAAgBA,GACd;AAAA,EAAA;AAAA,EAGD,eAAe;AACrB,WAAO,KAAK;AAAA,EAAA;AAAA,EAGN,iBAAiB;AACvB,WAAO,KAAK;AAAA,EAAA;AAAA,EAGN,eAAeL,GAAiC;AACtD,gBAAK,cAAc;AAAA,MAClB,GAAGA;AAAA,IACJ,GACO;AAAA,EAAA;AAAA,EAGD,WAAW;AACjB,WAAO,KAAK;AAAA,EAAA;AAAA,EAGN,SAASC,GAAyB;AACxC,gBAAK,QAAQ;AAAA,MACZ,GAAGA;AAAA,IACJ,GACO;AAAA,EAAA;AAAA,EAGD,aAAgC;AACtC,WAAO,KAAK;AAAA,EAAA;AAAA,EAGN,gBAAgBK,GAA6B;AACnD,WAAAA,EAAQ,QAAQ,CAACC,MAAM,KAAK,kBAAkB,KAAKA,CAAC,CAAC,GAC9C;AAAA,EAAA;AAAA,EAGD,kBAAkD;AACxD,WAAO,KAAK;AAAA,EAAA;AAAA,EAGN,gBAAgBC,GAA+B;AACrD,gBAAK,eAAeA,GACb;AAAA,EAAA;AAAA,EAGD,oBAAoB;AAC1B,gBAAK,eAAe,MACb;AAAA,EAAA;AAAA,EAGD,QAAQ;AACd,SAAK,gBAAgB,CAAC,GACtB,KAAK,YAAY,CAAC,GAClB,KAAK,eAAe;AAAA,EAAA;AAAA,EAGrB,OAAc,cAAc;AACvB,WAACZ,EAAe,aACnBA,EAAe,WAAW,IAAIA;AAAA,MAC7B;AAAA,QACC,OAAO;AAAA,QACP,SAAS;AAAA,MACV;AAAA,MACA,CAAC;AAAA,MACD,CAAC;AAAA,MACD;AAAA,QACC,yBAAyB;AAAA,MAC1B;AAAA,MACA;AAAA,QACC,uBAAuB,CAAC;AAAA,QACxB,qBAAqB,CAAA;AAAA,MAAC;AAAA,IAExB,IAEMA,EAAe;AAAA,EAAA;AAExB;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../../router/Router.cjs"),t=require("../generatorModule/generatorModule.cjs"),n=require("../manager/OpenApiManager.cjs"),e=new r.Router({skipOpenApiAnalysis:!0});e.get("/api-json",()=>t.generateOpenApiSpec(n.OpenApiManager.getInstance()));const o=e;exports.OpenApiRouter=o;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("../../router/Router.cjs"),o=require("../generatorModule/generatorModule.cjs"),i=require("../manager/OpenApiManager.cjs"),t=new n.Router({skipOpenApiAnalysis:!0});t.get("/api-json",()=>{const e=i.OpenApiManager.getInstance(),r=e.getPrebuiltSpec();return r||o.generateOpenApiSpec(e)});const p=t;exports.OpenApiRouter=p;
2
2
  //# sourceMappingURL=OpenApiRouter.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"OpenApiRouter.cjs","sources":["../../../src/openapi/router/OpenApiRouter.ts"],"sourcesContent":["import { Router } from '../../router/Router'\nimport { generateOpenApiSpec } from '../generatorModule/generatorModule'\nimport { OpenApiManager } from '../manager/OpenApiManager'\n\nconst router = new Router({ skipOpenApiAnalysis: true })\n\nrouter.get('/api-json', () => {\n\treturn generateOpenApiSpec(OpenApiManager.getInstance())\n})\n\nexport const OpenApiRouter = router\n"],"names":["router","Router","generateOpenApiSpec","OpenApiManager","OpenApiRouter"],"mappings":"0NAIMA,EAAS,IAAIC,EAAA,OAAO,CAAE,oBAAqB,GAAM,EAEvDD,EAAO,IAAI,YAAa,IAChBE,EAAA,oBAAoBC,iBAAe,aAAa,CACvD,EAEM,MAAMC,EAAgBJ"}
1
+ {"version":3,"file":"OpenApiRouter.cjs","sources":["../../../src/openapi/router/OpenApiRouter.ts"],"sourcesContent":["import { Router } from '../../router/Router'\nimport { generateOpenApiSpec } from '../generatorModule/generatorModule'\nimport { OpenApiManager } from '../manager/OpenApiManager'\n\nconst router = new Router({ skipOpenApiAnalysis: true })\n\nrouter.get('/api-json', () => {\n\tconst manager = OpenApiManager.getInstance()\n\tconst prebuilt = manager.getPrebuiltSpec()\n\tif (prebuilt) {\n\t\treturn prebuilt\n\t}\n\treturn generateOpenApiSpec(manager)\n})\n\nexport const OpenApiRouter = router\n"],"names":["router","Router","manager","OpenApiManager","prebuilt","generateOpenApiSpec","OpenApiRouter"],"mappings":"0NAIMA,EAAS,IAAIC,EAAA,OAAO,CAAE,oBAAqB,GAAM,EAEvDD,EAAO,IAAI,YAAa,IAAM,CACvB,MAAAE,EAAUC,iBAAe,YAAY,EACrCC,EAAWF,EAAQ,gBAAgB,EACzC,OAAIE,GAGGC,EAAAA,oBAAoBH,CAAO,CACnC,CAAC,EAEM,MAAMI,EAAgBN"}
@@ -1 +1 @@
1
- {"version":3,"file":"OpenApiRouter.d.ts","sourceRoot":"","sources":["../../../src/openapi/router/OpenApiRouter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAU5C,eAAO,MAAM,aAAa,kEAAS,CAAA"}
1
+ {"version":3,"file":"OpenApiRouter.d.ts","sourceRoot":"","sources":["../../../src/openapi/router/OpenApiRouter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAe5C,eAAO,MAAM,aAAa,kEAAS,CAAA"}
@@ -1,10 +1,13 @@
1
- import { Router as r } from "../../router/Router.mjs";
1
+ import { Router as n } from "../../router/Router.mjs";
2
2
  import { generateOpenApiSpec as p } from "../generatorModule/generatorModule.mjs";
3
- import { OpenApiManager as t } from "../manager/OpenApiManager.mjs";
4
- const e = new r({ skipOpenApiAnalysis: !0 });
5
- e.get("/api-json", () => p(t.getInstance()));
6
- const s = e;
3
+ import { OpenApiManager as o } from "../manager/OpenApiManager.mjs";
4
+ const t = new n({ skipOpenApiAnalysis: !0 });
5
+ t.get("/api-json", () => {
6
+ const e = o.getInstance(), r = e.getPrebuiltSpec();
7
+ return r || p(e);
8
+ });
9
+ const u = t;
7
10
  export {
8
- s as OpenApiRouter
11
+ u as OpenApiRouter
9
12
  };
10
13
  //# sourceMappingURL=OpenApiRouter.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"OpenApiRouter.mjs","sources":["../../../src/openapi/router/OpenApiRouter.ts"],"sourcesContent":["import { Router } from '../../router/Router'\nimport { generateOpenApiSpec } from '../generatorModule/generatorModule'\nimport { OpenApiManager } from '../manager/OpenApiManager'\n\nconst router = new Router({ skipOpenApiAnalysis: true })\n\nrouter.get('/api-json', () => {\n\treturn generateOpenApiSpec(OpenApiManager.getInstance())\n})\n\nexport const OpenApiRouter = router\n"],"names":["router","Router","generateOpenApiSpec","OpenApiManager","OpenApiRouter"],"mappings":";;;AAIA,MAAMA,IAAS,IAAIC,EAAO,EAAE,qBAAqB,IAAM;AAEvDD,EAAO,IAAI,aAAa,MAChBE,EAAoBC,EAAe,aAAa,CACvD;AAEM,MAAMC,IAAgBJ;"}
1
+ {"version":3,"file":"OpenApiRouter.mjs","sources":["../../../src/openapi/router/OpenApiRouter.ts"],"sourcesContent":["import { Router } from '../../router/Router'\nimport { generateOpenApiSpec } from '../generatorModule/generatorModule'\nimport { OpenApiManager } from '../manager/OpenApiManager'\n\nconst router = new Router({ skipOpenApiAnalysis: true })\n\nrouter.get('/api-json', () => {\n\tconst manager = OpenApiManager.getInstance()\n\tconst prebuilt = manager.getPrebuiltSpec()\n\tif (prebuilt) {\n\t\treturn prebuilt\n\t}\n\treturn generateOpenApiSpec(manager)\n})\n\nexport const OpenApiRouter = router\n"],"names":["router","Router","manager","OpenApiManager","prebuilt","generateOpenApiSpec","OpenApiRouter"],"mappings":";;;AAIA,MAAMA,IAAS,IAAIC,EAAO,EAAE,qBAAqB,IAAM;AAEvDD,EAAO,IAAI,aAAa,MAAM;AACvB,QAAAE,IAAUC,EAAe,YAAY,GACrCC,IAAWF,EAAQ,gBAAgB;AACzC,SAAIE,KAGGC,EAAoBH,CAAO;AACnC,CAAC;AAEM,MAAMI,IAAgBN;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("../node_modules/zod/v4/classic/external.cjs"),g=require("../errors/UserFacingErrors.cjs"),c=require("../utils/validationMessages.cjs");function l(r,a,s,t){const i=r.filter(e=>{let n=s[e.name].optional;return s[e.name]instanceof o.ZodType&&(n=s[e.name].safeParse(void 0).success),a[e.name]===void 0&&!n});if(i.length>0)throw new g.ValidationError(`Missing ${t} params: ${i.map(e=>c.getMissingParamMessage(e)).join(", ")}`)}exports.validateMissingParams=l;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("zod"),g=require("../errors/UserFacingErrors.cjs"),c=require("../utils/validationMessages.cjs");function l(r,a,s,t){const i=r.filter(e=>{let n=s[e.name].optional;return s[e.name]instanceof o.ZodType&&(n=s[e.name].safeParse(void 0).success),a[e.name]===void 0&&!n});if(i.length>0)throw new g.ValidationError(`Missing ${t} params: ${i.map(e=>c.getMissingParamMessage(e)).join(", ")}`)}exports.validateMissingParams=l;
2
2
  //# sourceMappingURL=validateMissingParams.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"validateMissingParams.cjs","sources":["../../src/validators/validateMissingParams.ts"],"sourcesContent":["import z from 'zod'\n\nimport { ValidationError } from '../errors/UserFacingErrors'\nimport { getMissingParamMessage } from '../utils/validationMessages'\nimport { MaybeOptionalValidatorUnion, Validator } from './types'\n\nexport function validateMissingParams<ValidatorsT extends Record<string, MaybeOptionalValidatorUnion>>(\n\tparams: { name: string; validator: Pick<Validator<unknown>, 'description' | 'errorMessage'> }[],\n\tprovidedParams: Record<string, unknown>,\n\tvalidators: ValidatorsT,\n\tsuffix: 'body' | 'query' | 'path',\n) {\n\tconst missingParams = params.filter((param) => {\n\t\tlet isOptional = validators[param.name].optional\n\t\tif (validators[param.name] instanceof z.ZodType) {\n\t\t\tisOptional = (validators[param.name] as z.ZodType).safeParse(undefined).success\n\t\t}\n\n\t\treturn providedParams[param.name] === undefined && !isOptional\n\t})\n\n\tif (missingParams.length > 0) {\n\t\tthrow new ValidationError(\n\t\t\t`Missing ${suffix} params: ${missingParams.map((param) => getMissingParamMessage(param)).join(', ')}`,\n\t\t)\n\t}\n}\n"],"names":["validateMissingParams","params","providedParams","validators","suffix","missingParams","param","isOptional","z","ValidationError","getMissingParamMessage"],"mappings":"wOAMO,SAASA,EACfC,EACAC,EACAC,EACAC,EACC,CACD,MAAMC,EAAgBJ,EAAO,OAAQK,GAAU,CAC9C,IAAIC,EAAaJ,EAAWG,EAAM,IAAI,EAAE,SACxC,OAAIH,EAAWG,EAAM,IAAI,YAAaE,EAAE,UACvCD,EAAcJ,EAAWG,EAAM,IAAI,EAAgB,UAAU,MAAS,EAAE,SAGlEJ,EAAeI,EAAM,IAAI,IAAM,QAAa,CAACC,CAAA,CACpD,EAEG,GAAAF,EAAc,OAAS,EAC1B,MAAM,IAAII,EAAA,gBACT,WAAWL,CAAM,YAAYC,EAAc,IAAKC,GAAUI,EAAAA,uBAAuBJ,CAAK,CAAC,EAAE,KAAK,IAAI,CAAC,EACpG,CAEF"}
1
+ {"version":3,"file":"validateMissingParams.cjs","sources":["../../src/validators/validateMissingParams.ts"],"sourcesContent":["import z from 'zod'\n\nimport { ValidationError } from '../errors/UserFacingErrors'\nimport { getMissingParamMessage } from '../utils/validationMessages'\nimport { MaybeOptionalValidatorUnion, Validator } from './types'\n\nexport function validateMissingParams<ValidatorsT extends Record<string, MaybeOptionalValidatorUnion>>(\n\tparams: { name: string; validator: Pick<Validator<unknown>, 'description' | 'errorMessage'> }[],\n\tprovidedParams: Record<string, unknown>,\n\tvalidators: ValidatorsT,\n\tsuffix: 'body' | 'query' | 'path',\n) {\n\tconst missingParams = params.filter((param) => {\n\t\tlet isOptional = validators[param.name].optional\n\t\tif (validators[param.name] instanceof z.ZodType) {\n\t\t\tisOptional = (validators[param.name] as z.ZodType).safeParse(undefined).success\n\t\t}\n\n\t\treturn providedParams[param.name] === undefined && !isOptional\n\t})\n\n\tif (missingParams.length > 0) {\n\t\tthrow new ValidationError(\n\t\t\t`Missing ${suffix} params: ${missingParams.map((param) => getMissingParamMessage(param)).join(', ')}`,\n\t\t)\n\t}\n}\n"],"names":["validateMissingParams","params","providedParams","validators","suffix","missingParams","param","isOptional","z","ValidationError","getMissingParamMessage"],"mappings":"gMAMO,SAASA,EACfC,EACAC,EACAC,EACAC,EACC,CACD,MAAMC,EAAgBJ,EAAO,OAAQK,GAAU,CAC9C,IAAIC,EAAaJ,EAAWG,EAAM,IAAI,EAAE,SACxC,OAAIH,EAAWG,EAAM,IAAI,YAAaE,EAAE,UACvCD,EAAcJ,EAAWG,EAAM,IAAI,EAAgB,UAAU,MAAS,EAAE,SAGlEJ,EAAeI,EAAM,IAAI,IAAM,QAAa,CAACC,CAAA,CACpD,EAEG,GAAAF,EAAc,OAAS,EAC1B,MAAM,IAAII,EAAA,gBACT,WAAWL,CAAM,YAAYC,EAAc,IAAKC,GAAUI,EAAAA,uBAAuBJ,CAAK,CAAC,EAAE,KAAK,IAAI,CAAC,EACpG,CAEF"}
@@ -1,17 +1,17 @@
1
- import * as r from "../node_modules/zod/v4/classic/external.mjs";
1
+ import a from "zod";
2
2
  import { ValidationError as m } from "../errors/UserFacingErrors.mjs";
3
3
  import { getMissingParamMessage as f } from "../utils/validationMessages.mjs";
4
- function p(o, t, e, a) {
5
- const n = o.filter((i) => {
6
- let s = e[i.name].optional;
7
- return e[i.name] instanceof r.ZodType && (s = e[i.name].safeParse(void 0).success), t[i.name] === void 0 && !s;
4
+ function l(o, t, n, r) {
5
+ const e = o.filter((i) => {
6
+ let s = n[i.name].optional;
7
+ return n[i.name] instanceof a.ZodType && (s = n[i.name].safeParse(void 0).success), t[i.name] === void 0 && !s;
8
8
  });
9
- if (n.length > 0)
9
+ if (e.length > 0)
10
10
  throw new m(
11
- `Missing ${a} params: ${n.map((i) => f(i)).join(", ")}`
11
+ `Missing ${r} params: ${e.map((i) => f(i)).join(", ")}`
12
12
  );
13
13
  }
14
14
  export {
15
- p as validateMissingParams
15
+ l as validateMissingParams
16
16
  };
17
17
  //# sourceMappingURL=validateMissingParams.mjs.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("../node_modules/zod/v4/classic/external.cjs"),a=require("../utils/getValueAsNullableString.cjs"),c=require("../node_modules/zod/v4/classic/errors.cjs");function o(e,r){try{const t=s(e,r),n=l(e,r),u=f(e,n);return{validated:t&&u,parsedValue:n,exception:null}}catch(t){return{validated:!1,parsedValue:null,exception:p(t)}}}function s(e,r){return"prevalidate"in e&&typeof e.prevalidate=="function"?e.prevalidate(a.getValueAsNullableString(r)):!0}function l(e,r){if(e instanceof i.ZodType){const t=(()=>{try{return typeof r=="string"?JSON.parse(r):r}catch{return r}})();return e.parse(t)}return e.parse(a.getValueAsNullableString(r))}function f(e,r){return"validate"in e&&typeof e.validate=="function"?e.validate(r):!0}function p(e){return e instanceof c.ZodError?i.treeifyError(e).errors.join("; ").replace("Invalid input: ",""):"Validation failed"}exports.validateParam=o;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("zod"),a=require("../utils/getValueAsNullableString.cjs");function c(e,r){try{const t=o(e,r),n=s(e,r),u=l(e,n);return{validated:t&&u,parsedValue:n,exception:null}}catch(t){return{validated:!1,parsedValue:null,exception:f(t)}}}function o(e,r){return"prevalidate"in e&&typeof e.prevalidate=="function"?e.prevalidate(a.getValueAsNullableString(r)):!0}function s(e,r){if(e instanceof i.ZodType){const t=(()=>{try{return typeof r=="string"?JSON.parse(r):r}catch{return r}})();return e.parse(t)}return e.parse(a.getValueAsNullableString(r))}function l(e,r){return"validate"in e&&typeof e.validate=="function"?e.validate(r):!0}function f(e){return e instanceof i.ZodError?i.treeifyError(e).errors.join("; ").replace("Invalid input: ",""):"Validation failed"}exports.validateParam=c;
2
2
  //# sourceMappingURL=validateParam.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"validateParam.cjs","sources":["../../src/validators/validateParam.ts"],"sourcesContent":["import z, { ZodError } from 'zod'\n\nimport { getValueAsNullableString } from '../utils/getValueAsNullableString'\nimport { ValidatorUnion } from './types'\n\nexport function validateParam(\n\tvalidator: ValidatorUnion,\n\tvalue: string | number | boolean | object | null,\n): {\n\tvalidated: boolean\n\tparsedValue: unknown\n\texception: string | null\n} {\n\ttry {\n\t\tconst prevalidatorSuccess = runPrevalidator(validator, value)\n\t\tconst parsedValue = runParser(validator, value)\n\t\tconst validatorSuccess = runValidator(validator, parsedValue)\n\n\t\treturn {\n\t\t\tvalidated: prevalidatorSuccess && validatorSuccess,\n\t\t\tparsedValue,\n\t\t\texception: null,\n\t\t}\n\t} catch (error) {\n\t\tconst exception = getErrorMessage(error)\n\t\treturn { validated: false, parsedValue: null, exception }\n\t}\n}\n\nfunction runPrevalidator(validator: ValidatorUnion, value: string | number | boolean | object | null) {\n\t// Legacy validator\n\tif ('prevalidate' in validator && typeof validator.prevalidate === 'function') {\n\t\treturn validator.prevalidate(getValueAsNullableString(value))\n\t}\n\t// Zod (skip)\n\treturn true\n}\n\nfunction runParser(validator: ValidatorUnion, value: string | number | boolean | object | null) {\n\t// Zod validator\n\tif (validator instanceof z.ZodType) {\n\t\tconst coercedValue = (() => {\n\t\t\ttry {\n\t\t\t\treturn typeof value === 'string' ? JSON.parse(value) : value\n\t\t\t} catch {\n\t\t\t\treturn value\n\t\t\t}\n\t\t})()\n\t\treturn validator.parse(coercedValue)\n\t}\n\t// Legacy validator\n\treturn validator.parse(getValueAsNullableString(value))\n}\n\nfunction runValidator(validator: ValidatorUnion, parsedValue: unknown) {\n\t// Legacy validator\n\tif ('validate' in validator && typeof validator.validate === 'function') {\n\t\treturn validator.validate(parsedValue)\n\t}\n\t// Zod (skip)\n\treturn true\n}\n\nfunction getErrorMessage(error: unknown) {\n\tif (error instanceof ZodError) {\n\t\treturn z.treeifyError(error).errors.join('; ').replace('Invalid input: ', '')\n\t}\n\treturn 'Validation failed'\n}\n"],"names":["validateParam","validator","value","prevalidatorSuccess","runPrevalidator","parsedValue","runParser","validatorSuccess","runValidator","error","getErrorMessage","getValueAsNullableString","z","coercedValue","ZodError"],"mappings":"yPAKgB,SAAAA,EACfC,EACAC,EAKC,CACG,GAAA,CACG,MAAAC,EAAsBC,EAAgBH,EAAWC,CAAK,EACtDG,EAAcC,EAAUL,EAAWC,CAAK,EACxCK,EAAmBC,EAAaP,EAAWI,CAAW,EAErD,MAAA,CACN,UAAWF,GAAuBI,EAClC,YAAAF,EACA,UAAW,IACZ,QACQI,EAAO,CAEf,MAAO,CAAE,UAAW,GAAO,YAAa,KAAM,UAD5BC,EAAgBD,CAAK,CACiB,CAAA,CAE1D,CAEA,SAASL,EAAgBH,EAA2BC,EAAkD,CAErG,MAAI,gBAAiBD,GAAa,OAAOA,EAAU,aAAgB,WAC3DA,EAAU,YAAYU,EAAyB,yBAAAT,CAAK,CAAC,EAGtD,EACR,CAEA,SAASI,EAAUL,EAA2BC,EAAkD,CAE3F,GAAAD,aAAqBW,EAAE,QAAS,CACnC,MAAMC,GAAgB,IAAM,CACvB,GAAA,CACH,OAAO,OAAOX,GAAU,SAAW,KAAK,MAAMA,CAAK,EAAIA,CAAA,MAChD,CACA,OAAAA,CAAA,CACR,GACE,EACI,OAAAD,EAAU,MAAMY,CAAY,CAAA,CAGpC,OAAOZ,EAAU,MAAMU,EAAyB,yBAAAT,CAAK,CAAC,CACvD,CAEA,SAASM,EAAaP,EAA2BI,EAAsB,CAEtE,MAAI,aAAcJ,GAAa,OAAOA,EAAU,UAAa,WACrDA,EAAU,SAASI,CAAW,EAG/B,EACR,CAEA,SAASK,EAAgBD,EAAgB,CACxC,OAAIA,aAAiBK,EAAAA,SACbF,EAAE,aAAaH,CAAK,EAAE,OAAO,KAAK,IAAI,EAAE,QAAQ,kBAAmB,EAAE,EAEtE,mBACR"}
1
+ {"version":3,"file":"validateParam.cjs","sources":["../../src/validators/validateParam.ts"],"sourcesContent":["import z, { ZodError } from 'zod'\n\nimport { getValueAsNullableString } from '../utils/getValueAsNullableString'\nimport { ValidatorUnion } from './types'\n\nexport function validateParam(\n\tvalidator: ValidatorUnion,\n\tvalue: string | number | boolean | object | null,\n): {\n\tvalidated: boolean\n\tparsedValue: unknown\n\texception: string | null\n} {\n\ttry {\n\t\tconst prevalidatorSuccess = runPrevalidator(validator, value)\n\t\tconst parsedValue = runParser(validator, value)\n\t\tconst validatorSuccess = runValidator(validator, parsedValue)\n\n\t\treturn {\n\t\t\tvalidated: prevalidatorSuccess && validatorSuccess,\n\t\t\tparsedValue,\n\t\t\texception: null,\n\t\t}\n\t} catch (error) {\n\t\tconst exception = getErrorMessage(error)\n\t\treturn { validated: false, parsedValue: null, exception }\n\t}\n}\n\nfunction runPrevalidator(validator: ValidatorUnion, value: string | number | boolean | object | null) {\n\t// Legacy validator\n\tif ('prevalidate' in validator && typeof validator.prevalidate === 'function') {\n\t\treturn validator.prevalidate(getValueAsNullableString(value))\n\t}\n\t// Zod (skip)\n\treturn true\n}\n\nfunction runParser(validator: ValidatorUnion, value: string | number | boolean | object | null) {\n\t// Zod validator\n\tif (validator instanceof z.ZodType) {\n\t\tconst coercedValue = (() => {\n\t\t\ttry {\n\t\t\t\treturn typeof value === 'string' ? JSON.parse(value) : value\n\t\t\t} catch {\n\t\t\t\treturn value\n\t\t\t}\n\t\t})()\n\t\treturn validator.parse(coercedValue)\n\t}\n\t// Legacy validator\n\treturn validator.parse(getValueAsNullableString(value))\n}\n\nfunction runValidator(validator: ValidatorUnion, parsedValue: unknown) {\n\t// Legacy validator\n\tif ('validate' in validator && typeof validator.validate === 'function') {\n\t\treturn validator.validate(parsedValue)\n\t}\n\t// Zod (skip)\n\treturn true\n}\n\nfunction getErrorMessage(error: unknown) {\n\tif (error instanceof ZodError) {\n\t\treturn z.treeifyError(error).errors.join('; ').replace('Invalid input: ', '')\n\t}\n\treturn 'Validation failed'\n}\n"],"names":["validateParam","validator","value","prevalidatorSuccess","runPrevalidator","parsedValue","runParser","validatorSuccess","runValidator","error","getErrorMessage","getValueAsNullableString","z","coercedValue","ZodError"],"mappings":"0JAKgB,SAAAA,EACfC,EACAC,EAKC,CACG,GAAA,CACG,MAAAC,EAAsBC,EAAgBH,EAAWC,CAAK,EACtDG,EAAcC,EAAUL,EAAWC,CAAK,EACxCK,EAAmBC,EAAaP,EAAWI,CAAW,EAErD,MAAA,CACN,UAAWF,GAAuBI,EAClC,YAAAF,EACA,UAAW,IACZ,QACQI,EAAO,CAEf,MAAO,CAAE,UAAW,GAAO,YAAa,KAAM,UAD5BC,EAAgBD,CAAK,CACiB,CAAA,CAE1D,CAEA,SAASL,EAAgBH,EAA2BC,EAAkD,CAErG,MAAI,gBAAiBD,GAAa,OAAOA,EAAU,aAAgB,WAC3DA,EAAU,YAAYU,EAAyB,yBAAAT,CAAK,CAAC,EAGtD,EACR,CAEA,SAASI,EAAUL,EAA2BC,EAAkD,CAE3F,GAAAD,aAAqBW,EAAE,QAAS,CACnC,MAAMC,GAAgB,IAAM,CACvB,GAAA,CACH,OAAO,OAAOX,GAAU,SAAW,KAAK,MAAMA,CAAK,EAAIA,CAAA,MAChD,CACA,OAAAA,CAAA,CACR,GACE,EACI,OAAAD,EAAU,MAAMY,CAAY,CAAA,CAGpC,OAAOZ,EAAU,MAAMU,EAAyB,yBAAAT,CAAK,CAAC,CACvD,CAEA,SAASM,EAAaP,EAA2BI,EAAsB,CAEtE,MAAI,aAAcJ,GAAa,OAAOA,EAAU,UAAa,WACrDA,EAAU,SAASI,CAAW,EAG/B,EACR,CAEA,SAASK,EAAgBD,EAAgB,CACxC,OAAIA,aAAiBK,EAAAA,SACbF,EAAE,aAAaH,CAAK,EAAE,OAAO,KAAK,IAAI,EAAE,QAAQ,kBAAmB,EAAE,EAEtE,mBACR"}
@@ -1,9 +1,8 @@
1
- import * as i from "../node_modules/zod/v4/classic/external.mjs";
1
+ import i, { ZodError as u } from "zod";
2
2
  import { getValueAsNullableString as o } from "../utils/getValueAsNullableString.mjs";
3
- import { ZodError as u } from "../node_modules/zod/v4/classic/errors.mjs";
4
- function m(r, e) {
3
+ function y(e, r) {
5
4
  try {
6
- const t = c(r, e), n = s(r, e), a = f(r, n);
5
+ const t = c(e, r), n = s(e, r), a = f(e, n);
7
6
  return {
8
7
  validated: t && a,
9
8
  parsedValue: n,
@@ -13,29 +12,29 @@ function m(r, e) {
13
12
  return { validated: !1, parsedValue: null, exception: p(t) };
14
13
  }
15
14
  }
16
- function c(r, e) {
17
- return "prevalidate" in r && typeof r.prevalidate == "function" ? r.prevalidate(o(e)) : !0;
15
+ function c(e, r) {
16
+ return "prevalidate" in e && typeof e.prevalidate == "function" ? e.prevalidate(o(r)) : !0;
18
17
  }
19
- function s(r, e) {
20
- if (r instanceof i.ZodType) {
18
+ function s(e, r) {
19
+ if (e instanceof i.ZodType) {
21
20
  const t = (() => {
22
21
  try {
23
- return typeof e == "string" ? JSON.parse(e) : e;
22
+ return typeof r == "string" ? JSON.parse(r) : r;
24
23
  } catch {
25
- return e;
24
+ return r;
26
25
  }
27
26
  })();
28
- return r.parse(t);
27
+ return e.parse(t);
29
28
  }
30
- return r.parse(o(e));
29
+ return e.parse(o(r));
31
30
  }
32
- function f(r, e) {
33
- return "validate" in r && typeof r.validate == "function" ? r.validate(e) : !0;
31
+ function f(e, r) {
32
+ return "validate" in e && typeof e.validate == "function" ? e.validate(r) : !0;
34
33
  }
35
- function p(r) {
36
- return r instanceof u ? i.treeifyError(r).errors.join("; ").replace("Invalid input: ", "") : "Validation failed";
34
+ function p(e) {
35
+ return e instanceof u ? i.treeifyError(e).errors.join("; ").replace("Invalid input: ", "") : "Validation failed";
37
36
  }
38
37
  export {
39
- m as validateParam
38
+ y as validateParam
40
39
  };
41
40
  //# sourceMappingURL=validateParam.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"validateParam.mjs","sources":["../../src/validators/validateParam.ts"],"sourcesContent":["import z, { ZodError } from 'zod'\n\nimport { getValueAsNullableString } from '../utils/getValueAsNullableString'\nimport { ValidatorUnion } from './types'\n\nexport function validateParam(\n\tvalidator: ValidatorUnion,\n\tvalue: string | number | boolean | object | null,\n): {\n\tvalidated: boolean\n\tparsedValue: unknown\n\texception: string | null\n} {\n\ttry {\n\t\tconst prevalidatorSuccess = runPrevalidator(validator, value)\n\t\tconst parsedValue = runParser(validator, value)\n\t\tconst validatorSuccess = runValidator(validator, parsedValue)\n\n\t\treturn {\n\t\t\tvalidated: prevalidatorSuccess && validatorSuccess,\n\t\t\tparsedValue,\n\t\t\texception: null,\n\t\t}\n\t} catch (error) {\n\t\tconst exception = getErrorMessage(error)\n\t\treturn { validated: false, parsedValue: null, exception }\n\t}\n}\n\nfunction runPrevalidator(validator: ValidatorUnion, value: string | number | boolean | object | null) {\n\t// Legacy validator\n\tif ('prevalidate' in validator && typeof validator.prevalidate === 'function') {\n\t\treturn validator.prevalidate(getValueAsNullableString(value))\n\t}\n\t// Zod (skip)\n\treturn true\n}\n\nfunction runParser(validator: ValidatorUnion, value: string | number | boolean | object | null) {\n\t// Zod validator\n\tif (validator instanceof z.ZodType) {\n\t\tconst coercedValue = (() => {\n\t\t\ttry {\n\t\t\t\treturn typeof value === 'string' ? JSON.parse(value) : value\n\t\t\t} catch {\n\t\t\t\treturn value\n\t\t\t}\n\t\t})()\n\t\treturn validator.parse(coercedValue)\n\t}\n\t// Legacy validator\n\treturn validator.parse(getValueAsNullableString(value))\n}\n\nfunction runValidator(validator: ValidatorUnion, parsedValue: unknown) {\n\t// Legacy validator\n\tif ('validate' in validator && typeof validator.validate === 'function') {\n\t\treturn validator.validate(parsedValue)\n\t}\n\t// Zod (skip)\n\treturn true\n}\n\nfunction getErrorMessage(error: unknown) {\n\tif (error instanceof ZodError) {\n\t\treturn z.treeifyError(error).errors.join('; ').replace('Invalid input: ', '')\n\t}\n\treturn 'Validation failed'\n}\n"],"names":["validateParam","validator","value","prevalidatorSuccess","runPrevalidator","parsedValue","runParser","validatorSuccess","runValidator","error","getErrorMessage","getValueAsNullableString","z","coercedValue","ZodError"],"mappings":";;;AAKgB,SAAAA,EACfC,GACAC,GAKC;AACG,MAAA;AACG,UAAAC,IAAsBC,EAAgBH,GAAWC,CAAK,GACtDG,IAAcC,EAAUL,GAAWC,CAAK,GACxCK,IAAmBC,EAAaP,GAAWI,CAAW;AAErD,WAAA;AAAA,MACN,WAAWF,KAAuBI;AAAA,MAClC,aAAAF;AAAA,MACA,WAAW;AAAA,IACZ;AAAA,WACQI,GAAO;AAEf,WAAO,EAAE,WAAW,IAAO,aAAa,MAAM,WAD5BC,EAAgBD,CAAK,EACiB;AAAA,EAAA;AAE1D;AAEA,SAASL,EAAgBH,GAA2BC,GAAkD;AAErG,SAAI,iBAAiBD,KAAa,OAAOA,EAAU,eAAgB,aAC3DA,EAAU,YAAYU,EAAyBT,CAAK,CAAC,IAGtD;AACR;AAEA,SAASI,EAAUL,GAA2BC,GAAkD;AAE3F,MAAAD,aAAqBW,EAAE,SAAS;AACnC,UAAMC,KAAgB,MAAM;AACvB,UAAA;AACH,eAAO,OAAOX,KAAU,WAAW,KAAK,MAAMA,CAAK,IAAIA;AAAA,MAAA,QAChD;AACA,eAAAA;AAAA,MAAA;AAAA,IACR,GACE;AACI,WAAAD,EAAU,MAAMY,CAAY;AAAA,EAAA;AAGpC,SAAOZ,EAAU,MAAMU,EAAyBT,CAAK,CAAC;AACvD;AAEA,SAASM,EAAaP,GAA2BI,GAAsB;AAEtE,SAAI,cAAcJ,KAAa,OAAOA,EAAU,YAAa,aACrDA,EAAU,SAASI,CAAW,IAG/B;AACR;AAEA,SAASK,EAAgBD,GAAgB;AACxC,SAAIA,aAAiBK,IACbF,EAAE,aAAaH,CAAK,EAAE,OAAO,KAAK,IAAI,EAAE,QAAQ,mBAAmB,EAAE,IAEtE;AACR;"}
1
+ {"version":3,"file":"validateParam.mjs","sources":["../../src/validators/validateParam.ts"],"sourcesContent":["import z, { ZodError } from 'zod'\n\nimport { getValueAsNullableString } from '../utils/getValueAsNullableString'\nimport { ValidatorUnion } from './types'\n\nexport function validateParam(\n\tvalidator: ValidatorUnion,\n\tvalue: string | number | boolean | object | null,\n): {\n\tvalidated: boolean\n\tparsedValue: unknown\n\texception: string | null\n} {\n\ttry {\n\t\tconst prevalidatorSuccess = runPrevalidator(validator, value)\n\t\tconst parsedValue = runParser(validator, value)\n\t\tconst validatorSuccess = runValidator(validator, parsedValue)\n\n\t\treturn {\n\t\t\tvalidated: prevalidatorSuccess && validatorSuccess,\n\t\t\tparsedValue,\n\t\t\texception: null,\n\t\t}\n\t} catch (error) {\n\t\tconst exception = getErrorMessage(error)\n\t\treturn { validated: false, parsedValue: null, exception }\n\t}\n}\n\nfunction runPrevalidator(validator: ValidatorUnion, value: string | number | boolean | object | null) {\n\t// Legacy validator\n\tif ('prevalidate' in validator && typeof validator.prevalidate === 'function') {\n\t\treturn validator.prevalidate(getValueAsNullableString(value))\n\t}\n\t// Zod (skip)\n\treturn true\n}\n\nfunction runParser(validator: ValidatorUnion, value: string | number | boolean | object | null) {\n\t// Zod validator\n\tif (validator instanceof z.ZodType) {\n\t\tconst coercedValue = (() => {\n\t\t\ttry {\n\t\t\t\treturn typeof value === 'string' ? JSON.parse(value) : value\n\t\t\t} catch {\n\t\t\t\treturn value\n\t\t\t}\n\t\t})()\n\t\treturn validator.parse(coercedValue)\n\t}\n\t// Legacy validator\n\treturn validator.parse(getValueAsNullableString(value))\n}\n\nfunction runValidator(validator: ValidatorUnion, parsedValue: unknown) {\n\t// Legacy validator\n\tif ('validate' in validator && typeof validator.validate === 'function') {\n\t\treturn validator.validate(parsedValue)\n\t}\n\t// Zod (skip)\n\treturn true\n}\n\nfunction getErrorMessage(error: unknown) {\n\tif (error instanceof ZodError) {\n\t\treturn z.treeifyError(error).errors.join('; ').replace('Invalid input: ', '')\n\t}\n\treturn 'Validation failed'\n}\n"],"names":["validateParam","validator","value","prevalidatorSuccess","runPrevalidator","parsedValue","runParser","validatorSuccess","runValidator","error","getErrorMessage","getValueAsNullableString","z","coercedValue","ZodError"],"mappings":";;AAKgB,SAAAA,EACfC,GACAC,GAKC;AACG,MAAA;AACG,UAAAC,IAAsBC,EAAgBH,GAAWC,CAAK,GACtDG,IAAcC,EAAUL,GAAWC,CAAK,GACxCK,IAAmBC,EAAaP,GAAWI,CAAW;AAErD,WAAA;AAAA,MACN,WAAWF,KAAuBI;AAAA,MAClC,aAAAF;AAAA,MACA,WAAW;AAAA,IACZ;AAAA,WACQI,GAAO;AAEf,WAAO,EAAE,WAAW,IAAO,aAAa,MAAM,WAD5BC,EAAgBD,CAAK,EACiB;AAAA,EAAA;AAE1D;AAEA,SAASL,EAAgBH,GAA2BC,GAAkD;AAErG,SAAI,iBAAiBD,KAAa,OAAOA,EAAU,eAAgB,aAC3DA,EAAU,YAAYU,EAAyBT,CAAK,CAAC,IAGtD;AACR;AAEA,SAASI,EAAUL,GAA2BC,GAAkD;AAE3F,MAAAD,aAAqBW,EAAE,SAAS;AACnC,UAAMC,KAAgB,MAAM;AACvB,UAAA;AACH,eAAO,OAAOX,KAAU,WAAW,KAAK,MAAMA,CAAK,IAAIA;AAAA,MAAA,QAChD;AACA,eAAAA;AAAA,MAAA;AAAA,IACR,GACE;AACI,WAAAD,EAAU,MAAMY,CAAY;AAAA,EAAA;AAGpC,SAAOZ,EAAU,MAAMU,EAAyBT,CAAK,CAAC;AACvD;AAEA,SAASM,EAAaP,GAA2BI,GAAsB;AAEtE,SAAI,cAAcJ,KAAa,OAAOA,EAAU,YAAa,aACrDA,EAAU,SAASI,CAAW,IAG/B;AACR;AAEA,SAASK,EAAgBD,GAAgB;AACxC,SAAIA,aAAiBK,IACbF,EAAE,aAAaH,CAAK,EAAE,OAAO,KAAK,IAAI,EAAE,QAAQ,mBAAmB,EAAE,IAEtE;AACR;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "moonflower",
3
- "version": "1.3.0",
3
+ "version": "1.3.2",
4
4
  "description": "",
5
5
  "author": "tenebrie",
6
6
  "license": "MIT",
@@ -124,7 +124,8 @@
124
124
  },
125
125
  "dependencies": {
126
126
  "ts-morph": "^24.0.0",
127
- "typescript": "^5.7.2"
127
+ "typescript": "^5.7.2",
128
+ "yargs": "^17.7.2"
128
129
  },
129
130
  "peerDependencies": {
130
131
  "@koa/router": "^13.1.0",
@@ -166,7 +167,6 @@
166
167
  "tsconfig-paths": "4.2.0",
167
168
  "vite": "^6.2.2",
168
169
  "vite-plugin-dts": "^3.7.3",
169
- "vitest": "^3.0.9",
170
- "yargs": "^17.7.2"
170
+ "vitest": "^3.0.9"
171
171
  }
172
172
  }