@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,14 @@
1
+ import { Operand } from '../../../shared/domain';
2
+ import { OperandBuilder, OperandSerializer } from '../../domain';
3
+ import { ICache, IUtils } from '@data7expressions/h3lp';
4
+ export declare class OperandBuilderCacheDecorator implements OperandBuilder {
5
+ private readonly builder;
6
+ private readonly cache;
7
+ private readonly serializer;
8
+ private readonly utils;
9
+ private operandComplete;
10
+ constructor(builder: OperandBuilder, cache: ICache<string, string>, serializer: OperandSerializer, utils: IUtils);
11
+ get evaluatorFactory(): import("../../domain").EvaluatorFactory;
12
+ build(expression: string): Operand;
13
+ }
14
+ //# sourceMappingURL=builderCacheDecorator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builderCacheDecorator.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/operand/application/services/builderCacheDecorator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAGvD,qBAAa,4BAA6B,YAAW,cAAc;IAErD,OAAO,CAAC,QAAQ,CAAC,OAAO;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,KAAK;IAJvB,OAAO,CAAC,eAAe,CAAgB;gBACT,OAAO,EAAC,cAAc,EAClC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,UAAU,EAAC,iBAAiB,EAC5B,KAAK,EAAE,MAAM;IAI/B,IAAW,gBAAgB,4CAE1B;IAEM,KAAK,CAAE,UAAU,EAAE,MAAM,GAAG,OAAO;CAW1C"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OperandBuilderCacheDecorator = void 0;
4
+ const __1 = require("..");
5
+ class OperandBuilderCacheDecorator {
6
+ constructor(builder, cache, serializer, utils) {
7
+ this.builder = builder;
8
+ this.cache = cache;
9
+ this.serializer = serializer;
10
+ this.utils = utils;
11
+ this.operandComplete = new __1.OperandComplete(builder.evaluatorFactory);
12
+ }
13
+ get evaluatorFactory() {
14
+ return this.builder.evaluatorFactory;
15
+ }
16
+ build(expression) {
17
+ const key = this.utils.hashCode(expression).toString();
18
+ const value = this.cache.get(key);
19
+ if (value) {
20
+ const operand = this.serializer.deserialize(value);
21
+ return this.operandComplete.complete(operand);
22
+ }
23
+ const operand = this.builder.build(expression);
24
+ this.cache.set(key, this.serializer.serialize(operand));
25
+ return operand;
26
+ }
27
+ }
28
+ exports.OperandBuilderCacheDecorator = OperandBuilderCacheDecorator;
29
+ //# sourceMappingURL=builderCacheDecorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builderCacheDecorator.js","sourceRoot":"","sources":["../../../../../../src/lib/operand/application/services/builderCacheDecorator.ts"],"names":[],"mappings":";;;AAIA,0BAAoC;AAEpC,MAAa,4BAA4B;IAExC,YAA8B,OAAsB,EAClC,KAA6B,EAC7B,UAA4B,EAC5B,KAAa;QAHD,YAAO,GAAP,OAAO,CAAe;QAClC,UAAK,GAAL,KAAK,CAAwB;QAC7B,eAAU,GAAV,UAAU,CAAkB;QAC5B,UAAK,GAAL,KAAK,CAAQ;QAC9B,IAAI,CAAC,eAAe,GAAG,IAAI,mBAAe,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAA;IACrE,CAAC;IAED,IAAW,gBAAgB;QAC1B,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAA;IACrC,CAAC;IAEM,KAAK,CAAE,UAAkB;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAA;QACtD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACjC,IAAI,KAAK,EAAE,CAAC;YACX,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;YAClD,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QAC9C,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;QAC9C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;QACvD,OAAO,OAAO,CAAA;IACf,CAAC;CACD;AAxBD,oEAwBC"}
@@ -0,0 +1,10 @@
1
+ import { EvaluatorBuilder, EvaluatorFactory } from '../../domain';
2
+ import { Operand, IEvaluator } from '../../../shared/domain';
3
+ export declare class EvaluatorFactoryImpl implements EvaluatorFactory {
4
+ private evaluators;
5
+ constructor();
6
+ add(key: string, evaluator: EvaluatorBuilder): EvaluatorFactory;
7
+ get(key: string): EvaluatorBuilder | undefined;
8
+ create(operand: Operand): IEvaluator | undefined;
9
+ }
10
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/operand/application/services/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACjE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAE5D,qBAAa,oBAAqB,YAAW,gBAAgB;IAC5D,OAAO,CAAC,UAAU,CAAK;;IAKhB,GAAG,CAAE,GAAG,EAAC,MAAM,EAAE,SAAS,EAAC,gBAAgB,GAAE,gBAAgB;IAK7D,GAAG,CAAE,GAAG,EAAC,MAAM,GAAE,gBAAgB,GAAC,SAAS;IAI3C,MAAM,CAAE,OAAO,EAAC,OAAO,GAAG,UAAU,GAAC,SAAS;CAOrD"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EvaluatorFactoryImpl = void 0;
4
+ class EvaluatorFactoryImpl {
5
+ constructor() {
6
+ this.evaluators = {};
7
+ }
8
+ add(key, evaluator) {
9
+ this.evaluators[key] = evaluator;
10
+ return this;
11
+ }
12
+ get(key) {
13
+ return this.evaluators[key];
14
+ }
15
+ create(operand) {
16
+ const evaluatorBuilder = this.get(operand.type);
17
+ if (evaluatorBuilder === undefined) {
18
+ throw new Error(`Evaluator for ${operand.type} ${operand.name} not found`);
19
+ }
20
+ return evaluatorBuilder.build(operand);
21
+ }
22
+ }
23
+ exports.EvaluatorFactoryImpl = EvaluatorFactoryImpl;
24
+ //# sourceMappingURL=factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../../../../src/lib/operand/application/services/factory.ts"],"names":[],"mappings":";;;AAGA,MAAa,oBAAoB;IAEhC;QACC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAA;IACrB,CAAC;IAEM,GAAG,CAAE,GAAU,EAAE,SAA0B;QACjD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,SAAS,CAAA;QAChC,OAAO,IAAI,CAAA;IACZ,CAAC;IAEM,GAAG,CAAE,GAAU;QACrB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAqB,CAAA;IAChD,CAAC;IAEM,MAAM,CAAE,OAAe;QAC7B,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAC/C,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,iBAAiB,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,YAAY,CAAC,CAAA;QAC3E,CAAC;QACD,OAAO,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IACvC,CAAC;CACD;AAtBD,oDAsBC"}
@@ -0,0 +1,4 @@
1
+ export declare class ExpressionNormalizer {
2
+ normalize(expression: string): [string, number, number][];
3
+ }
4
+ //# sourceMappingURL=normalizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalizer.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/operand/application/services/normalizer.ts"],"names":[],"mappings":"AAEA,qBAAa,oBAAoB;IACzB,SAAS,CAAE,UAAU,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE;CAuCjE"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExpressionNormalizer = void 0;
4
+ const h3lp_1 = require("@data7expressions/h3lp");
5
+ class ExpressionNormalizer {
6
+ normalize(expression) {
7
+ let isString = false;
8
+ let quotes = '';
9
+ const buffer = expression.split('');
10
+ const length = buffer.length;
11
+ const result = [];
12
+ let line = 0;
13
+ let col = 0;
14
+ let i = 0;
15
+ while (i < length) {
16
+ const p = buffer[i];
17
+ if (isString && p === quotes) {
18
+ isString = false;
19
+ }
20
+ else if (!isString && (p === '\'' || p === '"' || p === '`')) {
21
+ isString = true;
22
+ quotes = p;
23
+ }
24
+ if (isString) {
25
+ result.push([p, line, col]);
26
+ }
27
+ else if (p === ' ') {
28
+ // Only leave spaces when it's between alphanumeric characters.
29
+ // for example in the case of "} if" there should not be a space
30
+ if (i + 1 < length && i - 1 >= 0 && h3lp_1.h3lp.val.isAlphanumeric(buffer[i - 1]) && h3lp_1.h3lp.val.isAlphanumeric(buffer[i + 1])) {
31
+ result.push([p, line, col]);
32
+ }
33
+ }
34
+ else if (p === '\n') {
35
+ line++;
36
+ col = 0;
37
+ }
38
+ else if (p !== '\r' && p !== '\t') {
39
+ result.push([p, line, col]);
40
+ }
41
+ i++;
42
+ col++;
43
+ }
44
+ if (result[result.length - 1][0] === ';') {
45
+ result.splice(-1);
46
+ }
47
+ return result;
48
+ }
49
+ }
50
+ exports.ExpressionNormalizer = ExpressionNormalizer;
51
+ //# sourceMappingURL=normalizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalizer.js","sourceRoot":"","sources":["../../../../../../src/lib/operand/application/services/normalizer.ts"],"names":[],"mappings":";;;AAAA,iDAA6C;AAE7C,MAAa,oBAAoB;IACzB,SAAS,CAAE,UAAkB;QACnC,IAAI,QAAQ,GAAG,KAAK,CAAA;QACpB,IAAI,MAAM,GAAG,EAAE,CAAA;QACf,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QACnC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;QAC5B,MAAM,MAAM,GAA8B,EAAE,CAAA;QAC5C,IAAI,IAAI,GAAG,CAAC,CAAA;QACZ,IAAI,GAAG,GAAG,CAAC,CAAA;QACX,IAAI,CAAC,GAAG,CAAC,CAAA;QACT,OAAO,CAAC,GAAG,MAAM,EAAE,CAAC;YACnB,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;YACnB,IAAI,QAAQ,IAAI,CAAC,KAAK,MAAM,EAAE,CAAC;gBAC9B,QAAQ,GAAG,KAAK,CAAA;YACjB,CAAC;iBAAM,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;gBAChE,QAAQ,GAAG,IAAI,CAAA;gBACf,MAAM,GAAG,CAAC,CAAA;YACX,CAAC;YACD,IAAI,QAAQ,EAAE,CAAC;gBACd,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;YAC5B,CAAC;iBAAM,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;gBACtB,+DAA+D;gBAC/D,gEAAgE;gBAChE,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,WAAI,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,WAAI,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;oBACtH,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;gBAC5B,CAAC;YACF,CAAC;iBAAM,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;gBACvB,IAAI,EAAE,CAAA;gBACN,GAAG,GAAG,CAAC,CAAA;YACR,CAAC;iBAAM,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;gBACrC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;YAC5B,CAAC;YACD,CAAC,EAAE,CAAA;YACH,GAAG,EAAE,CAAA;QACN,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAC1C,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;QAClB,CAAC;QACD,OAAO,MAAM,CAAA;IACd,CAAC;CACD;AAxCD,oDAwCC"}
@@ -0,0 +1,6 @@
1
+ import { Operand, Parameter } from '../../../shared/domain';
2
+ import { ParameterService } from '../../domain';
3
+ export declare class ParameterServiceImpl implements ParameterService {
4
+ parameters(operand: Operand): Parameter[];
5
+ }
6
+ //# sourceMappingURL=parameterService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parameterService.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/operand/application/services/parameterService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAe,MAAM,wBAAwB,CAAA;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAG/C,qBAAa,oBAAqB,YAAW,gBAAgB;IACrD,UAAU,CAAE,OAAO,EAAE,OAAO,GAAG,SAAS,EAAE;CAcjD"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ParameterServiceImpl = void 0;
4
+ const domain_1 = require("../../../shared/domain");
5
+ const typ3s_1 = require("@data7expressions/typ3s");
6
+ class ParameterServiceImpl {
7
+ parameters(operand) {
8
+ const parameters = [];
9
+ if (operand.type === domain_1.OperandType.Var) {
10
+ parameters.push({ name: operand.name, type: typ3s_1.Type.stringify(operand.returnType) });
11
+ }
12
+ for (const child of operand.children) {
13
+ const childParameters = this.parameters(child);
14
+ const newParameters = childParameters.filter((p) => !parameters.map((p) => p.name).includes(p.name));
15
+ if (newParameters.length > 0) {
16
+ parameters.push(...newParameters);
17
+ }
18
+ }
19
+ return parameters;
20
+ }
21
+ }
22
+ exports.ParameterServiceImpl = ParameterServiceImpl;
23
+ //# sourceMappingURL=parameterService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parameterService.js","sourceRoot":"","sources":["../../../../../../src/lib/operand/application/services/parameterService.ts"],"names":[],"mappings":";;;AAAA,mDAAwE;AAExE,mDAA8C;AAE9C,MAAa,oBAAoB;IACzB,UAAU,CAAE,OAAgB;QAClC,MAAM,UAAU,GAAgB,EAAE,CAAA;QAClC,IAAI,OAAO,CAAC,IAAI,KAAK,oBAAW,CAAC,GAAG,EAAE,CAAC;YACtC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,YAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;QAClF,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACtC,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;YAC9C,MAAM,aAAa,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAW,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAW,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;YACxH,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,UAAU,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAA;YAClC,CAAC;QACF,CAAC;QACD,OAAO,UAAU,CAAA;IAClB,CAAC;CACD;AAfD,oDAeC"}
@@ -0,0 +1,49 @@
1
+ import { Operand } from '../../../shared/domain';
2
+ import { ModelService } from '../../../model/domain';
3
+ export declare class Parser {
4
+ private readonly model;
5
+ private readonly expression;
6
+ private buffer;
7
+ private length;
8
+ private index;
9
+ private singleOperators;
10
+ private doubleOperators;
11
+ private tripleOperators;
12
+ private assignmentOperators;
13
+ constructor(model: ModelService, expression: [string, number, number][]);
14
+ parse(): Operand;
15
+ private getExpression;
16
+ private getOperand;
17
+ private solveChain;
18
+ private getOperator;
19
+ private normalize;
20
+ private get end();
21
+ private get current();
22
+ private offset;
23
+ private pos;
24
+ private nextIs;
25
+ private getValue;
26
+ private getString;
27
+ private getTemplate;
28
+ private getArgs;
29
+ private getObject;
30
+ private getBlock;
31
+ private getControlBlock;
32
+ private getReturn;
33
+ private getTryCatchBlock;
34
+ private getThrow;
35
+ private getIfBlock;
36
+ private getSwitchBlock;
37
+ private getWhileBlock;
38
+ private getForBlock;
39
+ private getFunctionBlock;
40
+ private getChildFunc;
41
+ private getIndexOperand;
42
+ private getEnum;
43
+ }
44
+ export declare class ExpressionParse {
45
+ private readonly model;
46
+ constructor(model: ModelService);
47
+ parse(expression: [string, number, number][]): Operand;
48
+ }
49
+ //# sourceMappingURL=parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/operand/application/services/parser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAyB,MAAM,wBAAwB,CAAA;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEpD,qBAAa,MAAM;IASL,OAAO,CAAC,QAAQ,CAAC,KAAK;IAAgB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAR9E,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,eAAe,CAAU;IACjC,OAAO,CAAC,eAAe,CAAU;IACjC,OAAO,CAAC,eAAe,CAAU;IACjC,OAAO,CAAC,mBAAmB,CAAU;gBAEP,KAAK,EAAE,YAAY,EAAmB,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE;IA0BnG,KAAK,IAAM,OAAO;IAUzB,OAAO,CAAC,aAAa;IA6CrB,OAAO,CAAC,UAAU;IA6IlB,OAAO,CAAC,UAAU;IA+ClB,OAAO,CAAC,WAAW;IA2BnB,OAAO,CAAC,SAAS;IA4CjB,OAAO,KAAK,GAAG,GAEd;IAED,OAAO,KAAK,OAAO,GAElB;IAED,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,GAAG;IAKX,OAAO,CAAC,MAAM;IAUd,OAAO,CAAC,QAAQ;IAiBhB,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,OAAO;IAUf,OAAO,CAAC,SAAS;IAsBjB,OAAO,CAAC,QAAQ;IAmBhB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,gBAAgB;IAsBxB,OAAO,CAAC,QAAQ;IAKhB,OAAO,CAAC,UAAU;IAwBlB,OAAO,CAAC,cAAc;IAyDtB,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,WAAW;IAoBnB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,YAAY;IA0CpB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,OAAO;CAkBf;AAED,qBAAa,eAAe;IAEd,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,YAAY;IAE1C,KAAK,CAAE,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,OAAO;CAG9D"}