@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,12 @@
1
+ import { View, EntityView, PropertyView } from '../../../domain';
2
+ export declare class ViewConfigService {
3
+ private view;
4
+ constructor(view: View);
5
+ get name(): string;
6
+ get(): View;
7
+ set(value: View): void;
8
+ get entities(): EntityView[];
9
+ getEntity(name: string): EntityView | undefined;
10
+ getProperty(entityName: string, name: string): PropertyView | undefined;
11
+ excludeEntity(name: string): boolean;
12
+ }
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ViewConfigService = void 0;
4
+ class ViewConfigService {
5
+ constructor(view) {
6
+ this.view = view;
7
+ }
8
+ get name() {
9
+ return this.view.name;
10
+ }
11
+ get() {
12
+ return this.view;
13
+ }
14
+ set(value) {
15
+ this.view = value;
16
+ }
17
+ get entities() {
18
+ return this.view.entities ? this.view.entities : [];
19
+ }
20
+ getEntity(name) {
21
+ return this.view.entities ? this.view.entities.find(p => p.name === name) : undefined;
22
+ }
23
+ getProperty(entityName, name) {
24
+ const entity = this.getEntity(entityName);
25
+ if (!entity) {
26
+ return undefined;
27
+ }
28
+ return entity.properties ? entity.properties.find(p => p.name === name) : undefined;
29
+ }
30
+ excludeEntity(name) {
31
+ const entity = this.getEntity(name);
32
+ return entity ? !!entity.exclude : false;
33
+ }
34
+ }
35
+ exports.ViewConfigService = ViewConfigService;
36
+ //# sourceMappingURL=viewConfigService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewConfigService.js","sourceRoot":"","sources":["../../../../../../src/lib/schema/application/services/config/viewConfigService.ts"],"names":[],"mappings":";;;AAEA,MAAa,iBAAiB;IAE7B,YAAa,IAAU;QACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IACjB,CAAC;IAED,IAAW,IAAI;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAA;IACtB,CAAC;IAEM,GAAG;QACT,OAAO,IAAI,CAAC,IAAI,CAAA;IACjB,CAAC;IAEM,GAAG,CAAE,KAAW;QACtB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAA;IAClB,CAAC;IAED,IAAW,QAAQ;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAA;IACpD,CAAC;IAEM,SAAS,CAAE,IAAY;QAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACtF,CAAC;IAEM,WAAW,CAAE,UAAkB,EAAE,IAAY;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;QACzC,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,OAAO,SAAS,CAAA;QACjB,CAAC;QACD,OAAO,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACpF,CAAC;IAEM,aAAa,CAAE,IAAY;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QACnC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAA;IACzC,CAAC;CACD;AAtCD,8CAsCC"}
@@ -0,0 +1,9 @@
1
+ import { View } from '../../../domain';
2
+ import { ViewConfigService } from './viewConfigService';
3
+ export declare class ViewsConfigService {
4
+ views: View[];
5
+ constructor();
6
+ load(value: View): void;
7
+ get(name?: string): View;
8
+ getInstance(name?: string): ViewConfigService;
9
+ }
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ViewsConfigService = void 0;
4
+ const domain_1 = require("../../../domain");
5
+ const viewConfigService_1 = require("./viewConfigService");
6
+ class ViewsConfigService {
7
+ constructor() {
8
+ this.views = [];
9
+ }
10
+ load(value) {
11
+ if (value && value.name) {
12
+ if (!value.entities) {
13
+ value.entities = [];
14
+ }
15
+ const index = this.views.findIndex(p => p.name === value.name);
16
+ if (index === -1) {
17
+ this.views.push(value);
18
+ }
19
+ else {
20
+ this.views[index] = value;
21
+ }
22
+ }
23
+ }
24
+ get(name) {
25
+ if (name === undefined) {
26
+ return this.views[0];
27
+ }
28
+ const view = this.views.find(p => p.name === name);
29
+ if (view === undefined) {
30
+ throw new domain_1.SchemaError(`View: ${name} not found`);
31
+ }
32
+ return view;
33
+ }
34
+ getInstance(name) {
35
+ const view = this.get(name);
36
+ if (!view) {
37
+ throw new domain_1.SchemaError(`view ${name} not found`);
38
+ }
39
+ return new viewConfigService_1.ViewConfigService(view);
40
+ }
41
+ }
42
+ exports.ViewsConfigService = ViewsConfigService;
43
+ //# sourceMappingURL=viewsConfigService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewsConfigService.js","sourceRoot":"","sources":["../../../../../../src/lib/schema/application/services/config/viewsConfigService.ts"],"names":[],"mappings":";;;AAAA,4CAAmD;AACnD,2DAAuD;AAEvD,MAAa,kBAAkB;IAG9B;QACC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;IAChB,CAAC;IAEM,IAAI,CAAE,KAAW;QACvB,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACzB,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACrB,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAA;YACpB,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CAAA;YAC9D,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;gBAClB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACvB,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAA;YAC1B,CAAC;QACF,CAAC;IACF,CAAC;IAEM,GAAG,CAAE,IAAa;QACxB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QACrB,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;QAClD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,oBAAW,CAAC,SAAS,IAAI,YAAY,CAAC,CAAA;QACjD,CAAC;QACD,OAAO,IAAI,CAAA;IACZ,CAAC;IAEM,WAAW,CAAE,IAAa;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAC3B,IAAI,CAAC,IAAI,EAAE,CAAC;YACX,MAAM,IAAI,oBAAW,CAAC,QAAQ,IAAI,YAAY,CAAC,CAAA;QAChD,CAAC;QACD,OAAO,IAAI,qCAAiB,CAAC,IAAI,CAAC,CAAA;IACnC,CAAC;CACD;AAvCD,gDAuCC"}
@@ -0,0 +1,10 @@
1
+ import { Entity } from '../../domain';
2
+ import { Type } from 'typ3s';
3
+ import { SchemaHelper } from '../../infrastructure/schemaHelper';
4
+ export declare class CreateEntitiesService {
5
+ private readonly helper;
6
+ constructor(helper: SchemaHelper);
7
+ getEntities(name: string, type: Type): Entity[];
8
+ private typeToEntities;
9
+ private objTypeToEntities;
10
+ }
@@ -0,0 +1,168 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CreateEntitiesService = void 0;
4
+ const domain_1 = require("../../domain");
5
+ const typ3s_1 = require("typ3s");
6
+ class CreateEntitiesService {
7
+ // eslint-disable-next-line no-useless-constructor
8
+ constructor(helper) {
9
+ this.helper = helper;
10
+ }
11
+ getEntities(name, type) {
12
+ return this.typeToEntities(name, type);
13
+ }
14
+ typeToEntities(name, type) {
15
+ if (typ3s_1.Type.isList(type) && type.list && typ3s_1.Type.isObj(type.list.items) && type.list.items.obj) {
16
+ return this.objTypeToEntities(name, type.list.items.obj);
17
+ }
18
+ else if (typ3s_1.Type.isObj(type) && type.obj) {
19
+ return this.objTypeToEntities(name, type.obj);
20
+ }
21
+ else {
22
+ return [];
23
+ }
24
+ }
25
+ objTypeToEntities(name, objType) {
26
+ var _a, _b, _c, _d;
27
+ const entities = [];
28
+ const pk = this.helper.getPk(objType);
29
+ const primaryKey = pk ? [pk.name] : [];
30
+ const entityName = this.helper.entityName(name);
31
+ const entity = { name: entityName, primaryKey, properties: [] };
32
+ for (const prop of objType.properties) {
33
+ if (prop.type && typ3s_1.Type.isPrimitive(prop.type)) {
34
+ const required = (prop.type.nullable === false && prop.type.undefinable === false);
35
+ const length = this.helper.lengthFromType(prop.type);
36
+ const type = this.helper.type(prop.type.primitive, length);
37
+ const property = { name: prop.name, type, required, length };
38
+ (_a = entity.properties) === null || _a === void 0 ? void 0 : _a.push(property);
39
+ if (prop.type.unique && (pk === undefined || pk.name !== prop.name)) {
40
+ if (!entity.uniqueKey)
41
+ entity.uniqueKey = [];
42
+ entity.uniqueKey.push(prop.name);
43
+ }
44
+ }
45
+ else if (prop.type && typ3s_1.Type.isObj(prop.type) && prop.type.obj) {
46
+ const fk = this.helper.getFk(prop.type.obj);
47
+ if (fk && fk.type) {
48
+ const propertyName = prop.name + this.helper.capitalize(fk.name);
49
+ const entityName = this.helper.entityName(prop.name);
50
+ const required = (prop.type.nullable === false && prop.type.undefinable === false);
51
+ const length = this.helper.lengthFromType(fk.type);
52
+ const type = this.helper.type(fk.type.primitive, length);
53
+ const property = { name: propertyName, type, required, length };
54
+ const composite = prop.type && prop.type.repeated !== undefined && prop.type.repeated === 0 ? true : undefined;
55
+ const relation = {
56
+ name: prop.name,
57
+ type: domain_1.RelationType.oneToMany,
58
+ from: propertyName,
59
+ entity: entityName,
60
+ to: fk.name,
61
+ composite
62
+ };
63
+ (_b = entity.properties) === null || _b === void 0 ? void 0 : _b.push(property);
64
+ if (!entity.relations)
65
+ entity.relations = [];
66
+ entity.relations.push(relation);
67
+ const relatedEntities = this.typeToEntities(entityName, prop.type);
68
+ const relatedEntity = relatedEntities.find(p => p.name === entityName);
69
+ if (relatedEntity && (!relatedEntity.primaryKey || relatedEntity.primaryKey.length === 0)) {
70
+ relatedEntity.primaryKey = [fk.name];
71
+ }
72
+ if (relatedEntities && relatedEntities.length > 0) {
73
+ entities.push(...relatedEntities);
74
+ }
75
+ }
76
+ }
77
+ else if (prop.type && typ3s_1.Type.isList(prop.type) && ((_c = prop.type.list) === null || _c === void 0 ? void 0 : _c.items.obj)) {
78
+ if (pk && pk.type) {
79
+ const entityName = this.helper.entityName(prop.name);
80
+ const relatedEntities = this.typeToEntities(entityName, prop.type);
81
+ const relatedEntity = relatedEntities.find(p => p.name === entityName);
82
+ if (relatedEntity) {
83
+ if (prop.type && prop.type.repeatRate && prop.type.repeatRate > 0.02) {
84
+ const rpk = this.helper.getFk((_d = prop.type.list) === null || _d === void 0 ? void 0 : _d.items.obj);
85
+ if (rpk && rpk.type) {
86
+ // hay que crear una tabla intermediaria con el id de la entidad y el id de la entidad relacionada
87
+ const parentPropertyName = this.helper.refPropertyName(entity.name, pk.name);
88
+ const parentPropertyLength = this.helper.lengthFromType(pk.type);
89
+ const parentPropertyType = this.helper.type(pk.type.primitive, parentPropertyLength);
90
+ const parentProperty = { name: parentPropertyName, type: parentPropertyType, length: parentPropertyLength, required: true };
91
+ const childPropertyName = this.helper.refPropertyName(relatedEntity.name, rpk.name);
92
+ const childPropertyLength = this.helper.lengthFromType(rpk.type);
93
+ const childPropertyType = this.helper.type(rpk.type.primitive, childPropertyLength);
94
+ const childProperty = { name: childPropertyName, type: childPropertyType, length: childPropertyLength, required: true };
95
+ const intermediaEntityName = entity.name + this.helper.capitalize(prop.name);
96
+ const intermediaPropertyPk = { name: 'id', type: 'integer', required: true, autoIncrement: true };
97
+ const intermediaEntity = { name: intermediaEntityName, intermediate: true, primaryKey: ['id'], properties: [intermediaPropertyPk, childProperty, parentProperty], uniqueKey: [parentProperty.name, childProperty.name] };
98
+ const parentRelation = {
99
+ name: this.helper.relationName(entity.name),
100
+ type: domain_1.RelationType.oneToMany,
101
+ from: parentPropertyName,
102
+ entity: entity.name,
103
+ to: pk.name,
104
+ target: this.helper.relationName(intermediaEntityName)
105
+ };
106
+ const childRelation = {
107
+ name: this.helper.relationName(relatedEntity.name),
108
+ type: domain_1.RelationType.oneToMany,
109
+ from: childPropertyName,
110
+ entity: relatedEntity.name,
111
+ to: rpk.name,
112
+ target: this.helper.relationName(intermediaEntityName)
113
+ };
114
+ if (!intermediaEntity.relations)
115
+ intermediaEntity.relations = [];
116
+ intermediaEntity.relations.push(parentRelation);
117
+ intermediaEntity.relations.push(childRelation);
118
+ entities.push(intermediaEntity);
119
+ }
120
+ }
121
+ else {
122
+ const propertyName = this.helper.refPropertyName(entity.name, pk.name);
123
+ const relatedPropertyLength = this.helper.lengthFromType(pk.type);
124
+ const relatedPropertyType = this.helper.type(pk.type.primitive, relatedPropertyLength);
125
+ const relatedProperty = { name: propertyName, type: relatedPropertyType, length: relatedPropertyLength, required: true };
126
+ const composite = prop.type && prop.type.repeated !== undefined && prop.type.repeated === 0;
127
+ const relation = {
128
+ name: this.helper.relationName(entity.name),
129
+ type: domain_1.RelationType.oneToMany,
130
+ from: propertyName,
131
+ entity: entity.name,
132
+ to: pk.name,
133
+ target: composite ? undefined : prop.name
134
+ };
135
+ if (relatedEntity.properties === undefined) {
136
+ relatedEntity.properties = [];
137
+ }
138
+ relatedEntity.properties.push(relatedProperty);
139
+ if (!relatedEntity.relations)
140
+ relatedEntity.relations = [];
141
+ relatedEntity.relations.push(relation);
142
+ if (composite) {
143
+ const compositeRelation = {
144
+ name: prop.name,
145
+ type: domain_1.RelationType.manyToOne,
146
+ from: pk.name,
147
+ entity: relatedEntity.name,
148
+ to: propertyName,
149
+ composite
150
+ };
151
+ if (!entity.relations)
152
+ entity.relations = [];
153
+ entity.relations.push(compositeRelation);
154
+ }
155
+ }
156
+ }
157
+ if (relatedEntities && relatedEntities.length > 0) {
158
+ entities.push(...relatedEntities);
159
+ }
160
+ }
161
+ }
162
+ }
163
+ entities.push(entity);
164
+ return entities;
165
+ }
166
+ }
167
+ exports.CreateEntitiesService = CreateEntitiesService;
168
+ //# sourceMappingURL=createEntitiesService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createEntitiesService.js","sourceRoot":"","sources":["../../../../../src/lib/schema/application/services/createEntitiesService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { SchemaData } from '../../domain';
2
+ import { Type } from 'typ3s';
3
+ import { SchemaHelper } from '../../infrastructure/schemaHelper';
4
+ export declare class InterpretSchemaDataService {
5
+ private readonly helper;
6
+ constructor(helper: SchemaHelper);
7
+ completeSchemaData(source: any, name: string, type: Type, schemaData: SchemaData): void;
8
+ private objectsToRows;
9
+ private objectToRow;
10
+ private getSchemaEntityData;
11
+ private addRows;
12
+ }
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InterpretSchemaDataService = void 0;
4
+ const typ3s_1 = require("typ3s");
5
+ class InterpretSchemaDataService {
6
+ // eslint-disable-next-line no-useless-constructor
7
+ constructor(helper) {
8
+ this.helper = helper;
9
+ }
10
+ completeSchemaData(source, name, type, schemaData) {
11
+ const entityName = this.helper.entityName(name);
12
+ if (typ3s_1.Type.isList(type) && type.list && typ3s_1.Type.isObj(type.list.items) && type.list.items.obj) {
13
+ const children = this.objectsToRows(schemaData, type.list.items.obj, source, entityName, this.helper.getPkName(type.list.items.obj));
14
+ this.addRows(schemaData, entityName, children);
15
+ }
16
+ else if (typ3s_1.Type.isObj(type) && type.obj) {
17
+ const pkName = this.helper.getPkName(type.obj);
18
+ if (pkName === '_id') {
19
+ source[pkName] = this.helper.newId();
20
+ }
21
+ this.objectToRow(schemaData, type.obj, source, entityName, pkName);
22
+ }
23
+ }
24
+ objectsToRows(schemaData, objType, source, entityName, pkName, excludeRepeated = true) {
25
+ const rows = [];
26
+ if (excludeRepeated) {
27
+ const schemaEntityData = this.getSchemaEntityData(schemaData, entityName);
28
+ for (const item of source) {
29
+ if (pkName === '_id') {
30
+ item[pkName] = this.helper.newId();
31
+ }
32
+ else if (schemaEntityData.rows.some(p => p[pkName] === item[pkName])) {
33
+ // En el caso de que el id ya exista, no se añade la fila
34
+ continue;
35
+ }
36
+ const row = this.objectToRow(schemaData, objType, item, entityName, pkName);
37
+ rows.push(row);
38
+ }
39
+ }
40
+ else {
41
+ for (const item of source) {
42
+ if (pkName === '_id') {
43
+ item[pkName] = this.helper.newId();
44
+ }
45
+ const row = this.objectToRow(schemaData, objType, item, entityName, pkName);
46
+ rows.push(row);
47
+ }
48
+ }
49
+ return rows;
50
+ }
51
+ objectToRow(schemaData, objType, source, entityName, pkName) {
52
+ var _a, _b;
53
+ const row = {};
54
+ for (const prop of objType.properties) {
55
+ const value = source[prop.name];
56
+ if (value === undefined) {
57
+ continue;
58
+ }
59
+ if (prop.type && typ3s_1.Type.isPrimitive(prop.type)) {
60
+ row[prop.name] = value;
61
+ }
62
+ else if (prop.type && typ3s_1.Type.isObj(prop.type) && prop.type.obj) {
63
+ const fk = this.helper.getFk(prop.type.obj);
64
+ if (fk && fk.type) {
65
+ const propertyName = prop.name + this.helper.capitalize(fk.name);
66
+ const relatedEntityName = this.helper.entityName(prop.name);
67
+ const relatedPkName = this.helper.getPkName(prop.type.obj);
68
+ if (prop.type && prop.type.repeated !== undefined && prop.type.repeated === 0) {
69
+ const childRow = this.objectToRow(schemaData, prop.type.obj, value, relatedEntityName, relatedPkName);
70
+ row[prop.name] = childRow;
71
+ }
72
+ else {
73
+ const fkValue = value[fk.name];
74
+ if (fkValue !== undefined) {
75
+ row[propertyName] = fkValue;
76
+ }
77
+ const schemaEntityData = this.getSchemaEntityData(schemaData, relatedEntityName);
78
+ if (relatedPkName === '_id') {
79
+ row[relatedPkName] = this.helper.newId();
80
+ }
81
+ else if (!schemaEntityData.rows.some(p => p[relatedPkName] === value[relatedPkName])) {
82
+ // En el caso que el registro no exista, se añade
83
+ const childRow = this.objectToRow(schemaData, prop.type.obj, value, relatedEntityName, relatedPkName);
84
+ schemaEntityData.rows.push(childRow);
85
+ }
86
+ }
87
+ }
88
+ }
89
+ else if (prop.type && typ3s_1.Type.isList(prop.type) && ((_a = prop.type.list) === null || _a === void 0 ? void 0 : _a.items.obj)) {
90
+ const relatedEntityName = this.helper.entityName(prop.name);
91
+ const relatedPkName = this.helper.getPkName(prop.type.list.items.obj);
92
+ if (prop.type && prop.type.repeatRate && prop.type.repeatRate > 0.02) {
93
+ const rpk = this.helper.getFk((_b = prop.type.list) === null || _b === void 0 ? void 0 : _b.items.obj);
94
+ if (rpk && rpk.type) {
95
+ // Crea una tabla intermediaria con el id de la entidad y el id de la entidad relacionada
96
+ const parentPropertyName = this.helper.refPropertyName(entityName, pkName);
97
+ const childPropertyName = this.helper.refPropertyName(relatedEntityName, rpk.name);
98
+ const intermediaEntityName = entityName + this.helper.capitalize(prop.name);
99
+ const parentValue = source[pkName];
100
+ const intermediateObjects = [];
101
+ for (const item of value) {
102
+ const obj = {};
103
+ obj[childPropertyName] = item[rpk.name];
104
+ obj[parentPropertyName] = parentValue;
105
+ intermediateObjects.push(obj);
106
+ }
107
+ this.addRows(schemaData, intermediaEntityName, intermediateObjects);
108
+ const children = this.objectsToRows(schemaData, prop.type.list.items.obj, value, relatedEntityName, relatedPkName);
109
+ this.addRows(schemaData, relatedEntityName, children);
110
+ }
111
+ }
112
+ else if (prop.type && prop.type.repeated !== undefined && prop.type.repeated === 0) {
113
+ const children = this.objectsToRows(schemaData, prop.type.list.items.obj, value, relatedEntityName, relatedPkName, false);
114
+ row[prop.name] = children;
115
+ }
116
+ else {
117
+ const children = this.objectsToRows(schemaData, prop.type.list.items.obj, value, relatedEntityName, relatedPkName);
118
+ const propertyName = this.helper.refPropertyName(entityName, pkName);
119
+ for (const child of children) {
120
+ child[propertyName] = source[pkName];
121
+ }
122
+ this.addRows(schemaData, relatedEntityName, children);
123
+ }
124
+ }
125
+ }
126
+ return row;
127
+ }
128
+ getSchemaEntityData(schemaData, entityName) {
129
+ let schemaEntityData = schemaData.entities.find(p => p.entity === entityName);
130
+ if (!schemaEntityData) {
131
+ schemaEntityData = { entity: entityName, rows: [] };
132
+ schemaData.entities.push(schemaEntityData);
133
+ }
134
+ return schemaEntityData;
135
+ }
136
+ addRows(schemaData, entityName, rows) {
137
+ const schemaEntityData = this.getSchemaEntityData(schemaData, entityName);
138
+ schemaEntityData.rows.push(...rows);
139
+ }
140
+ }
141
+ exports.InterpretSchemaDataService = InterpretSchemaDataService;
142
+ //# sourceMappingURL=interpretSchemaDataService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interpretSchemaDataService.js","sourceRoot":"","sources":["../../../../../src/lib/schema/application/services/interpretSchemaDataService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { Expressions } from '3xpr';
2
+ import { SourceRule, IRouteService, SentenceInfo } from '../../domain';
3
+ import { StageConfigService } from './config/stageConfigService';
4
+ export declare class RouteService implements IRouteService {
5
+ private readonly stageConfigService;
6
+ private readonly exp;
7
+ constructor(stageConfigService: StageConfigService, exp: Expressions);
8
+ eval(source: SourceRule, info: SentenceInfo): boolean;
9
+ getSource(info: SentenceInfo, stage?: string): string;
10
+ }
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RouteService = void 0;
4
+ const domain_1 = require("../../domain");
5
+ class RouteService {
6
+ // eslint-disable-next-line no-useless-constructor
7
+ constructor(stageConfigService, exp) {
8
+ this.stageConfigService = stageConfigService;
9
+ this.exp = exp;
10
+ }
11
+ eval(source, info) {
12
+ if (source.condition === undefined)
13
+ return true;
14
+ return this.exp.eval(source.condition, info);
15
+ }
16
+ getSource(info, stage) {
17
+ // const contextInfo = this.getContextInfo(clauseInfo)
18
+ const _stage = this.stageConfigService.get(stage);
19
+ for (const i in _stage.sources) {
20
+ const source = _stage.sources[i];
21
+ if (source.condition === undefined) {
22
+ return source.name;
23
+ }
24
+ else {
25
+ const result = this.exp.eval(source.condition, info);
26
+ if (result) {
27
+ return source.name;
28
+ }
29
+ }
30
+ }
31
+ throw new domain_1.SchemaError(`Undefined data source on stage ${_stage.name}`);
32
+ }
33
+ }
34
+ exports.RouteService = RouteService;
35
+ //# sourceMappingURL=routeService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routeService.js","sourceRoot":"","sources":["../../../../../src/lib/schema/application/services/routeService.ts"],"names":[],"mappings":";;;AACA,yCAAmF;AAGnF,MAAa,YAAY;IACxB,kDAAkD;IAClD,YACkB,kBAAsC,EACtC,GAAe;QADf,uBAAkB,GAAlB,kBAAkB,CAAoB;QACtC,QAAG,GAAH,GAAG,CAAY;IAAG,CAAC;IAE9B,IAAI,CAAE,MAAiB,EAAE,IAAkB;QACjD,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS;YAAE,OAAO,IAAI,CAAA;QAC/C,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;IAC7C,CAAC;IAEM,SAAS,CAAE,IAAkB,EAAE,KAAc;QACnD,sDAAsD;QACtD,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACjD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YAChC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;YAChC,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBACpC,OAAO,MAAM,CAAC,IAAI,CAAA;YACnB,CAAC;iBAAM,CAAC;gBACP,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;gBACpD,IAAI,MAAM,EAAE,CAAC;oBACZ,OAAO,MAAM,CAAC,IAAI,CAAA;gBACnB,CAAC;YACF,CAAC;QACF,CAAC;QACD,MAAM,IAAI,oBAAW,CAAC,kCAAkC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;IACvE,CAAC;CACD;AA3BD,oCA2BC"}
@@ -0,0 +1,37 @@
1
+ import { Schema } from '../../domain';
2
+ import { Expressions } from '3xpr';
3
+ import { OrmBaseH3lp } from '../../../shared';
4
+ export declare class SchemaExtender {
5
+ private readonly exp;
6
+ private readonly helper;
7
+ constructor(exp: Expressions, helper: OrmBaseH3lp);
8
+ extend(schema: Schema): void;
9
+ private extendEnums;
10
+ private extendEntities;
11
+ private entitySecureArrays;
12
+ private extendMappings;
13
+ private extendDataSources;
14
+ private extendDataStages;
15
+ complete(schema: Schema): void;
16
+ isCompound(parent: any, child: any): boolean;
17
+ private clearEnums;
18
+ private clearEntities;
19
+ private completeEnums;
20
+ private completeEntities;
21
+ private completeEntity;
22
+ private completeEntityProperties;
23
+ private completeEntityRelations;
24
+ private completeRelations;
25
+ private completeRelation;
26
+ private completeDependents;
27
+ private extendEnum;
28
+ private extendEntity;
29
+ private extendMapping;
30
+ private extendEntityMapping;
31
+ private extendEntityMappingIndexes;
32
+ private extendEntityMappingProperties;
33
+ private completeMapping;
34
+ private clearMapping;
35
+ private clearMapping2;
36
+ private existsInMapping;
37
+ }