arkos 1.3.2-canary.3 → 1.3.3-canary.1

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 (251) hide show
  1. package/README.md +8 -4
  2. package/dist/cjs/app.js +139 -1
  3. package/dist/cjs/exports/auth/index.js +6 -1
  4. package/dist/cjs/exports/controllers/index.js +11 -1
  5. package/dist/cjs/exports/error-handler/index.js +11 -1
  6. package/dist/cjs/exports/index.js +12 -1
  7. package/dist/cjs/exports/middlewares/index.js +7 -1
  8. package/dist/cjs/exports/prisma/index.js +13 -1
  9. package/dist/cjs/exports/services/index.js +48 -1
  10. package/dist/cjs/exports/utils/index.js +24 -1
  11. package/dist/cjs/exports/utils/index.js.map +1 -1
  12. package/dist/cjs/exports/validation/index.js +11 -1
  13. package/dist/cjs/modules/auth/auth.controller.js +229 -1
  14. package/dist/cjs/modules/auth/auth.router.js +82 -1
  15. package/dist/cjs/modules/auth/auth.service.js +226 -1
  16. package/dist/cjs/modules/auth/utils/auth-error-objects.js +10 -1
  17. package/dist/cjs/modules/auth/utils/helpers/auth.controller.helpers.js +83 -1
  18. package/dist/cjs/modules/auth/utils/services/auth-action.service.js +92 -1
  19. package/dist/cjs/modules/base/base.controller.js +172 -1
  20. package/dist/cjs/modules/base/base.middlewares.js +92 -1
  21. package/dist/cjs/modules/base/base.router.js +22 -1
  22. package/dist/cjs/modules/base/base.service.js +507 -1
  23. package/dist/cjs/modules/base/types/base.service.types.js +3 -1
  24. package/dist/cjs/modules/base/types/base.service.types.js.map +1 -1
  25. package/dist/cjs/modules/base/utils/helpers/base.controller.helpers.js +80 -1
  26. package/dist/cjs/modules/base/utils/helpers/base.middlewares.helpers.js +50 -1
  27. package/dist/cjs/modules/base/utils/helpers/base.router.helpers.js +104 -1
  28. package/dist/cjs/modules/base/utils/helpers/base.service.helpers.js +208 -1
  29. package/dist/cjs/modules/base/utils/router-validator.js +16 -1
  30. package/dist/cjs/modules/base/utils/service-hooks-manager.js +19 -1
  31. package/dist/cjs/modules/email/email.service.js +104 -1
  32. package/dist/cjs/modules/error-handler/error-handler.controller.js +146 -4
  33. package/dist/cjs/modules/error-handler/utils/app-error.js +17 -1
  34. package/dist/cjs/modules/error-handler/utils/catch-async.js +21 -1
  35. package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js +205 -3
  36. package/dist/cjs/modules/file-upload/file-upload.controller.js +233 -1
  37. package/dist/cjs/modules/file-upload/file-upload.router.js +60 -1
  38. package/dist/cjs/modules/file-upload/file-upload.service.js +322 -1
  39. package/dist/cjs/modules/file-upload/utils/helpers/file-upload.helpers.js +97 -1
  40. package/dist/cjs/modules/swagger/swagger.router.js +38 -1
  41. package/dist/cjs/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js +338 -1
  42. package/dist/cjs/modules/swagger/utils/helpers/get-swagger-default-configs.js +64 -1
  43. package/dist/cjs/modules/swagger/utils/helpers/get-system-json-schema-paths.js +37 -1
  44. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js +48 -1
  45. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +32 -1
  46. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-system-json-schemas.js +49 -1
  47. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js +34 -1
  48. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js +471 -1
  49. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes-paths.js +572 -1
  50. package/dist/cjs/modules/swagger/utils/helpers/missing-json-schemas-generator.js +260 -1
  51. package/dist/cjs/modules/swagger/utils/helpers/swagger.router.helpers.js +112 -1
  52. package/dist/cjs/paths.js +9 -1
  53. package/dist/cjs/server.js +94 -5
  54. package/dist/cjs/types/arkos-config.js +3 -1
  55. package/dist/cjs/types/auth.js +3 -1
  56. package/dist/cjs/types/index.js +11 -1
  57. package/dist/cjs/types/router-config.js +3 -1
  58. package/dist/cjs/utils/arkos-env.js +9 -1
  59. package/dist/cjs/utils/cli/build.js +214 -5
  60. package/dist/cjs/utils/cli/dev.js +154 -3
  61. package/dist/cjs/utils/cli/generate.js +109 -1
  62. package/dist/cjs/utils/cli/index.js +104 -1
  63. package/dist/cjs/utils/cli/index.js.map +1 -1
  64. package/dist/cjs/utils/cli/prisma-generate.js +120 -0
  65. package/dist/cjs/utils/cli/prisma-generate.js.map +1 -0
  66. package/dist/cjs/utils/cli/start.js +103 -1
  67. package/dist/cjs/utils/cli/utils/cli.helpers.js +24 -1
  68. package/dist/cjs/utils/cli/utils/smart-fs-watcher.js +73 -1
  69. package/dist/cjs/utils/cli/utils/template-generator/templates/auth-configs-template.js +60 -0
  70. package/dist/cjs/utils/cli/utils/template-generator/templates/auth-configs-template.js.map +1 -0
  71. package/dist/cjs/utils/cli/utils/template-generator/templates/controller-template.js +21 -0
  72. package/dist/cjs/utils/cli/utils/template-generator/templates/controller-template.js.map +1 -0
  73. package/dist/cjs/utils/cli/utils/template-generator/templates/hooks-template.js +201 -0
  74. package/dist/cjs/utils/cli/utils/template-generator/templates/hooks-template.js.map +1 -0
  75. package/dist/cjs/utils/cli/utils/template-generator/templates/middlewares-template.js +288 -0
  76. package/dist/cjs/utils/cli/utils/template-generator/templates/{generate-middlewares.js.map → middlewares-template.js.map} +1 -1
  77. package/dist/cjs/utils/cli/utils/template-generator/templates/query-options-template.js +64 -0
  78. package/dist/cjs/utils/cli/utils/template-generator/templates/query-options-template.js.map +1 -0
  79. package/dist/cjs/utils/cli/utils/template-generator/templates/router-template.js +45 -0
  80. package/dist/cjs/utils/cli/utils/template-generator/templates/router-template.js.map +1 -0
  81. package/dist/cjs/utils/cli/utils/template-generator/templates/service-template.js +29 -0
  82. package/dist/cjs/utils/cli/utils/template-generator/templates/service-template.js.map +1 -0
  83. package/dist/cjs/utils/cli/utils/template-generators.js +34 -2
  84. package/dist/cjs/utils/cli/utils/template-generators.js.map +1 -1
  85. package/dist/cjs/utils/cli/utils/watermark-stamper.js +17 -3
  86. package/dist/cjs/utils/dotenv.helpers.js +43 -1
  87. package/dist/cjs/utils/dynamic-loader.js +270 -9
  88. package/dist/cjs/utils/features/api.features.js +223 -1
  89. package/dist/cjs/utils/features/api.features.js.map +1 -1
  90. package/dist/cjs/utils/features/change-case.features.js +67 -1
  91. package/dist/cjs/utils/features/port-and-host-allocator.js +105 -1
  92. package/dist/cjs/utils/helpers/api.features.helpers.js +112 -1
  93. package/dist/cjs/utils/helpers/change-case.helpers.js +177 -1
  94. package/dist/cjs/utils/helpers/deepmerge.helper.js +115 -1
  95. package/dist/cjs/utils/helpers/dynamic-loader.helpers.js +76 -1
  96. package/dist/cjs/utils/helpers/fs.helpers.js +57 -1
  97. package/dist/cjs/utils/helpers/global.helpers.js +94 -1
  98. package/dist/cjs/utils/helpers/prisma.helpers.js +40 -1
  99. package/dist/cjs/utils/helpers/query-parser.helpers.js +45 -1
  100. package/dist/cjs/utils/helpers/routers.helpers.js +37 -1
  101. package/dist/cjs/utils/helpers/text.helpers.js +28 -1
  102. package/dist/cjs/utils/prisma/prisma-json-schema-generator.js +455 -1
  103. package/dist/cjs/utils/prisma/prisma-schema-parser.js +216 -4
  104. package/dist/cjs/utils/prisma/types.js +3 -1
  105. package/dist/cjs/utils/sheu.js +120 -1
  106. package/dist/cjs/utils/validate-dto.js +17 -1
  107. package/dist/cjs/utils/validate-schema.js +15 -1
  108. package/dist/esm/app.js +132 -1
  109. package/dist/esm/exports/auth/index.js +2 -1
  110. package/dist/esm/exports/controllers/index.js +4 -1
  111. package/dist/esm/exports/error-handler/index.js +4 -1
  112. package/dist/esm/exports/index.js +8 -1
  113. package/dist/esm/exports/middlewares/index.js +2 -1
  114. package/dist/esm/exports/prisma/index.js +6 -1
  115. package/dist/esm/exports/services/index.js +9 -1
  116. package/dist/esm/exports/utils/index.js +4 -1
  117. package/dist/esm/exports/utils/index.js.map +1 -1
  118. package/dist/esm/exports/validation/index.js +4 -1
  119. package/dist/esm/modules/auth/auth.controller.js +222 -1
  120. package/dist/esm/modules/auth/auth.router.js +76 -1
  121. package/dist/esm/modules/auth/auth.service.js +219 -1
  122. package/dist/esm/modules/auth/utils/auth-error-objects.js +4 -1
  123. package/dist/esm/modules/auth/utils/helpers/auth.controller.helpers.js +73 -1
  124. package/dist/esm/modules/auth/utils/services/auth-action.service.js +90 -1
  125. package/dist/esm/modules/base/base.controller.js +165 -1
  126. package/dist/esm/modules/base/base.middlewares.js +81 -1
  127. package/dist/esm/modules/base/base.router.js +15 -1
  128. package/dist/esm/modules/base/base.service.js +500 -1
  129. package/dist/esm/modules/base/types/base.service.types.js +2 -1
  130. package/dist/esm/modules/base/types/base.service.types.js.map +1 -1
  131. package/dist/esm/modules/base/utils/helpers/base.controller.helpers.js +76 -1
  132. package/dist/esm/modules/base/utils/helpers/base.middlewares.helpers.js +44 -1
  133. package/dist/esm/modules/base/utils/helpers/base.router.helpers.js +96 -1
  134. package/dist/esm/modules/base/utils/helpers/base.service.helpers.js +198 -1
  135. package/dist/esm/modules/base/utils/router-validator.js +14 -1
  136. package/dist/esm/modules/base/utils/service-hooks-manager.js +17 -1
  137. package/dist/esm/modules/email/email.service.js +97 -1
  138. package/dist/esm/modules/error-handler/error-handler.controller.js +107 -4
  139. package/dist/esm/modules/error-handler/utils/app-error.js +15 -1
  140. package/dist/esm/modules/error-handler/utils/catch-async.js +19 -1
  141. package/dist/esm/modules/error-handler/utils/error-handler.helpers.js +163 -3
  142. package/dist/esm/modules/file-upload/file-upload.controller.js +228 -1
  143. package/dist/esm/modules/file-upload/file-upload.router.js +54 -1
  144. package/dist/esm/modules/file-upload/file-upload.service.js +314 -1
  145. package/dist/esm/modules/file-upload/utils/helpers/file-upload.helpers.js +87 -1
  146. package/dist/esm/modules/swagger/swagger.router.js +32 -1
  147. package/dist/esm/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js +333 -1
  148. package/dist/esm/modules/swagger/utils/helpers/get-swagger-default-configs.js +58 -1
  149. package/dist/esm/modules/swagger/utils/helpers/get-system-json-schema-paths.js +34 -1
  150. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js +42 -1
  151. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +26 -1
  152. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-system-json-schemas.js +46 -1
  153. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js +28 -1
  154. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js +465 -1
  155. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes-paths.js +566 -1
  156. package/dist/esm/modules/swagger/utils/helpers/missing-json-schemas-generator.js +255 -1
  157. package/dist/esm/modules/swagger/utils/helpers/swagger.router.helpers.js +101 -1
  158. package/dist/esm/paths.js +3 -1
  159. package/dist/esm/server.js +85 -5
  160. package/dist/esm/types/arkos-config.js +2 -1
  161. package/dist/esm/types/auth.js +2 -1
  162. package/dist/esm/types/index.js +8 -1
  163. package/dist/esm/types/router-config.js +2 -1
  164. package/dist/esm/utils/arkos-env.js +7 -1
  165. package/dist/esm/utils/cli/build.js +208 -5
  166. package/dist/esm/utils/cli/dev.js +147 -3
  167. package/dist/esm/utils/cli/generate.js +103 -1
  168. package/dist/esm/utils/cli/index.js +94 -1
  169. package/dist/esm/utils/cli/index.js.map +1 -1
  170. package/dist/esm/utils/cli/prisma-generate.js +114 -0
  171. package/dist/esm/utils/cli/prisma-generate.js.map +1 -0
  172. package/dist/esm/utils/cli/start.js +96 -1
  173. package/dist/esm/utils/cli/utils/cli.helpers.js +16 -1
  174. package/dist/esm/utils/cli/utils/smart-fs-watcher.js +68 -1
  175. package/dist/esm/utils/cli/utils/template-generator/templates/auth-configs-template.js +57 -0
  176. package/dist/esm/utils/cli/utils/template-generator/templates/auth-configs-template.js.map +1 -0
  177. package/dist/esm/utils/cli/utils/template-generator/templates/controller-template.js +18 -0
  178. package/dist/esm/utils/cli/utils/template-generator/templates/controller-template.js.map +1 -0
  179. package/dist/esm/utils/cli/utils/template-generator/templates/hooks-template.js +198 -0
  180. package/dist/esm/utils/cli/utils/template-generator/templates/hooks-template.js.map +1 -0
  181. package/dist/esm/utils/cli/utils/template-generator/templates/middlewares-template.js +285 -0
  182. package/dist/esm/utils/cli/utils/template-generator/templates/{generate-middlewares.js.map → middlewares-template.js.map} +1 -1
  183. package/dist/esm/utils/cli/utils/template-generator/templates/query-options-template.js +61 -0
  184. package/dist/esm/utils/cli/utils/template-generator/templates/query-options-template.js.map +1 -0
  185. package/dist/esm/utils/cli/utils/template-generator/templates/router-template.js +39 -0
  186. package/dist/esm/utils/cli/utils/template-generator/templates/router-template.js.map +1 -0
  187. package/dist/esm/utils/cli/utils/template-generator/templates/service-template.js +26 -0
  188. package/dist/esm/utils/cli/utils/template-generator/templates/service-template.js.map +1 -0
  189. package/dist/esm/utils/cli/utils/template-generators.js +28 -2
  190. package/dist/esm/utils/cli/utils/template-generators.js.map +1 -1
  191. package/dist/esm/utils/cli/utils/watermark-stamper.js +15 -3
  192. package/dist/esm/utils/dotenv.helpers.js +37 -1
  193. package/dist/esm/utils/dynamic-loader.js +254 -9
  194. package/dist/esm/utils/features/api.features.js +217 -1
  195. package/dist/esm/utils/features/api.features.js.map +1 -1
  196. package/dist/esm/utils/features/change-case.features.js +31 -1
  197. package/dist/esm/utils/features/port-and-host-allocator.js +67 -1
  198. package/dist/esm/utils/helpers/api.features.helpers.js +106 -1
  199. package/dist/esm/utils/helpers/change-case.helpers.js +161 -1
  200. package/dist/esm/utils/helpers/deepmerge.helper.js +113 -1
  201. package/dist/esm/utils/helpers/dynamic-loader.helpers.js +69 -1
  202. package/dist/esm/utils/helpers/fs.helpers.js +48 -1
  203. package/dist/esm/utils/helpers/global.helpers.js +51 -1
  204. package/dist/esm/utils/helpers/prisma.helpers.js +32 -1
  205. package/dist/esm/utils/helpers/query-parser.helpers.js +40 -1
  206. package/dist/esm/utils/helpers/routers.helpers.js +29 -1
  207. package/dist/esm/utils/helpers/text.helpers.js +22 -1
  208. package/dist/esm/utils/prisma/prisma-json-schema-generator.js +448 -1
  209. package/dist/esm/utils/prisma/prisma-schema-parser.js +209 -4
  210. package/dist/esm/utils/prisma/types.js +2 -1
  211. package/dist/esm/utils/sheu.js +118 -1
  212. package/dist/esm/utils/validate-dto.js +11 -1
  213. package/dist/esm/utils/validate-schema.js +9 -1
  214. package/dist/types/exports/utils/index.d.ts +2 -2
  215. package/dist/types/modules/base/types/base.service.types.d.ts +11 -8
  216. package/dist/types/utils/cli/prisma-generate.d.ts +1 -0
  217. package/dist/types/utils/features/api.features.d.ts +2 -4
  218. package/package.json +2 -2
  219. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-auth-configs-template.js +0 -21
  220. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-auth-configs-template.js.map +0 -1
  221. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-controller-template.js +0 -12
  222. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-controller-template.js.map +0 -1
  223. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-hooks-template.js +0 -144
  224. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-hooks-template.js.map +0 -1
  225. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-middlewares.js +0 -256
  226. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js +0 -36
  227. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js.map +0 -1
  228. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-router-template.js +0 -18
  229. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-router-template.js.map +0 -1
  230. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-service-template.js +0 -9
  231. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-service-template.js.map +0 -1
  232. package/dist/esm/utils/cli/utils/template-generator/templates/generate-auth-configs-template.js +0 -21
  233. package/dist/esm/utils/cli/utils/template-generator/templates/generate-auth-configs-template.js.map +0 -1
  234. package/dist/esm/utils/cli/utils/template-generator/templates/generate-controller-template.js +0 -12
  235. package/dist/esm/utils/cli/utils/template-generator/templates/generate-controller-template.js.map +0 -1
  236. package/dist/esm/utils/cli/utils/template-generator/templates/generate-hooks-template.js +0 -144
  237. package/dist/esm/utils/cli/utils/template-generator/templates/generate-hooks-template.js.map +0 -1
  238. package/dist/esm/utils/cli/utils/template-generator/templates/generate-middlewares.js +0 -256
  239. package/dist/esm/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js +0 -36
  240. package/dist/esm/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js.map +0 -1
  241. package/dist/esm/utils/cli/utils/template-generator/templates/generate-router-template.js +0 -18
  242. package/dist/esm/utils/cli/utils/template-generator/templates/generate-router-template.js.map +0 -1
  243. package/dist/esm/utils/cli/utils/template-generator/templates/generate-service-template.js +0 -9
  244. package/dist/esm/utils/cli/utils/template-generator/templates/generate-service-template.js.map +0 -1
  245. /package/dist/types/utils/cli/utils/template-generator/templates/{generate-auth-configs-template.d.ts → auth-configs-template.d.ts} +0 -0
  246. /package/dist/types/utils/cli/utils/template-generator/templates/{generate-controller-template.d.ts → controller-template.d.ts} +0 -0
  247. /package/dist/types/utils/cli/utils/template-generator/templates/{generate-hooks-template.d.ts → hooks-template.d.ts} +0 -0
  248. /package/dist/types/utils/cli/utils/template-generator/templates/{generate-middlewares.d.ts → middlewares-template.d.ts} +0 -0
  249. /package/dist/types/utils/cli/utils/template-generator/templates/{generate-prisma-query-options.d.ts → query-options-template.d.ts} +0 -0
  250. /package/dist/types/utils/cli/utils/template-generator/templates/{generate-router-template.d.ts → router-template.d.ts} +0 -0
  251. /package/dist/types/utils/cli/utils/template-generator/templates/{generate-service-template.d.ts → service-template.d.ts} +0 -0
package/README.md CHANGED
@@ -1,10 +1,8 @@
1
1
  ![Header Image](https://www.arkosjs.com/img/arkos-readme-header.webp)
2
2
 
3
- # Arkos.js
3
+ ## The Express And Prisma RESTful Framework
4
4
 
5
- ### The Express And Prisma RESTful Framework
6
-
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.
5
+ Arkos.js 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
6
 
9
7
  ## Features
10
8
 
@@ -28,6 +26,12 @@ Get started with Arkos.js in seconds:
28
26
  npm create arkos@latest my-project
29
27
  ```
30
28
 
29
+ Or get our night updates:
30
+
31
+ ```bash
32
+ npm create arkos@canary my-project
33
+ ```
34
+
31
35
  ## Documentation
32
36
 
33
37
  For comprehensive guides, API reference, and examples, visit our [official documentation](https://arkosjs.com/docs/intro).
package/dist/cjs/app.js CHANGED
@@ -1 +1,139 @@
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"),dynamic_loader_1=require("./utils/dynamic-loader");exports.app=(0,express_1.default)();async function bootstrap(e){await Promise.all([(0,prisma_helpers_1.loadPrismaModule)(),(0,dynamic_loader_1.loadAllModuleComponents)(e),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 o=e?.cors?.allowedOrigins;o==="*"?s(null,!0):Array.isArray(o)?s(null,!r||o?.includes?.(r)):typeof o=="string"?s(null,!r||o===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?.("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||[],l=u?.replace||{};if(p?.includes?.("welcome-endpoint")||exports.app.get("/api",l.welcomeEndpoint||((r,s)=>{s.status(200).json({message:e.welcomeMessage})})),!p?.includes?.("file-upload")){const r=l.fileUpload?await l.fileUpload(e):await(0,file_upload_router_1.getFileUploadRouter)(e);exports.app.use(r)}if(!p?.includes?.("auth-router")&&e.authentication){const r=l.authRouter?await l.authRouter(e):await(0,auth_router_1.getAuthRouter)(e);exports.app.use("/api",r)}if(!p?.includes?.("prisma-models-router")){const r=l.prismaModelsRouter?await l.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
+ "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.app = void 0;
7
+ exports.bootstrap = bootstrap;
8
+ const express_1 = __importDefault(require("express"));
9
+ const cors_1 = __importDefault(require("cors"));
10
+ const cookie_parser_1 = __importDefault(require("cookie-parser"));
11
+ const auth_router_1 = require("./modules/auth/auth.router");
12
+ const base_router_1 = require("./modules/base/base.router");
13
+ const error_handler_controller_1 = __importDefault(require("./modules/error-handler/error-handler.controller"));
14
+ const express_rate_limit_1 = require("express-rate-limit");
15
+ const compression_1 = __importDefault(require("compression"));
16
+ const base_middlewares_1 = require("./modules/base/base.middlewares");
17
+ const prisma_helpers_1 = require("./utils/helpers/prisma.helpers");
18
+ const file_upload_router_1 = require("./modules/file-upload/file-upload.router");
19
+ const query_parser_helpers_1 = require("./utils/helpers/query-parser.helpers");
20
+ const deepmerge_helper_1 = __importDefault(require("./utils/helpers/deepmerge.helper"));
21
+ const swagger_router_1 = require("./modules/swagger/swagger.router");
22
+ const dynamic_loader_1 = require("./utils/dynamic-loader");
23
+ exports.app = (0, express_1.default)();
24
+ async function bootstrap(arkosConfig) {
25
+ await Promise.all([
26
+ (0, prisma_helpers_1.loadPrismaModule)(),
27
+ (0, dynamic_loader_1.loadAllModuleComponents)(arkosConfig),
28
+ arkosConfig?.configureApp && (await arkosConfig?.configureApp(exports.app)),
29
+ ]);
30
+ const middlewaresConfig = arkosConfig?.middlewares;
31
+ const disabledMiddlewares = middlewaresConfig?.disable || [];
32
+ const replacedMiddlewares = middlewaresConfig?.replace || {};
33
+ if (!disabledMiddlewares?.includes?.("compression"))
34
+ exports.app.use(replacedMiddlewares.compression ||
35
+ (0, compression_1.default)(arkosConfig?.compressionOptions));
36
+ if (!disabledMiddlewares?.includes?.("global-rate-limit"))
37
+ exports.app.use(replacedMiddlewares.globalRateLimit ||
38
+ (0, express_rate_limit_1.rateLimit)((0, deepmerge_helper_1.default)({
39
+ windowMs: 60 * 1000,
40
+ limit: 500,
41
+ standardHeaders: "draft-7",
42
+ legacyHeaders: false,
43
+ handler: (_, res) => {
44
+ res.status(429).json({
45
+ message: "Too many requests, please try again later",
46
+ });
47
+ },
48
+ }, arkosConfig?.globalRequestRateLimitOptions || {})));
49
+ if (!disabledMiddlewares?.includes?.("cors"))
50
+ exports.app.use(replacedMiddlewares.cors ||
51
+ (0, cors_1.default)(arkosConfig?.cors?.customHandler
52
+ ? arkosConfig.cors.customHandler
53
+ : (0, deepmerge_helper_1.default)({
54
+ origin: (origin, cb) => {
55
+ const allowed = arkosConfig?.cors?.allowedOrigins;
56
+ if (allowed === "*") {
57
+ cb(null, true);
58
+ }
59
+ else if (Array.isArray(allowed)) {
60
+ cb(null, !origin || allowed?.includes?.(origin));
61
+ }
62
+ else if (typeof allowed === "string") {
63
+ cb(null, !origin || allowed === origin);
64
+ }
65
+ else {
66
+ cb(null, false);
67
+ }
68
+ },
69
+ methods: ["GET", "POST", "PUT", "DELETE", "PATCH", "OPTIONS"],
70
+ allowedHeaders: [
71
+ "Content-Type",
72
+ "Authorization",
73
+ "Connection",
74
+ ],
75
+ credentials: true,
76
+ }, arkosConfig?.cors?.options || {})));
77
+ if (!disabledMiddlewares?.includes?.("express-json"))
78
+ exports.app.use(replacedMiddlewares.expressJson ||
79
+ express_1.default.json(arkosConfig?.jsonBodyParserOptions));
80
+ if (!disabledMiddlewares?.includes?.("cookie-parser"))
81
+ exports.app.use(replacedMiddlewares.cookieParser ||
82
+ (0, cookie_parser_1.default)(...[...(arkosConfig?.cookieParserParameters || [])]));
83
+ if (!disabledMiddlewares?.includes?.("query-parser"))
84
+ exports.app.use(replacedMiddlewares.queryParser ||
85
+ (0, query_parser_helpers_1.queryParser)((0, deepmerge_helper_1.default)({
86
+ parseNull: true,
87
+ parseUndefined: true,
88
+ parseBoolean: true,
89
+ }, arkosConfig?.queryParserOptions || {})));
90
+ if (!disabledMiddlewares?.includes?.("request-logger"))
91
+ exports.app.use(replacedMiddlewares.requestLogger || base_middlewares_1.handleRequestLogs);
92
+ if (arkosConfig?.middlewares?.additional)
93
+ arkosConfig.middlewares.additional.forEach((middleware) => {
94
+ exports.app.use(middleware);
95
+ });
96
+ const routersConfig = arkosConfig?.routers;
97
+ const disabledRouters = routersConfig?.disable || [];
98
+ const replacedRouters = routersConfig?.replace || {};
99
+ if (!disabledRouters?.includes?.("welcome-endpoint"))
100
+ exports.app.get("/api", replacedRouters.welcomeEndpoint ||
101
+ ((_, res) => {
102
+ res.status(200).json({ message: arkosConfig.welcomeMessage });
103
+ }));
104
+ if (!disabledRouters?.includes?.("file-upload")) {
105
+ const fileUploadRouter = replacedRouters.fileUpload
106
+ ? await replacedRouters.fileUpload(arkosConfig)
107
+ : await (0, file_upload_router_1.getFileUploadRouter)(arkosConfig);
108
+ exports.app.use(fileUploadRouter);
109
+ }
110
+ if (!disabledRouters?.includes?.("auth-router") &&
111
+ arkosConfig.authentication) {
112
+ const authRouter = replacedRouters.authRouter
113
+ ? await replacedRouters.authRouter(arkosConfig)
114
+ : await (0, auth_router_1.getAuthRouter)(arkosConfig);
115
+ exports.app.use("/api", authRouter);
116
+ }
117
+ if (!disabledRouters?.includes?.("prisma-models-router")) {
118
+ const modelsRouter = replacedRouters.prismaModelsRouter
119
+ ? await replacedRouters.prismaModelsRouter(arkosConfig)
120
+ : await (0, base_router_1.getPrismaModelsRouter)(arkosConfig);
121
+ exports.app.use("/api", modelsRouter);
122
+ }
123
+ exports.app.use("/api", (0, base_router_1.getAvailableResourcesAndRoutesRouter)());
124
+ if (arkosConfig.swagger &&
125
+ (process.env.ARKOS_BUILD !== "true" ||
126
+ arkosConfig.swagger.enableAfterBuild === true))
127
+ exports.app.use("/api", await (0, swagger_router_1.getSwaggerRouter)(arkosConfig));
128
+ if (routersConfig?.additional)
129
+ routersConfig.additional.forEach((router) => {
130
+ exports.app.use(router);
131
+ });
132
+ if (!disabledMiddlewares?.includes?.("global-error-handler"))
133
+ exports.app.use(replacedMiddlewares.globalErrorHandler || error_handler_controller_1.default);
134
+ exports.app.use("*", (_, res) => {
135
+ res.status(404).json({ message: "Route not found!" });
136
+ });
137
+ return exports.app;
138
+ }
139
+ //# sourceMappingURL=app.js.map
@@ -1 +1,6 @@
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
+ "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 +1,11 @@
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
+ "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 +1,11 @@
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
+ "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 +1,12 @@
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
+ "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 +1,7 @@
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
+ "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 +1,13 @@
1
- "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.prismaSchemaParser=void 0,exports.getPrismaModels=getPrismaModels;const prisma_schema_parser_1=__importDefault(require("../../utils/prisma/prisma-schema-parser"));exports.prismaSchemaParser=prisma_schema_parser_1.default;function getPrismaModels(){return prisma_schema_parser_1.default.models.map(({name:e})=>e)}
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.prismaSchemaParser = void 0;
7
+ exports.getPrismaModels = getPrismaModels;
8
+ const prisma_schema_parser_1 = __importDefault(require("../../utils/prisma/prisma-schema-parser"));
9
+ exports.prismaSchemaParser = prisma_schema_parser_1.default;
10
+ function getPrismaModels() {
11
+ return prisma_schema_parser_1.default.models.map(({ name }) => name);
12
+ }
13
+ //# sourceMappingURL=index.js.map
@@ -1 +1,48 @@
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.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}});
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.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
+ //# sourceMappingURL=index.js.map
@@ -1 +1,24 @@
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
+ "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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ var __importDefault = (this && this.__importDefault) || function (mod) {
17
+ return (mod && mod.__esModule) ? mod : { "default": mod };
18
+ };
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.APIFeatures = void 0;
21
+ __exportStar(require("../../utils/helpers/change-case.helpers"), exports);
22
+ const api_features_1 = __importDefault(require("../../utils/features/api.features"));
23
+ exports.APIFeatures = api_features_1.default;
24
+ //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/exports/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0EAAwD;AAExD,kFAA6E;AAEpE,sBAFF,sBAAW,CAEE;AAAE,4FAFA,0BAAW,OAEA","sourcesContent":["export * from \"../../utils/helpers/change-case.helpers\";\nexport { MsDuration } from \"../../modules/auth/utils/helpers/auth.controller.helpers\";\nimport APIFeatures, { apiFeatures } from \"../../utils/features/api.features\";\n\nexport { APIFeatures, apiFeatures };\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/exports/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,0EAAwD;AAExD,qFAA4D;AAEnD,sBAFF,sBAAW,CAEE","sourcesContent":["export * from \"../../utils/helpers/change-case.helpers\";\nexport { MsDuration } from \"../../modules/auth/utils/helpers/auth.controller.helpers\";\nimport APIFeatures from \"../../utils/features/api.features\";\n\nexport { APIFeatures };\n"]}
@@ -1 +1,11 @@
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
+ "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 +1,229 @@
1
- "use strict";var __importDefault=this&&this.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};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"),auth_action_service_1=__importDefault(require("./utils/services/auth-action.service"));exports.defaultExcludedUserFields={password:!1};const authControllerFactory=async(r={})=>{const u=new base_service_1.BaseService("user");return{getMe:(0,catch_async_1.default)(async(e,o,a)=>{const s=await u.findOne({id:e.user.id},e.prismaQueryOptions||{});if(Object.keys(exports.defaultExcludedUserFields).forEach(t=>{s&&delete s[t]}),r?.afterGetMe)return e.responseData={data:s},e.responseStatus=200,a();o.status(200).json({data:s})}),updateMe:(0,catch_async_1.default)(async(e,o,a)=>{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(t=>{s&&delete s[t]}),r?.afterUpdateMe)return e.responseData={data:s},e.responseStatus=200,a();o.status(200).json({data:s})}),logout:(0,catch_async_1.default)(async(e,o,a)=>{if(o.cookie("arkos_access_token","no-token",{expires:new Date(Date.now()+10*1e3),httpOnly:!0}),r?.afterLogout)return e.responseData=null,e.responseStatus=204,a();o.status(204).json()}),login:(0,catch_async_1.default)(async(e,o,a)=>{const s=(0,server_1.getArkosConfig)()?.authentication,t=(0,auth_controller_helpers_1.determineUsernameField)(e),n=t.split(".")[t.split(".").length-1],c=e.body[n],{password:d}=e.body;if(!c||!d)return a(new app_error_1.default(`Please provide both ${n} and password`,400));let i;if(t?.includes?.(".")){const p=(0,auth_controller_helpers_1.getNestedValue)(e.body,t);if(p===void 0)return a(new app_error_1.default(`Invalid ${t} provided`,400));i=(0,auth_controller_helpers_1.createPrismaWhereClause)(t,p)}else i={[t]:c};const l=await u.findOne(i,e.prismaQueryOptions||{});if(!l||!await auth_service_1.default.isCorrectPassword(d,l.password))return a(new app_error_1.default(`Incorrect ${n} or password`,401));const f=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:f}),(s?.login?.sendAccessTokenThrough==="cookie-only"||s?.login?.sendAccessTokenThrough==="both"||!s?.login?.sendAccessTokenThrough)&&o.cookie("arkos_access_token",f,h),e.accessToken=f,r?.afterLogin)return e.additionalData={user:l},e.responseStatus=200,a();s?.login?.sendAccessTokenThrough==="response-only"||s?.login?.sendAccessTokenThrough==="both"||!s?.login?.sendAccessTokenThrough?o.status(200).json(e.responseData):(s?.login?.sendAccessTokenThrough==="cookie-only"||s?.login?.sendAccessTokenThrough==="both"||!s?.login?.sendAccessTokenThrough)&&o.status(200).send()}),signup:(0,catch_async_1.default)(async(e,o,a)=>{const s=await u.createOne(e.body,e.prismaQueryOptions||{});if(r?.afterSignup)return e.responseData={data:s},e.responseStatus=201,a();Object.keys(exports.defaultExcludedUserFields).forEach(t=>{delete s[t]}),o.status(201).json({data:s})}),deleteMe:(0,catch_async_1.default)(async(e,o,a)=>{const s=e.user.id,t=await u.updateOne({id:s},{deletedSelfAccountAt:new Date().toISOString()},e.prismaQueryOptions||{});if(r?.afterDeleteMe)return e.responseData={data:t},e.responseStatus=200,a();Object.keys(exports.defaultExcludedUserFields).forEach(n=>{delete t[n]}),o.status(200).json({message:"Account deleted successfully"})}),updatePassword:(0,catch_async_1.default)(async(e,o,a)=>{const{currentPassword:s,newPassword:t}=e.body;if(!s||!t)return a(new app_error_1.default("currentPassword and newPassword are required",400));const n=e.user;if(!n||n?.isActive===!1||n?.deletedSelfAccountAt)return a(new app_error_1.default("User not found!",404));const c=await auth_service_1.default.isCorrectPassword(String(s),String(n.password)),d=(0,server_1.getArkosConfig)(),i=d?.authentication;if(!c)return a(new app_error_1.default("Current password is incorrect.",400));if(!auth_service_1.default.isPasswordStrong(String(t))&&!d?.validation)return a(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:n.id},{password:await auth_service_1.default.hashPassword(t),passwordChangedAt:new Date(Date.now())}),r?.afterUpdatePassword)return e.additionalData={user:n},e.responseData={status:"success",message:"Password updated successfully!"},e.responseStatus=200,a();o.status(200).json({status:"success",message:"Password updated successfully!"})}),findManyAuthAction:(0,catch_async_1.default)(async(e,o)=>{const a=(0,server_1.getArkosConfig)(),s=auth_action_service_1.default.getAll()?.map(t=>(a?.authentication?.mode==="dynamic"&&delete t?.roles,t));o.json({total:s.length,results:s.length,data:s})}),findOneAuthAction:(0,catch_async_1.default)(async(e,o)=>{const a=(0,server_1.getArkosConfig)(),s=e.params?.resourceName;if(!s)throw new app_error_1.default("Please provide a resoureName",400);const t=auth_action_service_1.default.getByResource(e.params?.resourceName)?.map(n=>(a?.authentication?.mode==="dynamic"&&delete n?.roles,n));if(!t)throw new app_error_1.default(`No auth action with resource name ${s}`,404);o.json({total:t.length,results:t.length,data:t})})}};exports.authControllerFactory=authControllerFactory;
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
+ const auth_action_service_1 = __importDefault(require("./utils/services/auth-action.service"));
15
+ exports.defaultExcludedUserFields = {
16
+ password: false,
17
+ };
18
+ const authControllerFactory = async (interceptors = {}) => {
19
+ const userService = new base_service_1.BaseService("user");
20
+ return {
21
+ getMe: (0, catch_async_1.default)(async (req, res, next) => {
22
+ const user = (await userService.findOne({ id: req.user.id }, req.prismaQueryOptions || {}));
23
+ Object.keys(exports.defaultExcludedUserFields).forEach((key) => {
24
+ if (user)
25
+ delete user[key];
26
+ });
27
+ if (interceptors?.afterGetMe) {
28
+ req.responseData = { data: user };
29
+ req.responseStatus = 200;
30
+ return next();
31
+ }
32
+ res.status(200).json({ data: user });
33
+ }),
34
+ updateMe: (0, catch_async_1.default)(async (req, res, next) => {
35
+ if ("password" in req.body)
36
+ throw new app_error_1.default("In order to update password use the update-password endpoint.", 400, {}, "InvalidFieldPassword");
37
+ const user = (await userService.updateOne({ id: req.user.id }, req.body, req.prismaQueryOptions || {}));
38
+ Object.keys(exports.defaultExcludedUserFields).forEach((key) => {
39
+ if (user)
40
+ delete user[key];
41
+ });
42
+ if (interceptors?.afterUpdateMe) {
43
+ req.responseData = { data: user };
44
+ req.responseStatus = 200;
45
+ return next();
46
+ }
47
+ res.status(200).json({ data: user });
48
+ }),
49
+ logout: (0, catch_async_1.default)(async (req, res, next) => {
50
+ res.cookie("arkos_access_token", "no-token", {
51
+ expires: new Date(Date.now() + 10 * 1000),
52
+ httpOnly: true,
53
+ });
54
+ if (interceptors?.afterLogout) {
55
+ req.responseData = null;
56
+ req.responseStatus = 204;
57
+ return next();
58
+ }
59
+ res.status(204).json();
60
+ }),
61
+ login: (0, catch_async_1.default)(async (req, res, next) => {
62
+ const authConfigs = (0, server_1.getArkosConfig)()?.authentication;
63
+ const usernameField = (0, auth_controller_helpers_1.determineUsernameField)(req);
64
+ const lastField = usernameField.split(".")[usernameField.split(".").length - 1];
65
+ const usernameValue = req.body[lastField];
66
+ const { password } = req.body;
67
+ if (!usernameValue || !password)
68
+ return next(new app_error_1.default(`Please provide both ${lastField} and password`, 400));
69
+ let whereClause;
70
+ if (usernameField?.includes?.(".")) {
71
+ const valueToFind = (0, auth_controller_helpers_1.getNestedValue)(req.body, usernameField);
72
+ if (valueToFind === undefined) {
73
+ return next(new app_error_1.default(`Invalid ${usernameField} provided`, 400));
74
+ }
75
+ whereClause = (0, auth_controller_helpers_1.createPrismaWhereClause)(usernameField, valueToFind);
76
+ }
77
+ else {
78
+ whereClause = { [usernameField]: usernameValue };
79
+ }
80
+ const user = (await userService.findOne(whereClause, req.prismaQueryOptions || {}));
81
+ if (!user ||
82
+ !(await auth_service_1.default.isCorrectPassword(password, user.password))) {
83
+ return next(new app_error_1.default(`Incorrect ${lastField} or password`, 401));
84
+ }
85
+ const token = auth_service_1.default.signJwtToken(user.id);
86
+ const cookieOptions = {
87
+ expires: new Date(Date.now() +
88
+ Number((0, auth_controller_helpers_1.toMs)(authConfigs?.jwt?.expiresIn ||
89
+ process.env.JWT_EXPIRES_IN ||
90
+ arkos_env_1.default.JWT_EXPIRES_IN))),
91
+ httpOnly: authConfigs?.jwt?.cookie?.httpOnly ||
92
+ process.env.JWT_COOKIE_HTTP_ONLY === "true" ||
93
+ true,
94
+ secure: authConfigs?.jwt?.cookie?.secure ||
95
+ process.env.JWT_COOKIE_SECURE === "true" ||
96
+ req.secure ||
97
+ req.headers["x-forwarded-proto"] === "https",
98
+ sameSite: authConfigs?.jwt?.cookie?.sameSite ||
99
+ process.env.JWT_COOKIE_SAME_SITE ||
100
+ (process.env.NODE_ENV === "production" ? "none" : "lax"),
101
+ };
102
+ if (authConfigs?.login?.sendAccessTokenThrough === "response-only" ||
103
+ authConfigs?.login?.sendAccessTokenThrough === "both" ||
104
+ !authConfigs?.login?.sendAccessTokenThrough) {
105
+ req.responseData = { accessToken: token };
106
+ }
107
+ if (authConfigs?.login?.sendAccessTokenThrough === "cookie-only" ||
108
+ authConfigs?.login?.sendAccessTokenThrough === "both" ||
109
+ !authConfigs?.login?.sendAccessTokenThrough)
110
+ res.cookie("arkos_access_token", token, cookieOptions);
111
+ req.accessToken = token;
112
+ if (interceptors?.afterLogin) {
113
+ req.additionalData = { user };
114
+ req.responseStatus = 200;
115
+ return next();
116
+ }
117
+ if (authConfigs?.login?.sendAccessTokenThrough === "response-only" ||
118
+ authConfigs?.login?.sendAccessTokenThrough === "both" ||
119
+ !authConfigs?.login?.sendAccessTokenThrough) {
120
+ res.status(200).json(req.responseData);
121
+ }
122
+ else if (authConfigs?.login?.sendAccessTokenThrough === "cookie-only" ||
123
+ authConfigs?.login?.sendAccessTokenThrough === "both" ||
124
+ !authConfigs?.login?.sendAccessTokenThrough)
125
+ res.status(200).send();
126
+ }),
127
+ signup: (0, catch_async_1.default)(async (req, res, next) => {
128
+ const user = (await userService.createOne(req.body, req.prismaQueryOptions || {}));
129
+ if (interceptors?.afterSignup) {
130
+ req.responseData = { data: user };
131
+ req.responseStatus = 201;
132
+ return next();
133
+ }
134
+ Object.keys(exports.defaultExcludedUserFields).forEach((key) => {
135
+ delete user[key];
136
+ });
137
+ res.status(201).json({ data: user });
138
+ }),
139
+ deleteMe: (0, catch_async_1.default)(async (req, res, next) => {
140
+ const userId = req.user.id;
141
+ const updatedUser = (await userService.updateOne({ id: userId }, {
142
+ deletedSelfAccountAt: new Date().toISOString(),
143
+ }, req.prismaQueryOptions || {}));
144
+ if (interceptors?.afterDeleteMe) {
145
+ req.responseData = { data: updatedUser };
146
+ req.responseStatus = 200;
147
+ return next();
148
+ }
149
+ Object.keys(exports.defaultExcludedUserFields).forEach((key) => {
150
+ delete updatedUser[key];
151
+ });
152
+ res.status(200).json({
153
+ message: "Account deleted successfully",
154
+ });
155
+ }),
156
+ updatePassword: (0, catch_async_1.default)(async (req, res, next) => {
157
+ const { currentPassword, newPassword } = req.body;
158
+ if (!currentPassword || !newPassword)
159
+ return next(new app_error_1.default("currentPassword and newPassword are required", 400));
160
+ const user = req.user;
161
+ if (!user || user?.isActive === false || user?.deletedSelfAccountAt)
162
+ return next(new app_error_1.default("User not found!", 404));
163
+ const isPasswordCorrect = await auth_service_1.default.isCorrectPassword(String(currentPassword), String(user.password));
164
+ const configs = (0, server_1.getArkosConfig)();
165
+ const initAuthConfigs = configs?.authentication;
166
+ if (!isPasswordCorrect)
167
+ return next(new app_error_1.default("Current password is incorrect.", 400));
168
+ if (!auth_service_1.default.isPasswordStrong(String(newPassword)) &&
169
+ !configs?.validation) {
170
+ return next(new app_error_1.default(initAuthConfigs?.passwordValidation?.message ||
171
+ "The new password must contain at least one uppercase letter, one lowercase letter, and one number", 400));
172
+ }
173
+ await userService.updateOne({ id: user.id }, {
174
+ password: await auth_service_1.default.hashPassword(newPassword),
175
+ passwordChangedAt: new Date(Date.now()),
176
+ });
177
+ if (interceptors?.afterUpdatePassword) {
178
+ req.additionalData = {
179
+ user,
180
+ };
181
+ req.responseData = {
182
+ status: "success",
183
+ message: "Password updated successfully!",
184
+ };
185
+ req.responseStatus = 200;
186
+ return next();
187
+ }
188
+ res.status(200).json({
189
+ status: "success",
190
+ message: "Password updated successfully!",
191
+ });
192
+ }),
193
+ findManyAuthAction: (0, catch_async_1.default)(async (_, res) => {
194
+ const arkosConfig = (0, server_1.getArkosConfig)();
195
+ const authActions = auth_action_service_1.default.getAll()?.map((authAction) => {
196
+ if (arkosConfig?.authentication?.mode === "dynamic")
197
+ delete authAction?.roles;
198
+ return authAction;
199
+ });
200
+ res.json({
201
+ total: authActions.length,
202
+ results: authActions.length,
203
+ data: authActions,
204
+ });
205
+ }),
206
+ findOneAuthAction: (0, catch_async_1.default)(async (req, res) => {
207
+ const arkosConfig = (0, server_1.getArkosConfig)();
208
+ const resourceName = req.params?.resourceName;
209
+ if (!resourceName)
210
+ throw new app_error_1.default(`Please provide a resoureName`, 400);
211
+ const authActions = auth_action_service_1.default
212
+ .getByResource(req.params?.resourceName)
213
+ ?.map((authAction) => {
214
+ if (arkosConfig?.authentication?.mode === "dynamic")
215
+ delete authAction?.roles;
216
+ return authAction;
217
+ });
218
+ if (!authActions)
219
+ throw new app_error_1.default(`No auth action with resource name ${resourceName}`, 404);
220
+ res.json({
221
+ total: authActions.length,
222
+ results: authActions.length,
223
+ data: authActions,
224
+ });
225
+ }),
226
+ };
227
+ };
228
+ exports.authControllerFactory = authControllerFactory;
229
+ //# sourceMappingURL=auth.controller.js.map