arkos 1.4.0-canary.7 → 1.4.0-canary.71

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 (364) hide show
  1. package/cli.js +2 -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 +31 -40
  8. package/dist/cjs/modules/auth/auth.controller.js.map +1 -1
  9. package/dist/cjs/modules/auth/auth.router.js +29 -21
  10. package/dist/cjs/modules/auth/auth.router.js.map +1 -1
  11. package/dist/cjs/modules/auth/auth.service.js +34 -10
  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 +6 -4
  16. package/dist/cjs/modules/base/base.controller.js.map +1 -1
  17. package/dist/cjs/modules/base/base.middlewares.js +102 -19
  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 +24 -27
  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 +9 -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 +11 -5
  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/index.js.map +1 -1
  79. package/dist/cjs/types/new-arkos-config.js +3 -0
  80. package/dist/cjs/types/new-arkos-config.js.map +1 -0
  81. package/dist/cjs/types/router-config.js.map +1 -1
  82. package/dist/cjs/utils/arkos-router/index.js +89 -37
  83. package/dist/cjs/utils/arkos-router/index.js.map +1 -1
  84. package/dist/cjs/utils/arkos-router/route-config-validator.js +8 -7
  85. package/dist/cjs/utils/arkos-router/route-config-validator.js.map +1 -1
  86. package/dist/cjs/utils/arkos-router/types/index.js.map +1 -1
  87. package/dist/cjs/utils/arkos-router/types/openapi-config.js +3 -0
  88. package/dist/cjs/utils/arkos-router/types/openapi-config.js.map +1 -0
  89. package/dist/cjs/utils/arkos-router/types/upload-config.js +3 -0
  90. package/dist/cjs/utils/arkos-router/types/upload-config.js.map +1 -0
  91. package/dist/cjs/utils/arkos-router/utils/helpers/index.js +24 -6
  92. package/dist/cjs/utils/arkos-router/utils/helpers/index.js.map +1 -1
  93. package/dist/cjs/utils/arkos-router/utils/helpers/upload-manager.js +232 -0
  94. package/dist/cjs/utils/arkos-router/utils/helpers/upload-manager.js.map +1 -0
  95. package/dist/cjs/utils/cli/build.js +9 -13
  96. package/dist/cjs/utils/cli/build.js.map +1 -1
  97. package/dist/cjs/utils/cli/dev.js +7 -7
  98. package/dist/cjs/utils/cli/dev.js.map +1 -1
  99. package/dist/cjs/utils/cli/export-auth-action.js +78 -0
  100. package/dist/cjs/utils/cli/export-auth-action.js.map +1 -0
  101. package/dist/cjs/utils/cli/generate.js +28 -12
  102. package/dist/cjs/utils/cli/generate.js.map +1 -1
  103. package/dist/cjs/utils/cli/index.js +32 -18
  104. package/dist/cjs/utils/cli/index.js.map +1 -1
  105. package/dist/cjs/utils/cli/prisma-generate.js +2 -2
  106. package/dist/cjs/utils/cli/prisma-generate.js.map +1 -1
  107. package/dist/cjs/utils/cli/start.js +12 -52
  108. package/dist/cjs/utils/cli/start.js.map +1 -1
  109. package/dist/cjs/utils/cli/utils/cli.helpers.js +1 -1
  110. package/dist/cjs/utils/cli/utils/runtime-cli-commander.js +58 -0
  111. package/dist/cjs/utils/cli/utils/runtime-cli-commander.js.map +1 -0
  112. package/dist/cjs/utils/cli/utils/template-generator/templates/class-validator/create-dto-template.js +38 -13
  113. package/dist/cjs/utils/cli/utils/template-generator/templates/class-validator/create-dto-template.js.map +1 -1
  114. package/dist/cjs/utils/cli/utils/template-generator/templates/class-validator/update-dto-template.js +44 -17
  115. package/dist/cjs/utils/cli/utils/template-generator/templates/class-validator/update-dto-template.js.map +1 -1
  116. package/dist/cjs/utils/cli/utils/template-generator/templates/{controller-template.js → generate-controller-template.js} +12 -2
  117. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-controller-template.js.map +1 -0
  118. package/dist/cjs/utils/cli/utils/template-generator/templates/hooks-template.js +1 -34
  119. package/dist/cjs/utils/cli/utils/template-generator/templates/hooks-template.js.map +1 -1
  120. package/dist/cjs/utils/cli/utils/template-generator/templates/middlewares-template.js +97 -265
  121. package/dist/cjs/utils/cli/utils/template-generator/templates/middlewares-template.js.map +1 -1
  122. package/dist/cjs/utils/cli/utils/template-generator/templates/query-options-template.js +16 -16
  123. package/dist/cjs/utils/cli/utils/template-generator/templates/query-options-template.js.map +1 -1
  124. package/dist/cjs/utils/cli/utils/template-generator/templates/router-template.js +4 -1
  125. package/dist/cjs/utils/cli/utils/template-generator/templates/router-template.js.map +1 -1
  126. package/dist/cjs/utils/cli/utils/template-generator/templates/service-template.js +8 -32
  127. package/dist/cjs/utils/cli/utils/template-generator/templates/service-template.js.map +1 -1
  128. package/dist/cjs/utils/cli/utils/template-generator/templates/zod/create-schema-template.js +3 -5
  129. package/dist/cjs/utils/cli/utils/template-generator/templates/zod/create-schema-template.js.map +1 -1
  130. package/dist/cjs/utils/cli/utils/template-generator/templates/zod/update-schema-template.js +1 -1
  131. package/dist/cjs/utils/cli/utils/template-generator/templates/zod/update-schema-template.js.map +1 -1
  132. package/dist/cjs/utils/cli/utils/template-generators.js +2 -2
  133. package/dist/cjs/utils/cli/utils/template-generators.js.map +1 -1
  134. package/dist/cjs/utils/cli/utils/watermark-stamper.js +14 -5
  135. package/dist/cjs/utils/cli/utils/watermark-stamper.js.map +1 -1
  136. package/dist/cjs/utils/define-config.js +2 -0
  137. package/dist/cjs/utils/define-config.js.map +1 -0
  138. package/dist/cjs/utils/dotenv.helpers.js +2 -1
  139. package/dist/cjs/utils/dotenv.helpers.js.map +1 -1
  140. package/dist/cjs/utils/dynamic-loader.js +3 -2
  141. package/dist/cjs/utils/dynamic-loader.js.map +1 -1
  142. package/dist/cjs/utils/features/port-and-host-allocator.js +28 -4
  143. package/dist/cjs/utils/features/port-and-host-allocator.js.map +1 -1
  144. package/dist/cjs/utils/helpers/arkos-config.helpers.js +45 -0
  145. package/dist/cjs/utils/helpers/arkos-config.helpers.js.map +1 -0
  146. package/dist/cjs/utils/helpers/dynamic-loader.helpers.js +135 -46
  147. package/dist/cjs/utils/helpers/dynamic-loader.helpers.js.map +1 -1
  148. package/dist/cjs/utils/helpers/fs.helpers.js +1 -4
  149. package/dist/cjs/utils/helpers/fs.helpers.js.map +1 -1
  150. package/dist/cjs/utils/helpers/routers.helpers.js +55 -4
  151. package/dist/cjs/utils/helpers/routers.helpers.js.map +1 -1
  152. package/dist/cjs/utils/prisma/prisma-json-schema-generator.js +20 -31
  153. package/dist/cjs/utils/prisma/prisma-json-schema-generator.js.map +1 -1
  154. package/dist/cjs/utils/prisma/prisma-schema-parser.js +3 -4
  155. package/dist/cjs/utils/prisma/prisma-schema-parser.js.map +1 -1
  156. package/dist/cjs/utils/sheu.js.map +1 -1
  157. package/dist/esm/app.js +104 -72
  158. package/dist/esm/app.js.map +1 -1
  159. package/dist/esm/exports/index.js.map +1 -1
  160. package/dist/esm/exports/services/index.js +2 -1
  161. package/dist/esm/exports/services/index.js.map +1 -1
  162. package/dist/esm/modules/auth/auth.controller.js +32 -41
  163. package/dist/esm/modules/auth/auth.controller.js.map +1 -1
  164. package/dist/esm/modules/auth/auth.router.js +32 -24
  165. package/dist/esm/modules/auth/auth.router.js.map +1 -1
  166. package/dist/esm/modules/auth/auth.service.js +34 -10
  167. package/dist/esm/modules/auth/auth.service.js.map +1 -1
  168. package/dist/esm/modules/auth/utils/services/auth-action.service.js +12 -9
  169. package/dist/esm/modules/auth/utils/services/auth-action.service.js.map +1 -1
  170. package/dist/esm/modules/base/base.controller.js +6 -4
  171. package/dist/esm/modules/base/base.controller.js.map +1 -1
  172. package/dist/esm/modules/base/base.middlewares.js +102 -18
  173. package/dist/esm/modules/base/base.middlewares.js.map +1 -1
  174. package/dist/esm/modules/base/base.router.js +4 -3
  175. package/dist/esm/modules/base/base.router.js.map +1 -1
  176. package/dist/esm/modules/base/base.service.js +68 -66
  177. package/dist/esm/modules/base/base.service.js.map +1 -1
  178. package/dist/esm/modules/base/utils/helpers/base.router.helpers.js +19 -41
  179. package/dist/esm/modules/base/utils/helpers/base.router.helpers.js.map +1 -1
  180. package/dist/esm/modules/base/utils/helpers/base.service.helpers.js +22 -6
  181. package/dist/esm/modules/base/utils/helpers/base.service.helpers.js.map +1 -1
  182. package/dist/esm/modules/debugger/debugger.service.js +11 -4
  183. package/dist/esm/modules/debugger/debugger.service.js.map +1 -1
  184. package/dist/esm/modules/debugger/utils/loaded-components-logger.js +1 -1
  185. package/dist/esm/modules/debugger/utils/loaded-components-logger.js.map +1 -1
  186. package/dist/esm/modules/email/email.service.js +24 -27
  187. package/dist/esm/modules/email/email.service.js.map +1 -1
  188. package/dist/esm/modules/error-handler/error-handler.controller.js +22 -12
  189. package/dist/esm/modules/error-handler/error-handler.controller.js.map +1 -1
  190. package/dist/esm/modules/error-handler/utils/app-error.js +14 -3
  191. package/dist/esm/modules/error-handler/utils/app-error.js.map +1 -1
  192. package/dist/esm/modules/error-handler/utils/error-handler.helpers.js +1 -1
  193. package/dist/esm/modules/error-handler/utils/error-handler.helpers.js.map +1 -1
  194. package/dist/esm/modules/file-upload/file-upload.controller.js +9 -6
  195. package/dist/esm/modules/file-upload/file-upload.controller.js.map +1 -1
  196. package/dist/esm/modules/file-upload/file-upload.router.js +13 -5
  197. package/dist/esm/modules/file-upload/file-upload.router.js.map +1 -1
  198. package/dist/esm/modules/file-upload/file-upload.service.js +37 -47
  199. package/dist/esm/modules/file-upload/file-upload.service.js.map +1 -1
  200. package/dist/esm/modules/file-upload/utils/helpers/file-extensions.js +131 -0
  201. package/dist/esm/modules/file-upload/utils/helpers/file-extensions.js.map +1 -0
  202. package/dist/esm/modules/file-upload/utils/helpers/file-upload.helpers.js +9 -5
  203. package/dist/esm/modules/file-upload/utils/helpers/file-upload.helpers.js.map +1 -1
  204. package/dist/esm/modules/swagger/swagger.router.js +11 -5
  205. package/dist/esm/modules/swagger/swagger.router.js.map +1 -1
  206. package/dist/esm/modules/swagger/utils/helpers/class-validator-to-json-schema.js +48 -0
  207. package/dist/esm/modules/swagger/utils/helpers/class-validator-to-json-schema.js.map +1 -0
  208. package/dist/esm/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js +10 -10
  209. package/dist/esm/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js.map +1 -1
  210. package/dist/esm/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.js +413 -0
  211. package/dist/esm/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.js.map +1 -0
  212. package/dist/esm/modules/swagger/utils/helpers/get-swagger-default-configs.js +3 -3
  213. package/dist/esm/modules/swagger/utils/helpers/get-swagger-default-configs.js.map +1 -1
  214. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js +3 -5
  215. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js.map +1 -1
  216. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +4 -4
  217. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js.map +1 -1
  218. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js +1 -1
  219. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js.map +1 -1
  220. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js +9 -9
  221. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js.map +1 -1
  222. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes-paths.js +9 -9
  223. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes-paths.js.map +1 -1
  224. package/dist/esm/modules/swagger/utils/helpers/missing-json-schemas-generator.js +6 -8
  225. package/dist/esm/modules/swagger/utils/helpers/missing-json-schemas-generator.js.map +1 -1
  226. package/dist/esm/modules/swagger/utils/helpers/openapi-schema-converter.js +199 -0
  227. package/dist/esm/modules/swagger/utils/helpers/openapi-schema-converter.js.map +1 -0
  228. package/dist/esm/modules/swagger/utils/helpers/swagger.router.helpers.js +9 -9
  229. package/dist/esm/modules/swagger/utils/helpers/swagger.router.helpers.js.map +1 -1
  230. package/dist/esm/server.js +31 -34
  231. package/dist/esm/server.js.map +1 -1
  232. package/dist/esm/types/arkos-config.js.map +1 -1
  233. package/dist/esm/types/index.js.map +1 -1
  234. package/dist/esm/types/new-arkos-config.js +2 -0
  235. package/dist/esm/types/new-arkos-config.js.map +1 -0
  236. package/dist/esm/types/router-config.js.map +1 -1
  237. package/dist/esm/utils/arkos-router/index.js +89 -37
  238. package/dist/esm/utils/arkos-router/index.js.map +1 -1
  239. package/dist/esm/utils/arkos-router/route-config-validator.js +8 -7
  240. package/dist/esm/utils/arkos-router/route-config-validator.js.map +1 -1
  241. package/dist/esm/utils/arkos-router/types/index.js.map +1 -1
  242. package/dist/esm/utils/arkos-router/types/openapi-config.js +2 -0
  243. package/dist/esm/utils/arkos-router/types/openapi-config.js.map +1 -0
  244. package/dist/esm/utils/arkos-router/types/upload-config.js +2 -0
  245. package/dist/esm/utils/arkos-router/types/upload-config.js.map +1 -0
  246. package/dist/esm/utils/arkos-router/utils/helpers/index.js +23 -5
  247. package/dist/esm/utils/arkos-router/utils/helpers/index.js.map +1 -1
  248. package/dist/esm/utils/arkos-router/utils/helpers/upload-manager.js +227 -0
  249. package/dist/esm/utils/arkos-router/utils/helpers/upload-manager.js.map +1 -0
  250. package/dist/esm/utils/cli/build.js +9 -13
  251. package/dist/esm/utils/cli/build.js.map +1 -1
  252. package/dist/esm/utils/cli/dev.js +7 -7
  253. package/dist/esm/utils/cli/dev.js.map +1 -1
  254. package/dist/esm/utils/cli/export-auth-action.js +72 -0
  255. package/dist/esm/utils/cli/export-auth-action.js.map +1 -0
  256. package/dist/esm/utils/cli/generate.js +28 -12
  257. package/dist/esm/utils/cli/generate.js.map +1 -1
  258. package/dist/esm/utils/cli/index.js +32 -18
  259. package/dist/esm/utils/cli/index.js.map +1 -1
  260. package/dist/esm/utils/cli/prisma-generate.js +2 -2
  261. package/dist/esm/utils/cli/prisma-generate.js.map +1 -1
  262. package/dist/esm/utils/cli/start.js +12 -52
  263. package/dist/esm/utils/cli/start.js.map +1 -1
  264. package/dist/esm/utils/cli/utils/cli.helpers.js +1 -1
  265. package/dist/esm/utils/cli/utils/runtime-cli-commander.js +53 -0
  266. package/dist/esm/utils/cli/utils/runtime-cli-commander.js.map +1 -0
  267. package/dist/esm/utils/cli/utils/template-generator/templates/class-validator/create-dto-template.js +38 -13
  268. package/dist/esm/utils/cli/utils/template-generator/templates/class-validator/create-dto-template.js.map +1 -1
  269. package/dist/esm/utils/cli/utils/template-generator/templates/class-validator/update-dto-template.js +44 -17
  270. package/dist/esm/utils/cli/utils/template-generator/templates/class-validator/update-dto-template.js.map +1 -1
  271. package/dist/esm/utils/cli/utils/template-generator/templates/{controller-template.js → generate-controller-template.js} +12 -2
  272. package/dist/esm/utils/cli/utils/template-generator/templates/generate-controller-template.js.map +1 -0
  273. package/dist/esm/utils/cli/utils/template-generator/templates/hooks-template.js +1 -34
  274. package/dist/esm/utils/cli/utils/template-generator/templates/hooks-template.js.map +1 -1
  275. package/dist/esm/utils/cli/utils/template-generator/templates/middlewares-template.js +97 -265
  276. package/dist/esm/utils/cli/utils/template-generator/templates/middlewares-template.js.map +1 -1
  277. package/dist/esm/utils/cli/utils/template-generator/templates/query-options-template.js +16 -16
  278. package/dist/esm/utils/cli/utils/template-generator/templates/query-options-template.js.map +1 -1
  279. package/dist/esm/utils/cli/utils/template-generator/templates/router-template.js +4 -1
  280. package/dist/esm/utils/cli/utils/template-generator/templates/router-template.js.map +1 -1
  281. package/dist/esm/utils/cli/utils/template-generator/templates/service-template.js +8 -32
  282. package/dist/esm/utils/cli/utils/template-generator/templates/service-template.js.map +1 -1
  283. package/dist/esm/utils/cli/utils/template-generator/templates/zod/create-schema-template.js +3 -5
  284. package/dist/esm/utils/cli/utils/template-generator/templates/zod/create-schema-template.js.map +1 -1
  285. package/dist/esm/utils/cli/utils/template-generator/templates/zod/update-schema-template.js +1 -1
  286. package/dist/esm/utils/cli/utils/template-generator/templates/zod/update-schema-template.js.map +1 -1
  287. package/dist/esm/utils/cli/utils/template-generators.js +1 -1
  288. package/dist/esm/utils/cli/utils/template-generators.js.map +1 -1
  289. package/dist/esm/utils/cli/utils/watermark-stamper.js +11 -5
  290. package/dist/esm/utils/cli/utils/watermark-stamper.js.map +1 -1
  291. package/dist/esm/utils/define-config.js +2 -0
  292. package/dist/esm/utils/define-config.js.map +1 -0
  293. package/dist/esm/utils/dotenv.helpers.js +2 -1
  294. package/dist/esm/utils/dotenv.helpers.js.map +1 -1
  295. package/dist/esm/utils/dynamic-loader.js +4 -3
  296. package/dist/esm/utils/dynamic-loader.js.map +1 -1
  297. package/dist/esm/utils/features/port-and-host-allocator.js +28 -4
  298. package/dist/esm/utils/features/port-and-host-allocator.js.map +1 -1
  299. package/dist/esm/utils/helpers/arkos-config.helpers.js +38 -0
  300. package/dist/esm/utils/helpers/arkos-config.helpers.js.map +1 -0
  301. package/dist/esm/utils/helpers/dynamic-loader.helpers.js +134 -46
  302. package/dist/esm/utils/helpers/dynamic-loader.helpers.js.map +1 -1
  303. package/dist/esm/utils/helpers/fs.helpers.js +1 -4
  304. package/dist/esm/utils/helpers/fs.helpers.js.map +1 -1
  305. package/dist/esm/utils/helpers/routers.helpers.js +53 -4
  306. package/dist/esm/utils/helpers/routers.helpers.js.map +1 -1
  307. package/dist/esm/utils/prisma/prisma-json-schema-generator.js +20 -31
  308. package/dist/esm/utils/prisma/prisma-json-schema-generator.js.map +1 -1
  309. package/dist/esm/utils/prisma/prisma-schema-parser.js +3 -4
  310. package/dist/esm/utils/prisma/prisma-schema-parser.js.map +1 -1
  311. package/dist/esm/utils/sheu.js.map +1 -1
  312. package/dist/types/app.d.ts +2 -2
  313. package/dist/types/exports/index.d.ts +3 -2
  314. package/dist/types/exports/services/index.d.ts +2 -1
  315. package/dist/types/modules/auth/auth.controller.d.ts +2 -2
  316. package/dist/types/modules/auth/auth.router.d.ts +2 -3
  317. package/dist/types/modules/auth/auth.service.d.ts +6 -0
  318. package/dist/types/modules/auth/utils/services/auth-action.service.d.ts +1 -0
  319. package/dist/types/modules/base/base.middlewares.d.ts +1 -2
  320. package/dist/types/modules/base/base.router.d.ts +2 -2
  321. package/dist/types/modules/base/base.service.d.ts +2 -1
  322. package/dist/types/modules/base/utils/helpers/base.router.helpers.d.ts +2 -4
  323. package/dist/types/modules/debugger/debugger.service.d.ts +1 -1
  324. package/dist/types/modules/error-handler/utils/app-error.d.ts +1 -1
  325. package/dist/types/modules/file-upload/file-upload.router.d.ts +2 -2
  326. package/dist/types/modules/file-upload/file-upload.service.d.ts +24 -2
  327. package/dist/types/modules/file-upload/utils/helpers/file-extensions.d.ts +3 -0
  328. package/dist/types/modules/file-upload/utils/helpers/file-upload.helpers.d.ts +2 -1
  329. package/dist/types/modules/swagger/swagger.router.d.ts +1 -1
  330. package/dist/types/modules/swagger/utils/helpers/class-validator-to-json-schema.d.ts +3 -0
  331. package/dist/types/modules/swagger/utils/helpers/get-authentication-json-schema-paths.d.ts +2 -2
  332. package/dist/types/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.d.ts +3 -0
  333. package/dist/types/modules/swagger/utils/helpers/get-swagger-default-configs.d.ts +2 -45
  334. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.d.ts +1 -1
  335. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.d.ts +1 -1
  336. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.d.ts +1 -1
  337. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.d.ts +1 -1
  338. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes-paths.d.ts +1 -1
  339. package/dist/types/modules/swagger/utils/helpers/missing-json-schemas-generator.d.ts +1 -1
  340. package/dist/types/modules/swagger/utils/helpers/openapi-schema-converter.d.ts +17 -0
  341. package/dist/types/modules/swagger/utils/helpers/swagger.router.helpers.d.ts +3 -3
  342. package/dist/types/server.d.ts +4 -6
  343. package/dist/types/types/arkos-config.d.ts +4 -181
  344. package/dist/types/types/index.d.ts +5 -4
  345. package/dist/types/types/new-arkos-config.d.ts +167 -0
  346. package/dist/types/types/router-config.d.ts +16 -23
  347. package/dist/types/utils/arkos-router/types/index.d.ts +39 -9
  348. package/dist/types/utils/arkos-router/types/openapi-config.d.ts +35 -0
  349. package/dist/types/utils/arkos-router/types/upload-config.d.ts +21 -0
  350. package/dist/types/utils/arkos-router/utils/helpers/upload-manager.d.ts +13 -0
  351. package/dist/types/utils/cli/export-auth-action.d.ts +4 -0
  352. package/dist/types/utils/cli/generate.d.ts +2 -1
  353. package/dist/types/utils/cli/utils/runtime-cli-commander.d.ts +11 -0
  354. package/dist/types/utils/cli/utils/watermark-stamper.d.ts +3 -3
  355. package/dist/types/utils/define-config.d.ts +0 -0
  356. package/dist/types/utils/features/port-and-host-allocator.d.ts +4 -2
  357. package/dist/types/utils/helpers/arkos-config.helpers.d.ts +7 -0
  358. package/dist/types/utils/helpers/dynamic-loader.helpers.d.ts +1 -0
  359. package/dist/types/utils/helpers/routers.helpers.d.ts +8 -0
  360. package/dist/types/utils/prisma/prisma-json-schema-generator.d.ts +1 -1
  361. package/package.json +3 -2
  362. package/dist/cjs/utils/cli/utils/template-generator/templates/controller-template.js.map +0 -1
  363. package/dist/esm/utils/cli/utils/template-generator/templates/controller-template.js.map +0 -1
  364. /package/dist/types/utils/cli/utils/template-generator/templates/{controller-template.d.ts → generate-controller-template.d.ts} +0 -0
package/cli.js CHANGED
@@ -16,11 +16,8 @@
16
16
  console.error("Error checking package.json:", err);
17
17
  }
18
18
 
19
- if (useEsm) {
20
- await import("./dist/esm/utils/cli/index.js");
21
- } else {
22
- await import("./dist/cjs/utils/cli/index.js");
23
- }
19
+ if (useEsm) await import("./dist/esm/utils/cli/index.js");
20
+ else await import("./dist/cjs/utils/cli/index.js");
24
21
  } catch (err) {
25
22
  console.error("Failed to load CLI:", err);
26
23
  process.exit(1);
package/dist/cjs/app.js CHANGED
@@ -55,26 +55,34 @@ const swagger_router_1 = require("./modules/swagger/swagger.router");
55
55
  const dynamic_loader_1 = require("./utils/dynamic-loader");
56
56
  const error_handler_1 = require("./exports/error-handler");
57
57
  const debugger_service_1 = __importDefault(require("./modules/debugger/debugger.service"));
58
+ const exports_1 = require("./exports");
59
+ const arkos_config_helpers_1 = require("./utils/helpers/arkos-config.helpers");
58
60
  exports.app = (0, express_1.default)();
59
61
  const knowModulesRouter = (0, express_1.Router)();
60
- async function bootstrap(arkosConfig) {
62
+ async function bootstrap(initConfig) {
63
+ const arkosConfig = (0, exports_1.getArkosConfig)();
61
64
  await Promise.all([
62
65
  (0, prisma_helpers_1.loadPrismaModule)(),
63
66
  (0, dynamic_loader_1.loadAllModuleComponents)(arkosConfig),
64
- arkosConfig?.configureApp && (await arkosConfig?.configureApp(exports.app)),
67
+ initConfig?.configureApp && (await initConfig?.configureApp(exports.app)),
65
68
  ]);
66
69
  const middlewaresConfig = arkosConfig?.middlewares;
67
- const disabledMiddlewares = middlewaresConfig?.disable || [];
68
- const replacedMiddlewares = middlewaresConfig?.replace || {};
69
- exports.app.use(debugger_service_1.default.logLevel2RequestInfo);
70
- if (!disabledMiddlewares?.includes?.("compression"))
71
- exports.app.use(replacedMiddlewares.compression ||
72
- (0, compression_1.default)(arkosConfig?.compressionOptions));
73
- if (!disabledMiddlewares?.includes?.("global-rate-limit"))
74
- exports.app.use(replacedMiddlewares.globalRateLimit ||
75
- (0, express_rate_limit_1.rateLimit)((0, deepmerge_helper_1.default)({
70
+ if (middlewaresConfig?.compression !== false) {
71
+ if (typeof middlewaresConfig?.compression === "function") {
72
+ exports.app.use(middlewaresConfig.compression);
73
+ }
74
+ else {
75
+ exports.app.use((0, compression_1.default)(middlewaresConfig?.compression || {}));
76
+ }
77
+ }
78
+ if (middlewaresConfig?.rateLimit !== false) {
79
+ if (typeof middlewaresConfig?.rateLimit === "function") {
80
+ exports.app.use(middlewaresConfig.rateLimit);
81
+ }
82
+ else {
83
+ exports.app.use((0, express_rate_limit_1.rateLimit)((0, deepmerge_helper_1.default)({
76
84
  windowMs: 60 * 1000,
77
- limit: 500,
85
+ limit: 300,
78
86
  standardHeaders: "draft-7",
79
87
  legacyHeaders: false,
80
88
  handler: (_, res) => {
@@ -82,26 +90,28 @@ async function bootstrap(arkosConfig) {
82
90
  message: "Too many requests, please try again later",
83
91
  });
84
92
  },
85
- }, arkosConfig?.globalRequestRateLimitOptions || {})));
86
- if (!disabledMiddlewares?.includes?.("cors"))
87
- exports.app.use(replacedMiddlewares.cors ||
88
- (0, cors_1.default)(arkosConfig?.cors?.customHandler
89
- ? arkosConfig.cors.customHandler
93
+ }, middlewaresConfig?.rateLimit || {})));
94
+ }
95
+ }
96
+ if (middlewaresConfig?.cors !== false) {
97
+ if (typeof middlewaresConfig?.cors === "function") {
98
+ exports.app.use(middlewaresConfig.cors);
99
+ }
100
+ else {
101
+ exports.app.use((0, cors_1.default)(middlewaresConfig?.cors?.customHandler
102
+ ? middlewaresConfig.cors.customHandler
90
103
  : (0, deepmerge_helper_1.default)({
91
104
  origin: (origin, cb) => {
92
- const allowed = arkosConfig?.cors?.allowedOrigins;
93
- if (allowed === "*") {
105
+ const allowed = middlewaresConfig?.cors
106
+ ?.allowedOrigins;
107
+ if (allowed === "*")
94
108
  cb(null, true);
95
- }
96
- else if (Array.isArray(allowed)) {
109
+ else if (Array.isArray(allowed))
97
110
  cb(null, !origin || allowed?.includes?.(origin));
98
- }
99
- else if (typeof allowed === "string") {
111
+ else if (typeof allowed === "string")
100
112
  cb(null, !origin || allowed === origin);
101
- }
102
- else {
113
+ else
103
114
  cb(null, false);
104
- }
105
115
  },
106
116
  methods: ["GET", "POST", "PUT", "DELETE", "PATCH", "OPTIONS"],
107
117
  allowedHeaders: [
@@ -110,68 +120,90 @@ async function bootstrap(arkosConfig) {
110
120
  "Connection",
111
121
  ],
112
122
  credentials: true,
113
- }, arkosConfig?.cors?.options || {})));
114
- if (!disabledMiddlewares?.includes?.("express-json"))
115
- exports.app.use(replacedMiddlewares.expressJson ||
116
- express_1.default.json(arkosConfig?.jsonBodyParserOptions));
117
- if (!disabledMiddlewares?.includes?.("cookie-parser"))
118
- exports.app.use(replacedMiddlewares.cookieParser ||
119
- (0, cookie_parser_1.default)(...[...(arkosConfig?.cookieParserParameters || [])]));
120
- if (!disabledMiddlewares?.includes?.("query-parser"))
121
- exports.app.use(replacedMiddlewares.queryParser ||
122
- (0, query_parser_helpers_1.queryParser)((0, deepmerge_helper_1.default)({
123
+ }, middlewaresConfig?.cors?.options || {})));
124
+ }
125
+ }
126
+ if (middlewaresConfig?.expressJson !== false) {
127
+ if (typeof middlewaresConfig?.expressJson === "function") {
128
+ exports.app.use(middlewaresConfig.expressJson);
129
+ }
130
+ else {
131
+ exports.app.use(express_1.default.json(middlewaresConfig?.expressJson || {}));
132
+ }
133
+ }
134
+ if (middlewaresConfig?.cookieParser !== false) {
135
+ if (typeof middlewaresConfig?.cookieParser === "function") {
136
+ exports.app.use(middlewaresConfig.cookieParser);
137
+ }
138
+ else {
139
+ const params = Array.isArray(middlewaresConfig?.cookieParser)
140
+ ? middlewaresConfig.cookieParser
141
+ : [];
142
+ exports.app.use((0, cookie_parser_1.default)(...params));
143
+ }
144
+ }
145
+ if (middlewaresConfig?.queryParser !== false) {
146
+ if (typeof middlewaresConfig?.queryParser === "function") {
147
+ exports.app.use(middlewaresConfig.queryParser);
148
+ }
149
+ else {
150
+ exports.app.use((0, query_parser_helpers_1.queryParser)((0, deepmerge_helper_1.default)({
123
151
  parseNull: true,
124
152
  parseUndefined: true,
125
153
  parseBoolean: true,
126
- }, arkosConfig?.queryParserOptions || {})));
127
- if (!disabledMiddlewares?.includes?.("request-logger"))
128
- exports.app.use(replacedMiddlewares.requestLogger || base_middlewares_1.handleRequestLogs);
129
- if (arkosConfig?.middlewares?.additional)
130
- arkosConfig.middlewares.additional.forEach((middleware) => {
131
- exports.app.use(middleware);
132
- });
154
+ parseNumber: true,
155
+ }, middlewaresConfig?.queryParser || {})));
156
+ }
157
+ }
158
+ if (middlewaresConfig?.requestLogger !== false) {
159
+ if (typeof middlewaresConfig?.requestLogger === "function") {
160
+ exports.app.use(middlewaresConfig.requestLogger);
161
+ }
162
+ else {
163
+ exports.app.use(base_middlewares_1.handleRequestLogs);
164
+ }
165
+ }
166
+ exports.app.use(debugger_service_1.default.logRequestInfo);
133
167
  const routersConfig = arkosConfig?.routers;
134
- const disabledRouters = routersConfig?.disable || [];
135
- const replacedRouters = routersConfig?.replace || {};
136
- if (!disabledRouters?.includes?.("welcome-endpoint"))
137
- exports.app.get("/api", replacedRouters.welcomeEndpoint ||
138
- ((_, res) => {
168
+ if (routersConfig?.welcomeRoute !== false) {
169
+ if (typeof routersConfig?.welcomeRoute === "function") {
170
+ exports.app.get("/api", routersConfig.welcomeRoute);
171
+ }
172
+ else {
173
+ exports.app.get("/api", (_, res) => {
139
174
  res.status(200).json({ message: arkosConfig.welcomeMessage });
140
- }));
141
- if (!disabledRouters?.includes?.("file-upload")) {
142
- const fileUploadRouter = replacedRouters.fileUpload
143
- ? await replacedRouters.fileUpload(arkosConfig)
144
- : await (0, file_upload_router_1.getFileUploadRouter)(arkosConfig);
145
- knowModulesRouter.use(fileUploadRouter);
175
+ });
176
+ }
146
177
  }
147
- if (!disabledRouters?.includes?.("auth-router") &&
148
- arkosConfig.authentication) {
149
- const authRouter = replacedRouters.authRouter
150
- ? await replacedRouters.authRouter(arkosConfig)
151
- : await (0, auth_router_1.getAuthRouter)(arkosConfig);
178
+ if (initConfig?.use)
179
+ for (const mwOrRouter of initConfig.use) {
180
+ exports.app.use(mwOrRouter);
181
+ }
182
+ const fileUploadRouter = (0, file_upload_router_1.getFileUploadRouter)(arkosConfig);
183
+ knowModulesRouter.use(fileUploadRouter);
184
+ if ((0, arkos_config_helpers_1.isAuthenticationEnabled)()) {
185
+ const authRouter = (0, auth_router_1.getAuthRouter)(arkosConfig);
152
186
  knowModulesRouter.use("/api", authRouter);
153
187
  }
154
- if (!disabledRouters?.includes?.("prisma-models-router")) {
155
- const modelsRouter = replacedRouters.prismaModelsRouter
156
- ? await replacedRouters.prismaModelsRouter(arkosConfig)
157
- : await (0, base_router_1.getPrismaModelsRouter)(arkosConfig);
158
- knowModulesRouter.use("/api", modelsRouter);
159
- }
188
+ const modelsRouter = (0, base_router_1.getPrismaModelsRouter)(arkosConfig);
189
+ knowModulesRouter.use("/api", modelsRouter);
160
190
  exports.app.use(knowModulesRouter);
161
191
  exports.app.use("/api", (0, base_router_1.getAvailableResourcesAndRoutesRouter)());
162
192
  if (arkosConfig.swagger &&
163
193
  (process.env.ARKOS_BUILD !== "true" ||
164
194
  arkosConfig.swagger.enableAfterBuild === true))
165
195
  exports.app.use("/api", await (0, swagger_router_1.getSwaggerRouter)(arkosConfig, exports.app));
166
- if (routersConfig?.additional)
167
- routersConfig.additional.forEach((router) => {
168
- exports.app.use(router);
169
- });
170
196
  exports.app.use("*", (req) => {
171
- throw new error_handler_1.AppError("Route not found", 404, { route: req.route }, "RouteNotFound");
197
+ throw new error_handler_1.AppError("Route not found", 404, { route: req.path }, "RouteNotFound");
172
198
  });
173
- if (!disabledMiddlewares?.includes?.("global-error-handler"))
174
- exports.app.use(replacedMiddlewares.globalErrorHandler || error_handler_controller_1.default);
199
+ if (middlewaresConfig?.errorHandler !== false) {
200
+ if (typeof middlewaresConfig?.errorHandler === "function") {
201
+ exports.app.use(middlewaresConfig.errorHandler);
202
+ }
203
+ else {
204
+ exports.app.use(error_handler_controller_1.default);
205
+ }
206
+ }
175
207
  return exports.app;
176
208
  }
177
209
  //# sourceMappingURL=app.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/app.ts"],"names":[],"mappings":"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","sourcesContent":["import express, { Router } from \"express\";\nimport cors from \"cors\";\nimport cookieParser from \"cookie-parser\";\nimport { getAuthRouter } from \"./modules/auth/auth.router\";\nimport {\n getPrismaModelsRouter,\n getAvailableResourcesAndRoutesRouter,\n} from \"./modules/base/base.router\";\nimport errorHandler from \"./modules/error-handler/error-handler.controller\";\nimport { rateLimit } from \"express-rate-limit\";\nimport compression from \"compression\";\nimport { handleRequestLogs } from \"./modules/base/base.middlewares\";\nimport { loadPrismaModule } from \"./utils/helpers/prisma.helpers\";\nimport { getFileUploadRouter } from \"./modules/file-upload/file-upload.router\";\nimport { ArkosConfig } from \"./types/arkos-config\";\nimport { queryParser } from \"./utils/helpers/query-parser.helpers\";\nimport deepmerge from \"./utils/helpers/deepmerge.helper\";\nimport { getSwaggerRouter } from \"./modules/swagger/swagger.router\";\nimport { loadAllModuleComponents } from \"./utils/dynamic-loader\";\nimport { AppError } from \"./exports/error-handler\";\nimport debuggerService from \"./modules/debugger/debugger.service\";\n\nexport const app: express.Express = express();\nconst knowModulesRouter = Router();\n\nexport async function bootstrap(\n arkosConfig: ArkosConfig\n): Promise<express.Express> {\n await Promise.all([\n loadPrismaModule(),\n loadAllModuleComponents(arkosConfig),\n arkosConfig?.configureApp && (await arkosConfig?.configureApp(app)),\n ]);\n\n const middlewaresConfig = arkosConfig?.middlewares;\n const disabledMiddlewares = middlewaresConfig?.disable || [];\n const replacedMiddlewares = middlewaresConfig?.replace || {};\n\n app.use(debuggerService.logLevel2RequestInfo);\n\n if (!disabledMiddlewares?.includes?.(\"compression\"))\n app.use(\n replacedMiddlewares.compression ||\n compression(arkosConfig?.compressionOptions)\n );\n\n if (!disabledMiddlewares?.includes?.(\"global-rate-limit\"))\n app.use(\n replacedMiddlewares.globalRateLimit ||\n rateLimit(\n deepmerge(\n {\n windowMs: 60 * 1000,\n limit: 500,\n standardHeaders: \"draft-7\",\n legacyHeaders: false,\n handler: (_, res) => {\n res.status(429).json({\n message: \"Too many requests, please try again later\",\n });\n },\n },\n arkosConfig?.globalRequestRateLimitOptions || {}\n )\n )\n );\n\n if (!disabledMiddlewares?.includes?.(\"cors\"))\n app.use(\n replacedMiddlewares.cors ||\n cors(\n arkosConfig?.cors?.customHandler\n ? arkosConfig.cors.customHandler\n : deepmerge(\n {\n origin: (\n origin: string,\n cb: (err: Error | null, allow?: boolean) => void\n ) => {\n const allowed = arkosConfig?.cors?.allowedOrigins;\n\n if (allowed === \"*\") {\n cb(null, true);\n } else if (Array.isArray(allowed)) {\n cb(null, !origin || allowed?.includes?.(origin));\n } else if (typeof allowed === \"string\") {\n cb(null, !origin || allowed === origin);\n } else {\n cb(null, false);\n }\n },\n methods: [\"GET\", \"POST\", \"PUT\", \"DELETE\", \"PATCH\", \"OPTIONS\"],\n allowedHeaders: [\n \"Content-Type\",\n \"Authorization\",\n \"Connection\",\n ],\n credentials: true,\n },\n arkosConfig?.cors?.options || {}\n )\n )\n );\n\n if (!disabledMiddlewares?.includes?.(\"express-json\"))\n app.use(\n replacedMiddlewares.expressJson ||\n express.json(arkosConfig?.jsonBodyParserOptions)\n );\n\n if (!disabledMiddlewares?.includes?.(\"cookie-parser\"))\n app.use(\n replacedMiddlewares.cookieParser ||\n cookieParser(...[...(arkosConfig?.cookieParserParameters || [])])\n );\n\n if (!disabledMiddlewares?.includes?.(\"query-parser\"))\n app.use(\n replacedMiddlewares.queryParser ||\n queryParser(\n deepmerge(\n {\n parseNull: true,\n parseUndefined: true,\n parseBoolean: true,\n },\n arkosConfig?.queryParserOptions || {}\n )\n )\n );\n\n if (!disabledMiddlewares?.includes?.(\"request-logger\"))\n app.use(replacedMiddlewares.requestLogger || handleRequestLogs);\n\n if (arkosConfig?.middlewares?.additional)\n arkosConfig.middlewares.additional.forEach((middleware) => {\n app.use(middleware);\n });\n\n const routersConfig = arkosConfig?.routers;\n const disabledRouters = routersConfig?.disable || [];\n const replacedRouters = routersConfig?.replace || {};\n\n if (!disabledRouters?.includes?.(\"welcome-endpoint\"))\n app.get(\n \"/api\",\n replacedRouters.welcomeEndpoint ||\n ((_, res) => {\n res.status(200).json({ message: arkosConfig.welcomeMessage });\n })\n );\n\n if (!disabledRouters?.includes?.(\"file-upload\")) {\n const fileUploadRouter = replacedRouters.fileUpload\n ? await replacedRouters.fileUpload(arkosConfig)\n : await getFileUploadRouter(arkosConfig);\n knowModulesRouter.use(fileUploadRouter);\n }\n\n if (\n !disabledRouters?.includes?.(\"auth-router\") &&\n arkosConfig.authentication\n ) {\n const authRouter = replacedRouters.authRouter\n ? await replacedRouters.authRouter(arkosConfig)\n : await getAuthRouter(arkosConfig);\n knowModulesRouter.use(\"/api\", authRouter);\n }\n\n if (!disabledRouters?.includes?.(\"prisma-models-router\")) {\n const modelsRouter = replacedRouters.prismaModelsRouter\n ? await replacedRouters.prismaModelsRouter(arkosConfig)\n : await getPrismaModelsRouter(arkosConfig);\n knowModulesRouter.use(\"/api\", modelsRouter);\n }\n\n app.use(knowModulesRouter);\n app.use(\"/api\", getAvailableResourcesAndRoutesRouter());\n\n if (\n arkosConfig.swagger &&\n (process.env.ARKOS_BUILD !== \"true\" ||\n arkosConfig.swagger.enableAfterBuild === true)\n )\n app.use(\"/api\", await getSwaggerRouter(arkosConfig, app));\n\n if (routersConfig?.additional)\n routersConfig.additional.forEach((router) => {\n app.use(router);\n });\n\n app.use(\"*\", (req) => {\n throw new AppError(\n \"Route not found\",\n 404,\n { route: req.route },\n \"RouteNotFound\"\n );\n });\n\n if (!disabledMiddlewares?.includes?.(\"global-error-handler\"))\n app.use(replacedMiddlewares.globalErrorHandler || errorHandler);\n\n return app;\n}\n"]}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/app.ts"],"names":[],"mappings":"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","sourcesContent":["import express, { IRouter, Router } from \"express\";\nimport cors from \"cors\";\nimport cookieParser from \"cookie-parser\";\nimport { getAuthRouter } from \"./modules/auth/auth.router\";\nimport {\n getPrismaModelsRouter,\n getAvailableResourcesAndRoutesRouter,\n} from \"./modules/base/base.router\";\nimport errorHandler from \"./modules/error-handler/error-handler.controller\";\nimport { rateLimit } from \"express-rate-limit\";\nimport compression from \"compression\";\nimport { handleRequestLogs } from \"./modules/base/base.middlewares\";\nimport { loadPrismaModule } from \"./utils/helpers/prisma.helpers\";\nimport { getFileUploadRouter } from \"./modules/file-upload/file-upload.router\";\nimport { queryParser } from \"./utils/helpers/query-parser.helpers\";\nimport deepmerge from \"./utils/helpers/deepmerge.helper\";\nimport { getSwaggerRouter } from \"./modules/swagger/swagger.router\";\nimport { loadAllModuleComponents } from \"./utils/dynamic-loader\";\nimport { AppError } from \"./exports/error-handler\";\nimport debuggerService from \"./modules/debugger/debugger.service\";\nimport { getArkosConfig } from \"./exports\";\nimport { ArkosInitConfig } from \"./types/arkos-config\";\nimport { isAuthenticationEnabled } from \"./utils/helpers/arkos-config.helpers\";\nexport const app: express.Express = express();\nconst knowModulesRouter = Router();\n\nexport async function bootstrap(\n initConfig: ArkosInitConfig\n): Promise<express.Express> {\n const arkosConfig = getArkosConfig();\n\n await Promise.all([\n loadPrismaModule(),\n loadAllModuleComponents(arkosConfig),\n initConfig?.configureApp && (await initConfig?.configureApp(app)),\n ]);\n\n const middlewaresConfig = arkosConfig?.middlewares;\n\n if (middlewaresConfig?.compression !== false) {\n if (typeof middlewaresConfig?.compression === \"function\") {\n app.use(middlewaresConfig.compression);\n } else {\n app.use(compression(middlewaresConfig?.compression || {}));\n }\n }\n\n if (middlewaresConfig?.rateLimit !== false) {\n if (typeof middlewaresConfig?.rateLimit === \"function\") {\n app.use(middlewaresConfig.rateLimit);\n } else {\n app.use(\n rateLimit(\n deepmerge(\n {\n windowMs: 60 * 1000,\n limit: 300,\n standardHeaders: \"draft-7\",\n legacyHeaders: false,\n handler: (_, res) => {\n res.status(429).json({\n message: \"Too many requests, please try again later\",\n });\n },\n },\n middlewaresConfig?.rateLimit || {}\n )\n )\n );\n }\n }\n\n if (middlewaresConfig?.cors !== false) {\n if (typeof middlewaresConfig?.cors === \"function\") {\n app.use(middlewaresConfig.cors);\n } else {\n app.use(\n cors(\n middlewaresConfig?.cors?.customHandler\n ? middlewaresConfig.cors.customHandler\n : deepmerge(\n {\n origin: (\n origin: string,\n cb: (err: Error | null, allow?: boolean) => void\n ) => {\n const allowed = (middlewaresConfig?.cors as any)\n ?.allowedOrigins;\n\n if (allowed === \"*\") cb(null, true);\n else if (Array.isArray(allowed))\n cb(null, !origin || allowed?.includes?.(origin));\n else if (typeof allowed === \"string\")\n cb(null, !origin || allowed === origin);\n else cb(null, false);\n },\n\n methods: [\"GET\", \"POST\", \"PUT\", \"DELETE\", \"PATCH\", \"OPTIONS\"],\n allowedHeaders: [\n \"Content-Type\",\n \"Authorization\",\n \"Connection\",\n ],\n credentials: true,\n },\n middlewaresConfig?.cors?.options || {}\n )\n )\n );\n }\n }\n\n if (middlewaresConfig?.expressJson !== false) {\n if (typeof middlewaresConfig?.expressJson === \"function\") {\n app.use(middlewaresConfig.expressJson);\n } else {\n app.use(express.json(middlewaresConfig?.expressJson || {}));\n }\n }\n\n if (middlewaresConfig?.cookieParser !== false) {\n if (typeof middlewaresConfig?.cookieParser === \"function\") {\n app.use(middlewaresConfig.cookieParser);\n } else {\n const params = Array.isArray(middlewaresConfig?.cookieParser)\n ? middlewaresConfig.cookieParser\n : [];\n app.use(cookieParser(...(params as any))); // FIXME: check types correctly\n }\n }\n\n if (middlewaresConfig?.queryParser !== false) {\n if (typeof middlewaresConfig?.queryParser === \"function\") {\n app.use(middlewaresConfig.queryParser);\n } else {\n app.use(\n queryParser(\n deepmerge(\n {\n parseNull: true,\n parseUndefined: true,\n parseBoolean: true,\n parseNumber: true,\n },\n middlewaresConfig?.queryParser || {}\n )\n )\n );\n }\n }\n\n if (middlewaresConfig?.requestLogger !== false) {\n if (typeof middlewaresConfig?.requestLogger === \"function\") {\n app.use(middlewaresConfig.requestLogger);\n } else {\n app.use(handleRequestLogs);\n }\n }\n\n app.use(debuggerService.logRequestInfo);\n\n const routersConfig = arkosConfig?.routers;\n\n if (routersConfig?.welcomeRoute !== false) {\n if (typeof routersConfig?.welcomeRoute === \"function\") {\n app.get(\"/api\", routersConfig.welcomeRoute);\n } else {\n app.get(\"/api\", (_, res) => {\n res.status(200).json({ message: arkosConfig.welcomeMessage });\n });\n }\n }\n\n if (initConfig?.use)\n for (const mwOrRouter of initConfig.use) {\n app.use(mwOrRouter as IRouter);\n }\n\n const fileUploadRouter = getFileUploadRouter(arkosConfig);\n knowModulesRouter.use(fileUploadRouter);\n\n if (isAuthenticationEnabled()) {\n const authRouter = getAuthRouter(arkosConfig) as any;\n knowModulesRouter.use(\"/api\", authRouter);\n }\n\n const modelsRouter = getPrismaModelsRouter(arkosConfig);\n knowModulesRouter.use(\"/api\", modelsRouter as any);\n\n app.use(knowModulesRouter);\n app.use(\"/api\", getAvailableResourcesAndRoutesRouter());\n\n if (\n arkosConfig.swagger &&\n (process.env.ARKOS_BUILD !== \"true\" ||\n arkosConfig.swagger.enableAfterBuild === true)\n )\n app.use(\"/api\", await getSwaggerRouter(arkosConfig, app));\n\n app.use(\"*\", (req) => {\n throw new AppError(\n \"Route not found\",\n 404,\n { route: req.path },\n \"RouteNotFound\"\n );\n });\n\n if (middlewaresConfig?.errorHandler !== false) {\n if (typeof middlewaresConfig?.errorHandler === \"function\") {\n app.use(middlewaresConfig.errorHandler);\n } else {\n app.use(errorHandler);\n }\n }\n\n return app;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/exports/index.ts"],"names":[],"mappings":";;;;;;AACA,uEAAmE;AA2BjE,+FA3BO,gCAAc,OA2BP;AA1BhB,sCAAoD;AA6BlD,+FA7BgB,uBAAc,OA6BhB;AA5BhB,yEAAgD;AAqD9C,sBArDK,sBAAW,CAqDL;AArCb,MAAM,KAAK,GAAG;IACZ,IAAI,EAAE,gBAAO;CACd,CAAC;AA4CF,kBAAe,KAAK,CAAC","sourcesContent":["import { RouterConfig } from \"../types/router-config\";\nimport { BaseController } from \"./../modules/base/base.controller\";\nimport { initApp, getArkosConfig } from \"../server\";\nimport ArkosRouter from \"../utils/arkos-router\";\nimport { ArkosRouteConfig } from \"../utils/arkos-router/types\";\nimport {\n ArkosRequest,\n ArkosResponse,\n ArkosNextFunction,\n ArkosRequestHandler,\n} from \"../types\";\nimport { ArkosConfig } from \"../types/arkos-config\";\n\n/**\n * Initializes the Arkos application.\n *\n * @module arkos\n * @property {Function} init - Function to initialize the app.\n */\nconst arkos = {\n init: initApp,\n};\n\nexport {\n ArkosRequest,\n ArkosResponse,\n ArkosNextFunction,\n ArkosRequestHandler,\n BaseController,\n ArkosConfig,\n RouterConfig,\n getArkosConfig,\n /**\n * Creates an enhanced Express Router with features like OpenAPI documentation capabilities and smart data validation.\n *\n * The ArkosRouter extends the standard Express Router with the ability to\n * automatically capture OpenAPI metadata from route configurations.\n *\n * @example\n * const router = ArkosRouter();\n *\n * router.get(\n * {\n * route: \"/users/:id\",\n * openapi: {\n * summary: \"Get user by ID\",\n * tags: [\"Users\"]\n * }\n * },\n * (req, res) => { ... }\n * );\n *\n * @returns {IArkosRouter} A proxied Express Router instance with enhanced OpenAPI capabilities\n *\n * @see {@link ArkosRouteConfig} for configuration options\n */\n ArkosRouter,\n ArkosRouteConfig,\n};\n\n/**\n * Main entry point for the Arkos module.\n *\n * @module arkos\n */\nexport default arkos;\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/exports/index.ts"],"names":[],"mappings":";;;;;;AACA,uEAAmE;AA4BjE,+FA5BO,gCAAc,OA4BP;AA3BhB,sCAAoD;AA+BlD,+FA/BgB,uBAAc,OA+BhB;AA9BhB,yEAAgD;AAuD9C,sBAvDK,sBAAW,CAuDL;AAtCb,MAAM,KAAK,GAAG;IACZ,IAAI,EAAE,gBAAO;CACd,CAAC;AA6CF,kBAAe,KAAK,CAAC","sourcesContent":["import { RouterConfig } from \"../types/router-config\";\nimport { BaseController } from \"./../modules/base/base.controller\";\nimport { initApp, getArkosConfig } from \"../server\";\nimport ArkosRouter from \"../utils/arkos-router\";\nimport { ArkosRouteConfig } from \"../utils/arkos-router/types\";\nimport {\n ArkosRequest,\n ArkosResponse,\n ArkosNextFunction,\n ArkosRequestHandler,\n} from \"../types\";\nimport { ArkosConfig } from \"../types/new-arkos-config\";\nimport { ArkosInitConfig } from \"../types/arkos-config\";\n\n/**\n * Initializes the Arkos application.\n *\n * @module arkos\n * @property {Function} init - Function to initialize the app.\n */\nconst arkos = {\n init: initApp,\n};\n\nexport {\n ArkosRequest,\n ArkosResponse,\n ArkosNextFunction,\n ArkosRequestHandler,\n BaseController,\n ArkosConfig,\n ArkosInitConfig,\n RouterConfig,\n getArkosConfig,\n /**\n * Creates an enhanced Express Router with features like OpenAPI documentation capabilities and smart data validation.\n *\n * The ArkosRouter extends the standard Express Router with the ability to\n * automatically capture OpenAPI metadata from route configurations.\n *\n * @example\n * const router = ArkosRouter();\n *\n * router.get(\n * {\n * route: \"/users/:id\",\n * openapi: {\n * summary: \"Get user by ID\",\n * tags: [\"Users\"]\n * }\n * },\n * (req, res) => { ... }\n * );\n *\n * @returns {IArkosRouter} A proxied Express Router instance with enhanced OpenAPI capabilities\n *\n * @see {@link ArkosRouteConfig} for configuration options\n */\n ArkosRouter,\n ArkosRouteConfig,\n};\n\n/**\n * Main entry point for the Arkos module.\n *\n * @module arkos\n */\nexport default arkos;\n"]}
@@ -32,8 +32,11 @@ var __importStar = (this && this.__importStar) || (function () {
32
32
  return result;
33
33
  };
34
34
  })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
35
38
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.FileUploadService = exports.getFileUploadServices = exports.EmailService = exports.emailService = exports.BaseService = exports.AuthService = exports.authService = void 0;
39
+ exports.FileUploadService = exports.getFileUploadServices = exports.EmailService = exports.emailService = exports.BaseService = exports.authActionService = exports.AuthService = exports.authService = void 0;
37
40
  const file_upload_service_1 = require("../../modules/file-upload/file-upload.service");
38
41
  Object.defineProperty(exports, "getFileUploadServices", { enumerable: true, get: function () { return file_upload_service_1.getFileUploadServices; } });
39
42
  Object.defineProperty(exports, "FileUploadService", { enumerable: true, get: function () { return file_upload_service_1.FileUploadService; } });
@@ -45,4 +48,6 @@ exports.emailService = email_service_1.default;
45
48
  Object.defineProperty(exports, "EmailService", { enumerable: true, get: function () { return email_service_1.EmailService; } });
46
49
  const base_service_1 = require("../../modules/base/base.service");
47
50
  Object.defineProperty(exports, "BaseService", { enumerable: true, get: function () { return base_service_1.BaseService; } });
51
+ const auth_action_service_1 = __importDefault(require("../../modules/auth/utils/services/auth-action.service"));
52
+ exports.authActionService = auth_action_service_1.default;
48
53
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/exports/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uFAGuD;AAsF9C,sGAxFP,2CAAqB,OAwFO;AAAE,kGAvF9B,uCAAiB,OAuF8B;AApFjD,gFAA2E;AAsClE,sBAtCF,sBAAW,CAsCE;AAAE,4FAtCA,0BAAW,OAsCA;AArCjC,mFAA+E;AA8EtE,uBA9EF,uBAAY,CA8EE;AAAE,6FA9EA,4BAAY,OA8EA;AA7EnC,kEAA8D;AA0C5D,4FA1CO,0BAAW,OA0CP","sourcesContent":["import {\n getFileUploadServices,\n FileUploadService,\n} from \"../../modules/file-upload/file-upload.service\";\nimport { EmailOptions } from \"../../modules/email/email.service\";\nimport authService, { AuthService } from \"../../modules/auth/auth.service\";\nimport emailService, { EmailService } from \"../../modules/email/email.service\";\nimport { BaseService } from \"../../modules/base/base.service\";\nimport {\n ServiceBaseContext,\n BeforeCreateOneHookArgs,\n AfterCreateOneHookArgs,\n BeforeCreateManyHookArgs,\n AfterCreateManyHookArgs,\n BeforeCountHookArgs,\n AfterCountHookArgs,\n BeforeFindManyHookArgs,\n AfterFindManyHookArgs,\n BeforeFindOneHookArgs,\n AfterFindOneHookArgs,\n BeforeUpdateOneHookArgs,\n AfterUpdateOneHookArgs,\n BeforeUpdateManyHookArgs,\n AfterUpdateManyHookArgs,\n BeforeDeleteOneHookArgs,\n AfterDeleteOneHookArgs,\n BeforeDeleteManyHookArgs,\n AfterDeleteManyHookArgs,\n OnCreateOneErrorHookArgs,\n OnCreateManyErrorHookArgs,\n OnCountErrorHookArgs,\n OnFindManyErrorHookArgs,\n OnFindByIdErrorHookArgs,\n OnFindOneErrorHookArgs,\n OnUpdateOneErrorHookArgs,\n OnUpdateManyErrorHookArgs,\n OnDeleteOneErrorHookArgs,\n OnDeleteManyErrorHookArgs,\n} from \"../../modules/base/types/base.service.types\";\n\n/**\n * Authentication service.\n */\nexport { authService, AuthService };\n\n/**\n * Base service.\n */\nexport {\n BaseService,\n ServiceBaseContext,\n BeforeCreateOneHookArgs,\n AfterCreateOneHookArgs,\n BeforeCreateManyHookArgs,\n AfterCreateManyHookArgs,\n BeforeCountHookArgs,\n AfterCountHookArgs,\n BeforeFindManyHookArgs,\n AfterFindManyHookArgs,\n BeforeFindOneHookArgs,\n AfterFindOneHookArgs,\n BeforeUpdateOneHookArgs,\n AfterUpdateOneHookArgs,\n BeforeUpdateManyHookArgs,\n AfterUpdateManyHookArgs,\n BeforeDeleteOneHookArgs,\n AfterDeleteOneHookArgs,\n BeforeDeleteManyHookArgs,\n AfterDeleteManyHookArgs,\n OnCreateOneErrorHookArgs,\n OnCreateManyErrorHookArgs,\n OnCountErrorHookArgs,\n OnFindManyErrorHookArgs,\n OnFindByIdErrorHookArgs,\n OnFindOneErrorHookArgs,\n OnUpdateOneErrorHookArgs,\n OnUpdateManyErrorHookArgs,\n OnDeleteOneErrorHookArgs,\n OnDeleteManyErrorHookArgs,\n};\n\n/**\n * Email service.\n */\nexport { emailService, EmailService, EmailOptions };\n\n/**\n * File upload services.\n */\nexport { getFileUploadServices, FileUploadService };\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/exports/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uFAGuD;AAuF9C,sGAzFP,2CAAqB,OAyFO;AAAE,kGAxF9B,uCAAiB,OAwF8B;AArFjD,gFAA2E;AAuClE,sBAvCF,sBAAW,CAuCE;AAAE,4FAvCA,0BAAW,OAuCA;AAtCjC,mFAA+E;AA+EtE,uBA/EF,uBAAY,CA+EE;AAAE,6FA/EA,4BAAY,OA+EA;AA9EnC,kEAA8D;AA2C5D,4FA3CO,0BAAW,OA2CP;AA1Cb,gHAAsF;AAoCnD,4BApC5B,6BAAiB,CAoC4B","sourcesContent":["import {\n getFileUploadServices,\n FileUploadService,\n} from \"../../modules/file-upload/file-upload.service\";\nimport { EmailOptions } from \"../../modules/email/email.service\";\nimport authService, { AuthService } from \"../../modules/auth/auth.service\";\nimport emailService, { EmailService } from \"../../modules/email/email.service\";\nimport { BaseService } from \"../../modules/base/base.service\";\nimport authActionService from \"../../modules/auth/utils/services/auth-action.service\";\nimport {\n ServiceBaseContext,\n BeforeCreateOneHookArgs,\n AfterCreateOneHookArgs,\n BeforeCreateManyHookArgs,\n AfterCreateManyHookArgs,\n BeforeCountHookArgs,\n AfterCountHookArgs,\n BeforeFindManyHookArgs,\n AfterFindManyHookArgs,\n BeforeFindOneHookArgs,\n AfterFindOneHookArgs,\n BeforeUpdateOneHookArgs,\n AfterUpdateOneHookArgs,\n BeforeUpdateManyHookArgs,\n AfterUpdateManyHookArgs,\n BeforeDeleteOneHookArgs,\n AfterDeleteOneHookArgs,\n BeforeDeleteManyHookArgs,\n AfterDeleteManyHookArgs,\n OnCreateOneErrorHookArgs,\n OnCreateManyErrorHookArgs,\n OnCountErrorHookArgs,\n OnFindManyErrorHookArgs,\n OnFindByIdErrorHookArgs,\n OnFindOneErrorHookArgs,\n OnUpdateOneErrorHookArgs,\n OnUpdateManyErrorHookArgs,\n OnDeleteOneErrorHookArgs,\n OnDeleteManyErrorHookArgs,\n} from \"../../modules/base/types/base.service.types\";\n\n/**\n * Authentication service.\n */\nexport { authService, AuthService, authActionService };\n\n/**\n * Base service.\n */\nexport {\n BaseService,\n ServiceBaseContext,\n BeforeCreateOneHookArgs,\n AfterCreateOneHookArgs,\n BeforeCreateManyHookArgs,\n AfterCreateManyHookArgs,\n BeforeCountHookArgs,\n AfterCountHookArgs,\n BeforeFindManyHookArgs,\n AfterFindManyHookArgs,\n BeforeFindOneHookArgs,\n AfterFindOneHookArgs,\n BeforeUpdateOneHookArgs,\n AfterUpdateOneHookArgs,\n BeforeUpdateManyHookArgs,\n AfterUpdateManyHookArgs,\n BeforeDeleteOneHookArgs,\n AfterDeleteOneHookArgs,\n BeforeDeleteManyHookArgs,\n AfterDeleteManyHookArgs,\n OnCreateOneErrorHookArgs,\n OnCreateManyErrorHookArgs,\n OnCountErrorHookArgs,\n OnFindManyErrorHookArgs,\n OnFindByIdErrorHookArgs,\n OnFindOneErrorHookArgs,\n OnUpdateOneErrorHookArgs,\n OnUpdateManyErrorHookArgs,\n OnDeleteOneErrorHookArgs,\n OnDeleteManyErrorHookArgs,\n};\n\n/**\n * Email service.\n */\nexport { emailService, EmailService, EmailOptions };\n\n/**\n * File upload services.\n */\nexport { getFileUploadServices, FileUploadService };\n"]}
@@ -8,14 +8,13 @@ const catch_async_1 = __importDefault(require("../error-handler/utils/catch-asyn
8
8
  const app_error_1 = __importDefault(require("../error-handler/utils/app-error"));
9
9
  const auth_service_1 = __importDefault(require("./auth.service"));
10
10
  const base_service_1 = require("../base/base.service");
11
- const arkos_env_1 = __importDefault(require("../../utils/arkos-env"));
12
11
  const server_1 = require("../../server");
13
12
  const auth_controller_helpers_1 = require("./utils/helpers/auth.controller.helpers");
14
13
  const auth_action_service_1 = __importDefault(require("./utils/services/auth-action.service"));
15
14
  exports.defaultExcludedUserFields = {
16
15
  password: false,
17
16
  };
18
- const authControllerFactory = async (interceptors = {}) => {
17
+ const authControllerFactory = (interceptors = {}) => {
19
18
  const userService = new base_service_1.BaseService("user");
20
19
  return {
21
20
  getMe: (0, catch_async_1.default)(async (req, res, next) => {
@@ -25,8 +24,10 @@ const authControllerFactory = async (interceptors = {}) => {
25
24
  delete user[key];
26
25
  });
27
26
  if (interceptors?.afterGetMe) {
27
+ res.originalData = { data: user };
28
28
  req.responseData = { data: user };
29
29
  res.locals.data = { data: user };
30
+ res.originalStatus = 200;
30
31
  req.responseStatus = 200;
31
32
  res.locals.status = 200;
32
33
  return next();
@@ -42,8 +43,10 @@ const authControllerFactory = async (interceptors = {}) => {
42
43
  delete user[key];
43
44
  });
44
45
  if (interceptors?.afterUpdateMe) {
46
+ res.originalData = { data: user };
45
47
  req.responseData = { data: user };
46
48
  res.locals.data = { data: user };
49
+ res.originalStatus = 200;
47
50
  req.responseStatus = 200;
48
51
  res.locals.status = 200;
49
52
  return next();
@@ -56,8 +59,10 @@ const authControllerFactory = async (interceptors = {}) => {
56
59
  httpOnly: true,
57
60
  });
58
61
  if (interceptors?.afterLogout) {
62
+ res.originalData = null;
59
63
  req.responseData = null;
60
64
  res.locals.data = null;
65
+ res.originalStatus = 204;
61
66
  req.responseStatus = 204;
62
67
  res.locals.status = 204;
63
68
  return next();
@@ -71,7 +76,7 @@ const authControllerFactory = async (interceptors = {}) => {
71
76
  const usernameValue = req.body[lastField];
72
77
  const { password } = req.body;
73
78
  if (!usernameValue || !password)
74
- return next(new app_error_1.default(`Please provide both ${lastField} and password`, 400));
79
+ return next(new app_error_1.default(`Please provide both ${lastField} and password`, 400, `MissingCredentialFields`));
75
80
  let whereClause;
76
81
  if (usernameField?.includes?.(".")) {
77
82
  const valueToFind = (0, auth_controller_helpers_1.getNestedValue)(req.body, usernameField);
@@ -86,25 +91,10 @@ const authControllerFactory = async (interceptors = {}) => {
86
91
  const user = (await userService.findOne(whereClause, req.prismaQueryOptions || {}));
87
92
  if (!user ||
88
93
  !(await auth_service_1.default.isCorrectPassword(password, user.password))) {
89
- return next(new app_error_1.default(`Incorrect ${lastField} or password`, 401));
94
+ return next(new app_error_1.default(`Incorrect ${lastField} or password`, 401, `IncorrectCredentials`));
90
95
  }
91
96
  const token = auth_service_1.default.signJwtToken(user.id);
92
- const cookieOptions = {
93
- expires: new Date(Date.now() +
94
- Number((0, auth_controller_helpers_1.toMs)(authConfigs?.jwt?.expiresIn ||
95
- process.env.JWT_EXPIRES_IN ||
96
- arkos_env_1.default.JWT_EXPIRES_IN))),
97
- httpOnly: authConfigs?.jwt?.cookie?.httpOnly ||
98
- process.env.JWT_COOKIE_HTTP_ONLY === "true" ||
99
- true,
100
- secure: authConfigs?.jwt?.cookie?.secure ||
101
- process.env.JWT_COOKIE_SECURE === "true" ||
102
- req.secure ||
103
- req.headers["x-forwarded-proto"] === "https",
104
- sameSite: authConfigs?.jwt?.cookie?.sameSite ||
105
- process.env.JWT_COOKIE_SAME_SITE ||
106
- (process.env.NODE_ENV === "production" ? "none" : "lax"),
107
- };
97
+ const cookieOptions = auth_service_1.default.getJwtCookieOptions(req);
108
98
  if (authConfigs?.login?.sendAccessTokenThrough === "response-only" ||
109
99
  authConfigs?.login?.sendAccessTokenThrough === "both" ||
110
100
  !authConfigs?.login?.sendAccessTokenThrough) {
@@ -117,8 +107,10 @@ const authControllerFactory = async (interceptors = {}) => {
117
107
  res.cookie("arkos_access_token", token, cookieOptions);
118
108
  req.accessToken = token;
119
109
  if (interceptors?.afterLogin) {
110
+ res.originalData = req.responseData;
120
111
  req.additionalData = { user };
121
112
  res.locals.additional = { user };
113
+ res.originalStatus = 200;
122
114
  req.responseStatus = 200;
123
115
  res.locals.status = 200;
124
116
  return next();
@@ -136,8 +128,10 @@ const authControllerFactory = async (interceptors = {}) => {
136
128
  signup: (0, catch_async_1.default)(async (req, res, next) => {
137
129
  const user = (await userService.createOne(req.body, req.prismaQueryOptions || {}));
138
130
  if (interceptors?.afterSignup) {
131
+ res.originalData = { data: user };
139
132
  req.responseData = { data: user };
140
133
  res.locals.data = { data: user };
134
+ res.originalStatus = 201;
141
135
  req.responseStatus = 201;
142
136
  res.locals.status = 201;
143
137
  return next();
@@ -153,8 +147,10 @@ const authControllerFactory = async (interceptors = {}) => {
153
147
  deletedSelfAccountAt: new Date().toISOString(),
154
148
  }, req.prismaQueryOptions || {}));
155
149
  if (interceptors?.afterDeleteMe) {
150
+ res.originalData = { data: updatedUser };
156
151
  req.responseData = { data: updatedUser };
157
152
  res.locals.data = { data: updatedUser };
153
+ res.originalStatus = 200;
158
154
  req.responseStatus = 200;
159
155
  res.locals.status = 200;
160
156
  return next();
@@ -169,7 +165,7 @@ const authControllerFactory = async (interceptors = {}) => {
169
165
  updatePassword: (0, catch_async_1.default)(async (req, res, next) => {
170
166
  const { currentPassword, newPassword } = req.body;
171
167
  if (!currentPassword || !newPassword)
172
- return next(new app_error_1.default("currentPassword and newPassword are required", 400));
168
+ return next(new app_error_1.default("currentPassword and newPassword are required", 400, "SameCurrentAndNewPassword"));
173
169
  const user = req.user;
174
170
  if (!user || user?.isActive === false || user?.deletedSelfAccountAt)
175
171
  return next(new app_error_1.default("User not found!", 404));
@@ -177,36 +173,31 @@ const authControllerFactory = async (interceptors = {}) => {
177
173
  const configs = (0, server_1.getArkosConfig)();
178
174
  const initAuthConfigs = configs?.authentication;
179
175
  if (!isPasswordCorrect)
180
- return next(new app_error_1.default("Current password is incorrect.", 400));
176
+ return next(new app_error_1.default("Current password is incorrect", 400, "IncorrentCurrentPassword"));
181
177
  if (!auth_service_1.default.isPasswordStrong(String(newPassword)) &&
182
178
  !configs?.validation) {
183
179
  return next(new app_error_1.default(initAuthConfigs?.passwordValidation?.message ||
184
- "The new password must contain at least one uppercase letter, one lowercase letter, and one number", 400));
180
+ "The new password must contain at least one uppercase letter, one lowercase letter, and one number", 400, "PasswordDoesNotMeetRequirements"));
185
181
  }
186
182
  await userService.updateOne({ id: user.id }, {
187
183
  password: await auth_service_1.default.hashPassword(newPassword),
188
184
  passwordChangedAt: new Date(Date.now()),
189
185
  });
186
+ const responseData = {
187
+ status: "success",
188
+ message: "Password updated successfully!",
189
+ };
190
190
  if (interceptors?.afterUpdatePassword) {
191
- req.additionalData = {
192
- user,
193
- };
194
- req.responseData = {
195
- status: "success",
196
- message: "Password updated successfully!",
197
- };
198
- res.locals.data = {
199
- status: "success",
200
- message: "Password updated successfully!",
201
- };
191
+ res.originalData = responseData;
192
+ req.additionalData = { user };
193
+ req.responseData = responseData;
194
+ res.locals.data = responseData;
195
+ res.originalStatus = 200;
202
196
  req.responseStatus = 200;
203
197
  res.locals.status = 200;
204
198
  return next();
205
199
  }
206
- res.status(200).json({
207
- status: "success",
208
- message: "Password updated successfully!",
209
- });
200
+ res.status(200).json(responseData);
210
201
  }),
211
202
  findManyAuthAction: (0, catch_async_1.default)(async (_, res) => {
212
203
  const arkosConfig = (0, server_1.getArkosConfig)();
@@ -225,7 +216,7 @@ const authControllerFactory = async (interceptors = {}) => {
225
216
  const arkosConfig = (0, server_1.getArkosConfig)();
226
217
  const resourceName = req.params?.resourceName;
227
218
  if (!resourceName)
228
- throw new app_error_1.default(`Please provide a resoureName`, 400);
219
+ throw new app_error_1.default(`Please provide a resoureName`, 400, "MissiongResourseName");
229
220
  const authActions = auth_action_service_1.default
230
221
  .getByResource(req.params?.resourceName)
231
222
  ?.map((authAction) => {
@@ -234,7 +225,7 @@ const authControllerFactory = async (interceptors = {}) => {
234
225
  return authAction;
235
226
  });
236
227
  if (!authActions)
237
- throw new app_error_1.default(`No auth action with resource name ${resourceName}`, 404);
228
+ throw new app_error_1.default(`No auth action with resource name ${resourceName}`, 404, "AuthActionNotFound");
238
229
  res.json({
239
230
  total: authActions.length,
240
231
  results: authActions.length,