arkos 1.3.0-canary.4 → 1.3.0-canary.7

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 (231) hide show
  1. package/dist/cjs/app.js +1 -139
  2. package/dist/cjs/exports/auth/index.js +1 -6
  3. package/dist/cjs/exports/controllers/index.js +1 -11
  4. package/dist/cjs/exports/error-handler/index.js +1 -11
  5. package/dist/cjs/exports/index.js +1 -12
  6. package/dist/cjs/exports/middlewares/index.js +1 -7
  7. package/dist/cjs/exports/prisma/index.js +1 -13
  8. package/dist/cjs/exports/services/index.js +1 -48
  9. package/dist/cjs/exports/utils/index.js +1 -44
  10. package/dist/cjs/exports/validation/index.js +1 -11
  11. package/dist/cjs/modules/auth/auth.controller.js +1 -204
  12. package/dist/cjs/modules/auth/auth.controller.js.map +1 -1
  13. package/dist/cjs/modules/auth/auth.router.js +1 -53
  14. package/dist/cjs/modules/auth/auth.router.js.map +1 -1
  15. package/dist/cjs/modules/auth/auth.service.js +1 -226
  16. package/dist/cjs/modules/auth/utils/auth-error-objects.js +1 -10
  17. package/dist/cjs/modules/auth/utils/helpers/auth.controller.helpers.js +1 -83
  18. package/dist/cjs/modules/auth/utils/services/auth-action.service.js +1 -81
  19. package/dist/cjs/modules/auth/utils/services/auth-action.service.js.map +1 -1
  20. package/dist/cjs/modules/base/base.controller.js +1 -172
  21. package/dist/cjs/modules/base/base.middlewares.js +1 -92
  22. package/dist/cjs/modules/base/base.router.js +1 -22
  23. package/dist/cjs/modules/base/base.service.js +1 -278
  24. package/dist/cjs/modules/base/types/base.service.types.js +1 -3
  25. package/dist/cjs/modules/base/types/base.service.types.js.map +1 -1
  26. package/dist/cjs/modules/base/utils/helpers/base.controller.helpers.js +1 -80
  27. package/dist/cjs/modules/base/utils/helpers/base.middlewares.helpers.js +1 -50
  28. package/dist/cjs/modules/base/utils/helpers/base.router.helpers.js +1 -104
  29. package/dist/cjs/modules/base/utils/helpers/base.router.helpers.js.map +1 -1
  30. package/dist/cjs/modules/base/utils/helpers/base.service.helpers.js +1 -203
  31. package/dist/cjs/modules/base/utils/helpers/base.service.helpers.js.map +1 -1
  32. package/dist/cjs/modules/base/utils/router-validator.js +1 -16
  33. package/dist/cjs/modules/base/utils/service-hooks-manager.js +1 -19
  34. package/dist/cjs/modules/email/email.service.js +1 -104
  35. package/dist/cjs/modules/error-handler/error-handler.controller.js +4 -146
  36. package/dist/cjs/modules/error-handler/utils/app-error.js +1 -17
  37. package/dist/cjs/modules/error-handler/utils/catch-async.js +1 -21
  38. package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js +3 -205
  39. package/dist/cjs/modules/file-upload/file-upload.controller.js +1 -233
  40. package/dist/cjs/modules/file-upload/file-upload.router.js +1 -44
  41. package/dist/cjs/modules/file-upload/file-upload.router.js.map +1 -1
  42. package/dist/cjs/modules/file-upload/file-upload.service.js +1 -322
  43. package/dist/cjs/modules/file-upload/utils/helpers/file-upload.helpers.js +1 -97
  44. package/dist/cjs/modules/swagger/swagger.router.js +1 -36
  45. package/dist/cjs/modules/swagger/swagger.router.js.map +1 -1
  46. package/dist/cjs/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js +1 -269
  47. package/dist/cjs/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js.map +1 -1
  48. package/dist/cjs/modules/swagger/utils/helpers/get-swagger-default-configs.js +1 -64
  49. package/dist/cjs/modules/swagger/utils/helpers/get-system-json-schema-paths.js +1 -37
  50. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js +1 -48
  51. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +1 -32
  52. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-system-json-schemas.js +1 -0
  53. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-system-json-schemas.js.map +1 -0
  54. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js +1 -34
  55. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js +1 -471
  56. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes-paths.js +1 -572
  57. package/dist/cjs/modules/swagger/utils/helpers/missing-json-schemas-generator.js +1 -260
  58. package/dist/cjs/modules/swagger/utils/helpers/swagger.router.helpers.js +1 -112
  59. package/dist/cjs/paths.js +1 -9
  60. package/dist/cjs/server.js +5 -94
  61. package/dist/cjs/types/arkos-config.js +1 -3
  62. package/dist/cjs/types/auth.js +1 -3
  63. package/dist/cjs/types/auth.js.map +1 -1
  64. package/dist/cjs/types/index.js +1 -11
  65. package/dist/cjs/types/router-config.js +1 -3
  66. package/dist/cjs/utils/arkos-env.js +1 -9
  67. package/dist/cjs/utils/cli/build.js +5 -214
  68. package/dist/cjs/utils/cli/dev.js +3 -154
  69. package/dist/cjs/utils/cli/generate.js +1 -191
  70. package/dist/cjs/utils/cli/generate.js.map +1 -1
  71. package/dist/cjs/utils/cli/index.js +1 -88
  72. package/dist/cjs/utils/cli/index.js.map +1 -1
  73. package/dist/cjs/utils/cli/start.js +1 -103
  74. package/dist/cjs/utils/cli/utils/cli.helpers.js +1 -24
  75. package/dist/cjs/utils/cli/utils/smart-fs-watcher.js +1 -73
  76. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-auth-configs-template.js +5 -20
  77. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-controller-template.js +6 -15
  78. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-hooks-template.js +98 -0
  79. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-hooks-template.js.map +1 -0
  80. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-middlewares.js +54 -138
  81. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-middlewares.js.map +1 -1
  82. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js +8 -36
  83. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-router-template.js +11 -38
  84. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-router-template.js.map +1 -1
  85. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-service-template.js +7 -27
  86. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-service-template.js.map +1 -1
  87. package/dist/cjs/utils/cli/utils/template-generators.js +2 -28
  88. package/dist/cjs/utils/cli/utils/template-generators.js.map +1 -1
  89. package/dist/cjs/utils/cli/utils/watermark-stamper.js +3 -17
  90. package/dist/cjs/utils/dotenv.helpers.js +1 -43
  91. package/dist/cjs/utils/dynamic-loader.js +9 -251
  92. package/dist/cjs/utils/dynamic-loader.js.map +1 -1
  93. package/dist/cjs/utils/features/api.features.js +1 -169
  94. package/dist/cjs/utils/features/change-case.features.js +1 -67
  95. package/dist/cjs/utils/features/port-and-host-allocator.js +1 -105
  96. package/dist/cjs/utils/helpers/api.features.helpers.js +1 -112
  97. package/dist/cjs/utils/helpers/change-case.helpers.js +1 -177
  98. package/dist/cjs/utils/helpers/deepmerge.helper.js +1 -115
  99. package/dist/cjs/utils/helpers/dynamic-loader.helpers.js +1 -76
  100. package/dist/cjs/utils/helpers/fs.helpers.js +1 -57
  101. package/dist/cjs/utils/helpers/global.helpers.js +1 -94
  102. package/dist/cjs/utils/helpers/prisma.helpers.js +1 -40
  103. package/dist/cjs/utils/helpers/query-parser.helpers.js +1 -45
  104. package/dist/cjs/utils/helpers/routers.helpers.js +1 -37
  105. package/dist/cjs/utils/helpers/text.helpers.js +1 -28
  106. package/dist/cjs/utils/prisma/prisma-json-schema-generator.js +1 -455
  107. package/dist/cjs/utils/prisma/prisma-schema-parser.js +4 -216
  108. package/dist/cjs/utils/prisma/types.js +1 -3
  109. package/dist/cjs/utils/sheu.js +1 -120
  110. package/dist/cjs/utils/validate-dto.js +1 -17
  111. package/dist/cjs/utils/validate-schema.js +1 -15
  112. package/dist/esm/app.js +1 -132
  113. package/dist/esm/exports/auth/index.js +1 -2
  114. package/dist/esm/exports/controllers/index.js +1 -4
  115. package/dist/esm/exports/error-handler/index.js +1 -4
  116. package/dist/esm/exports/index.js +1 -8
  117. package/dist/esm/exports/middlewares/index.js +1 -2
  118. package/dist/esm/exports/prisma/index.js +1 -6
  119. package/dist/esm/exports/services/index.js +1 -9
  120. package/dist/esm/exports/utils/index.js +1 -4
  121. package/dist/esm/exports/validation/index.js +1 -4
  122. package/dist/esm/modules/auth/auth.controller.js +1 -197
  123. package/dist/esm/modules/auth/auth.controller.js.map +1 -1
  124. package/dist/esm/modules/auth/auth.router.js +1 -47
  125. package/dist/esm/modules/auth/auth.router.js.map +1 -1
  126. package/dist/esm/modules/auth/auth.service.js +1 -219
  127. package/dist/esm/modules/auth/utils/auth-error-objects.js +1 -4
  128. package/dist/esm/modules/auth/utils/helpers/auth.controller.helpers.js +1 -73
  129. package/dist/esm/modules/auth/utils/services/auth-action.service.js +1 -79
  130. package/dist/esm/modules/auth/utils/services/auth-action.service.js.map +1 -1
  131. package/dist/esm/modules/base/base.controller.js +1 -165
  132. package/dist/esm/modules/base/base.middlewares.js +1 -81
  133. package/dist/esm/modules/base/base.router.js +1 -15
  134. package/dist/esm/modules/base/base.service.js +1 -271
  135. package/dist/esm/modules/base/types/base.service.types.js +1 -2
  136. package/dist/esm/modules/base/types/base.service.types.js.map +1 -1
  137. package/dist/esm/modules/base/utils/helpers/base.controller.helpers.js +1 -76
  138. package/dist/esm/modules/base/utils/helpers/base.middlewares.helpers.js +1 -44
  139. package/dist/esm/modules/base/utils/helpers/base.router.helpers.js +1 -96
  140. package/dist/esm/modules/base/utils/helpers/base.router.helpers.js.map +1 -1
  141. package/dist/esm/modules/base/utils/helpers/base.service.helpers.js +1 -193
  142. package/dist/esm/modules/base/utils/helpers/base.service.helpers.js.map +1 -1
  143. package/dist/esm/modules/base/utils/router-validator.js +1 -14
  144. package/dist/esm/modules/base/utils/service-hooks-manager.js +1 -17
  145. package/dist/esm/modules/email/email.service.js +1 -97
  146. package/dist/esm/modules/error-handler/error-handler.controller.js +4 -107
  147. package/dist/esm/modules/error-handler/utils/app-error.js +1 -15
  148. package/dist/esm/modules/error-handler/utils/catch-async.js +1 -19
  149. package/dist/esm/modules/error-handler/utils/error-handler.helpers.js +3 -163
  150. package/dist/esm/modules/file-upload/file-upload.controller.js +1 -228
  151. package/dist/esm/modules/file-upload/file-upload.router.js +1 -38
  152. package/dist/esm/modules/file-upload/file-upload.router.js.map +1 -1
  153. package/dist/esm/modules/file-upload/file-upload.service.js +1 -314
  154. package/dist/esm/modules/file-upload/utils/helpers/file-upload.helpers.js +1 -87
  155. package/dist/esm/modules/swagger/swagger.router.js +1 -30
  156. package/dist/esm/modules/swagger/swagger.router.js.map +1 -1
  157. package/dist/esm/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js +1 -264
  158. package/dist/esm/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js.map +1 -1
  159. package/dist/esm/modules/swagger/utils/helpers/get-swagger-default-configs.js +1 -58
  160. package/dist/esm/modules/swagger/utils/helpers/get-system-json-schema-paths.js +1 -34
  161. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js +1 -42
  162. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +1 -26
  163. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-system-json-schemas.js +1 -0
  164. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-system-json-schemas.js.map +1 -0
  165. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js +1 -28
  166. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js +1 -465
  167. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes-paths.js +1 -566
  168. package/dist/esm/modules/swagger/utils/helpers/missing-json-schemas-generator.js +1 -255
  169. package/dist/esm/modules/swagger/utils/helpers/swagger.router.helpers.js +1 -101
  170. package/dist/esm/paths.js +1 -3
  171. package/dist/esm/server.js +5 -85
  172. package/dist/esm/types/arkos-config.js +1 -2
  173. package/dist/esm/types/auth.js +1 -2
  174. package/dist/esm/types/auth.js.map +1 -1
  175. package/dist/esm/types/index.js +1 -8
  176. package/dist/esm/types/router-config.js +1 -2
  177. package/dist/esm/utils/arkos-env.js +1 -7
  178. package/dist/esm/utils/cli/build.js +5 -208
  179. package/dist/esm/utils/cli/dev.js +3 -147
  180. package/dist/esm/utils/cli/generate.js +1 -185
  181. package/dist/esm/utils/cli/generate.js.map +1 -1
  182. package/dist/esm/utils/cli/index.js +1 -81
  183. package/dist/esm/utils/cli/index.js.map +1 -1
  184. package/dist/esm/utils/cli/start.js +1 -96
  185. package/dist/esm/utils/cli/utils/cli.helpers.js +1 -16
  186. package/dist/esm/utils/cli/utils/smart-fs-watcher.js +1 -68
  187. package/dist/esm/utils/cli/utils/template-generator/templates/generate-auth-configs-template.js +5 -17
  188. package/dist/esm/utils/cli/utils/template-generator/templates/generate-controller-template.js +6 -12
  189. package/dist/esm/utils/cli/utils/template-generator/templates/generate-hooks-template.js +98 -0
  190. package/dist/esm/utils/cli/utils/template-generator/templates/generate-hooks-template.js.map +1 -0
  191. package/dist/esm/utils/cli/utils/template-generator/templates/generate-middlewares.js +54 -135
  192. package/dist/esm/utils/cli/utils/template-generator/templates/generate-middlewares.js.map +1 -1
  193. package/dist/esm/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js +8 -33
  194. package/dist/esm/utils/cli/utils/template-generator/templates/generate-router-template.js +11 -32
  195. package/dist/esm/utils/cli/utils/template-generator/templates/generate-router-template.js.map +1 -1
  196. package/dist/esm/utils/cli/utils/template-generator/templates/generate-service-template.js +7 -24
  197. package/dist/esm/utils/cli/utils/template-generator/templates/generate-service-template.js.map +1 -1
  198. package/dist/esm/utils/cli/utils/template-generators.js +2 -25
  199. package/dist/esm/utils/cli/utils/template-generators.js.map +1 -1
  200. package/dist/esm/utils/cli/utils/watermark-stamper.js +3 -15
  201. package/dist/esm/utils/dotenv.helpers.js +1 -37
  202. package/dist/esm/utils/dynamic-loader.js +9 -237
  203. package/dist/esm/utils/dynamic-loader.js.map +1 -1
  204. package/dist/esm/utils/features/api.features.js +1 -162
  205. package/dist/esm/utils/features/change-case.features.js +1 -31
  206. package/dist/esm/utils/features/port-and-host-allocator.js +1 -67
  207. package/dist/esm/utils/helpers/api.features.helpers.js +1 -106
  208. package/dist/esm/utils/helpers/change-case.helpers.js +1 -161
  209. package/dist/esm/utils/helpers/deepmerge.helper.js +1 -113
  210. package/dist/esm/utils/helpers/dynamic-loader.helpers.js +1 -69
  211. package/dist/esm/utils/helpers/fs.helpers.js +1 -48
  212. package/dist/esm/utils/helpers/global.helpers.js +1 -51
  213. package/dist/esm/utils/helpers/prisma.helpers.js +1 -32
  214. package/dist/esm/utils/helpers/query-parser.helpers.js +1 -40
  215. package/dist/esm/utils/helpers/routers.helpers.js +1 -29
  216. package/dist/esm/utils/helpers/text.helpers.js +1 -22
  217. package/dist/esm/utils/prisma/prisma-json-schema-generator.js +1 -448
  218. package/dist/esm/utils/prisma/prisma-schema-parser.js +4 -209
  219. package/dist/esm/utils/prisma/types.js +1 -2
  220. package/dist/esm/utils/sheu.js +1 -118
  221. package/dist/esm/utils/validate-dto.js +1 -11
  222. package/dist/esm/utils/validate-schema.js +1 -9
  223. package/dist/types/modules/auth/utils/services/auth-action.service.d.ts +1 -0
  224. package/dist/types/modules/base/types/base.service.types.d.ts +0 -3
  225. package/dist/types/modules/base/utils/helpers/base.router.helpers.d.ts +2 -2
  226. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-system-json-schemas.d.ts +4 -0
  227. package/dist/types/types/auth.d.ts +7 -6
  228. package/dist/types/utils/cli/generate.d.ts +1 -0
  229. package/dist/types/utils/cli/utils/template-generator/templates/generate-hooks-template.d.ts +2 -0
  230. package/dist/types/utils/dynamic-loader.d.ts +3 -0
  231. package/package.json +4 -4
package/dist/cjs/app.js CHANGED
@@ -1,139 +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.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
+ "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,6 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.defaultExcludedUserFields = void 0;
4
- var auth_controller_1 = require("./../../modules/auth/auth.controller");
5
- Object.defineProperty(exports, "defaultExcludedUserFields", { enumerable: true, get: function () { return auth_controller_1.defaultExcludedUserFields; } });
6
- //# sourceMappingURL=index.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.defaultExcludedUserFields=void 0;var auth_controller_1=require("./../../modules/auth/auth.controller");Object.defineProperty(exports,"defaultExcludedUserFields",{enumerable:!0,get:function(){return auth_controller_1.defaultExcludedUserFields}});
@@ -1,11 +1 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.BaseController = exports.fileUploadController = void 0;
7
- const base_controller_1 = require("./../../modules/base/base.controller");
8
- Object.defineProperty(exports, "BaseController", { enumerable: true, get: function () { return base_controller_1.BaseController; } });
9
- const file_upload_controller_1 = __importDefault(require("../../modules/file-upload/file-upload.controller"));
10
- exports.fileUploadController = file_upload_controller_1.default;
11
- //# sourceMappingURL=index.js.map
1
+ "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.BaseController=exports.fileUploadController=void 0;const base_controller_1=require("./../../modules/base/base.controller");Object.defineProperty(exports,"BaseController",{enumerable:!0,get:function(){return base_controller_1.BaseController}});const file_upload_controller_1=__importDefault(require("../../modules/file-upload/file-upload.controller"));exports.fileUploadController=file_upload_controller_1.default;
@@ -1,11 +1 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.AppError = exports.catchAsync = void 0;
7
- const catch_async_1 = __importDefault(require("../../modules/error-handler/utils/catch-async"));
8
- exports.catchAsync = catch_async_1.default;
9
- const app_error_1 = __importDefault(require("../../modules/error-handler/utils/app-error"));
10
- exports.AppError = app_error_1.default;
11
- //# sourceMappingURL=index.js.map
1
+ "use strict";var __importDefault=this&&this.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.AppError=exports.catchAsync=void 0;const catch_async_1=__importDefault(require("../../modules/error-handler/utils/catch-async"));exports.catchAsync=catch_async_1.default;const app_error_1=__importDefault(require("../../modules/error-handler/utils/app-error"));exports.AppError=app_error_1.default;
@@ -1,12 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getArkosConfig = exports.BaseController = void 0;
4
- const base_controller_1 = require("./../modules/base/base.controller");
5
- Object.defineProperty(exports, "BaseController", { enumerable: true, get: function () { return base_controller_1.BaseController; } });
6
- const server_1 = require("../server");
7
- Object.defineProperty(exports, "getArkosConfig", { enumerable: true, get: function () { return server_1.getArkosConfig; } });
8
- const arkos = {
9
- init: server_1.initApp,
10
- };
11
- exports.default = arkos;
12
- //# sourceMappingURL=index.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getArkosConfig=exports.BaseController=void 0;const base_controller_1=require("./../modules/base/base.controller");Object.defineProperty(exports,"BaseController",{enumerable:!0,get:function(){return base_controller_1.BaseController}});const server_1=require("../server");Object.defineProperty(exports,"getArkosConfig",{enumerable:!0,get:function(){return server_1.getArkosConfig}});const arkos={init:server_1.initApp};exports.default=arkos;
@@ -1,7 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.handleRequestBodyValidationAndTransformation = exports.addPrismaQueryOptionsToRequest = void 0;
4
- var base_middlewares_1 = require("../../modules/base/base.middlewares");
5
- Object.defineProperty(exports, "addPrismaQueryOptionsToRequest", { enumerable: true, get: function () { return base_middlewares_1.addPrismaQueryOptionsToRequest; } });
6
- Object.defineProperty(exports, "handleRequestBodyValidationAndTransformation", { enumerable: true, get: function () { return base_middlewares_1.handleRequestBodyValidationAndTransformation; } });
7
- //# sourceMappingURL=index.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.handleRequestBodyValidationAndTransformation=exports.addPrismaQueryOptionsToRequest=void 0;var base_middlewares_1=require("../../modules/base/base.middlewares");Object.defineProperty(exports,"addPrismaQueryOptionsToRequest",{enumerable:!0,get:function(){return base_middlewares_1.addPrismaQueryOptionsToRequest}}),Object.defineProperty(exports,"handleRequestBodyValidationAndTransformation",{enumerable:!0,get:function(){return base_middlewares_1.handleRequestBodyValidationAndTransformation}});
@@ -1,13 +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.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
+ "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,48 +1 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.FileUploadService = exports.getFileUploadServices = exports.EmailService = exports.emailService = exports.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
+ "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,44 +1 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
19
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
20
- };
21
- var __importStar = (this && this.__importStar) || (function () {
22
- var ownKeys = function(o) {
23
- ownKeys = Object.getOwnPropertyNames || function (o) {
24
- var ar = [];
25
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
- return ar;
27
- };
28
- return ownKeys(o);
29
- };
30
- return function (mod) {
31
- if (mod && mod.__esModule) return mod;
32
- var result = {};
33
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
- __setModuleDefault(result, mod);
35
- return result;
36
- };
37
- })();
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.apiFeatures = exports.APIFeatures = void 0;
40
- __exportStar(require("../../utils/helpers/change-case.helpers"), exports);
41
- const api_features_1 = __importStar(require("../../utils/features/api.features"));
42
- exports.APIFeatures = api_features_1.default;
43
- Object.defineProperty(exports, "apiFeatures", { enumerable: true, get: function () { return api_features_1.apiFeatures; } });
44
- //# sourceMappingURL=index.js.map
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(n,e,t,r){r===void 0&&(r=t);var u=Object.getOwnPropertyDescriptor(e,t);(!u||("get"in u?!e.__esModule:u.writable||u.configurable))&&(u={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(n,r,u)}:function(n,e,t,r){r===void 0&&(r=t),n[r]=e[t]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(n,e){Object.defineProperty(n,"default",{enumerable:!0,value:e})}:function(n,e){n.default=e}),__exportStar=this&&this.__exportStar||function(n,e){for(var t in n)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&__createBinding(e,n,t)},__importStar=this&&this.__importStar||function(){var n=function(e){return n=Object.getOwnPropertyNames||function(t){var r=[];for(var u in t)Object.prototype.hasOwnProperty.call(t,u)&&(r[r.length]=u);return r},n(e)};return function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r=n(e),u=0;u<r.length;u++)r[u]!=="default"&&__createBinding(t,e,r[u]);return __setModuleDefault(t,e),t}}();Object.defineProperty(exports,"__esModule",{value:!0}),exports.apiFeatures=exports.APIFeatures=void 0,__exportStar(require("../../utils/helpers/change-case.helpers"),exports);const api_features_1=__importStar(require("../../utils/features/api.features"));exports.APIFeatures=api_features_1.default,Object.defineProperty(exports,"apiFeatures",{enumerable:!0,get:function(){return api_features_1.apiFeatures}});
@@ -1,11 +1 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.validateSchema = exports.validateDto = void 0;
7
- const validate_dto_1 = __importDefault(require("../../utils/validate-dto"));
8
- exports.validateDto = validate_dto_1.default;
9
- const validate_schema_1 = __importDefault(require("../../utils/validate-schema"));
10
- exports.validateSchema = validate_schema_1.default;
11
- //# sourceMappingURL=index.js.map
1
+ "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.validateSchema=exports.validateDto=void 0;const validate_dto_1=__importDefault(require("../../utils/validate-dto"));exports.validateDto=validate_dto_1.default;const validate_schema_1=__importDefault(require("../../utils/validate-schema"));exports.validateSchema=validate_schema_1.default;
@@ -1,204 +1 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.authControllerFactory = exports.defaultExcludedUserFields = void 0;
7
- const catch_async_1 = __importDefault(require("../error-handler/utils/catch-async"));
8
- const app_error_1 = __importDefault(require("../error-handler/utils/app-error"));
9
- const auth_service_1 = __importDefault(require("./auth.service"));
10
- const base_service_1 = require("../base/base.service");
11
- const arkos_env_1 = __importDefault(require("../../utils/arkos-env"));
12
- const server_1 = require("../../server");
13
- const auth_controller_helpers_1 = require("./utils/helpers/auth.controller.helpers");
14
- 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 authActions = auth_action_service_1.default.getAll();
195
- res.json({
196
- total: authActions.length,
197
- results: authActions.length,
198
- data: authActions,
199
- });
200
- }),
201
- };
202
- };
203
- exports.authControllerFactory = authControllerFactory;
204
- //# sourceMappingURL=auth.controller.js.map
1
+ "use strict";var __importDefault=this&&this.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.authControllerFactory=exports.defaultExcludedUserFields=void 0;const catch_async_1=__importDefault(require("../error-handler/utils/catch-async")),app_error_1=__importDefault(require("../error-handler/utils/app-error")),auth_service_1=__importDefault(require("./auth.service")),base_service_1=require("../base/base.service"),arkos_env_1=__importDefault(require("../../utils/arkos-env")),server_1=require("../../server"),auth_controller_helpers_1=require("./utils/helpers/auth.controller.helpers"),auth_action_service_1=__importDefault(require("./utils/services/auth-action.service"));exports.defaultExcludedUserFields={password:!1};const authControllerFactory=async(n={})=>{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]}),n?.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]}),n?.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}),n?.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),r=t.split(".")[t.split(".").length-1],c=e.body[r],{password:d}=e.body;if(!c||!d)return a(new app_error_1.default(`Please provide both ${r} and password`,400));let i;if(t?.includes?.(".")){const f=(0,auth_controller_helpers_1.getNestedValue)(e.body,t);if(f===void 0)return a(new app_error_1.default(`Invalid ${t} provided`,400));i=(0,auth_controller_helpers_1.createPrismaWhereClause)(t,f)}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 ${r} or password`,401));const p=auth_service_1.default.signJwtToken(l.id),h={expires:new Date(Date.now()+Number((0,auth_controller_helpers_1.toMs)(s?.jwt?.expiresIn||process.env.JWT_EXPIRES_IN||arkos_env_1.default.JWT_EXPIRES_IN))),httpOnly:s?.jwt?.cookie?.httpOnly||process.env.JWT_COOKIE_HTTP_ONLY==="true"||!0,secure:s?.jwt?.cookie?.secure||process.env.JWT_COOKIE_SECURE==="true"||e.secure||e.headers["x-forwarded-proto"]==="https",sameSite:s?.jwt?.cookie?.sameSite||process.env.JWT_COOKIE_SAME_SITE||(process.env.NODE_ENV==="production"?"none":"lax")};if((s?.login?.sendAccessTokenThrough==="response-only"||s?.login?.sendAccessTokenThrough==="both"||!s?.login?.sendAccessTokenThrough)&&(e.responseData={accessToken:p}),(s?.login?.sendAccessTokenThrough==="cookie-only"||s?.login?.sendAccessTokenThrough==="both"||!s?.login?.sendAccessTokenThrough)&&o.cookie("arkos_access_token",p,h),e.accessToken=p,n?.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(n?.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(n?.afterDeleteMe)return e.responseData={data:t},e.responseStatus=200,a();Object.keys(exports.defaultExcludedUserFields).forEach(r=>{delete t[r]}),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 r=e.user;if(!r||r?.isActive===!1||r?.deletedSelfAccountAt)return a(new app_error_1.default("User not found!",404));const c=await auth_service_1.default.isCorrectPassword(String(s),String(r.password)),d=(0,server_1.getArkosConfig)(),i=d?.authentication;if(!c)return 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:r.id},{password:await auth_service_1.default.hashPassword(t),passwordChangedAt:new Date(Date.now())}),n?.afterUpdatePassword)return e.additionalData={user:r},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})})}};exports.authControllerFactory=authControllerFactory;