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,419 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.default = getFileUploadJsonSchemaPaths;
7
+ const dynamic_loader_1 = require("../../../../utils/dynamic-loader");
8
+ const base_router_helpers_1 = require("../../../base/utils/helpers/base.router.helpers");
9
+ const deepmerge_helper_1 = __importDefault(require("../../../../utils/helpers/deepmerge.helper"));
10
+ const file_upload_service_1 = require("../../../file-upload/file-upload.service");
11
+ function getFileUploadJsonSchemaPaths(arkosConfig) {
12
+ const paths = {};
13
+ if (!arkosConfig.fileUpload)
14
+ return paths;
15
+ const FileUploadModuleComponents = (0, dynamic_loader_1.getModuleComponents)("file-upload");
16
+ const routerConfig = FileUploadModuleComponents?.router
17
+ ?.config;
18
+ const authConfigs = FileUploadModuleComponents?.authConfigs;
19
+ if (routerConfig?.disable === true)
20
+ return paths;
21
+ const isFileUploadEndpointDisabled = (endpoint) => {
22
+ return (0, base_router_helpers_1.isEndpointDisabled)(routerConfig, endpoint);
23
+ };
24
+ const basePathname = arkosConfig.fileUpload?.baseRoute || "/api/uploads/";
25
+ const baseUploadDir = arkosConfig.fileUpload?.baseUploadDir || "uploads";
26
+ const restrictions = (0, deepmerge_helper_1.default)(file_upload_service_1.fileUploadDefaultRestrictions, arkosConfig.fileUpload?.restrictions || {});
27
+ const formatBytes = (bytes) => {
28
+ if (bytes === 0)
29
+ return "0 Bytes";
30
+ const k = 1024;
31
+ const sizes = ["Bytes", "KB", "MB", "GB"];
32
+ const i = Math.floor(Math.log(bytes) / Math.log(k));
33
+ return Math.round((bytes / Math.pow(k, i)) * 100) / 100 + " " + sizes[i];
34
+ };
35
+ const getFileTypeDescription = (fileType) => {
36
+ const restriction = restrictions[fileType];
37
+ if (!restriction)
38
+ return "";
39
+ const maxSize = formatBytes(restriction.maxSize);
40
+ const maxCount = restriction.maxCount;
41
+ const formats = restriction.supportedFilesRegex
42
+ ?.toString()
43
+ .replace(/\|/g, ", ")
44
+ .replace(/\//g, "")
45
+ .replace(/\.\*/g, "any format");
46
+ return `Maximum file size: ${maxSize}. Maximum files per upload: ${maxCount}. Supported formats: ${formats}`;
47
+ };
48
+ const shouldIncludeSecurity = (action) => {
49
+ const authControl = authConfigs?.authenticationControl;
50
+ if (!authControl)
51
+ return false;
52
+ if (typeof authControl === "boolean")
53
+ return authControl;
54
+ if (typeof authControl === "object") {
55
+ return authControl[action] === true;
56
+ }
57
+ return false;
58
+ };
59
+ if (!isFileUploadEndpointDisabled("findFile")) {
60
+ const cleanBasePath = basePathname.endsWith("/")
61
+ ? basePathname.slice(0, -1)
62
+ : basePathname;
63
+ paths[`${cleanBasePath}/{filePath*}`] = {
64
+ get: {
65
+ tags: ["File Upload"],
66
+ summary: "Retrieve uploaded file",
67
+ description: `Serves static files from the upload directory (${baseUploadDir}). This endpoint uses wildcard path matching to serve files from any subdirectory.`,
68
+ operationId: "findFile",
69
+ ...(shouldIncludeSecurity("View") && {
70
+ security: [{ BearerAuth: [] }],
71
+ }),
72
+ parameters: [
73
+ {
74
+ name: "filePath",
75
+ in: "path",
76
+ required: true,
77
+ schema: { type: "string" },
78
+ description: "Path to the file including file type directory (e.g., images/photo.jpg, videos/clip.mp4)",
79
+ },
80
+ ],
81
+ responses: {
82
+ "200": {
83
+ description: "File retrieved successfully",
84
+ content: {
85
+ "application/octet-stream": {
86
+ schema: {
87
+ type: "string",
88
+ format: "binary",
89
+ },
90
+ },
91
+ },
92
+ },
93
+ "404": {
94
+ description: "File not found",
95
+ },
96
+ ...(shouldIncludeSecurity("View") && {
97
+ "401": { description: "Authentication required" },
98
+ "403": { description: "Insufficient permissions to view files" },
99
+ }),
100
+ },
101
+ },
102
+ };
103
+ }
104
+ if (!isFileUploadEndpointDisabled("uploadFile")) {
105
+ const cleanBasePath = basePathname.endsWith("/")
106
+ ? basePathname.slice(0, -1)
107
+ : basePathname;
108
+ paths[`${cleanBasePath}/{fileType}`] = {
109
+ post: {
110
+ tags: ["File Upload"],
111
+ summary: "Upload file(s)",
112
+ description: "Upload one or multiple files. Supports image processing options for image uploads.",
113
+ operationId: "uploadFile",
114
+ ...(shouldIncludeSecurity("Create") && {
115
+ security: [{ BearerAuth: [] }],
116
+ }),
117
+ parameters: [
118
+ {
119
+ name: "fileType",
120
+ in: "path",
121
+ required: true,
122
+ schema: {
123
+ type: "string",
124
+ enum: ["images", "videos", "documents", "files"],
125
+ },
126
+ description: "Type of file being uploaded",
127
+ },
128
+ {
129
+ name: "format",
130
+ in: "query",
131
+ required: false,
132
+ schema: {
133
+ type: "string",
134
+ enum: ["jpeg", "jpg", "png", "webp", "gif", "avif"],
135
+ },
136
+ description: "Image format for conversion (only applicable for fileType=images)",
137
+ },
138
+ {
139
+ name: "width",
140
+ in: "query",
141
+ required: false,
142
+ schema: { type: "integer", minimum: 1 },
143
+ description: "Target width for image resize (only applicable for fileType=images)",
144
+ },
145
+ {
146
+ name: "height",
147
+ in: "query",
148
+ required: false,
149
+ schema: { type: "integer", minimum: 1 },
150
+ description: "Target height for image resize (only applicable for fileType=images)",
151
+ },
152
+ {
153
+ name: "resizeTo",
154
+ in: "query",
155
+ required: false,
156
+ schema: {
157
+ type: "string",
158
+ enum: ["cover", "contain", "fill", "inside", "outside"],
159
+ },
160
+ description: "Resize strategy (only applicable for fileType=images)",
161
+ },
162
+ ],
163
+ requestBody: {
164
+ required: true,
165
+ content: {
166
+ "multipart/form-data": {
167
+ schema: {
168
+ type: "object",
169
+ properties: {
170
+ images: {
171
+ type: "array",
172
+ items: { type: "string", format: "binary" },
173
+ description: getFileTypeDescription("images"),
174
+ },
175
+ videos: {
176
+ type: "array",
177
+ items: { type: "string", format: "binary" },
178
+ description: getFileTypeDescription("videos"),
179
+ },
180
+ documents: {
181
+ type: "array",
182
+ items: { type: "string", format: "binary" },
183
+ description: getFileTypeDescription("documents"),
184
+ },
185
+ files: {
186
+ type: "array",
187
+ items: { type: "string", format: "binary" },
188
+ description: getFileTypeDescription("files"),
189
+ },
190
+ },
191
+ },
192
+ },
193
+ },
194
+ },
195
+ responses: {
196
+ "200": {
197
+ description: "File(s) uploaded successfully",
198
+ content: {
199
+ "application/json": {
200
+ schema: {
201
+ type: "object",
202
+ properties: {
203
+ success: { type: "boolean", example: true },
204
+ data: {
205
+ oneOf: [
206
+ { type: "string", description: "URL of uploaded file" },
207
+ {
208
+ type: "array",
209
+ items: { type: "string" },
210
+ description: "URLs of uploaded files",
211
+ },
212
+ ],
213
+ },
214
+ message: { type: "string" },
215
+ },
216
+ },
217
+ },
218
+ },
219
+ },
220
+ "400": {
221
+ description: "Invalid file type, size limit exceeded, or no file uploaded",
222
+ },
223
+ ...(shouldIncludeSecurity("Create") && {
224
+ "401": { description: "Authentication required" },
225
+ "403": { description: "Insufficient permissions to upload files" },
226
+ }),
227
+ },
228
+ },
229
+ };
230
+ }
231
+ if (!isFileUploadEndpointDisabled("updateFile")) {
232
+ const cleanBasePath = basePathname.endsWith("/")
233
+ ? basePathname.slice(0, -1)
234
+ : basePathname;
235
+ paths[`${cleanBasePath}/{fileType}/{fileName}`] = {
236
+ ...(paths[`${cleanBasePath}/{fileType}/{fileName}`] || {}),
237
+ patch: {
238
+ tags: ["File Upload"],
239
+ summary: "Update existing file",
240
+ description: "Replace an existing file with a new one. Deletes the old file and uploads the new one.",
241
+ operationId: "updateFile",
242
+ ...(shouldIncludeSecurity("Update") && {
243
+ security: [{ BearerAuth: [] }],
244
+ }),
245
+ parameters: [
246
+ {
247
+ name: "fileType",
248
+ in: "path",
249
+ required: true,
250
+ schema: {
251
+ type: "string",
252
+ enum: ["images", "videos", "documents", "files"],
253
+ },
254
+ description: "Type of file being updated",
255
+ },
256
+ {
257
+ name: "fileName",
258
+ in: "path",
259
+ required: true,
260
+ schema: { type: "string" },
261
+ description: "Name of the file to update",
262
+ },
263
+ {
264
+ name: "format",
265
+ in: "query",
266
+ required: false,
267
+ schema: {
268
+ type: "string",
269
+ enum: ["jpeg", "jpg", "png", "webp", "gif", "avif"],
270
+ },
271
+ description: "Image format for conversion (only applicable for fileType=images)",
272
+ },
273
+ {
274
+ name: "width",
275
+ in: "query",
276
+ required: false,
277
+ schema: { type: "integer", minimum: 1 },
278
+ description: "Target width for image resize (only applicable for fileType=images)",
279
+ },
280
+ {
281
+ name: "height",
282
+ in: "query",
283
+ required: false,
284
+ schema: { type: "integer", minimum: 1 },
285
+ description: "Target height for image resize (only applicable for fileType=images)",
286
+ },
287
+ {
288
+ name: "resizeTo",
289
+ in: "query",
290
+ required: false,
291
+ schema: {
292
+ type: "string",
293
+ enum: ["cover", "contain", "fill", "inside", "outside"],
294
+ },
295
+ description: "Resize strategy (only applicable for fileType=images)",
296
+ },
297
+ ],
298
+ requestBody: {
299
+ required: true,
300
+ content: {
301
+ "multipart/form-data": {
302
+ schema: {
303
+ type: "object",
304
+ properties: {
305
+ images: {
306
+ type: "array",
307
+ items: { type: "string", format: "binary" },
308
+ description: getFileTypeDescription("images"),
309
+ },
310
+ videos: {
311
+ type: "array",
312
+ items: { type: "string", format: "binary" },
313
+ description: getFileTypeDescription("videos"),
314
+ },
315
+ documents: {
316
+ type: "array",
317
+ items: { type: "string", format: "binary" },
318
+ description: getFileTypeDescription("documents"),
319
+ },
320
+ files: {
321
+ type: "array",
322
+ items: { type: "string", format: "binary" },
323
+ description: getFileTypeDescription("files"),
324
+ },
325
+ },
326
+ },
327
+ },
328
+ },
329
+ },
330
+ responses: {
331
+ "200": {
332
+ description: "File updated successfully",
333
+ content: {
334
+ "application/json": {
335
+ schema: {
336
+ type: "object",
337
+ properties: {
338
+ success: { type: "boolean", example: true },
339
+ data: {
340
+ oneOf: [
341
+ { type: "string", description: "URL of updated file" },
342
+ {
343
+ type: "array",
344
+ items: { type: "string" },
345
+ description: "URLs of updated files",
346
+ },
347
+ ],
348
+ },
349
+ message: { type: "string" },
350
+ },
351
+ },
352
+ },
353
+ },
354
+ },
355
+ "400": {
356
+ description: "Invalid file type, size limit exceeded, or no file uploaded",
357
+ },
358
+ "404": {
359
+ description: "Original file not found",
360
+ },
361
+ ...(shouldIncludeSecurity("Update") && {
362
+ "401": { description: "Authentication required" },
363
+ "403": { description: "Insufficient permissions to update files" },
364
+ }),
365
+ },
366
+ },
367
+ };
368
+ }
369
+ if (!isFileUploadEndpointDisabled("deleteFile")) {
370
+ const cleanBasePath = basePathname.endsWith("/")
371
+ ? basePathname.slice(0, -1)
372
+ : basePathname;
373
+ if (!paths[`${cleanBasePath}/{fileType}/{fileName}`]) {
374
+ paths[`${cleanBasePath}/{fileType}/{fileName}`] = {};
375
+ }
376
+ paths[`${cleanBasePath}/{fileType}/{fileName}`].delete = {
377
+ tags: ["File Upload"],
378
+ summary: "Delete file",
379
+ description: "Delete an uploaded file from the server",
380
+ operationId: "deleteFile",
381
+ ...(shouldIncludeSecurity("Delete") && {
382
+ security: [{ BearerAuth: [] }],
383
+ }),
384
+ parameters: [
385
+ {
386
+ name: "fileType",
387
+ in: "path",
388
+ required: true,
389
+ schema: {
390
+ type: "string",
391
+ enum: ["images", "videos", "documents", "files"],
392
+ },
393
+ description: "Type of file being deleted",
394
+ },
395
+ {
396
+ name: "fileName",
397
+ in: "path",
398
+ required: true,
399
+ schema: { type: "string" },
400
+ description: "Name of the file to delete",
401
+ },
402
+ ],
403
+ responses: {
404
+ "204": {
405
+ description: "File deleted successfully",
406
+ },
407
+ "404": {
408
+ description: "File not found",
409
+ },
410
+ ...(shouldIncludeSecurity("Delete") && {
411
+ "401": { description: "Authentication required" },
412
+ "403": { description: "Insufficient permissions to delete files" },
413
+ }),
414
+ },
415
+ };
416
+ }
417
+ return paths;
418
+ }
419
+ //# 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"]}
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.default = getSwaggerDefaultConfig;
7
7
  const text_helpers_1 = require("../../../../utils/helpers/text.helpers");
8
8
  const port_and_host_allocator_1 = __importDefault(require("../../../../utils/features/port-and-host-allocator"));
9
- async function getSwaggerDefaultConfig(defaultModelsPaths, defaultJsonSchemas) {
10
- const portAndHost = await port_and_host_allocator_1.default.getHostAndAvailablePort({});
9
+ function getSwaggerDefaultConfig(defaultModelsPaths, defaultJsonSchemas) {
10
+ const portAndHost = port_and_host_allocator_1.default;
11
11
  return {
12
12
  endpoint: "/docs",
13
13
  mode: "prisma",
@@ -22,7 +22,7 @@ async function getSwaggerDefaultConfig(defaultModelsPaths, defaultJsonSchemas) {
22
22
  },
23
23
  servers: [
24
24
  {
25
- url: `http://${portAndHost.host}:${portAndHost.port}`,
25
+ url: `http://${["0.0.0.0", "localhost", "127.0.0.1"].includes(portAndHost.host) ? "localhost" : portAndHost.host}:${portAndHost.port}`,
26
26
  description: `Local ${(0, text_helpers_1.capitalize)(process.env.NODE_ENV || "development")} Server`,
27
27
  },
28
28
  ],
@@ -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":";;;;;AAKA,0CA2DC;AA9DD,yEAAoE;AACpE,iHAAsF;AAEvE,KAAK,UAAU,uBAAuB,CACnD,kBAAuC,EACvC,kBAAiD;IAEjD,MAAM,WAAW,GAAG,MAAM,iCAAoB,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,IAAA,yBAAU,EAAC,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":";;;;;AAKA,0CA2DC;AA9DD,yEAAoE;AACpE,iHAAsF;AAEtF,SAAwB,uBAAuB,CAC7C,kBAAuC,EACvC,kBAAiD;IAEjD,MAAM,WAAW,GAAG,iCAAoB,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,IAAA,yBAAU,EAAC,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"]}
@@ -5,22 +5,21 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.generateClassValidatorJsonSchemas = generateClassValidatorJsonSchemas;
7
7
  const class_validator_jsonschema_1 = require("class-validator-jsonschema");
8
- const global_helpers_1 = require("../../../../../utils/helpers/global.helpers");
9
8
  const class_validator_1 = require("class-validator");
10
9
  const dynamic_loader_1 = require("../../../../../utils/dynamic-loader");
11
10
  const swagger_router_helpers_1 = require("../swagger.router.helpers");
12
11
  const prisma_schema_parser_1 = __importDefault(require("../../../../../utils/prisma/prisma-schema-parser"));
13
12
  const fs_helpers_1 = require("../../../../../utils/helpers/fs.helpers");
14
- async function generateClassValidatorJsonSchemas() {
13
+ const storage_1 = require("class-transformer/cjs/storage");
14
+ function generateClassValidatorJsonSchemas() {
15
15
  const requiredAppModules = [
16
16
  ...prisma_schema_parser_1.default.getModelsAsArrayOfStrings(),
17
17
  "auth",
18
18
  ];
19
19
  const schemas = {};
20
- const { defaultMetadataStorage } = await (0, global_helpers_1.importModule)("class-transformer/cjs/storage.js");
21
20
  const jsonSchema = (0, class_validator_jsonschema_1.validationMetadatasToSchemas)({
22
21
  classValidatorMetadataStorage: (0, class_validator_1.getMetadataStorage)(),
23
- classTransformerMetadataStorage: defaultMetadataStorage,
22
+ classTransformerMetadataStorage: storage_1.defaultMetadataStorage,
24
23
  refPointerPrefix: "#/components/schemas/",
25
24
  });
26
25
  requiredAppModules.forEach((modelName) => {
@@ -31,9 +30,8 @@ async function generateClassValidatorJsonSchemas() {
31
30
  if (dtoClass && !ignoredDtoTypes.includes(dtoType.toLowerCase())) {
32
31
  try {
33
32
  const schemaName = (0, swagger_router_helpers_1.getCorrectJsonSchemaName)(dtoType, modelName, "Dto");
34
- if (schemas[schemaName]) {
33
+ if (schemas[schemaName])
35
34
  throw Error(`Found more then 1 ${dtoClass.name} classes among your .dto.${(0, fs_helpers_1.getUserFileExtension)()} files, there is no way to correctly generate json-schemas for swagger documentation.`);
36
- }
37
35
  schemas[schemaName] = jsonSchema[dtoClass.name] || {};
38
36
  }
39
37
  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":";;;;;AAQA,8EAoDC;AA5DD,2EAA0E;AAC1E,gFAA2E;AAC3E,qDAAqD;AACrD,wEAA0E;AAC1E,sEAAqE;AACrE,4GAAkF;AAClF,wEAA+E;AAExE,KAAK,UAAU,iCAAiC;IACrD,MAAM,kBAAkB,GAAG;QACzB,GAAG,8BAAkB,CAAC,yBAAyB,EAAE;QACjD,MAAM;KACP,CAAC;IACF,MAAM,OAAO,GAAwB,EAAE,CAAC;IAExC,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,IAAA,6BAAY,EACnD,kCAAkC,CACnC,CAAC;IAEF,MAAM,UAAU,GAAG,IAAA,yDAA4B,EAAC;QAC9C,6BAA6B,EAAE,IAAA,oCAAkB,GAAE;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,IAAA,oCAAmB,EAAC,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,IAAA,iDAAwB,EACzC,OAAO,EACP,SAAS,EACT,KAAK,CACN,CAAC;wBAEF,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;4BACxB,MAAM,KAAK,CACT,qBAAqB,QAAQ,CAAC,IAAI,4BAA4B,IAAA,iCAAoB,GAAE,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":";;;;;AAQA,8EA+CC;AAvDD,2EAA0E;AAC1E,qDAAqD;AACrD,wEAA0E;AAC1E,sEAAqE;AACrE,4GAAkF;AAClF,wEAA+E;AAC/E,2DAAuE;AAEvE,SAAgB,iCAAiC;IAC/C,MAAM,kBAAkB,GAAG;QACzB,GAAG,8BAAkB,CAAC,yBAAyB,EAAE;QACjD,MAAM;KACP,CAAC;IACF,MAAM,OAAO,GAAwB,EAAE,CAAC;IAExC,MAAM,UAAU,GAAG,IAAA,yDAA4B,EAAC;QAC9C,6BAA6B,EAAE,IAAA,oCAAkB,GAAE;QACnD,+BAA+B,EAAE,gCAAsB;QACvD,gBAAgB,EAAE,uBAAuB;KAC1C,CAAC,CAAC;IAEH,kBAAkB,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;QACvC,MAAM,gBAAgB,GAAG,IAAA,oCAAmB,EAAC,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,IAAA,iDAAwB,EACzC,OAAO,EACP,SAAS,EACT,KAAK,CACN,CAAC;wBAEF,IAAI,OAAO,CAAC,UAAU,CAAC;4BACrB,MAAM,KAAK,CACT,qBAAqB,QAAQ,CAAC,IAAI,4BAA4B,IAAA,iCAAoB,GAAE,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"]}
@@ -6,19 +6,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.generatePrismaJsonSchemas = generatePrismaJsonSchemas;
7
7
  const prisma_json_schema_generator_1 = __importDefault(require("../../../../../utils/prisma/prisma-json-schema-generator"));
8
8
  const prisma_schema_parser_1 = __importDefault(require("../../../../../utils/prisma/prisma-schema-parser"));
9
- async function generatePrismaJsonSchemas(arkosConfig) {
9
+ function generatePrismaJsonSchemas(arkosConfig) {
10
10
  const requiredAppModules = [
11
11
  ...prisma_schema_parser_1.default.getModelsAsArrayOfStrings(),
12
12
  "auth",
13
13
  ];
14
14
  try {
15
- const modelSchemasArray = await Promise.all(requiredAppModules.map(async (modelName) => {
16
- const modelSchemas = await prisma_json_schema_generator_1.default.generateModelSchemas({
15
+ const modelSchemasArray = requiredAppModules.map((modelName) => {
16
+ const modelSchemas = prisma_json_schema_generator_1.default.generateModelSchemas({
17
17
  modelName,
18
18
  arkosConfig,
19
19
  });
20
20
  return modelSchemas;
21
- }));
21
+ });
22
22
  const schemas = modelSchemasArray.reduce((acc, modelSchemas) => {
23
23
  return { ...acc, ...modelSchemas };
24
24
  }, {});
@@ -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":";;;;;AAIA,8DA2BC;AA9BD,4HAAiG;AACjG,4GAAkF;AAE3E,KAAK,UAAU,yBAAyB,CAAC,WAAwB;IACtE,MAAM,kBAAkB,GAAG;QACzB,GAAG,8BAAkB,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,sCAAyB,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":";;;;;AAIA,8DAwBC;AA3BD,4HAAiG;AACjG,4GAAkF;AAElF,SAAgB,yBAAyB,CAAC,WAAwB;IAChE,MAAM,kBAAkB,GAAG;QACzB,GAAG,8BAAkB,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,sCAAyB,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"]}
@@ -8,7 +8,7 @@ const dynamic_loader_1 = require("../../../../../utils/dynamic-loader");
8
8
  const zod_to_json_schema_1 = __importDefault(require("zod-to-json-schema"));
9
9
  const swagger_router_helpers_1 = require("../swagger.router.helpers");
10
10
  const prisma_schema_parser_1 = __importDefault(require("../../../../../utils/prisma/prisma-schema-parser"));
11
- async function generateZodJsonSchemas() {
11
+ function generateZodJsonSchemas() {
12
12
  const requiredAppModules = [
13
13
  ...prisma_schema_parser_1.default.getModelsAsArrayOfStrings(),
14
14
  "auth",