@koalarx/nest 1.18.21 → 3.0.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 (295) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/package.json +5 -36
  3. package/src/core/backgroud-services/cron-service/cron-job.handler.base.ts +66 -0
  4. package/src/core/backgroud-services/cron-service/cron-job.handler.spec.ts +38 -0
  5. package/src/core/backgroud-services/event-service/event-class.ts +5 -0
  6. package/src/core/backgroud-services/event-service/event-handler.base.ts +17 -0
  7. package/src/core/backgroud-services/event-service/event-is-trigger.ts +3 -0
  8. package/src/core/backgroud-services/event-service/event-job.ts +28 -0
  9. package/src/core/backgroud-services/event-service/event-queue.spec.ts +47 -0
  10. package/src/core/backgroud-services/event-service/event-queue.ts +107 -0
  11. package/src/core/constants/query-params.ts +7 -0
  12. package/src/core/controllers/base.controller.ts +9 -0
  13. package/src/core/controllers/controller.decorator.ts +10 -0
  14. package/src/core/controllers/created-registre-response.base.ts +17 -0
  15. package/src/core/controllers/list-response.base.ts +8 -0
  16. package/src/core/controllers/pagination.request.ts +41 -0
  17. package/src/core/controllers/router-config.base.ts +14 -0
  18. package/src/core/controllers/schemas/boolean.schema.ts +10 -0
  19. package/src/core/controllers/schemas/document-number.schema.ts +23 -0
  20. package/src/core/controllers/schemas/email.schema.ts +13 -0
  21. package/src/core/controllers/schemas/list-query.schema.ts +17 -0
  22. package/src/core/controllers/schemas/native-enum.schema.ts +34 -0
  23. package/src/core/controllers/schemas/set-mask-document-number.schema.ts +13 -0
  24. package/src/core/database/entity.base.ts +95 -0
  25. package/src/core/database/entity.decorator.spec.ts +71 -0
  26. package/src/core/database/entity.decorator.ts +39 -0
  27. package/src/core/database/prisma-client-with-custom-transaction.interface.ts +13 -0
  28. package/src/core/database/prisma-resolver.ts +99 -0
  29. package/src/core/database/prisma-transactional-client.ts +43 -0
  30. package/src/core/database/prisma.service.ts +136 -0
  31. package/src/core/database/repository.base.ts +548 -0
  32. package/src/core/dtos/pagination.dto.ts +35 -0
  33. package/src/core/errors/bad-request.error.ts +8 -0
  34. package/src/core/errors/conflict.error.ts +7 -0
  35. package/src/core/errors/error.base.ts +5 -0
  36. package/src/core/errors/no-content.error.ts +8 -0
  37. package/src/core/errors/not-allowed.error.ts +8 -0
  38. package/src/core/errors/resource-not-found.error.ts +8 -0
  39. package/{core/errors/use-case-error.d.ts → src/core/errors/use-case-error.ts} +1 -1
  40. package/src/core/errors/user-already-exist.error.ts +7 -0
  41. package/src/core/errors/wrong-credentials.error.ts +7 -0
  42. package/src/core/health-check/health-check.controller.ts +13 -0
  43. package/src/core/health-check/health-check.module.ts +7 -0
  44. package/src/core/index.ts +56 -0
  45. package/src/core/koala-app.ts +379 -0
  46. package/src/core/koala-global-vars.ts +8 -0
  47. package/src/core/koala-nest-database.module.ts +65 -0
  48. package/src/core/koala-nest-http.module.ts +44 -0
  49. package/src/core/koala-nest.module.ts +67 -0
  50. package/src/core/mapping/auto-mapping-class-context.ts +28 -0
  51. package/src/core/mapping/auto-mapping-context.ts +26 -0
  52. package/src/core/mapping/auto-mapping-list.ts +154 -0
  53. package/src/core/mapping/auto-mapping-profile.ts +3 -0
  54. package/src/core/mapping/auto-mapping.decorator.ts +54 -0
  55. package/src/core/mapping/auto-mapping.module.ts +17 -0
  56. package/src/core/mapping/auto-mapping.service.ts +187 -0
  57. package/src/core/mapping/create-map.ts +11 -0
  58. package/src/core/mapping/for-member.ts +16 -0
  59. package/src/core/request-overflow/request-handler.base.ts +8 -0
  60. package/src/core/request-overflow/request-result.spec.ts +23 -0
  61. package/src/core/request-overflow/request-result.ts +41 -0
  62. package/src/core/request-overflow/request-validator.base.ts +33 -0
  63. package/src/core/security/strategies/api-key.strategy.ts +45 -0
  64. package/src/core/utils/assing-object.ts +9 -0
  65. package/src/core/utils/env.config.ts +17 -0
  66. package/src/core/utils/filter-request-params.ts +23 -0
  67. package/src/core/utils/find-on-list.ts +18 -0
  68. package/src/core/utils/get-type-by-prop.ts +9 -0
  69. package/src/core/utils/instanciate-class-with-dependencies-injection.ts +12 -0
  70. package/src/core/utils/interfaces/icomparable.ts +6 -0
  71. package/src/core/utils/list.spec.ts +81 -0
  72. package/src/core/utils/list.ts +223 -0
  73. package/src/core/utils/promise-all.ts +24 -0
  74. package/src/core/utils/set-mask-document-number.ts +13 -0
  75. package/src/core/validators/file-validator.ts +113 -0
  76. package/src/decorators/api-exclude-endpoint-diff-develop.decorator.ts +15 -0
  77. package/src/decorators/api-property-enum.decorator.ts +58 -0
  78. package/src/decorators/api-property-only-develop.decorator.ts +6 -0
  79. package/src/decorators/cookies.decorator.ts +8 -0
  80. package/src/decorators/is-public.decorator.ts +5 -0
  81. package/src/decorators/upload.decorator.ts +31 -0
  82. package/src/env/env.module.ts +8 -0
  83. package/src/env/env.service.ts +12 -0
  84. package/src/env/env.ts +14 -0
  85. package/src/filters/domain-errors.filter.ts +97 -0
  86. package/src/filters/global-exception.filter.ts +60 -0
  87. package/src/filters/prisma-validation-exception.filter.ts +73 -0
  88. package/src/filters/zod-errors.filter.ts +48 -0
  89. package/src/services/logging/ilogging.service.ts +17 -0
  90. package/src/services/logging/logging.service.ts +10 -0
  91. package/src/services/redis/iredis.service.ts +11 -0
  92. package/src/services/redis/redis.service.ts +70 -0
  93. package/src/services/redlock/ired-lock.service.ts +4 -0
  94. package/src/services/redlock/red-lock.service.ts +36 -0
  95. package/src/test/koala-app-test-dependencies.ts +15 -0
  96. package/src/test/koala-app-test.ts +103 -0
  97. package/src/test/repositories/in-memory-base.repository.ts +90 -0
  98. package/src/test/services/fake-logging.service.ts +7 -0
  99. package/src/test/services/fake-red-lock.service.ts +11 -0
  100. package/src/test/utils/create-e2e-database.ts +55 -0
  101. package/src/test/utils/drop-e2e-database.ts +36 -0
  102. package/src/test/utils/wait-for.ts +31 -0
  103. package/tsconfig.lib.json +11 -0
  104. package/LICENSE +0 -21
  105. package/README.md +0 -485
  106. package/core/backgroud-services/cron-service/cron-job.handler.base.d.ts +0 -16
  107. package/core/backgroud-services/cron-service/cron-job.handler.base.js +0 -49
  108. package/core/backgroud-services/event-service/event-class.d.ts +0 -5
  109. package/core/backgroud-services/event-service/event-class.js +0 -11
  110. package/core/backgroud-services/event-service/event-handler.base.d.ts +0 -8
  111. package/core/backgroud-services/event-service/event-handler.base.js +0 -14
  112. package/core/backgroud-services/event-service/event-is-trigger.d.ts +0 -3
  113. package/core/backgroud-services/event-service/event-is-trigger.js +0 -7
  114. package/core/backgroud-services/event-service/event-job.d.ts +0 -13
  115. package/core/backgroud-services/event-service/event-job.js +0 -21
  116. package/core/backgroud-services/event-service/event-queue.d.ts +0 -17
  117. package/core/backgroud-services/event-service/event-queue.js +0 -62
  118. package/core/constants/query-params.d.ts +0 -6
  119. package/core/constants/query-params.js +0 -8
  120. package/core/controllers/base.controller.d.ts +0 -4
  121. package/core/controllers/base.controller.js +0 -6
  122. package/core/controllers/controller.decorator.d.ts +0 -2
  123. package/core/controllers/controller.decorator.js +0 -11
  124. package/core/controllers/created-registre-response.base.d.ts +0 -10
  125. package/core/controllers/created-registre-response.base.js +0 -35
  126. package/core/controllers/list-response.base.d.ts +0 -4
  127. package/core/controllers/list-response.base.js +0 -21
  128. package/core/controllers/pagination.request.d.ts +0 -10
  129. package/core/controllers/pagination.request.js +0 -56
  130. package/core/controllers/router-config.base.d.ts +0 -7
  131. package/core/controllers/router-config.base.js +0 -18
  132. package/core/controllers/schemas/boolean.schema.d.ts +0 -2
  133. package/core/controllers/schemas/boolean.schema.js +0 -12
  134. package/core/controllers/schemas/document-number.schema.d.ts +0 -1
  135. package/core/controllers/schemas/document-number.schema.js +0 -26
  136. package/core/controllers/schemas/email.schema.d.ts +0 -1
  137. package/core/controllers/schemas/email.schema.js +0 -13
  138. package/core/controllers/schemas/list-query.schema.d.ts +0 -17
  139. package/core/controllers/schemas/list-query.schema.js +0 -19
  140. package/core/controllers/schemas/native-enum.schema.d.ts +0 -7
  141. package/core/controllers/schemas/native-enum.schema.js +0 -28
  142. package/core/controllers/schemas/set-mask-document-number.schema.d.ts +0 -1
  143. package/core/controllers/schemas/set-mask-document-number.schema.js +0 -13
  144. package/core/database/entity.base.d.ts +0 -20
  145. package/core/database/entity.base.js +0 -71
  146. package/core/database/entity.decorator.d.ts +0 -13
  147. package/core/database/entity.decorator.js +0 -23
  148. package/core/database/prisma-client-with-custom-transaction.interface.d.ts +0 -8
  149. package/core/database/prisma-client-with-custom-transaction.interface.js +0 -2
  150. package/core/database/prisma-resolver.d.ts +0 -2
  151. package/core/database/prisma-resolver.js +0 -74
  152. package/core/database/prisma-transactional-client.d.ts +0 -11
  153. package/core/database/prisma-transactional-client.js +0 -25
  154. package/core/database/prisma.service.d.ts +0 -24
  155. package/core/database/prisma.service.js +0 -104
  156. package/core/database/repository.base.d.ts +0 -44
  157. package/core/database/repository.base.js +0 -360
  158. package/core/dtos/pagination.dto.d.ts +0 -9
  159. package/core/dtos/pagination.dto.js +0 -49
  160. package/core/errors/bad-request.error.d.ts +0 -5
  161. package/core/errors/bad-request.error.js +0 -10
  162. package/core/errors/conflict.error.d.ts +0 -4
  163. package/core/errors/conflict.error.js +0 -10
  164. package/core/errors/error.base.d.ts +0 -4
  165. package/core/errors/error.base.js +0 -11
  166. package/core/errors/no-content.error.d.ts +0 -5
  167. package/core/errors/no-content.error.js +0 -10
  168. package/core/errors/not-allowed.error.d.ts +0 -5
  169. package/core/errors/not-allowed.error.js +0 -10
  170. package/core/errors/resource-not-found.error.d.ts +0 -5
  171. package/core/errors/resource-not-found.error.js +0 -10
  172. package/core/errors/use-case-error.js +0 -2
  173. package/core/errors/user-already-exist.error.d.ts +0 -4
  174. package/core/errors/user-already-exist.error.js +0 -10
  175. package/core/errors/wrong-credentials.error.d.ts +0 -4
  176. package/core/errors/wrong-credentials.error.js +0 -10
  177. package/core/health-check/health-check.controller.d.ts +0 -5
  178. package/core/health-check/health-check.controller.js +0 -32
  179. package/core/health-check/health-check.module.d.ts +0 -2
  180. package/core/health-check/health-check.module.js +0 -19
  181. package/core/index.d.ts +0 -18
  182. package/core/index.js +0 -7
  183. package/core/koala-app.d.ts +0 -64
  184. package/core/koala-app.js +0 -252
  185. package/core/koala-global-vars.d.ts +0 -7
  186. package/core/koala-global-vars.js +0 -9
  187. package/core/koala-nest-database.module.d.ts +0 -16
  188. package/core/koala-nest-database.module.js +0 -52
  189. package/core/koala-nest-http.module.d.ts +0 -13
  190. package/core/koala-nest-http.module.js +0 -37
  191. package/core/koala-nest.module.d.ts +0 -17
  192. package/core/koala-nest.module.js +0 -66
  193. package/core/mapping/auto-mapping-class-context.d.ts +0 -16
  194. package/core/mapping/auto-mapping-class-context.js +0 -18
  195. package/core/mapping/auto-mapping-context.d.ts +0 -11
  196. package/core/mapping/auto-mapping-context.js +0 -24
  197. package/core/mapping/auto-mapping-list.d.ts +0 -27
  198. package/core/mapping/auto-mapping-list.js +0 -94
  199. package/core/mapping/auto-mapping-profile.d.ts +0 -3
  200. package/core/mapping/auto-mapping-profile.js +0 -6
  201. package/core/mapping/auto-mapping.decorator.d.ts +0 -9
  202. package/core/mapping/auto-mapping.decorator.js +0 -27
  203. package/core/mapping/auto-mapping.module.d.ts +0 -5
  204. package/core/mapping/auto-mapping.module.js +0 -29
  205. package/core/mapping/auto-mapping.service.d.ts +0 -14
  206. package/core/mapping/auto-mapping.service.js +0 -140
  207. package/core/mapping/create-map.d.ts +0 -3
  208. package/core/mapping/create-map.js +0 -7
  209. package/core/mapping/for-member.d.ts +0 -5
  210. package/core/mapping/for-member.js +0 -8
  211. package/core/request-overflow/request-handler.base.d.ts +0 -4
  212. package/core/request-overflow/request-handler.base.js +0 -6
  213. package/core/request-overflow/request-result.d.ts +0 -15
  214. package/core/request-overflow/request-result.js +0 -37
  215. package/core/request-overflow/request-validator.base.d.ts +0 -7
  216. package/core/request-overflow/request-validator.base.js +0 -26
  217. package/core/security/strategies/api-key.strategy.d.ts +0 -16
  218. package/core/security/strategies/api-key.strategy.js +0 -31
  219. package/core/utils/assing-object.d.ts +0 -5
  220. package/core/utils/assing-object.js +0 -6
  221. package/core/utils/env.config.d.ts +0 -6
  222. package/core/utils/env.config.js +0 -18
  223. package/core/utils/filter-request-params.d.ts +0 -13
  224. package/core/utils/filter-request-params.js +0 -22
  225. package/core/utils/find-on-list.d.ts +0 -2
  226. package/core/utils/find-on-list.js +0 -13
  227. package/core/utils/get-type-by-prop.d.ts +0 -2
  228. package/core/utils/get-type-by-prop.js +0 -11
  229. package/core/utils/instanciate-class-with-dependencies-injection.d.ts +0 -2
  230. package/core/utils/instanciate-class-with-dependencies-injection.js +0 -10
  231. package/core/utils/interfaces/icomparable.d.ts +0 -5
  232. package/core/utils/interfaces/icomparable.js +0 -6
  233. package/core/utils/list.d.ts +0 -39
  234. package/core/utils/list.js +0 -168
  235. package/core/utils/promise-all.d.ts +0 -7
  236. package/core/utils/promise-all.js +0 -19
  237. package/core/utils/set-mask-document-number.d.ts +0 -1
  238. package/core/utils/set-mask-document-number.js +0 -13
  239. package/core/validators/file-validator.d.ts +0 -27
  240. package/core/validators/file-validator.js +0 -94
  241. package/decorators/api-exclude-endpoint-diff-develop.decorator.d.ts +0 -1
  242. package/decorators/api-exclude-endpoint-diff-develop.decorator.js +0 -9
  243. package/decorators/api-property-enum.decorator.d.ts +0 -8
  244. package/decorators/api-property-enum.decorator.js +0 -21
  245. package/decorators/api-property-only-develop.decorator.d.ts +0 -2
  246. package/decorators/api-property-only-develop.decorator.js +0 -9
  247. package/decorators/cookies.decorator.d.ts +0 -1
  248. package/decorators/cookies.decorator.js +0 -8
  249. package/decorators/is-public.decorator.d.ts +0 -2
  250. package/decorators/is-public.decorator.js +0 -7
  251. package/decorators/upload.decorator.d.ts +0 -1
  252. package/decorators/upload.decorator.js +0 -18
  253. package/env/env.d.ts +0 -25
  254. package/env/env.js +0 -14
  255. package/env/env.module.d.ts +0 -2
  256. package/env/env.module.js +0 -20
  257. package/env/env.service.d.ts +0 -7
  258. package/env/env.service.js +0 -28
  259. package/filters/domain-errors.filter.d.ts +0 -18
  260. package/filters/domain-errors.filter.js +0 -92
  261. package/filters/global-exception.filter.d.ts +0 -8
  262. package/filters/global-exception.filter.js +0 -68
  263. package/filters/prisma-validation-exception.filter.d.ts +0 -10
  264. package/filters/prisma-validation-exception.filter.js +0 -82
  265. package/filters/zod-errors.filter.d.ts +0 -9
  266. package/filters/zod-errors.filter.js +0 -60
  267. package/services/logging/ilogging.service.d.ts +0 -16
  268. package/services/logging/ilogging.service.js +0 -6
  269. package/services/logging/logging.service.d.ts +0 -4
  270. package/services/logging/logging.service.js +0 -20
  271. package/services/redis/iredis.service.d.ts +0 -6
  272. package/services/redis/iredis.service.js +0 -6
  273. package/services/redis/redis.service.d.ts +0 -14
  274. package/services/redis/redis.service.js +0 -65
  275. package/services/redlock/ired-lock.service.d.ts +0 -4
  276. package/services/redlock/ired-lock.service.js +0 -6
  277. package/services/redlock/red-lock.service.d.ts +0 -9
  278. package/services/redlock/red-lock.service.js +0 -46
  279. package/test/koala-app-test-dependencies.d.ts +0 -10
  280. package/test/koala-app-test-dependencies.js +0 -13
  281. package/test/koala-app-test.d.ts +0 -22
  282. package/test/koala-app-test.js +0 -77
  283. package/test/repositories/in-memory-base.repository.d.ts +0 -17
  284. package/test/repositories/in-memory-base.repository.js +0 -65
  285. package/test/services/fake-logging.service.d.ts +0 -4
  286. package/test/services/fake-logging.service.js +0 -9
  287. package/test/services/fake-red-lock.service.d.ts +0 -5
  288. package/test/services/fake-red-lock.service.js +0 -11
  289. package/test/utils/create-e2e-database.d.ts +0 -2
  290. package/test/utils/create-e2e-database.js +0 -47
  291. package/test/utils/drop-e2e-database.d.ts +0 -2
  292. package/test/utils/drop-e2e-database.js +0 -33
  293. package/test/utils/wait-for.d.ts +0 -1
  294. package/test/utils/wait-for.js +0 -21
  295. package/tsconfig.lib.tsbuildinfo +0 -1
@@ -1,92 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.DomainErrorsFilter = void 0;
13
- const common_1 = require("@nestjs/common");
14
- const core_1 = require("@nestjs/core");
15
- const bad_request_error_1 = require("../core/errors/bad-request.error");
16
- const conflict_error_1 = require("../core/errors/conflict.error");
17
- const no_content_error_1 = require("../core/errors/no-content.error");
18
- const not_allowed_error_1 = require("../core/errors/not-allowed.error");
19
- const resource_not_found_error_1 = require("../core/errors/resource-not-found.error");
20
- const user_already_exist_error_1 = require("../core/errors/user-already-exist.error");
21
- const wrong_credentials_error_1 = require("../core/errors/wrong-credentials.error");
22
- const koala_global_vars_1 = require("../core/koala-global-vars");
23
- const env_config_1 = require("../core/utils/env.config");
24
- const filter_request_params_1 = require("../core/utils/filter-request-params");
25
- const ilogging_service_1 = require("../services/logging/ilogging.service");
26
- let DomainErrorsFilter = class DomainErrorsFilter extends core_1.BaseExceptionFilter {
27
- loggingService;
28
- constructor(loggingService) {
29
- super();
30
- this.loggingService = loggingService;
31
- }
32
- catch(exception, host) {
33
- const mappedException = this.map(exception);
34
- const filterRequestParams = filter_request_params_1.FilterRequestParams.get(host);
35
- if (mappedException.statusCode !== common_1.HttpStatus.UNAUTHORIZED) {
36
- if (!env_config_1.EnvConfig.isEnvTest) {
37
- this.loggingService
38
- .report({
39
- error: exception,
40
- packageName: koala_global_vars_1.KoalaGlobalVars.appName,
41
- loggedUsername: filterRequestParams.loggedUserName,
42
- httpRequest: {
43
- ...filterRequestParams.filterParams,
44
- statusCode: mappedException.statusCode,
45
- response: mappedException,
46
- },
47
- })
48
- .catch((err) => console.error(err));
49
- }
50
- else {
51
- console.error(exception);
52
- }
53
- }
54
- return filterRequestParams.response
55
- .status(mappedException.statusCode)
56
- .json(mappedException);
57
- }
58
- map(exception) {
59
- const mappedException = {
60
- statusCode: common_1.HttpStatus.INTERNAL_SERVER_ERROR,
61
- message: exception.message,
62
- data: exception.data,
63
- };
64
- switch (exception.constructor) {
65
- case user_already_exist_error_1.UserAlreadyExist:
66
- case not_allowed_error_1.NotAllowedError:
67
- case bad_request_error_1.BadRequestError:
68
- mappedException.statusCode = common_1.HttpStatus.BAD_REQUEST;
69
- break;
70
- case resource_not_found_error_1.ResourceNotFoundError:
71
- mappedException.statusCode = common_1.HttpStatus.NOT_FOUND;
72
- break;
73
- case wrong_credentials_error_1.WrongCredentialsError:
74
- mappedException.statusCode = common_1.HttpStatus.UNAUTHORIZED;
75
- break;
76
- case conflict_error_1.ConflictError:
77
- mappedException.statusCode = common_1.HttpStatus.CONFLICT;
78
- break;
79
- case no_content_error_1.NoContentError:
80
- mappedException.statusCode = common_1.HttpStatus.NO_CONTENT;
81
- break;
82
- default:
83
- console.error(exception);
84
- }
85
- return mappedException;
86
- }
87
- };
88
- exports.DomainErrorsFilter = DomainErrorsFilter;
89
- exports.DomainErrorsFilter = DomainErrorsFilter = __decorate([
90
- (0, common_1.Catch)(not_allowed_error_1.NotAllowedError, resource_not_found_error_1.ResourceNotFoundError, user_already_exist_error_1.UserAlreadyExist, wrong_credentials_error_1.WrongCredentialsError, conflict_error_1.ConflictError, bad_request_error_1.BadRequestError, no_content_error_1.NoContentError),
91
- __metadata("design:paramtypes", [ilogging_service_1.ILoggingService])
92
- ], DomainErrorsFilter);
@@ -1,8 +0,0 @@
1
- import { ArgumentsHost } from '@nestjs/common';
2
- import { BaseExceptionFilter } from '@nestjs/core';
3
- import { ILoggingService } from '../services/logging/ilogging.service';
4
- export declare class GlobalExceptionsFilter extends BaseExceptionFilter {
5
- private readonly loggingService;
6
- constructor(loggingService: ILoggingService);
7
- catch(exception: Error, host: ArgumentsHost): import("express").Response<any, Record<string, any>>;
8
- }
@@ -1,68 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.GlobalExceptionsFilter = void 0;
13
- const common_1 = require("@nestjs/common");
14
- const core_1 = require("@nestjs/core");
15
- const node_http_1 = require("node:http");
16
- const koala_global_vars_1 = require("../core/koala-global-vars");
17
- const env_config_1 = require("../core/utils/env.config");
18
- const filter_request_params_1 = require("../core/utils/filter-request-params");
19
- const ilogging_service_1 = require("../services/logging/ilogging.service");
20
- let GlobalExceptionsFilter = class GlobalExceptionsFilter extends core_1.BaseExceptionFilter {
21
- loggingService;
22
- constructor(loggingService) {
23
- super();
24
- this.loggingService = loggingService;
25
- }
26
- catch(exception, host) {
27
- const filterRequestParams = filter_request_params_1.FilterRequestParams.get(host);
28
- const request = host.getArgs().find((arg) => arg instanceof node_http_1.IncomingMessage) ?? null;
29
- const statusCode = exception instanceof common_1.HttpException
30
- ? exception.getStatus()
31
- : common_1.HttpStatus.INTERNAL_SERVER_ERROR;
32
- const responseBody = exception instanceof common_1.HttpException
33
- ? exception.getResponse()
34
- : {
35
- statusCode,
36
- timestamp: new Date().toISOString(),
37
- path: filterRequestParams.filterParams.endpoint,
38
- };
39
- if (!exception.message?.includes('Cannot GET /socket.io') &&
40
- !exception.message?.includes('Cannot GET /favicon.ico') &&
41
- !['/'].includes(request?.url ?? '') &&
42
- statusCode !== common_1.HttpStatus.UNAUTHORIZED) {
43
- if (!env_config_1.EnvConfig.isEnvTest) {
44
- this.loggingService
45
- .report({
46
- error: exception,
47
- packageName: koala_global_vars_1.KoalaGlobalVars.appName,
48
- loggedUsername: filterRequestParams.loggedUserName,
49
- httpRequest: {
50
- ...filterRequestParams.filterParams,
51
- statusCode,
52
- response: responseBody,
53
- },
54
- })
55
- .catch((err) => console.error(err));
56
- }
57
- else {
58
- console.error(exception);
59
- }
60
- }
61
- return filterRequestParams.response.status(statusCode).json(responseBody);
62
- }
63
- };
64
- exports.GlobalExceptionsFilter = GlobalExceptionsFilter;
65
- exports.GlobalExceptionsFilter = GlobalExceptionsFilter = __decorate([
66
- (0, common_1.Catch)(),
67
- __metadata("design:paramtypes", [ilogging_service_1.ILoggingService])
68
- ], GlobalExceptionsFilter);
@@ -1,10 +0,0 @@
1
- import { ArgumentsHost } from '@nestjs/common';
2
- import { BaseExceptionFilter } from '@nestjs/core';
3
- import { Prisma } from 'prisma/generated/client';
4
- import { ILoggingService } from '../services/logging/ilogging.service';
5
- export declare class PrismaValidationExceptionFilter extends BaseExceptionFilter {
6
- private readonly loggingService;
7
- constructor(loggingService: ILoggingService);
8
- catch(exception: Prisma.PrismaClientKnownRequestError, host: ArgumentsHost): import("express").Response<any, Record<string, any>>;
9
- private translate;
10
- }
@@ -1,82 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.PrismaValidationExceptionFilter = void 0;
13
- const common_1 = require("@nestjs/common");
14
- const core_1 = require("@nestjs/core");
15
- const client_1 = require("../../../../prisma/generated/client");
16
- const koala_global_vars_1 = require("../core/koala-global-vars");
17
- const env_config_1 = require("../core/utils/env.config");
18
- const filter_request_params_1 = require("../core/utils/filter-request-params");
19
- const ilogging_service_1 = require("../services/logging/ilogging.service");
20
- let PrismaValidationExceptionFilter = class PrismaValidationExceptionFilter extends core_1.BaseExceptionFilter {
21
- loggingService;
22
- constructor(loggingService) {
23
- super();
24
- this.loggingService = loggingService;
25
- }
26
- catch(exception, host) {
27
- const translatedResponse = this.translate(exception);
28
- const filterRequestParams = filter_request_params_1.FilterRequestParams.get(host);
29
- if (translatedResponse.statusCode !== common_1.HttpStatus.UNAUTHORIZED) {
30
- if (!env_config_1.EnvConfig.isEnvTest) {
31
- this.loggingService
32
- .report({
33
- error: exception,
34
- packageName: koala_global_vars_1.KoalaGlobalVars.appName,
35
- loggedUsername: filterRequestParams.loggedUserName,
36
- httpRequest: {
37
- ...filterRequestParams.filterParams,
38
- statusCode: translatedResponse.statusCode,
39
- response: translatedResponse,
40
- },
41
- })
42
- .catch((err) => console.error(err));
43
- }
44
- else {
45
- console.error(exception);
46
- }
47
- }
48
- return filterRequestParams.response
49
- .status(translatedResponse.statusCode)
50
- .json(translatedResponse);
51
- }
52
- translate(exception) {
53
- switch (exception.code) {
54
- case 'P2002':
55
- return {
56
- statusCode: common_1.HttpStatus.CONFLICT,
57
- message: 'Registro já existente.',
58
- };
59
- case 'P2003':
60
- return {
61
- statusCode: common_1.HttpStatus.BAD_REQUEST,
62
- message: 'Falha devido a relacionamento. Verifique se o relacionamento existe ou é valido.',
63
- };
64
- case 'P2025':
65
- return {
66
- statusCode: common_1.HttpStatus.NOT_FOUND,
67
- message: 'Registro não encontrado.',
68
- };
69
- default:
70
- console.error(exception);
71
- return {
72
- statusCode: common_1.HttpStatus.BAD_REQUEST,
73
- message: 'Ocorreu um erro desconhecido relacionado aos dados enviados.',
74
- };
75
- }
76
- }
77
- };
78
- exports.PrismaValidationExceptionFilter = PrismaValidationExceptionFilter;
79
- exports.PrismaValidationExceptionFilter = PrismaValidationExceptionFilter = __decorate([
80
- (0, common_1.Catch)(client_1.Prisma.PrismaClientKnownRequestError),
81
- __metadata("design:paramtypes", [ilogging_service_1.ILoggingService])
82
- ], PrismaValidationExceptionFilter);
@@ -1,9 +0,0 @@
1
- import { ArgumentsHost } from '@nestjs/common';
2
- import { BaseExceptionFilter } from '@nestjs/core';
3
- import { ZodError } from 'zod';
4
- import { ILoggingService } from '../services/logging/ilogging.service';
5
- export declare class ZodErrorsFilter extends BaseExceptionFilter {
6
- private readonly loggingService;
7
- constructor(loggingService: ILoggingService);
8
- catch(exception: ZodError, host: ArgumentsHost): import("express").Response<any, Record<string, any>>;
9
- }
@@ -1,60 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.ZodErrorsFilter = void 0;
13
- const common_1 = require("@nestjs/common");
14
- const core_1 = require("@nestjs/core");
15
- const zod_1 = require("zod");
16
- const zod_validation_error_1 = require("zod-validation-error");
17
- const koala_global_vars_1 = require("../core/koala-global-vars");
18
- const env_config_1 = require("../core/utils/env.config");
19
- const filter_request_params_1 = require("../core/utils/filter-request-params");
20
- const ilogging_service_1 = require("../services/logging/ilogging.service");
21
- let ZodErrorsFilter = class ZodErrorsFilter extends core_1.BaseExceptionFilter {
22
- loggingService;
23
- constructor(loggingService) {
24
- super();
25
- this.loggingService = loggingService;
26
- }
27
- catch(exception, host) {
28
- const filterRequestParams = filter_request_params_1.FilterRequestParams.get(host);
29
- const zodResponse = {
30
- errors: (0, zod_validation_error_1.fromZodError)(exception).details.map((detail) => `${detail.path} ${detail.message.toLowerCase()}`),
31
- statusCode: common_1.HttpStatus.BAD_REQUEST,
32
- message: 'Dados enviados inválidos',
33
- };
34
- if (!env_config_1.EnvConfig.isEnvTest) {
35
- this.loggingService
36
- .report({
37
- error: exception,
38
- packageName: koala_global_vars_1.KoalaGlobalVars.appName,
39
- loggedUsername: filterRequestParams.loggedUserName,
40
- httpRequest: {
41
- ...filterRequestParams.filterParams,
42
- statusCode: common_1.HttpStatus.BAD_REQUEST,
43
- response: zodResponse,
44
- },
45
- })
46
- .catch((err) => console.error(err));
47
- }
48
- else {
49
- console.error(exception);
50
- }
51
- return filterRequestParams.response
52
- .status(common_1.HttpStatus.BAD_REQUEST)
53
- .send(zodResponse);
54
- }
55
- };
56
- exports.ZodErrorsFilter = ZodErrorsFilter;
57
- exports.ZodErrorsFilter = ZodErrorsFilter = __decorate([
58
- (0, common_1.Catch)(zod_1.ZodError),
59
- __metadata("design:paramtypes", [ilogging_service_1.ILoggingService])
60
- ], ZodErrorsFilter);
@@ -1,16 +0,0 @@
1
- export interface LoggingReportProps {
2
- loggedUsername: string;
3
- packageName: string;
4
- error: Error;
5
- httpRequest?: {
6
- method: string;
7
- endpoint: string;
8
- queryParams?: string;
9
- payload?: object;
10
- statusCode: number;
11
- response?: object;
12
- };
13
- }
14
- export declare abstract class ILoggingService {
15
- abstract report(data: LoggingReportProps): Promise<void>;
16
- }
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ILoggingService = void 0;
4
- class ILoggingService {
5
- }
6
- exports.ILoggingService = ILoggingService;
@@ -1,4 +0,0 @@
1
- import { ILoggingService, LoggingReportProps } from './ilogging.service';
2
- export declare class LoggingService implements ILoggingService {
3
- report(data: LoggingReportProps): Promise<void>;
4
- }
@@ -1,20 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.LoggingService = void 0;
10
- const common_1 = require("@nestjs/common");
11
- const consola_1 = require("consola");
12
- let LoggingService = class LoggingService {
13
- async report(data) {
14
- consola_1.default.error(data.error);
15
- }
16
- };
17
- exports.LoggingService = LoggingService;
18
- exports.LoggingService = LoggingService = __decorate([
19
- (0, common_1.Injectable)()
20
- ], LoggingService);
@@ -1,6 +0,0 @@
1
- export declare abstract class IRedisService {
2
- abstract isConnected: boolean;
3
- abstract getCache(key: string): Promise<string | null>;
4
- abstract setCache(key: string, ttlSecondsCache: number, payload: any): Promise<void>;
5
- abstract deleteCache(key: string): Promise<void>;
6
- }
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.IRedisService = void 0;
4
- class IRedisService {
5
- }
6
- exports.IRedisService = IRedisService;
@@ -1,14 +0,0 @@
1
- import { OnModuleDestroy } from '@nestjs/common';
2
- import { EnvService } from '../../env/env.service';
3
- import { IRedisService } from './iredis.service';
4
- export declare class RedisService implements IRedisService, OnModuleDestroy {
5
- private readonly redisClient;
6
- private readonly environment;
7
- get isConnected(): boolean;
8
- constructor(env: EnvService);
9
- onModuleDestroy(): void;
10
- getCache(key: string): Promise<string | null>;
11
- setCache(key: string, ttlSecondsCache: number, payload: any): Promise<void>;
12
- deleteCache(key: string): Promise<void>;
13
- private getKeyCache;
14
- }
@@ -1,65 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.RedisService = void 0;
13
- const common_1 = require("@nestjs/common");
14
- const ioredis_1 = require("ioredis");
15
- const env_config_1 = require("../../core/utils/env.config");
16
- const env_service_1 = require("../../env/env.service");
17
- let RedisService = class RedisService {
18
- redisClient;
19
- environment;
20
- get isConnected() {
21
- return !!this.redisClient;
22
- }
23
- constructor(env) {
24
- if (!env_config_1.EnvConfig.isEnvTest) {
25
- const redisUrl = env.get('REDIS_CONNECTION_STRING');
26
- if (redisUrl) {
27
- const url = new URL(redisUrl);
28
- this.environment = env.get('NODE_ENV');
29
- this.redisClient = new ioredis_1.default({
30
- host: url.hostname,
31
- port: Number(url.port),
32
- password: url.password,
33
- username: url.username,
34
- });
35
- }
36
- }
37
- }
38
- onModuleDestroy() {
39
- this.redisClient.disconnect();
40
- }
41
- async getCache(key) {
42
- if (env_config_1.EnvConfig.isEnvTest) {
43
- return '';
44
- }
45
- return await this.redisClient.get(this.getKeyCache(key));
46
- }
47
- async setCache(key, ttlSecondsCache, payload) {
48
- if (!env_config_1.EnvConfig.isEnvTest) {
49
- await this.redisClient.set(this.getKeyCache(key), JSON.stringify(payload), 'EX', ttlSecondsCache);
50
- }
51
- }
52
- async deleteCache(key) {
53
- if (!env_config_1.EnvConfig.isEnvTest) {
54
- await this.redisClient.del(this.getKeyCache(key));
55
- }
56
- }
57
- getKeyCache(key) {
58
- return `${this.environment}:app:${key}`;
59
- }
60
- };
61
- exports.RedisService = RedisService;
62
- exports.RedisService = RedisService = __decorate([
63
- (0, common_1.Injectable)(),
64
- __metadata("design:paramtypes", [env_service_1.EnvService])
65
- ], RedisService);
@@ -1,4 +0,0 @@
1
- export declare abstract class IRedLockService {
2
- abstract acquiredLock(key: string, ttlSecondsLock: number): Promise<boolean>;
3
- abstract releaseLock(key: string): Promise<void>;
4
- }
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.IRedLockService = void 0;
4
- class IRedLockService {
5
- }
6
- exports.IRedLockService = IRedLockService;
@@ -1,9 +0,0 @@
1
- import { IRedisService } from '../redis/iredis.service';
2
- import { IRedLockService } from './ired-lock.service';
3
- export declare class RedLockService implements IRedLockService {
4
- private readonly redisService;
5
- constructor(redisService: IRedisService);
6
- acquiredLock(key: string, ttlSecondsLock: number): Promise<boolean>;
7
- releaseLock(key: string): Promise<void>;
8
- private getLockKey;
9
- }
@@ -1,46 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.RedLockService = void 0;
13
- const common_1 = require("@nestjs/common");
14
- const env_config_1 = require("../../core/utils/env.config");
15
- const iredis_service_1 = require("../redis/iredis.service");
16
- let RedLockService = class RedLockService {
17
- redisService;
18
- constructor(redisService) {
19
- this.redisService = redisService;
20
- }
21
- async acquiredLock(key, ttlSecondsLock) {
22
- if (env_config_1.EnvConfig.isEnvTest || !this.redisService.isConnected) {
23
- return true;
24
- }
25
- const lockKey = this.getLockKey(key);
26
- const canLock = await this.redisService.getCache(lockKey);
27
- if (canLock) {
28
- return false;
29
- }
30
- await this.redisService.setCache(lockKey, ttlSecondsLock, 'RedLockService');
31
- return true;
32
- }
33
- async releaseLock(key) {
34
- if (!env_config_1.EnvConfig.isEnvTest && this.redisService.isConnected) {
35
- await this.redisService.deleteCache(this.getLockKey(key));
36
- }
37
- }
38
- getLockKey(key) {
39
- return `redLock:${key}`;
40
- }
41
- };
42
- exports.RedLockService = RedLockService;
43
- exports.RedLockService = RedLockService = __decorate([
44
- (0, common_1.Injectable)(),
45
- __metadata("design:paramtypes", [iredis_service_1.IRedisService])
46
- ], RedLockService);
@@ -1,10 +0,0 @@
1
- import { Type } from '@nestjs/common';
2
- interface KoalaAppTestDependenciesConfig {
3
- dependencies: any[];
4
- }
5
- export declare class KoalaAppTestDependencies {
6
- private readonly _config;
7
- constructor(_config: KoalaAppTestDependenciesConfig);
8
- get<T>(objectType: Type<T>): T;
9
- }
10
- export {};
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.KoalaAppTestDependencies = void 0;
4
- class KoalaAppTestDependencies {
5
- _config;
6
- constructor(_config) {
7
- this._config = _config;
8
- }
9
- get(objectType) {
10
- return this._config.dependencies.find((dependency) => dependency instanceof objectType);
11
- }
12
- }
13
- exports.KoalaAppTestDependencies = KoalaAppTestDependencies;
@@ -1,22 +0,0 @@
1
- import { CanActivate, INestApplication, Type } from '@nestjs/common';
2
- import { BaseExceptionFilter } from '@nestjs/core';
3
- import { PrismaTransactionalClient } from '../core/database/prisma-transactional-client';
4
- export declare class KoalaAppTest {
5
- private readonly app;
6
- private _guards;
7
- private _globalExceptionFilter;
8
- private _prismaValidationExceptionFilter;
9
- private _domainExceptionFilter;
10
- private _zodExceptionFilter;
11
- constructor(app: INestApplication<any>);
12
- addGlobalGuard(Guard: Type<CanActivate>): this;
13
- addCustomGlobalExceptionFilter(filter: BaseExceptionFilter): this;
14
- addCustomPrismaValidationExceptionFilter(filter: BaseExceptionFilter): this;
15
- addCustomDomainExceptionFilter(filter: BaseExceptionFilter): this;
16
- addCustomZodExceptionFilter(filter: BaseExceptionFilter): this;
17
- enableCors(): this;
18
- setAppName(name: string): this;
19
- setInternalUserName(name: string): this;
20
- setDbTransactionContext(transactionContext: Type<PrismaTransactionalClient>): this;
21
- build(): INestApplication<any>;
22
- }