arkos 2.0.0-next.12 → 2.0.0-next.15

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 (187) hide show
  1. package/README.md +9 -9
  2. package/dist/cjs/app.js +38 -2
  3. package/dist/cjs/app.js.map +1 -1
  4. package/dist/cjs/exports/error-handler/index.js +15 -0
  5. package/dist/cjs/exports/error-handler/index.js.map +1 -1
  6. package/dist/cjs/exports/index.js.map +1 -1
  7. package/dist/cjs/modules/auth/auth.router.js.map +1 -1
  8. package/dist/cjs/modules/auth/auth.service.js +88 -71
  9. package/dist/cjs/modules/auth/auth.service.js.map +1 -1
  10. package/dist/cjs/modules/base/base.controller.js.map +1 -1
  11. package/dist/cjs/modules/base/base.middlewares.js +4 -2
  12. package/dist/cjs/modules/base/base.middlewares.js.map +1 -1
  13. package/dist/cjs/modules/base/base.service.js.map +1 -1
  14. package/dist/cjs/modules/email/email.service.js +1 -1
  15. package/dist/cjs/modules/email/email.service.js.map +1 -1
  16. package/dist/cjs/modules/error-handler/error-handler.controller.js +25 -42
  17. package/dist/cjs/modules/error-handler/error-handler.controller.js.map +1 -1
  18. package/dist/cjs/modules/error-handler/utils/app-error.js +0 -1
  19. package/dist/cjs/modules/error-handler/utils/app-error.js.map +1 -1
  20. package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js +8 -9
  21. package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js.map +1 -1
  22. package/dist/cjs/modules/error-handler/utils/errors.js +158 -0
  23. package/dist/cjs/modules/error-handler/utils/errors.js.map +1 -0
  24. package/dist/cjs/modules/error-handler/utils/multer-error-handler.js +39 -0
  25. package/dist/cjs/modules/error-handler/utils/multer-error-handler.js.map +1 -0
  26. package/dist/cjs/modules/file-upload/file-upload.controller.js +2 -10
  27. package/dist/cjs/modules/file-upload/file-upload.controller.js.map +1 -1
  28. package/dist/cjs/modules/swagger/swagger.router.js +2 -2
  29. package/dist/cjs/modules/swagger/swagger.router.js.map +1 -1
  30. package/dist/cjs/modules/swagger/utils/helpers/openapi-schema-converter.js +1 -1
  31. package/dist/cjs/modules/swagger/utils/helpers/openapi-schema-converter.js.map +1 -1
  32. package/dist/cjs/types/arkos-config/utils.js.map +1 -1
  33. package/dist/cjs/types/arkos-prisma-input.js.map +1 -1
  34. package/dist/cjs/types/auth.js.map +1 -1
  35. package/dist/cjs/types/new-arkos-config.js.map +1 -1
  36. package/dist/cjs/types/router-config.js.map +1 -1
  37. package/dist/cjs/utils/arkos-router/index.js +2 -1
  38. package/dist/cjs/utils/arkos-router/index.js.map +1 -1
  39. package/dist/cjs/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.js +23 -25
  40. package/dist/cjs/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.js.map +1 -1
  41. package/dist/cjs/utils/cli/build.js +1 -1
  42. package/dist/cjs/utils/cli/build.js.map +1 -1
  43. package/dist/cjs/utils/cli/dev.js +4 -2
  44. package/dist/cjs/utils/cli/dev.js.map +1 -1
  45. package/dist/cjs/utils/cli/generate.js +6 -8
  46. package/dist/cjs/utils/cli/generate.js.map +1 -1
  47. package/dist/cjs/utils/cli/index.js +22 -3
  48. package/dist/cjs/utils/cli/index.js.map +1 -1
  49. package/dist/cjs/utils/cli/utils/cli.helpers.js +1 -1
  50. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-controller-template.js +19 -7
  51. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-controller-template.js.map +1 -1
  52. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-multiple-components.js +3 -5
  53. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-multiple-components.js.map +1 -1
  54. package/dist/cjs/utils/cli/utils/template-generator/templates/router-template.js +6 -36
  55. package/dist/cjs/utils/cli/utils/template-generator/templates/router-template.js.map +1 -1
  56. package/dist/cjs/utils/define-config.js +2 -2
  57. package/dist/cjs/utils/define-config.js.map +1 -1
  58. package/dist/cjs/utils/dotenv.helpers.js +0 -6
  59. package/dist/cjs/utils/dotenv.helpers.js.map +1 -1
  60. package/dist/cjs/utils/features/api.features.js +0 -3
  61. package/dist/cjs/utils/features/api.features.js.map +1 -1
  62. package/dist/cjs/utils/helpers/api.features.helpers.js +20 -0
  63. package/dist/cjs/utils/helpers/api.features.helpers.js.map +1 -1
  64. package/dist/cjs/utils/helpers/arkos-config.helpers.js +17 -0
  65. package/dist/cjs/utils/helpers/arkos-config.helpers.js.map +1 -1
  66. package/dist/cjs/utils/helpers/exit-error.js +1 -0
  67. package/dist/cjs/utils/helpers/exit-error.js.map +1 -1
  68. package/dist/cjs/utils/helpers/prisma.helpers.js +8 -7
  69. package/dist/cjs/utils/helpers/prisma.helpers.js.map +1 -1
  70. package/dist/cjs/utils/helpers/routers.helpers.js +2 -2
  71. package/dist/cjs/utils/helpers/routers.helpers.js.map +1 -1
  72. package/dist/cjs/utils/helpers/url-helpers.js +14 -0
  73. package/dist/cjs/utils/helpers/url-helpers.js.map +1 -0
  74. package/dist/cjs/utils/initialize-app.js +12 -14
  75. package/dist/cjs/utils/initialize-app.js.map +1 -1
  76. package/dist/cjs/utils/prisma/prisma-json-schema-generator.js +12 -6
  77. package/dist/cjs/utils/prisma/prisma-json-schema-generator.js.map +1 -1
  78. package/dist/cjs/utils/prisma/prisma-schema-parser.js +10 -3
  79. package/dist/cjs/utils/prisma/prisma-schema-parser.js.map +1 -1
  80. package/dist/cjs/utils/setup-app.js +8 -8
  81. package/dist/cjs/utils/setup-app.js.map +1 -1
  82. package/dist/esm/app.js +5 -2
  83. package/dist/esm/app.js.map +1 -1
  84. package/dist/esm/exports/error-handler/index.js +1 -0
  85. package/dist/esm/exports/error-handler/index.js.map +1 -1
  86. package/dist/esm/exports/index.js.map +1 -1
  87. package/dist/esm/modules/auth/auth.router.js.map +1 -1
  88. package/dist/esm/modules/auth/auth.service.js +88 -71
  89. package/dist/esm/modules/auth/auth.service.js.map +1 -1
  90. package/dist/esm/modules/base/base.controller.js.map +1 -1
  91. package/dist/esm/modules/base/base.middlewares.js +4 -2
  92. package/dist/esm/modules/base/base.middlewares.js.map +1 -1
  93. package/dist/esm/modules/base/base.service.js.map +1 -1
  94. package/dist/esm/modules/email/email.service.js +1 -1
  95. package/dist/esm/modules/email/email.service.js.map +1 -1
  96. package/dist/esm/modules/error-handler/error-handler.controller.js +22 -42
  97. package/dist/esm/modules/error-handler/error-handler.controller.js.map +1 -1
  98. package/dist/esm/modules/error-handler/utils/app-error.js +0 -1
  99. package/dist/esm/modules/error-handler/utils/app-error.js.map +1 -1
  100. package/dist/esm/modules/error-handler/utils/error-handler.helpers.js +8 -9
  101. package/dist/esm/modules/error-handler/utils/error-handler.helpers.js.map +1 -1
  102. package/dist/esm/modules/error-handler/utils/errors.js +127 -0
  103. package/dist/esm/modules/error-handler/utils/errors.js.map +1 -0
  104. package/dist/esm/modules/error-handler/utils/multer-error-handler.js +34 -0
  105. package/dist/esm/modules/error-handler/utils/multer-error-handler.js.map +1 -0
  106. package/dist/esm/modules/file-upload/file-upload.controller.js +2 -10
  107. package/dist/esm/modules/file-upload/file-upload.controller.js.map +1 -1
  108. package/dist/esm/modules/swagger/swagger.router.js +2 -2
  109. package/dist/esm/modules/swagger/swagger.router.js.map +1 -1
  110. package/dist/esm/modules/swagger/utils/helpers/openapi-schema-converter.js +1 -1
  111. package/dist/esm/modules/swagger/utils/helpers/openapi-schema-converter.js.map +1 -1
  112. package/dist/esm/types/arkos-config/utils.js.map +1 -1
  113. package/dist/esm/types/arkos-prisma-input.js.map +1 -1
  114. package/dist/esm/types/auth.js.map +1 -1
  115. package/dist/esm/types/new-arkos-config.js.map +1 -1
  116. package/dist/esm/types/router-config.js.map +1 -1
  117. package/dist/esm/utils/arkos-router/index.js +2 -1
  118. package/dist/esm/utils/arkos-router/index.js.map +1 -1
  119. package/dist/esm/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.js +23 -25
  120. package/dist/esm/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.js.map +1 -1
  121. package/dist/esm/utils/cli/build.js +1 -1
  122. package/dist/esm/utils/cli/build.js.map +1 -1
  123. package/dist/esm/utils/cli/dev.js +4 -2
  124. package/dist/esm/utils/cli/dev.js.map +1 -1
  125. package/dist/esm/utils/cli/generate.js +6 -8
  126. package/dist/esm/utils/cli/generate.js.map +1 -1
  127. package/dist/esm/utils/cli/index.js +22 -3
  128. package/dist/esm/utils/cli/index.js.map +1 -1
  129. package/dist/esm/utils/cli/utils/cli.helpers.js +1 -1
  130. package/dist/esm/utils/cli/utils/template-generator/templates/generate-controller-template.js +16 -7
  131. package/dist/esm/utils/cli/utils/template-generator/templates/generate-controller-template.js.map +1 -1
  132. package/dist/esm/utils/cli/utils/template-generator/templates/generate-multiple-components.js +3 -5
  133. package/dist/esm/utils/cli/utils/template-generator/templates/generate-multiple-components.js.map +1 -1
  134. package/dist/esm/utils/cli/utils/template-generator/templates/router-template.js +3 -3
  135. package/dist/esm/utils/cli/utils/template-generator/templates/router-template.js.map +1 -1
  136. package/dist/esm/utils/define-config.js +2 -2
  137. package/dist/esm/utils/define-config.js.map +1 -1
  138. package/dist/esm/utils/dotenv.helpers.js +0 -6
  139. package/dist/esm/utils/dotenv.helpers.js.map +1 -1
  140. package/dist/esm/utils/features/api.features.js +0 -3
  141. package/dist/esm/utils/features/api.features.js.map +1 -1
  142. package/dist/esm/utils/helpers/api.features.helpers.js +20 -0
  143. package/dist/esm/utils/helpers/api.features.helpers.js.map +1 -1
  144. package/dist/esm/utils/helpers/arkos-config.helpers.js +15 -0
  145. package/dist/esm/utils/helpers/arkos-config.helpers.js.map +1 -1
  146. package/dist/esm/utils/helpers/exit-error.js +1 -0
  147. package/dist/esm/utils/helpers/exit-error.js.map +1 -1
  148. package/dist/esm/utils/helpers/prisma.helpers.js +8 -7
  149. package/dist/esm/utils/helpers/prisma.helpers.js.map +1 -1
  150. package/dist/esm/utils/helpers/routers.helpers.js +2 -2
  151. package/dist/esm/utils/helpers/routers.helpers.js.map +1 -1
  152. package/dist/esm/utils/helpers/url-helpers.js +11 -0
  153. package/dist/esm/utils/helpers/url-helpers.js.map +1 -0
  154. package/dist/esm/utils/initialize-app.js +11 -14
  155. package/dist/esm/utils/initialize-app.js.map +1 -1
  156. package/dist/esm/utils/prisma/prisma-json-schema-generator.js +12 -6
  157. package/dist/esm/utils/prisma/prisma-json-schema-generator.js.map +1 -1
  158. package/dist/esm/utils/prisma/prisma-schema-parser.js +10 -3
  159. package/dist/esm/utils/prisma/prisma-schema-parser.js.map +1 -1
  160. package/dist/esm/utils/setup-app.js +8 -8
  161. package/dist/esm/utils/setup-app.js.map +1 -1
  162. package/dist/types/exports/error-handler/index.d.ts +1 -0
  163. package/dist/types/exports/index.d.ts +2 -2
  164. package/dist/types/modules/auth/auth.service.d.ts +11 -20
  165. package/dist/types/modules/base/base.controller.d.ts +2 -2
  166. package/dist/types/modules/base/base.service.d.ts +1 -1
  167. package/dist/types/modules/email/email.service.d.ts +1 -1
  168. package/dist/types/modules/error-handler/utils/app-error.d.ts +0 -2
  169. package/dist/types/modules/error-handler/utils/error-handler.helpers.d.ts +1 -1
  170. package/dist/types/modules/error-handler/utils/errors.d.ts +176 -0
  171. package/dist/types/modules/error-handler/utils/multer-error-handler.d.ts +7 -0
  172. package/dist/types/modules/file-upload/file-upload.controller.d.ts +7 -2
  173. package/dist/types/types/arkos-config/utils.d.ts +60 -27
  174. package/dist/types/types/arkos-prisma-input.d.ts +4 -3
  175. package/dist/types/types/auth.d.ts +4 -4
  176. package/dist/types/types/new-arkos-config.d.ts +90 -37
  177. package/dist/types/types/router-config.d.ts +48 -0
  178. package/dist/types/utils/arkos-router/index.d.ts +1 -1
  179. package/dist/types/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.d.ts +1 -1
  180. package/dist/types/utils/cli/generate.d.ts +0 -1
  181. package/dist/types/utils/define-config.d.ts +1 -1
  182. package/dist/types/utils/helpers/arkos-config.helpers.d.ts +2 -0
  183. package/dist/types/utils/helpers/prisma.helpers.d.ts +1 -1
  184. package/dist/types/utils/helpers/url-helpers.d.ts +1 -0
  185. package/dist/types/utils/initialize-app.d.ts +1 -0
  186. package/dist/types/utils/prisma/prisma-schema-parser.d.ts +1 -0
  187. package/package.json +55 -55
package/README.md CHANGED
@@ -20,7 +20,7 @@
20
20
  <div align="center">
21
21
 
22
22
  **[Installation](https://www.arkosjs.com/docs/getting-started/installation)** •
23
- **[Documentation](https://arkosjs.com/docs/intro)** •
23
+ **[Documentation](https://arkosjs.com/docs)** •
24
24
  **[Website](https://arkosjs.com)** •
25
25
  **[GitHub](https://github.com/uanela/arkos)** •
26
26
  **[Blog](https://www.arkosjs.com/blog)** •
@@ -205,16 +205,16 @@ export const beforeCreateOne = [
205
205
 
206
206
  ## Documentation
207
207
 
208
- For comprehensive guides, API reference, and examples, visit our [official documentation](https://arkosjs.com/docs/intro).
208
+ For comprehensive guides, API reference, and examples, visit our [official documentation](https://arkosjs.com/docs).
209
209
 
210
210
  **Quick Links:**
211
211
 
212
- - [Getting Started Guide](https://arkosjs.com/docs/intro)
213
- - [Authentication Setup](https://arkosjs.com/docs/core-concepts/authentication-system)
212
+ - [Getting Started Guide](https://arkosjs.com/docs)
213
+ - [Authentication Setup](https://arkosjs.com/docs/core-concepts/authentication/setup)
214
214
  - [Using Interceptors](https://arkosjs.com/docs/core-concepts/interceptors)
215
- - [File Uploads](https://arkosjs.com/docs/core-concepts/file-uploads)
216
- - [Validation](https://arkosjs.com/docs/core-concepts/request-data-validation)
217
- - [Email Service](https://arkosjs.com/docs/core-concepts/sending-emails)
215
+ - [File Uploads](https://arkosjs.com/docs/guides/file-uploads/setup)
216
+ - [Validation](https://arkosjs.com/docs/guides/validation/setup)
217
+ - [Email Service](https://arkosjs.com/docs/guides/email-service)
218
218
 
219
219
  ## Getting Nightly Updates
220
220
 
@@ -234,7 +234,7 @@ Arkos.js is built on top of industry-leading tools:
234
234
 
235
235
  ## Support & Contributing
236
236
 
237
- - **Documentation:** [arkosjs.com/docs](https://arkosjs.com/docs/intro)
237
+ - **Documentation:** [arkosjs.com/docs](https://arkosjs.com/docs)
238
238
  - **Bug Reports:** [GitHub Issues](https://github.com/uanela/arkos/issues)
239
239
  - **Feature Requests:** Open a GitHub issue
240
240
  - **Contact:** [uanelaluiswayne@gmail.com](mailto:uanelaluiswayne@gmail.com)
@@ -250,7 +250,7 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
250
250
  <div align="center">
251
251
 
252
252
  **[Installation](https://www.arkosjs.com/docs/getting-started/installation)** •
253
- **[Documentation](https://arkosjs.com/docs/intro)** •
253
+ **[Documentation](https://arkosjs.com/docs)** •
254
254
  **[Website](https://arkosjs.com)** •
255
255
  **[GitHub](https://github.com/uanela/arkos)** •
256
256
  **[Blog](https://www.arkosjs.com/blog)** •
package/dist/cjs/app.js CHANGED
@@ -1,4 +1,37 @@
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
+ })();
2
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
37
  };
@@ -8,13 +41,14 @@ exports.getAppServer = getAppServer;
8
41
  require("./utils/helpers/arkos-config.helpers.js");
9
42
  const express_1 = __importDefault(require("express"));
10
43
  const setup_app_1 = __importDefault(require("./utils/setup-app.js"));
11
- const initialize_app_1 = __importDefault(require("./utils/initialize-app.js"));
44
+ const initialize_app_1 = __importStar(require("./utils/initialize-app.js"));
12
45
  const server_1 = require("./server.js");
13
46
  const runtime_cli_commander_1 = __importDefault(require("./utils/cli/utils/runtime-cli-commander.js"));
14
47
  const http_1 = require("http");
15
48
  const exit_error_1 = __importDefault(require("./utils/helpers/exit-error.js"));
16
49
  const arkos_loadable_registry_1 = __importDefault(require("./components/arkos-loadable-registry/index.js"));
17
50
  const apply_arkos_router_proxy_1 = require("./utils/arkos-router/utils/helpers/apply-arkos-router-proxy.js");
51
+ const arkos_config_helpers_1 = require("./utils/helpers/arkos-config.helpers.js");
18
52
  let appServer;
19
53
  const docsLink = "https://www.arkosjs.com/docs/core-concepts/routing/setup#setting-up-your-app";
20
54
  let instanciated = false;
@@ -35,7 +69,8 @@ function arkos() {
35
69
  return app;
36
70
  };
37
71
  function loadApp() {
38
- const _app = (0, initialize_app_1.default)(app);
72
+ let _app = (0, initialize_app_1.default)(app);
73
+ _app = (0, initialize_app_1.addGlobalErrorHandler)(_app);
39
74
  if (process.env.CLI_COMMAND)
40
75
  runtime_cli_commander_1.default.handle();
41
76
  return _app;
@@ -64,6 +99,7 @@ function arkos() {
64
99
  state = "listening";
65
100
  loadApp();
66
101
  }
102
+ (0, arkos_config_helpers_1.validateArkosConfig)();
67
103
  const port = Number(process.env.__PORT || process.env.PORT || "8000");
68
104
  const host = process.env.__HOST || process.env.HOST || "0.0.0.0";
69
105
  if (args?.length === 0 || typeof args[0] === "function")
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/app.ts"],"names":[],"mappings":"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","sourcesContent":["import \"./utils/helpers/arkos-config.helpers\";\nimport express, { Express } from \"express\";\nimport setupApp from \"./utils/setup-app\";\nimport { Arkos, ArkosLoadable } from \"./types/arkos\";\nimport initializeApp from \"./utils/initialize-app\";\nimport { logAppStartup } from \"./server\";\nimport runtimeCliCommander from \"./utils/cli/utils/runtime-cli-commander\";\nimport { IncomingMessage, Server, ServerResponse } from \"http\";\nimport ExitError from \"./utils/helpers/exit-error\";\nimport loadableRegistry from \"./components/arkos-loadable-registry\";\nimport { applyArkosRouterProxy } from \"./utils/arkos-router/utils/helpers/apply-arkos-router-proxy\";\n\nlet appServer: Server<typeof IncomingMessage, typeof ServerResponse>;\nconst docsLink =\n \"https://www.arkosjs.com/docs/core-concepts/routing/setup#setting-up-your-app\";\nlet instanciated = false;\n\n/**\n * Creates and configures an Arkos application instance.\n *\n * Arkos extends Express with a small set of methods for registering routers,\n * loading route/service hooks, and booting the application. All Arkos-specific\n * setup (`app.build()`) must happen before the app starts\n * accepting requests.\n *\n * @example\n * ```ts\n * // Simple setup\n * import arkos from \"arkos\";\n *\n * const app = arkos();\n *\n * app.use(reportsRouter);\n *\n * app.listen();\n * ```\n *\n * @example\n * ```ts\n * // Custom HTTP server (e.g. for WebSockets)\n * import arkos from \"arkos\";\n * import http from \"http\";\n *\n * const app = arkos();\n *\n * app.use(reportsRouter);\n *\n * async function start() {\n * await app.build();\n *\n * const server = http.createServer(app);\n * app.listen(server)\n * }\n * main()\n * ```\n *\n * @see {@link https://www.arkosjs.com/docs/core-concepts/routing/setup}\n */\nexport function arkos(): Arkos {\n if (instanciated)\n throw ExitError(`arkos() must be called only once, see ${docsLink}`);\n\n const app = applyArkosRouterProxy(express(), {}, \"app\") as any as Arkos;\n setupApp(app);\n instanciated = true;\n\n type AppState = \"idle\" | \"building\" | \"built\" | \"listening\";\n let state: AppState = \"idle\";\n\n app.load = (...items: ArkosLoadable[]) => {\n if (state !== \"idle\")\n throw ExitError(\n `app.load() must be called before app.${state === \"listening\" ? \"listen\" : \"build\"}(), see ${docsLink}`\n );\n\n if (Array.isArray(items[0])) items = items[0];\n items = Array.isArray(items) ? items : [items];\n\n items.forEach((item) => loadableRegistry.register(item));\n return app;\n };\n\n function loadApp() {\n const _app = initializeApp(app);\n if (process.env.CLI_COMMAND) runtimeCliCommander.handle();\n return _app;\n }\n\n app.build = function () {\n if (state === \"built\" || state === \"building\")\n throw ExitError(`app.build() must only be called once, see ${docsLink}`);\n if (state === \"listening\")\n throw ExitError(\n `app.build() must be called before app.listen(), see ${docsLink}`\n );\n\n state = \"building\";\n const _app = loadApp();\n state = \"built\";\n return _app;\n };\n\n const originalListen = app.listen.bind(app) as any as Express[\"listen\"];\n type UserCallback = (err?: Error) => void;\n\n const defaultCb = (\n port: number | string,\n host: string,\n cb?: UserCallback\n ) => {\n logAppStartup(port, host);\n return cb || function () {};\n };\n\n app.listen = async function (...args): Promise<Server> {\n if (state === \"listening\")\n throw ExitError(`app.listen() must only be called once, see ${docsLink}`);\n if (state === \"building\")\n throw ExitError(\n `app.build() must be awaited before calling app.listen(), see ${docsLink}`\n );\n\n if (state === \"idle\") {\n state = \"listening\";\n loadApp();\n }\n\n const port = Number(process.env.__PORT || process.env.PORT || \"8000\");\n const host = process.env.__HOST! || process.env.HOST || \"0.0.0.0\";\n\n if ((args as any)?.length === 0 || typeof args[0] === \"function\")\n appServer = originalListen(\n port,\n host,\n defaultCb(port, host, args[0] as UserCallback)\n );\n else if (args[0] instanceof Server || typeof args[0] === \"object\")\n appServer = args[0].listen(\n port,\n host,\n defaultCb(port, host, args[1] as UserCallback)\n );\n\n return appServer;\n };\n\n return app;\n}\n\nexport function getAppServer() {\n return appServer;\n}\n"]}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/app.ts"],"names":[],"mappings":"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","sourcesContent":["import \"./utils/helpers/arkos-config.helpers\";\nimport express, { Express } from \"express\";\nimport setupApp from \"./utils/setup-app\";\nimport { Arkos, ArkosLoadable } from \"./types/arkos\";\nimport initializeApp, { addGlobalErrorHandler } from \"./utils/initialize-app\";\nimport { logAppStartup } from \"./server\";\nimport runtimeCliCommander from \"./utils/cli/utils/runtime-cli-commander\";\nimport { IncomingMessage, Server, ServerResponse } from \"http\";\nimport ExitError from \"./utils/helpers/exit-error\";\nimport loadableRegistry from \"./components/arkos-loadable-registry\";\nimport { applyArkosRouterProxy } from \"./utils/arkos-router/utils/helpers/apply-arkos-router-proxy\";\nimport { validateArkosConfig } from \"./utils/helpers/arkos-config.helpers\";\n\nlet appServer: Server<typeof IncomingMessage, typeof ServerResponse>;\nconst docsLink =\n \"https://www.arkosjs.com/docs/core-concepts/routing/setup#setting-up-your-app\";\nlet instanciated = false;\n\n/**\n * Creates and configures an Arkos application instance.\n *\n * Arkos extends Express with a small set of methods for registering routers,\n * loading route/service hooks, and booting the application. All Arkos-specific\n * setup (`app.build()`) must happen before the app starts\n * accepting requests.\n *\n * @example\n * ```ts\n * // Simple setup\n * import arkos from \"arkos\";\n *\n * const app = arkos();\n *\n * app.use(reportsRouter);\n *\n * app.listen();\n * ```\n *\n * @example\n * ```ts\n * // Custom HTTP server (e.g. for WebSockets)\n * import arkos from \"arkos\";\n * import http from \"http\";\n *\n * const app = arkos();\n *\n * app.use(reportsRouter);\n *\n * async function start() {\n * await app.build();\n *\n * const server = http.createServer(app);\n * app.listen(server)\n * }\n * main()\n * ```\n *\n * @see {@link https://www.arkosjs.com/docs/core-concepts/routing/setup}\n */\nexport function arkos(): Arkos {\n if (instanciated)\n throw ExitError(`arkos() must be called only once, see ${docsLink}`);\n\n const app = applyArkosRouterProxy(express(), {}, \"app\") as any as Arkos;\n setupApp(app);\n instanciated = true;\n\n type AppState = \"idle\" | \"building\" | \"built\" | \"listening\";\n let state: AppState = \"idle\";\n\n app.load = (...items: ArkosLoadable[]) => {\n if (state !== \"idle\")\n throw ExitError(\n `app.load() must be called before app.${state === \"listening\" ? \"listen\" : \"build\"}(), see ${docsLink}`\n );\n\n if (Array.isArray(items[0])) items = items[0];\n items = Array.isArray(items) ? items : [items];\n\n items.forEach((item) => loadableRegistry.register(item));\n return app;\n };\n\n function loadApp() {\n let _app = initializeApp(app);\n _app = addGlobalErrorHandler(_app);\n if (process.env.CLI_COMMAND) runtimeCliCommander.handle();\n return _app;\n }\n\n app.build = function () {\n if (state === \"built\" || state === \"building\")\n throw ExitError(`app.build() must only be called once, see ${docsLink}`);\n if (state === \"listening\")\n throw ExitError(\n `app.build() must be called before app.listen(), see ${docsLink}`\n );\n\n state = \"building\";\n const _app = loadApp();\n state = \"built\";\n return _app;\n };\n\n const originalListen = app.listen.bind(app) as any as Express[\"listen\"];\n type UserCallback = (err?: Error) => void;\n\n const defaultCb = (\n port: number | string,\n host: string,\n cb?: UserCallback\n ) => {\n logAppStartup(port, host);\n return cb || function () {};\n };\n\n app.listen = async function (...args): Promise<Server> {\n if (state === \"listening\")\n throw ExitError(`app.listen() must only be called once, see ${docsLink}`);\n if (state === \"building\")\n throw ExitError(\n `app.build() must be awaited before calling app.listen(), see ${docsLink}`\n );\n\n if (state === \"idle\") {\n state = \"listening\";\n loadApp();\n }\n\n validateArkosConfig();\n\n const port = Number(process.env.__PORT || process.env.PORT || \"8000\");\n const host = process.env.__HOST! || process.env.HOST || \"0.0.0.0\";\n\n if ((args as any)?.length === 0 || typeof args[0] === \"function\")\n appServer = originalListen(\n port,\n host,\n defaultCb(port, host, args[0] as UserCallback)\n );\n else if (args[0] instanceof Server || typeof args[0] === \"object\")\n appServer = args[0].listen(\n port,\n host,\n defaultCb(port, host, args[1] as UserCallback)\n );\n\n return appServer;\n };\n\n return app;\n}\n\nexport function getAppServer() {\n return appServer;\n}\n"]}
@@ -1,4 +1,18 @@
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 __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
+ };
2
16
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
17
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
18
  };
@@ -8,4 +22,5 @@ const catch_async_1 = __importDefault(require("../../modules/error-handler/utils
8
22
  exports.catchAsync = catch_async_1.default;
9
23
  const app_error_1 = __importDefault(require("../../modules/error-handler/utils/app-error.js"));
10
24
  exports.AppError = app_error_1.default;
25
+ __exportStar(require("../../modules/error-handler/utils/errors.js"), exports);
11
26
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/exports/error-handler/index.ts"],"names":[],"mappings":";;;;;;AAAA,gGAAuE;AAG9D,qBAHF,qBAAU,CAGE;AAFnB,4FAAmE;AAE9C,mBAFd,mBAAQ,CAEc","sourcesContent":["import catchAsync from \"../../modules/error-handler/utils/catch-async\";\nimport AppError from \"../../modules/error-handler/utils/app-error\";\n\nexport { catchAsync, AppError };\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/exports/error-handler/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,gGAAuE;AAI9D,qBAJF,qBAAU,CAIE;AAHnB,4FAAmE;AAG9C,mBAHd,mBAAQ,CAGc;AAD7B,2EAAyD","sourcesContent":["import catchAsync from \"../../modules/error-handler/utils/catch-async\";\nimport AppError from \"../../modules/error-handler/utils/app-error\";\n\nexport * from \"../../modules/error-handler/utils/errors\";\nexport { catchAsync, AppError };\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/exports/index.ts"],"names":[],"mappings":";;;;;;AACA,uEAAmE;AA4BjE,+FA5BO,gCAAc,OA4BP;AA3BhB,sCAA2C;AA+BzC,+FA/BO,uBAAc,OA+BP;AA9BhB,yEAAgD;AAiC9C,sBAjCK,sBAAW,CAiCL;AAvBb,4DAAmE;AAmBjE,yGAnBO,yCAAwB,OAmBP;AAlB1B,gCAA+B;AAC/B,qEAAgE;AAmB9D,+FAnBO,iCAAc,OAmBP;AAlBhB,yEAAoE;AAmBlE,iGAnBO,qCAAgB,OAmBP;AAjBlB,6DAAyD;AAqBvD,4FArBO,0BAAW,OAqBP;AAIb,kBAAe,WAAK,CAAC","sourcesContent":["import { RouterConfig } from \"../types/router-config\";\nimport { BaseController } from \"./../modules/base/base.controller\";\nimport { getArkosConfig } from \"../server\";\nimport ArkosRouter from \"../utils/arkos-router\";\nimport { IArkosRouter } from \"../utils/arkos-router/types\";\nimport { ArkosRouteConfig } from \"../utils/arkos-router/types\";\nimport {\n ArkosRequest,\n ArkosResponse,\n ArkosNextFunction,\n ArkosRequestHandler,\n} from \"../types\";\nimport { ArkosConfig } from \"../types/new-arkos-config\";\nimport { loadEnvironmentVariables } from \"../utils/dotenv.helpers\";\nimport { arkos } from \"../app\";\nimport { ArkosRouteHook } from \"../components/arkos-route-hook\";\nimport { ArkosServiceHook } from \"../components/arkos-service-hook\";\nimport { ArkosRouteHookInstance } from \"../components/arkos-route-hook/types\";\nimport { ArkosPolicy } from \"../components/arkos-policy\";\nimport { IArkosPolicy } from \"../components/arkos-policy/types\";\nimport type { ArkosLoadable } from \"../types/arkos\";\n\nexport {\n ArkosLoadable,\n ArkosRequest,\n ArkosResponse,\n ArkosNextFunction,\n ArkosRequestHandler,\n IArkosRouter,\n BaseController,\n ArkosConfig,\n RouterConfig,\n loadEnvironmentVariables,\n getArkosConfig,\n ArkosRouteHook,\n ArkosServiceHook,\n ArkosRouter,\n ArkosRouteConfig,\n ArkosRouteHookInstance,\n ArkosPolicy,\n IArkosPolicy,\n};\n\nexport default arkos;\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/exports/index.ts"],"names":[],"mappings":";;;;;;AACA,uEAAmE;AA4BjE,+FA5BO,gCAAc,OA4BP;AA3BhB,sCAA2C;AAgCzC,+FAhCO,uBAAc,OAgCP;AA/BhB,yEAAgD;AAkC9C,sBAlCK,sBAAW,CAkCL;AAxBb,4DAAmE;AAoBjE,yGApBO,yCAAwB,OAoBP;AAnB1B,gCAA+B;AAC/B,qEAAgE;AAoB9D,+FApBO,iCAAc,OAoBP;AAnBhB,yEAAoE;AAoBlE,iGApBO,qCAAgB,OAoBP;AAlBlB,6DAAyD;AAsBvD,4FAtBO,0BAAW,OAsBP;AAIb,kBAAe,WAAK,CAAC","sourcesContent":["import { RouterConfig, RouteHook } from \"../types/router-config\";\nimport { BaseController } from \"./../modules/base/base.controller\";\nimport { getArkosConfig } from \"../server\";\nimport ArkosRouter from \"../utils/arkos-router\";\nimport { IArkosRouter } from \"../utils/arkos-router/types\";\nimport { ArkosRouteConfig } from \"../utils/arkos-router/types\";\nimport {\n ArkosRequest,\n ArkosResponse,\n ArkosNextFunction,\n ArkosRequestHandler,\n} from \"../types\";\nimport { ArkosConfig } from \"../types/new-arkos-config\";\nimport { loadEnvironmentVariables } from \"../utils/dotenv.helpers\";\nimport { arkos } from \"../app\";\nimport { ArkosRouteHook } from \"../components/arkos-route-hook\";\nimport { ArkosServiceHook } from \"../components/arkos-service-hook\";\nimport { ArkosRouteHookInstance } from \"../components/arkos-route-hook/types\";\nimport { ArkosPolicy } from \"../components/arkos-policy\";\nimport { IArkosPolicy } from \"../components/arkos-policy/types\";\nimport type { ArkosLoadable } from \"../types/arkos\";\n\nexport {\n ArkosLoadable,\n ArkosRequest,\n ArkosResponse,\n ArkosNextFunction,\n ArkosRequestHandler,\n IArkosRouter,\n BaseController,\n ArkosConfig,\n RouterConfig,\n RouteHook,\n loadEnvironmentVariables,\n getArkosConfig,\n ArkosRouteHook,\n ArkosServiceHook,\n ArkosRouter,\n ArkosRouteConfig,\n ArkosRouteHookInstance,\n ArkosPolicy,\n IArkosPolicy,\n};\n\nexport default arkos;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"auth.router.js","sourceRoot":"","sources":["../../../../src/modules/auth/auth.router.ts"],"names":[],"mappings":"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","sourcesContent":["import { Options as RateLimitOptions } from \"express-rate-limit\";\nimport {\n addPrismaQueryOptionsToRequest,\n sendResponse,\n} from \"../base/base.middlewares\";\nimport { AuthPrismaQueryOptions } from \"../../types\";\nimport { processMiddleware } from \"../../utils/helpers/routers.helpers\";\nimport ArkosRouter from \"../../utils/arkos-router\";\nimport loadableRegistry from \"../../components/arkos-loadable-registry\";\nimport { routeHookReader } from \"../../components/arkos-route-hook/reader\";\nimport { ArkosAuthRouteHookInstance } from \"../../components/arkos-route-hook/types\";\nimport authController from \"./auth.controller\";\nimport authOpenAPIGenerator from \"./utils/auth-openapi-generator\";\n\nexport function getAuthRouter() {\n const router = ArkosRouter();\n const routeHook = loadableRegistry.getItem(\"ArkosRouteHook\", \"auth\");\n\n const op = (\n operation: keyof Omit<ArkosAuthRouteHookInstance, \"__type\" | \"moduleName\">\n ) => {\n const components = routeHook\n ? routeHookReader.forOperation(\"auth\", operation)\n : {\n before: [],\n after: [],\n onError: [],\n prismaArgs: {},\n routeConfig: {},\n };\n\n let endpointConfig = components.routeConfig || {};\n\n if (endpointConfig?.experimental?.openapi !== false)\n endpointConfig = {\n ...(endpointConfig || {}),\n experimental: {\n ...(endpointConfig?.experimental || {}),\n openapi: authOpenAPIGenerator.getOpenApiConfig(\n endpointConfig,\n operation\n ),\n },\n };\n\n components.routeConfig = endpointConfig;\n return components;\n };\n\n // GET /users/me - Get current user\n {\n const { before, after, onError, prismaArgs, routeConfig } = op(\"getMe\");\n\n router.get(\n {\n ...routeConfig,\n path: \"/users/me\",\n },\n addPrismaQueryOptionsToRequest<any>(\n { getMe: prismaArgs } as AuthPrismaQueryOptions<any>,\n \"getMe\"\n ),\n ...processMiddleware(before),\n authController.getMe,\n ...processMiddleware(after),\n sendResponse,\n ...processMiddleware(onError, { type: \"error\" })\n );\n }\n\n // PATCH /users/me - Update current user\n {\n const { before, after, onError, prismaArgs, routeConfig } = op(\"updateMe\");\n\n router.patch(\n {\n ...routeConfig,\n path: \"/users/me\",\n },\n addPrismaQueryOptionsToRequest<any>(\n { updateMe: prismaArgs } as AuthPrismaQueryOptions<any>,\n \"updateMe\"\n ),\n ...processMiddleware(before),\n authController.updateMe,\n ...processMiddleware(after),\n sendResponse,\n ...processMiddleware(onError, { type: \"error\" })\n );\n }\n\n // DELETE /users/me - Delete current user\n {\n const { before, after, onError, prismaArgs, routeConfig } = op(\"deleteMe\");\n\n router.delete(\n {\n ...routeConfig,\n path: \"/users/me\",\n },\n addPrismaQueryOptionsToRequest<any>(\n { deleteMe: prismaArgs } as AuthPrismaQueryOptions<any>,\n \"deleteMe\"\n ),\n ...processMiddleware(before),\n authController.deleteMe,\n ...processMiddleware(after),\n sendResponse,\n ...processMiddleware(onError, { type: \"error\" })\n );\n }\n\n const rateLimitConfig: Partial<RateLimitOptions> = {\n windowMs: 5000,\n limit: 10,\n standardHeaders: \"draft-7\",\n legacyHeaders: false,\n handler: (_, res) => {\n res.status(429).json({\n message: \"Too many requests, please try again later\",\n });\n },\n };\n\n // POST /auth/login - Login\n {\n const { before, after, onError, prismaArgs, routeConfig } = op(\"login\");\n\n router.post(\n {\n authentication: false,\n rateLimit: rateLimitConfig,\n ...routeConfig,\n path: \"/auth/login\",\n },\n addPrismaQueryOptionsToRequest<any>(\n { login: prismaArgs } as AuthPrismaQueryOptions<any>,\n \"login\"\n ),\n ...processMiddleware(before),\n authController.login,\n ...processMiddleware(after),\n sendResponse,\n ...processMiddleware(onError, { type: \"error\" })\n );\n }\n\n // DELETE /auth/logout - Logout\n {\n const { before, after, onError, routeConfig } = op(\"logout\");\n\n router.delete(\n {\n rateLimit: rateLimitConfig,\n ...routeConfig,\n path: \"/auth/logout\",\n },\n ...processMiddleware(before),\n authController.logout,\n ...processMiddleware(after),\n sendResponse,\n ...processMiddleware(onError, { type: \"error\" })\n );\n }\n\n // POST /auth/signup - Signup\n {\n const { before, after, onError, prismaArgs, routeConfig } = op(\"signup\");\n\n router.post(\n {\n authentication: false,\n rateLimit: rateLimitConfig,\n ...routeConfig,\n path: \"/auth/signup\",\n },\n addPrismaQueryOptionsToRequest<any>(\n { signup: prismaArgs } as AuthPrismaQueryOptions<any>,\n \"signup\"\n ),\n ...processMiddleware(before),\n authController.signup,\n ...processMiddleware(after),\n sendResponse,\n ...processMiddleware(onError, { type: \"error\" })\n );\n }\n\n // POST /auth/update-password - Update password\n {\n const { before, after, onError, prismaArgs, routeConfig } =\n op(\"updatePassword\");\n\n router.post(\n {\n rateLimit: rateLimitConfig,\n ...routeConfig,\n path: \"/auth/update-password\",\n },\n addPrismaQueryOptionsToRequest<any>(\n { updatePassword: prismaArgs } as AuthPrismaQueryOptions<any>,\n \"updatePassword\"\n ),\n ...processMiddleware(before),\n authController.updatePassword,\n ...processMiddleware(after),\n sendResponse,\n ...processMiddleware(onError, {\n type: \"error\",\n })\n );\n }\n\n // GET /auth-actions - Find many auth actions\n {\n const { before, after, onError, routeConfig } = op(\"findManyAuthAction\");\n\n router.get(\n {\n ...routeConfig,\n path: \"/auth-actions\",\n },\n ...processMiddleware(before),\n authController.findManyAuthAction,\n ...processMiddleware(after),\n sendResponse,\n ...processMiddleware(onError, {\n type: \"error\",\n })\n );\n }\n\n // GET /auth-actions/:resourceName - Find one auth action\n {\n const { before, after, onError, routeConfig } = op(\"findOneAuthAction\");\n\n router.get(\n {\n ...routeConfig,\n path: \"/auth-actions/:resourceName\",\n },\n ...processMiddleware(before),\n authController.findOneAuthAction,\n ...processMiddleware(after),\n sendResponse,\n ...processMiddleware(onError, {\n type: \"error\",\n })\n );\n }\n\n return router;\n}\n"]}
1
+ {"version":3,"file":"auth.router.js","sourceRoot":"","sources":["../../../../src/modules/auth/auth.router.ts"],"names":[],"mappings":"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","sourcesContent":["import { Options as RateLimitOptions } from \"express-rate-limit\";\nimport {\n addPrismaQueryOptionsToRequest,\n sendResponse,\n} from \"../base/base.middlewares\";\nimport { AuthPrismaQueryOptions } from \"../../types\";\nimport { processMiddleware } from \"../../utils/helpers/routers.helpers\";\nimport ArkosRouter from \"../../utils/arkos-router\";\nimport loadableRegistry from \"../../components/arkos-loadable-registry\";\nimport { routeHookReader } from \"../../components/arkos-route-hook/reader\";\nimport { ArkosAuthRouteHookInstance } from \"../../components/arkos-route-hook/types\";\nimport authController from \"./auth.controller\";\nimport authOpenAPIGenerator from \"./utils/auth-openapi-generator\";\n\nexport function getAuthRouter() {\n const router = ArkosRouter();\n const routeHook = loadableRegistry.getItem(\"ArkosRouteHook\", \"auth\");\n\n const op = (\n operation: keyof Omit<ArkosAuthRouteHookInstance, \"__type\" | \"moduleName\">\n ) => {\n const components = routeHook\n ? routeHookReader.forOperation(\"auth\", operation)\n : {\n before: [],\n after: [],\n onError: [],\n prismaArgs: {},\n routeConfig: {},\n };\n\n let endpointConfig = components.routeConfig || {};\n\n if (endpointConfig?.experimental?.openapi !== false)\n endpointConfig = {\n ...(endpointConfig || {}),\n experimental: {\n ...(endpointConfig?.experimental || {}),\n openapi: authOpenAPIGenerator.getOpenApiConfig(\n endpointConfig,\n operation\n ),\n },\n };\n\n components.routeConfig = endpointConfig;\n return components;\n };\n\n // GET /users/me - Get current user\n {\n const { before, after, onError, prismaArgs, routeConfig } = op(\"getMe\");\n\n router.get(\n {\n ...routeConfig,\n path: \"/users/me\",\n },\n addPrismaQueryOptionsToRequest<any>(\n { getMe: prismaArgs } as AuthPrismaQueryOptions<any>,\n \"getMe\"\n ),\n ...processMiddleware(before),\n authController.getMe,\n ...processMiddleware(after),\n sendResponse,\n ...processMiddleware(onError, { type: \"error\" })\n );\n }\n\n // PATCH /users/me - Update current user\n {\n const { before, after, onError, prismaArgs, routeConfig } = op(\"updateMe\");\n\n router.patch(\n {\n ...routeConfig,\n path: \"/users/me\",\n },\n addPrismaQueryOptionsToRequest<any>(\n { updateMe: prismaArgs } as AuthPrismaQueryOptions<any>,\n \"updateMe\"\n ),\n ...processMiddleware(before),\n authController.updateMe,\n ...processMiddleware(after),\n sendResponse,\n ...processMiddleware(onError, { type: \"error\" })\n );\n }\n\n // DELETE /users/me - Delete current user\n {\n const { before, after, onError, prismaArgs, routeConfig } = op(\"deleteMe\");\n\n router.delete(\n {\n ...routeConfig,\n path: \"/users/me\",\n },\n addPrismaQueryOptionsToRequest<any>(\n { deleteMe: prismaArgs } as AuthPrismaQueryOptions<any>,\n \"deleteMe\"\n ),\n ...processMiddleware(before),\n authController.deleteMe,\n ...processMiddleware(after),\n sendResponse,\n ...processMiddleware(onError, { type: \"error\" })\n );\n }\n\n const rateLimitConfig: Partial<RateLimitOptions> = {\n windowMs: 5000,\n limit: 10,\n standardHeaders: \"draft-7\",\n legacyHeaders: false,\n handler: (_, res) => {\n res.status(429).json({\n message: \"Too many requests, please try again later\",\n });\n },\n };\n // POST /auth/login - Login\n {\n const { before, after, onError, prismaArgs, routeConfig } = op(\"login\");\n\n router.post(\n {\n authentication: false,\n rateLimit: rateLimitConfig,\n ...routeConfig,\n path: \"/auth/login\",\n },\n addPrismaQueryOptionsToRequest<any>(\n { login: prismaArgs } as AuthPrismaQueryOptions<any>,\n \"login\"\n ),\n ...processMiddleware(before),\n authController.login,\n ...processMiddleware(after),\n sendResponse,\n ...processMiddleware(onError, { type: \"error\" })\n );\n }\n\n // DELETE /auth/logout - Logout\n {\n const { before, after, onError, routeConfig } = op(\"logout\");\n\n router.delete(\n {\n rateLimit: rateLimitConfig,\n ...routeConfig,\n path: \"/auth/logout\",\n },\n ...processMiddleware(before),\n authController.logout,\n ...processMiddleware(after),\n sendResponse,\n ...processMiddleware(onError, { type: \"error\" })\n );\n }\n\n // POST /auth/signup - Signup\n {\n const { before, after, onError, prismaArgs, routeConfig } = op(\"signup\");\n\n router.post(\n {\n authentication: false,\n rateLimit: rateLimitConfig,\n ...routeConfig,\n path: \"/auth/signup\",\n },\n addPrismaQueryOptionsToRequest<any>(\n { signup: prismaArgs } as AuthPrismaQueryOptions<any>,\n \"signup\"\n ),\n ...processMiddleware(before),\n authController.signup,\n ...processMiddleware(after),\n sendResponse,\n ...processMiddleware(onError, { type: \"error\" })\n );\n }\n\n // POST /auth/update-password - Update password\n {\n const { before, after, onError, prismaArgs, routeConfig } =\n op(\"updatePassword\");\n\n router.post(\n {\n rateLimit: rateLimitConfig,\n ...routeConfig,\n path: \"/auth/update-password\",\n },\n addPrismaQueryOptionsToRequest<any>(\n { updatePassword: prismaArgs } as AuthPrismaQueryOptions<any>,\n \"updatePassword\"\n ),\n ...processMiddleware(before),\n authController.updatePassword,\n ...processMiddleware(after),\n sendResponse,\n ...processMiddleware(onError, {\n type: \"error\",\n })\n );\n }\n\n // GET /auth-actions - Find many auth actions\n {\n const { before, after, onError, routeConfig } = op(\"findManyAuthAction\");\n\n router.get(\n {\n ...routeConfig,\n path: \"/auth-actions\",\n },\n ...processMiddleware(before),\n authController.findManyAuthAction,\n ...processMiddleware(after),\n sendResponse,\n ...processMiddleware(onError, {\n type: \"error\",\n })\n );\n }\n\n // GET /auth-actions/:resourceName - Find one auth action\n {\n const { before, after, onError, routeConfig } = op(\"findOneAuthAction\");\n\n router.get(\n {\n ...routeConfig,\n path: \"/auth-actions/:resourceName\",\n },\n ...processMiddleware(before),\n authController.findOneAuthAction,\n ...processMiddleware(after),\n sendResponse,\n ...processMiddleware(onError, {\n type: \"error\",\n })\n );\n }\n\n return router;\n}\n"]}
@@ -22,8 +22,14 @@ class AuthService {
22
22
  this.authenticate = (0, catch_async_1.default)(async (req, _, next) => {
23
23
  const hooks = (0, server_1.getArkosConfig)()?.authentication?.hooks?.authenticate;
24
24
  const before = await this.runHooks(hooks?.before, req);
25
- if (before.stopped && !before.skipped)
26
- return before.error ? next(before.error) : next();
25
+ if (before.error) {
26
+ const onError = await this.runErrorHooks(hooks?.onError, before.error, req);
27
+ if (onError.skipped) {
28
+ const after = await this.runAfterHooks(hooks?.after, req);
29
+ return after.error ? next(after.error) : next();
30
+ }
31
+ return next(onError.error);
32
+ }
27
33
  if (!before.skipped) {
28
34
  try {
29
35
  if ((0, arkos_config_helpers_1.isAuthenticationEnabled)()) {
@@ -39,90 +45,75 @@ class AuthService {
39
45
  const after = await this.runAfterHooks(hooks?.after, req);
40
46
  return after.error ? next(after.error) : next();
41
47
  }
42
- return next(onError.error ?? err);
48
+ return next(onError.error);
43
49
  }
44
50
  }
45
51
  const after = await this.runAfterHooks(hooks?.after, req);
46
- if (after.stopped)
47
- return after.error ? next(after.error) : next();
52
+ if (after.error)
53
+ return next(after.error);
48
54
  next();
49
55
  });
50
56
  }
51
- async runHooks(hooks, req) {
57
+ async runHooks(hooks, req, ctx) {
52
58
  if (!hooks)
53
- return { stopped: false, skipped: false };
59
+ return { skipped: false };
54
60
  const hookArray = Array.isArray(hooks) ? hooks : [hooks];
55
61
  for (const hook of hookArray) {
56
- let nextCalled = false;
57
62
  let skipCalled = false;
58
- let hookErr;
59
- await hook({
60
- req,
61
- next: (err) => {
62
- nextCalled = true;
63
- hookErr = err;
64
- },
65
- skip: () => {
66
- skipCalled = true;
67
- },
68
- });
69
- if (hookErr)
70
- return { stopped: true, skipped: false, error: hookErr };
63
+ try {
64
+ await hook({
65
+ req,
66
+ skip: () => {
67
+ skipCalled = true;
68
+ },
69
+ ...ctx,
70
+ });
71
+ }
72
+ catch (err) {
73
+ return { skipped: false, error: err };
74
+ }
71
75
  if (skipCalled)
72
- return { stopped: true, skipped: true };
73
- if (nextCalled)
74
- return { stopped: true, skipped: false };
76
+ return { skipped: true };
75
77
  }
76
- return { stopped: false, skipped: false };
78
+ return { skipped: false };
77
79
  }
78
- async runAfterHooks(hooks, req) {
80
+ async runAfterHooks(hooks, req, ctx) {
79
81
  if (!hooks)
80
- return { stopped: false };
82
+ return {};
81
83
  const hookArray = Array.isArray(hooks) ? hooks : [hooks];
82
84
  for (const hook of hookArray) {
83
- let nextCalled = false;
84
- let hookErr;
85
- await hook({
86
- req,
87
- next: (err) => {
88
- nextCalled = true;
89
- hookErr = err;
90
- },
91
- });
92
- if (hookErr)
93
- return { stopped: true, error: hookErr };
94
- if (nextCalled)
95
- return { stopped: true };
85
+ try {
86
+ await hook({ req, ...ctx });
87
+ }
88
+ catch (err) {
89
+ return { error: err };
90
+ }
96
91
  }
97
- return { stopped: false };
92
+ return {};
98
93
  }
99
- async runErrorHooks(hooks, error, req) {
94
+ async runErrorHooks(hooks, error, req, ctx) {
100
95
  if (!hooks)
101
- return { stopped: false, skipped: false };
96
+ return { skipped: false, error };
102
97
  const hookArray = Array.isArray(hooks) ? hooks : [hooks];
103
98
  for (const hook of hookArray) {
104
- let nextCalled = false;
105
99
  let skipCalled = false;
106
- let hookErr;
107
- await hook({
108
- req,
109
- error,
110
- next: (err) => {
111
- nextCalled = true;
112
- hookErr = err;
113
- },
114
- skip: () => {
115
- skipCalled = true;
116
- },
117
- });
118
- if (hookErr)
119
- return { stopped: true, skipped: false, error: hookErr };
100
+ try {
101
+ await hook({
102
+ req,
103
+ error,
104
+ skip: () => {
105
+ skipCalled = true;
106
+ },
107
+ ...ctx,
108
+ });
109
+ }
110
+ catch (err) {
111
+ return { skipped: false, error: err };
112
+ }
120
113
  if (skipCalled)
121
- return { stopped: true, skipped: true };
122
- if (nextCalled)
123
- return { stopped: true, skipped: false };
114
+ return { skipped: true };
124
115
  }
125
- return { stopped: false, skipped: false };
116
+ return { skipped: false, error };
126
117
  }
127
118
  signJwtToken(id, expiresIn, secret) {
128
119
  const { authentication: configs } = (0, server_1.getArkosConfig)();
@@ -333,9 +324,23 @@ class AuthService {
333
324
  auth_action_service_1.default.add(action, resource, { [action]: rule });
334
325
  return (0, catch_async_1.default)(async (req, _, next) => {
335
326
  const hooks = (0, server_1.getArkosConfig)()?.authentication?.hooks?.authorize;
336
- const before = await this.runHooks(hooks?.before, req);
337
- if (before.stopped && !before.skipped)
338
- return before.error ? next(before.error) : next();
327
+ const before = await this.runHooks(hooks?.before, req, {
328
+ action,
329
+ resource,
330
+ rule,
331
+ });
332
+ if (before.error) {
333
+ const onError = await this.runErrorHooks(hooks?.onError, before.error, req, { action, resource, rule });
334
+ if (onError.skipped) {
335
+ const after = await this.runAfterHooks(hooks?.after, req, {
336
+ action,
337
+ resource,
338
+ rule,
339
+ });
340
+ return after.error ? next(after.error) : next();
341
+ }
342
+ return next(onError.error);
343
+ }
339
344
  if (!before.skipped) {
340
345
  try {
341
346
  if (req.user) {
@@ -357,17 +362,29 @@ class AuthService {
357
362
  }
358
363
  }
359
364
  catch (err) {
360
- const onError = await this.runErrorHooks(hooks?.onError, err, req);
365
+ const onError = await this.runErrorHooks(hooks?.onError, err, req, {
366
+ action,
367
+ resource,
368
+ rule,
369
+ });
361
370
  if (onError.skipped) {
362
- const after = await this.runAfterHooks(hooks?.after, req);
371
+ const after = await this.runAfterHooks(hooks?.after, req, {
372
+ action,
373
+ resource,
374
+ rule,
375
+ });
363
376
  return after.error ? next(after.error) : next();
364
377
  }
365
- return next(onError.error ?? err);
378
+ return next(onError.error);
366
379
  }
367
380
  }
368
- const after = await this.runAfterHooks(hooks?.after, req);
369
- if (after.stopped)
370
- return after.error ? next(after.error) : next();
381
+ const after = await this.runAfterHooks(hooks?.after, req, {
382
+ action,
383
+ resource,
384
+ rule,
385
+ });
386
+ if (after.error)
387
+ return next(after.error);
371
388
  next();
372
389
  });
373
390
  }