@data7expressions/3xpr 5.0.0

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 (213) hide show
  1. package/CHANGELOG.md +78 -0
  2. package/LICENSE +201 -0
  3. package/README.md +144 -0
  4. package/expression/application/expressions.d.ts +69 -0
  5. package/expression/application/expressions.d.ts.map +1 -0
  6. package/expression/application/expressions.js +157 -0
  7. package/expression/application/expressions.js.map +1 -0
  8. package/expression/application/index.d.ts +4 -0
  9. package/expression/application/index.d.ts.map +1 -0
  10. package/expression/application/index.js +20 -0
  11. package/expression/application/index.js.map +1 -0
  12. package/expression/application/useCases/convert.d.ts +8 -0
  13. package/expression/application/useCases/convert.d.ts.map +1 -0
  14. package/expression/application/useCases/convert.js +25 -0
  15. package/expression/application/useCases/convert.js.map +1 -0
  16. package/expression/application/useCases/executor.d.ts +11 -0
  17. package/expression/application/useCases/executor.d.ts.map +1 -0
  18. package/expression/application/useCases/executor.js +23 -0
  19. package/expression/application/useCases/executor.js.map +1 -0
  20. package/expression/application/useCases/executorObserveDecorator.d.ts +16 -0
  21. package/expression/application/useCases/executorObserveDecorator.d.ts.map +1 -0
  22. package/expression/application/useCases/executorObserveDecorator.js +98 -0
  23. package/expression/application/useCases/executorObserveDecorator.js.map +1 -0
  24. package/expression/domain/expressions.d.ts +29 -0
  25. package/expression/domain/expressions.d.ts.map +1 -0
  26. package/expression/domain/expressions.js +3 -0
  27. package/expression/domain/expressions.js.map +1 -0
  28. package/expression/domain/index.d.ts +2 -0
  29. package/expression/domain/index.d.ts.map +1 -0
  30. package/expression/domain/index.js +18 -0
  31. package/expression/domain/index.js.map +1 -0
  32. package/expression/infrastructure/convertFrom/convertFromFunction.d.ts +15 -0
  33. package/expression/infrastructure/convertFrom/convertFromFunction.d.ts.map +1 -0
  34. package/expression/infrastructure/convertFrom/convertFromFunction.js +45 -0
  35. package/expression/infrastructure/convertFrom/convertFromFunction.js.map +1 -0
  36. package/expression/infrastructure/convertFrom/convertFromGraphql.d.ts +5 -0
  37. package/expression/infrastructure/convertFrom/convertFromGraphql.d.ts.map +1 -0
  38. package/expression/infrastructure/convertFrom/convertFromGraphql.js +96 -0
  39. package/expression/infrastructure/convertFrom/convertFromGraphql.js.map +1 -0
  40. package/expression/infrastructure/expressionsBuilder.d.ts +8 -0
  41. package/expression/infrastructure/expressionsBuilder.d.ts.map +1 -0
  42. package/expression/infrastructure/expressionsBuilder.js +28 -0
  43. package/expression/infrastructure/expressionsBuilder.js.map +1 -0
  44. package/expression/infrastructure/helper.d.ts +7 -0
  45. package/expression/infrastructure/helper.d.ts.map +1 -0
  46. package/expression/infrastructure/helper.js +34 -0
  47. package/expression/infrastructure/helper.js.map +1 -0
  48. package/expression/infrastructure/index.d.ts +2 -0
  49. package/expression/infrastructure/index.d.ts.map +1 -0
  50. package/expression/infrastructure/index.js +18 -0
  51. package/expression/infrastructure/index.js.map +1 -0
  52. package/expression/infrastructure/library.d.ts +30 -0
  53. package/expression/infrastructure/library.d.ts.map +1 -0
  54. package/expression/infrastructure/library.js +1813 -0
  55. package/expression/infrastructure/library.js.map +1 -0
  56. package/index.d.ts +31 -0
  57. package/index.d.ts.map +1 -0
  58. package/index.js +64 -0
  59. package/index.js.map +1 -0
  60. package/jest-unit-config.json +15 -0
  61. package/model/application/index.d.ts +2 -0
  62. package/model/application/index.d.ts.map +1 -0
  63. package/model/application/index.js +18 -0
  64. package/model/application/index.js.map +1 -0
  65. package/model/application/modelService.d.ts +42 -0
  66. package/model/application/modelService.d.ts.map +1 -0
  67. package/model/application/modelService.js +329 -0
  68. package/model/application/modelService.js.map +1 -0
  69. package/model/domain/index.d.ts +3 -0
  70. package/model/domain/index.d.ts.map +1 -0
  71. package/model/domain/index.js +19 -0
  72. package/model/domain/index.js.map +1 -0
  73. package/model/domain/library.d.ts +5 -0
  74. package/model/domain/library.d.ts.map +1 -0
  75. package/model/domain/library.js +3 -0
  76. package/model/domain/library.js.map +1 -0
  77. package/model/domain/services.d.ts +32 -0
  78. package/model/domain/services.d.ts.map +1 -0
  79. package/model/domain/services.js +3 -0
  80. package/model/domain/services.js.map +1 -0
  81. package/operand/application/facade.d.ts +27 -0
  82. package/operand/application/facade.d.ts.map +1 -0
  83. package/operand/application/facade.js +42 -0
  84. package/operand/application/facade.js.map +1 -0
  85. package/operand/application/index.d.ts +15 -0
  86. package/operand/application/index.d.ts.map +1 -0
  87. package/operand/application/index.js +31 -0
  88. package/operand/application/index.js.map +1 -0
  89. package/operand/application/services/builder.d.ts +17 -0
  90. package/operand/application/services/builder.d.ts.map +1 -0
  91. package/operand/application/services/builder.js +30 -0
  92. package/operand/application/services/builder.js.map +1 -0
  93. package/operand/application/services/builderCacheDecorator.d.ts +14 -0
  94. package/operand/application/services/builderCacheDecorator.d.ts.map +1 -0
  95. package/operand/application/services/builderCacheDecorator.js +29 -0
  96. package/operand/application/services/builderCacheDecorator.js.map +1 -0
  97. package/operand/application/services/factory.d.ts +10 -0
  98. package/operand/application/services/factory.d.ts.map +1 -0
  99. package/operand/application/services/factory.js +24 -0
  100. package/operand/application/services/factory.js.map +1 -0
  101. package/operand/application/services/normalizer.d.ts +4 -0
  102. package/operand/application/services/normalizer.d.ts.map +1 -0
  103. package/operand/application/services/normalizer.js +51 -0
  104. package/operand/application/services/normalizer.js.map +1 -0
  105. package/operand/application/services/parameterService.d.ts +6 -0
  106. package/operand/application/services/parameterService.d.ts.map +1 -0
  107. package/operand/application/services/parameterService.js +23 -0
  108. package/operand/application/services/parameterService.js.map +1 -0
  109. package/operand/application/services/parser.d.ts +49 -0
  110. package/operand/application/services/parser.d.ts.map +1 -0
  111. package/operand/application/services/parser.js +751 -0
  112. package/operand/application/services/parser.js.map +1 -0
  113. package/operand/application/services/serializer.d.ts +10 -0
  114. package/operand/application/services/serializer.d.ts.map +1 -0
  115. package/operand/application/services/serializer.js +40 -0
  116. package/operand/application/services/serializer.js.map +1 -0
  117. package/operand/application/services/typeService.d.ts +37 -0
  118. package/operand/application/services/typeService.d.ts.map +1 -0
  119. package/operand/application/services/typeService.js +392 -0
  120. package/operand/application/services/typeService.js.map +1 -0
  121. package/operand/application/useCases/build.d.ts +10 -0
  122. package/operand/application/useCases/build.d.ts.map +1 -0
  123. package/operand/application/useCases/build.js +25 -0
  124. package/operand/application/useCases/build.js.map +1 -0
  125. package/operand/application/useCases/clone.d.ts +10 -0
  126. package/operand/application/useCases/clone.d.ts.map +1 -0
  127. package/operand/application/useCases/clone.js +34 -0
  128. package/operand/application/useCases/clone.js.map +1 -0
  129. package/operand/application/useCases/complete.d.ts +9 -0
  130. package/operand/application/useCases/complete.d.ts.map +1 -0
  131. package/operand/application/useCases/complete.js +26 -0
  132. package/operand/application/useCases/complete.js.map +1 -0
  133. package/operand/application/useCases/normalize.d.ts +9 -0
  134. package/operand/application/useCases/normalize.d.ts.map +1 -0
  135. package/operand/application/useCases/normalize.js +43 -0
  136. package/operand/application/useCases/normalize.js.map +1 -0
  137. package/operand/application/useCases/reduce.d.ts +11 -0
  138. package/operand/application/useCases/reduce.d.ts.map +1 -0
  139. package/operand/application/useCases/reduce.js +57 -0
  140. package/operand/application/useCases/reduce.js.map +1 -0
  141. package/operand/domain/constBuilder.d.ts +5 -0
  142. package/operand/domain/constBuilder.d.ts.map +1 -0
  143. package/operand/domain/constBuilder.js +3 -0
  144. package/operand/domain/constBuilder.js.map +1 -0
  145. package/operand/domain/entities.d.ts +60 -0
  146. package/operand/domain/entities.d.ts.map +1 -0
  147. package/operand/domain/entities.js +38 -0
  148. package/operand/domain/entities.js.map +1 -0
  149. package/operand/domain/index.d.ts +4 -0
  150. package/operand/domain/index.d.ts.map +1 -0
  151. package/operand/domain/index.js +20 -0
  152. package/operand/domain/index.js.map +1 -0
  153. package/operand/domain/services.d.ts +39 -0
  154. package/operand/domain/services.d.ts.map +1 -0
  155. package/operand/domain/services.js +3 -0
  156. package/operand/domain/services.js.map +1 -0
  157. package/operand/infrastructure/constBuilder.d.ts +6 -0
  158. package/operand/infrastructure/constBuilder.d.ts.map +1 -0
  159. package/operand/infrastructure/constBuilder.js +15 -0
  160. package/operand/infrastructure/constBuilder.js.map +1 -0
  161. package/operand/infrastructure/executors/expression.d.ts +34 -0
  162. package/operand/infrastructure/executors/expression.d.ts.map +1 -0
  163. package/operand/infrastructure/executors/expression.js +534 -0
  164. package/operand/infrastructure/executors/expression.js.map +1 -0
  165. package/operand/infrastructure/executors/task.d.ts +8 -0
  166. package/operand/infrastructure/executors/task.d.ts.map +1 -0
  167. package/operand/infrastructure/executors/task.js +492 -0
  168. package/operand/infrastructure/executors/task.js.map +1 -0
  169. package/operand/infrastructure/facadeBuilder.d.ts +10 -0
  170. package/operand/infrastructure/facadeBuilder.d.ts.map +1 -0
  171. package/operand/infrastructure/facadeBuilder.js +35 -0
  172. package/operand/infrastructure/facadeBuilder.js.map +1 -0
  173. package/operand/infrastructure/helper.d.ts +20 -0
  174. package/operand/infrastructure/helper.d.ts.map +1 -0
  175. package/operand/infrastructure/helper.js +272 -0
  176. package/operand/infrastructure/helper.js.map +1 -0
  177. package/operand/infrastructure/index.d.ts +4 -0
  178. package/operand/infrastructure/index.d.ts.map +1 -0
  179. package/operand/infrastructure/index.js +20 -0
  180. package/operand/infrastructure/index.js.map +1 -0
  181. package/package.json +39 -0
  182. package/shared/domain/base.d.ts +32 -0
  183. package/shared/domain/base.d.ts.map +1 -0
  184. package/shared/domain/base.js +12 -0
  185. package/shared/domain/base.js.map +1 -0
  186. package/shared/domain/context.d.ts +37 -0
  187. package/shared/domain/context.d.ts.map +1 -0
  188. package/shared/domain/context.js +93 -0
  189. package/shared/domain/context.js.map +1 -0
  190. package/shared/domain/index.d.ts +6 -0
  191. package/shared/domain/index.d.ts.map +1 -0
  192. package/shared/domain/index.js +22 -0
  193. package/shared/domain/index.js.map +1 -0
  194. package/shared/domain/observer.d.ts +15 -0
  195. package/shared/domain/observer.d.ts.map +1 -0
  196. package/shared/domain/observer.js +11 -0
  197. package/shared/domain/observer.js.map +1 -0
  198. package/shared/domain/operand.d.ts +55 -0
  199. package/shared/domain/operand.d.ts.map +1 -0
  200. package/shared/domain/operand.js +69 -0
  201. package/shared/domain/operand.js.map +1 -0
  202. package/shared/domain/signals.d.ts +8 -0
  203. package/shared/domain/signals.d.ts.map +1 -0
  204. package/shared/domain/signals.js +3 -0
  205. package/shared/domain/signals.js.map +1 -0
  206. package/shared/infrastructure/helper.d.ts +9 -0
  207. package/shared/infrastructure/helper.d.ts.map +1 -0
  208. package/shared/infrastructure/helper.js +16 -0
  209. package/shared/infrastructure/helper.js.map +1 -0
  210. package/shared/infrastructure/index.d.ts +2 -0
  211. package/shared/infrastructure/index.d.ts.map +1 -0
  212. package/shared/infrastructure/index.js +18 -0
  213. package/shared/infrastructure/index.js.map +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../../../../src/lib/operand/application/services/parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { Operand } from '../../../shared/domain';
2
+ import { OperandSerializer } from '../../domain';
3
+ export declare class OperandSerializerImpl implements OperandSerializer {
4
+ clone(sentence: Operand): Operand;
5
+ serialize(sentence: Operand): string;
6
+ deserialize(value: string): Operand;
7
+ private _serialize;
8
+ private _deserialize;
9
+ }
10
+ //# sourceMappingURL=serializer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serializer.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/operand/application/services/serializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAe,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAmB,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAGjE,qBAAa,qBAAsB,YAAW,iBAAiB;IACvD,KAAK,CAAE,QAAQ,EAAE,OAAO,GAAG,OAAO;IAMlC,SAAS,CAAE,QAAQ,EAAE,OAAO,GAAG,MAAM;IAIrC,WAAW,CAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAI3C,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,YAAY;CAapB"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OperandSerializerImpl = void 0;
4
+ const domain_1 = require("../../../shared/domain");
5
+ const typ3s_1 = require("@data7expressions/typ3s");
6
+ class OperandSerializerImpl {
7
+ clone(sentence) {
8
+ const serialized = this.serialize(sentence);
9
+ const deserialized = this.deserialize(serialized);
10
+ return deserialized;
11
+ }
12
+ serialize(sentence) {
13
+ return JSON.stringify(this._serialize(sentence));
14
+ }
15
+ deserialize(value) {
16
+ return (this._deserialize(JSON.parse(value)));
17
+ }
18
+ _serialize(operand) {
19
+ const children = [];
20
+ for (const child of operand.children) {
21
+ children.push(this._serialize(child));
22
+ }
23
+ return { pos: operand.pos, name: operand.name, children, number: operand.number, type: operand.type, returnType: operand.returnType !== undefined ? typ3s_1.Type.stringify(operand.returnType) : undefined };
24
+ }
25
+ _deserialize(metadata) {
26
+ const children = [];
27
+ if (metadata.children) {
28
+ for (const child of metadata.children) {
29
+ const deserialized = this._deserialize(child);
30
+ children.push(deserialized);
31
+ }
32
+ }
33
+ // eslint-disable-next-line no-case-declarations
34
+ const operand = new domain_1.Operand(metadata.pos, metadata.name, domain_1.OperandType[metadata.type], children, metadata.returnType !== undefined ? typ3s_1.Type.to(metadata.returnType) : undefined);
35
+ operand.number = metadata.number;
36
+ return operand;
37
+ }
38
+ }
39
+ exports.OperandSerializerImpl = OperandSerializerImpl;
40
+ //# sourceMappingURL=serializer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serializer.js","sourceRoot":"","sources":["../../../../../../src/lib/operand/application/services/serializer.ts"],"names":[],"mappings":";;;AAAA,mDAA6D;AAE7D,mDAA8C;AAE9C,MAAa,qBAAqB;IAC1B,KAAK,CAAE,QAAiB;QAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;QAC3C,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA;QACjD,OAAO,YAAY,CAAA;IACpB,CAAC;IAEM,SAAS,CAAE,QAAiB;QAClC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAA;IACjD,CAAC;IAEM,WAAW,CAAE,KAAa;QAChC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAC9C,CAAC;IAEO,UAAU,CAAE,OAAgB;QACnC,MAAM,QAAQ,GAAqB,EAAE,CAAA;QACrC,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACtC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;QACtC,CAAC;QACD,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,YAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAA;IACrM,CAAC;IAEO,YAAY,CAAE,QAAyB;QAC9C,MAAM,QAAQ,GAAa,EAAE,CAAA;QAC7B,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACvB,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBACvC,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;gBAC7C,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;YAC5B,CAAC;QACF,CAAC;QACD,gDAAgD;QAChD,MAAM,OAAO,GAAG,IAAI,gBAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,EAAE,oBAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,YAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,UAAoB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QACtL,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAA;QAChC,OAAO,OAAO,CAAA;IACf,CAAC;CACD;AApCD,sDAoCC"}
@@ -0,0 +1,37 @@
1
+ import { TypeService, OperatorMetadata } from '../../domain';
2
+ import { Operand } from '../../../shared/domain';
3
+ import { ModelService } from '../../../model/domain';
4
+ import { Type } from '@data7expressions/typ3s';
5
+ export declare class TypeServiceImpl implements TypeService {
6
+ private readonly model;
7
+ constructor(model: ModelService);
8
+ getType(operand: Operand): Type;
9
+ solve(operand: Operand): void;
10
+ protected solveType(operand: Operand): void;
11
+ protected solveTemplate(operand: Operand): void;
12
+ protected setUndefinedAsAny(operand: Operand): void;
13
+ protected solveObject(obj: Operand): void;
14
+ protected solveProperty(property: Operand): void;
15
+ protected solveArray(array: Operand): void;
16
+ protected solveBlock(block: Operand): void;
17
+ protected solveAny(_for: Operand): void;
18
+ protected solveArrow(arrow: Operand): void;
19
+ protected solveOperator(operator: Operand): void;
20
+ protected trySolveFromMetadata(type?: string): Type | undefined;
21
+ protected solveTemplateArray(array: Operand): void;
22
+ protected solveTemplateProperty(property: Operand): void;
23
+ protected solveTemplateObject(obj: Operand): void;
24
+ protected solveTemplateOperator(operator: Operand, metadata: OperatorMetadata): void;
25
+ protected getElementType(array: Operand): Type | undefined;
26
+ protected setVariableType(name: string, type: Type, operand: Operand): void;
27
+ protected isIndeterminateType(type?: string): boolean;
28
+ protected hadTemplate(metadata: OperatorMetadata): boolean;
29
+ protected undefinedTypes(operator: Operand): boolean;
30
+ /**
31
+ * get metadata of operand
32
+ * @param operator
33
+ * @returns
34
+ */
35
+ protected metadata(operator: Operand): OperatorMetadata;
36
+ }
37
+ //# sourceMappingURL=typeService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typeService.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/operand/application/services/typeService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,EAAE,OAAO,EAAe,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,EAAE,IAAI,EAAmC,MAAM,yBAAyB,CAAA;AAE/E,qBAAa,eAAgB,YAAW,WAAW;IAErC,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,YAAY;IAc1C,OAAO,CAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAKhC,KAAK,CAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAMrC,SAAS,CAAC,SAAS,CAAE,OAAO,EAAE,OAAO,GAAE,IAAI;IAoC3C,SAAS,CAAC,aAAa,CAAE,OAAO,EAAE,OAAO,GAAE,IAAI;IAmC/C,SAAS,CAAC,iBAAiB,CAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IASpD,SAAS,CAAC,WAAW,CAAE,GAAG,EAAE,OAAO,GAAG,IAAI;IAU1C,SAAS,CAAC,aAAa,CAAE,QAAQ,EAAE,OAAO,GAAG,IAAI;IAgBjD,SAAS,CAAC,UAAU,CAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAW3C,SAAS,CAAC,UAAU,CAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAS3C,SAAS,CAAC,QAAQ,CAAE,IAAI,EAAE,OAAO,GAAG,IAAI;IASxC,SAAS,CAAC,UAAU,CAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAiC3C,SAAS,CAAC,aAAa,CAAE,QAAQ,EAAE,OAAO,GAAG,IAAI;IAiCjD,SAAS,CAAC,oBAAoB,CAAE,IAAI,CAAC,EAAC,MAAM,GAAI,IAAI,GAAG,SAAS;IAkBhE,SAAS,CAAC,kBAAkB,CAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAQnD,SAAS,CAAC,qBAAqB,CAAE,QAAQ,EAAE,OAAO,GAAG,IAAI;IAezD,SAAS,CAAC,mBAAmB,CAAE,GAAG,EAAE,OAAO,GAAG,IAAI;IAmBlD,SAAS,CAAC,qBAAqB,CAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAC,gBAAgB,GAAG,IAAI;IA6DpF,SAAS,CAAC,cAAc,CAAE,KAAK,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS;IAI3D,SAAS,CAAC,eAAe,CAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO;IAYrE,SAAS,CAAC,mBAAmB,CAAE,IAAI,CAAC,EAAC,MAAM,GAAG,OAAO;IAOrD,SAAS,CAAC,WAAW,CAAE,QAAQ,EAAE,gBAAgB,GAAG,OAAO;IAI3D,SAAS,CAAC,cAAc,CAAE,QAAQ,EAAE,OAAO,GAAG,OAAO;IAIrD;;;;OAIG;IACH,SAAS,CAAC,QAAQ,CAAE,QAAQ,EAAE,OAAO,GAAG,gBAAgB;CAKxD"}
@@ -0,0 +1,392 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TypeServiceImpl = void 0;
4
+ const domain_1 = require("../../../shared/domain");
5
+ const typ3s_1 = require("@data7expressions/typ3s");
6
+ class TypeServiceImpl {
7
+ // eslint-disable-next-line no-useless-constructor
8
+ constructor(model) {
9
+ this.model = model;
10
+ }
11
+ // Example
12
+ // {
13
+ // users:[{name:string,age:integer}],
14
+ // tuple: [integer,string]
15
+ // entries:[string,any]
16
+ // }
17
+ // Primitives: integer, decimal, string, boolean, dateTime, date, time
18
+ // array: [<<type>>]
19
+ // object {key:<<type>>}
20
+ // predicate: c + b < a
21
+ // indeterminate: any
22
+ getType(operand) {
23
+ this.solve(operand);
24
+ return operand.returnType || typ3s_1.Type.any;
25
+ }
26
+ solve(operand) {
27
+ this.solveType(operand);
28
+ this.solveTemplate(operand);
29
+ this.setUndefinedAsAny(operand);
30
+ }
31
+ solveType(operand) {
32
+ if (operand.type === domain_1.OperandType.Const ||
33
+ operand.type === domain_1.OperandType.Var ||
34
+ operand.type === domain_1.OperandType.Template ||
35
+ operand.type === domain_1.OperandType.Env ||
36
+ operand.type === domain_1.OperandType.Default ||
37
+ operand.type === domain_1.OperandType.Return ||
38
+ operand.type === domain_1.OperandType.Break) {
39
+ return;
40
+ }
41
+ if (operand.type === domain_1.OperandType.List) {
42
+ this.solveArray(operand);
43
+ }
44
+ else if (operand.type === domain_1.OperandType.Obj) {
45
+ this.solveObject(operand);
46
+ }
47
+ else if (operand.type === domain_1.OperandType.Arrow) {
48
+ this.solveArrow(operand);
49
+ }
50
+ else if (operand.type === domain_1.OperandType.Operator || operand.type === domain_1.OperandType.ChildFunc || operand.type === domain_1.OperandType.CallFunc) {
51
+ this.solveOperator(operand);
52
+ }
53
+ else if (operand.type === domain_1.OperandType.Property) {
54
+ this.solveProperty(operand);
55
+ }
56
+ else if (operand.type === domain_1.OperandType.Block) {
57
+ this.solveBlock(operand);
58
+ }
59
+ else if (operand.type === domain_1.OperandType.If ||
60
+ operand.type === domain_1.OperandType.ElseIf ||
61
+ operand.type === domain_1.OperandType.Else ||
62
+ operand.type === domain_1.OperandType.For ||
63
+ operand.type === domain_1.OperandType.ForIn ||
64
+ operand.type === domain_1.OperandType.While ||
65
+ operand.type === domain_1.OperandType.Switch ||
66
+ operand.type === domain_1.OperandType.Case) {
67
+ this.solveAny(operand);
68
+ }
69
+ else {
70
+ throw new Error(`Type: ${operand.type} name: ${operand.name} not supported`);
71
+ }
72
+ }
73
+ solveTemplate(operand) {
74
+ if (operand.type === domain_1.OperandType.Const ||
75
+ operand.type === domain_1.OperandType.Var ||
76
+ operand.type === domain_1.OperandType.Template ||
77
+ operand.type === domain_1.OperandType.Env ||
78
+ operand.type === domain_1.OperandType.Block ||
79
+ operand.type === domain_1.OperandType.If ||
80
+ operand.type === domain_1.OperandType.ElseIf ||
81
+ operand.type === domain_1.OperandType.Else ||
82
+ operand.type === domain_1.OperandType.For ||
83
+ operand.type === domain_1.OperandType.ForIn ||
84
+ operand.type === domain_1.OperandType.While ||
85
+ operand.type === domain_1.OperandType.Switch ||
86
+ operand.type === domain_1.OperandType.Case) {
87
+ return;
88
+ }
89
+ if (operand.type === domain_1.OperandType.List) {
90
+ this.solveTemplateArray(operand);
91
+ }
92
+ else if (operand.type === domain_1.OperandType.Obj) {
93
+ this.solveTemplateObject(operand);
94
+ }
95
+ else if (operand.type === domain_1.OperandType.Operator || operand.type === domain_1.OperandType.Arrow || operand.type === domain_1.OperandType.ChildFunc || operand.type === domain_1.OperandType.CallFunc) {
96
+ const metadata = this.metadata(operand);
97
+ if (this.hadTemplate(metadata) && this.undefinedTypes(operand)) {
98
+ this.solveTemplateOperator(operand, metadata);
99
+ }
100
+ for (const child of operand.children) {
101
+ this.solveTemplate(child);
102
+ }
103
+ }
104
+ else if (operand.type === domain_1.OperandType.Property) {
105
+ this.solveTemplateProperty(operand);
106
+ }
107
+ else {
108
+ throw new Error(`Type: ${operand.type} name: ${operand.name} on template not supported`);
109
+ }
110
+ }
111
+ setUndefinedAsAny(operand) {
112
+ if (operand.returnType === undefined) {
113
+ operand.returnType = typ3s_1.Type.any;
114
+ }
115
+ for (const child of operand.children) {
116
+ this.setUndefinedAsAny(child);
117
+ }
118
+ }
119
+ solveObject(obj) {
120
+ const properties = [];
121
+ for (const keyVal of obj.children) {
122
+ this.solveType(keyVal.children[0]);
123
+ keyVal.returnType = keyVal.children[0].returnType;
124
+ properties.push({ name: keyVal.name, type: keyVal.children[0].returnType });
125
+ }
126
+ obj.returnType = typ3s_1.Type.Obj(properties);
127
+ }
128
+ solveProperty(property) {
129
+ this.solveType(property.children[0]);
130
+ if (property.children[0].returnType === undefined) {
131
+ property.children[0].returnType = typ3s_1.Type.List(typ3s_1.Type.Obj([{ name: property.name }]));
132
+ }
133
+ else if (typ3s_1.Type.isList(property.children[0].returnType)) {
134
+ const listType = property.children[0].returnType.list;
135
+ if (listType.items && typ3s_1.Type.isObj(listType.items)) {
136
+ const objectType = listType.items.obj;
137
+ const propertyType = objectType.properties.find(p => p.name === property.name);
138
+ if (propertyType && propertyType.type) {
139
+ property.returnType = propertyType.type;
140
+ }
141
+ }
142
+ }
143
+ }
144
+ solveArray(array) {
145
+ if (array.children === undefined || array.children.length === 0) {
146
+ return;
147
+ }
148
+ this.solveType(array.children[0]);
149
+ // si se resolvió el tipo del elemento, el tipo del array sera [<<TYPE>>]
150
+ if (array.children[0].returnType !== undefined) {
151
+ array.returnType = typ3s_1.Type.List(array.children[0].returnType);
152
+ }
153
+ }
154
+ solveBlock(block) {
155
+ if (block.children === undefined || block.children.length === 0) {
156
+ return;
157
+ }
158
+ for (const line of block.children) {
159
+ this.solveType(line);
160
+ }
161
+ }
162
+ solveAny(_for) {
163
+ if (_for.children === undefined || _for.children.length === 0) {
164
+ return;
165
+ }
166
+ for (const part of _for.children) {
167
+ this.solveType(part);
168
+ }
169
+ }
170
+ solveArrow(arrow) {
171
+ const metadata = this.model.getFunction(arrow.name);
172
+ const array = arrow.children[0];
173
+ const variable = arrow.children.length > 1 ? arrow.children[1] : undefined;
174
+ const predicate = arrow.children.length > 2 ? arrow.children[2] : undefined;
175
+ this.solveArray(array);
176
+ const elementType = this.getElementType(array);
177
+ if (elementType && array.returnType && variable) {
178
+ variable.returnType = elementType;
179
+ if (predicate) {
180
+ this.setVariableType(variable.name, elementType, predicate);
181
+ }
182
+ }
183
+ if (!this.isIndeterminateType(metadata.returnType)) {
184
+ // TODO: hay que hacer que se pueda convertir de metadata type a Type y viceversa
185
+ arrow.returnType = typ3s_1.Type.to(metadata.returnType);
186
+ }
187
+ if (array.returnType === undefined && metadata.params[0].type && !this.isIndeterminateType(metadata.params[0].type)) {
188
+ // TODO: hay que hacer que se pueda convertir de metadata type a Type y viceversa
189
+ array.returnType = typ3s_1.Type.to(metadata.params[0].type);
190
+ }
191
+ if (predicate && metadata.params[1].type && !this.isIndeterminateType(metadata.params[1].type)) {
192
+ // TODO: hay que hacer que se pueda convertir de metadata type a Type y viceversa
193
+ predicate.returnType = typ3s_1.Type.to(metadata.params[1].type);
194
+ }
195
+ if (predicate) {
196
+ this.solveType(predicate);
197
+ }
198
+ if (this.hadTemplate(metadata)) {
199
+ this.solveTemplateOperator(arrow, metadata);
200
+ }
201
+ }
202
+ solveOperator(operator) {
203
+ const metadata = this.metadata(operator);
204
+ // intenta resolver el return type por metadata
205
+ if (!this.isIndeterminateType(metadata.returnType)) {
206
+ const returnType = this.trySolveFromMetadata(metadata.returnType);
207
+ if (returnType) {
208
+ operator.returnType = returnType;
209
+ }
210
+ }
211
+ // tries to resolve the types of the operands
212
+ for (let i = 0; i < metadata.params.length; i++) {
213
+ const paramInfo = metadata.params[i];
214
+ const operand = operator.children[i];
215
+ if (operand === undefined) {
216
+ break;
217
+ }
218
+ if (this.isIndeterminateType(paramInfo.type)) {
219
+ continue;
220
+ }
221
+ // intenta resolver el tipo del operand por metadata
222
+ const paramType = this.trySolveFromMetadata(paramInfo.type);
223
+ if (paramType) {
224
+ operand.returnType = paramType;
225
+ }
226
+ }
227
+ for (const child of operator.children) {
228
+ this.solveType(child);
229
+ }
230
+ if (this.hadTemplate(metadata)) {
231
+ this.solveTemplateOperator(operator, metadata);
232
+ }
233
+ }
234
+ trySolveFromMetadata(type) {
235
+ // si de acuerdo a la metadata el tipo es primitivo, asigna el tipo
236
+ if (type === undefined) {
237
+ return undefined;
238
+ }
239
+ if (typ3s_1.Type.isPrimitive(type)) {
240
+ return typ3s_1.Type.to(type);
241
+ }
242
+ // si de acuerdo a la metadata el tipo es un array de primitivo, asigna el tipo, example: string[]
243
+ if (type.endsWith('[]')) {
244
+ const elementType = type.substring(0, type.length - 2);
245
+ if (typ3s_1.Type.isPrimitive(elementType)) {
246
+ return typ3s_1.Type.List(typ3s_1.Type.get(elementType));
247
+ }
248
+ }
249
+ return undefined;
250
+ }
251
+ solveTemplateArray(array) {
252
+ const beforeType = array.children[0].returnType;
253
+ this.solveTemplate(array.children[0]);
254
+ if (array.children[0].returnType && array.children[0].returnType !== beforeType) {
255
+ array.returnType = typ3s_1.Type.List(array.children[0].returnType);
256
+ }
257
+ }
258
+ solveTemplateProperty(property) {
259
+ const beforeType = property.children[0].returnType;
260
+ this.solveTemplate(property.children[0]);
261
+ if (property.children[0].returnType !== undefined && property.children[0].returnType !== beforeType && typ3s_1.Type.isList(property.children[0].returnType)) {
262
+ const arrayType = property.children[0].returnType.list;
263
+ if (typ3s_1.Type.isObj(arrayType.items)) {
264
+ const objectType = arrayType.items.obj;
265
+ const propertyType = objectType.properties.find(p => p.name === property.name);
266
+ if (propertyType && propertyType.type) {
267
+ property.returnType = propertyType.type;
268
+ }
269
+ }
270
+ }
271
+ }
272
+ solveTemplateObject(obj) {
273
+ let changed = false;
274
+ for (const child of obj.children) {
275
+ const value = child.children[0];
276
+ const beforeType = value.returnType;
277
+ this.solveTemplate(value);
278
+ if (value.returnType !== beforeType) {
279
+ changed = true;
280
+ }
281
+ }
282
+ if (changed) {
283
+ const properties = [];
284
+ for (const child of obj.children) {
285
+ properties.push({ name: child.name, type: child.children[0].returnType });
286
+ }
287
+ obj.returnType = typ3s_1.Type.Obj(properties);
288
+ }
289
+ }
290
+ solveTemplateOperator(operator, metadata) {
291
+ let templateType;
292
+ // intenta resolver T por return
293
+ if (operator.returnType) {
294
+ if (metadata.returnType === 'T') {
295
+ templateType = operator.returnType;
296
+ }
297
+ else if (metadata.returnType === 'T[]' && typ3s_1.Type.isList(operator.returnType)) {
298
+ templateType = operator.returnType.list.items;
299
+ }
300
+ }
301
+ // intenta resolver T por alguno de los parámetros
302
+ if (templateType === undefined) {
303
+ for (let i = 0; i < metadata.params.length; i++) {
304
+ const paramMetadata = metadata.params[i];
305
+ if (paramMetadata.type !== 'T' && paramMetadata.type !== 'T[]') {
306
+ continue;
307
+ }
308
+ const child = operator.children[i];
309
+ if (child === undefined) {
310
+ break;
311
+ }
312
+ if (child.returnType) {
313
+ if (paramMetadata.type === 'T') {
314
+ templateType = child.returnType;
315
+ break;
316
+ }
317
+ else if (paramMetadata.type === 'T[]' && typ3s_1.Type.isList(child.returnType)) {
318
+ templateType = child.returnType.list.items;
319
+ break;
320
+ }
321
+ }
322
+ }
323
+ }
324
+ // si pudo resolver el T, resuelve donde se utiliza
325
+ if (templateType !== undefined) {
326
+ if (operator.returnType === undefined) {
327
+ if (metadata.returnType === 'T') {
328
+ operator.returnType = templateType;
329
+ }
330
+ else if (metadata.returnType === 'T[]') {
331
+ operator.returnType = typ3s_1.Type.List(templateType);
332
+ }
333
+ }
334
+ for (let i = 0; i < metadata.params.length; i++) {
335
+ const paramMetadata = metadata.params[i];
336
+ if (paramMetadata.type !== 'T' && paramMetadata.type !== 'T[]') {
337
+ continue;
338
+ }
339
+ const child = operator.children[i];
340
+ if (child === undefined) {
341
+ break;
342
+ }
343
+ if (child.returnType === undefined) {
344
+ if (paramMetadata.type === 'T') {
345
+ child.returnType = templateType;
346
+ }
347
+ else if (paramMetadata.type === 'T[]') {
348
+ child.returnType = typ3s_1.Type.List(templateType);
349
+ }
350
+ }
351
+ }
352
+ }
353
+ }
354
+ getElementType(array) {
355
+ return array.returnType ? array.returnType.list.items : undefined;
356
+ }
357
+ setVariableType(name, type, operand) {
358
+ if (operand.type === domain_1.OperandType.Var && operand.name === name) {
359
+ operand.returnType = type;
360
+ }
361
+ for (const child of operand.children) {
362
+ // es por si se da el caso xxx.filter( p=> p.filter( p => p + 1 ) )
363
+ if (!(child.type === domain_1.OperandType.Arrow && child.children[1].name === name)) {
364
+ this.setVariableType(name, type, child);
365
+ }
366
+ }
367
+ }
368
+ isIndeterminateType(type) {
369
+ if (type === undefined) {
370
+ return true;
371
+ }
372
+ return ['T', 'T[]', 'any', 'any[]'].includes(type);
373
+ }
374
+ hadTemplate(metadata) {
375
+ return metadata.returnType === 'T' || metadata.returnType === 'T[]' || metadata.params.find(p => p.type === 'T' || p.type === 'T[]') !== undefined;
376
+ }
377
+ undefinedTypes(operator) {
378
+ return operator.returnType === undefined || operator.children.find(p => p.returnType === undefined) !== undefined;
379
+ }
380
+ /**
381
+ * get metadata of operand
382
+ * @param operator
383
+ * @returns
384
+ */
385
+ metadata(operator) {
386
+ return operator.type === domain_1.OperandType.Operator
387
+ ? this.model.getOperator(operator.name, operator.children.length)
388
+ : this.model.getFunction(operator.name);
389
+ }
390
+ }
391
+ exports.TypeServiceImpl = TypeServiceImpl;
392
+ //# sourceMappingURL=typeService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typeService.js","sourceRoot":"","sources":["../../../../../../src/lib/operand/application/services/typeService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { Operand } from '../../../shared/domain';
2
+ import { OperandBuilder } from '../../domain';
3
+ export declare class OperandBuild {
4
+ private builders;
5
+ constructor();
6
+ add(key: string, builder: OperandBuilder): OperandBuild;
7
+ get(key: string): OperandBuilder;
8
+ build(expression: string, key?: string): Operand;
9
+ }
10
+ //# sourceMappingURL=build.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/operand/application/useCases/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAE7C,qBAAa,YAAY;IACxB,OAAO,CAAC,QAAQ,CAAI;;IAKb,GAAG,CAAE,GAAG,EAAC,MAAM,EAAE,OAAO,EAAC,cAAc,GAAG,YAAY;IAKtD,GAAG,CAAE,GAAG,EAAC,MAAM,GAAE,cAAc;IAI/B,KAAK,CAAE,UAAU,EAAE,MAAM,EAAE,GAAG,SAAe,GAAG,OAAO;CAO9D"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OperandBuild = void 0;
4
+ class OperandBuild {
5
+ constructor() {
6
+ this.builders = {};
7
+ }
8
+ add(key, builder) {
9
+ this.builders[key] = builder;
10
+ return this;
11
+ }
12
+ get(key) {
13
+ return this.builders[key];
14
+ }
15
+ build(expression, key = 'expression') {
16
+ try {
17
+ return this.get(key).build(expression);
18
+ }
19
+ catch (error) {
20
+ throw new Error(`${key} ${expression} expression error: ${error}`);
21
+ }
22
+ }
23
+ }
24
+ exports.OperandBuild = OperandBuild;
25
+ //# sourceMappingURL=build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../../../../../src/lib/operand/application/useCases/build.ts"],"names":[],"mappings":";;;AAGA,MAAa,YAAY;IAExB;QACC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAA;IACnB,CAAC;IAEM,GAAG,CAAE,GAAU,EAAE,OAAsB;QAC7C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,OAAO,CAAA;QAC5B,OAAO,IAAI,CAAA;IACZ,CAAC;IAEM,GAAG,CAAE,GAAU;QACrB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAmB,CAAA;IAC5C,CAAC;IAEM,KAAK,CAAE,UAAkB,EAAE,GAAG,GAAG,YAAY;QACnD,IAAI,CAAC;YACJ,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;QACvC,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,UAAU,uBAAuB,KAAK,EAAE,CAAC,CAAA;QACpE,CAAC;IACF,CAAC;CACD;AAtBD,oCAsBC"}