arkos 1.4.0-canary.8 → 1.4.0-canary.82

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 (373) hide show
  1. package/cli.js +3 -5
  2. package/dist/cjs/app.js +104 -72
  3. package/dist/cjs/app.js.map +1 -1
  4. package/dist/cjs/exports/index.js.map +1 -1
  5. package/dist/cjs/exports/services/index.js +6 -1
  6. package/dist/cjs/exports/services/index.js.map +1 -1
  7. package/dist/cjs/modules/auth/auth.controller.js +9 -25
  8. package/dist/cjs/modules/auth/auth.controller.js.map +1 -1
  9. package/dist/cjs/modules/auth/auth.router.js +30 -22
  10. package/dist/cjs/modules/auth/auth.router.js.map +1 -1
  11. package/dist/cjs/modules/auth/auth.service.js +35 -11
  12. package/dist/cjs/modules/auth/auth.service.js.map +1 -1
  13. package/dist/cjs/modules/auth/utils/services/auth-action.service.js +16 -10
  14. package/dist/cjs/modules/auth/utils/services/auth-action.service.js.map +1 -1
  15. package/dist/cjs/modules/base/base.controller.js +3 -4
  16. package/dist/cjs/modules/base/base.controller.js.map +1 -1
  17. package/dist/cjs/modules/base/base.middlewares.js +33 -8
  18. package/dist/cjs/modules/base/base.middlewares.js.map +1 -1
  19. package/dist/cjs/modules/base/base.router.js +4 -3
  20. package/dist/cjs/modules/base/base.router.js.map +1 -1
  21. package/dist/cjs/modules/base/base.service.js +68 -66
  22. package/dist/cjs/modules/base/base.service.js.map +1 -1
  23. package/dist/cjs/modules/base/utils/helpers/base.router.helpers.js +17 -40
  24. package/dist/cjs/modules/base/utils/helpers/base.router.helpers.js.map +1 -1
  25. package/dist/cjs/modules/base/utils/helpers/base.service.helpers.js +22 -6
  26. package/dist/cjs/modules/base/utils/helpers/base.service.helpers.js.map +1 -1
  27. package/dist/cjs/modules/debugger/debugger.service.js +11 -4
  28. package/dist/cjs/modules/debugger/debugger.service.js.map +1 -1
  29. package/dist/cjs/modules/debugger/utils/loaded-components-logger.js +1 -1
  30. package/dist/cjs/modules/debugger/utils/loaded-components-logger.js.map +1 -1
  31. package/dist/cjs/modules/email/email.service.js +7 -5
  32. package/dist/cjs/modules/email/email.service.js.map +1 -1
  33. package/dist/cjs/modules/error-handler/error-handler.controller.js +22 -15
  34. package/dist/cjs/modules/error-handler/error-handler.controller.js.map +1 -1
  35. package/dist/cjs/modules/error-handler/utils/app-error.js +14 -3
  36. package/dist/cjs/modules/error-handler/utils/app-error.js.map +1 -1
  37. package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js +1 -1
  38. package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js.map +1 -1
  39. package/dist/cjs/modules/file-upload/file-upload.controller.js +5 -6
  40. package/dist/cjs/modules/file-upload/file-upload.controller.js.map +1 -1
  41. package/dist/cjs/modules/file-upload/file-upload.router.js +13 -5
  42. package/dist/cjs/modules/file-upload/file-upload.router.js.map +1 -1
  43. package/dist/cjs/modules/file-upload/file-upload.service.js +38 -48
  44. package/dist/cjs/modules/file-upload/file-upload.service.js.map +1 -1
  45. package/dist/cjs/modules/file-upload/utils/helpers/file-extensions.js +134 -0
  46. package/dist/cjs/modules/file-upload/utils/helpers/file-extensions.js.map +1 -0
  47. package/dist/cjs/modules/file-upload/utils/helpers/file-upload.helpers.js +10 -5
  48. package/dist/cjs/modules/file-upload/utils/helpers/file-upload.helpers.js.map +1 -1
  49. package/dist/cjs/modules/swagger/swagger.router.js +14 -6
  50. package/dist/cjs/modules/swagger/swagger.router.js.map +1 -1
  51. package/dist/cjs/modules/swagger/utils/helpers/class-validator-to-json-schema.js +53 -0
  52. package/dist/cjs/modules/swagger/utils/helpers/class-validator-to-json-schema.js.map +1 -0
  53. package/dist/cjs/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js +10 -10
  54. package/dist/cjs/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js.map +1 -1
  55. package/dist/cjs/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.js +419 -0
  56. package/dist/cjs/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.js.map +1 -0
  57. package/dist/cjs/modules/swagger/utils/helpers/get-swagger-default-configs.js +3 -3
  58. package/dist/cjs/modules/swagger/utils/helpers/get-swagger-default-configs.js.map +1 -1
  59. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js +4 -6
  60. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js.map +1 -1
  61. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +4 -4
  62. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js.map +1 -1
  63. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js +1 -1
  64. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js.map +1 -1
  65. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js +9 -9
  66. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js.map +1 -1
  67. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes-paths.js +9 -9
  68. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes-paths.js.map +1 -1
  69. package/dist/cjs/modules/swagger/utils/helpers/missing-json-schemas-generator.js +6 -8
  70. package/dist/cjs/modules/swagger/utils/helpers/missing-json-schemas-generator.js.map +1 -1
  71. package/dist/cjs/modules/swagger/utils/helpers/openapi-schema-converter.js +204 -0
  72. package/dist/cjs/modules/swagger/utils/helpers/openapi-schema-converter.js.map +1 -0
  73. package/dist/cjs/modules/swagger/utils/helpers/swagger.router.helpers.js +9 -9
  74. package/dist/cjs/modules/swagger/utils/helpers/swagger.router.helpers.js.map +1 -1
  75. package/dist/cjs/server.js +33 -36
  76. package/dist/cjs/server.js.map +1 -1
  77. package/dist/cjs/types/arkos-config.js.map +1 -1
  78. package/dist/cjs/types/auth.js.map +1 -1
  79. package/dist/cjs/types/index.js.map +1 -1
  80. package/dist/cjs/types/new-arkos-config.js +3 -0
  81. package/dist/cjs/types/new-arkos-config.js.map +1 -0
  82. package/dist/cjs/types/router-config.js.map +1 -1
  83. package/dist/cjs/utils/arkos-router/index.js +91 -37
  84. package/dist/cjs/utils/arkos-router/index.js.map +1 -1
  85. package/dist/cjs/utils/arkos-router/route-config-validator.js +9 -8
  86. package/dist/cjs/utils/arkos-router/route-config-validator.js.map +1 -1
  87. package/dist/cjs/utils/arkos-router/types/index.js.map +1 -1
  88. package/dist/cjs/utils/arkos-router/types/openapi-config.js +3 -0
  89. package/dist/cjs/utils/arkos-router/types/openapi-config.js.map +1 -0
  90. package/dist/cjs/utils/arkos-router/types/upload-config.js +3 -0
  91. package/dist/cjs/utils/arkos-router/types/upload-config.js.map +1 -0
  92. package/dist/cjs/utils/arkos-router/utils/helpers/index.js +24 -6
  93. package/dist/cjs/utils/arkos-router/utils/helpers/index.js.map +1 -1
  94. package/dist/cjs/utils/arkos-router/utils/helpers/upload-manager.js +232 -0
  95. package/dist/cjs/utils/arkos-router/utils/helpers/upload-manager.js.map +1 -0
  96. package/dist/cjs/utils/cli/build.js +9 -13
  97. package/dist/cjs/utils/cli/build.js.map +1 -1
  98. package/dist/cjs/utils/cli/dev.js +8 -7
  99. package/dist/cjs/utils/cli/dev.js.map +1 -1
  100. package/dist/cjs/utils/cli/export-auth-action.js +78 -0
  101. package/dist/cjs/utils/cli/export-auth-action.js.map +1 -0
  102. package/dist/cjs/utils/cli/generate.js +28 -12
  103. package/dist/cjs/utils/cli/generate.js.map +1 -1
  104. package/dist/cjs/utils/cli/index.js +32 -18
  105. package/dist/cjs/utils/cli/index.js.map +1 -1
  106. package/dist/cjs/utils/cli/prisma-generate.js +2 -2
  107. package/dist/cjs/utils/cli/prisma-generate.js.map +1 -1
  108. package/dist/cjs/utils/cli/start.js +13 -52
  109. package/dist/cjs/utils/cli/start.js.map +1 -1
  110. package/dist/cjs/utils/cli/utils/cli.helpers.js +1 -1
  111. package/dist/cjs/utils/cli/utils/runtime-cli-commander.js +58 -0
  112. package/dist/cjs/utils/cli/utils/runtime-cli-commander.js.map +1 -0
  113. package/dist/cjs/utils/cli/utils/template-generator/templates/class-validator/create-dto-template.js +38 -13
  114. package/dist/cjs/utils/cli/utils/template-generator/templates/class-validator/create-dto-template.js.map +1 -1
  115. package/dist/cjs/utils/cli/utils/template-generator/templates/class-validator/update-dto-template.js +44 -17
  116. package/dist/cjs/utils/cli/utils/template-generator/templates/class-validator/update-dto-template.js.map +1 -1
  117. package/dist/cjs/utils/cli/utils/template-generator/templates/{controller-template.js → generate-controller-template.js} +12 -2
  118. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-controller-template.js.map +1 -0
  119. package/dist/cjs/utils/cli/utils/template-generator/templates/hooks-template.js +1 -34
  120. package/dist/cjs/utils/cli/utils/template-generator/templates/hooks-template.js.map +1 -1
  121. package/dist/cjs/utils/cli/utils/template-generator/templates/middlewares-template.js +97 -265
  122. package/dist/cjs/utils/cli/utils/template-generator/templates/middlewares-template.js.map +1 -1
  123. package/dist/cjs/utils/cli/utils/template-generator/templates/query-options-template.js +16 -16
  124. package/dist/cjs/utils/cli/utils/template-generator/templates/query-options-template.js.map +1 -1
  125. package/dist/cjs/utils/cli/utils/template-generator/templates/router-template.js +5 -2
  126. package/dist/cjs/utils/cli/utils/template-generator/templates/router-template.js.map +1 -1
  127. package/dist/cjs/utils/cli/utils/template-generator/templates/service-template.js +8 -32
  128. package/dist/cjs/utils/cli/utils/template-generator/templates/service-template.js.map +1 -1
  129. package/dist/cjs/utils/cli/utils/template-generator/templates/zod/create-schema-template.js +3 -5
  130. package/dist/cjs/utils/cli/utils/template-generator/templates/zod/create-schema-template.js.map +1 -1
  131. package/dist/cjs/utils/cli/utils/template-generator/templates/zod/update-schema-template.js +1 -1
  132. package/dist/cjs/utils/cli/utils/template-generator/templates/zod/update-schema-template.js.map +1 -1
  133. package/dist/cjs/utils/cli/utils/template-generators.js +2 -2
  134. package/dist/cjs/utils/cli/utils/template-generators.js.map +1 -1
  135. package/dist/cjs/utils/cli/utils/watermark-stamper.js +14 -5
  136. package/dist/cjs/utils/cli/utils/watermark-stamper.js.map +1 -1
  137. package/dist/cjs/utils/define-config.js +2 -0
  138. package/dist/cjs/utils/define-config.js.map +1 -0
  139. package/dist/cjs/utils/dotenv.helpers.js +2 -1
  140. package/dist/cjs/utils/dotenv.helpers.js.map +1 -1
  141. package/dist/cjs/utils/dynamic-loader.js +7 -7
  142. package/dist/cjs/utils/dynamic-loader.js.map +1 -1
  143. package/dist/cjs/utils/features/port-and-host-allocator.js +28 -4
  144. package/dist/cjs/utils/features/port-and-host-allocator.js.map +1 -1
  145. package/dist/cjs/utils/helpers/arkos-config.helpers.js +45 -0
  146. package/dist/cjs/utils/helpers/arkos-config.helpers.js.map +1 -0
  147. package/dist/cjs/utils/helpers/dynamic-loader.helpers.js +135 -46
  148. package/dist/cjs/utils/helpers/dynamic-loader.helpers.js.map +1 -1
  149. package/dist/cjs/utils/helpers/fs.helpers.js +1 -4
  150. package/dist/cjs/utils/helpers/fs.helpers.js.map +1 -1
  151. package/dist/cjs/utils/helpers/routers.helpers.js +55 -4
  152. package/dist/cjs/utils/helpers/routers.helpers.js.map +1 -1
  153. package/dist/cjs/utils/prisma/prisma-json-schema-generator.js +20 -31
  154. package/dist/cjs/utils/prisma/prisma-json-schema-generator.js.map +1 -1
  155. package/dist/cjs/utils/prisma/prisma-schema-parser.js +3 -4
  156. package/dist/cjs/utils/prisma/prisma-schema-parser.js.map +1 -1
  157. package/dist/cjs/utils/sheu.js.map +1 -1
  158. package/dist/cjs/utils/validate-schema.js +1 -1
  159. package/dist/cjs/utils/validate-schema.js.map +1 -1
  160. package/dist/esm/app.js +104 -72
  161. package/dist/esm/app.js.map +1 -1
  162. package/dist/esm/exports/index.js.map +1 -1
  163. package/dist/esm/exports/services/index.js +2 -1
  164. package/dist/esm/exports/services/index.js.map +1 -1
  165. package/dist/esm/modules/auth/auth.controller.js +10 -26
  166. package/dist/esm/modules/auth/auth.controller.js.map +1 -1
  167. package/dist/esm/modules/auth/auth.router.js +33 -25
  168. package/dist/esm/modules/auth/auth.router.js.map +1 -1
  169. package/dist/esm/modules/auth/auth.service.js +35 -11
  170. package/dist/esm/modules/auth/auth.service.js.map +1 -1
  171. package/dist/esm/modules/auth/utils/services/auth-action.service.js +12 -9
  172. package/dist/esm/modules/auth/utils/services/auth-action.service.js.map +1 -1
  173. package/dist/esm/modules/base/base.controller.js +3 -4
  174. package/dist/esm/modules/base/base.controller.js.map +1 -1
  175. package/dist/esm/modules/base/base.middlewares.js +33 -8
  176. package/dist/esm/modules/base/base.middlewares.js.map +1 -1
  177. package/dist/esm/modules/base/base.router.js +4 -3
  178. package/dist/esm/modules/base/base.router.js.map +1 -1
  179. package/dist/esm/modules/base/base.service.js +68 -66
  180. package/dist/esm/modules/base/base.service.js.map +1 -1
  181. package/dist/esm/modules/base/utils/helpers/base.router.helpers.js +19 -41
  182. package/dist/esm/modules/base/utils/helpers/base.router.helpers.js.map +1 -1
  183. package/dist/esm/modules/base/utils/helpers/base.service.helpers.js +22 -6
  184. package/dist/esm/modules/base/utils/helpers/base.service.helpers.js.map +1 -1
  185. package/dist/esm/modules/debugger/debugger.service.js +11 -4
  186. package/dist/esm/modules/debugger/debugger.service.js.map +1 -1
  187. package/dist/esm/modules/debugger/utils/loaded-components-logger.js +1 -1
  188. package/dist/esm/modules/debugger/utils/loaded-components-logger.js.map +1 -1
  189. package/dist/esm/modules/email/email.service.js +7 -5
  190. package/dist/esm/modules/email/email.service.js.map +1 -1
  191. package/dist/esm/modules/error-handler/error-handler.controller.js +22 -12
  192. package/dist/esm/modules/error-handler/error-handler.controller.js.map +1 -1
  193. package/dist/esm/modules/error-handler/utils/app-error.js +14 -3
  194. package/dist/esm/modules/error-handler/utils/app-error.js.map +1 -1
  195. package/dist/esm/modules/error-handler/utils/error-handler.helpers.js +1 -1
  196. package/dist/esm/modules/error-handler/utils/error-handler.helpers.js.map +1 -1
  197. package/dist/esm/modules/file-upload/file-upload.controller.js +5 -6
  198. package/dist/esm/modules/file-upload/file-upload.controller.js.map +1 -1
  199. package/dist/esm/modules/file-upload/file-upload.router.js +13 -5
  200. package/dist/esm/modules/file-upload/file-upload.router.js.map +1 -1
  201. package/dist/esm/modules/file-upload/file-upload.service.js +37 -47
  202. package/dist/esm/modules/file-upload/file-upload.service.js.map +1 -1
  203. package/dist/esm/modules/file-upload/utils/helpers/file-extensions.js +131 -0
  204. package/dist/esm/modules/file-upload/utils/helpers/file-extensions.js.map +1 -0
  205. package/dist/esm/modules/file-upload/utils/helpers/file-upload.helpers.js +9 -5
  206. package/dist/esm/modules/file-upload/utils/helpers/file-upload.helpers.js.map +1 -1
  207. package/dist/esm/modules/swagger/swagger.router.js +14 -6
  208. package/dist/esm/modules/swagger/swagger.router.js.map +1 -1
  209. package/dist/esm/modules/swagger/utils/helpers/class-validator-to-json-schema.js +48 -0
  210. package/dist/esm/modules/swagger/utils/helpers/class-validator-to-json-schema.js.map +1 -0
  211. package/dist/esm/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js +10 -10
  212. package/dist/esm/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js.map +1 -1
  213. package/dist/esm/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.js +413 -0
  214. package/dist/esm/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.js.map +1 -0
  215. package/dist/esm/modules/swagger/utils/helpers/get-swagger-default-configs.js +3 -3
  216. package/dist/esm/modules/swagger/utils/helpers/get-swagger-default-configs.js.map +1 -1
  217. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js +3 -5
  218. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js.map +1 -1
  219. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +4 -4
  220. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js.map +1 -1
  221. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js +1 -1
  222. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js.map +1 -1
  223. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js +9 -9
  224. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js.map +1 -1
  225. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes-paths.js +9 -9
  226. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes-paths.js.map +1 -1
  227. package/dist/esm/modules/swagger/utils/helpers/missing-json-schemas-generator.js +6 -8
  228. package/dist/esm/modules/swagger/utils/helpers/missing-json-schemas-generator.js.map +1 -1
  229. package/dist/esm/modules/swagger/utils/helpers/openapi-schema-converter.js +199 -0
  230. package/dist/esm/modules/swagger/utils/helpers/openapi-schema-converter.js.map +1 -0
  231. package/dist/esm/modules/swagger/utils/helpers/swagger.router.helpers.js +9 -9
  232. package/dist/esm/modules/swagger/utils/helpers/swagger.router.helpers.js.map +1 -1
  233. package/dist/esm/server.js +31 -34
  234. package/dist/esm/server.js.map +1 -1
  235. package/dist/esm/types/arkos-config.js.map +1 -1
  236. package/dist/esm/types/auth.js.map +1 -1
  237. package/dist/esm/types/index.js.map +1 -1
  238. package/dist/esm/types/new-arkos-config.js +2 -0
  239. package/dist/esm/types/new-arkos-config.js.map +1 -0
  240. package/dist/esm/types/router-config.js.map +1 -1
  241. package/dist/esm/utils/arkos-router/index.js +91 -37
  242. package/dist/esm/utils/arkos-router/index.js.map +1 -1
  243. package/dist/esm/utils/arkos-router/route-config-validator.js +9 -8
  244. package/dist/esm/utils/arkos-router/route-config-validator.js.map +1 -1
  245. package/dist/esm/utils/arkos-router/types/index.js.map +1 -1
  246. package/dist/esm/utils/arkos-router/types/openapi-config.js +2 -0
  247. package/dist/esm/utils/arkos-router/types/openapi-config.js.map +1 -0
  248. package/dist/esm/utils/arkos-router/types/upload-config.js +2 -0
  249. package/dist/esm/utils/arkos-router/types/upload-config.js.map +1 -0
  250. package/dist/esm/utils/arkos-router/utils/helpers/index.js +23 -5
  251. package/dist/esm/utils/arkos-router/utils/helpers/index.js.map +1 -1
  252. package/dist/esm/utils/arkos-router/utils/helpers/upload-manager.js +227 -0
  253. package/dist/esm/utils/arkos-router/utils/helpers/upload-manager.js.map +1 -0
  254. package/dist/esm/utils/cli/build.js +9 -13
  255. package/dist/esm/utils/cli/build.js.map +1 -1
  256. package/dist/esm/utils/cli/dev.js +8 -7
  257. package/dist/esm/utils/cli/dev.js.map +1 -1
  258. package/dist/esm/utils/cli/export-auth-action.js +72 -0
  259. package/dist/esm/utils/cli/export-auth-action.js.map +1 -0
  260. package/dist/esm/utils/cli/generate.js +28 -12
  261. package/dist/esm/utils/cli/generate.js.map +1 -1
  262. package/dist/esm/utils/cli/index.js +32 -18
  263. package/dist/esm/utils/cli/index.js.map +1 -1
  264. package/dist/esm/utils/cli/prisma-generate.js +2 -2
  265. package/dist/esm/utils/cli/prisma-generate.js.map +1 -1
  266. package/dist/esm/utils/cli/start.js +13 -52
  267. package/dist/esm/utils/cli/start.js.map +1 -1
  268. package/dist/esm/utils/cli/utils/cli.helpers.js +1 -1
  269. package/dist/esm/utils/cli/utils/runtime-cli-commander.js +53 -0
  270. package/dist/esm/utils/cli/utils/runtime-cli-commander.js.map +1 -0
  271. package/dist/esm/utils/cli/utils/template-generator/templates/class-validator/create-dto-template.js +38 -13
  272. package/dist/esm/utils/cli/utils/template-generator/templates/class-validator/create-dto-template.js.map +1 -1
  273. package/dist/esm/utils/cli/utils/template-generator/templates/class-validator/update-dto-template.js +44 -17
  274. package/dist/esm/utils/cli/utils/template-generator/templates/class-validator/update-dto-template.js.map +1 -1
  275. package/dist/esm/utils/cli/utils/template-generator/templates/{controller-template.js → generate-controller-template.js} +12 -2
  276. package/dist/esm/utils/cli/utils/template-generator/templates/generate-controller-template.js.map +1 -0
  277. package/dist/esm/utils/cli/utils/template-generator/templates/hooks-template.js +1 -34
  278. package/dist/esm/utils/cli/utils/template-generator/templates/hooks-template.js.map +1 -1
  279. package/dist/esm/utils/cli/utils/template-generator/templates/middlewares-template.js +97 -265
  280. package/dist/esm/utils/cli/utils/template-generator/templates/middlewares-template.js.map +1 -1
  281. package/dist/esm/utils/cli/utils/template-generator/templates/query-options-template.js +16 -16
  282. package/dist/esm/utils/cli/utils/template-generator/templates/query-options-template.js.map +1 -1
  283. package/dist/esm/utils/cli/utils/template-generator/templates/router-template.js +5 -2
  284. package/dist/esm/utils/cli/utils/template-generator/templates/router-template.js.map +1 -1
  285. package/dist/esm/utils/cli/utils/template-generator/templates/service-template.js +8 -32
  286. package/dist/esm/utils/cli/utils/template-generator/templates/service-template.js.map +1 -1
  287. package/dist/esm/utils/cli/utils/template-generator/templates/zod/create-schema-template.js +3 -5
  288. package/dist/esm/utils/cli/utils/template-generator/templates/zod/create-schema-template.js.map +1 -1
  289. package/dist/esm/utils/cli/utils/template-generator/templates/zod/update-schema-template.js +1 -1
  290. package/dist/esm/utils/cli/utils/template-generator/templates/zod/update-schema-template.js.map +1 -1
  291. package/dist/esm/utils/cli/utils/template-generators.js +1 -1
  292. package/dist/esm/utils/cli/utils/template-generators.js.map +1 -1
  293. package/dist/esm/utils/cli/utils/watermark-stamper.js +11 -5
  294. package/dist/esm/utils/cli/utils/watermark-stamper.js.map +1 -1
  295. package/dist/esm/utils/define-config.js +2 -0
  296. package/dist/esm/utils/define-config.js.map +1 -0
  297. package/dist/esm/utils/dotenv.helpers.js +2 -1
  298. package/dist/esm/utils/dotenv.helpers.js.map +1 -1
  299. package/dist/esm/utils/dynamic-loader.js +8 -8
  300. package/dist/esm/utils/dynamic-loader.js.map +1 -1
  301. package/dist/esm/utils/features/port-and-host-allocator.js +28 -4
  302. package/dist/esm/utils/features/port-and-host-allocator.js.map +1 -1
  303. package/dist/esm/utils/helpers/arkos-config.helpers.js +38 -0
  304. package/dist/esm/utils/helpers/arkos-config.helpers.js.map +1 -0
  305. package/dist/esm/utils/helpers/dynamic-loader.helpers.js +134 -46
  306. package/dist/esm/utils/helpers/dynamic-loader.helpers.js.map +1 -1
  307. package/dist/esm/utils/helpers/fs.helpers.js +1 -4
  308. package/dist/esm/utils/helpers/fs.helpers.js.map +1 -1
  309. package/dist/esm/utils/helpers/routers.helpers.js +53 -4
  310. package/dist/esm/utils/helpers/routers.helpers.js.map +1 -1
  311. package/dist/esm/utils/prisma/prisma-json-schema-generator.js +20 -31
  312. package/dist/esm/utils/prisma/prisma-json-schema-generator.js.map +1 -1
  313. package/dist/esm/utils/prisma/prisma-schema-parser.js +3 -4
  314. package/dist/esm/utils/prisma/prisma-schema-parser.js.map +1 -1
  315. package/dist/esm/utils/sheu.js.map +1 -1
  316. package/dist/esm/utils/validate-schema.js +1 -1
  317. package/dist/esm/utils/validate-schema.js.map +1 -1
  318. package/dist/types/app.d.ts +2 -2
  319. package/dist/types/exports/index.d.ts +3 -2
  320. package/dist/types/exports/services/index.d.ts +2 -1
  321. package/dist/types/modules/auth/auth.controller.d.ts +2 -2
  322. package/dist/types/modules/auth/auth.router.d.ts +2 -3
  323. package/dist/types/modules/auth/auth.service.d.ts +6 -0
  324. package/dist/types/modules/auth/utils/services/auth-action.service.d.ts +1 -0
  325. package/dist/types/modules/base/base.middlewares.d.ts +1 -1
  326. package/dist/types/modules/base/base.router.d.ts +2 -2
  327. package/dist/types/modules/base/base.service.d.ts +2 -1
  328. package/dist/types/modules/base/utils/helpers/base.router.helpers.d.ts +2 -4
  329. package/dist/types/modules/debugger/debugger.service.d.ts +1 -1
  330. package/dist/types/modules/email/email.service.d.ts +1 -1
  331. package/dist/types/modules/error-handler/utils/app-error.d.ts +1 -1
  332. package/dist/types/modules/file-upload/file-upload.router.d.ts +2 -2
  333. package/dist/types/modules/file-upload/file-upload.service.d.ts +24 -2
  334. package/dist/types/modules/file-upload/utils/helpers/file-extensions.d.ts +3 -0
  335. package/dist/types/modules/file-upload/utils/helpers/file-upload.helpers.d.ts +2 -1
  336. package/dist/types/modules/swagger/swagger.router.d.ts +1 -1
  337. package/dist/types/modules/swagger/utils/helpers/class-validator-to-json-schema.d.ts +3 -0
  338. package/dist/types/modules/swagger/utils/helpers/get-authentication-json-schema-paths.d.ts +2 -2
  339. package/dist/types/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.d.ts +3 -0
  340. package/dist/types/modules/swagger/utils/helpers/get-swagger-default-configs.d.ts +2 -45
  341. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.d.ts +1 -1
  342. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.d.ts +1 -1
  343. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.d.ts +1 -1
  344. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.d.ts +1 -1
  345. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes-paths.d.ts +1 -1
  346. package/dist/types/modules/swagger/utils/helpers/missing-json-schemas-generator.d.ts +1 -1
  347. package/dist/types/modules/swagger/utils/helpers/openapi-schema-converter.d.ts +17 -0
  348. package/dist/types/modules/swagger/utils/helpers/swagger.router.helpers.d.ts +3 -3
  349. package/dist/types/server.d.ts +4 -6
  350. package/dist/types/types/arkos-config.d.ts +4 -181
  351. package/dist/types/types/auth.d.ts +1 -1
  352. package/dist/types/types/index.d.ts +5 -4
  353. package/dist/types/types/new-arkos-config.d.ts +167 -0
  354. package/dist/types/types/router-config.d.ts +16 -23
  355. package/dist/types/utils/arkos-router/types/index.d.ts +40 -10
  356. package/dist/types/utils/arkos-router/types/openapi-config.d.ts +35 -0
  357. package/dist/types/utils/arkos-router/types/upload-config.d.ts +21 -0
  358. package/dist/types/utils/arkos-router/utils/helpers/upload-manager.d.ts +13 -0
  359. package/dist/types/utils/cli/export-auth-action.d.ts +4 -0
  360. package/dist/types/utils/cli/generate.d.ts +2 -1
  361. package/dist/types/utils/cli/utils/runtime-cli-commander.d.ts +11 -0
  362. package/dist/types/utils/cli/utils/watermark-stamper.d.ts +3 -3
  363. package/dist/types/utils/define-config.d.ts +0 -0
  364. package/dist/types/utils/features/port-and-host-allocator.d.ts +4 -2
  365. package/dist/types/utils/helpers/arkos-config.helpers.d.ts +7 -0
  366. package/dist/types/utils/helpers/dynamic-loader.helpers.d.ts +1 -0
  367. package/dist/types/utils/helpers/routers.helpers.d.ts +9 -0
  368. package/dist/types/utils/prisma/prisma-json-schema-generator.d.ts +1 -1
  369. package/dist/types/utils/validate-schema.d.ts +1 -1
  370. package/package.json +3 -2
  371. package/dist/cjs/utils/cli/utils/template-generator/templates/controller-template.js.map +0 -1
  372. package/dist/esm/utils/cli/utils/template-generator/templates/controller-template.js.map +0 -1
  373. /package/dist/types/utils/cli/utils/template-generator/templates/{controller-template.d.ts → generate-controller-template.d.ts} +0 -0
@@ -0,0 +1,413 @@
1
+ import { getModuleComponents } from "../../../../utils/dynamic-loader.js";
2
+ import { isEndpointDisabled } from "../../../base/utils/helpers/base.router.helpers.js";
3
+ import deepmerge from "../../../../utils/helpers/deepmerge.helper.js";
4
+ import { fileUploadDefaultRestrictions } from "../../../file-upload/file-upload.service.js";
5
+ export default function getFileUploadJsonSchemaPaths(arkosConfig) {
6
+ const paths = {};
7
+ if (!arkosConfig.fileUpload)
8
+ return paths;
9
+ const FileUploadModuleComponents = getModuleComponents("file-upload");
10
+ const routerConfig = FileUploadModuleComponents?.router
11
+ ?.config;
12
+ const authConfigs = FileUploadModuleComponents?.authConfigs;
13
+ if (routerConfig?.disable === true)
14
+ return paths;
15
+ const isFileUploadEndpointDisabled = (endpoint) => {
16
+ return isEndpointDisabled(routerConfig, endpoint);
17
+ };
18
+ const basePathname = arkosConfig.fileUpload?.baseRoute || "/api/uploads/";
19
+ const baseUploadDir = arkosConfig.fileUpload?.baseUploadDir || "uploads";
20
+ const restrictions = deepmerge(fileUploadDefaultRestrictions, arkosConfig.fileUpload?.restrictions || {});
21
+ const formatBytes = (bytes) => {
22
+ if (bytes === 0)
23
+ return "0 Bytes";
24
+ const k = 1024;
25
+ const sizes = ["Bytes", "KB", "MB", "GB"];
26
+ const i = Math.floor(Math.log(bytes) / Math.log(k));
27
+ return Math.round((bytes / Math.pow(k, i)) * 100) / 100 + " " + sizes[i];
28
+ };
29
+ const getFileTypeDescription = (fileType) => {
30
+ const restriction = restrictions[fileType];
31
+ if (!restriction)
32
+ return "";
33
+ const maxSize = formatBytes(restriction.maxSize);
34
+ const maxCount = restriction.maxCount;
35
+ const formats = restriction.supportedFilesRegex
36
+ ?.toString()
37
+ .replace(/\|/g, ", ")
38
+ .replace(/\//g, "")
39
+ .replace(/\.\*/g, "any format");
40
+ return `Maximum file size: ${maxSize}. Maximum files per upload: ${maxCount}. Supported formats: ${formats}`;
41
+ };
42
+ const shouldIncludeSecurity = (action) => {
43
+ const authControl = authConfigs?.authenticationControl;
44
+ if (!authControl)
45
+ return false;
46
+ if (typeof authControl === "boolean")
47
+ return authControl;
48
+ if (typeof authControl === "object") {
49
+ return authControl[action] === true;
50
+ }
51
+ return false;
52
+ };
53
+ if (!isFileUploadEndpointDisabled("findFile")) {
54
+ const cleanBasePath = basePathname.endsWith("/")
55
+ ? basePathname.slice(0, -1)
56
+ : basePathname;
57
+ paths[`${cleanBasePath}/{filePath*}`] = {
58
+ get: {
59
+ tags: ["File Upload"],
60
+ summary: "Retrieve uploaded file",
61
+ description: `Serves static files from the upload directory (${baseUploadDir}). This endpoint uses wildcard path matching to serve files from any subdirectory.`,
62
+ operationId: "findFile",
63
+ ...(shouldIncludeSecurity("View") && {
64
+ security: [{ BearerAuth: [] }],
65
+ }),
66
+ parameters: [
67
+ {
68
+ name: "filePath",
69
+ in: "path",
70
+ required: true,
71
+ schema: { type: "string" },
72
+ description: "Path to the file including file type directory (e.g., images/photo.jpg, videos/clip.mp4)",
73
+ },
74
+ ],
75
+ responses: {
76
+ "200": {
77
+ description: "File retrieved successfully",
78
+ content: {
79
+ "application/octet-stream": {
80
+ schema: {
81
+ type: "string",
82
+ format: "binary",
83
+ },
84
+ },
85
+ },
86
+ },
87
+ "404": {
88
+ description: "File not found",
89
+ },
90
+ ...(shouldIncludeSecurity("View") && {
91
+ "401": { description: "Authentication required" },
92
+ "403": { description: "Insufficient permissions to view files" },
93
+ }),
94
+ },
95
+ },
96
+ };
97
+ }
98
+ if (!isFileUploadEndpointDisabled("uploadFile")) {
99
+ const cleanBasePath = basePathname.endsWith("/")
100
+ ? basePathname.slice(0, -1)
101
+ : basePathname;
102
+ paths[`${cleanBasePath}/{fileType}`] = {
103
+ post: {
104
+ tags: ["File Upload"],
105
+ summary: "Upload file(s)",
106
+ description: "Upload one or multiple files. Supports image processing options for image uploads.",
107
+ operationId: "uploadFile",
108
+ ...(shouldIncludeSecurity("Create") && {
109
+ security: [{ BearerAuth: [] }],
110
+ }),
111
+ parameters: [
112
+ {
113
+ name: "fileType",
114
+ in: "path",
115
+ required: true,
116
+ schema: {
117
+ type: "string",
118
+ enum: ["images", "videos", "documents", "files"],
119
+ },
120
+ description: "Type of file being uploaded",
121
+ },
122
+ {
123
+ name: "format",
124
+ in: "query",
125
+ required: false,
126
+ schema: {
127
+ type: "string",
128
+ enum: ["jpeg", "jpg", "png", "webp", "gif", "avif"],
129
+ },
130
+ description: "Image format for conversion (only applicable for fileType=images)",
131
+ },
132
+ {
133
+ name: "width",
134
+ in: "query",
135
+ required: false,
136
+ schema: { type: "integer", minimum: 1 },
137
+ description: "Target width for image resize (only applicable for fileType=images)",
138
+ },
139
+ {
140
+ name: "height",
141
+ in: "query",
142
+ required: false,
143
+ schema: { type: "integer", minimum: 1 },
144
+ description: "Target height for image resize (only applicable for fileType=images)",
145
+ },
146
+ {
147
+ name: "resizeTo",
148
+ in: "query",
149
+ required: false,
150
+ schema: {
151
+ type: "string",
152
+ enum: ["cover", "contain", "fill", "inside", "outside"],
153
+ },
154
+ description: "Resize strategy (only applicable for fileType=images)",
155
+ },
156
+ ],
157
+ requestBody: {
158
+ required: true,
159
+ content: {
160
+ "multipart/form-data": {
161
+ schema: {
162
+ type: "object",
163
+ properties: {
164
+ images: {
165
+ type: "array",
166
+ items: { type: "string", format: "binary" },
167
+ description: getFileTypeDescription("images"),
168
+ },
169
+ videos: {
170
+ type: "array",
171
+ items: { type: "string", format: "binary" },
172
+ description: getFileTypeDescription("videos"),
173
+ },
174
+ documents: {
175
+ type: "array",
176
+ items: { type: "string", format: "binary" },
177
+ description: getFileTypeDescription("documents"),
178
+ },
179
+ files: {
180
+ type: "array",
181
+ items: { type: "string", format: "binary" },
182
+ description: getFileTypeDescription("files"),
183
+ },
184
+ },
185
+ },
186
+ },
187
+ },
188
+ },
189
+ responses: {
190
+ "200": {
191
+ description: "File(s) uploaded successfully",
192
+ content: {
193
+ "application/json": {
194
+ schema: {
195
+ type: "object",
196
+ properties: {
197
+ success: { type: "boolean", example: true },
198
+ data: {
199
+ oneOf: [
200
+ { type: "string", description: "URL of uploaded file" },
201
+ {
202
+ type: "array",
203
+ items: { type: "string" },
204
+ description: "URLs of uploaded files",
205
+ },
206
+ ],
207
+ },
208
+ message: { type: "string" },
209
+ },
210
+ },
211
+ },
212
+ },
213
+ },
214
+ "400": {
215
+ description: "Invalid file type, size limit exceeded, or no file uploaded",
216
+ },
217
+ ...(shouldIncludeSecurity("Create") && {
218
+ "401": { description: "Authentication required" },
219
+ "403": { description: "Insufficient permissions to upload files" },
220
+ }),
221
+ },
222
+ },
223
+ };
224
+ }
225
+ if (!isFileUploadEndpointDisabled("updateFile")) {
226
+ const cleanBasePath = basePathname.endsWith("/")
227
+ ? basePathname.slice(0, -1)
228
+ : basePathname;
229
+ paths[`${cleanBasePath}/{fileType}/{fileName}`] = {
230
+ ...(paths[`${cleanBasePath}/{fileType}/{fileName}`] || {}),
231
+ patch: {
232
+ tags: ["File Upload"],
233
+ summary: "Update existing file",
234
+ description: "Replace an existing file with a new one. Deletes the old file and uploads the new one.",
235
+ operationId: "updateFile",
236
+ ...(shouldIncludeSecurity("Update") && {
237
+ security: [{ BearerAuth: [] }],
238
+ }),
239
+ parameters: [
240
+ {
241
+ name: "fileType",
242
+ in: "path",
243
+ required: true,
244
+ schema: {
245
+ type: "string",
246
+ enum: ["images", "videos", "documents", "files"],
247
+ },
248
+ description: "Type of file being updated",
249
+ },
250
+ {
251
+ name: "fileName",
252
+ in: "path",
253
+ required: true,
254
+ schema: { type: "string" },
255
+ description: "Name of the file to update",
256
+ },
257
+ {
258
+ name: "format",
259
+ in: "query",
260
+ required: false,
261
+ schema: {
262
+ type: "string",
263
+ enum: ["jpeg", "jpg", "png", "webp", "gif", "avif"],
264
+ },
265
+ description: "Image format for conversion (only applicable for fileType=images)",
266
+ },
267
+ {
268
+ name: "width",
269
+ in: "query",
270
+ required: false,
271
+ schema: { type: "integer", minimum: 1 },
272
+ description: "Target width for image resize (only applicable for fileType=images)",
273
+ },
274
+ {
275
+ name: "height",
276
+ in: "query",
277
+ required: false,
278
+ schema: { type: "integer", minimum: 1 },
279
+ description: "Target height for image resize (only applicable for fileType=images)",
280
+ },
281
+ {
282
+ name: "resizeTo",
283
+ in: "query",
284
+ required: false,
285
+ schema: {
286
+ type: "string",
287
+ enum: ["cover", "contain", "fill", "inside", "outside"],
288
+ },
289
+ description: "Resize strategy (only applicable for fileType=images)",
290
+ },
291
+ ],
292
+ requestBody: {
293
+ required: true,
294
+ content: {
295
+ "multipart/form-data": {
296
+ schema: {
297
+ type: "object",
298
+ properties: {
299
+ images: {
300
+ type: "array",
301
+ items: { type: "string", format: "binary" },
302
+ description: getFileTypeDescription("images"),
303
+ },
304
+ videos: {
305
+ type: "array",
306
+ items: { type: "string", format: "binary" },
307
+ description: getFileTypeDescription("videos"),
308
+ },
309
+ documents: {
310
+ type: "array",
311
+ items: { type: "string", format: "binary" },
312
+ description: getFileTypeDescription("documents"),
313
+ },
314
+ files: {
315
+ type: "array",
316
+ items: { type: "string", format: "binary" },
317
+ description: getFileTypeDescription("files"),
318
+ },
319
+ },
320
+ },
321
+ },
322
+ },
323
+ },
324
+ responses: {
325
+ "200": {
326
+ description: "File updated successfully",
327
+ content: {
328
+ "application/json": {
329
+ schema: {
330
+ type: "object",
331
+ properties: {
332
+ success: { type: "boolean", example: true },
333
+ data: {
334
+ oneOf: [
335
+ { type: "string", description: "URL of updated file" },
336
+ {
337
+ type: "array",
338
+ items: { type: "string" },
339
+ description: "URLs of updated files",
340
+ },
341
+ ],
342
+ },
343
+ message: { type: "string" },
344
+ },
345
+ },
346
+ },
347
+ },
348
+ },
349
+ "400": {
350
+ description: "Invalid file type, size limit exceeded, or no file uploaded",
351
+ },
352
+ "404": {
353
+ description: "Original file not found",
354
+ },
355
+ ...(shouldIncludeSecurity("Update") && {
356
+ "401": { description: "Authentication required" },
357
+ "403": { description: "Insufficient permissions to update files" },
358
+ }),
359
+ },
360
+ },
361
+ };
362
+ }
363
+ if (!isFileUploadEndpointDisabled("deleteFile")) {
364
+ const cleanBasePath = basePathname.endsWith("/")
365
+ ? basePathname.slice(0, -1)
366
+ : basePathname;
367
+ if (!paths[`${cleanBasePath}/{fileType}/{fileName}`]) {
368
+ paths[`${cleanBasePath}/{fileType}/{fileName}`] = {};
369
+ }
370
+ paths[`${cleanBasePath}/{fileType}/{fileName}`].delete = {
371
+ tags: ["File Upload"],
372
+ summary: "Delete file",
373
+ description: "Delete an uploaded file from the server",
374
+ operationId: "deleteFile",
375
+ ...(shouldIncludeSecurity("Delete") && {
376
+ security: [{ BearerAuth: [] }],
377
+ }),
378
+ parameters: [
379
+ {
380
+ name: "fileType",
381
+ in: "path",
382
+ required: true,
383
+ schema: {
384
+ type: "string",
385
+ enum: ["images", "videos", "documents", "files"],
386
+ },
387
+ description: "Type of file being deleted",
388
+ },
389
+ {
390
+ name: "fileName",
391
+ in: "path",
392
+ required: true,
393
+ schema: { type: "string" },
394
+ description: "Name of the file to delete",
395
+ },
396
+ ],
397
+ responses: {
398
+ "204": {
399
+ description: "File deleted successfully",
400
+ },
401
+ "404": {
402
+ description: "File not found",
403
+ },
404
+ ...(shouldIncludeSecurity("Delete") && {
405
+ "401": { description: "Authentication required" },
406
+ "403": { description: "Insufficient permissions to delete files" },
407
+ }),
408
+ },
409
+ };
410
+ }
411
+ return paths;
412
+ }
413
+ //# sourceMappingURL=get-file-upload-json-schema-paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-file-upload-json-schema-paths.js","sourceRoot":"","sources":["../../../../../../src/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.ts"],"names":[],"mappings":"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","sourcesContent":["import { OpenAPIV3 } from \"openapi-types\";\nimport { ArkosConfig, RouterConfig } from \"../../../../exports\";\nimport { getModuleComponents } from \"../../../../utils/dynamic-loader\";\nimport { isEndpointDisabled } from \"../../../base/utils/helpers/base.router.helpers\";\nimport deepmerge from \"../../../../utils/helpers/deepmerge.helper\";\nimport { fileUploadDefaultRestrictions } from \"../../../file-upload/file-upload.service\";\n\nexport default function getFileUploadJsonSchemaPaths(arkosConfig: ArkosConfig) {\n const paths: OpenAPIV3.PathsObject = {};\n\n if (!arkosConfig.fileUpload) return paths;\n\n const FileUploadModuleComponents = getModuleComponents(\"file-upload\");\n const routerConfig = FileUploadModuleComponents?.router\n ?.config as RouterConfig<\"file-upload\">;\n const authConfigs = FileUploadModuleComponents?.authConfigs;\n\n if (routerConfig?.disable === true) return paths;\n\n const isFileUploadEndpointDisabled = (endpoint: string): boolean => {\n return isEndpointDisabled(routerConfig, endpoint as any);\n };\n\n const basePathname = arkosConfig.fileUpload?.baseRoute || \"/api/uploads/\";\n const baseUploadDir = arkosConfig.fileUpload?.baseUploadDir || \"uploads\";\n\n const restrictions = deepmerge(\n fileUploadDefaultRestrictions,\n arkosConfig.fileUpload?.restrictions || {}\n );\n\n const formatBytes = (bytes: number): string => {\n if (bytes === 0) return \"0 Bytes\";\n const k = 1024;\n const sizes = [\"Bytes\", \"KB\", \"MB\", \"GB\"];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return Math.round((bytes / Math.pow(k, i)) * 100) / 100 + \" \" + sizes[i];\n };\n\n const getFileTypeDescription = (fileType: string): string => {\n const restriction = restrictions[fileType as keyof typeof restrictions];\n if (!restriction) return \"\";\n\n const maxSize = formatBytes(restriction.maxSize!);\n const maxCount = restriction.maxCount;\n const formats = restriction.supportedFilesRegex\n ?.toString()\n .replace(/\\|/g, \", \")\n .replace(/\\//g, \"\")\n .replace(/\\.\\*/g, \"any format\");\n\n return `Maximum file size: ${maxSize}. Maximum files per upload: ${maxCount}. Supported formats: ${formats}`;\n };\n\n const shouldIncludeSecurity = (\n action: \"View\" | \"Create\" | \"Update\" | \"Delete\"\n ): boolean => {\n const authControl = authConfigs?.authenticationControl;\n if (!authControl) return false;\n\n if (typeof authControl === \"boolean\") return authControl;\n if (typeof authControl === \"object\") {\n return authControl[action] === true;\n }\n\n return false;\n };\n\n if (!isFileUploadEndpointDisabled(\"findFile\")) {\n const cleanBasePath = basePathname.endsWith(\"/\")\n ? basePathname.slice(0, -1)\n : basePathname;\n\n paths[`${cleanBasePath}/{filePath*}`] = {\n get: {\n tags: [\"File Upload\"],\n summary: \"Retrieve uploaded file\",\n description: `Serves static files from the upload directory (${baseUploadDir}). This endpoint uses wildcard path matching to serve files from any subdirectory.`,\n operationId: \"findFile\",\n ...(shouldIncludeSecurity(\"View\") && {\n security: [{ BearerAuth: [] }],\n }),\n parameters: [\n {\n name: \"filePath\",\n in: \"path\",\n required: true,\n schema: { type: \"string\" },\n description:\n \"Path to the file including file type directory (e.g., images/photo.jpg, videos/clip.mp4)\",\n },\n ],\n responses: {\n \"200\": {\n description: \"File retrieved successfully\",\n content: {\n \"application/octet-stream\": {\n schema: {\n type: \"string\",\n format: \"binary\",\n },\n },\n },\n },\n \"404\": {\n description: \"File not found\",\n },\n ...(shouldIncludeSecurity(\"View\") && {\n \"401\": { description: \"Authentication required\" },\n \"403\": { description: \"Insufficient permissions to view files\" },\n }),\n },\n },\n };\n }\n\n if (!isFileUploadEndpointDisabled(\"uploadFile\")) {\n const cleanBasePath = basePathname.endsWith(\"/\")\n ? basePathname.slice(0, -1)\n : basePathname;\n\n paths[`${cleanBasePath}/{fileType}`] = {\n post: {\n tags: [\"File Upload\"],\n summary: \"Upload file(s)\",\n description:\n \"Upload one or multiple files. Supports image processing options for image uploads.\",\n operationId: \"uploadFile\",\n ...(shouldIncludeSecurity(\"Create\") && {\n security: [{ BearerAuth: [] }],\n }),\n parameters: [\n {\n name: \"fileType\",\n in: \"path\",\n required: true,\n schema: {\n type: \"string\",\n enum: [\"images\", \"videos\", \"documents\", \"files\"],\n },\n description: \"Type of file being uploaded\",\n },\n {\n name: \"format\",\n in: \"query\",\n required: false,\n schema: {\n type: \"string\",\n enum: [\"jpeg\", \"jpg\", \"png\", \"webp\", \"gif\", \"avif\"],\n },\n description:\n \"Image format for conversion (only applicable for fileType=images)\",\n },\n {\n name: \"width\",\n in: \"query\",\n required: false,\n schema: { type: \"integer\", minimum: 1 },\n description:\n \"Target width for image resize (only applicable for fileType=images)\",\n },\n {\n name: \"height\",\n in: \"query\",\n required: false,\n schema: { type: \"integer\", minimum: 1 },\n description:\n \"Target height for image resize (only applicable for fileType=images)\",\n },\n {\n name: \"resizeTo\",\n in: \"query\",\n required: false,\n schema: {\n type: \"string\",\n enum: [\"cover\", \"contain\", \"fill\", \"inside\", \"outside\"],\n },\n description:\n \"Resize strategy (only applicable for fileType=images)\",\n },\n ],\n requestBody: {\n required: true,\n content: {\n \"multipart/form-data\": {\n schema: {\n type: \"object\",\n properties: {\n images: {\n type: \"array\",\n items: { type: \"string\", format: \"binary\" },\n description: getFileTypeDescription(\"images\"),\n },\n videos: {\n type: \"array\",\n items: { type: \"string\", format: \"binary\" },\n description: getFileTypeDescription(\"videos\"),\n },\n documents: {\n type: \"array\",\n items: { type: \"string\", format: \"binary\" },\n description: getFileTypeDescription(\"documents\"),\n },\n files: {\n type: \"array\",\n items: { type: \"string\", format: \"binary\" },\n description: getFileTypeDescription(\"files\"),\n },\n },\n },\n },\n },\n },\n responses: {\n \"200\": {\n description: \"File(s) uploaded successfully\",\n content: {\n \"application/json\": {\n schema: {\n type: \"object\",\n properties: {\n success: { type: \"boolean\", example: true },\n data: {\n oneOf: [\n { type: \"string\", description: \"URL of uploaded file\" },\n {\n type: \"array\",\n items: { type: \"string\" },\n description: \"URLs of uploaded files\",\n },\n ],\n },\n message: { type: \"string\" },\n },\n },\n },\n },\n },\n \"400\": {\n description:\n \"Invalid file type, size limit exceeded, or no file uploaded\",\n },\n ...(shouldIncludeSecurity(\"Create\") && {\n \"401\": { description: \"Authentication required\" },\n \"403\": { description: \"Insufficient permissions to upload files\" },\n }),\n },\n },\n };\n }\n\n if (!isFileUploadEndpointDisabled(\"updateFile\")) {\n const cleanBasePath = basePathname.endsWith(\"/\")\n ? basePathname.slice(0, -1)\n : basePathname;\n\n paths[`${cleanBasePath}/{fileType}/{fileName}`] = {\n ...(paths[`${cleanBasePath}/{fileType}/{fileName}`] || {}),\n patch: {\n tags: [\"File Upload\"],\n summary: \"Update existing file\",\n description:\n \"Replace an existing file with a new one. Deletes the old file and uploads the new one.\",\n operationId: \"updateFile\",\n ...(shouldIncludeSecurity(\"Update\") && {\n security: [{ BearerAuth: [] }],\n }),\n parameters: [\n {\n name: \"fileType\",\n in: \"path\",\n required: true,\n schema: {\n type: \"string\",\n enum: [\"images\", \"videos\", \"documents\", \"files\"],\n },\n description: \"Type of file being updated\",\n },\n {\n name: \"fileName\",\n in: \"path\",\n required: true,\n schema: { type: \"string\" },\n description: \"Name of the file to update\",\n },\n {\n name: \"format\",\n in: \"query\",\n required: false,\n schema: {\n type: \"string\",\n enum: [\"jpeg\", \"jpg\", \"png\", \"webp\", \"gif\", \"avif\"],\n },\n description:\n \"Image format for conversion (only applicable for fileType=images)\",\n },\n {\n name: \"width\",\n in: \"query\",\n required: false,\n schema: { type: \"integer\", minimum: 1 },\n description:\n \"Target width for image resize (only applicable for fileType=images)\",\n },\n {\n name: \"height\",\n in: \"query\",\n required: false,\n schema: { type: \"integer\", minimum: 1 },\n description:\n \"Target height for image resize (only applicable for fileType=images)\",\n },\n {\n name: \"resizeTo\",\n in: \"query\",\n required: false,\n schema: {\n type: \"string\",\n enum: [\"cover\", \"contain\", \"fill\", \"inside\", \"outside\"],\n },\n description:\n \"Resize strategy (only applicable for fileType=images)\",\n },\n ],\n requestBody: {\n required: true,\n content: {\n \"multipart/form-data\": {\n schema: {\n type: \"object\",\n properties: {\n images: {\n type: \"array\",\n items: { type: \"string\", format: \"binary\" },\n description: getFileTypeDescription(\"images\"),\n },\n videos: {\n type: \"array\",\n items: { type: \"string\", format: \"binary\" },\n description: getFileTypeDescription(\"videos\"),\n },\n documents: {\n type: \"array\",\n items: { type: \"string\", format: \"binary\" },\n description: getFileTypeDescription(\"documents\"),\n },\n files: {\n type: \"array\",\n items: { type: \"string\", format: \"binary\" },\n description: getFileTypeDescription(\"files\"),\n },\n },\n },\n },\n },\n },\n responses: {\n \"200\": {\n description: \"File updated successfully\",\n content: {\n \"application/json\": {\n schema: {\n type: \"object\",\n properties: {\n success: { type: \"boolean\", example: true },\n data: {\n oneOf: [\n { type: \"string\", description: \"URL of updated file\" },\n {\n type: \"array\",\n items: { type: \"string\" },\n description: \"URLs of updated files\",\n },\n ],\n },\n message: { type: \"string\" },\n },\n },\n },\n },\n },\n \"400\": {\n description:\n \"Invalid file type, size limit exceeded, or no file uploaded\",\n },\n \"404\": {\n description: \"Original file not found\",\n },\n ...(shouldIncludeSecurity(\"Update\") && {\n \"401\": { description: \"Authentication required\" },\n \"403\": { description: \"Insufficient permissions to update files\" },\n }),\n },\n },\n };\n }\n\n if (!isFileUploadEndpointDisabled(\"deleteFile\")) {\n const cleanBasePath = basePathname.endsWith(\"/\")\n ? basePathname.slice(0, -1)\n : basePathname;\n\n if (!paths[`${cleanBasePath}/{fileType}/{fileName}`]) {\n paths[`${cleanBasePath}/{fileType}/{fileName}`] = {};\n }\n\n paths[`${cleanBasePath}/{fileType}/{fileName}`]!.delete = {\n tags: [\"File Upload\"],\n summary: \"Delete file\",\n description: \"Delete an uploaded file from the server\",\n operationId: \"deleteFile\",\n ...(shouldIncludeSecurity(\"Delete\") && {\n security: [{ BearerAuth: [] }],\n }),\n parameters: [\n {\n name: \"fileType\",\n in: \"path\",\n required: true,\n schema: {\n type: \"string\",\n enum: [\"images\", \"videos\", \"documents\", \"files\"],\n },\n description: \"Type of file being deleted\",\n },\n {\n name: \"fileName\",\n in: \"path\",\n required: true,\n schema: { type: \"string\" },\n description: \"Name of the file to delete\",\n },\n ],\n responses: {\n \"204\": {\n description: \"File deleted successfully\",\n },\n \"404\": {\n description: \"File not found\",\n },\n ...(shouldIncludeSecurity(\"Delete\") && {\n \"401\": { description: \"Authentication required\" },\n \"403\": { description: \"Insufficient permissions to delete files\" },\n }),\n },\n };\n }\n\n return paths;\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  import { capitalize } from "../../../../utils/helpers/text.helpers.js";
2
2
  import portAndHostAllocator from "../../../../utils/features/port-and-host-allocator.js";
3
- export default async function getSwaggerDefaultConfig(defaultModelsPaths, defaultJsonSchemas) {
4
- const portAndHost = await portAndHostAllocator.getHostAndAvailablePort({});
3
+ export default function getSwaggerDefaultConfig(defaultModelsPaths, defaultJsonSchemas) {
4
+ const portAndHost = portAndHostAllocator;
5
5
  return {
6
6
  endpoint: "/docs",
7
7
  mode: "prisma",
@@ -16,7 +16,7 @@ export default async function getSwaggerDefaultConfig(defaultModelsPaths, defaul
16
16
  },
17
17
  servers: [
18
18
  {
19
- url: `http://${portAndHost.host}:${portAndHost.port}`,
19
+ url: `http://${["0.0.0.0", "localhost", "127.0.0.1"].includes(portAndHost.host) ? "localhost" : portAndHost.host}:${portAndHost.port}`,
20
20
  description: `Local ${capitalize(process.env.NODE_ENV || "development")} Server`,
21
21
  },
22
22
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"get-swagger-default-configs.js","sourceRoot":"","sources":["../../../../../../src/modules/swagger/utils/helpers/get-swagger-default-configs.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AACpE,OAAO,oBAAoB,MAAM,oDAAoD,CAAC;AAEtF,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,uBAAuB,CACnD,kBAAuC,EACvC,kBAAiD;IAEjD,MAAM,WAAW,GAAG,MAAM,oBAAoB,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;IAE3E,OAAO;QACL,QAAQ,EAAE,OAAO;QACjB,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,KAAK;QACb,OAAO,EAAE;YACP,UAAU,EAAE;gBACV,OAAO,EAAE,OAAO;gBAChB,IAAI,EAAE;oBACJ,KAAK,EAAE,qBAAqB;oBAC5B,OAAO,EAAE,OAAO;oBAChB,WAAW,EACT,sFAAsF;iBACzF;gBACD,OAAO,EAAE;oBACP;wBACE,GAAG,EAAE,UAAU,WAAW,CAAC,IAAI,IAAI,WAAW,CAAC,IAAI,EAAE;wBACrD,WAAW,EAAE,SAAS,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,aAAa,CAAC,SAAS;qBACjF;iBACF;gBACD,KAAK,EAAE,kBAAkB;gBACzB,UAAU,EAAE;oBACV,OAAO,EAAE,kBAAkB,IAAI,EAAE;oBACjC,eAAe,EAAE;wBACf,UAAU,EAAE;4BACV,IAAI,EAAE,MAAM;4BACZ,MAAM,EAAE,QAAQ;4BAChB,YAAY,EAAE,KAAK;yBACpB;qBACF;iBACF;gBACD,QAAQ,EAAE,EAAE;aACb;YACD,IAAI,EAAE;gBACJ,gCAAgC;gBAChC,mCAAmC;aACpC;YACD,WAAW,EAAE,IAAI;YACjB,eAAe,EAAE,IAAI;YACrB,oBAAoB,EAAE,KAAK;SAC5B;QACD,+BAA+B,EAAE;YAC/B,KAAK,EAAE,WAAW;YAClB,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,QAAQ;YAChB,WAAW,EAAE,IAAI;YACjB,kBAAkB,EAAE,KAAK;YACzB,QAAQ,EAAE;gBACR,KAAK,EAAE,4BAA4B;gBACnC,WAAW,EAAE,yCAAyC;aACvD;YACD,SAAS,EAAE,4BAA4B;SACxC;KACwB,CAAC;AAC9B,CAAC","sourcesContent":["import { OpenAPIV3 } from \"openapi-types\";\nimport { ArkosConfig } from \"../../../../exports\";\nimport { capitalize } from \"../../../../utils/helpers/text.helpers\";\nimport portAndHostAllocator from \"../../../../utils/features/port-and-host-allocator\";\n\nexport default async function getSwaggerDefaultConfig(\n defaultModelsPaths: Record<string, any>,\n defaultJsonSchemas: OpenAPIV3.PathsObject<{}, {}>\n) {\n const portAndHost = await portAndHostAllocator.getHostAndAvailablePort({});\n\n return {\n endpoint: \"/docs\",\n mode: \"prisma\",\n strict: false,\n options: {\n definition: {\n openapi: \"3.0.0\",\n info: {\n title: \"Powered By Arkos.js\",\n version: \"1.0.0\",\n description:\n \"This API was automatically generated by Arkos.js, read more about at www.arkosjs.com\",\n },\n servers: [\n {\n url: `http://${portAndHost.host}:${portAndHost.port}`,\n description: `Local ${capitalize(process.env.NODE_ENV || \"development\")} Server`,\n },\n ],\n paths: defaultModelsPaths,\n components: {\n schemas: defaultJsonSchemas || {},\n securitySchemes: {\n BearerAuth: {\n type: \"http\",\n scheme: \"bearer\",\n bearerFormat: \"JWT\",\n },\n },\n },\n security: [],\n },\n apis: [\n \"./src/routers/*.router.{ts,js}\",\n \"./src/modules/**/*.router.{ts,js}\",\n ],\n deepLinking: true,\n tryItOutEnabled: true,\n persistAuthorization: false,\n },\n scalarApiReferenceConfiguration: {\n theme: \"deepSpace\",\n darkMode: true,\n layout: \"modern\",\n showSidebar: true,\n hideDownloadButton: false,\n metaData: {\n title: \"Arkos.js API Documentation\",\n description: \"API documentation generated by Arkos.js\",\n },\n pageTitle: \"Arkos.js API Documentation\",\n },\n } as ArkosConfig[\"swagger\"];\n}\n"]}
1
+ {"version":3,"file":"get-swagger-default-configs.js","sourceRoot":"","sources":["../../../../../../src/modules/swagger/utils/helpers/get-swagger-default-configs.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AACpE,OAAO,oBAAoB,MAAM,oDAAoD,CAAC;AAEtF,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAC7C,kBAAuC,EACvC,kBAAiD;IAEjD,MAAM,WAAW,GAAG,oBAAoB,CAAC;IAEzC,OAAO;QACL,QAAQ,EAAE,OAAO;QACjB,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,KAAK;QACb,OAAO,EAAE;YACP,UAAU,EAAE;gBACV,OAAO,EAAE,OAAO;gBAChB,IAAI,EAAE;oBACJ,KAAK,EAAE,qBAAqB;oBAC5B,OAAO,EAAE,OAAO;oBAChB,WAAW,EACT,sFAAsF;iBACzF;gBACD,OAAO,EAAE;oBACP;wBACE,GAAG,EAAE,UAAU,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,IAAI,WAAW,CAAC,IAAI,EAAE;wBACvI,WAAW,EAAE,SAAS,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,aAAa,CAAC,SAAS;qBACjF;iBACF;gBACD,KAAK,EAAE,kBAAkB;gBACzB,UAAU,EAAE;oBACV,OAAO,EAAE,kBAAkB,IAAI,EAAE;oBACjC,eAAe,EAAE;wBACf,UAAU,EAAE;4BACV,IAAI,EAAE,MAAM;4BACZ,MAAM,EAAE,QAAQ;4BAChB,YAAY,EAAE,KAAK;yBACpB;qBACF;iBACF;gBACD,QAAQ,EAAE,EAAE;aACb;YACD,IAAI,EAAE;gBACJ,gCAAgC;gBAChC,mCAAmC;aACpC;YACD,WAAW,EAAE,IAAI;YACjB,eAAe,EAAE,IAAI;YACrB,oBAAoB,EAAE,KAAK;SAC5B;QACD,+BAA+B,EAAE;YAC/B,KAAK,EAAE,WAAW;YAClB,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,QAAQ;YAChB,WAAW,EAAE,IAAI;YACjB,kBAAkB,EAAE,KAAK;YACzB,QAAQ,EAAE;gBACR,KAAK,EAAE,4BAA4B;gBACnC,WAAW,EAAE,yCAAyC;aACvD;YACD,SAAS,EAAE,4BAA4B;SACxC;KACwB,CAAC;AAC9B,CAAC","sourcesContent":["import { OpenAPIV3 } from \"openapi-types\";\nimport { ArkosConfig } from \"../../../../exports\";\nimport { capitalize } from \"../../../../utils/helpers/text.helpers\";\nimport portAndHostAllocator from \"../../../../utils/features/port-and-host-allocator\";\n\nexport default function getSwaggerDefaultConfig(\n defaultModelsPaths: Record<string, any>,\n defaultJsonSchemas: OpenAPIV3.PathsObject<{}, {}>\n) {\n const portAndHost = portAndHostAllocator;\n\n return {\n endpoint: \"/docs\",\n mode: \"prisma\",\n strict: false,\n options: {\n definition: {\n openapi: \"3.0.0\",\n info: {\n title: \"Powered By Arkos.js\",\n version: \"1.0.0\",\n description:\n \"This API was automatically generated by Arkos.js, read more about at www.arkosjs.com\",\n },\n servers: [\n {\n url: `http://${[\"0.0.0.0\", \"localhost\", \"127.0.0.1\"].includes(portAndHost.host!) ? \"localhost\" : portAndHost.host}:${portAndHost.port}`,\n description: `Local ${capitalize(process.env.NODE_ENV || \"development\")} Server`,\n },\n ],\n paths: defaultModelsPaths,\n components: {\n schemas: defaultJsonSchemas || {},\n securitySchemes: {\n BearerAuth: {\n type: \"http\",\n scheme: \"bearer\",\n bearerFormat: \"JWT\",\n },\n },\n },\n security: [],\n },\n apis: [\n \"./src/routers/*.router.{ts,js}\",\n \"./src/modules/**/*.router.{ts,js}\",\n ],\n deepLinking: true,\n tryItOutEnabled: true,\n persistAuthorization: false,\n },\n scalarApiReferenceConfiguration: {\n theme: \"deepSpace\",\n darkMode: true,\n layout: \"modern\",\n showSidebar: true,\n hideDownloadButton: false,\n metaData: {\n title: \"Arkos.js API Documentation\",\n description: \"API documentation generated by Arkos.js\",\n },\n pageTitle: \"Arkos.js API Documentation\",\n },\n } as ArkosConfig[\"swagger\"];\n}\n"]}
@@ -1,17 +1,16 @@
1
1
  import { validationMetadatasToSchemas } from "class-validator-jsonschema";
2
- import { importModule } from "../../../../../utils/helpers/global.helpers.js";
3
2
  import { getMetadataStorage } from "class-validator";
4
3
  import { getModuleComponents } from "../../../../../utils/dynamic-loader.js";
5
4
  import { getCorrectJsonSchemaName } from "../swagger.router.helpers.js";
6
5
  import prismaSchemaParser from "../../../../../utils/prisma/prisma-schema-parser.js";
7
6
  import { getUserFileExtension } from "../../../../../utils/helpers/fs.helpers.js";
8
- export async function generateClassValidatorJsonSchemas() {
7
+ import { defaultMetadataStorage } from "class-transformer/cjs/storage";
8
+ export function generateClassValidatorJsonSchemas() {
9
9
  const requiredAppModules = [
10
10
  ...prismaSchemaParser.getModelsAsArrayOfStrings(),
11
11
  "auth",
12
12
  ];
13
13
  const schemas = {};
14
- const { defaultMetadataStorage } = await importModule("class-transformer/cjs/storage.js");
15
14
  const jsonSchema = validationMetadatasToSchemas({
16
15
  classValidatorMetadataStorage: getMetadataStorage(),
17
16
  classTransformerMetadataStorage: defaultMetadataStorage,
@@ -25,9 +24,8 @@ export async function generateClassValidatorJsonSchemas() {
25
24
  if (dtoClass && !ignoredDtoTypes.includes(dtoType.toLowerCase())) {
26
25
  try {
27
26
  const schemaName = getCorrectJsonSchemaName(dtoType, modelName, "Dto");
28
- if (schemas[schemaName]) {
27
+ if (schemas[schemaName])
29
28
  throw Error(`Found more then 1 ${dtoClass.name} classes among your .dto.${getUserFileExtension()} files, there is no way to correctly generate json-schemas for swagger documentation.`);
30
- }
31
29
  schemas[schemaName] = jsonSchema[dtoClass.name] || {};
32
30
  }
33
31
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"generate-class-validator-json-schemas.js","sourceRoot":"","sources":["../../../../../../../src/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,6CAA6C,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,kBAAkB,MAAM,kDAAkD,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAE/E,MAAM,CAAC,KAAK,UAAU,iCAAiC;IACrD,MAAM,kBAAkB,GAAG;QACzB,GAAG,kBAAkB,CAAC,yBAAyB,EAAE;QACjD,MAAM;KACP,CAAC;IACF,MAAM,OAAO,GAAwB,EAAE,CAAC;IAExC,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,YAAY,CACnD,kCAAkC,CACnC,CAAC;IAEF,MAAM,UAAU,GAAG,4BAA4B,CAAC;QAC9C,6BAA6B,EAAE,kBAAkB,EAAE;QACnD,+BAA+B,EAAE,sBAAsB;QACvD,gBAAgB,EAAE,uBAAuB;KAC1C,CAAC,CAAC;IAEH,kBAAkB,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;QACvC,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;QAExD,IAAI,gBAAgB,EAAE,IAAI,EAAE,CAAC;YAC3B,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,EAAE;gBACpE,MAAM,eAAe,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;gBACnD,IAAI,QAAQ,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;oBACjE,IAAI,CAAC;wBACH,MAAM,UAAU,GAAG,wBAAwB,CACzC,OAAO,EACP,SAAS,EACT,KAAK,CACN,CAAC;wBAEF,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;4BACxB,MAAM,KAAK,CACT,qBAAqB,QAAQ,CAAC,IAAI,4BAA4B,oBAAoB,EAAE,uFAAuF,CAC5K,CAAC;wBACJ,CAAC;wBAED,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;oBACxD,CAAC;oBAAC,OAAO,GAAQ,EAAE,CAAC;wBAClB,MAAM,IAAI,KAAK,CACb,iCAAiC,OAAO,IAAI,SAAS,KAAK,GAAG,CAAC,OAAO,EAAE,CACxE,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE;QACzD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;YAAE,OAAO,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;IACvD,CAAC,CAAC,CAAC;IACH,OAAO,OAAO,CAAC;AACjB,CAAC","sourcesContent":["import { validationMetadatasToSchemas } from \"class-validator-jsonschema\";\nimport { importModule } from \"../../../../../utils/helpers/global.helpers\";\nimport { getMetadataStorage } from \"class-validator\";\nimport { getModuleComponents } from \"../../../../../utils/dynamic-loader\";\nimport { getCorrectJsonSchemaName } from \"../swagger.router.helpers\";\nimport prismaSchemaParser from \"../../../../../utils/prisma/prisma-schema-parser\";\nimport { getUserFileExtension } from \"../../../../../utils/helpers/fs.helpers\";\n\nexport async function generateClassValidatorJsonSchemas() {\n const requiredAppModules = [\n ...prismaSchemaParser.getModelsAsArrayOfStrings(),\n \"auth\",\n ];\n const schemas: Record<string, any> = {};\n\n const { defaultMetadataStorage } = await importModule(\n \"class-transformer/cjs/storage.js\"\n );\n\n const jsonSchema = validationMetadatasToSchemas({\n classValidatorMetadataStorage: getMetadataStorage(),\n classTransformerMetadataStorage: defaultMetadataStorage,\n refPointerPrefix: \"#/components/schemas/\",\n });\n\n requiredAppModules.forEach((modelName) => {\n const moduleComponents = getModuleComponents(modelName);\n\n if (moduleComponents?.dtos) {\n Object.entries(moduleComponents.dtos).forEach(([dtoType, dtoClass]) => {\n const ignoredDtoTypes = [\"createone\", \"updateone\"];\n if (dtoClass && !ignoredDtoTypes.includes(dtoType.toLowerCase())) {\n try {\n const schemaName = getCorrectJsonSchemaName(\n dtoType,\n modelName,\n \"Dto\"\n );\n\n if (schemas[schemaName]) {\n throw Error(\n `Found more then 1 ${dtoClass.name} classes among your .dto.${getUserFileExtension()} files, there is no way to correctly generate json-schemas for swagger documentation.`\n );\n }\n\n schemas[schemaName] = jsonSchema[dtoClass.name] || {};\n } catch (err: any) {\n throw new Error(\n `Failed to generate schema for ${dtoType} ${modelName}: ${err.message}`\n );\n }\n }\n });\n }\n });\n\n Object.entries(jsonSchema).forEach(([className, schema]) => {\n if (!schemas[className]) schemas[className] = schema;\n });\n return schemas;\n}\n"]}
1
+ {"version":3,"file":"generate-class-validator-json-schemas.js","sourceRoot":"","sources":["../../../../../../../src/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,kBAAkB,MAAM,kDAAkD,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEvE,MAAM,UAAU,iCAAiC;IAC/C,MAAM,kBAAkB,GAAG;QACzB,GAAG,kBAAkB,CAAC,yBAAyB,EAAE;QACjD,MAAM;KACP,CAAC;IACF,MAAM,OAAO,GAAwB,EAAE,CAAC;IAExC,MAAM,UAAU,GAAG,4BAA4B,CAAC;QAC9C,6BAA6B,EAAE,kBAAkB,EAAE;QACnD,+BAA+B,EAAE,sBAAsB;QACvD,gBAAgB,EAAE,uBAAuB;KAC1C,CAAC,CAAC;IAEH,kBAAkB,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;QACvC,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;QAExD,IAAI,gBAAgB,EAAE,IAAI,EAAE,CAAC;YAC3B,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,EAAE;gBACpE,MAAM,eAAe,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;gBACnD,IAAI,QAAQ,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;oBACjE,IAAI,CAAC;wBACH,MAAM,UAAU,GAAG,wBAAwB,CACzC,OAAO,EACP,SAAS,EACT,KAAK,CACN,CAAC;wBAEF,IAAI,OAAO,CAAC,UAAU,CAAC;4BACrB,MAAM,KAAK,CACT,qBAAqB,QAAQ,CAAC,IAAI,4BAA4B,oBAAoB,EAAE,uFAAuF,CAC5K,CAAC;wBAEJ,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;oBACxD,CAAC;oBAAC,OAAO,GAAQ,EAAE,CAAC;wBAClB,MAAM,IAAI,KAAK,CACb,iCAAiC,OAAO,IAAI,SAAS,KAAK,GAAG,CAAC,OAAO,EAAE,CACxE,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE;QACzD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;YAAE,OAAO,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;IACvD,CAAC,CAAC,CAAC;IACH,OAAO,OAAO,CAAC;AACjB,CAAC","sourcesContent":["import { validationMetadatasToSchemas } from \"class-validator-jsonschema\";\nimport { getMetadataStorage } from \"class-validator\";\nimport { getModuleComponents } from \"../../../../../utils/dynamic-loader\";\nimport { getCorrectJsonSchemaName } from \"../swagger.router.helpers\";\nimport prismaSchemaParser from \"../../../../../utils/prisma/prisma-schema-parser\";\nimport { getUserFileExtension } from \"../../../../../utils/helpers/fs.helpers\";\nimport { defaultMetadataStorage } from \"class-transformer/cjs/storage\";\n\nexport function generateClassValidatorJsonSchemas() {\n const requiredAppModules = [\n ...prismaSchemaParser.getModelsAsArrayOfStrings(),\n \"auth\",\n ];\n const schemas: Record<string, any> = {};\n\n const jsonSchema = validationMetadatasToSchemas({\n classValidatorMetadataStorage: getMetadataStorage(),\n classTransformerMetadataStorage: defaultMetadataStorage,\n refPointerPrefix: \"#/components/schemas/\",\n });\n\n requiredAppModules.forEach((modelName) => {\n const moduleComponents = getModuleComponents(modelName);\n\n if (moduleComponents?.dtos) {\n Object.entries(moduleComponents.dtos).forEach(([dtoType, dtoClass]) => {\n const ignoredDtoTypes = [\"createone\", \"updateone\"];\n if (dtoClass && !ignoredDtoTypes.includes(dtoType.toLowerCase())) {\n try {\n const schemaName = getCorrectJsonSchemaName(\n dtoType,\n modelName,\n \"Dto\"\n );\n\n if (schemas[schemaName])\n throw Error(\n `Found more then 1 ${dtoClass.name} classes among your .dto.${getUserFileExtension()} files, there is no way to correctly generate json-schemas for swagger documentation.`\n );\n\n schemas[schemaName] = jsonSchema[dtoClass.name] || {};\n } catch (err: any) {\n throw new Error(\n `Failed to generate schema for ${dtoType} ${modelName}: ${err.message}`\n );\n }\n }\n });\n }\n });\n\n Object.entries(jsonSchema).forEach(([className, schema]) => {\n if (!schemas[className]) schemas[className] = schema;\n });\n return schemas;\n}\n"]}
@@ -1,18 +1,18 @@
1
1
  import prismaJsonSchemaGenerator from "../../../../../utils/prisma/prisma-json-schema-generator.js";
2
2
  import prismaSchemaParser from "../../../../../utils/prisma/prisma-schema-parser.js";
3
- export async function generatePrismaJsonSchemas(arkosConfig) {
3
+ export function generatePrismaJsonSchemas(arkosConfig) {
4
4
  const requiredAppModules = [
5
5
  ...prismaSchemaParser.getModelsAsArrayOfStrings(),
6
6
  "auth",
7
7
  ];
8
8
  try {
9
- const modelSchemasArray = await Promise.all(requiredAppModules.map(async (modelName) => {
10
- const modelSchemas = await prismaJsonSchemaGenerator.generateModelSchemas({
9
+ const modelSchemasArray = requiredAppModules.map((modelName) => {
10
+ const modelSchemas = prismaJsonSchemaGenerator.generateModelSchemas({
11
11
  modelName,
12
12
  arkosConfig,
13
13
  });
14
14
  return modelSchemas;
15
- }));
15
+ });
16
16
  const schemas = modelSchemasArray.reduce((acc, modelSchemas) => {
17
17
  return { ...acc, ...modelSchemas };
18
18
  }, {});
@@ -1 +1 @@
1
- {"version":3,"file":"generate-prisma-json-schemas.js","sourceRoot":"","sources":["../../../../../../../src/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.ts"],"names":[],"mappings":"AACA,OAAO,yBAAyB,MAAM,0DAA0D,CAAC;AACjG,OAAO,kBAAkB,MAAM,kDAAkD,CAAC;AAElF,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,WAAwB;IACtE,MAAM,kBAAkB,GAAG;QACzB,GAAG,kBAAkB,CAAC,yBAAyB,EAAE;QACjD,MAAM;KACP,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,iBAAiB,GAAG,MAAM,OAAO,CAAC,GAAG,CACzC,kBAAkB,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE;YACzC,MAAM,YAAY,GAChB,MAAM,yBAAyB,CAAC,oBAAoB,CAAC;gBACnD,SAAS;gBACT,WAAW;aACZ,CAAC,CAAC;YACL,OAAO,YAAY,CAAC;QACtB,CAAC,CAAC,CACH,CAAC;QAEF,MAAM,OAAO,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,YAAY,EAAE,EAAE;YAC7D,OAAO,EAAE,GAAG,GAAG,EAAE,GAAG,YAAY,EAAE,CAAC;QACrC,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnB,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC","sourcesContent":["import { ArkosConfig } from \"../../../../../exports\";\nimport prismaJsonSchemaGenerator from \"../../../../../utils/prisma/prisma-json-schema-generator\";\nimport prismaSchemaParser from \"../../../../../utils/prisma/prisma-schema-parser\";\n\nexport async function generatePrismaJsonSchemas(arkosConfig: ArkosConfig) {\n const requiredAppModules = [\n ...prismaSchemaParser.getModelsAsArrayOfStrings(),\n \"auth\",\n ];\n\n try {\n const modelSchemasArray = await Promise.all(\n requiredAppModules.map(async (modelName) => {\n const modelSchemas =\n await prismaJsonSchemaGenerator.generateModelSchemas({\n modelName,\n arkosConfig,\n });\n return modelSchemas;\n })\n );\n\n const schemas = modelSchemasArray.reduce((acc, modelSchemas) => {\n return { ...acc, ...modelSchemas };\n }, {});\n\n return schemas;\n } catch (err) {\n console.error(err);\n throw err;\n }\n}\n"]}
1
+ {"version":3,"file":"generate-prisma-json-schemas.js","sourceRoot":"","sources":["../../../../../../../src/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.ts"],"names":[],"mappings":"AACA,OAAO,yBAAyB,MAAM,0DAA0D,CAAC;AACjG,OAAO,kBAAkB,MAAM,kDAAkD,CAAC;AAElF,MAAM,UAAU,yBAAyB,CAAC,WAAwB;IAChE,MAAM,kBAAkB,GAAG;QACzB,GAAG,kBAAkB,CAAC,yBAAyB,EAAE;QACjD,MAAM;KACP,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;YAC7D,MAAM,YAAY,GAAG,yBAAyB,CAAC,oBAAoB,CAAC;gBAClE,SAAS;gBACT,WAAW;aACZ,CAAC,CAAC;YACH,OAAO,YAAY,CAAC;QACtB,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,YAAY,EAAE,EAAE;YAC7D,OAAO,EAAE,GAAG,GAAG,EAAE,GAAG,YAAY,EAAE,CAAC;QACrC,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnB,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC","sourcesContent":["import { ArkosConfig } from \"../../../../../exports\";\nimport prismaJsonSchemaGenerator from \"../../../../../utils/prisma/prisma-json-schema-generator\";\nimport prismaSchemaParser from \"../../../../../utils/prisma/prisma-schema-parser\";\n\nexport function generatePrismaJsonSchemas(arkosConfig: ArkosConfig) {\n const requiredAppModules = [\n ...prismaSchemaParser.getModelsAsArrayOfStrings(),\n \"auth\",\n ];\n\n try {\n const modelSchemasArray = requiredAppModules.map((modelName) => {\n const modelSchemas = prismaJsonSchemaGenerator.generateModelSchemas({\n modelName,\n arkosConfig,\n });\n return modelSchemas;\n });\n\n const schemas = modelSchemasArray.reduce((acc, modelSchemas) => {\n return { ...acc, ...modelSchemas };\n }, {});\n\n return schemas;\n } catch (err) {\n console.error(err);\n throw err;\n }\n}\n"]}
@@ -2,7 +2,7 @@ import { getModuleComponents } from "../../../../../utils/dynamic-loader.js";
2
2
  import zodToJsonSchema from "zod-to-json-schema";
3
3
  import { getCorrectJsonSchemaName } from "../swagger.router.helpers.js";
4
4
  import prismaSchemaParser from "../../../../../utils/prisma/prisma-schema-parser.js";
5
- export default async function generateZodJsonSchemas() {
5
+ export default function generateZodJsonSchemas() {
6
6
  const requiredAppModules = [
7
7
  ...prismaSchemaParser.getModelsAsArrayOfStrings(),
8
8
  "auth",
@@ -1 +1 @@
1
- {"version":3,"file":"generate-zod-json-schemas.js","sourceRoot":"","sources":["../../../../../../../src/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,eAAe,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,kBAAkB,MAAM,kDAAkD,CAAC;AAElF,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,sBAAsB;IAClD,MAAM,kBAAkB,GAAG;QACzB,GAAG,kBAAkB,CAAC,yBAAyB,EAAE;QACjD,MAAM;KACP,CAAC;IACF,MAAM,OAAO,GAAwB,EAAE,CAAC;IAExC,kBAAkB,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;QACvC,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;QAExD,IAAI,gBAAgB,EAAE,OAAO;YAC3B,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,OAAO,CAC9C,CAAC,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,EAAE;gBAC1B,IAAI,SAAS;oBACX,IAAI,CAAC;wBACH,MAAM,UAAU,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;wBAC9C,MAAM,UAAU,GAAG,wBAAwB,CACzC,UAAU,EACV,SAAS,EACT,QAAQ,CACT,CAAC;wBACF,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC;oBACnC,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,OAAO,CAAC,IAAI,CACV,iCAAiC,UAAU,IAAI,SAAS,GAAG,EAC3D,KAAK,CACN,CAAC;oBACJ,CAAC;YACL,CAAC,CACF,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC","sourcesContent":["import { getModuleComponents } from \"../../../../../utils/dynamic-loader\";\nimport zodToJsonSchema from \"zod-to-json-schema\";\nimport { getCorrectJsonSchemaName } from \"../swagger.router.helpers\";\nimport prismaSchemaParser from \"../../../../../utils/prisma/prisma-schema-parser\";\n\nexport default async function generateZodJsonSchemas() {\n const requiredAppModules = [\n ...prismaSchemaParser.getModelsAsArrayOfStrings(),\n \"auth\",\n ];\n const schemas: Record<string, any> = {};\n\n requiredAppModules.forEach((modelName) => {\n const moduleComponents = getModuleComponents(modelName);\n\n if (moduleComponents?.schemas)\n Object.entries(moduleComponents.schemas).forEach(\n ([schemaType, zodSchema]) => {\n if (zodSchema)\n try {\n const jsonSchema = zodToJsonSchema(zodSchema);\n const schemaName = getCorrectJsonSchemaName(\n schemaType,\n modelName,\n \"Schema\"\n );\n schemas[schemaName] = jsonSchema;\n } catch (error) {\n console.warn(\n `Failed to generate schema for ${schemaType} ${modelName}:`,\n error\n );\n }\n }\n );\n });\n\n return schemas;\n}\n"]}
1
+ {"version":3,"file":"generate-zod-json-schemas.js","sourceRoot":"","sources":["../../../../../../../src/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,eAAe,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,kBAAkB,MAAM,kDAAkD,CAAC;AAElF,MAAM,CAAC,OAAO,UAAU,sBAAsB;IAC5C,MAAM,kBAAkB,GAAG;QACzB,GAAG,kBAAkB,CAAC,yBAAyB,EAAE;QACjD,MAAM;KACP,CAAC;IACF,MAAM,OAAO,GAAwB,EAAE,CAAC;IAExC,kBAAkB,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;QACvC,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;QAExD,IAAI,gBAAgB,EAAE,OAAO;YAC3B,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,OAAO,CAC9C,CAAC,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,EAAE;gBAC1B,IAAI,SAAS;oBACX,IAAI,CAAC;wBACH,MAAM,UAAU,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;wBAC9C,MAAM,UAAU,GAAG,wBAAwB,CACzC,UAAU,EACV,SAAS,EACT,QAAQ,CACT,CAAC;wBACF,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC;oBACnC,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,OAAO,CAAC,IAAI,CACV,iCAAiC,UAAU,IAAI,SAAS,GAAG,EAC3D,KAAK,CACN,CAAC;oBACJ,CAAC;YACL,CAAC,CACF,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC","sourcesContent":["import { getModuleComponents } from \"../../../../../utils/dynamic-loader\";\nimport zodToJsonSchema from \"zod-to-json-schema\";\nimport { getCorrectJsonSchemaName } from \"../swagger.router.helpers\";\nimport prismaSchemaParser from \"../../../../../utils/prisma/prisma-schema-parser\";\n\nexport default function generateZodJsonSchemas() {\n const requiredAppModules = [\n ...prismaSchemaParser.getModelsAsArrayOfStrings(),\n \"auth\",\n ];\n const schemas: Record<string, any> = {};\n\n requiredAppModules.forEach((modelName) => {\n const moduleComponents = getModuleComponents(modelName);\n\n if (moduleComponents?.schemas)\n Object.entries(moduleComponents.schemas).forEach(\n ([schemaType, zodSchema]) => {\n if (zodSchema)\n try {\n const jsonSchema = zodToJsonSchema(zodSchema);\n const schemaName = getCorrectJsonSchemaName(\n schemaType,\n modelName,\n \"Schema\"\n );\n schemas[schemaName] = jsonSchema;\n } catch (error) {\n console.warn(\n `Failed to generate schema for ${schemaType} ${modelName}:`,\n error\n );\n }\n }\n );\n });\n\n return schemas;\n}\n"]}