@koalarx/nest 3.0.2 → 3.0.4

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 (294) hide show
  1. package/README.md +504 -0
  2. package/core/backgroud-services/cron-service/cron-job.handler.base.d.ts +16 -0
  3. package/core/backgroud-services/cron-service/cron-job.handler.base.js +49 -0
  4. package/core/backgroud-services/event-service/event-class.d.ts +5 -0
  5. package/core/backgroud-services/event-service/event-class.js +11 -0
  6. package/core/backgroud-services/event-service/event-handler.base.d.ts +8 -0
  7. package/core/backgroud-services/event-service/event-handler.base.js +14 -0
  8. package/core/backgroud-services/event-service/event-is-trigger.d.ts +3 -0
  9. package/core/backgroud-services/event-service/event-is-trigger.js +7 -0
  10. package/core/backgroud-services/event-service/event-job.d.ts +13 -0
  11. package/core/backgroud-services/event-service/event-job.js +21 -0
  12. package/core/backgroud-services/event-service/event-queue.d.ts +17 -0
  13. package/core/backgroud-services/event-service/event-queue.js +62 -0
  14. package/core/constants/query-params.d.ts +6 -0
  15. package/core/constants/query-params.js +8 -0
  16. package/core/controllers/base.controller.d.ts +4 -0
  17. package/core/controllers/base.controller.js +6 -0
  18. package/core/controllers/controller.decorator.d.ts +2 -0
  19. package/core/controllers/controller.decorator.js +11 -0
  20. package/core/controllers/created-registre-response.base.d.ts +10 -0
  21. package/core/controllers/created-registre-response.base.js +35 -0
  22. package/core/controllers/list-response.base.d.ts +4 -0
  23. package/core/controllers/list-response.base.js +21 -0
  24. package/core/controllers/pagination.request.d.ts +10 -0
  25. package/core/controllers/pagination.request.js +56 -0
  26. package/core/controllers/router-config.base.d.ts +7 -0
  27. package/core/controllers/router-config.base.js +18 -0
  28. package/core/controllers/schemas/boolean.schema.d.ts +2 -0
  29. package/core/controllers/schemas/boolean.schema.js +12 -0
  30. package/core/controllers/schemas/document-number.schema.d.ts +1 -0
  31. package/core/controllers/schemas/document-number.schema.js +26 -0
  32. package/core/controllers/schemas/email.schema.d.ts +1 -0
  33. package/core/controllers/schemas/email.schema.js +13 -0
  34. package/core/controllers/schemas/list-query.schema.d.ts +17 -0
  35. package/core/controllers/schemas/list-query.schema.js +19 -0
  36. package/core/controllers/schemas/native-enum.schema.d.ts +7 -0
  37. package/core/controllers/schemas/native-enum.schema.js +28 -0
  38. package/core/controllers/schemas/set-mask-document-number.schema.d.ts +1 -0
  39. package/core/controllers/schemas/set-mask-document-number.schema.js +13 -0
  40. package/core/database/entity.base.d.ts +20 -0
  41. package/core/database/entity.base.js +71 -0
  42. package/core/database/entity.decorator.d.ts +13 -0
  43. package/core/database/entity.decorator.js +23 -0
  44. package/core/database/prisma-client-with-custom-transaction.interface.d.ts +8 -0
  45. package/core/database/prisma-client-with-custom-transaction.interface.js +2 -0
  46. package/core/database/prisma-resolver.d.ts +2 -0
  47. package/core/database/prisma-resolver.js +74 -0
  48. package/core/database/prisma-transactional-client.d.ts +11 -0
  49. package/core/database/prisma-transactional-client.js +25 -0
  50. package/core/database/prisma.service.d.ts +24 -0
  51. package/core/database/prisma.service.js +104 -0
  52. package/core/database/repository.base.d.ts +44 -0
  53. package/core/database/repository.base.js +360 -0
  54. package/core/dtos/pagination.dto.d.ts +9 -0
  55. package/core/dtos/pagination.dto.js +49 -0
  56. package/core/errors/bad-request.error.d.ts +5 -0
  57. package/core/errors/bad-request.error.js +10 -0
  58. package/core/errors/conflict.error.d.ts +4 -0
  59. package/core/errors/conflict.error.js +10 -0
  60. package/core/errors/error.base.d.ts +4 -0
  61. package/core/errors/error.base.js +11 -0
  62. package/core/errors/no-content.error.d.ts +5 -0
  63. package/core/errors/no-content.error.js +10 -0
  64. package/core/errors/not-allowed.error.d.ts +5 -0
  65. package/core/errors/not-allowed.error.js +10 -0
  66. package/core/errors/resource-not-found.error.d.ts +5 -0
  67. package/core/errors/resource-not-found.error.js +10 -0
  68. package/{src/core/errors/use-case-error.ts → core/errors/use-case-error.d.ts} +1 -1
  69. package/core/errors/use-case-error.js +2 -0
  70. package/core/errors/user-already-exist.error.d.ts +4 -0
  71. package/core/errors/user-already-exist.error.js +10 -0
  72. package/core/errors/wrong-credentials.error.d.ts +4 -0
  73. package/core/errors/wrong-credentials.error.js +10 -0
  74. package/core/health-check/health-check.controller.d.ts +5 -0
  75. package/core/health-check/health-check.controller.js +32 -0
  76. package/core/health-check/health-check.module.d.ts +2 -0
  77. package/core/health-check/health-check.module.js +19 -0
  78. package/core/index.d.ts +18 -0
  79. package/core/index.js +7 -0
  80. package/core/koala-app.d.ts +64 -0
  81. package/core/koala-app.js +252 -0
  82. package/core/koala-global-vars.d.ts +7 -0
  83. package/core/koala-global-vars.js +9 -0
  84. package/core/koala-nest-database.module.d.ts +16 -0
  85. package/core/koala-nest-database.module.js +52 -0
  86. package/core/koala-nest-http.module.d.ts +13 -0
  87. package/core/koala-nest-http.module.js +37 -0
  88. package/core/koala-nest.module.d.ts +17 -0
  89. package/core/koala-nest.module.js +66 -0
  90. package/core/mapping/auto-mapping-class-context.d.ts +16 -0
  91. package/core/mapping/auto-mapping-class-context.js +18 -0
  92. package/core/mapping/auto-mapping-context.d.ts +11 -0
  93. package/core/mapping/auto-mapping-context.js +24 -0
  94. package/core/mapping/auto-mapping-list.d.ts +27 -0
  95. package/core/mapping/auto-mapping-list.js +94 -0
  96. package/core/mapping/auto-mapping-profile.d.ts +3 -0
  97. package/core/mapping/auto-mapping-profile.js +6 -0
  98. package/core/mapping/auto-mapping.decorator.d.ts +9 -0
  99. package/core/mapping/auto-mapping.decorator.js +27 -0
  100. package/core/mapping/auto-mapping.module.d.ts +5 -0
  101. package/core/mapping/auto-mapping.module.js +29 -0
  102. package/core/mapping/auto-mapping.service.d.ts +14 -0
  103. package/core/mapping/auto-mapping.service.js +140 -0
  104. package/core/mapping/create-map.d.ts +3 -0
  105. package/core/mapping/create-map.js +7 -0
  106. package/core/mapping/for-member.d.ts +5 -0
  107. package/core/mapping/for-member.js +8 -0
  108. package/core/request-overflow/request-handler.base.d.ts +4 -0
  109. package/core/request-overflow/request-handler.base.js +6 -0
  110. package/core/request-overflow/request-result.d.ts +15 -0
  111. package/core/request-overflow/request-result.js +37 -0
  112. package/core/request-overflow/request-validator.base.d.ts +7 -0
  113. package/core/request-overflow/request-validator.base.js +26 -0
  114. package/core/security/strategies/api-key.strategy.d.ts +16 -0
  115. package/core/security/strategies/api-key.strategy.js +31 -0
  116. package/core/utils/assing-object.d.ts +5 -0
  117. package/core/utils/assing-object.js +6 -0
  118. package/core/utils/env.config.d.ts +6 -0
  119. package/core/utils/env.config.js +18 -0
  120. package/core/utils/filter-request-params.d.ts +13 -0
  121. package/core/utils/filter-request-params.js +22 -0
  122. package/core/utils/find-on-list.d.ts +2 -0
  123. package/core/utils/find-on-list.js +13 -0
  124. package/core/utils/get-type-by-prop.d.ts +2 -0
  125. package/core/utils/get-type-by-prop.js +11 -0
  126. package/core/utils/instanciate-class-with-dependencies-injection.d.ts +2 -0
  127. package/core/utils/instanciate-class-with-dependencies-injection.js +10 -0
  128. package/core/utils/interfaces/icomparable.d.ts +5 -0
  129. package/core/utils/interfaces/icomparable.js +6 -0
  130. package/core/utils/list.d.ts +39 -0
  131. package/core/utils/list.js +168 -0
  132. package/core/utils/promise-all.d.ts +7 -0
  133. package/core/utils/promise-all.js +19 -0
  134. package/core/utils/set-mask-document-number.d.ts +1 -0
  135. package/core/utils/set-mask-document-number.js +13 -0
  136. package/core/validators/file-validator.d.ts +27 -0
  137. package/core/validators/file-validator.js +94 -0
  138. package/decorators/api-exclude-endpoint-diff-develop.decorator.d.ts +1 -0
  139. package/decorators/api-exclude-endpoint-diff-develop.decorator.js +9 -0
  140. package/decorators/api-property-enum.decorator.d.ts +8 -0
  141. package/decorators/api-property-enum.decorator.js +21 -0
  142. package/decorators/api-property-only-develop.decorator.d.ts +2 -0
  143. package/decorators/api-property-only-develop.decorator.js +9 -0
  144. package/decorators/cookies.decorator.d.ts +1 -0
  145. package/decorators/cookies.decorator.js +8 -0
  146. package/decorators/is-public.decorator.d.ts +2 -0
  147. package/decorators/is-public.decorator.js +7 -0
  148. package/decorators/upload.decorator.d.ts +1 -0
  149. package/decorators/upload.decorator.js +18 -0
  150. package/env/env.d.ts +25 -0
  151. package/env/env.js +14 -0
  152. package/env/env.module.d.ts +2 -0
  153. package/env/env.module.js +20 -0
  154. package/env/env.service.d.ts +7 -0
  155. package/env/env.service.js +28 -0
  156. package/filters/domain-errors.filter.d.ts +18 -0
  157. package/filters/domain-errors.filter.js +92 -0
  158. package/filters/global-exception.filter.d.ts +8 -0
  159. package/filters/global-exception.filter.js +68 -0
  160. package/filters/prisma-validation-exception.filter.d.ts +10 -0
  161. package/filters/prisma-validation-exception.filter.js +82 -0
  162. package/filters/zod-errors.filter.d.ts +9 -0
  163. package/filters/zod-errors.filter.js +60 -0
  164. package/package.json +4 -1
  165. package/services/logging/ilogging.service.d.ts +16 -0
  166. package/services/logging/ilogging.service.js +6 -0
  167. package/services/logging/logging.service.d.ts +4 -0
  168. package/services/logging/logging.service.js +20 -0
  169. package/services/redis/iredis.service.d.ts +6 -0
  170. package/services/redis/iredis.service.js +6 -0
  171. package/services/redis/redis.service.d.ts +14 -0
  172. package/services/redis/redis.service.js +65 -0
  173. package/services/redlock/ired-lock.service.d.ts +4 -0
  174. package/services/redlock/ired-lock.service.js +6 -0
  175. package/services/redlock/red-lock.service.d.ts +9 -0
  176. package/services/redlock/red-lock.service.js +46 -0
  177. package/test/koala-app-test-dependencies.d.ts +10 -0
  178. package/test/koala-app-test-dependencies.js +13 -0
  179. package/test/koala-app-test.d.ts +22 -0
  180. package/test/koala-app-test.js +77 -0
  181. package/test/repositories/in-memory-base.repository.d.ts +17 -0
  182. package/test/repositories/in-memory-base.repository.js +65 -0
  183. package/test/services/fake-logging.service.d.ts +4 -0
  184. package/test/services/fake-logging.service.js +9 -0
  185. package/test/services/fake-red-lock.service.d.ts +5 -0
  186. package/test/services/fake-red-lock.service.js +11 -0
  187. package/test/utils/create-e2e-database.d.ts +2 -0
  188. package/test/utils/create-e2e-database.js +47 -0
  189. package/test/utils/drop-e2e-database.d.ts +2 -0
  190. package/test/utils/drop-e2e-database.js +33 -0
  191. package/test/utils/wait-for.d.ts +1 -0
  192. package/test/utils/wait-for.js +21 -0
  193. package/tsconfig.lib.tsbuildinfo +1 -0
  194. package/CHANGELOG.md +0 -21
  195. package/src/core/backgroud-services/cron-service/cron-job.handler.base.ts +0 -66
  196. package/src/core/backgroud-services/cron-service/cron-job.handler.spec.ts +0 -38
  197. package/src/core/backgroud-services/event-service/event-class.ts +0 -5
  198. package/src/core/backgroud-services/event-service/event-handler.base.ts +0 -17
  199. package/src/core/backgroud-services/event-service/event-is-trigger.ts +0 -3
  200. package/src/core/backgroud-services/event-service/event-job.ts +0 -28
  201. package/src/core/backgroud-services/event-service/event-queue.spec.ts +0 -47
  202. package/src/core/backgroud-services/event-service/event-queue.ts +0 -107
  203. package/src/core/constants/query-params.ts +0 -7
  204. package/src/core/controllers/base.controller.ts +0 -9
  205. package/src/core/controllers/controller.decorator.ts +0 -10
  206. package/src/core/controllers/created-registre-response.base.ts +0 -17
  207. package/src/core/controllers/list-response.base.ts +0 -8
  208. package/src/core/controllers/pagination.request.ts +0 -41
  209. package/src/core/controllers/router-config.base.ts +0 -14
  210. package/src/core/controllers/schemas/boolean.schema.ts +0 -10
  211. package/src/core/controllers/schemas/document-number.schema.ts +0 -23
  212. package/src/core/controllers/schemas/email.schema.ts +0 -13
  213. package/src/core/controllers/schemas/list-query.schema.ts +0 -17
  214. package/src/core/controllers/schemas/native-enum.schema.ts +0 -34
  215. package/src/core/controllers/schemas/set-mask-document-number.schema.ts +0 -13
  216. package/src/core/database/entity.base.ts +0 -95
  217. package/src/core/database/entity.decorator.spec.ts +0 -71
  218. package/src/core/database/entity.decorator.ts +0 -39
  219. package/src/core/database/prisma-client-with-custom-transaction.interface.ts +0 -13
  220. package/src/core/database/prisma-resolver.ts +0 -99
  221. package/src/core/database/prisma-transactional-client.ts +0 -43
  222. package/src/core/database/prisma.service.ts +0 -136
  223. package/src/core/database/repository.base.ts +0 -548
  224. package/src/core/dtos/pagination.dto.ts +0 -35
  225. package/src/core/errors/bad-request.error.ts +0 -8
  226. package/src/core/errors/conflict.error.ts +0 -7
  227. package/src/core/errors/error.base.ts +0 -5
  228. package/src/core/errors/no-content.error.ts +0 -8
  229. package/src/core/errors/not-allowed.error.ts +0 -8
  230. package/src/core/errors/resource-not-found.error.ts +0 -8
  231. package/src/core/errors/user-already-exist.error.ts +0 -7
  232. package/src/core/errors/wrong-credentials.error.ts +0 -7
  233. package/src/core/health-check/health-check.controller.ts +0 -13
  234. package/src/core/health-check/health-check.module.ts +0 -7
  235. package/src/core/index.ts +0 -56
  236. package/src/core/koala-app.ts +0 -379
  237. package/src/core/koala-global-vars.ts +0 -8
  238. package/src/core/koala-nest-database.module.ts +0 -65
  239. package/src/core/koala-nest-http.module.ts +0 -44
  240. package/src/core/koala-nest.module.ts +0 -67
  241. package/src/core/mapping/auto-mapping-class-context.ts +0 -28
  242. package/src/core/mapping/auto-mapping-context.ts +0 -26
  243. package/src/core/mapping/auto-mapping-list.ts +0 -154
  244. package/src/core/mapping/auto-mapping-profile.ts +0 -3
  245. package/src/core/mapping/auto-mapping.decorator.ts +0 -54
  246. package/src/core/mapping/auto-mapping.module.ts +0 -17
  247. package/src/core/mapping/auto-mapping.service.ts +0 -187
  248. package/src/core/mapping/create-map.ts +0 -11
  249. package/src/core/mapping/for-member.ts +0 -16
  250. package/src/core/request-overflow/request-handler.base.ts +0 -8
  251. package/src/core/request-overflow/request-result.spec.ts +0 -23
  252. package/src/core/request-overflow/request-result.ts +0 -41
  253. package/src/core/request-overflow/request-validator.base.ts +0 -33
  254. package/src/core/security/strategies/api-key.strategy.ts +0 -45
  255. package/src/core/utils/assing-object.ts +0 -9
  256. package/src/core/utils/env.config.ts +0 -17
  257. package/src/core/utils/filter-request-params.ts +0 -23
  258. package/src/core/utils/find-on-list.ts +0 -18
  259. package/src/core/utils/get-type-by-prop.ts +0 -9
  260. package/src/core/utils/instanciate-class-with-dependencies-injection.ts +0 -12
  261. package/src/core/utils/interfaces/icomparable.ts +0 -6
  262. package/src/core/utils/list.spec.ts +0 -81
  263. package/src/core/utils/list.ts +0 -223
  264. package/src/core/utils/promise-all.ts +0 -24
  265. package/src/core/utils/set-mask-document-number.ts +0 -13
  266. package/src/core/validators/file-validator.ts +0 -113
  267. package/src/decorators/api-exclude-endpoint-diff-develop.decorator.ts +0 -15
  268. package/src/decorators/api-property-enum.decorator.ts +0 -58
  269. package/src/decorators/api-property-only-develop.decorator.ts +0 -6
  270. package/src/decorators/cookies.decorator.ts +0 -8
  271. package/src/decorators/is-public.decorator.ts +0 -5
  272. package/src/decorators/upload.decorator.ts +0 -31
  273. package/src/env/env.module.ts +0 -8
  274. package/src/env/env.service.ts +0 -12
  275. package/src/env/env.ts +0 -14
  276. package/src/filters/domain-errors.filter.ts +0 -97
  277. package/src/filters/global-exception.filter.ts +0 -60
  278. package/src/filters/prisma-validation-exception.filter.ts +0 -73
  279. package/src/filters/zod-errors.filter.ts +0 -48
  280. package/src/services/logging/ilogging.service.ts +0 -17
  281. package/src/services/logging/logging.service.ts +0 -10
  282. package/src/services/redis/iredis.service.ts +0 -11
  283. package/src/services/redis/redis.service.ts +0 -70
  284. package/src/services/redlock/ired-lock.service.ts +0 -4
  285. package/src/services/redlock/red-lock.service.ts +0 -36
  286. package/src/test/koala-app-test-dependencies.ts +0 -15
  287. package/src/test/koala-app-test.ts +0 -103
  288. package/src/test/repositories/in-memory-base.repository.ts +0 -90
  289. package/src/test/services/fake-logging.service.ts +0 -7
  290. package/src/test/services/fake-red-lock.service.ts +0 -11
  291. package/src/test/utils/create-e2e-database.ts +0 -55
  292. package/src/test/utils/drop-e2e-database.ts +0 -36
  293. package/src/test/utils/wait-for.ts +0 -31
  294. package/tsconfig.lib.json +0 -11
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FileTypeValidator = exports.FileSizeValidator = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ const runFileValidation = async (args) => {
6
+ if (args.multiple) {
7
+ const fileFields = Object.keys(args.file);
8
+ for (const field of fileFields) {
9
+ const fieldFile = args.file[field];
10
+ if (Array.isArray(fieldFile)) {
11
+ for (const f of fieldFile) {
12
+ if (!args.validator(f)) {
13
+ return { errorFileName: f.originalname, isValid: false };
14
+ }
15
+ }
16
+ }
17
+ else {
18
+ if (!args.validator(fieldFile)) {
19
+ return { errorFileName: fieldFile.originalname, isValid: false };
20
+ }
21
+ }
22
+ }
23
+ return { isValid: true };
24
+ }
25
+ if (Array.isArray(args.file)) {
26
+ for (const f of args.file) {
27
+ if (!args.validator(f)) {
28
+ return { errorFileName: f.originalname, isValid: false };
29
+ }
30
+ }
31
+ return { isValid: true };
32
+ }
33
+ if (args.validator(args.file)) {
34
+ return { errorFileName: args.file.originalname, isValid: false };
35
+ }
36
+ return { isValid: true };
37
+ };
38
+ class FileSizeValidator extends common_1.FileValidator {
39
+ maxSizeBytes;
40
+ multiple;
41
+ errorFileName;
42
+ constructor(args) {
43
+ super({});
44
+ this.maxSizeBytes = args.maxSizeBytes;
45
+ this.multiple = args.multiple;
46
+ }
47
+ async isValid(file) {
48
+ if (!file) {
49
+ return true;
50
+ }
51
+ const result = await runFileValidation({
52
+ file,
53
+ multiple: this.multiple,
54
+ validator: (f) => f.size < this.maxSizeBytes,
55
+ });
56
+ this.errorFileName = result.errorFileName ?? '';
57
+ return result.isValid;
58
+ }
59
+ buildErrorMessage(file) {
60
+ return (`file ${this.errorFileName || ''} exceeded the size limit ` +
61
+ parseFloat((this.maxSizeBytes / 1024 / 1024).toFixed(2)) +
62
+ 'MB');
63
+ }
64
+ }
65
+ exports.FileSizeValidator = FileSizeValidator;
66
+ class FileTypeValidator extends common_1.FileValidator {
67
+ multiple;
68
+ errorFileName;
69
+ filetype;
70
+ constructor(args) {
71
+ super({});
72
+ this.multiple = args.multiple;
73
+ this.filetype = args.filetype;
74
+ }
75
+ isMimeTypeValid(file) {
76
+ return file.mimetype.search(this.filetype) === 0;
77
+ }
78
+ async isValid(file) {
79
+ if (!file) {
80
+ return true;
81
+ }
82
+ const result = await runFileValidation({
83
+ multiple: this.multiple,
84
+ file,
85
+ validator: (f) => this.isMimeTypeValid(f),
86
+ });
87
+ this.errorFileName = result.errorFileName ?? '';
88
+ return result.isValid;
89
+ }
90
+ buildErrorMessage(file) {
91
+ return `file ${this.errorFileName || ''} must be of type ${this.filetype}`;
92
+ }
93
+ }
94
+ exports.FileTypeValidator = FileTypeValidator;
@@ -0,0 +1 @@
1
+ export declare const ApiExcludeEndpointDiffDevelop: () => MethodDecorator;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ApiExcludeEndpointDiffDevelop = void 0;
4
+ const swagger_1 = require("@nestjs/swagger");
5
+ const env_config_1 = require("../core/utils/env.config");
6
+ const ApiExcludeEndpointDiffDevelop = () => {
7
+ return (0, swagger_1.ApiExcludeEndpoint)(!env_config_1.EnvConfig.isEnvDevelop);
8
+ };
9
+ exports.ApiExcludeEndpointDiffDevelop = ApiExcludeEndpointDiffDevelop;
@@ -0,0 +1,8 @@
1
+ import { EnumAllowedTypes } from '@nestjs/swagger/dist/interfaces/schema-object-metadata.interface';
2
+ interface ApiPropertyEnumOptions {
3
+ enum: EnumAllowedTypes;
4
+ isArray?: boolean;
5
+ required?: boolean;
6
+ }
7
+ export declare function ApiPropertyEnum(options: ApiPropertyEnumOptions): (target: any, propertyKey: string) => void;
8
+ export {};
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ApiPropertyEnum = ApiPropertyEnum;
4
+ const swagger_1 = require("@nestjs/swagger");
5
+ function ApiPropertyEnum(options) {
6
+ return function (target, propertyKey) {
7
+ const enumValues = Object.values(options.enum)
8
+ .filter((value) => typeof value === 'number')
9
+ .map((value) => ({
10
+ value,
11
+ description: options.enum[value],
12
+ }));
13
+ const description = enumValues
14
+ .map((enumValue) => `${enumValue.description}: ${enumValue.value}`)
15
+ .join('\n');
16
+ (0, swagger_1.ApiProperty)({
17
+ ...options,
18
+ description: ['```', description, '```'].join('\n'),
19
+ })(target, propertyKey);
20
+ };
21
+ }
@@ -0,0 +1,2 @@
1
+ import { ApiPropertyOptions } from '@nestjs/swagger';
2
+ export declare const ApiPropertyOnlyDevelop: (propertyOptions: ApiPropertyOptions) => PropertyDecorator;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ApiPropertyOnlyDevelop = void 0;
4
+ const swagger_1 = require("@nestjs/swagger");
5
+ const env_config_1 = require("../core/utils/env.config");
6
+ const ApiPropertyOnlyDevelop = (propertyOptions) => {
7
+ return env_config_1.EnvConfig.isEnvDevelop ? (0, swagger_1.ApiProperty)(propertyOptions) : () => { };
8
+ };
9
+ exports.ApiPropertyOnlyDevelop = ApiPropertyOnlyDevelop;
@@ -0,0 +1 @@
1
+ export declare const Cookies: (...dataOrPipes: (string | import("@nestjs/common").PipeTransform<any, any> | import("@nestjs/common").Type<import("@nestjs/common").PipeTransform<any, any>>)[]) => ParameterDecorator;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Cookies = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ exports.Cookies = (0, common_1.createParamDecorator)((data, ctx) => {
6
+ const request = ctx.switchToHttp().getRequest();
7
+ return data ? request.cookies?.[data] : request.cookies;
8
+ });
@@ -0,0 +1,2 @@
1
+ export declare const IS_PUBLIC_KEY = "isPublic";
2
+ export declare const IsPublic: () => import("@nestjs/common").CustomDecorator<string>;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IsPublic = exports.IS_PUBLIC_KEY = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ exports.IS_PUBLIC_KEY = 'isPublic';
6
+ const IsPublic = () => (0, common_1.SetMetadata)(exports.IS_PUBLIC_KEY, true);
7
+ exports.IsPublic = IsPublic;
@@ -0,0 +1 @@
1
+ export declare function UploadDecorator(maxSizeInKb: number, filetype: RegExp): ParameterDecorator;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UploadDecorator = UploadDecorator;
4
+ const common_1 = require("@nestjs/common");
5
+ const file_validator_1 = require("../core/validators/file-validator");
6
+ function UploadDecorator(maxSizeInKb, filetype) {
7
+ const maxSizeBytes = maxSizeInKb * 1024;
8
+ return (0, common_1.UploadedFiles)(new common_1.ParseFilePipe({
9
+ validators: [
10
+ new file_validator_1.FileSizeValidator({ maxSizeBytes, multiple: true }),
11
+ new file_validator_1.FileTypeValidator({
12
+ filetype,
13
+ multiple: true,
14
+ }),
15
+ ],
16
+ fileIsRequired: false,
17
+ }));
18
+ }
package/env/env.d.ts ADDED
@@ -0,0 +1,25 @@
1
+ import 'dotenv/config';
2
+ import { z } from 'zod';
3
+ export declare const envSchema: z.ZodObject<{
4
+ PORT: z.ZodDefault<z.ZodNumber>;
5
+ NODE_ENV: z.ZodEnum<["test", "develop", "staging", "production"]>;
6
+ PRISMA_QUERY_LOG: z.ZodOptional<z.ZodEffects<z.ZodString, boolean | undefined, string>>;
7
+ SWAGGER_USERNAME: z.ZodOptional<z.ZodString>;
8
+ SWAGGER_PASSWORD: z.ZodOptional<z.ZodString>;
9
+ REDIS_CONNECTION_STRING: z.ZodOptional<z.ZodString>;
10
+ }, "strip", z.ZodTypeAny, {
11
+ PORT: number;
12
+ NODE_ENV: "test" | "develop" | "staging" | "production";
13
+ PRISMA_QUERY_LOG?: boolean | undefined;
14
+ SWAGGER_USERNAME?: string | undefined;
15
+ SWAGGER_PASSWORD?: string | undefined;
16
+ REDIS_CONNECTION_STRING?: string | undefined;
17
+ }, {
18
+ NODE_ENV: "test" | "develop" | "staging" | "production";
19
+ PORT?: number | undefined;
20
+ PRISMA_QUERY_LOG?: string | undefined;
21
+ SWAGGER_USERNAME?: string | undefined;
22
+ SWAGGER_PASSWORD?: string | undefined;
23
+ REDIS_CONNECTION_STRING?: string | undefined;
24
+ }>;
25
+ export type Env = z.infer<typeof envSchema>;
package/env/env.js ADDED
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.envSchema = void 0;
4
+ require("dotenv/config");
5
+ const zod_1 = require("zod");
6
+ const boolean_schema_1 = require("../core/controllers/schemas/boolean.schema");
7
+ exports.envSchema = zod_1.z.object({
8
+ PORT: zod_1.z.coerce.number().default(3000),
9
+ NODE_ENV: zod_1.z.enum(['test', 'develop', 'staging', 'production']),
10
+ PRISMA_QUERY_LOG: (0, boolean_schema_1.booleanSchema)().optional(),
11
+ SWAGGER_USERNAME: zod_1.z.string().optional(),
12
+ SWAGGER_PASSWORD: zod_1.z.string().optional(),
13
+ REDIS_CONNECTION_STRING: zod_1.z.string().optional(),
14
+ });
@@ -0,0 +1,2 @@
1
+ export declare class EnvModule {
2
+ }
@@ -0,0 +1,20 @@
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.EnvModule = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const env_service_1 = require("./env.service");
12
+ let EnvModule = class EnvModule {
13
+ };
14
+ exports.EnvModule = EnvModule;
15
+ exports.EnvModule = EnvModule = __decorate([
16
+ (0, common_1.Module)({
17
+ providers: [env_service_1.EnvService],
18
+ exports: [env_service_1.EnvService],
19
+ })
20
+ ], EnvModule);
@@ -0,0 +1,7 @@
1
+ import { ConfigService } from '@nestjs/config';
2
+ import { Env } from './env';
3
+ export declare class EnvService<TEnv extends Env = Env> {
4
+ private readonly configService;
5
+ constructor(configService: ConfigService<TEnv, true>);
6
+ get<T extends keyof TEnv>(key: T): (string extends infer T_1 ? T_1 extends string ? T_1 extends keyof TEnv ? string extends infer T_2 ? T_2 extends string ? T_2 extends import("@nestjs/config").Path<TEnv[T_1]> ? import("@nestjs/config").PathValue<TEnv[T_1], T_2> : never : never : never : never : never : never) | (any extends infer T_3 ? T_3 extends any ? T_3 extends keyof TEnv ? TEnv[T_3] : never : never : never);
7
+ }
@@ -0,0 +1,28 @@
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.EnvService = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const config_1 = require("@nestjs/config");
15
+ let EnvService = class EnvService {
16
+ configService;
17
+ constructor(configService) {
18
+ this.configService = configService;
19
+ }
20
+ get(key) {
21
+ return this.configService.get(key, { infer: true });
22
+ }
23
+ };
24
+ exports.EnvService = EnvService;
25
+ exports.EnvService = EnvService = __decorate([
26
+ (0, common_1.Injectable)(),
27
+ __metadata("design:paramtypes", [config_1.ConfigService])
28
+ ], EnvService);
@@ -0,0 +1,18 @@
1
+ import { ArgumentsHost } from '@nestjs/common';
2
+ import { BaseExceptionFilter } from '@nestjs/core';
3
+ import { BadRequestError } from '../core/errors/bad-request.error';
4
+ import { ConflictError } from '../core/errors/conflict.error';
5
+ import { NoContentError } from '../core/errors/no-content.error';
6
+ import { NotAllowedError } from '../core/errors/not-allowed.error';
7
+ import { ResourceNotFoundError } from '../core/errors/resource-not-found.error';
8
+ import { UserAlreadyExist } from '../core/errors/user-already-exist.error';
9
+ import { WrongCredentialsError } from '../core/errors/wrong-credentials.error';
10
+ import { ILoggingService } from '../services/logging/ilogging.service';
11
+ type DomainErrors = NotAllowedError | ResourceNotFoundError | UserAlreadyExist | WrongCredentialsError | ConflictError | BadRequestError | NoContentError;
12
+ export declare class DomainErrorsFilter extends BaseExceptionFilter {
13
+ private readonly loggingService;
14
+ constructor(loggingService: ILoggingService);
15
+ catch(exception: DomainErrors, host: ArgumentsHost): import("express").Response<any, Record<string, any>>;
16
+ private map;
17
+ }
18
+ export {};
@@ -0,0 +1,92 @@
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);
@@ -0,0 +1,8 @@
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
+ }
@@ -0,0 +1,68 @@
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);
@@ -0,0 +1,10 @@
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
+ }
@@ -0,0 +1,82 @@
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);
@@ -0,0 +1,9 @@
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
+ }