@atlantjs/arch 2.6.4 → 3.0.0

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 (151) hide show
  1. package/@tool-box/tests/builders/errors/dummies/failure.dummy.d.ts +3 -0
  2. package/{tests → @tool-box/tests}/builders/errors/dummies/failure.dummy.js +1 -1
  3. package/@tool-box/tests/builders/generic/dummies/uuid.dummy.d.ts +3 -0
  4. package/{tests → @tool-box/tests}/builders/generic/dummies/uuid.dummy.js +1 -1
  5. package/{tests → @tool-box/tests}/create-fake-usecase.d.ts +1 -1
  6. package/@tool-box/tests/faker/faker.d.ts +0 -0
  7. package/@tool-box/tests/faker/faker.js +1 -0
  8. package/@tool-box/utils/datatypes/boolean-utils.d.ts +8 -0
  9. package/@tool-box/utils/datatypes/boolean-utils.js +19 -0
  10. package/{utils → @tool-box/utils}/ducts/common.d.ts +2 -2
  11. package/{utils → @tool-box/utils}/ducts/common.js +3 -3
  12. package/{utils → @tool-box/utils}/ducts/optional-type.d.ts +5 -5
  13. package/{utils → @tool-box/utils}/ducts/optional-type.js +11 -11
  14. package/{utils → @tool-box/utils}/ducts/return-type.d.ts +3 -3
  15. package/{utils → @tool-box/utils}/ducts/return-type.js +14 -14
  16. package/{utils → @tool-box/utils}/http-client/http-client-response.d.ts +2 -2
  17. package/{utils → @tool-box/utils}/http-client/http-client-response.get-header.failure.d.ts +1 -1
  18. package/{utils → @tool-box/utils}/http-client/http-client-response.get-header.failure.js +1 -1
  19. package/{utils → @tool-box/utils}/http-client/http-client-response.js +2 -2
  20. package/@tool-box/utils/randoms/random-value.d.ts +5 -0
  21. package/@tool-box/utils/randoms/random-value.js +25 -0
  22. package/arch/modules/application/databases/database.factory.abstract.d.ts +3 -0
  23. package/arch/modules/application/databases/database.helper.abstract.d.ts +4 -0
  24. package/arch/modules/application/databases/database.helper.abstract.js +6 -0
  25. package/{objects/arch/application/errors → arch/modules/application/failures}/failure.abstract.d.ts +1 -1
  26. package/{objects/arch/application/errors → arch/modules/application/failures}/failure.abstract.js +3 -3
  27. package/arch/modules/application/failures/unknown-failure.d.ts +15 -0
  28. package/{objects/arch/application/errors/unknown-application-error.js → arch/modules/application/failures/unknown-failure.js} +3 -3
  29. package/arch/modules/application/injections.abstract.d.ts +11 -0
  30. package/arch/modules/application/injections.abstract.js +45 -0
  31. package/arch/modules/application/injections.abstract.type.d.ts +17 -0
  32. package/arch/modules/domain/entities/$array.abstract.d.ts +2 -0
  33. package/arch/modules/domain/entities/$array.abstract.js +6 -0
  34. package/arch/modules/domain/entities/$date.abstract.d.ts +2 -0
  35. package/{tests/faker/faker.js → arch/modules/domain/entities/$date.abstract.js} +3 -3
  36. package/{objects/datatypes → arch/modules/domain}/entities/$number.abstract.js +1 -1
  37. package/arch/modules/domain/entities/$object.abstract.d.ts +2 -0
  38. package/arch/modules/domain/entities/$object.abstract.js +6 -0
  39. package/arch/modules/domain/entities/solid.abstract.d.ts +4 -0
  40. package/arch/modules/domain/entities/solid.abstract.js +2 -0
  41. package/{objects/arch/domain/middleware-handler.absctract.d.ts → arch/modules/domain/middlewares/middleware.handler.absctract.d.ts} +1 -1
  42. package/arch/modules/domain/providers/provider.abstract.d.ts +2 -0
  43. package/arch/modules/domain/providers/provider.abstract.js +6 -0
  44. package/arch/modules/domain/solid.abstract.d.ts +4 -0
  45. package/arch/modules/domain/solid.abstract.js +2 -0
  46. package/{objects/arch/domain → arch/modules/domain/usecases}/usecase.abstract.d.ts +1 -1
  47. package/{objects/arch/infrastructure → arch/modules/infrastructure/controllers}/controller.abstract.d.ts +3 -3
  48. package/{objects/arch/infrastructure → arch/modules/infrastructure/controllers}/controller.abstract.js +2 -2
  49. package/arch/modules/infrastructure/controllers/payloads/payload.abstract.d.ts +2 -0
  50. package/arch/modules/infrastructure/controllers/payloads/payload.abstract.js +6 -0
  51. package/arch/modules/infrastructure/controllers/payloads/validators/validator.abstract.d.ts +2 -0
  52. package/arch/modules/infrastructure/controllers/payloads/validators/validator.abstract.js +6 -0
  53. package/arch/modules/infrastructure/controllers/responses/response.abstract.d.ts +4 -0
  54. package/{objects/arch/infrastructure → arch/modules/infrastructure/repositories/entities}/entity.abstract.d.ts +1 -1
  55. package/index.d.ts +30 -32
  56. package/index.js +56 -57
  57. package/package.json +6 -1
  58. package/setup/dependency-injections/container.d.ts +11 -0
  59. package/setup/dependency-injections/container.js +14 -0
  60. package/setup/dependency-injections/default-container.d.ts +4 -0
  61. package/setup/dependency-injections/default-container.js +20 -0
  62. package/setup/dependency-injections/di-container.abstract.d.ts +30 -0
  63. package/setup/dependency-injections/di-container.abstract.js +45 -0
  64. package/setup/dependency-injections/di-container.d.ts +3 -0
  65. package/setup/dependency-injections/di-container.js +6 -0
  66. package/setup/dependency-injections/index.d.ts +3 -0
  67. package/setup/dependency-injections/index.js +15 -0
  68. package/setup/env/env-vars.d.ts +7 -0
  69. package/setup/env/env-vars.js +28 -0
  70. package/setup/env/load-envs.d.ts +1 -0
  71. package/setup/env/load-envs.js +30 -0
  72. package/setup/index.d.ts +5 -0
  73. package/setup/index.js +37 -0
  74. package/setup/server/body-parser-middleware.d.ts +9 -0
  75. package/setup/server/body-parser-middleware.js +31 -0
  76. package/setup/server/cors-middleware.d.ts +10 -0
  77. package/setup/server/cors-middleware.js +38 -0
  78. package/setup/server/default-error-handler-middleware.d.ts +8 -0
  79. package/setup/server/default-error-handler-middleware.js +45 -0
  80. package/setup/server/server.d.ts +6 -0
  81. package/setup/server/server.js +61 -0
  82. package/tsconfig.tsbuildinfo +1 -1
  83. package/configs/env/env-vars.d.ts +0 -3
  84. package/configs/env/env-vars.js +0 -20
  85. package/external-files/biome.json +0 -47
  86. package/external-files/typescript/tsconfig-backend.json +0 -3
  87. package/external-files/typescript/tsconfig-default.json +0 -45
  88. package/external-files/typescript/tsconfig-frontend.json +0 -3
  89. package/external-files/typescript/tsconfig-lib.json +0 -6
  90. package/external-files/typescript/tsconfig-mobile.json +0 -3
  91. package/objects/arch/application/errors/unknown-application-error.d.ts +0 -15
  92. package/objects/arch/application/injections.abstract.d.ts +0 -4
  93. package/objects/arch/application/injections.abstract.js +0 -6
  94. package/objects/arch/application/injections.abstract.type.d.ts +0 -24
  95. package/objects/arch/domain/solid.abstract.d.ts +0 -4
  96. package/objects/arch/infrastructure/response.abstract.d.ts +0 -4
  97. package/tests/builders/errors/dummies/failure.dummy.d.ts +0 -3
  98. package/tests/builders/generic/dummies/uuid.dummy.d.ts +0 -3
  99. package/tests/faker/faker.d.ts +0 -2
  100. package/utils/randoms/random-enum-value.d.ts +0 -2
  101. package/utils/randoms/random-enum-value.js +0 -20
  102. package/utils/randoms/random-number.d.ts +0 -6
  103. package/utils/randoms/random-number.js +0 -6
  104. package/{tests → @tool-box/tests}/builders/errors/failure.builder.d.ts +0 -0
  105. package/{tests → @tool-box/tests}/builders/errors/failure.builder.js +1 -1
  106. /package/{tests → @tool-box/tests}/builders/generic/uuid.builder.d.ts +0 -0
  107. /package/{tests → @tool-box/tests}/builders/generic/uuid.builder.js +0 -0
  108. /package/{tests → @tool-box/tests}/create-fake-usecase.js +0 -0
  109. /package/{tests → @tool-box/tests}/entity-builder.util.d.ts +0 -0
  110. /package/{tests → @tool-box/tests}/entity-builder.util.js +0 -0
  111. /package/{utils → @tool-box/utils}/arrays/extended-map.d.ts +0 -0
  112. /package/{utils → @tool-box/utils}/arrays/extended-map.js +0 -0
  113. /package/{utils → @tool-box/utils}/datatypes/generic-types.d.ts +0 -0
  114. /package/{utils → @tool-box/utils}/datatypes/generic-types.js +0 -0
  115. /package/{utils → @tool-box/utils}/datatypes/string-utils.d.ts +0 -0
  116. /package/{utils → @tool-box/utils}/datatypes/string-utils.js +0 -0
  117. /package/{utils → @tool-box/utils}/http-client/http-client-exception.d.ts +0 -0
  118. /package/{utils → @tool-box/utils}/http-client/http-client-exception.js +0 -0
  119. /package/{utils → @tool-box/utils}/http-client/http-client-request.d.ts +0 -0
  120. /package/{utils → @tool-box/utils}/http-client/http-client-request.js +0 -0
  121. /package/{utils → @tool-box/utils}/http-client/http-client.d.ts +0 -0
  122. /package/{utils → @tool-box/utils}/http-client/http-client.js +0 -0
  123. /package/{utils → @tool-box/utils}/type-guard/guardian-exception.d.ts +0 -0
  124. /package/{utils → @tool-box/utils}/type-guard/guardian-exception.js +0 -0
  125. /package/{utils → @tool-box/utils}/type-guard/guardian.d.ts +0 -0
  126. /package/{utils → @tool-box/utils}/type-guard/guardian.js +0 -0
  127. /package/{utils → @tool-box/utils}/type-guard/guardian.type.d.ts +0 -0
  128. /package/{utils → @tool-box/utils}/type-guard/guardian.type.js +0 -0
  129. /package/{objects/arch/application/errors/failure.abstract.type.js → arch/modules/application/databases/database.factory.abstract.js} +0 -0
  130. /package/{objects/arch/application/errors → arch/modules/application/failures}/failure.abstract.type.d.ts +0 -0
  131. /package/{objects/arch/application/injections.abstract.type.js → arch/modules/application/failures/failure.abstract.type.js} +0 -0
  132. /package/{objects/arch/domain/solid.abstract.js → arch/modules/application/injections.abstract.type.js} +0 -0
  133. /package/{objects/datatypes → arch/modules/domain}/entities/$boolean.abstract.d.ts +0 -0
  134. /package/{objects/datatypes → arch/modules/domain}/entities/$boolean.abstract.js +0 -0
  135. /package/{objects/datatypes → arch/modules/domain}/entities/$number.abstract.d.ts +0 -0
  136. /package/{objects/datatypes → arch/modules/domain}/entities/$string.abstract.d.ts +0 -0
  137. /package/{objects/datatypes → arch/modules/domain}/entities/$string.abstract.js +0 -0
  138. /package/{objects/datatypes → arch/modules/domain}/entities/uuid.abstract.d.ts +0 -0
  139. /package/{objects/datatypes → arch/modules/domain}/entities/uuid.abstract.js +0 -0
  140. /package/{objects/arch/infrastructure → arch/modules/domain/enums}/http-status-codes.enum.d.ts +0 -0
  141. /package/{objects/arch/infrastructure → arch/modules/domain/enums}/http-status-codes.enum.js +0 -0
  142. /package/{objects/configs → arch/modules/domain}/enums/node-envs.enum.d.ts +0 -0
  143. /package/{objects/configs → arch/modules/domain}/enums/node-envs.enum.js +0 -0
  144. /package/{objects/arch/domain/middleware-handler.absctract.js → arch/modules/domain/middlewares/middleware.handler.absctract.js} +0 -0
  145. /package/{objects/arch/domain → arch/modules/domain/repositories}/repository.abstract.d.ts +0 -0
  146. /package/{objects/arch/domain → arch/modules/domain/repositories}/repository.abstract.js +0 -0
  147. /package/{objects/arch/domain → arch/modules/domain/services}/service.abstract.d.ts +0 -0
  148. /package/{objects/arch/domain → arch/modules/domain/services}/service.abstract.js +0 -0
  149. /package/{objects/arch/domain → arch/modules/domain/usecases}/usecase.abstract.js +0 -0
  150. /package/{objects/arch/infrastructure → arch/modules/infrastructure/controllers/responses}/response.abstract.js +0 -0
  151. /package/{objects/arch/infrastructure → arch/modules/infrastructure/repositories/entities}/entity.abstract.js +0 -0
@@ -0,0 +1,38 @@
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.CorsMiddleware = void 0;
7
+ const cors_1 = __importDefault(require("cors"));
8
+ const env_vars_1 = require("../env/env-vars");
9
+ class CorsMiddleware {
10
+ constructor(corsSpecs) {
11
+ this.corsSpecs = corsSpecs;
12
+ this.cors = (0, cors_1.default)({
13
+ origin: this.parseCorsAllowedOrigins(),
14
+ credentials: true,
15
+ });
16
+ }
17
+ static create(corsSpecs = env_vars_1.CORS_ALLOWED_ORIGINS) {
18
+ const middleware = new CorsMiddleware(corsSpecs);
19
+ return (request, response, next) => middleware.use(request, response, next);
20
+ }
21
+ use(request, response, next) {
22
+ this.cors(request, response, next);
23
+ }
24
+ parseCorsAllowedOrigins() {
25
+ return this.corsSpecs.split(",").map((corsSpec) => {
26
+ if (corsSpec.startsWith("/")) {
27
+ return this.stringToRegex(corsSpec);
28
+ }
29
+ return corsSpec;
30
+ });
31
+ }
32
+ stringToRegex(expression) {
33
+ const flags = expression.replace(/.*\/([gimy]*)$/, "$1");
34
+ const pattern = expression.replace(new RegExp(`^/(.*?)/${flags}$`), "$1");
35
+ return new RegExp(pattern, flags);
36
+ }
37
+ }
38
+ exports.CorsMiddleware = CorsMiddleware;
@@ -0,0 +1,8 @@
1
+ import { ErrorRequestHandler, NextFunction, Request, Response } from "express";
2
+ export declare class DefaultErrorHandlerMiddleware {
3
+ static create(): ErrorRequestHandler;
4
+ use(error: Error, request: Request, response: Response, next: NextFunction): void;
5
+ private handleError;
6
+ private handleExceptions;
7
+ private logUnhandledError;
8
+ }
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DefaultErrorHandlerMiddleware = void 0;
4
+ const http_status_codes_enum_1 = require("../../arch/modules/domain/enums/http-status-codes.enum");
5
+ const routing_controllers_1 = require("routing-controllers");
6
+ class DefaultErrorHandlerMiddleware {
7
+ static create() {
8
+ const middleware = new DefaultErrorHandlerMiddleware();
9
+ return (error, request, response, next) => middleware.use(error, request, response, next);
10
+ }
11
+ use(error, request, response, next) {
12
+ if (response.headersSent) {
13
+ next(error);
14
+ return;
15
+ }
16
+ this.handleError(error, response);
17
+ }
18
+ handleError(error, response) {
19
+ if (!(error instanceof routing_controllers_1.HttpError)) {
20
+ this.handleExceptions(error, response);
21
+ return;
22
+ }
23
+ if (error.httpCode < http_status_codes_enum_1.HttpStatusCodes.INTERNAL_SERVER_ERROR) {
24
+ response.status(error.httpCode).send(error);
25
+ return;
26
+ }
27
+ response.status(error.httpCode).send({
28
+ code: http_status_codes_enum_1.HttpStatusCodes[error.httpCode].toLocaleLowerCase(),
29
+ message: http_status_codes_enum_1.HttpStatusCodes[error.httpCode],
30
+ });
31
+ }
32
+ handleExceptions(error, response) {
33
+ this.logUnhandledError(error);
34
+ response.status(http_status_codes_enum_1.HttpStatusCodes.INTERNAL_SERVER_ERROR).send({
35
+ code: "internal_error",
36
+ message: "Internal server error",
37
+ });
38
+ }
39
+ logUnhandledError(error) {
40
+ console.error("\nUnhandled request error", {
41
+ error,
42
+ });
43
+ }
44
+ }
45
+ exports.DefaultErrorHandlerMiddleware = DefaultErrorHandlerMiddleware;
@@ -0,0 +1,6 @@
1
+ export declare class Server {
2
+ static readonly instance: import("express-serve-static-core").Express;
3
+ private static readonly routingOptions;
4
+ static initialize(): void;
5
+ private static logFooterDevelopmentMessage;
6
+ }
@@ -0,0 +1,61 @@
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.Server = void 0;
7
+ const guardian_1 = require("@atlantjs/guardian");
8
+ const node_envs_enum_1 = require("../../arch/modules/domain/enums/node-envs.enum");
9
+ const dependency_injections_1 = require("../dependency-injections");
10
+ const env_vars_1 = require("../env/env-vars");
11
+ const body_parser_middleware_1 = require("./body-parser-middleware");
12
+ const cors_middleware_1 = require("./cors-middleware");
13
+ const default_error_handler_middleware_1 = require("./default-error-handler-middleware");
14
+ const cookie_parser_1 = __importDefault(require("cookie-parser"));
15
+ const express_1 = __importDefault(require("express"));
16
+ const helmet_1 = __importDefault(require("helmet"));
17
+ const routing_controllers_1 = require("routing-controllers");
18
+ var LogMessage;
19
+ (function (LogMessage) {
20
+ LogMessage["$start_server"] = "\n\uD83D\uDDA5\uFE0F Starting server...";
21
+ LogMessage["$started_server"] = "\u2714\uFE0F Server running on port ";
22
+ LogMessage["$break_line"] = "\n";
23
+ LogMessage["$line"] = "========================================";
24
+ LogMessage["$development_message"] = "\uD83D\uDE80 You are in the development environment\n Ready to code!";
25
+ })(LogMessage || (LogMessage = {}));
26
+ class Server {
27
+ static initialize() {
28
+ Server.instance.disable("x-powered-by");
29
+ Server.instance.set("trust proxy", ["uniquelocal", "loopback"]);
30
+ Server.instance.use((0, helmet_1.default)());
31
+ Server.instance.use(cors_middleware_1.CorsMiddleware.create());
32
+ Server.instance.use((0, cookie_parser_1.default)());
33
+ Server.instance.use(body_parser_middleware_1.BodyParserMiddleware.create());
34
+ Server.instance.use(default_error_handler_middleware_1.DefaultErrorHandlerMiddleware.create());
35
+ (0, routing_controllers_1.useContainer)(dependency_injections_1.diContainer);
36
+ (0, routing_controllers_1.useExpressServer)(Server.instance, Server.routingOptions);
37
+ console.info(LogMessage.$start_server);
38
+ Server.instance.listen(env_vars_1.APP_PORT, () => {
39
+ console.info(LogMessage.$started_server + env_vars_1.APP_PORT);
40
+ if (guardian_1.Guardian.isEqual(env_vars_1.ENVIRONMENT, node_envs_enum_1.NodeEnvs.development)) {
41
+ Server.logFooterDevelopmentMessage();
42
+ }
43
+ });
44
+ }
45
+ static logFooterDevelopmentMessage() {
46
+ console.info(LogMessage.$break_line);
47
+ console.info(LogMessage.$line);
48
+ console.info(LogMessage.$development_message);
49
+ console.info(LogMessage.$line);
50
+ }
51
+ }
52
+ exports.Server = Server;
53
+ Server.instance = (0, express_1.default)();
54
+ Server.routingOptions = {
55
+ validation: true,
56
+ classTransformer: true,
57
+ plainToClassTransformOptions: {
58
+ enableImplicitConversion: false,
59
+ },
60
+ defaultErrorHandler: false,
61
+ };