@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,8 @@
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
+ }
@@ -0,0 +1,4 @@
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
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RequestHandlerBase = void 0;
4
+ class RequestHandlerBase {
5
+ }
6
+ exports.RequestHandlerBase = RequestHandlerBase;
@@ -0,0 +1,15 @@
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>;
@@ -0,0 +1,37 @@
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;
@@ -0,0 +1,7 @@
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
+ }
@@ -0,0 +1,26 @@
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;
@@ -0,0 +1,16 @@
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 {};
@@ -0,0 +1,31 @@
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;
@@ -0,0 +1,5 @@
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;
@@ -0,0 +1,6 @@
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
+ }
@@ -0,0 +1,6 @@
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
+ }
@@ -0,0 +1,18 @@
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;
@@ -0,0 +1,13 @@
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
+ }
@@ -0,0 +1,22 @@
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;
@@ -0,0 +1,2 @@
1
+ import { List } from './list';
2
+ export declare function findOnList<T>(list: List<T>, ...predicates: ((item: T) => boolean)[]): T | null;
@@ -0,0 +1,13 @@
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
+ }
@@ -0,0 +1,2 @@
1
+ import { AutoMappingClassProp } from '../mapping/auto-mapping-class-context';
2
+ export declare function getTypeByProp(prop: AutoMappingClassProp): string;
@@ -0,0 +1,11 @@
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
+ }
@@ -0,0 +1,2 @@
1
+ import { INestApplication } from '@nestjs/common';
2
+ export declare function instanciateClassWithDependenciesInjection(app: INestApplication, Target: any): any;
@@ -0,0 +1,10 @@
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
+ }
@@ -0,0 +1,5 @@
1
+ export type IComparableId = string | number;
2
+ export declare abstract class IComparable<T = any> {
3
+ abstract _id: IComparableId;
4
+ abstract equals(obj: IComparable<T>): boolean;
5
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IComparable = void 0;
4
+ class IComparable {
5
+ }
6
+ exports.IComparable = IComparable;
@@ -0,0 +1,39 @@
1
+ import { Type } from '@nestjs/common';
2
+ import 'reflect-metadata';
3
+ import { IComparableId } from './interfaces/icomparable';
4
+ export type OrderDirection = 'asc' | 'desc';
5
+ export type ListActionType = 'added' | 'updated' | 'removed';
6
+ export interface ListProps<T> {
7
+ list?: T[];
8
+ entityType?: Type<T>;
9
+ }
10
+ export declare class List<T> {
11
+ readonly entityType?: Type<T> | undefined;
12
+ private _list;
13
+ private _addedItemsList;
14
+ private _updatedItemsList;
15
+ private _removedItemsList;
16
+ constructor(entityType?: Type<T> | undefined);
17
+ private indexOf;
18
+ private contains;
19
+ private mapInternalIdIfIsEmpty;
20
+ get length(): number;
21
+ orderBy(by: keyof T, direction?: OrderDirection): this;
22
+ first(): NonNullable<T> | null;
23
+ last(): NonNullable<T> | null;
24
+ findById(id: IComparableId): T | null;
25
+ findByValue(value: any): T | null;
26
+ setList(list: T[]): this;
27
+ add(item: T): this | undefined;
28
+ remove(item: T): this;
29
+ update(items: T[]): this;
30
+ clear(): this;
31
+ forEach(callback: (item: T, index: number) => void): this;
32
+ forEachAsync(callback: (item: T, index: number) => Promise<void>): Promise<this>;
33
+ map<U>(callback: (item: T, index: number) => U): List<U>;
34
+ mapAsync<U>(callback: (item: T, index: number) => Promise<U>): Promise<List<U>>;
35
+ filter(callback: (item: T, index: number) => boolean): List<T>;
36
+ filterAsync(callback: (item: T, index: number) => Promise<boolean>): Promise<List<T>>;
37
+ find(callback: (item: T, index: number) => boolean): T | null;
38
+ toArray(type?: ListActionType): T[];
39
+ }
@@ -0,0 +1,168 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.List = void 0;
4
+ require("reflect-metadata");
5
+ const entity_base_1 = require("../database/entity.base");
6
+ class List {
7
+ entityType;
8
+ _list = [];
9
+ _addedItemsList = [];
10
+ _updatedItemsList = [];
11
+ _removedItemsList = [];
12
+ constructor(entityType) {
13
+ this.entityType = entityType;
14
+ }
15
+ indexOf(item, list = this._list) {
16
+ if (item instanceof entity_base_1.EntityBase) {
17
+ return list
18
+ .filter((i) => i instanceof entity_base_1.EntityBase)
19
+ .filter((i) => !!i._id)
20
+ .findIndex((i) => item._id === i._id ||
21
+ item.id === i.id);
22
+ }
23
+ return list
24
+ .filter((i) => !(i instanceof entity_base_1.EntityBase))
25
+ .findIndex((i) => item === i);
26
+ }
27
+ contains(item, list = this._list) {
28
+ return this.indexOf(item, list) > -1;
29
+ }
30
+ mapInternalIdIfIsEmpty(list) {
31
+ return list.map((item) => {
32
+ if (item instanceof entity_base_1.EntityBase && !item._id) {
33
+ item._id = item.id;
34
+ }
35
+ return item;
36
+ });
37
+ }
38
+ get length() {
39
+ return this._list.length;
40
+ }
41
+ orderBy(by, direction = 'asc') {
42
+ const inverse = direction === 'desc';
43
+ this._list.sort((a, b) => {
44
+ if (typeof a !== 'string' && typeof b !== 'string') {
45
+ if ((!inverse && a[by] > b[by]) || (inverse && a[by] < b[by])) {
46
+ return 1;
47
+ }
48
+ else if ((!inverse && a[by] < b[by]) || (inverse && a[by] > b[by])) {
49
+ return -1;
50
+ }
51
+ else {
52
+ return 0;
53
+ }
54
+ }
55
+ else {
56
+ return 0;
57
+ }
58
+ });
59
+ return this;
60
+ }
61
+ first() {
62
+ return this._list[0] ?? null;
63
+ }
64
+ last() {
65
+ return this._list[this._list.length - 1] ?? null;
66
+ }
67
+ findById(id) {
68
+ return (this._list
69
+ .filter((item) => item instanceof entity_base_1.EntityBase)
70
+ .find((item) => item._id === id || item.id === id) ??
71
+ null);
72
+ }
73
+ findByValue(value) {
74
+ return this._list.find((item) => item === value) ?? null;
75
+ }
76
+ setList(list) {
77
+ this._list = this.mapInternalIdIfIsEmpty(list);
78
+ return this;
79
+ }
80
+ add(item) {
81
+ if (this.contains(item)) {
82
+ this._list[this.indexOf(item)] = item;
83
+ if (!this.contains(item, this._updatedItemsList)) {
84
+ this._updatedItemsList.push(item);
85
+ }
86
+ return;
87
+ }
88
+ this._list.push(item);
89
+ this._addedItemsList.push(item);
90
+ return this;
91
+ }
92
+ remove(item) {
93
+ const index = this.indexOf(item);
94
+ if (index > -1) {
95
+ this._list.splice(index, 1);
96
+ if (!this.contains(item, this._removedItemsList)) {
97
+ this._removedItemsList.push(item);
98
+ }
99
+ }
100
+ return this;
101
+ }
102
+ update(items) {
103
+ items = this.mapInternalIdIfIsEmpty(items);
104
+ items.forEach((item) => this.add(item));
105
+ this._list
106
+ .filter((item) => !this.contains(item, items))
107
+ .forEach((item) => this.remove(item));
108
+ return this;
109
+ }
110
+ clear() {
111
+ this._addedItemsList = [];
112
+ this._updatedItemsList = [];
113
+ this._removedItemsList = this._list;
114
+ this._list = [];
115
+ return this;
116
+ }
117
+ forEach(callback) {
118
+ this._list.forEach(callback);
119
+ return this;
120
+ }
121
+ async forEachAsync(callback) {
122
+ return Promise.all(this._list.map(callback)).then(() => this);
123
+ }
124
+ map(callback) {
125
+ const mappedItems = this._list.map(callback);
126
+ const list = new List();
127
+ list.setList(mappedItems);
128
+ return list;
129
+ }
130
+ async mapAsync(callback) {
131
+ return Promise.all(this._list.map(callback)).then((mappedItems) => {
132
+ const mappedList = new List();
133
+ mappedList.setList(mappedItems);
134
+ return mappedList;
135
+ });
136
+ }
137
+ filter(callback) {
138
+ const filteredItems = this._list.filter(callback);
139
+ const list = new List();
140
+ list.setList(filteredItems);
141
+ return list;
142
+ }
143
+ async filterAsync(callback) {
144
+ return Promise.all(this._list.filter(callback))
145
+ .then((list) => list.filter((item) => item))
146
+ .then((filteredItems) => {
147
+ const list = new List();
148
+ list.setList(filteredItems);
149
+ return list;
150
+ });
151
+ }
152
+ find(callback) {
153
+ return this._list.find(callback) ?? null;
154
+ }
155
+ toArray(type) {
156
+ switch (type) {
157
+ case 'added':
158
+ return this._addedItemsList;
159
+ case 'updated':
160
+ return this._updatedItemsList;
161
+ case 'removed':
162
+ return this._removedItemsList;
163
+ default:
164
+ return this._list;
165
+ }
166
+ }
167
+ }
168
+ exports.List = List;
@@ -0,0 +1,7 @@
1
+ type PromisesResponseType<T> = {
2
+ [K in keyof T]: Awaited<T[K]>;
3
+ };
4
+ export declare class Promises {
5
+ static result<T>(requests: T): Promise<PromisesResponseType<T>>;
6
+ }
7
+ export {};
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Promises = void 0;
4
+ class Promises {
5
+ static async result(requests) {
6
+ const promises = [];
7
+ Object.values(requests).forEach((promise) => promises.push(promise));
8
+ return Promise.all(promises).then((result) => {
9
+ let currentIndex = 0;
10
+ const response = {};
11
+ Object.keys(requests).forEach((propName) => {
12
+ response[propName] = result[currentIndex];
13
+ currentIndex++;
14
+ });
15
+ return response;
16
+ });
17
+ }
18
+ }
19
+ exports.Promises = Promises;
@@ -0,0 +1 @@
1
+ export declare function setMaskDocumentNumber(document?: string): string;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setMaskDocumentNumber = setMaskDocumentNumber;
4
+ const KlString_1 = require("@koalarx/utils/KlString");
5
+ function setMaskDocumentNumber(document) {
6
+ if (!document) {
7
+ return '';
8
+ }
9
+ const documentWithoutMask = document.replace(/[^0-9]/g, '');
10
+ return documentWithoutMask.length === 11
11
+ ? (0, KlString_1.maskCpf)(documentWithoutMask)
12
+ : (0, KlString_1.maskCnpj)(documentWithoutMask);
13
+ }
@@ -0,0 +1,27 @@
1
+ import { FileValidator } from '@nestjs/common';
2
+ import { FileType } from '..';
3
+ type FileTypeInternal = FileType | FileType[] | Record<string, FileType[]>;
4
+ export declare class FileSizeValidator extends FileValidator {
5
+ private maxSizeBytes;
6
+ private multiple;
7
+ private errorFileName;
8
+ constructor(args: {
9
+ maxSizeBytes: number;
10
+ multiple: boolean;
11
+ });
12
+ isValid(file?: FileTypeInternal): Promise<boolean>;
13
+ buildErrorMessage(file: any): string;
14
+ }
15
+ export declare class FileTypeValidator extends FileValidator {
16
+ private multiple;
17
+ private errorFileName;
18
+ private filetype;
19
+ constructor(args: {
20
+ multiple: boolean;
21
+ filetype: RegExp | string;
22
+ });
23
+ isMimeTypeValid(file: FileType): boolean;
24
+ isValid(file?: FileTypeInternal): Promise<boolean>;
25
+ buildErrorMessage(file: any): string;
26
+ }
27
+ export {};