@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,10 @@
1
+ import { EvaluatorFactory, OperandCloner } from '../../domain';
2
+ import { Operand } from '../../../shared/domain';
3
+ export declare class OperandClone implements OperandCloner {
4
+ private readonly factories;
5
+ constructor(factories: [string, EvaluatorFactory][]);
6
+ private getFactory;
7
+ clone(operand: Operand, type: string): Operand;
8
+ private _clone;
9
+ }
10
+ //# sourceMappingURL=clone.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clone.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/operand/application/useCases/clone.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,qBAAa,YAAa,YAAW,aAAa;IAEpC,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAC,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAAE;IAEpE,OAAO,CAAC,UAAU;IAQX,KAAK,CAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAC,MAAM,GAAG,OAAO;IAKrD,OAAO,CAAC,MAAM;CAUd"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OperandClone = void 0;
4
+ const domain_1 = require("../../../shared/domain");
5
+ class OperandClone {
6
+ // eslint-disable-next-line no-useless-constructor
7
+ constructor(factories) {
8
+ this.factories = factories;
9
+ }
10
+ getFactory(key) {
11
+ var _a;
12
+ const factory = (_a = this.factories.find(p => p[0] === key)) === null || _a === void 0 ? void 0 : _a[1];
13
+ if (factory === undefined) {
14
+ throw new Error(`Factory ${key} not found`);
15
+ }
16
+ return factory;
17
+ }
18
+ clone(operand, type) {
19
+ const factory = this.getFactory(type);
20
+ return this._clone(operand, factory);
21
+ }
22
+ _clone(source, factory) {
23
+ const children = [];
24
+ for (const child of source.children) {
25
+ children.push(this._clone(child, factory));
26
+ }
27
+ const target = new domain_1.Operand(source.pos, source.name, source.type, children, source.returnType);
28
+ target.id = source.id;
29
+ target.evaluator = factory.create(target);
30
+ return target;
31
+ }
32
+ }
33
+ exports.OperandClone = OperandClone;
34
+ //# sourceMappingURL=clone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clone.js","sourceRoot":"","sources":["../../../../../../src/lib/operand/application/useCases/clone.ts"],"names":[],"mappings":";;;AACA,mDAAgD;AAChD,MAAa,YAAY;IACxB,kDAAkD;IAClD,YAA8B,SAAsC;QAAtC,cAAS,GAAT,SAAS,CAA6B;IAAG,CAAC;IAEhE,UAAU,CAAE,GAAU;;QAC7B,MAAM,OAAO,GAAG,MAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,0CAAG,CAAC,CAAC,CAAA;QAC3D,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,WAAW,GAAG,YAAY,CAAC,CAAA;QAC5C,CAAC;QACD,OAAO,OAAO,CAAA;IACf,CAAC;IAEM,KAAK,CAAE,OAAgB,EAAE,IAAW;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QACrC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IACrC,CAAC;IAEO,MAAM,CAAE,MAAe,EAAE,OAAwB;QACxD,MAAM,QAAQ,GAAc,EAAE,CAAA;QAC9B,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACrC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAA;QAC3C,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,gBAAO,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,CAAA;QAC7F,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAA;QACrB,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QACzC,OAAO,MAAM,CAAA;IACd,CAAC;CACD;AA3BD,oCA2BC"}
@@ -0,0 +1,9 @@
1
+ import { EvaluatorFactory } from '../../domain';
2
+ import { Operand } from '../../../shared/domain';
3
+ export declare class OperandComplete {
4
+ private readonly evaluatorFactory;
5
+ constructor(evaluatorFactory: EvaluatorFactory);
6
+ complete(operand: Operand): Operand;
7
+ private _complete;
8
+ }
9
+ //# sourceMappingURL=complete.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"complete.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/operand/application/useCases/complete.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAEhD,qBAAa,eAAe;IAEd,OAAO,CAAC,QAAQ,CAAC,gBAAgB;gBAAhB,gBAAgB,EAAC,gBAAgB;IAExD,QAAQ,CAAE,OAAO,EAAC,OAAO,GAAG,OAAO;IAK1C,OAAO,CAAC,SAAS;CAWjB"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OperandComplete = void 0;
4
+ class OperandComplete {
5
+ // eslint-disable-next-line no-useless-constructor
6
+ constructor(evaluatorFactory) {
7
+ this.evaluatorFactory = evaluatorFactory;
8
+ }
9
+ complete(operand) {
10
+ this._complete(operand);
11
+ return operand;
12
+ }
13
+ _complete(operand, index = 0, parentId) {
14
+ const id = parentId ? parentId + '.' + index : index.toString();
15
+ if (operand.children) {
16
+ for (let i = 0; i < operand.children.length; i++) {
17
+ const child = operand.children[i];
18
+ this._complete(child, i, id);
19
+ }
20
+ }
21
+ operand.id = id;
22
+ operand.evaluator = this.evaluatorFactory.create(operand);
23
+ }
24
+ }
25
+ exports.OperandComplete = OperandComplete;
26
+ //# sourceMappingURL=complete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"complete.js","sourceRoot":"","sources":["../../../../../../src/lib/operand/application/useCases/complete.ts"],"names":[],"mappings":";;;AAIA,MAAa,eAAe;IAC3B,kDAAkD;IAClD,YAA8B,gBAAiC;QAAjC,qBAAgB,GAAhB,gBAAgB,CAAiB;IAAG,CAAC;IAE5D,QAAQ,CAAE,OAAe;QAC/B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;QACvB,OAAO,OAAO,CAAA;IACf,CAAC;IAEO,SAAS,CAAE,OAAgB,EAAE,KAAK,GAAG,CAAC,EAAE,QAAgB;QAC/D,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAA;QAC/D,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAClD,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;gBACjC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;YAC7B,CAAC;QACF,CAAC;QACD,OAAO,CAAC,EAAE,GAAG,EAAE,CAAA;QACf,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAC1D,CAAC;CACD;AApBD,0CAoBC"}
@@ -0,0 +1,9 @@
1
+ import { ModelService } from '../../../model/domain';
2
+ import { Operand } from '../../../shared/domain';
3
+ export declare class OperandNormalize {
4
+ private readonly model;
5
+ constructor(model: ModelService);
6
+ normalize(operand: Operand): Operand;
7
+ protected normalizeOperand(operand: Operand): void;
8
+ }
9
+ //# sourceMappingURL=normalize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/operand/application/useCases/normalize.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,EAAE,OAAO,EAAe,MAAM,wBAAwB,CAAA;AAE7D,qBAAa,gBAAgB;IAEf,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,YAAY;IAE1C,SAAS,CAAE,OAAO,EAAE,OAAO,GAAG,OAAO;IAc5C,SAAS,CAAC,gBAAgB,CAAE,OAAO,EAAE,OAAO,GAAG,IAAI;CAgBnD"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OperandNormalize = void 0;
4
+ const domain_1 = require("../../../shared/domain");
5
+ class OperandNormalize {
6
+ // eslint-disable-next-line no-useless-constructor
7
+ constructor(model) {
8
+ this.model = model;
9
+ }
10
+ normalize(operand) {
11
+ if (operand.type === domain_1.OperandType.Var && operand.children.length === 0) {
12
+ // Example: Products => Products.map(p=>p)
13
+ const arrowVariable = new domain_1.Operand(operand.pos, 'p', domain_1.OperandType.Var);
14
+ const allFields = new domain_1.Operand(operand.pos, 'p', domain_1.OperandType.Var);
15
+ const map = new domain_1.Operand(operand.pos, 'map', domain_1.OperandType.Arrow, [operand, arrowVariable, allFields]);
16
+ this.normalizeOperand(map);
17
+ return map;
18
+ }
19
+ else {
20
+ this.normalizeOperand(operand);
21
+ return operand;
22
+ }
23
+ }
24
+ normalizeOperand(operand) {
25
+ if (operand.type === domain_1.OperandType.Arrow || operand.type === domain_1.OperandType.ChildFunc || operand.type === domain_1.OperandType.CallFunc) {
26
+ const alias = this.model.functionAlias.find(p => p[0] === operand.name);
27
+ if (alias) {
28
+ operand.name = alias[1];
29
+ }
30
+ }
31
+ else if (operand.type === domain_1.OperandType.Operator) {
32
+ const alias = this.model.operatorAlias.find(p => p[0] === operand.name);
33
+ if (alias) {
34
+ operand.name = alias[1];
35
+ }
36
+ }
37
+ for (const child of operand.children) {
38
+ this.normalizeOperand(child);
39
+ }
40
+ }
41
+ }
42
+ exports.OperandNormalize = OperandNormalize;
43
+ //# sourceMappingURL=normalize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../../../../../src/lib/operand/application/useCases/normalize.ts"],"names":[],"mappings":";;;AAEA,mDAA6D;AAE7D,MAAa,gBAAgB;IAC5B,kDAAkD;IAClD,YAA8B,KAAmB;QAAnB,UAAK,GAAL,KAAK,CAAc;IAAG,CAAC;IAE9C,SAAS,CAAE,OAAgB;QACjC,IAAI,OAAO,CAAC,IAAI,KAAK,oBAAW,CAAC,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvE,0CAA0C;YAC1C,MAAM,aAAa,GAAG,IAAI,gBAAO,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,oBAAW,CAAC,GAAG,CAAC,CAAA;YACpE,MAAM,SAAS,GAAG,IAAI,gBAAO,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,oBAAW,CAAC,GAAG,CAAC,CAAA;YAChE,MAAM,GAAG,GAAG,IAAI,gBAAO,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,oBAAW,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC,CAAA;YACnG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAA;YAC1B,OAAO,GAAG,CAAA;QACX,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAA;YAC9B,OAAO,OAAO,CAAA;QACf,CAAC;IACF,CAAC;IAES,gBAAgB,CAAE,OAAgB;QAC3C,IAAI,OAAO,CAAC,IAAI,KAAK,oBAAW,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,KAAK,oBAAW,CAAC,SAAS,IAAI,OAAO,CAAC,IAAI,KAAK,oBAAW,CAAC,QAAQ,EAAE,CAAC;YAC3H,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;YACvE,IAAI,KAAK,EAAE,CAAC;gBACX,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;YACxB,CAAC;QACF,CAAC;aAAM,IAAI,OAAO,CAAC,IAAI,KAAK,oBAAW,CAAC,QAAQ,EAAE,CAAC;YAClD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;YACvE,IAAI,KAAK,EAAE,CAAC;gBACX,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;YACxB,CAAC;QACF,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACtC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAA;QAC7B,CAAC;IACF,CAAC;CACD;AAlCD,4CAkCC"}
@@ -0,0 +1,11 @@
1
+ import { ModelService } from '../../../model/domain';
2
+ import { Operand } from '../../../shared/domain';
3
+ import { ConstBuilder } from '../../domain/constBuilder';
4
+ export declare class OperandReduce {
5
+ private readonly model;
6
+ private readonly constBuilder;
7
+ constructor(model: ModelService, constBuilder: ConstBuilder);
8
+ reduce(operand: Operand): Operand;
9
+ protected reduceOperand(operand: Operand): Operand;
10
+ }
11
+ //# sourceMappingURL=reduce.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reduce.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/operand/application/useCases/reduce.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,EAAE,OAAO,EAAwB,MAAM,wBAAwB,CAAA;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAExD,qBAAa,aAAa;IAEZ,OAAO,CAAC,QAAQ,CAAC,KAAK;IAClC,OAAO,CAAC,QAAQ,CAAC,YAAY;gBADA,KAAK,EAAE,YAAY,EAC/B,YAAY,EAAE,YAAY;IAErC,MAAM,CAAE,OAAO,EAAE,OAAO,GAAG,OAAO;IAqBzC,SAAS,CAAC,aAAa,CAAE,OAAO,EAAE,OAAO,GAAG,OAAO;CAqBnD"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OperandReduce = void 0;
4
+ const domain_1 = require("../../../shared/domain");
5
+ class OperandReduce {
6
+ // eslint-disable-next-line no-useless-constructor
7
+ constructor(model, constBuilder) {
8
+ this.model = model;
9
+ this.constBuilder = constBuilder;
10
+ }
11
+ reduce(operand) {
12
+ if (operand.type === domain_1.OperandType.Operator) {
13
+ return this.reduceOperand(operand);
14
+ }
15
+ else if (operand.type === domain_1.OperandType.CallFunc) {
16
+ let funcMetadata = null;
17
+ if (this.model.isFunction(operand.name)) {
18
+ // Example: orm.execute(expression, data, options)
19
+ funcMetadata = this.model.getFunction(operand.name);
20
+ }
21
+ else {
22
+ // Example: .[0].states.filter() where function name is states.filter
23
+ const names = operand.name.split('.');
24
+ const funcName = names[names.length - 1];
25
+ funcMetadata = this.model.getFunction(funcName);
26
+ }
27
+ if (funcMetadata && funcMetadata.deterministic) {
28
+ return this.reduceOperand(operand);
29
+ }
30
+ }
31
+ return operand;
32
+ }
33
+ reduceOperand(operand) {
34
+ let allConstants = true;
35
+ for (const child of operand.children) {
36
+ if (!(child.type === domain_1.OperandType.Const)) {
37
+ allConstants = false;
38
+ break;
39
+ }
40
+ }
41
+ if (allConstants) {
42
+ const value = operand.eval(new domain_1.Context());
43
+ const constant = this.constBuilder.build(operand.pos, value);
44
+ constant.id = operand.id;
45
+ return constant;
46
+ }
47
+ else {
48
+ for (let i = 0; i < operand.children.length; i++) {
49
+ const child = operand.children[i];
50
+ operand.children[i] = this.reduce(child);
51
+ }
52
+ }
53
+ return operand;
54
+ }
55
+ }
56
+ exports.OperandReduce = OperandReduce;
57
+ //# sourceMappingURL=reduce.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reduce.js","sourceRoot":"","sources":["../../../../../../src/lib/operand/application/useCases/reduce.ts"],"names":[],"mappings":";;;AAEA,mDAAsE;AAGtE,MAAa,aAAa;IACzB,kDAAkD;IAClD,YAA8B,KAAmB,EAC/B,YAA0B;QADd,UAAK,GAAL,KAAK,CAAc;QAC/B,iBAAY,GAAZ,YAAY,CAAc;IAAG,CAAC;IAEzC,MAAM,CAAE,OAAgB;QAC9B,IAAI,OAAO,CAAC,IAAI,KAAK,oBAAW,CAAC,QAAQ,EAAE,CAAC;YAC3C,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QACnC,CAAC;aAAM,IAAI,OAAO,CAAC,IAAI,KAAK,oBAAW,CAAC,QAAQ,EAAE,CAAC;YAClD,IAAI,YAAY,GAAO,IAAI,CAAA;YAC3B,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzC,kDAAkD;gBAClD,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YACpD,CAAC;iBAAM,CAAC;gBACP,qEAAqE;gBACrE,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBACrC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;gBACxC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;YAChD,CAAC;YACD,IAAI,YAAY,IAAI,YAAY,CAAC,aAAa,EAAE,CAAC;gBAChD,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;YACnC,CAAC;QACF,CAAC;QACD,OAAO,OAAO,CAAA;IACf,CAAC;IAES,aAAa,CAAE,OAAgB;QACxC,IAAI,YAAY,GAAG,IAAI,CAAA;QACvB,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACtC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,oBAAW,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzC,YAAY,GAAG,KAAK,CAAA;gBACpB,MAAK;YACN,CAAC;QACF,CAAC;QACD,IAAI,YAAY,EAAE,CAAC;YAClB,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,gBAAO,EAAE,CAAC,CAAA;YACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;YAC5D,QAAQ,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAA;YACxB,OAAO,QAAQ,CAAA;QAChB,CAAC;aAAM,CAAC;YACP,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAClD,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;gBACjC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACzC,CAAC;QACF,CAAC;QACD,OAAO,OAAO,CAAA;IACf,CAAC;CACD;AA/CD,sCA+CC"}
@@ -0,0 +1,5 @@
1
+ import { Operand, Position } from '../../shared/domain';
2
+ export interface ConstBuilder {
3
+ build(pos: Position, value: any): Operand;
4
+ }
5
+ //# sourceMappingURL=constBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constBuilder.d.ts","sourceRoot":"","sources":["../../../../../src/lib/operand/domain/constBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAEvD,MAAM,WAAW,YAAY;IAC5B,KAAK,CAAE,GAAG,EAAC,QAAQ,EAAE,KAAK,EAAC,GAAG,GAAG,OAAO,CAAA;CACxC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=constBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constBuilder.js","sourceRoot":"","sources":["../../../../../src/lib/operand/domain/constBuilder.ts"],"names":[],"mappings":""}
@@ -0,0 +1,60 @@
1
+ import { Context, Parameter, Position, IEvaluator, Operand, OperandType } from '../../shared/domain';
2
+ export interface ParameterDoc {
3
+ name: string;
4
+ description: string;
5
+ }
6
+ export interface OperatorDoc {
7
+ description: string;
8
+ params?: ParameterDoc[];
9
+ }
10
+ export interface OperatorAdditionalInfo {
11
+ priority: number;
12
+ description: string;
13
+ doc?: OperatorDoc;
14
+ async?: boolean;
15
+ }
16
+ export interface FunctionAdditionalInfo {
17
+ deterministic?: boolean;
18
+ description: string;
19
+ doc?: OperatorDoc;
20
+ async?: boolean;
21
+ }
22
+ export declare abstract class Evaluator implements IEvaluator {
23
+ protected readonly operand: Operand;
24
+ constructor(operand: Operand);
25
+ abstract eval(context: Context): any;
26
+ abstract evalAsync(context: Context): Promise<any>;
27
+ protected evalAsyncChildren(context: Context): Promise<any>;
28
+ isAsync(): boolean;
29
+ }
30
+ export interface EvaluatorBuilder {
31
+ build(operand: Operand): IEvaluator;
32
+ }
33
+ export declare abstract class PrototypeEvaluator implements IEvaluator {
34
+ protected operand?: Operand | undefined;
35
+ constructor(operand?: Operand | undefined);
36
+ abstract clone(operand: Operand): IEvaluator;
37
+ abstract eval(context: Context): any;
38
+ abstract evalAsync(context: Context): Promise<any>;
39
+ protected get op(): Operand;
40
+ }
41
+ export interface OperandMetadata {
42
+ pos: Position;
43
+ type: OperandType;
44
+ name: string;
45
+ children?: OperandMetadata[];
46
+ returnType?: string;
47
+ number?: number;
48
+ }
49
+ export interface OperatorMetadata {
50
+ params: Parameter[];
51
+ deterministic: boolean;
52
+ operands: number;
53
+ returnType: string;
54
+ doc: OperatorDoc;
55
+ priority?: number;
56
+ function?: Function;
57
+ custom?: PrototypeEvaluator;
58
+ async: boolean;
59
+ }
60
+ //# sourceMappingURL=entities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entities.d.ts","sourceRoot":"","sources":["../../../../../src/lib/operand/domain/entities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAEpG,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;CACnB;AACD,MAAM,WAAW,WAAW;IAC3B,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,EAAC,YAAY,EAAE,CAAA;CACtB;AAED,MAAM,WAAW,sBAAsB;IACtC,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,GAAG,CAAC,EAAE,WAAW,CAAA;IACjB,KAAK,CAAC,EAAE,OAAO,CAAA;CACf;AAED,MAAM,WAAW,sBAAsB;IACtC,aAAa,CAAC,EAAC,OAAO,CAAA;IACtB,WAAW,EAAE,MAAM,CAAA;IACnB,GAAG,CAAC,EAAE,WAAW,CAAA;IACjB,KAAK,CAAC,EAAE,OAAO,CAAA;CACf;AAED,8BAAsB,SAAU,YAAW,UAAU;IAEhC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO;gBAAhB,OAAO,EAAE,OAAO;aACvC,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,GAAG;aAC3B,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;cACzC,iBAAiB,CAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAQ3D,OAAO,IAAK,OAAO;CAM1B;AAED,MAAM,WAAW,gBAAgB;IAChC,KAAK,CAAC,OAAO,EAAC,OAAO,GAAE,UAAU,CAAA;CACjC;AAGD,8BAAsB,kBAAmB,YAAW,UAAU;IAEzC,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO;gBAAjB,OAAO,CAAC,EAAE,OAAO,YAAA;aAC/B,KAAK,CAAC,OAAO,EAAE,OAAO,GAAE,UAAU;aAClC,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,GAAG;aAC3B,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IACzD,SAAS,KAAK,EAAE,IAAK,OAAO,CAG3B;CACD;AAED,MAAM,WAAW,eAAe;IAC/B,GAAG,EAAC,QAAQ,CAAC;IACb,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;CACf;AACD,MAAM,WAAW,gBAAgB;IAChC,MAAM,EAAE,SAAS,EAAE,CAAA;IACnB,aAAa,EAAC,OAAO,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAC,MAAM,CAAA;IACjB,GAAG,EAAE,WAAW,CAAA;IAChB,QAAQ,CAAC,EAAC,MAAM,CAAA;IAEhB,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,MAAM,CAAC,EAAE,kBAAkB,CAAA;IAC3B,KAAK,EAAE,OAAO,CAAA;CACd"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PrototypeEvaluator = exports.Evaluator = void 0;
4
+ class Evaluator {
5
+ // eslint-disable-next-line no-useless-constructor
6
+ constructor(operand) {
7
+ this.operand = operand;
8
+ }
9
+ async evalAsyncChildren(context) {
10
+ const promises = [];
11
+ for (const child of this.operand.children) {
12
+ promises.push(child.evalAsync(context));
13
+ }
14
+ return Promise.all(promises);
15
+ }
16
+ isAsync() {
17
+ for (const child of this.operand.children) {
18
+ if (child.isAsync())
19
+ return true;
20
+ }
21
+ return false;
22
+ }
23
+ }
24
+ exports.Evaluator = Evaluator;
25
+ // https://www.sourcecodeexamples.net/2020/08/typescript-prototype-pattern-example.html
26
+ class PrototypeEvaluator {
27
+ // eslint-disable-next-line no-useless-constructor
28
+ constructor(operand) {
29
+ this.operand = operand;
30
+ }
31
+ get op() {
32
+ if (this.operand === undefined)
33
+ throw new Error('Operand undefined');
34
+ return this.operand;
35
+ }
36
+ }
37
+ exports.PrototypeEvaluator = PrototypeEvaluator;
38
+ //# sourceMappingURL=entities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entities.js","sourceRoot":"","sources":["../../../../../src/lib/operand/domain/entities.ts"],"names":[],"mappings":";;;AAyBA,MAAsB,SAAS;IAC9B,kDAAkD;IAClD,YAAuC,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAGjD,KAAK,CAAC,iBAAiB,CAAE,OAAgB;QAClD,MAAM,QAAQ,GAAG,EAAE,CAAA;QACnB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC3C,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;QACxC,CAAC;QACD,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAC7B,CAAC;IAEM,OAAO;QACb,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC3C,IAAI,KAAK,CAAC,OAAO,EAAE;gBAAE,OAAO,IAAI,CAAA;QACjC,CAAC;QACD,OAAO,KAAK,CAAA;IACb,CAAC;CACD;AAnBD,8BAmBC;AAMD,uFAAuF;AACvF,MAAsB,kBAAkB;IACvC,kDAAkD;IAClD,YAA8B,OAAiB;QAAjB,YAAO,GAAP,OAAO,CAAU;IAAG,CAAC;IAInD,IAAc,EAAE;QACf,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;QACpE,OAAO,IAAI,CAAC,OAAO,CAAA;IACpB,CAAC;CACD;AAVD,gDAUC"}
@@ -0,0 +1,4 @@
1
+ export * from './services';
2
+ export * from './entities';
3
+ export * from './constBuilder';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/operand/domain/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA"}
@@ -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("./services"), exports);
18
+ __exportStar(require("./entities"), exports);
19
+ __exportStar(require("./constBuilder"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/lib/operand/domain/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA0B;AAC1B,6CAA0B;AAC1B,iDAA8B"}
@@ -0,0 +1,39 @@
1
+ import { IEvaluator, Operand, Parameter } from '../../shared/domain';
2
+ import { Type } from '@data7expressions/typ3s';
3
+ import { EvaluatorBuilder } from './entities';
4
+ import { ConstBuilder } from './constBuilder';
5
+ export interface EvaluatorFactory {
6
+ add(key: string, evaluator: EvaluatorBuilder): EvaluatorFactory;
7
+ get(key: string): EvaluatorBuilder | undefined;
8
+ create(operand: Operand): IEvaluator | undefined;
9
+ }
10
+ export interface OperandBuilder {
11
+ evaluatorFactory: EvaluatorFactory;
12
+ build(expression: string): Operand;
13
+ }
14
+ export interface OperandBuildOptions {
15
+ type: string;
16
+ cache?: boolean;
17
+ }
18
+ export interface TypeService {
19
+ getType(operand: Operand): Type;
20
+ }
21
+ export interface ParameterService {
22
+ parameters(operand: Operand): Parameter[];
23
+ }
24
+ export interface OperandSerializer {
25
+ clone(sentence: Operand): Operand;
26
+ serialize(sentence: Operand): string;
27
+ deserialize(value: string): Operand;
28
+ }
29
+ export interface OperandCloner {
30
+ clone(source: Operand, key?: string): Operand;
31
+ }
32
+ export interface OperandFacade extends OperandCloner {
33
+ constBuilder: ConstBuilder;
34
+ getBuilder(key: string): OperandBuilder;
35
+ parameters(expression: string): Parameter[];
36
+ type(expression: string): string;
37
+ build(expression: string, key?: string): Operand;
38
+ }
39
+ //# sourceMappingURL=services.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../../../../src/lib/operand/domain/services.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpE,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAA;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C,MAAM,WAAW,gBAAgB;IAChC,GAAG,CAAE,GAAG,EAAC,MAAM,EAAE,SAAS,EAAC,gBAAgB,GAAE,gBAAgB,CAAA;IAC7D,GAAG,CAAE,GAAG,EAAC,MAAM,GAAE,gBAAgB,GAAC,SAAS,CAAA;IAC3C,MAAM,CAAE,OAAO,EAAC,OAAO,GAAG,UAAU,GAAC,SAAS,CAAA;CAC9C;AACD,MAAM,WAAW,cAAc;IAC9B,gBAAgB,EAAC,gBAAgB,CAAA;IACjC,KAAK,CAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAA;CACnC;AACD,MAAM,WAAW,mBAAmB;IACnC,IAAI,EAAC,MAAM,CAAA;IACX,KAAK,CAAC,EAAC,OAAO,CAAA;CACd;AAED,MAAM,WAAW,WAAW;IAC3B,OAAO,CAAE,OAAO,EAAE,OAAO,GAAE,IAAI,CAAA;CAC/B;AAED,MAAM,WAAW,gBAAgB;IAChC,UAAU,CAAE,OAAO,EAAE,OAAO,GAAG,SAAS,EAAE,CAAA;CAC1C;AAED,MAAM,WAAW,iBAAiB;IACjC,KAAK,CAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAA;IAClC,SAAS,CAAE,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAA;IACrC,WAAW,CAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAA;CACpC;AAED,MAAM,WAAW,aAAa;IAC7B,KAAK,CAAE,MAAM,EAAC,OAAO,EAAE,GAAG,CAAC,EAAC,MAAM,GAAE,OAAO,CAAA;CAC3C;AAED,MAAM,WAAW,aAAc,SAAQ,aAAa;IACnD,YAAY,EAAE,YAAY,CAAA;IAC1B,UAAU,CAAE,GAAG,EAAC,MAAM,GAAE,cAAc,CAAA;IACtC,UAAU,CAAE,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,CAAA;IAC5C,IAAI,CAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAAA;IACjC,KAAK,CAAE,UAAU,EAAE,MAAM,EAAE,GAAG,CAAC,EAAC,MAAM,GAAE,OAAO,CAAA;CAC/C"}
@@ -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/operand/domain/services.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import { Operand, Position } from '../../shared/domain';
2
+ import { ConstBuilder } from '../domain';
3
+ export declare class ConstBuilderImpl implements ConstBuilder {
4
+ build(pos: Position, value: any): Operand;
5
+ }
6
+ //# sourceMappingURL=constBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constBuilder.d.ts","sourceRoot":"","sources":["../../../../../src/lib/operand/infrastructure/constBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAGpE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAExC,qBAAa,gBAAiB,YAAW,YAAY;IAC7C,KAAK,CAAE,GAAG,EAAC,QAAQ,EAAE,KAAK,EAAC,GAAG,GAAG,OAAO;CAK/C"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConstBuilderImpl = void 0;
4
+ const domain_1 = require("../../shared/domain");
5
+ const typ3s_1 = require("@data7expressions/typ3s");
6
+ const expression_1 = require("./executors/expression");
7
+ class ConstBuilderImpl {
8
+ build(pos, value) {
9
+ const operand = new domain_1.Operand(pos, value, domain_1.OperandType.Const, [], typ3s_1.Type.get(value));
10
+ operand.evaluator = new expression_1.ConstEvaluator(operand);
11
+ return operand;
12
+ }
13
+ }
14
+ exports.ConstBuilderImpl = ConstBuilderImpl;
15
+ //# sourceMappingURL=constBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constBuilder.js","sourceRoot":"","sources":["../../../../../src/lib/operand/infrastructure/constBuilder.ts"],"names":[],"mappings":";;;AAAA,gDAAoE;AACpE,mDAA8C;AAC9C,uDAAuD;AAGvD,MAAa,gBAAgB;IACrB,KAAK,CAAE,GAAY,EAAE,KAAS;QACpC,MAAM,OAAO,GAAG,IAAI,gBAAO,CAAC,GAAG,EAAE,KAAK,EAAE,oBAAW,CAAC,KAAK,EAAE,EAAE,EAAE,YAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;QAC/E,OAAO,CAAC,SAAS,GAAG,IAAI,2BAAc,CAAC,OAAO,CAAC,CAAA;QAC/C,OAAO,OAAO,CAAA;IACf,CAAC;CACD;AAND,4CAMC"}
@@ -0,0 +1,34 @@
1
+ import { Context } from '../../../shared/domain';
2
+ import { Evaluator, EvaluatorFactory } from '../../domain';
3
+ import { ModelService } from '../../../model/domain';
4
+ export declare class ConstEvaluator extends Evaluator {
5
+ eval(): any;
6
+ evalAsync(): Promise<any>;
7
+ isAsync(): boolean;
8
+ }
9
+ export declare class VarEvaluator extends Evaluator {
10
+ eval(context: Context): any;
11
+ evalAsync(context: Context): Promise<any>;
12
+ isAsync(): boolean;
13
+ }
14
+ export declare class EnvEvaluator extends Evaluator {
15
+ eval(): any;
16
+ evalAsync(): Promise<any>;
17
+ isAsync(): boolean;
18
+ }
19
+ export declare class TemplateEvaluator extends Evaluator {
20
+ eval(context: Context): any;
21
+ evalAsync(context: Context): Promise<any>;
22
+ isAsync(): boolean;
23
+ }
24
+ export declare class NotImplementedEvaluator extends Evaluator {
25
+ eval(): any;
26
+ evalAsync(): Promise<any>;
27
+ isAsync(): boolean;
28
+ }
29
+ export declare class ExpressionEvaluatorFactoryBuilder {
30
+ private readonly model;
31
+ constructor(model: ModelService);
32
+ build(): EvaluatorFactory;
33
+ }
34
+ //# sourceMappingURL=expression.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expression.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/operand/infrastructure/executors/expression.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAoC,MAAM,wBAAwB,CAAA;AAClF,OAAO,EAAE,SAAS,EAAoB,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAIpD,qBAAa,cAAe,SAAQ,SAAS;IACrC,IAAI,IAAK,GAAG;IAiBN,SAAS,IAAK,OAAO,CAAC,GAAG,CAAC;IAIhC,OAAO,IAAK,OAAO;CAG1B;AAQD,qBAAa,YAAa,SAAQ,SAAS;IACnC,IAAI,CAAE,OAAO,EAAE,OAAO,GAAG,GAAG;IAItB,SAAS,CAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAIhD,OAAO,IAAK,OAAO;CAG1B;AAkED,qBAAa,YAAa,SAAQ,SAAS;IACnC,IAAI,IAAK,GAAG;IAIN,SAAS,IAAK,OAAO,CAAC,GAAG,CAAC;IAIhC,OAAO,IAAK,OAAO;CAG1B;AAqBD,qBAAa,iBAAkB,SAAQ,SAAS;IACxC,IAAI,CAAE,OAAO,EAAE,OAAO,GAAG,GAAG;IAItB,SAAS,CAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAIhD,OAAO,IAAK,OAAO;CAG1B;AA8RD,qBAAa,uBAAwB,SAAQ,SAAS;IAC9C,IAAI,IAAK,GAAG;IAIN,SAAS,IAAK,OAAO,CAAC,GAAG,CAAC;IAIhC,OAAO,IAAK,OAAO;CAG1B;AA0ED,qBAAa,iCAAiC;IAEhC,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,YAAY;IAE1C,KAAK,IAAK,gBAAgB;CAgCjC"}