@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,81 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.SchemaFileHelper = void 0;
16
+ const path_1 = __importDefault(require("path"));
17
+ class SchemaFileHelper {
18
+ // eslint-disable-next-line no-useless-constructor
19
+ constructor(helper) {
20
+ this.helper = helper;
21
+ }
22
+ getConfigPath(source) {
23
+ return __awaiter(this, void 0, void 0, function* () {
24
+ let workspace;
25
+ let configFile;
26
+ workspace = process.cwd();
27
+ if (source === undefined) {
28
+ configFile = yield this.getConfigFileName(workspace);
29
+ }
30
+ else if (typeof source === 'string') {
31
+ if (source.startsWith('http')) {
32
+ return source;
33
+ }
34
+ else if (yield this.helper.fs.exists(source)) {
35
+ const lstat = yield this.helper.fs.lstat(source);
36
+ if (lstat.isFile()) {
37
+ configFile = path_1.default.basename(source);
38
+ workspace = path_1.default.dirname(source);
39
+ }
40
+ else {
41
+ workspace = source;
42
+ configFile = yield this.getConfigFileName(workspace);
43
+ }
44
+ }
45
+ else {
46
+ yield this.helper.logger.log(`Not exists path ${source}`);
47
+ }
48
+ }
49
+ else {
50
+ yield this.helper.logger.log('Schema: not supported:');
51
+ yield this.helper.logger.log(source);
52
+ }
53
+ if (configFile) {
54
+ return path_1.default.join(workspace, configFile);
55
+ }
56
+ else {
57
+ return undefined;
58
+ }
59
+ });
60
+ }
61
+ getConfigFileName(workspace) {
62
+ return __awaiter(this, void 0, void 0, function* () {
63
+ const entries = yield this.helper.fs.readdir(workspace);
64
+ const candidates = entries.filter(entry => {
65
+ const ext = path_1.default.extname(entry).toLowerCase();
66
+ const name = path_1.default.basename(entry, ext).toLowerCase();
67
+ return (['.json', '.yaml', '.yml'].includes(ext) &&
68
+ (name.includes('lambdaorm') || name.includes('orm') || name.includes('schema') || name.includes('lambda')));
69
+ });
70
+ const priority = ['lambdaorm', 'orm', 'schema', 'lambda'];
71
+ for (const p of priority) {
72
+ const match = candidates.find(c => path_1.default.basename(c).toLowerCase().includes(p));
73
+ if (match)
74
+ return match;
75
+ }
76
+ return undefined;
77
+ });
78
+ }
79
+ }
80
+ exports.SchemaFileHelper = SchemaFileHelper;
81
+ //# sourceMappingURL=schemaFileHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemaFileHelper.js","sourceRoot":"","sources":["../../../../src/lib/schema/infrastructure/schemaFileHelper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { IStringHelper } from 'h3lp';
2
+ import { ObjType, PropertyType, Type } from 'typ3s';
3
+ export declare class SchemaHelper {
4
+ private readonly str;
5
+ readonly DEFAULT_TYPE = "string";
6
+ readonly DEFAULT_LENGTH = 80;
7
+ constructor(str: IStringHelper);
8
+ newId(): string;
9
+ equalName(name1?: string, name2?: string): boolean;
10
+ entityName(name: string): string;
11
+ propertyName(name: string): string;
12
+ refPropertyName(entityName: string, propertyName: string): string;
13
+ capitalize(name: string): string;
14
+ indexName(name: string): string;
15
+ relationName(name: string): string;
16
+ getPk(objType: ObjType): PropertyType | undefined;
17
+ getPkName(objType: ObjType): string;
18
+ getFk(objType: ObjType): PropertyType | undefined;
19
+ getKey(uniques: PropertyType[]): PropertyType | undefined;
20
+ type(type?: string, length?: number): string | undefined;
21
+ length(length?: number): number | undefined;
22
+ lengthFromType(type: Type): number | undefined;
23
+ }
@@ -0,0 +1,132 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SchemaHelper = void 0;
4
+ const { v4: uuidv4 } = require('uuid');
5
+ class SchemaHelper {
6
+ // eslint-disable-next-line no-useless-constructor
7
+ constructor(str) {
8
+ this.str = str;
9
+ this.DEFAULT_TYPE = 'string';
10
+ this.DEFAULT_LENGTH = 80;
11
+ }
12
+ newId() {
13
+ return uuidv4();
14
+ }
15
+ equalName(name1, name2) {
16
+ if (name1 === undefined && name2 === undefined)
17
+ return true;
18
+ if (name1 === undefined || name2 === undefined)
19
+ return false;
20
+ return name1.toLowerCase() === name2.toLowerCase();
21
+ }
22
+ entityName(name) {
23
+ let entityName = this.str.replace(name, '"', '').replace('\'', '').replace('`', '');
24
+ entityName = this.str.plural(entityName);
25
+ return this.str.notation(entityName, 'pascal');
26
+ }
27
+ propertyName(name) {
28
+ return this.str.notation(name, 'camel');
29
+ }
30
+ refPropertyName(entityName, propertyName) {
31
+ return this.str.singular(this.str.notation(entityName, 'camel')) + this.str.capitalize(propertyName);
32
+ }
33
+ capitalize(name) {
34
+ return this.str.capitalize(name);
35
+ }
36
+ indexName(name) {
37
+ return this.str.notation(name, 'camel');
38
+ }
39
+ relationName(name) {
40
+ return this.str.notation(name, 'camel');
41
+ }
42
+ getPk(objType) {
43
+ const uniques = objType.properties.filter(p => { var _a, _b; return ((_a = p.type) === null || _a === void 0 ? void 0 : _a.unique) === true || ((_b = p.type) === null || _b === void 0 ? void 0 : _b.onParentDistinctUnique) === true; });
44
+ return this.getKey(uniques);
45
+ }
46
+ getPkName(objType) {
47
+ const pk = this.getPk(objType);
48
+ return pk ? pk.name : '_id';
49
+ }
50
+ getFk(objType) {
51
+ const uniques = objType.properties.filter(p => { var _a; return ((_a = p.type) === null || _a === void 0 ? void 0 : _a.onParentDistinctUnique) === true; });
52
+ const result = this.getKey(uniques);
53
+ return result;
54
+ }
55
+ getKey(uniques) {
56
+ if (uniques.length === 1) {
57
+ return uniques[0];
58
+ }
59
+ else if (uniques.length > 1) {
60
+ const id = uniques.find(p => ['id', 'code', 'key', 'name'].includes(p.name.toLowerCase()));
61
+ if (id) {
62
+ return id;
63
+ }
64
+ const idNumber = uniques.find(p => { var _a, _b; return ((_a = p.type) === null || _a === void 0 ? void 0 : _a.primitive) === 'number' || ((_b = p.type) === null || _b === void 0 ? void 0 : _b.primitive) === 'integer'; });
65
+ if (idNumber) {
66
+ return idNumber;
67
+ }
68
+ return uniques[0];
69
+ }
70
+ else {
71
+ return undefined;
72
+ }
73
+ }
74
+ type(type, length) {
75
+ if (type === undefined)
76
+ return undefined;
77
+ return type === 'string' && length === Number.MAX_SAFE_INTEGER ? 'text' : type === this.DEFAULT_TYPE ? undefined : type;
78
+ }
79
+ length(length) {
80
+ return length ? length === this.DEFAULT_LENGTH ? undefined : length : undefined;
81
+ }
82
+ lengthFromType(type) {
83
+ if (type.primitive !== 'string') {
84
+ return undefined;
85
+ }
86
+ if (!type.maxLen) {
87
+ return this.DEFAULT_LENGTH;
88
+ }
89
+ if (type.maxLen < 8) {
90
+ if (type.maxLen === type.minLen) {
91
+ return type.maxLen;
92
+ }
93
+ return Math.round(type.maxLen * 1.3);
94
+ }
95
+ const length = Math.round(type.maxLen * 1.3);
96
+ if (length < 16) {
97
+ return 16;
98
+ }
99
+ else if (length < 32) {
100
+ return 32;
101
+ }
102
+ else if (length < 50) {
103
+ return 50;
104
+ }
105
+ else if (length < this.DEFAULT_LENGTH) {
106
+ return undefined;
107
+ }
108
+ else if (length < 128) {
109
+ return 128;
110
+ }
111
+ else if (length < 256) {
112
+ return 256;
113
+ }
114
+ else if (length < 512) {
115
+ return 512;
116
+ }
117
+ else if (length < 1024) {
118
+ return 1024;
119
+ }
120
+ else if (length < 2048) {
121
+ return 2048;
122
+ }
123
+ else if (length < 4096) {
124
+ return 4096;
125
+ }
126
+ else {
127
+ return Number.MAX_SAFE_INTEGER;
128
+ }
129
+ }
130
+ }
131
+ exports.SchemaHelper = SchemaHelper;
132
+ //# sourceMappingURL=schemaHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemaHelper.js","sourceRoot":"","sources":["../../../../src/lib/schema/infrastructure/schemaHelper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { Expressions } from '3xpr';
2
+ import { SchemaState, SchemaFacade } from '../application';
3
+ import { OrmBaseH3lp } from '../../shared';
4
+ export declare class SchemaStateBuilder {
5
+ private readonly exp;
6
+ private readonly facade;
7
+ private readonly helper;
8
+ constructor(exp: Expressions, facade: SchemaFacade, helper: OrmBaseH3lp);
9
+ build(): SchemaState;
10
+ }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SchemaStateBuilder = void 0;
4
+ const application_1 = require("../application");
5
+ class SchemaStateBuilder {
6
+ // eslint-disable-next-line no-useless-constructor
7
+ constructor(exp, facade, helper) {
8
+ this.exp = exp;
9
+ this.facade = facade;
10
+ this.helper = helper;
11
+ }
12
+ build() {
13
+ const source = new application_1.DataSourceConfigService();
14
+ const model = new application_1.DomainConfigService();
15
+ const mapping = new application_1.MappingsConfigService();
16
+ const stage = new application_1.StageConfigService();
17
+ const view = new application_1.ViewsConfigService();
18
+ const routeService = new application_1.RouteService(stage, this.exp);
19
+ const loadSchema = new application_1.LoadSchema(source, model, mapping, stage, view, this.helper);
20
+ return new application_1.SchemaState(source, model, mapping, stage, view, routeService, this.facade, loadSchema, this.helper);
21
+ }
22
+ }
23
+ exports.SchemaStateBuilder = SchemaStateBuilder;
24
+ //# sourceMappingURL=stateBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stateBuilder.js","sourceRoot":"","sources":["../../../../src/lib/schema/infrastructure/stateBuilder.ts"],"names":[],"mappings":";;;AACA,gDAGuB;AAEvB,MAAa,kBAAkB;IAC9B,kDAAkD;IAClD,YACkB,GAAgB,EAChB,MAAmB,EACnB,MAAmB;QAFnB,QAAG,GAAH,GAAG,CAAa;QAChB,WAAM,GAAN,MAAM,CAAa;QACnB,WAAM,GAAN,MAAM,CAAa;IAClC,CAAC;IAEG,KAAK;QACX,MAAM,MAAM,GAAG,IAAI,qCAAuB,EAAE,CAAA;QAC5C,MAAM,KAAK,GAAG,IAAI,iCAAmB,EAAE,CAAA;QACvC,MAAM,OAAO,GAAG,IAAI,mCAAqB,EAAE,CAAA;QAC3C,MAAM,KAAK,GAAG,IAAI,gCAAkB,EAAE,CAAA;QACtC,MAAM,IAAI,GAAG,IAAI,gCAAkB,EAAE,CAAA;QACrC,MAAM,YAAY,GAAG,IAAI,0BAAY,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;QACtD,MAAM,UAAU,GAAG,IAAI,wBAAU,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QACnF,OAAO,IAAI,yBAAW,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IAChH,CAAC;CACD;AAlBD,gDAkBC"}
@@ -0,0 +1,3 @@
1
+ export * from './sentence';
2
+ export * from './metadata';
3
+ export * from './services';
@@ -0,0 +1,20 @@
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("./sentence"), exports);
18
+ __exportStar(require("./metadata"), exports);
19
+ __exportStar(require("./services"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/sentence/domain/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA0B;AAC1B,6CAA0B;AAC1B,6CAA0B"}
@@ -0,0 +1,37 @@
1
+ import { Behavior, Constraint, Property, Relation } from '../../schema/domain/schema';
2
+ import { Parameter, Position } from '3xpr';
3
+ export interface MetadataParameter {
4
+ name: string;
5
+ type: string;
6
+ children?: MetadataParameter[];
7
+ }
8
+ export interface MetadataModel {
9
+ name: string;
10
+ type: string;
11
+ children?: MetadataModel[];
12
+ }
13
+ export interface MetadataConstraint {
14
+ entity: string;
15
+ constraints: Constraint[];
16
+ children?: MetadataConstraint[];
17
+ }
18
+ export interface Metadata {
19
+ classtype: string;
20
+ pos: Position;
21
+ name: string;
22
+ children?: Metadata[];
23
+ type: string;
24
+ returnType?: string;
25
+ entity?: string;
26
+ columns?: Property[];
27
+ property?: string;
28
+ parameters?: Parameter[];
29
+ constraints?: Constraint[];
30
+ values?: Behavior[];
31
+ defaults?: Behavior[];
32
+ relation?: Relation;
33
+ clause?: string;
34
+ alias?: string;
35
+ isRoot?: boolean;
36
+ number?: number;
37
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../../../src/lib/sentence/domain/metadata.ts"],"names":[],"mappings":""}
@@ -0,0 +1,68 @@
1
+ import { Property, Relation, Behavior, Constraint } from '../../schema/domain';
2
+ import { Parameter, Operand, Position } from '3xpr';
3
+ import { Type } from 'typ3s';
4
+ import { SentenceAction } from '../../schema/domain/sentence';
5
+ export declare class Constant extends Operand {
6
+ eval(): any;
7
+ }
8
+ export declare class Field extends Operand {
9
+ entity: string;
10
+ alias?: string;
11
+ isRoot?: boolean;
12
+ prefix?: string;
13
+ constructor(pos: Position, entity: string, name: string, returnType?: Type, alias?: string, isRoot?: boolean);
14
+ fieldName(): any;
15
+ clone(): Field;
16
+ }
17
+ export declare class Clause extends Operand {
18
+ alias: string;
19
+ entity: string;
20
+ constructor(pos: Position, name: string, children: Operand[], entity: string, alias: string);
21
+ }
22
+ export declare class Map extends Clause {
23
+ }
24
+ export declare class Filter extends Clause {
25
+ }
26
+ export declare class GroupBy extends Clause {
27
+ }
28
+ export declare class Having extends Clause {
29
+ }
30
+ export declare class Sort extends Clause {
31
+ }
32
+ export declare class Page extends Clause {
33
+ }
34
+ export declare class From extends Clause {
35
+ }
36
+ export declare class Join extends Clause {
37
+ }
38
+ export declare class Insert extends Clause {
39
+ }
40
+ export declare class BulkInsert extends Clause {
41
+ }
42
+ export declare class Update extends Clause {
43
+ }
44
+ export declare class Upsert extends Clause {
45
+ }
46
+ export declare class Delete extends Clause {
47
+ }
48
+ export declare class BulkDelete extends Clause {
49
+ }
50
+ export declare class BulkMerge extends Clause {
51
+ }
52
+ export declare class Sentence extends Operand {
53
+ columns: Property[];
54
+ parameters: Parameter[];
55
+ entity: string;
56
+ alias: string;
57
+ action: SentenceAction;
58
+ constraints: Constraint[];
59
+ values: Behavior[];
60
+ defaults: Behavior[];
61
+ constructor(pos: Position, name: string, children: Operand[], entity: string, alias: string);
62
+ getIncludes(): SentenceInclude[];
63
+ getCompositeIncludes(): SentenceInclude[];
64
+ }
65
+ export declare class SentenceInclude extends Operand {
66
+ relation: Relation;
67
+ constructor(pos: Position, name: string, children: Operand[], relation: Relation);
68
+ }
@@ -0,0 +1,128 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SentenceInclude = exports.Sentence = exports.BulkMerge = exports.BulkDelete = exports.Delete = exports.Upsert = exports.Update = exports.BulkInsert = exports.Insert = exports.Join = exports.From = exports.Page = exports.Sort = exports.Having = exports.GroupBy = exports.Filter = exports.Map = exports.Clause = exports.Field = exports.Constant = void 0;
4
+ const _3xpr_1 = require("3xpr");
5
+ const typ3s_1 = require("typ3s");
6
+ const sentence_1 = require("../../schema/domain/sentence");
7
+ const SqlString = require('sqlstring');
8
+ class Constant extends _3xpr_1.Operand {
9
+ eval() {
10
+ if (this.returnType === undefined) {
11
+ return SqlString.escape(this.name);
12
+ }
13
+ switch (this.returnType) {
14
+ case typ3s_1.Type.string:
15
+ return SqlString.escape(this.name);
16
+ case typ3s_1.Type.boolean:
17
+ return this.name === 'true';
18
+ case typ3s_1.Type.integer:
19
+ return parseInt(this.name);
20
+ case typ3s_1.Type.number:
21
+ case typ3s_1.Type.decimal:
22
+ return parseFloat(this.name);
23
+ default:
24
+ return SqlString.escape(this.name);
25
+ }
26
+ }
27
+ }
28
+ exports.Constant = Constant;
29
+ class Field extends _3xpr_1.Operand {
30
+ constructor(pos, entity, name, returnType, alias, isRoot) {
31
+ super(pos, name, _3xpr_1.OperandType.Var, [], returnType);
32
+ this.entity = entity;
33
+ this.alias = alias;
34
+ this.isRoot = isRoot;
35
+ }
36
+ fieldName() {
37
+ if (this.alias === undefined || !this.name.startsWith(this.alias + '.')) {
38
+ return this.name;
39
+ }
40
+ return this.name.replace(this.alias + '.', '');
41
+ }
42
+ clone() {
43
+ return new Field(this.pos, this.entity, this.name, this.returnType, this.alias, this.isRoot);
44
+ }
45
+ }
46
+ exports.Field = Field;
47
+ class Clause extends _3xpr_1.Operand {
48
+ constructor(pos, name, children, entity, alias) {
49
+ super(pos, name, _3xpr_1.OperandType.Arrow, children, typ3s_1.Type.any);
50
+ this.alias = alias;
51
+ this.entity = entity;
52
+ }
53
+ }
54
+ exports.Clause = Clause;
55
+ class Map extends Clause {
56
+ }
57
+ exports.Map = Map;
58
+ class Filter extends Clause {
59
+ }
60
+ exports.Filter = Filter;
61
+ class GroupBy extends Clause {
62
+ }
63
+ exports.GroupBy = GroupBy;
64
+ class Having extends Clause {
65
+ }
66
+ exports.Having = Having;
67
+ class Sort extends Clause {
68
+ }
69
+ exports.Sort = Sort;
70
+ class Page extends Clause {
71
+ }
72
+ exports.Page = Page;
73
+ class From extends Clause {
74
+ }
75
+ exports.From = From;
76
+ class Join extends Clause {
77
+ }
78
+ exports.Join = Join;
79
+ class Insert extends Clause {
80
+ }
81
+ exports.Insert = Insert;
82
+ class BulkInsert extends Clause {
83
+ }
84
+ exports.BulkInsert = BulkInsert;
85
+ class Update extends Clause {
86
+ }
87
+ exports.Update = Update;
88
+ class Upsert extends Clause {
89
+ }
90
+ exports.Upsert = Upsert;
91
+ class Delete extends Clause {
92
+ }
93
+ exports.Delete = Delete;
94
+ class BulkDelete extends Clause {
95
+ }
96
+ exports.BulkDelete = BulkDelete;
97
+ class BulkMerge extends Clause {
98
+ }
99
+ exports.BulkMerge = BulkMerge;
100
+ class Sentence extends _3xpr_1.Operand {
101
+ constructor(pos, name, children, entity, alias) {
102
+ super(pos, name, _3xpr_1.OperandType.Arrow, children, typ3s_1.Type.any);
103
+ this.action = sentence_1.SentenceAction[name];
104
+ this.entity = entity;
105
+ this.alias = alias;
106
+ this.columns = [];
107
+ this.parameters = [];
108
+ this.constraints = [];
109
+ this.values = [];
110
+ this.defaults = [];
111
+ }
112
+ getIncludes() {
113
+ return this.children.filter(p => p instanceof SentenceInclude);
114
+ }
115
+ getCompositeIncludes() {
116
+ const includes = this.getIncludes();
117
+ return includes.filter(p => p.relation.composite);
118
+ }
119
+ }
120
+ exports.Sentence = Sentence;
121
+ class SentenceInclude extends _3xpr_1.Operand {
122
+ constructor(pos, name, children, relation) {
123
+ super(pos, name, _3xpr_1.OperandType.Arrow, children, typ3s_1.Type.any);
124
+ this.relation = relation;
125
+ }
126
+ }
127
+ exports.SentenceInclude = SentenceInclude;
128
+ //# sourceMappingURL=sentence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sentence.js","sourceRoot":"","sources":["../../../../src/lib/sentence/domain/sentence.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { ViewConfigService } from '../../schema/application';
2
+ import { Sentence } from './sentence';
3
+ export interface ISentenceBuilder {
4
+ build(query: string): Sentence;
5
+ }
6
+ export interface ISentenceCompleteBuilder {
7
+ build(query: string, view: ViewConfigService, stage: string): Sentence;
8
+ }
9
+ export interface SentenceSerializer {
10
+ clone(sentence: Sentence): Sentence;
11
+ serialize(sentence: Sentence): string;
12
+ deserialize(value: string): Sentence;
13
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=services.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"services.js","sourceRoot":"","sources":["../../../../src/lib/sentence/domain/services.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ export declare class SintaxisError extends Error {
2
+ constructor(message: string);
3
+ }
4
+ export declare class MethodNotImplemented extends Error {
5
+ constructor(_class: string, method: string);
6
+ }
7
+ export declare class NotImplemented extends Error {
8
+ constructor(message: string);
9
+ }
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NotImplemented = exports.MethodNotImplemented = exports.SintaxisError = void 0;
4
+ class SintaxisError extends Error {
5
+ constructor(message) {
6
+ super(message);
7
+ this.name = 'SintaxisError';
8
+ }
9
+ }
10
+ exports.SintaxisError = SintaxisError;
11
+ class MethodNotImplemented extends Error {
12
+ constructor(_class, method) {
13
+ super(`method ${method} in class: ${_class} not implemented`);
14
+ this.name = 'MethodNotImplemented';
15
+ }
16
+ }
17
+ exports.MethodNotImplemented = MethodNotImplemented;
18
+ class NotImplemented extends Error {
19
+ constructor(message) {
20
+ super(message);
21
+ this.name = 'NotImplemented';
22
+ }
23
+ }
24
+ exports.NotImplemented = NotImplemented;
25
+ //# sourceMappingURL=error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../../../../src/lib/shared/domain/error.ts"],"names":[],"mappings":";;;AAAA,MAAa,aAAc,SAAQ,KAAK;IACvC,YAAa,OAAc;QAC1B,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,eAAe,CAAA;IAC5B,CAAC;CACD;AALD,sCAKC;AAED,MAAa,oBAAqB,SAAQ,KAAK;IAC9C,YAAa,MAAa,EAAE,MAAa;QACxC,KAAK,CAAC,UAAU,MAAM,cAAc,MAAM,kBAAkB,CAAC,CAAA;QAC7D,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAA;IACnC,CAAC;CACD;AALD,oDAKC;AAED,MAAa,cAAe,SAAQ,KAAK;IACxC,YAAa,OAAc;QAC1B,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAA;IAC7B,CAAC;CACD;AALD,wCAKC"}
@@ -0,0 +1,9 @@
1
+ export declare enum LogLevel {
2
+ INFO = "info",
3
+ ERROR = "error"
4
+ }
5
+ export declare abstract class Logger {
6
+ log(message: string | any, level?: LogLevel): Promise<void>;
7
+ protected abstract info(message: string): Promise<void>;
8
+ protected abstract error(message: string | any): Promise<void>;
9
+ }