plutin 1.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 (237) hide show
  1. package/dist/base-controller-cec5714c.d.ts +46 -0
  2. package/dist/core/decorators/controller-http-decorator.cjs +752 -0
  3. package/dist/core/decorators/controller-http-decorator.cjs.map +1 -0
  4. package/dist/core/decorators/controller-http-decorator.d.cts +13 -0
  5. package/dist/core/decorators/controller-http-decorator.d.ts +13 -0
  6. package/dist/core/decorators/controller-http-decorator.js +735 -0
  7. package/dist/core/decorators/controller-http-decorator.js.map +1 -0
  8. package/dist/core/decorators/dependency-container.cjs +92 -0
  9. package/dist/core/decorators/dependency-container.cjs.map +1 -0
  10. package/dist/core/decorators/dependency-container.d.cts +22 -0
  11. package/dist/core/decorators/dependency-container.d.ts +22 -0
  12. package/dist/core/decorators/dependency-container.js +69 -0
  13. package/dist/core/decorators/dependency-container.js.map +1 -0
  14. package/dist/core/entities/aggregate-root.cjs +99 -0
  15. package/dist/core/entities/aggregate-root.cjs.map +1 -0
  16. package/dist/core/entities/aggregate-root.d.cts +8 -0
  17. package/dist/core/entities/aggregate-root.d.ts +8 -0
  18. package/dist/core/entities/aggregate-root.js +74 -0
  19. package/dist/core/entities/aggregate-root.js.map +1 -0
  20. package/dist/core/entities/common-dto.cjs +19 -0
  21. package/dist/core/entities/common-dto.cjs.map +1 -0
  22. package/dist/core/entities/common-dto.d.cts +10 -0
  23. package/dist/core/entities/common-dto.d.ts +10 -0
  24. package/dist/core/entities/common-dto.js +1 -0
  25. package/dist/core/entities/common-dto.js.map +1 -0
  26. package/dist/core/entities/domain-event.cjs +19 -0
  27. package/dist/core/entities/domain-event.cjs.map +1 -0
  28. package/dist/core/entities/domain-event.d.cts +6 -0
  29. package/dist/core/entities/domain-event.d.ts +6 -0
  30. package/dist/core/entities/domain-event.js +1 -0
  31. package/dist/core/entities/domain-event.js.map +1 -0
  32. package/dist/core/entities/entity.cjs +92 -0
  33. package/dist/core/entities/entity.cjs.map +1 -0
  34. package/dist/core/entities/entity.d.cts +17 -0
  35. package/dist/core/entities/entity.d.ts +17 -0
  36. package/dist/core/entities/entity.js +67 -0
  37. package/dist/core/entities/entity.js.map +1 -0
  38. package/dist/core/entities/optional.cjs +19 -0
  39. package/dist/core/entities/optional.cjs.map +1 -0
  40. package/dist/core/entities/optional.d.cts +3 -0
  41. package/dist/core/entities/optional.d.ts +3 -0
  42. package/dist/core/entities/optional.js +1 -0
  43. package/dist/core/entities/optional.js.map +1 -0
  44. package/dist/core/entities/unique-entity-id.cjs +50 -0
  45. package/dist/core/entities/unique-entity-id.cjs.map +1 -0
  46. package/dist/core/entities/unique-entity-id.d.cts +9 -0
  47. package/dist/core/entities/unique-entity-id.d.ts +9 -0
  48. package/dist/core/entities/unique-entity-id.js +27 -0
  49. package/dist/core/entities/unique-entity-id.js.map +1 -0
  50. package/dist/core/entities/value-object.cjs +40 -0
  51. package/dist/core/entities/value-object.cjs.map +1 -0
  52. package/dist/core/entities/value-object.d.cts +6 -0
  53. package/dist/core/entities/value-object.d.ts +6 -0
  54. package/dist/core/entities/value-object.js +17 -0
  55. package/dist/core/entities/value-object.js.map +1 -0
  56. package/dist/core/entities/watched-list.cjs +121 -0
  57. package/dist/core/entities/watched-list.cjs.map +1 -0
  58. package/dist/core/entities/watched-list.d.cts +27 -0
  59. package/dist/core/entities/watched-list.d.ts +27 -0
  60. package/dist/core/entities/watched-list.js +98 -0
  61. package/dist/core/entities/watched-list.js.map +1 -0
  62. package/dist/core/entities/watched-list.test.cjs +186 -0
  63. package/dist/core/entities/watched-list.test.cjs.map +1 -0
  64. package/dist/core/entities/watched-list.test.d.cts +2 -0
  65. package/dist/core/entities/watched-list.test.d.ts +2 -0
  66. package/dist/core/entities/watched-list.test.js +185 -0
  67. package/dist/core/entities/watched-list.test.js.map +1 -0
  68. package/dist/core/errors/api-common-error.cjs +38 -0
  69. package/dist/core/errors/api-common-error.cjs.map +1 -0
  70. package/dist/core/errors/api-common-error.d.cts +28 -0
  71. package/dist/core/errors/api-common-error.d.ts +28 -0
  72. package/dist/core/errors/api-common-error.js +13 -0
  73. package/dist/core/errors/api-common-error.js.map +1 -0
  74. package/dist/core/errors/application-error.cjs +54 -0
  75. package/dist/core/errors/application-error.cjs.map +1 -0
  76. package/dist/core/errors/application-error.d.cts +8 -0
  77. package/dist/core/errors/application-error.d.ts +8 -0
  78. package/dist/core/errors/application-error.js +33 -0
  79. package/dist/core/errors/application-error.js.map +1 -0
  80. package/dist/core/errors/conflict-error.cjs +56 -0
  81. package/dist/core/errors/conflict-error.cjs.map +1 -0
  82. package/dist/core/errors/conflict-error.d.cts +13 -0
  83. package/dist/core/errors/conflict-error.d.ts +13 -0
  84. package/dist/core/errors/conflict-error.js +35 -0
  85. package/dist/core/errors/conflict-error.js.map +1 -0
  86. package/dist/core/errors/domain-error.cjs +54 -0
  87. package/dist/core/errors/domain-error.cjs.map +1 -0
  88. package/dist/core/errors/domain-error.d.cts +8 -0
  89. package/dist/core/errors/domain-error.d.ts +8 -0
  90. package/dist/core/errors/domain-error.js +33 -0
  91. package/dist/core/errors/domain-error.js.map +1 -0
  92. package/dist/core/errors/http-client-error.cjs +54 -0
  93. package/dist/core/errors/http-client-error.cjs.map +1 -0
  94. package/dist/core/errors/http-client-error.d.cts +8 -0
  95. package/dist/core/errors/http-client-error.d.ts +8 -0
  96. package/dist/core/errors/http-client-error.js +33 -0
  97. package/dist/core/errors/http-client-error.js.map +1 -0
  98. package/dist/core/errors/infra-error.cjs +54 -0
  99. package/dist/core/errors/infra-error.cjs.map +1 -0
  100. package/dist/core/errors/infra-error.d.cts +8 -0
  101. package/dist/core/errors/infra-error.d.ts +8 -0
  102. package/dist/core/errors/infra-error.js +33 -0
  103. package/dist/core/errors/infra-error.js.map +1 -0
  104. package/dist/core/errors/validation-error.cjs +55 -0
  105. package/dist/core/errors/validation-error.cjs.map +1 -0
  106. package/dist/core/errors/validation-error.d.cts +8 -0
  107. package/dist/core/errors/validation-error.d.ts +8 -0
  108. package/dist/core/errors/validation-error.js +34 -0
  109. package/dist/core/errors/validation-error.js.map +1 -0
  110. package/dist/core/http/base-controller.cjs +731 -0
  111. package/dist/core/http/base-controller.cjs.map +1 -0
  112. package/dist/core/http/base-controller.d.cts +1 -0
  113. package/dist/core/http/base-controller.d.ts +1 -0
  114. package/dist/core/http/base-controller.js +720 -0
  115. package/dist/core/http/base-controller.js.map +1 -0
  116. package/dist/core/http/dto-response.cjs +19 -0
  117. package/dist/core/http/dto-response.cjs.map +1 -0
  118. package/dist/core/http/dto-response.d.cts +10 -0
  119. package/dist/core/http/dto-response.d.ts +10 -0
  120. package/dist/core/http/dto-response.js +1 -0
  121. package/dist/core/http/dto-response.js.map +1 -0
  122. package/dist/core/http/error-notifier.cjs +19 -0
  123. package/dist/core/http/error-notifier.cjs.map +1 -0
  124. package/dist/core/http/error-notifier.d.cts +1 -0
  125. package/dist/core/http/error-notifier.d.ts +1 -0
  126. package/dist/core/http/error-notifier.js +1 -0
  127. package/dist/core/http/error-notifier.js.map +1 -0
  128. package/dist/core/http/get-take-and-skip.cjs +40 -0
  129. package/dist/core/http/get-take-and-skip.cjs.map +1 -0
  130. package/dist/core/http/get-take-and-skip.d.cts +6 -0
  131. package/dist/core/http/get-take-and-skip.d.ts +6 -0
  132. package/dist/core/http/get-take-and-skip.js +17 -0
  133. package/dist/core/http/get-take-and-skip.js.map +1 -0
  134. package/dist/core/http/health-connections.cjs +42 -0
  135. package/dist/core/http/health-connections.cjs.map +1 -0
  136. package/dist/core/http/health-connections.d.cts +16 -0
  137. package/dist/core/http/health-connections.d.ts +16 -0
  138. package/dist/core/http/health-connections.js +23 -0
  139. package/dist/core/http/health-connections.js.map +1 -0
  140. package/dist/core/http/http.cjs +19 -0
  141. package/dist/core/http/http.cjs.map +1 -0
  142. package/dist/core/http/http.d.cts +10 -0
  143. package/dist/core/http/http.d.ts +10 -0
  144. package/dist/core/http/http.js +1 -0
  145. package/dist/core/http/http.js.map +1 -0
  146. package/dist/core/http/pagination.cjs +19 -0
  147. package/dist/core/http/pagination.cjs.map +1 -0
  148. package/dist/core/http/pagination.d.cts +9 -0
  149. package/dist/core/http/pagination.d.ts +9 -0
  150. package/dist/core/http/pagination.js +1 -0
  151. package/dist/core/http/pagination.js.map +1 -0
  152. package/dist/core/http/validator.cjs +19 -0
  153. package/dist/core/http/validator.cjs.map +1 -0
  154. package/dist/core/http/validator.d.cts +11 -0
  155. package/dist/core/http/validator.d.ts +11 -0
  156. package/dist/core/http/validator.js +1 -0
  157. package/dist/core/http/validator.js.map +1 -0
  158. package/dist/core/index.cjs +957 -0
  159. package/dist/core/index.cjs.map +1 -0
  160. package/dist/core/index.d.cts +18 -0
  161. package/dist/core/index.d.ts +18 -0
  162. package/dist/core/index.js +933 -0
  163. package/dist/core/index.js.map +1 -0
  164. package/dist/infra/adapters/http/express-adapter.cjs +577 -0
  165. package/dist/infra/adapters/http/express-adapter.cjs.map +1 -0
  166. package/dist/infra/adapters/http/express-adapter.d.cts +15 -0
  167. package/dist/infra/adapters/http/express-adapter.d.ts +15 -0
  168. package/dist/infra/adapters/http/express-adapter.js +556 -0
  169. package/dist/infra/adapters/http/express-adapter.js.map +1 -0
  170. package/dist/infra/adapters/http/fastify-adapter.cjs +562 -0
  171. package/dist/infra/adapters/http/fastify-adapter.cjs.map +1 -0
  172. package/dist/infra/adapters/http/fastify-adapter.d.cts +14 -0
  173. package/dist/infra/adapters/http/fastify-adapter.d.ts +14 -0
  174. package/dist/infra/adapters/http/fastify-adapter.js +541 -0
  175. package/dist/infra/adapters/http/fastify-adapter.js.map +1 -0
  176. package/dist/infra/adapters/http/response-error-code.cjs +35 -0
  177. package/dist/infra/adapters/http/response-error-code.cjs.map +1 -0
  178. package/dist/infra/adapters/http/response-error-code.d.cts +6 -0
  179. package/dist/infra/adapters/http/response-error-code.d.ts +6 -0
  180. package/dist/infra/adapters/http/response-error-code.js +10 -0
  181. package/dist/infra/adapters/http/response-error-code.js.map +1 -0
  182. package/dist/infra/adapters/http/validate-controller-metadata.cjs +42 -0
  183. package/dist/infra/adapters/http/validate-controller-metadata.cjs.map +1 -0
  184. package/dist/infra/adapters/http/validate-controller-metadata.d.cts +11 -0
  185. package/dist/infra/adapters/http/validate-controller-metadata.d.ts +11 -0
  186. package/dist/infra/adapters/http/validate-controller-metadata.js +19 -0
  187. package/dist/infra/adapters/http/validate-controller-metadata.js.map +1 -0
  188. package/dist/infra/adapters/notifications/discord.cjs +86 -0
  189. package/dist/infra/adapters/notifications/discord.cjs.map +1 -0
  190. package/dist/infra/adapters/notifications/discord.d.cts +14 -0
  191. package/dist/infra/adapters/notifications/discord.d.ts +14 -0
  192. package/dist/infra/adapters/notifications/discord.js +65 -0
  193. package/dist/infra/adapters/notifications/discord.js.map +1 -0
  194. package/dist/infra/adapters/notifications/in-memory.cjs +40 -0
  195. package/dist/infra/adapters/notifications/in-memory.cjs.map +1 -0
  196. package/dist/infra/adapters/notifications/in-memory.d.cts +8 -0
  197. package/dist/infra/adapters/notifications/in-memory.d.ts +8 -0
  198. package/dist/infra/adapters/notifications/in-memory.js +21 -0
  199. package/dist/infra/adapters/notifications/in-memory.js.map +1 -0
  200. package/dist/infra/adapters/notifications/sentry.cjs +129 -0
  201. package/dist/infra/adapters/notifications/sentry.cjs.map +1 -0
  202. package/dist/infra/adapters/notifications/sentry.d.cts +13 -0
  203. package/dist/infra/adapters/notifications/sentry.d.ts +13 -0
  204. package/dist/infra/adapters/notifications/sentry.js +96 -0
  205. package/dist/infra/adapters/notifications/sentry.js.map +1 -0
  206. package/dist/infra/adapters/validators/zod/index.cjs +179 -0
  207. package/dist/infra/adapters/validators/zod/index.cjs.map +1 -0
  208. package/dist/infra/adapters/validators/zod/index.d.cts +19 -0
  209. package/dist/infra/adapters/validators/zod/index.d.ts +19 -0
  210. package/dist/infra/adapters/validators/zod/index.js +154 -0
  211. package/dist/infra/adapters/validators/zod/index.js.map +1 -0
  212. package/dist/infra/adapters/validators/zod/zod-map-error.cjs +79 -0
  213. package/dist/infra/adapters/validators/zod/zod-map-error.cjs.map +1 -0
  214. package/dist/infra/adapters/validators/zod/zod-map-error.d.cts +15 -0
  215. package/dist/infra/adapters/validators/zod/zod-map-error.d.ts +15 -0
  216. package/dist/infra/adapters/validators/zod/zod-map-error.js +60 -0
  217. package/dist/infra/adapters/validators/zod/zod-map-error.js.map +1 -0
  218. package/dist/infra/adapters/validators/zod/zod-validator.cjs +178 -0
  219. package/dist/infra/adapters/validators/zod/zod-validator.cjs.map +1 -0
  220. package/dist/infra/adapters/validators/zod/zod-validator.d.cts +13 -0
  221. package/dist/infra/adapters/validators/zod/zod-validator.d.ts +13 -0
  222. package/dist/infra/adapters/validators/zod/zod-validator.js +153 -0
  223. package/dist/infra/adapters/validators/zod/zod-validator.js.map +1 -0
  224. package/dist/infra/env/index.cjs +473 -0
  225. package/dist/infra/env/index.cjs.map +1 -0
  226. package/dist/infra/env/index.d.cts +10 -0
  227. package/dist/infra/env/index.d.ts +10 -0
  228. package/dist/infra/env/index.js +456 -0
  229. package/dist/infra/env/index.js.map +1 -0
  230. package/dist/infra/index.cjs +781 -0
  231. package/dist/infra/index.cjs.map +1 -0
  232. package/dist/infra/index.d.cts +5 -0
  233. package/dist/infra/index.d.ts +5 -0
  234. package/dist/infra/index.js +752 -0
  235. package/dist/infra/index.js.map +1 -0
  236. package/package.json +82 -0
  237. package/readme.md +56 -0
@@ -0,0 +1,10 @@
1
+ // src/infra/adapters/http/response-error-code.ts
2
+ var ErrorResponseCode = /* @__PURE__ */ function(ErrorResponseCode2) {
3
+ ErrorResponseCode2["NO_CONTENT_BODY"] = "B001";
4
+ ErrorResponseCode2["NO_CONTENT_ERROR"] = "B002";
5
+ return ErrorResponseCode2;
6
+ }({});
7
+ export {
8
+ ErrorResponseCode
9
+ };
10
+ //# sourceMappingURL=response-error-code.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/infra/adapters/http/response-error-code.ts"],"sourcesContent":["export enum ErrorResponseCode {\n NO_CONTENT_BODY = 'B001',\n NO_CONTENT_ERROR = 'B002',\n}\n"],"mappings":";AAAO,IAAKA,oBAAAA,yBAAAA,oBAAAA;;;SAAAA;;","names":["ErrorResponseCode"]}
@@ -0,0 +1,42 @@
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/infra/adapters/http/validate-controller-metadata.ts
22
+ var validate_controller_metadata_exports = {};
23
+ __export(validate_controller_metadata_exports, {
24
+ validateControllerMetadata: () => validateControllerMetadata
25
+ });
26
+ module.exports = __toCommonJS(validate_controller_metadata_exports);
27
+ var import_reflect_metadata = require("reflect-metadata");
28
+ function validateControllerMetadata(controller) {
29
+ const metadata = Reflect.getMetadata("route", controller.constructor);
30
+ if (!metadata) {
31
+ throw new Error(`Controller ${controller.constructor.name} not have metadata. Need to add decorator.`);
32
+ }
33
+ return {
34
+ metadata
35
+ };
36
+ }
37
+ __name(validateControllerMetadata, "validateControllerMetadata");
38
+ // Annotate the CommonJS export names for ESM import in node:
39
+ 0 && (module.exports = {
40
+ validateControllerMetadata
41
+ });
42
+ //# sourceMappingURL=validate-controller-metadata.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/infra/adapters/http/validate-controller-metadata.ts"],"sourcesContent":["import 'reflect-metadata'\n\nimport type Controller from '../../../core/http/base-controller'\nimport type { MethodType } from '../../../core/http/http'\n\nexport function validateControllerMetadata(controller: Controller) {\n const metadata = Reflect.getMetadata('route', controller.constructor) as {\n method: MethodType\n path: string\n }\n\n if (!metadata) {\n throw new Error(\n `Controller ${controller.constructor.name} not have metadata. Need to add decorator.`\n )\n }\n\n return {\n metadata,\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;;;;8BAAO;AAKA,SAASA,2BAA2BC,YAAsB;AAC/D,QAAMC,WAAWC,QAAQC,YAAY,SAASH,WAAWI,WAAW;AAKpE,MAAI,CAACH,UAAU;AACb,UAAM,IAAII,MACR,cAAcL,WAAWI,YAAYE,IAAI,4CAA4C;EAEzF;AAEA,SAAO;IACLL;EACF;AACF;AAfgBF;","names":["validateControllerMetadata","controller","metadata","Reflect","getMetadata","constructor","Error","name"]}
@@ -0,0 +1,11 @@
1
+ import { B as BaseController } from '../../../base-controller-cec5714c.js';
2
+ import { MethodType } from '../../../core/http/http.cjs';
3
+
4
+ declare function validateControllerMetadata(controller: BaseController): {
5
+ metadata: {
6
+ method: MethodType;
7
+ path: string;
8
+ };
9
+ };
10
+
11
+ export { validateControllerMetadata };
@@ -0,0 +1,11 @@
1
+ import { B as BaseController } from '../../../base-controller-cec5714c.js';
2
+ import { MethodType } from '../../../core/http/http.js';
3
+
4
+ declare function validateControllerMetadata(controller: BaseController): {
5
+ metadata: {
6
+ method: MethodType;
7
+ path: string;
8
+ };
9
+ };
10
+
11
+ export { validateControllerMetadata };
@@ -0,0 +1,19 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+
4
+ // src/infra/adapters/http/validate-controller-metadata.ts
5
+ import "reflect-metadata";
6
+ function validateControllerMetadata(controller) {
7
+ const metadata = Reflect.getMetadata("route", controller.constructor);
8
+ if (!metadata) {
9
+ throw new Error(`Controller ${controller.constructor.name} not have metadata. Need to add decorator.`);
10
+ }
11
+ return {
12
+ metadata
13
+ };
14
+ }
15
+ __name(validateControllerMetadata, "validateControllerMetadata");
16
+ export {
17
+ validateControllerMetadata
18
+ };
19
+ //# sourceMappingURL=validate-controller-metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/infra/adapters/http/validate-controller-metadata.ts"],"sourcesContent":["import 'reflect-metadata'\n\nimport type Controller from '../../../core/http/base-controller'\nimport type { MethodType } from '../../../core/http/http'\n\nexport function validateControllerMetadata(controller: Controller) {\n const metadata = Reflect.getMetadata('route', controller.constructor) as {\n method: MethodType\n path: string\n }\n\n if (!metadata) {\n throw new Error(\n `Controller ${controller.constructor.name} not have metadata. Need to add decorator.`\n )\n }\n\n return {\n metadata,\n }\n}\n"],"mappings":";;;;AAAA,OAAO;AAKA,SAASA,2BAA2BC,YAAsB;AAC/D,QAAMC,WAAWC,QAAQC,YAAY,SAASH,WAAWI,WAAW;AAKpE,MAAI,CAACH,UAAU;AACb,UAAM,IAAII,MACR,cAAcL,WAAWI,YAAYE,IAAI,4CAA4C;EAEzF;AAEA,SAAO;IACLL;EACF;AACF;AAfgBF;","names":["validateControllerMetadata","controller","metadata","Reflect","getMetadata","constructor","Error","name"]}
@@ -0,0 +1,86 @@
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/infra/adapters/notifications/discord.ts
22
+ var discord_exports = {};
23
+ __export(discord_exports, {
24
+ default: () => DiscordNotifier
25
+ });
26
+ module.exports = __toCommonJS(discord_exports);
27
+
28
+ // src/core/decorators/dependency-container.ts
29
+ var import_reflect_metadata = require("reflect-metadata");
30
+ function Inject(token) {
31
+ return (target, _propertyKey, parameterIndex) => {
32
+ const constructor = typeof target === "function" ? target : target.constructor;
33
+ const existingInjectedParams = Reflect.getOwnMetadata("inject:params", constructor) || {};
34
+ existingInjectedParams[parameterIndex] = token;
35
+ Reflect.defineMetadata("inject:params", existingInjectedParams, constructor);
36
+ };
37
+ }
38
+ __name(Inject, "Inject");
39
+
40
+ // src/infra/adapters/notifications/discord.ts
41
+ var import_discord_webhook_node = require("discord-webhook-node");
42
+ function _ts_decorate(decorators, target, key, desc) {
43
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
44
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
45
+ r = Reflect.decorate(decorators, target, key, desc);
46
+ else
47
+ for (var i = decorators.length - 1; i >= 0; i--)
48
+ if (d = decorators[i])
49
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
50
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
51
+ }
52
+ __name(_ts_decorate, "_ts_decorate");
53
+ function _ts_metadata(k, v) {
54
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
55
+ return Reflect.metadata(k, v);
56
+ }
57
+ __name(_ts_metadata, "_ts_metadata");
58
+ function _ts_param(paramIndex, decorator) {
59
+ return function(target, key) {
60
+ decorator(target, key, paramIndex);
61
+ };
62
+ }
63
+ __name(_ts_param, "_ts_param");
64
+ var DiscordNotifier = class {
65
+ static {
66
+ __name(this, "DiscordNotifier");
67
+ }
68
+ options;
69
+ webhook;
70
+ constructor(options) {
71
+ this.options = options;
72
+ this.webhook = new import_discord_webhook_node.Webhook(this.options.url);
73
+ }
74
+ async notify(error, context) {
75
+ const embed = new import_discord_webhook_node.MessageBuilder().setTitle("\u{1F6A8} Error").addField("Message", `\`\`\`${error.message.slice(0, 300)}\`\`\``).addField("Route:", `\`[${context?.request?.method}] ${context?.request?.url}\``, true).addField("Params:", "```json\n" + JSON.stringify(context?.request?.params, null, 2) + "\n```", true).addField("Query:", "```json\n" + JSON.stringify(context?.request?.query, null, 2) + "\n```", true).addField("Headers:", "```json\n" + JSON.stringify(context?.request?.headers, null, 2) + "\n```", true).addField("Body:", "```json\n" + JSON.stringify(context?.request?.body, null, 2) + "\n```").addField("Stack Trace:", "```" + (error.stack || "No stack provided").slice(0, 900) + "```").setFooter(`Env: ${this.options.env || "development"}`).setTimestamp();
76
+ await this.webhook.send(embed);
77
+ }
78
+ };
79
+ DiscordNotifier = _ts_decorate([
80
+ _ts_param(0, Inject("DiscordConfig")),
81
+ _ts_metadata("design:type", Function),
82
+ _ts_metadata("design:paramtypes", [
83
+ typeof DiscordOptions === "undefined" ? Object : DiscordOptions
84
+ ])
85
+ ], DiscordNotifier);
86
+ //# sourceMappingURL=discord.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/core/decorators/dependency-container.ts","../../../../src/infra/adapters/notifications/discord.ts"],"sourcesContent":["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 default 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 paramTypes = Reflect.getMetadata('design:paramtypes', target) || []\n\n const injectMetadata: Record<number, string> =\n Reflect.getOwnMetadata('inject:params', target) || {}\n\n const params = paramTypes.map((_: any, index: number) => {\n const token = injectMetadata[index]\n\n if (!token) {\n throw new Error(\n `Missing @Inject token for parameter index ${index} in ${target.name}`\n )\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","import { Inject } from 'core/decorators/dependency-container'\nimport { MessageBuilder, Webhook } from 'discord-webhook-node'\n\nimport type { ContextError } from '../../../core/http/base-controller'\nimport type IErrorNotifier from '../../../core/http/error-notifier'\n\ntype DiscordOptions = {\n url: string\n env: string\n}\n\nexport default class DiscordNotifier implements IErrorNotifier {\n private webhook: Webhook\n\n constructor(\n @Inject('DiscordConfig') private readonly options: DiscordOptions\n ) {\n this.webhook = new Webhook(this.options.url)\n }\n\n async notify(error: Error, context: ContextError): Promise<void> {\n const embed = new MessageBuilder()\n .setTitle('🚨 Error')\n .addField('Message', `\\`\\`\\`${error.message.slice(0, 300)}\\`\\`\\``)\n .addField(\n 'Route:',\n `\\`[${context?.request?.method}] ${context?.request?.url}\\``,\n true\n )\n .addField(\n 'Params:',\n '```json\\n' +\n JSON.stringify(context?.request?.params, null, 2) +\n '\\n```',\n true\n )\n .addField(\n 'Query:',\n '```json\\n' +\n JSON.stringify(context?.request?.query, null, 2) +\n '\\n```',\n true\n )\n .addField(\n 'Headers:',\n '```json\\n' +\n JSON.stringify(context?.request?.headers, null, 2) +\n '\\n```',\n true\n )\n .addField(\n 'Body:',\n '```json\\n' + JSON.stringify(context?.request?.body, null, 2) + '\\n```'\n )\n .addField(\n 'Stack Trace:',\n '```' + (error.stack || 'No stack provided').slice(0, 900) + '```'\n )\n .setFooter(`Env: ${this.options.env || 'development'}`)\n .setTimestamp()\n\n await this.webhook.send(embed)\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8BAAO;AA4EA,SAASA,OAAOC,OAAa;AAClC,SAAO,CACLC,QACAC,cACAC,mBAAAA;AAEA,UAAMC,cACJ,OAAOH,WAAW,aAAaA,SAASA,OAAOG;AAEjD,UAAMC,yBACJC,QAAQC,eAAe,iBAAiBH,WAAAA,KAAgB,CAAC;AAE3DC,2BAAuBF,cAAAA,IAAkBH;AAEzCM,YAAQE,eAAe,iBAAiBH,wBAAwBD,WAAAA;EAClE;AACF;AAhBgBL;;;AC3EhB,kCAAwC;;;;;;;;;;;;;;;;;;;;;;;AAUxC,IAAqBU,kBAArB,MAAqBA;SAAAA;;;;EACXC;EAERC,YAC4CC,SAC1C;SAD0CA,UAAAA;AAE1C,SAAKF,UAAU,IAAIG,oCAAQ,KAAKD,QAAQE,GAAG;EAC7C;EAEA,MAAMC,OAAOC,OAAcC,SAAsC;AAC/D,UAAMC,QAAQ,IAAIC,2CAAAA,EACfC,SAAS,iBAAA,EACTC,SAAS,WAAW,SAASL,MAAMM,QAAQC,MAAM,GAAG,GAAA,CAAA,QAAY,EAChEF,SACC,UACA,MAAMJ,SAASO,SAASC,MAAAA,KAAWR,SAASO,SAASV,GAAAA,MACrD,IAAA,EAEDO,SACC,WACA,cACEK,KAAKC,UAAUV,SAASO,SAASI,QAAQ,MAAM,CAAA,IAC/C,SACF,IAAA,EAEDP,SACC,UACA,cACEK,KAAKC,UAAUV,SAASO,SAASK,OAAO,MAAM,CAAA,IAC9C,SACF,IAAA,EAEDR,SACC,YACA,cACEK,KAAKC,UAAUV,SAASO,SAASM,SAAS,MAAM,CAAA,IAChD,SACF,IAAA,EAEDT,SACC,SACA,cAAcK,KAAKC,UAAUV,SAASO,SAASO,MAAM,MAAM,CAAA,IAAK,OAAA,EAEjEV,SACC,gBACA,SAASL,MAAMgB,SAAS,qBAAqBT,MAAM,GAAG,GAAA,IAAO,KAAA,EAE9DU,UAAU,QAAQ,KAAKrB,QAAQsB,OAAO,aAAA,EAAe,EACrDC,aAAY;AAEf,UAAM,KAAKzB,QAAQ0B,KAAKlB,KAAAA;EAC1B;AACF;;;;;;;;","names":["Inject","token","target","_propertyKey","parameterIndex","constructor","existingInjectedParams","Reflect","getOwnMetadata","defineMetadata","DiscordNotifier","webhook","constructor","options","Webhook","url","notify","error","context","embed","MessageBuilder","setTitle","addField","message","slice","request","method","JSON","stringify","params","query","headers","body","stack","setFooter","env","setTimestamp","send"]}
@@ -0,0 +1,14 @@
1
+ import { I as IErrorNotifier, C as ContextError } from '../../../base-controller-cec5714c.js';
2
+
3
+ type DiscordOptions = {
4
+ url: string;
5
+ env: string;
6
+ };
7
+ declare class DiscordNotifier implements IErrorNotifier {
8
+ private readonly options;
9
+ private webhook;
10
+ constructor(options: DiscordOptions);
11
+ notify(error: Error, context: ContextError): Promise<void>;
12
+ }
13
+
14
+ export { DiscordNotifier as default };
@@ -0,0 +1,14 @@
1
+ import { I as IErrorNotifier, C as ContextError } from '../../../base-controller-cec5714c.js';
2
+
3
+ type DiscordOptions = {
4
+ url: string;
5
+ env: string;
6
+ };
7
+ declare class DiscordNotifier implements IErrorNotifier {
8
+ private readonly options;
9
+ private webhook;
10
+ constructor(options: DiscordOptions);
11
+ notify(error: Error, context: ContextError): Promise<void>;
12
+ }
13
+
14
+ export { DiscordNotifier as default };
@@ -0,0 +1,65 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+
4
+ // src/core/decorators/dependency-container.ts
5
+ import "reflect-metadata";
6
+ function Inject(token) {
7
+ return (target, _propertyKey, parameterIndex) => {
8
+ const constructor = typeof target === "function" ? target : target.constructor;
9
+ const existingInjectedParams = Reflect.getOwnMetadata("inject:params", constructor) || {};
10
+ existingInjectedParams[parameterIndex] = token;
11
+ Reflect.defineMetadata("inject:params", existingInjectedParams, constructor);
12
+ };
13
+ }
14
+ __name(Inject, "Inject");
15
+
16
+ // src/infra/adapters/notifications/discord.ts
17
+ import { MessageBuilder, Webhook } from "discord-webhook-node";
18
+ function _ts_decorate(decorators, target, key, desc) {
19
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
21
+ r = Reflect.decorate(decorators, target, key, desc);
22
+ else
23
+ for (var i = decorators.length - 1; i >= 0; i--)
24
+ if (d = decorators[i])
25
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
26
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
27
+ }
28
+ __name(_ts_decorate, "_ts_decorate");
29
+ function _ts_metadata(k, v) {
30
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
31
+ return Reflect.metadata(k, v);
32
+ }
33
+ __name(_ts_metadata, "_ts_metadata");
34
+ function _ts_param(paramIndex, decorator) {
35
+ return function(target, key) {
36
+ decorator(target, key, paramIndex);
37
+ };
38
+ }
39
+ __name(_ts_param, "_ts_param");
40
+ var DiscordNotifier = class {
41
+ static {
42
+ __name(this, "DiscordNotifier");
43
+ }
44
+ options;
45
+ webhook;
46
+ constructor(options) {
47
+ this.options = options;
48
+ this.webhook = new Webhook(this.options.url);
49
+ }
50
+ async notify(error, context) {
51
+ const embed = new MessageBuilder().setTitle("\u{1F6A8} Error").addField("Message", `\`\`\`${error.message.slice(0, 300)}\`\`\``).addField("Route:", `\`[${context?.request?.method}] ${context?.request?.url}\``, true).addField("Params:", "```json\n" + JSON.stringify(context?.request?.params, null, 2) + "\n```", true).addField("Query:", "```json\n" + JSON.stringify(context?.request?.query, null, 2) + "\n```", true).addField("Headers:", "```json\n" + JSON.stringify(context?.request?.headers, null, 2) + "\n```", true).addField("Body:", "```json\n" + JSON.stringify(context?.request?.body, null, 2) + "\n```").addField("Stack Trace:", "```" + (error.stack || "No stack provided").slice(0, 900) + "```").setFooter(`Env: ${this.options.env || "development"}`).setTimestamp();
52
+ await this.webhook.send(embed);
53
+ }
54
+ };
55
+ DiscordNotifier = _ts_decorate([
56
+ _ts_param(0, Inject("DiscordConfig")),
57
+ _ts_metadata("design:type", Function),
58
+ _ts_metadata("design:paramtypes", [
59
+ typeof DiscordOptions === "undefined" ? Object : DiscordOptions
60
+ ])
61
+ ], DiscordNotifier);
62
+ export {
63
+ DiscordNotifier as default
64
+ };
65
+ //# sourceMappingURL=discord.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/core/decorators/dependency-container.ts","../../../../src/infra/adapters/notifications/discord.ts"],"sourcesContent":["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 default 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 paramTypes = Reflect.getMetadata('design:paramtypes', target) || []\n\n const injectMetadata: Record<number, string> =\n Reflect.getOwnMetadata('inject:params', target) || {}\n\n const params = paramTypes.map((_: any, index: number) => {\n const token = injectMetadata[index]\n\n if (!token) {\n throw new Error(\n `Missing @Inject token for parameter index ${index} in ${target.name}`\n )\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","import { Inject } from 'core/decorators/dependency-container'\nimport { MessageBuilder, Webhook } from 'discord-webhook-node'\n\nimport type { ContextError } from '../../../core/http/base-controller'\nimport type IErrorNotifier from '../../../core/http/error-notifier'\n\ntype DiscordOptions = {\n url: string\n env: string\n}\n\nexport default class DiscordNotifier implements IErrorNotifier {\n private webhook: Webhook\n\n constructor(\n @Inject('DiscordConfig') private readonly options: DiscordOptions\n ) {\n this.webhook = new Webhook(this.options.url)\n }\n\n async notify(error: Error, context: ContextError): Promise<void> {\n const embed = new MessageBuilder()\n .setTitle('🚨 Error')\n .addField('Message', `\\`\\`\\`${error.message.slice(0, 300)}\\`\\`\\``)\n .addField(\n 'Route:',\n `\\`[${context?.request?.method}] ${context?.request?.url}\\``,\n true\n )\n .addField(\n 'Params:',\n '```json\\n' +\n JSON.stringify(context?.request?.params, null, 2) +\n '\\n```',\n true\n )\n .addField(\n 'Query:',\n '```json\\n' +\n JSON.stringify(context?.request?.query, null, 2) +\n '\\n```',\n true\n )\n .addField(\n 'Headers:',\n '```json\\n' +\n JSON.stringify(context?.request?.headers, null, 2) +\n '\\n```',\n true\n )\n .addField(\n 'Body:',\n '```json\\n' + JSON.stringify(context?.request?.body, null, 2) + '\\n```'\n )\n .addField(\n 'Stack Trace:',\n '```' + (error.stack || 'No stack provided').slice(0, 900) + '```'\n )\n .setFooter(`Env: ${this.options.env || 'development'}`)\n .setTimestamp()\n\n await this.webhook.send(embed)\n }\n}\n"],"mappings":";;;;AAAA,OAAO;AA4EA,SAASA,OAAOC,OAAa;AAClC,SAAO,CACLC,QACAC,cACAC,mBAAAA;AAEA,UAAMC,cACJ,OAAOH,WAAW,aAAaA,SAASA,OAAOG;AAEjD,UAAMC,yBACJC,QAAQC,eAAe,iBAAiBH,WAAAA,KAAgB,CAAC;AAE3DC,2BAAuBF,cAAAA,IAAkBH;AAEzCM,YAAQE,eAAe,iBAAiBH,wBAAwBD,WAAAA;EAClE;AACF;AAhBgBL;;;AC3EhB,SAASU,gBAAgBC,eAAe;;;;;;;;;;;;;;;;;;;;;;;AAUxC,IAAqBC,kBAArB,MAAqBA;SAAAA;;;;EACXC;EAERC,YAC4CC,SAC1C;SAD0CA,UAAAA;AAE1C,SAAKF,UAAU,IAAIG,QAAQ,KAAKD,QAAQE,GAAG;EAC7C;EAEA,MAAMC,OAAOC,OAAcC,SAAsC;AAC/D,UAAMC,QAAQ,IAAIC,eAAAA,EACfC,SAAS,iBAAA,EACTC,SAAS,WAAW,SAASL,MAAMM,QAAQC,MAAM,GAAG,GAAA,CAAA,QAAY,EAChEF,SACC,UACA,MAAMJ,SAASO,SAASC,MAAAA,KAAWR,SAASO,SAASV,GAAAA,MACrD,IAAA,EAEDO,SACC,WACA,cACEK,KAAKC,UAAUV,SAASO,SAASI,QAAQ,MAAM,CAAA,IAC/C,SACF,IAAA,EAEDP,SACC,UACA,cACEK,KAAKC,UAAUV,SAASO,SAASK,OAAO,MAAM,CAAA,IAC9C,SACF,IAAA,EAEDR,SACC,YACA,cACEK,KAAKC,UAAUV,SAASO,SAASM,SAAS,MAAM,CAAA,IAChD,SACF,IAAA,EAEDT,SACC,SACA,cAAcK,KAAKC,UAAUV,SAASO,SAASO,MAAM,MAAM,CAAA,IAAK,OAAA,EAEjEV,SACC,gBACA,SAASL,MAAMgB,SAAS,qBAAqBT,MAAM,GAAG,GAAA,IAAO,KAAA,EAE9DU,UAAU,QAAQ,KAAKrB,QAAQsB,OAAO,aAAA,EAAe,EACrDC,aAAY;AAEf,UAAM,KAAKzB,QAAQ0B,KAAKlB,KAAAA;EAC1B;AACF;;;;;;;;","names":["Inject","token","target","_propertyKey","parameterIndex","constructor","existingInjectedParams","Reflect","getOwnMetadata","defineMetadata","MessageBuilder","Webhook","DiscordNotifier","webhook","constructor","options","Webhook","url","notify","error","context","embed","MessageBuilder","setTitle","addField","message","slice","request","method","JSON","stringify","params","query","headers","body","stack","setFooter","env","setTimestamp","send"]}
@@ -0,0 +1,40 @@
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/infra/adapters/notifications/in-memory.ts
22
+ var in_memory_exports = {};
23
+ __export(in_memory_exports, {
24
+ default: () => NotificationErrorInMemory
25
+ });
26
+ module.exports = __toCommonJS(in_memory_exports);
27
+ var NotificationErrorInMemory = class {
28
+ static {
29
+ __name(this, "NotificationErrorInMemory");
30
+ }
31
+ errors = [];
32
+ async notify(error, context) {
33
+ console.log("NOTIFICATION ERROR: ", error);
34
+ this.errors.push({
35
+ error: error.message,
36
+ context
37
+ });
38
+ }
39
+ };
40
+ //# sourceMappingURL=in-memory.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/infra/adapters/notifications/in-memory.ts"],"sourcesContent":["import type { ContextError } from '../../../core/http/base-controller'\nimport type IErrorNotifier from '../../../core/http/error-notifier'\n\nexport default class NotificationErrorInMemory implements IErrorNotifier {\n public errors: any[] = []\n\n async notify(error: Error, context?: ContextError): Promise<void> {\n console.log('NOTIFICATION ERROR: ', error)\n\n this.errors.push({\n error: error.message,\n context,\n })\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAGA;;;;;AAAA,IAAqBA,4BAArB,MAAqBA;EAArB,OAAqBA;;;EACZC,SAAgB,CAAA;EAEvB,MAAMC,OAAOC,OAAcC,SAAuC;AAChEC,YAAQC,IAAI,wBAAwBH,KAAAA;AAEpC,SAAKF,OAAOM,KAAK;MACfJ,OAAOA,MAAMK;MACbJ;IACF,CAAA;EACF;AACF;","names":["NotificationErrorInMemory","errors","notify","error","context","console","log","push","message"]}
@@ -0,0 +1,8 @@
1
+ import { I as IErrorNotifier, C as ContextError } from '../../../base-controller-cec5714c.js';
2
+
3
+ declare class NotificationErrorInMemory implements IErrorNotifier {
4
+ errors: any[];
5
+ notify(error: Error, context?: ContextError): Promise<void>;
6
+ }
7
+
8
+ export { NotificationErrorInMemory as default };
@@ -0,0 +1,8 @@
1
+ import { I as IErrorNotifier, C as ContextError } from '../../../base-controller-cec5714c.js';
2
+
3
+ declare class NotificationErrorInMemory implements IErrorNotifier {
4
+ errors: any[];
5
+ notify(error: Error, context?: ContextError): Promise<void>;
6
+ }
7
+
8
+ export { NotificationErrorInMemory as default };
@@ -0,0 +1,21 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+
4
+ // src/infra/adapters/notifications/in-memory.ts
5
+ var NotificationErrorInMemory = class {
6
+ static {
7
+ __name(this, "NotificationErrorInMemory");
8
+ }
9
+ errors = [];
10
+ async notify(error, context) {
11
+ console.log("NOTIFICATION ERROR: ", error);
12
+ this.errors.push({
13
+ error: error.message,
14
+ context
15
+ });
16
+ }
17
+ };
18
+ export {
19
+ NotificationErrorInMemory as default
20
+ };
21
+ //# sourceMappingURL=in-memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/infra/adapters/notifications/in-memory.ts"],"sourcesContent":["import type { ContextError } from '../../../core/http/base-controller'\nimport type IErrorNotifier from '../../../core/http/error-notifier'\n\nexport default class NotificationErrorInMemory implements IErrorNotifier {\n public errors: any[] = []\n\n async notify(error: Error, context?: ContextError): Promise<void> {\n console.log('NOTIFICATION ERROR: ', error)\n\n this.errors.push({\n error: error.message,\n context,\n })\n }\n}\n"],"mappings":";;;;AAGA,IAAqBA,4BAArB,MAAqBA;EAArB,OAAqBA;;;EACZC,SAAgB,CAAA;EAEvB,MAAMC,OAAOC,OAAcC,SAAuC;AAChEC,YAAQC,IAAI,wBAAwBH,KAAAA;AAEpC,SAAKF,OAAOM,KAAK;MACfJ,OAAOA,MAAMK;MACbJ;IACF,CAAA;EACF;AACF;","names":["NotificationErrorInMemory","errors","notify","error","context","console","log","push","message"]}
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
9
+ var __export = (target, all) => {
10
+ for (var name in all)
11
+ __defProp(target, name, { get: all[name], enumerable: true });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from))
16
+ if (!__hasOwnProp.call(to, key) && key !== except)
17
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
18
+ }
19
+ return to;
20
+ };
21
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
22
+ // If the importer is in node compatibility mode or this is not an ESM
23
+ // file that has been converted to a CommonJS file using a Babel-
24
+ // compatible transform (i.e. "__esModule" has not been set), then set
25
+ // "default" to the CommonJS "module.exports" for node compatibility.
26
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
27
+ mod
28
+ ));
29
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
+
31
+ // src/infra/adapters/notifications/sentry.ts
32
+ var sentry_exports = {};
33
+ __export(sentry_exports, {
34
+ SentryNotifier: () => SentryNotifier
35
+ });
36
+ module.exports = __toCommonJS(sentry_exports);
37
+ var Sentry = __toESM(require("@sentry/node"), 1);
38
+
39
+ // src/core/decorators/dependency-container.ts
40
+ var import_reflect_metadata = require("reflect-metadata");
41
+ function Inject(token) {
42
+ return (target, _propertyKey, parameterIndex) => {
43
+ const constructor = typeof target === "function" ? target : target.constructor;
44
+ const existingInjectedParams = Reflect.getOwnMetadata("inject:params", constructor) || {};
45
+ existingInjectedParams[parameterIndex] = token;
46
+ Reflect.defineMetadata("inject:params", existingInjectedParams, constructor);
47
+ };
48
+ }
49
+ __name(Inject, "Inject");
50
+
51
+ // src/infra/adapters/notifications/sentry.ts
52
+ function _ts_decorate(decorators, target, key, desc) {
53
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
54
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
55
+ r = Reflect.decorate(decorators, target, key, desc);
56
+ else
57
+ for (var i = decorators.length - 1; i >= 0; i--)
58
+ if (d = decorators[i])
59
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
60
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
61
+ }
62
+ __name(_ts_decorate, "_ts_decorate");
63
+ function _ts_metadata(k, v) {
64
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
65
+ return Reflect.metadata(k, v);
66
+ }
67
+ __name(_ts_metadata, "_ts_metadata");
68
+ function _ts_param(paramIndex, decorator) {
69
+ return function(target, key) {
70
+ decorator(target, key, paramIndex);
71
+ };
72
+ }
73
+ __name(_ts_param, "_ts_param");
74
+ var SentryNotifier = class {
75
+ static {
76
+ __name(this, "SentryNotifier");
77
+ }
78
+ options;
79
+ constructor(options) {
80
+ this.options = options;
81
+ Sentry.init({
82
+ dsn: this.options.dsn,
83
+ environment: this.options.environment,
84
+ attachStacktrace: true,
85
+ tracesSampleRate: this.options.environment === "production" ? 0.1 : 1,
86
+ maxBreadcrumbs: 100,
87
+ debug: this.options.environment !== "production"
88
+ });
89
+ }
90
+ async notify(error, context) {
91
+ Sentry.withScope((scope) => {
92
+ scope.setLevel("error");
93
+ if (context?.env)
94
+ scope.setTag("env", context.env);
95
+ if (context?.user) {
96
+ scope.setUser({
97
+ id: context.user.id,
98
+ username: context.user.name,
99
+ email: context.user.email
100
+ });
101
+ }
102
+ if (context?.request) {
103
+ const { body, query, params, headers, method, url, requestId } = context.request;
104
+ scope.setContext("http", {
105
+ method,
106
+ requestId,
107
+ url,
108
+ headers,
109
+ query,
110
+ body,
111
+ params
112
+ });
113
+ }
114
+ Sentry.captureException(error);
115
+ });
116
+ }
117
+ };
118
+ SentryNotifier = _ts_decorate([
119
+ _ts_param(0, Inject("SentryConfig")),
120
+ _ts_metadata("design:type", Function),
121
+ _ts_metadata("design:paramtypes", [
122
+ typeof SentryOptions === "undefined" ? Object : SentryOptions
123
+ ])
124
+ ], SentryNotifier);
125
+ // Annotate the CommonJS export names for ESM import in node:
126
+ 0 && (module.exports = {
127
+ SentryNotifier
128
+ });
129
+ //# sourceMappingURL=sentry.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/infra/adapters/notifications/sentry.ts","../../../../src/core/decorators/dependency-container.ts"],"sourcesContent":["import * as Sentry from '@sentry/node'\nimport type { ContextError } from 'core/http/base-controller'\n\nimport { Inject } from '../../../core/decorators/dependency-container'\nimport IErrorNotifier from '../../../core/http/error-notifier'\n\ntype SentryOptions = {\n dsn: string\n environment: string\n}\n\nexport class SentryNotifier implements IErrorNotifier {\n constructor(@Inject('SentryConfig') private readonly options: SentryOptions) {\n Sentry.init({\n dsn: this.options.dsn,\n environment: this.options.environment,\n attachStacktrace: true,\n tracesSampleRate: this.options.environment === 'production' ? 0.1 : 1.0,\n maxBreadcrumbs: 100,\n debug: this.options.environment !== 'production',\n })\n }\n\n async notify(error: Error, context: ContextError): Promise<void> {\n Sentry.withScope((scope) => {\n scope.setLevel('error')\n\n if (context?.env) scope.setTag('env', context.env)\n\n if (context?.user) {\n scope.setUser({\n id: context.user.id,\n username: context.user.name,\n email: context.user.email,\n })\n }\n\n if (context?.request) {\n const { body, query, params, headers, method, url, requestId } =\n context.request\n\n scope.setContext('http', {\n method,\n requestId,\n url,\n headers,\n query,\n body,\n params,\n })\n }\n\n Sentry.captureException(error)\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 default 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 paramTypes = Reflect.getMetadata('design:paramtypes', target) || []\n\n const injectMetadata: Record<number, string> =\n Reflect.getOwnMetadata('inject:params', target) || {}\n\n const params = paramTypes.map((_: any, index: number) => {\n const token = injectMetadata[index]\n\n if (!token) {\n throw new Error(\n `Missing @Inject token for parameter index ${index} in ${target.name}`\n )\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"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,aAAwB;;;ACAxB,8BAAO;AA4EA,SAASA,OAAOC,OAAa;AAClC,SAAO,CACLC,QACAC,cACAC,mBAAAA;AAEA,UAAMC,cACJ,OAAOH,WAAW,aAAaA,SAASA,OAAOG;AAEjD,UAAMC,yBACJC,QAAQC,eAAe,iBAAiBH,WAAAA,KAAgB,CAAC;AAE3DC,2BAAuBF,cAAAA,IAAkBH;AAEzCM,YAAQE,eAAe,iBAAiBH,wBAAwBD,WAAAA;EAClE;AACF;AAhBgBL;;;;;;;;;;;;;;;;;;;;;;;;;ADjET,IAAMU,iBAAN,MAAMA;SAAAA;;;;EACXC,YAAqDC,SAAwB;SAAxBA,UAAAA;AACnDC,IAAOC,YAAK;MACVC,KAAK,KAAKH,QAAQG;MAClBC,aAAa,KAAKJ,QAAQI;MAC1BC,kBAAkB;MAClBC,kBAAkB,KAAKN,QAAQI,gBAAgB,eAAe,MAAM;MACpEG,gBAAgB;MAChBC,OAAO,KAAKR,QAAQI,gBAAgB;IACtC,CAAA;EACF;EAEA,MAAMK,OAAOC,OAAcC,SAAsC;AAC/DV,IAAOW,iBAAU,CAACC,UAAAA;AAChBA,YAAMC,SAAS,OAAA;AAEf,UAAIH,SAASI;AAAKF,cAAMG,OAAO,OAAOL,QAAQI,GAAG;AAEjD,UAAIJ,SAASM,MAAM;AACjBJ,cAAMK,QAAQ;UACZC,IAAIR,QAAQM,KAAKE;UACjBC,UAAUT,QAAQM,KAAKI;UACvBC,OAAOX,QAAQM,KAAKK;QACtB,CAAA;MACF;AAEA,UAAIX,SAASY,SAAS;AACpB,cAAM,EAAEC,MAAMC,OAAOC,QAAQC,SAASC,QAAQC,KAAKC,UAAS,IAC1DnB,QAAQY;AAEVV,cAAMkB,WAAW,QAAQ;UACvBH;UACAE;UACAD;UACAF;UACAF;UACAD;UACAE;QACF,CAAA;MACF;AAEAzB,MAAO+B,wBAAiBtB,KAAAA;IAC1B,CAAA;EACF;AACF;;;;;;;;","names":["Inject","token","target","_propertyKey","parameterIndex","constructor","existingInjectedParams","Reflect","getOwnMetadata","defineMetadata","SentryNotifier","constructor","options","Sentry","init","dsn","environment","attachStacktrace","tracesSampleRate","maxBreadcrumbs","debug","notify","error","context","withScope","scope","setLevel","env","setTag","user","setUser","id","username","name","email","request","body","query","params","headers","method","url","requestId","setContext","captureException"]}
@@ -0,0 +1,13 @@
1
+ import { I as IErrorNotifier, C as ContextError } from '../../../base-controller-cec5714c.js';
2
+
3
+ type SentryOptions = {
4
+ dsn: string;
5
+ environment: string;
6
+ };
7
+ declare class SentryNotifier implements IErrorNotifier {
8
+ private readonly options;
9
+ constructor(options: SentryOptions);
10
+ notify(error: Error, context: ContextError): Promise<void>;
11
+ }
12
+
13
+ export { SentryNotifier };
@@ -0,0 +1,13 @@
1
+ import { I as IErrorNotifier, C as ContextError } from '../../../base-controller-cec5714c.js';
2
+
3
+ type SentryOptions = {
4
+ dsn: string;
5
+ environment: string;
6
+ };
7
+ declare class SentryNotifier implements IErrorNotifier {
8
+ private readonly options;
9
+ constructor(options: SentryOptions);
10
+ notify(error: Error, context: ContextError): Promise<void>;
11
+ }
12
+
13
+ export { SentryNotifier };