plutin 1.2.3 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (235) hide show
  1. package/dist/index.cjs.map +1 -1
  2. package/dist/index.d.cts +286 -27
  3. package/dist/index.d.ts +286 -27
  4. package/dist/{index.js → index.mjs} +1 -1
  5. package/package.json +5 -4
  6. package/dist/base-controller-68008870.d.ts +0 -46
  7. package/dist/core/decorators/controller-http-decorator.cjs +0 -310
  8. package/dist/core/decorators/controller-http-decorator.cjs.map +0 -1
  9. package/dist/core/decorators/controller-http-decorator.d.cts +0 -13
  10. package/dist/core/decorators/controller-http-decorator.d.ts +0 -13
  11. package/dist/core/decorators/controller-http-decorator.js +0 -285
  12. package/dist/core/decorators/controller-http-decorator.js.map +0 -1
  13. package/dist/core/decorators/dependency-container.cjs +0 -95
  14. package/dist/core/decorators/dependency-container.cjs.map +0 -1
  15. package/dist/core/decorators/dependency-container.d.cts +0 -22
  16. package/dist/core/decorators/dependency-container.d.ts +0 -22
  17. package/dist/core/decorators/dependency-container.js +0 -71
  18. package/dist/core/decorators/dependency-container.js.map +0 -1
  19. package/dist/core/entities/aggregate-root.cjs +0 -99
  20. package/dist/core/entities/aggregate-root.cjs.map +0 -1
  21. package/dist/core/entities/aggregate-root.d.cts +0 -8
  22. package/dist/core/entities/aggregate-root.d.ts +0 -8
  23. package/dist/core/entities/aggregate-root.js +0 -74
  24. package/dist/core/entities/aggregate-root.js.map +0 -1
  25. package/dist/core/entities/common-dto.cjs +0 -19
  26. package/dist/core/entities/common-dto.cjs.map +0 -1
  27. package/dist/core/entities/common-dto.d.cts +0 -10
  28. package/dist/core/entities/common-dto.d.ts +0 -10
  29. package/dist/core/entities/common-dto.js +0 -1
  30. package/dist/core/entities/common-dto.js.map +0 -1
  31. package/dist/core/entities/domain-event.cjs +0 -19
  32. package/dist/core/entities/domain-event.cjs.map +0 -1
  33. package/dist/core/entities/domain-event.d.cts +0 -6
  34. package/dist/core/entities/domain-event.d.ts +0 -6
  35. package/dist/core/entities/domain-event.js +0 -1
  36. package/dist/core/entities/domain-event.js.map +0 -1
  37. package/dist/core/entities/entity.cjs +0 -92
  38. package/dist/core/entities/entity.cjs.map +0 -1
  39. package/dist/core/entities/entity.d.cts +0 -18
  40. package/dist/core/entities/entity.d.ts +0 -18
  41. package/dist/core/entities/entity.js +0 -67
  42. package/dist/core/entities/entity.js.map +0 -1
  43. package/dist/core/entities/optional.cjs +0 -19
  44. package/dist/core/entities/optional.cjs.map +0 -1
  45. package/dist/core/entities/optional.d.cts +0 -3
  46. package/dist/core/entities/optional.d.ts +0 -3
  47. package/dist/core/entities/optional.js +0 -1
  48. package/dist/core/entities/optional.js.map +0 -1
  49. package/dist/core/entities/unique-entity-id.cjs +0 -50
  50. package/dist/core/entities/unique-entity-id.cjs.map +0 -1
  51. package/dist/core/entities/unique-entity-id.d.cts +0 -9
  52. package/dist/core/entities/unique-entity-id.d.ts +0 -9
  53. package/dist/core/entities/unique-entity-id.js +0 -27
  54. package/dist/core/entities/unique-entity-id.js.map +0 -1
  55. package/dist/core/entities/value-object.cjs +0 -40
  56. package/dist/core/entities/value-object.cjs.map +0 -1
  57. package/dist/core/entities/value-object.d.cts +0 -6
  58. package/dist/core/entities/value-object.d.ts +0 -6
  59. package/dist/core/entities/value-object.js +0 -17
  60. package/dist/core/entities/value-object.js.map +0 -1
  61. package/dist/core/entities/watched-list.cjs +0 -121
  62. package/dist/core/entities/watched-list.cjs.map +0 -1
  63. package/dist/core/entities/watched-list.d.cts +0 -27
  64. package/dist/core/entities/watched-list.d.ts +0 -27
  65. package/dist/core/entities/watched-list.js +0 -98
  66. package/dist/core/entities/watched-list.js.map +0 -1
  67. package/dist/core/entities/watched-list.test.cjs +0 -186
  68. package/dist/core/entities/watched-list.test.cjs.map +0 -1
  69. package/dist/core/entities/watched-list.test.d.cts +0 -2
  70. package/dist/core/entities/watched-list.test.d.ts +0 -2
  71. package/dist/core/entities/watched-list.test.js +0 -185
  72. package/dist/core/entities/watched-list.test.js.map +0 -1
  73. package/dist/core/errors/api-common-error.cjs +0 -38
  74. package/dist/core/errors/api-common-error.cjs.map +0 -1
  75. package/dist/core/errors/api-common-error.d.cts +0 -28
  76. package/dist/core/errors/api-common-error.d.ts +0 -28
  77. package/dist/core/errors/api-common-error.js +0 -13
  78. package/dist/core/errors/api-common-error.js.map +0 -1
  79. package/dist/core/errors/application-error.cjs +0 -54
  80. package/dist/core/errors/application-error.cjs.map +0 -1
  81. package/dist/core/errors/application-error.d.cts +0 -8
  82. package/dist/core/errors/application-error.d.ts +0 -8
  83. package/dist/core/errors/application-error.js +0 -33
  84. package/dist/core/errors/application-error.js.map +0 -1
  85. package/dist/core/errors/conflict-error.cjs +0 -56
  86. package/dist/core/errors/conflict-error.cjs.map +0 -1
  87. package/dist/core/errors/conflict-error.d.cts +0 -13
  88. package/dist/core/errors/conflict-error.d.ts +0 -13
  89. package/dist/core/errors/conflict-error.js +0 -35
  90. package/dist/core/errors/conflict-error.js.map +0 -1
  91. package/dist/core/errors/domain-error.cjs +0 -54
  92. package/dist/core/errors/domain-error.cjs.map +0 -1
  93. package/dist/core/errors/domain-error.d.cts +0 -8
  94. package/dist/core/errors/domain-error.d.ts +0 -8
  95. package/dist/core/errors/domain-error.js +0 -33
  96. package/dist/core/errors/domain-error.js.map +0 -1
  97. package/dist/core/errors/http-client-error.cjs +0 -54
  98. package/dist/core/errors/http-client-error.cjs.map +0 -1
  99. package/dist/core/errors/http-client-error.d.cts +0 -8
  100. package/dist/core/errors/http-client-error.d.ts +0 -8
  101. package/dist/core/errors/http-client-error.js +0 -33
  102. package/dist/core/errors/http-client-error.js.map +0 -1
  103. package/dist/core/errors/infra-error.cjs +0 -54
  104. package/dist/core/errors/infra-error.cjs.map +0 -1
  105. package/dist/core/errors/infra-error.d.cts +0 -8
  106. package/dist/core/errors/infra-error.d.ts +0 -8
  107. package/dist/core/errors/infra-error.js +0 -33
  108. package/dist/core/errors/infra-error.js.map +0 -1
  109. package/dist/core/errors/validation-error.cjs +0 -55
  110. package/dist/core/errors/validation-error.cjs.map +0 -1
  111. package/dist/core/errors/validation-error.d.cts +0 -8
  112. package/dist/core/errors/validation-error.d.ts +0 -8
  113. package/dist/core/errors/validation-error.js +0 -34
  114. package/dist/core/errors/validation-error.js.map +0 -1
  115. package/dist/core/http/base-controller.cjs +0 -295
  116. package/dist/core/http/base-controller.cjs.map +0 -1
  117. package/dist/core/http/base-controller.d.cts +0 -1
  118. package/dist/core/http/base-controller.d.ts +0 -1
  119. package/dist/core/http/base-controller.js +0 -270
  120. package/dist/core/http/base-controller.js.map +0 -1
  121. package/dist/core/http/dto-response.cjs +0 -19
  122. package/dist/core/http/dto-response.cjs.map +0 -1
  123. package/dist/core/http/dto-response.d.cts +0 -10
  124. package/dist/core/http/dto-response.d.ts +0 -10
  125. package/dist/core/http/dto-response.js +0 -1
  126. package/dist/core/http/dto-response.js.map +0 -1
  127. package/dist/core/http/error-notifier.cjs +0 -19
  128. package/dist/core/http/error-notifier.cjs.map +0 -1
  129. package/dist/core/http/error-notifier.d.cts +0 -1
  130. package/dist/core/http/error-notifier.d.ts +0 -1
  131. package/dist/core/http/error-notifier.js +0 -1
  132. package/dist/core/http/error-notifier.js.map +0 -1
  133. package/dist/core/http/get-take-and-skip.cjs +0 -40
  134. package/dist/core/http/get-take-and-skip.cjs.map +0 -1
  135. package/dist/core/http/get-take-and-skip.d.cts +0 -6
  136. package/dist/core/http/get-take-and-skip.d.ts +0 -6
  137. package/dist/core/http/get-take-and-skip.js +0 -17
  138. package/dist/core/http/get-take-and-skip.js.map +0 -1
  139. package/dist/core/http/health-connections.cjs +0 -42
  140. package/dist/core/http/health-connections.cjs.map +0 -1
  141. package/dist/core/http/health-connections.d.cts +0 -16
  142. package/dist/core/http/health-connections.d.ts +0 -16
  143. package/dist/core/http/health-connections.js +0 -23
  144. package/dist/core/http/health-connections.js.map +0 -1
  145. package/dist/core/http/http.cjs +0 -19
  146. package/dist/core/http/http.cjs.map +0 -1
  147. package/dist/core/http/http.d.cts +0 -10
  148. package/dist/core/http/http.d.ts +0 -10
  149. package/dist/core/http/http.js +0 -1
  150. package/dist/core/http/http.js.map +0 -1
  151. package/dist/core/http/pagination.cjs +0 -19
  152. package/dist/core/http/pagination.cjs.map +0 -1
  153. package/dist/core/http/pagination.d.cts +0 -9
  154. package/dist/core/http/pagination.d.ts +0 -9
  155. package/dist/core/http/pagination.js +0 -1
  156. package/dist/core/http/pagination.js.map +0 -1
  157. package/dist/core/http/validator.cjs +0 -19
  158. package/dist/core/http/validator.cjs.map +0 -1
  159. package/dist/core/http/validator.d.cts +0 -11
  160. package/dist/core/http/validator.d.ts +0 -11
  161. package/dist/core/http/validator.js +0 -1
  162. package/dist/core/http/validator.js.map +0 -1
  163. package/dist/infra/adapters/http/express-adapter.cjs +0 -139
  164. package/dist/infra/adapters/http/express-adapter.cjs.map +0 -1
  165. package/dist/infra/adapters/http/express-adapter.d.cts +0 -15
  166. package/dist/infra/adapters/http/express-adapter.d.ts +0 -15
  167. package/dist/infra/adapters/http/express-adapter.js +0 -106
  168. package/dist/infra/adapters/http/express-adapter.js.map +0 -1
  169. package/dist/infra/adapters/http/fastify-adapter.cjs +0 -124
  170. package/dist/infra/adapters/http/fastify-adapter.cjs.map +0 -1
  171. package/dist/infra/adapters/http/fastify-adapter.d.cts +0 -14
  172. package/dist/infra/adapters/http/fastify-adapter.d.ts +0 -14
  173. package/dist/infra/adapters/http/fastify-adapter.js +0 -91
  174. package/dist/infra/adapters/http/fastify-adapter.js.map +0 -1
  175. package/dist/infra/adapters/http/response-error-code.cjs +0 -35
  176. package/dist/infra/adapters/http/response-error-code.cjs.map +0 -1
  177. package/dist/infra/adapters/http/response-error-code.d.cts +0 -6
  178. package/dist/infra/adapters/http/response-error-code.d.ts +0 -6
  179. package/dist/infra/adapters/http/response-error-code.js +0 -10
  180. package/dist/infra/adapters/http/response-error-code.js.map +0 -1
  181. package/dist/infra/adapters/http/validate-controller-metadata.cjs +0 -42
  182. package/dist/infra/adapters/http/validate-controller-metadata.cjs.map +0 -1
  183. package/dist/infra/adapters/http/validate-controller-metadata.d.cts +0 -11
  184. package/dist/infra/adapters/http/validate-controller-metadata.d.ts +0 -11
  185. package/dist/infra/adapters/http/validate-controller-metadata.js +0 -19
  186. package/dist/infra/adapters/http/validate-controller-metadata.js.map +0 -1
  187. package/dist/infra/adapters/notifications/discord.cjs +0 -90
  188. package/dist/infra/adapters/notifications/discord.cjs.map +0 -1
  189. package/dist/infra/adapters/notifications/discord.d.cts +0 -14
  190. package/dist/infra/adapters/notifications/discord.d.ts +0 -14
  191. package/dist/infra/adapters/notifications/discord.js +0 -65
  192. package/dist/infra/adapters/notifications/discord.js.map +0 -1
  193. package/dist/infra/adapters/notifications/in-memory.cjs +0 -44
  194. package/dist/infra/adapters/notifications/in-memory.cjs.map +0 -1
  195. package/dist/infra/adapters/notifications/in-memory.d.cts +0 -8
  196. package/dist/infra/adapters/notifications/in-memory.d.ts +0 -8
  197. package/dist/infra/adapters/notifications/in-memory.js +0 -21
  198. package/dist/infra/adapters/notifications/in-memory.js.map +0 -1
  199. package/dist/infra/adapters/notifications/notification-factory.cjs +0 -219
  200. package/dist/infra/adapters/notifications/notification-factory.cjs.map +0 -1
  201. package/dist/infra/adapters/notifications/notification-factory.d.cts +0 -18
  202. package/dist/infra/adapters/notifications/notification-factory.d.ts +0 -18
  203. package/dist/infra/adapters/notifications/notification-factory.js +0 -184
  204. package/dist/infra/adapters/notifications/notification-factory.js.map +0 -1
  205. package/dist/infra/adapters/notifications/sentry.cjs +0 -129
  206. package/dist/infra/adapters/notifications/sentry.cjs.map +0 -1
  207. package/dist/infra/adapters/notifications/sentry.d.cts +0 -13
  208. package/dist/infra/adapters/notifications/sentry.d.ts +0 -13
  209. package/dist/infra/adapters/notifications/sentry.js +0 -96
  210. package/dist/infra/adapters/notifications/sentry.js.map +0 -1
  211. package/dist/infra/adapters/validators/zod/index.cjs +0 -179
  212. package/dist/infra/adapters/validators/zod/index.cjs.map +0 -1
  213. package/dist/infra/adapters/validators/zod/index.d.cts +0 -19
  214. package/dist/infra/adapters/validators/zod/index.d.ts +0 -19
  215. package/dist/infra/adapters/validators/zod/index.js +0 -154
  216. package/dist/infra/adapters/validators/zod/index.js.map +0 -1
  217. package/dist/infra/adapters/validators/zod/zod-map-error.cjs +0 -79
  218. package/dist/infra/adapters/validators/zod/zod-map-error.cjs.map +0 -1
  219. package/dist/infra/adapters/validators/zod/zod-map-error.d.cts +0 -15
  220. package/dist/infra/adapters/validators/zod/zod-map-error.d.ts +0 -15
  221. package/dist/infra/adapters/validators/zod/zod-map-error.js +0 -60
  222. package/dist/infra/adapters/validators/zod/zod-map-error.js.map +0 -1
  223. package/dist/infra/adapters/validators/zod/zod-validator.cjs +0 -178
  224. package/dist/infra/adapters/validators/zod/zod-validator.cjs.map +0 -1
  225. package/dist/infra/adapters/validators/zod/zod-validator.d.cts +0 -13
  226. package/dist/infra/adapters/validators/zod/zod-validator.d.ts +0 -13
  227. package/dist/infra/adapters/validators/zod/zod-validator.js +0 -153
  228. package/dist/infra/adapters/validators/zod/zod-validator.js.map +0 -1
  229. package/dist/infra/env/index.cjs +0 -467
  230. package/dist/infra/env/index.cjs.map +0 -1
  231. package/dist/infra/env/index.d.cts +0 -26
  232. package/dist/infra/env/index.d.ts +0 -26
  233. package/dist/infra/env/index.js +0 -452
  234. package/dist/infra/env/index.js.map +0 -1
  235. /package/dist/{index.js.map → index.mjs.map} +0 -0
@@ -1,46 +0,0 @@
1
- interface IErrorNotifier {
2
- notify(error: Error, context: ContextError): Promise<void>;
3
- }
4
-
5
- type AnyObject = Record<string, any>;
6
- type Request = {
7
- body: AnyObject;
8
- params: AnyObject;
9
- headers: AnyObject;
10
- query: AnyObject;
11
- };
12
- type Response = {
13
- code: number;
14
- data: any;
15
- };
16
- type ContextError = {
17
- env: string;
18
- user?: {
19
- id?: string;
20
- name?: string;
21
- email?: string;
22
- };
23
- request?: {
24
- method?: string;
25
- requestId?: string;
26
- url?: string;
27
- headers?: any;
28
- query?: any;
29
- body?: any;
30
- params?: any;
31
- };
32
- };
33
- declare abstract class BaseController {
34
- protected readonly errorNotifier: IErrorNotifier;
35
- abstract handle<T>(request: T | Request): Promise<Response>;
36
- constructor();
37
- protected success<T>(dto?: T): Response;
38
- protected noContent(): Response;
39
- protected created<T>(dto?: T): Response;
40
- protected paginated<T>(dto?: T): Response;
41
- protected buildContextError(request: Request): ContextError;
42
- failure(error: Error, context: ContextError): Promise<Response>;
43
- execute(request: Request): Promise<Response>;
44
- }
45
-
46
- export { BaseController as B, ContextError as C, IErrorNotifier as I, Request as R, Response as a };
@@ -1,310 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
7
- var __export = (target, all) => {
8
- for (var name in all)
9
- __defProp(target, name, { get: all[name], enumerable: true });
10
- };
11
- var __copyProps = (to, from, except, desc) => {
12
- if (from && typeof from === "object" || typeof from === "function") {
13
- for (let key of __getOwnPropNames(from))
14
- if (!__hasOwnProp.call(to, key) && key !== except)
15
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
- }
17
- return to;
18
- };
19
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
-
21
- // src/core/decorators/controller-http-decorator.ts
22
- var controller_http_decorator_exports = {};
23
- __export(controller_http_decorator_exports, {
24
- Controller: () => Controller
25
- });
26
- module.exports = __toCommonJS(controller_http_decorator_exports);
27
-
28
- // src/core/decorators/dependency-container.ts
29
- var import_reflect_metadata = require("reflect-metadata");
30
- var DependencyContainer = class {
31
- static {
32
- __name(this, "DependencyContainer");
33
- }
34
- static registry = /* @__PURE__ */ new Map();
35
- static singletons = /* @__PURE__ */ new Map();
36
- static register(token, myClass, options) {
37
- this.registry.set(token, {
38
- type: "class",
39
- myClass,
40
- singleton: options.singleton
41
- });
42
- }
43
- static registerValue(token, value) {
44
- this.registry.set(token, {
45
- type: "value",
46
- value
47
- });
48
- }
49
- static resolve(target) {
50
- const injectMetadata = Reflect.getOwnMetadata("inject:params", target) || {};
51
- const paramCount = Object.keys(injectMetadata).length;
52
- const params = Array.from({
53
- length: paramCount
54
- }, (_, index) => {
55
- const token = injectMetadata[index];
56
- if (!token) {
57
- throw new Error(`Missing @Inject token for parameter index ${index} in ${target.name}`);
58
- }
59
- return this.resolveToken(token);
60
- });
61
- return new target(...params);
62
- }
63
- static resolveToken(token) {
64
- const registration = this.registry.get(token);
65
- if (!registration) {
66
- throw new Error(`"${token}" not registered. Please register it in the container.`);
67
- }
68
- if (registration.type === "value") {
69
- return registration.value;
70
- }
71
- const { myClass, singleton } = registration;
72
- if (singleton) {
73
- if (!this.singletons.has(token)) {
74
- const instance = this.resolve(myClass);
75
- this.singletons.set(token, instance);
76
- }
77
- return this.singletons.get(token);
78
- }
79
- return this.resolve(myClass);
80
- }
81
- };
82
-
83
- // src/core/errors/api-common-error.ts
84
- var ApiErrorEnum = /* @__PURE__ */ function(ApiErrorEnum2) {
85
- ApiErrorEnum2["DOMAIN"] = "ERR001";
86
- ApiErrorEnum2["APPLICATION"] = "ERR002";
87
- ApiErrorEnum2["INFRA"] = "ERR003";
88
- ApiErrorEnum2["HTTP_CLIENT"] = "ERR004";
89
- ApiErrorEnum2["VALIDATOR"] = "ERR005";
90
- return ApiErrorEnum2;
91
- }({});
92
-
93
- // src/core/errors/application-error.ts
94
- var ApplicationError = class extends Error {
95
- static {
96
- __name(this, "ApplicationError");
97
- }
98
- props;
99
- constructor(message) {
100
- super(message);
101
- this.props = {
102
- code: 400,
103
- errorCode: ApiErrorEnum.APPLICATION,
104
- message,
105
- occurredAt: /* @__PURE__ */ new Date()
106
- };
107
- }
108
- };
109
-
110
- // src/core/errors/conflict-error.ts
111
- var ConflictError = class extends Error {
112
- static {
113
- __name(this, "ConflictError");
114
- }
115
- props;
116
- conflictProps;
117
- constructor(conflictProps) {
118
- super("Resource already exists.");
119
- this.conflictProps = conflictProps;
120
- this.props = {
121
- code: 409,
122
- errorCode: ApiErrorEnum.APPLICATION,
123
- message: this.message,
124
- occurredAt: /* @__PURE__ */ new Date()
125
- };
126
- }
127
- };
128
-
129
- // src/core/errors/domain-error.ts
130
- var DomainError = class extends Error {
131
- static {
132
- __name(this, "DomainError");
133
- }
134
- props;
135
- constructor(message) {
136
- super(message);
137
- this.props = {
138
- code: 400,
139
- errorCode: ApiErrorEnum.DOMAIN,
140
- message,
141
- occurredAt: /* @__PURE__ */ new Date()
142
- };
143
- }
144
- };
145
-
146
- // src/core/errors/infra-error.ts
147
- var InfraError = class extends Error {
148
- static {
149
- __name(this, "InfraError");
150
- }
151
- props;
152
- constructor(message) {
153
- super(message);
154
- this.props = {
155
- code: 400,
156
- errorCode: ApiErrorEnum.INFRA,
157
- message,
158
- occurredAt: /* @__PURE__ */ new Date()
159
- };
160
- }
161
- };
162
-
163
- // src/core/errors/validation-error.ts
164
- var ValidationError = class extends Error {
165
- static {
166
- __name(this, "ValidationError");
167
- }
168
- props;
169
- constructor(errors) {
170
- super("Validation Error");
171
- this.props = {
172
- code: 400,
173
- errorCode: ApiErrorEnum.VALIDATOR,
174
- message: "Validation Error",
175
- occurredAt: /* @__PURE__ */ new Date(),
176
- errors
177
- };
178
- }
179
- };
180
-
181
- // src/core/http/base-controller.ts
182
- var import_reflect_metadata2 = require("reflect-metadata");
183
- var BaseController = class {
184
- static {
185
- __name(this, "BaseController");
186
- }
187
- errorNotifier;
188
- constructor() {
189
- this.errorNotifier = DependencyContainer.resolveToken("IErrorNotifier");
190
- }
191
- success(dto) {
192
- return {
193
- code: 200,
194
- data: {
195
- data: dto
196
- }
197
- };
198
- }
199
- noContent() {
200
- return {
201
- code: 204,
202
- data: void 0
203
- };
204
- }
205
- created(dto) {
206
- return {
207
- code: 201,
208
- data: dto ? {
209
- data: dto
210
- } : void 0
211
- };
212
- }
213
- paginated(dto) {
214
- return {
215
- code: 200,
216
- data: dto
217
- };
218
- }
219
- buildContextError(request) {
220
- return {
221
- env: process.env.ENVIRONMENT,
222
- request: {
223
- body: request.body,
224
- headers: request.headers,
225
- params: request.params,
226
- query: request.query
227
- }
228
- };
229
- }
230
- async failure(error, context) {
231
- if (error instanceof ConflictError) {
232
- return {
233
- code: error.props.code,
234
- data: {
235
- message: error.message,
236
- errorCode: error.props.errorCode,
237
- occurredAt: error.props.occurredAt,
238
- items: Array.isArray(error.conflictProps) ? error.conflictProps : [
239
- error.conflictProps
240
- ]
241
- }
242
- };
243
- }
244
- if (error instanceof DomainError || error instanceof ApplicationError || error instanceof InfraError) {
245
- return {
246
- code: error.props.code,
247
- data: {
248
- message: error.message,
249
- errorCode: error.props.errorCode,
250
- occurredAt: error.props.occurredAt
251
- }
252
- };
253
- }
254
- if (error instanceof ValidationError) {
255
- return {
256
- code: error.props.code,
257
- data: {
258
- message: error.props.message,
259
- errorCode: error.props.errorCode,
260
- occurredAt: error.props.occurredAt,
261
- errors: error.props.errors
262
- }
263
- };
264
- }
265
- if (process.env.SHOULD_NOTIFY_ERROR) {
266
- await this.errorNotifier.notify(error, context);
267
- }
268
- return {
269
- code: 500,
270
- data: {
271
- code: 500,
272
- message: "Server failed. Contact the administrator!"
273
- }
274
- };
275
- }
276
- async execute(request) {
277
- const routeMetadata = Reflect.getMetadata("route", this.constructor);
278
- if (!routeMetadata) {
279
- throw new InfraError("Route metadata not found.");
280
- }
281
- const middlewares = routeMetadata.middlewares || [];
282
- let processedRequest = request;
283
- if (middlewares.length) {
284
- for (const middleware of middlewares) {
285
- processedRequest = await middleware(processedRequest);
286
- }
287
- }
288
- return await this.handle(processedRequest);
289
- }
290
- };
291
-
292
- // src/core/decorators/controller-http-decorator.ts
293
- function Controller({ method, path, middlewares = [] }) {
294
- return (target) => {
295
- if (!(target.prototype instanceof BaseController)) {
296
- throw new Error(`The class ${target.name} should extends abstract class BaseController`);
297
- }
298
- Reflect.defineMetadata("route", {
299
- method,
300
- path: `/api/${path}`,
301
- middlewares
302
- }, target);
303
- };
304
- }
305
- __name(Controller, "Controller");
306
- // Annotate the CommonJS export names for ESM import in node:
307
- 0 && (module.exports = {
308
- Controller
309
- });
310
- //# sourceMappingURL=controller-http-decorator.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/core/decorators/controller-http-decorator.ts","../../../src/core/decorators/dependency-container.ts","../../../src/core/errors/api-common-error.ts","../../../src/core/errors/application-error.ts","../../../src/core/errors/conflict-error.ts","../../../src/core/errors/domain-error.ts","../../../src/core/errors/infra-error.ts","../../../src/core/errors/validation-error.ts","../../../src/core/http/base-controller.ts"],"sourcesContent":["import { BaseController } from '../../core/http/base-controller'\nimport { MiddlewareFunction } from '../../infra/adapters/validators/zod/zod-validator'\nimport type { MethodType } from '../http/http'\n\ntype Props = {\n method: MethodType\n path: string\n middlewares?: MiddlewareFunction[]\n}\n\nexport function Controller({\n method,\n path,\n middlewares = [],\n}: Props): ClassDecorator {\n return (target: any) => {\n if (!(target.prototype instanceof BaseController)) {\n throw new Error(\n `The class ${target.name} should extends abstract class BaseController`\n )\n }\n\n Reflect.defineMetadata(\n 'route',\n { method, path: `/api/${path}`, middlewares },\n target\n )\n }\n}\n","import 'reflect-metadata'\n\ntype Class<T = any> = new (...args: any[]) => T\n\ntype Registration =\n | { type: 'class'; myClass: Class; singleton: boolean }\n | { type: 'value'; value: any }\n\nexport class DependencyContainer {\n static registry = new Map<string, Registration>()\n static singletons = new Map<string, any>()\n\n static register<T>(\n token: string,\n myClass: Class<T>,\n options: { singleton: boolean }\n ) {\n this.registry.set(token, {\n type: 'class',\n myClass,\n singleton: options.singleton,\n })\n }\n\n static registerValue<T>(token: string, value: T) {\n this.registry.set(token, { type: 'value', value })\n }\n\n static resolve<T>(target: Class<T>): T {\n const injectMetadata: Record<number, string> =\n Reflect.getOwnMetadata('inject:params', target) || {}\n\n const paramCount = Object.keys(injectMetadata).length\n\n const params = Array.from({ length: paramCount }, (_, index) => {\n const token = injectMetadata[index]\n if (!token) {\n throw new Error(\n `Missing @Inject token for parameter index ${index} in ${target.name}`\n )\n }\n return this.resolveToken(token)\n })\n\n return new target(...params)\n }\n\n static resolveToken(token: string): any {\n const registration = this.registry.get(token)\n\n if (!registration) {\n throw new Error(\n `\"${token}\" not registered. Please register it in the container.`\n )\n }\n\n if (registration.type === 'value') {\n return registration.value\n }\n\n const { myClass, singleton } = registration\n\n if (singleton) {\n if (!this.singletons.has(token)) {\n const instance = this.resolve(myClass)\n this.singletons.set(token, instance)\n }\n return this.singletons.get(token)\n }\n\n return this.resolve(myClass)\n }\n}\n\nexport function Inject(token: string): ParameterDecorator {\n return (\n target: object,\n _propertyKey: string | symbol | undefined,\n parameterIndex: number\n ): void => {\n const constructor =\n typeof target === 'function' ? target : target.constructor\n\n const existingInjectedParams: Record<number, string> =\n Reflect.getOwnMetadata('inject:params', constructor) || {}\n\n existingInjectedParams[parameterIndex] = token\n\n Reflect.defineMetadata('inject:params', existingInjectedParams, constructor)\n }\n}\n","export type PropertiesError = {\n receivedValue?: any\n type: string\n message: string\n property: string | number | undefined\n propertyType?: string\n path?: string\n}\n\nexport type CommonError = {\n location: string\n propertyErrors?: PropertiesError[]\n}\n\nexport type ApiCommonError = {\n code: number\n occurredAt: Date\n message: string\n errorCode: string\n errors?: CommonError[]\n}\n\nexport enum ApiErrorEnum {\n DOMAIN = 'ERR001',\n APPLICATION = 'ERR002',\n INFRA = 'ERR003',\n HTTP_CLIENT = 'ERR004',\n VALIDATOR = 'ERR005',\n}\n","import { type ApiCommonError, ApiErrorEnum } from './api-common-error'\n\nexport default class ApplicationError extends Error {\n props: ApiCommonError\n\n constructor(message: string) {\n super(message)\n this.props = {\n code: 400,\n errorCode: ApiErrorEnum.APPLICATION,\n message,\n occurredAt: new Date(),\n }\n }\n}\n","import { type ApiCommonError, ApiErrorEnum } from './api-common-error'\n\ntype ConflictProps = { id: string; [key: string]: unknown }\n\nexport default class ConflictError<T extends ConflictProps> extends Error {\n props: ApiCommonError\n conflictProps: T | T[]\n\n constructor(conflictProps: T | T[]) {\n super('Resource already exists.')\n this.conflictProps = conflictProps\n this.props = {\n code: 409,\n errorCode: ApiErrorEnum.APPLICATION,\n message: this.message,\n occurredAt: new Date(),\n }\n }\n}\n","import { type ApiCommonError, ApiErrorEnum } from './api-common-error'\n\nexport default class DomainError extends Error {\n props: ApiCommonError\n\n constructor(message: string) {\n super(message)\n this.props = {\n code: 400,\n errorCode: ApiErrorEnum.DOMAIN,\n message,\n occurredAt: new Date(),\n }\n }\n}\n","import { type ApiCommonError, ApiErrorEnum } from './api-common-error'\n\nexport default class InfraError extends Error {\n props: ApiCommonError\n\n constructor(message: string) {\n super(message)\n this.props = {\n code: 400,\n errorCode: ApiErrorEnum.INFRA,\n message,\n occurredAt: new Date(),\n }\n }\n}\n","import {\n type ApiCommonError,\n ApiErrorEnum,\n type CommonError,\n} from './api-common-error'\n\nexport default class ValidationError extends Error {\n props: ApiCommonError\n\n constructor(errors: CommonError[]) {\n super('Validation Error')\n this.props = {\n code: 400,\n errorCode: ApiErrorEnum.VALIDATOR,\n message: 'Validation Error',\n occurredAt: new Date(),\n errors,\n }\n }\n}\n","import { DependencyContainer } from '../../core/decorators/dependency-container'\nimport ApplicationError from '../../core/errors/application-error'\nimport ConflictError from '../../core/errors/conflict-error'\nimport DomainError from '../../core/errors/domain-error'\nimport InfraError from '../../core/errors/infra-error'\nimport ValidationError from '../../core/errors/validation-error'\nimport { MiddlewareFunction } from '../../infra/adapters/validators/zod/zod-validator'\n\nimport { IErrorNotifier } from './error-notifier'\n\nimport 'reflect-metadata'\n\ntype AnyObject = Record<string, any>\n\nexport type Request = {\n body: AnyObject\n params: AnyObject\n headers: AnyObject\n query: AnyObject\n}\n\nexport type Response = {\n code: number\n data: any\n}\n\nexport type ContextError = {\n env: string\n user?: {\n id?: string\n name?: string\n email?: string\n }\n request?: {\n method?: string\n requestId?: string\n url?: string\n headers?: any\n query?: any\n body?: any\n params?: any\n }\n}\n\nexport abstract class BaseController {\n protected readonly errorNotifier: IErrorNotifier\n\n abstract handle<T>(request: T | Request): Promise<Response>\n\n constructor() {\n this.errorNotifier = DependencyContainer.resolveToken('IErrorNotifier')\n }\n\n protected success<T>(dto?: T): Response {\n return {\n code: 200,\n data: { data: dto },\n }\n }\n\n protected noContent(): Response {\n return {\n code: 204,\n data: undefined,\n }\n }\n\n protected created<T>(dto?: T): Response {\n return {\n code: 201,\n data: dto ? { data: dto } : undefined,\n }\n }\n\n protected paginated<T>(dto?: T): Response {\n return {\n code: 200,\n data: dto,\n }\n }\n\n protected buildContextError(request: Request): ContextError {\n return {\n env: process.env.ENVIRONMENT as string,\n request: {\n body: request.body,\n headers: request.headers,\n params: request.params,\n query: request.query,\n },\n }\n }\n\n public async failure(error: Error, context: ContextError): Promise<Response> {\n if (error instanceof ConflictError) {\n return {\n code: error.props.code,\n data: {\n message: error.message,\n errorCode: error.props.errorCode,\n occurredAt: error.props.occurredAt,\n items: Array.isArray(error.conflictProps)\n ? error.conflictProps\n : [error.conflictProps],\n },\n }\n }\n\n if (\n error instanceof DomainError ||\n error instanceof ApplicationError ||\n error instanceof InfraError\n ) {\n return {\n code: error.props.code,\n data: {\n message: error.message,\n errorCode: error.props.errorCode,\n occurredAt: error.props.occurredAt,\n },\n }\n }\n\n if (error instanceof ValidationError) {\n return {\n code: error.props.code,\n data: {\n message: error.props.message,\n errorCode: error.props.errorCode,\n occurredAt: error.props.occurredAt,\n errors: error.props.errors,\n },\n }\n }\n\n if (process.env.SHOULD_NOTIFY_ERROR) {\n await this.errorNotifier.notify(error, context)\n }\n\n return {\n code: 500,\n data: {\n code: 500,\n message: 'Server failed. Contact the administrator!',\n },\n }\n }\n\n public async execute(request: Request): Promise<Response> {\n const routeMetadata = Reflect.getMetadata('route', this.constructor)\n\n if (!routeMetadata) {\n throw new InfraError('Route metadata not found.')\n }\n\n const middlewares: MiddlewareFunction[] = routeMetadata.middlewares || []\n\n let processedRequest = request\n\n if (middlewares.length) {\n for (const middleware of middlewares) {\n processedRequest = await middleware(processedRequest)\n }\n }\n\n return await this.handle(processedRequest)\n }\n}\n"],"mappings":"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","names":["DependencyContainer","registry","Map","singletons","register","token","myClass","options","set","type","singleton","registerValue","value","resolve","target","injectMetadata","Reflect","getOwnMetadata","paramCount","Object","keys","length","params","Array","from","_","index","Error","name","resolveToken","registration","get","has","instance","ApiErrorEnum","ApplicationError","Error","props","constructor","message","code","errorCode","ApiErrorEnum","APPLICATION","occurredAt","Date","ConflictError","Error","props","conflictProps","constructor","code","errorCode","ApiErrorEnum","APPLICATION","message","occurredAt","Date","DomainError","Error","props","constructor","message","code","errorCode","ApiErrorEnum","DOMAIN","occurredAt","Date","InfraError","Error","props","constructor","message","code","errorCode","ApiErrorEnum","INFRA","occurredAt","Date","ValidationError","Error","props","constructor","errors","code","errorCode","ApiErrorEnum","VALIDATOR","message","occurredAt","Date","import_reflect_metadata","BaseController","errorNotifier","constructor","DependencyContainer","resolveToken","success","dto","code","data","noContent","undefined","created","paginated","buildContextError","request","env","process","ENVIRONMENT","body","headers","params","query","failure","error","context","ConflictError","props","message","errorCode","occurredAt","items","Array","isArray","conflictProps","DomainError","ApplicationError","InfraError","ValidationError","errors","SHOULD_NOTIFY_ERROR","notify","execute","routeMetadata","Reflect","getMetadata","middlewares","processedRequest","length","middleware","handle","Controller","method","path","middlewares","target","prototype","BaseController","Error","name","Reflect","defineMetadata"]}
@@ -1,13 +0,0 @@
1
- import { MiddlewareFunction } from '../../infra/adapters/validators/zod/zod-validator.cjs';
2
- import { MethodType } from '../http/http.cjs';
3
- import 'zod';
4
- import '../../base-controller-68008870.js';
5
-
6
- type Props = {
7
- method: MethodType;
8
- path: string;
9
- middlewares?: MiddlewareFunction[];
10
- };
11
- declare function Controller({ method, path, middlewares, }: Props): ClassDecorator;
12
-
13
- export { Controller };
@@ -1,13 +0,0 @@
1
- import { MiddlewareFunction } from '../../infra/adapters/validators/zod/zod-validator.js';
2
- import { MethodType } from '../http/http.js';
3
- import 'zod';
4
- import '../../base-controller-68008870.js';
5
-
6
- type Props = {
7
- method: MethodType;
8
- path: string;
9
- middlewares?: MiddlewareFunction[];
10
- };
11
- declare function Controller({ method, path, middlewares, }: Props): ClassDecorator;
12
-
13
- export { Controller };