@koalarx/nest 3.0.3 → 3.0.5
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.
- package/core/backgroud-services/cron-service/cron-job.handler.base.d.ts +16 -0
- package/core/backgroud-services/cron-service/cron-job.handler.base.js +49 -0
- package/core/backgroud-services/event-service/event-class.d.ts +5 -0
- package/core/backgroud-services/event-service/event-class.js +11 -0
- package/core/backgroud-services/event-service/event-handler.base.d.ts +8 -0
- package/core/backgroud-services/event-service/event-handler.base.js +14 -0
- package/core/backgroud-services/event-service/event-is-trigger.d.ts +3 -0
- package/core/backgroud-services/event-service/event-is-trigger.js +7 -0
- package/core/backgroud-services/event-service/event-job.d.ts +13 -0
- package/core/backgroud-services/event-service/event-job.js +21 -0
- package/core/backgroud-services/event-service/event-queue.d.ts +17 -0
- package/core/backgroud-services/event-service/event-queue.js +62 -0
- package/core/constants/query-params.d.ts +6 -0
- package/core/constants/query-params.js +8 -0
- package/core/controllers/base.controller.d.ts +4 -0
- package/core/controllers/base.controller.js +6 -0
- package/core/controllers/controller.decorator.d.ts +2 -0
- package/core/controllers/controller.decorator.js +11 -0
- package/core/controllers/created-registre-response.base.d.ts +10 -0
- package/core/controllers/created-registre-response.base.js +35 -0
- package/core/controllers/list-response.base.d.ts +4 -0
- package/core/controllers/list-response.base.js +21 -0
- package/core/controllers/pagination.request.d.ts +10 -0
- package/core/controllers/pagination.request.js +56 -0
- package/core/controllers/router-config.base.d.ts +7 -0
- package/core/controllers/router-config.base.js +18 -0
- package/core/controllers/schemas/boolean.schema.d.ts +2 -0
- package/core/controllers/schemas/boolean.schema.js +12 -0
- package/core/controllers/schemas/document-number.schema.d.ts +1 -0
- package/core/controllers/schemas/document-number.schema.js +26 -0
- package/core/controllers/schemas/email.schema.d.ts +1 -0
- package/core/controllers/schemas/email.schema.js +13 -0
- package/core/controllers/schemas/list-query.schema.d.ts +17 -0
- package/core/controllers/schemas/list-query.schema.js +19 -0
- package/core/controllers/schemas/native-enum.schema.d.ts +7 -0
- package/core/controllers/schemas/native-enum.schema.js +28 -0
- package/core/controllers/schemas/set-mask-document-number.schema.d.ts +1 -0
- package/core/controllers/schemas/set-mask-document-number.schema.js +13 -0
- package/core/database/entity.base.d.ts +20 -0
- package/core/database/entity.base.js +71 -0
- package/core/database/entity.decorator.d.ts +13 -0
- package/core/database/entity.decorator.js +23 -0
- package/core/database/prisma-client-with-custom-transaction.interface.d.ts +8 -0
- package/core/database/prisma-client-with-custom-transaction.interface.js +2 -0
- package/core/database/prisma-resolver.d.ts +2 -0
- package/core/database/prisma-resolver.js +74 -0
- package/core/database/prisma-transactional-client.d.ts +11 -0
- package/core/database/prisma-transactional-client.js +25 -0
- package/core/database/prisma.service.d.ts +24 -0
- package/core/database/prisma.service.js +104 -0
- package/core/database/repository.base.d.ts +44 -0
- package/core/database/repository.base.js +360 -0
- package/core/dtos/pagination.dto.d.ts +9 -0
- package/core/dtos/pagination.dto.js +49 -0
- package/core/errors/bad-request.error.d.ts +5 -0
- package/core/errors/bad-request.error.js +10 -0
- package/core/errors/conflict.error.d.ts +4 -0
- package/core/errors/conflict.error.js +10 -0
- package/core/errors/error.base.d.ts +4 -0
- package/core/errors/error.base.js +11 -0
- package/core/errors/no-content.error.d.ts +5 -0
- package/core/errors/no-content.error.js +10 -0
- package/core/errors/not-allowed.error.d.ts +5 -0
- package/core/errors/not-allowed.error.js +10 -0
- package/core/errors/resource-not-found.error.d.ts +5 -0
- package/core/errors/resource-not-found.error.js +10 -0
- package/{src/core/errors/use-case-error.ts → core/errors/use-case-error.d.ts} +1 -1
- package/core/errors/use-case-error.js +2 -0
- package/core/errors/user-already-exist.error.d.ts +4 -0
- package/core/errors/user-already-exist.error.js +10 -0
- package/core/errors/wrong-credentials.error.d.ts +4 -0
- package/core/errors/wrong-credentials.error.js +10 -0
- package/core/health-check/health-check.controller.d.ts +5 -0
- package/core/health-check/health-check.controller.js +32 -0
- package/core/health-check/health-check.module.d.ts +2 -0
- package/core/health-check/health-check.module.js +19 -0
- package/core/index.d.ts +18 -0
- package/core/index.js +7 -0
- package/core/koala-app.d.ts +64 -0
- package/core/koala-app.js +252 -0
- package/core/koala-global-vars.d.ts +7 -0
- package/core/koala-global-vars.js +9 -0
- package/core/koala-nest-database.module.d.ts +16 -0
- package/core/koala-nest-database.module.js +52 -0
- package/core/koala-nest-http.module.d.ts +13 -0
- package/core/koala-nest-http.module.js +37 -0
- package/core/koala-nest.module.d.ts +17 -0
- package/core/koala-nest.module.js +66 -0
- package/core/mapping/auto-mapping-class-context.d.ts +16 -0
- package/core/mapping/auto-mapping-class-context.js +18 -0
- package/core/mapping/auto-mapping-context.d.ts +11 -0
- package/core/mapping/auto-mapping-context.js +24 -0
- package/core/mapping/auto-mapping-list.d.ts +27 -0
- package/core/mapping/auto-mapping-list.js +94 -0
- package/core/mapping/auto-mapping-profile.d.ts +3 -0
- package/core/mapping/auto-mapping-profile.js +6 -0
- package/core/mapping/auto-mapping.decorator.d.ts +9 -0
- package/core/mapping/auto-mapping.decorator.js +27 -0
- package/core/mapping/auto-mapping.module.d.ts +5 -0
- package/core/mapping/auto-mapping.module.js +29 -0
- package/core/mapping/auto-mapping.service.d.ts +14 -0
- package/core/mapping/auto-mapping.service.js +140 -0
- package/core/mapping/create-map.d.ts +3 -0
- package/core/mapping/create-map.js +7 -0
- package/core/mapping/for-member.d.ts +5 -0
- package/core/mapping/for-member.js +8 -0
- package/core/request-overflow/request-handler.base.d.ts +4 -0
- package/core/request-overflow/request-handler.base.js +6 -0
- package/core/request-overflow/request-result.d.ts +15 -0
- package/core/request-overflow/request-result.js +37 -0
- package/core/request-overflow/request-validator.base.d.ts +7 -0
- package/core/request-overflow/request-validator.base.js +26 -0
- package/core/security/strategies/api-key.strategy.d.ts +16 -0
- package/core/security/strategies/api-key.strategy.js +31 -0
- package/core/utils/assing-object.d.ts +5 -0
- package/core/utils/assing-object.js +6 -0
- package/core/utils/env.config.d.ts +6 -0
- package/core/utils/env.config.js +18 -0
- package/core/utils/filter-request-params.d.ts +13 -0
- package/core/utils/filter-request-params.js +22 -0
- package/core/utils/find-on-list.d.ts +2 -0
- package/core/utils/find-on-list.js +13 -0
- package/core/utils/get-type-by-prop.d.ts +2 -0
- package/core/utils/get-type-by-prop.js +11 -0
- package/core/utils/instanciate-class-with-dependencies-injection.d.ts +2 -0
- package/core/utils/instanciate-class-with-dependencies-injection.js +10 -0
- package/core/utils/interfaces/icomparable.d.ts +5 -0
- package/core/utils/interfaces/icomparable.js +6 -0
- package/core/utils/list.d.ts +39 -0
- package/core/utils/list.js +168 -0
- package/core/utils/promise-all.d.ts +7 -0
- package/core/utils/promise-all.js +19 -0
- package/core/utils/set-mask-document-number.d.ts +1 -0
- package/core/utils/set-mask-document-number.js +13 -0
- package/core/validators/file-validator.d.ts +27 -0
- package/core/validators/file-validator.js +94 -0
- package/decorators/api-exclude-endpoint-diff-develop.decorator.d.ts +1 -0
- package/decorators/api-exclude-endpoint-diff-develop.decorator.js +9 -0
- package/decorators/api-property-enum.decorator.d.ts +8 -0
- package/decorators/api-property-enum.decorator.js +21 -0
- package/decorators/api-property-only-develop.decorator.d.ts +2 -0
- package/decorators/api-property-only-develop.decorator.js +9 -0
- package/decorators/cookies.decorator.d.ts +1 -0
- package/decorators/cookies.decorator.js +8 -0
- package/decorators/is-public.decorator.d.ts +2 -0
- package/decorators/is-public.decorator.js +7 -0
- package/decorators/upload.decorator.d.ts +1 -0
- package/decorators/upload.decorator.js +18 -0
- package/env/env.d.ts +25 -0
- package/env/env.js +14 -0
- package/env/env.module.d.ts +2 -0
- package/env/env.module.js +20 -0
- package/env/env.service.d.ts +7 -0
- package/env/env.service.js +28 -0
- package/filters/domain-errors.filter.d.ts +18 -0
- package/filters/domain-errors.filter.js +92 -0
- package/filters/global-exception.filter.d.ts +8 -0
- package/filters/global-exception.filter.js +68 -0
- package/filters/prisma-validation-exception.filter.d.ts +10 -0
- package/filters/prisma-validation-exception.filter.js +82 -0
- package/filters/zod-errors.filter.d.ts +9 -0
- package/filters/zod-errors.filter.js +60 -0
- package/package.json +29 -2
- package/services/logging/ilogging.service.d.ts +16 -0
- package/services/logging/ilogging.service.js +6 -0
- package/services/logging/logging.service.d.ts +4 -0
- package/services/logging/logging.service.js +20 -0
- package/services/redis/iredis.service.d.ts +6 -0
- package/services/redis/iredis.service.js +6 -0
- package/services/redis/redis.service.d.ts +14 -0
- package/services/redis/redis.service.js +65 -0
- package/services/redlock/ired-lock.service.d.ts +4 -0
- package/services/redlock/ired-lock.service.js +6 -0
- package/services/redlock/red-lock.service.d.ts +9 -0
- package/services/redlock/red-lock.service.js +46 -0
- package/test/koala-app-test-dependencies.d.ts +10 -0
- package/test/koala-app-test-dependencies.js +13 -0
- package/test/koala-app-test.d.ts +22 -0
- package/test/koala-app-test.js +77 -0
- package/test/repositories/in-memory-base.repository.d.ts +17 -0
- package/test/repositories/in-memory-base.repository.js +65 -0
- package/test/services/fake-logging.service.d.ts +4 -0
- package/test/services/fake-logging.service.js +9 -0
- package/test/services/fake-red-lock.service.d.ts +5 -0
- package/test/services/fake-red-lock.service.js +11 -0
- package/test/utils/create-e2e-database.d.ts +2 -0
- package/test/utils/create-e2e-database.js +47 -0
- package/test/utils/drop-e2e-database.d.ts +2 -0
- package/test/utils/drop-e2e-database.js +33 -0
- package/test/utils/wait-for.d.ts +1 -0
- package/test/utils/wait-for.js +21 -0
- package/tsconfig.lib.tsbuildinfo +1 -0
- package/CHANGELOG.md +0 -27
- package/src/core/backgroud-services/cron-service/cron-job.handler.base.ts +0 -66
- package/src/core/backgroud-services/cron-service/cron-job.handler.spec.ts +0 -38
- package/src/core/backgroud-services/event-service/event-class.ts +0 -5
- package/src/core/backgroud-services/event-service/event-handler.base.ts +0 -17
- package/src/core/backgroud-services/event-service/event-is-trigger.ts +0 -3
- package/src/core/backgroud-services/event-service/event-job.ts +0 -28
- package/src/core/backgroud-services/event-service/event-queue.spec.ts +0 -47
- package/src/core/backgroud-services/event-service/event-queue.ts +0 -107
- package/src/core/constants/query-params.ts +0 -7
- package/src/core/controllers/base.controller.ts +0 -9
- package/src/core/controllers/controller.decorator.ts +0 -10
- package/src/core/controllers/created-registre-response.base.ts +0 -17
- package/src/core/controllers/list-response.base.ts +0 -8
- package/src/core/controllers/pagination.request.ts +0 -41
- package/src/core/controllers/router-config.base.ts +0 -14
- package/src/core/controllers/schemas/boolean.schema.ts +0 -10
- package/src/core/controllers/schemas/document-number.schema.ts +0 -23
- package/src/core/controllers/schemas/email.schema.ts +0 -13
- package/src/core/controllers/schemas/list-query.schema.ts +0 -17
- package/src/core/controllers/schemas/native-enum.schema.ts +0 -34
- package/src/core/controllers/schemas/set-mask-document-number.schema.ts +0 -13
- package/src/core/database/entity.base.ts +0 -95
- package/src/core/database/entity.decorator.spec.ts +0 -71
- package/src/core/database/entity.decorator.ts +0 -39
- package/src/core/database/prisma-client-with-custom-transaction.interface.ts +0 -13
- package/src/core/database/prisma-resolver.ts +0 -99
- package/src/core/database/prisma-transactional-client.ts +0 -43
- package/src/core/database/prisma.service.ts +0 -136
- package/src/core/database/repository.base.ts +0 -548
- package/src/core/dtos/pagination.dto.ts +0 -35
- package/src/core/errors/bad-request.error.ts +0 -8
- package/src/core/errors/conflict.error.ts +0 -7
- package/src/core/errors/error.base.ts +0 -5
- package/src/core/errors/no-content.error.ts +0 -8
- package/src/core/errors/not-allowed.error.ts +0 -8
- package/src/core/errors/resource-not-found.error.ts +0 -8
- package/src/core/errors/user-already-exist.error.ts +0 -7
- package/src/core/errors/wrong-credentials.error.ts +0 -7
- package/src/core/health-check/health-check.controller.ts +0 -13
- package/src/core/health-check/health-check.module.ts +0 -7
- package/src/core/index.ts +0 -56
- package/src/core/koala-app.ts +0 -379
- package/src/core/koala-global-vars.ts +0 -8
- package/src/core/koala-nest-database.module.ts +0 -65
- package/src/core/koala-nest-http.module.ts +0 -44
- package/src/core/koala-nest.module.ts +0 -67
- package/src/core/mapping/auto-mapping-class-context.ts +0 -28
- package/src/core/mapping/auto-mapping-context.ts +0 -26
- package/src/core/mapping/auto-mapping-list.ts +0 -154
- package/src/core/mapping/auto-mapping-profile.ts +0 -3
- package/src/core/mapping/auto-mapping.decorator.ts +0 -54
- package/src/core/mapping/auto-mapping.module.ts +0 -17
- package/src/core/mapping/auto-mapping.service.ts +0 -187
- package/src/core/mapping/create-map.ts +0 -11
- package/src/core/mapping/for-member.ts +0 -16
- package/src/core/request-overflow/request-handler.base.ts +0 -8
- package/src/core/request-overflow/request-result.spec.ts +0 -23
- package/src/core/request-overflow/request-result.ts +0 -41
- package/src/core/request-overflow/request-validator.base.ts +0 -33
- package/src/core/security/strategies/api-key.strategy.ts +0 -45
- package/src/core/utils/assing-object.ts +0 -9
- package/src/core/utils/env.config.ts +0 -17
- package/src/core/utils/filter-request-params.ts +0 -23
- package/src/core/utils/find-on-list.ts +0 -18
- package/src/core/utils/get-type-by-prop.ts +0 -9
- package/src/core/utils/instanciate-class-with-dependencies-injection.ts +0 -12
- package/src/core/utils/interfaces/icomparable.ts +0 -6
- package/src/core/utils/list.spec.ts +0 -81
- package/src/core/utils/list.ts +0 -223
- package/src/core/utils/promise-all.ts +0 -24
- package/src/core/utils/set-mask-document-number.ts +0 -13
- package/src/core/validators/file-validator.ts +0 -113
- package/src/decorators/api-exclude-endpoint-diff-develop.decorator.ts +0 -15
- package/src/decorators/api-property-enum.decorator.ts +0 -58
- package/src/decorators/api-property-only-develop.decorator.ts +0 -6
- package/src/decorators/cookies.decorator.ts +0 -8
- package/src/decorators/is-public.decorator.ts +0 -5
- package/src/decorators/upload.decorator.ts +0 -31
- package/src/env/env.module.ts +0 -8
- package/src/env/env.service.ts +0 -12
- package/src/env/env.ts +0 -14
- package/src/filters/domain-errors.filter.ts +0 -97
- package/src/filters/global-exception.filter.ts +0 -60
- package/src/filters/prisma-validation-exception.filter.ts +0 -73
- package/src/filters/zod-errors.filter.ts +0 -48
- package/src/services/logging/ilogging.service.ts +0 -17
- package/src/services/logging/logging.service.ts +0 -10
- package/src/services/redis/iredis.service.ts +0 -11
- package/src/services/redis/redis.service.ts +0 -70
- package/src/services/redlock/ired-lock.service.ts +0 -4
- package/src/services/redlock/red-lock.service.ts +0 -36
- package/src/test/koala-app-test-dependencies.ts +0 -15
- package/src/test/koala-app-test.ts +0 -103
- package/src/test/repositories/in-memory-base.repository.ts +0 -90
- package/src/test/services/fake-logging.service.ts +0 -7
- package/src/test/services/fake-red-lock.service.ts +0 -11
- package/src/test/utils/create-e2e-database.ts +0 -55
- package/src/test/utils/drop-e2e-database.ts +0 -36
- package/src/test/utils/wait-for.ts +0 -31
- package/tsconfig.lib.json +0 -11
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ILoggingService } from '../../../services/logging/ilogging.service';
|
|
2
|
+
import { IRedLockService } from '../../../services/redlock/ired-lock.service';
|
|
3
|
+
import { RequestResult } from '../../request-overflow/request-result';
|
|
4
|
+
export type CronJobResponse = RequestResult<Error, null>;
|
|
5
|
+
export interface CronJobSettings {
|
|
6
|
+
isActive: boolean;
|
|
7
|
+
timeInMinutes: number;
|
|
8
|
+
}
|
|
9
|
+
export declare abstract class CronJobHandlerBase {
|
|
10
|
+
private readonly redlockService;
|
|
11
|
+
private readonly loggingService;
|
|
12
|
+
constructor(redlockService: IRedLockService, loggingService: ILoggingService);
|
|
13
|
+
protected abstract run(): Promise<CronJobResponse>;
|
|
14
|
+
protected abstract settings(): Promise<CronJobSettings>;
|
|
15
|
+
start(): Promise<void>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CronJobHandlerBase = void 0;
|
|
4
|
+
const KlDelay_1 = require("@koalarx/utils/KlDelay");
|
|
5
|
+
const koala_global_vars_1 = require("../../koala-global-vars");
|
|
6
|
+
class CronJobHandlerBase {
|
|
7
|
+
redlockService;
|
|
8
|
+
loggingService;
|
|
9
|
+
constructor(redlockService, loggingService) {
|
|
10
|
+
this.redlockService = redlockService;
|
|
11
|
+
this.loggingService = loggingService;
|
|
12
|
+
}
|
|
13
|
+
async start() {
|
|
14
|
+
const name = this.constructor.name;
|
|
15
|
+
while (true) {
|
|
16
|
+
const settings = await this.settings();
|
|
17
|
+
const timeout = settings.timeInMinutes * 60 * 1000;
|
|
18
|
+
if (settings.isActive) {
|
|
19
|
+
const ttlSecondsLock = timeout / 1000;
|
|
20
|
+
const acquiredLock = await this.redlockService.acquiredLock(name, ttlSecondsLock);
|
|
21
|
+
if (acquiredLock) {
|
|
22
|
+
const error = await this.run()
|
|
23
|
+
.then((result) => {
|
|
24
|
+
if (result.isFailure()) {
|
|
25
|
+
return result.value;
|
|
26
|
+
}
|
|
27
|
+
return null;
|
|
28
|
+
})
|
|
29
|
+
.catch((error) => error);
|
|
30
|
+
if (error) {
|
|
31
|
+
try {
|
|
32
|
+
await this.loggingService.report({
|
|
33
|
+
error,
|
|
34
|
+
packageName: koala_global_vars_1.KoalaGlobalVars.appName,
|
|
35
|
+
loggedUsername: koala_global_vars_1.KoalaGlobalVars.internalUserName,
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
console.error(error);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
await (0, KlDelay_1.delay)(timeout);
|
|
45
|
+
await this.redlockService.releaseLock(name);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
exports.CronJobHandlerBase = CronJobHandlerBase;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Type } from '@nestjs/common';
|
|
2
|
+
import { EventClass } from './event-class';
|
|
3
|
+
export declare abstract class EventHandlerBase {
|
|
4
|
+
readonly event: Type<EventClass>;
|
|
5
|
+
constructor(event: Type<EventClass>);
|
|
6
|
+
setupSubscriptions(): void;
|
|
7
|
+
abstract handleEvent(event: InstanceType<this['event']>): Promise<void>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EventHandlerBase = void 0;
|
|
4
|
+
const event_queue_1 = require("./event-queue");
|
|
5
|
+
class EventHandlerBase {
|
|
6
|
+
event;
|
|
7
|
+
constructor(event) {
|
|
8
|
+
this.event = event;
|
|
9
|
+
}
|
|
10
|
+
setupSubscriptions() {
|
|
11
|
+
event_queue_1.EventQueue.register(this.handleEvent.bind(this), this.constructor.name, this.event.name);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.EventHandlerBase = EventHandlerBase;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Type } from '@nestjs/common';
|
|
2
|
+
import { EventClass } from './event-class';
|
|
3
|
+
import { EventHandlerBase } from './event-handler.base';
|
|
4
|
+
import { EventQueue } from './event-queue';
|
|
5
|
+
export declare abstract class EventJob<TEntity> {
|
|
6
|
+
_id: `${string}-${string}-${string}-${string}-${string}`;
|
|
7
|
+
private _eventQueue;
|
|
8
|
+
constructor();
|
|
9
|
+
abstract defineHandlers(): Array<Type<EventHandlerBase>>;
|
|
10
|
+
get eventQueue(): EventQueue[];
|
|
11
|
+
clearQueue(): void;
|
|
12
|
+
addEvent(event: EventClass<TEntity>): void;
|
|
13
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EventJob = void 0;
|
|
4
|
+
const event_queue_1 = require("./event-queue");
|
|
5
|
+
const node_crypto_1 = require("node:crypto");
|
|
6
|
+
class EventJob {
|
|
7
|
+
_id = (0, node_crypto_1.randomUUID)();
|
|
8
|
+
_eventQueue = [];
|
|
9
|
+
constructor() { }
|
|
10
|
+
get eventQueue() {
|
|
11
|
+
return this._eventQueue;
|
|
12
|
+
}
|
|
13
|
+
clearQueue() {
|
|
14
|
+
this._eventQueue = [];
|
|
15
|
+
}
|
|
16
|
+
addEvent(event) {
|
|
17
|
+
this.eventQueue.push(event);
|
|
18
|
+
event_queue_1.EventQueue.markAggregateForDispatch(this);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.EventJob = EventJob;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { IComparableId } from '../../../core/utils/interfaces/icomparable';
|
|
2
|
+
import { EventJob } from './event-job';
|
|
3
|
+
type EventJobCallback = (event: any) => void;
|
|
4
|
+
export declare class EventQueue {
|
|
5
|
+
private static handlersMap;
|
|
6
|
+
private static markedAggregates;
|
|
7
|
+
static markAggregateForDispatch(aggregate: EventJob<any>): void;
|
|
8
|
+
static dispatchEventsForAggregate(id: IComparableId): void;
|
|
9
|
+
static register(callback: EventJobCallback, handlerClassName: string, eventClassName: string): void;
|
|
10
|
+
static clearHandlers(): void;
|
|
11
|
+
static clearMarkedAggregates(): void;
|
|
12
|
+
private static dispatchAggregateEvents;
|
|
13
|
+
private static removeAggregateFromMarkedDispatchList;
|
|
14
|
+
private static findMarkedAggregateByID;
|
|
15
|
+
private static dispatch;
|
|
16
|
+
}
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EventQueue = void 0;
|
|
4
|
+
class EventQueue {
|
|
5
|
+
static handlersMap = {};
|
|
6
|
+
static markedAggregates = [];
|
|
7
|
+
static markAggregateForDispatch(aggregate) {
|
|
8
|
+
const aggregateFound = !!this.findMarkedAggregateByID(aggregate._id);
|
|
9
|
+
if (!aggregateFound) {
|
|
10
|
+
this.markedAggregates.push(aggregate);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
static dispatchEventsForAggregate(id) {
|
|
14
|
+
const aggregate = this.findMarkedAggregateByID(id);
|
|
15
|
+
if (aggregate) {
|
|
16
|
+
this.dispatchAggregateEvents(aggregate);
|
|
17
|
+
aggregate.clearQueue();
|
|
18
|
+
this.removeAggregateFromMarkedDispatchList(aggregate);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
static register(callback, handlerClassName, eventClassName) {
|
|
22
|
+
const wasEventRegisteredBefore = handlerClassName in this.handlersMap;
|
|
23
|
+
if (!wasEventRegisteredBefore) {
|
|
24
|
+
this.handlersMap[handlerClassName] = [];
|
|
25
|
+
}
|
|
26
|
+
this.handlersMap[handlerClassName].push({
|
|
27
|
+
eventClassName,
|
|
28
|
+
callback,
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
static clearHandlers() {
|
|
32
|
+
this.handlersMap = {};
|
|
33
|
+
}
|
|
34
|
+
static clearMarkedAggregates() {
|
|
35
|
+
this.markedAggregates = [];
|
|
36
|
+
}
|
|
37
|
+
static dispatchAggregateEvents(aggregate) {
|
|
38
|
+
aggregate.eventQueue.forEach((event) => this.dispatch(event));
|
|
39
|
+
}
|
|
40
|
+
static removeAggregateFromMarkedDispatchList(aggregate) {
|
|
41
|
+
const index = this.markedAggregates.findIndex((a) => a._id === aggregate._id);
|
|
42
|
+
this.markedAggregates.splice(index, 1);
|
|
43
|
+
}
|
|
44
|
+
static findMarkedAggregateByID(id) {
|
|
45
|
+
return this.markedAggregates.find((aggregate) => aggregate._id === id);
|
|
46
|
+
}
|
|
47
|
+
static dispatch(event) {
|
|
48
|
+
const eventJobHandlers = this.markedAggregates.find((a) => a.eventQueue.find((e) => e === event));
|
|
49
|
+
const eventHandler = Object.keys(this.handlersMap).find((handlerName) => eventJobHandlers
|
|
50
|
+
?.defineHandlers()
|
|
51
|
+
.find((handler) => handler.name === handlerName &&
|
|
52
|
+
this.handlersMap[handler.name].some((job) => job.eventClassName === event.constructor.name)));
|
|
53
|
+
const isEventRegistered = !!eventHandler;
|
|
54
|
+
if (isEventRegistered) {
|
|
55
|
+
const jobs = this.handlersMap[eventHandler];
|
|
56
|
+
for (const job of jobs) {
|
|
57
|
+
job.callback(event);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
exports.EventQueue = EventQueue;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Controller = Controller;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
6
|
+
function Controller(config) {
|
|
7
|
+
return function (target) {
|
|
8
|
+
(0, common_1.Controller)(config.group)(target);
|
|
9
|
+
(0, swagger_1.ApiTags)(config.tag)(target);
|
|
10
|
+
};
|
|
11
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { IComparableId } from '../../core/utils/interfaces/icomparable';
|
|
2
|
+
export declare abstract class CreatedRegistreResponseBase<TId = IComparableId> {
|
|
3
|
+
id: TId;
|
|
4
|
+
}
|
|
5
|
+
export declare abstract class CreatedRegistreWithUUIDResponse extends CreatedRegistreResponseBase<string> {
|
|
6
|
+
id: string;
|
|
7
|
+
}
|
|
8
|
+
export declare abstract class CreatedRegistreWithIdResponse extends CreatedRegistreResponseBase<number> {
|
|
9
|
+
id: number;
|
|
10
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
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.CreatedRegistreWithIdResponse = exports.CreatedRegistreWithUUIDResponse = exports.CreatedRegistreResponseBase = void 0;
|
|
13
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
14
|
+
class CreatedRegistreResponseBase {
|
|
15
|
+
id;
|
|
16
|
+
}
|
|
17
|
+
exports.CreatedRegistreResponseBase = CreatedRegistreResponseBase;
|
|
18
|
+
__decorate([
|
|
19
|
+
(0, swagger_1.ApiProperty)(),
|
|
20
|
+
__metadata("design:type", Object)
|
|
21
|
+
], CreatedRegistreResponseBase.prototype, "id", void 0);
|
|
22
|
+
class CreatedRegistreWithUUIDResponse extends CreatedRegistreResponseBase {
|
|
23
|
+
}
|
|
24
|
+
exports.CreatedRegistreWithUUIDResponse = CreatedRegistreWithUUIDResponse;
|
|
25
|
+
__decorate([
|
|
26
|
+
(0, swagger_1.ApiProperty)({ type: 'string', format: 'uuid' }),
|
|
27
|
+
__metadata("design:type", String)
|
|
28
|
+
], CreatedRegistreWithUUIDResponse.prototype, "id", void 0);
|
|
29
|
+
class CreatedRegistreWithIdResponse extends CreatedRegistreResponseBase {
|
|
30
|
+
}
|
|
31
|
+
exports.CreatedRegistreWithIdResponse = CreatedRegistreWithIdResponse;
|
|
32
|
+
__decorate([
|
|
33
|
+
(0, swagger_1.ApiProperty)({ type: 'integer', format: 'int32' }),
|
|
34
|
+
__metadata("design:type", Number)
|
|
35
|
+
], CreatedRegistreWithIdResponse.prototype, "id", void 0);
|
|
@@ -0,0 +1,21 @@
|
|
|
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.ListResponseBase = void 0;
|
|
13
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
14
|
+
class ListResponseBase {
|
|
15
|
+
count;
|
|
16
|
+
}
|
|
17
|
+
exports.ListResponseBase = ListResponseBase;
|
|
18
|
+
__decorate([
|
|
19
|
+
(0, swagger_1.ApiProperty)(),
|
|
20
|
+
__metadata("design:type", Number)
|
|
21
|
+
], ListResponseBase.prototype, "count", void 0);
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { QueryDirectionType } from '..';
|
|
2
|
+
export type PaginatedRequestProps<T extends PaginationRequest> = Omit<{
|
|
3
|
+
[K in keyof T as T[K] extends Function ? never : K]: T[K];
|
|
4
|
+
}, '_id'>;
|
|
5
|
+
export declare class PaginationRequest {
|
|
6
|
+
page?: number;
|
|
7
|
+
limit?: number;
|
|
8
|
+
orderBy?: string;
|
|
9
|
+
direction?: QueryDirectionType;
|
|
10
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
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.PaginationRequest = void 0;
|
|
13
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
14
|
+
const auto_mapping_decorator_1 = require("../mapping/auto-mapping.decorator");
|
|
15
|
+
const query_params_1 = require("../constants/query-params");
|
|
16
|
+
class PaginationRequest {
|
|
17
|
+
page = query_params_1.QUERY_FILTER_PARAMS.page;
|
|
18
|
+
limit = query_params_1.QUERY_FILTER_PARAMS.limit;
|
|
19
|
+
orderBy;
|
|
20
|
+
direction = query_params_1.QUERY_FILTER_PARAMS.direction;
|
|
21
|
+
}
|
|
22
|
+
exports.PaginationRequest = PaginationRequest;
|
|
23
|
+
__decorate([
|
|
24
|
+
(0, swagger_1.ApiProperty)({
|
|
25
|
+
required: false,
|
|
26
|
+
format: 'int32',
|
|
27
|
+
default: query_params_1.QUERY_FILTER_PARAMS.page,
|
|
28
|
+
}),
|
|
29
|
+
(0, auto_mapping_decorator_1.AutoMap)(),
|
|
30
|
+
__metadata("design:type", Number)
|
|
31
|
+
], PaginationRequest.prototype, "page", void 0);
|
|
32
|
+
__decorate([
|
|
33
|
+
(0, swagger_1.ApiProperty)({
|
|
34
|
+
required: false,
|
|
35
|
+
format: 'int32',
|
|
36
|
+
default: query_params_1.QUERY_FILTER_PARAMS.limit,
|
|
37
|
+
}),
|
|
38
|
+
(0, auto_mapping_decorator_1.AutoMap)(),
|
|
39
|
+
__metadata("design:type", Number)
|
|
40
|
+
], PaginationRequest.prototype, "limit", void 0);
|
|
41
|
+
__decorate([
|
|
42
|
+
(0, swagger_1.ApiProperty)({
|
|
43
|
+
required: false,
|
|
44
|
+
}),
|
|
45
|
+
(0, auto_mapping_decorator_1.AutoMap)(),
|
|
46
|
+
__metadata("design:type", String)
|
|
47
|
+
], PaginationRequest.prototype, "orderBy", void 0);
|
|
48
|
+
__decorate([
|
|
49
|
+
(0, swagger_1.ApiProperty)({
|
|
50
|
+
required: false,
|
|
51
|
+
enum: ['asc', 'desc'],
|
|
52
|
+
default: query_params_1.QUERY_FILTER_PARAMS.direction,
|
|
53
|
+
}),
|
|
54
|
+
(0, auto_mapping_decorator_1.AutoMap)(),
|
|
55
|
+
__metadata("design:type", String)
|
|
56
|
+
], PaginationRequest.prototype, "direction", void 0);
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RouterConfigBase = void 0;
|
|
4
|
+
class RouterConfigBase {
|
|
5
|
+
_tag;
|
|
6
|
+
_group;
|
|
7
|
+
constructor(_tag, _group) {
|
|
8
|
+
this._tag = _tag;
|
|
9
|
+
this._group = _group;
|
|
10
|
+
}
|
|
11
|
+
get group() {
|
|
12
|
+
return this._group;
|
|
13
|
+
}
|
|
14
|
+
get tag() {
|
|
15
|
+
return this._tag;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.RouterConfigBase = RouterConfigBase;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.booleanSchema = booleanSchema;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
function booleanSchema() {
|
|
6
|
+
return zod_1.z.coerce.string().transform((value) => {
|
|
7
|
+
if (value !== undefined) {
|
|
8
|
+
return value === 'true';
|
|
9
|
+
}
|
|
10
|
+
return undefined;
|
|
11
|
+
});
|
|
12
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function documentNumberSchema(value: string): boolean;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.documentNumberSchema = documentNumberSchema;
|
|
4
|
+
const KlString_1 = require("@koalarx/utils/KlString");
|
|
5
|
+
function documentNumberSchema(value) {
|
|
6
|
+
if (value !== '' && value !== 'undefined' && value !== 'null') {
|
|
7
|
+
if (value.includes('.')) {
|
|
8
|
+
if (value.length === 14) {
|
|
9
|
+
return (0, KlString_1.validateCpf)(value);
|
|
10
|
+
}
|
|
11
|
+
else if (value.length === 18) {
|
|
12
|
+
return (0, KlString_1.validateCnpj)(value);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
if (value.length === 11) {
|
|
17
|
+
return (0, KlString_1.validateCpf)(value);
|
|
18
|
+
}
|
|
19
|
+
else if (value.length === 14) {
|
|
20
|
+
return (0, KlString_1.validateCnpj)(value);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
return true;
|
|
26
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function emailSchema(email?: string, isRequired?: boolean): string | boolean;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.emailSchema = emailSchema;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
function emailSchema(email, isRequired = false) {
|
|
6
|
+
if (isRequired && !email) {
|
|
7
|
+
return false;
|
|
8
|
+
}
|
|
9
|
+
if (!email) {
|
|
10
|
+
return true;
|
|
11
|
+
}
|
|
12
|
+
return zod_1.z.coerce.string().max(50).email().parse(email);
|
|
13
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const LIST_QUERY_SCHEMA: z.ZodObject<{
|
|
3
|
+
page: z.ZodOptional<z.ZodEffects<z.ZodNumber, number, number>>;
|
|
4
|
+
limit: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
|
|
5
|
+
orderBy: z.ZodOptional<z.ZodString>;
|
|
6
|
+
direction: z.ZodOptional<z.ZodDefault<z.ZodEnum<["asc", "desc"]>>>;
|
|
7
|
+
}, "strip", z.ZodTypeAny, {
|
|
8
|
+
page?: number | undefined;
|
|
9
|
+
limit?: number | undefined;
|
|
10
|
+
orderBy?: string | undefined;
|
|
11
|
+
direction?: "asc" | "desc" | undefined;
|
|
12
|
+
}, {
|
|
13
|
+
page?: number | undefined;
|
|
14
|
+
limit?: number | undefined;
|
|
15
|
+
orderBy?: string | undefined;
|
|
16
|
+
direction?: "asc" | "desc" | undefined;
|
|
17
|
+
}>;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LIST_QUERY_SCHEMA = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const query_params_1 = require("../../constants/query-params");
|
|
6
|
+
exports.LIST_QUERY_SCHEMA = zod_1.z.object({
|
|
7
|
+
page: zod_1.z.coerce
|
|
8
|
+
.number()
|
|
9
|
+
.transform((value) => {
|
|
10
|
+
if (value) {
|
|
11
|
+
return value - 1;
|
|
12
|
+
}
|
|
13
|
+
return query_params_1.QUERY_FILTER_PARAMS.page;
|
|
14
|
+
})
|
|
15
|
+
.optional(),
|
|
16
|
+
limit: zod_1.z.coerce.number().default(query_params_1.QUERY_FILTER_PARAMS.limit).optional(),
|
|
17
|
+
orderBy: zod_1.z.string().optional(),
|
|
18
|
+
direction: zod_1.z.enum(['asc', 'desc']).default('asc').optional(),
|
|
19
|
+
});
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
interface NativeEnumInterface<TEnum> {
|
|
3
|
+
isOptional: (value: string) => TEnum[keyof TEnum] | undefined;
|
|
4
|
+
isRequired: (value: string) => TEnum[keyof TEnum];
|
|
5
|
+
}
|
|
6
|
+
export declare function nativeEnumSchema<TEnum extends z.EnumLike>(nativeEnum: TEnum): NativeEnumInterface<TEnum>;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.nativeEnumSchema = nativeEnumSchema;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
function nativeEnumSchema(nativeEnum) {
|
|
6
|
+
return {
|
|
7
|
+
isOptional: (value) => {
|
|
8
|
+
if (value === 'null' || value === '') {
|
|
9
|
+
return undefined;
|
|
10
|
+
}
|
|
11
|
+
return zod_1.z.coerce
|
|
12
|
+
.number()
|
|
13
|
+
.transform((value) => {
|
|
14
|
+
if (value !== undefined) {
|
|
15
|
+
return zod_1.z.nativeEnum(nativeEnum).parse(value);
|
|
16
|
+
}
|
|
17
|
+
return undefined;
|
|
18
|
+
})
|
|
19
|
+
.parse(value);
|
|
20
|
+
},
|
|
21
|
+
isRequired: (value) => {
|
|
22
|
+
return zod_1.z.coerce
|
|
23
|
+
.number()
|
|
24
|
+
.transform((value) => zod_1.z.nativeEnum(nativeEnum).parse(value))
|
|
25
|
+
.parse(value);
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
}
|
|
@@ -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 utils_1 = require("@koalarx/utils");
|
|
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, utils_1.maskCpf)(documentWithoutMask)
|
|
12
|
+
: (0, utils_1.maskCnpj)(documentWithoutMask);
|
|
13
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Overwrite } from '..';
|
|
2
|
+
import { IComparable, IComparableId } from '../utils/interfaces/icomparable';
|
|
3
|
+
export declare enum EntityActionType {
|
|
4
|
+
create = 1,
|
|
5
|
+
update = 2
|
|
6
|
+
}
|
|
7
|
+
export type EntityProps<T extends IComparable<T>> = Overwrite<Omit<{
|
|
8
|
+
[K in keyof T as T[K] extends Function ? never : K]: T[K];
|
|
9
|
+
}, '_id' | '_action'>, {
|
|
10
|
+
id?: T extends {
|
|
11
|
+
id: infer U;
|
|
12
|
+
} ? U : never;
|
|
13
|
+
}>;
|
|
14
|
+
export declare abstract class EntityBase<T extends IComparable<T>> implements IComparable<T> {
|
|
15
|
+
_id: IComparableId;
|
|
16
|
+
_action: EntityActionType;
|
|
17
|
+
constructor(props?: EntityProps<T>);
|
|
18
|
+
automap(props?: EntityProps<T>): void;
|
|
19
|
+
equals(obj: EntityBase<T>): boolean;
|
|
20
|
+
}
|