@koalarx/nest 1.19.0 → 3.0.2

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 (311) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/package.json +5 -37
  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 -499
  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/docs/00-cli-reference.md +0 -201
  254. package/docs/01-guia-instalacao.md +0 -113
  255. package/docs/02-configuracao-inicial.md +0 -176
  256. package/docs/04-tratamento-erros.md +0 -303
  257. package/docs/05-features-avancadas.md +0 -969
  258. package/docs/06-decoradores.md +0 -220
  259. package/docs/07-guia-bun.md +0 -176
  260. package/docs/08-prisma-client.md +0 -487
  261. package/docs/09-mcp-vscode-extension.md +0 -437
  262. package/docs/EXAMPLE.md +0 -1671
  263. package/docs/README.md +0 -59
  264. package/env/env.d.ts +0 -25
  265. package/env/env.js +0 -14
  266. package/env/env.module.d.ts +0 -2
  267. package/env/env.module.js +0 -20
  268. package/env/env.service.d.ts +0 -7
  269. package/env/env.service.js +0 -28
  270. package/filters/domain-errors.filter.d.ts +0 -18
  271. package/filters/domain-errors.filter.js +0 -92
  272. package/filters/global-exception.filter.d.ts +0 -8
  273. package/filters/global-exception.filter.js +0 -68
  274. package/filters/prisma-validation-exception.filter.d.ts +0 -10
  275. package/filters/prisma-validation-exception.filter.js +0 -82
  276. package/filters/zod-errors.filter.d.ts +0 -9
  277. package/filters/zod-errors.filter.js +0 -60
  278. package/mcp-server/mcp.json.example +0 -27
  279. package/mcp-server/server.d.ts +0 -2
  280. package/mcp-server/server.d.ts.map +0 -1
  281. package/mcp-server/server.js +0 -248
  282. package/mcp-server/server.js.map +0 -1
  283. package/services/logging/ilogging.service.d.ts +0 -16
  284. package/services/logging/ilogging.service.js +0 -6
  285. package/services/logging/logging.service.d.ts +0 -4
  286. package/services/logging/logging.service.js +0 -20
  287. package/services/redis/iredis.service.d.ts +0 -6
  288. package/services/redis/iredis.service.js +0 -6
  289. package/services/redis/redis.service.d.ts +0 -14
  290. package/services/redis/redis.service.js +0 -65
  291. package/services/redlock/ired-lock.service.d.ts +0 -4
  292. package/services/redlock/ired-lock.service.js +0 -6
  293. package/services/redlock/red-lock.service.d.ts +0 -9
  294. package/services/redlock/red-lock.service.js +0 -46
  295. package/test/koala-app-test-dependencies.d.ts +0 -10
  296. package/test/koala-app-test-dependencies.js +0 -13
  297. package/test/koala-app-test.d.ts +0 -22
  298. package/test/koala-app-test.js +0 -77
  299. package/test/repositories/in-memory-base.repository.d.ts +0 -17
  300. package/test/repositories/in-memory-base.repository.js +0 -65
  301. package/test/services/fake-logging.service.d.ts +0 -4
  302. package/test/services/fake-logging.service.js +0 -9
  303. package/test/services/fake-red-lock.service.d.ts +0 -5
  304. package/test/services/fake-red-lock.service.js +0 -11
  305. package/test/utils/create-e2e-database.d.ts +0 -2
  306. package/test/utils/create-e2e-database.js +0 -47
  307. package/test/utils/drop-e2e-database.d.ts +0 -2
  308. package/test/utils/drop-e2e-database.js +0 -33
  309. package/test/utils/wait-for.d.ts +0 -1
  310. package/test/utils/wait-for.js +0 -21
  311. package/tsconfig.lib.tsbuildinfo +0 -1
@@ -1,94 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AutoMappingList = void 0;
4
- const find_on_list_1 = require("../utils/find-on-list");
5
- const get_type_by_prop_1 = require("../utils/get-type-by-prop");
6
- const list_1 = require("../utils/list");
7
- const auto_mapping_class_context_1 = require("./auto-mapping-class-context");
8
- const auto_mapping_context_1 = require("./auto-mapping-context");
9
- class AutoMappingList {
10
- static _mappedPropList;
11
- static _mappingProfileList;
12
- static initializeLists() {
13
- if (!this._mappedPropList) {
14
- this._mappedPropList = new list_1.List(auto_mapping_class_context_1.AutoMappingClassContext);
15
- }
16
- if (!this._mappingProfileList) {
17
- this._mappingProfileList = new list_1.List(auto_mapping_context_1.AutoMappingContext);
18
- }
19
- }
20
- static add(source, target, ...forMember) {
21
- this.initializeLists();
22
- this._mappingProfileList.add(new auto_mapping_context_1.AutoMappingContext(source, target, forMember));
23
- this._mappedPropList.add(new auto_mapping_class_context_1.AutoMappingClassContext(source));
24
- this._mappedPropList.add(new auto_mapping_class_context_1.AutoMappingClassContext(target));
25
- this.addExtendedPropsIntoSubClass(source);
26
- this.addExtendedPropsIntoSubClass(target);
27
- }
28
- static get(source, target) {
29
- this.initializeLists();
30
- return {
31
- mapContext: (0, find_on_list_1.findOnList)(this._mappingProfileList, (mp) => mp.source.name === source.name && mp.target.name === target.name, (mp) => Object.getPrototypeOf(mp.source.prototype.constructor) === source &&
32
- mp.target.name === target.name),
33
- propSourceContext: this._mappedPropList.find((mp) => mp.source.name === source.name),
34
- propTargetContext: this._mappedPropList.find((mp) => mp.source.name === target.name),
35
- };
36
- }
37
- static getSourceByName(sourceName) {
38
- this.initializeLists();
39
- return this._mappedPropList.find((mp) => mp.source.name === sourceName)
40
- ?.source;
41
- }
42
- static getPropDefinitions(source, propName) {
43
- this.initializeLists();
44
- const prop = this._mappedPropList.find((mp) => mp.source.name === source.name)?.props.find((prop) => prop.name === propName);
45
- if (!prop) {
46
- return undefined;
47
- }
48
- return {
49
- ...prop,
50
- type: (0, get_type_by_prop_1.getTypeByProp)(prop),
51
- };
52
- }
53
- static getTargets(source) {
54
- this.initializeLists();
55
- return this._mappingProfileList.filter((mp) => mp.source.name === source.name ||
56
- Object.getPrototypeOf(mp.source.prototype.constructor) === source)
57
- .map((mp) => mp.target)
58
- .toArray();
59
- }
60
- static addMappedProp(source, propName) {
61
- this.initializeLists();
62
- let mappedClass = this._mappedPropList.find((mp) => mp.source.name === source.name);
63
- if (!mappedClass) {
64
- mappedClass = new auto_mapping_class_context_1.AutoMappingClassContext(source);
65
- const mappedExtendedClass = this._mappedPropList.find((mp) => mp.source === Object.getPrototypeOf(source.prototype.constructor));
66
- if (mappedExtendedClass) {
67
- mappedClass.props.setList(mappedExtendedClass.props.toArray());
68
- }
69
- this._mappedPropList.add(mappedClass);
70
- }
71
- const type = Reflect.getMetadata('design:type', source.prototype, propName);
72
- const compositionType = Reflect.getMetadata('composition:type', source.prototype, propName);
73
- const compositionAction = Reflect.getMetadata('composition:action', source.prototype, propName);
74
- mappedClass.props.add({
75
- name: propName,
76
- type,
77
- compositionType,
78
- compositionAction,
79
- });
80
- }
81
- static addExtendedPropsIntoSubClass(source) {
82
- this.initializeLists();
83
- const mappedExtendedClass = this._mappedPropList.find((mp) => mp.source === Object.getPrototypeOf(source.prototype.constructor));
84
- if (mappedExtendedClass) {
85
- const mappedClass = this._mappedPropList.find((mp) => mp.source.name === source.name);
86
- if (mappedClass) {
87
- mappedExtendedClass.props
88
- .toArray()
89
- .forEach((prop) => mappedClass.props.add(prop));
90
- }
91
- }
92
- }
93
- }
94
- exports.AutoMappingList = AutoMappingList;
@@ -1,3 +0,0 @@
1
- export declare abstract class AutoMappingProfile {
2
- abstract profile(): void;
3
- }
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AutoMappingProfile = void 0;
4
- class AutoMappingProfile {
5
- }
6
- exports.AutoMappingProfile = AutoMappingProfile;
@@ -1,9 +0,0 @@
1
- import { Type } from '@nestjs/common';
2
- interface AutoMapConfig<T> {
3
- type?: () => Type<T>;
4
- isArray?: boolean | {
5
- addTo: boolean;
6
- };
7
- }
8
- export declare function AutoMap<T>(config?: AutoMapConfig<T>): (target: any, propertyKey: string) => void;
9
- export {};
@@ -1,27 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AutoMap = AutoMap;
4
- const auto_mapping_list_1 = require("./auto-mapping-list");
5
- function AutoMap(config) {
6
- return function (target, propertyKey) {
7
- const isArray = config?.isArray;
8
- let customMetadata = config?.type;
9
- if (!customMetadata) {
10
- customMetadata = isArray ? Array : undefined;
11
- }
12
- if (customMetadata) {
13
- if (isArray) {
14
- Reflect.defineMetadata('composition:type', customMetadata, target, propertyKey);
15
- Reflect.defineMetadata('composition:action', `${isArray === true || !isArray.addTo ? 'onlySet' : 'addTo'}`, target, propertyKey);
16
- if (customMetadata !== Array) {
17
- customMetadata = Array;
18
- }
19
- }
20
- if (!Reflect.getMetadata('design:type', target, propertyKey) ||
21
- !isArray) {
22
- Reflect.defineMetadata('design:type', customMetadata, target, propertyKey);
23
- }
24
- }
25
- auto_mapping_list_1.AutoMappingList.addMappedProp(target.constructor, propertyKey);
26
- };
27
- }
@@ -1,5 +0,0 @@
1
- import { DynamicModule, Type } from '@nestjs/common';
2
- import { AutoMappingProfile } from './auto-mapping-profile';
3
- export declare class AutoMappingModule {
4
- static register(profile: Type<AutoMappingProfile>): DynamicModule;
5
- }
@@ -1,29 +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 AutoMappingModule_1;
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.AutoMappingModule = void 0;
11
- const common_1 = require("@nestjs/common");
12
- const auto_mapping_profile_1 = require("./auto-mapping-profile");
13
- const auto_mapping_service_1 = require("./auto-mapping.service");
14
- let AutoMappingModule = AutoMappingModule_1 = class AutoMappingModule {
15
- static register(profile) {
16
- return {
17
- module: AutoMappingModule_1,
18
- providers: [
19
- { provide: auto_mapping_profile_1.AutoMappingProfile, useClass: profile },
20
- auto_mapping_service_1.AutoMappingService,
21
- ],
22
- exports: [auto_mapping_service_1.AutoMappingService],
23
- };
24
- }
25
- };
26
- exports.AutoMappingModule = AutoMappingModule;
27
- exports.AutoMappingModule = AutoMappingModule = AutoMappingModule_1 = __decorate([
28
- (0, common_1.Module)({})
29
- ], AutoMappingModule);
@@ -1,14 +0,0 @@
1
- import { Type } from '@nestjs/common';
2
- import { AutoMappingProfile } from './auto-mapping-profile';
3
- export declare class AutoMappingService {
4
- private readonly _contextList;
5
- constructor(automappingProfile: AutoMappingProfile);
6
- private getInstanceType;
7
- map<S, T>(data: any, source: Type<S>, target: Type<T>): T;
8
- private getTarget;
9
- private mapNestedProp;
10
- private mapListToArray;
11
- private mapArrayToList;
12
- private mapArrayToArray;
13
- private isPrimitiveType;
14
- }
@@ -1,140 +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.AutoMappingService = void 0;
13
- const common_1 = require("@nestjs/common");
14
- const get_type_by_prop_1 = require("../utils/get-type-by-prop");
15
- const list_1 = require("../utils/list");
16
- const auto_mapping_list_1 = require("./auto-mapping-list");
17
- const auto_mapping_profile_1 = require("./auto-mapping-profile");
18
- let AutoMappingService = class AutoMappingService {
19
- _contextList = auto_mapping_list_1.AutoMappingList;
20
- constructor(automappingProfile) {
21
- automappingProfile.profile();
22
- }
23
- getInstanceType(prop) {
24
- try {
25
- return prop() ?? prop;
26
- }
27
- catch {
28
- return prop;
29
- }
30
- }
31
- map(data, source, target) {
32
- const { mapContext, propSourceContext, propTargetContext } = this._contextList.get(source, target);
33
- if (!mapContext) {
34
- throw new Error(`No mapping context found for ${source.name} to ${target.name}`);
35
- }
36
- const mappedTarget = new target.prototype.constructor();
37
- propSourceContext?.props.forEach((propSource) => {
38
- const value = data[propSource.name];
39
- const compositionType = propSource.compositionType;
40
- const compositionAction = propSource.compositionAction;
41
- if (value !== undefined) {
42
- const targetProp = propTargetContext?.props.find((tp) => tp.name === propSource.name);
43
- if (targetProp) {
44
- const typeSource = (0, get_type_by_prop_1.getTypeByProp)(propSource);
45
- const typeTarget = (0, get_type_by_prop_1.getTypeByProp)(targetProp);
46
- const listToArray = typeSource === list_1.List.name &&
47
- typeTarget === Array.name &&
48
- value instanceof list_1.List;
49
- const arrayToList = typeSource === Array.name &&
50
- typeTarget === list_1.List.name &&
51
- value instanceof Array &&
52
- !!compositionType;
53
- const arrayToArray = typeSource === Array.name &&
54
- typeTarget === Array.name &&
55
- value instanceof Array &&
56
- !!compositionType;
57
- let mappedValue = value;
58
- if (listToArray) {
59
- mappedValue = this.mapListToArray(value);
60
- }
61
- else if (arrayToList) {
62
- mappedValue = this.mapArrayToList(value, this.getInstanceType(compositionType), compositionAction === 'onlySet');
63
- }
64
- else if (arrayToArray) {
65
- mappedValue = this.mapArrayToArray(value, this.getInstanceType(compositionType));
66
- }
67
- else {
68
- const propSourceInstance = this._contextList.getSourceByName(typeSource);
69
- if (propSourceInstance) {
70
- mappedValue = this.mapNestedProp(value, propSourceInstance);
71
- }
72
- }
73
- mappedTarget[targetProp.name] = mappedValue;
74
- }
75
- }
76
- });
77
- propTargetContext?.props.forEach((prop) => {
78
- const formMemberDefinition = mapContext.forMemberDifinitions?.find((def) => def[prop.name])?.[prop.name];
79
- if (formMemberDefinition) {
80
- mappedTarget[prop.name] = formMemberDefinition(data);
81
- }
82
- });
83
- return mappedTarget;
84
- }
85
- getTarget(data, source) {
86
- if (this.isPrimitiveType(data)) {
87
- return data;
88
- }
89
- const targets = this._contextList.getTargets(source.prototype.constructor);
90
- if (targets.length === 0) {
91
- throw new Error(`No mapping context found for ${source.name}`);
92
- }
93
- return targets[0];
94
- }
95
- mapNestedProp(data, source) {
96
- return this.map(data, source.prototype.constructor, this.getTarget(data, source));
97
- }
98
- mapListToArray(value) {
99
- return value.toArray().map((item) => {
100
- const entityOnList = value.entityType?.prototype.constructor;
101
- if (entityOnList) {
102
- return this.mapNestedProp(item, entityOnList) ?? {};
103
- }
104
- return {};
105
- });
106
- }
107
- mapArrayToList(value, compositionType, onlySet = true) {
108
- const list = new list_1.List(this.getTarget(value, compositionType.prototype.constructor));
109
- const mappedValue = value.map((item) => this.mapNestedProp(item, compositionType.prototype.constructor) ?? {});
110
- if (onlySet) {
111
- list.setList(mappedValue);
112
- }
113
- else {
114
- list.update(mappedValue);
115
- }
116
- return list;
117
- }
118
- mapArrayToArray(value, compositionType) {
119
- return value.map((item) => this.mapNestedProp(item, compositionType.prototype.constructor) ?? {});
120
- }
121
- isPrimitiveType(value) {
122
- switch (typeof value) {
123
- case 'string':
124
- case 'number':
125
- case 'bigint':
126
- case 'boolean':
127
- return true;
128
- case 'symbol':
129
- case 'undefined':
130
- case 'object':
131
- case 'function':
132
- return false;
133
- }
134
- }
135
- };
136
- exports.AutoMappingService = AutoMappingService;
137
- exports.AutoMappingService = AutoMappingService = __decorate([
138
- (0, common_1.Injectable)(),
139
- __metadata("design:paramtypes", [auto_mapping_profile_1.AutoMappingProfile])
140
- ], AutoMappingService);
@@ -1,3 +0,0 @@
1
- import { Type } from '@nestjs/common';
2
- import { ForMemberDefinition } from './for-member';
3
- export declare function createMap<TSource, TTarget>(source: Type<TSource>, target: Type<TTarget>, ...formMember: ForMemberDefinition<TTarget, TSource>): void;
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createMap = createMap;
4
- const auto_mapping_list_1 = require("./auto-mapping-list");
5
- function createMap(source, target, ...formMember) {
6
- auto_mapping_list_1.AutoMappingList.add(source, target, ...formMember);
7
- }
@@ -1,5 +0,0 @@
1
- export type ForMemberResult<TTarget, TSource> = {
2
- [Key in keyof TTarget]: (source: TSource) => TTarget[Key];
3
- };
4
- export type ForMemberDefinition<TTarget, TSource> = Array<Partial<ForMemberResult<TTarget, TSource>>>;
5
- export declare function forMember<TTarget, TSource>(targetProp: keyof TTarget, map: (source: TSource) => TTarget[keyof TTarget]): Partial<ForMemberResult<TTarget, TSource>>;
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.forMember = forMember;
4
- function forMember(targetProp, map) {
5
- return {
6
- [targetProp]: map,
7
- };
8
- }
@@ -1,4 +0,0 @@
1
- import { RequestResult } from './request-result';
2
- export declare abstract class RequestHandlerBase<TRequest, TResponse extends RequestResult<Error, any>> {
3
- abstract handle(req: TRequest): Promise<TResponse>;
4
- }
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RequestHandlerBase = void 0;
4
- class RequestHandlerBase {
5
- }
6
- exports.RequestHandlerBase = RequestHandlerBase;
@@ -1,15 +0,0 @@
1
- export declare class Failure<L, R> {
2
- readonly value: L;
3
- constructor(value: L);
4
- isFailure(): this is Failure<L, R>;
5
- isOk(): this is Ok<L, R>;
6
- }
7
- export declare class Ok<L, R> {
8
- readonly value: R;
9
- constructor(value: R);
10
- isFailure(): this is Failure<L, R>;
11
- isOk(): this is Ok<L, R>;
12
- }
13
- export type RequestResult<L, R> = Failure<L, R> | Ok<L, R>;
14
- export declare const failure: <L, R>(value: L) => RequestResult<L, R>;
15
- export declare const ok: <L, R>(value: R) => RequestResult<L, R>;
@@ -1,37 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ok = exports.failure = exports.Ok = exports.Failure = void 0;
4
- class Failure {
5
- value;
6
- constructor(value) {
7
- this.value = value;
8
- }
9
- isFailure() {
10
- return true;
11
- }
12
- isOk() {
13
- return false;
14
- }
15
- }
16
- exports.Failure = Failure;
17
- class Ok {
18
- value;
19
- constructor(value) {
20
- this.value = value;
21
- }
22
- isFailure() {
23
- return false;
24
- }
25
- isOk() {
26
- return true;
27
- }
28
- }
29
- exports.Ok = Ok;
30
- const failure = (value) => {
31
- return new Failure(value);
32
- };
33
- exports.failure = failure;
34
- const ok = (value) => {
35
- return new Ok(value);
36
- };
37
- exports.ok = ok;
@@ -1,7 +0,0 @@
1
- import { ZodType } from 'zod';
2
- export declare abstract class RequestValidatorBase<TRequest extends Record<string, any>> {
3
- protected _request: Record<string, any>;
4
- constructor(request: TRequest);
5
- validate(): TRequest;
6
- protected abstract get schema(): ZodType;
7
- }
@@ -1,26 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RequestValidatorBase = void 0;
4
- class RequestValidatorBase {
5
- _request;
6
- constructor(request) {
7
- this._request = { ...request };
8
- }
9
- validate() {
10
- Object.keys(this._request).forEach((key) => {
11
- if (key.includes('[]')) {
12
- const newKey = key.replace('[]', '');
13
- const value = this._request[key];
14
- this._request[newKey] =
15
- typeof value === 'string' ? value.split(',') : value;
16
- delete this._request[key];
17
- }
18
- });
19
- const requestParsed = this.schema.safeParse(this._request);
20
- if (requestParsed.success) {
21
- return Object.assign(this._request, requestParsed.data);
22
- }
23
- throw requestParsed.error;
24
- }
25
- }
26
- exports.RequestValidatorBase = RequestValidatorBase;
@@ -1,16 +0,0 @@
1
- import { Request } from 'express';
2
- import { Strategy } from 'passport-custom';
3
- export type DoneFn = (err: Error | null, user?: any) => void;
4
- interface ApiKeyStrategyOptions {
5
- header: string;
6
- prefix?: string;
7
- }
8
- declare abstract class ApiKeyStrategyBase extends Strategy {
9
- constructor({ header, prefix }: ApiKeyStrategyOptions);
10
- abstract validate(apikey: string, done: DoneFn, request: Request): Promise<void> | void;
11
- }
12
- export declare class ApiKeyStrategy extends ApiKeyStrategyBase {
13
- constructor(options: ApiKeyStrategyOptions);
14
- validate(apikey: string, done: DoneFn, request: Request): void;
15
- }
16
- export {};
@@ -1,31 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ApiKeyStrategy = void 0;
4
- const common_1 = require("@nestjs/common");
5
- const passport_custom_1 = require("passport-custom");
6
- class ApiKeyStrategyBase extends passport_custom_1.Strategy {
7
- constructor({ header, prefix }) {
8
- super(async (request, done) => {
9
- try {
10
- const apikey = request.headers[header.toLowerCase()];
11
- const apiKeyEncoded = apikey?.replace(`${prefix || ''} `, '');
12
- if (apiKeyEncoded) {
13
- return await this.validate(apiKeyEncoded, done, request);
14
- }
15
- return done(new common_1.UnauthorizedException());
16
- }
17
- catch (err) {
18
- return done(err, null);
19
- }
20
- });
21
- }
22
- }
23
- class ApiKeyStrategy extends ApiKeyStrategyBase {
24
- constructor(options) {
25
- super(options);
26
- }
27
- validate(apikey, done, request) {
28
- throw new Error('Method not implemented.');
29
- }
30
- }
31
- exports.ApiKeyStrategy = ApiKeyStrategy;
@@ -1,5 +0,0 @@
1
- import { Type } from '@nestjs/common';
2
- export type ObjectProps<T> = {
3
- [K in keyof T as T[K] extends Function ? never : K]: T[K];
4
- };
5
- export declare function assignObject<T>(Target: Type<T>, source: ObjectProps<T>): T;
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.assignObject = assignObject;
4
- function assignObject(Target, source) {
5
- return Object.assign(new Target(), source);
6
- }
@@ -1,6 +0,0 @@
1
- export declare class EnvConfig {
2
- static get isEnvTest(): boolean;
3
- static get isEnvDevelop(): boolean;
4
- static get isEnvStaging(): boolean;
5
- static get isEnvProduction(): boolean;
6
- }
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EnvConfig = void 0;
4
- class EnvConfig {
5
- static get isEnvTest() {
6
- return process.env.NODE_ENV === 'test';
7
- }
8
- static get isEnvDevelop() {
9
- return process.env.NODE_ENV === 'develop';
10
- }
11
- static get isEnvStaging() {
12
- return process.env.NODE_ENV === 'staging';
13
- }
14
- static get isEnvProduction() {
15
- return process.env.NODE_ENV === 'production';
16
- }
17
- }
18
- exports.EnvConfig = EnvConfig;
@@ -1,13 +0,0 @@
1
- import { ArgumentsHost } from '@nestjs/common/interfaces';
2
- import { Response } from 'express';
3
- export declare class FilterRequestParams {
4
- static get(host: ArgumentsHost): {
5
- response: Response<any, Record<string, any>>;
6
- loggedUserName: string;
7
- filterParams: {
8
- method: string;
9
- payload: any;
10
- endpoint: string;
11
- };
12
- };
13
- }
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FilterRequestParams = void 0;
4
- class FilterRequestParams {
5
- static get(host) {
6
- const ctx = host.switchToHttp();
7
- const response = ctx.getResponse();
8
- const request = ctx.getRequest();
9
- const method = request.method;
10
- const isGetMethod = method === 'GET';
11
- return {
12
- response,
13
- loggedUserName: request?.user?.login ?? request.headers.origin ?? request.ip ?? '',
14
- filterParams: {
15
- method,
16
- payload: !isGetMethod ? request.body : undefined,
17
- endpoint: request.url,
18
- },
19
- };
20
- }
21
- }
22
- exports.FilterRequestParams = FilterRequestParams;
@@ -1,2 +0,0 @@
1
- import { List } from './list';
2
- export declare function findOnList<T>(list: List<T>, ...predicates: ((item: T) => boolean)[]): T | null;
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.findOnList = findOnList;
4
- function findOnList(list, ...predicates) {
5
- let result = null;
6
- for (const predicate of predicates) {
7
- result = list.find(predicate);
8
- if (result) {
9
- break;
10
- }
11
- }
12
- return result;
13
- }
@@ -1,2 +0,0 @@
1
- import { AutoMappingClassProp } from '../mapping/auto-mapping-class-context';
2
- export declare function getTypeByProp(prop: AutoMappingClassProp): string;
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getTypeByProp = getTypeByProp;
4
- function getTypeByProp(prop) {
5
- try {
6
- return prop.type().name ?? prop.type.name ?? '';
7
- }
8
- catch {
9
- return prop.type.name ?? '';
10
- }
11
- }
@@ -1,2 +0,0 @@
1
- import { INestApplication } from '@nestjs/common';
2
- export declare function instanciateClassWithDependenciesInjection(app: INestApplication, Target: any): any;
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.instanciateClassWithDependenciesInjection = instanciateClassWithDependenciesInjection;
4
- function instanciateClassWithDependenciesInjection(app, Target) {
5
- const dependencies = Reflect.getMetadata('design:paramtypes', Target) ?? [];
6
- const injections = dependencies.map((dependency) => {
7
- return app.get(dependency);
8
- });
9
- return new Target(...injections);
10
- }