@lambdaorm/base 3.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 (175) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/README.md +3 -0
  3. package/index.d.ts +8 -0
  4. package/index.js +25 -0
  5. package/index.js.map +1 -0
  6. package/jest-config.json +15 -0
  7. package/package.json +24 -0
  8. package/query/domain/data.d.ts +12 -0
  9. package/query/domain/data.js +63 -0
  10. package/query/domain/data.js.map +1 -0
  11. package/query/domain/index.d.ts +3 -0
  12. package/query/domain/index.js +20 -0
  13. package/query/domain/index.js.map +1 -0
  14. package/query/domain/query.d.ts +14 -0
  15. package/query/domain/query.js +3 -0
  16. package/query/domain/query.js.map +1 -0
  17. package/repository/application/index.d.ts +1 -0
  18. package/repository/application/index.js +18 -0
  19. package/repository/application/index.js.map +1 -0
  20. package/repository/application/repository.d.ts +35 -0
  21. package/repository/application/repository.js +3 -0
  22. package/repository/application/repository.js.map +1 -0
  23. package/repository/domain/actions.d.ts +11 -0
  24. package/repository/domain/actions.js +3 -0
  25. package/repository/domain/actions.js.map +1 -0
  26. package/repository/domain/index.d.ts +2 -0
  27. package/repository/domain/index.js +19 -0
  28. package/repository/domain/index.js.map +1 -0
  29. package/repository/domain/queryable.d.ts +320 -0
  30. package/repository/domain/queryable.js +226 -0
  31. package/repository/domain/queryable.js.map +1 -0
  32. package/schema/application/facade.d.ts +28 -0
  33. package/schema/application/facade.js +59 -0
  34. package/schema/application/facade.js.map +1 -0
  35. package/schema/application/index.d.ts +21 -0
  36. package/schema/application/index.js +38 -0
  37. package/schema/application/index.js.map +1 -0
  38. package/schema/application/services/config/dataSourceConfigService.d.ts +8 -0
  39. package/schema/application/services/config/dataSourceConfigService.js +38 -0
  40. package/schema/application/services/config/dataSourceConfigService.js.map +1 -0
  41. package/schema/application/services/config/domainConfigService.d.ts +7 -0
  42. package/schema/application/services/config/domainConfigService.js +13 -0
  43. package/schema/application/services/config/domainConfigService.js.map +1 -0
  44. package/schema/application/services/config/domainConfigServiceBase.d.ts +45 -0
  45. package/schema/application/services/config/domainConfigServiceBase.js +304 -0
  46. package/schema/application/services/config/domainConfigServiceBase.js.map +1 -0
  47. package/schema/application/services/config/mappingConfigService.d.ts +13 -0
  48. package/schema/application/services/config/mappingConfigService.js +32 -0
  49. package/schema/application/services/config/mappingConfigService.js.map +1 -0
  50. package/schema/application/services/config/mappingsConfigService.d.ts +10 -0
  51. package/schema/application/services/config/mappingsConfigService.js +43 -0
  52. package/schema/application/services/config/mappingsConfigService.js.map +1 -0
  53. package/schema/application/services/config/stageConfigService.d.ts +7 -0
  54. package/schema/application/services/config/stageConfigService.js +32 -0
  55. package/schema/application/services/config/stageConfigService.js.map +1 -0
  56. package/schema/application/services/config/viewConfigService.d.ts +12 -0
  57. package/schema/application/services/config/viewConfigService.js +36 -0
  58. package/schema/application/services/config/viewConfigService.js.map +1 -0
  59. package/schema/application/services/config/viewsConfigService.d.ts +9 -0
  60. package/schema/application/services/config/viewsConfigService.js +43 -0
  61. package/schema/application/services/config/viewsConfigService.js.map +1 -0
  62. package/schema/application/services/createEntitiesService.d.ts +10 -0
  63. package/schema/application/services/createEntitiesService.js +168 -0
  64. package/schema/application/services/createEntitiesService.js.map +1 -0
  65. package/schema/application/services/interpretSchemaDataService.d.ts +12 -0
  66. package/schema/application/services/interpretSchemaDataService.js +142 -0
  67. package/schema/application/services/interpretSchemaDataService.js.map +1 -0
  68. package/schema/application/services/routeService.d.ts +10 -0
  69. package/schema/application/services/routeService.js +35 -0
  70. package/schema/application/services/routeService.js.map +1 -0
  71. package/schema/application/services/schemaExtender.d.ts +37 -0
  72. package/schema/application/services/schemaExtender.js +472 -0
  73. package/schema/application/services/schemaExtender.js.map +1 -0
  74. package/schema/application/services/schemaService.d.ts +9 -0
  75. package/schema/application/services/schemaService.js +78 -0
  76. package/schema/application/services/schemaService.js.map +1 -0
  77. package/schema/application/state.d.ts +54 -0
  78. package/schema/application/state.js +176 -0
  79. package/schema/application/state.js.map +1 -0
  80. package/schema/application/useCases/clear.d.ts +9 -0
  81. package/schema/application/useCases/clear.js +149 -0
  82. package/schema/application/useCases/clear.js.map +1 -0
  83. package/schema/application/useCases/complete.d.ts +0 -0
  84. package/schema/application/useCases/complete.js +61 -0
  85. package/schema/application/useCases/complete.js.map +1 -0
  86. package/schema/application/useCases/create.d.ts +7 -0
  87. package/schema/application/useCases/create.js +21 -0
  88. package/schema/application/useCases/create.js.map +1 -0
  89. package/schema/application/useCases/getSchemaData.d.ts +8 -0
  90. package/schema/application/useCases/getSchemaData.js +16 -0
  91. package/schema/application/useCases/getSchemaData.js.map +1 -0
  92. package/schema/application/useCases/initialize.d.ts +8 -0
  93. package/schema/application/useCases/initialize.js +131 -0
  94. package/schema/application/useCases/initialize.js.map +1 -0
  95. package/schema/application/useCases/load.d.ts +17 -0
  96. package/schema/application/useCases/load.js +68 -0
  97. package/schema/application/useCases/load.js.map +1 -0
  98. package/schema/application/useCases/match.d.ts +21 -0
  99. package/schema/application/useCases/match.js +297 -0
  100. package/schema/application/useCases/match.js.map +1 -0
  101. package/schema/application/useCases/update.d.ts +9 -0
  102. package/schema/application/useCases/update.js +115 -0
  103. package/schema/application/useCases/update.js.map +1 -0
  104. package/schema/domain/dialect.d.ts +10 -0
  105. package/schema/domain/dialect.js +15 -0
  106. package/schema/domain/dialect.js.map +1 -0
  107. package/schema/domain/errors.d.ts +3 -0
  108. package/schema/domain/errors.js +11 -0
  109. package/schema/domain/errors.js.map +1 -0
  110. package/schema/domain/index.d.ts +6 -0
  111. package/schema/domain/index.js +23 -0
  112. package/schema/domain/index.js.map +1 -0
  113. package/schema/domain/ports/fileSchemaService.d.ts +5 -0
  114. package/schema/domain/ports/fileSchemaService.js +3 -0
  115. package/schema/domain/ports/fileSchemaService.js.map +1 -0
  116. package/schema/domain/schema.d.ts +207 -0
  117. package/schema/domain/schema.js +12 -0
  118. package/schema/domain/schema.js.map +1 -0
  119. package/schema/domain/sentence.d.ts +68 -0
  120. package/schema/domain/sentence.js +65 -0
  121. package/schema/domain/sentence.js.map +1 -0
  122. package/schema/domain/services.d.ts +20 -0
  123. package/schema/domain/services.js +3 -0
  124. package/schema/domain/services.js.map +1 -0
  125. package/schema/infrastructure/facadeBuilder.d.ts +9 -0
  126. package/schema/infrastructure/facadeBuilder.js +30 -0
  127. package/schema/infrastructure/facadeBuilder.js.map +1 -0
  128. package/schema/infrastructure/fileSchemaService.d.ts +11 -0
  129. package/schema/infrastructure/fileSchemaService.js +69 -0
  130. package/schema/infrastructure/fileSchemaService.js.map +1 -0
  131. package/schema/infrastructure/index.d.ts +3 -0
  132. package/schema/infrastructure/index.js +20 -0
  133. package/schema/infrastructure/index.js.map +1 -0
  134. package/schema/infrastructure/schemaFileHelper.d.ts +7 -0
  135. package/schema/infrastructure/schemaFileHelper.js +81 -0
  136. package/schema/infrastructure/schemaFileHelper.js.map +1 -0
  137. package/schema/infrastructure/schemaHelper.d.ts +23 -0
  138. package/schema/infrastructure/schemaHelper.js +132 -0
  139. package/schema/infrastructure/schemaHelper.js.map +1 -0
  140. package/schema/infrastructure/stateBuilder.d.ts +10 -0
  141. package/schema/infrastructure/stateBuilder.js +24 -0
  142. package/schema/infrastructure/stateBuilder.js.map +1 -0
  143. package/sentence/domain/index.d.ts +3 -0
  144. package/sentence/domain/index.js +20 -0
  145. package/sentence/domain/index.js.map +1 -0
  146. package/sentence/domain/metadata.d.ts +37 -0
  147. package/sentence/domain/metadata.js +3 -0
  148. package/sentence/domain/metadata.js.map +1 -0
  149. package/sentence/domain/sentence.d.ts +68 -0
  150. package/sentence/domain/sentence.js +128 -0
  151. package/sentence/domain/sentence.js.map +1 -0
  152. package/sentence/domain/services.d.ts +13 -0
  153. package/sentence/domain/services.js +3 -0
  154. package/sentence/domain/services.js.map +1 -0
  155. package/shared/domain/error.d.ts +9 -0
  156. package/shared/domain/error.js +25 -0
  157. package/shared/domain/error.js.map +1 -0
  158. package/shared/domain/ports/logger.d.ts +9 -0
  159. package/shared/domain/ports/logger.js +39 -0
  160. package/shared/domain/ports/logger.js.map +1 -0
  161. package/shared/index.d.ts +5 -0
  162. package/shared/index.js +22 -0
  163. package/shared/index.js.map +1 -0
  164. package/shared/infrastructure/consoleLogger.d.ts +6 -0
  165. package/shared/infrastructure/consoleLogger.js +41 -0
  166. package/shared/infrastructure/consoleLogger.js.map +1 -0
  167. package/shared/infrastructure/helper.d.ts +40 -0
  168. package/shared/infrastructure/helper.js +224 -0
  169. package/shared/infrastructure/helper.js.map +1 -0
  170. package/shared/infrastructure/loggerBuilder.d.ts +4 -0
  171. package/shared/infrastructure/loggerBuilder.js +15 -0
  172. package/shared/infrastructure/loggerBuilder.js.map +1 -0
  173. package/shared/infrastructure/winstonLogger.d.ts +7 -0
  174. package/shared/infrastructure/winstonLogger.js +57 -0
  175. package/shared/infrastructure/winstonLogger.js.map +1 -0
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./services/schemaService"), exports);
18
+ __exportStar(require("./services/interpretSchemaDataService"), exports);
19
+ __exportStar(require("./services/config/dataSourceConfigService"), exports);
20
+ __exportStar(require("./services/config/mappingsConfigService"), exports);
21
+ __exportStar(require("./services/config/mappingConfigService"), exports);
22
+ __exportStar(require("./services/config/domainConfigService"), exports);
23
+ __exportStar(require("./services/config/stageConfigService"), exports);
24
+ __exportStar(require("./services/config/viewsConfigService"), exports);
25
+ __exportStar(require("./services/config/viewConfigService"), exports);
26
+ __exportStar(require("./facade"), exports);
27
+ __exportStar(require("./services/createEntitiesService"), exports);
28
+ __exportStar(require("./services/routeService"), exports);
29
+ __exportStar(require("./services/schemaExtender"), exports);
30
+ __exportStar(require("./useCases/load"), exports);
31
+ __exportStar(require("./useCases/create"), exports);
32
+ __exportStar(require("./useCases/update"), exports);
33
+ __exportStar(require("./useCases/getSchemaData"), exports);
34
+ __exportStar(require("./useCases/match"), exports);
35
+ __exportStar(require("./useCases/initialize"), exports);
36
+ __exportStar(require("./useCases/getSchemaData"), exports);
37
+ __exportStar(require("./state"), exports);
38
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/schema/application/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAwC;AACxC,wEAAqD;AACrD,4EAAyD;AACzD,0EAAuD;AACvD,yEAAsD;AACtD,wEAAqD;AACrD,uEAAoD;AACpD,uEAAoD;AACpD,sEAAmD;AACnD,2CAAwB;AACxB,mEAAgD;AAChD,0DAAuC;AACvC,4DAAyC;AACzC,kDAA+B;AAC/B,oDAAiC;AACjC,oDAAiC;AACjC,2DAAwC;AACxC,mDAAgC;AAChC,wDAAqC;AACrC,2DAAwC;AACxC,0CAAuB"}
@@ -0,0 +1,8 @@
1
+ import { Source } from '../../../domain';
2
+ export declare class DataSourceConfigService {
3
+ sources: Source[];
4
+ default?: string;
5
+ constructor();
6
+ load(value: Source): void;
7
+ get(name?: string): Source;
8
+ }
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DataSourceConfigService = void 0;
4
+ const domain_1 = require("../../../domain");
5
+ class DataSourceConfigService {
6
+ constructor() {
7
+ this.sources = [];
8
+ }
9
+ load(value) {
10
+ if (value && value.name) {
11
+ const index = this.sources.findIndex(p => p.name === value.name);
12
+ if (index === -1) {
13
+ this.sources.push(value);
14
+ }
15
+ else {
16
+ this.sources[index] = value;
17
+ }
18
+ }
19
+ }
20
+ get(name) {
21
+ const _name = name === undefined ? this.default : name;
22
+ if (_name === undefined) {
23
+ if (this.sources.length === 1) {
24
+ return this.sources[0];
25
+ }
26
+ else {
27
+ throw new domain_1.SchemaError('the name of the source is required');
28
+ }
29
+ }
30
+ const db = this.sources.find(p => p.name === _name);
31
+ if (db === undefined) {
32
+ throw new domain_1.SchemaError(`default source: ${_name} not found`);
33
+ }
34
+ return db;
35
+ }
36
+ }
37
+ exports.DataSourceConfigService = DataSourceConfigService;
38
+ //# sourceMappingURL=dataSourceConfigService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataSourceConfigService.js","sourceRoot":"","sources":["../../../../../../src/lib/schema/application/services/config/dataSourceConfigService.ts"],"names":[],"mappings":";;;AAAA,4CAAqD;AAErD,MAAa,uBAAuB;IAInC;QACC,IAAI,CAAC,OAAO,GAAG,EAAE,CAAA;IAClB,CAAC;IAEM,IAAI,CAAE,KAAa;QACzB,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CAAA;YAChE,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;gBAClB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACzB,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAA;YAC5B,CAAC;QACF,CAAC;IACF,CAAC;IAEM,GAAG,CAAE,IAAa;QACxB,MAAM,KAAK,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAA;QACtD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/B,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;YACvB,CAAC;iBAAM,CAAC;gBACP,MAAM,IAAI,oBAAW,CAAC,oCAAoC,CAAC,CAAA;YAC5D,CAAC;QACF,CAAC;QACD,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAA;QACnD,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,IAAI,oBAAW,CAAC,mBAAmB,KAAK,YAAY,CAAC,CAAA;QAC5D,CAAC;QACD,OAAO,EAAE,CAAA;IACV,CAAC;CACD;AAlCD,0DAkCC"}
@@ -0,0 +1,7 @@
1
+ import { Enum, Entity, Property } from '../../../domain';
2
+ import { DomainConfigServiceBase } from './domainConfigServiceBase';
3
+ export declare class DomainConfigService extends DomainConfigServiceBase<Entity, Property> {
4
+ entities: Entity[];
5
+ enums: Enum[];
6
+ constructor(entities?: Entity[], enums?: Enum[]);
7
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DomainConfigService = void 0;
4
+ const domainConfigServiceBase_1 = require("./domainConfigServiceBase");
5
+ class DomainConfigService extends domainConfigServiceBase_1.DomainConfigServiceBase {
6
+ constructor(entities = [], enums = []) {
7
+ super();
8
+ this.entities = entities;
9
+ this.enums = enums;
10
+ }
11
+ }
12
+ exports.DomainConfigService = DomainConfigService;
13
+ //# sourceMappingURL=domainConfigService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domainConfigService.js","sourceRoot":"","sources":["../../../../../../src/lib/schema/application/services/config/domainConfigService.ts"],"names":[],"mappings":";;;AACA,uEAAmE;AAEnE,MAAa,mBAAoB,SAAQ,iDAAyC;IAIjF,YAAa,WAAqB,EAAE,EAAE,QAAgB,EAAE;QACvD,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACnB,CAAC;CACD;AATD,kDASC"}
@@ -0,0 +1,45 @@
1
+ import { Enum, Entity, Property, RelationInfo } from '../../../domain';
2
+ export declare abstract class DomainConfigServiceBase<TEntity extends Entity, TProperty extends Property> {
3
+ abstract get entities(): TEntity[];
4
+ abstract get enums(): Enum[];
5
+ getEntity(name: string): TEntity | undefined;
6
+ getForcedEntity(name: string): TEntity;
7
+ getEnum(name: string): Enum | undefined;
8
+ isChild(entityName: string): boolean;
9
+ existsProperty(entityName: string, name: string): boolean;
10
+ getProperty(entityName: string, name: string): TProperty;
11
+ getAutoIncrement(entityName: string): TProperty | undefined;
12
+ getFieldIds(entityName: string): TProperty[] | undefined;
13
+ listEntities(): string[];
14
+ /**
15
+ * Sort a list of entities according to their relationships
16
+ * @param allEntities entities to order
17
+ * @returns returns the sorted entities
18
+ */
19
+ sortByRelations(mainEntities: string[], allEntities: string[]): string[];
20
+ /**
21
+ * Sort a list of entities according to their dependencies
22
+ * @param entities entities to order
23
+ * @returns returns the sorted entities
24
+ */
25
+ sortByDependencies(entities?: string[]): string[];
26
+ /**
27
+ * Determines whether an entity can be included in the entity list based on its relationships
28
+ * @param entityName name of entity
29
+ * @param sorted current list of entities sorted by dependencies
30
+ * @param parent entity parent , used in manyToOne relations
31
+ * @returns
32
+ */
33
+ protected solveSortEntity(entityName: string, mainEntities: string[], allEntities: string[], sorted: string[], parent?: string): boolean;
34
+ private unsolvedRelation;
35
+ /**
36
+ * Determines whether an entity can be included in the entity list based on its dependencies
37
+ * @param entityName name of entity
38
+ * @param sorted current list of entities sorted by dependencies
39
+ * @param parent entity parent , used in manyToOne relations
40
+ * @returns
41
+ */
42
+ protected hadDependencies(entity: TEntity, entities: string[], sorted: string[], parent?: string): boolean;
43
+ private hadDependents;
44
+ getRelation(entity: string, relation: string): RelationInfo;
45
+ }
@@ -0,0 +1,304 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DomainConfigServiceBase = void 0;
4
+ const domain_1 = require("../../../domain");
5
+ class DomainConfigServiceBase {
6
+ getEntity(name) {
7
+ return this.entities.find(p => p.name === name);
8
+ }
9
+ getForcedEntity(name) {
10
+ const entity = this.getEntity(name);
11
+ if (entity === undefined) {
12
+ throw new domain_1.SchemaError(`entity ${name} not found`);
13
+ }
14
+ return entity;
15
+ }
16
+ getEnum(name) {
17
+ return this.enums.find(p => p.name === name);
18
+ }
19
+ isChild(entityName) {
20
+ for (const i in this.entities) {
21
+ const entity = this.entities[i];
22
+ for (const j in entity.relations) {
23
+ const relation = entity.relations[j];
24
+ if (relation.type === domain_1.RelationType.manyToOne && relation.composite && relation.entity === entityName)
25
+ return true;
26
+ }
27
+ }
28
+ return false;
29
+ }
30
+ existsProperty(entityName, name) {
31
+ var _a;
32
+ const entity = this.getEntity(entityName);
33
+ if (!entity) {
34
+ throw new domain_1.SchemaError('Not exists entity:' + entityName);
35
+ }
36
+ const property = (_a = entity.properties) === null || _a === void 0 ? void 0 : _a.find(p => p.name === name);
37
+ return property !== undefined;
38
+ }
39
+ getProperty(entityName, name) {
40
+ var _a;
41
+ const entity = this.getEntity(entityName);
42
+ if (!entity) {
43
+ throw new domain_1.SchemaError('Not exists entity:' + entityName);
44
+ }
45
+ const property = (_a = entity.properties) === null || _a === void 0 ? void 0 : _a.find(p => p.name === name);
46
+ if (!property) {
47
+ throw new domain_1.SchemaError('Not exists property: ' + name + ' in entity: ' + entityName);
48
+ }
49
+ return property;
50
+ }
51
+ getAutoIncrement(entityName) {
52
+ var _a;
53
+ const entity = this.getEntity(entityName);
54
+ if (!entity) {
55
+ throw new domain_1.SchemaError('Not exists entity:' + entityName);
56
+ }
57
+ return (_a = entity.properties) === null || _a === void 0 ? void 0 : _a.find(p => p.autoIncrement === true);
58
+ }
59
+ getFieldIds(entityName) {
60
+ var _a;
61
+ const entity = this.getEntity(entityName);
62
+ if (!entity) {
63
+ throw new domain_1.SchemaError('Not exists entity:' + entityName);
64
+ }
65
+ if (!entity.primaryKey) {
66
+ return undefined;
67
+ }
68
+ return (_a = entity.properties) === null || _a === void 0 ? void 0 : _a.filter(p => entity.primaryKey && entity.primaryKey.includes(p.name));
69
+ }
70
+ listEntities() {
71
+ return this.entities.map(p => p.name);
72
+ }
73
+ /**
74
+ * Sort a list of entities according to their relationships
75
+ * @param allEntities entities to order
76
+ * @returns returns the sorted entities
77
+ */
78
+ sortByRelations(mainEntities, allEntities) {
79
+ if (mainEntities.length < 2)
80
+ return mainEntities;
81
+ const sorted = [];
82
+ let tries = 0;
83
+ let solved = true;
84
+ while (sorted.length < mainEntities.length) {
85
+ if (tries >= 1000) {
86
+ solved = false;
87
+ break;
88
+ }
89
+ for (const entityName of mainEntities) {
90
+ if (sorted.includes(entityName)) {
91
+ continue;
92
+ }
93
+ if (this.solveSortEntity(entityName, mainEntities, allEntities, sorted)) {
94
+ sorted.push(entityName);
95
+ break;
96
+ }
97
+ }
98
+ tries++;
99
+ }
100
+ if (solved) {
101
+ return sorted;
102
+ }
103
+ const info = [];
104
+ for (const entityName of mainEntities) {
105
+ if (!sorted.includes(entityName)) {
106
+ const entity = this.getEntity(entityName);
107
+ if (entity === undefined) {
108
+ throw new domain_1.SchemaError('Not exists entity:' + entityName);
109
+ }
110
+ info.push(`{ ${entity.name} relations: `);
111
+ if (entity.dependents && entity.dependents.length > 0 && entity.relations) {
112
+ for (const relation of entity.relations) {
113
+ if (relation.entity !== entity.name && mainEntities.includes(relation.entity)) {
114
+ for (const relation of entity.relations) {
115
+ if (this.unsolvedRelation(entityName, mainEntities, allEntities, sorted, relation)) {
116
+ info.push(`${relation.entity}.${relation.name} `);
117
+ }
118
+ }
119
+ }
120
+ }
121
+ }
122
+ info.push('}, ');
123
+ }
124
+ }
125
+ throw new domain_1.SchemaError(`Task cannot be completed because the following entities cannot be sorted by their relations ${info.join('')}`);
126
+ }
127
+ /**
128
+ * Sort a list of entities according to their dependencies
129
+ * @param entities entities to order
130
+ * @returns returns the sorted entities
131
+ */
132
+ sortByDependencies(entities = []) {
133
+ if (entities.length < 2)
134
+ return entities;
135
+ const sorted = [];
136
+ let tries = 0;
137
+ let solved = true;
138
+ while (sorted.length < entities.length) {
139
+ if (tries >= 1000) {
140
+ solved = false;
141
+ break;
142
+ }
143
+ for (const entityName of entities) {
144
+ if (sorted.includes(entityName)) {
145
+ continue;
146
+ }
147
+ const entity = this.getEntity(entityName);
148
+ if (entity === undefined) {
149
+ throw new domain_1.SchemaError('Not exists entity:' + entityName);
150
+ }
151
+ if (!this.hadDependencies(entity, entities, sorted)) {
152
+ sorted.push(entityName);
153
+ break;
154
+ }
155
+ }
156
+ tries++;
157
+ }
158
+ if (solved) {
159
+ return sorted;
160
+ }
161
+ const info = [];
162
+ for (const entityName of entities) {
163
+ if (!sorted.includes(entityName)) {
164
+ const entity = this.getEntity(entityName);
165
+ if (entity === undefined) {
166
+ throw new domain_1.SchemaError('Not exists entity:' + entityName);
167
+ }
168
+ info.push(`{ ${entity.name} depend: `);
169
+ if (entity.dependents && entity.dependents.length > 0) {
170
+ for (const dependent of entity.dependents) {
171
+ if (dependent.entity !== entity.name && entities.includes(dependent.entity)) {
172
+ for (const dependent of entity.dependents) {
173
+ if (dependent.entity !== entity.name && entities.includes(dependent.entity)) {
174
+ if (this.hadDependents(entity, sorted, dependent)) {
175
+ info.push(`${dependent.entity}.${dependent.relation.name} `);
176
+ }
177
+ }
178
+ }
179
+ }
180
+ }
181
+ }
182
+ info.push('}, ');
183
+ }
184
+ }
185
+ throw new domain_1.SchemaError(`Task cannot be completed because the following entities cannot be sorted by their dependencies ${info.join('')}`);
186
+ }
187
+ /**
188
+ * Determines whether an entity can be included in the entity list based on its relationships
189
+ * @param entityName name of entity
190
+ * @param sorted current list of entities sorted by dependencies
191
+ * @param parent entity parent , used in manyToOne relations
192
+ * @returns
193
+ */
194
+ solveSortEntity(entityName, mainEntities, allEntities, sorted, parent) {
195
+ const entity = this.getEntity(entityName);
196
+ if (entity === undefined) {
197
+ throw new domain_1.SchemaError('Not exists entity:' + entityName);
198
+ }
199
+ if (entity.relations === undefined || entity.relations.length === 0) {
200
+ return true;
201
+ }
202
+ else {
203
+ let unsolved = false;
204
+ for (const relation of entity.relations) {
205
+ if (this.unsolvedRelation(entityName, mainEntities, allEntities, sorted, relation, parent)) {
206
+ unsolved = true;
207
+ break;
208
+ }
209
+ }
210
+ return !unsolved;
211
+ }
212
+ }
213
+ unsolvedRelation(entityName, mainEntities, allEntities, sorted, relation, parent) {
214
+ if (relation.entity !== entityName && allEntities.includes(relation.entity)) {
215
+ if (relation.type === domain_1.RelationType.oneToOne || relation.type === domain_1.RelationType.oneToMany) {
216
+ if (!relation.weak && !sorted.includes(relation.entity) && (parent === null || parent !== relation.entity)) {
217
+ return true;
218
+ }
219
+ }
220
+ else if (relation.type === domain_1.RelationType.manyToOne) {
221
+ if (relation.composite && !this.solveSortEntity(relation.entity, mainEntities, allEntities, sorted, entityName)) {
222
+ return true;
223
+ }
224
+ }
225
+ }
226
+ return false;
227
+ }
228
+ /**
229
+ * Determines whether an entity can be included in the entity list based on its dependencies
230
+ * @param entityName name of entity
231
+ * @param sorted current list of entities sorted by dependencies
232
+ * @param parent entity parent , used in manyToOne relations
233
+ * @returns
234
+ */
235
+ hadDependencies(entity, entities, sorted, parent) {
236
+ if (entity.dependents === undefined || entity.dependents.length === 0) {
237
+ return false;
238
+ }
239
+ else {
240
+ let hadDependents = false;
241
+ for (const dependent of entity.dependents) {
242
+ if (dependent.entity !== entity.name && entities.includes(dependent.entity)) {
243
+ if (this.hadDependents(entity, sorted, dependent, parent)) {
244
+ hadDependents = true;
245
+ break;
246
+ }
247
+ }
248
+ }
249
+ return hadDependents;
250
+ }
251
+ }
252
+ hadDependents(entity, sorted, dependent, parent) {
253
+ var _a;
254
+ // if the relationship is not weak
255
+ if (!dependent.relation.weak) {
256
+ // look for the related property to see if the dependency is not required
257
+ const dependentEntity = this.getEntity(dependent.entity);
258
+ if (dependentEntity === undefined) {
259
+ throw new domain_1.SchemaError('Not exists entity:' + dependent.entity);
260
+ }
261
+ const dependentProperty = (_a = dependentEntity.properties) === null || _a === void 0 ? void 0 : _a.find(p => p.name === dependent.relation.from);
262
+ if (dependentProperty === undefined) {
263
+ throw new domain_1.SchemaError(`property ${dependent.relation.from} not found in ${entity.name} `);
264
+ }
265
+ // if the relation is not required
266
+ // and the related entity is not included in the entities sorted by dependency
267
+ // and the parent entity is null or is the same as the relation
268
+ // in this case it cannot be determined that this entity can still be included in the list of entities ordered by dependency.
269
+ if (dependentProperty.required && !sorted.includes(dependent.entity) && (parent === null || parent !== dependent.entity)) {
270
+ return true;
271
+ }
272
+ }
273
+ return false;
274
+ }
275
+ getRelation(entity, relation) {
276
+ let _previousEntity, previousEntity, relationData, _relationEntity, relationEntity;
277
+ const parts = relation.split('.');
278
+ for (let i = 0; i < parts.length; i++) {
279
+ const part = parts[i];
280
+ if (i === 0) {
281
+ _previousEntity = entity;
282
+ previousEntity = this.getEntity(_previousEntity);
283
+ }
284
+ else {
285
+ _previousEntity = _relationEntity;
286
+ previousEntity = relationEntity;
287
+ }
288
+ relationData = previousEntity.relations.find(p => p.name === part);
289
+ if (!relationData) {
290
+ throw new domain_1.SchemaError('relation ' + part + ' not found in ' + previousEntity.name);
291
+ }
292
+ _relationEntity = relationData.entity;
293
+ relationEntity = this.getEntity(_relationEntity);
294
+ }
295
+ return {
296
+ previousRelation: parts.length > 1 ? parts.slice(0, parts.length - 1).join('.') : '',
297
+ previousEntity: previousEntity,
298
+ entity: relationEntity,
299
+ relation: relationData
300
+ };
301
+ }
302
+ }
303
+ exports.DomainConfigServiceBase = DomainConfigServiceBase;
304
+ //# sourceMappingURL=domainConfigServiceBase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domainConfigServiceBase.js","sourceRoot":"","sources":["../../../../../../src/lib/schema/application/services/config/domainConfigServiceBase.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { Enum, FormatMapping, EntityMapping, PropertyMapping, Mapping } from '../../../domain';
2
+ import { DomainConfigServiceBase } from './domainConfigServiceBase';
3
+ export declare class MappingConfigService extends DomainConfigServiceBase<EntityMapping, PropertyMapping> {
4
+ private mapping;
5
+ enums: Enum[];
6
+ constructor(mapping: Mapping, enums?: Enum[]);
7
+ get name(): string;
8
+ get format(): FormatMapping | undefined;
9
+ get(): Mapping;
10
+ set(value: Mapping): void;
11
+ get entities(): EntityMapping[];
12
+ entityMapping(entityName: string): string | undefined;
13
+ }
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MappingConfigService = void 0;
4
+ const domainConfigServiceBase_1 = require("./domainConfigServiceBase");
5
+ class MappingConfigService extends domainConfigServiceBase_1.DomainConfigServiceBase {
6
+ constructor(mapping, enums = []) {
7
+ super();
8
+ this.mapping = mapping;
9
+ this.enums = enums;
10
+ }
11
+ get name() {
12
+ return this.mapping.name;
13
+ }
14
+ get format() {
15
+ return this.mapping.format;
16
+ }
17
+ get() {
18
+ return this.mapping;
19
+ }
20
+ set(value) {
21
+ this.mapping = value;
22
+ }
23
+ get entities() {
24
+ return this.mapping.entities || [];
25
+ }
26
+ entityMapping(entityName) {
27
+ const entity = this.getEntity(entityName);
28
+ return entity ? entity.mapping : undefined;
29
+ }
30
+ }
31
+ exports.MappingConfigService = MappingConfigService;
32
+ //# sourceMappingURL=mappingConfigService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mappingConfigService.js","sourceRoot":"","sources":["../../../../../../src/lib/schema/application/services/config/mappingConfigService.ts"],"names":[],"mappings":";;;AACA,uEAAmE;AAEnE,MAAa,oBAAqB,SAAQ,iDAAuD;IAGhG,YAAa,OAAgB,EAAE,QAAgB,EAAE;QAChD,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACnB,CAAC;IAED,IAAW,IAAI;QACd,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAA;IACzB,CAAC;IAED,IAAW,MAAM;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAA;IAC3B,CAAC;IAEM,GAAG;QACT,OAAO,IAAI,CAAC,OAAO,CAAA;IACpB,CAAC;IAEM,GAAG,CAAE,KAAc;QACzB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;IACrB,CAAC;IAED,IAAW,QAAQ;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAA;IACnC,CAAC;IAEM,aAAa,CAAE,UAAkB;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;QACzC,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAA;IAC3C,CAAC;CACD;AAjCD,oDAiCC"}
@@ -0,0 +1,10 @@
1
+ import { Mapping } from '../../../domain';
2
+ import { MappingConfigService } from './mappingConfigService';
3
+ export declare class MappingsConfigService {
4
+ mappings: Mapping[];
5
+ constructor();
6
+ load(value: Mapping): void;
7
+ delete(name: string): void;
8
+ get(name: string): Mapping;
9
+ getInstance(name: string): MappingConfigService;
10
+ }
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MappingsConfigService = void 0;
4
+ const domain_1 = require("../../../domain");
5
+ const mappingConfigService_1 = require("./mappingConfigService");
6
+ class MappingsConfigService {
7
+ constructor() {
8
+ this.mappings = [];
9
+ }
10
+ load(value) {
11
+ if (value && value.name) {
12
+ const index = this.mappings.findIndex(p => p.name === value.name);
13
+ if (index === -1) {
14
+ this.mappings.push(value);
15
+ }
16
+ else {
17
+ this.mappings[index] = value;
18
+ }
19
+ }
20
+ }
21
+ delete(name) {
22
+ const index = this.mappings.findIndex(p => p.name === name);
23
+ if (index !== -1) {
24
+ this.mappings.splice(index, 1);
25
+ }
26
+ }
27
+ get(name) {
28
+ const mapping = this.mappings.find(p => p.name === name);
29
+ if (!mapping) {
30
+ throw new domain_1.SchemaError(`mapping ${name} not found`);
31
+ }
32
+ return mapping;
33
+ }
34
+ getInstance(name) {
35
+ const mapping = this.get(name);
36
+ if (!mapping) {
37
+ throw new domain_1.SchemaError(`mapping ${name} not found`);
38
+ }
39
+ return new mappingConfigService_1.MappingConfigService(mapping);
40
+ }
41
+ }
42
+ exports.MappingsConfigService = MappingsConfigService;
43
+ //# sourceMappingURL=mappingsConfigService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mappingsConfigService.js","sourceRoot":"","sources":["../../../../../../src/lib/schema/application/services/config/mappingsConfigService.ts"],"names":[],"mappings":";;;AAAA,4CAAsD;AACtD,iEAA6D;AAE7D,MAAa,qBAAqB;IAGjC;QACC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAA;IACnB,CAAC;IAEM,IAAI,CAAE,KAAc;QAC1B,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CAAA;YACjE,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;gBAClB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAC1B,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,KAAK,CAAA;YAC7B,CAAC;QACF,CAAC;IACF,CAAC;IAEM,MAAM,CAAE,IAAY;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;QAC3D,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YAClB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;QAC/B,CAAC;IACF,CAAC;IAEM,GAAG,CAAE,IAAY;QACvB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;QACxD,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,MAAM,IAAI,oBAAW,CAAC,WAAW,IAAI,YAAY,CAAC,CAAA;QACnD,CAAC;QACD,OAAO,OAAO,CAAA;IACf,CAAC;IAEM,WAAW,CAAE,IAAY;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAC9B,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,MAAM,IAAI,oBAAW,CAAC,WAAW,IAAI,YAAY,CAAC,CAAA;QACnD,CAAC;QACD,OAAO,IAAI,2CAAoB,CAAC,OAAO,CAAC,CAAA;IACzC,CAAC;CACD;AAxCD,sDAwCC"}
@@ -0,0 +1,7 @@
1
+ import { Stage } from '../../../domain';
2
+ export declare class StageConfigService {
3
+ stages: Stage[];
4
+ constructor();
5
+ load(value: Stage): void;
6
+ get(name?: string): Stage;
7
+ }
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StageConfigService = void 0;
4
+ const domain_1 = require("../../../domain");
5
+ class StageConfigService {
6
+ constructor() {
7
+ this.stages = [];
8
+ }
9
+ load(value) {
10
+ if (value && value.name) {
11
+ const index = this.stages.findIndex(p => p.name === value.name);
12
+ if (index === -1) {
13
+ this.stages.push(value);
14
+ }
15
+ else {
16
+ this.stages[index] = value;
17
+ }
18
+ }
19
+ }
20
+ get(name) {
21
+ if (name === undefined) {
22
+ return this.stages[0];
23
+ }
24
+ const stage = this.stages.find(p => p.name === name);
25
+ if (stage === undefined) {
26
+ throw new domain_1.SchemaError(`Stage: ${name} not found`);
27
+ }
28
+ return stage;
29
+ }
30
+ }
31
+ exports.StageConfigService = StageConfigService;
32
+ //# sourceMappingURL=stageConfigService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stageConfigService.js","sourceRoot":"","sources":["../../../../../../src/lib/schema/application/services/config/stageConfigService.ts"],"names":[],"mappings":";;;AAAA,4CAAoD;AAEpD,MAAa,kBAAkB;IAG9B;QACC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAA;IACjB,CAAC;IAEM,IAAI,CAAE,KAAY;QACxB,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CAAA;YAC/D,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;gBAClB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACxB,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAA;YAC3B,CAAC;QACF,CAAC;IACF,CAAC;IAEM,GAAG,CAAE,IAAa;QACxB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QACtB,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;QACpD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,oBAAW,CAAC,UAAU,IAAI,YAAY,CAAC,CAAA;QAClD,CAAC;QACD,OAAO,KAAK,CAAA;IACb,CAAC;CACD;AA5BD,gDA4BC"}