@allgemein/mango-expressions 1.1.0 → 1.3.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 (201) hide show
  1. package/Constants.js +1 -2
  2. package/Constants.js.map +1 -1
  3. package/IMangoWalker.d.ts +8 -8
  4. package/IMangoWalker.js +1 -2
  5. package/IMangoWalker.js.map +1 -1
  6. package/LICENSE +1 -1
  7. package/MangoExpression.d.ts +8 -4
  8. package/MangoExpression.js +35 -25
  9. package/MangoExpression.js.map +1 -1
  10. package/ast/Bindings.d.ts +11 -0
  11. package/ast/Bindings.js +11 -0
  12. package/ast/Bindings.js.map +1 -0
  13. package/ast/Context.js +8 -9
  14. package/ast/Context.js.map +1 -1
  15. package/ast/KeyDesc.d.ts +10 -0
  16. package/ast/KeyDesc.js +20 -0
  17. package/ast/KeyDesc.js.map +1 -0
  18. package/ast/MultiArgs.js +1 -2
  19. package/ast/MultiArgs.js.map +1 -1
  20. package/ast/PArray.d.ts +3 -5
  21. package/ast/PArray.js +19 -17
  22. package/ast/PArray.js.map +1 -1
  23. package/ast/PAst.d.ts +23 -8
  24. package/ast/PAst.js +114 -8
  25. package/ast/PAst.js.map +1 -1
  26. package/ast/PObject.d.ts +10 -9
  27. package/ast/PObject.js +58 -33
  28. package/ast/PObject.js.map +1 -1
  29. package/ast/PValue.d.ts +4 -4
  30. package/ast/PValue.js +7 -5
  31. package/ast/PValue.js.map +1 -1
  32. package/ast/Selector.d.ts +6 -0
  33. package/ast/Selector.js +13 -0
  34. package/ast/Selector.js.map +1 -0
  35. package/ast/Unset.js +1 -2
  36. package/ast/Unset.js.map +1 -1
  37. package/ast/Value.js +1 -2
  38. package/ast/Value.js.map +1 -1
  39. package/ast/ValueRef.d.ts +1 -0
  40. package/ast/ValueRef.js +4 -2
  41. package/ast/ValueRef.js.map +1 -1
  42. package/browser.d.ts +4 -4
  43. package/browser.js +8 -9
  44. package/browser.js.map +1 -1
  45. package/index.d.ts +1 -1
  46. package/index.js +5 -6
  47. package/index.js.map +1 -1
  48. package/operators/AbstractOperator.d.ts +3 -7
  49. package/operators/AbstractOperator.js +24 -15
  50. package/operators/AbstractOperator.js.map +1 -1
  51. package/operators/Operators.d.ts +2 -1
  52. package/operators/Operators.js +7 -8
  53. package/operators/Operators.js.map +1 -1
  54. package/operators/arithmetic/Avg.d.ts +1 -1
  55. package/operators/arithmetic/Avg.js +1 -2
  56. package/operators/arithmetic/Avg.js.map +1 -1
  57. package/operators/arithmetic/Count.d.ts +1 -1
  58. package/operators/arithmetic/Count.js +1 -2
  59. package/operators/arithmetic/Count.js.map +1 -1
  60. package/operators/arithmetic/Max.d.ts +1 -1
  61. package/operators/arithmetic/Max.js +1 -2
  62. package/operators/arithmetic/Max.js.map +1 -1
  63. package/operators/arithmetic/Min.d.ts +1 -1
  64. package/operators/arithmetic/Min.js +1 -2
  65. package/operators/arithmetic/Min.js.map +1 -1
  66. package/operators/arithmetic/Multiply.d.ts +1 -1
  67. package/operators/arithmetic/Multiply.js +1 -2
  68. package/operators/arithmetic/Multiply.js.map +1 -1
  69. package/operators/arithmetic/Sum.d.ts +1 -1
  70. package/operators/arithmetic/Sum.js +1 -2
  71. package/operators/arithmetic/Sum.js.map +1 -1
  72. package/operators/array/First.d.ts +1 -2
  73. package/operators/array/First.js +4 -5
  74. package/operators/array/First.js.map +1 -1
  75. package/operators/array/Last.d.ts +1 -2
  76. package/operators/array/Last.js +4 -5
  77. package/operators/array/Last.js.map +1 -1
  78. package/operators/array/Map.d.ts +3 -3
  79. package/operators/array/Map.js +8 -9
  80. package/operators/array/Map.js.map +1 -1
  81. package/operators/compare/AbstractCompare.d.ts +2 -2
  82. package/operators/compare/AbstractCompare.js +4 -4
  83. package/operators/compare/AbstractCompare.js.map +1 -1
  84. package/operators/compare/EqualDesc.d.ts +10 -0
  85. package/operators/compare/EqualDesc.js +21 -0
  86. package/operators/compare/EqualDesc.js.map +1 -0
  87. package/operators/compare/EqualDescLookup.d.ts +5 -0
  88. package/operators/compare/EqualDescLookup.js +37 -0
  89. package/operators/compare/EqualDescLookup.js.map +1 -0
  90. package/operators/compare/GreaterThen.d.ts +1 -2
  91. package/operators/compare/GreaterThen.js +1 -2
  92. package/operators/compare/GreaterThen.js.map +1 -1
  93. package/operators/compare/GreaterThenEqual.d.ts +1 -2
  94. package/operators/compare/GreaterThenEqual.js +1 -2
  95. package/operators/compare/GreaterThenEqual.js.map +1 -1
  96. package/operators/compare/In.d.ts +1 -2
  97. package/operators/compare/In.js +1 -2
  98. package/operators/compare/In.js.map +1 -1
  99. package/operators/compare/IsNotNull.d.ts +1 -3
  100. package/operators/compare/IsNotNull.js +1 -2
  101. package/operators/compare/IsNotNull.js.map +1 -1
  102. package/operators/compare/IsNull.d.ts +1 -3
  103. package/operators/compare/IsNull.js +1 -2
  104. package/operators/compare/IsNull.js.map +1 -1
  105. package/operators/compare/LessThen.d.ts +1 -2
  106. package/operators/compare/LessThen.js +1 -2
  107. package/operators/compare/LessThen.js.map +1 -1
  108. package/operators/compare/LessThenEqual.d.ts +1 -2
  109. package/operators/compare/LessThenEqual.js +1 -2
  110. package/operators/compare/LessThenEqual.js.map +1 -1
  111. package/operators/compare/Like.d.ts +1 -2
  112. package/operators/compare/Like.js +1 -2
  113. package/operators/compare/Like.js.map +1 -1
  114. package/operators/compare/NotEqual.d.ts +1 -2
  115. package/operators/compare/NotEqual.js +1 -2
  116. package/operators/compare/NotEqual.js.map +1 -1
  117. package/operators/compare/NotIn.d.ts +1 -2
  118. package/operators/compare/NotIn.js +1 -2
  119. package/operators/compare/NotIn.js.map +1 -1
  120. package/operators/compare/Regex.d.ts +1 -2
  121. package/operators/compare/Regex.js +4 -5
  122. package/operators/compare/Regex.js.map +1 -1
  123. package/operators/date/Date.d.ts +1 -1
  124. package/operators/date/Date.js +1 -2
  125. package/operators/date/Date.js.map +1 -1
  126. package/operators/date/DateToString.d.ts +2 -3
  127. package/operators/date/DateToString.js +8 -9
  128. package/operators/date/DateToString.js.map +1 -1
  129. package/operators/date/Day.d.ts +1 -1
  130. package/operators/date/Day.js +1 -2
  131. package/operators/date/Day.js.map +1 -1
  132. package/operators/date/Month.d.ts +1 -1
  133. package/operators/date/Month.js +1 -2
  134. package/operators/date/Month.js.map +1 -1
  135. package/operators/date/Year.d.ts +1 -1
  136. package/operators/date/Year.js +1 -2
  137. package/operators/date/Year.js.map +1 -1
  138. package/operators/logic/AbstractLogic.d.ts +3 -0
  139. package/operators/logic/AbstractLogic.js +8 -0
  140. package/operators/logic/AbstractLogic.js.map +1 -0
  141. package/operators/logic/AndDesc.d.ts +10 -0
  142. package/operators/logic/AndDesc.js +31 -0
  143. package/operators/logic/AndDesc.js.map +1 -0
  144. package/operators/logic/AndDescLookup.d.ts +5 -0
  145. package/operators/logic/AndDescLookup.js +12 -0
  146. package/operators/logic/AndDescLookup.js.map +1 -0
  147. package/operators/logic/Not.d.ts +3 -2
  148. package/operators/logic/Not.js +3 -4
  149. package/operators/logic/Not.js.map +1 -1
  150. package/operators/logic/OrDesc.d.ts +10 -0
  151. package/operators/logic/OrDesc.js +31 -0
  152. package/operators/logic/OrDesc.js.map +1 -0
  153. package/operators/stage/Group.d.ts +3 -3
  154. package/operators/stage/Group.js +17 -11
  155. package/operators/stage/Group.js.map +1 -1
  156. package/operators/stage/Limit.d.ts +1 -5
  157. package/operators/stage/Limit.js +7 -6
  158. package/operators/stage/Limit.js.map +1 -1
  159. package/operators/stage/Match.d.ts +2 -2
  160. package/operators/stage/Match.js +7 -5
  161. package/operators/stage/Match.js.map +1 -1
  162. package/operators/stage/Project.d.ts +2 -2
  163. package/operators/stage/Project.js +9 -7
  164. package/operators/stage/Project.js.map +1 -1
  165. package/operators/stage/Skip.d.ts +2 -2
  166. package/operators/stage/Skip.js +7 -5
  167. package/operators/stage/Skip.js.map +1 -1
  168. package/operators/stage/Sort.d.ts +2 -2
  169. package/operators/stage/Sort.js +7 -5
  170. package/operators/stage/Sort.js.map +1 -1
  171. package/operators/string/Substr.d.ts +1 -2
  172. package/operators/string/Substr.js +5 -6
  173. package/operators/string/Substr.js.map +1 -1
  174. package/operators/string/ToFloat.d.ts +1 -1
  175. package/operators/string/ToFloat.js +4 -5
  176. package/operators/string/ToFloat.js.map +1 -1
  177. package/operators/string/ToInt.d.ts +1 -1
  178. package/operators/string/ToInt.js +4 -5
  179. package/operators/string/ToInt.js.map +1 -1
  180. package/operators/string/ToLower.d.ts +1 -1
  181. package/operators/string/ToLower.js +4 -5
  182. package/operators/string/ToLower.js.map +1 -1
  183. package/operators/string/ToUpper.d.ts +1 -2
  184. package/operators/string/ToUpper.js +4 -5
  185. package/operators/string/ToUpper.js.map +1 -1
  186. package/package.json +5 -58
  187. package/walker/lookup/ILookupFn.d.ts +4 -0
  188. package/walker/lookup/ILookupFn.js +3 -0
  189. package/walker/lookup/ILookupFn.js.map +1 -0
  190. package/walker/lookup/LookupWalker.d.ts +15 -0
  191. package/walker/lookup/LookupWalker.js +99 -0
  192. package/walker/lookup/LookupWalker.js.map +1 -0
  193. package/operators/compare/Equal.d.ts +0 -8
  194. package/operators/compare/Equal.js +0 -15
  195. package/operators/compare/Equal.js.map +0 -1
  196. package/operators/logic/And.d.ts +0 -7
  197. package/operators/logic/And.js +0 -23
  198. package/operators/logic/And.js.map +0 -1
  199. package/operators/logic/Or.d.ts +0 -7
  200. package/operators/logic/Or.js +0 -23
  201. package/operators/logic/Or.js.map +0 -1
package/ast/PAst.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/ast/PAst.ts"],"names":[],"mappings":";;;AAEA,uCAAkC;AAElC,MAAsB,IAAI;IAWxB,YAAY,CAAkB,EAAE,CAAO,EAAE,IAAc;QAH9C,YAAO,GAAY,IAAI,iBAAO,EAAE,CAAC;QAIxC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QACd,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IAAI,IAAI,EAAE;YACR,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;YACpB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SAC1B;IACH,CAAC;IAGD,IAAI;QACF,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAGD;;;;;OAKG;IACH,YAAY,CAAC,EAAwB,EAAE,OAAgB,IAAI;QACzD,IAAI,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE;YACpB,OAAO,IAAI,CAAC;SACb;QACD,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;SAC3C;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAGD;;;;;OAKG;IACH,WAAW,CAAC,IAAY,EAAE,YAAqB,IAAI;QACjD,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,SAAS,EAAE;YACvC,OAAO,IAAI,CAAC;SACb;QACD,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SAC5C;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CAOF;AAjED,oBAiEC","file":"PAst.js","sourcesContent":["import {MangoExpression} from '../MangoExpression';\nimport {IMangoWalker} from '../IMangoWalker';\nimport {Context} from './Context';\n\nexport abstract class PAst {\n\n readonly base: MangoExpression;\n\n readonly parent: PAst;\n\n readonly key: string | number;\n\n readonly context: Context = new Context();\n\n\n constructor(e: MangoExpression, p: PAst, ctxt?: Context) {\n this.base = e;\n this.parent = p;\n if (ctxt) {\n this.key = ctxt.key;\n this.context.merge(ctxt);\n }\n }\n\n\n keys() {\n const keys = [this.key];\n return keys;\n }\n\n\n /**\n * function execute on self and parents\n *\n * @param fn\n * @param self\n */\n backwardCall(fn: (x: PAst) => boolean, self: boolean = true): any {\n if (self && fn(this)) {\n return true;\n }\n if (this.parent) {\n return this.parent.backwardCall(fn, true);\n }\n return null;\n }\n\n\n /**\n * check if the self or nodes branch is in some sublying context\n *\n * @param ctxt\n * @param selfCheck\n */\n isInContext(ctxt: string, selfCheck: boolean = true): boolean {\n if (this.context.has(ctxt) && selfCheck) {\n return true;\n }\n if (this.parent) {\n return this.parent.isInContext(ctxt, true);\n }\n return false;\n }\n\n abstract getKey(key: string): PAst;\n\n\n abstract visit(o: IMangoWalker): any;\n\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"file":"PAst.js","sourceRoot":"","sources":["../../../src/ast/PAst.ts"],"names":[],"mappings":"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"}
package/ast/PObject.d.ts CHANGED
@@ -1,16 +1,17 @@
1
1
  import { PAst } from './PAst';
2
- import { MangoExpression } from '../MangoExpression';
3
2
  import { IMangoWalker } from '../IMangoWalker';
4
3
  import { Context } from './Context';
5
- export declare class PObject extends PAst {
6
- children: {
7
- [k: string]: PAst;
8
- };
4
+ import { MangoExpression } from '../MangoExpression';
5
+ export declare class PObject extends PAst<{
6
+ [k: string]: PAst<any>;
7
+ }> {
9
8
  _keys: string[];
10
- constructor(e: MangoExpression, kv: any, p?: PAst, ctxt?: Context);
11
- getKey(key: string): PAst;
9
+ getByKey(key: string): PAst<any>;
12
10
  keys(): string[];
13
11
  visit(o: IMangoWalker): any;
14
- getValues(): PAst[];
15
- interprete(kv: any): void;
12
+ getValues(): PAst<any>[];
13
+ interprete(e: MangoExpression, value: {
14
+ [k: string]: any;
15
+ }, p?: PAst<any>, ctxt?: Context): void;
16
+ toJson(): any;
16
17
  }
package/ast/PObject.js CHANGED
@@ -1,32 +1,34 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PObject = void 0;
4
- const _ = require("lodash");
4
+ const lodash_1 = require("lodash");
5
5
  const PAst_1 = require("./PAst");
6
6
  const ValueRef_1 = require("./ValueRef");
7
7
  const Unset_1 = require("./Unset");
8
- const Equal_1 = require("../operators/compare/Equal");
9
8
  const Context_1 = require("./Context");
10
9
  const Constants_1 = require("../Constants");
11
10
  class PObject extends PAst_1.PAst {
12
- constructor(e, kv, p, ctxt) {
13
- super(e, p, ctxt);
14
- this.children = {};
15
- this.interprete(kv);
16
- }
17
- getKey(key) {
18
- if (this.children[key]) {
19
- return this.children[key];
11
+ // constructor(e: MangoExpression, kv: any, p?: PAst, ctxt?: Context) {
12
+ // super(e, p, ctxt);
13
+ // this.interprete(kv);
14
+ // }
15
+ // create(){
16
+ //
17
+ // }
18
+ getByKey(key) {
19
+ if (this.getValue()[key]) {
20
+ return this.getValue()[key];
20
21
  }
21
22
  return null;
22
23
  // throw new NotYetImplementedError();
23
24
  }
24
25
  keys() {
25
- const prefix = (this.key && _.isString(this.key) ? this.key + '.' : '');
26
+ const prefix = (this.getKeyString() && (0, lodash_1.isString)(this.getKeyString()) ? this.getKeyString() + '.' : '');
26
27
  const keys = [];
27
28
  for (const k of this._keys) {
28
- const subkey = this.children[k].keys();
29
- subkey.forEach(x => {
29
+ // @ts-ignore
30
+ const subkey = this.getValues()[k].keys();
31
+ subkey.forEach((x) => {
30
32
  keys.push(prefix + x);
31
33
  });
32
34
  }
@@ -34,51 +36,74 @@ class PObject extends PAst_1.PAst {
34
36
  }
35
37
  visit(o) {
36
38
  const state = {};
37
- const r = o.visitObject(this, state);
39
+ let r = {};
40
+ if (o.visitObject) {
41
+ r = o.visitObject(this, state);
42
+ }
38
43
  if (state && state.abort) {
39
44
  return r;
40
45
  }
41
46
  for (const k of this._keys) {
42
- r[k] = this.children[k].visit(o);
47
+ r[k] = this.value[k].visit(o);
48
+ }
49
+ if (o.leaveObject) {
50
+ return o.leaveObject(r, this);
43
51
  }
44
- return o.leaveObject(r, this);
52
+ return r;
45
53
  }
46
54
  getValues() {
47
- return _.values(this.children);
55
+ return (0, lodash_1.values)(this.value);
48
56
  }
49
- interprete(kv) {
50
- this._keys = _.keys(kv);
51
- const autoEqualSupport = !!this.context.get(Constants_1.AUTO_EQUAL_CONV_SUPPORT);
52
- const numberProjectSupport = !!this.context.get(Constants_1.NUMBER_PROJECT_SUPPORT);
57
+ interprete(e, value, p, ctxt) {
58
+ // do not pass and interprete value
59
+ this.enviroment(e, p, ctxt);
60
+ this.value = {};
61
+ this._keys = (0, lodash_1.keys)(value);
62
+ const autoEqualSupport = !!this.getContext().get(Constants_1.AUTO_EQUAL_CONV_SUPPORT);
63
+ const numberProjectSupport = !!this.getContext().get(Constants_1.NUMBER_PROJECT_SUPPORT);
53
64
  for (const k of this._keys) {
54
65
  const ctxt = new Context_1.Context(k);
55
- const v = kv[k];
66
+ const v = value[k];
56
67
  if (!autoEqualSupport) {
57
- if (numberProjectSupport && _.isNumber(v) && (v === 1 || v === 0)) {
68
+ if (numberProjectSupport && (0, lodash_1.isNumber)(v) && (v === 1 || v === 0)) {
58
69
  if (v === 1) {
59
- this.children[k] = new ValueRef_1.ValueRef(this.base, k, this, ctxt);
70
+ this.value[k] = this.getRootExpression().create(ValueRef_1.ValueRef, k, this, ctxt);
60
71
  }
61
72
  else {
62
- this.children[k] = new Unset_1.Unset(this.base, k, this, ctxt);
73
+ this.value[k] = this.getRootExpression().create(Unset_1.Unset, k, this, ctxt);
63
74
  }
64
75
  }
65
76
  else {
66
- this.children[k] = this.base.interprete(v, this, ctxt);
77
+ this.value[k] = this.getRootExpression().interprete(v, this, ctxt);
67
78
  }
68
79
  }
69
80
  else {
70
- if (_.isObjectLike(v) || _.isArray(v)) {
71
- this.children[k] = this.base.interprete(v, this, ctxt);
81
+ const isPrimative = (0, lodash_1.isDate)(v) || (0, lodash_1.isNumber)(v) || (0, lodash_1.isString)(v) || (0, lodash_1.isBoolean)() || (0, lodash_1.isNull)(v);
82
+ if (!isPrimative && ((0, lodash_1.isObjectLike)(v) || (0, lodash_1.isArray)(v))) {
83
+ this.value[k] = this.getRootExpression().interprete(v, this, ctxt);
72
84
  }
73
85
  else {
74
- const eq = new Equal_1.Equal(this.base, this, ctxt);
75
- this.children[k] = eq;
76
- eq.validate(v);
86
+ const eq = this.getRootExpression().getOperator('$eq', v, value, this, ctxt);
87
+ this.value[k] = eq;
88
+ // eq.validate(v);
77
89
  }
78
90
  }
79
91
  }
80
92
  }
93
+ toJson() {
94
+ let obj = {};
95
+ for (const k of this._keys) {
96
+ if (this.value[k] instanceof PAst_1.PAst) {
97
+ // @ts-ignore
98
+ obj[k] = this.value[k].toJson();
99
+ }
100
+ else {
101
+ // @ts-ignore
102
+ obj[k] = this.value[k];
103
+ }
104
+ }
105
+ return obj;
106
+ }
81
107
  }
82
108
  exports.PObject = PObject;
83
-
84
- //# sourceMappingURL=PObject.js.map
109
+ //# sourceMappingURL=PObject.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/ast/PObject.ts"],"names":[],"mappings":"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","file":"PObject.js","sourcesContent":["import * as _ from 'lodash';\nimport {PAst} from './PAst';\nimport {ValueRef} from './ValueRef';\nimport {Unset} from './Unset';\nimport {MangoExpression} from '../MangoExpression';\nimport {IMangoWalker, IMangoWalkerControl} from '../IMangoWalker';\nimport {Equal} from '../operators/compare/Equal';\nimport {Context} from './Context';\nimport {AUTO_EQUAL_CONV_SUPPORT, NUMBER_PROJECT_SUPPORT} from '../Constants';\n\nexport class PObject extends PAst {\n\n children: { [k: string]: PAst } = {};\n\n _keys: string[];\n\n\n constructor(e: MangoExpression, kv: any, p?: PAst, ctxt?: Context) {\n super(e, p, ctxt);\n this.interprete(kv);\n }\n\n getKey(key: string): PAst {\n if (this.children[key]) {\n return this.children[key];\n }\n return null;\n // throw new NotYetImplementedError();\n }\n\n keys() {\n const prefix = (this.key && _.isString(this.key) ? this.key + '.' : '');\n const keys: string[] = [];\n for (const k of this._keys) {\n const subkey = this.children[k].keys();\n subkey.forEach(x => {\n keys.push(prefix + x);\n });\n }\n return keys;\n }\n\n\n visit(o: IMangoWalker): any {\n const state: IMangoWalkerControl = {};\n const r = o.visitObject(this, state);\n if (state && state.abort) {\n return r;\n }\n\n for (const k of this._keys) {\n r[k] = this.children[k].visit(o);\n }\n return o.leaveObject(r, this);\n }\n\n\n getValues() {\n return _.values(this.children);\n }\n\n\n interprete(kv: any) {\n this._keys = _.keys(kv);\n\n const autoEqualSupport = !!this.context.get(AUTO_EQUAL_CONV_SUPPORT);\n const numberProjectSupport = !!this.context.get(NUMBER_PROJECT_SUPPORT);\n\n for (const k of this._keys) {\n const ctxt = new Context(k);\n const v = kv[k];\n if (!autoEqualSupport) {\n if (numberProjectSupport && _.isNumber(v) && (v === 1 || v === 0)) {\n if (v === 1) {\n this.children[k] = new ValueRef(this.base, k, this, ctxt);\n } else {\n this.children[k] = new Unset(this.base, k, this, ctxt);\n }\n } else {\n this.children[k] = this.base.interprete(v, this, ctxt);\n }\n } else {\n if (_.isObjectLike(v) || _.isArray(v)) {\n this.children[k] = this.base.interprete(v, this, ctxt);\n } else {\n const eq = new Equal(this.base, this, ctxt);\n this.children[k] = eq;\n eq.validate(v);\n }\n }\n }\n }\n\n\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"file":"PObject.js","sourceRoot":"","sources":["../../../src/ast/PObject.ts"],"names":[],"mappings":"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"}
package/ast/PValue.d.ts CHANGED
@@ -2,9 +2,9 @@ import { PAst } from './PAst';
2
2
  import { MangoExpression } from '../MangoExpression';
3
3
  import { IMangoWalker } from '../IMangoWalker';
4
4
  import { Context } from './Context';
5
- export declare abstract class PValue extends PAst {
6
- value: any;
7
- constructor(e: MangoExpression, value: any, p?: PAst, ctxt?: Context);
8
- getKey(key: string): PAst;
5
+ export declare abstract class PValue extends PAst<any> {
6
+ interprete(e: MangoExpression, value: any, p?: PAst<any>, ctxt?: Context): void;
7
+ getByKey(key: string): PAst<any>;
9
8
  visit(o: IMangoWalker): any;
9
+ toJson(): any;
10
10
  }
package/ast/PValue.js CHANGED
@@ -4,17 +4,19 @@ exports.PValue = void 0;
4
4
  const PAst_1 = require("./PAst");
5
5
  const browser_1 = require("@allgemein/base/browser");
6
6
  class PValue extends PAst_1.PAst {
7
- constructor(e, value, p, ctxt) {
8
- super(e, p, ctxt);
7
+ interprete(e, value, p, ctxt) {
8
+ this.enviroment(e, p, ctxt);
9
9
  this.value = value;
10
10
  }
11
- getKey(key) {
11
+ getByKey(key) {
12
12
  throw new browser_1.NotYetImplementedError();
13
13
  }
14
14
  visit(o) {
15
15
  return o.onValue(this);
16
16
  }
17
+ toJson() {
18
+ return this.value;
19
+ }
17
20
  }
18
21
  exports.PValue = PValue;
19
-
20
- //# sourceMappingURL=PValue.js.map
22
+ //# sourceMappingURL=PValue.js.map
package/ast/PValue.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/ast/PValue.ts"],"names":[],"mappings":";;;AAAA,iCAA4B;AAG5B,qDAA+D;AAG/D,MAAsB,MAAO,SAAQ,WAAI;IAIvC,YAAY,CAAkB,EAAE,KAAU,EAAE,CAAQ,EAAE,IAAc;QAClE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QAClB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,GAAW;QAChB,MAAM,IAAI,gCAAsB,EAAE,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,CAAe;QACnB,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;CACF;AAhBD,wBAgBC","file":"PValue.js","sourcesContent":["import {PAst} from './PAst';\nimport {MangoExpression} from '../MangoExpression';\nimport {IMangoWalker} from '../IMangoWalker';\nimport {NotYetImplementedError} from '@allgemein/base/browser';\nimport {Context} from './Context';\n\nexport abstract class PValue extends PAst {\n\n value: any;\n\n constructor(e: MangoExpression, value: any, p?: PAst, ctxt?: Context) {\n super(e, p, ctxt);\n this.value = value;\n }\n\n getKey(key: string): PAst {\n throw new NotYetImplementedError();\n }\n\n visit(o: IMangoWalker): any {\n return o.onValue(this);\n }\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"file":"PValue.js","sourceRoot":"","sources":["../../../src/ast/PValue.ts"],"names":[],"mappings":";;;AAAA,iCAA4B;AAG5B,qDAA+D;AAG/D,MAAsB,MAAO,SAAQ,WAAS;IAE5C,UAAU,CAAC,CAAkB,EAAE,KAAU,EAAE,CAAa,EAAE,IAAc;QACtE,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,QAAQ,CAAC,GAAW;QAClB,MAAM,IAAI,gCAAsB,EAAE,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,CAAe;QACnB,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF;AAlBD,wBAkBC"}
@@ -0,0 +1,6 @@
1
+ import { PAst } from './PAst';
2
+ import { IMangoWalker } from '../IMangoWalker';
3
+ export declare class Selector extends PAst<string> {
4
+ getByKey(key: string): PAst<any>;
5
+ visit(o: IMangoWalker): any;
6
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Selector = void 0;
4
+ const PAst_1 = require("./PAst");
5
+ class Selector extends PAst_1.PAst {
6
+ getByKey(key) {
7
+ return undefined;
8
+ }
9
+ visit(o) {
10
+ }
11
+ }
12
+ exports.Selector = Selector;
13
+ //# sourceMappingURL=Selector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Selector.js","sourceRoot":"","sources":["../../../src/ast/Selector.ts"],"names":[],"mappings":";;;AAAA,iCAA4B;AAG5B,MAAa,QAAS,SAAQ,WAAY;IAExC,QAAQ,CAAC,GAAW;QAClB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,CAAe;IACrB,CAAC;CAGF;AAVD,4BAUC"}
package/ast/Unset.js CHANGED
@@ -5,5 +5,4 @@ const PValue_1 = require("./PValue");
5
5
  class Unset extends PValue_1.PValue {
6
6
  }
7
7
  exports.Unset = Unset;
8
-
9
- //# sourceMappingURL=Unset.js.map
8
+ //# sourceMappingURL=Unset.js.map
package/ast/Unset.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/ast/Unset.ts"],"names":[],"mappings":";;;AAAA,qCAAgC;AAEhC,MAAa,KAAM,SAAQ,eAAM;CAEhC;AAFD,sBAEC","file":"Unset.js","sourcesContent":["import {PValue} from './PValue';\n\nexport class Unset extends PValue {\n\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"file":"Unset.js","sourceRoot":"","sources":["../../../src/ast/Unset.ts"],"names":[],"mappings":";;;AAAA,qCAAgC;AAEhC,MAAa,KAAM,SAAQ,eAAM;CAEhC;AAFD,sBAEC"}
package/ast/Value.js CHANGED
@@ -5,5 +5,4 @@ const PValue_1 = require("./PValue");
5
5
  class Value extends PValue_1.PValue {
6
6
  }
7
7
  exports.Value = Value;
8
-
9
- //# sourceMappingURL=Value.js.map
8
+ //# sourceMappingURL=Value.js.map
package/ast/Value.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/ast/Value.ts"],"names":[],"mappings":";;;AAAA,qCAAgC;AAEhC,MAAa,KAAM,SAAQ,eAAM;CAEhC;AAFD,sBAEC","file":"Value.js","sourcesContent":["import {PValue} from './PValue';\n\nexport class Value extends PValue {\n\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"file":"Value.js","sourceRoot":"","sources":["../../../src/ast/Value.ts"],"names":[],"mappings":";;;AAAA,qCAAgC;AAEhC,MAAa,KAAM,SAAQ,eAAM;CAEhC;AAFD,sBAEC"}
package/ast/ValueRef.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  import { PValue } from './PValue';
2
2
  export declare class ValueRef extends PValue {
3
+ toJson(): any;
3
4
  }
package/ast/ValueRef.js CHANGED
@@ -3,7 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ValueRef = void 0;
4
4
  const PValue_1 = require("./PValue");
5
5
  class ValueRef extends PValue_1.PValue {
6
+ toJson() {
7
+ return '$' + this.value;
8
+ }
6
9
  }
7
10
  exports.ValueRef = ValueRef;
8
-
9
- //# sourceMappingURL=ValueRef.js.map
11
+ //# sourceMappingURL=ValueRef.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/ast/ValueRef.ts"],"names":[],"mappings":";;;AAAA,qCAAgC;AAEhC,MAAa,QAAS,SAAQ,eAAM;CAEnC;AAFD,4BAEC","file":"ValueRef.js","sourcesContent":["import {PValue} from './PValue';\n\nexport class ValueRef extends PValue {\n\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"file":"ValueRef.js","sourceRoot":"","sources":["../../../src/ast/ValueRef.ts"],"names":[],"mappings":";;;AAAA,qCAAgC;AAEhC,MAAa,QAAS,SAAQ,eAAM;IAClC,MAAM;QACJ,OAAO,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC;IAC1B,CAAC;CAEF;AALD,4BAKC"}
package/browser.d.ts CHANGED
@@ -8,7 +8,7 @@ export { Unset } from './ast/Unset';
8
8
  export { Value } from './ast/Value';
9
9
  export { ValueRef } from './ast/ValueRef';
10
10
  export { AUTO_EQUAL_CONV_SUPPORT, NUMBER_PROJECT_SUPPORT } from './Constants';
11
- export { IMangoWalker } from './IMangoWalker';
11
+ export { IMangoWalker, IMangoWalkerControl } from './IMangoWalker';
12
12
  export { MangoExpression } from './MangoExpression';
13
13
  export { AbstractOperator } from './operators/AbstractOperator';
14
14
  export { Avg } from './operators/arithmetic/Avg';
@@ -21,7 +21,7 @@ export { First } from './operators/array/First';
21
21
  export { Last } from './operators/array/Last';
22
22
  export { Map } from './operators/array/Map';
23
23
  export { AbstractCompare } from './operators/compare/AbstractCompare';
24
- export { Equal } from './operators/compare/Equal';
24
+ export { EqualDesc } from './operators/compare/EqualDesc';
25
25
  export { GreaterThen } from './operators/compare/GreaterThen';
26
26
  export { GreaterThenEqual } from './operators/compare/GreaterThenEqual';
27
27
  export { In } from './operators/compare/In';
@@ -38,9 +38,9 @@ export { DateToString } from './operators/date/DateToString';
38
38
  export { Day } from './operators/date/Day';
39
39
  export { Month } from './operators/date/Month';
40
40
  export { Year } from './operators/date/Year';
41
- export { And } from './operators/logic/And';
41
+ export { AndDesc } from './operators/logic/AndDesc';
42
42
  export { Not } from './operators/logic/Not';
43
- export { Or } from './operators/logic/Or';
43
+ export { OrDesc } from './operators/logic/OrDesc';
44
44
  export { Operators } from './operators/Operators';
45
45
  export { Group } from './operators/stage/Group';
46
46
  export { Limit } from './operators/stage/Limit';
package/browser.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Sort = exports.Skip = exports.Project = exports.Match = exports.Limit = exports.Group = exports.Operators = exports.Or = exports.Not = exports.And = exports.Year = exports.Month = exports.Day = exports.DateToString = exports.Date = exports.Regex = exports.NotIn = exports.NotEqual = exports.Like = exports.LessThenEqual = exports.LessThen = exports.IsNull = exports.IsNotNull = exports.In = exports.GreaterThenEqual = exports.GreaterThen = exports.Equal = exports.AbstractCompare = exports.Map = exports.Last = exports.First = exports.Sum = exports.Multiply = exports.Min = exports.Max = exports.Count = exports.Avg = exports.AbstractOperator = exports.MangoExpression = exports.NUMBER_PROJECT_SUPPORT = exports.AUTO_EQUAL_CONV_SUPPORT = exports.ValueRef = exports.Value = exports.Unset = exports.PValue = exports.PObject = exports.PAst = exports.PArray = exports.MultiArgs = exports.Context = void 0;
3
+ exports.Sort = exports.Skip = exports.Project = exports.Match = exports.Limit = exports.Group = exports.Operators = exports.OrDesc = exports.Not = exports.AndDesc = exports.Year = exports.Month = exports.Day = exports.DateToString = exports.Date = exports.Regex = exports.NotIn = exports.NotEqual = exports.Like = exports.LessThenEqual = exports.LessThen = exports.IsNull = exports.IsNotNull = exports.In = exports.GreaterThenEqual = exports.GreaterThen = exports.EqualDesc = exports.AbstractCompare = exports.Map = exports.Last = exports.First = exports.Sum = exports.Multiply = exports.Min = exports.Max = exports.Count = exports.Avg = exports.AbstractOperator = exports.MangoExpression = exports.NUMBER_PROJECT_SUPPORT = exports.AUTO_EQUAL_CONV_SUPPORT = exports.ValueRef = exports.Value = exports.Unset = exports.PValue = exports.PObject = exports.PAst = exports.PArray = exports.MultiArgs = exports.Context = void 0;
4
4
  exports.ToUpper = exports.ToLower = exports.ToInt = exports.ToFloat = exports.Substr = void 0;
5
5
  var Context_1 = require("./ast/Context");
6
6
  Object.defineProperty(exports, "Context", { enumerable: true, get: function () { return Context_1.Context; } });
@@ -47,8 +47,8 @@ var Map_1 = require("./operators/array/Map");
47
47
  Object.defineProperty(exports, "Map", { enumerable: true, get: function () { return Map_1.Map; } });
48
48
  var AbstractCompare_1 = require("./operators/compare/AbstractCompare");
49
49
  Object.defineProperty(exports, "AbstractCompare", { enumerable: true, get: function () { return AbstractCompare_1.AbstractCompare; } });
50
- var Equal_1 = require("./operators/compare/Equal");
51
- Object.defineProperty(exports, "Equal", { enumerable: true, get: function () { return Equal_1.Equal; } });
50
+ var EqualDesc_1 = require("./operators/compare/EqualDesc");
51
+ Object.defineProperty(exports, "EqualDesc", { enumerable: true, get: function () { return EqualDesc_1.EqualDesc; } });
52
52
  var GreaterThen_1 = require("./operators/compare/GreaterThen");
53
53
  Object.defineProperty(exports, "GreaterThen", { enumerable: true, get: function () { return GreaterThen_1.GreaterThen; } });
54
54
  var GreaterThenEqual_1 = require("./operators/compare/GreaterThenEqual");
@@ -81,12 +81,12 @@ var Month_1 = require("./operators/date/Month");
81
81
  Object.defineProperty(exports, "Month", { enumerable: true, get: function () { return Month_1.Month; } });
82
82
  var Year_1 = require("./operators/date/Year");
83
83
  Object.defineProperty(exports, "Year", { enumerable: true, get: function () { return Year_1.Year; } });
84
- var And_1 = require("./operators/logic/And");
85
- Object.defineProperty(exports, "And", { enumerable: true, get: function () { return And_1.And; } });
84
+ var AndDesc_1 = require("./operators/logic/AndDesc");
85
+ Object.defineProperty(exports, "AndDesc", { enumerable: true, get: function () { return AndDesc_1.AndDesc; } });
86
86
  var Not_1 = require("./operators/logic/Not");
87
87
  Object.defineProperty(exports, "Not", { enumerable: true, get: function () { return Not_1.Not; } });
88
- var Or_1 = require("./operators/logic/Or");
89
- Object.defineProperty(exports, "Or", { enumerable: true, get: function () { return Or_1.Or; } });
88
+ var OrDesc_1 = require("./operators/logic/OrDesc");
89
+ Object.defineProperty(exports, "OrDesc", { enumerable: true, get: function () { return OrDesc_1.OrDesc; } });
90
90
  var Operators_1 = require("./operators/Operators");
91
91
  Object.defineProperty(exports, "Operators", { enumerable: true, get: function () { return Operators_1.Operators; } });
92
92
  var Group_1 = require("./operators/stage/Group");
@@ -111,5 +111,4 @@ var ToLower_1 = require("./operators/string/ToLower");
111
111
  Object.defineProperty(exports, "ToLower", { enumerable: true, get: function () { return ToLower_1.ToLower; } });
112
112
  var ToUpper_1 = require("./operators/string/ToUpper");
113
113
  Object.defineProperty(exports, "ToUpper", { enumerable: true, get: function () { return ToUpper_1.ToUpper; } });
114
-
115
- //# sourceMappingURL=browser.js.map
114
+ //# sourceMappingURL=browser.js.map
package/browser.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/browser.ts"],"names":[],"mappings":";;;;AAAA,yCAAsC;AAA9B,kGAAA,OAAO,OAAA;AACf,6CAA0C;AAAlC,sGAAA,SAAS,OAAA;AACjB,uCAAoC;AAA5B,gGAAA,MAAM,OAAA;AACd,mCAAgC;AAAxB,4FAAA,IAAI,OAAA;AACZ,yCAAsC;AAA9B,kGAAA,OAAO,OAAA;AACf,uCAAoC;AAA5B,gGAAA,MAAM,OAAA;AACd,qCAAkC;AAA1B,8FAAA,KAAK,OAAA;AACb,qCAAkC;AAA1B,8FAAA,KAAK,OAAA;AACb,2CAAwC;AAAhC,oGAAA,QAAQ,OAAA;AAChB,yCAA4E;AAApE,oHAAA,uBAAuB,OAAA;AAAE,mHAAA,sBAAsB,OAAA;AAEvD,qDAAkD;AAA1C,kHAAA,eAAe,OAAA;AACvB,iEAA8D;AAAtD,oHAAA,gBAAgB,OAAA;AACxB,kDAA+C;AAAvC,0FAAA,GAAG,OAAA;AACX,sDAAmD;AAA3C,8FAAA,KAAK,OAAA;AACb,kDAA+C;AAAvC,0FAAA,GAAG,OAAA;AACX,kDAA+C;AAAvC,0FAAA,GAAG,OAAA;AACX,4DAAyD;AAAjD,oGAAA,QAAQ,OAAA;AAChB,kDAA+C;AAAvC,0FAAA,GAAG,OAAA;AACX,iDAA8C;AAAtC,8FAAA,KAAK,OAAA;AACb,+CAA4C;AAApC,4FAAA,IAAI,OAAA;AACZ,6CAA0C;AAAlC,0FAAA,GAAG,OAAA;AACX,uEAAoE;AAA5D,kHAAA,eAAe,OAAA;AACvB,mDAAgD;AAAxC,8FAAA,KAAK,OAAA;AACb,+DAA4D;AAApD,0GAAA,WAAW,OAAA;AACnB,yEAAsE;AAA9D,oHAAA,gBAAgB,OAAA;AACxB,6CAA0C;AAAlC,wFAAA,EAAE,OAAA;AACV,2DAAwD;AAAhD,sGAAA,SAAS,OAAA;AACjB,qDAAkD;AAA1C,gGAAA,MAAM,OAAA;AACd,yDAAsD;AAA9C,oGAAA,QAAQ,OAAA;AAChB,mEAAgE;AAAxD,8GAAA,aAAa,OAAA;AACrB,iDAA8C;AAAtC,4FAAA,IAAI,OAAA;AACZ,yDAAsD;AAA9C,oGAAA,QAAQ,OAAA;AAChB,mDAAgD;AAAxC,8FAAA,KAAK,OAAA;AACb,mDAAgD;AAAxC,8FAAA,KAAK,OAAA;AACb,8CAA2C;AAAnC,4FAAA,IAAI,OAAA;AACZ,8DAA2D;AAAnD,4GAAA,YAAY,OAAA;AACpB,4CAAyC;AAAjC,0FAAA,GAAG,OAAA;AACX,gDAA6C;AAArC,8FAAA,KAAK,OAAA;AACb,8CAA2C;AAAnC,4FAAA,IAAI,OAAA;AACZ,6CAA0C;AAAlC,0FAAA,GAAG,OAAA;AACX,6CAA0C;AAAlC,0FAAA,GAAG,OAAA;AACX,2CAAwC;AAAhC,wFAAA,EAAE,OAAA;AACV,mDAAgD;AAAxC,sGAAA,SAAS,OAAA;AACjB,iDAA8C;AAAtC,8FAAA,KAAK,OAAA;AACb,iDAA8C;AAAtC,8FAAA,KAAK,OAAA;AACb,iDAA8C;AAAtC,8FAAA,KAAK,OAAA;AACb,qDAAkD;AAA1C,kGAAA,OAAO,OAAA;AACf,+CAA4C;AAApC,4FAAA,IAAI,OAAA;AACZ,+CAA4C;AAApC,4FAAA,IAAI,OAAA;AACZ,oDAAiD;AAAzC,gGAAA,MAAM,OAAA;AACd,sDAAmD;AAA3C,kGAAA,OAAO,OAAA;AACf,kDAA+C;AAAvC,8FAAA,KAAK,OAAA;AACb,sDAAmD;AAA3C,kGAAA,OAAO,OAAA;AACf,sDAAmD;AAA3C,kGAAA,OAAO,OAAA","file":"browser.js","sourcesContent":["export {Context} from './ast/Context';\nexport {MultiArgs} from './ast/MultiArgs';\nexport {PArray} from './ast/PArray';\nexport {PAst} from './ast/PAst';\nexport {PObject} from './ast/PObject';\nexport {PValue} from './ast/PValue';\nexport {Unset} from './ast/Unset';\nexport {Value} from './ast/Value';\nexport {ValueRef} from './ast/ValueRef';\nexport {AUTO_EQUAL_CONV_SUPPORT, NUMBER_PROJECT_SUPPORT} from './Constants';\nexport {IMangoWalker} from './IMangoWalker';\nexport {MangoExpression} from './MangoExpression';\nexport {AbstractOperator} from './operators/AbstractOperator';\nexport {Avg} from './operators/arithmetic/Avg';\nexport {Count} from './operators/arithmetic/Count';\nexport {Max} from './operators/arithmetic/Max';\nexport {Min} from './operators/arithmetic/Min';\nexport {Multiply} from './operators/arithmetic/Multiply';\nexport {Sum} from './operators/arithmetic/Sum';\nexport {First} from './operators/array/First';\nexport {Last} from './operators/array/Last';\nexport {Map} from './operators/array/Map';\nexport {AbstractCompare} from './operators/compare/AbstractCompare';\nexport {Equal} from './operators/compare/Equal';\nexport {GreaterThen} from './operators/compare/GreaterThen';\nexport {GreaterThenEqual} from './operators/compare/GreaterThenEqual';\nexport {In} from './operators/compare/In';\nexport {IsNotNull} from './operators/compare/IsNotNull';\nexport {IsNull} from './operators/compare/IsNull';\nexport {LessThen} from './operators/compare/LessThen';\nexport {LessThenEqual} from './operators/compare/LessThenEqual';\nexport {Like} from './operators/compare/Like';\nexport {NotEqual} from './operators/compare/NotEqual';\nexport {NotIn} from './operators/compare/NotIn';\nexport {Regex} from './operators/compare/Regex';\nexport {Date} from './operators/date/Date';\nexport {DateToString} from './operators/date/DateToString';\nexport {Day} from './operators/date/Day';\nexport {Month} from './operators/date/Month';\nexport {Year} from './operators/date/Year';\nexport {And} from './operators/logic/And';\nexport {Not} from './operators/logic/Not';\nexport {Or} from './operators/logic/Or';\nexport {Operators} from './operators/Operators';\nexport {Group} from './operators/stage/Group';\nexport {Limit} from './operators/stage/Limit';\nexport {Match} from './operators/stage/Match';\nexport {Project} from './operators/stage/Project';\nexport {Skip} from './operators/stage/Skip';\nexport {Sort} from './operators/stage/Sort';\nexport {Substr} from './operators/string/Substr';\nexport {ToFloat} from './operators/string/ToFloat';\nexport {ToInt} from './operators/string/ToInt';\nexport {ToLower} from './operators/string/ToLower';\nexport {ToUpper} from './operators/string/ToUpper';\n"],"sourceRoot":"."}
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/browser.ts"],"names":[],"mappings":";;;;AAAA,yCAAsC;AAA9B,kGAAA,OAAO,OAAA;AACf,6CAA0C;AAAlC,sGAAA,SAAS,OAAA;AACjB,uCAAoC;AAA5B,gGAAA,MAAM,OAAA;AACd,mCAAgC;AAAxB,4FAAA,IAAI,OAAA;AACZ,yCAAsC;AAA9B,kGAAA,OAAO,OAAA;AACf,uCAAoC;AAA5B,gGAAA,MAAM,OAAA;AACd,qCAAkC;AAA1B,8FAAA,KAAK,OAAA;AACb,qCAAkC;AAA1B,8FAAA,KAAK,OAAA;AACb,2CAAwC;AAAhC,oGAAA,QAAQ,OAAA;AAChB,yCAA4E;AAApE,oHAAA,uBAAuB,OAAA;AAAE,mHAAA,sBAAsB,OAAA;AAEvD,qDAAkD;AAA1C,kHAAA,eAAe,OAAA;AACvB,iEAA8D;AAAtD,oHAAA,gBAAgB,OAAA;AACxB,kDAA+C;AAAvC,0FAAA,GAAG,OAAA;AACX,sDAAmD;AAA3C,8FAAA,KAAK,OAAA;AACb,kDAA+C;AAAvC,0FAAA,GAAG,OAAA;AACX,kDAA+C;AAAvC,0FAAA,GAAG,OAAA;AACX,4DAAyD;AAAjD,oGAAA,QAAQ,OAAA;AAChB,kDAA+C;AAAvC,0FAAA,GAAG,OAAA;AACX,iDAA8C;AAAtC,8FAAA,KAAK,OAAA;AACb,+CAA4C;AAApC,4FAAA,IAAI,OAAA;AACZ,6CAA0C;AAAlC,0FAAA,GAAG,OAAA;AACX,uEAAoE;AAA5D,kHAAA,eAAe,OAAA;AACvB,2DAAwD;AAAhD,sGAAA,SAAS,OAAA;AACjB,+DAA4D;AAApD,0GAAA,WAAW,OAAA;AACnB,yEAAsE;AAA9D,oHAAA,gBAAgB,OAAA;AACxB,6CAA0C;AAAlC,wFAAA,EAAE,OAAA;AACV,2DAAwD;AAAhD,sGAAA,SAAS,OAAA;AACjB,qDAAkD;AAA1C,gGAAA,MAAM,OAAA;AACd,yDAAsD;AAA9C,oGAAA,QAAQ,OAAA;AAChB,mEAAgE;AAAxD,8GAAA,aAAa,OAAA;AACrB,iDAA8C;AAAtC,4FAAA,IAAI,OAAA;AACZ,yDAAsD;AAA9C,oGAAA,QAAQ,OAAA;AAChB,mDAAgD;AAAxC,8FAAA,KAAK,OAAA;AACb,mDAAgD;AAAxC,8FAAA,KAAK,OAAA;AACb,8CAA2C;AAAnC,4FAAA,IAAI,OAAA;AACZ,8DAA2D;AAAnD,4GAAA,YAAY,OAAA;AACpB,4CAAyC;AAAjC,0FAAA,GAAG,OAAA;AACX,gDAA6C;AAArC,8FAAA,KAAK,OAAA;AACb,8CAA2C;AAAnC,4FAAA,IAAI,OAAA;AACZ,qDAAkD;AAA1C,kGAAA,OAAO,OAAA;AACf,6CAA0C;AAAlC,0FAAA,GAAG,OAAA;AACX,mDAAgD;AAAxC,gGAAA,MAAM,OAAA;AACd,mDAAgD;AAAxC,sGAAA,SAAS,OAAA;AACjB,iDAA8C;AAAtC,8FAAA,KAAK,OAAA;AACb,iDAA8C;AAAtC,8FAAA,KAAK,OAAA;AACb,iDAA8C;AAAtC,8FAAA,KAAK,OAAA;AACb,qDAAkD;AAA1C,kGAAA,OAAO,OAAA;AACf,+CAA4C;AAApC,4FAAA,IAAI,OAAA;AACZ,+CAA4C;AAApC,4FAAA,IAAI,OAAA;AACZ,oDAAiD;AAAzC,gGAAA,MAAM,OAAA;AACd,sDAAmD;AAA3C,kGAAA,OAAO,OAAA;AACf,kDAA+C;AAAvC,8FAAA,KAAK,OAAA;AACb,sDAAmD;AAA3C,kGAAA,OAAO,OAAA;AACf,sDAAmD;AAA3C,kGAAA,OAAO,OAAA"}
package/index.d.ts CHANGED
@@ -1 +1 @@
1
- export { NUMBER_PROJECT_SUPPORT, AUTO_EQUAL_CONV_SUPPORT, Context, MangoExpression, Like, In, And, Date, PAst, Not, PValue, AbstractCompare, PObject, AbstractOperator, Avg, Count, DateToString, Day, Equal, First, GreaterThen, GreaterThenEqual, Group, IMangoWalker, IsNotNull, IsNull, Last, LessThen, LessThenEqual, Limit, Map, Match, Max, Min, Month, MultiArgs, Multiply, NotEqual, NotIn, Operators, Or, PArray, Project, Regex, Skip, Sort, Substr, Sum, ToFloat, ToInt, ToLower, ToUpper, Unset, Value, ValueRef, Year } from './browser';
1
+ export { NUMBER_PROJECT_SUPPORT, AUTO_EQUAL_CONV_SUPPORT, Context, MangoExpression, Like, In, AndDesc, Date, PAst, Not, PValue, AbstractCompare, PObject, AbstractOperator, Avg, Count, DateToString, Day, EqualDesc, First, GreaterThen, GreaterThenEqual, Group, IMangoWalker, IsNotNull, IsNull, Last, LessThen, LessThenEqual, Limit, Map, Match, Max, Min, Month, MultiArgs, Multiply, NotEqual, NotIn, Operators, OrDesc, PArray, Project, Regex, Skip, Sort, Substr, Sum, ToFloat, ToInt, ToLower, ToUpper, Unset, Value, ValueRef, Year, IMangoWalkerControl } from './browser';
package/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ToLower = exports.ToInt = exports.ToFloat = exports.Sum = exports.Substr = exports.Sort = exports.Skip = exports.Regex = exports.Project = exports.PArray = exports.Or = exports.Operators = exports.NotIn = exports.NotEqual = exports.Multiply = exports.MultiArgs = exports.Month = exports.Min = exports.Max = exports.Match = exports.Map = exports.Limit = exports.LessThenEqual = exports.LessThen = exports.Last = exports.IsNull = exports.IsNotNull = exports.Group = exports.GreaterThenEqual = exports.GreaterThen = exports.First = exports.Equal = exports.Day = exports.DateToString = exports.Count = exports.Avg = exports.AbstractOperator = exports.PObject = exports.AbstractCompare = exports.PValue = exports.Not = exports.PAst = exports.Date = exports.And = exports.In = exports.Like = exports.MangoExpression = exports.Context = exports.AUTO_EQUAL_CONV_SUPPORT = exports.NUMBER_PROJECT_SUPPORT = void 0;
3
+ exports.ToLower = exports.ToInt = exports.ToFloat = exports.Sum = exports.Substr = exports.Sort = exports.Skip = exports.Regex = exports.Project = exports.PArray = exports.OrDesc = exports.Operators = exports.NotIn = exports.NotEqual = exports.Multiply = exports.MultiArgs = exports.Month = exports.Min = exports.Max = exports.Match = exports.Map = exports.Limit = exports.LessThenEqual = exports.LessThen = exports.Last = exports.IsNull = exports.IsNotNull = exports.Group = exports.GreaterThenEqual = exports.GreaterThen = exports.First = exports.EqualDesc = exports.Day = exports.DateToString = exports.Count = exports.Avg = exports.AbstractOperator = exports.PObject = exports.AbstractCompare = exports.PValue = exports.Not = exports.PAst = exports.Date = exports.AndDesc = exports.In = exports.Like = exports.MangoExpression = exports.Context = exports.AUTO_EQUAL_CONV_SUPPORT = exports.NUMBER_PROJECT_SUPPORT = void 0;
4
4
  exports.Year = exports.ValueRef = exports.Value = exports.Unset = exports.ToUpper = void 0;
5
5
  // ---- Generated by gulp taskRef ----
6
6
  var browser_1 = require("./browser");
@@ -10,7 +10,7 @@ Object.defineProperty(exports, "Context", { enumerable: true, get: function () {
10
10
  Object.defineProperty(exports, "MangoExpression", { enumerable: true, get: function () { return browser_1.MangoExpression; } });
11
11
  Object.defineProperty(exports, "Like", { enumerable: true, get: function () { return browser_1.Like; } });
12
12
  Object.defineProperty(exports, "In", { enumerable: true, get: function () { return browser_1.In; } });
13
- Object.defineProperty(exports, "And", { enumerable: true, get: function () { return browser_1.And; } });
13
+ Object.defineProperty(exports, "AndDesc", { enumerable: true, get: function () { return browser_1.AndDesc; } });
14
14
  Object.defineProperty(exports, "Date", { enumerable: true, get: function () { return browser_1.Date; } });
15
15
  Object.defineProperty(exports, "PAst", { enumerable: true, get: function () { return browser_1.PAst; } });
16
16
  Object.defineProperty(exports, "Not", { enumerable: true, get: function () { return browser_1.Not; } });
@@ -22,7 +22,7 @@ Object.defineProperty(exports, "Avg", { enumerable: true, get: function () { ret
22
22
  Object.defineProperty(exports, "Count", { enumerable: true, get: function () { return browser_1.Count; } });
23
23
  Object.defineProperty(exports, "DateToString", { enumerable: true, get: function () { return browser_1.DateToString; } });
24
24
  Object.defineProperty(exports, "Day", { enumerable: true, get: function () { return browser_1.Day; } });
25
- Object.defineProperty(exports, "Equal", { enumerable: true, get: function () { return browser_1.Equal; } });
25
+ Object.defineProperty(exports, "EqualDesc", { enumerable: true, get: function () { return browser_1.EqualDesc; } });
26
26
  Object.defineProperty(exports, "First", { enumerable: true, get: function () { return browser_1.First; } });
27
27
  Object.defineProperty(exports, "GreaterThen", { enumerable: true, get: function () { return browser_1.GreaterThen; } });
28
28
  Object.defineProperty(exports, "GreaterThenEqual", { enumerable: true, get: function () { return browser_1.GreaterThenEqual; } });
@@ -43,7 +43,7 @@ Object.defineProperty(exports, "Multiply", { enumerable: true, get: function ()
43
43
  Object.defineProperty(exports, "NotEqual", { enumerable: true, get: function () { return browser_1.NotEqual; } });
44
44
  Object.defineProperty(exports, "NotIn", { enumerable: true, get: function () { return browser_1.NotIn; } });
45
45
  Object.defineProperty(exports, "Operators", { enumerable: true, get: function () { return browser_1.Operators; } });
46
- Object.defineProperty(exports, "Or", { enumerable: true, get: function () { return browser_1.Or; } });
46
+ Object.defineProperty(exports, "OrDesc", { enumerable: true, get: function () { return browser_1.OrDesc; } });
47
47
  Object.defineProperty(exports, "PArray", { enumerable: true, get: function () { return browser_1.PArray; } });
48
48
  Object.defineProperty(exports, "Project", { enumerable: true, get: function () { return browser_1.Project; } });
49
49
  Object.defineProperty(exports, "Regex", { enumerable: true, get: function () { return browser_1.Regex; } });
@@ -59,5 +59,4 @@ Object.defineProperty(exports, "Unset", { enumerable: true, get: function () { r
59
59
  Object.defineProperty(exports, "Value", { enumerable: true, get: function () { return browser_1.Value; } });
60
60
  Object.defineProperty(exports, "ValueRef", { enumerable: true, get: function () { return browser_1.ValueRef; } });
61
61
  Object.defineProperty(exports, "Year", { enumerable: true, get: function () { return browser_1.Year; } });
62
-
63
- //# sourceMappingURL=index.js.map
62
+ //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/index.ts"],"names":[],"mappings":";;;;AAAA,sCAAsC;AACtC,qCAmDmB;AAlDjB,iHAAA,sBAAsB,OAAA;AACtB,kHAAA,uBAAuB,OAAA;AACvB,kGAAA,OAAO,OAAA;AACP,0GAAA,eAAe,OAAA;AACf,+FAAA,IAAI,OAAA;AACJ,6FAAA,EAAE,OAAA;AACF,8FAAA,GAAG,OAAA;AACH,+FAAA,IAAI,OAAA;AACJ,+FAAA,IAAI,OAAA;AACJ,8FAAA,GAAG,OAAA;AACH,iGAAA,MAAM,OAAA;AACN,0GAAA,eAAe,OAAA;AACf,kGAAA,OAAO,OAAA;AACP,2GAAA,gBAAgB,OAAA;AAChB,8FAAA,GAAG,OAAA;AACH,gGAAA,KAAK,OAAA;AACL,uGAAA,YAAY,OAAA;AACZ,8FAAA,GAAG,OAAA;AACH,gGAAA,KAAK,OAAA;AACL,gGAAA,KAAK,OAAA;AACL,sGAAA,WAAW,OAAA;AACX,2GAAA,gBAAgB,OAAA;AAChB,gGAAA,KAAK,OAAA;AAEL,oGAAA,SAAS,OAAA;AACT,iGAAA,MAAM,OAAA;AACN,+FAAA,IAAI,OAAA;AACJ,mGAAA,QAAQ,OAAA;AACR,wGAAA,aAAa,OAAA;AACb,gGAAA,KAAK,OAAA;AACL,8FAAA,GAAG,OAAA;AACH,gGAAA,KAAK,OAAA;AACL,8FAAA,GAAG,OAAA;AACH,8FAAA,GAAG,OAAA;AACH,gGAAA,KAAK,OAAA;AACL,oGAAA,SAAS,OAAA;AACT,mGAAA,QAAQ,OAAA;AACR,mGAAA,QAAQ,OAAA;AACR,gGAAA,KAAK,OAAA;AACL,oGAAA,SAAS,OAAA;AACT,6FAAA,EAAE,OAAA;AACF,iGAAA,MAAM,OAAA;AACN,kGAAA,OAAO,OAAA;AACP,gGAAA,KAAK,OAAA;AACL,+FAAA,IAAI,OAAA;AACJ,+FAAA,IAAI,OAAA;AACJ,iGAAA,MAAM,OAAA;AACN,8FAAA,GAAG,OAAA;AACH,kGAAA,OAAO,OAAA;AACP,gGAAA,KAAK,OAAA;AAAE,kGAAA,OAAO,OAAA;AAAE,kGAAA,OAAO,OAAA;AAAE,gGAAA,KAAK,OAAA;AAAE,gGAAA,KAAK,OAAA;AAAE,mGAAA,QAAQ,OAAA;AAAE,+FAAA,IAAI,OAAA","file":"index.js","sourcesContent":["// ---- Generated by gulp taskRef ----\nexport {\n NUMBER_PROJECT_SUPPORT,\n AUTO_EQUAL_CONV_SUPPORT,\n Context,\n MangoExpression,\n Like,\n In,\n And,\n Date,\n PAst,\n Not,\n PValue,\n AbstractCompare,\n PObject,\n AbstractOperator,\n Avg,\n Count,\n DateToString,\n Day,\n Equal,\n First,\n GreaterThen,\n GreaterThenEqual,\n Group,\n IMangoWalker,\n IsNotNull,\n IsNull,\n Last,\n LessThen,\n LessThenEqual,\n Limit,\n Map,\n Match,\n Max,\n Min,\n Month,\n MultiArgs,\n Multiply,\n NotEqual,\n NotIn,\n Operators,\n Or,\n PArray,\n Project,\n Regex,\n Skip,\n Sort,\n Substr,\n Sum,\n ToFloat,\n ToInt, ToLower, ToUpper, Unset, Value, ValueRef, Year\n} from './browser';\n"],"sourceRoot":"."}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;AAAA,sCAAsC;AACtC,qCAmDmB;AAlDjB,iHAAA,sBAAsB,OAAA;AACtB,kHAAA,uBAAuB,OAAA;AACvB,kGAAA,OAAO,OAAA;AACP,0GAAA,eAAe,OAAA;AACf,+FAAA,IAAI,OAAA;AACJ,6FAAA,EAAE,OAAA;AACF,kGAAA,OAAO,OAAA;AACP,+FAAA,IAAI,OAAA;AACJ,+FAAA,IAAI,OAAA;AACJ,8FAAA,GAAG,OAAA;AACH,iGAAA,MAAM,OAAA;AACN,0GAAA,eAAe,OAAA;AACf,kGAAA,OAAO,OAAA;AACP,2GAAA,gBAAgB,OAAA;AAChB,8FAAA,GAAG,OAAA;AACH,gGAAA,KAAK,OAAA;AACL,uGAAA,YAAY,OAAA;AACZ,8FAAA,GAAG,OAAA;AACH,oGAAA,SAAS,OAAA;AACT,gGAAA,KAAK,OAAA;AACL,sGAAA,WAAW,OAAA;AACX,2GAAA,gBAAgB,OAAA;AAChB,gGAAA,KAAK,OAAA;AAEL,oGAAA,SAAS,OAAA;AACT,iGAAA,MAAM,OAAA;AACN,+FAAA,IAAI,OAAA;AACJ,mGAAA,QAAQ,OAAA;AACR,wGAAA,aAAa,OAAA;AACb,gGAAA,KAAK,OAAA;AACL,8FAAA,GAAG,OAAA;AACH,gGAAA,KAAK,OAAA;AACL,8FAAA,GAAG,OAAA;AACH,8FAAA,GAAG,OAAA;AACH,gGAAA,KAAK,OAAA;AACL,oGAAA,SAAS,OAAA;AACT,mGAAA,QAAQ,OAAA;AACR,mGAAA,QAAQ,OAAA;AACR,gGAAA,KAAK,OAAA;AACL,oGAAA,SAAS,OAAA;AACT,iGAAA,MAAM,OAAA;AACN,iGAAA,MAAM,OAAA;AACN,kGAAA,OAAO,OAAA;AACP,gGAAA,KAAK,OAAA;AACL,+FAAA,IAAI,OAAA;AACJ,+FAAA,IAAI,OAAA;AACJ,iGAAA,MAAM,OAAA;AACN,8FAAA,GAAG,OAAA;AACH,kGAAA,OAAO,OAAA;AACP,gGAAA,KAAK,OAAA;AAAE,kGAAA,OAAO,OAAA;AAAE,kGAAA,OAAO,OAAA;AAAE,gGAAA,KAAK,OAAA;AAAE,gGAAA,KAAK,OAAA;AAAE,mGAAA,QAAQ,OAAA;AAAE,+FAAA,IAAI,OAAA"}
@@ -1,12 +1,8 @@
1
1
  import { PAst } from '../ast/PAst';
2
- import { MangoExpression } from '../MangoExpression';
3
2
  import { IMangoWalker } from '../IMangoWalker';
4
- import { Context } from '../ast/Context';
5
- export declare abstract class AbstractOperator extends PAst {
3
+ export declare abstract class AbstractOperator<X> extends PAst<X> {
6
4
  readonly name: string;
7
- value: PAst;
8
- constructor(e: MangoExpression, p?: PAst, ctxt?: Context);
9
- getKey(key: string): PAst;
10
- validate(def: any, full?: any): boolean;
5
+ getByKey(key: string): PAst<any>;
11
6
  visit(o: IMangoWalker): any;
7
+ toJson(): any;
12
8
  }
@@ -2,29 +2,38 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AbstractOperator = void 0;
4
4
  const PAst_1 = require("../ast/PAst");
5
- const Context_1 = require("../ast/Context");
6
5
  class AbstractOperator extends PAst_1.PAst {
7
- constructor(e, p, ctxt) {
8
- super(e, p, ctxt);
9
- }
10
- getKey(key) {
11
- if (key === this.name || key.replace(/^\$/, '') === this.name || this.key === key) {
6
+ getByKey(key) {
7
+ if (key === this.name || key.replace(/^\$/, '') === this.name || this.getKeyString() === key) {
12
8
  return this;
13
9
  }
14
10
  return null;
15
11
  }
16
- validate(def, full) {
17
- const ctxt = new Context_1.Context(this.key);
18
- this.value = this.base.interprete(def, this, ctxt);
19
- return true;
20
- }
12
+ // validate(def: any, full?: any): boolean {
13
+ // // const ctxt = new Context(this.getKeyString());
14
+ // // this.setValue(this.getRootExpression().interprete(def, this, ctxt) as any as X);
15
+ // return true;
16
+ // }
21
17
  visit(o) {
22
- if (this.value) {
23
- return o.onOperator(this, this.value.visit(o));
18
+ if (this.getValue()) {
19
+ return o.onOperator(this, this.getValue().visit(o));
24
20
  }
25
21
  return o.onOperator(this, null);
26
22
  }
23
+ toJson() {
24
+ const v = this.getValue();
25
+ if (v instanceof PAst_1.PAst) {
26
+ const res = v.toJson();
27
+ return {
28
+ ['$' + this.name]: res
29
+ };
30
+ }
31
+ else {
32
+ return {
33
+ ['$' + this.name]: v
34
+ };
35
+ }
36
+ }
27
37
  }
28
38
  exports.AbstractOperator = AbstractOperator;
29
-
30
- //# sourceMappingURL=AbstractOperator.js.map
39
+ //# sourceMappingURL=AbstractOperator.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/operators/AbstractOperator.ts"],"names":[],"mappings":";;;AAAA,sCAAiC;AAGjC,4CAAuC;AAEvC,MAAsB,gBAAiB,SAAQ,WAAI;IAMjD,YAAY,CAAkB,EAAE,CAAQ,EAAE,IAAc;QACtD,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IACpB,CAAC;IAED,MAAM,CAAC,GAAW;QAChB,IAAI,GAAG,KAAK,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,EAAE;YACjF,OAAO,IAAI,CAAC;SACb;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAGD,QAAQ,CAAC,GAAQ,EAAE,IAAU;QAC3B,MAAM,IAAI,GAAG,IAAI,iBAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,CAAe;QACnB,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,OAAO,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;SAChD;QACD,OAAO,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;CAEF;AA/BD,4CA+BC","file":"AbstractOperator.js","sourcesContent":["import {PAst} from '../ast/PAst';\nimport {MangoExpression} from '../MangoExpression';\nimport {IMangoWalker} from '../IMangoWalker';\nimport {Context} from '../ast/Context';\n\nexport abstract class AbstractOperator extends PAst {\n\n readonly name: string;\n\n value: PAst;\n\n constructor(e: MangoExpression, p?: PAst, ctxt?: Context) {\n super(e, p, ctxt);\n }\n\n getKey(key: string): PAst {\n if (key === this.name || key.replace(/^\\$/, '') === this.name || this.key === key) {\n return this;\n }\n return null;\n }\n\n\n validate(def: any, full?: any): boolean {\n const ctxt = new Context(this.key);\n this.value = this.base.interprete(def, this, ctxt);\n return true;\n }\n\n visit(o: IMangoWalker): any {\n if (this.value) {\n return o.onOperator(this, this.value.visit(o));\n }\n return o.onOperator(this, null);\n }\n\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"file":"AbstractOperator.js","sourceRoot":"","sources":["../../../src/operators/AbstractOperator.ts"],"names":[],"mappings":";;;AAAA,sCAAiC;AAKjC,MAAsB,gBAAoB,SAAQ,WAAO;IAIvD,QAAQ,CAAC,GAAW;QAClB,IAAI,GAAG,KAAK,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE,KAAK,GAAG,EAAE,CAAC;YAC7F,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAGD,4CAA4C;IAC5C,sDAAsD;IACtD,wFAAwF;IACxF,iBAAiB;IACjB,IAAI;IAEJ,KAAK,CAAC,CAAe;QACnB,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;YACpB,OAAO,CAAC,CAAC,UAAU,CAAC,IAAI,EAAG,IAAI,CAAC,QAAQ,EAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IAGD,MAAM;QACJ,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC1B,IAAG,CAAC,YAAY,WAAI,EAAC,CAAC;YACpB,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;YACvB,OAAO;gBACL,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG;aACvB,CAAA;QACH,CAAC;aAAI,CAAC;YACJ,OAAO;gBACL,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;aACrB,CAAA;QACH,CAAC;IACH,CAAC;CAEF;AAxCD,4CAwCC"}