@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,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("./useCases/executor"), exports);
18
+ __exportStar(require("./useCases/executorObserveDecorator"), exports);
19
+ __exportStar(require("./expressions"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/lib/expression/application/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAmC;AACnC,sEAAmD;AACnD,gDAA6B"}
@@ -0,0 +1,8 @@
1
+ import { ExpressionConvert, ExpressionConverter } from '../../domain';
2
+ export declare class ExpressionConvertImp implements ExpressionConvert {
3
+ private converts;
4
+ addConvert(key: string, converter: ExpressionConverter): ExpressionConvert;
5
+ getConvert(key: string): ExpressionConverter;
6
+ convert(source: any, from: string): [string, any];
7
+ }
8
+ //# sourceMappingURL=convert.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/expression/application/useCases/convert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAGrE,qBAAa,oBAAqB,YAAW,iBAAiB;IAC7D,OAAO,CAAC,QAAQ,CAAS;IAElB,UAAU,CAAE,GAAG,EAAC,MAAM,EAAE,SAAS,EAAC,mBAAmB,GAAG,iBAAiB;IAKzE,UAAU,CAAE,GAAG,EAAC,MAAM,GAAE,mBAAmB;IAI3C,OAAO,CAAE,MAAM,EAAC,GAAG,EAAE,IAAI,EAAC,MAAM,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC;CAOvD"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExpressionConvertImp = void 0;
4
+ // eslint-disable-next-line no-use-before-define
5
+ class ExpressionConvertImp {
6
+ constructor() {
7
+ this.converts = {};
8
+ }
9
+ addConvert(key, converter) {
10
+ this.converts[key] = converter;
11
+ return this;
12
+ }
13
+ getConvert(key) {
14
+ return this.converts[key];
15
+ }
16
+ convert(source, from) {
17
+ const converter = this.getConvert(from);
18
+ if (converter === undefined) {
19
+ throw new Error(`Converter ${from} not implemented`);
20
+ }
21
+ return converter.convert(source);
22
+ }
23
+ }
24
+ exports.ExpressionConvertImp = ExpressionConvertImp;
25
+ //# sourceMappingURL=convert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../../../../src/lib/expression/application/useCases/convert.ts"],"names":[],"mappings":";;;AAEA,gDAAgD;AAChD,MAAa,oBAAoB;IAAjC;QACS,aAAQ,GAAO,EAAE,CAAA;IAkB1B,CAAC;IAhBO,UAAU,CAAE,GAAU,EAAE,SAA6B;QAC3D,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,SAAS,CAAA;QAC9B,OAAO,IAAI,CAAA;IACZ,CAAC;IAEM,UAAU,CAAE,GAAU;QAC5B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAwB,CAAA;IACjD,CAAC;IAEM,OAAO,CAAE,MAAU,EAAE,IAAW;QACtC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QACvC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,kBAAkB,CAAC,CAAA;QACrD,CAAC;QACD,OAAO,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IACjC,CAAC;CACD;AAnBD,oDAmBC"}
@@ -0,0 +1,11 @@
1
+ import { Context } from '../../../shared/domain';
2
+ import { Executor } from '../../domain';
3
+ import { OperandFacade } from '../../../operand/domain';
4
+ export declare class ExecutorImpl implements Executor {
5
+ private readonly operand;
6
+ constructor(operand: OperandFacade);
7
+ eval(expression: string, context: Context): any;
8
+ evalAsync(expression: string, context: Context): Promise<any>;
9
+ execute(expression: string, context: Context): Promise<any>;
10
+ }
11
+ //# sourceMappingURL=executor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/expression/application/useCases/executor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAEvD,qBAAa,YAAa,YAAW,QAAQ;IAE/B,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAC,aAAa;IAE5C,IAAI,CAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAC,OAAO,GAAG,GAAG;IAKzC,SAAS,CAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAK7D,OAAO,CAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;CAIxE"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExecutorImpl = void 0;
4
+ class ExecutorImpl {
5
+ // eslint-disable-next-line no-useless-constructor
6
+ constructor(operand) {
7
+ this.operand = operand;
8
+ }
9
+ eval(expression, context) {
10
+ const operand = this.operand.build(expression, 'expression');
11
+ return operand.eval(context);
12
+ }
13
+ async evalAsync(expression, context) {
14
+ const operand = this.operand.build(expression, 'expression');
15
+ return operand.evalAsync(context);
16
+ }
17
+ async execute(expression, context) {
18
+ const operand = this.operand.build(expression, 'task');
19
+ return operand.evalAsync(context);
20
+ }
21
+ }
22
+ exports.ExecutorImpl = ExecutorImpl;
23
+ //# sourceMappingURL=executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../../../src/lib/expression/application/useCases/executor.ts"],"names":[],"mappings":";;;AAIA,MAAa,YAAY;IACxB,kDAAkD;IAClD,YAA8B,OAAqB;QAArB,YAAO,GAAP,OAAO,CAAc;IAAG,CAAC;IAEhD,IAAI,CAAE,UAAkB,EAAE,OAAe;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,YAAY,CAAC,CAAA;QAC5D,OAAO,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC7B,CAAC;IAEM,KAAK,CAAC,SAAS,CAAE,UAAkB,EAAE,OAAe;QAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,YAAY,CAAC,CAAA;QAC5D,OAAO,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;IAClC,CAAC;IAEM,KAAK,CAAC,OAAO,CAAE,UAAkB,EAAE,OAAe;QACxD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;QACtD,OAAO,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;IAClC,CAAC;CACD;AAlBD,oCAkBC"}
@@ -0,0 +1,16 @@
1
+ import { Context, ActionObserver } from '../../../shared/domain';
2
+ import { Executor, ExpressionListener } from '../../domain';
3
+ export declare class ExecutorObserveDecorator implements Executor, ExpressionListener {
4
+ private readonly executor;
5
+ private observers;
6
+ constructor(executor: Executor);
7
+ eval(expression: string, context: Context): any;
8
+ evalAsync(expression: string, context: Context): Promise<any>;
9
+ execute(task: string, context: Context): Promise<any>;
10
+ subscribe(observer: ActionObserver): void;
11
+ unsubscribe(observer: ActionObserver): void;
12
+ private beforeExecutionNotify;
13
+ private afterExecutionNotify;
14
+ private errorExecutionNotify;
15
+ }
16
+ //# sourceMappingURL=executorObserveDecorator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executorObserveDecorator.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/expression/application/useCases/executorObserveDecorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAChE,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAE3D,qBAAa,wBAAyB,YAAW,QAAQ,EAAE,kBAAkB;IAI/D,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAHtC,OAAO,CAAC,SAAS,CAAsB;gBAGT,QAAQ,EAAC,QAAQ;IAExC,IAAI,CAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAC,OAAO,GAAG,GAAG;IAYzC,SAAS,CAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAY7D,OAAO,CAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAa3D,SAAS,CAAE,QAAQ,EAAC,cAAc,GAAE,IAAI;IAIxC,WAAW,CAAE,QAAQ,EAAC,cAAc,GAAG,IAAI;IAQlD,OAAO,CAAC,qBAAqB;IAa7B,OAAO,CAAC,oBAAoB;IAa5B,OAAO,CAAC,oBAAoB;CAY5B"}
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExecutorObserveDecorator = void 0;
4
+ class ExecutorObserveDecorator {
5
+ // eslint-disable-next-line no-useless-constructor
6
+ constructor(executor) {
7
+ this.executor = executor;
8
+ this.observers = [];
9
+ }
10
+ eval(expression, context) {
11
+ try {
12
+ this.beforeExecutionNotify(expression, context);
13
+ const result = this.executor.eval(expression, context);
14
+ this.afterExecutionNotify(expression, context, result);
15
+ return result;
16
+ }
17
+ catch (error) {
18
+ this.errorExecutionNotify(expression, context, error);
19
+ throw error;
20
+ }
21
+ }
22
+ async evalAsync(expression, context) {
23
+ try {
24
+ this.beforeExecutionNotify(expression, context);
25
+ const result = await this.executor.evalAsync(expression, context);
26
+ this.afterExecutionNotify(expression, context, result);
27
+ return result;
28
+ }
29
+ catch (error) {
30
+ this.errorExecutionNotify(expression, context, error);
31
+ throw error;
32
+ }
33
+ }
34
+ async execute(task, context) {
35
+ try {
36
+ this.beforeExecutionNotify(task, context);
37
+ const result = await this.executor.execute(task, context);
38
+ this.afterExecutionNotify(task, context, result);
39
+ return result;
40
+ }
41
+ catch (error) {
42
+ this.errorExecutionNotify(task, context, error);
43
+ throw error;
44
+ }
45
+ }
46
+ // Listeners and subscribers
47
+ subscribe(observer) {
48
+ this.observers.push(observer);
49
+ }
50
+ unsubscribe(observer) {
51
+ const index = this.observers.indexOf(observer);
52
+ if (index === -1) {
53
+ throw new Error('Subject: Nonexistent observer.');
54
+ }
55
+ this.observers.splice(index, 1);
56
+ }
57
+ beforeExecutionNotify(expression, context) {
58
+ const args = { expression, context };
59
+ this.observers.forEach((observer) => {
60
+ if (observer.condition === undefined) {
61
+ observer.before(args);
62
+ }
63
+ else {
64
+ if (this.eval(observer.condition, context)) {
65
+ observer.before(args);
66
+ }
67
+ }
68
+ });
69
+ }
70
+ afterExecutionNotify(expression, context, result) {
71
+ const args = { expression, context, result };
72
+ this.observers.forEach((observer) => {
73
+ if (observer.condition === undefined) {
74
+ observer.after(args);
75
+ }
76
+ else {
77
+ if (this.eval(observer.condition, context)) {
78
+ observer.after(args);
79
+ }
80
+ }
81
+ });
82
+ }
83
+ errorExecutionNotify(expression, context, error) {
84
+ const args = { expression, context, error };
85
+ this.observers.forEach((observer) => {
86
+ if (observer.condition === undefined) {
87
+ observer.error(args);
88
+ }
89
+ else {
90
+ if (this.eval(observer.condition, context)) {
91
+ observer.error(args);
92
+ }
93
+ }
94
+ });
95
+ }
96
+ }
97
+ exports.ExecutorObserveDecorator = ExecutorObserveDecorator;
98
+ //# sourceMappingURL=executorObserveDecorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executorObserveDecorator.js","sourceRoot":"","sources":["../../../../../../src/lib/expression/application/useCases/executorObserveDecorator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import { OperandFacade } from '../../operand/domain';
2
+ import { ModelService } from '../../model/domain';
3
+ import { ActionObserver } from '../../shared/domain';
4
+ export interface Executor {
5
+ eval(expression: string, data?: any): any;
6
+ evalAsync(expression: string, data?: any): Promise<any>;
7
+ execute(task: string, data?: any): Promise<any>;
8
+ }
9
+ export interface ExpressionListener {
10
+ subscribe(observer: ActionObserver): void;
11
+ unsubscribe(observer: ActionObserver): void;
12
+ }
13
+ export interface ExpressionConverter {
14
+ convert(source: any): [string, any];
15
+ }
16
+ export interface ExpressionConvert {
17
+ addConvert(key: string, converter: ExpressionConverter): ExpressionConvert;
18
+ getConvert(key: string): ExpressionConverter;
19
+ convert(source: any, from: string): [string, any];
20
+ }
21
+ export interface Expressions extends ModelService, Executor, OperandFacade, ExpressionConvert, ExpressionListener {
22
+ }
23
+ export interface ExpressionConfig {
24
+ model: ModelService;
25
+ expressionConvert: ExpressionConvert;
26
+ operandFacade: OperandFacade;
27
+ executor: Executor;
28
+ }
29
+ //# sourceMappingURL=expressions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expressions.d.ts","sourceRoot":"","sources":["../../../../../src/lib/expression/domain/expressions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEpD,MAAM,WAAW,QAAQ;IACxB,IAAI,CAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,CAAA;IAC1C,SAAS,CAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;IACxD,OAAO,CAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;CAChD;AAED,MAAM,WAAW,kBAAkB;IAClC,SAAS,CAAE,QAAQ,EAAC,cAAc,GAAE,IAAI,CAAA;IACxC,WAAW,CAAE,QAAQ,EAAC,cAAc,GAAG,IAAI,CAAA;CAC3C;AAED,MAAM,WAAW,mBAAmB;IACnC,OAAO,CAAC,MAAM,EAAC,GAAG,GAAE,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CACjC;AACD,MAAM,WAAW,iBAAiB;IACjC,UAAU,CAAE,GAAG,EAAC,MAAM,EAAE,SAAS,EAAC,mBAAmB,GAAG,iBAAiB,CAAA;IACzE,UAAU,CAAE,GAAG,EAAC,MAAM,GAAE,mBAAmB,CAAA;IAC3C,OAAO,CAAE,MAAM,EAAC,GAAG,EAAE,IAAI,EAAC,MAAM,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAChD;AACD,MAAM,WAAW,WAAY,SAAQ,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,iBAAiB,EAAE,kBAAkB;CAAG;AAEpH,MAAM,WAAW,gBAAgB;IAChC,KAAK,EAAE,YAAY,CAAA;IACnB,iBAAiB,EAAC,iBAAiB,CAAA;IACnC,aAAa,EAAC,aAAa,CAAA;IAC3B,QAAQ,EAAC,QAAQ,CAAA;CACjB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=expressions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expressions.js","sourceRoot":"","sources":["../../../../../src/lib/expression/domain/expressions.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export * from './expressions';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/expression/domain/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA"}
@@ -0,0 +1,18 @@
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("./expressions"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/lib/expression/domain/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA6B"}
@@ -0,0 +1,15 @@
1
+ import { ExpressionConverter } from '../../..';
2
+ import { OperandBuilder } from '../../../operand/domain';
3
+ import { ExprH3lp } from '../../../shared/infrastructure';
4
+ export declare class ExpressionConvertFunction implements ExpressionConverter {
5
+ private readonly operandBuilder;
6
+ private readonly helper;
7
+ constructor(operandBuilder: OperandBuilder, helper: ExprH3lp);
8
+ /**
9
+ * Convert a lambda expression to a query expression
10
+ * @param lambda lambda expression
11
+ * @returns Expression manager
12
+ */
13
+ convert(func: Function): [string, any];
14
+ }
15
+ //# sourceMappingURL=convertFromFunction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convertFromFunction.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/expression/infrastructure/convertFrom/convertFromFunction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAExD,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAA;AAEzD,qBAAa,yBAA0B,YAAW,mBAAmB;IAEvD,OAAO,CAAC,QAAQ,CAAC,cAAc;IAAiB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAtD,cAAc,EAAC,cAAc,EAAmB,MAAM,EAAE,QAAQ;IAE9F;;;;OAIG;IAEI,OAAO,CAAE,IAAI,EAAE,QAAQ,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC;CA0B9C"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExpressionConvertFunction = void 0;
4
+ const domain_1 = require("../../../shared/domain");
5
+ class ExpressionConvertFunction {
6
+ // eslint-disable-next-line no-useless-constructor
7
+ constructor(operandBuilder, helper) {
8
+ this.operandBuilder = operandBuilder;
9
+ this.helper = helper;
10
+ }
11
+ /**
12
+ * Convert a lambda expression to a query expression
13
+ * @param lambda lambda expression
14
+ * @returns Expression manager
15
+ */
16
+ // eslint-disable-next-line @typescript-eslint/ban-types
17
+ convert(func) {
18
+ if (!func) {
19
+ throw new Error('empty lambda function}');
20
+ }
21
+ const expression = this.helper.expression.clearLambda(func);
22
+ const operand = this.operandBuilder.build(expression);
23
+ let aux = operand;
24
+ while (aux.type !== domain_1.OperandType.Var) {
25
+ if (aux.children.length > 0) {
26
+ aux = aux.children[0];
27
+ }
28
+ }
29
+ if (aux.name.includes('.')) {
30
+ // Example: __model_1.Products.map(p=>p) => Products.map(p=>p)
31
+ // Example: __model_1.Orders.details.map(p=>p) => Orders.details.map(p=>p)
32
+ const names = aux.name.split('.');
33
+ if (names[0].startsWith('__')) {
34
+ // aux.name = names.slice(1).join('.')
35
+ const result = expression.replace(names[0] + '.', '');
36
+ return [result, undefined];
37
+ }
38
+ }
39
+ // Example: Products.map(p=>p) => Products.map(p=>p)
40
+ // Example: Orders.details.map(p=>p) => Orders.details.map(p=>p)
41
+ return [expression, undefined];
42
+ }
43
+ }
44
+ exports.ExpressionConvertFunction = ExpressionConvertFunction;
45
+ //# sourceMappingURL=convertFromFunction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convertFromFunction.js","sourceRoot":"","sources":["../../../../../../src/lib/expression/infrastructure/convertFrom/convertFromFunction.ts"],"names":[],"mappings":";;;AAEA,mDAAoD;AAGpD,MAAa,yBAAyB;IACrC,kDAAkD;IAClD,YAA8B,cAA6B,EAAmB,MAAgB;QAAhE,mBAAc,GAAd,cAAc,CAAe;QAAmB,WAAM,GAAN,MAAM,CAAU;IAAG,CAAC;IAElG;;;;OAIG;IACH,wDAAwD;IACjD,OAAO,CAAE,IAAc;QAC7B,IAAI,CAAC,IAAI,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;QAC1C,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;QACrD,IAAI,GAAG,GAAG,OAAO,CAAA;QACjB,OAAO,GAAG,CAAC,IAAI,KAAK,oBAAW,CAAC,GAAG,EAAE,CAAC;YACrC,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;YACtB,CAAC;QACF,CAAC;QACD,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,+DAA+D;YAC/D,2EAA2E;YAC3E,MAAM,KAAK,GAAY,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAC1C,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/B,sCAAsC;gBACtC,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,CAAA;gBACrD,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;YAC3B,CAAC;QACF,CAAC;QACD,qDAAqD;QACrD,iEAAiE;QACjE,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;IAC/B,CAAC;CACD;AApCD,8DAoCC"}
@@ -0,0 +1,5 @@
1
+ import { ExpressionConverter } from '../../domain';
2
+ export declare class ExpressionConvertGraphql implements ExpressionConverter {
3
+ convert(source: any): [string, any];
4
+ }
5
+ //# sourceMappingURL=convertFromGraphql.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convertFromGraphql.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/expression/infrastructure/convertFrom/convertFromGraphql.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAElD,qBAAa,wBAAyB,YAAW,mBAAmB;IAC5D,OAAO,CAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAE;CAG5C"}
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExpressionConvertGraphql = void 0;
4
+ const h3lp_1 = require("@data7expressions/h3lp");
5
+ class ExpressionConvertGraphql {
6
+ convert(source) {
7
+ return new GraphqlParser(source).parse();
8
+ }
9
+ }
10
+ exports.ExpressionConvertGraphql = ExpressionConvertGraphql;
11
+ class GraphqlParser {
12
+ constructor(source) {
13
+ this.buffer = source.split('');
14
+ this.length = this.buffer.length;
15
+ this.index = 0;
16
+ this.expression = [];
17
+ this.context = {};
18
+ }
19
+ get end() {
20
+ return this.index >= this.length;
21
+ }
22
+ get current() {
23
+ return this.buffer[this.index];
24
+ }
25
+ parse() {
26
+ this.read();
27
+ return [this.expression.join(''), this.context];
28
+ }
29
+ read(level = 0, _break = '', prefix = '') {
30
+ while (!this.end) {
31
+ const name = this.getName();
32
+ this.expression.push(prefix + name);
33
+ this.forwardSpaces();
34
+ if (this.current === _break) {
35
+ this.index += 1;
36
+ break;
37
+ }
38
+ else if (this.current === '{') {
39
+ this.index += 1;
40
+ this.expression.push(level === 0 ? '.map(p=> [' : '.include(p=> [');
41
+ this.read(level + 1, '}', 'p.');
42
+ this.expression.push('])');
43
+ }
44
+ else if (this.current === '(') {
45
+ this.readArgs(')');
46
+ }
47
+ if (!this.end) {
48
+ this.expression.push(',');
49
+ }
50
+ }
51
+ }
52
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
53
+ readArgs(_break = '') {
54
+ // while (true) {
55
+ // const name = this.getName()
56
+ // this.forwardSpaces()
57
+ // if (this.current === ':') this.index += 1
58
+ // else throw new Error(`attribute ${name} without value`)
59
+ // const value = this.read()
60
+ // properties.push({ name, type })
61
+ // this.forwardSpaces()
62
+ // if (this.current === ',') {
63
+ // this.index += 1
64
+ // } else if (this.current === '}') {
65
+ // this.index += 1
66
+ // break
67
+ // } else {
68
+ // throw new Error('Object without end')
69
+ // }
70
+ // }
71
+ // return { properties }
72
+ }
73
+ getName(increment = true) {
74
+ const buff = [];
75
+ if (increment) {
76
+ while (!this.end && h3lp_1.h3lp.val.isAlphanumeric(this.current)) {
77
+ buff.push(this.current);
78
+ this.index += 1;
79
+ }
80
+ }
81
+ else {
82
+ let index = this.index;
83
+ while (!this.end && h3lp_1.h3lp.val.isAlphanumeric(this.buffer[index])) {
84
+ buff.push(this.buffer[index]);
85
+ index += 1;
86
+ }
87
+ }
88
+ return buff.join('');
89
+ }
90
+ forwardSpaces() {
91
+ while (!this.end && this.buffer[this.index] === ' ') {
92
+ this.index += 1;
93
+ }
94
+ }
95
+ }
96
+ //# sourceMappingURL=convertFromGraphql.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convertFromGraphql.js","sourceRoot":"","sources":["../../../../../../src/lib/expression/infrastructure/convertFrom/convertFromGraphql.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { Expressions } from '../domain';
2
+ import { ExprH3lp } from '../../shared/infrastructure';
3
+ export declare class ExpressionsBuilder {
4
+ private readonly helper;
5
+ constructor(helper: ExprH3lp);
6
+ build(): Expressions;
7
+ }
8
+ //# sourceMappingURL=expressionsBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expressionsBuilder.d.ts","sourceRoot":"","sources":["../../../../../src/lib/expression/infrastructure/expressionsBuilder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAMvC,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAEtD,qBAAa,kBAAkB;IAEjB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAC,QAAQ;IAEtC,KAAK,IAAK,WAAW;CAY5B"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExpressionsBuilder = void 0;
4
+ const library_1 = require("./library");
5
+ const application_1 = require("../application");
6
+ const convert_1 = require("../application/useCases/convert");
7
+ const application_2 = require("../../model/application");
8
+ const convertFromFunction_1 = require("./convertFrom/convertFromFunction");
9
+ const convertFromGraphql_1 = require("./convertFrom/convertFromGraphql");
10
+ const infrastructure_1 = require("../../operand/infrastructure");
11
+ class ExpressionsBuilder {
12
+ // eslint-disable-next-line no-useless-constructor
13
+ constructor(helper) {
14
+ this.helper = helper;
15
+ }
16
+ build() {
17
+ const model = new application_2.ModelServiceImpl();
18
+ const operandFacade = new infrastructure_1.OperandFacadeBuilder(model, this.helper).build();
19
+ const expressionConvert = new convert_1.ExpressionConvertImp()
20
+ .addConvert('function', new convertFromFunction_1.ExpressionConvertFunction(operandFacade.getBuilder('expression'), this.helper))
21
+ .addConvert('graphql', new convertFromGraphql_1.ExpressionConvertGraphql());
22
+ new library_1.CoreLibrary(operandFacade.getBuilder('expression'), operandFacade, this.helper).load(model);
23
+ const expressionEvaluator = new application_1.ExecutorObserveDecorator(new application_1.ExecutorImpl(operandFacade));
24
+ return new application_1.ExpressionsImpl(model, expressionConvert, operandFacade, expressionEvaluator, expressionEvaluator);
25
+ }
26
+ }
27
+ exports.ExpressionsBuilder = ExpressionsBuilder;
28
+ //# sourceMappingURL=expressionsBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expressionsBuilder.js","sourceRoot":"","sources":["../../../../../src/lib/expression/infrastructure/expressionsBuilder.ts"],"names":[],"mappings":";;;AAAA,uCAAuC;AACvC,gDAAwF;AAExF,6DAAsE;AACtE,yDAA0D;AAC1D,2EAA6E;AAC7E,yEAA2E;AAC3E,iEAAmE;AAGnE,MAAa,kBAAkB;IAC9B,kDAAkD;IAClD,YAA8B,MAAe;QAAf,WAAM,GAAN,MAAM,CAAS;IAAG,CAAC;IAE1C,KAAK;QACX,MAAM,KAAK,GAAG,IAAI,8BAAgB,EAAE,CAAA;QACpC,MAAM,aAAa,GAAG,IAAI,qCAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAA;QAC1E,MAAM,iBAAiB,GAAG,IAAI,8BAAoB,EAAE;aAClD,UAAU,CAAC,UAAU,EAAE,IAAI,+CAAyB,CAAC,aAAa,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;aAC1G,UAAU,CAAC,SAAS,EAAE,IAAI,6CAAwB,EAAE,CAAC,CAAA;QACvD,IAAI,qBAAW,CAAC,aAAa,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC/F,MAAM,mBAAmB,GAAG,IAAI,sCAAwB,CACvD,IAAI,0BAAY,CAAC,aAAa,CAAC,CAC/B,CAAA;QACD,OAAO,IAAI,6BAAe,CAAC,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,mBAAmB,EAAE,mBAAmB,CAAC,CAAA;IAC9G,CAAC;CACD;AAhBD,gDAgBC"}
@@ -0,0 +1,7 @@
1
+ import { IStringHelper } from '@data7expressions/h3lp';
2
+ export declare class ExpressionHelper {
3
+ private readonly str;
4
+ constructor(str: IStringHelper);
5
+ clearLambda(func: Function): string;
6
+ }
7
+ //# sourceMappingURL=helper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helper.d.ts","sourceRoot":"","sources":["../../../../../src/lib/expression/infrastructure/helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAEtD,qBAAa,gBAAgB;IAEf,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAC,aAAa;IAGxC,WAAW,CAAE,IAAI,EAAC,QAAQ,GAAE,MAAM;CAqBzC"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExpressionHelper = void 0;
4
+ class ExpressionHelper {
5
+ // eslint-disable-next-line no-useless-constructor
6
+ constructor(str) {
7
+ this.str = str;
8
+ }
9
+ // eslint-disable-next-line @typescript-eslint/ban-types
10
+ clearLambda(func) {
11
+ let str = func.toString().trim();
12
+ let index = str.indexOf('=>') + 2;
13
+ str = str.substring(index, str.length).trim();
14
+ index = str.indexOf('(');
15
+ if (index > -1) {
16
+ // Example: xxx.Products.map()
17
+ const form = str.substring(0, index).trim();
18
+ const parts = form.split('.');
19
+ if (parts.length > 2) {
20
+ return this.str.replace(str, parts[0] + '.', '');
21
+ }
22
+ }
23
+ else {
24
+ // Example: xxx.Products
25
+ const parts = str.split('.');
26
+ if (parts.length > 1) {
27
+ return this.str.replace(str, parts[0] + '.', '');
28
+ }
29
+ }
30
+ return str;
31
+ }
32
+ }
33
+ exports.ExpressionHelper = ExpressionHelper;
34
+ //# sourceMappingURL=helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helper.js","sourceRoot":"","sources":["../../../../../src/lib/expression/infrastructure/helper.ts"],"names":[],"mappings":";;;AAEA,MAAa,gBAAgB;IAC5B,kDAAkD;IAClD,YAA8B,GAAiB;QAAjB,QAAG,GAAH,GAAG,CAAc;IAAG,CAAC;IAEnD,wDAAwD;IACjD,WAAW,CAAE,IAAa;QAChC,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAA;QAChC,IAAI,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACjC,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAA;QAC7C,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QACxB,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;YAChB,8BAA8B;YAC9B,MAAM,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAA;YAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAC7B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,CAAA;YACjD,CAAC;QACF,CAAC;aAAM,CAAC;YACP,wBAAwB;YACxB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAC5B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,CAAA;YACjD,CAAC;QACF,CAAC;QACD,OAAO,GAAG,CAAA;IACX,CAAC;CACD;AA1BD,4CA0BC"}
@@ -0,0 +1,2 @@
1
+ export * from './helper';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/expression/infrastructure/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA"}
@@ -0,0 +1,18 @@
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("./helper"), exports);
18
+ //# sourceMappingURL=index.js.map