arkos 1.2.13-test → 1.2.13-test.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (411) hide show
  1. package/README.md +22 -14
  2. package/cli.js +2 -11
  3. package/dist/cjs/app.js +1 -1
  4. package/dist/cjs/app.js.map +1 -1
  5. package/dist/cjs/exports/auth/index.js +1 -6
  6. package/dist/cjs/exports/controllers/index.js +1 -11
  7. package/dist/cjs/exports/error-handler/index.js +1 -11
  8. package/dist/cjs/exports/index.js +1 -12
  9. package/dist/cjs/exports/middlewares/index.js +1 -7
  10. package/dist/cjs/exports/prisma/index.js +1 -6
  11. package/dist/cjs/exports/services/index.js +1 -49
  12. package/dist/cjs/exports/utils/index.js +1 -44
  13. package/dist/cjs/exports/validation/index.js +1 -11
  14. package/dist/cjs/modules/auth/auth.controller.js +1 -194
  15. package/dist/cjs/modules/auth/auth.router.js +1 -124
  16. package/dist/cjs/modules/auth/auth.router.js.map +1 -1
  17. package/dist/cjs/modules/auth/auth.service.js +1 -192
  18. package/dist/cjs/modules/auth/auth.service.js.map +1 -1
  19. package/dist/cjs/modules/auth/utils/helpers/auth.controller.helpers.js +1 -83
  20. package/dist/cjs/modules/base/base.controller.js +1 -159
  21. package/dist/cjs/modules/base/base.controller.js.map +1 -1
  22. package/dist/cjs/modules/base/base.middlewares.js +1 -92
  23. package/dist/cjs/modules/base/base.middlewares.js.map +1 -1
  24. package/dist/cjs/modules/base/base.router.js +1 -24
  25. package/dist/cjs/modules/base/base.router.js.map +1 -1
  26. package/dist/cjs/modules/base/base.service.js +1 -128
  27. package/dist/cjs/modules/base/base.service.js.map +1 -1
  28. package/dist/cjs/modules/base/utils/helpers/base.controller.helpers.js +1 -82
  29. package/dist/cjs/modules/base/utils/helpers/base.middlewares.helpers.js +1 -50
  30. package/dist/cjs/modules/base/utils/helpers/base.router.helpers.js +1 -167
  31. package/dist/cjs/modules/base/utils/helpers/base.router.helpers.js.map +1 -1
  32. package/dist/cjs/modules/base/utils/helpers/base.service.helpers.js +1 -171
  33. package/dist/cjs/modules/email/email.service.js +1 -104
  34. package/dist/cjs/modules/error-handler/error-handler.controller.js +4 -144
  35. package/dist/cjs/modules/error-handler/error-handler.controller.js.map +1 -1
  36. package/dist/cjs/modules/error-handler/utils/app-error.js +1 -17
  37. package/dist/cjs/modules/error-handler/utils/catch-async.js +1 -12
  38. package/dist/cjs/modules/error-handler/utils/catch-async.js.map +1 -1
  39. package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js +3 -195
  40. package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js.map +1 -1
  41. package/dist/cjs/modules/file-upload/file-upload.controller.js +1 -271
  42. package/dist/cjs/modules/file-upload/file-upload.router.js +1 -56
  43. package/dist/cjs/modules/file-upload/file-upload.router.js.map +1 -1
  44. package/dist/cjs/modules/file-upload/file-upload.service.js +1 -322
  45. package/dist/cjs/modules/file-upload/utils/helpers/file-upload.helpers.js +1 -90
  46. package/dist/cjs/modules/file-upload/utils/helpers/file-upload.helpers.js.map +1 -1
  47. package/dist/cjs/modules/swagger/swagger.router.js +1 -141
  48. package/dist/cjs/modules/swagger/swagger.router.js.map +1 -1
  49. package/dist/cjs/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js +1 -0
  50. package/dist/cjs/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js.map +1 -0
  51. package/dist/cjs/modules/swagger/utils/helpers/get-system-json-schema-paths.js +1 -0
  52. package/dist/cjs/modules/swagger/utils/helpers/get-system-json-schema-paths.js.map +1 -0
  53. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js +1 -0
  54. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js.map +1 -0
  55. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +1 -0
  56. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js.map +1 -0
  57. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schema.js +1 -0
  58. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schema.js.map +1 -0
  59. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes.js +1 -0
  60. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes.js.map +1 -0
  61. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes.js +1 -0
  62. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes.js.map +1 -0
  63. package/dist/cjs/modules/swagger/utils/helpers/missing-json-schemas-generator.js +1 -0
  64. package/dist/cjs/modules/swagger/utils/helpers/missing-json-schemas-generator.js.map +1 -0
  65. package/dist/cjs/modules/swagger/utils/helpers/swagger.router.helpers.js +1 -0
  66. package/dist/cjs/modules/swagger/utils/helpers/swagger.router.helpers.js.map +1 -0
  67. package/dist/cjs/server.js +4 -2
  68. package/dist/cjs/server.js.map +1 -1
  69. package/dist/cjs/types/arkos-config.js +1 -3
  70. package/dist/cjs/types/arkos-config.js.map +1 -1
  71. package/dist/cjs/types/auth.js +1 -3
  72. package/dist/cjs/types/index.js +1 -11
  73. package/dist/cjs/types/router-config.js +1 -3
  74. package/dist/cjs/utils/arkos-env.js +1 -9
  75. package/dist/cjs/utils/cli/build.js +6 -229
  76. package/dist/cjs/utils/cli/build.js.map +1 -1
  77. package/dist/cjs/utils/cli/dev.js +5 -268
  78. package/dist/cjs/utils/cli/dev.js.map +1 -1
  79. package/dist/cjs/utils/cli/generate.js +12 -189
  80. package/dist/cjs/utils/cli/generate.js.map +1 -1
  81. package/dist/cjs/utils/cli/index.js +1 -81
  82. package/dist/cjs/utils/cli/start.js +5 -93
  83. package/dist/cjs/utils/cli/start.js.map +1 -1
  84. package/dist/cjs/utils/cli/utils/cli.helpers.js +1 -26
  85. package/dist/cjs/utils/cli/utils/cli.helpers.js.map +1 -1
  86. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-auth-configs-template.js +5 -20
  87. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-controller-template.js +6 -15
  88. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-middlewares.js +71 -133
  89. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-middlewares.js.map +1 -1
  90. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js +24 -46
  91. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js.map +1 -1
  92. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-router-template.js +12 -32
  93. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-router-template.js.map +1 -1
  94. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-service-template.js +7 -27
  95. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-service-template.js.map +1 -1
  96. package/dist/cjs/utils/cli/utils/template-generators.js +2 -28
  97. package/dist/cjs/utils/dotenv.helpers.js +1 -43
  98. package/dist/cjs/utils/features/api.features.js +1 -161
  99. package/dist/cjs/utils/features/api.features.js.map +1 -1
  100. package/dist/cjs/utils/features/change-case.features.js +1 -67
  101. package/dist/cjs/utils/helpers/api.features.helpers.js +1 -106
  102. package/dist/cjs/utils/helpers/change-case.helpers.js +1 -177
  103. package/dist/cjs/utils/helpers/deepmerge.helper.js +1 -115
  104. package/dist/cjs/utils/helpers/fs.helpers.js +1 -54
  105. package/dist/cjs/utils/helpers/fs.helpers.js.map +1 -1
  106. package/dist/cjs/utils/helpers/global.helpers.js +1 -40
  107. package/dist/cjs/utils/helpers/global.helpers.js.map +1 -1
  108. package/dist/cjs/utils/helpers/models.helpers.js +11 -325
  109. package/dist/cjs/utils/helpers/models.helpers.js.map +1 -1
  110. package/dist/cjs/utils/helpers/prisma.helpers.js +1 -49
  111. package/dist/cjs/utils/helpers/prisma.helpers.js.map +1 -1
  112. package/dist/cjs/utils/helpers/query-parser.helpers.js +1 -45
  113. package/dist/cjs/utils/helpers/routers.helpers.js +1 -0
  114. package/dist/cjs/utils/helpers/routers.helpers.js.map +1 -0
  115. package/dist/cjs/utils/helpers/text.helpers.js +1 -28
  116. package/dist/cjs/utils/prisma/enhaced-prisma-json-schema-generator.js +1 -0
  117. package/dist/cjs/utils/prisma/enhaced-prisma-json-schema-generator.js.map +1 -0
  118. package/dist/cjs/utils/prisma/prisma-json-schema-generator.js +1 -0
  119. package/dist/cjs/utils/prisma/prisma-json-schema-generator.js.map +1 -0
  120. package/dist/cjs/utils/prisma/prisma-schema-parser.js +3 -0
  121. package/dist/cjs/utils/prisma/prisma-schema-parser.js.map +1 -0
  122. package/dist/cjs/utils/prisma/types.js +1 -0
  123. package/dist/cjs/utils/prisma/types.js.map +1 -0
  124. package/dist/cjs/utils/sheu.js +1 -0
  125. package/dist/cjs/utils/sheu.js.map +1 -0
  126. package/dist/cjs/utils/validate-dto.js +1 -17
  127. package/dist/cjs/utils/validate-schema.js +1 -15
  128. package/dist/esm/app.js +1 -0
  129. package/dist/esm/app.js.map +1 -0
  130. package/dist/esm/exports/auth/index.js +1 -0
  131. package/dist/esm/exports/controllers/index.js +1 -0
  132. package/dist/esm/exports/error-handler/index.js +1 -0
  133. package/dist/esm/exports/index.js +1 -0
  134. package/dist/esm/exports/middlewares/index.js +1 -0
  135. package/dist/esm/exports/prisma/index.js +1 -0
  136. package/dist/esm/exports/services/index.js +1 -0
  137. package/dist/esm/exports/utils/index.js +1 -0
  138. package/dist/esm/exports/validation/index.js +1 -0
  139. package/dist/esm/modules/auth/auth.controller.js +1 -0
  140. package/dist/esm/modules/auth/auth.router.js +1 -0
  141. package/dist/esm/modules/auth/auth.router.js.map +1 -0
  142. package/dist/esm/modules/auth/auth.service.js +1 -0
  143. package/dist/esm/modules/auth/auth.service.js.map +1 -0
  144. package/dist/esm/modules/auth/utils/helpers/auth.controller.helpers.js +1 -0
  145. package/dist/esm/modules/base/base.controller.js +1 -0
  146. package/dist/esm/modules/base/base.controller.js.map +1 -0
  147. package/dist/esm/modules/base/base.middlewares.js +1 -0
  148. package/dist/esm/modules/base/base.middlewares.js.map +1 -0
  149. package/dist/esm/modules/base/base.router.js +1 -0
  150. package/dist/esm/modules/base/base.router.js.map +1 -0
  151. package/dist/esm/modules/base/base.service.js +1 -0
  152. package/dist/{es2020 → esm}/modules/base/base.service.js.map +1 -1
  153. package/dist/esm/modules/base/utils/helpers/base.controller.helpers.js +1 -0
  154. package/dist/esm/modules/base/utils/helpers/base.middlewares.helpers.js +1 -0
  155. package/dist/esm/modules/base/utils/helpers/base.router.helpers.js +1 -0
  156. package/dist/esm/modules/base/utils/helpers/base.router.helpers.js.map +1 -0
  157. package/dist/esm/modules/base/utils/helpers/base.service.helpers.js +1 -0
  158. package/dist/esm/modules/email/email.service.js +1 -0
  159. package/dist/esm/modules/error-handler/error-handler.controller.js +4 -0
  160. package/dist/esm/modules/error-handler/error-handler.controller.js.map +1 -0
  161. package/dist/esm/modules/error-handler/utils/app-error.js +1 -0
  162. package/dist/esm/modules/error-handler/utils/catch-async.js +1 -0
  163. package/dist/esm/modules/error-handler/utils/catch-async.js.map +1 -0
  164. package/dist/esm/modules/error-handler/utils/error-handler.helpers.js +3 -0
  165. package/dist/esm/modules/error-handler/utils/error-handler.helpers.js.map +1 -0
  166. package/dist/esm/modules/file-upload/file-upload.controller.js +1 -0
  167. package/dist/esm/modules/file-upload/file-upload.router.js +1 -0
  168. package/dist/esm/modules/file-upload/file-upload.router.js.map +1 -0
  169. package/dist/esm/modules/file-upload/file-upload.service.js +1 -0
  170. package/dist/esm/modules/file-upload/utils/helpers/file-upload.helpers.js +1 -0
  171. package/dist/esm/modules/file-upload/utils/helpers/file-upload.helpers.js.map +1 -0
  172. package/dist/esm/modules/swagger/swagger.router.js +1 -0
  173. package/dist/esm/modules/swagger/swagger.router.js.map +1 -0
  174. package/dist/esm/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js +1 -0
  175. package/dist/esm/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js.map +1 -0
  176. package/dist/esm/modules/swagger/utils/helpers/get-system-json-schema-paths.js +1 -0
  177. package/dist/esm/modules/swagger/utils/helpers/get-system-json-schema-paths.js.map +1 -0
  178. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js +1 -0
  179. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js.map +1 -0
  180. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +1 -0
  181. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js.map +1 -0
  182. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schema.js +1 -0
  183. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schema.js.map +1 -0
  184. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes.js +1 -0
  185. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes.js.map +1 -0
  186. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes.js +1 -0
  187. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes.js.map +1 -0
  188. package/dist/esm/modules/swagger/utils/helpers/missing-json-schemas-generator.js +1 -0
  189. package/dist/esm/modules/swagger/utils/helpers/missing-json-schemas-generator.js.map +1 -0
  190. package/dist/esm/modules/swagger/utils/helpers/swagger.router.helpers.js +1 -0
  191. package/dist/esm/modules/swagger/utils/helpers/swagger.router.helpers.js.map +1 -0
  192. package/dist/esm/server.js +5 -0
  193. package/dist/esm/server.js.map +1 -0
  194. package/dist/esm/types/arkos-config.js +1 -0
  195. package/dist/esm/types/arkos-config.js.map +1 -0
  196. package/dist/esm/types/auth.js +1 -0
  197. package/dist/esm/types/index.js +1 -0
  198. package/dist/esm/types/router-config.js +1 -0
  199. package/dist/esm/utils/arkos-env.js +1 -0
  200. package/dist/esm/utils/cli/build.js +6 -0
  201. package/dist/esm/utils/cli/build.js.map +1 -0
  202. package/dist/esm/utils/cli/dev.js +5 -0
  203. package/dist/esm/utils/cli/dev.js.map +1 -0
  204. package/dist/esm/utils/cli/generate.js +12 -0
  205. package/dist/{es2020 → esm}/utils/cli/generate.js.map +1 -1
  206. package/dist/esm/utils/cli/index.js +1 -0
  207. package/dist/esm/utils/cli/start.js +5 -0
  208. package/dist/esm/utils/cli/start.js.map +1 -0
  209. package/dist/esm/utils/cli/utils/cli.helpers.js +1 -0
  210. package/dist/esm/utils/cli/utils/cli.helpers.js.map +1 -0
  211. package/dist/esm/utils/cli/utils/template-generator/templates/generate-auth-configs-template.js +21 -0
  212. package/dist/esm/utils/cli/utils/template-generator/templates/generate-controller-template.js +12 -0
  213. package/dist/esm/utils/cli/utils/template-generator/templates/generate-middlewares.js +206 -0
  214. package/dist/esm/utils/cli/utils/template-generator/templates/generate-middlewares.js.map +1 -0
  215. package/dist/esm/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js +36 -0
  216. package/dist/esm/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js.map +1 -0
  217. package/dist/esm/utils/cli/utils/template-generator/templates/generate-router-template.js +18 -0
  218. package/dist/esm/utils/cli/utils/template-generator/templates/generate-router-template.js.map +1 -0
  219. package/dist/esm/utils/cli/utils/template-generator/templates/generate-service-template.js +15 -0
  220. package/dist/{es2020 → esm}/utils/cli/utils/template-generator/templates/generate-service-template.js.map +1 -1
  221. package/dist/esm/utils/cli/utils/template-generators.js +2 -0
  222. package/dist/esm/utils/dotenv.helpers.js +1 -0
  223. package/dist/esm/utils/features/api.features.js +1 -0
  224. package/dist/esm/utils/features/api.features.js.map +1 -0
  225. package/dist/esm/utils/features/change-case.features.js +1 -0
  226. package/dist/esm/utils/helpers/api.features.helpers.js +1 -0
  227. package/dist/esm/utils/helpers/change-case.helpers.js +1 -0
  228. package/dist/esm/utils/helpers/deepmerge.helper.js +1 -0
  229. package/dist/esm/utils/helpers/fs.helpers.js +1 -0
  230. package/dist/esm/utils/helpers/fs.helpers.js.map +1 -0
  231. package/dist/esm/utils/helpers/global.helpers.js +1 -0
  232. package/dist/esm/utils/helpers/global.helpers.js.map +1 -0
  233. package/dist/esm/utils/helpers/models.helpers.js +11 -0
  234. package/dist/esm/utils/helpers/models.helpers.js.map +1 -0
  235. package/dist/esm/utils/helpers/prisma.helpers.js +1 -0
  236. package/dist/esm/utils/helpers/prisma.helpers.js.map +1 -0
  237. package/dist/esm/utils/helpers/query-parser.helpers.js +1 -0
  238. package/dist/esm/utils/helpers/routers.helpers.js +1 -0
  239. package/dist/esm/utils/helpers/routers.helpers.js.map +1 -0
  240. package/dist/esm/utils/helpers/text.helpers.js +1 -0
  241. package/dist/esm/utils/prisma/enhaced-prisma-json-schema-generator.js +1 -0
  242. package/dist/esm/utils/prisma/enhaced-prisma-json-schema-generator.js.map +1 -0
  243. package/dist/esm/utils/prisma/prisma-json-schema-generator.js +1 -0
  244. package/dist/esm/utils/prisma/prisma-json-schema-generator.js.map +1 -0
  245. package/dist/esm/utils/prisma/prisma-schema-parser.js +3 -0
  246. package/dist/esm/utils/prisma/prisma-schema-parser.js.map +1 -0
  247. package/dist/esm/utils/prisma/types.js +1 -0
  248. package/dist/esm/utils/prisma/types.js.map +1 -0
  249. package/dist/esm/utils/sheu.js +1 -0
  250. package/dist/esm/utils/sheu.js.map +1 -0
  251. package/dist/esm/utils/validate-dto.js +1 -0
  252. package/dist/esm/utils/validate-schema.js +1 -0
  253. package/dist/types/modules/base/base.middlewares.d.ts +4 -4
  254. package/dist/types/modules/base/base.service.d.ts +1 -1
  255. package/dist/types/modules/base/utils/helpers/base.router.helpers.d.ts +4 -1
  256. package/dist/types/modules/error-handler/utils/catch-async.d.ts +1 -0
  257. package/dist/types/modules/error-handler/utils/error-handler.helpers.d.ts +4 -0
  258. package/dist/types/modules/file-upload/file-upload.router.d.ts +1 -1
  259. package/dist/types/modules/file-upload/utils/helpers/file-upload.helpers.d.ts +2 -1
  260. package/dist/types/modules/swagger/swagger.router.d.ts +1 -1
  261. package/dist/types/modules/swagger/utils/helpers/get-authentication-json-schema-paths.d.ts +3 -0
  262. package/dist/types/modules/swagger/utils/helpers/get-system-json-schema-paths.d.ts +2 -0
  263. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.d.ts +1 -0
  264. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.d.ts +2 -0
  265. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schema.d.ts +1 -0
  266. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes.d.ts +3 -0
  267. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes.d.ts +3 -0
  268. package/dist/types/modules/swagger/utils/helpers/missing-json-schemas-generator.d.ts +34 -0
  269. package/dist/types/modules/swagger/utils/helpers/swagger.router.helpers.d.ts +7 -0
  270. package/dist/types/server.d.ts +3 -0
  271. package/dist/types/types/arkos-config.d.ts +10 -5
  272. package/dist/types/utils/cli/utils/cli.helpers.d.ts +1 -1
  273. package/dist/types/utils/features/api.features.d.ts +1 -0
  274. package/dist/types/utils/helpers/global.helpers.d.ts +6 -1
  275. package/dist/types/utils/helpers/models.helpers.d.ts +31 -5
  276. package/dist/types/utils/helpers/routers.helpers.d.ts +2 -0
  277. package/dist/types/utils/prisma/enhaced-prisma-json-schema-generator.d.ts +34 -0
  278. package/dist/types/utils/prisma/prisma-json-schema-generator.d.ts +10 -0
  279. package/dist/types/utils/prisma/prisma-schema-parser.d.ts +18 -0
  280. package/dist/types/utils/prisma/types.d.ts +48 -0
  281. package/dist/types/utils/sheu.d.ts +70 -0
  282. package/package.json +34 -34
  283. package/dist/es2020/app.js +0 -1
  284. package/dist/es2020/app.js.map +0 -1
  285. package/dist/es2020/exports/auth/index.js +0 -2
  286. package/dist/es2020/exports/controllers/index.js +0 -4
  287. package/dist/es2020/exports/error-handler/index.js +0 -4
  288. package/dist/es2020/exports/index.js +0 -8
  289. package/dist/es2020/exports/middlewares/index.js +0 -2
  290. package/dist/es2020/exports/prisma/index.js +0 -3
  291. package/dist/es2020/exports/services/index.js +0 -9
  292. package/dist/es2020/exports/utils/index.js +0 -4
  293. package/dist/es2020/exports/validation/index.js +0 -4
  294. package/dist/es2020/modules/auth/auth.controller.js +0 -187
  295. package/dist/es2020/modules/auth/auth.router.js +0 -118
  296. package/dist/es2020/modules/auth/auth.router.js.map +0 -1
  297. package/dist/es2020/modules/auth/auth.service.js +0 -185
  298. package/dist/es2020/modules/auth/auth.service.js.map +0 -1
  299. package/dist/es2020/modules/auth/utils/helpers/auth.controller.helpers.js +0 -73
  300. package/dist/es2020/modules/base/base.controller.js +0 -151
  301. package/dist/es2020/modules/base/base.controller.js.map +0 -1
  302. package/dist/es2020/modules/base/base.middlewares.js +0 -81
  303. package/dist/es2020/modules/base/base.middlewares.js.map +0 -1
  304. package/dist/es2020/modules/base/base.router.js +0 -17
  305. package/dist/es2020/modules/base/base.router.js.map +0 -1
  306. package/dist/es2020/modules/base/base.service.js +0 -120
  307. package/dist/es2020/modules/base/utils/helpers/base.controller.helpers.js +0 -77
  308. package/dist/es2020/modules/base/utils/helpers/base.middlewares.helpers.js +0 -44
  309. package/dist/es2020/modules/base/utils/helpers/base.router.helpers.js +0 -161
  310. package/dist/es2020/modules/base/utils/helpers/base.router.helpers.js.map +0 -1
  311. package/dist/es2020/modules/base/utils/helpers/base.service.helpers.js +0 -165
  312. package/dist/es2020/modules/email/email.service.js +0 -97
  313. package/dist/es2020/modules/error-handler/error-handler.controller.js +0 -105
  314. package/dist/es2020/modules/error-handler/error-handler.controller.js.map +0 -1
  315. package/dist/es2020/modules/error-handler/utils/app-error.js +0 -15
  316. package/dist/es2020/modules/error-handler/utils/catch-async.js +0 -10
  317. package/dist/es2020/modules/error-handler/utils/catch-async.js.map +0 -1
  318. package/dist/es2020/modules/error-handler/utils/error-handler.helpers.js +0 -155
  319. package/dist/es2020/modules/error-handler/utils/error-handler.helpers.js.map +0 -1
  320. package/dist/es2020/modules/file-upload/file-upload.controller.js +0 -266
  321. package/dist/es2020/modules/file-upload/file-upload.router.js +0 -50
  322. package/dist/es2020/modules/file-upload/file-upload.router.js.map +0 -1
  323. package/dist/es2020/modules/file-upload/file-upload.service.js +0 -314
  324. package/dist/es2020/modules/file-upload/utils/helpers/file-upload.helpers.js +0 -81
  325. package/dist/es2020/modules/file-upload/utils/helpers/file-upload.helpers.js.map +0 -1
  326. package/dist/es2020/modules/swagger/swagger.router.js +0 -135
  327. package/dist/es2020/modules/swagger/swagger.router.js.map +0 -1
  328. package/dist/es2020/server.js +0 -3
  329. package/dist/es2020/server.js.map +0 -1
  330. package/dist/es2020/types/arkos-config.js +0 -2
  331. package/dist/es2020/types/arkos-config.js.map +0 -1
  332. package/dist/es2020/types/auth.js +0 -2
  333. package/dist/es2020/types/index.js +0 -8
  334. package/dist/es2020/types/router-config.js +0 -2
  335. package/dist/es2020/utils/arkos-env.js +0 -7
  336. package/dist/es2020/utils/cli/build.js +0 -223
  337. package/dist/es2020/utils/cli/build.js.map +0 -1
  338. package/dist/es2020/utils/cli/dev.js +0 -261
  339. package/dist/es2020/utils/cli/dev.js.map +0 -1
  340. package/dist/es2020/utils/cli/generate.js +0 -183
  341. package/dist/es2020/utils/cli/index.js +0 -74
  342. package/dist/es2020/utils/cli/start.js +0 -86
  343. package/dist/es2020/utils/cli/start.js.map +0 -1
  344. package/dist/es2020/utils/cli/utils/cli.helpers.js +0 -18
  345. package/dist/es2020/utils/cli/utils/cli.helpers.js.map +0 -1
  346. package/dist/es2020/utils/cli/utils/template-generator/templates/generate-auth-configs-template.js +0 -33
  347. package/dist/es2020/utils/cli/utils/template-generator/templates/generate-controller-template.js +0 -18
  348. package/dist/es2020/utils/cli/utils/template-generator/templates/generate-middlewares.js +0 -265
  349. package/dist/es2020/utils/cli/utils/template-generator/templates/generate-middlewares.js.map +0 -1
  350. package/dist/es2020/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js +0 -55
  351. package/dist/es2020/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js.map +0 -1
  352. package/dist/es2020/utils/cli/utils/template-generator/templates/generate-router-template.js +0 -32
  353. package/dist/es2020/utils/cli/utils/template-generator/templates/generate-router-template.js.map +0 -1
  354. package/dist/es2020/utils/cli/utils/template-generator/templates/generate-service-template.js +0 -32
  355. package/dist/es2020/utils/cli/utils/template-generators.js +0 -25
  356. package/dist/es2020/utils/dotenv.helpers.js +0 -37
  357. package/dist/es2020/utils/features/api.features.js +0 -154
  358. package/dist/es2020/utils/features/api.features.js.map +0 -1
  359. package/dist/es2020/utils/features/change-case.features.js +0 -31
  360. package/dist/es2020/utils/helpers/api.features.helpers.js +0 -103
  361. package/dist/es2020/utils/helpers/change-case.helpers.js +0 -161
  362. package/dist/es2020/utils/helpers/deepmerge.helper.js +0 -113
  363. package/dist/es2020/utils/helpers/fs.helpers.js +0 -45
  364. package/dist/es2020/utils/helpers/fs.helpers.js.map +0 -1
  365. package/dist/es2020/utils/helpers/global.helpers.js +0 -4
  366. package/dist/es2020/utils/helpers/global.helpers.js.map +0 -1
  367. package/dist/es2020/utils/helpers/models.helpers.js +0 -276
  368. package/dist/es2020/utils/helpers/models.helpers.js.map +0 -1
  369. package/dist/es2020/utils/helpers/prisma.helpers.js +0 -41
  370. package/dist/es2020/utils/helpers/prisma.helpers.js.map +0 -1
  371. package/dist/es2020/utils/helpers/query-parser.helpers.js +0 -40
  372. package/dist/es2020/utils/helpers/text.helpers.js +0 -22
  373. package/dist/es2020/utils/validate-dto.js +0 -11
  374. package/dist/es2020/utils/validate-schema.js +0 -9
  375. /package/dist/{es2020 → esm}/exports/auth/index.js.map +0 -0
  376. /package/dist/{es2020 → esm}/exports/controllers/index.js.map +0 -0
  377. /package/dist/{es2020 → esm}/exports/error-handler/index.js.map +0 -0
  378. /package/dist/{es2020 → esm}/exports/index.js.map +0 -0
  379. /package/dist/{es2020 → esm}/exports/middlewares/index.js.map +0 -0
  380. /package/dist/{es2020 → esm}/exports/prisma/index.js.map +0 -0
  381. /package/dist/{es2020 → esm}/exports/services/index.js.map +0 -0
  382. /package/dist/{es2020 → esm}/exports/utils/index.js.map +0 -0
  383. /package/dist/{es2020 → esm}/exports/validation/index.js.map +0 -0
  384. /package/dist/{es2020 → esm}/modules/auth/auth.controller.js.map +0 -0
  385. /package/dist/{es2020 → esm}/modules/auth/utils/helpers/auth.controller.helpers.js.map +0 -0
  386. /package/dist/{es2020 → esm}/modules/base/utils/helpers/base.controller.helpers.js.map +0 -0
  387. /package/dist/{es2020 → esm}/modules/base/utils/helpers/base.middlewares.helpers.js.map +0 -0
  388. /package/dist/{es2020 → esm}/modules/base/utils/helpers/base.service.helpers.js.map +0 -0
  389. /package/dist/{es2020 → esm}/modules/email/email.service.js.map +0 -0
  390. /package/dist/{es2020 → esm}/modules/error-handler/utils/app-error.js.map +0 -0
  391. /package/dist/{es2020 → esm}/modules/file-upload/file-upload.controller.js.map +0 -0
  392. /package/dist/{es2020 → esm}/modules/file-upload/file-upload.service.js.map +0 -0
  393. /package/dist/{es2020 → esm}/paths.js +0 -0
  394. /package/dist/{es2020 → esm}/paths.js.map +0 -0
  395. /package/dist/{es2020 → esm}/types/auth.js.map +0 -0
  396. /package/dist/{es2020 → esm}/types/index.js.map +0 -0
  397. /package/dist/{es2020 → esm}/types/router-config.js.map +0 -0
  398. /package/dist/{es2020 → esm}/utils/arkos-env.js.map +0 -0
  399. /package/dist/{es2020 → esm}/utils/cli/index.js.map +0 -0
  400. /package/dist/{es2020 → esm}/utils/cli/utils/template-generator/templates/generate-auth-configs-template.js.map +0 -0
  401. /package/dist/{es2020 → esm}/utils/cli/utils/template-generator/templates/generate-controller-template.js.map +0 -0
  402. /package/dist/{es2020 → esm}/utils/cli/utils/template-generators.js.map +0 -0
  403. /package/dist/{es2020 → esm}/utils/dotenv.helpers.js.map +0 -0
  404. /package/dist/{es2020 → esm}/utils/features/change-case.features.js.map +0 -0
  405. /package/dist/{es2020 → esm}/utils/helpers/api.features.helpers.js.map +0 -0
  406. /package/dist/{es2020 → esm}/utils/helpers/change-case.helpers.js.map +0 -0
  407. /package/dist/{es2020 → esm}/utils/helpers/deepmerge.helper.js.map +0 -0
  408. /package/dist/{es2020 → esm}/utils/helpers/query-parser.helpers.js.map +0 -0
  409. /package/dist/{es2020 → esm}/utils/helpers/text.helpers.js.map +0 -0
  410. /package/dist/{es2020 → esm}/utils/validate-dto.js.map +0 -0
  411. /package/dist/{es2020 → esm}/utils/validate-schema.js.map +0 -0
package/README.md CHANGED
@@ -1,36 +1,44 @@
1
1
  ![Header Image](https://www.arkosjs.com/img/arkos-readme-header.webp)
2
2
 
3
- # Arkos
3
+ # Arkos.js
4
4
 
5
5
  ### The Express And Prisma Framework For RESTful API
6
6
 
7
- Used to simplify the development of a secure and scalable RESTful API with minimal configuration, allowing developers to focus on what really matters for the business
7
+ Arkos simplifies the development of secure and scalable RESTful APIs with minimal configuration, allowing developers to focus on what really matters for their business logic.
8
8
 
9
9
  ## Features
10
10
 
11
- - 🚀 **Automatic API Generation** - Instantly create RESTful routes from Prisma models
12
- - 🔐 **Built-in Authentication** - JWT-based authentication with minimal setup
13
- - **Express Middlewares** - Pre-configured security, parsing, and error handling
14
- - 🛡️ **Data Validation** - Using class-validator/class-transformer or zod
15
- - 💠 **Prisma Integration** - Seamless database management with relation fields support
16
- - ⬆️ **File Upload & Optimization** - Efficient handling of images, videos, and documents
17
- - 👨‍💻 **Interceptors Middlewares** - Customize request/response flow with hooks
18
- - ✉️ **Nodemailer Integration** - Easy email sending functionality
19
- - 📝 **Swagger API Documentation** - Automatically generate API documentation
11
+ - **Automatic API Generation** - Instantly create RESTful routes from Prisma models
12
+ - **Built-in Authentication** - JWT-based authentication with minimal setup
13
+ - **Express Middlewares** - Pre-configured security, parsing, and error handling
14
+ - **Data Validation** - Input validation and transformation capabilities
15
+ - **Prisma Integration** - Seamless database management with relation fields support
16
+ - **File Upload & Optimization** - Efficient handling of images, videos, and documents
17
+ - **Interceptors Middlewares** - Customize request/response flow with hooks
18
+ - **Nodemailer Integration** - Easy email sending functionality
19
+ - **Swagger API Documentation** - Automatically generate API documentation
20
20
 
21
21
  **BETA VERSION**
22
22
 
23
+ ## Quick Start
24
+
25
+ Get started with Arkos.js in seconds:
26
+
27
+ ```bash
28
+ npx create-arkos@latest my-project
29
+ ```
30
+
23
31
  ## Documentation
24
32
 
25
- For detailed documentation, visit our [official docs](https://arkosjs.com/docs/intro).
33
+ For comprehensive guides, API reference, and examples, visit our [official documentation](https://arkosjs.com/docs/intro).
26
34
 
27
35
  ## License
28
36
 
29
37
  This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
30
38
 
31
- ## Contact
39
+ ## Support
32
40
 
33
- For questions or issues, please open a GitHub issue or contact [Uanela Como](mailto:uanelaluiswayne@gmail.com).
41
+ For questions, bug reports, or feature requests, please open a GitHub issue or contact [Uanela Como](mailto:uanelaluiswayne@gmail.com).
34
42
 
35
43
  ---
36
44
 
package/cli.js CHANGED
@@ -1,34 +1,25 @@
1
1
  #!/usr/bin/env node
2
-
3
2
  (async () => {
4
3
  try {
5
- // Get path and fs using dynamic import
6
4
  const { join } = await import("path");
7
5
  const { existsSync, readFileSync } = await import("fs");
8
6
 
9
- // Determine if we should use ESM or CJS
10
7
  let useEsm = false;
11
8
 
12
9
  try {
13
- // Check if current environment is set to use ESM
14
- const pkgPath = join("..", process.cwd(), "package.json");
10
+ const pkgPath = join(process.cwd(), "package.json");
15
11
  if (existsSync(pkgPath)) {
16
12
  const pkg = JSON.parse(readFileSync(pkgPath, "utf8"));
17
13
  useEsm = pkg.type === "module";
18
14
  }
19
15
  } catch (err) {
20
- // Ignore errors and default to CJS
21
16
  console.error("Error checking package.json:", err);
22
17
  }
23
18
 
24
- // Import the appropriate version
25
19
  if (useEsm) {
26
- // Use dynamic import for ESM
27
- await import("./dist/es2020/utils/cli/index.js");
20
+ await import("./dist/esm/utils/cli/index.js");
28
21
  } else {
29
- // For CommonJS, we still need to use dynamic import in an ESM context
30
22
  await import("./dist/cjs/utils/cli/index.js");
31
- // console.info("cjs", index);
32
23
  }
33
24
  } catch (err) {
34
25
  console.error("Failed to load CLI:", err);
package/dist/cjs/app.js CHANGED
@@ -1 +1 @@
1
- "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.app=void 0,exports.bootstrap=bootstrap;const express_1=__importDefault(require("express")),cors_1=__importDefault(require("cors")),cookie_parser_1=__importDefault(require("cookie-parser")),auth_router_1=require("./modules/auth/auth.router"),base_router_1=require("./modules/base/base.router"),error_handler_controller_1=__importDefault(require("./modules/error-handler/error-handler.controller")),express_rate_limit_1=require("express-rate-limit"),compression_1=__importDefault(require("compression")),base_middlewares_1=require("./modules/base/base.middlewares"),prisma_helpers_1=require("./utils/helpers/prisma.helpers"),file_upload_router_1=require("./modules/file-upload/file-upload.router"),query_parser_helpers_1=require("./utils/helpers/query-parser.helpers"),deepmerge_helper_1=__importDefault(require("./utils/helpers/deepmerge.helper")),swagger_router_1=require("./modules/swagger/swagger.router");exports.app=(0,express_1.default)();async function bootstrap(e){await(0,prisma_helpers_1.loadPrismaModule)(),e?.configureApp&&await e.configureApp(exports.app);const i=e?.middlewares,s=i?.disable||[],t=i?.replace||{};s?.includes?.("compression")||exports.app.use(t.compression||(0,compression_1.default)(e?.compressionOptions)),s?.includes?.("global-rate-limit")||exports.app.use(t.globalRateLimit||(0,express_rate_limit_1.rateLimit)((0,deepmerge_helper_1.default)({windowMs:60*1e3,limit:500,standardHeaders:"draft-7",legacyHeaders:!1,handler:(r,a)=>{a.status(429).json({message:"Too many requests, please try again later"})}},e?.globalRequestRateLimitOptions||{}))),s?.includes?.("cors")||exports.app.use(t.cors||(0,cors_1.default)(e?.cors?.customHandler?e.cors.customHandler:(0,deepmerge_helper_1.default)({origin:(r,a)=>{const l=e?.cors?.allowedOrigins;l==="*"?a(null,!0):Array.isArray(l)?a(null,!r||l?.includes?.(r)):typeof l=="string"?a(null,!r||l===r):a(null,!1)},methods:["GET","POST","PUT","DELETE","PATCH","OPTIONS"],allowedHeaders:["Content-Type","Authorization","Connection"],credentials:!0},e?.cors?.options||{}))),s?.includes?.("express-json")||exports.app.use(t.expressJson||express_1.default.json(e?.jsonBodyParserOptions)),s?.includes?.("cookie-parser")||exports.app.use(t.cookieParser||(0,cookie_parser_1.default)(...e?.cookieParserParameters||[])),s?.includes?.("query-parser")||exports.app.use(t.queryParser||(0,query_parser_helpers_1.queryParser)((0,deepmerge_helper_1.default)({parseNull:!0,parseUndefined:!0,parseBoolean:!0},e?.queryParserOptions||{}))),s?.includes?.("database-connection")||exports.app.use(t.databaseConnection||prisma_helpers_1.checkDatabaseConnection),s?.includes?.("request-logger")||exports.app.use(t.requestLogger||base_middlewares_1.handleRequestLogs),e?.middlewares?.additional&&e.middlewares.additional.forEach(r=>{exports.app.use(r)});const u=e?.routers,p=u?.disable||[],o=u?.replace||{};if(p?.includes?.("welcome-endpoint")||exports.app.get("/api",o.welcomeEndpoint||((r,a)=>{a.status(200).json({message:e.welcomeMessage})})),!p?.includes?.("file-upload")){const r=o.fileUpload?await o.fileUpload(e):await(0,file_upload_router_1.getFileUploadRouter)(e);exports.app.use(r)}if(!p?.includes?.("auth-router")&&e.authentication){const r=o.authRouter?await o.authRouter(e):await(0,auth_router_1.getAuthRouter)(e);exports.app.use("/api",r)}if(!p?.includes?.("prisma-models-router")){const r=o.prismaModelsRouter?await o.prismaModelsRouter(e):await(0,base_router_1.getPrismaModelsRouter)(e);exports.app.use("/api",r)}return exports.app.use("/api",(0,base_router_1.getAvailableResourcesAndRoutesRouter)()),exports.app.use("/api",(0,swagger_router_1.getSwaggerRouter)(e)),u?.additional&&u.additional.forEach(r=>{exports.app.use(r)}),s?.includes?.("global-error-handler")||exports.app.use(t.globalErrorHandler||error_handler_controller_1.default),exports.app}
1
+ "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.app=void 0,exports.bootstrap=bootstrap;const express_1=__importDefault(require("express")),cors_1=__importDefault(require("cors")),cookie_parser_1=__importDefault(require("cookie-parser")),auth_router_1=require("./modules/auth/auth.router"),base_router_1=require("./modules/base/base.router"),error_handler_controller_1=__importDefault(require("./modules/error-handler/error-handler.controller")),express_rate_limit_1=require("express-rate-limit"),compression_1=__importDefault(require("compression")),base_middlewares_1=require("./modules/base/base.middlewares"),prisma_helpers_1=require("./utils/helpers/prisma.helpers"),file_upload_router_1=require("./modules/file-upload/file-upload.router"),query_parser_helpers_1=require("./utils/helpers/query-parser.helpers"),deepmerge_helper_1=__importDefault(require("./utils/helpers/deepmerge.helper")),swagger_router_1=require("./modules/swagger/swagger.router");exports.app=(0,express_1.default)();async function bootstrap(e){await(0,prisma_helpers_1.loadPrismaModule)(),e?.configureApp&&await e.configureApp(exports.app);const i=e?.middlewares,t=i?.disable||[],a=i?.replace||{};t?.includes?.("compression")||exports.app.use(a.compression||(0,compression_1.default)(e?.compressionOptions)),t?.includes?.("global-rate-limit")||exports.app.use(a.globalRateLimit||(0,express_rate_limit_1.rateLimit)((0,deepmerge_helper_1.default)({windowMs:60*1e3,limit:500,standardHeaders:"draft-7",legacyHeaders:!1,handler:(r,s)=>{s.status(429).json({message:"Too many requests, please try again later"})}},e?.globalRequestRateLimitOptions||{}))),t?.includes?.("cors")||exports.app.use(a.cors||(0,cors_1.default)(e?.cors?.customHandler?e.cors.customHandler:(0,deepmerge_helper_1.default)({origin:(r,s)=>{const l=e?.cors?.allowedOrigins;l==="*"?s(null,!0):Array.isArray(l)?s(null,!r||l?.includes?.(r)):typeof l=="string"?s(null,!r||l===r):s(null,!1)},methods:["GET","POST","PUT","DELETE","PATCH","OPTIONS"],allowedHeaders:["Content-Type","Authorization","Connection"],credentials:!0},e?.cors?.options||{}))),t?.includes?.("express-json")||exports.app.use(a.expressJson||express_1.default.json(e?.jsonBodyParserOptions)),t?.includes?.("cookie-parser")||exports.app.use(a.cookieParser||(0,cookie_parser_1.default)(...e?.cookieParserParameters||[])),t?.includes?.("query-parser")||exports.app.use(a.queryParser||(0,query_parser_helpers_1.queryParser)((0,deepmerge_helper_1.default)({parseNull:!0,parseUndefined:!0,parseBoolean:!0},e?.queryParserOptions||{}))),t?.includes?.("database-connection")||exports.app.use(a.databaseConnection||prisma_helpers_1.checkDatabaseConnection),t?.includes?.("request-logger")||exports.app.use(a.requestLogger||base_middlewares_1.handleRequestLogs),e?.middlewares?.additional&&e.middlewares.additional.forEach(r=>{exports.app.use(r)});const u=e?.routers,p=u?.disable||[],o=u?.replace||{};if(p?.includes?.("welcome-endpoint")||exports.app.get("/api",o.welcomeEndpoint||((r,s)=>{s.status(200).json({message:e.welcomeMessage})})),!p?.includes?.("file-upload")){const r=o.fileUpload?await o.fileUpload(e):await(0,file_upload_router_1.getFileUploadRouter)(e);exports.app.use(r)}if(!p?.includes?.("auth-router")&&e.authentication){const r=o.authRouter?await o.authRouter(e):await(0,auth_router_1.getAuthRouter)(e);exports.app.use("/api",r)}if(!p?.includes?.("prisma-models-router")){const r=o.prismaModelsRouter?await o.prismaModelsRouter(e):await(0,base_router_1.getPrismaModelsRouter)(e);exports.app.use("/api",r)}return exports.app.use("/api",(0,base_router_1.getAvailableResourcesAndRoutesRouter)()),e.swagger&&(process.env.ARKOS_BUILD!=="true"||e.swagger.enableAfterBuild===!0)&&exports.app.use("/api",await(0,swagger_router_1.getSwaggerRouter)(e)),u?.additional&&u.additional.forEach(r=>{exports.app.use(r)}),t?.includes?.("global-error-handler")||exports.app.use(a.globalErrorHandler||error_handler_controller_1.default),exports.app.use("*",(r,s)=>{s.status(404).json({message:"Route not found!"})}),exports.app}
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/app.ts"],"names":[],"mappings":"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","sourcesContent":["import express 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 {\n checkDatabaseConnection,\n loadPrismaModule,\n} 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\";\n\nexport const app: express.Express = express();\n\nexport async function bootstrap(\n arkosConfig: ArkosConfig\n): Promise<express.Express> {\n await loadPrismaModule();\n\n if (arkosConfig?.configureApp) await arkosConfig.configureApp(app);\n\n const middlewaresConfig = arkosConfig?.middlewares;\n const disabledMiddlewares = middlewaresConfig?.disable || [];\n const replacedMiddlewares = middlewaresConfig?.replace || {};\n\n // Compression middleware\n if (!disabledMiddlewares?.includes?.(\"compression\"))\n app.use(\n replacedMiddlewares.compression ||\n compression(arkosConfig?.compressionOptions)\n );\n\n // Global rate limit middleware\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: (req, 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 // CORS middleware\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 // JSON body parser middleware\n if (!disabledMiddlewares?.includes?.(\"express-json\"))\n app.use(\n replacedMiddlewares.expressJson ||\n express.json(arkosConfig?.jsonBodyParserOptions)\n );\n\n // Cookie parser middleware\n if (!disabledMiddlewares?.includes?.(\"cookie-parser\"))\n app.use(\n replacedMiddlewares.cookieParser ||\n cookieParser(...[...(arkosConfig?.cookieParserParameters || [])])\n );\n\n // Query parser middleware\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 // Database connection check middleware\n if (!disabledMiddlewares?.includes?.(\"database-connection\"))\n app.use(replacedMiddlewares.databaseConnection || checkDatabaseConnection);\n\n // Request logger middleware\n if (!disabledMiddlewares?.includes?.(\"request-logger\"))\n app.use(replacedMiddlewares.requestLogger || handleRequestLogs);\n\n // Additional custom middlewares\n if (arkosConfig?.middlewares?.additional)\n arkosConfig.middlewares.additional.forEach((middleware) => {\n app.use(middleware);\n });\n\n // Configure routers\n const routersConfig = arkosConfig?.routers;\n const disabledRouters = routersConfig?.disable || [];\n const replacedRouters = routersConfig?.replace || {};\n\n // Welcome endpoint\n if (!disabledRouters?.includes?.(\"welcome-endpoint\"))\n app.get(\n \"/api\",\n replacedRouters.welcomeEndpoint ||\n ((req, res) => {\n res.status(200).json({ message: arkosConfig.welcomeMessage });\n })\n );\n\n // File upload router\n if (!disabledRouters?.includes?.(\"file-upload\")) {\n const fileUploadRouter = replacedRouters.fileUpload\n ? await replacedRouters.fileUpload(arkosConfig)\n : await getFileUploadRouter(arkosConfig);\n app.use(fileUploadRouter);\n }\n\n // Auth router\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 app.use(\"/api\", authRouter);\n }\n\n // Prisma models router\n if (!disabledRouters?.includes?.(\"prisma-models-router\")) {\n const modelsRouter = replacedRouters.prismaModelsRouter\n ? await replacedRouters.prismaModelsRouter(arkosConfig)\n : await getPrismaModelsRouter(arkosConfig);\n app.use(\"/api\", modelsRouter);\n }\n\n app.use(\"/api\", getAvailableResourcesAndRoutesRouter());\n\n app.use(\"/api\", getSwaggerRouter(arkosConfig));\n\n // Additional custom routers\n if (routersConfig?.additional) {\n routersConfig.additional.forEach((router) => {\n app.use(router);\n });\n }\n\n // Global error handler middleware (must be last)\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":["// require(\"ts-node\").register({\n// esm: true,\n// experimentalSpecifierResolution: \"node\",\n// });\nimport express 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 {\n checkDatabaseConnection,\n loadPrismaModule,\n} 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\";\n\nexport const app: express.Express = express();\n\nexport async function bootstrap(\n arkosConfig: ArkosConfig\n): Promise<express.Express> {\n await loadPrismaModule();\n\n if (arkosConfig?.configureApp) await arkosConfig.configureApp(app);\n\n const middlewaresConfig = arkosConfig?.middlewares;\n const disabledMiddlewares = middlewaresConfig?.disable || [];\n const replacedMiddlewares = middlewaresConfig?.replace || {};\n\n // Compression middleware\n if (!disabledMiddlewares?.includes?.(\"compression\"))\n app.use(\n replacedMiddlewares.compression ||\n compression(arkosConfig?.compressionOptions)\n );\n\n // Global rate limit middleware\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 // CORS middleware\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 // JSON body parser middleware\n if (!disabledMiddlewares?.includes?.(\"express-json\"))\n app.use(\n replacedMiddlewares.expressJson ||\n express.json(arkosConfig?.jsonBodyParserOptions)\n );\n\n // Cookie parser middleware\n if (!disabledMiddlewares?.includes?.(\"cookie-parser\"))\n app.use(\n replacedMiddlewares.cookieParser ||\n cookieParser(...[...(arkosConfig?.cookieParserParameters || [])])\n );\n\n // Query parser middleware\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 // Database connection check middleware\n if (!disabledMiddlewares?.includes?.(\"database-connection\"))\n app.use(replacedMiddlewares.databaseConnection || checkDatabaseConnection);\n\n // Request logger middleware\n if (!disabledMiddlewares?.includes?.(\"request-logger\"))\n app.use(replacedMiddlewares.requestLogger || handleRequestLogs);\n\n // Additional custom middlewares\n if (arkosConfig?.middlewares?.additional)\n arkosConfig.middlewares.additional.forEach((middleware) => {\n app.use(middleware);\n });\n\n // Configure routers\n const routersConfig = arkosConfig?.routers;\n const disabledRouters = routersConfig?.disable || [];\n const replacedRouters = routersConfig?.replace || {};\n\n // Welcome endpoint\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 // File upload router\n if (!disabledRouters?.includes?.(\"file-upload\")) {\n const fileUploadRouter = replacedRouters.fileUpload\n ? await replacedRouters.fileUpload(arkosConfig)\n : await getFileUploadRouter(arkosConfig);\n app.use(fileUploadRouter);\n }\n\n // Auth router\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 app.use(\"/api\", authRouter);\n }\n\n // Prisma models router\n if (!disabledRouters?.includes?.(\"prisma-models-router\")) {\n const modelsRouter = replacedRouters.prismaModelsRouter\n ? await replacedRouters.prismaModelsRouter(arkosConfig)\n : await getPrismaModelsRouter(arkosConfig);\n app.use(\"/api\", modelsRouter);\n }\n\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));\n\n // Additional custom routers\n if (routersConfig?.additional)\n routersConfig.additional.forEach((router) => {\n app.use(router);\n });\n\n // Global error handler middleware (must be last)\n if (!disabledMiddlewares?.includes?.(\"global-error-handler\"))\n app.use(replacedMiddlewares.globalErrorHandler || errorHandler);\n\n app.use(\"*\", (_, res) => {\n res.status(404).json({ message: \"Route not found!\" });\n });\n\n return app;\n}\n"]}
@@ -1,6 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.defaultExcludedUserFields = void 0;
4
- var auth_controller_1 = require("./../../modules/auth/auth.controller");
5
- Object.defineProperty(exports, "defaultExcludedUserFields", { enumerable: true, get: function () { return auth_controller_1.defaultExcludedUserFields; } });
6
- //# sourceMappingURL=index.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.defaultExcludedUserFields=void 0;var auth_controller_1=require("./../../modules/auth/auth.controller");Object.defineProperty(exports,"defaultExcludedUserFields",{enumerable:!0,get:function(){return auth_controller_1.defaultExcludedUserFields}});
@@ -1,11 +1 @@
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.BaseController = exports.fileUploadController = void 0;
7
- const base_controller_1 = require("./../../modules/base/base.controller");
8
- Object.defineProperty(exports, "BaseController", { enumerable: true, get: function () { return base_controller_1.BaseController; } });
9
- const file_upload_controller_1 = __importDefault(require("../../modules/file-upload/file-upload.controller"));
10
- exports.fileUploadController = file_upload_controller_1.default;
11
- //# sourceMappingURL=index.js.map
1
+ "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.BaseController=exports.fileUploadController=void 0;const base_controller_1=require("./../../modules/base/base.controller");Object.defineProperty(exports,"BaseController",{enumerable:!0,get:function(){return base_controller_1.BaseController}});const file_upload_controller_1=__importDefault(require("../../modules/file-upload/file-upload.controller"));exports.fileUploadController=file_upload_controller_1.default;
@@ -1,11 +1 @@
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.AppError = exports.catchAsync = void 0;
7
- const catch_async_1 = __importDefault(require("../../modules/error-handler/utils/catch-async"));
8
- exports.catchAsync = catch_async_1.default;
9
- const app_error_1 = __importDefault(require("../../modules/error-handler/utils/app-error"));
10
- exports.AppError = app_error_1.default;
11
- //# sourceMappingURL=index.js.map
1
+ "use strict";var __importDefault=this&&this.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.AppError=exports.catchAsync=void 0;const catch_async_1=__importDefault(require("../../modules/error-handler/utils/catch-async"));exports.catchAsync=catch_async_1.default;const app_error_1=__importDefault(require("../../modules/error-handler/utils/app-error"));exports.AppError=app_error_1.default;
@@ -1,12 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getArkosConfig = exports.BaseController = void 0;
4
- const base_controller_1 = require("./../modules/base/base.controller");
5
- Object.defineProperty(exports, "BaseController", { enumerable: true, get: function () { return base_controller_1.BaseController; } });
6
- const server_1 = require("../server");
7
- Object.defineProperty(exports, "getArkosConfig", { enumerable: true, get: function () { return server_1.getArkosConfig; } });
8
- const arkos = {
9
- init: server_1.initApp,
10
- };
11
- exports.default = arkos;
12
- //# sourceMappingURL=index.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getArkosConfig=exports.BaseController=void 0;const base_controller_1=require("./../modules/base/base.controller");Object.defineProperty(exports,"BaseController",{enumerable:!0,get:function(){return base_controller_1.BaseController}});const server_1=require("../server");Object.defineProperty(exports,"getArkosConfig",{enumerable:!0,get:function(){return server_1.getArkosConfig}});const arkos={init:server_1.initApp};exports.default=arkos;
@@ -1,7 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.handleRequestBodyValidationAndTransformation = exports.addPrismaQueryOptionsToRequest = void 0;
4
- var base_middlewares_1 = require("../../modules/base/base.middlewares");
5
- Object.defineProperty(exports, "addPrismaQueryOptionsToRequest", { enumerable: true, get: function () { return base_middlewares_1.addPrismaQueryOptionsToRequest; } });
6
- Object.defineProperty(exports, "handleRequestBodyValidationAndTransformation", { enumerable: true, get: function () { return base_middlewares_1.handleRequestBodyValidationAndTransformation; } });
7
- //# sourceMappingURL=index.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.handleRequestBodyValidationAndTransformation=exports.addPrismaQueryOptionsToRequest=void 0;var base_middlewares_1=require("../../modules/base/base.middlewares");Object.defineProperty(exports,"addPrismaQueryOptionsToRequest",{enumerable:!0,get:function(){return base_middlewares_1.addPrismaQueryOptionsToRequest}}),Object.defineProperty(exports,"handleRequestBodyValidationAndTransformation",{enumerable:!0,get:function(){return base_middlewares_1.handleRequestBodyValidationAndTransformation}});
@@ -1,6 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getPrismaModels = void 0;
4
- const models_helpers_1 = require("../../utils/helpers/models.helpers");
5
- Object.defineProperty(exports, "getPrismaModels", { enumerable: true, get: function () { return models_helpers_1.getModels; } });
6
- //# sourceMappingURL=index.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getPrismaModels=void 0;const models_helpers_1=require("../../utils/helpers/models.helpers");Object.defineProperty(exports,"getPrismaModels",{enumerable:!0,get:function(){return models_helpers_1.getModels}});
@@ -1,49 +1 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.FileUploadService = exports.getFileUploadServices = exports.EmailService = exports.emailService = exports.getBaseServices = exports.BaseService = exports.AuthService = exports.authService = void 0;
37
- const file_upload_service_1 = require("../../modules/file-upload/file-upload.service");
38
- Object.defineProperty(exports, "getFileUploadServices", { enumerable: true, get: function () { return file_upload_service_1.getFileUploadServices; } });
39
- Object.defineProperty(exports, "FileUploadService", { enumerable: true, get: function () { return file_upload_service_1.FileUploadService; } });
40
- const auth_service_1 = __importStar(require("../../modules/auth/auth.service"));
41
- exports.authService = auth_service_1.default;
42
- Object.defineProperty(exports, "AuthService", { enumerable: true, get: function () { return auth_service_1.AuthService; } });
43
- const email_service_1 = __importStar(require("../../modules/email/email.service"));
44
- exports.emailService = email_service_1.default;
45
- Object.defineProperty(exports, "EmailService", { enumerable: true, get: function () { return email_service_1.EmailService; } });
46
- const base_service_1 = require("../../modules/base/base.service");
47
- Object.defineProperty(exports, "BaseService", { enumerable: true, get: function () { return base_service_1.BaseService; } });
48
- Object.defineProperty(exports, "getBaseServices", { enumerable: true, get: function () { return base_service_1.getBaseServices; } });
49
- //# sourceMappingURL=index.js.map
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(u,e,i,r){r===void 0&&(r=i);var t=Object.getOwnPropertyDescriptor(e,i);(!t||("get"in t?!e.__esModule:t.writable||t.configurable))&&(t={enumerable:!0,get:function(){return e[i]}}),Object.defineProperty(u,r,t)}:function(u,e,i,r){r===void 0&&(r=i),u[r]=e[i]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(u,e){Object.defineProperty(u,"default",{enumerable:!0,value:e})}:function(u,e){u.default=e}),__importStar=this&&this.__importStar||function(){var u=function(e){return u=Object.getOwnPropertyNames||function(i){var r=[];for(var t in i)Object.prototype.hasOwnProperty.call(i,t)&&(r[r.length]=t);return r},u(e)};return function(e){if(e&&e.__esModule)return e;var i={};if(e!=null)for(var r=u(e),t=0;t<r.length;t++)r[t]!=="default"&&__createBinding(i,e,r[t]);return __setModuleDefault(i,e),i}}();Object.defineProperty(exports,"__esModule",{value:!0}),exports.FileUploadService=exports.getFileUploadServices=exports.EmailService=exports.emailService=exports.getBaseServices=exports.BaseService=exports.AuthService=exports.authService=void 0;const file_upload_service_1=require("../../modules/file-upload/file-upload.service");Object.defineProperty(exports,"getFileUploadServices",{enumerable:!0,get:function(){return file_upload_service_1.getFileUploadServices}}),Object.defineProperty(exports,"FileUploadService",{enumerable:!0,get:function(){return file_upload_service_1.FileUploadService}});const auth_service_1=__importStar(require("../../modules/auth/auth.service"));exports.authService=auth_service_1.default,Object.defineProperty(exports,"AuthService",{enumerable:!0,get:function(){return auth_service_1.AuthService}});const email_service_1=__importStar(require("../../modules/email/email.service"));exports.emailService=email_service_1.default,Object.defineProperty(exports,"EmailService",{enumerable:!0,get:function(){return email_service_1.EmailService}});const base_service_1=require("../../modules/base/base.service");Object.defineProperty(exports,"BaseService",{enumerable:!0,get:function(){return base_service_1.BaseService}}),Object.defineProperty(exports,"getBaseServices",{enumerable:!0,get:function(){return base_service_1.getBaseServices}});
@@ -1,44 +1 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
19
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
20
- };
21
- var __importStar = (this && this.__importStar) || (function () {
22
- var ownKeys = function(o) {
23
- ownKeys = Object.getOwnPropertyNames || function (o) {
24
- var ar = [];
25
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
- return ar;
27
- };
28
- return ownKeys(o);
29
- };
30
- return function (mod) {
31
- if (mod && mod.__esModule) return mod;
32
- var result = {};
33
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
- __setModuleDefault(result, mod);
35
- return result;
36
- };
37
- })();
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.apiFeatures = exports.APIFeatures = void 0;
40
- __exportStar(require("../../utils/helpers/change-case.helpers"), exports);
41
- const api_features_1 = __importStar(require("../../utils/features/api.features"));
42
- exports.APIFeatures = api_features_1.default;
43
- Object.defineProperty(exports, "apiFeatures", { enumerable: true, get: function () { return api_features_1.apiFeatures; } });
44
- //# sourceMappingURL=index.js.map
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(n,e,t,r){r===void 0&&(r=t);var u=Object.getOwnPropertyDescriptor(e,t);(!u||("get"in u?!e.__esModule:u.writable||u.configurable))&&(u={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(n,r,u)}:function(n,e,t,r){r===void 0&&(r=t),n[r]=e[t]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(n,e){Object.defineProperty(n,"default",{enumerable:!0,value:e})}:function(n,e){n.default=e}),__exportStar=this&&this.__exportStar||function(n,e){for(var t in n)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&__createBinding(e,n,t)},__importStar=this&&this.__importStar||function(){var n=function(e){return n=Object.getOwnPropertyNames||function(t){var r=[];for(var u in t)Object.prototype.hasOwnProperty.call(t,u)&&(r[r.length]=u);return r},n(e)};return function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r=n(e),u=0;u<r.length;u++)r[u]!=="default"&&__createBinding(t,e,r[u]);return __setModuleDefault(t,e),t}}();Object.defineProperty(exports,"__esModule",{value:!0}),exports.apiFeatures=exports.APIFeatures=void 0,__exportStar(require("../../utils/helpers/change-case.helpers"),exports);const api_features_1=__importStar(require("../../utils/features/api.features"));exports.APIFeatures=api_features_1.default,Object.defineProperty(exports,"apiFeatures",{enumerable:!0,get:function(){return api_features_1.apiFeatures}});
@@ -1,11 +1 @@
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.validateSchema = exports.validateDto = void 0;
7
- const validate_dto_1 = __importDefault(require("../../utils/validate-dto"));
8
- exports.validateDto = validate_dto_1.default;
9
- const validate_schema_1 = __importDefault(require("../../utils/validate-schema"));
10
- exports.validateSchema = validate_schema_1.default;
11
- //# sourceMappingURL=index.js.map
1
+ "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.validateSchema=exports.validateDto=void 0;const validate_dto_1=__importDefault(require("../../utils/validate-dto"));exports.validateDto=validate_dto_1.default;const validate_schema_1=__importDefault(require("../../utils/validate-schema"));exports.validateSchema=validate_schema_1.default;
@@ -1,194 +1 @@
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.authControllerFactory = exports.defaultExcludedUserFields = void 0;
7
- const catch_async_1 = __importDefault(require("../error-handler/utils/catch-async"));
8
- const app_error_1 = __importDefault(require("../error-handler/utils/app-error"));
9
- const auth_service_1 = __importDefault(require("./auth.service"));
10
- const base_service_1 = require("../base/base.service");
11
- const arkos_env_1 = __importDefault(require("../../utils/arkos-env"));
12
- const server_1 = require("../../server");
13
- const auth_controller_helpers_1 = require("./utils/helpers/auth.controller.helpers");
14
- exports.defaultExcludedUserFields = {
15
- password: false,
16
- };
17
- const authControllerFactory = async (middlewares = {}) => {
18
- const userService = (0, base_service_1.getBaseServices)()["user"];
19
- return {
20
- getMe: (0, catch_async_1.default)(async (req, res, next) => {
21
- const user = (await userService.findOne({ id: req.user.id }, req.prismaQueryOptions || {}));
22
- Object.keys(exports.defaultExcludedUserFields).forEach((key) => {
23
- if (user)
24
- delete user[key];
25
- });
26
- if (middlewares?.afterGetMe) {
27
- req.responseData = { data: user };
28
- req.responseStatus = 200;
29
- return next();
30
- }
31
- res.status(200).json({ data: user });
32
- }),
33
- updateMe: (0, catch_async_1.default)(async (req, res, next) => {
34
- if ("password" in req.body)
35
- throw new app_error_1.default("In order to update password use the update-password endpoint.", 400, {}, "InvalidFieldPassword");
36
- const user = (await userService.updateOne({ id: req.user.id }, req.body, req.prismaQueryOptions || {}));
37
- Object.keys(exports.defaultExcludedUserFields).forEach((key) => {
38
- if (user)
39
- delete user[key];
40
- });
41
- if (middlewares?.afterUpdateMe) {
42
- req.responseData = { data: user };
43
- req.responseStatus = 200;
44
- return next();
45
- }
46
- res.status(200).json({ data: user });
47
- }),
48
- logout: (0, catch_async_1.default)(async (req, res, next) => {
49
- res.cookie("arkos_access_token", "no-token", {
50
- expires: new Date(Date.now() + 10 * 1000),
51
- httpOnly: true,
52
- });
53
- if (middlewares?.afterLogout) {
54
- req.responseData = null;
55
- req.responseStatus = 204;
56
- return next();
57
- }
58
- res.status(204).json();
59
- }),
60
- login: (0, catch_async_1.default)(async (req, res, next) => {
61
- const authConfigs = (0, server_1.getArkosConfig)()?.authentication;
62
- const usernameField = (0, auth_controller_helpers_1.determineUsernameField)(req);
63
- const lastField = usernameField.split(".")[usernameField.split(".").length - 1];
64
- const usernameValue = req.body[lastField];
65
- const { password } = req.body;
66
- if (!usernameValue || !password)
67
- return next(new app_error_1.default(`Please provide both ${lastField} and password`, 400));
68
- let whereClause;
69
- if (usernameField?.includes?.(".")) {
70
- const valueToFind = (0, auth_controller_helpers_1.getNestedValue)(req.body, usernameField);
71
- if (valueToFind === undefined) {
72
- return next(new app_error_1.default(`Invalid ${usernameField} provided`, 400));
73
- }
74
- whereClause = (0, auth_controller_helpers_1.createPrismaWhereClause)(usernameField, valueToFind);
75
- }
76
- else {
77
- whereClause = { [usernameField]: usernameValue };
78
- }
79
- const user = (await userService.findOne(whereClause, req.prismaQueryOptions || {}));
80
- if (!user ||
81
- !(await auth_service_1.default.isCorrectPassword(password, user.password))) {
82
- return next(new app_error_1.default(`Incorrect ${lastField} or password`, 401));
83
- }
84
- const token = auth_service_1.default.signJwtToken(user.id);
85
- const cookieOptions = {
86
- expires: new Date(Date.now() +
87
- Number((0, auth_controller_helpers_1.toMs)(authConfigs?.jwt?.expiresIn ||
88
- process.env.JWT_EXPIRES_IN ||
89
- arkos_env_1.default.JWT_EXPIRES_IN))),
90
- httpOnly: authConfigs?.jwt?.cookie?.httpOnly ||
91
- process.env.JWT_COOKIE_HTTP_ONLY === "true" ||
92
- true,
93
- secure: authConfigs?.jwt?.cookie?.secure ||
94
- process.env.JWT_COOKIE_SECURE === "true" ||
95
- req.secure ||
96
- req.headers["x-forwarded-proto"] === "https",
97
- sameSite: authConfigs?.jwt?.cookie?.sameSite ||
98
- process.env.JWT_COOKIE_SAME_SITE ||
99
- (process.env.NODE_ENV === "production" ? "none" : "lax"),
100
- };
101
- if (authConfigs?.login?.sendAccessTokenThrough === "response-only" ||
102
- authConfigs?.login?.sendAccessTokenThrough === "both" ||
103
- !authConfigs?.login?.sendAccessTokenThrough) {
104
- req.responseData = { accessToken: token };
105
- }
106
- if (authConfigs?.login?.sendAccessTokenThrough === "cookie-only" ||
107
- authConfigs?.login?.sendAccessTokenThrough === "both" ||
108
- !authConfigs?.login?.sendAccessTokenThrough)
109
- res.cookie("arkos_access_token", token, cookieOptions);
110
- if (middlewares?.afterLogin) {
111
- req.additionalData = { user };
112
- req.responseStatus = 200;
113
- return next();
114
- }
115
- if (authConfigs?.login?.sendAccessTokenThrough === "response-only" ||
116
- authConfigs?.login?.sendAccessTokenThrough === "both" ||
117
- !authConfigs?.login?.sendAccessTokenThrough) {
118
- res.status(200).json(req.responseData);
119
- }
120
- else if (authConfigs?.login?.sendAccessTokenThrough === "cookie-only" ||
121
- authConfigs?.login?.sendAccessTokenThrough === "both" ||
122
- !authConfigs?.login?.sendAccessTokenThrough)
123
- res.status(200).send();
124
- }),
125
- signup: (0, catch_async_1.default)(async (req, res, next) => {
126
- const user = (await userService.createOne(req.body, req.prismaQueryOptions || {}));
127
- if (middlewares?.afterSignup) {
128
- req.responseData = { data: user };
129
- req.responseStatus = 201;
130
- return next();
131
- }
132
- Object.keys(exports.defaultExcludedUserFields).forEach((key) => {
133
- delete user[key];
134
- });
135
- res.status(201).json({ data: user });
136
- }),
137
- deleteMe: (0, catch_async_1.default)(async (req, res, next) => {
138
- const userId = req.user.id;
139
- const updatedUser = (await userService.updateOne({ id: userId }, {
140
- deletedSelfAccountAt: new Date().toISOString(),
141
- }, req.prismaQueryOptions || {}));
142
- if (middlewares?.afterDeleteMe) {
143
- req.responseData = { data: updatedUser };
144
- req.responseStatus = 200;
145
- return next();
146
- }
147
- Object.keys(exports.defaultExcludedUserFields).forEach((key) => {
148
- delete updatedUser[key];
149
- });
150
- res.status(200).json({
151
- message: "Account deleted successfully",
152
- });
153
- }),
154
- updatePassword: (0, catch_async_1.default)(async (req, res, next) => {
155
- const { currentPassword, newPassword } = req.body;
156
- if (!currentPassword || !newPassword)
157
- return next(new app_error_1.default("currentPassword and newPassword are required", 400));
158
- const user = req.user;
159
- if (!user || user?.isActive === false || user?.deletedSelfAccountAt)
160
- return next(new app_error_1.default("User not found!", 404));
161
- const isPasswordCorrect = await auth_service_1.default.isCorrectPassword(String(currentPassword), String(user.password));
162
- const configs = (0, server_1.getArkosConfig)();
163
- const initAuthConfigs = configs?.authentication;
164
- if (!isPasswordCorrect)
165
- return next(new app_error_1.default("Current password is incorrect.", 400));
166
- if (!auth_service_1.default.isPasswordStrong(String(newPassword)) &&
167
- !configs?.validation) {
168
- return next(new app_error_1.default(initAuthConfigs?.passwordValidation?.message ||
169
- "The new password must contain at least one uppercase letter, one lowercase letter, and one number", 400));
170
- }
171
- await userService.updateOne({ id: user.id }, {
172
- password: await auth_service_1.default.hashPassword(newPassword),
173
- passwordChangedAt: new Date(Date.now()),
174
- });
175
- if (middlewares?.afterUpdatePassword) {
176
- req.additionalData = {
177
- user,
178
- };
179
- req.responseData = {
180
- status: "success",
181
- message: "Password updated successfully!",
182
- };
183
- req.responseStatus = 200;
184
- return next();
185
- }
186
- res.status(200).json({
187
- status: "success",
188
- message: "Password updated successfully!",
189
- });
190
- }),
191
- };
192
- };
193
- exports.authControllerFactory = authControllerFactory;
194
- //# sourceMappingURL=auth.controller.js.map
1
+ "use strict";var __importDefault=this&&this.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.authControllerFactory=exports.defaultExcludedUserFields=void 0;const catch_async_1=__importDefault(require("../error-handler/utils/catch-async")),app_error_1=__importDefault(require("../error-handler/utils/app-error")),auth_service_1=__importDefault(require("./auth.service")),base_service_1=require("../base/base.service"),arkos_env_1=__importDefault(require("../../utils/arkos-env")),server_1=require("../../server"),auth_controller_helpers_1=require("./utils/helpers/auth.controller.helpers");exports.defaultExcludedUserFields={password:!1};const authControllerFactory=async(n={})=>{const u=(0,base_service_1.getBaseServices)().user;return{getMe:(0,catch_async_1.default)(async(e,a,t)=>{const s=await u.findOne({id:e.user.id},e.prismaQueryOptions||{});if(Object.keys(exports.defaultExcludedUserFields).forEach(o=>{s&&delete s[o]}),n?.afterGetMe)return e.responseData={data:s},e.responseStatus=200,t();a.status(200).json({data:s})}),updateMe:(0,catch_async_1.default)(async(e,a,t)=>{if("password"in e.body)throw new app_error_1.default("In order to update password use the update-password endpoint.",400,{},"InvalidFieldPassword");const s=await u.updateOne({id:e.user.id},e.body,e.prismaQueryOptions||{});if(Object.keys(exports.defaultExcludedUserFields).forEach(o=>{s&&delete s[o]}),n?.afterUpdateMe)return e.responseData={data:s},e.responseStatus=200,t();a.status(200).json({data:s})}),logout:(0,catch_async_1.default)(async(e,a,t)=>{if(a.cookie("arkos_access_token","no-token",{expires:new Date(Date.now()+10*1e3),httpOnly:!0}),n?.afterLogout)return e.responseData=null,e.responseStatus=204,t();a.status(204).json()}),login:(0,catch_async_1.default)(async(e,a,t)=>{const s=(0,server_1.getArkosConfig)()?.authentication,o=(0,auth_controller_helpers_1.determineUsernameField)(e),r=o.split(".")[o.split(".").length-1],c=e.body[r],{password:d}=e.body;if(!c||!d)return t(new app_error_1.default(`Please provide both ${r} and password`,400));let i;if(o?.includes?.(".")){const f=(0,auth_controller_helpers_1.getNestedValue)(e.body,o);if(f===void 0)return t(new app_error_1.default(`Invalid ${o} provided`,400));i=(0,auth_controller_helpers_1.createPrismaWhereClause)(o,f)}else i={[o]:c};const l=await u.findOne(i,e.prismaQueryOptions||{});if(!l||!await auth_service_1.default.isCorrectPassword(d,l.password))return t(new app_error_1.default(`Incorrect ${r} or password`,401));const p=auth_service_1.default.signJwtToken(l.id),h={expires:new Date(Date.now()+Number((0,auth_controller_helpers_1.toMs)(s?.jwt?.expiresIn||process.env.JWT_EXPIRES_IN||arkos_env_1.default.JWT_EXPIRES_IN))),httpOnly:s?.jwt?.cookie?.httpOnly||process.env.JWT_COOKIE_HTTP_ONLY==="true"||!0,secure:s?.jwt?.cookie?.secure||process.env.JWT_COOKIE_SECURE==="true"||e.secure||e.headers["x-forwarded-proto"]==="https",sameSite:s?.jwt?.cookie?.sameSite||process.env.JWT_COOKIE_SAME_SITE||(process.env.NODE_ENV==="production"?"none":"lax")};if((s?.login?.sendAccessTokenThrough==="response-only"||s?.login?.sendAccessTokenThrough==="both"||!s?.login?.sendAccessTokenThrough)&&(e.responseData={accessToken:p}),(s?.login?.sendAccessTokenThrough==="cookie-only"||s?.login?.sendAccessTokenThrough==="both"||!s?.login?.sendAccessTokenThrough)&&a.cookie("arkos_access_token",p,h),n?.afterLogin)return e.additionalData={user:l},e.responseStatus=200,t();s?.login?.sendAccessTokenThrough==="response-only"||s?.login?.sendAccessTokenThrough==="both"||!s?.login?.sendAccessTokenThrough?a.status(200).json(e.responseData):(s?.login?.sendAccessTokenThrough==="cookie-only"||s?.login?.sendAccessTokenThrough==="both"||!s?.login?.sendAccessTokenThrough)&&a.status(200).send()}),signup:(0,catch_async_1.default)(async(e,a,t)=>{const s=await u.createOne(e.body,e.prismaQueryOptions||{});if(n?.afterSignup)return e.responseData={data:s},e.responseStatus=201,t();Object.keys(exports.defaultExcludedUserFields).forEach(o=>{delete s[o]}),a.status(201).json({data:s})}),deleteMe:(0,catch_async_1.default)(async(e,a,t)=>{const s=e.user.id,o=await u.updateOne({id:s},{deletedSelfAccountAt:new Date().toISOString()},e.prismaQueryOptions||{});if(n?.afterDeleteMe)return e.responseData={data:o},e.responseStatus=200,t();Object.keys(exports.defaultExcludedUserFields).forEach(r=>{delete o[r]}),a.status(200).json({message:"Account deleted successfully"})}),updatePassword:(0,catch_async_1.default)(async(e,a,t)=>{const{currentPassword:s,newPassword:o}=e.body;if(!s||!o)return t(new app_error_1.default("currentPassword and newPassword are required",400));const r=e.user;if(!r||r?.isActive===!1||r?.deletedSelfAccountAt)return t(new app_error_1.default("User not found!",404));const c=await auth_service_1.default.isCorrectPassword(String(s),String(r.password)),d=(0,server_1.getArkosConfig)(),i=d?.authentication;if(!c)return t(new app_error_1.default("Current password is incorrect.",400));if(!auth_service_1.default.isPasswordStrong(String(o))&&!d?.validation)return t(new app_error_1.default(i?.passwordValidation?.message||"The new password must contain at least one uppercase letter, one lowercase letter, and one number",400));if(await u.updateOne({id:r.id},{password:await auth_service_1.default.hashPassword(o),passwordChangedAt:new Date(Date.now())}),n?.afterUpdatePassword)return e.additionalData={user:r},e.responseData={status:"success",message:"Password updated successfully!"},e.responseStatus=200,t();a.status(200).json({status:"success",message:"Password updated successfully!"})})}};exports.authControllerFactory=authControllerFactory;