moonflower 0.11.2 → 1.0.1

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 (472) hide show
  1. package/dist/errors/BaseHttpError.cjs +2 -0
  2. package/dist/errors/BaseHttpError.cjs.map +1 -0
  3. package/dist/{src/errors → errors}/BaseHttpError.d.ts +1 -0
  4. package/dist/errors/BaseHttpError.d.ts.map +1 -0
  5. package/dist/errors/BaseHttpError.mjs +10 -0
  6. package/dist/errors/BaseHttpError.mjs.map +1 -0
  7. package/dist/errors/HttpErrorHandler.cjs +2 -0
  8. package/dist/errors/HttpErrorHandler.cjs.map +1 -0
  9. package/dist/{src/errors → errors}/HttpErrorHandler.d.ts +2 -1
  10. package/dist/errors/HttpErrorHandler.d.ts.map +1 -0
  11. package/dist/errors/HttpErrorHandler.mjs +19 -0
  12. package/dist/errors/HttpErrorHandler.mjs.map +1 -0
  13. package/dist/errors/UserFacingErrors.cjs +2 -0
  14. package/dist/errors/UserFacingErrors.cjs.map +1 -0
  15. package/dist/{src/errors → errors}/UserFacingErrors.d.ts +1 -0
  16. package/dist/errors/UserFacingErrors.d.ts.map +1 -0
  17. package/dist/errors/UserFacingErrors.mjs +23 -0
  18. package/dist/errors/UserFacingErrors.mjs.map +1 -0
  19. package/dist/hooks/authentication/useAuth.cjs +2 -0
  20. package/dist/hooks/authentication/useAuth.cjs.map +1 -0
  21. package/dist/{src/hooks → hooks}/authentication/useAuth.d.ts +1 -0
  22. package/dist/hooks/authentication/useAuth.d.ts.map +1 -0
  23. package/dist/hooks/authentication/useAuth.mjs +5 -0
  24. package/dist/hooks/authentication/useAuth.mjs.map +1 -0
  25. package/dist/hooks/authentication/useOptionalAuth.cjs +2 -0
  26. package/dist/hooks/authentication/useOptionalAuth.cjs.map +1 -0
  27. package/dist/{src/hooks → hooks}/authentication/useOptionalAuth.d.ts +1 -0
  28. package/dist/hooks/authentication/useOptionalAuth.d.ts.map +1 -0
  29. package/dist/hooks/authentication/useOptionalAuth.mjs +14 -0
  30. package/dist/hooks/authentication/useOptionalAuth.mjs.map +1 -0
  31. package/dist/hooks/useApiEndpoint.cjs +2 -0
  32. package/dist/hooks/useApiEndpoint.cjs.map +1 -0
  33. package/dist/hooks/useApiEndpoint.d.ts.map +1 -0
  34. package/dist/hooks/useApiEndpoint.mjs +5 -0
  35. package/dist/hooks/useApiEndpoint.mjs.map +1 -0
  36. package/dist/hooks/useApiEndpoint.spec.d.ts +2 -0
  37. package/dist/hooks/useApiEndpoint.spec.d.ts.map +1 -0
  38. package/dist/hooks/useApiHeader/index.d.ts.map +1 -0
  39. package/dist/hooks/useApiHeader/useApiHeader.cjs +2 -0
  40. package/dist/hooks/useApiHeader/useApiHeader.cjs.map +1 -0
  41. package/dist/{src/hooks → hooks}/useApiHeader/useApiHeader.d.ts +1 -0
  42. package/dist/hooks/useApiHeader/useApiHeader.d.ts.map +1 -0
  43. package/dist/hooks/useApiHeader/useApiHeader.mjs +6 -0
  44. package/dist/hooks/useApiHeader/useApiHeader.mjs.map +1 -0
  45. package/dist/hooks/useApiHeader/useApiHeader.spec.d.ts +2 -0
  46. package/dist/hooks/useApiHeader/useApiHeader.spec.d.ts.map +1 -0
  47. package/dist/hooks/useApiHeader/useApiHeader.spec.data.d.ts.map +1 -0
  48. package/dist/hooks/useCookieParams.cjs +2 -0
  49. package/dist/hooks/useCookieParams.cjs.map +1 -0
  50. package/dist/{src/hooks → hooks}/useCookieParams.d.ts +1 -0
  51. package/dist/hooks/useCookieParams.d.ts.map +1 -0
  52. package/dist/hooks/useCookieParams.mjs +41 -0
  53. package/dist/hooks/useCookieParams.mjs.map +1 -0
  54. package/dist/hooks/useCookieParams.spec.d.ts +2 -0
  55. package/dist/hooks/useCookieParams.spec.d.ts.map +1 -0
  56. package/dist/hooks/useExposeApiModel/index.d.ts.map +1 -0
  57. package/dist/hooks/useExposeApiModel/useExposeApiModel.d.ts.map +1 -0
  58. package/dist/hooks/useExposeApiModel/useExposeApiModel.spec.d.ts +2 -0
  59. package/dist/hooks/useExposeApiModel/useExposeApiModel.spec.d.ts.map +1 -0
  60. package/dist/hooks/useExposeApiModel/useExposeApiModel.spec.data.d.ts.map +1 -0
  61. package/dist/hooks/useExposeApiModel.cjs +2 -0
  62. package/dist/hooks/useExposeApiModel.cjs.map +1 -0
  63. package/dist/hooks/useExposeApiModel.d.ts +1 -0
  64. package/dist/hooks/useExposeApiModel.mjs +8 -0
  65. package/dist/hooks/useExposeApiModel.mjs.map +1 -0
  66. package/dist/hooks/useHeaderParams.cjs +2 -0
  67. package/dist/hooks/useHeaderParams.cjs.map +1 -0
  68. package/dist/{src/hooks → hooks}/useHeaderParams.d.ts +1 -0
  69. package/dist/hooks/useHeaderParams.d.ts.map +1 -0
  70. package/dist/hooks/useHeaderParams.mjs +42 -0
  71. package/dist/hooks/useHeaderParams.mjs.map +1 -0
  72. package/dist/hooks/useHeaderParams.spec.d.ts +2 -0
  73. package/dist/hooks/useHeaderParams.spec.d.ts.map +1 -0
  74. package/dist/hooks/usePathParams.cjs +2 -0
  75. package/dist/hooks/usePathParams.cjs.map +1 -0
  76. package/dist/{src/hooks → hooks}/usePathParams.d.ts +1 -0
  77. package/dist/hooks/usePathParams.d.ts.map +1 -0
  78. package/dist/hooks/usePathParams.mjs +35 -0
  79. package/dist/hooks/usePathParams.mjs.map +1 -0
  80. package/dist/hooks/usePathParams.spec.d.ts +2 -0
  81. package/dist/hooks/usePathParams.spec.d.ts.map +1 -0
  82. package/dist/hooks/useQueryParams.cjs +2 -0
  83. package/dist/hooks/useQueryParams.cjs.map +1 -0
  84. package/dist/{src/hooks → hooks}/useQueryParams.d.ts +1 -0
  85. package/dist/hooks/useQueryParams.d.ts.map +1 -0
  86. package/dist/hooks/useQueryParams.mjs +40 -0
  87. package/dist/hooks/useQueryParams.mjs.map +1 -0
  88. package/dist/hooks/useQueryParams.spec.d.ts +2 -0
  89. package/dist/hooks/useQueryParams.spec.d.ts.map +1 -0
  90. package/dist/hooks/useRequestBody.cjs +2 -0
  91. package/dist/hooks/useRequestBody.cjs.map +1 -0
  92. package/dist/{src/hooks → hooks}/useRequestBody.d.ts +1 -0
  93. package/dist/hooks/useRequestBody.d.ts.map +1 -0
  94. package/dist/hooks/useRequestBody.mjs +42 -0
  95. package/dist/hooks/useRequestBody.mjs.map +1 -0
  96. package/dist/hooks/useRequestBody.spec.d.ts +2 -0
  97. package/dist/hooks/useRequestBody.spec.d.ts.map +1 -0
  98. package/dist/hooks/useRequestRawBody.cjs +2 -0
  99. package/dist/hooks/useRequestRawBody.cjs.map +1 -0
  100. package/dist/{src/hooks → hooks}/useRequestRawBody.d.ts +1 -0
  101. package/dist/hooks/useRequestRawBody.d.ts.map +1 -0
  102. package/dist/hooks/useRequestRawBody.mjs +27 -0
  103. package/dist/hooks/useRequestRawBody.mjs.map +1 -0
  104. package/dist/hooks/useRequestRawBody.spec.d.ts +2 -0
  105. package/dist/hooks/useRequestRawBody.spec.d.ts.map +1 -0
  106. package/dist/hooks/useReturnValue.cjs +2 -0
  107. package/dist/hooks/useReturnValue.cjs.map +1 -0
  108. package/dist/hooks/useReturnValue.d.ts.map +1 -0
  109. package/dist/hooks/useReturnValue.mjs +10 -0
  110. package/dist/hooks/useReturnValue.mjs.map +1 -0
  111. package/dist/hooks/useReturnValue.spec.d.ts +2 -0
  112. package/dist/hooks/useReturnValue.spec.d.ts.map +1 -0
  113. package/dist/index.cjs +2 -0
  114. package/dist/index.cjs.map +1 -0
  115. package/dist/index.d.ts.map +1 -0
  116. package/dist/index.mjs +54 -0
  117. package/dist/index.mjs.map +1 -0
  118. package/dist/openapi/analyzerModule/analyzerModule.cjs +2 -0
  119. package/dist/openapi/analyzerModule/analyzerModule.cjs.map +1 -0
  120. package/dist/{src/openapi → openapi}/analyzerModule/analyzerModule.d.ts +1 -0
  121. package/dist/openapi/analyzerModule/analyzerModule.d.ts.map +1 -0
  122. package/dist/openapi/analyzerModule/analyzerModule.mjs +142 -0
  123. package/dist/openapi/analyzerModule/analyzerModule.mjs.map +1 -0
  124. package/dist/openapi/analyzerModule/getSourceFileTimestamp.cjs +2 -0
  125. package/dist/openapi/analyzerModule/getSourceFileTimestamp.cjs.map +1 -0
  126. package/dist/{src/openapi → openapi}/analyzerModule/getSourceFileTimestamp.d.ts +1 -0
  127. package/dist/openapi/analyzerModule/getSourceFileTimestamp.d.ts.map +1 -0
  128. package/dist/openapi/analyzerModule/getSourceFileTimestamp.mjs +37 -0
  129. package/dist/openapi/analyzerModule/getSourceFileTimestamp.mjs.map +1 -0
  130. package/dist/openapi/analyzerModule/nodeParsers.cjs +2 -0
  131. package/dist/openapi/analyzerModule/nodeParsers.cjs.map +1 -0
  132. package/dist/{src/openapi → openapi}/analyzerModule/nodeParsers.d.ts +2 -1
  133. package/dist/openapi/analyzerModule/nodeParsers.d.ts.map +1 -0
  134. package/dist/openapi/analyzerModule/nodeParsers.mjs +371 -0
  135. package/dist/openapi/analyzerModule/nodeParsers.mjs.map +1 -0
  136. package/dist/openapi/analyzerModule/parseEndpoint.cjs +2 -0
  137. package/dist/openapi/analyzerModule/parseEndpoint.cjs.map +1 -0
  138. package/dist/{src/openapi → openapi}/analyzerModule/parseEndpoint.d.ts +1 -0
  139. package/dist/openapi/analyzerModule/parseEndpoint.d.ts.map +1 -0
  140. package/dist/openapi/analyzerModule/parseEndpoint.mjs +185 -0
  141. package/dist/openapi/analyzerModule/parseEndpoint.mjs.map +1 -0
  142. package/dist/openapi/analyzerModule/parseExposedModels.cjs +2 -0
  143. package/dist/openapi/analyzerModule/parseExposedModels.cjs.map +1 -0
  144. package/dist/{src/openapi → openapi}/analyzerModule/parseExposedModels.d.ts +1 -0
  145. package/dist/openapi/analyzerModule/parseExposedModels.d.ts.map +1 -0
  146. package/dist/openapi/analyzerModule/parseExposedModels.mjs +23 -0
  147. package/dist/openapi/analyzerModule/parseExposedModels.mjs.map +1 -0
  148. package/dist/openapi/analyzerModule/sourceFileCache.cjs +2 -0
  149. package/dist/openapi/analyzerModule/sourceFileCache.cjs.map +1 -0
  150. package/dist/{src/openapi → openapi}/analyzerModule/sourceFileCache.d.ts +1 -0
  151. package/dist/openapi/analyzerModule/sourceFileCache.d.ts.map +1 -0
  152. package/dist/openapi/analyzerModule/sourceFileCache.mjs +49 -0
  153. package/dist/openapi/analyzerModule/sourceFileCache.mjs.map +1 -0
  154. package/dist/openapi/analyzerModule/test/openApiAnalyzer.spec.d.ts +2 -0
  155. package/dist/openapi/analyzerModule/test/openApiAnalyzer.spec.d.ts.map +1 -0
  156. package/dist/openapi/analyzerModule/test/openApiAnalyzer.spec.data.d.ts.map +1 -0
  157. package/dist/openapi/analyzerModule/types.d.ts.map +1 -0
  158. package/dist/openapi/discoveryModule/discoverImports/discoverImports.cjs +2 -0
  159. package/dist/openapi/discoveryModule/discoverImports/discoverImports.cjs.map +1 -0
  160. package/dist/{src/openapi → openapi}/discoveryModule/discoverImports/discoverImports.d.ts +1 -0
  161. package/dist/openapi/discoveryModule/discoverImports/discoverImports.d.ts.map +1 -0
  162. package/dist/openapi/discoveryModule/discoverImports/discoverImports.mjs +18 -0
  163. package/dist/openapi/discoveryModule/discoverImports/discoverImports.mjs.map +1 -0
  164. package/dist/openapi/discoveryModule/discoverRouterFiles/data/testRouterA.spec.data.d.ts +4 -0
  165. package/dist/openapi/discoveryModule/discoverRouterFiles/data/testRouterA.spec.data.d.ts.map +1 -0
  166. package/dist/openapi/discoveryModule/discoverRouterFiles/data/testRouterB.spec.data.d.ts +4 -0
  167. package/dist/openapi/discoveryModule/discoverRouterFiles/data/testRouterB.spec.data.d.ts.map +1 -0
  168. package/dist/openapi/discoveryModule/discoverRouterFiles/discoverRouterFiles.cjs +2 -0
  169. package/dist/openapi/discoveryModule/discoverRouterFiles/discoverRouterFiles.cjs.map +1 -0
  170. package/dist/{src/openapi → openapi}/discoveryModule/discoverRouterFiles/discoverRouterFiles.d.ts +3 -3
  171. package/dist/openapi/discoveryModule/discoverRouterFiles/discoverRouterFiles.d.ts.map +1 -0
  172. package/dist/openapi/discoveryModule/discoverRouterFiles/discoverRouterFiles.mjs +43 -0
  173. package/dist/openapi/discoveryModule/discoverRouterFiles/discoverRouterFiles.mjs.map +1 -0
  174. package/dist/openapi/discoveryModule/discoverRouterFiles/discoverRouterFiles.spec.d.ts +2 -0
  175. package/dist/openapi/discoveryModule/discoverRouterFiles/discoverRouterFiles.spec.d.ts.map +1 -0
  176. package/dist/openapi/discoveryModule/discoverRouters/discoverRouters.cjs +2 -0
  177. package/dist/openapi/discoveryModule/discoverRouters/discoverRouters.cjs.map +1 -0
  178. package/dist/{src/openapi → openapi}/discoveryModule/discoverRouters/discoverRouters.d.ts +2 -1
  179. package/dist/openapi/discoveryModule/discoverRouters/discoverRouters.d.ts.map +1 -0
  180. package/dist/openapi/discoveryModule/discoverRouters/discoverRouters.mjs +25 -0
  181. package/dist/openapi/discoveryModule/discoverRouters/discoverRouters.mjs.map +1 -0
  182. package/dist/openapi/discoveryModule/discoverRouters/discoverRouters.spec.d.ts +2 -0
  183. package/dist/openapi/discoveryModule/discoverRouters/discoverRouters.spec.d.ts.map +1 -0
  184. package/dist/openapi/discoveryModule/discoverRouters/discoverRouters.spec.data.d.ts +5 -0
  185. package/dist/openapi/discoveryModule/discoverRouters/discoverRouters.spec.data.d.ts.map +1 -0
  186. package/dist/openapi/discoveryModule/index.d.ts.map +1 -0
  187. package/dist/openapi/generatorModule/generateComponentSchemas.cjs +2 -0
  188. package/dist/openapi/generatorModule/generateComponentSchemas.cjs.map +1 -0
  189. package/dist/{src/openapi → openapi}/generatorModule/generateComponentSchemas.d.ts +1 -0
  190. package/dist/openapi/generatorModule/generateComponentSchemas.d.ts.map +1 -0
  191. package/dist/openapi/generatorModule/generateComponentSchemas.mjs +11 -0
  192. package/dist/openapi/generatorModule/generateComponentSchemas.mjs.map +1 -0
  193. package/dist/openapi/generatorModule/generatePaths.cjs +2 -0
  194. package/dist/openapi/generatorModule/generatePaths.cjs.map +1 -0
  195. package/dist/{src/openapi → openapi}/generatorModule/generatePaths.d.ts +1 -0
  196. package/dist/openapi/generatorModule/generatePaths.d.ts.map +1 -0
  197. package/dist/openapi/generatorModule/generatePaths.mjs +77 -0
  198. package/dist/openapi/generatorModule/generatePaths.mjs.map +1 -0
  199. package/dist/openapi/generatorModule/generatorModule.cjs +2 -0
  200. package/dist/openapi/generatorModule/generatorModule.cjs.map +1 -0
  201. package/dist/openapi/generatorModule/generatorModule.d.ts +17 -0
  202. package/dist/openapi/generatorModule/generatorModule.d.ts.map +1 -0
  203. package/dist/openapi/generatorModule/generatorModule.mjs +17 -0
  204. package/dist/openapi/generatorModule/generatorModule.mjs.map +1 -0
  205. package/dist/openapi/generatorModule/getSchema.cjs +2 -0
  206. package/dist/openapi/generatorModule/getSchema.cjs.map +1 -0
  207. package/dist/{src/openapi → openapi}/generatorModule/getSchema.d.ts +1 -0
  208. package/dist/openapi/generatorModule/getSchema.d.ts.map +1 -0
  209. package/dist/openapi/generatorModule/getSchema.mjs +108 -0
  210. package/dist/openapi/generatorModule/getSchema.mjs.map +1 -0
  211. package/dist/openapi/generatorModule/index.d.ts.map +1 -0
  212. package/dist/openapi/generatorModule/test/openApiGenerator.spec.d.ts +2 -0
  213. package/dist/openapi/generatorModule/test/openApiGenerator.spec.d.ts.map +1 -0
  214. package/dist/{src/openapi → openapi}/generatorModule/test/openApiGenerator.spec.data.d.ts +1 -0
  215. package/dist/{src/openapi → openapi}/generatorModule/test/openApiGenerator.spec.data.d.ts.map +1 -1
  216. package/dist/openapi/initOpenApiEngine.cjs +2 -0
  217. package/dist/openapi/initOpenApiEngine.cjs.map +1 -0
  218. package/dist/{src/openapi → openapi}/initOpenApiEngine.d.ts +2 -1
  219. package/dist/openapi/initOpenApiEngine.d.ts.map +1 -0
  220. package/dist/openapi/initOpenApiEngine.mjs +11 -0
  221. package/dist/openapi/initOpenApiEngine.mjs.map +1 -0
  222. package/dist/openapi/manager/OpenApiManager.cjs +2 -0
  223. package/dist/openapi/manager/OpenApiManager.cjs.map +1 -0
  224. package/dist/{src/openapi → openapi}/manager/OpenApiManager.d.ts +1 -0
  225. package/dist/openapi/manager/OpenApiManager.d.ts.map +1 -0
  226. package/dist/openapi/manager/OpenApiManager.mjs +81 -0
  227. package/dist/openapi/manager/OpenApiManager.mjs.map +1 -0
  228. package/dist/openapi/router/OpenApiRouter.cjs +2 -0
  229. package/dist/openapi/router/OpenApiRouter.cjs.map +1 -0
  230. package/dist/openapi/router/OpenApiRouter.d.ts +4 -0
  231. package/dist/openapi/router/OpenApiRouter.d.ts.map +1 -0
  232. package/dist/openapi/router/OpenApiRouter.mjs +10 -0
  233. package/dist/openapi/router/OpenApiRouter.mjs.map +1 -0
  234. package/dist/{src/openapi → openapi}/types.d.ts +1 -0
  235. package/dist/openapi/types.d.ts.map +1 -0
  236. package/dist/router/Router.cjs +2 -0
  237. package/dist/router/Router.cjs.map +1 -0
  238. package/dist/{src/router → router}/Router.d.ts +3 -2
  239. package/dist/router/Router.d.ts.map +1 -0
  240. package/dist/router/Router.mjs +63 -0
  241. package/dist/router/Router.mjs.map +1 -0
  242. package/dist/router/parseEndpointReturnValue.cjs +2 -0
  243. package/dist/router/parseEndpointReturnValue.cjs.map +1 -0
  244. package/dist/router/parseEndpointReturnValue.d.ts.map +1 -0
  245. package/dist/router/parseEndpointReturnValue.mjs +21 -0
  246. package/dist/router/parseEndpointReturnValue.mjs.map +1 -0
  247. package/dist/router/parseEndpointReturnValue.spec.d.ts +2 -0
  248. package/dist/router/parseEndpointReturnValue.spec.d.ts.map +1 -0
  249. package/dist/{src/setupTests.d.ts.map → setupTests.d.ts.map} +1 -1
  250. package/dist/test/TestAppRouter.d.ts +8 -0
  251. package/dist/test/TestAppRouter.d.ts.map +1 -0
  252. package/dist/test/app.d.ts +4 -0
  253. package/dist/test/app.d.ts.map +1 -0
  254. package/dist/test/app.spec.d.ts +2 -0
  255. package/dist/test/app.spec.d.ts.map +1 -0
  256. package/dist/utils/TypeUtils.d.ts.map +1 -0
  257. package/dist/utils/loadTestData.d.ts +2 -0
  258. package/dist/utils/loadTestData.d.ts.map +1 -0
  259. package/dist/utils/logger.cjs +2 -0
  260. package/dist/utils/logger.cjs.map +1 -0
  261. package/dist/utils/logger.d.ts.map +1 -0
  262. package/dist/utils/logger.mjs +62 -0
  263. package/dist/utils/logger.mjs.map +1 -0
  264. package/dist/{src/utils → utils}/mockContext.d.ts +2 -1
  265. package/dist/utils/mockContext.d.ts.map +1 -0
  266. package/dist/utils/nameOf.d.ts.map +1 -0
  267. package/dist/utils/object.cjs +2 -0
  268. package/dist/utils/object.cjs.map +1 -0
  269. package/dist/utils/object.d.ts.map +1 -0
  270. package/dist/utils/object.mjs +7 -0
  271. package/dist/utils/object.mjs.map +1 -0
  272. package/dist/utils/object.spec.d.ts +2 -0
  273. package/dist/utils/object.spec.d.ts.map +1 -0
  274. package/dist/{src/utils → utils}/printers.d.ts +1 -0
  275. package/dist/utils/printers.d.ts.map +1 -0
  276. package/dist/utils/printers.spec.d.ts +2 -0
  277. package/dist/utils/printers.spec.d.ts.map +1 -0
  278. package/dist/utils/validationMessages.cjs +2 -0
  279. package/dist/utils/validationMessages.cjs.map +1 -0
  280. package/dist/{src/utils → utils}/validationMessages.d.ts +1 -0
  281. package/dist/utils/validationMessages.d.ts.map +1 -0
  282. package/dist/utils/validationMessages.mjs +20 -0
  283. package/dist/utils/validationMessages.mjs.map +1 -0
  284. package/dist/validators/BuiltInValidators.cjs +2 -0
  285. package/dist/validators/BuiltInValidators.cjs.map +1 -0
  286. package/dist/{src/validators → validators}/BuiltInValidators.d.ts +10 -10
  287. package/dist/validators/BuiltInValidators.d.ts.map +1 -0
  288. package/dist/validators/BuiltInValidators.mjs +66 -0
  289. package/dist/validators/BuiltInValidators.mjs.map +1 -0
  290. package/dist/validators/InternalParamWrappers.cjs +2 -0
  291. package/dist/validators/InternalParamWrappers.cjs.map +1 -0
  292. package/dist/{src/validators → validators}/InternalParamWrappers.d.ts +1 -0
  293. package/dist/validators/InternalParamWrappers.d.ts.map +1 -0
  294. package/dist/validators/InternalParamWrappers.mjs +8 -0
  295. package/dist/validators/InternalParamWrappers.mjs.map +1 -0
  296. package/dist/validators/ParamWrappers.cjs +2 -0
  297. package/dist/validators/ParamWrappers.cjs.map +1 -0
  298. package/dist/{src/validators → validators}/ParamWrappers.d.ts +1 -0
  299. package/dist/validators/ParamWrappers.d.ts.map +1 -0
  300. package/dist/validators/ParamWrappers.mjs +16 -0
  301. package/dist/validators/ParamWrappers.mjs.map +1 -0
  302. package/dist/validators/types.d.ts.map +1 -0
  303. package/eslint.config.mjs +1 -2
  304. package/package.json +110 -10
  305. package/src/openapi/analyzerModule/nodeParsers.ts +17 -1
  306. package/src/openapi/discoveryModule/discoverImports/discoverImports.ts +0 -1
  307. package/src/openapi/discoveryModule/discoverRouters/discoverRouters.ts +1 -3
  308. package/tsconfig.json +4 -2
  309. package/vite.config.ts +92 -5
  310. package/dist/cli/cli.d.ts +0 -2
  311. package/dist/cli/cli.d.ts.map +0 -1
  312. package/dist/cli/cli.js +0 -89
  313. package/dist/cli/prettyprint.d.ts +0 -4
  314. package/dist/cli/prettyprint.d.ts.map +0 -1
  315. package/dist/cli/prettyprint.js +0 -19
  316. package/dist/src/errors/BaseHttpError.d.ts.map +0 -1
  317. package/dist/src/errors/BaseHttpError.js +0 -13
  318. package/dist/src/errors/HttpErrorHandler.d.ts.map +0 -1
  319. package/dist/src/errors/HttpErrorHandler.js +0 -23
  320. package/dist/src/errors/UserFacingErrors.d.ts.map +0 -1
  321. package/dist/src/errors/UserFacingErrors.js +0 -23
  322. package/dist/src/hooks/authentication/useAuth.d.ts.map +0 -1
  323. package/dist/src/hooks/authentication/useAuth.js +0 -7
  324. package/dist/src/hooks/authentication/useOptionalAuth.d.ts.map +0 -1
  325. package/dist/src/hooks/authentication/useOptionalAuth.js +0 -16
  326. package/dist/src/hooks/useApiEndpoint.d.ts.map +0 -1
  327. package/dist/src/hooks/useApiEndpoint.js +0 -7
  328. package/dist/src/hooks/useApiHeader/index.d.ts.map +0 -1
  329. package/dist/src/hooks/useApiHeader/index.js +0 -17
  330. package/dist/src/hooks/useApiHeader/useApiHeader.d.ts.map +0 -1
  331. package/dist/src/hooks/useApiHeader/useApiHeader.js +0 -6
  332. package/dist/src/hooks/useApiHeader/useApiHeader.spec.data.d.ts.map +0 -1
  333. package/dist/src/hooks/useApiHeader/useApiHeader.spec.data.js +0 -22
  334. package/dist/src/hooks/useCookieParams.d.ts.map +0 -1
  335. package/dist/src/hooks/useCookieParams.js +0 -50
  336. package/dist/src/hooks/useExposeApiModel/index.d.ts.map +0 -1
  337. package/dist/src/hooks/useExposeApiModel/index.js +0 -17
  338. package/dist/src/hooks/useExposeApiModel/useExposeApiModel.d.ts.map +0 -1
  339. package/dist/src/hooks/useExposeApiModel/useExposeApiModel.js +0 -9
  340. package/dist/src/hooks/useExposeApiModel/useExposeApiModel.spec.data.d.ts.map +0 -1
  341. package/dist/src/hooks/useExposeApiModel/useExposeApiModel.spec.data.js +0 -16
  342. package/dist/src/hooks/useHeaderParams.d.ts.map +0 -1
  343. package/dist/src/hooks/useHeaderParams.js +0 -52
  344. package/dist/src/hooks/usePathParams.d.ts.map +0 -1
  345. package/dist/src/hooks/usePathParams.js +0 -46
  346. package/dist/src/hooks/useQueryParams.d.ts.map +0 -1
  347. package/dist/src/hooks/useQueryParams.js +0 -50
  348. package/dist/src/hooks/useRequestBody.d.ts.map +0 -1
  349. package/dist/src/hooks/useRequestBody.js +0 -59
  350. package/dist/src/hooks/useRequestRawBody.d.ts.map +0 -1
  351. package/dist/src/hooks/useRequestRawBody.js +0 -34
  352. package/dist/src/hooks/useReturnValue.d.ts.map +0 -1
  353. package/dist/src/hooks/useReturnValue.js +0 -12
  354. package/dist/src/index.d.ts.map +0 -1
  355. package/dist/src/index.js +0 -34
  356. package/dist/src/openapi/analyzerModule/analyzerModule.d.ts.map +0 -1
  357. package/dist/src/openapi/analyzerModule/analyzerModule.js +0 -257
  358. package/dist/src/openapi/analyzerModule/analyzerWorker.d.ts +0 -2
  359. package/dist/src/openapi/analyzerModule/analyzerWorker.d.ts.map +0 -1
  360. package/dist/src/openapi/analyzerModule/analyzerWorker.js +0 -10
  361. package/dist/src/openapi/analyzerModule/getSourceFileTimestamp.d.ts.map +0 -1
  362. package/dist/src/openapi/analyzerModule/getSourceFileTimestamp.js +0 -52
  363. package/dist/src/openapi/analyzerModule/nodeParsers.d.ts.map +0 -1
  364. package/dist/src/openapi/analyzerModule/nodeParsers.js +0 -555
  365. package/dist/src/openapi/analyzerModule/parseEndpoint.d.ts.map +0 -1
  366. package/dist/src/openapi/analyzerModule/parseEndpoint.js +0 -291
  367. package/dist/src/openapi/analyzerModule/parseExposedModels.d.ts.map +0 -1
  368. package/dist/src/openapi/analyzerModule/parseExposedModels.js +0 -32
  369. package/dist/src/openapi/analyzerModule/sourceFileCache.d.ts.map +0 -1
  370. package/dist/src/openapi/analyzerModule/sourceFileCache.js +0 -67
  371. package/dist/src/openapi/analyzerModule/test/openApiAnalyzer.spec.data.d.ts.map +0 -1
  372. package/dist/src/openapi/analyzerModule/test/openApiAnalyzer.spec.data.js +0 -427
  373. package/dist/src/openapi/analyzerModule/types.d.ts.map +0 -1
  374. package/dist/src/openapi/analyzerModule/types.js +0 -2
  375. package/dist/src/openapi/discoveryModule/discoverImports/discoverImports.d.ts.map +0 -1
  376. package/dist/src/openapi/discoveryModule/discoverImports/discoverImports.js +0 -33
  377. package/dist/src/openapi/discoveryModule/discoverRouterFiles/data/testRouterA.spec.data.d.ts +0 -3
  378. package/dist/src/openapi/discoveryModule/discoverRouterFiles/data/testRouterA.spec.data.d.ts.map +0 -1
  379. package/dist/src/openapi/discoveryModule/discoverRouterFiles/data/testRouterA.spec.data.js +0 -8
  380. package/dist/src/openapi/discoveryModule/discoverRouterFiles/data/testRouterB.spec.data.d.ts +0 -3
  381. package/dist/src/openapi/discoveryModule/discoverRouterFiles/data/testRouterB.spec.data.d.ts.map +0 -1
  382. package/dist/src/openapi/discoveryModule/discoverRouterFiles/data/testRouterB.spec.data.js +0 -8
  383. package/dist/src/openapi/discoveryModule/discoverRouterFiles/discoverRouterFiles.d.ts.map +0 -1
  384. package/dist/src/openapi/discoveryModule/discoverRouterFiles/discoverRouterFiles.js +0 -91
  385. package/dist/src/openapi/discoveryModule/discoverRouters/discoverRouters.d.ts.map +0 -1
  386. package/dist/src/openapi/discoveryModule/discoverRouters/discoverRouters.js +0 -31
  387. package/dist/src/openapi/discoveryModule/discoverRouters/discoverRouters.spec.data.d.ts +0 -4
  388. package/dist/src/openapi/discoveryModule/discoverRouters/discoverRouters.spec.data.d.ts.map +0 -1
  389. package/dist/src/openapi/discoveryModule/discoverRouters/discoverRouters.spec.data.js +0 -38
  390. package/dist/src/openapi/discoveryModule/index.d.ts.map +0 -1
  391. package/dist/src/openapi/discoveryModule/index.js +0 -18
  392. package/dist/src/openapi/generatorModule/generateComponentSchemas.d.ts.map +0 -1
  393. package/dist/src/openapi/generatorModule/generateComponentSchemas.js +0 -12
  394. package/dist/src/openapi/generatorModule/generatePaths.d.ts.map +0 -1
  395. package/dist/src/openapi/generatorModule/generatePaths.js +0 -118
  396. package/dist/src/openapi/generatorModule/generatorModule.d.ts +0 -16
  397. package/dist/src/openapi/generatorModule/generatorModule.d.ts.map +0 -1
  398. package/dist/src/openapi/generatorModule/generatorModule.js +0 -18
  399. package/dist/src/openapi/generatorModule/getSchema.d.ts.map +0 -1
  400. package/dist/src/openapi/generatorModule/getSchema.js +0 -143
  401. package/dist/src/openapi/generatorModule/index.d.ts.map +0 -1
  402. package/dist/src/openapi/generatorModule/index.js +0 -20
  403. package/dist/src/openapi/generatorModule/test/openApiGenerator.spec.data.js +0 -1126
  404. package/dist/src/openapi/initOpenApiEngine.d.ts.map +0 -1
  405. package/dist/src/openapi/initOpenApiEngine.js +0 -14
  406. package/dist/src/openapi/manager/OpenApiManager.d.ts.map +0 -1
  407. package/dist/src/openapi/manager/OpenApiManager.js +0 -86
  408. package/dist/src/openapi/router/OpenApiRouter.d.ts +0 -3
  409. package/dist/src/openapi/router/OpenApiRouter.d.ts.map +0 -1
  410. package/dist/src/openapi/router/OpenApiRouter.js +0 -11
  411. package/dist/src/openapi/types.d.ts.map +0 -1
  412. package/dist/src/openapi/types.js +0 -2
  413. package/dist/src/router/Router.d.ts.map +0 -1
  414. package/dist/src/router/Router.js +0 -84
  415. package/dist/src/router/parseEndpointReturnValue.d.ts.map +0 -1
  416. package/dist/src/router/parseEndpointReturnValue.js +0 -40
  417. package/dist/src/router/responseValueToJson.d.ts +0 -2
  418. package/dist/src/router/responseValueToJson.d.ts.map +0 -1
  419. package/dist/src/router/responseValueToJson.js +0 -10
  420. package/dist/src/setupTests.js +0 -3
  421. package/dist/src/test/TestAppRouter.d.ts +0 -7
  422. package/dist/src/test/TestAppRouter.d.ts.map +0 -1
  423. package/dist/src/test/TestAppRouter.js +0 -64
  424. package/dist/src/test/app.d.ts +0 -3
  425. package/dist/src/test/app.d.ts.map +0 -1
  426. package/dist/src/test/app.js +0 -41
  427. package/dist/src/utils/TypeUtils.d.ts.map +0 -1
  428. package/dist/src/utils/TypeUtils.js +0 -2
  429. package/dist/src/utils/loadTestData.d.ts +0 -2
  430. package/dist/src/utils/loadTestData.d.ts.map +0 -1
  431. package/dist/src/utils/loadTestData.js +0 -50
  432. package/dist/src/utils/logger.d.ts.map +0 -1
  433. package/dist/src/utils/logger.js +0 -80
  434. package/dist/src/utils/mockContext.d.ts.map +0 -1
  435. package/dist/src/utils/mockContext.js +0 -95
  436. package/dist/src/utils/nameOf.d.ts.map +0 -1
  437. package/dist/src/utils/nameOf.js +0 -7
  438. package/dist/src/utils/object.d.ts.map +0 -1
  439. package/dist/src/utils/object.js +0 -25
  440. package/dist/src/utils/printers.d.ts.map +0 -1
  441. package/dist/src/utils/printers.js +0 -86
  442. package/dist/src/utils/validationMessages.d.ts.map +0 -1
  443. package/dist/src/utils/validationMessages.js +0 -43
  444. package/dist/src/validators/BuiltInValidators.d.ts.map +0 -1
  445. package/dist/src/validators/BuiltInValidators.js +0 -66
  446. package/dist/src/validators/InternalParamWrappers.d.ts.map +0 -1
  447. package/dist/src/validators/InternalParamWrappers.js +0 -5
  448. package/dist/src/validators/ParamWrappers.d.ts.map +0 -1
  449. package/dist/src/validators/ParamWrappers.js +0 -9
  450. package/dist/src/validators/types.d.ts.map +0 -1
  451. package/dist/src/validators/types.js +0 -2
  452. package/dist/tsconfig.build.tsbuildinfo +0 -1
  453. package/tsconfig.build.json +0 -15
  454. /package/dist/{src/hooks → hooks}/useApiEndpoint.d.ts +0 -0
  455. /package/dist/{src/hooks → hooks}/useApiHeader/index.d.ts +0 -0
  456. /package/dist/{src/hooks → hooks}/useApiHeader/useApiHeader.spec.data.d.ts +0 -0
  457. /package/dist/{src/hooks → hooks}/useExposeApiModel/index.d.ts +0 -0
  458. /package/dist/{src/hooks → hooks}/useExposeApiModel/useExposeApiModel.d.ts +0 -0
  459. /package/dist/{src/hooks → hooks}/useExposeApiModel/useExposeApiModel.spec.data.d.ts +0 -0
  460. /package/dist/{src/hooks → hooks}/useReturnValue.d.ts +0 -0
  461. /package/dist/{src/index.d.ts → index.d.ts} +0 -0
  462. /package/dist/{src/openapi → openapi}/analyzerModule/test/openApiAnalyzer.spec.data.d.ts +0 -0
  463. /package/dist/{src/openapi → openapi}/analyzerModule/types.d.ts +0 -0
  464. /package/dist/{src/openapi → openapi}/discoveryModule/index.d.ts +0 -0
  465. /package/dist/{src/openapi → openapi}/generatorModule/index.d.ts +0 -0
  466. /package/dist/{src/router → router}/parseEndpointReturnValue.d.ts +0 -0
  467. /package/dist/{src/setupTests.d.ts → setupTests.d.ts} +0 -0
  468. /package/dist/{src/utils → utils}/TypeUtils.d.ts +0 -0
  469. /package/dist/{src/utils → utils}/logger.d.ts +0 -0
  470. /package/dist/{src/utils → utils}/nameOf.d.ts +0 -0
  471. /package/dist/{src/utils → utils}/object.d.ts +0 -0
  472. /package/dist/{src/validators → validators}/types.d.ts +0 -0
@@ -0,0 +1,371 @@
1
+ import { SyntaxKind as e } from "ts-morph";
2
+ import { Logger as K } from "../../utils/logger.mjs";
3
+ import { OpenApiManager as k } from "../manager/OpenApiManager.mjs";
4
+ const S = /* @__PURE__ */ new WeakMap(), c = (t) => {
5
+ const r = S.get(t);
6
+ if (r)
7
+ return r;
8
+ if (t.getKind() === e.Identifier) {
9
+ const i = t.asKind(e.Identifier).getImplementations()[0]?.getNode();
10
+ if (i) {
11
+ const o = i.getParent().getLastChild();
12
+ if (o === t)
13
+ throw new Error("Recursive implementation found");
14
+ const g = c(o);
15
+ return S.set(t, g), g;
16
+ }
17
+ const f = t.asKind(e.Identifier).getDefinitions()[0]?.getNode();
18
+ if (f) {
19
+ const o = f.getParent().getLastChild();
20
+ if (o === t)
21
+ throw new Error("Recursive implementation found");
22
+ const g = c(o);
23
+ return S.set(t, g), g;
24
+ }
25
+ throw new Error("No implementation nor definition available");
26
+ }
27
+ return S.set(t, t), t;
28
+ }, x = (t) => {
29
+ const r = t.getChildrenOfKind(e.Identifier);
30
+ return r.length === 2 ? c(r[1]) : t.getChildren().reverse().find(
31
+ (f) => f.getKind() !== e.GreaterThanToken && f.getKind() !== e.CommaToken && f.getKind() !== e.SemicolonToken
32
+ );
33
+ }, w = (t) => {
34
+ const r = t.getFirstChildByKind(e.SyntaxList);
35
+ return r.isKind(e.SyntaxList) ? y(r.getFirstChild()) : y(r);
36
+ }, y = (t) => {
37
+ const r = t.getSymbol()?.getName();
38
+ if (r && k.getInstance().hasExposedModel(r))
39
+ return [
40
+ {
41
+ role: "ref",
42
+ shape: r,
43
+ optional: !1
44
+ }
45
+ ];
46
+ const i = c(t);
47
+ if (i.asKind(e.UndefinedKeyword))
48
+ return "undefined";
49
+ const n = i.asKind(e.LiteralType);
50
+ if (n) {
51
+ if (n.getFirstChildByKind(e.TrueKeyword))
52
+ return "true";
53
+ if (n.getFirstChildByKind(e.FalseKeyword))
54
+ return "false";
55
+ }
56
+ if (i.asKind(e.BooleanKeyword) || i.asKind(e.TrueKeyword) || i.asKind(e.FalseKeyword))
57
+ return "boolean";
58
+ if (i.asKind(e.StringKeyword) || i.asKind(e.StringLiteral))
59
+ return "string";
60
+ if (i.asKind(e.NumberKeyword) || i.asKind(e.NumericLiteral))
61
+ return "number";
62
+ if (i.asKind(e.BigIntKeyword) || i.asKind(e.BigIntLiteral))
63
+ return "bigint";
64
+ const s = i.asKind(e.TypeLiteral);
65
+ if (s)
66
+ return s.getFirstChildByKind(e.SyntaxList).getChildrenOfKind(e.PropertySignature).map((B) => {
67
+ const E = B.getFirstChildByKind(e.Identifier), I = x(B), D = E.getNextSiblingIfKind(e.QuestionToken);
68
+ return {
69
+ role: "property",
70
+ identifier: E.getText(),
71
+ shape: y(I),
72
+ optional: I.getType().isNullable() || !!D
73
+ };
74
+ });
75
+ const d = i.asKind(e.TypeReference);
76
+ if (d)
77
+ return y(d.getFirstChild());
78
+ if (i.asKind(e.PropertyAccessExpression)) {
79
+ const P = c(i.getLastChild());
80
+ return u(P.asKind(e.CallExpression).getReturnType(), P);
81
+ }
82
+ const h = i.asKind(e.UnionType);
83
+ if (h)
84
+ return u(h.getType(), i);
85
+ const T = i.asKind(e.TypeQuery);
86
+ if (T)
87
+ return y(T.getLastChild());
88
+ const C = i.asKind(e.QualifiedName);
89
+ if (C)
90
+ return y(C.getLastChild());
91
+ const N = i.asKind(e.CallExpression);
92
+ if (N)
93
+ return u(N.getReturnType(), N);
94
+ const A = i.asKind(e.AwaitExpression);
95
+ if (A)
96
+ return y(A.getChildAtIndex(1));
97
+ const b = i.asKind(e.AsExpression);
98
+ if (b)
99
+ return y(b.getChildAtIndex(2));
100
+ const V = i.getSourceFile().getFilePath().split("/").pop();
101
+ return K.warn(`[${V}] Unknown node type: ${i.getKindName()}`), "unknown_1";
102
+ }, j = (t) => t.getFirstDescendantByKind(e.SyntaxList).getChildrenOfKind(e.PropertyAssignment).map((n) => {
103
+ const o = n.getFirstChild(), g = (() => {
104
+ if (o.isKind(e.Identifier))
105
+ return o.getText();
106
+ if (o.isKind(e.StringLiteral))
107
+ return o.getLiteralText();
108
+ const s = n.getSourceFile().getFilePath().split("/").pop();
109
+ return K.warn(`[${s}] Unknown identifier name: ${o.getText()}`), "unknown_30";
110
+ })(), a = n.getLastChild(), p = c(a);
111
+ return {
112
+ role: "property",
113
+ identifier: g,
114
+ shape: F(p),
115
+ optional: v(p),
116
+ description: m(p, "description"),
117
+ errorMessage: m(p, "errorMessage")
118
+ };
119
+ }) || [], F = (t) => {
120
+ const r = t.getParent().getFirstChildByKind(e.AsExpression);
121
+ if (r) {
122
+ const s = r.getLastChildByKind(e.TypeReference);
123
+ return w(s);
124
+ }
125
+ const i = t.getParent().getFirstChildByKind(e.TypeReference);
126
+ if (i)
127
+ return w(i);
128
+ if (t.getParent().getChildrenOfKind(e.SyntaxList).length >= 2) {
129
+ const s = t.getParent().getFirstChildByKind(e.SyntaxList).getFirstChild();
130
+ return y(s);
131
+ }
132
+ const f = t.getParent().getFirstChildByKind(e.CallExpression);
133
+ if (f) {
134
+ const s = c(
135
+ f.getFirstChildByKind(e.SyntaxList).getFirstChild()
136
+ ), d = s.getParent().getFirstChildByKind(e.TypeReference);
137
+ if (d)
138
+ return u(d.getType(), d, []);
139
+ const l = s.getParent().getFirstChildByKind(e.ObjectLiteralExpression);
140
+ if (l)
141
+ return F(l);
142
+ if (s.getKind() === e.CallExpression || s.getKind() === e.IntersectionType)
143
+ return F(s);
144
+ const h = t.getSourceFile().getFilePath().split("/").pop();
145
+ return K.warn(`[${h}] Unknown call expression argument: ${s.getKindName()}`), "unknown_3";
146
+ }
147
+ const o = t.getFirstChildByKind(e.SyntaxList).getChildrenOfKind(e.PropertyAssignment).find((s) => s.getFirstChildByKind(e.Identifier)?.getText() === "parse");
148
+ if (o) {
149
+ const s = x(o).asKind(e.ArrowFunction).getReturnType();
150
+ return u(s, o);
151
+ }
152
+ const g = t.getFirstChildByKind(e.SyntaxList)?.getFirstChildByKind(e.ImportType);
153
+ if (g) {
154
+ const s = g.getLastChildByKind(e.GreaterThanToken).getChildIndex(), d = g.getChildAtIndex(s - 1);
155
+ return y(d.getFirstChild());
156
+ }
157
+ const a = t.isKind(e.IntersectionType) ? t : t.getParent()?.isKind(e.VariableDeclaration) ? t.getParent()?.getFirstChildByKind(e.IntersectionType) : null;
158
+ if (a) {
159
+ const s = a.getFirstChildByKind(e.TypeReference);
160
+ if (s)
161
+ return w(s);
162
+ }
163
+ const p = t.getSourceFile().getFilePath().split("/").pop();
164
+ return K.warn(`[${p}] Unknown import type node`), "unknown_2";
165
+ }, v = (t) => {
166
+ const r = t.asKind(e.CallExpression);
167
+ if (r) {
168
+ const n = r.getFirstChildByKind(e.Identifier);
169
+ if (n?.getText() === "OptionalParam")
170
+ return !0;
171
+ if (n?.getText() === "RequiredParam")
172
+ return !1;
173
+ const o = r.getFirstChildByKind(e.SyntaxList), g = c(o.getFirstChild());
174
+ return v(g);
175
+ }
176
+ return t.getFirstDescendantByKind(e.SyntaxList).getChildrenOfKind(e.PropertyAssignment).some((n) => n.getFirstDescendantByKind(e.Identifier).getText() === "optional" ? x(n).getKind() === e.TrueKeyword : !1);
177
+ }, m = (t, r) => {
178
+ const i = c(t), f = i.asKind(e.CallExpression);
179
+ if (f) {
180
+ const d = f.getLastChildByKind(e.SyntaxList);
181
+ return m(d, r);
182
+ }
183
+ const n = i.asKind(e.SyntaxList);
184
+ if (n)
185
+ return n.getChildren().map((l) => m(l, r)).find((l) => !!l && l !== "unknown_25") || "";
186
+ const o = i.asKind(e.ObjectLiteralExpression);
187
+ if (o) {
188
+ const l = O(o).find((h) => h.identifier === r);
189
+ return l ? Array.isArray(l.value) ? "array" : l.value || "" : "";
190
+ }
191
+ const g = i.asKind(e.IntersectionType);
192
+ if (g)
193
+ return g.getTypeNodes().flatMap((d) => m(d, r)).filter((d) => !!d && d !== "unknown_25")[0] || "unknown_27";
194
+ const a = i.asKind(e.TypeLiteral);
195
+ if (a)
196
+ return m(a.getFirstChildByKind(e.SyntaxList), r);
197
+ const p = i.asKind(e.PropertySignature);
198
+ if (p && i.getFirstDescendantByKind(e.Identifier).getText() === r)
199
+ return x(p).getFirstDescendantByKind(
200
+ e.StringLiteral
201
+ ).getLiteralText();
202
+ const s = i.getSourceFile().getFilePath().split("/").pop();
203
+ return K.dev(`[${s}] Unknown property string value node ${i.getKindName()}`), "unknown_25";
204
+ }, R = (t) => {
205
+ const r = t.getSymbol();
206
+ if (!t.isObject() || !r)
207
+ return !1;
208
+ const i = t.getTypeArguments();
209
+ return r.getName() === "Promise" && i.length === 1;
210
+ }, u = (t, r, i = []) => {
211
+ const f = t.getAliasSymbol()?.getName();
212
+ if (f && k.getInstance().hasExposedModel(f))
213
+ return [
214
+ {
215
+ role: "ref",
216
+ shape: f,
217
+ optional: !1
218
+ }
219
+ ];
220
+ const n = R(t) ? t.getTypeArguments()[0] : t;
221
+ if (i.some((a) => a === n))
222
+ return "circular";
223
+ const o = i.concat(n);
224
+ if (n.getText() === "void")
225
+ return "void";
226
+ if (n.isAny())
227
+ return "any";
228
+ if (n.isNull())
229
+ return "null";
230
+ if (n.isUndefined())
231
+ return "undefined";
232
+ if (n.isBoolean() || n.isBooleanLiteral())
233
+ return "boolean";
234
+ if (n.isStringLiteral())
235
+ return [
236
+ {
237
+ role: "literal_string",
238
+ shape: String(n.getLiteralValue()),
239
+ optional: !1
240
+ }
241
+ ];
242
+ if (n.isNumberLiteral())
243
+ return [
244
+ {
245
+ role: "literal_number",
246
+ shape: String(n.getLiteralValue()),
247
+ optional: !1
248
+ }
249
+ ];
250
+ if (n.isString() || n.isTemplateLiteral())
251
+ return "string";
252
+ if (n.isNumber())
253
+ return "number";
254
+ if (n.getText() === "bigint")
255
+ return "bigint";
256
+ if (n.isTuple())
257
+ return [
258
+ {
259
+ role: "tuple",
260
+ shape: n.getTupleElements().map((a) => ({
261
+ role: "tuple_entry",
262
+ shape: u(a, r, o),
263
+ optional: !1
264
+ })),
265
+ optional: !1
266
+ }
267
+ ];
268
+ if (n.isArray())
269
+ return [
270
+ {
271
+ role: "array",
272
+ shape: u(n.getArrayElementType(), r, o),
273
+ optional: !1
274
+ }
275
+ ];
276
+ if (n.isObject() && n.getText() === "Buffer")
277
+ return [
278
+ {
279
+ role: "buffer",
280
+ shape: "buffer",
281
+ optional: !1
282
+ }
283
+ ];
284
+ if (n.isObject() && n.getProperties().length === 0) {
285
+ const a = n.getAliasTypeArguments()[1];
286
+ return [
287
+ {
288
+ role: "record",
289
+ shape: u(a, r, o),
290
+ optional: !1
291
+ }
292
+ ];
293
+ }
294
+ if (n.isObject())
295
+ return n.getText() === "Date" ? "Date" : n.getProperties().map((a) => {
296
+ const p = a.getValueDeclaration() || a.getDeclarations()[0];
297
+ if (!p)
298
+ return {
299
+ role: "property",
300
+ identifier: a.getName(),
301
+ shape: u(a.getTypeAtLocation(r), r, o),
302
+ optional: !1
303
+ };
304
+ if (!(p.asKind(e.PropertySignature) || p.asKind(e.PropertyAssignment) || p.asKind(e.ShorthandPropertyAssignment)))
305
+ return {
306
+ role: "property",
307
+ identifier: a.getName(),
308
+ shape: u(a.getTypeAtLocation(r), r, o),
309
+ optional: !1
310
+ };
311
+ const d = a.getTypeAtLocation(r).isNullable(), l = u(a.getTypeAtLocation(r), r, o);
312
+ return {
313
+ role: "property",
314
+ identifier: a.getName(),
315
+ shape: l,
316
+ optional: d
317
+ };
318
+ }).filter((a) => a.shape !== "undefined");
319
+ if (n.isUnion()) {
320
+ const p = n.getUnionTypes().map((l) => ({
321
+ role: "union_entry",
322
+ shape: u(l, r, o),
323
+ optional: !1
324
+ })).filter(
325
+ (l, h, T) => !T.find((C, N) => C.shape === l.shape && N > h)
326
+ ), s = p.some((l) => l.shape === "undefined"), d = p.filter((l) => l.shape !== "undefined");
327
+ return d.length === 1 ? d[0].shape : [
328
+ {
329
+ role: "union",
330
+ shape: d,
331
+ optional: s
332
+ }
333
+ ];
334
+ }
335
+ if (n.isIntersection())
336
+ return n.getIntersectionTypes().map((s) => u(s, r, o)).filter((s) => typeof s != "string").reduce((s, d) => [...s, ...d], []);
337
+ const g = r.getSourceFile().getFilePath().split("/").pop();
338
+ return K.warn(`[${g}] Unknown type shape node ${t.getText()}`), "unknown_5";
339
+ }, L = (t) => {
340
+ if (t.isKind(e.Identifier))
341
+ return L(c(t));
342
+ if (t.isKind(e.StringLiteral))
343
+ return t.getLiteralValue();
344
+ if (t.isKind(e.ArrayLiteralExpression))
345
+ return t.forEachChildAsArray().map((i) => L(i));
346
+ if (t.isKind(e.PropertyAccessExpression))
347
+ return L(x(t));
348
+ if (t.isKind(e.ObjectLiteralExpression))
349
+ return O(t);
350
+ const r = t.getSourceFile().getFilePath().split("/").pop();
351
+ return K.dev(`[${r}] Unknown literal value node ${t.getKindName()}`), "unknown_6";
352
+ }, O = (t) => t.getFirstDescendantByKind(e.SyntaxList).getChildrenOfKind(e.PropertyAssignment).map((n) => {
353
+ const g = n.getFirstDescendantByKind(e.Identifier).getText(), a = n.getLastChild(), p = c(a), s = L(p);
354
+ return {
355
+ identifier: g,
356
+ value: s
357
+ };
358
+ }) || [];
359
+ export {
360
+ c as findNodeImplementation,
361
+ x as findPropertyAssignmentValueNode,
362
+ u as getProperTypeShape,
363
+ y as getRecursiveNodeShape,
364
+ j as getShapeOfValidatorLiteral,
365
+ w as getTypeReferenceShape,
366
+ v as getValidatorPropertyOptionality,
367
+ F as getValidatorPropertyShape,
368
+ m as getValidatorPropertyStringValue,
369
+ O as getValuesOfObjectLiteral
370
+ };
371
+ //# sourceMappingURL=nodeParsers.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nodeParsers.mjs","sources":["../../../src/openapi/analyzerModule/nodeParsers.ts"],"sourcesContent":["import {\n\tNode,\n\tPropertyAccessExpression,\n\tPropertyAssignment,\n\tPropertySignature,\n\tShorthandPropertyAssignment,\n\tSyntaxKind,\n\tts,\n\tType,\n\tTypeReferenceNode,\n} from 'ts-morph'\n\nimport { Logger } from '../../utils/logger'\nimport { debugNode } from '../../utils/printers'\nimport { OpenApiManager } from '../manager/OpenApiManager'\nimport { ShapeOfProperty, ShapeOfType, ShapeOfUnionEntry } from './types'\n\nconst implementationCache = new WeakMap<Node, Node>()\n\nexport const findNodeImplementation = (node: Node): Node => {\n\tconst cached = implementationCache.get(node)\n\tif (cached) {\n\t\treturn cached\n\t}\n\n\tif (node.getKind() === SyntaxKind.Identifier) {\n\t\tconst implementationNode = node.asKind(SyntaxKind.Identifier)!.getImplementations()[0]?.getNode()\n\t\tif (implementationNode) {\n\t\t\tconst implementationParentNode = implementationNode.getParent()!\n\t\t\tconst assignmentValueNode = implementationParentNode.getLastChild()!\n\t\t\tif (assignmentValueNode === node) {\n\t\t\t\tthrow new Error('Recursive implementation found')\n\t\t\t}\n\t\t\tconst result = findNodeImplementation(assignmentValueNode)\n\t\t\timplementationCache.set(node, result)\n\t\t\treturn result\n\t\t}\n\n\t\tconst definitionNode = node.asKind(SyntaxKind.Identifier)!.getDefinitions()[0]?.getNode()\n\t\tif (definitionNode) {\n\t\t\tconst definitionParentNode = definitionNode.getParent()!\n\t\t\tconst assignmentValueNode = definitionParentNode.getLastChild()!\n\t\t\tif (assignmentValueNode === node) {\n\t\t\t\tthrow new Error('Recursive implementation found')\n\t\t\t}\n\t\t\tconst result = findNodeImplementation(assignmentValueNode)\n\t\t\timplementationCache.set(node, result)\n\t\t\treturn result\n\t\t}\n\t\tthrow new Error('No implementation nor definition available')\n\t}\n\n\timplementationCache.set(node, node)\n\treturn node\n}\n\nexport const findPropertyAssignmentValueNode = (\n\tnode:\n\t\t| PropertyAssignment\n\t\t| TypeReferenceNode\n\t\t| PropertySignature\n\t\t| PropertyAccessExpression\n\t\t| ShorthandPropertyAssignment,\n): Node => {\n\tconst identifierChildren = node.getChildrenOfKind(SyntaxKind.Identifier)\n\tif (identifierChildren.length === 2) {\n\t\treturn findNodeImplementation(identifierChildren[1])\n\t}\n\tconst lastMatchingChild = node.getChildren().reverse()\n\treturn lastMatchingChild.find(\n\t\t(child) =>\n\t\t\tchild.getKind() !== SyntaxKind.GreaterThanToken &&\n\t\t\tchild.getKind() !== SyntaxKind.CommaToken &&\n\t\t\tchild.getKind() !== SyntaxKind.SemicolonToken,\n\t)!\n}\n\nexport const getTypeReferenceShape = (node: TypeReferenceNode): ShapeOfType['shape'] => {\n\tconst firstChild = node.getFirstChildByKind(SyntaxKind.SyntaxList)!\n\tif (firstChild.isKind(SyntaxKind.SyntaxList)) {\n\t\treturn getRecursiveNodeShape(firstChild.getFirstChild()!)\n\t} else {\n\t\treturn getRecursiveNodeShape(firstChild)\n\t}\n}\n\nexport const getRecursiveNodeShape = (nodeOrReference: Node): ShapeOfType['shape'] => {\n\tconst typeName = nodeOrReference.getSymbol()?.getName()\n\tif (typeName && OpenApiManager.getInstance().hasExposedModel(typeName)) {\n\t\treturn [\n\t\t\t{\n\t\t\t\trole: 'ref',\n\t\t\t\tshape: typeName,\n\t\t\t\toptional: false,\n\t\t\t},\n\t\t]\n\t}\n\n\tconst node = findNodeImplementation(nodeOrReference)\n\n\t// Undefined\n\tconst undefinedNode = node.asKind(SyntaxKind.UndefinedKeyword)\n\tif (undefinedNode) {\n\t\treturn 'undefined'\n\t}\n\n\t// Literal type\n\tconst literalNode = node.asKind(SyntaxKind.LiteralType)\n\tif (literalNode) {\n\t\tif (literalNode.getFirstChildByKind(SyntaxKind.TrueKeyword)) {\n\t\t\treturn 'true'\n\t\t}\n\t\tif (literalNode.getFirstChildByKind(SyntaxKind.FalseKeyword)) {\n\t\t\treturn 'false'\n\t\t}\n\t}\n\n\t// Boolean literal\n\tconst booleanLiteralNode =\n\t\tnode.asKind(SyntaxKind.BooleanKeyword) ||\n\t\tnode.asKind(SyntaxKind.TrueKeyword) ||\n\t\tnode.asKind(SyntaxKind.FalseKeyword)\n\tif (booleanLiteralNode) {\n\t\treturn 'boolean'\n\t}\n\n\t// String literal\n\tconst stringLiteralNode = node.asKind(SyntaxKind.StringKeyword) || node.asKind(SyntaxKind.StringLiteral)\n\tif (stringLiteralNode) {\n\t\treturn 'string'\n\t}\n\n\t// Number literal\n\tconst numberLiteralNode = node.asKind(SyntaxKind.NumberKeyword) || node.asKind(SyntaxKind.NumericLiteral)\n\tif (numberLiteralNode) {\n\t\treturn 'number'\n\t}\n\n\t// BigInt literal\n\tconst bigIntNode = node.asKind(SyntaxKind.BigIntKeyword) || node.asKind(SyntaxKind.BigIntLiteral)\n\tif (bigIntNode) {\n\t\treturn 'bigint'\n\t}\n\n\t// Type literal\n\tconst typeLiteralNode = node.asKind(SyntaxKind.TypeLiteral)\n\tif (typeLiteralNode) {\n\t\tconst properties = typeLiteralNode\n\t\t\t.getFirstChildByKind(SyntaxKind.SyntaxList)!\n\t\t\t.getChildrenOfKind(SyntaxKind.PropertySignature)\n\n\t\tconst propertyShapes = properties.map((propNode) => {\n\t\t\tconst identifier = propNode.getFirstChildByKind(SyntaxKind.Identifier)!\n\t\t\tconst valueNode = findPropertyAssignmentValueNode(propNode)\n\t\t\tconst questionMarkToken = identifier.getNextSiblingIfKind(SyntaxKind.QuestionToken)\n\t\t\treturn {\n\t\t\t\trole: 'property' as const,\n\t\t\t\tidentifier: identifier.getText(),\n\t\t\t\tshape: getRecursiveNodeShape(valueNode),\n\t\t\t\toptional: valueNode.getType().isNullable() || !!questionMarkToken,\n\t\t\t}\n\t\t})\n\t\treturn propertyShapes\n\t}\n\n\t// Type reference\n\tconst typeReferenceNode = node.asKind(SyntaxKind.TypeReference)\n\tif (typeReferenceNode) {\n\t\treturn getRecursiveNodeShape(typeReferenceNode.getFirstChild()!)\n\t}\n\n\t// Property access expression\n\tconst propertyAccessNode = node.asKind(SyntaxKind.PropertyAccessExpression)\n\tif (propertyAccessNode) {\n\t\tconst lastChild = findNodeImplementation(node.getLastChild()!)\n\t\treturn getProperTypeShape(lastChild.asKind(SyntaxKind.CallExpression)!.getReturnType(), lastChild)\n\t}\n\n\t// Union type\n\tconst unionTypeNode = node.asKind(SyntaxKind.UnionType)\n\tif (unionTypeNode) {\n\t\treturn getProperTypeShape(unionTypeNode.getType(), node)\n\t}\n\n\t// Typeof query\n\tconst typeQueryNode = node.asKind(SyntaxKind.TypeQuery)\n\tif (typeQueryNode) {\n\t\treturn getRecursiveNodeShape(typeQueryNode.getLastChild()!)\n\t}\n\n\t// Qualified name\n\tconst qualifiedNameNode = node.asKind(SyntaxKind.QualifiedName)\n\tif (qualifiedNameNode) {\n\t\treturn getRecursiveNodeShape(qualifiedNameNode.getLastChild()!)\n\t}\n\n\t// Call expression\n\tconst callExpressionNode = node.asKind(SyntaxKind.CallExpression)\n\tif (callExpressionNode) {\n\t\treturn getProperTypeShape(callExpressionNode.getReturnType(), callExpressionNode)\n\t}\n\n\t// Await expression\n\tconst awaitExpressionNode = node.asKind(SyntaxKind.AwaitExpression)\n\tif (awaitExpressionNode) {\n\t\treturn getRecursiveNodeShape(awaitExpressionNode.getChildAtIndex(1)!)\n\t}\n\n\t// 'As' Expression\n\tconst asExpressionNode = node.asKind(SyntaxKind.AsExpression)\n\tif (asExpressionNode) {\n\t\treturn getRecursiveNodeShape(asExpressionNode.getChildAtIndex(2)!)\n\t}\n\n\t// TODO\n\tconst fileName = node.getSourceFile().getFilePath().split('/').pop()\n\tLogger.warn(`[${fileName}] Unknown node type: ${node.getKindName()}`)\n\treturn 'unknown_1'\n}\n\nexport const getShapeOfValidatorLiteral = (\n\tobjectLiteralNode: Node<ts.ObjectLiteralExpression>,\n): (ShapeOfProperty & { description: string; errorMessage: string })[] => {\n\tconst syntaxListNode = objectLiteralNode.getFirstDescendantByKind(SyntaxKind.SyntaxList)!\n\tconst assignmentNodes = syntaxListNode.getChildrenOfKind(SyntaxKind.PropertyAssignment)!\n\n\tconst properties = assignmentNodes.map((node) => {\n\t\tconst identifierNode = node.getFirstChild()!\n\t\tconst identifierName = (() => {\n\t\t\tif (identifierNode.isKind(SyntaxKind.Identifier)) {\n\t\t\t\treturn identifierNode.getText()\n\t\t\t}\n\t\t\tif (identifierNode.isKind(SyntaxKind.StringLiteral)) {\n\t\t\t\treturn identifierNode.getLiteralText()\n\t\t\t}\n\t\t\tconst fileName = node.getSourceFile().getFilePath().split('/').pop()\n\t\t\tLogger.warn(`[${fileName}] Unknown identifier name: ${identifierNode.getText()}`)\n\t\t\treturn 'unknown_30'\n\t\t})()\n\n\t\tconst assignmentValueNode = node.getLastChild()!\n\t\tconst innerLiteralNode = findNodeImplementation(assignmentValueNode)\n\n\t\treturn {\n\t\t\trole: 'property' as const,\n\t\t\tidentifier: identifierName,\n\t\t\tshape: getValidatorPropertyShape(innerLiteralNode),\n\t\t\toptional: getValidatorPropertyOptionality(innerLiteralNode),\n\t\t\tdescription: getValidatorPropertyStringValue(innerLiteralNode, 'description'),\n\t\t\terrorMessage: getValidatorPropertyStringValue(innerLiteralNode, 'errorMessage'),\n\t\t}\n\t})\n\n\treturn properties || []\n}\n\nexport const getValidatorPropertyShape = (innerLiteralNode: Node): ShapeOfType['shape'] => {\n\t// Inline definition with `as Validator<...>` clause\n\tconst inlineValidatorAsExpression = innerLiteralNode\n\t\t.getParent()!\n\t\t.getFirstChildByKind(SyntaxKind.AsExpression)\n\tif (inlineValidatorAsExpression) {\n\t\tconst typeReference = inlineValidatorAsExpression.getLastChildByKind(SyntaxKind.TypeReference)!\n\t\treturn getTypeReferenceShape(typeReference)\n\t}\n\n\t// Variable with `: Validator<...>` clause\n\tconst childTypeReferenceNode = innerLiteralNode.getParent()!.getFirstChildByKind(SyntaxKind.TypeReference)\n\tif (childTypeReferenceNode) {\n\t\treturn getTypeReferenceShape(childTypeReferenceNode)\n\t}\n\n\t// `RequiredParam<...>` inline call expression\n\tif (innerLiteralNode.getParent()!.getChildrenOfKind(SyntaxKind.SyntaxList).length >= 2) {\n\t\tconst typeNode = innerLiteralNode\n\t\t\t.getParent()!\n\t\t\t.getFirstChildByKind(SyntaxKind.SyntaxList)!\n\t\t\t.getFirstChild()!\n\t\treturn getRecursiveNodeShape(typeNode)\n\t}\n\n\t// `RequestParam | RequiredParam | OptionalParam` call expression\n\tconst childCallExpressionNode = innerLiteralNode.getParent()!.getFirstChildByKind(SyntaxKind.CallExpression)\n\tif (childCallExpressionNode) {\n\t\tconst callExpressionArgument = findNodeImplementation(\n\t\t\tchildCallExpressionNode.getFirstChildByKind(SyntaxKind.SyntaxList)!.getFirstChild()!,\n\t\t)\n\n\t\t// Param is a type reference\n\t\tconst typeReferenceNode = callExpressionArgument\n\t\t\t.getParent()!\n\t\t\t.getFirstChildByKind(SyntaxKind.TypeReference)!\n\t\tif (typeReferenceNode) {\n\t\t\treturn getProperTypeShape(typeReferenceNode.getType(), typeReferenceNode, [])\n\t\t}\n\n\t\tconst thingyNode = callExpressionArgument\n\t\t\t.getParent()!\n\t\t\t.getFirstChildByKind(SyntaxKind.ObjectLiteralExpression)!\n\t\tif (thingyNode) {\n\t\t\treturn getValidatorPropertyShape(thingyNode)\n\t\t}\n\n\t\tif (callExpressionArgument.getKind() === SyntaxKind.CallExpression) {\n\t\t\treturn getValidatorPropertyShape(callExpressionArgument)\n\t\t}\n\n\t\tif (callExpressionArgument.getKind() === SyntaxKind.IntersectionType) {\n\t\t\treturn getValidatorPropertyShape(callExpressionArgument)\n\t\t}\n\n\t\tconst fileName = innerLiteralNode.getSourceFile().getFilePath().split('/').pop()\n\t\tLogger.warn(`[${fileName}] Unknown call expression argument: ${callExpressionArgument.getKindName()}`)\n\t\treturn 'unknown_3'\n\t}\n\n\t// Attempting to infer type from `parse` function\n\tconst innerNodePropertyAssignments = innerLiteralNode\n\t\t.getFirstChildByKind(SyntaxKind.SyntaxList)!\n\t\t.getChildrenOfKind(SyntaxKind.PropertyAssignment)\n\tconst parsePropertyAssignment = innerNodePropertyAssignments.find((prop) => {\n\t\treturn prop.getFirstChildByKind(SyntaxKind.Identifier)?.getText() === 'parse'\n\t})\n\tif (parsePropertyAssignment) {\n\t\tconst returnType = findPropertyAssignmentValueNode(parsePropertyAssignment)\n\t\t\t.asKind(SyntaxKind.ArrowFunction)!\n\t\t\t.getReturnType()\n\t\treturn getProperTypeShape(returnType, parsePropertyAssignment)\n\t}\n\n\t// Import statement\n\tconst importTypeNode = innerLiteralNode\n\t\t.getFirstChildByKind(SyntaxKind.SyntaxList)\n\t\t?.getFirstChildByKind(SyntaxKind.ImportType)\n\tif (importTypeNode) {\n\t\tconst indexOfGreaterThanToken = importTypeNode\n\t\t\t.getLastChildByKind(SyntaxKind.GreaterThanToken)!\n\t\t\t.getChildIndex()\n\t\tconst targetSyntaxList = importTypeNode.getChildAtIndex(indexOfGreaterThanToken - 1)\n\t\treturn getRecursiveNodeShape(targetSyntaxList.getFirstChild()!)\n\t}\n\n\t// Intersection type with Validator\n\tconst intersectionType = innerLiteralNode.isKind(SyntaxKind.IntersectionType)\n\t\t? innerLiteralNode\n\t\t: innerLiteralNode.getParent()?.isKind(SyntaxKind.VariableDeclaration)\n\t\t\t? innerLiteralNode.getParent()?.getFirstChildByKind(SyntaxKind.IntersectionType)\n\t\t\t: null\n\n\tif (intersectionType) {\n\t\tconst validatorType = intersectionType.getFirstChildByKind(SyntaxKind.TypeReference)\n\t\tif (validatorType) {\n\t\t\treturn getTypeReferenceShape(validatorType)\n\t\t}\n\t}\n\n\tconst fileName = innerLiteralNode.getSourceFile().getFilePath().split('/').pop()\n\tLogger.warn(`[${fileName}] Unknown import type node`)\n\n\treturn 'unknown_2'\n}\n\nexport const getValidatorPropertyOptionality = (node: Node): boolean => {\n\tconst callExpressionNode = node.asKind(SyntaxKind.CallExpression)\n\tif (callExpressionNode) {\n\t\tconst identifierNode = callExpressionNode.getFirstChildByKind(SyntaxKind.Identifier)\n\t\tif (identifierNode?.getText() === 'OptionalParam') {\n\t\t\treturn true\n\t\t} else if (identifierNode?.getText() === 'RequiredParam') {\n\t\t\treturn false\n\t\t}\n\n\t\tconst syntaxListNode = callExpressionNode.getFirstChildByKind(SyntaxKind.SyntaxList)!\n\t\tconst literalExpression = findNodeImplementation(syntaxListNode.getFirstChild()!)\n\t\treturn getValidatorPropertyOptionality(literalExpression)\n\t}\n\n\tconst syntaxListNode = node.getFirstDescendantByKind(SyntaxKind.SyntaxList)!\n\tconst assignmentNodes = syntaxListNode.getChildrenOfKind(SyntaxKind.PropertyAssignment)!\n\n\treturn assignmentNodes.some((node) => {\n\t\tconst identifierNode = node.getFirstDescendantByKind(SyntaxKind.Identifier)!\n\t\tconst identifierName = identifierNode.getText()\n\n\t\tif (identifierName === 'optional') {\n\t\t\tconst value = findPropertyAssignmentValueNode(node)\n\t\t\treturn value.getKind() === SyntaxKind.TrueKeyword\n\t\t}\n\t\treturn false\n\t})\n}\n\nexport const getValidatorPropertyStringValue = (\n\tnodeOrReference: Node,\n\tname: 'description' | 'errorMessage',\n): string => {\n\tconst node = findNodeImplementation(nodeOrReference)\n\n\tconst callExpressionNode = node.asKind(SyntaxKind.CallExpression)\n\tif (callExpressionNode) {\n\t\tconst targetChild = callExpressionNode.getLastChildByKind(SyntaxKind.SyntaxList)!\n\t\treturn getValidatorPropertyStringValue(targetChild, name)\n\t}\n\n\tconst syntaxListNode = node.asKind(SyntaxKind.SyntaxList)\n\tif (syntaxListNode) {\n\t\tconst children = syntaxListNode.getChildren().map((c) => getValidatorPropertyStringValue(c, name))\n\t\treturn children.find((value) => !!value && value !== 'unknown_25') || ''\n\t}\n\n\tconst objectLiteralNode = node.asKind(SyntaxKind.ObjectLiteralExpression)\n\tif (objectLiteralNode) {\n\t\tconst values = getValuesOfObjectLiteral(objectLiteralNode)\n\t\tconst targetValue = values.find((value) => value.identifier === name)\n\t\tif (!targetValue) {\n\t\t\treturn ''\n\t\t}\n\t\tif (Array.isArray(targetValue.value)) {\n\t\t\treturn 'array'\n\t\t}\n\t\treturn targetValue.value || ''\n\t}\n\n\tconst intersectionTypeNode = node.asKind(SyntaxKind.IntersectionType)\n\tif (intersectionTypeNode) {\n\t\treturn (\n\t\t\tintersectionTypeNode\n\t\t\t\t.getTypeNodes()\n\t\t\t\t.flatMap((t) => getValidatorPropertyStringValue(t, name))\n\t\t\t\t.filter((v) => !!v && v !== 'unknown_25')[0] || 'unknown_27'\n\t\t)\n\t}\n\n\tconst typeLiteralNode = node.asKind(SyntaxKind.TypeLiteral)\n\tif (typeLiteralNode) {\n\t\treturn getValidatorPropertyStringValue(typeLiteralNode.getFirstChildByKind(SyntaxKind.SyntaxList)!, name)\n\t}\n\n\tconst propertySignatureNode = node.asKind(SyntaxKind.PropertySignature)\n\tif (propertySignatureNode) {\n\t\tconst identifier = node.getFirstDescendantByKind(SyntaxKind.Identifier)!\n\t\tif (identifier.getText() === name) {\n\t\t\tconst targetNode = findPropertyAssignmentValueNode(propertySignatureNode).getFirstDescendantByKind(\n\t\t\t\tSyntaxKind.StringLiteral,\n\t\t\t)!\n\t\t\treturn targetNode.getLiteralText()\n\t\t}\n\t}\n\n\tconst fileName = node.getSourceFile().getFilePath().split('/').pop()\n\tLogger.dev(`[${fileName}] Unknown property string value node ${node.getKindName()}`)\n\treturn 'unknown_25'\n}\n\nconst isPromise = (type: Type) => {\n\tconst symbol = type.getSymbol()\n\tif (!type.isObject() || !symbol) {\n\t\treturn false\n\t}\n\tconst args = type.getTypeArguments()\n\treturn symbol.getName() === 'Promise' && args.length === 1\n}\n\nexport const getProperTypeShape = (\n\ttypeOrPromise: Type,\n\tatLocation: Node,\n\tstack: Type[] = [],\n): ShapeOfType['shape'] => {\n\tconst typeName = typeOrPromise.getAliasSymbol()?.getName()\n\tif (typeName && OpenApiManager.getInstance().hasExposedModel(typeName)) {\n\t\treturn [\n\t\t\t{\n\t\t\t\trole: 'ref',\n\t\t\t\tshape: typeName,\n\t\t\t\toptional: false,\n\t\t\t},\n\t\t]\n\t}\n\n\tconst type = isPromise(typeOrPromise) ? typeOrPromise.getTypeArguments()[0] : typeOrPromise\n\n\tif (stack.some((previousType) => previousType === type)) {\n\t\treturn 'circular'\n\t}\n\n\tconst nextStack = stack.concat(type)\n\n\tif (type.getText() === 'void') {\n\t\treturn 'void'\n\t}\n\n\tif (type.isAny()) {\n\t\treturn 'any'\n\t}\n\n\tif (type.isNull()) {\n\t\treturn 'null'\n\t}\n\n\tif (type.isUndefined()) {\n\t\treturn 'undefined'\n\t}\n\n\tif (type.isBoolean() || type.isBooleanLiteral()) {\n\t\treturn 'boolean'\n\t}\n\n\tif (type.isStringLiteral()) {\n\t\treturn [\n\t\t\t{\n\t\t\t\trole: 'literal_string' as const,\n\t\t\t\tshape: String(type.getLiteralValue()!),\n\t\t\t\toptional: false,\n\t\t\t},\n\t\t]\n\t}\n\n\tif (type.isNumberLiteral()) {\n\t\treturn [\n\t\t\t{\n\t\t\t\trole: 'literal_number' as const,\n\t\t\t\tshape: String(type.getLiteralValue()!),\n\t\t\t\toptional: false,\n\t\t\t},\n\t\t]\n\t}\n\n\tif (type.isString() || type.isTemplateLiteral()) {\n\t\treturn 'string'\n\t}\n\n\tif (type.isNumber()) {\n\t\treturn 'number'\n\t}\n\n\tif (type.getText() === 'bigint') {\n\t\treturn 'bigint'\n\t}\n\n\tif (type.isTuple()) {\n\t\treturn [\n\t\t\t{\n\t\t\t\trole: 'tuple' as const,\n\t\t\t\tshape: type.getTupleElements().map((t) => ({\n\t\t\t\t\trole: 'tuple_entry' as const,\n\t\t\t\t\tshape: getProperTypeShape(t, atLocation, nextStack),\n\t\t\t\t\toptional: false,\n\t\t\t\t})),\n\t\t\t\toptional: false,\n\t\t\t},\n\t\t]\n\t}\n\n\tif (type.isArray()) {\n\t\treturn [\n\t\t\t{\n\t\t\t\trole: 'array' as const,\n\t\t\t\tshape: getProperTypeShape(type.getArrayElementType()!, atLocation, nextStack),\n\t\t\t\toptional: false,\n\t\t\t},\n\t\t]\n\t}\n\n\tif (type.isObject() && type.getText() === 'Buffer') {\n\t\treturn [\n\t\t\t{\n\t\t\t\trole: 'buffer' as const,\n\t\t\t\tshape: 'buffer',\n\t\t\t\toptional: false,\n\t\t\t},\n\t\t]\n\t}\n\n\tif (type.isObject() && type.getProperties().length === 0) {\n\t\tconst targetType = type.getAliasTypeArguments()[1]\n\t\treturn [\n\t\t\t{\n\t\t\t\trole: 'record' as const,\n\t\t\t\tshape: getProperTypeShape(targetType, atLocation, nextStack),\n\t\t\t\toptional: false,\n\t\t\t},\n\t\t]\n\t}\n\n\tif (type.isObject()) {\n\t\tif (type.getText() === 'Date') {\n\t\t\treturn 'Date'\n\t\t}\n\t\treturn type\n\t\t\t.getProperties()\n\t\t\t.map((prop) => {\n\t\t\t\tconst valueDeclaration = prop.getValueDeclaration() || prop.getDeclarations()[0]!\n\t\t\t\tif (!valueDeclaration) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\trole: 'property' as const,\n\t\t\t\t\t\tidentifier: prop.getName(),\n\t\t\t\t\t\tshape: getProperTypeShape(prop.getTypeAtLocation(atLocation), atLocation, nextStack),\n\t\t\t\t\t\toptional: false,\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tconst valueDeclarationNode =\n\t\t\t\t\tvalueDeclaration.asKind(SyntaxKind.PropertySignature) ||\n\t\t\t\t\tvalueDeclaration.asKind(SyntaxKind.PropertyAssignment) ||\n\t\t\t\t\tvalueDeclaration.asKind(SyntaxKind.ShorthandPropertyAssignment)\n\n\t\t\t\tif (!valueDeclarationNode) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\trole: 'property' as const,\n\t\t\t\t\t\tidentifier: prop.getName(),\n\t\t\t\t\t\tshape: getProperTypeShape(prop.getTypeAtLocation(atLocation), atLocation, nextStack),\n\t\t\t\t\t\toptional: false,\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst isOptional = prop.getTypeAtLocation(atLocation).isNullable()\n\n\t\t\t\tconst shape = getProperTypeShape(prop.getTypeAtLocation(atLocation), atLocation, nextStack)\n\t\t\t\treturn {\n\t\t\t\t\trole: 'property' as const,\n\t\t\t\t\tidentifier: prop.getName(),\n\t\t\t\t\tshape: shape,\n\t\t\t\t\toptional: isOptional,\n\t\t\t\t}\n\t\t\t})\n\t\t\t.filter((val) => val.shape !== 'undefined')\n\t}\n\n\tif (type.isUnion()) {\n\t\tconst unfilteredShapes: ShapeOfUnionEntry[] = type.getUnionTypes().map((type) => ({\n\t\t\trole: 'union_entry',\n\t\t\tshape: getProperTypeShape(type, atLocation, nextStack),\n\t\t\toptional: false,\n\t\t}))\n\n\t\tconst dedupedShapes = unfilteredShapes.filter(\n\t\t\t(type, index, arr) => !arr.find((dup, dupIndex) => dup.shape === type.shape && dupIndex > index),\n\t\t)\n\t\tconst isNullable = dedupedShapes.some((shape) => shape.shape === 'undefined')\n\t\tconst shapes = dedupedShapes.filter((shape) => shape.shape !== 'undefined')\n\t\tif (shapes.length === 1) {\n\t\t\treturn shapes[0].shape\n\t\t}\n\t\treturn [\n\t\t\t{\n\t\t\t\trole: 'union',\n\t\t\t\tshape: shapes,\n\t\t\t\toptional: isNullable,\n\t\t\t},\n\t\t]\n\t}\n\n\tif (type.isIntersection()) {\n\t\tconst children = type.getIntersectionTypes()\n\t\tconst shapesOfChildren = children\n\t\t\t.map((child) => getProperTypeShape(child, atLocation, nextStack))\n\t\t\t.filter((shape) => typeof shape !== 'string') as ShapeOfProperty[][]\n\t\treturn shapesOfChildren.reduce<ShapeOfType[]>((total, current) => [...total, ...current], [])\n\t}\n\n\tconst fileName = atLocation.getSourceFile().getFilePath().split('/').pop()\n\tLogger.warn(`[${fileName}] Unknown type shape node ${typeOrPromise.getText()}`)\n\treturn 'unknown_5'\n}\n\nconst getLiteralValueOfNode = (node: Node): string | string[] | unknown[] => {\n\tif (node.isKind(SyntaxKind.Identifier)) {\n\t\treturn getLiteralValueOfNode(findNodeImplementation(node))\n\t} else if (node.isKind(SyntaxKind.StringLiteral)) {\n\t\treturn node.getLiteralValue()\n\t} else if (node.isKind(SyntaxKind.ArrayLiteralExpression)) {\n\t\treturn node.forEachChildAsArray().map((child) => getLiteralValueOfNode(child)) as string[]\n\t} else if (node.isKind(SyntaxKind.PropertyAccessExpression)) {\n\t\treturn getLiteralValueOfNode(findPropertyAssignmentValueNode(node))\n\t} else if (node.isKind(SyntaxKind.ObjectLiteralExpression)) {\n\t\treturn getValuesOfObjectLiteral(node)\n\t}\n\n\tconst fileName = node.getSourceFile().getFilePath().split('/').pop()\n\tLogger.dev(`[${fileName}] Unknown literal value node ${node.getKindName()}`)\n\n\treturn 'unknown_6'\n}\n\nexport const getValuesOfObjectLiteral = (objectLiteralNode: Node<ts.ObjectLiteralExpression>) => {\n\tconst syntaxListNode = objectLiteralNode.getFirstDescendantByKind(SyntaxKind.SyntaxList)!\n\tconst assignmentNodes = syntaxListNode.getChildrenOfKind(SyntaxKind.PropertyAssignment)!\n\n\tconst properties = assignmentNodes.map((node) => {\n\t\tconst identifierNode = node.getFirstDescendantByKind(SyntaxKind.Identifier)!\n\t\tconst identifierName = identifierNode.getText()\n\n\t\tconst assignmentValueNode = node.getLastChild()!\n\t\tconst targetNode = findNodeImplementation(assignmentValueNode)\n\t\tconst value = getLiteralValueOfNode(targetNode)\n\n\t\treturn {\n\t\t\tidentifier: identifierName,\n\t\t\tvalue,\n\t\t}\n\t})\n\n\treturn properties || []\n}\n"],"names":["implementationCache","findNodeImplementation","node","cached","SyntaxKind","implementationNode","assignmentValueNode","result","definitionNode","findPropertyAssignmentValueNode","identifierChildren","child","getTypeReferenceShape","firstChild","getRecursiveNodeShape","nodeOrReference","typeName","OpenApiManager","literalNode","typeLiteralNode","propNode","identifier","valueNode","questionMarkToken","typeReferenceNode","lastChild","getProperTypeShape","unionTypeNode","typeQueryNode","qualifiedNameNode","callExpressionNode","awaitExpressionNode","asExpressionNode","fileName","Logger","getShapeOfValidatorLiteral","objectLiteralNode","identifierNode","identifierName","innerLiteralNode","getValidatorPropertyShape","getValidatorPropertyOptionality","getValidatorPropertyStringValue","inlineValidatorAsExpression","typeReference","childTypeReferenceNode","typeNode","childCallExpressionNode","callExpressionArgument","thingyNode","parsePropertyAssignment","prop","returnType","importTypeNode","indexOfGreaterThanToken","targetSyntaxList","intersectionType","validatorType","syntaxListNode","literalExpression","name","targetChild","c","value","targetValue","getValuesOfObjectLiteral","intersectionTypeNode","t","v","propertySignatureNode","isPromise","type","symbol","args","typeOrPromise","atLocation","stack","previousType","nextStack","targetType","valueDeclaration","isOptional","shape","val","dedupedShapes","index","arr","dup","dupIndex","isNullable","shapes","total","current","getLiteralValueOfNode","targetNode"],"mappings":";;;AAiBA,MAAMA,wBAA0B,QAAoB,GAEvCC,IAAyB,CAACC,MAAqB;AACrD,QAAAC,IAASH,EAAoB,IAAIE,CAAI;AAC3C,MAAIC;AACI,WAAAA;AAGR,MAAID,EAAK,cAAcE,EAAW,YAAY;AACvC,UAAAC,IAAqBH,EAAK,OAAOE,EAAW,UAAU,EAAG,mBAAmB,EAAE,CAAC,GAAG,QAAQ;AAChG,QAAIC,GAAoB;AAEjB,YAAAC,IAD2BD,EAAmB,UAAU,EACT,aAAa;AAClE,UAAIC,MAAwBJ;AACrB,cAAA,IAAI,MAAM,gCAAgC;AAE3C,YAAAK,IAASN,EAAuBK,CAAmB;AACrC,aAAAN,EAAA,IAAIE,GAAMK,CAAM,GAC7BA;AAAA,IAAA;AAGF,UAAAC,IAAiBN,EAAK,OAAOE,EAAW,UAAU,EAAG,eAAe,EAAE,CAAC,GAAG,QAAQ;AACxF,QAAII,GAAgB;AAEb,YAAAF,IADuBE,EAAe,UAAU,EACL,aAAa;AAC9D,UAAIF,MAAwBJ;AACrB,cAAA,IAAI,MAAM,gCAAgC;AAE3C,YAAAK,IAASN,EAAuBK,CAAmB;AACrC,aAAAN,EAAA,IAAIE,GAAMK,CAAM,GAC7BA;AAAA,IAAA;AAEF,UAAA,IAAI,MAAM,4CAA4C;AAAA,EAAA;AAGzC,SAAAP,EAAA,IAAIE,GAAMA,CAAI,GAC3BA;AACR,GAEaO,IAAkC,CAC9CP,MAMU;AACV,QAAMQ,IAAqBR,EAAK,kBAAkBE,EAAW,UAAU;AACnE,SAAAM,EAAmB,WAAW,IAC1BT,EAAuBS,EAAmB,CAAC,CAAC,IAE1BR,EAAK,YAAY,EAAE,QAAQ,EAC5B;AAAA,IACxB,CAACS,MACAA,EAAM,QAAA,MAAcP,EAAW,oBAC/BO,EAAM,cAAcP,EAAW,cAC/BO,EAAM,QAAA,MAAcP,EAAW;AAAA,EACjC;AACD,GAEaQ,IAAwB,CAACV,MAAkD;AACvF,QAAMW,IAAaX,EAAK,oBAAoBE,EAAW,UAAU;AACjE,SAAIS,EAAW,OAAOT,EAAW,UAAU,IACnCU,EAAsBD,EAAW,eAAgB,IAEjDC,EAAsBD,CAAU;AAEzC,GAEaC,IAAwB,CAACC,MAAgD;AACrF,QAAMC,IAAWD,EAAgB,UAAU,GAAG,QAAQ;AACtD,MAAIC,KAAYC,EAAe,YAAc,EAAA,gBAAgBD,CAAQ;AAC7D,WAAA;AAAA,MACN;AAAA,QACC,MAAM;AAAA,QACN,OAAOA;AAAA,QACP,UAAU;AAAA,MAAA;AAAA,IAEZ;AAGK,QAAAd,IAAOD,EAAuBc,CAAe;AAInD,MADsBb,EAAK,OAAOE,EAAW,gBAAgB;AAErD,WAAA;AAIR,QAAMc,IAAchB,EAAK,OAAOE,EAAW,WAAW;AACtD,MAAIc,GAAa;AAChB,QAAIA,EAAY,oBAAoBd,EAAW,WAAW;AAClD,aAAA;AAER,QAAIc,EAAY,oBAAoBd,EAAW,YAAY;AACnD,aAAA;AAAA,EACR;AAQD,MAHCF,EAAK,OAAOE,EAAW,cAAc,KACrCF,EAAK,OAAOE,EAAW,WAAW,KAClCF,EAAK,OAAOE,EAAW,YAAY;AAE5B,WAAA;AAKR,MAD0BF,EAAK,OAAOE,EAAW,aAAa,KAAKF,EAAK,OAAOE,EAAW,aAAa;AAE/F,WAAA;AAKR,MAD0BF,EAAK,OAAOE,EAAW,aAAa,KAAKF,EAAK,OAAOE,EAAW,cAAc;AAEhG,WAAA;AAKR,MADmBF,EAAK,OAAOE,EAAW,aAAa,KAAKF,EAAK,OAAOE,EAAW,aAAa;AAExF,WAAA;AAIR,QAAMe,IAAkBjB,EAAK,OAAOE,EAAW,WAAW;AAC1D,MAAIe;AAgBI,WAfYA,EACjB,oBAAoBf,EAAW,UAAU,EACzC,kBAAkBA,EAAW,iBAAiB,EAEd,IAAI,CAACgB,MAAa;AACnD,YAAMC,IAAaD,EAAS,oBAAoBhB,EAAW,UAAU,GAC/DkB,IAAYb,EAAgCW,CAAQ,GACpDG,IAAoBF,EAAW,qBAAqBjB,EAAW,aAAa;AAC3E,aAAA;AAAA,QACN,MAAM;AAAA,QACN,YAAYiB,EAAW,QAAQ;AAAA,QAC/B,OAAOP,EAAsBQ,CAAS;AAAA,QACtC,UAAUA,EAAU,UAAU,WAAW,KAAK,CAAC,CAACC;AAAA,MACjD;AAAA,IAAA,CACA;AAKF,QAAMC,IAAoBtB,EAAK,OAAOE,EAAW,aAAa;AAC9D,MAAIoB;AACI,WAAAV,EAAsBU,EAAkB,eAAgB;AAKhE,MAD2BtB,EAAK,OAAOE,EAAW,wBAAwB,GAClD;AACvB,UAAMqB,IAAYxB,EAAuBC,EAAK,aAAA,CAAe;AACtD,WAAAwB,EAAmBD,EAAU,OAAOrB,EAAW,cAAc,EAAG,iBAAiBqB,CAAS;AAAA,EAAA;AAIlG,QAAME,IAAgBzB,EAAK,OAAOE,EAAW,SAAS;AACtD,MAAIuB;AACH,WAAOD,EAAmBC,EAAc,QAAQ,GAAGzB,CAAI;AAIxD,QAAM0B,IAAgB1B,EAAK,OAAOE,EAAW,SAAS;AACtD,MAAIwB;AACI,WAAAd,EAAsBc,EAAc,cAAe;AAI3D,QAAMC,IAAoB3B,EAAK,OAAOE,EAAW,aAAa;AAC9D,MAAIyB;AACI,WAAAf,EAAsBe,EAAkB,cAAe;AAI/D,QAAMC,IAAqB5B,EAAK,OAAOE,EAAW,cAAc;AAChE,MAAI0B;AACH,WAAOJ,EAAmBI,EAAmB,cAAc,GAAGA,CAAkB;AAIjF,QAAMC,IAAsB7B,EAAK,OAAOE,EAAW,eAAe;AAClE,MAAI2B;AACH,WAAOjB,EAAsBiB,EAAoB,gBAAgB,CAAC,CAAE;AAIrE,QAAMC,IAAmB9B,EAAK,OAAOE,EAAW,YAAY;AAC5D,MAAI4B;AACH,WAAOlB,EAAsBkB,EAAiB,gBAAgB,CAAC,CAAE;AAI5D,QAAAC,IAAW/B,EAAK,cAAc,EAAE,cAAc,MAAM,GAAG,EAAE,IAAI;AACnE,SAAAgC,EAAO,KAAK,IAAID,CAAQ,wBAAwB/B,EAAK,YAAa,CAAA,EAAE,GAC7D;AACR,GAEaiC,IAA6B,CACzCC,MAEuBA,EAAkB,yBAAyBhC,EAAW,UAAU,EAChD,kBAAkBA,EAAW,kBAAkB,EAEnD,IAAI,CAACF,MAAS;AAC1C,QAAAmC,IAAiBnC,EAAK,cAAc,GACpCoC,KAAkB,MAAM;AAC7B,QAAID,EAAe,OAAOjC,EAAW,UAAU;AAC9C,aAAOiC,EAAe,QAAQ;AAE/B,QAAIA,EAAe,OAAOjC,EAAW,aAAa;AACjD,aAAOiC,EAAe,eAAe;AAEhC,UAAAJ,IAAW/B,EAAK,cAAc,EAAE,cAAc,MAAM,GAAG,EAAE,IAAI;AACnE,WAAAgC,EAAO,KAAK,IAAID,CAAQ,8BAA8BI,EAAe,QAAS,CAAA,EAAE,GACzE;AAAA,EAAA,GACL,GAEG/B,IAAsBJ,EAAK,aAAa,GACxCqC,IAAmBtC,EAAuBK,CAAmB;AAE5D,SAAA;AAAA,IACN,MAAM;AAAA,IACN,YAAYgC;AAAA,IACZ,OAAOE,EAA0BD,CAAgB;AAAA,IACjD,UAAUE,EAAgCF,CAAgB;AAAA,IAC1D,aAAaG,EAAgCH,GAAkB,aAAa;AAAA,IAC5E,cAAcG,EAAgCH,GAAkB,cAAc;AAAA,EAC/E;AAAA,CACA,KAEoB,CAAC,GAGVC,IAA4B,CAACD,MAAiD;AAE1F,QAAMI,IAA8BJ,EAClC,UACA,EAAA,oBAAoBnC,EAAW,YAAY;AAC7C,MAAIuC,GAA6B;AAChC,UAAMC,IAAgBD,EAA4B,mBAAmBvC,EAAW,aAAa;AAC7F,WAAOQ,EAAsBgC,CAAa;AAAA,EAAA;AAI3C,QAAMC,IAAyBN,EAAiB,UAAa,EAAA,oBAAoBnC,EAAW,aAAa;AACzG,MAAIyC;AACH,WAAOjC,EAAsBiC,CAAsB;AAIhD,MAAAN,EAAiB,YAAa,kBAAkBnC,EAAW,UAAU,EAAE,UAAU,GAAG;AACjF,UAAA0C,IAAWP,EACf,UAAU,EACV,oBAAoBnC,EAAW,UAAU,EACzC,cAAc;AAChB,WAAOU,EAAsBgC,CAAQ;AAAA,EAAA;AAItC,QAAMC,IAA0BR,EAAiB,UAAa,EAAA,oBAAoBnC,EAAW,cAAc;AAC3G,MAAI2C,GAAyB;AAC5B,UAAMC,IAAyB/C;AAAA,MAC9B8C,EAAwB,oBAAoB3C,EAAW,UAAU,EAAG,cAAc;AAAA,IACnF,GAGMoB,IAAoBwB,EACxB,UACA,EAAA,oBAAoB5C,EAAW,aAAa;AAC9C,QAAIoB;AACH,aAAOE,EAAmBF,EAAkB,QAAA,GAAWA,GAAmB,CAAA,CAAE;AAG7E,UAAMyB,IAAaD,EACjB,UACA,EAAA,oBAAoB5C,EAAW,uBAAuB;AACxD,QAAI6C;AACH,aAAOT,EAA0BS,CAAU;AAO5C,QAJID,EAAuB,cAAc5C,EAAW,kBAIhD4C,EAAuB,cAAc5C,EAAW;AACnD,aAAOoC,EAA0BQ,CAAsB;AAGlDf,UAAAA,IAAWM,EAAiB,cAAc,EAAE,cAAc,MAAM,GAAG,EAAE,IAAI;AAC/E,WAAAL,EAAO,KAAK,IAAID,CAAQ,uCAAuCe,EAAuB,YAAa,CAAA,EAAE,GAC9F;AAAA,EAAA;AAOR,QAAME,IAH+BX,EACnC,oBAAoBnC,EAAW,UAAU,EACzC,kBAAkBA,EAAW,kBAAkB,EACY,KAAK,CAAC+C,MAC3DA,EAAK,oBAAoB/C,EAAW,UAAU,GAAG,cAAc,OACtE;AACD,MAAI8C,GAAyB;AACtB,UAAAE,IAAa3C,EAAgCyC,CAAuB,EACxE,OAAO9C,EAAW,aAAa,EAC/B,cAAc;AACT,WAAAsB,EAAmB0B,GAAYF,CAAuB;AAAA,EAAA;AAIxD,QAAAG,IAAiBd,EACrB,oBAAoBnC,EAAW,UAAU,GACxC,oBAAoBA,EAAW,UAAU;AAC5C,MAAIiD,GAAgB;AACnB,UAAMC,IAA0BD,EAC9B,mBAAmBjD,EAAW,gBAAgB,EAC9C,cAAc,GACVmD,IAAmBF,EAAe,gBAAgBC,IAA0B,CAAC;AAC5E,WAAAxC,EAAsByC,EAAiB,eAAgB;AAAA,EAAA;AAIzD,QAAAC,IAAmBjB,EAAiB,OAAOnC,EAAW,gBAAgB,IACzEmC,IACAA,EAAiB,UAAU,GAAG,OAAOnC,EAAW,mBAAmB,IAClEmC,EAAiB,aAAa,oBAAoBnC,EAAW,gBAAgB,IAC7E;AAEJ,MAAIoD,GAAkB;AACrB,UAAMC,IAAgBD,EAAiB,oBAAoBpD,EAAW,aAAa;AACnF,QAAIqD;AACH,aAAO7C,EAAsB6C,CAAa;AAAA,EAC3C;AAGK,QAAAxB,IAAWM,EAAiB,cAAc,EAAE,cAAc,MAAM,GAAG,EAAE,IAAI;AACxE,SAAAL,EAAA,KAAK,IAAID,CAAQ,4BAA4B,GAE7C;AACR,GAEaQ,IAAkC,CAACvC,MAAwB;AACvE,QAAM4B,IAAqB5B,EAAK,OAAOE,EAAW,cAAc;AAChE,MAAI0B,GAAoB;AACvB,UAAMO,IAAiBP,EAAmB,oBAAoB1B,EAAW,UAAU;AAC/E,QAAAiC,GAAgB,QAAQ,MAAM;AAC1B,aAAA;AACG,QAAAA,GAAgB,QAAQ,MAAM;AACjC,aAAA;AAGR,UAAMqB,IAAiB5B,EAAmB,oBAAoB1B,EAAW,UAAU,GAC7EuD,IAAoB1D,EAAuByD,EAAe,cAAA,CAAgB;AAChF,WAAOjB,EAAgCkB,CAAiB;AAAA,EAAA;AAMlD,SAHgBzD,EAAK,yBAAyBE,EAAW,UAAU,EACnC,kBAAkBA,EAAW,kBAAkB,EAE/D,KAAK,CAACF,MACLA,EAAK,yBAAyBE,EAAW,UAAU,EACpC,QAAQ,MAEvB,aACRK,EAAgCP,CAAI,EACrC,cAAcE,EAAW,cAEhC,EACP;AACF,GAEasC,IAAkC,CAC9C3B,GACA6C,MACY;AACN,QAAA1D,IAAOD,EAAuBc,CAAe,GAE7Ce,IAAqB5B,EAAK,OAAOE,EAAW,cAAc;AAChE,MAAI0B,GAAoB;AACvB,UAAM+B,IAAc/B,EAAmB,mBAAmB1B,EAAW,UAAU;AACxE,WAAAsC,EAAgCmB,GAAaD,CAAI;AAAA,EAAA;AAGzD,QAAMF,IAAiBxD,EAAK,OAAOE,EAAW,UAAU;AACxD,MAAIsD;AAEI,WADUA,EAAe,cAAc,IAAI,CAACI,MAAMpB,EAAgCoB,GAAGF,CAAI,CAAC,EACjF,KAAK,CAACG,MAAU,CAAC,CAACA,KAASA,MAAU,YAAY,KAAK;AAGvE,QAAM3B,IAAoBlC,EAAK,OAAOE,EAAW,uBAAuB;AACxE,MAAIgC,GAAmB;AAEtB,UAAM4B,IADSC,EAAyB7B,CAAiB,EAC9B,KAAK,CAAC2B,MAAUA,EAAM,eAAeH,CAAI;AACpE,WAAKI,IAGD,MAAM,QAAQA,EAAY,KAAK,IAC3B,UAEDA,EAAY,SAAS,KALpB;AAAA,EAKoB;AAG7B,QAAME,IAAuBhE,EAAK,OAAOE,EAAW,gBAAgB;AACpE,MAAI8D;AAEF,WAAAA,EACE,eACA,QAAQ,CAACC,MAAMzB,EAAgCyB,GAAGP,CAAI,CAAC,EACvD,OAAO,CAACQ,MAAM,CAAC,CAACA,KAAKA,MAAM,YAAY,EAAE,CAAC,KAAK;AAInD,QAAMjD,IAAkBjB,EAAK,OAAOE,EAAW,WAAW;AAC1D,MAAIe;AACH,WAAOuB,EAAgCvB,EAAgB,oBAAoBf,EAAW,UAAU,GAAIwD,CAAI;AAGzG,QAAMS,IAAwBnE,EAAK,OAAOE,EAAW,iBAAiB;AACtE,MAAIiE,KACgBnE,EAAK,yBAAyBE,EAAW,UAAU,EACvD,QAAQ,MAAMwD;AAI5B,WAHmBnD,EAAgC4D,CAAqB,EAAE;AAAA,MACzEjE,EAAW;AAAA,IACZ,EACkB,eAAe;AAI7B,QAAA6B,IAAW/B,EAAK,cAAc,EAAE,cAAc,MAAM,GAAG,EAAE,IAAI;AACnE,SAAAgC,EAAO,IAAI,IAAID,CAAQ,wCAAwC/B,EAAK,YAAa,CAAA,EAAE,GAC5E;AACR,GAEMoE,IAAY,CAACC,MAAe;AAC3B,QAAAC,IAASD,EAAK,UAAU;AAC9B,MAAI,CAACA,EAAK,SAAS,KAAK,CAACC;AACjB,WAAA;AAEF,QAAAC,IAAOF,EAAK,iBAAiB;AACnC,SAAOC,EAAO,QAAc,MAAA,aAAaC,EAAK,WAAW;AAC1D,GAEa/C,IAAqB,CACjCgD,GACAC,GACAC,IAAgB,CAAA,MACU;AAC1B,QAAM5D,IAAW0D,EAAc,eAAe,GAAG,QAAQ;AACzD,MAAI1D,KAAYC,EAAe,YAAc,EAAA,gBAAgBD,CAAQ;AAC7D,WAAA;AAAA,MACN;AAAA,QACC,MAAM;AAAA,QACN,OAAOA;AAAA,QACP,UAAU;AAAA,MAAA;AAAA,IAEZ;AAGK,QAAAuD,IAAOD,EAAUI,CAAa,IAAIA,EAAc,iBAAiB,EAAE,CAAC,IAAIA;AAE9E,MAAIE,EAAM,KAAK,CAACC,MAAiBA,MAAiBN,CAAI;AAC9C,WAAA;AAGF,QAAAO,IAAYF,EAAM,OAAOL,CAAI;AAE/B,MAAAA,EAAK,QAAQ,MAAM;AACf,WAAA;AAGJ,MAAAA,EAAK;AACD,WAAA;AAGJ,MAAAA,EAAK;AACD,WAAA;AAGJ,MAAAA,EAAK;AACD,WAAA;AAGR,MAAIA,EAAK,UAAA,KAAeA,EAAK;AACrB,WAAA;AAGJ,MAAAA,EAAK;AACD,WAAA;AAAA,MACN;AAAA,QACC,MAAM;AAAA,QACN,OAAO,OAAOA,EAAK,iBAAkB;AAAA,QACrC,UAAU;AAAA,MAAA;AAAA,IAEZ;AAGG,MAAAA,EAAK;AACD,WAAA;AAAA,MACN;AAAA,QACC,MAAM;AAAA,QACN,OAAO,OAAOA,EAAK,iBAAkB;AAAA,QACrC,UAAU;AAAA,MAAA;AAAA,IAEZ;AAGD,MAAIA,EAAK,SAAA,KAAcA,EAAK;AACpB,WAAA;AAGJ,MAAAA,EAAK;AACD,WAAA;AAGJ,MAAAA,EAAK,QAAQ,MAAM;AACf,WAAA;AAGJ,MAAAA,EAAK;AACD,WAAA;AAAA,MACN;AAAA,QACC,MAAM;AAAA,QACN,OAAOA,EAAK,iBAAmB,EAAA,IAAI,CAACJ,OAAO;AAAA,UAC1C,MAAM;AAAA,UACN,OAAOzC,EAAmByC,GAAGQ,GAAYG,CAAS;AAAA,UAClD,UAAU;AAAA,QAAA,EACT;AAAA,QACF,UAAU;AAAA,MAAA;AAAA,IAEZ;AAGG,MAAAP,EAAK;AACD,WAAA;AAAA,MACN;AAAA,QACC,MAAM;AAAA,QACN,OAAO7C,EAAmB6C,EAAK,oBAAoB,GAAII,GAAYG,CAAS;AAAA,QAC5E,UAAU;AAAA,MAAA;AAAA,IAEZ;AAGD,MAAIP,EAAK,SAAS,KAAKA,EAAK,QAAA,MAAc;AAClC,WAAA;AAAA,MACN;AAAA,QACC,MAAM;AAAA,QACN,OAAO;AAAA,QACP,UAAU;AAAA,MAAA;AAAA,IAEZ;AAGD,MAAIA,EAAK,cAAcA,EAAK,cAAc,EAAE,WAAW,GAAG;AACzD,UAAMQ,IAAaR,EAAK,sBAAsB,EAAE,CAAC;AAC1C,WAAA;AAAA,MACN;AAAA,QACC,MAAM;AAAA,QACN,OAAO7C,EAAmBqD,GAAYJ,GAAYG,CAAS;AAAA,QAC3D,UAAU;AAAA,MAAA;AAAA,IAEZ;AAAA,EAAA;AAGG,MAAAP,EAAK;AACJ,WAAAA,EAAK,QAAQ,MAAM,SACf,SAEDA,EACL,cAAA,EACA,IAAI,CAACpB,MAAS;AACd,YAAM6B,IAAmB7B,EAAK,oBAAA,KAAyBA,EAAK,kBAAkB,CAAC;AAC/E,UAAI,CAAC6B;AACG,eAAA;AAAA,UACN,MAAM;AAAA,UACN,YAAY7B,EAAK,QAAQ;AAAA,UACzB,OAAOzB,EAAmByB,EAAK,kBAAkBwB,CAAU,GAAGA,GAAYG,CAAS;AAAA,UACnF,UAAU;AAAA,QACX;AAOD,UAAI,EAJHE,EAAiB,OAAO5E,EAAW,iBAAiB,KACpD4E,EAAiB,OAAO5E,EAAW,kBAAkB,KACrD4E,EAAiB,OAAO5E,EAAW,2BAA2B;AAGvD,eAAA;AAAA,UACN,MAAM;AAAA,UACN,YAAY+C,EAAK,QAAQ;AAAA,UACzB,OAAOzB,EAAmByB,EAAK,kBAAkBwB,CAAU,GAAGA,GAAYG,CAAS;AAAA,UACnF,UAAU;AAAA,QACX;AAGD,YAAMG,IAAa9B,EAAK,kBAAkBwB,CAAU,EAAE,WAAW,GAE3DO,IAAQxD,EAAmByB,EAAK,kBAAkBwB,CAAU,GAAGA,GAAYG,CAAS;AACnF,aAAA;AAAA,QACN,MAAM;AAAA,QACN,YAAY3B,EAAK,QAAQ;AAAA,QACzB,OAAA+B;AAAA,QACA,UAAUD;AAAA,MACX;AAAA,IAAA,CACA,EACA,OAAO,CAACE,MAAQA,EAAI,UAAU,WAAW;AAGxC,MAAAZ,EAAK,WAAW;AAOnB,UAAMa,IANwCb,EAAK,cAAgB,EAAA,IAAI,CAACA,OAAU;AAAA,MACjF,MAAM;AAAA,MACN,OAAO7C,EAAmB6C,GAAMI,GAAYG,CAAS;AAAA,MACrD,UAAU;AAAA,IAAA,EACT,EAEqC;AAAA,MACtC,CAACP,GAAMc,GAAOC,MAAQ,CAACA,EAAI,KAAK,CAACC,GAAKC,MAAaD,EAAI,UAAUhB,EAAK,SAASiB,IAAWH,CAAK;AAAA,IAChG,GACMI,IAAaL,EAAc,KAAK,CAACF,MAAUA,EAAM,UAAU,WAAW,GACtEQ,IAASN,EAAc,OAAO,CAACF,MAAUA,EAAM,UAAU,WAAW;AACtE,WAAAQ,EAAO,WAAW,IACdA,EAAO,CAAC,EAAE,QAEX;AAAA,MACN;AAAA,QACC,MAAM;AAAA,QACN,OAAOA;AAAA,QACP,UAAUD;AAAA,MAAA;AAAA,IAEZ;AAAA,EAAA;AAGG,MAAAlB,EAAK;AAKR,WAJiBA,EAAK,qBAAqB,EAEzC,IAAI,CAAC5D,MAAUe,EAAmBf,GAAOgE,GAAYG,CAAS,CAAC,EAC/D,OAAO,CAACI,MAAU,OAAOA,KAAU,QAAQ,EACrB,OAAsB,CAACS,GAAOC,MAAY,CAAC,GAAGD,GAAO,GAAGC,CAAO,GAAG,EAAE;AAGvF,QAAA3D,IAAW0C,EAAW,cAAc,EAAE,cAAc,MAAM,GAAG,EAAE,IAAI;AACzE,SAAAzC,EAAO,KAAK,IAAID,CAAQ,6BAA6ByC,EAAc,QAAS,CAAA,EAAE,GACvE;AACR,GAEMmB,IAAwB,CAAC3F,MAA8C;AAC5E,MAAIA,EAAK,OAAOE,EAAW,UAAU;AAC7B,WAAAyF,EAAsB5F,EAAuBC,CAAI,CAAC;AAC/C,MAAAA,EAAK,OAAOE,EAAW,aAAa;AAC9C,WAAOF,EAAK,gBAAgB;AAClB,MAAAA,EAAK,OAAOE,EAAW,sBAAsB;AAChD,WAAAF,EAAK,sBAAsB,IAAI,CAACS,MAAUkF,EAAsBlF,CAAK,CAAC;AACnE,MAAAT,EAAK,OAAOE,EAAW,wBAAwB;AAClD,WAAAyF,EAAsBpF,EAAgCP,CAAI,CAAC;AACxD,MAAAA,EAAK,OAAOE,EAAW,uBAAuB;AACxD,WAAO6D,EAAyB/D,CAAI;AAG/B,QAAA+B,IAAW/B,EAAK,cAAc,EAAE,cAAc,MAAM,GAAG,EAAE,IAAI;AACnE,SAAAgC,EAAO,IAAI,IAAID,CAAQ,gCAAgC/B,EAAK,YAAa,CAAA,EAAE,GAEpE;AACR,GAEa+D,IAA2B,CAAC7B,MACjBA,EAAkB,yBAAyBhC,EAAW,UAAU,EAChD,kBAAkBA,EAAW,kBAAkB,EAEnD,IAAI,CAACF,MAAS;AAE1C,QAAAoC,IADiBpC,EAAK,yBAAyBE,EAAW,UAAU,EACpC,QAAQ,GAExCE,IAAsBJ,EAAK,aAAa,GACxC4F,IAAa7F,EAAuBK,CAAmB,GACvDyD,IAAQ8B,EAAsBC,CAAU;AAEvC,SAAA;AAAA,IACN,YAAYxD;AAAA,IACZ,OAAAyB;AAAA,EACD;AAAA,CACA,KAEoB,CAAC;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("ts-morph"),d=require("./nodeParsers.cjs"),c=require("../../utils/logger.cjs"),h=(t,o)=>{const s=t.getFirstDescendantByKind(a.SyntaxKind.PropertyAccessExpression).getText().split(".")[1].toUpperCase(),r=s==="DEL"?"DELETE":s,i=t.getFirstDescendantByKind(a.SyntaxKind.StringLiteral).getText()??"",l=i.substring(1,i.length-1),n={method:r,path:l,sourceFilePath:o,requestPathParams:[],requestQuery:[],requestHeaders:[],rawBody:void 0,objectBody:[],responses:[],name:void 0,summary:void 0,description:void 0,tags:void 0};try{f(t).forEach(u=>{n[u.identifier]=u.value})}catch(e){c.Logger.error("Error",e)}try{n.requestPathParams=x(t,l)}catch(e){c.Logger.error("Error",e)}try{n.requestQuery=g(t,"useQueryParams")}catch(e){c.Logger.error("Error",e)}try{n.requestHeaders=g(t,"useHeaderParams")}catch(e){c.Logger.error("Error",e)}try{const e=K(t);e&&(n.rawBody=e)}catch(e){c.Logger.error("Error",e)}try{n.objectBody=g(t,"useRequestBody")}catch(e){c.Logger.error("Error",e)}try{n.responses=E(t)}catch(e){c.Logger.error("Error",e)}return n},p=(t,o)=>t.getDescendantsOfKind(a.SyntaxKind.CallExpression).filter(i=>i.getFirstChildByKind(a.SyntaxKind.Identifier)?.getText()===o)[0]??null,f=t=>{const o=p(t,"useApiEndpoint");if(!o)return[];const s=o.getFirstChildByKind(a.SyntaxKind.SyntaxList),r=d.findNodeImplementation(s.getLastChild());if(!r.isKind(a.SyntaxKind.ObjectLiteralExpression))throw new Error("Non-literal type used in useApiEndpoint");const i=r.asKind(a.SyntaxKind.ObjectLiteralExpression);return d.getValuesOfObjectLiteral(i).filter(n=>n.value!==null)},x=(t,o)=>{const s=p(t,"usePathParams");if(!s)return[];const r=s.getFirstChildByKind(a.SyntaxKind.SyntaxList),i=d.findNodeImplementation(r.getLastChild());if(!i.isKind(a.SyntaxKind.ObjectLiteralExpression))throw new Error("Non-literal type used in usePathParams");const l=o.split("/").filter(e=>e.startsWith(":")).map(e=>({name:e.substring(1).replace(/\?/,""),optional:e.includes("?")})),n=i.asKind(a.SyntaxKind.ObjectLiteralExpression);return d.getShapeOfValidatorLiteral(n).filter(e=>e.shape!==null).map(e=>({identifier:e.identifier,signature:e.shape,optional:l.some(u=>u.name===e.identifier&&u.optional),description:e.description,errorMessage:e.errorMessage}))},K=t=>{const o=p(t,"useRequestRawBody");if(!o)return null;const s=o.getFirstChildByKind(a.SyntaxKind.SyntaxList),r=d.findNodeImplementation(s.getLastChild(i=>!i.isKind(a.SyntaxKind.CommaToken)));return{signature:d.getValidatorPropertyShape(r),optional:d.getValidatorPropertyOptionality(r),description:d.getValidatorPropertyStringValue(r,"description"),errorMessage:d.getValidatorPropertyStringValue(r,"errorMessage")}},g=(t,o)=>{const s=p(t,o);if(!s)return[];const r=s.getFirstChildByKind(a.SyntaxKind.SyntaxList),i=d.findNodeImplementation(r.getLastChild());if(!i.isKind(a.SyntaxKind.ObjectLiteralExpression))throw new Error(`Non-literal type used in ${o}`);const l=i.asKind(a.SyntaxKind.ObjectLiteralExpression);return d.getShapeOfValidatorLiteral(l).filter(n=>n.shape!==null).map(n=>({identifier:n.identifier,signature:n.shape,optional:n.optional,description:n.description,errorMessage:n.errorMessage}))},E=t=>{const s=t.getFirstChildByKind(a.SyntaxKind.CallExpression).getFirstChildByKind(a.SyntaxKind.SyntaxList).getFirstChildByKind(a.SyntaxKind.ArrowFunction).getReturnType(),r=s.getText().startsWith("Promise")?s.getTypeArguments()[0]:s,i=d.getProperTypeShape(r,t);return y(i)},y=t=>{if(typeof t=="string")return[{status:t==="void"||t==="null"?204:200,contentType:"text/plain",signature:t,description:"",errorMessage:""}];if(t[0].role==="union_entry"||t[0].role==="literal_string")return y(t[0].shape);if(t[0].role==="property"&&t[0].identifier==="_isUseReturnValue"){const o=(()=>{const r=t.find(i=>i.role==="property"&&i.identifier==="status")?.shape;if(!r||typeof r=="string"||typeof r[0].shape!="string")throw new Error("Invalid useReturnValue hook");return parseInt(r[0].shape)})(),s=(()=>{const r=t.find(i=>i.role==="property"&&i.identifier==="contentType")?.shape;if(!r||typeof r=="string"||typeof r[0].shape!="string")throw new Error("Invalid useReturnValue hook");return r[0].shape})();return[{status:o,contentType:s,signature:t,description:"",errorMessage:""}]}return t[0].role==="union"?typeof t[0].shape=="string"?[{status:t[0].shape==="void"||t[0].shape==="null"?204:200,contentType:"application/json",signature:t[0].shape,description:"",errorMessage:""}]:t[0].shape.flatMap(o=>y([o])):t[0].role==="buffer"?[{status:200,contentType:"application/octet-stream",signature:t,description:"",errorMessage:""}]:[{status:200,contentType:"application/json",signature:t,description:"",errorMessage:""}]};exports.parseEndpoint=h;
2
+ //# sourceMappingURL=parseEndpoint.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseEndpoint.cjs","sources":["../../../src/openapi/analyzerModule/parseEndpoint.ts"],"sourcesContent":["import { Node, SyntaxKind, ts } from 'ts-morph'\n\nimport { ApiEndpointDocs } from '../../hooks/useApiEndpoint'\nimport { EndpointData } from '../types'\nimport {\n\tfindNodeImplementation,\n\tgetProperTypeShape,\n\tgetShapeOfValidatorLiteral,\n\tgetValidatorPropertyOptionality,\n\tgetValidatorPropertyShape,\n\tgetValidatorPropertyStringValue,\n\tgetValuesOfObjectLiteral,\n} from './nodeParsers'\nimport { Logger } from '../../utils/logger'\n\nexport const parseEndpoint = (node: Node<ts.Node>, sourceFilePath: string) => {\n\tconst parsedEndpointMethod = node\n\t\t.getFirstDescendantByKind(SyntaxKind.PropertyAccessExpression)!\n\t\t.getText()\n\t\t.split('.')[1]\n\t\t.toUpperCase()\n\n\tconst endpointMethod = parsedEndpointMethod === 'DEL' ? 'DELETE' : parsedEndpointMethod\n\n\tconst endpointText = node.getFirstDescendantByKind(SyntaxKind.StringLiteral)!.getText() ?? ''\n\tconst endpointPath = endpointText.substring(1, endpointText.length - 1)\n\n\tconst endpointData: EndpointData = {\n\t\tmethod: endpointMethod as 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE',\n\t\tpath: endpointPath,\n\t\tsourceFilePath,\n\t\trequestPathParams: [],\n\t\trequestQuery: [],\n\t\trequestHeaders: [],\n\t\trawBody: undefined,\n\t\tobjectBody: [],\n\t\tresponses: [],\n\t\tname: undefined,\n\t\tsummary: undefined,\n\t\tdescription: undefined,\n\t\ttags: undefined,\n\t}\n\n\tconst warningData: {\n\t\tsegment: string\n\t\terror: Error\n\t}[] = []\n\n\t// API documentation\n\ttry {\n\t\tconst entries = parseApiDocumentation(node)\n\t\tentries.forEach((param) => {\n\t\t\tendpointData[param.identifier] = param.value as string & string[]\n\t\t})\n\t} catch (err) {\n\t\twarningData.push({\n\t\t\tsegment: 'api',\n\t\t\terror: err as Error,\n\t\t})\n\t\tLogger.error('Error', err)\n\t}\n\n\t// Request params\n\ttry {\n\t\tendpointData.requestPathParams = parseRequestParams(node, endpointPath)\n\t} catch (err) {\n\t\twarningData.push({\n\t\t\tsegment: 'path',\n\t\t\terror: err as Error,\n\t\t})\n\t\tLogger.error('Error', err)\n\t}\n\n\t// Request query\n\ttry {\n\t\tendpointData.requestQuery = parseRequestObjectInput(node, 'useQueryParams')\n\t} catch (err) {\n\t\twarningData.push({\n\t\t\tsegment: 'query',\n\t\t\terror: err as Error,\n\t\t})\n\t\tLogger.error('Error', err)\n\t}\n\n\t// Request headers\n\ttry {\n\t\tendpointData.requestHeaders = parseRequestObjectInput(node, 'useHeaderParams')\n\t} catch (err) {\n\t\twarningData.push({\n\t\t\tsegment: 'headers',\n\t\t\terror: err as Error,\n\t\t})\n\t\tLogger.error('Error', err)\n\t}\n\n\t// Raw request body\n\ttry {\n\t\tconst parsedBody = parseRequestRawBody(node)\n\t\tif (parsedBody) {\n\t\t\tendpointData.rawBody = parsedBody\n\t\t}\n\t} catch (err) {\n\t\twarningData.push({\n\t\t\tsegment: 'rawBody',\n\t\t\terror: err as Error,\n\t\t})\n\t\tLogger.error('Error', err)\n\t}\n\n\t// Object request body\n\ttry {\n\t\tendpointData.objectBody = parseRequestObjectInput(node, 'useRequestBody')\n\t} catch (err) {\n\t\twarningData.push({\n\t\t\tsegment: 'objectBody',\n\t\t\terror: err as Error,\n\t\t})\n\t\tLogger.error('Error', err)\n\t}\n\n\t// Request response\n\ttry {\n\t\tendpointData.responses = parseRequestResponse(node)\n\t} catch (err) {\n\t\twarningData.push({\n\t\t\tsegment: 'response',\n\t\t\terror: err as Error,\n\t\t})\n\t\tLogger.error('Error', err)\n\t}\n\n\treturn endpointData\n}\n\nconst getHookNode = (\n\tendpointNode: Node<ts.Node>,\n\thookName:\n\t\t| 'useApiEndpoint'\n\t\t| 'usePathParams'\n\t\t| 'useQueryParams'\n\t\t| 'useHeaderParams'\n\t\t| 'useRequestBody'\n\t\t| 'useRequestRawBody',\n) => {\n\tconst callExpressions = endpointNode.getDescendantsOfKind(SyntaxKind.CallExpression)\n\tconst matchingCallExpressions = callExpressions.filter((node) => {\n\t\treturn node.getFirstChildByKind(SyntaxKind.Identifier)?.getText() === hookName\n\t})\n\treturn matchingCallExpressions[0] ?? null\n}\n\nconst parseApiDocumentation = (node: Node<ts.Node>) => {\n\tconst hookNode = getHookNode(node, 'useApiEndpoint')\n\tif (!hookNode) {\n\t\treturn []\n\t}\n\tconst paramNode = hookNode.getFirstChildByKind(SyntaxKind.SyntaxList)!\n\tconst valueNode = findNodeImplementation(paramNode.getLastChild()!)\n\n\tif (!valueNode.isKind(SyntaxKind.ObjectLiteralExpression)) {\n\t\tthrow new Error('Non-literal type used in useApiEndpoint')\n\t}\n\n\tconst objectLiteral = valueNode.asKind(SyntaxKind.ObjectLiteralExpression)!\n\n\tconst values = getValuesOfObjectLiteral(objectLiteral).filter((param) => param.value !== null)\n\treturn values as {\n\t\tidentifier: keyof ApiEndpointDocs\n\t\tvalue: (typeof values)[number]['value']\n\t}[]\n}\n\nconst parseRequestParams = (node: Node<ts.Node>, endpointPath: string): EndpointData['requestPathParams'] => {\n\tconst hookNode = getHookNode(node, 'usePathParams')\n\tif (!hookNode) {\n\t\treturn []\n\t}\n\n\tconst paramNode = hookNode.getFirstChildByKind(SyntaxKind.SyntaxList)!\n\tconst valueNode = findNodeImplementation(paramNode.getLastChild()!)\n\n\tif (!valueNode.isKind(SyntaxKind.ObjectLiteralExpression)) {\n\t\tthrow new Error('Non-literal type used in usePathParams')\n\t}\n\n\tconst declaredParams = endpointPath\n\t\t.split('/')\n\t\t.filter((segment) => segment.startsWith(':'))\n\t\t.map((segment) => ({\n\t\t\tname: segment.substring(1).replace(/\\?/, ''),\n\t\t\toptional: segment.includes('?'),\n\t\t}))\n\n\tconst objectLiteral = valueNode.asKind(SyntaxKind.ObjectLiteralExpression)!\n\treturn getShapeOfValidatorLiteral(objectLiteral)\n\t\t.filter((param) => param.shape !== null)\n\t\t.map((param) => ({\n\t\t\tidentifier: param.identifier,\n\t\t\tsignature: param.shape as string,\n\t\t\toptional: declaredParams.some((declared) => declared.name === param.identifier && declared.optional),\n\t\t\tdescription: param.description,\n\t\t\terrorMessage: param.errorMessage,\n\t\t}))\n}\n\nconst parseRequestRawBody = (node: Node<ts.Node>): NonNullable<EndpointData['rawBody']> | null => {\n\tconst hookNode = getHookNode(node, 'useRequestRawBody')\n\tif (!hookNode) {\n\t\treturn null\n\t}\n\tconst paramNode = hookNode.getFirstChildByKind(SyntaxKind.SyntaxList)!\n\tconst valueNode = findNodeImplementation(\n\t\tparamNode.getLastChild((node) => !node.isKind(SyntaxKind.CommaToken))!,\n\t)\n\n\treturn {\n\t\tsignature: getValidatorPropertyShape(valueNode),\n\t\toptional: getValidatorPropertyOptionality(valueNode),\n\t\tdescription: getValidatorPropertyStringValue(valueNode, 'description'),\n\t\terrorMessage: getValidatorPropertyStringValue(valueNode, 'errorMessage'),\n\t}\n}\n\nconst parseRequestObjectInput = (\n\tnode: Node<ts.Node>,\n\tnodeName: 'useQueryParams' | 'useHeaderParams' | 'useRequestBody',\n): EndpointData['requestQuery'] | EndpointData['objectBody'] => {\n\tconst hookNode = getHookNode(node, nodeName)\n\tif (!hookNode) {\n\t\treturn []\n\t}\n\tconst paramNode = hookNode.getFirstChildByKind(SyntaxKind.SyntaxList)!\n\tconst valueNode = findNodeImplementation(paramNode.getLastChild()!)\n\n\tif (!valueNode.isKind(SyntaxKind.ObjectLiteralExpression)) {\n\t\tthrow new Error(`Non-literal type used in ${nodeName}`)\n\t}\n\n\tconst objectLiteral = valueNode.asKind(SyntaxKind.ObjectLiteralExpression)!\n\treturn getShapeOfValidatorLiteral(objectLiteral)\n\t\t.filter((param) => param.shape !== null)\n\t\t.map((param) => ({\n\t\t\tidentifier: param.identifier,\n\t\t\tsignature: param.shape as string,\n\t\t\toptional: param.optional,\n\t\t\tdescription: param.description,\n\t\t\terrorMessage: param.errorMessage,\n\t\t}))\n}\n\nconst parseRequestResponse = (node: Node<ts.Node>): EndpointData['responses'] => {\n\tconst implementationNode = node\n\t\t.getFirstChildByKind(SyntaxKind.CallExpression)!\n\t\t.getFirstChildByKind(SyntaxKind.SyntaxList)!\n\t\t.getFirstChildByKind(SyntaxKind.ArrowFunction)!\n\tconst returnType = implementationNode.getReturnType()\n\n\tconst actualType = (() => {\n\t\tif (returnType.getText().startsWith('Promise')) {\n\t\t\treturn returnType.getTypeArguments()[0]\n\t\t}\n\t\treturn returnType\n\t})()\n\n\tconst responseType = getProperTypeShape(actualType, node)\n\n\treturn parseResponseTypes(responseType)\n}\n\nconst parseResponseTypes = (\n\tresponseType: ReturnType<typeof getProperTypeShape>,\n): EndpointData['responses'] => {\n\t// TODO: Add support for response descriptions and errors\n\tif (typeof responseType === 'string') {\n\t\treturn [\n\t\t\t{\n\t\t\t\tstatus: responseType === 'void' || responseType === 'null' ? 204 : 200,\n\t\t\t\tcontentType: 'text/plain',\n\t\t\t\tsignature: responseType,\n\t\t\t\tdescription: '',\n\t\t\t\terrorMessage: '',\n\t\t\t},\n\t\t]\n\t}\n\n\tif (responseType[0].role === 'union_entry' || responseType[0].role === 'literal_string') {\n\t\treturn parseResponseTypes(responseType[0].shape)\n\t}\n\n\t// Response type is a useReturnValue hook\n\tif (responseType[0].role === 'property' && responseType[0].identifier === '_isUseReturnValue') {\n\t\tconst status = (() => {\n\t\t\tconst property = responseType.find(\n\t\t\t\t(response) => response.role === 'property' && response.identifier === 'status',\n\t\t\t)?.shape\n\t\t\tif (!property || typeof property === 'string' || typeof property[0].shape !== 'string') {\n\t\t\t\tthrow new Error('Invalid useReturnValue hook')\n\t\t\t}\n\t\t\treturn parseInt(property[0].shape)\n\t\t})()\n\t\tconst contentType = (() => {\n\t\t\tconst property = responseType.find(\n\t\t\t\t(response) => response.role === 'property' && response.identifier === 'contentType',\n\t\t\t)?.shape\n\t\t\tif (!property || typeof property === 'string' || typeof property[0].shape !== 'string') {\n\t\t\t\tthrow new Error('Invalid useReturnValue hook')\n\t\t\t}\n\t\t\treturn property[0].shape\n\t\t})()\n\t\treturn [\n\t\t\t{\n\t\t\t\tstatus,\n\t\t\t\tcontentType,\n\t\t\t\tsignature: responseType,\n\t\t\t\tdescription: '',\n\t\t\t\terrorMessage: '',\n\t\t\t},\n\t\t]\n\t}\n\n\tif (responseType[0].role === 'union') {\n\t\tif (typeof responseType[0].shape === 'string') {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tstatus: responseType[0].shape === 'void' || responseType[0].shape === 'null' ? 204 : 200,\n\t\t\t\t\tcontentType: 'application/json',\n\t\t\t\t\tsignature: responseType[0].shape,\n\t\t\t\t\tdescription: '',\n\t\t\t\t\terrorMessage: '',\n\t\t\t\t},\n\t\t\t]\n\t\t}\n\n\t\treturn responseType[0].shape.flatMap((unionEntry) => {\n\t\t\treturn parseResponseTypes([unionEntry])\n\t\t})\n\t}\n\n\tif (responseType[0].role === 'buffer') {\n\t\treturn [\n\t\t\t{\n\t\t\t\tstatus: 200,\n\t\t\t\tcontentType: 'application/octet-stream',\n\t\t\t\tsignature: responseType,\n\t\t\t\tdescription: '',\n\t\t\t\terrorMessage: '',\n\t\t\t},\n\t\t]\n\t}\n\n\treturn [\n\t\t{\n\t\t\tstatus: 200,\n\t\t\tcontentType: 'application/json',\n\t\t\tsignature: responseType,\n\t\t\tdescription: '',\n\t\t\terrorMessage: '',\n\t\t},\n\t]\n}\n"],"names":["parseEndpoint","node","sourceFilePath","parsedEndpointMethod","SyntaxKind","endpointMethod","endpointText","endpointPath","endpointData","parseApiDocumentation","param","err","Logger","parseRequestParams","parseRequestObjectInput","parsedBody","parseRequestRawBody","parseRequestResponse","getHookNode","endpointNode","hookName","hookNode","paramNode","valueNode","findNodeImplementation","objectLiteral","getValuesOfObjectLiteral","declaredParams","segment","getShapeOfValidatorLiteral","declared","getValidatorPropertyShape","getValidatorPropertyOptionality","getValidatorPropertyStringValue","nodeName","returnType","actualType","responseType","getProperTypeShape","parseResponseTypes","status","property","response","contentType","unionEntry"],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { Node, ts } from 'ts-morph';
2
2
  import { EndpointData } from '../types';
3
+
3
4
  export declare const parseEndpoint: (node: Node<ts.Node>, sourceFilePath: string) => EndpointData;
4
5
  //# sourceMappingURL=parseEndpoint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseEndpoint.d.ts","sourceRoot":"","sources":["../../../src/openapi/analyzerModule/parseEndpoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAc,EAAE,EAAE,MAAM,UAAU,CAAA;AAG/C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAYvC,eAAO,MAAM,aAAa,SAAU,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,kBAAkB,MAAM,iBAqHxE,CAAA"}