arkos 1.2.31-test → 1.3.0-canary

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 (346) hide show
  1. package/README.md +2 -2
  2. package/dist/cjs/app.js +1 -1
  3. package/dist/cjs/app.js.map +1 -1
  4. package/dist/cjs/exports/auth/index.js +1 -6
  5. package/dist/cjs/exports/controllers/index.js +1 -11
  6. package/dist/cjs/exports/error-handler/index.js +1 -11
  7. package/dist/cjs/exports/index.js +1 -12
  8. package/dist/cjs/exports/middlewares/index.js +1 -7
  9. package/dist/cjs/exports/prisma/index.js +1 -6
  10. package/dist/cjs/exports/prisma/index.js.map +1 -1
  11. package/dist/cjs/exports/services/index.js +1 -49
  12. package/dist/cjs/exports/services/index.js.map +1 -1
  13. package/dist/cjs/exports/utils/index.js +1 -44
  14. package/dist/cjs/exports/validation/index.js +1 -11
  15. package/dist/cjs/modules/auth/auth.controller.js +1 -194
  16. package/dist/cjs/modules/auth/auth.controller.js.map +1 -1
  17. package/dist/cjs/modules/auth/auth.router.js +1 -50
  18. package/dist/cjs/modules/auth/auth.router.js.map +1 -1
  19. package/dist/cjs/modules/auth/auth.service.js +1 -185
  20. package/dist/cjs/modules/auth/auth.service.js.map +1 -1
  21. package/dist/cjs/modules/auth/utils/helpers/auth.controller.helpers.js +1 -83
  22. package/dist/cjs/modules/base/base.controller.js +1 -158
  23. package/dist/cjs/modules/base/base.controller.js.map +1 -1
  24. package/dist/cjs/modules/base/base.middlewares.js +1 -92
  25. package/dist/cjs/modules/base/base.middlewares.js.map +1 -1
  26. package/dist/cjs/modules/base/base.router.js +1 -24
  27. package/dist/cjs/modules/base/base.router.js.map +1 -1
  28. package/dist/cjs/modules/base/base.service.js +1 -128
  29. package/dist/cjs/modules/base/base.service.js.map +1 -1
  30. package/dist/cjs/modules/base/types/base.service.types.js +1 -0
  31. package/dist/cjs/modules/base/types/base.service.types.js.map +1 -0
  32. package/dist/cjs/modules/base/utils/helpers/base.controller.helpers.js +1 -82
  33. package/dist/cjs/modules/base/utils/helpers/base.controller.helpers.js.map +1 -1
  34. package/dist/cjs/modules/base/utils/helpers/base.middlewares.helpers.js +1 -50
  35. package/dist/cjs/modules/base/utils/helpers/base.router.helpers.js +1 -97
  36. package/dist/cjs/modules/base/utils/helpers/base.router.helpers.js.map +1 -1
  37. package/dist/cjs/modules/base/utils/helpers/base.service.helpers.js +1 -171
  38. package/dist/cjs/modules/base/utils/helpers/base.service.helpers.js.map +1 -1
  39. package/dist/cjs/modules/base/utils/service-hooks-manager.js +1 -0
  40. package/dist/cjs/modules/base/utils/service-hooks-manager.js.map +1 -0
  41. package/dist/cjs/modules/email/email.service.js +1 -104
  42. package/dist/cjs/modules/error-handler/error-handler.controller.js +4 -146
  43. package/dist/cjs/modules/error-handler/error-handler.controller.js.map +1 -1
  44. package/dist/cjs/modules/error-handler/utils/app-error.js +1 -17
  45. package/dist/cjs/modules/error-handler/utils/catch-async.js +1 -12
  46. package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js +3 -201
  47. package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js.map +1 -1
  48. package/dist/cjs/modules/file-upload/file-upload.controller.js +1 -271
  49. package/dist/cjs/modules/file-upload/file-upload.controller.js.map +1 -1
  50. package/dist/cjs/modules/file-upload/file-upload.router.js +1 -44
  51. package/dist/cjs/modules/file-upload/file-upload.router.js.map +1 -1
  52. package/dist/cjs/modules/file-upload/file-upload.service.js +1 -322
  53. package/dist/cjs/modules/file-upload/utils/helpers/file-upload.helpers.js +1 -97
  54. package/dist/cjs/modules/swagger/swagger.router.js +1 -99
  55. package/dist/cjs/modules/swagger/swagger.router.js.map +1 -1
  56. package/dist/cjs/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js +1 -250
  57. package/dist/cjs/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js.map +1 -1
  58. package/dist/cjs/modules/swagger/utils/helpers/get-swagger-default-configs.js +1 -0
  59. package/dist/cjs/modules/swagger/utils/helpers/get-swagger-default-configs.js.map +1 -0
  60. package/dist/cjs/modules/swagger/utils/helpers/get-system-json-schema-paths.js +1 -66
  61. package/dist/cjs/modules/swagger/utils/helpers/get-system-json-schema-paths.js.map +1 -1
  62. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js +1 -41
  63. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js.map +1 -1
  64. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +1 -22
  65. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js.map +1 -1
  66. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js +1 -0
  67. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js.map +1 -0
  68. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js +1 -0
  69. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js.map +1 -0
  70. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes-paths.js +1 -0
  71. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes-paths.js.map +1 -0
  72. package/dist/cjs/modules/swagger/utils/helpers/missing-json-schemas-generator.js +1 -0
  73. package/dist/cjs/modules/swagger/utils/helpers/missing-json-schemas-generator.js.map +1 -0
  74. package/dist/cjs/modules/swagger/utils/helpers/swagger.router.helpers.js +1 -94
  75. package/dist/cjs/modules/swagger/utils/helpers/swagger.router.helpers.js.map +1 -1
  76. package/dist/cjs/package.json +3 -0
  77. package/dist/cjs/server.js +4 -2
  78. package/dist/cjs/server.js.map +1 -1
  79. package/dist/cjs/types/arkos-config.js +1 -3
  80. package/dist/cjs/types/arkos-config.js.map +1 -1
  81. package/dist/cjs/types/auth.js +1 -3
  82. package/dist/cjs/types/index.js +1 -11
  83. package/dist/cjs/types/index.js.map +1 -1
  84. package/dist/cjs/types/router-config.js +1 -3
  85. package/dist/cjs/utils/arkos-env.js +1 -9
  86. package/dist/cjs/utils/cli/build.js +5 -212
  87. package/dist/cjs/utils/cli/build.js.map +1 -1
  88. package/dist/cjs/utils/cli/dev.js +5 -256
  89. package/dist/cjs/utils/cli/dev.js.map +1 -1
  90. package/dist/cjs/utils/cli/generate.js +12 -189
  91. package/dist/cjs/utils/cli/generate.js.map +1 -1
  92. package/dist/cjs/utils/cli/index.js +1 -81
  93. package/dist/cjs/utils/cli/index.js.map +1 -1
  94. package/dist/cjs/utils/cli/start.js +1 -93
  95. package/dist/cjs/utils/cli/start.js.map +1 -1
  96. package/dist/cjs/utils/cli/utils/cli.helpers.js +1 -24
  97. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-auth-configs-template.js +5 -20
  98. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-controller-template.js +9 -18
  99. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-controller-template.js.map +1 -1
  100. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-middlewares.js +174 -101
  101. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-middlewares.js.map +1 -1
  102. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js +9 -37
  103. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js.map +1 -1
  104. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-router-template.js +11 -36
  105. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-router-template.js.map +1 -1
  106. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-service-template.js +7 -28
  107. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-service-template.js.map +1 -1
  108. package/dist/cjs/utils/cli/utils/template-generators.js +2 -28
  109. package/dist/cjs/utils/cli/utils/template-generators.js.map +1 -1
  110. package/dist/cjs/utils/cli/utils/watermark-stamper.js +3 -0
  111. package/dist/cjs/utils/cli/utils/watermark-stamper.js.map +1 -0
  112. package/dist/cjs/utils/dotenv.helpers.js +1 -43
  113. package/dist/cjs/utils/dynamic-loader.js +11 -0
  114. package/dist/cjs/utils/dynamic-loader.js.map +1 -0
  115. package/dist/cjs/utils/features/api.features.js +1 -167
  116. package/dist/cjs/utils/features/api.features.js.map +1 -1
  117. package/dist/cjs/utils/features/change-case.features.js +1 -67
  118. package/dist/cjs/utils/features/port-and-host-allocator.js +1 -0
  119. package/dist/cjs/utils/features/port-and-host-allocator.js.map +1 -0
  120. package/dist/cjs/utils/helpers/api.features.helpers.js +1 -106
  121. package/dist/cjs/utils/helpers/api.features.helpers.js.map +1 -1
  122. package/dist/cjs/utils/helpers/change-case.helpers.js +1 -177
  123. package/dist/cjs/utils/helpers/deepmerge.helper.js +1 -115
  124. package/dist/cjs/utils/helpers/dynamic-loader.helpers.js +1 -0
  125. package/dist/cjs/utils/helpers/dynamic-loader.helpers.js.map +1 -0
  126. package/dist/cjs/utils/helpers/fs.helpers.js +1 -61
  127. package/dist/cjs/utils/helpers/fs.helpers.js.map +1 -1
  128. package/dist/cjs/utils/helpers/global.helpers.js +1 -92
  129. package/dist/cjs/utils/helpers/global.helpers.js.map +1 -1
  130. package/dist/cjs/utils/helpers/prisma.helpers.js +1 -52
  131. package/dist/cjs/utils/helpers/prisma.helpers.js.map +1 -1
  132. package/dist/cjs/utils/helpers/query-parser.helpers.js +1 -45
  133. package/dist/cjs/utils/helpers/routers.helpers.js +1 -21
  134. package/dist/cjs/utils/helpers/routers.helpers.js.map +1 -1
  135. package/dist/cjs/utils/helpers/text.helpers.js +1 -28
  136. package/dist/cjs/utils/prisma/prisma-json-schema-generator.js +1 -0
  137. package/dist/cjs/utils/prisma/prisma-json-schema-generator.js.map +1 -0
  138. package/dist/cjs/utils/prisma/prisma-schema-parser.js +3 -0
  139. package/dist/cjs/utils/prisma/prisma-schema-parser.js.map +1 -0
  140. package/dist/cjs/utils/prisma/types.js +1 -0
  141. package/dist/cjs/utils/prisma/types.js.map +1 -0
  142. package/dist/cjs/utils/sheu.js +1 -119
  143. package/dist/cjs/utils/sheu.js.map +1 -1
  144. package/dist/cjs/utils/validate-dto.js +1 -17
  145. package/dist/cjs/utils/validate-schema.js +1 -15
  146. package/dist/esm/app.js +1 -1
  147. package/dist/esm/app.js.map +1 -1
  148. package/dist/esm/exports/auth/index.js +1 -2
  149. package/dist/esm/exports/controllers/index.js +1 -4
  150. package/dist/esm/exports/error-handler/index.js +1 -4
  151. package/dist/esm/exports/index.js +1 -8
  152. package/dist/esm/exports/middlewares/index.js +1 -2
  153. package/dist/esm/exports/prisma/index.js +1 -3
  154. package/dist/esm/exports/prisma/index.js.map +1 -1
  155. package/dist/esm/exports/services/index.js +1 -9
  156. package/dist/esm/exports/services/index.js.map +1 -1
  157. package/dist/esm/exports/utils/index.js +1 -4
  158. package/dist/esm/exports/validation/index.js +1 -4
  159. package/dist/esm/modules/auth/auth.controller.js +1 -187
  160. package/dist/esm/modules/auth/auth.controller.js.map +1 -1
  161. package/dist/esm/modules/auth/auth.router.js +1 -44
  162. package/dist/esm/modules/auth/auth.router.js.map +1 -1
  163. package/dist/esm/modules/auth/auth.service.js +1 -178
  164. package/dist/esm/modules/auth/auth.service.js.map +1 -1
  165. package/dist/esm/modules/auth/utils/helpers/auth.controller.helpers.js +1 -73
  166. package/dist/esm/modules/base/base.controller.js +1 -150
  167. package/dist/esm/modules/base/base.controller.js.map +1 -1
  168. package/dist/esm/modules/base/base.middlewares.js +1 -81
  169. package/dist/esm/modules/base/base.middlewares.js.map +1 -1
  170. package/dist/esm/modules/base/base.router.js +1 -17
  171. package/dist/esm/modules/base/base.router.js.map +1 -1
  172. package/dist/esm/modules/base/base.service.js +1 -120
  173. package/dist/esm/modules/base/base.service.js.map +1 -1
  174. package/dist/esm/modules/base/types/base.service.types.js +1 -0
  175. package/dist/esm/modules/base/types/base.service.types.js.map +1 -0
  176. package/dist/esm/modules/base/utils/helpers/base.controller.helpers.js +1 -77
  177. package/dist/esm/modules/base/utils/helpers/base.controller.helpers.js.map +1 -1
  178. package/dist/esm/modules/base/utils/helpers/base.middlewares.helpers.js +1 -44
  179. package/dist/esm/modules/base/utils/helpers/base.router.helpers.js +1 -89
  180. package/dist/esm/modules/base/utils/helpers/base.router.helpers.js.map +1 -1
  181. package/dist/esm/modules/base/utils/helpers/base.service.helpers.js +1 -165
  182. package/dist/esm/modules/base/utils/helpers/base.service.helpers.js.map +1 -1
  183. package/dist/esm/modules/base/utils/service-hooks-manager.js +1 -0
  184. package/dist/esm/modules/base/utils/service-hooks-manager.js.map +1 -0
  185. package/dist/esm/modules/email/email.service.js +1 -97
  186. package/dist/esm/modules/error-handler/error-handler.controller.js +4 -107
  187. package/dist/esm/modules/error-handler/error-handler.controller.js.map +1 -1
  188. package/dist/esm/modules/error-handler/utils/app-error.js +1 -15
  189. package/dist/esm/modules/error-handler/utils/catch-async.js +1 -10
  190. package/dist/esm/modules/error-handler/utils/error-handler.helpers.js +3 -160
  191. package/dist/esm/modules/error-handler/utils/error-handler.helpers.js.map +1 -1
  192. package/dist/esm/modules/file-upload/file-upload.controller.js +1 -266
  193. package/dist/esm/modules/file-upload/file-upload.controller.js.map +1 -1
  194. package/dist/esm/modules/file-upload/file-upload.router.js +1 -38
  195. package/dist/esm/modules/file-upload/file-upload.router.js.map +1 -1
  196. package/dist/esm/modules/file-upload/file-upload.service.js +1 -314
  197. package/dist/esm/modules/file-upload/utils/helpers/file-upload.helpers.js +1 -87
  198. package/dist/esm/modules/swagger/swagger.router.js +1 -93
  199. package/dist/esm/modules/swagger/swagger.router.js.map +1 -1
  200. package/dist/esm/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js +1 -247
  201. package/dist/esm/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js.map +1 -1
  202. package/dist/esm/modules/swagger/utils/helpers/get-swagger-default-configs.js +1 -0
  203. package/dist/esm/modules/swagger/utils/helpers/get-swagger-default-configs.js.map +1 -0
  204. package/dist/esm/modules/swagger/utils/helpers/get-system-json-schema-paths.js +1 -63
  205. package/dist/esm/modules/swagger/utils/helpers/get-system-json-schema-paths.js.map +1 -1
  206. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js +1 -38
  207. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js.map +1 -1
  208. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +1 -19
  209. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js.map +1 -1
  210. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js +1 -0
  211. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js.map +1 -0
  212. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js +1 -0
  213. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js.map +1 -0
  214. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes-paths.js +1 -0
  215. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes-paths.js.map +1 -0
  216. package/dist/esm/modules/swagger/utils/helpers/missing-json-schemas-generator.js +1 -0
  217. package/dist/esm/modules/swagger/utils/helpers/missing-json-schemas-generator.js.map +1 -0
  218. package/dist/esm/modules/swagger/utils/helpers/swagger.router.helpers.js +1 -84
  219. package/dist/esm/modules/swagger/utils/helpers/swagger.router.helpers.js.map +1 -1
  220. package/dist/esm/package.json +3 -0
  221. package/dist/esm/server.js +4 -2
  222. package/dist/esm/server.js.map +1 -1
  223. package/dist/esm/types/arkos-config.js +1 -2
  224. package/dist/esm/types/arkos-config.js.map +1 -1
  225. package/dist/esm/types/auth.js +1 -2
  226. package/dist/esm/types/index.js +1 -8
  227. package/dist/esm/types/index.js.map +1 -1
  228. package/dist/esm/types/router-config.js +1 -2
  229. package/dist/esm/utils/arkos-env.js +1 -7
  230. package/dist/esm/utils/cli/build.js +5 -206
  231. package/dist/esm/utils/cli/build.js.map +1 -1
  232. package/dist/esm/utils/cli/dev.js +5 -249
  233. package/dist/esm/utils/cli/dev.js.map +1 -1
  234. package/dist/esm/utils/cli/generate.js +12 -183
  235. package/dist/esm/utils/cli/generate.js.map +1 -1
  236. package/dist/esm/utils/cli/index.js +1 -74
  237. package/dist/esm/utils/cli/index.js.map +1 -1
  238. package/dist/esm/utils/cli/start.js +1 -86
  239. package/dist/esm/utils/cli/start.js.map +1 -1
  240. package/dist/esm/utils/cli/utils/cli.helpers.js +1 -16
  241. package/dist/esm/utils/cli/utils/template-generator/templates/generate-auth-configs-template.js +5 -17
  242. package/dist/esm/utils/cli/utils/template-generator/templates/generate-controller-template.js +9 -15
  243. package/dist/esm/utils/cli/utils/template-generator/templates/generate-controller-template.js.map +1 -1
  244. package/dist/esm/utils/cli/utils/template-generator/templates/generate-middlewares.js +174 -98
  245. package/dist/esm/utils/cli/utils/template-generator/templates/generate-middlewares.js.map +1 -1
  246. package/dist/esm/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js +9 -34
  247. package/dist/esm/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js.map +1 -1
  248. package/dist/esm/utils/cli/utils/template-generator/templates/generate-router-template.js +11 -30
  249. package/dist/esm/utils/cli/utils/template-generator/templates/generate-router-template.js.map +1 -1
  250. package/dist/esm/utils/cli/utils/template-generator/templates/generate-service-template.js +7 -25
  251. package/dist/esm/utils/cli/utils/template-generator/templates/generate-service-template.js.map +1 -1
  252. package/dist/esm/utils/cli/utils/template-generators.js +2 -25
  253. package/dist/esm/utils/cli/utils/template-generators.js.map +1 -1
  254. package/dist/esm/utils/cli/utils/watermark-stamper.js +3 -0
  255. package/dist/esm/utils/cli/utils/watermark-stamper.js.map +1 -0
  256. package/dist/esm/utils/dotenv.helpers.js +1 -37
  257. package/dist/esm/utils/dynamic-loader.js +11 -0
  258. package/dist/esm/utils/dynamic-loader.js.map +1 -0
  259. package/dist/esm/utils/features/api.features.js +1 -160
  260. package/dist/esm/utils/features/api.features.js.map +1 -1
  261. package/dist/esm/utils/features/change-case.features.js +1 -31
  262. package/dist/esm/utils/features/port-and-host-allocator.js +1 -0
  263. package/dist/esm/utils/features/port-and-host-allocator.js.map +1 -0
  264. package/dist/esm/utils/helpers/api.features.helpers.js +1 -103
  265. package/dist/esm/utils/helpers/api.features.helpers.js.map +1 -1
  266. package/dist/esm/utils/helpers/change-case.helpers.js +1 -161
  267. package/dist/esm/utils/helpers/deepmerge.helper.js +1 -113
  268. package/dist/esm/utils/helpers/dynamic-loader.helpers.js +1 -0
  269. package/dist/esm/utils/helpers/dynamic-loader.helpers.js.map +1 -0
  270. package/dist/esm/utils/helpers/fs.helpers.js +1 -52
  271. package/dist/esm/utils/helpers/fs.helpers.js.map +1 -1
  272. package/dist/esm/utils/helpers/global.helpers.js +1 -50
  273. package/dist/esm/utils/helpers/global.helpers.js.map +1 -1
  274. package/dist/esm/utils/helpers/prisma.helpers.js +1 -44
  275. package/dist/esm/utils/helpers/prisma.helpers.js.map +1 -1
  276. package/dist/esm/utils/helpers/query-parser.helpers.js +1 -40
  277. package/dist/esm/utils/helpers/routers.helpers.js +1 -16
  278. package/dist/esm/utils/helpers/routers.helpers.js.map +1 -1
  279. package/dist/esm/utils/helpers/text.helpers.js +1 -22
  280. package/dist/esm/utils/prisma/prisma-json-schema-generator.js +1 -0
  281. package/dist/esm/utils/prisma/prisma-json-schema-generator.js.map +1 -0
  282. package/dist/esm/utils/prisma/prisma-schema-parser.js +3 -0
  283. package/dist/esm/utils/prisma/prisma-schema-parser.js.map +1 -0
  284. package/dist/esm/utils/prisma/types.js +1 -0
  285. package/dist/esm/utils/prisma/types.js.map +1 -0
  286. package/dist/esm/utils/sheu.js +1 -117
  287. package/dist/esm/utils/sheu.js.map +1 -1
  288. package/dist/esm/utils/validate-dto.js +1 -11
  289. package/dist/esm/utils/validate-schema.js +1 -9
  290. package/dist/types/exports/prisma/index.d.ts +1 -1
  291. package/dist/types/exports/services/index.d.ts +3 -2
  292. package/dist/types/modules/auth/auth.controller.d.ts +1 -1
  293. package/dist/types/modules/auth/auth.service.d.ts +1 -0
  294. package/dist/types/modules/base/base.controller.d.ts +1 -2
  295. package/dist/types/modules/base/base.middlewares.d.ts +4 -4
  296. package/dist/types/modules/base/base.service.d.ts +13 -67
  297. package/dist/types/modules/base/types/base.service.types.d.ts +183 -0
  298. package/dist/types/modules/base/utils/helpers/base.controller.helpers.d.ts +0 -2
  299. package/dist/types/modules/base/utils/helpers/base.router.helpers.d.ts +1 -1
  300. package/dist/types/modules/base/utils/helpers/base.service.helpers.d.ts +2 -1
  301. package/dist/types/modules/base/utils/service-hooks-manager.d.ts +7 -0
  302. package/dist/types/modules/error-handler/error-handler.controller.d.ts +1 -1
  303. package/dist/types/modules/error-handler/utils/error-handler.helpers.d.ts +1 -0
  304. package/dist/types/modules/file-upload/file-upload.controller.d.ts +1 -1
  305. package/dist/types/modules/swagger/utils/helpers/get-authentication-json-schema-paths.d.ts +3 -1
  306. package/dist/types/modules/swagger/utils/helpers/get-swagger-default-configs.d.ts +46 -0
  307. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.d.ts +2 -1
  308. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.d.ts +1 -0
  309. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.d.ts +3 -0
  310. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes-paths.d.ts +3 -0
  311. package/dist/types/modules/swagger/utils/helpers/missing-json-schemas-generator.d.ts +34 -0
  312. package/dist/types/modules/swagger/utils/helpers/swagger.router.helpers.d.ts +2 -2
  313. package/dist/types/server.d.ts +3 -0
  314. package/dist/types/types/arkos-config.d.ts +5 -3
  315. package/dist/types/types/index.d.ts +1 -0
  316. package/dist/types/utils/cli/generate.d.ts +1 -1
  317. package/dist/types/utils/cli/utils/watermark-stamper.d.ts +9 -0
  318. package/dist/types/utils/{helpers/models.helpers.d.ts → dynamic-loader.d.ts} +34 -21
  319. package/dist/types/utils/features/port-and-host-allocator.d.ts +21 -0
  320. package/dist/types/utils/helpers/dynamic-loader.helpers.d.ts +2 -0
  321. package/dist/types/utils/helpers/fs.helpers.d.ts +0 -4
  322. package/dist/types/utils/helpers/global.helpers.d.ts +1 -0
  323. package/dist/types/utils/helpers/prisma.helpers.d.ts +0 -1
  324. package/dist/types/utils/prisma/prisma-json-schema-generator.d.ts +34 -0
  325. package/dist/types/utils/prisma/prisma-schema-parser.d.ts +18 -0
  326. package/dist/types/utils/prisma/types.d.ts +48 -0
  327. package/package.json +24 -17
  328. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schema.js +0 -30
  329. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schema.js.map +0 -1
  330. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes.js +0 -442
  331. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes.js.map +0 -1
  332. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes.js +0 -165
  333. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes.js.map +0 -1
  334. package/dist/cjs/utils/helpers/models.helpers.js +0 -313
  335. package/dist/cjs/utils/helpers/models.helpers.js.map +0 -1
  336. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schema.js +0 -24
  337. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schema.js.map +0 -1
  338. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes.js +0 -436
  339. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes.js.map +0 -1
  340. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes.js +0 -159
  341. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes.js.map +0 -1
  342. package/dist/esm/utils/helpers/models.helpers.js +0 -296
  343. package/dist/esm/utils/helpers/models.helpers.js.map +0 -1
  344. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schema.d.ts +0 -1
  345. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes.d.ts +0 -2
  346. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes.d.ts +0 -2
@@ -1,119 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- class Sheu {
4
- getTimestamp() {
5
- return new Date().toTimeString().split(" ")[0];
6
- }
7
- formatText(text = "", options = {}) {
8
- const label = options?.label
9
- ? text
10
- ? options?.label + " "
11
- : options?.label
12
- : "";
13
- let result = `${label}${text}`;
14
- if (options.timestamp) {
15
- const timestamp = this.getTimestamp();
16
- if (options.timestamp === true)
17
- result = `${label}\x1b[90m${timestamp}\x1b[0m ${text}`;
18
- else if (typeof options.timestamp === "string") {
19
- const colorCode = this.getColorCode(options.timestamp);
20
- result = `${label}${colorCode}${timestamp}\x1b[0m ${text}`;
21
- }
22
- }
23
- if (options.bold)
24
- result = `\x1b[1m${result}\x1b[0m`;
25
- return result;
26
- }
27
- getColorCode(color) {
28
- const colorMap = {
29
- red: "\x1b[31m",
30
- blue: "\x1b[34m",
31
- green: "\x1b[32m",
32
- yellow: "\x1b[33m",
33
- cyan: "\x1b[36m",
34
- magenta: "\x1b[35m",
35
- white: "\x1b[37m",
36
- black: "\x1b[30m",
37
- gray: "\x1b[90m",
38
- orange: "\x1b[91m",
39
- };
40
- return colorMap[color] || "\x1b[90m";
41
- }
42
- red(text, options) {
43
- const coloredText = `\x1b[31m${text}\x1b[0m`;
44
- return this.formatText(coloredText, options || {});
45
- }
46
- blue(text, options) {
47
- const coloredText = `\x1b[34m${text}\x1b[0m`;
48
- return this.formatText(coloredText, options || {});
49
- }
50
- green(text, options) {
51
- const coloredText = `\x1b[32m${text}\x1b[0m`;
52
- return this.formatText(coloredText, options || {});
53
- }
54
- yellow(text, options) {
55
- const coloredText = `\x1b[33m${text}\x1b[0m`;
56
- return this.formatText(coloredText, options || {});
57
- }
58
- cyan(text, options) {
59
- const coloredText = `\x1b[36m${text}\x1b[0m`;
60
- return this.formatText(coloredText, options || {});
61
- }
62
- magenta(text, options) {
63
- const coloredText = `\x1b[35m${text}\x1b[0m`;
64
- return this.formatText(coloredText, options || {});
65
- }
66
- white(text, options) {
67
- const coloredText = `\x1b[37m${text}\x1b[0m`;
68
- return this.formatText(coloredText, options || {});
69
- }
70
- black(text, options) {
71
- const coloredText = `\x1b[30m${text}\x1b[0m`;
72
- return this.formatText(coloredText, options || {});
73
- }
74
- gray(text, options) {
75
- const coloredText = `\x1b[90m${text}\x1b[0m`;
76
- return this.formatText(coloredText, options || {});
77
- }
78
- orange(text, options) {
79
- const coloredText = `\x1b[91m${text}\x1b[0m`;
80
- return this.formatText(coloredText, options || {});
81
- }
82
- bold(text, options) {
83
- const boldText = `\x1b[1m${text}\x1b[0m`;
84
- return this.formatText(boldText, { ...options, bold: false });
85
- }
86
- info(message, options) {
87
- const label = `[\x1b[36mINFO\x1b[0m]`;
88
- const result = this.formatText(message, { ...options, label });
89
- console.info(result);
90
- return result;
91
- }
92
- error(message, options) {
93
- const label = `[\x1b[31mERROR\x1b[0m]`;
94
- const result = this.formatText(message, { ...options, label });
95
- console.error(result);
96
- return result;
97
- }
98
- ready(message, options) {
99
- const label = `[\x1b[32mREADY\x1b[0m]`;
100
- const result = this.formatText(message, { ...options, label });
101
- console.info(result);
102
- return result;
103
- }
104
- done(message, options) {
105
- const label = `[\x1b[32mDONE\x1b[0m]`;
106
- const result = this.formatText(message, { ...options, label });
107
- console.info(result);
108
- return result;
109
- }
110
- warn(message, options) {
111
- const label = `[\x1b[33mWARN\x1b[0m]`;
112
- const result = this.formatText(message, { ...options, label });
113
- console.warn(result);
114
- return result;
115
- }
116
- }
117
- const sheu = new Sheu();
118
- exports.default = sheu;
119
- //# sourceMappingURL=sheu.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});class Sheu{getTimestamp(){return new Date().toTimeString().split(" ")[0]}formatText(t="",e={}){const r=e?.label?t?e?.label+" ":e?.label:"";let o=`${r}${t}`;if(e.timestamp){const m=this.getTimestamp();if(e.timestamp===!0)o=`${r}\x1B[90m${m}\x1B[0m ${t}`;else if(typeof e.timestamp=="string"){const x=this.getColorCode(e.timestamp);o=`${r}${x}${m}\x1B[0m ${t}`}}return e.bold&&(o=`\x1B[1m${o}\x1B[0m`),o}getColorCode(t){return{red:"\x1B[31m",blue:"\x1B[34m",green:"\x1B[32m",yellow:"\x1B[33m",cyan:"\x1B[36m",magenta:"\x1B[35m",white:"\x1B[37m",black:"\x1B[30m",gray:"\x1B[90m",orange:"\x1B[91m"}[t]||"\x1B[90m"}red(t,e){const r=`\x1B[31m${t}\x1B[0m`;return this.formatText(r,e||{})}blue(t,e){const r=`\x1B[34m${t}\x1B[0m`;return this.formatText(r,e||{})}green(t,e){const r=`\x1B[32m${t}\x1B[0m`;return this.formatText(r,e||{})}yellow(t,e){const r=`\x1B[33m${t}\x1B[0m`;return this.formatText(r,e||{})}cyan(t,e){const r=`\x1B[36m${t}\x1B[0m`;return this.formatText(r,e||{})}magenta(t,e){const r=`\x1B[35m${t}\x1B[0m`;return this.formatText(r,e||{})}white(t,e){const r=`\x1B[37m${t}\x1B[0m`;return this.formatText(r,e||{})}black(t,e){const r=`\x1B[30m${t}\x1B[0m`;return this.formatText(r,e||{})}gray(t,e){const r=`\x1B[90m${t}\x1B[0m`;return this.formatText(r,e||{})}orange(t,e){const r=`\x1B[91m${t}\x1B[0m`;return this.formatText(r,e||{})}bold(t,e){const r=`\x1B[1m${t}\x1B[0m`;return this.formatText(r,{...e,bold:!1})}info(t,e){const o=this.formatText(t,{...e,label:"[\x1B[36mInfo\x1B[0m]"});return console.info(o),o}error(t,e){const o=this.formatText(t,{...e,label:"[\x1B[31mError\x1B[0m]"});return console.error(o),o}ready(t,e){const o=this.formatText(t,{...e,label:"[\x1B[32mReady\x1B[0m]"});return console.info(o),o}done(t,e){const o=this.formatText(t,{...e,label:"[\x1B[32mDone\x1B[0m]"});return console.info(o),o}warn(t,e){const o=this.formatText(t,{...e,label:"[\x1B[33mWarn\x1B[0m]"});return console.warn(o),o}}const sheu=new Sheu;exports.default=sheu;
@@ -1 +1 @@
1
- {"version":3,"file":"sheu.js","sourceRoot":"","sources":["../../../src/utils/sheu.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Sheu - Simplified terminal color utility for styling console output\n */\nclass Sheu {\n /**\n * Get current timestamp in HH:MM:SS format\n */\n private getTimestamp(): string {\n return new Date().toTimeString().split(\" \")[0];\n }\n\n /**\n * Apply timestamp and bold formatting if requested\n */\n private formatText(\n text: string = \"\",\n options: {\n timestamp?: boolean | string;\n bold?: boolean;\n label?: string;\n } = {}\n ): string {\n const label = options?.label\n ? text\n ? options?.label + \" \"\n : options?.label\n : \"\";\n let result = `${label}${text}`;\n\n // Apply timestamp if requested\n if (options.timestamp) {\n const timestamp = this.getTimestamp();\n if (options.timestamp === true)\n result = `${label}\\x1b[90m${timestamp}\\x1b[0m ${text}`;\n else if (typeof options.timestamp === \"string\") {\n const colorCode = this.getColorCode(options.timestamp);\n result = `${label}${colorCode}${timestamp}\\x1b[0m ${text}`;\n }\n }\n\n if (options.bold) result = `\\x1b[1m${result}\\x1b[0m`;\n\n return result;\n }\n\n /**\n * Get ANSI color code for color name\n */\n private getColorCode(color: string): string {\n const colorMap: { [key: string]: string } = {\n red: \"\\x1b[31m\",\n blue: \"\\x1b[34m\",\n green: \"\\x1b[32m\",\n yellow: \"\\x1b[33m\",\n cyan: \"\\x1b[36m\",\n magenta: \"\\x1b[35m\",\n white: \"\\x1b[37m\",\n black: \"\\x1b[30m\",\n gray: \"\\x1b[90m\",\n orange: \"\\x1b[91m\",\n };\n return colorMap[color] || \"\\x1b[90m\"; // Default to gray if color not found\n }\n\n /**\n * Red color\n */\n red(\n text: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const coloredText = `\\x1b[31m${text}\\x1b[0m`;\n return this.formatText(coloredText, options || {});\n }\n\n /**\n * Blue color\n */\n blue(\n text: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const coloredText = `\\x1b[34m${text}\\x1b[0m`;\n return this.formatText(coloredText, options || {});\n }\n\n /**\n * Green color\n */\n green(\n text: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const coloredText = `\\x1b[32m${text}\\x1b[0m`;\n return this.formatText(coloredText, options || {});\n }\n\n /**\n * Yellow color\n */\n yellow(\n text: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const coloredText = `\\x1b[33m${text}\\x1b[0m`;\n return this.formatText(coloredText, options || {});\n }\n\n /**\n * Cyan color\n */\n cyan(\n text: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const coloredText = `\\x1b[36m${text}\\x1b[0m`;\n return this.formatText(coloredText, options || {});\n }\n\n /**\n * Magenta color\n */\n magenta(\n text: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const coloredText = `\\x1b[35m${text}\\x1b[0m`;\n return this.formatText(coloredText, options || {});\n }\n\n /**\n * White color\n */\n white(\n text: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const coloredText = `\\x1b[37m${text}\\x1b[0m`;\n return this.formatText(coloredText, options || {});\n }\n\n /**\n * Black color\n */\n black(\n text: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const coloredText = `\\x1b[30m${text}\\x1b[0m`;\n return this.formatText(coloredText, options || {});\n }\n\n /**\n * Gray color\n */\n gray(\n text: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const coloredText = `\\x1b[90m${text}\\x1b[0m`;\n return this.formatText(coloredText, options || {});\n }\n\n /**\n * Orange color\n */\n orange(\n text: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const coloredText = `\\x1b[91m${text}\\x1b[0m`;\n return this.formatText(coloredText, options || {});\n }\n\n /**\n * Bold text formatting\n */\n bold(text: string, options?: { timestamp?: boolean | string }): string {\n const boldText = `\\x1b[1m${text}\\x1b[0m`;\n return this.formatText(boldText, { ...options, bold: false }); // Don't double-bold\n }\n\n /**\n * Info label with cyan color [INFO]\n */\n info(\n message: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const label = `[\\x1b[36mINFO\\x1b[0m]`;\n const result = this.formatText(message, { ...options, label });\n console.info(result);\n return result;\n }\n\n /**\n * Error label with red color [ERROR]\n */\n error(\n message: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const label = `[\\x1b[31mERROR\\x1b[0m]`;\n const result = this.formatText(message, { ...options, label });\n console.error(result);\n return result;\n }\n\n /**\n * Ready label with green color [READY]\n */\n ready(\n message: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const label = `[\\x1b[32mREADY\\x1b[0m]`;\n const result = this.formatText(message, { ...options, label });\n console.info(result);\n return result;\n }\n\n /**\n * Done label with green color [DONE]\n */\n done(\n message: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const label = `[\\x1b[32mDONE\\x1b[0m]`;\n const result = this.formatText(message, { ...options, label });\n console.info(result);\n return result;\n }\n\n /**\n * Warning label with yellow color [WARN]\n */\n warn(\n message: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const label = `[\\x1b[33mWARN\\x1b[0m]`;\n const result = this.formatText(message, { ...options, label });\n console.warn(result);\n return result;\n }\n}\n\nconst sheu = new Sheu();\n\nexport default sheu;\n"]}
1
+ {"version":3,"file":"sheu.js","sourceRoot":"","sources":["../../../src/utils/sheu.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Sheu - Simplified terminal color utility for styling console output\n */\nclass Sheu {\n /**\n * Get current timestamp in HH:MM:SS format\n */\n private getTimestamp(): string {\n return new Date().toTimeString().split(\" \")[0];\n }\n\n /**\n * Apply timestamp and bold formatting if requested\n */\n private formatText(\n text: string = \"\",\n options: {\n timestamp?: boolean | string;\n bold?: boolean;\n label?: string;\n } = {}\n ): string {\n const label = options?.label\n ? text\n ? options?.label + \" \"\n : options?.label\n : \"\";\n let result = `${label}${text}`;\n\n // Apply timestamp if requested\n if (options.timestamp) {\n const timestamp = this.getTimestamp();\n if (options.timestamp === true)\n result = `${label}\\x1b[90m${timestamp}\\x1b[0m ${text}`;\n else if (typeof options.timestamp === \"string\") {\n const colorCode = this.getColorCode(options.timestamp);\n result = `${label}${colorCode}${timestamp}\\x1b[0m ${text}`;\n }\n }\n\n if (options.bold) result = `\\x1b[1m${result}\\x1b[0m`;\n\n return result;\n }\n\n /**\n * Get ANSI color code for color name\n */\n private getColorCode(color: string): string {\n const colorMap: { [key: string]: string } = {\n red: \"\\x1b[31m\",\n blue: \"\\x1b[34m\",\n green: \"\\x1b[32m\",\n yellow: \"\\x1b[33m\",\n cyan: \"\\x1b[36m\",\n magenta: \"\\x1b[35m\",\n white: \"\\x1b[37m\",\n black: \"\\x1b[30m\",\n gray: \"\\x1b[90m\",\n orange: \"\\x1b[91m\",\n };\n return colorMap[color] || \"\\x1b[90m\"; // Default to gray if color not found\n }\n\n /**\n * Red color\n */\n red(\n text: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const coloredText = `\\x1b[31m${text}\\x1b[0m`;\n return this.formatText(coloredText, options || {});\n }\n\n /**\n * Blue color\n */\n blue(\n text: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const coloredText = `\\x1b[34m${text}\\x1b[0m`;\n return this.formatText(coloredText, options || {});\n }\n\n /**\n * Green color\n */\n green(\n text: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const coloredText = `\\x1b[32m${text}\\x1b[0m`;\n return this.formatText(coloredText, options || {});\n }\n\n /**\n * Yellow color\n */\n yellow(\n text: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const coloredText = `\\x1b[33m${text}\\x1b[0m`;\n return this.formatText(coloredText, options || {});\n }\n\n /**\n * Cyan color\n */\n cyan(\n text: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const coloredText = `\\x1b[36m${text}\\x1b[0m`;\n return this.formatText(coloredText, options || {});\n }\n\n /**\n * Magenta color\n */\n magenta(\n text: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const coloredText = `\\x1b[35m${text}\\x1b[0m`;\n return this.formatText(coloredText, options || {});\n }\n\n /**\n * White color\n */\n white(\n text: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const coloredText = `\\x1b[37m${text}\\x1b[0m`;\n return this.formatText(coloredText, options || {});\n }\n\n /**\n * Black color\n */\n black(\n text: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const coloredText = `\\x1b[30m${text}\\x1b[0m`;\n return this.formatText(coloredText, options || {});\n }\n\n /**\n * Gray color\n */\n gray(\n text: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const coloredText = `\\x1b[90m${text}\\x1b[0m`;\n return this.formatText(coloredText, options || {});\n }\n\n /**\n * Orange color\n */\n orange(\n text: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const coloredText = `\\x1b[91m${text}\\x1b[0m`;\n return this.formatText(coloredText, options || {});\n }\n\n /**\n * Bold text formatting\n */\n bold(text: string, options?: { timestamp?: boolean | string }): string {\n const boldText = `\\x1b[1m${text}\\x1b[0m`;\n return this.formatText(boldText, { ...options, bold: false }); // Don't double-bold\n }\n\n /**\n * Info label with cyan color [INFO]\n */\n info(\n message: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const label = `[\\x1b[36mInfo\\x1b[0m]`;\n const result = this.formatText(message, { ...options, label });\n console.info(result);\n return result;\n }\n\n /**\n * Error label with red color [ERROR]\n */\n error(\n message: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const label = `[\\x1b[31mError\\x1b[0m]`;\n const result = this.formatText(message, { ...options, label });\n console.error(result);\n return result;\n }\n\n /**\n * Ready label with green color [READY]\n */\n ready(\n message: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n // const label = `\\x1b[32m✓\\x1b[0m`;\n const label = `[\\x1b[32mReady\\x1b[0m]`;\n const result = this.formatText(message, { ...options, label });\n console.info(result);\n return result;\n }\n\n /**\n * Done label with green color [DONE]\n */\n done(\n message: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const label = `[\\x1b[32mDone\\x1b[0m]`;\n const result = this.formatText(message, { ...options, label });\n console.info(result);\n return result;\n }\n\n /**\n * Warning label with yellow color [WARN]\n */\n warn(\n message: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const label = `[\\x1b[33mWarn\\x1b[0m]`;\n const result = this.formatText(message, { ...options, label });\n console.warn(result);\n return result;\n }\n}\n\nconst sheu = new Sheu();\n\nexport default sheu;\n"]}
@@ -1,17 +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.default = validateDto;
7
- const class_transformer_1 = require("class-transformer");
8
- const class_validator_1 = require("class-validator");
9
- const app_error_1 = __importDefault(require("../modules/error-handler/utils/app-error"));
10
- async function validateDto(DtoClass, data, validationOptions) {
11
- const dataDto = (0, class_transformer_1.plainToInstance)(DtoClass, data);
12
- const errors = await (0, class_validator_1.validate)(dataDto, validationOptions);
13
- if (errors.length > 0)
14
- throw new app_error_1.default("Invalid request body", 400, errors, "invalid_request_body");
15
- return dataDto;
16
- }
17
- //# sourceMappingURL=validate-dto.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.default=validateDto;const class_transformer_1=require("class-transformer"),class_validator_1=require("class-validator"),app_error_1=__importDefault(require("../modules/error-handler/utils/app-error"));async function validateDto(e,a,s){const r=(0,class_transformer_1.plainToInstance)(e,a),t=await(0,class_validator_1.validate)(r,s);if(t.length>0)throw new app_error_1.default("Invalid request body",400,t,"invalid_request_body");return r}
@@ -1,15 +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.default = validateSchema;
7
- const app_error_1 = __importDefault(require("../modules/error-handler/utils/app-error"));
8
- async function validateSchema(schema, data) {
9
- const result = schema.safeParse(data);
10
- if (!result.success) {
11
- throw new app_error_1.default("Invalid request body", 400, result.error.format(), "invalid_request_body");
12
- }
13
- return result.data;
14
- }
15
- //# sourceMappingURL=validate-schema.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.default=validateSchema;const app_error_1=__importDefault(require("../modules/error-handler/utils/app-error"));async function validateSchema(e,t){const r=e.safeParse(t);if(!r.success)throw new app_error_1.default("Invalid request body",400,r.error.format(),"invalid_request_body");return r.data}
package/dist/esm/app.js CHANGED
@@ -1 +1 @@
1
- "use strict";import c from"express";import p from"cors";import m from"cookie-parser";import{getAuthRouter as f}from"./modules/auth/auth.router.js";import{getPrismaModelsRouter as w,getAvailableResourcesAndRoutesRouter as R}from"./modules/base/base.router.js";import h from"./modules/error-handler/error-handler.controller.js";import{rateLimit as P}from"express-rate-limit";import y from"compression";import{handleRequestLogs as b}from"./modules/base/base.middlewares.js";import{checkDatabaseConnection as q,loadPrismaModule as A}from"./utils/helpers/prisma.helpers.js";import{getFileUploadRouter as O}from"./modules/file-upload/file-upload.router.js";import{queryParser as g}from"./utils/helpers/query-parser.helpers.js";import d from"./utils/helpers/deepmerge.helper.js";import{getSwaggerRouter as E}from"./modules/swagger/swagger.router.js";export const app=c();export async function bootstrap(e){await A(),e?.configureApp&&await e.configureApp(app);const n=e?.middlewares,t=n?.disable||[],a=n?.replace||{};t?.includes?.("compression")||app.use(a.compression||y(e?.compressionOptions)),t?.includes?.("global-rate-limit")||app.use(a.globalRateLimit||P(d({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")||app.use(a.cors||p(e?.cors?.customHandler?e.cors.customHandler:d({origin:(r,s)=>{const i=e?.cors?.allowedOrigins;i==="*"?s(null,!0):Array.isArray(i)?s(null,!r||i?.includes?.(r)):typeof i=="string"?s(null,!r||i===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")||app.use(a.expressJson||c.json(e?.jsonBodyParserOptions)),t?.includes?.("cookie-parser")||app.use(a.cookieParser||m(...e?.cookieParserParameters||[])),t?.includes?.("query-parser")||app.use(a.queryParser||g(d({parseNull:!0,parseUndefined:!0,parseBoolean:!0},e?.queryParserOptions||{}))),t?.includes?.("database-connection")||app.use(a.databaseConnection||q),t?.includes?.("request-logger")||app.use(a.requestLogger||b),e?.middlewares?.additional&&e.middlewares.additional.forEach(r=>{app.use(r)});const l=e?.routers,u=l?.disable||[],o=l?.replace||{};if(u?.includes?.("welcome-endpoint")||app.get("/api",o.welcomeEndpoint||((r,s)=>{s.status(200).json({message:e.welcomeMessage})})),!u?.includes?.("file-upload")){const r=o.fileUpload?await o.fileUpload(e):await O(e);app.use(r)}if(!u?.includes?.("auth-router")&&e.authentication){const r=o.authRouter?await o.authRouter(e):await f(e);app.use("/api",r)}if(!u?.includes?.("prisma-models-router")){const r=o.prismaModelsRouter?await o.prismaModelsRouter(e):await w(e);app.use("/api",r)}return app.use("/api",R()),e.swagger&&(process.env.ARKOS_BUILD!=="true"||e.swagger.enableAfterBuild===!0)&&app.use("/api",await E(e)),l?.additional&&l.additional.forEach(r=>{app.use(r)}),t?.includes?.("global-error-handler")||app.use(a.globalErrorHandler||h),app.use("*",(r,s)=>{s.status(404).json({message:"Route not found!"})}),app}
1
+ "use strict";import m from"express";import n from"cors";import c from"cookie-parser";import{getAuthRouter as w}from"./modules/auth/auth.router.js";import{getPrismaModelsRouter as f,getAvailableResourcesAndRoutesRouter as R}from"./modules/base/base.router.js";import P from"./modules/error-handler/error-handler.controller.js";import{rateLimit as h}from"express-rate-limit";import y from"compression";import{handleRequestLogs as A}from"./modules/base/base.middlewares.js";import{loadPrismaModule as b}from"./utils/helpers/prisma.helpers.js";import{getFileUploadRouter as q}from"./modules/file-upload/file-upload.router.js";import{queryParser as M}from"./utils/helpers/query-parser.helpers.js";import d from"./utils/helpers/deepmerge.helper.js";import{getSwaggerRouter as O}from"./modules/swagger/swagger.router.js";import{loadAllModuleComponents as E}from"./utils/dynamic-loader.js";export const app=m();export async function bootstrap(e){await Promise.all([b(),E(e),e?.configureApp&&await e?.configureApp(app)]);const p=e?.middlewares,t=p?.disable||[],o=p?.replace||{};t?.includes?.("compression")||app.use(o.compression||y(e?.compressionOptions)),t?.includes?.("global-rate-limit")||app.use(o.globalRateLimit||h(d({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")||app.use(o.cors||n(e?.cors?.customHandler?e.cors.customHandler:d({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")||app.use(o.expressJson||m.json(e?.jsonBodyParserOptions)),t?.includes?.("cookie-parser")||app.use(o.cookieParser||c(...e?.cookieParserParameters||[])),t?.includes?.("query-parser")||app.use(o.queryParser||M(d({parseNull:!0,parseUndefined:!0,parseBoolean:!0},e?.queryParserOptions||{}))),t?.includes?.("request-logger")||app.use(o.requestLogger||A),e?.middlewares?.additional&&e.middlewares.additional.forEach(r=>{app.use(r)});const i=e?.routers,u=i?.disable||[],a=i?.replace||{};if(u?.includes?.("welcome-endpoint")||app.get("/api",a.welcomeEndpoint||((r,s)=>{s.status(200).json({message:e.welcomeMessage})})),!u?.includes?.("file-upload")){const r=a.fileUpload?await a.fileUpload(e):await q(e);app.use(r)}if(!u?.includes?.("auth-router")&&e.authentication){const r=a.authRouter?await a.authRouter(e):await w(e);app.use("/api",r)}if(!u?.includes?.("prisma-models-router")){const r=a.prismaModelsRouter?await a.prismaModelsRouter(e):await f(e);app.use("/api",r)}return app.use("/api",R()),e.swagger&&(process.env.ARKOS_BUILD!=="true"||e.swagger.enableAfterBuild===!0)&&app.use("/api",await O(e)),i?.additional&&i.additional.forEach(r=>{app.use(r)}),t?.includes?.("global-error-handler")||app.use(o.globalErrorHandler||P),app.use("*",(r,s)=>{s.status(404).json({message:"Route not found!"})}),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 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(\"*\", (req, res) => {\n res.status(404).json({ message: \"Route not found!\" });\n });\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 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\";\n\nexport const app: express.Express = express();\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 // 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 // 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,2 +1 @@
1
- export { defaultExcludedUserFields } from "./../../modules/auth/auth.controller.js";
2
- //# sourceMappingURL=index.js.map
1
+ "use strict";export{defaultExcludedUserFields}from"./../../modules/auth/auth.controller.js";
@@ -1,4 +1 @@
1
- import { BaseController } from "./../../modules/base/base.controller.js";
2
- import fileUploadController from "../../modules/file-upload/file-upload.controller.js";
3
- export { fileUploadController, BaseController };
4
- //# sourceMappingURL=index.js.map
1
+ "use strict";import{BaseController as o}from"./../../modules/base/base.controller.js";import r from"../../modules/file-upload/file-upload.controller.js";export{r as fileUploadController,o as BaseController};
@@ -1,4 +1 @@
1
- import catchAsync from "../../modules/error-handler/utils/catch-async.js";
2
- import AppError from "../../modules/error-handler/utils/app-error.js";
3
- export { catchAsync, AppError };
4
- //# sourceMappingURL=index.js.map
1
+ "use strict";import r from"../../modules/error-handler/utils/catch-async.js";import o from"../../modules/error-handler/utils/app-error.js";export{r as catchAsync,o as AppError};
@@ -1,8 +1 @@
1
- import { BaseController } from "./../modules/base/base.controller.js";
2
- import { initApp, getArkosConfig } from "../server.js";
3
- const arkos = {
4
- init: initApp,
5
- };
6
- export { BaseController, getArkosConfig, };
7
- export default arkos;
8
- //# sourceMappingURL=index.js.map
1
+ "use strict";import{BaseController as o}from"./../modules/base/base.controller.js";import{initApp as r,getArkosConfig as t}from"../server.js";const i={init:r};export{o as BaseController,t as getArkosConfig};export default i;
@@ -1,2 +1 @@
1
- export { addPrismaQueryOptionsToRequest, handleRequestBodyValidationAndTransformation, } from "../../modules/base/base.middlewares.js";
2
- //# sourceMappingURL=index.js.map
1
+ "use strict";export{addPrismaQueryOptionsToRequest,handleRequestBodyValidationAndTransformation}from"../../modules/base/base.middlewares.js";
@@ -1,3 +1 @@
1
- import { getModels } from "../../utils/helpers/models.helpers.js";
2
- export { getModels as getPrismaModels, };
3
- //# sourceMappingURL=index.js.map
1
+ "use strict";import{getModels as e}from"../../utils/dynamic-loader.js";export{e as getPrismaModels};
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/exports/prisma/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAE/D,OAAO,EAEL,SAAS,IAAI,eAAe,GAE7B,CAAC","sourcesContent":["import { PrismaQueryOptions, AuthPrismaQueryOptions } from \"../../types\";\nimport { getModels } from \"../../utils/helpers/models.helpers\";\n\nexport {\n PrismaQueryOptions,\n getModels as getPrismaModels,\n AuthPrismaQueryOptions,\n};\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/exports/prisma/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD,OAAO,EAEL,SAAS,IAAI,eAAe,GAE7B,CAAC","sourcesContent":["import { PrismaQueryOptions, AuthPrismaQueryOptions } from \"../../types\";\nimport { getModels } from \"../../utils/dynamic-loader\";\n\nexport {\n PrismaQueryOptions,\n getModels as getPrismaModels,\n AuthPrismaQueryOptions,\n};\n"]}
@@ -1,9 +1 @@
1
- import { getFileUploadServices, FileUploadService, } from "../../modules/file-upload/file-upload.service.js";
2
- import authService, { AuthService } from "../../modules/auth/auth.service.js";
3
- import emailService, { EmailService } from "../../modules/email/email.service.js";
4
- import { BaseService, getBaseServices } from "../../modules/base/base.service.js";
5
- export { authService, AuthService };
6
- export { BaseService, getBaseServices };
7
- export { emailService, EmailService };
8
- export { getFileUploadServices, FileUploadService };
9
- //# sourceMappingURL=index.js.map
1
+ "use strict";import{getFileUploadServices as e,FileUploadService as r}from"../../modules/file-upload/file-upload.service.js";import i,{AuthService as o}from"../../modules/auth/auth.service.js";import t,{EmailService as m}from"../../modules/email/email.service.js";import{BaseService as p}from"../../modules/base/base.service.js";export{i as authService,o as AuthService};export{p as BaseService};export{t as emailService,m as EmailService};export{e as getFileUploadServices,r as FileUploadService};
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/exports/services/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,+CAA+C,CAAC;AAEvD,OAAO,WAAW,EAAE,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,YAAY,EAAE,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAK/E,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;AAKpC,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC;AAKxC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAgB,CAAC;AAKpD,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,CAAC","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, getBaseServices } from \"../../modules/base/base.service\";\n\n/**\n * Authentication service.\n */\nexport { authService, AuthService };\n\n/**\n * Base service.\n */\nexport { BaseService, getBaseServices };\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,OAAO,EACL,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,+CAA+C,CAAC;AAEvD,OAAO,WAAW,EAAE,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,YAAY,EAAE,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AA0B9D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;AAKpC,OAAO,EACL,WAAW,GAoBZ,CAAC;AAKF,OAAO,EAAE,YAAY,EAAE,YAAY,EAAgB,CAAC;AAKpD,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,CAAC","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} 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};\n\n/**\n * Email service.\n */\nexport { emailService, EmailService, EmailOptions };\n\n/**\n * File upload services.\n */\nexport { getFileUploadServices, FileUploadService };\n"]}
@@ -1,4 +1 @@
1
- export * from "../../utils/helpers/change-case.helpers.js";
2
- import APIFeatures, { apiFeatures } from "../../utils/features/api.features.js";
3
- export { APIFeatures, apiFeatures };
4
- //# sourceMappingURL=index.js.map
1
+ "use strict";export*from"../../utils/helpers/change-case.helpers.js";import r,{apiFeatures as e}from"../../utils/features/api.features.js";export{r as APIFeatures,e as apiFeatures};
@@ -1,4 +1 @@
1
- import validateDto from "../../utils/validate-dto.js";
2
- import validateSchema from "../../utils/validate-schema.js";
3
- export { validateDto, validateSchema };
4
- //# sourceMappingURL=index.js.map
1
+ "use strict";import o from"../../utils/validate-dto.js";import t from"../../utils/validate-schema.js";export{o as validateDto,t as validateSchema};
@@ -1,187 +1 @@
1
- import catchAsync from "../error-handler/utils/catch-async.js";
2
- import AppError from "../error-handler/utils/app-error.js";
3
- import authService from "./auth.service.js";
4
- import { getBaseServices } from "../base/base.service.js";
5
- import arkosEnv from "../../utils/arkos-env.js";
6
- import { getArkosConfig } from "../../server.js";
7
- import { createPrismaWhereClause, determineUsernameField, getNestedValue, toMs, } from "./utils/helpers/auth.controller.helpers.js";
8
- export const defaultExcludedUserFields = {
9
- password: false,
10
- };
11
- export const authControllerFactory = async (middlewares = {}) => {
12
- const userService = getBaseServices()["user"];
13
- return {
14
- getMe: catchAsync(async (req, res, next) => {
15
- const user = (await userService.findOne({ id: req.user.id }, req.prismaQueryOptions || {}));
16
- Object.keys(defaultExcludedUserFields).forEach((key) => {
17
- if (user)
18
- delete user[key];
19
- });
20
- if (middlewares?.afterGetMe) {
21
- req.responseData = { data: user };
22
- req.responseStatus = 200;
23
- return next();
24
- }
25
- res.status(200).json({ data: user });
26
- }),
27
- updateMe: catchAsync(async (req, res, next) => {
28
- if ("password" in req.body)
29
- throw new AppError("In order to update password use the update-password endpoint.", 400, {}, "InvalidFieldPassword");
30
- const user = (await userService.updateOne({ id: req.user.id }, req.body, req.prismaQueryOptions || {}));
31
- Object.keys(defaultExcludedUserFields).forEach((key) => {
32
- if (user)
33
- delete user[key];
34
- });
35
- if (middlewares?.afterUpdateMe) {
36
- req.responseData = { data: user };
37
- req.responseStatus = 200;
38
- return next();
39
- }
40
- res.status(200).json({ data: user });
41
- }),
42
- logout: catchAsync(async (req, res, next) => {
43
- res.cookie("arkos_access_token", "no-token", {
44
- expires: new Date(Date.now() + 10 * 1000),
45
- httpOnly: true,
46
- });
47
- if (middlewares?.afterLogout) {
48
- req.responseData = null;
49
- req.responseStatus = 204;
50
- return next();
51
- }
52
- res.status(204).json();
53
- }),
54
- login: catchAsync(async (req, res, next) => {
55
- const authConfigs = getArkosConfig()?.authentication;
56
- const usernameField = determineUsernameField(req);
57
- const lastField = usernameField.split(".")[usernameField.split(".").length - 1];
58
- const usernameValue = req.body[lastField];
59
- const { password } = req.body;
60
- if (!usernameValue || !password)
61
- return next(new AppError(`Please provide both ${lastField} and password`, 400));
62
- let whereClause;
63
- if (usernameField?.includes?.(".")) {
64
- const valueToFind = getNestedValue(req.body, usernameField);
65
- if (valueToFind === undefined) {
66
- return next(new AppError(`Invalid ${usernameField} provided`, 400));
67
- }
68
- whereClause = createPrismaWhereClause(usernameField, valueToFind);
69
- }
70
- else {
71
- whereClause = { [usernameField]: usernameValue };
72
- }
73
- const user = (await userService.findOne(whereClause, req.prismaQueryOptions || {}));
74
- if (!user ||
75
- !(await authService.isCorrectPassword(password, user.password))) {
76
- return next(new AppError(`Incorrect ${lastField} or password`, 401));
77
- }
78
- const token = authService.signJwtToken(user.id);
79
- const cookieOptions = {
80
- expires: new Date(Date.now() +
81
- Number(toMs(authConfigs?.jwt?.expiresIn ||
82
- process.env.JWT_EXPIRES_IN ||
83
- arkosEnv.JWT_EXPIRES_IN))),
84
- httpOnly: authConfigs?.jwt?.cookie?.httpOnly ||
85
- process.env.JWT_COOKIE_HTTP_ONLY === "true" ||
86
- true,
87
- secure: authConfigs?.jwt?.cookie?.secure ||
88
- process.env.JWT_COOKIE_SECURE === "true" ||
89
- req.secure ||
90
- req.headers["x-forwarded-proto"] === "https",
91
- sameSite: authConfigs?.jwt?.cookie?.sameSite ||
92
- process.env.JWT_COOKIE_SAME_SITE ||
93
- (process.env.NODE_ENV === "production" ? "none" : "lax"),
94
- };
95
- if (authConfigs?.login?.sendAccessTokenThrough === "response-only" ||
96
- authConfigs?.login?.sendAccessTokenThrough === "both" ||
97
- !authConfigs?.login?.sendAccessTokenThrough) {
98
- req.responseData = { accessToken: token };
99
- }
100
- if (authConfigs?.login?.sendAccessTokenThrough === "cookie-only" ||
101
- authConfigs?.login?.sendAccessTokenThrough === "both" ||
102
- !authConfigs?.login?.sendAccessTokenThrough)
103
- res.cookie("arkos_access_token", token, cookieOptions);
104
- if (middlewares?.afterLogin) {
105
- req.additionalData = { user };
106
- req.responseStatus = 200;
107
- return next();
108
- }
109
- if (authConfigs?.login?.sendAccessTokenThrough === "response-only" ||
110
- authConfigs?.login?.sendAccessTokenThrough === "both" ||
111
- !authConfigs?.login?.sendAccessTokenThrough) {
112
- res.status(200).json(req.responseData);
113
- }
114
- else if (authConfigs?.login?.sendAccessTokenThrough === "cookie-only" ||
115
- authConfigs?.login?.sendAccessTokenThrough === "both" ||
116
- !authConfigs?.login?.sendAccessTokenThrough)
117
- res.status(200).send();
118
- }),
119
- signup: catchAsync(async (req, res, next) => {
120
- const user = (await userService.createOne(req.body, req.prismaQueryOptions || {}));
121
- if (middlewares?.afterSignup) {
122
- req.responseData = { data: user };
123
- req.responseStatus = 201;
124
- return next();
125
- }
126
- Object.keys(defaultExcludedUserFields).forEach((key) => {
127
- delete user[key];
128
- });
129
- res.status(201).json({ data: user });
130
- }),
131
- deleteMe: catchAsync(async (req, res, next) => {
132
- const userId = req.user.id;
133
- const updatedUser = (await userService.updateOne({ id: userId }, {
134
- deletedSelfAccountAt: new Date().toISOString(),
135
- }, req.prismaQueryOptions || {}));
136
- if (middlewares?.afterDeleteMe) {
137
- req.responseData = { data: updatedUser };
138
- req.responseStatus = 200;
139
- return next();
140
- }
141
- Object.keys(defaultExcludedUserFields).forEach((key) => {
142
- delete updatedUser[key];
143
- });
144
- res.status(200).json({
145
- message: "Account deleted successfully",
146
- });
147
- }),
148
- updatePassword: catchAsync(async (req, res, next) => {
149
- const { currentPassword, newPassword } = req.body;
150
- if (!currentPassword || !newPassword)
151
- return next(new AppError("currentPassword and newPassword are required", 400));
152
- const user = req.user;
153
- if (!user || user?.isActive === false || user?.deletedSelfAccountAt)
154
- return next(new AppError("User not found!", 404));
155
- const isPasswordCorrect = await authService.isCorrectPassword(String(currentPassword), String(user.password));
156
- const configs = getArkosConfig();
157
- const initAuthConfigs = configs?.authentication;
158
- if (!isPasswordCorrect)
159
- return next(new AppError("Current password is incorrect.", 400));
160
- if (!authService.isPasswordStrong(String(newPassword)) &&
161
- !configs?.validation) {
162
- return next(new AppError(initAuthConfigs?.passwordValidation?.message ||
163
- "The new password must contain at least one uppercase letter, one lowercase letter, and one number", 400));
164
- }
165
- await userService.updateOne({ id: user.id }, {
166
- password: await authService.hashPassword(newPassword),
167
- passwordChangedAt: new Date(Date.now()),
168
- });
169
- if (middlewares?.afterUpdatePassword) {
170
- req.additionalData = {
171
- user,
172
- };
173
- req.responseData = {
174
- status: "success",
175
- message: "Password updated successfully!",
176
- };
177
- req.responseStatus = 200;
178
- return next();
179
- }
180
- res.status(200).json({
181
- status: "success",
182
- message: "Password updated successfully!",
183
- });
184
- }),
185
- };
186
- };
187
- //# sourceMappingURL=auth.controller.js.map
1
+ "use strict";import d from"../error-handler/utils/catch-async.js";import r from"../error-handler/utils/app-error.js";import l from"./auth.service.js";import{BaseService as k}from"../base/base.service.js";import m from"../../utils/arkos-env.js";import{getArkosConfig as T}from"../../server.js";import{createPrismaWhereClause as O,determineUsernameField as S,getNestedValue as A,toMs as E}from"./utils/helpers/auth.controller.helpers.js";export const defaultExcludedUserFields={password:!1},authControllerFactory=async(i={})=>{const c=new k("user");return{getMe:d(async(e,n,o)=>{const s=await c.findOne({id:e.user.id},e.prismaQueryOptions||{});if(Object.keys(defaultExcludedUserFields).forEach(t=>{s&&delete s[t]}),i?.afterGetMe)return e.responseData={data:s},e.responseStatus=200,o();n.status(200).json({data:s})}),updateMe:d(async(e,n,o)=>{if("password"in e.body)throw new r("In order to update password use the update-password endpoint.",400,{},"InvalidFieldPassword");const s=await c.updateOne({id:e.user.id},e.body,e.prismaQueryOptions||{});if(Object.keys(defaultExcludedUserFields).forEach(t=>{s&&delete s[t]}),i?.afterUpdateMe)return e.responseData={data:s},e.responseStatus=200,o();n.status(200).json({data:s})}),logout:d(async(e,n,o)=>{if(n.cookie("arkos_access_token","no-token",{expires:new Date(Date.now()+10*1e3),httpOnly:!0}),i?.afterLogout)return e.responseData=null,e.responseStatus=204,o();n.status(204).json()}),login:d(async(e,n,o)=>{const s=T()?.authentication,t=S(e),a=t.split(".")[t.split(".").length-1],w=e.body[a],{password:u}=e.body;if(!w||!u)return o(new r(`Please provide both ${a} and password`,400));let p;if(t?.includes?.(".")){const g=A(e.body,t);if(g===void 0)return o(new r(`Invalid ${t} provided`,400));p=O(t,g)}else p={[t]:w};const f=await c.findOne(p,e.prismaQueryOptions||{});if(!f||!await l.isCorrectPassword(u,f.password))return o(new r(`Incorrect ${a} or password`,401));const h=l.signJwtToken(f.id),y={expires:new Date(Date.now()+Number(E(s?.jwt?.expiresIn||process.env.JWT_EXPIRES_IN||m.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:h}),(s?.login?.sendAccessTokenThrough==="cookie-only"||s?.login?.sendAccessTokenThrough==="both"||!s?.login?.sendAccessTokenThrough)&&n.cookie("arkos_access_token",h,y),e.accessToken=h,i?.afterLogin)return e.additionalData={user:f},e.responseStatus=200,o();s?.login?.sendAccessTokenThrough==="response-only"||s?.login?.sendAccessTokenThrough==="both"||!s?.login?.sendAccessTokenThrough?n.status(200).json(e.responseData):(s?.login?.sendAccessTokenThrough==="cookie-only"||s?.login?.sendAccessTokenThrough==="both"||!s?.login?.sendAccessTokenThrough)&&n.status(200).send()}),signup:d(async(e,n,o)=>{const s=await c.createOne(e.body,e.prismaQueryOptions||{});if(i?.afterSignup)return e.responseData={data:s},e.responseStatus=201,o();Object.keys(defaultExcludedUserFields).forEach(t=>{delete s[t]}),n.status(201).json({data:s})}),deleteMe:d(async(e,n,o)=>{const s=e.user.id,t=await c.updateOne({id:s},{deletedSelfAccountAt:new Date().toISOString()},e.prismaQueryOptions||{});if(i?.afterDeleteMe)return e.responseData={data:t},e.responseStatus=200,o();Object.keys(defaultExcludedUserFields).forEach(a=>{delete t[a]}),n.status(200).json({message:"Account deleted successfully"})}),updatePassword:d(async(e,n,o)=>{const{currentPassword:s,newPassword:t}=e.body;if(!s||!t)return o(new r("currentPassword and newPassword are required",400));const a=e.user;if(!a||a?.isActive===!1||a?.deletedSelfAccountAt)return o(new r("User not found!",404));const w=await l.isCorrectPassword(String(s),String(a.password)),u=T(),p=u?.authentication;if(!w)return o(new r("Current password is incorrect.",400));if(!l.isPasswordStrong(String(t))&&!u?.validation)return o(new r(p?.passwordValidation?.message||"The new password must contain at least one uppercase letter, one lowercase letter, and one number",400));if(await c.updateOne({id:a.id},{password:await l.hashPassword(t),passwordChangedAt:new Date(Date.now())}),i?.afterUpdatePassword)return e.additionalData={user:a},e.responseData={status:"success",message:"Password updated successfully!"},e.responseStatus=200,o();n.status(200).json({status:"success",message:"Password updated successfully!"})})}};