@synapseagency/shared-kernel 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. package/index.d.ts +1 -0
  2. package/index.js +5 -0
  3. package/index.js.map +1 -0
  4. package/package.json +27 -0
  5. package/src/index.d.ts +3 -0
  6. package/src/index.js +7 -0
  7. package/src/index.js.map +1 -0
  8. package/src/lib/application/application.service.d.ts +11 -0
  9. package/src/lib/application/application.service.js +50 -0
  10. package/src/lib/application/application.service.js.map +1 -0
  11. package/src/lib/application/authenticated-actor.type.d.ts +5 -0
  12. package/src/lib/application/authenticated-actor.type.js +3 -0
  13. package/src/lib/application/authenticated-actor.type.js.map +1 -0
  14. package/src/lib/application/cqrs/index.d.ts +1 -0
  15. package/src/lib/application/cqrs/index.js +5 -0
  16. package/src/lib/application/cqrs/index.js.map +1 -0
  17. package/src/lib/application/cqrs/query/index.d.ts +5 -0
  18. package/src/lib/application/cqrs/query/index.js +9 -0
  19. package/src/lib/application/cqrs/query/index.js.map +1 -0
  20. package/src/lib/application/cqrs/query/pagination-output.d.ts +11 -0
  21. package/src/lib/application/cqrs/query/pagination-output.js +16 -0
  22. package/src/lib/application/cqrs/query/pagination-output.js.map +1 -0
  23. package/src/lib/application/cqrs/query/query.interface.d.ts +9 -0
  24. package/src/lib/application/cqrs/query/query.interface.js +3 -0
  25. package/src/lib/application/cqrs/query/query.interface.js.map +1 -0
  26. package/src/lib/application/cqrs/query/search-input.d.ts +8 -0
  27. package/src/lib/application/cqrs/query/search-input.js +3 -0
  28. package/src/lib/application/cqrs/query/search-input.js.map +1 -0
  29. package/src/lib/application/cqrs/query/search-params.d.ts +25 -0
  30. package/src/lib/application/cqrs/query/search-params.js +82 -0
  31. package/src/lib/application/cqrs/query/search-params.js.map +1 -0
  32. package/src/lib/application/cqrs/query/search-result.d.ts +22 -0
  33. package/src/lib/application/cqrs/query/search-result.js +28 -0
  34. package/src/lib/application/cqrs/query/search-result.js.map +1 -0
  35. package/src/lib/application/domain-event-handler.interface.d.ts +7 -0
  36. package/src/lib/application/domain-event-handler.interface.js +3 -0
  37. package/src/lib/application/domain-event-handler.interface.js.map +1 -0
  38. package/src/lib/application/email.gateway.interface.d.ts +3 -0
  39. package/src/lib/application/email.gateway.interface.js +3 -0
  40. package/src/lib/application/email.gateway.interface.js.map +1 -0
  41. package/src/lib/application/file-storage.gateway.interface.d.ts +4 -0
  42. package/src/lib/application/file-storage.gateway.interface.js +3 -0
  43. package/src/lib/application/file-storage.gateway.interface.js.map +1 -0
  44. package/src/lib/application/index.d.ts +9 -0
  45. package/src/lib/application/index.js +13 -0
  46. package/src/lib/application/index.js.map +1 -0
  47. package/src/lib/application/message-broker.interface.d.ts +4 -0
  48. package/src/lib/application/message-broker.interface.js +3 -0
  49. package/src/lib/application/message-broker.interface.js.map +1 -0
  50. package/src/lib/application/tenant.gateway.d.ts +5 -0
  51. package/src/lib/application/tenant.gateway.js +3 -0
  52. package/src/lib/application/tenant.gateway.js.map +1 -0
  53. package/src/lib/application/use-case.interface.d.ts +3 -0
  54. package/src/lib/application/use-case.interface.js +3 -0
  55. package/src/lib/application/use-case.interface.js.map +1 -0
  56. package/src/lib/domain/aggregate-root.d.ts +13 -0
  57. package/src/lib/domain/aggregate-root.js +29 -0
  58. package/src/lib/domain/aggregate-root.js.map +1 -0
  59. package/src/lib/domain/entity.d.ts +7 -0
  60. package/src/lib/domain/entity.js +9 -0
  61. package/src/lib/domain/entity.js.map +1 -0
  62. package/src/lib/domain/errors/already-exists-in.error.d.ts +5 -0
  63. package/src/lib/domain/errors/already-exists-in.error.js +11 -0
  64. package/src/lib/domain/errors/already-exists-in.error.js.map +1 -0
  65. package/src/lib/domain/errors/already-exists.error.d.ts +5 -0
  66. package/src/lib/domain/errors/already-exists.error.js +21 -0
  67. package/src/lib/domain/errors/already-exists.error.js.map +1 -0
  68. package/src/lib/domain/errors/forbidden.error.d.ts +3 -0
  69. package/src/lib/domain/errors/forbidden.error.js +11 -0
  70. package/src/lib/domain/errors/forbidden.error.js.map +1 -0
  71. package/src/lib/domain/errors/index.d.ts +6 -0
  72. package/src/lib/domain/errors/index.js +10 -0
  73. package/src/lib/domain/errors/index.js.map +1 -0
  74. package/src/lib/domain/errors/invalid-argument.error.d.ts +3 -0
  75. package/src/lib/domain/errors/invalid-argument.error.js +11 -0
  76. package/src/lib/domain/errors/invalid-argument.error.js.map +1 -0
  77. package/src/lib/domain/errors/not-found.error.d.ts +5 -0
  78. package/src/lib/domain/errors/not-found.error.js +22 -0
  79. package/src/lib/domain/errors/not-found.error.js.map +1 -0
  80. package/src/lib/domain/errors/permision-denied.error.d.ts +6 -0
  81. package/src/lib/domain/errors/permision-denied.error.js +20 -0
  82. package/src/lib/domain/errors/permision-denied.error.js.map +1 -0
  83. package/src/lib/domain/events/domain-event-mediator.d.ts +11 -0
  84. package/src/lib/domain/events/domain-event-mediator.js +52 -0
  85. package/src/lib/domain/events/domain-event-mediator.js.map +1 -0
  86. package/src/lib/domain/events/domain-event.interface.d.ts +13 -0
  87. package/src/lib/domain/events/domain-event.interface.js +3 -0
  88. package/src/lib/domain/events/domain-event.interface.js.map +1 -0
  89. package/src/lib/domain/events/gateways/event.gateway.d.ts +3 -0
  90. package/src/lib/domain/events/gateways/event.gateway.js +3 -0
  91. package/src/lib/domain/events/gateways/event.gateway.js.map +1 -0
  92. package/src/lib/domain/events/gateways/index.d.ts +1 -0
  93. package/src/lib/domain/events/gateways/index.js +5 -0
  94. package/src/lib/domain/events/gateways/index.js.map +1 -0
  95. package/src/lib/domain/events/index.d.ts +3 -0
  96. package/src/lib/domain/events/index.js +7 -0
  97. package/src/lib/domain/events/index.js.map +1 -0
  98. package/src/lib/domain/index.d.ts +9 -0
  99. package/src/lib/domain/index.js +13 -0
  100. package/src/lib/domain/index.js.map +1 -0
  101. package/src/lib/domain/plate-validator.d.ts +7 -0
  102. package/src/lib/domain/plate-validator.js +35 -0
  103. package/src/lib/domain/plate-validator.js.map +1 -0
  104. package/src/lib/domain/repository/index.d.ts +1 -0
  105. package/src/lib/domain/repository/index.js +5 -0
  106. package/src/lib/domain/repository/index.js.map +1 -0
  107. package/src/lib/domain/repository/repository-interface.d.ts +16 -0
  108. package/src/lib/domain/repository/repository-interface.js +3 -0
  109. package/src/lib/domain/repository/repository-interface.js.map +1 -0
  110. package/src/lib/domain/unit-of-work.interface.d.ts +9 -0
  111. package/src/lib/domain/unit-of-work.interface.js +3 -0
  112. package/src/lib/domain/unit-of-work.interface.js.map +1 -0
  113. package/src/lib/domain/validators/class-validator-fields.d.ts +5 -0
  114. package/src/lib/domain/validators/class-validator-fields.js +24 -0
  115. package/src/lib/domain/validators/class-validator-fields.js.map +1 -0
  116. package/src/lib/domain/validators/index.d.ts +6 -0
  117. package/src/lib/domain/validators/index.js +11 -0
  118. package/src/lib/domain/validators/index.js.map +1 -0
  119. package/src/lib/domain/validators/notification.d.ts +10 -0
  120. package/src/lib/domain/validators/notification.js +54 -0
  121. package/src/lib/domain/validators/notification.js.map +1 -0
  122. package/src/lib/domain/validators/validation.error.d.ts +19 -0
  123. package/src/lib/domain/validators/validation.error.js +43 -0
  124. package/src/lib/domain/validators/validation.error.js.map +1 -0
  125. package/src/lib/domain/validators/validator-fields-interface.d.ts +7 -0
  126. package/src/lib/domain/validators/validator-fields-interface.js +3 -0
  127. package/src/lib/domain/validators/validator-fields-interface.js.map +1 -0
  128. package/src/lib/domain/validators/validator-rules.d.ts +12 -0
  129. package/src/lib/domain/validators/validator-rules.js +46 -0
  130. package/src/lib/domain/validators/validator-rules.js.map +1 -0
  131. package/src/lib/domain/validators/zod-fields.d.ts +8 -0
  132. package/src/lib/domain/validators/zod-fields.js +53 -0
  133. package/src/lib/domain/validators/zod-fields.js.map +1 -0
  134. package/src/lib/domain/value-object.d.ts +3 -0
  135. package/src/lib/domain/value-object.js +17 -0
  136. package/src/lib/domain/value-object.js.map +1 -0
  137. package/src/lib/domain/value-objects/cnpj.vo.d.ts +21 -0
  138. package/src/lib/domain/value-objects/cnpj.vo.js +86 -0
  139. package/src/lib/domain/value-objects/cnpj.vo.js.map +1 -0
  140. package/src/lib/domain/value-objects/cpf.vo.d.ts +21 -0
  141. package/src/lib/domain/value-objects/cpf.vo.js +86 -0
  142. package/src/lib/domain/value-objects/cpf.vo.js.map +1 -0
  143. package/src/lib/domain/value-objects/helpers/as-array.helper.d.ts +2 -0
  144. package/src/lib/domain/value-objects/helpers/as-array.helper.js +13 -0
  145. package/src/lib/domain/value-objects/helpers/as-array.helper.js.map +1 -0
  146. package/src/lib/domain/value-objects/helpers/index.d.ts +1 -0
  147. package/src/lib/domain/value-objects/helpers/index.js +5 -0
  148. package/src/lib/domain/value-objects/helpers/index.js.map +1 -0
  149. package/src/lib/domain/value-objects/index.d.ts +5 -0
  150. package/src/lib/domain/value-objects/index.js +9 -0
  151. package/src/lib/domain/value-objects/index.js.map +1 -0
  152. package/src/lib/domain/value-objects/tenant-id.vo.d.ts +3 -0
  153. package/src/lib/domain/value-objects/tenant-id.vo.js +8 -0
  154. package/src/lib/domain/value-objects/tenant-id.vo.js.map +1 -0
  155. package/src/lib/domain/value-objects/uuid.vo.d.ts +10 -0
  156. package/src/lib/domain/value-objects/uuid.vo.js +31 -0
  157. package/src/lib/domain/value-objects/uuid.vo.js.map +1 -0
  158. package/src/lib/infra/db/in-memory/in-memory.repository.d.ts +18 -0
  159. package/src/lib/infra/db/in-memory/in-memory.repository.js +69 -0
  160. package/src/lib/infra/db/in-memory/in-memory.repository.js.map +1 -0
  161. package/src/lib/infra/db/in-memory/index.d.ts +1 -0
  162. package/src/lib/infra/db/in-memory/index.js +5 -0
  163. package/src/lib/infra/db/in-memory/index.js.map +1 -0
package/index.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from './src/index';
package/index.js ADDED
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./src/index"), exports);
5
+ //# sourceMappingURL=index.js.map
package/index.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../libs/shared-kernel/index.ts"],"names":[],"mappings":";;;AAAA,sDAA2B"}
package/package.json ADDED
@@ -0,0 +1,27 @@
1
+ {
2
+ "name": "@synapseagency/shared-kernel",
3
+ "version": "0.0.1",
4
+ "type": "commonjs",
5
+ "main": "./index.js",
6
+ "types": "./index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./index.d.ts",
10
+ "default": "./index.js"
11
+ }
12
+ },
13
+ "publishConfig": {
14
+ "access": "public",
15
+ "registry": "https://registry.npmjs.org/"
16
+ },
17
+ "dependencies": {
18
+ "class-validator": "^0.14.2",
19
+ "eventemitter2": "^6.4.9",
20
+ "fp-ts": "^2.16.11",
21
+ "joi": "^17.13.3",
22
+ "lodash": "^4.17.21",
23
+ "tslib": "^2.3.0",
24
+ "uuid": "^11.1.0",
25
+ "zod": "^4.1.12"
26
+ }
27
+ }
package/src/index.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ export * from './lib/application';
2
+ export * from './lib/domain';
3
+ export * from './lib/infra/db/in-memory';
package/src/index.js ADDED
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./lib/application"), exports);
5
+ tslib_1.__exportStar(require("./lib/domain"), exports);
6
+ tslib_1.__exportStar(require("./lib/infra/db/in-memory"), exports);
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/shared-kernel/src/index.ts"],"names":[],"mappings":";;;AAAA,4DAAiC;AACjC,uDAA4B;AAC5B,mEAAwC"}
@@ -0,0 +1,11 @@
1
+ import { DomainEventMediator } from '../domain/events/domain-event-mediator';
2
+ import { IUnitOfWork } from '../domain';
3
+ export declare class ApplicationService {
4
+ private domainEventMediator;
5
+ private uow;
6
+ constructor(domainEventMediator: DomainEventMediator, uow: IUnitOfWork);
7
+ finish(): Promise<void>;
8
+ fail(): Promise<void>;
9
+ run<T>(callback?: () => Promise<T>): Promise<T | undefined>;
10
+ getUnitOfWork(): IUnitOfWork;
11
+ }
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ApplicationService = void 0;
4
+ class ApplicationService {
5
+ domainEventMediator;
6
+ uow;
7
+ constructor(domainEventMediator, uow) {
8
+ this.domainEventMediator = domainEventMediator;
9
+ this.uow = uow;
10
+ }
11
+ async finish() {
12
+ const aggregateRoots = [...this.uow.getAggregateRoots()];
13
+ // IMPORTANTE: Fazer commit ANTES de publicar domain events
14
+ // Isso garante que os dados estejam persistidos quando os handlers
15
+ // processarem os eventos, evitando race conditions onde handlers
16
+ // tentam buscar dados que ainda não foram commitados
17
+ await this.uow.commit();
18
+ // IMPORTANTE: A ordem dos aggregates é preservada (Set mantém ordem de inserção em ES6+)
19
+ // Isso garante que eventos sejam publicados na ordem correta
20
+ // Exemplo: fueling-session-cancelled deve ser publicado ANTES de fueling-session-created
21
+ for (const aggregateRoot of aggregateRoots) {
22
+ await this.domainEventMediator.publish(aggregateRoot);
23
+ }
24
+ for (const aggregateRoot of aggregateRoots) {
25
+ await this.domainEventMediator.publishIntegrationEvents(aggregateRoot);
26
+ }
27
+ this.uow.clearAggregateRoots();
28
+ }
29
+ async fail() {
30
+ await this.uow.rollback();
31
+ }
32
+ async run(callback) {
33
+ let result;
34
+ try {
35
+ await this.uow.begin();
36
+ result = callback ? await callback() : undefined;
37
+ }
38
+ catch (error) {
39
+ await this.fail();
40
+ throw error;
41
+ }
42
+ await this.finish();
43
+ return result;
44
+ }
45
+ getUnitOfWork() {
46
+ return this.uow;
47
+ }
48
+ }
49
+ exports.ApplicationService = ApplicationService;
50
+ //# sourceMappingURL=application.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"application.service.js","sourceRoot":"","sources":["../../../../../../libs/shared-kernel/src/lib/application/application.service.ts"],"names":[],"mappings":";;;AAGA,MAAa,kBAAkB;IAEnB;IACA;IAFV,YACU,mBAAwC,EACxC,GAAgB;QADhB,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,QAAG,GAAH,GAAG,CAAa;IACvB,CAAC;IAEJ,KAAK,CAAC,MAAM;QACV,MAAM,cAAc,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAA;QAExD,2DAA2D;QAC3D,mEAAmE;QACnE,iEAAiE;QACjE,qDAAqD;QACrD,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAA;QAEvB,yFAAyF;QACzF,6DAA6D;QAC7D,yFAAyF;QACzF,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;YAC3C,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;QACvD,CAAC;QAED,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;YAC3C,MAAM,IAAI,CAAC,mBAAmB,CAAC,wBAAwB,CAAC,aAAa,CAAC,CAAA;QACxE,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAA;IAChC,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;IAC3B,CAAC;IAED,KAAK,CAAC,GAAG,CAAI,QAA2B;QACtC,IAAI,MAAqB,CAAA;QAEzB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAA;YACtB,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;QAClD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;YACjB,MAAM,KAAK,CAAA;QACb,CAAC;QAED,MAAM,IAAI,CAAC,MAAM,EAAE,CAAA;QAEnB,OAAO,MAAM,CAAA;IACf,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,GAAG,CAAA;IACjB,CAAC;CACF;AApDD,gDAoDC"}
@@ -0,0 +1,5 @@
1
+ export type AuthenticatedActor = {
2
+ role?: string | null;
3
+ companyId?: string | null;
4
+ tenantId?: string | null;
5
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=authenticated-actor.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authenticated-actor.type.js","sourceRoot":"","sources":["../../../../../../libs/shared-kernel/src/lib/application/authenticated-actor.type.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ export * from './query';
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./query"), exports);
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../libs/shared-kernel/src/lib/application/cqrs/index.ts"],"names":[],"mappings":";;;AAAA,kDAAuB"}
@@ -0,0 +1,5 @@
1
+ export * from './pagination-output';
2
+ export * from './query.interface';
3
+ export * from './search-result';
4
+ export * from './search-params';
5
+ export * from './search-input';
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./pagination-output"), exports);
5
+ tslib_1.__exportStar(require("./query.interface"), exports);
6
+ tslib_1.__exportStar(require("./search-result"), exports);
7
+ tslib_1.__exportStar(require("./search-params"), exports);
8
+ tslib_1.__exportStar(require("./search-input"), exports);
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../libs/shared-kernel/src/lib/application/cqrs/query/index.ts"],"names":[],"mappings":";;;AAAA,8DAAmC;AACnC,4DAAiC;AACjC,0DAA+B;AAC/B,0DAA+B;AAC/B,yDAA8B"}
@@ -0,0 +1,11 @@
1
+ import { SearchResult } from '../..';
2
+ export type PaginationOutput<Item = any> = {
3
+ items: Item[];
4
+ total: number;
5
+ current_page: number;
6
+ last_page: number;
7
+ per_page: number;
8
+ };
9
+ export declare class PaginationOutputMapper {
10
+ static toOutput<I = any[]>(items: I[], props: Omit<SearchResult<I>, 'items'>): PaginationOutput<I>;
11
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PaginationOutputMapper = void 0;
4
+ class PaginationOutputMapper {
5
+ static toOutput(items, props) {
6
+ return {
7
+ items,
8
+ total: props.total,
9
+ current_page: props.current_page,
10
+ last_page: props.last_page,
11
+ per_page: props.per_page
12
+ };
13
+ }
14
+ }
15
+ exports.PaginationOutputMapper = PaginationOutputMapper;
16
+ //# sourceMappingURL=pagination-output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination-output.js","sourceRoot":"","sources":["../../../../../../../../libs/shared-kernel/src/lib/application/cqrs/query/pagination-output.ts"],"names":[],"mappings":";;;AAUA,MAAa,sBAAsB;IACjC,MAAM,CAAC,QAAQ,CACb,KAAU,EACV,KAAqC;QAErC,OAAO;YACL,KAAK;YACL,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ;SACzB,CAAA;IACH,CAAC;CACF;AAbD,wDAaC"}
@@ -0,0 +1,9 @@
1
+ import { SearchParams } from './search-params';
2
+ import { SearchResult } from './search-result';
3
+ export interface ISearchableQuery<I, Filter = string, SearchInput = SearchParams<Filter>, SearchOutput = SearchResult<I>> {
4
+ sortableFields: string[];
5
+ search(props: SearchInput): Promise<SearchOutput>;
6
+ }
7
+ export interface IQuery<I, O> {
8
+ get(props: I): Promise<O>;
9
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=query.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.interface.js","sourceRoot":"","sources":["../../../../../../../../libs/shared-kernel/src/lib/application/cqrs/query/query.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import { SortDirection } from './search-params';
2
+ export type SearchInput<Filter = string> = {
3
+ page?: number;
4
+ per_page?: number;
5
+ sort?: string | null;
6
+ sort_dir?: SortDirection | null;
7
+ filter?: Filter | null;
8
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=search-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-input.js","sourceRoot":"","sources":["../../../../../../../../libs/shared-kernel/src/lib/application/cqrs/query/search-input.ts"],"names":[],"mappings":""}
@@ -0,0 +1,25 @@
1
+ export type SortDirection = 'asc' | 'desc';
2
+ export type SearchParamsConstructorProps<Filter> = {
3
+ page?: number;
4
+ per_page?: number;
5
+ sort?: string | null;
6
+ sort_dir?: SortDirection | null;
7
+ filter?: Filter | null;
8
+ };
9
+ export declare class SearchParams<Filter = string> {
10
+ protected _page: number;
11
+ protected _per_page: number;
12
+ protected _sort: string | null;
13
+ protected _sort_dir: SortDirection | null;
14
+ protected _filter: Filter | null;
15
+ constructor(props?: SearchParamsConstructorProps<Filter>);
16
+ get page(): number | undefined;
17
+ private set page(value);
18
+ get per_page(): number | undefined;
19
+ private set per_page(value);
20
+ get sort(): string | null;
21
+ private set sort(value);
22
+ get sort_dir(): SortDirection | null;
23
+ private set sort_dir(value);
24
+ get filter(): Filter | null;
25
+ }
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SearchParams = void 0;
4
+ class Maybe {
5
+ value;
6
+ constructor(value) {
7
+ this.value = value;
8
+ }
9
+ static of(value) {
10
+ return new Maybe(value);
11
+ }
12
+ map(fn) {
13
+ if (this.value === null || this.value === undefined) {
14
+ return Maybe.of(null);
15
+ }
16
+ return Maybe.of(fn(this.value));
17
+ }
18
+ getOrElse(defaultValue) {
19
+ return this.value === null || this.value === undefined
20
+ ? defaultValue
21
+ : this.value;
22
+ }
23
+ }
24
+ class SearchParams {
25
+ _page = 1;
26
+ _per_page = 15;
27
+ _sort = null;
28
+ _sort_dir = null;
29
+ _filter = null;
30
+ constructor(props = {}) {
31
+ this.page = props.page ?? undefined;
32
+ this.per_page = props.per_page ?? undefined;
33
+ this.sort = props.sort ?? null;
34
+ this.sort_dir = props.sort_dir ?? null;
35
+ this._filter = props.filter ?? null;
36
+ }
37
+ get page() {
38
+ return this._page;
39
+ }
40
+ set page(value) {
41
+ const _page = Maybe.of(value)
42
+ .map((v) => +v)
43
+ .map((v) => Number.isNaN(v) || v <= 0 || parseInt(v) !== v ? 1 : v)
44
+ .getOrElse(1);
45
+ this._page = _page;
46
+ }
47
+ get per_page() {
48
+ return this._per_page;
49
+ }
50
+ set per_page(value) {
51
+ const _per_page = Maybe.of(value)
52
+ .map((v) => (v === true ? this._per_page : +v))
53
+ .map((v) => Number.isNaN(v) || v <= 0 || parseInt(v) !== v
54
+ ? this._per_page
55
+ : v)
56
+ .getOrElse(this._per_page);
57
+ this._per_page = _per_page;
58
+ }
59
+ get sort() {
60
+ return this._sort;
61
+ }
62
+ set sort(value) {
63
+ this._sort = Maybe.of(value)
64
+ .map((v) => (v === null || v === undefined || v === '' ? null : `${v}`))
65
+ .getOrElse(null);
66
+ }
67
+ get sort_dir() {
68
+ return this._sort_dir;
69
+ }
70
+ set sort_dir(value) {
71
+ const dir = Maybe.of(value)
72
+ .map((v) => `${v}`.toLowerCase())
73
+ .map((v) => (v !== 'asc' && v !== 'desc' ? 'asc' : v))
74
+ .getOrElse('asc');
75
+ this._sort_dir = this.sort ? dir : null;
76
+ }
77
+ get filter() {
78
+ return this._filter;
79
+ }
80
+ }
81
+ exports.SearchParams = SearchParams;
82
+ //# sourceMappingURL=search-params.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-params.js","sourceRoot":"","sources":["../../../../../../../../libs/shared-kernel/src/lib/application/cqrs/query/search-params.ts"],"names":[],"mappings":";;;AASA,MAAM,KAAK;IACW;IAApB,YAAoB,KAA2B;QAA3B,UAAK,GAAL,KAAK,CAAsB;IAAG,CAAC;IAEnD,MAAM,CAAC,EAAE,CAAI,KAA2B;QACtC,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,CAAA;IACzB,CAAC;IAED,GAAG,CAAI,EAAmB;QACxB,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACpD,OAAO,KAAK,CAAC,EAAE,CAAI,IAAI,CAAC,CAAA;QAC1B,CAAC;QACD,OAAO,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IACjC,CAAC;IAED,SAAS,CAAC,YAAe;QACvB,OAAO,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;YACpD,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,IAAI,CAAC,KAAK,CAAA;IAChB,CAAC;CACF;AAED,MAAa,YAAY;IACb,KAAK,GAAG,CAAC,CAAA;IACT,SAAS,GAAG,EAAE,CAAA;IACd,KAAK,GAAkB,IAAI,CAAA;IAC3B,SAAS,GAAyB,IAAI,CAAA;IACtC,OAAO,GAAkB,IAAI,CAAA;IAEvC,YAAY,QAA8C,EAAE;QAC1D,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,SAAS,CAAA;QACnC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,SAAS,CAAA;QAC3C,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,IAAI,CAAA;QAC9B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAA;QACtC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,MAAM,IAAI,IAAI,CAAA;IACrC,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED,IAAY,IAAI,CAAC,KAAyB;QACxC,MAAM,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC;aAC1B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;aACd,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACT,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,CAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAC9D;aACA,SAAS,CAAC,CAAC,CAAC,CAAA;QACf,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAA;IACvB,CAAC;IAED,IAAY,QAAQ,CAAC,KAAyB;QAC5C,MAAM,SAAS,GAAG,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC;aAC9B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAM,IAAY,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACvD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACT,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,CAAQ,CAAC,KAAK,CAAC;YACnD,CAAC,CAAC,IAAI,CAAC,SAAS;YAChB,CAAC,CAAC,CAAC,CACN;aACA,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAC5B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC5B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED,IAAY,IAAI,CAAC,KAAoB;QACnC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC;aACzB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;aACvE,SAAS,CAAC,IAAI,CAAC,CAAA;IACpB,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAA;IACvB,CAAC;IAED,IAAY,QAAQ,CAAC,KAA2B;QAC9C,MAAM,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC;aACxB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;aAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACrD,SAAS,CAAC,KAAK,CAAC,CAAA;QAEnB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAA;IACzC,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;CACF;AAvED,oCAuEC"}
@@ -0,0 +1,22 @@
1
+ type SearchResultConstructorProps<I> = {
2
+ items: I[];
3
+ total: number;
4
+ current_page: number;
5
+ per_page: number;
6
+ };
7
+ export declare class SearchResult<I> {
8
+ readonly items: I[];
9
+ readonly total: number;
10
+ readonly current_page: number;
11
+ readonly per_page: number;
12
+ readonly last_page: number;
13
+ constructor(props: SearchResultConstructorProps<I>);
14
+ toJSON(): {
15
+ items: I[];
16
+ total: number;
17
+ current_page: number;
18
+ per_page: number;
19
+ last_page: number;
20
+ };
21
+ }
22
+ export {};
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SearchResult = void 0;
4
+ class SearchResult {
5
+ items;
6
+ total;
7
+ current_page;
8
+ per_page;
9
+ last_page;
10
+ constructor(props) {
11
+ this.items = props.items;
12
+ this.total = props.total;
13
+ this.current_page = props.current_page;
14
+ this.per_page = props.per_page;
15
+ this.last_page = Math.ceil(this.total / this.per_page);
16
+ }
17
+ toJSON() {
18
+ return {
19
+ items: this.items,
20
+ total: this.total,
21
+ current_page: this.current_page,
22
+ per_page: this.per_page,
23
+ last_page: this.last_page
24
+ };
25
+ }
26
+ }
27
+ exports.SearchResult = SearchResult;
28
+ //# sourceMappingURL=search-result.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-result.js","sourceRoot":"","sources":["../../../../../../../../libs/shared-kernel/src/lib/application/cqrs/query/search-result.ts"],"names":[],"mappings":";;;AAOA,MAAa,YAAY;IACd,KAAK,CAAK;IACV,KAAK,CAAQ;IACb,YAAY,CAAQ;IACpB,QAAQ,CAAQ;IAChB,SAAS,CAAQ;IAE1B,YAAY,KAAsC;QAChD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;QACxB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;QACxB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAA;QACtC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAA;QAC9B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAA;IACxD,CAAC;IAED,MAAM;QACJ,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAA;IACH,CAAC;CACF;AAxBD,oCAwBC"}
@@ -0,0 +1,7 @@
1
+ import { IDomainEvent, IIntegrationEvent } from '../domain/events/domain-event.interface';
2
+ export interface IDomainEventHandler {
3
+ handle(event: IDomainEvent): Promise<void>;
4
+ }
5
+ export interface IIntegrationEventHandler {
6
+ handle(event: IIntegrationEvent): Promise<void>;
7
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=domain-event-handler.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domain-event-handler.interface.js","sourceRoot":"","sources":["../../../../../../libs/shared-kernel/src/lib/application/domain-event-handler.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export interface IEmailGateway {
2
+ sendEmail(to: string, subject: string, text: string, html: string): Promise<void>;
3
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=email.gateway.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email.gateway.interface.js","sourceRoot":"","sources":["../../../../../../libs/shared-kernel/src/lib/application/email.gateway.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ export interface IFileStorageGateway {
2
+ uploadFile(file: Buffer, fileName: string, mimeType: string): Promise<string>;
3
+ deleteFile(fileUrl: string): Promise<void>;
4
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=file-storage.gateway.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-storage.gateway.interface.js","sourceRoot":"","sources":["../../../../../../libs/shared-kernel/src/lib/application/file-storage.gateway.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ export * from './cqrs';
2
+ export * from './application.service';
3
+ export * from './authenticated-actor.type';
4
+ export * from './domain-event-handler.interface';
5
+ export * from './message-broker.interface';
6
+ export * from './use-case.interface';
7
+ export * from './file-storage.gateway.interface';
8
+ export * from './email.gateway.interface';
9
+ export * from './tenant.gateway';
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./cqrs"), exports);
5
+ tslib_1.__exportStar(require("./application.service"), exports);
6
+ tslib_1.__exportStar(require("./authenticated-actor.type"), exports);
7
+ tslib_1.__exportStar(require("./domain-event-handler.interface"), exports);
8
+ tslib_1.__exportStar(require("./message-broker.interface"), exports);
9
+ tslib_1.__exportStar(require("./use-case.interface"), exports);
10
+ tslib_1.__exportStar(require("./file-storage.gateway.interface"), exports);
11
+ tslib_1.__exportStar(require("./email.gateway.interface"), exports);
12
+ tslib_1.__exportStar(require("./tenant.gateway"), exports);
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../libs/shared-kernel/src/lib/application/index.ts"],"names":[],"mappings":";;;AAAA,iDAAsB;AACtB,gEAAqC;AACrC,qEAA0C;AAC1C,2EAAgD;AAChD,qEAA0C;AAC1C,+DAAoC;AACpC,2EAAgD;AAChD,oEAAyC;AACzC,2DAAgC"}
@@ -0,0 +1,4 @@
1
+ import { IIntegrationEvent } from '../domain/events/domain-event.interface';
2
+ export interface IMessageBroker {
3
+ publishEvent(event: IIntegrationEvent): Promise<void>;
4
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=message-broker.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-broker.interface.js","sourceRoot":"","sources":["../../../../../../libs/shared-kernel/src/lib/application/message-broker.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import { TenantId } from '../domain/value-objects/tenant-id.vo';
2
+ export interface ITenantService {
3
+ getTenantId(): TenantId | null;
4
+ runWithTenantId<T>(tenantId: TenantId, callback: () => T): T;
5
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=tenant.gateway.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant.gateway.js","sourceRoot":"","sources":["../../../../../../libs/shared-kernel/src/lib/application/tenant.gateway.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export interface IUseCase<Input, Output> {
2
+ execute(input: Input): Promise<Output>;
3
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=use-case.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-case.interface.js","sourceRoot":"","sources":["../../../../../../libs/shared-kernel/src/lib/application/use-case.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ import { EventEmitter2 } from 'eventemitter2';
2
+ import { IDomainEvent } from './events/domain-event.interface';
3
+ import { Entity } from './entity';
4
+ export declare abstract class AggregateRoot extends Entity {
5
+ events: Set<IDomainEvent>;
6
+ dispatchedEvents: Set<IDomainEvent>;
7
+ localMediator: EventEmitter2;
8
+ applyEvent(event: IDomainEvent): void;
9
+ registerHandler(event: string, handler: (event: IDomainEvent) => void): void;
10
+ markEventAsDispatched(event: IDomainEvent): void;
11
+ getUncommittedEvents(): IDomainEvent[];
12
+ clearEvents(): void;
13
+ }
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AggregateRoot = void 0;
4
+ const eventemitter2_1 = require("eventemitter2");
5
+ const entity_1 = require("./entity");
6
+ class AggregateRoot extends entity_1.Entity {
7
+ events = new Set();
8
+ dispatchedEvents = new Set();
9
+ localMediator = new eventemitter2_1.EventEmitter2();
10
+ applyEvent(event) {
11
+ this.events.add(event);
12
+ this.localMediator.emit(event.constructor.name, event);
13
+ }
14
+ registerHandler(event, handler) {
15
+ this.localMediator.on(event, handler);
16
+ }
17
+ markEventAsDispatched(event) {
18
+ this.dispatchedEvents.add(event);
19
+ }
20
+ getUncommittedEvents() {
21
+ return Array.from(this.events).filter((event) => !this.dispatchedEvents.has(event));
22
+ }
23
+ clearEvents() {
24
+ this.events.clear();
25
+ this.dispatchedEvents.clear();
26
+ }
27
+ }
28
+ exports.AggregateRoot = AggregateRoot;
29
+ //# sourceMappingURL=aggregate-root.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aggregate-root.js","sourceRoot":"","sources":["../../../../../../libs/shared-kernel/src/lib/domain/aggregate-root.ts"],"names":[],"mappings":";;;AAAA,iDAA6C;AAG7C,qCAAiC;AAEjC,MAAsB,aAAc,SAAQ,eAAM;IAChD,MAAM,GAAsB,IAAI,GAAG,EAAgB,CAAA;IACnD,gBAAgB,GAAsB,IAAI,GAAG,EAAgB,CAAA;IAC7D,aAAa,GAAG,IAAI,6BAAa,EAAE,CAAA;IAEnC,UAAU,CAAC,KAAmB;QAC5B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACtB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IACxD,CAAC;IAED,eAAe,CAAC,KAAa,EAAE,OAAsC;QACnE,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IACvC,CAAC;IAED,qBAAqB,CAAC,KAAmB;QACvC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAClC,CAAC;IAED,oBAAoB;QAClB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CACnC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAC7C,CAAA;IACH,CAAC;IAED,WAAW;QACT,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;QACnB,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAA;IAC/B,CAAC;CACF;AA5BD,sCA4BC"}
@@ -0,0 +1,7 @@
1
+ import { Notification } from './validators/notification';
2
+ import { ValueObject } from './value-object';
3
+ export declare abstract class Entity {
4
+ notification: Notification;
5
+ abstract get entity_id(): ValueObject;
6
+ abstract toJSON(): any;
7
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Entity = void 0;
4
+ const notification_1 = require("./validators/notification");
5
+ class Entity {
6
+ notification = new notification_1.Notification();
7
+ }
8
+ exports.Entity = Entity;
9
+ //# sourceMappingURL=entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity.js","sourceRoot":"","sources":["../../../../../../libs/shared-kernel/src/lib/domain/entity.ts"],"names":[],"mappings":";;;AAAA,4DAAwD;AAGxD,MAAsB,MAAM;IAC1B,YAAY,GAAiB,IAAI,2BAAY,EAAE,CAAA;CAKhD;AAND,wBAMC"}