arkos 1.4.9-beta → 1.4.10-beta

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 (193) hide show
  1. package/dist/cjs/app.js +14 -14
  2. package/dist/cjs/components/arkos-policy/index.js +38 -0
  3. package/dist/cjs/components/arkos-policy/index.js.map +1 -0
  4. package/dist/cjs/{types/arkos-prisma-input.bak.js → components/arkos-policy/types.js} +1 -1
  5. package/dist/cjs/components/arkos-policy/types.js.map +1 -0
  6. package/dist/cjs/exports/auth/index.js +1 -1
  7. package/dist/cjs/exports/config.js +6 -0
  8. package/dist/cjs/exports/config.js.map +1 -0
  9. package/dist/cjs/exports/controllers/index.js +2 -2
  10. package/dist/cjs/exports/error-handler/index.js +2 -2
  11. package/dist/cjs/exports/index.js +4 -4
  12. package/dist/cjs/exports/middlewares/index.js +1 -1
  13. package/dist/cjs/exports/prisma/index.js +1 -1
  14. package/dist/cjs/exports/services/index.js +5 -5
  15. package/dist/cjs/exports/utils/index.js +2 -2
  16. package/dist/cjs/exports/validation/index.js +2 -2
  17. package/dist/cjs/modules/auth/auth.controller.js +7 -7
  18. package/dist/cjs/modules/auth/auth.router.js +10 -10
  19. package/dist/cjs/modules/auth/auth.service.js +12 -12
  20. package/dist/cjs/modules/auth/utils/auth-error-objects.js +1 -1
  21. package/dist/cjs/modules/auth/utils/helpers/auth.controller.helpers.js +2 -2
  22. package/dist/cjs/modules/auth/utils/services/auth-action.service.js +3 -3
  23. package/dist/cjs/modules/base/base.controller.js +9 -9
  24. package/dist/cjs/modules/base/base.middlewares.js +9 -9
  25. package/dist/cjs/modules/base/base.router.js +4 -4
  26. package/dist/cjs/modules/base/base.service.js +8 -8
  27. package/dist/cjs/modules/base/utils/error-prettifier.js +1 -1
  28. package/dist/cjs/modules/base/utils/helpers/base.controller.helpers.js +1 -1
  29. package/dist/cjs/modules/base/utils/helpers/base.middlewares.helpers.js +1 -1
  30. package/dist/cjs/modules/base/utils/helpers/base.router.helpers.js +9 -9
  31. package/dist/cjs/modules/base/utils/helpers/base.service.helpers.js +2 -2
  32. package/dist/cjs/modules/debugger/debugger.service.js +4 -4
  33. package/dist/cjs/modules/debugger/utils/loaded-components-logger.js +2 -2
  34. package/dist/cjs/modules/email/email.service.js +2 -2
  35. package/dist/cjs/modules/error-handler/error-handler.controller.js +2 -2
  36. package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js +1 -1
  37. package/dist/cjs/modules/file-upload/file-upload.controller.js +9 -9
  38. package/dist/cjs/modules/file-upload/file-upload.controller.js.map +1 -1
  39. package/dist/cjs/modules/file-upload/file-upload.router.js +22 -22
  40. package/dist/cjs/modules/file-upload/file-upload.router.js.map +1 -1
  41. package/dist/cjs/modules/file-upload/file-upload.service.js +6 -6
  42. package/dist/cjs/modules/file-upload/utils/helpers/file-upload.helpers.js +3 -3
  43. package/dist/cjs/modules/swagger/swagger.router.js +8 -8
  44. package/dist/cjs/modules/swagger/utils/get-open-api-login-html.js +276 -0
  45. package/dist/cjs/modules/swagger/utils/get-open-api-login-html.js.map +1 -0
  46. package/dist/cjs/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js +3 -3
  47. package/dist/cjs/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.js +4 -4
  48. package/dist/cjs/modules/swagger/utils/helpers/get-swagger-default-configs.js +1 -1
  49. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js +4 -4
  50. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +2 -2
  51. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js +3 -3
  52. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js +5 -5
  53. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes-paths.js +3 -3
  54. package/dist/cjs/modules/swagger/utils/helpers/missing-json-schemas-generator.js +2 -2
  55. package/dist/cjs/modules/swagger/utils/helpers/openapi-schema-converter.js +3 -3
  56. package/dist/cjs/modules/swagger/utils/helpers/swagger.router.helpers.js +12 -12
  57. package/dist/cjs/server.js +5 -5
  58. package/dist/cjs/types/arkos-config/utils.js +3 -0
  59. package/dist/cjs/types/arkos-config/utils.js.map +1 -0
  60. package/dist/cjs/types/arkos.js +3 -0
  61. package/dist/cjs/types/arkos.js.map +1 -0
  62. package/dist/cjs/types/index.js.map +1 -1
  63. package/dist/cjs/utils/arkos-router/arkos-router-openapi-manager.js +1 -1
  64. package/dist/cjs/utils/arkos-router/index.js +9 -9
  65. package/dist/cjs/utils/arkos-router/index.js.map +1 -1
  66. package/dist/cjs/utils/arkos-router/route-config-validator.js +2 -2
  67. package/dist/cjs/utils/arkos-router/types/index.js.map +1 -1
  68. package/dist/cjs/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.js +152 -0
  69. package/dist/cjs/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.js.map +1 -0
  70. package/dist/cjs/utils/arkos-router/utils/helpers/index.js +6 -6
  71. package/dist/cjs/utils/arkos-router/utils/helpers/upload-manager.js +8 -8
  72. package/dist/cjs/utils/bundler.js +163 -0
  73. package/dist/cjs/utils/bundler.js.map +1 -0
  74. package/dist/cjs/utils/cli/build.js +21 -33
  75. package/dist/cjs/utils/cli/build.js.map +1 -1
  76. package/dist/cjs/utils/cli/dev.js +6 -5
  77. package/dist/cjs/utils/cli/dev.js.map +1 -1
  78. package/dist/cjs/utils/cli/export-auth-action.js +4 -3
  79. package/dist/cjs/utils/cli/export-auth-action.js.map +1 -1
  80. package/dist/cjs/utils/cli/generate.js +8 -8
  81. package/dist/cjs/utils/cli/index.js +7 -7
  82. package/dist/cjs/utils/cli/prisma-generate.js +3 -3
  83. package/dist/cjs/utils/cli/remove-dir-cli.js +1 -1
  84. package/dist/cjs/utils/cli/start.js +5 -5
  85. package/dist/cjs/utils/cli/start.js.map +1 -1
  86. package/dist/cjs/utils/cli/utils/cli.helpers.js +3 -3
  87. package/dist/cjs/utils/cli/utils/runtime-cli-commander.js +5 -5
  88. package/dist/cjs/utils/cli/utils/template-generator/templates/auth-configs-template.js +2 -2
  89. package/dist/cjs/utils/cli/utils/template-generator/templates/class-validator/create-dto-template.js +2 -2
  90. package/dist/cjs/utils/cli/utils/template-generator/templates/class-validator/update-dto-template.js +2 -2
  91. package/dist/cjs/utils/cli/utils/template-generator/templates/class-validator-dto-generator.js +2 -2
  92. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-multiple-components.js +3 -3
  93. package/dist/cjs/utils/cli/utils/template-generator/templates/hooks-template.js +1 -1
  94. package/dist/cjs/utils/cli/utils/template-generator/templates/policy-template.js +53 -0
  95. package/dist/cjs/utils/cli/utils/template-generator/templates/policy-template.js.map +1 -0
  96. package/dist/cjs/utils/cli/utils/template-generator/templates/query-options-template.js +1 -1
  97. package/dist/cjs/utils/cli/utils/template-generator/templates/router-template.js +1 -1
  98. package/dist/cjs/utils/cli/utils/template-generator/templates/service-template.js +1 -1
  99. package/dist/cjs/utils/cli/utils/template-generator/templates/zod/create-schema-template.js +2 -2
  100. package/dist/cjs/utils/cli/utils/template-generator/templates/zod/update-schema-template.js +2 -2
  101. package/dist/cjs/utils/cli/utils/template-generator/templates/zod-schema-generator.js +2 -2
  102. package/dist/cjs/utils/cli/utils/template-generators.js +11 -11
  103. package/dist/cjs/utils/cli/utils/watermark-stamper.js +3 -3
  104. package/dist/cjs/utils/dotenv.helpers.js +2 -2
  105. package/dist/cjs/utils/dynamic-loader.js +8 -8
  106. package/dist/cjs/utils/features/api.features.js +5 -5
  107. package/dist/cjs/utils/features/change-case.features.js +1 -1
  108. package/dist/cjs/utils/features/port-and-host-allocator.js +1 -1
  109. package/dist/cjs/utils/helpers/api.features.helpers.js +2 -2
  110. package/dist/cjs/utils/helpers/arkos-config.helpers.js +3 -3
  111. package/dist/cjs/utils/helpers/exit-error.js +12 -0
  112. package/dist/cjs/utils/helpers/exit-error.js.map +1 -0
  113. package/dist/cjs/utils/helpers/fs.helpers.js +1 -1
  114. package/dist/cjs/utils/helpers/fs.helpers.js.map +1 -1
  115. package/dist/cjs/utils/helpers/prisma.helpers.js +6 -6
  116. package/dist/cjs/utils/helpers/query-parser.helpers.js +1 -1
  117. package/dist/cjs/utils/helpers/routers.helpers.js +4 -4
  118. package/dist/cjs/utils/helpers/routers.helpers.js.map +1 -1
  119. package/dist/cjs/utils/initialize-app.js +56 -0
  120. package/dist/cjs/utils/initialize-app.js.map +1 -0
  121. package/dist/cjs/utils/prisma/prisma-json-schema-generator.js +4 -4
  122. package/dist/cjs/utils/prisma/prisma-schema-parser.js +2 -2
  123. package/dist/cjs/utils/setup-app.js +119 -0
  124. package/dist/cjs/utils/setup-app.js.map +1 -0
  125. package/dist/esm/components/arkos-policy/index.js +32 -0
  126. package/dist/esm/components/arkos-policy/index.js.map +1 -0
  127. package/dist/esm/components/arkos-policy/types.js +2 -0
  128. package/dist/esm/components/arkos-policy/types.js.map +1 -0
  129. package/dist/esm/exports/config.js +3 -0
  130. package/dist/esm/exports/config.js.map +1 -0
  131. package/dist/esm/modules/file-upload/file-upload.controller.js +2 -2
  132. package/dist/esm/modules/file-upload/file-upload.controller.js.map +1 -1
  133. package/dist/esm/modules/file-upload/file-upload.router.js +12 -12
  134. package/dist/esm/modules/file-upload/file-upload.router.js.map +1 -1
  135. package/dist/esm/modules/swagger/utils/get-open-api-login-html.js +273 -0
  136. package/dist/esm/modules/swagger/utils/get-open-api-login-html.js.map +1 -0
  137. package/dist/esm/types/arkos-config/utils.js +2 -0
  138. package/dist/esm/types/arkos-config/utils.js.map +1 -0
  139. package/dist/esm/types/arkos.js +2 -0
  140. package/dist/esm/types/arkos.js.map +1 -0
  141. package/dist/esm/types/index.js.map +1 -1
  142. package/dist/esm/utils/arkos-router/index.js.map +1 -1
  143. package/dist/esm/utils/arkos-router/types/index.js.map +1 -1
  144. package/dist/esm/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.js +146 -0
  145. package/dist/esm/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.js.map +1 -0
  146. package/dist/esm/utils/bundler.js +156 -0
  147. package/dist/esm/utils/bundler.js.map +1 -0
  148. package/dist/esm/utils/cli/build.js +15 -27
  149. package/dist/esm/utils/cli/build.js.map +1 -1
  150. package/dist/esm/utils/cli/dev.js +1 -0
  151. package/dist/esm/utils/cli/dev.js.map +1 -1
  152. package/dist/esm/utils/cli/export-auth-action.js +1 -0
  153. package/dist/esm/utils/cli/export-auth-action.js.map +1 -1
  154. package/dist/esm/utils/cli/start.js +1 -1
  155. package/dist/esm/utils/cli/start.js.map +1 -1
  156. package/dist/esm/utils/cli/utils/cli.helpers.js +1 -1
  157. package/dist/esm/utils/cli/utils/template-generator/templates/policy-template.js +47 -0
  158. package/dist/esm/utils/cli/utils/template-generator/templates/policy-template.js.map +1 -0
  159. package/dist/esm/utils/helpers/exit-error.js +6 -0
  160. package/dist/esm/utils/helpers/exit-error.js.map +1 -0
  161. package/dist/esm/utils/helpers/fs.helpers.js +1 -1
  162. package/dist/esm/utils/helpers/fs.helpers.js.map +1 -1
  163. package/dist/esm/utils/helpers/routers.helpers.js.map +1 -1
  164. package/dist/esm/utils/initialize-app.js +50 -0
  165. package/dist/esm/utils/initialize-app.js.map +1 -0
  166. package/dist/esm/utils/setup-app.js +113 -0
  167. package/dist/esm/utils/setup-app.js.map +1 -0
  168. package/dist/types/components/arkos-policy/index.d.ts +31 -0
  169. package/dist/types/components/arkos-policy/types.d.ts +21 -0
  170. package/dist/types/exports/config.d.ts +2 -0
  171. package/dist/types/modules/file-upload/file-upload.router.d.ts +1 -2
  172. package/dist/types/modules/swagger/utils/get-open-api-login-html.d.ts +1 -0
  173. package/dist/types/types/arkos-config/utils.d.ts +35 -0
  174. package/dist/types/types/arkos.d.ts +31 -0
  175. package/dist/types/types/index.d.ts +3 -5
  176. package/dist/types/utils/arkos-router/types/index.d.ts +20 -11
  177. package/dist/types/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.d.ts +7 -0
  178. package/dist/types/utils/bundler.d.ts +152 -0
  179. package/dist/types/utils/cli/utils/template-generator/templates/policy-template.d.ts +2 -0
  180. package/dist/types/utils/helpers/exit-error.d.ts +1 -0
  181. package/dist/types/utils/helpers/routers.helpers.d.ts +3 -3
  182. package/dist/types/utils/initialize-app.d.ts +2 -0
  183. package/dist/types/utils/setup-app.d.ts +2 -0
  184. package/package.json +1 -1
  185. package/dist/cjs/types/arkos-prisma-input.bak.js.map +0 -1
  186. package/dist/cjs/utils/cli/utils/static-types-generator.js +0 -558
  187. package/dist/cjs/utils/cli/utils/static-types-generator.js.map +0 -1
  188. package/dist/esm/types/arkos-prisma-input.bak.js +0 -2
  189. package/dist/esm/types/arkos-prisma-input.bak.js.map +0 -1
  190. package/dist/esm/utils/cli/utils/static-types-generator.js +0 -553
  191. package/dist/esm/utils/cli/utils/static-types-generator.js.map +0 -1
  192. package/dist/types/types/arkos-prisma-input.bak.d.ts +0 -237
  193. package/dist/types/utils/cli/utils/static-types-generator.d.ts +0 -36
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateServiceTemplate = generateServiceTemplate;
4
- const fs_helpers_1 = require("../../../../helpers/fs.helpers");
4
+ const fs_helpers_1 = require("../../../../helpers/fs.helpers.js");
5
5
  function generateServiceTemplate(options) {
6
6
  const { modelName, imports } = options;
7
7
  const ext = (0, fs_helpers_1.getUserFileExtension)();
@@ -4,8 +4,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.generateCreateSchemaTemplate = generateCreateSchemaTemplate;
7
- const prisma_schema_parser_1 = __importDefault(require("../../../../../prisma/prisma-schema-parser"));
8
- const fs_helpers_1 = require("../../../../../helpers/fs.helpers");
7
+ const prisma_schema_parser_1 = __importDefault(require("../../../../../prisma/prisma-schema-parser.js"));
8
+ const fs_helpers_1 = require("../../../../../helpers/fs.helpers.js");
9
9
  function generateCreateSchemaTemplate(options) {
10
10
  const { modelName } = options;
11
11
  if (!modelName)
@@ -4,8 +4,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.generateUpdateSchemaTemplate = generateUpdateSchemaTemplate;
7
- const prisma_schema_parser_1 = __importDefault(require("../../../../../prisma/prisma-schema-parser"));
8
- const fs_helpers_1 = require("../../../../../helpers/fs.helpers");
7
+ const prisma_schema_parser_1 = __importDefault(require("../../../../../prisma/prisma-schema-parser.js"));
8
+ const fs_helpers_1 = require("../../../../../helpers/fs.helpers.js");
9
9
  function generateUpdateSchemaTemplate(options) {
10
10
  const { modelName } = options;
11
11
  if (!modelName)
@@ -4,8 +4,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.ZodSchemaGenerator = void 0;
7
- const prisma_schema_parser_1 = __importDefault(require("../../../../prisma/prisma-schema-parser"));
8
- const fs_helpers_1 = require("../../../../helpers/fs.helpers");
7
+ const prisma_schema_parser_1 = __importDefault(require("../../../../prisma/prisma-schema-parser.js"));
8
+ const fs_helpers_1 = require("../../../../helpers/fs.helpers.js");
9
9
  class ZodSchemaGenerator {
10
10
  ensureCorrectOptions(options) {
11
11
  const { modelName } = options;
@@ -4,17 +4,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.generateTemplate = generateTemplate;
7
- const generate_controller_template_1 = require("./template-generator/templates/generate-controller-template");
8
- const auth_configs_template_1 = require("./template-generator/templates/auth-configs-template");
9
- const middlewares_template_1 = require("./template-generator/templates/middlewares-template");
10
- const query_options_template_1 = require("./template-generator/templates/query-options-template");
11
- const router_template_1 = require("./template-generator/templates/router-template");
12
- const service_template_1 = require("./template-generator/templates/service-template");
13
- const hooks_template_1 = __importDefault(require("./template-generator/templates/hooks-template"));
14
- const create_schema_template_1 = require("./template-generator/templates/zod/create-schema-template");
15
- const update_schema_template_1 = require("./template-generator/templates/zod/update-schema-template");
16
- const update_dto_template_1 = require("./template-generator/templates/class-validator/update-dto-template");
17
- const create_dto_template_1 = require("./template-generator/templates/class-validator/create-dto-template");
7
+ const generate_controller_template_1 = require("./template-generator/templates/generate-controller-template.js");
8
+ const auth_configs_template_1 = require("./template-generator/templates/auth-configs-template.js");
9
+ const middlewares_template_1 = require("./template-generator/templates/middlewares-template.js");
10
+ const query_options_template_1 = require("./template-generator/templates/query-options-template.js");
11
+ const router_template_1 = require("./template-generator/templates/router-template.js");
12
+ const service_template_1 = require("./template-generator/templates/service-template.js");
13
+ const hooks_template_1 = __importDefault(require("./template-generator/templates/hooks-template.js"));
14
+ const create_schema_template_1 = require("./template-generator/templates/zod/create-schema-template.js");
15
+ const update_schema_template_1 = require("./template-generator/templates/zod/update-schema-template.js");
16
+ const update_dto_template_1 = require("./template-generator/templates/class-validator/update-dto-template.js");
17
+ const create_dto_template_1 = require("./template-generator/templates/class-validator/create-dto-template.js");
18
18
  function generateTemplate(type, options) {
19
19
  switch (type) {
20
20
  case "controller":
@@ -3,9 +3,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const port_and_host_allocator_1 = __importDefault(require("../../features/port-and-host-allocator"));
7
- const fs_helpers_1 = require("../../helpers/fs.helpers");
8
- const cli_helpers_1 = require("./cli.helpers");
6
+ const port_and_host_allocator_1 = __importDefault(require("../../features/port-and-host-allocator.js"));
7
+ const fs_helpers_1 = require("../../helpers/fs.helpers.js");
8
+ const cli_helpers_1 = require("./cli.helpers.js");
9
9
  class WatermarkStamper {
10
10
  stamp({ envFiles, host, port, }) {
11
11
  console.info(`\n \x1b[1m\x1b[36m Arkos.js ${(0, cli_helpers_1.getVersion)()}\x1b[0m`);
@@ -7,8 +7,8 @@ exports.loadEnvironmentVariables = loadEnvironmentVariables;
7
7
  const path_1 = __importDefault(require("path"));
8
8
  const fs_1 = __importDefault(require("fs"));
9
9
  const dotenv_1 = __importDefault(require("dotenv"));
10
- const sheu_1 = __importDefault(require("./sheu"));
11
- const expand_env_1 = require("./expand-env");
10
+ const sheu_1 = __importDefault(require("./sheu.js"));
11
+ const expand_env_1 = require("./expand-env.js");
12
12
  function loadEnvironmentVariables() {
13
13
  const ENV = process.env.NODE_ENV;
14
14
  const cwd = process.cwd();
@@ -15,14 +15,14 @@ exports.assignModuleToResult = assignModuleToResult;
15
15
  exports.importModuleComponents = importModuleComponents;
16
16
  exports.loadAllModuleComponents = loadAllModuleComponents;
17
17
  const path_1 = __importDefault(require("path"));
18
- const cli_helpers_1 = require("./cli/utils/cli.helpers");
19
- const sheu_1 = __importDefault(require("./sheu"));
20
- const dynamic_loader_helpers_1 = require("./helpers/dynamic-loader.helpers");
21
- const change_case_helpers_1 = require("./helpers/change-case.helpers");
22
- const fs_helpers_1 = require("./helpers/fs.helpers");
23
- const global_helpers_1 = require("./helpers/global.helpers");
24
- const prisma_schema_parser_1 = __importDefault(require("./prisma/prisma-schema-parser"));
25
- const debugger_service_1 = __importDefault(require("../modules/debugger/debugger.service"));
18
+ const cli_helpers_1 = require("./cli/utils/cli.helpers.js");
19
+ const sheu_1 = __importDefault(require("./sheu.js"));
20
+ const dynamic_loader_helpers_1 = require("./helpers/dynamic-loader.helpers.js");
21
+ const change_case_helpers_1 = require("./helpers/change-case.helpers.js");
22
+ const fs_helpers_1 = require("./helpers/fs.helpers.js");
23
+ const global_helpers_1 = require("./helpers/global.helpers.js");
24
+ const prisma_schema_parser_1 = __importDefault(require("./prisma/prisma-schema-parser.js"));
25
+ const debugger_service_1 = __importDefault(require("../modules/debugger/debugger.service.js"));
26
26
  let prismaModelsModules = {};
27
27
  function setModuleComponents(modelName, modules) {
28
28
  prismaModelsModules[(0, change_case_helpers_1.pascalCase)(modelName)] = modules;
@@ -3,11 +3,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const deepmerge_helper_1 = __importDefault(require("../helpers/deepmerge.helper"));
7
- const api_features_helpers_1 = require("../helpers/api.features.helpers");
8
- const app_error_1 = __importDefault(require("../../modules/error-handler/utils/app-error"));
9
- const prisma_helpers_1 = require("../helpers/prisma.helpers");
10
- const debugger_service_1 = __importDefault(require("../../modules/debugger/debugger.service"));
6
+ const deepmerge_helper_1 = __importDefault(require("../helpers/deepmerge.helper.js"));
7
+ const api_features_helpers_1 = require("../helpers/api.features.helpers.js");
8
+ const app_error_1 = __importDefault(require("../../modules/error-handler/utils/app-error.js"));
9
+ const prisma_helpers_1 = require("../helpers/prisma.helpers.js");
10
+ const debugger_service_1 = __importDefault(require("../../modules/debugger/debugger.service.js"));
11
11
  class APIFeatures {
12
12
  constructor(req, modelName) {
13
13
  this.filters = {};
@@ -34,7 +34,7 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.snakeCase = exports.sentenceCase = exports.pathCase = exports.pascalCase = exports.kebabCase = exports.noCase = exports.trainCase = exports.dotCase = exports.constantCase = exports.capitalCase = exports.camelCase = void 0;
37
- const changeCase = __importStar(require("../helpers/change-case.helpers"));
37
+ const changeCase = __importStar(require("../helpers/change-case.helpers.js"));
38
38
  const isObject = (object) => object !== null && typeof object === "object";
39
39
  function changeKeysFactory(changeCase) {
40
40
  return function changeKeys(object, depth = 1, options) {
@@ -37,7 +37,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  const net = __importStar(require("net"));
40
- const sheu_1 = __importDefault(require("../sheu"));
40
+ const sheu_1 = __importDefault(require("../sheu.js"));
41
41
  const os_1 = __importDefault(require("os"));
42
42
  class PortAndHostAllocator {
43
43
  constructor() {
@@ -4,8 +4,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.parseQueryParamsWithModifiers = parseQueryParamsWithModifiers;
7
- const deepmerge_helper_1 = __importDefault(require("./deepmerge.helper"));
8
- const prisma_schema_parser_1 = __importDefault(require("../prisma/prisma-schema-parser"));
7
+ const deepmerge_helper_1 = __importDefault(require("./deepmerge.helper.js"));
8
+ const prisma_schema_parser_1 = __importDefault(require("../prisma/prisma-schema-parser.js"));
9
9
  function parseNestedObject(key, value) {
10
10
  const results = [];
11
11
  function traverse(obj, path = []) {
@@ -40,9 +40,9 @@ exports.defaultArkosConfig = void 0;
40
40
  exports.isUsingAuthentication = isUsingAuthentication;
41
41
  exports.isAuthenticationEnabled = isAuthenticationEnabled;
42
42
  exports.getArkosConfig = getArkosConfig;
43
- const deepmerge_helper_1 = __importDefault(require("./deepmerge.helper"));
44
- const sheu_1 = __importDefault(require("../sheu"));
45
- const fsHelpers = __importStar(require("./fs.helpers"));
43
+ const deepmerge_helper_1 = __importDefault(require("./deepmerge.helper.js"));
44
+ const sheu_1 = __importDefault(require("../sheu.js"));
45
+ const fsHelpers = __importStar(require("./fs.helpers.js"));
46
46
  const fs_helpers_1 = require("./fs.helpers");
47
47
  let definedArkosConfig = {};
48
48
  try {
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.default = ExitError;
7
+ const sheu_1 = __importDefault(require("../sheu.js"));
8
+ function ExitError(message, code = 1) {
9
+ sheu_1.default.error(message);
10
+ process.exit(code);
11
+ }
12
+ //# sourceMappingURL=exit-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exit-error.js","sourceRoot":"","sources":["../../../../src/utils/helpers/exit-error.ts"],"names":[],"mappings":";;;;;AAEA,4BAGC;AALD,mDAA2B;AAE3B,SAAwB,SAAS,CAAC,OAAY,EAAE,IAAI,GAAG,CAAC;IACtD,cAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACpB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrB,CAAC","sourcesContent":["import sheu from \"../sheu\";\n\nexport default function ExitError(message: any, code = 1) {\n sheu.error(message);\n process.exit(code);\n}\n"]}
@@ -18,7 +18,7 @@ function fullCleanCwd(path) {
18
18
  if (path.startsWith(`/${process.cwd()}`) ||
19
19
  path.startsWith(`${process.cwd()}`) ||
20
20
  path.startsWith(`${process.cwd()}/`))
21
- return path.replaceAll(process.cwd(), "").replaceAll(/^\/+/g, "");
21
+ return path.replaceAll(process.cwd(), "");
22
22
  else
23
23
  return path;
24
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"fs.helpers.js","sourceRoot":"","sources":["../../../../src/utils/helpers/fs.helpers.ts"],"names":[],"mappings":";;;;;;AAcA,oCAUC;AAiDD,0CAMC;AA/ED,4CAAoB;AACpB,gDAAwB;AAEjB,MAAM,GAAG,GAAG,GAAG,EAAE,CACtB,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,MAAM;IAChC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,UAAU;IAC5B,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;AAHP,QAAA,GAAG,OAGI;AAQpB,SAAgB,YAAY,CAAC,IAAY;IACvC,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAEvE,IACE,IAAI,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;QACpC,IAAI,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;QACnC,IAAI,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;QAEpC,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;;QAC/D,OAAO,IAAI,CAAC;AACnB,CAAC;AASM,MAAM,oBAAoB,GAAG,GAAgB,EAAE;IACpD,IAAI,yBAAiB;QAAE,OAAO,yBAAiB,CAAC;IAEhD,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAEjC,MAAM,WAAW,GAAG,YAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC;QAE1E,MAAM,QAAQ,GAAG,YAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;QACvE,MAAM,QAAQ,GAAG,YAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;QAEvE,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,MAAM,CAAC;QAEvD,IAAI,WAAW;YAAE,yBAAiB,GAAG,IAAI,CAAC;aACrC,IAAI,WAAW,IAAI,QAAQ;YAAE,yBAAiB,GAAG,IAAI,CAAC;aACtD,IAAI,QAAQ,IAAI,CAAC,QAAQ;YAAE,yBAAiB,GAAG,IAAI,CAAC;aACpD,IAAI,QAAQ;YAAE,yBAAiB,GAAG,IAAI,CAAC;;YACvC,yBAAiB,GAAG,IAAI,CAAC;QAE9B,OAAO,yBAAiB,CAAC;IAC3B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,yBAAiB,GAAG,IAAI,CAAC;QACzB,OAAO,yBAAiB,CAAC;IAC3B,CAAC;AACH,CAAC,CAAC;AAxBW,QAAA,oBAAoB,wBAwB/B;AAgBF,SAAgB,eAAe,CAAC,QAAgB;IAC9C,IAAI,CAAC;QACH,OAAO,YAAE,CAAC,UAAU,CAAC,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC","sourcesContent":["import fs from \"fs\";\nimport path from \"path\";\n\nexport const crd = () =>\n process.env.ARKOS_BUILD === \"true\"\n ? process.cwd() + \"/.build/\"\n : process.cwd();\n\n/**\n * Removes the current working directory prefix from the given path.\n * Handles cases with or without a trailing slash in cwd.\n * @param path - The path to clean\n * @returns The path without the cwd prefix\n */\nexport function fullCleanCwd(path: string): string {\n if (typeof path !== \"string\") throw new Error(\"Path must be a string\");\n\n if (\n path.startsWith(`/${process.cwd()}`) ||\n path.startsWith(`${process.cwd()}`) ||\n path.startsWith(`${process.cwd()}/`)\n )\n return path.replaceAll(process.cwd(), \"\").replaceAll(/^\\/+/g, \"\");\n else return path;\n}\n\nexport let userFileExtension: \"ts\" | \"js\" | undefined;\n\n/**\n * Detects the file extension that should be used in the current execution context\n * Returns 'ts' when TypeScript config exists and not in build mode, otherwise 'js'\n * @returns 'ts' | 'js'\n */\nexport const getUserFileExtension = (): \"ts\" | \"js\" => {\n if (userFileExtension) return userFileExtension;\n\n try {\n const currentDir = process.cwd();\n\n const hasTsConfig = fs.existsSync(path.join(currentDir, \"tsconfig.json\"));\n\n const hasAppTs = fs.existsSync(path.join(currentDir, \"src\", \"app.ts\"));\n const hasAppJs = fs.existsSync(path.join(currentDir, \"src\", \"app.js\"));\n\n const isBuildMode = process.env.ARKOS_BUILD === \"true\";\n\n if (isBuildMode) userFileExtension = \"js\";\n else if (hasTsConfig && hasAppTs) userFileExtension = \"ts\";\n else if (hasAppTs && !hasAppJs) userFileExtension = \"ts\";\n else if (hasAppJs) userFileExtension = \"js\";\n else userFileExtension = \"js\";\n\n return userFileExtension;\n } catch (e) {\n userFileExtension = \"js\";\n return userFileExtension;\n }\n};\n\n/**\n * Checks if a file exists at the specified file path.\n *\n * @param filePath - The path to the file to check\n * @returns {boolean} True if the file exists, false otherwise or if there's an error\n *\n * @example\n * ```ts\n * const exists = checkFileExists('./path/to/file.txt');\n * if (exists) {\n * console.info('File exists!');\n * }\n * ```\n */\nexport function checkFileExists(filePath: string): boolean {\n try {\n return fs.existsSync(path.resolve(filePath));\n } catch (error) {\n return false;\n }\n}\n"]}
1
+ {"version":3,"file":"fs.helpers.js","sourceRoot":"","sources":["../../../../src/utils/helpers/fs.helpers.ts"],"names":[],"mappings":";;;;;;AAcA,oCAUC;AAiDD,0CAMC;AA/ED,4CAAoB;AACpB,gDAAwB;AAEjB,MAAM,GAAG,GAAG,GAAG,EAAE,CACtB,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,MAAM;IAChC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,UAAU;IAC5B,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;AAHP,QAAA,GAAG,OAGI;AAQpB,SAAgB,YAAY,CAAC,IAAY;IACvC,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAEvE,IACE,IAAI,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;QACpC,IAAI,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;QACnC,IAAI,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;QAEpC,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;;QACvC,OAAO,IAAI,CAAC;AACnB,CAAC;AASM,MAAM,oBAAoB,GAAG,GAAgB,EAAE;IACpD,IAAI,yBAAiB;QAAE,OAAO,yBAAiB,CAAC;IAEhD,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAEjC,MAAM,WAAW,GAAG,YAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC;QAE1E,MAAM,QAAQ,GAAG,YAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;QACvE,MAAM,QAAQ,GAAG,YAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;QAEvE,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,MAAM,CAAC;QAEvD,IAAI,WAAW;YAAE,yBAAiB,GAAG,IAAI,CAAC;aACrC,IAAI,WAAW,IAAI,QAAQ;YAAE,yBAAiB,GAAG,IAAI,CAAC;aACtD,IAAI,QAAQ,IAAI,CAAC,QAAQ;YAAE,yBAAiB,GAAG,IAAI,CAAC;aACpD,IAAI,QAAQ;YAAE,yBAAiB,GAAG,IAAI,CAAC;;YACvC,yBAAiB,GAAG,IAAI,CAAC;QAE9B,OAAO,yBAAiB,CAAC;IAC3B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,yBAAiB,GAAG,IAAI,CAAC;QACzB,OAAO,yBAAiB,CAAC;IAC3B,CAAC;AACH,CAAC,CAAC;AAxBW,QAAA,oBAAoB,wBAwB/B;AAgBF,SAAgB,eAAe,CAAC,QAAgB;IAC9C,IAAI,CAAC;QACH,OAAO,YAAE,CAAC,UAAU,CAAC,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC","sourcesContent":["import fs from \"fs\";\nimport path from \"path\";\n\nexport const crd = () =>\n process.env.ARKOS_BUILD === \"true\"\n ? process.cwd() + \"/.build/\"\n : process.cwd();\n\n/**\n * Removes the current working directory prefix from the given path.\n * Handles cases with or without a trailing slash in cwd.\n * @param path - The path to clean\n * @returns The path without the cwd prefix\n */\nexport function fullCleanCwd(path: string): string {\n if (typeof path !== \"string\") throw new Error(\"Path must be a string\");\n\n if (\n path.startsWith(`/${process.cwd()}`) ||\n path.startsWith(`${process.cwd()}`) ||\n path.startsWith(`${process.cwd()}/`)\n )\n return path.replaceAll(process.cwd(), \"\");\n else return path;\n}\n\nexport let userFileExtension: \"ts\" | \"js\" | undefined;\n\n/**\n * Detects the file extension that should be used in the current execution context\n * Returns 'ts' when TypeScript config exists and not in build mode, otherwise 'js'\n * @returns 'ts' | 'js'\n */\nexport const getUserFileExtension = (): \"ts\" | \"js\" => {\n if (userFileExtension) return userFileExtension;\n\n try {\n const currentDir = process.cwd();\n\n const hasTsConfig = fs.existsSync(path.join(currentDir, \"tsconfig.json\"));\n\n const hasAppTs = fs.existsSync(path.join(currentDir, \"src\", \"app.ts\"));\n const hasAppJs = fs.existsSync(path.join(currentDir, \"src\", \"app.js\"));\n\n const isBuildMode = process.env.ARKOS_BUILD === \"true\";\n\n if (isBuildMode) userFileExtension = \"js\";\n else if (hasTsConfig && hasAppTs) userFileExtension = \"ts\";\n else if (hasAppTs && !hasAppJs) userFileExtension = \"ts\";\n else if (hasAppJs) userFileExtension = \"js\";\n else userFileExtension = \"js\";\n\n return userFileExtension;\n } catch (e) {\n userFileExtension = \"js\";\n return userFileExtension;\n }\n};\n\n/**\n * Checks if a file exists at the specified file path.\n *\n * @param filePath - The path to the file to check\n * @returns {boolean} True if the file exists, false otherwise or if there's an error\n *\n * @example\n * ```ts\n * const exists = checkFileExists('./path/to/file.txt');\n * if (exists) {\n * console.info('File exists!');\n * }\n * ```\n */\nexport function checkFileExists(filePath: string): boolean {\n try {\n return fs.existsSync(path.resolve(filePath));\n } catch (error) {\n return false;\n }\n}\n"]}
@@ -8,12 +8,12 @@ exports.loadPrismaModule = loadPrismaModule;
8
8
  exports.handlePrismaGet = handlePrismaGet;
9
9
  exports.getPrismaInstance = getPrismaInstance;
10
10
  const fs_1 = __importDefault(require("fs"));
11
- const app_error_1 = __importDefault(require("../../modules/error-handler/utils/app-error"));
12
- const fs_helpers_1 = require("./fs.helpers");
13
- const global_helpers_1 = require("./global.helpers");
14
- const prisma_schema_parser_1 = __importDefault(require("../prisma/prisma-schema-parser"));
15
- const arkos_config_helpers_1 = require("./arkos-config.helpers");
16
- const sheu_1 = __importDefault(require("../sheu"));
11
+ const app_error_1 = __importDefault(require("../../modules/error-handler/utils/app-error.js"));
12
+ const fs_helpers_1 = require("./fs.helpers.js");
13
+ const global_helpers_1 = require("./global.helpers.js");
14
+ const prisma_schema_parser_1 = __importDefault(require("../prisma/prisma-schema-parser.js"));
15
+ const arkos_config_helpers_1 = require("./arkos-config.helpers.js");
16
+ const sheu_1 = __importDefault(require("../sheu.js"));
17
17
  exports.prismaInstance = null;
18
18
  async function loadPrismaModule() {
19
19
  if (!exports.prismaInstance) {
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.queryParser = exports.parse = void 0;
4
- const api_features_helpers_1 = require("./api.features.helpers");
4
+ const api_features_helpers_1 = require("./api.features.helpers.js");
5
5
  function parseDoubleUnderscore(query) {
6
6
  const result = {};
7
7
  for (const [key, value] of Object.entries(query)) {
@@ -7,10 +7,10 @@ exports.processMiddleware = exports.safeCatchAsync = void 0;
7
7
  exports.getAuthenticationConfig = getAuthenticationConfig;
8
8
  exports.createRouteConfig = createRouteConfig;
9
9
  const pluralize_1 = __importDefault(require("pluralize"));
10
- const catch_async_1 = __importDefault(require("../../modules/error-handler/utils/catch-async"));
11
- const change_case_helpers_1 = require("./change-case.helpers");
12
- const base_router_helpers_1 = require("../../modules/base/utils/helpers/base.router.helpers");
13
- const deepmerge_helper_1 = __importDefault(require("./deepmerge.helper"));
10
+ const catch_async_1 = __importDefault(require("../../modules/error-handler/utils/catch-async.js"));
11
+ const change_case_helpers_1 = require("./change-case.helpers.js");
12
+ const base_router_helpers_1 = require("../../modules/base/utils/helpers/base.router.helpers.js");
13
+ const deepmerge_helper_1 = __importDefault(require("./deepmerge.helper.js"));
14
14
  function throwErrorIfInterceptorIsNotAFunction(middleware) {
15
15
  if (middleware && typeof middleware !== "function")
16
16
  throw Error(`Validation Error: Invalid interceptor of type ${typeof middleware}, they must be a function or an array of function. checkout https://arkosjs.com/docs/core-concepts/interceptor-middlewares`);
@@ -1 +1 @@
1
- {"version":3,"file":"routers.helpers.js","sourceRoot":"","sources":["../../../../src/utils/helpers/routers.helpers.ts"],"names":[],"mappings":"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","sourcesContent":["import pluralize from \"pluralize\";\nimport catchAsync, {\n CatchAsyncReturnType,\n} from \"../../modules/error-handler/utils/catch-async\";\nimport { AccessAction, AuthConfigs } from \"../../types/auth\";\nimport { kebabCase } from \"./change-case.helpers\";\nimport {\n AuthRouterEndpoint,\n RouterConfig,\n RouterEndpoint,\n} from \"../../types/router-config\";\nimport { isEndpointDisabled } from \"../../modules/base/utils/helpers/base.router.helpers\";\nimport deepmerge from \"./deepmerge.helper\";\nimport { ArkosRouteConfig } from \"../arkos-router/types\";\nimport { ArkosConfig } from \"../../exports\";\n\nfunction throwErrorIfInterceptorIsNotAFunction(middleware: any) {\n if (middleware && typeof middleware !== \"function\")\n throw Error(\n `Validation Error: Invalid interceptor of type ${typeof middleware}, they must be a function or an array of function. checkout https://arkosjs.com/docs/core-concepts/interceptor-middlewares`\n );\n}\n\nexport const safeCatchAsync = (\n middleware: any,\n options: { type: \"error\" | \"normal\" } = { type: \"normal\" }\n) => {\n if (middleware && typeof middleware !== \"function\")\n throw Error(\n `Validation Error: Invalid interceptor of type ${typeof middleware}, they must be a function or an array of function. checkout https://arkosjs.com/docs/core-concepts/interceptor-middlewares`\n );\n\n return middleware ? catchAsync(middleware, options) : undefined;\n};\n\nexport const processMiddleware = (\n middleware: any,\n options: { type: \"error\" | \"normal\" } = { type: \"normal\" }\n) => {\n if (!middleware) return [];\n if (Array.isArray(middleware)) {\n return middleware\n .filter((mw) => !!mw)\n .map((mw) => {\n throwErrorIfInterceptorIsNotAFunction(mw);\n return safeCatchAsync(mw, options);\n }) as CatchAsyncReturnType[];\n } else {\n throwErrorIfInterceptorIsNotAFunction(middleware);\n return [safeCatchAsync(middleware, options)] as CatchAsyncReturnType[];\n }\n};\n\nexport function getAuthenticationConfig(\n endpoint: RouterEndpoint | AuthRouterEndpoint,\n modelName: string,\n authConfigs?: AuthConfigs\n) {\n const actionMap: Record<any, AccessAction> = {\n createOne: \"Create\",\n findOneAuthAction: \"View\",\n findManyAuthAction: \"View\",\n findMany: \"View\",\n createMany: \"Create\",\n updateMany: \"Update\",\n deleteMany: \"Delete\",\n findOne: \"View\",\n updateOne: \"Update\",\n deleteOne: \"Delete\",\n };\n\n const action = actionMap[endpoint];\n const authenticationControl = authConfigs?.authenticationControl;\n\n if (authenticationControl === true) return true;\n else if (\n (authenticationControl &&\n typeof authenticationControl === \"object\" &&\n (authenticationControl[action] === true ||\n authenticationControl[action] !== false)) ||\n (!authenticationControl && authenticationControl !== false)\n ) {\n return {\n resource: kebabCase(pluralize.singular(modelName)),\n action: action,\n rule: Array.isArray(authConfigs?.accessControl)\n ? authConfigs?.accessControl\n : (authConfigs?.accessControl || {})?.[action],\n };\n }\n\n return false;\n}\n\n/**\n * Creates a route configuration object for a specific endpoint\n * @param endpoint - The router endpoint type\n * @param routeName - The pluralized route name (e.g., \"users\")\n * @param path - The path suffix for the route (e.g., \"\", \"/:id\", \"/many\")\n * @param routerConfig - The router configuration object\n * @param modelNameInKebab - The model name in kebab-case\n * @param authConfigs - Authentication configurations\n * @param validationSchema - Optional validation schema for the endpoint\n * @returns Route configuration object\n */\nexport function createRouteConfig(\n arkosConfig: ArkosConfig,\n endpoint: RouterEndpoint | AuthRouterEndpoint,\n routeName: string,\n path: string,\n routerConfig: RouterConfig<any>,\n modelNameInKebab: string,\n authConfigs: any,\n validationSchema?: any\n) {\n let config: ArkosRouteConfig = {\n path: `/${routeName}${path}`,\n disabled: isEndpointDisabled(routerConfig, endpoint),\n ...(arkosConfig.authentication?.mode && {\n authentication:\n typeof authConfigs === \"boolean\"\n ? authConfigs\n : getAuthenticationConfig(endpoint, modelNameInKebab, authConfigs),\n }),\n validation: validationSchema ? { body: validationSchema } : undefined,\n };\n\n const endpointConfig = (routerConfig as any)[endpoint];\n if (endpointConfig) config = deepmerge(config, endpointConfig);\n\n return config;\n}\n"]}
1
+ {"version":3,"file":"routers.helpers.js","sourceRoot":"","sources":["../../../../src/utils/helpers/routers.helpers.ts"],"names":[],"mappings":"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","sourcesContent":["import pluralize from \"pluralize\";\nimport catchAsync, {\n CatchAsyncReturnType,\n} from \"../../modules/error-handler/utils/catch-async\";\nimport { AccessAction, AuthConfigs } from \"../../types/auth\";\nimport { kebabCase } from \"./change-case.helpers\";\nimport {\n AuthRouterEndpoint,\n FileUploadRouterEndpoint,\n RouterConfig,\n RouterEndpoint,\n} from \"../../types/router-config\";\nimport { isEndpointDisabled } from \"../../modules/base/utils/helpers/base.router.helpers\";\nimport deepmerge from \"./deepmerge.helper\";\nimport { ArkosRouteConfig } from \"../arkos-router/types\";\nimport { ArkosConfig } from \"../../exports\";\n\nfunction throwErrorIfInterceptorIsNotAFunction(middleware: any) {\n if (middleware && typeof middleware !== \"function\")\n throw Error(\n `Validation Error: Invalid interceptor of type ${typeof middleware}, they must be a function or an array of function. checkout https://arkosjs.com/docs/core-concepts/interceptor-middlewares`\n );\n}\n\nexport const safeCatchAsync = (\n middleware: any,\n options: { type: \"error\" | \"normal\" } = { type: \"normal\" }\n) => {\n if (middleware && typeof middleware !== \"function\")\n throw Error(\n `Validation Error: Invalid interceptor of type ${typeof middleware}, they must be a function or an array of function. checkout https://arkosjs.com/docs/core-concepts/interceptor-middlewares`\n );\n\n return middleware ? catchAsync(middleware, options) : undefined;\n};\n\nexport const processMiddleware = (\n middleware: any,\n options: { type: \"error\" | \"normal\" } = { type: \"normal\" }\n) => {\n if (!middleware) return [];\n if (Array.isArray(middleware)) {\n return middleware\n .filter((mw) => !!mw)\n .map((mw) => {\n throwErrorIfInterceptorIsNotAFunction(mw);\n return safeCatchAsync(mw, options);\n }) as CatchAsyncReturnType[];\n } else {\n throwErrorIfInterceptorIsNotAFunction(middleware);\n return [safeCatchAsync(middleware, options)] as CatchAsyncReturnType[];\n }\n};\n\nexport function getAuthenticationConfig(\n endpoint: RouterEndpoint | AuthRouterEndpoint | FileUploadRouterEndpoint,\n modelName: string,\n authConfigs?: AuthConfigs\n) {\n const actionMap: Record<any, AccessAction> = {\n createOne: \"Create\",\n findOneAuthAction: \"View\",\n findManyAuthAction: \"View\",\n findMany: \"View\",\n createMany: \"Create\",\n updateMany: \"Update\",\n deleteMany: \"Delete\",\n findOne: \"View\",\n updateOne: \"Update\",\n deleteOne: \"Delete\",\n };\n\n const action = actionMap[endpoint];\n const authenticationControl = authConfigs?.authenticationControl;\n\n if (authenticationControl === true) return true;\n else if (\n (authenticationControl &&\n typeof authenticationControl === \"object\" &&\n (authenticationControl[action] === true ||\n authenticationControl[action] !== false)) ||\n (!authenticationControl && authenticationControl !== false)\n ) {\n return {\n resource: kebabCase(pluralize.singular(modelName)),\n action: action,\n rule: Array.isArray(authConfigs?.accessControl)\n ? authConfigs?.accessControl\n : (authConfigs?.accessControl || {})?.[action],\n };\n }\n\n return false;\n}\n\n/**\n * Creates a route configuration object for a specific endpoint\n * @param endpoint - The router endpoint type\n * @param routeName - The pluralized route name (e.g., \"users\")\n * @param path - The path suffix for the route (e.g., \"\", \"/:id\", \"/many\")\n * @param routerConfig - The router configuration object\n * @param modelNameInKebab - The model name in kebab-case\n * @param authConfigs - Authentication configurations\n * @param validationSchema - Optional validation schema for the endpoint\n * @returns Route configuration object\n */\nexport function createRouteConfig(\n arkosConfig: ArkosConfig,\n endpoint: RouterEndpoint | AuthRouterEndpoint | FileUploadRouterEndpoint,\n routeName: string,\n path: string,\n routerConfig: RouterConfig<any>,\n modelNameInKebab: string,\n authConfigs: any,\n validationSchema?: any\n) {\n let config: ArkosRouteConfig = {\n path: `/${routeName}${path}`,\n disabled: isEndpointDisabled(routerConfig, endpoint),\n ...(arkosConfig.authentication?.mode && {\n authentication:\n typeof authConfigs === \"boolean\"\n ? authConfigs\n : getAuthenticationConfig(endpoint, modelNameInKebab, authConfigs),\n }),\n validation: validationSchema ? { body: validationSchema } : undefined,\n };\n\n const endpointConfig = (routerConfig as any)[endpoint];\n if (endpointConfig) config = deepmerge(config, endpointConfig);\n\n return config;\n}\n"]}
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.default = initializeApp;
7
+ const file_upload_router_1 = require("../modules/file-upload/file-upload.router.js");
8
+ const auth_router_1 = require("../modules/auth/auth.router.js");
9
+ const base_router_1 = require("../modules/base/base.router.js");
10
+ const error_handler_1 = require("../exports/error-handler/index.js");
11
+ const error_handler_controller_1 = __importDefault(require("../modules/error-handler/error-handler.controller.js"));
12
+ const server_1 = require("../server.js");
13
+ const arkos_config_helpers_1 = require("./helpers/arkos-config.helpers.js");
14
+ const swagger_router_1 = require("../modules/swagger/swagger.router.js");
15
+ function initializeApp(app) {
16
+ const config = (0, server_1.getArkosConfig)();
17
+ const globalPrefix = config.globalPrefix || "/api";
18
+ const routersConfig = config?.routers;
19
+ const middlewaresConfig = config?.middlewares;
20
+ if (routersConfig?.welcomeRoute !== false) {
21
+ if (typeof routersConfig?.welcomeRoute === "function") {
22
+ app.get({ path: globalPrefix }, routersConfig.welcomeRoute);
23
+ }
24
+ else {
25
+ app.get({ path: globalPrefix }, (_, res) => {
26
+ res.status(200).json({ message: config.welcomeMessage });
27
+ });
28
+ }
29
+ }
30
+ const fileUploadRouter = (0, file_upload_router_1.getFileUploadRouter)(config);
31
+ app.use(fileUploadRouter);
32
+ if ((0, arkos_config_helpers_1.isAuthenticationEnabled)()) {
33
+ const authRouter = (0, auth_router_1.getAuthRouter)(config);
34
+ app.use(globalPrefix, authRouter);
35
+ }
36
+ const modelsRouter = (0, base_router_1.getPrismaModelsRouter)(config);
37
+ app.use(globalPrefix, modelsRouter);
38
+ app.use(globalPrefix, (0, base_router_1.getAvailableResourcesAndRoutesRouter)());
39
+ if (config.swagger &&
40
+ (process.env.ARKOS_BUILD !== "true" ||
41
+ config.swagger.enableAfterBuild === true))
42
+ app.use(globalPrefix, (0, swagger_router_1.getSwaggerRouter)(config, app));
43
+ app.use("*", (req) => {
44
+ throw new error_handler_1.AppError("Route not found", 404, { route: req.originalUrl }, "RouteNotFound");
45
+ });
46
+ if (middlewaresConfig?.errorHandler !== false) {
47
+ if (typeof middlewaresConfig?.errorHandler === "function") {
48
+ app.use(middlewaresConfig.errorHandler);
49
+ }
50
+ else {
51
+ app.use(error_handler_controller_1.default);
52
+ }
53
+ }
54
+ return app;
55
+ }
56
+ //# sourceMappingURL=initialize-app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initialize-app.js","sourceRoot":"","sources":["../../../src/utils/initialize-app.ts"],"names":[],"mappings":";;;;;AAaA,gCAuDC;AAnED,kFAAgF;AAChF,6DAA4D;AAC5D,6DAGqC;AACrC,4DAAoD;AACpD,iHAA6E;AAC7E,sCAA2C;AAC3C,yEAAyE;AACzE,sEAAqE;AAErE,SAAwB,aAAa,CAAC,GAAU;IAC9C,MAAM,MAAM,GAAG,IAAA,uBAAc,GAAE,CAAC;IAChC,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC;IAEnD,MAAM,aAAa,GAAG,MAAM,EAAE,OAAO,CAAC;IACtC,MAAM,iBAAiB,GAAG,MAAM,EAAE,WAAW,CAAC;IAE9C,IAAI,aAAa,EAAE,YAAY,KAAK,KAAK,EAAE,CAAC;QAC1C,IAAI,OAAO,aAAa,EAAE,YAAY,KAAK,UAAU,EAAE,CAAC;YACtD,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;QAC9D,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;gBACzC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;YAC3D,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,gBAAgB,GAAG,IAAA,wCAAmB,EAAC,MAAM,CAAC,CAAC;IACrD,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAE1B,IAAI,IAAA,8CAAuB,GAAE,EAAE,CAAC;QAC9B,MAAM,UAAU,GAAG,IAAA,2BAAa,EAAC,MAAM,CAAC,CAAC;QACzC,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,YAAY,GAAG,IAAA,mCAAqB,EAAC,MAAM,CAAC,CAAC;IACnD,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IAGpC,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,IAAA,kDAAoC,GAAE,CAAC,CAAC;IAE9D,IACE,MAAM,CAAC,OAAO;QACd,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,MAAM;YACjC,MAAM,CAAC,OAAO,CAAC,gBAAgB,KAAK,IAAI,CAAC;QAE3C,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,IAAA,iCAAgB,EAAC,MAAM,EAAE,GAAU,CAAC,CAAC,CAAC;IAE9D,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE;QACnB,MAAM,IAAI,wBAAQ,CAChB,iBAAiB,EACjB,GAAG,EACH,EAAE,KAAK,EAAE,GAAG,CAAC,WAAW,EAAE,EAC1B,eAAe,CAChB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAI,iBAAiB,EAAE,YAAY,KAAK,KAAK,EAAE,CAAC;QAC9C,IAAI,OAAO,iBAAiB,EAAE,YAAY,KAAK,UAAU,EAAE,CAAC;YAC1D,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,GAAG,CAAC,kCAAY,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC","sourcesContent":["import { Arkos } from \"../types/arkos\";\nimport { getFileUploadRouter } from \"../modules/file-upload/file-upload.router\";\nimport { getAuthRouter } from \"../modules/auth/auth.router\";\nimport {\n getAvailableResourcesAndRoutesRouter,\n getPrismaModelsRouter,\n} from \"../modules/base/base.router\";\nimport { AppError } from \"../exports/error-handler\";\nimport errorHandler from \"../modules/error-handler/error-handler.controller\";\nimport { getArkosConfig } from \"../server\";\nimport { isAuthenticationEnabled } from \"./helpers/arkos-config.helpers\";\nimport { getSwaggerRouter } from \"../modules/swagger/swagger.router\";\n\nexport default function initializeApp(app: Arkos) {\n const config = getArkosConfig();\n const globalPrefix = config.globalPrefix || \"/api\";\n\n const routersConfig = config?.routers;\n const middlewaresConfig = config?.middlewares;\n\n if (routersConfig?.welcomeRoute !== false) {\n if (typeof routersConfig?.welcomeRoute === \"function\") {\n app.get({ path: globalPrefix }, routersConfig.welcomeRoute);\n } else {\n app.get({ path: globalPrefix }, (_, res) => {\n res.status(200).json({ message: config.welcomeMessage });\n });\n }\n }\n\n const fileUploadRouter = getFileUploadRouter(config);\n app.use(fileUploadRouter);\n\n if (isAuthenticationEnabled()) {\n const authRouter = getAuthRouter(config);\n app.use(globalPrefix, authRouter);\n }\n\n const modelsRouter = getPrismaModelsRouter(config);\n app.use(globalPrefix, modelsRouter);\n\n // app.use(knowModulesRouter);\n app.use(globalPrefix, getAvailableResourcesAndRoutesRouter());\n\n if (\n config.swagger &&\n (process.env.ARKOS_BUILD !== \"true\" ||\n config.swagger.enableAfterBuild === true)\n )\n app.use(globalPrefix, getSwaggerRouter(config, app as any));\n\n app.use(\"*\", (req) => {\n throw new AppError(\n \"Route not found\",\n 404,\n { route: req.originalUrl },\n \"RouteNotFound\"\n );\n });\n\n if (middlewaresConfig?.errorHandler !== false) {\n if (typeof middlewaresConfig?.errorHandler === \"function\") {\n app.use(middlewaresConfig.errorHandler);\n } else {\n app.use(errorHandler);\n }\n }\n return app;\n}\n"]}
@@ -4,10 +4,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.PrismaJsonSchemaGenerator = void 0;
7
- const deepmerge_helper_1 = __importDefault(require("../helpers/deepmerge.helper"));
8
- const dynamic_loader_1 = require("../dynamic-loader");
9
- const prisma_schema_parser_1 = __importDefault(require("./prisma-schema-parser"));
10
- const swagger_router_helpers_1 = require("../../modules/swagger/utils/helpers/swagger.router.helpers");
7
+ const deepmerge_helper_1 = __importDefault(require("../helpers/deepmerge.helper.js"));
8
+ const dynamic_loader_1 = require("../dynamic-loader.js");
9
+ const prisma_schema_parser_1 = __importDefault(require("./prisma-schema-parser.js"));
10
+ const swagger_router_helpers_1 = require("../../modules/swagger/utils/helpers/swagger.router.helpers.js");
11
11
  class PrismaJsonSchemaGenerator {
12
12
  constructor() {
13
13
  this.schema = prisma_schema_parser_1.default.parse();
@@ -5,9 +5,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.PrismaSchemaParser = void 0;
7
7
  const path_1 = __importDefault(require("path"));
8
- const change_case_helpers_1 = require("../helpers/change-case.helpers");
8
+ const change_case_helpers_1 = require("../helpers/change-case.helpers.js");
9
9
  const fs_1 = __importDefault(require("fs"));
10
- const sheu_1 = __importDefault(require("../sheu"));
10
+ const sheu_1 = __importDefault(require("../sheu.js"));
11
11
  class PrismaSchemaParser {
12
12
  constructor() {
13
13
  this.enums = [];
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.default = setupApp;
7
+ const compression_1 = __importDefault(require("compression"));
8
+ const arkos_config_helpers_1 = require("./helpers/arkos-config.helpers.js");
9
+ const express_rate_limit_1 = __importDefault(require("express-rate-limit"));
10
+ const deepmerge_helper_1 = __importDefault(require("./helpers/deepmerge.helper.js"));
11
+ const cors_1 = __importDefault(require("cors"));
12
+ const express_1 = __importDefault(require("express"));
13
+ const cookie_parser_1 = __importDefault(require("cookie-parser"));
14
+ const query_parser_helpers_1 = require("./helpers/query-parser.helpers.js");
15
+ const base_middlewares_1 = require("../modules/base/base.middlewares.js");
16
+ const debugger_service_1 = __importDefault(require("../modules/debugger/debugger.service.js"));
17
+ function setupApp(app) {
18
+ const config = (0, arkos_config_helpers_1.getArkosConfig)();
19
+ const middlewaresConfig = config?.middlewares;
20
+ if (middlewaresConfig?.compression !== false) {
21
+ if (typeof middlewaresConfig?.compression === "function") {
22
+ app.use(middlewaresConfig.compression);
23
+ }
24
+ else {
25
+ app.use((0, compression_1.default)(middlewaresConfig?.compression || {}));
26
+ }
27
+ }
28
+ if (middlewaresConfig?.rateLimit !== false) {
29
+ if (typeof middlewaresConfig?.rateLimit === "function") {
30
+ app.use(middlewaresConfig.rateLimit);
31
+ }
32
+ else {
33
+ app.use((0, express_rate_limit_1.default)((0, deepmerge_helper_1.default)({
34
+ windowMs: 60 * 1000,
35
+ limit: 300,
36
+ standardHeaders: "draft-7",
37
+ legacyHeaders: false,
38
+ handler: (_, res) => {
39
+ res.status(429).json({
40
+ message: "Too many requests, please try again later",
41
+ });
42
+ },
43
+ }, middlewaresConfig?.rateLimit || {})));
44
+ }
45
+ }
46
+ if (middlewaresConfig?.cors !== false) {
47
+ if (typeof middlewaresConfig?.cors === "function") {
48
+ app.use(middlewaresConfig.cors);
49
+ }
50
+ else {
51
+ app.use((0, cors_1.default)(middlewaresConfig?.cors?.customHandler
52
+ ? middlewaresConfig.cors.customHandler
53
+ : (0, deepmerge_helper_1.default)({
54
+ origin: (origin, cb) => {
55
+ const allowed = middlewaresConfig?.cors
56
+ ?.allowedOrigins;
57
+ if (allowed === "*")
58
+ cb(null, true);
59
+ else if (Array.isArray(allowed))
60
+ cb(null, !origin || allowed?.includes?.(origin));
61
+ else if (typeof allowed === "string")
62
+ cb(null, !origin || allowed === origin);
63
+ else
64
+ cb(null, false);
65
+ },
66
+ methods: ["GET", "POST", "PUT", "DELETE", "PATCH", "OPTIONS"],
67
+ allowedHeaders: [
68
+ "Content-Type",
69
+ "Authorization",
70
+ "Connection",
71
+ ],
72
+ credentials: true,
73
+ }, middlewaresConfig?.cors?.options || {})));
74
+ }
75
+ }
76
+ if (middlewaresConfig?.expressJson !== false) {
77
+ if (typeof middlewaresConfig?.expressJson === "function") {
78
+ app.use(middlewaresConfig.expressJson);
79
+ }
80
+ else {
81
+ app.use(express_1.default.json(middlewaresConfig?.expressJson || {}));
82
+ }
83
+ }
84
+ if (middlewaresConfig?.cookieParser !== false) {
85
+ if (typeof middlewaresConfig?.cookieParser === "function") {
86
+ app.use(middlewaresConfig.cookieParser);
87
+ }
88
+ else {
89
+ const params = Array.isArray(middlewaresConfig?.cookieParser)
90
+ ? middlewaresConfig.cookieParser
91
+ : [];
92
+ app.use((0, cookie_parser_1.default)(...params));
93
+ }
94
+ }
95
+ if (middlewaresConfig?.queryParser !== false) {
96
+ if (typeof middlewaresConfig?.queryParser === "function") {
97
+ app.use(middlewaresConfig.queryParser);
98
+ }
99
+ else {
100
+ app.use((0, query_parser_helpers_1.queryParser)((0, deepmerge_helper_1.default)({
101
+ parseNull: true,
102
+ parseUndefined: true,
103
+ parseBoolean: true,
104
+ parseNumber: true,
105
+ }, middlewaresConfig?.queryParser || {})));
106
+ }
107
+ }
108
+ if (middlewaresConfig?.requestLogger !== false) {
109
+ if (typeof middlewaresConfig?.requestLogger === "function") {
110
+ app.use(middlewaresConfig.requestLogger);
111
+ }
112
+ else {
113
+ app.use(base_middlewares_1.handleRequestLogs);
114
+ }
115
+ }
116
+ app.use(debugger_service_1.default.logRequestInfo);
117
+ return app;
118
+ }
119
+ //# sourceMappingURL=setup-app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-app.js","sourceRoot":"","sources":["../../../src/utils/setup-app.ts"],"names":[],"mappings":"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","sourcesContent":["import compression from \"compression\";\nimport { Arkos } from \"../types/arkos\";\nimport { getArkosConfig } from \"./helpers/arkos-config.helpers\";\nimport rateLimit from \"express-rate-limit\";\nimport deepmerge from \"./helpers/deepmerge.helper\";\nimport cors from \"cors\";\nimport express from \"express\";\nimport cookieParser from \"cookie-parser\";\nimport { queryParser } from \"./helpers/query-parser.helpers\";\nimport { handleRequestLogs } from \"../modules/base/base.middlewares\";\nimport debuggerService from \"../modules/debugger/debugger.service\";\n\nexport default function setupApp(app: Arkos) {\n const config = getArkosConfig();\n\n const middlewaresConfig = config?.middlewares;\n\n if (middlewaresConfig?.compression !== false) {\n if (typeof middlewaresConfig?.compression === \"function\") {\n app.use(middlewaresConfig.compression);\n } else {\n app.use(compression(middlewaresConfig?.compression || {}));\n }\n }\n\n if (middlewaresConfig?.rateLimit !== false) {\n if (typeof middlewaresConfig?.rateLimit === \"function\") {\n app.use(middlewaresConfig.rateLimit);\n } else {\n app.use(\n rateLimit(\n deepmerge(\n {\n windowMs: 60 * 1000,\n limit: 300,\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 middlewaresConfig?.rateLimit || {}\n )\n )\n );\n }\n }\n\n if (middlewaresConfig?.cors !== false) {\n if (typeof middlewaresConfig?.cors === \"function\") {\n app.use(middlewaresConfig.cors);\n } else {\n app.use(\n cors(\n middlewaresConfig?.cors?.customHandler\n ? middlewaresConfig.cors.customHandler\n : deepmerge(\n {\n origin: (\n origin: string,\n cb: (err: Error | null, allow?: boolean) => void\n ) => {\n const allowed = (middlewaresConfig?.cors as any)\n ?.allowedOrigins;\n\n if (allowed === \"*\") cb(null, true);\n else if (Array.isArray(allowed))\n cb(null, !origin || allowed?.includes?.(origin));\n else if (typeof allowed === \"string\")\n cb(null, !origin || allowed === origin);\n else cb(null, false);\n },\n\n methods: [\"GET\", \"POST\", \"PUT\", \"DELETE\", \"PATCH\", \"OPTIONS\"],\n allowedHeaders: [\n \"Content-Type\",\n \"Authorization\",\n \"Connection\",\n ],\n credentials: true,\n },\n middlewaresConfig?.cors?.options || {}\n )\n )\n );\n }\n }\n\n if (middlewaresConfig?.expressJson !== false) {\n if (typeof middlewaresConfig?.expressJson === \"function\") {\n app.use(middlewaresConfig.expressJson);\n } else {\n app.use(express.json(middlewaresConfig?.expressJson || {}));\n }\n }\n\n if (middlewaresConfig?.cookieParser !== false) {\n if (typeof middlewaresConfig?.cookieParser === \"function\") {\n app.use(middlewaresConfig.cookieParser);\n } else {\n const params = Array.isArray(middlewaresConfig?.cookieParser)\n ? middlewaresConfig.cookieParser\n : [];\n app.use(cookieParser(...(params as any))); // FIXME: check types correctly\n }\n }\n\n if (middlewaresConfig?.queryParser !== false) {\n if (typeof middlewaresConfig?.queryParser === \"function\") {\n app.use(middlewaresConfig.queryParser);\n } else {\n app.use(\n queryParser(\n deepmerge(\n {\n parseNull: true,\n parseUndefined: true,\n parseBoolean: true,\n parseNumber: true,\n },\n middlewaresConfig?.queryParser || {}\n )\n )\n );\n }\n }\n\n if (middlewaresConfig?.requestLogger !== false) {\n if (typeof middlewaresConfig?.requestLogger === \"function\") {\n app.use(middlewaresConfig.requestLogger);\n } else {\n app.use(handleRequestLogs);\n }\n }\n\n app.use(debuggerService.logRequestInfo);\n\n return app;\n}\n"]}
@@ -0,0 +1,32 @@
1
+ import authService from "../../modules/auth/auth.service.js";
2
+ export function ArkosPolicy(resource) {
3
+ return buildPolicy(resource, {});
4
+ }
5
+ function buildPolicy(resource, store) {
6
+ const rule = (action, config) => {
7
+ const newStore = { ...store, [action]: config };
8
+ return buildPolicy(resource, newStore);
9
+ };
10
+ const actionEntries = Object.fromEntries(Object.entries(store).flatMap(([action, config]) => {
11
+ const authEntry = {
12
+ resource,
13
+ action,
14
+ rule: config,
15
+ };
16
+ const checker = authService.permission(action, resource, {
17
+ [action]: config || {},
18
+ });
19
+ const canKey = `can${action.charAt(0).toUpperCase()}${action.slice(1)}`;
20
+ return [
21
+ [action, authEntry],
22
+ [canKey, checker],
23
+ ];
24
+ }));
25
+ return {
26
+ __type: "ArkosPolicy",
27
+ resource,
28
+ rule,
29
+ ...actionEntries,
30
+ };
31
+ }
32
+ //# sourceMappingURL=index.js.map