@allgemein/mango-expressions 1.1.1 → 1.3.1

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 +5 -5
  43. package/browser.js +12 -10
  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 +7 -62
  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
@@ -1,6 +1,7 @@
1
1
  import { PAst } from '../ast/PAst';
2
2
  import { MangoExpression } from '../MangoExpression';
3
3
  import { Context } from '../ast/Context';
4
+ import { AbstractOperator } from './AbstractOperator';
4
5
  /**
5
6
  * Operators registry
6
7
  */
@@ -24,7 +25,7 @@ export declare class Operators {
24
25
  * @param p
25
26
  * @param ctxt
26
27
  */
27
- static create(name: string, e: MangoExpression, p?: PAst, ctxt?: Context): any;
28
+ static create(name: string, e: MangoExpression, p?: PAst<any>, ctxt?: Context): AbstractOperator<any>;
28
29
  /**
29
30
  * Check if operator is defined.
30
31
  *
@@ -3,10 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Operators = void 0;
4
4
  const Match_1 = require("./stage/Match");
5
5
  const LessThen_1 = require("./compare/LessThen");
6
- const And_1 = require("./logic/And");
7
- const Or_1 = require("./logic/Or");
6
+ const AndDesc_1 = require("./logic/AndDesc");
7
+ const OrDesc_1 = require("./logic/OrDesc");
8
8
  const LessThenEqual_1 = require("./compare/LessThenEqual");
9
- const Equal_1 = require("./compare/Equal");
9
+ const EqualDesc_1 = require("./compare/EqualDesc");
10
10
  const GreaterThen_1 = require("./compare/GreaterThen");
11
11
  const GreaterThenEqual_1 = require("./compare/GreaterThenEqual");
12
12
  const In_1 = require("./compare/In");
@@ -80,8 +80,8 @@ Operators.registry = {};
80
80
  /*
81
81
  * Logic registry
82
82
  */
83
- Operators.install(And_1.And.NAME, And_1.And);
84
- Operators.install(Or_1.Or.NAME, Or_1.Or);
83
+ Operators.install(AndDesc_1.AndDesc.NAME, AndDesc_1.AndDesc);
84
+ Operators.install(OrDesc_1.OrDesc.NAME, OrDesc_1.OrDesc);
85
85
  Operators.install(Not_1.Not.NAME, Not_1.Not);
86
86
  // TODO $nor
87
87
  /*
@@ -119,7 +119,7 @@ Operators.install(LessThen_1.LessThen.NAME, LessThen_1.LessThen);
119
119
  Operators.install(LessThenEqual_1.LessThenEqual.NAME, LessThenEqual_1.LessThenEqual);
120
120
  // backward compatibility
121
121
  Operators.install('lte', LessThenEqual_1.LessThenEqual);
122
- Operators.install(Equal_1.Equal.NAME, Equal_1.Equal);
122
+ Operators.install(EqualDesc_1.EqualDesc.NAME, EqualDesc_1.EqualDesc);
123
123
  Operators.install(GreaterThen_1.GreaterThen.NAME, GreaterThen_1.GreaterThen);
124
124
  Operators.install(GreaterThenEqual_1.GreaterThenEqual.NAME, GreaterThenEqual_1.GreaterThenEqual);
125
125
  // backward compatibility
@@ -146,5 +146,4 @@ Operators.install(Regex_1.Regex.NAME, Regex_1.Regex);
146
146
  // Operators.install(Map.NAME, Map);
147
147
  // Operators.install(First.NAME, First);
148
148
  // Operators.install(Last.NAME, Last);
149
-
150
- //# sourceMappingURL=Operators.js.map
149
+ //# sourceMappingURL=Operators.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/operators/Operators.ts"],"names":[],"mappings":"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","file":"Operators.js","sourcesContent":["import {PAst} from '../ast/PAst';\nimport {Match} from './stage/Match';\nimport {LessThen} from './compare/LessThen';\nimport {MangoExpression} from '../MangoExpression';\nimport {And} from './logic/And';\nimport {Or} from './logic/Or';\nimport {LessThenEqual} from './compare/LessThenEqual';\nimport {Equal} from './compare/Equal';\nimport {GreaterThen} from './compare/GreaterThen';\nimport {GreaterThenEqual} from './compare/GreaterThenEqual';\nimport {In} from './compare/In';\nimport {IsNotNull} from './compare/IsNotNull';\nimport {IsNull} from './compare/IsNull';\nimport {Like} from './compare/Like';\nimport {NotEqual} from './compare/NotEqual';\nimport {NotIn} from './compare/NotIn';\nimport {Project} from './stage/Project';\nimport {Year} from './date/Year';\nimport {Month} from './date/Month';\nimport {Day} from './date/Day';\nimport {Group} from './stage/Group';\nimport {Sum} from './arithmetic/Sum';\nimport {Min} from './arithmetic/Min';\nimport {Max} from './arithmetic/Max';\nimport {Avg} from './arithmetic/Avg';\nimport {Count} from './arithmetic/Count';\nimport {Limit} from './stage/Limit';\nimport {Skip} from './stage/Skip';\nimport {Sort} from './stage/Sort';\nimport {Date} from './date/Date';\nimport {Context} from '../ast/Context';\nimport {Not} from './logic/Not';\nimport {Multiply} from './arithmetic/Multiply';\nimport {Regex} from './compare/Regex';\n\n/**\n * Operators registry\n */\nexport class Operators {\n\n\n static registry: { [k: string]: Function } = {};\n\n\n static key(k: string) {\n return k.replace(/^\\$/, '');\n }\n\n /**\n * Install new operator\n *\n * @param name\n * @param opertor\n */\n static install(name: string, opertor: Function) {\n const _name = this.key(name);\n Operators.registry[_name] = opertor;\n }\n\n /**\n * Create an operator instance\n *\n * @param name\n * @param e\n * @param p\n * @param ctxt\n */\n static create(name: string, e: MangoExpression, p?: PAst, ctxt?: Context) {\n const _name = this.key(name);\n if (this.registry[_name]) {\n return Reflect.construct(this.registry[_name], [e, p, ctxt]);\n } else {\n throw new Error(`no such operator ${_name} defined`);\n }\n }\n\n /**\n * Check if operator is defined.\n *\n * @param name\n */\n static has(name: string) {\n return this.registry.hasOwnProperty(this.key(name));\n }\n}\n\n/*\n * Logic registry\n */\nOperators.install(And.NAME, And);\nOperators.install(Or.NAME, Or);\nOperators.install(Not.NAME, Not);\n// TODO $nor\n\n\n/*\n * Stage registry\n */\nOperators.install(Match.NAME, Match);\nOperators.install(Project.NAME, Project);\nOperators.install(Group.NAME, Group);\nOperators.install(Limit.NAME, Limit);\nOperators.install(Skip.NAME, Skip);\nOperators.install(Sort.NAME, Sort);\n\n/*\n * Date registry\n */\nOperators.install(Year.NAME, Year);\nOperators.install(Month.NAME, Month);\nOperators.install(Day.NAME, Day);\nOperators.install(Date.NAME, Date);\n// TODO $dateToString\n\n/*\n * Arithmetic registry\n */\nOperators.install(Sum.NAME, Sum);\nOperators.install(Min.NAME, Min);\nOperators.install(Max.NAME, Max);\nOperators.install(Avg.NAME, Avg);\nOperators.install(Count.NAME, Count);\nOperators.install(Multiply.NAME, Multiply);\n// TODO $add\n// TODO $subtract\n\n/*\n * Compare registry\n */\nOperators.install(LessThen.NAME, LessThen);\nOperators.install(LessThenEqual.NAME, LessThenEqual);\n// backward compatibility\nOperators.install('lte', LessThenEqual);\nOperators.install(Equal.NAME, Equal);\nOperators.install(GreaterThen.NAME, GreaterThen);\nOperators.install(GreaterThenEqual.NAME, GreaterThenEqual);\n// backward compatibility\nOperators.install('gte', GreaterThenEqual);\nOperators.install(In.NAME, In);\nOperators.install(IsNotNull.NAME, IsNotNull);\nOperators.install(IsNull.NAME, IsNull);\n// sql special, cause no eqivalnet in mongo\nOperators.install(Like.NAME, Like);\nOperators.install(NotEqual.NAME, NotEqual);\nOperators.install(NotIn.NAME, NotIn);\nOperators.install(Regex.NAME, Regex);\n\n\n/*\n * String registry\n */\n// Operators.install(Substr.NAME, Substr);\n// Operators.install(ToUpper.NAME, ToUpper);\n// Operators.install(ToLower.NAME, ToLower);\n// Operators.install(ToInt.NAME, ToInt);\n// Operators.install(ToFloat.NAME, ToFloat);\n\n/*\n * Array registry\n */\n// Operators.install(Map.NAME, Map);\n// Operators.install(First.NAME, First);\n// Operators.install(Last.NAME, Last);\n"],"sourceRoot":".."}
1
+ {"version":3,"file":"Operators.js","sourceRoot":"","sources":["../../../src/operators/Operators.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { AbstractOperator } from '../AbstractOperator';
2
- export declare class Avg extends AbstractOperator {
2
+ export declare class Avg extends AbstractOperator<any> {
3
3
  static NAME: string;
4
4
  name: string;
5
5
  }
@@ -10,5 +10,4 @@ class Avg extends AbstractOperator_1.AbstractOperator {
10
10
  }
11
11
  exports.Avg = Avg;
12
12
  Avg.NAME = 'avg';
13
-
14
- //# sourceMappingURL=Avg.js.map
13
+ //# sourceMappingURL=Avg.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/operators/arithmetic/Avg.ts"],"names":[],"mappings":";;;AAAA,0DAAqD;AAErD,MAAa,GAAI,SAAQ,mCAAgB;IAAzC;;QAIE,SAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IAElB,CAAC;;AAND,kBAMC;AAJQ,QAAI,GAAG,KAAK,CAAC","file":"Avg.js","sourcesContent":["import {AbstractOperator} from '../AbstractOperator';\n\nexport class Avg extends AbstractOperator {\n\n static NAME = 'avg';\n\n name = Avg.NAME;\n\n}\n"],"sourceRoot":"../.."}
1
+ {"version":3,"file":"Avg.js","sourceRoot":"","sources":["../../../../src/operators/arithmetic/Avg.ts"],"names":[],"mappings":";;;AAAA,0DAAqD;AAErD,MAAa,GAAI,SAAQ,mCAAqB;IAA9C;;QAIE,SAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IAElB,CAAC;;AAND,kBAMC;AAJQ,QAAI,GAAG,KAAK,AAAR,CAAS"}
@@ -1,5 +1,5 @@
1
1
  import { AbstractOperator } from '../AbstractOperator';
2
- export declare class Count extends AbstractOperator {
2
+ export declare class Count extends AbstractOperator<any> {
3
3
  static NAME: string;
4
4
  name: string;
5
5
  }
@@ -15,5 +15,4 @@ class Count extends AbstractOperator_1.AbstractOperator {
15
15
  }
16
16
  exports.Count = Count;
17
17
  Count.NAME = 'count';
18
-
19
- //# sourceMappingURL=Count.js.map
18
+ //# sourceMappingURL=Count.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/operators/arithmetic/Count.ts"],"names":[],"mappings":";;;AAAA,0DAAqD;AAErD,MAAa,KAAM,SAAQ,mCAAgB;IAA3C;;QAIE,SAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QAElB,EAAE;QACF,gCAAgC;QAChC,4DAA4D;QAC5D,iBAAiB;QACjB,IAAI;IAEN,CAAC;;AAZD,sBAYC;AAVQ,UAAI,GAAG,OAAO,CAAC","file":"Count.js","sourcesContent":["import {AbstractOperator} from '../AbstractOperator';\n\nexport class Count extends AbstractOperator {\n\n static NAME = 'count';\n\n name = Count.NAME;\n\n //\n // validate(def: any): boolean {\n // this.value = this.base.interprete(def, this, this.key);\n // return true;\n // }\n\n}\n"],"sourceRoot":"../.."}
1
+ {"version":3,"file":"Count.js","sourceRoot":"","sources":["../../../../src/operators/arithmetic/Count.ts"],"names":[],"mappings":";;;AAAA,0DAAqD;AAErD,MAAa,KAAM,SAAQ,mCAAqB;IAAhD;;QAIE,SAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QAElB,EAAE;QACF,gCAAgC;QAChC,4DAA4D;QAC5D,iBAAiB;QACjB,IAAI;IAEN,CAAC;;AAZD,sBAYC;AAVQ,UAAI,GAAG,OAAO,AAAV,CAAW"}
@@ -1,5 +1,5 @@
1
1
  import { AbstractOperator } from '../AbstractOperator';
2
- export declare class Max extends AbstractOperator {
2
+ export declare class Max extends AbstractOperator<any> {
3
3
  static NAME: string;
4
4
  name: string;
5
5
  }
@@ -16,5 +16,4 @@ class Max extends AbstractOperator_1.AbstractOperator {
16
16
  }
17
17
  exports.Max = Max;
18
18
  Max.NAME = 'max';
19
-
20
- //# sourceMappingURL=Max.js.map
19
+ //# sourceMappingURL=Max.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/operators/arithmetic/Max.ts"],"names":[],"mappings":";;;AAAA,0DAAqD;AAErD,MAAa,GAAI,SAAQ,mCAAgB;IAAzC;;QAIE,SAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QAChB,EAAE;QACF,EAAE;QACF,gCAAgC;QAChC,4DAA4D;QAC5D,iBAAiB;QACjB,IAAI;IAEN,CAAC;;AAZD,kBAYC;AAVQ,QAAI,GAAG,KAAK,CAAC","file":"Max.js","sourcesContent":["import {AbstractOperator} from '../AbstractOperator';\n\nexport class Max extends AbstractOperator {\n\n static NAME = 'max';\n\n name = Max.NAME;\n //\n //\n // validate(def: any): boolean {\n // this.value = this.base.interprete(def, this, this.key);\n // return true;\n // }\n\n}\n"],"sourceRoot":"../.."}
1
+ {"version":3,"file":"Max.js","sourceRoot":"","sources":["../../../../src/operators/arithmetic/Max.ts"],"names":[],"mappings":";;;AAAA,0DAAqD;AAErD,MAAa,GAAI,SAAQ,mCAAqB;IAA9C;;QAIE,SAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QAChB,EAAE;QACF,EAAE;QACF,gCAAgC;QAChC,4DAA4D;QAC5D,iBAAiB;QACjB,IAAI;IAEN,CAAC;;AAZD,kBAYC;AAVQ,QAAI,GAAG,KAAK,AAAR,CAAS"}
@@ -1,5 +1,5 @@
1
1
  import { AbstractOperator } from '../AbstractOperator';
2
- export declare class Min extends AbstractOperator {
2
+ export declare class Min extends AbstractOperator<any> {
3
3
  static NAME: string;
4
4
  name: string;
5
5
  }
@@ -16,5 +16,4 @@ class Min extends AbstractOperator_1.AbstractOperator {
16
16
  }
17
17
  exports.Min = Min;
18
18
  Min.NAME = 'min';
19
-
20
- //# sourceMappingURL=Min.js.map
19
+ //# sourceMappingURL=Min.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/operators/arithmetic/Min.ts"],"names":[],"mappings":";;;AAAA,0DAAqD;AAErD,MAAa,GAAI,SAAQ,mCAAgB;IAAzC;;QAIE,SAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QAChB,EAAE;QACF,EAAE;QACF,gCAAgC;QAChC,4DAA4D;QAC5D,iBAAiB;QACjB,IAAI;IAEN,CAAC;;AAZD,kBAYC;AAVQ,QAAI,GAAG,KAAK,CAAC","file":"Min.js","sourcesContent":["import {AbstractOperator} from '../AbstractOperator';\n\nexport class Min extends AbstractOperator {\n\n static NAME = 'min';\n\n name = Min.NAME;\n //\n //\n // validate(def: any): boolean {\n // this.value = this.base.interprete(def, this, this.key);\n // return true;\n // }\n\n}\n"],"sourceRoot":"../.."}
1
+ {"version":3,"file":"Min.js","sourceRoot":"","sources":["../../../../src/operators/arithmetic/Min.ts"],"names":[],"mappings":";;;AAAA,0DAAqD;AAErD,MAAa,GAAI,SAAQ,mCAAqB;IAA9C;;QAIE,SAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QAChB,EAAE;QACF,EAAE;QACF,gCAAgC;QAChC,4DAA4D;QAC5D,iBAAiB;QACjB,IAAI;IAEN,CAAC;;AAZD,kBAYC;AAVQ,QAAI,GAAG,KAAK,AAAR,CAAS"}
@@ -1,5 +1,5 @@
1
1
  import { AbstractOperator } from '../AbstractOperator';
2
- export declare class Multiply extends AbstractOperator {
2
+ export declare class Multiply extends AbstractOperator<any> {
3
3
  static NAME: string;
4
4
  name: string;
5
5
  }
@@ -16,5 +16,4 @@ class Multiply extends AbstractOperator_1.AbstractOperator {
16
16
  }
17
17
  exports.Multiply = Multiply;
18
18
  Multiply.NAME = 'multiply';
19
-
20
- //# sourceMappingURL=Multiply.js.map
19
+ //# sourceMappingURL=Multiply.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/operators/arithmetic/Multiply.ts"],"names":[],"mappings":";;;AAAA,0DAAqD;AAErD,MAAa,QAAS,SAAQ,mCAAgB;IAA9C;;QAIE,SAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QACrB,EAAE;QACF,EAAE;QACF,gCAAgC;QAChC,4DAA4D;QAC5D,iBAAiB;QACjB,IAAI;IAEN,CAAC;;AAZD,4BAYC;AAVQ,aAAI,GAAG,UAAU,CAAC","file":"Multiply.js","sourcesContent":["import {AbstractOperator} from '../AbstractOperator';\n\nexport class Multiply extends AbstractOperator {\n\n static NAME = 'multiply';\n\n name = Multiply.NAME;\n //\n //\n // validate(def: any): boolean {\n // this.value = this.base.interprete(def, this, this.key);\n // return true;\n // }\n\n}\n"],"sourceRoot":"../.."}
1
+ {"version":3,"file":"Multiply.js","sourceRoot":"","sources":["../../../../src/operators/arithmetic/Multiply.ts"],"names":[],"mappings":";;;AAAA,0DAAqD;AAErD,MAAa,QAAS,SAAQ,mCAAqB;IAAnD;;QAIE,SAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QACrB,EAAE;QACF,EAAE;QACF,gCAAgC;QAChC,4DAA4D;QAC5D,iBAAiB;QACjB,IAAI;IAEN,CAAC;;AAZD,4BAYC;AAVQ,aAAI,GAAG,UAAU,AAAb,CAAc"}
@@ -1,5 +1,5 @@
1
1
  import { AbstractOperator } from '../AbstractOperator';
2
- export declare class Sum extends AbstractOperator {
2
+ export declare class Sum extends AbstractOperator<any> {
3
3
  static NAME: string;
4
4
  name: string;
5
5
  }
@@ -16,5 +16,4 @@ class Sum extends AbstractOperator_1.AbstractOperator {
16
16
  }
17
17
  exports.Sum = Sum;
18
18
  Sum.NAME = 'sum';
19
-
20
- //# sourceMappingURL=Sum.js.map
19
+ //# sourceMappingURL=Sum.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/operators/arithmetic/Sum.ts"],"names":[],"mappings":";;;AAAA,0DAAqD;AAErD,MAAa,GAAI,SAAQ,mCAAgB;IAAzC;;QAIE,SAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QAChB,EAAE;QACF,EAAE;QACF,gCAAgC;QAChC,4DAA4D;QAC5D,iBAAiB;QACjB,IAAI;IAEN,CAAC;;AAZD,kBAYC;AAVQ,QAAI,GAAG,KAAK,CAAC","file":"Sum.js","sourcesContent":["import {AbstractOperator} from '../AbstractOperator';\n\nexport class Sum extends AbstractOperator {\n\n static NAME = 'sum';\n\n name = Sum.NAME;\n //\n //\n // validate(def: any): boolean {\n // this.value = this.base.interprete(def, this, this.key);\n // return true;\n // }\n\n}\n"],"sourceRoot":"../.."}
1
+ {"version":3,"file":"Sum.js","sourceRoot":"","sources":["../../../../src/operators/arithmetic/Sum.ts"],"names":[],"mappings":";;;AAAA,0DAAqD;AAErD,MAAa,GAAI,SAAQ,mCAAqB;IAA9C;;QAIE,SAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QAChB,EAAE;QACF,EAAE;QACF,gCAAgC;QAChC,4DAA4D;QAC5D,iBAAiB;QACjB,IAAI;IAEN,CAAC;;AAZD,kBAYC;AAVQ,QAAI,GAAG,KAAK,AAAR,CAAS"}
@@ -1,8 +1,7 @@
1
1
  import { AbstractOperator } from '../AbstractOperator';
2
2
  import { PAst } from '../../ast/PAst';
3
- export declare class First extends AbstractOperator {
3
+ export declare class First extends AbstractOperator<PAst<any>> {
4
4
  static NAME: string;
5
5
  name: string;
6
- value: PAst;
7
6
  validate(def: any): boolean;
8
7
  }
@@ -1,17 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.First = void 0;
4
- const _ = require("lodash");
5
4
  const AbstractOperator_1 = require("../AbstractOperator");
6
5
  const Context_1 = require("../../ast/Context");
6
+ const lodash_1 = require("lodash");
7
7
  class First extends AbstractOperator_1.AbstractOperator {
8
8
  constructor() {
9
9
  super(...arguments);
10
10
  this.name = First.NAME;
11
11
  }
12
12
  validate(def) {
13
- if (_.isString(def)) {
14
- this.value = this.base.interprete(def, this, new Context_1.Context(this.key));
13
+ if ((0, lodash_1.isString)(def)) {
14
+ this.setValue(this.getRootExpression().interprete(def, this, new Context_1.Context(this.getKeyString())));
15
15
  return true;
16
16
  }
17
17
  return false;
@@ -19,5 +19,4 @@ class First extends AbstractOperator_1.AbstractOperator {
19
19
  }
20
20
  exports.First = First;
21
21
  First.NAME = 'first';
22
-
23
- //# sourceMappingURL=First.js.map
22
+ //# sourceMappingURL=First.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/operators/array/First.ts"],"names":[],"mappings":";;;AAAA,4BAA4B;AAC5B,0DAAqD;AAErD,+CAA0C;AAE1C,MAAa,KAAM,SAAQ,mCAAgB;IAA3C;;QAIE,SAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IAYpB,CAAC;IARC,QAAQ,CAAC,GAAQ;QACf,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACnB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,iBAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACpE,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;IACf,CAAC;;AAdH,sBAgBC;AAdQ,UAAI,GAAG,OAAO,CAAC","file":"First.js","sourcesContent":["import * as _ from 'lodash';\nimport {AbstractOperator} from '../AbstractOperator';\nimport {PAst} from '../../ast/PAst';\nimport {Context} from '../../ast/Context';\n\nexport class First extends AbstractOperator {\n\n static NAME = 'first';\n\n name = First.NAME;\n\n value: PAst;\n\n validate(def: any): boolean {\n if (_.isString(def)) {\n this.value = this.base.interprete(def, this, new Context(this.key));\n return true;\n }\n return false;\n }\n\n}\n"],"sourceRoot":"../.."}
1
+ {"version":3,"file":"First.js","sourceRoot":"","sources":["../../../../src/operators/array/First.ts"],"names":[],"mappings":";;;AACA,0DAAqD;AAErD,+CAA0C;AAC1C,mCAAgC;AAEhC,MAAa,KAAM,SAAQ,mCAA2B;IAAtD;;QAIE,SAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IAUpB,CAAC;IARC,QAAQ,CAAC,GAAQ;QACf,IAAI,IAAA,iBAAQ,EAAC,GAAG,CAAC,EAAE,CAAC;YAClB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,iBAAO,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;YAChG,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;;AAZH,sBAcC;AAZQ,UAAI,GAAG,OAAO,AAAV,CAAW"}
@@ -1,8 +1,7 @@
1
1
  import { AbstractOperator } from '../AbstractOperator';
2
2
  import { PAst } from '../../ast/PAst';
3
- export declare class Last extends AbstractOperator {
3
+ export declare class Last extends AbstractOperator<PAst<any>> {
4
4
  static NAME: string;
5
5
  name: string;
6
- value: PAst;
7
6
  validate(def: any): boolean;
8
7
  }
@@ -1,17 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Last = void 0;
4
- const _ = require("lodash");
5
4
  const AbstractOperator_1 = require("../AbstractOperator");
6
5
  const Context_1 = require("../../ast/Context");
6
+ const lodash_1 = require("lodash");
7
7
  class Last extends AbstractOperator_1.AbstractOperator {
8
8
  constructor() {
9
9
  super(...arguments);
10
10
  this.name = Last.NAME;
11
11
  }
12
12
  validate(def) {
13
- if (_.isString(def)) {
14
- this.value = this.base.interprete(def, this, new Context_1.Context(this.key));
13
+ if ((0, lodash_1.isString)(def)) {
14
+ this.setValue(this.getRootExpression().interprete(def, this, new Context_1.Context(this.getKeyString())));
15
15
  return true;
16
16
  }
17
17
  return false;
@@ -19,5 +19,4 @@ class Last extends AbstractOperator_1.AbstractOperator {
19
19
  }
20
20
  exports.Last = Last;
21
21
  Last.NAME = 'last';
22
-
23
- //# sourceMappingURL=Last.js.map
22
+ //# sourceMappingURL=Last.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/operators/array/Last.ts"],"names":[],"mappings":";;;AAAA,4BAA4B;AAC5B,0DAAqD;AAErD,+CAA0C;AAE1C,MAAa,IAAK,SAAQ,mCAAgB;IAA1C;;QAIE,SAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IAYnB,CAAC;IARC,QAAQ,CAAC,GAAQ;QACf,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACnB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,iBAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACpE,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;IACf,CAAC;;AAdH,oBAgBC;AAdQ,SAAI,GAAG,MAAM,CAAC","file":"Last.js","sourcesContent":["import * as _ from 'lodash';\nimport {AbstractOperator} from '../AbstractOperator';\nimport {PAst} from '../../ast/PAst';\nimport {Context} from '../../ast/Context';\n\nexport class Last extends AbstractOperator {\n\n static NAME = 'last';\n\n name = Last.NAME;\n\n value: PAst;\n\n validate(def: any): boolean {\n if (_.isString(def)) {\n this.value = this.base.interprete(def, this, new Context(this.key));\n return true;\n }\n return false;\n }\n\n}\n"],"sourceRoot":"../.."}
1
+ {"version":3,"file":"Last.js","sourceRoot":"","sources":["../../../../src/operators/array/Last.ts"],"names":[],"mappings":";;;AACA,0DAAqD;AAErD,+CAA0C;AAC1C,mCAAgC;AAEhC,MAAa,IAAK,SAAQ,mCAA2B;IAArD;;QAIE,SAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IAUnB,CAAC;IARC,QAAQ,CAAC,GAAQ;QACf,IAAI,IAAA,iBAAQ,EAAC,GAAG,CAAC,EAAE,CAAC;YAClB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,iBAAO,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;YAChG,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;;AAZH,oBAcC;AAZQ,SAAI,GAAG,MAAM,AAAT,CAAU"}
@@ -16,11 +16,11 @@ import { PAst } from '../../ast/PAst';
16
16
  * }
17
17
  * }
18
18
  */
19
- export declare class Map extends AbstractOperator {
19
+ export declare class Map extends AbstractOperator<null> {
20
20
  static NAME: string;
21
21
  name: string;
22
- input: PAst;
22
+ input: PAst<any>;
23
23
  as: string;
24
- in: PAst;
24
+ in: PAst<any>;
25
25
  validate(def: any): boolean;
26
26
  }
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Map = void 0;
4
- const _ = require("lodash");
5
4
  const AbstractOperator_1 = require("../AbstractOperator");
6
5
  const Context_1 = require("../../ast/Context");
6
+ const lodash_1 = require("lodash");
7
7
  /**
8
8
  * @see https://docs.mongodb.com/manual/reference/operator/aggregation/map/#exp._S_map
9
9
  *
@@ -26,13 +26,13 @@ class Map extends AbstractOperator_1.AbstractOperator {
26
26
  this.name = Map.NAME;
27
27
  }
28
28
  validate(def) {
29
- if (_.isObjectLike(def) &&
30
- _.has(def, 'input') &&
31
- _.has(def, 'as') &&
32
- _.has(def, 'in')) {
33
- this.input = this.base.interprete(def.input, this, new Context_1.Context(this.key));
29
+ if ((0, lodash_1.isObjectLike)(def) &&
30
+ (0, lodash_1.has)(def, 'input') &&
31
+ (0, lodash_1.has)(def, 'as') &&
32
+ (0, lodash_1.has)(def, 'in')) {
33
+ this.input = this.getRootExpression().interprete(def.input, this, new Context_1.Context(this.getKeyString()));
34
34
  this.as = def.as;
35
- this.in = this.base.interprete(def.in, this, new Context_1.Context(this.key));
35
+ this.in = this.getRootExpression().interprete(def.in, this, new Context_1.Context(this.getKeyString()));
36
36
  return true;
37
37
  }
38
38
  return false;
@@ -40,5 +40,4 @@ class Map extends AbstractOperator_1.AbstractOperator {
40
40
  }
41
41
  exports.Map = Map;
42
42
  Map.NAME = 'map';
43
-
44
- //# sourceMappingURL=Map.js.map
43
+ //# sourceMappingURL=Map.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/operators/array/Map.ts"],"names":[],"mappings":";;;AAAA,4BAA4B;AAC5B,0DAAqD;AAErD,+CAA0C;AAE1C;;;;;;;;;;;;;;;GAeG;AACH,MAAa,GAAI,SAAQ,mCAAgB;IAAzC;;QAIE,SAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IAqBlB,CAAC;IAbC,QAAQ,CAAC,GAAQ;QACf,IAAI,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC;YACrB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC;YACnB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC;YAChB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE;YAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,iBAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1E,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC;YACjB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,iBAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACpE,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;IACf,CAAC;;AAvBH,kBAyBC;AAvBQ,QAAI,GAAG,KAAK,CAAC","file":"Map.js","sourcesContent":["import * as _ from 'lodash';\nimport {AbstractOperator} from '../AbstractOperator';\nimport {PAst} from '../../ast/PAst';\nimport {Context} from '../../ast/Context';\n\n/**\n * @see https://docs.mongodb.com/manual/reference/operator/aggregation/map/#exp._S_map\n *\n * Example:\n * { _id: 0,\n * date: \"$date\",\n * tempsStep1:\n * { $map:\n * {\n * input: \"$temps\",\n * as: \"tempInCelsius\",\n * in: { $multiply: [ \"$$tempInCelsius\", 9/5 ] }\n * }\n * }\n * }\n */\nexport class Map extends AbstractOperator {\n\n static NAME = 'map';\n\n name = Map.NAME;\n\n input: PAst;\n\n as: string;\n\n in: PAst;\n\n validate(def: any): boolean {\n if (_.isObjectLike(def) &&\n _.has(def, 'input') &&\n _.has(def, 'as') &&\n _.has(def, 'in')) {\n this.input = this.base.interprete(def.input, this, new Context(this.key));\n this.as = def.as;\n this.in = this.base.interprete(def.in, this, new Context(this.key));\n return true;\n }\n return false;\n }\n\n}\n"],"sourceRoot":"../.."}
1
+ {"version":3,"file":"Map.js","sourceRoot":"","sources":["../../../../src/operators/array/Map.ts"],"names":[],"mappings":";;;AACA,0DAAqD;AAErD,+CAA0C;AAC1C,mCAAyC;AAEzC;;;;;;;;;;;;;;;GAeG;AACH,MAAa,GAAI,SAAQ,mCAAsB;IAA/C;;QAIE,SAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IAqBlB,CAAC;IAbC,QAAQ,CAAC,GAAQ;QACf,IAAI,IAAA,qBAAY,EAAC,GAAG,CAAC;YACnB,IAAA,YAAG,EAAC,GAAG,EAAE,OAAO,CAAC;YACjB,IAAA,YAAG,EAAC,GAAG,EAAE,IAAI,CAAC;YACd,IAAA,YAAG,EAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;YACjB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,iBAAO,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;YACpG,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC;YACjB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,iBAAO,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;YAC9F,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;;AAvBH,kBAyBC;AAvBQ,QAAI,GAAG,KAAK,AAAR,CAAS"}
@@ -1,5 +1,5 @@
1
1
  import { AbstractOperator } from '../AbstractOperator';
2
- export declare abstract class AbstractCompare extends AbstractOperator {
2
+ export declare abstract class AbstractCompare<X> extends AbstractOperator<X> {
3
3
  op: string;
4
- validate(def: any): boolean;
4
+ validate(rightSide: any): boolean;
5
5
  }
@@ -4,11 +4,11 @@ exports.AbstractCompare = void 0;
4
4
  const AbstractOperator_1 = require("../AbstractOperator");
5
5
  const Context_1 = require("../../ast/Context");
6
6
  class AbstractCompare extends AbstractOperator_1.AbstractOperator {
7
- validate(def) {
8
- this.value = this.base.interprete(def, this, new Context_1.Context(this.key));
7
+ validate(rightSide) {
8
+ const value = this.getRootExpression().interprete(rightSide, this, new Context_1.Context(this.getKeyString()));
9
+ this.setValue(value);
9
10
  return true;
10
11
  }
11
12
  }
12
13
  exports.AbstractCompare = AbstractCompare;
13
-
14
- //# sourceMappingURL=AbstractCompare.js.map
14
+ //# sourceMappingURL=AbstractCompare.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/operators/compare/AbstractCompare.ts"],"names":[],"mappings":";;;AAAA,0DAAqD;AACrD,+CAA0C;AAE1C,MAAsB,eAAgB,SAAQ,mCAAgB;IAK5D,QAAQ,CAAC,GAAQ;QACf,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,iBAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACpE,OAAO,IAAI,CAAC;IACd,CAAC;CAGF;AAXD,0CAWC","file":"AbstractCompare.js","sourcesContent":["import {AbstractOperator} from '../AbstractOperator';\nimport {Context} from '../../ast/Context';\n\nexport abstract class AbstractCompare extends AbstractOperator {\n\n op: string;\n\n\n validate(def: any): boolean {\n this.value = this.base.interprete(def, this, new Context(this.key));\n return true;\n }\n\n\n}\n"],"sourceRoot":"../.."}
1
+ {"version":3,"file":"AbstractCompare.js","sourceRoot":"","sources":["../../../../src/operators/compare/AbstractCompare.ts"],"names":[],"mappings":";;;AAAA,0DAAqD;AACrD,+CAA0C;AAE1C,MAAsB,eAAmB,SAAQ,mCAAmB;IAKlE,QAAQ,CAAC,SAAc;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,iBAAO,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;QACrG,IAAI,CAAC,QAAQ,CAAC,KAAY,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;CAGF;AAZD,0CAYC"}
@@ -0,0 +1,10 @@
1
+ import { PValue } from '../../ast/PValue';
2
+ import { AbstractCompare } from './AbstractCompare';
3
+ import { PAst } from '../../ast/PAst';
4
+ import { Selector } from '../../ast/Selector';
5
+ export declare class EqualDesc extends AbstractCompare<PValue> {
6
+ static NAME: string;
7
+ name: string;
8
+ op: string;
9
+ }
10
+ export declare function Eq(arg1: string | Selector, arg2: PAst<any>): EqualDesc;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EqualDesc = void 0;
4
+ exports.Eq = Eq;
5
+ const AbstractCompare_1 = require("./AbstractCompare");
6
+ class EqualDesc extends AbstractCompare_1.AbstractCompare {
7
+ constructor() {
8
+ super(...arguments);
9
+ this.name = EqualDesc.NAME;
10
+ this.op = '=';
11
+ }
12
+ }
13
+ exports.EqualDesc = EqualDesc;
14
+ EqualDesc.NAME = 'eq';
15
+ function Eq(arg1, arg2) {
16
+ const desc = new EqualDesc();
17
+ desc.setKey(arg1);
18
+ desc.setValue(arg2);
19
+ return desc;
20
+ }
21
+ //# sourceMappingURL=EqualDesc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EqualDesc.js","sourceRoot":"","sources":["../../../../src/operators/compare/EqualDesc.ts"],"names":[],"mappings":";;;AAiBA,gBAKC;AArBD,uDAAkD;AAIlD,MAAa,SAAU,SAAQ,iCAAuB;IAAtD;;QAIE,SAAI,GAAG,SAAS,CAAC,IAAI,CAAC;QAEtB,OAAE,GAAW,GAAG,CAAC;IAGnB,CAAC;;AATD,8BASC;AAPQ,cAAI,GAAG,IAAI,AAAP,CAAQ;AAUrB,SAAgB,EAAE,CAAC,IAAuB,EAAE,IAAe;IACzD,MAAM,IAAI,GAAG,IAAI,SAAS,EAAE,CAAC;IAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAClB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACpB,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { EqualDesc } from './EqualDesc';
2
+ import { ILookupFn } from '../../walker/lookup/ILookupFn';
3
+ export declare class EqualDescLookup implements ILookupFn {
4
+ lookup(ast: EqualDesc, source: any): (target: any) => boolean;
5
+ }
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EqualDescLookup = void 0;
4
+ const lodash_1 = require("lodash");
5
+ const Value_1 = require("../../ast/Value");
6
+ // TODO lookup interface
7
+ class EqualDescLookup {
8
+ lookup(ast, source) {
9
+ const key = ast.getKeyString();
10
+ const value = ast.getValue();
11
+ let v = null;
12
+ if (value instanceof Value_1.Value) {
13
+ v = value.getValue();
14
+ }
15
+ else {
16
+ const ref = value.getValue();
17
+ if (!(0, lodash_1.isUndefined)(source)) {
18
+ v = (0, lodash_1.get)(source, ref);
19
+ }
20
+ else {
21
+ return function (target, source) {
22
+ if ((0, lodash_1.isUndefined)(source)) {
23
+ throw new Error('Need second argument for getting referenced value to compare.');
24
+ }
25
+ return target[key] && target[key] === (0, lodash_1.get)(source, ref);
26
+ };
27
+ }
28
+ }
29
+ // const value = this.value instanceof KeyDesc ? source[this.value.key] : _.clone((<ValueDesc>this.value).value);
30
+ return function (target) {
31
+ return target[key] && target[key] === v;
32
+ };
33
+ }
34
+ ;
35
+ }
36
+ exports.EqualDescLookup = EqualDescLookup;
37
+ //# sourceMappingURL=EqualDescLookup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EqualDescLookup.js","sourceRoot":"","sources":["../../../../src/operators/compare/EqualDescLookup.ts"],"names":[],"mappings":";;;AAAA,mCAAwC;AAGxC,2CAAsC;AAEtC,wBAAwB;AAExB,MAAa,eAAe;IAG1B,MAAM,CAAC,GAAc,EAAE,MAAW;QAChC,MAAM,GAAG,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC,GAAQ,IAAI,CAAC;QAClB,IAAI,KAAK,YAAY,aAAK,EAAE,CAAC;YAC3B,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC7B,IAAI,CAAC,IAAA,oBAAW,EAAC,MAAM,CAAC,EAAE,CAAC;gBACzB,CAAC,GAAG,IAAA,YAAG,EAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACN,OAAO,UAAU,MAAW,EAAE,MAAY;oBACxC,IAAI,IAAA,oBAAW,EAAC,MAAM,CAAC,EAAE,CAAC;wBACxB,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;oBACnF,CAAC;oBACD,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,IAAA,YAAG,EAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBACzD,CAAC,CAAC;YACJ,CAAC;QACH,CAAC;QACD,iHAAiH;QACjH,OAAO,UAAU,MAAW;YAC1B,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC,CAAC;IACJ,CAAC;IAAA,CAAC;CAGH;AA7BD,0CA6BC"}
@@ -1,8 +1,7 @@
1
1
  import { PValue } from '../../ast/PValue';
2
2
  import { AbstractCompare } from './AbstractCompare';
3
- export declare class GreaterThen extends AbstractCompare {
3
+ export declare class GreaterThen extends AbstractCompare<PValue> {
4
4
  static NAME: string;
5
5
  name: string;
6
- value: PValue;
7
6
  op: string;
8
7
  }
@@ -11,5 +11,4 @@ class GreaterThen extends AbstractCompare_1.AbstractCompare {
11
11
  }
12
12
  exports.GreaterThen = GreaterThen;
13
13
  GreaterThen.NAME = 'gt';
14
-
15
- //# sourceMappingURL=GreaterThen.js.map
14
+ //# sourceMappingURL=GreaterThen.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/operators/compare/GreaterThen.ts"],"names":[],"mappings":";;;AAEA,uDAAkD;AAElD,MAAa,WAAY,SAAQ,iCAAe;IAAhD;;QAIE,SAAI,GAAG,WAAW,CAAC,IAAI,CAAC;QAIxB,OAAE,GAAW,GAAG,CAAC;IAEnB,CAAC;;AAVD,kCAUC;AARQ,gBAAI,GAAG,IAAI,CAAC","file":"GreaterThen.js","sourcesContent":["import {AbstractOperator} from '../AbstractOperator';\nimport {PValue} from '../../ast/PValue';\nimport {AbstractCompare} from './AbstractCompare';\n\nexport class GreaterThen extends AbstractCompare {\n\n static NAME = 'gt';\n\n name = GreaterThen.NAME;\n\n value: PValue;\n\n op: string = '>';\n\n}\n"],"sourceRoot":"../.."}
1
+ {"version":3,"file":"GreaterThen.js","sourceRoot":"","sources":["../../../../src/operators/compare/GreaterThen.ts"],"names":[],"mappings":";;;AACA,uDAAkD;AAElD,MAAa,WAAY,SAAQ,iCAAuB;IAAxD;;QAIE,SAAI,GAAG,WAAW,CAAC,IAAI,CAAC;QAExB,OAAE,GAAW,GAAG,CAAC;IAEnB,CAAC;;AARD,kCAQC;AANQ,gBAAI,GAAG,IAAI,AAAP,CAAQ"}
@@ -1,8 +1,7 @@
1
1
  import { PValue } from '../../ast/PValue';
2
2
  import { AbstractCompare } from './AbstractCompare';
3
- export declare class GreaterThenEqual extends AbstractCompare {
3
+ export declare class GreaterThenEqual extends AbstractCompare<PValue> {
4
4
  static NAME: string;
5
5
  name: string;
6
- value: PValue;
7
6
  op: string;
8
7
  }
@@ -11,5 +11,4 @@ class GreaterThenEqual extends AbstractCompare_1.AbstractCompare {
11
11
  }
12
12
  exports.GreaterThenEqual = GreaterThenEqual;
13
13
  GreaterThenEqual.NAME = 'ge';
14
-
15
- //# sourceMappingURL=GreaterThenEqual.js.map
14
+ //# sourceMappingURL=GreaterThenEqual.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/operators/compare/GreaterThenEqual.ts"],"names":[],"mappings":";;;AAEA,uDAAkD;AAElD,MAAa,gBAAiB,SAAQ,iCAAe;IAArD;;QAIE,SAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC;QAI7B,OAAE,GAAW,IAAI,CAAC;IAGpB,CAAC;;AAXD,4CAWC;AATQ,qBAAI,GAAG,IAAI,CAAC","file":"GreaterThenEqual.js","sourcesContent":["import {AbstractOperator} from '../AbstractOperator';\nimport {PValue} from '../../ast/PValue';\nimport {AbstractCompare} from './AbstractCompare';\n\nexport class GreaterThenEqual extends AbstractCompare {\n\n static NAME = 'ge';\n\n name = GreaterThenEqual.NAME;\n\n value: PValue;\n\n op: string = '>=';\n\n\n}\n"],"sourceRoot":"../.."}
1
+ {"version":3,"file":"GreaterThenEqual.js","sourceRoot":"","sources":["../../../../src/operators/compare/GreaterThenEqual.ts"],"names":[],"mappings":";;;AACA,uDAAkD;AAElD,MAAa,gBAAiB,SAAQ,iCAAuB;IAA7D;;QAIE,SAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC;QAE7B,OAAE,GAAW,IAAI,CAAC;IAGpB,CAAC;;AATD,4CASC;AAPQ,qBAAI,GAAG,IAAI,AAAP,CAAQ"}
@@ -1,8 +1,7 @@
1
1
  import { PValue } from '../../ast/PValue';
2
2
  import { AbstractCompare } from './AbstractCompare';
3
- export declare class In extends AbstractCompare {
3
+ export declare class In extends AbstractCompare<PValue> {
4
4
  static NAME: string;
5
5
  name: string;
6
- value: PValue;
7
6
  op: string;
8
7
  }
@@ -11,5 +11,4 @@ class In extends AbstractCompare_1.AbstractCompare {
11
11
  }
12
12
  exports.In = In;
13
13
  In.NAME = 'in';
14
-
15
- //# sourceMappingURL=In.js.map
14
+ //# sourceMappingURL=In.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/operators/compare/In.ts"],"names":[],"mappings":";;;AAEA,uDAAkD;AAElD,MAAa,EAAG,SAAQ,iCAAe;IAAvC;;QAIE,SAAI,GAAG,EAAE,CAAC,IAAI,CAAC;QAIf,OAAE,GAAW,IAAI,CAAC;IAEpB,CAAC;;AAVD,gBAUC;AARQ,OAAI,GAAG,IAAI,CAAC","file":"In.js","sourcesContent":["import {AbstractOperator} from '../AbstractOperator';\nimport {PValue} from '../../ast/PValue';\nimport {AbstractCompare} from './AbstractCompare';\n\nexport class In extends AbstractCompare {\n\n static NAME = 'in';\n\n name = In.NAME;\n\n value: PValue;\n\n op: string = 'IN';\n\n}\n"],"sourceRoot":"../.."}
1
+ {"version":3,"file":"In.js","sourceRoot":"","sources":["../../../../src/operators/compare/In.ts"],"names":[],"mappings":";;;AACA,uDAAkD;AAElD,MAAa,EAAG,SAAQ,iCAAuB;IAA/C;;QAIE,SAAI,GAAG,EAAE,CAAC,IAAI,CAAC;QAEf,OAAE,GAAW,IAAI,CAAC;IAEpB,CAAC;;AARD,gBAQC;AANQ,OAAI,GAAG,IAAI,AAAP,CAAQ"}
@@ -1,8 +1,6 @@
1
- import { PValue } from '../../ast/PValue';
2
1
  import { AbstractCompare } from './AbstractCompare';
3
- export declare class IsNotNull extends AbstractCompare {
2
+ export declare class IsNotNull extends AbstractCompare<null> {
4
3
  static NAME: string;
5
4
  name: string;
6
- value: PValue;
7
5
  op: string;
8
6
  }
@@ -11,5 +11,4 @@ class IsNotNull extends AbstractCompare_1.AbstractCompare {
11
11
  }
12
12
  exports.IsNotNull = IsNotNull;
13
13
  IsNotNull.NAME = 'isNotNull';
14
-
15
- //# sourceMappingURL=IsNotNull.js.map
14
+ //# sourceMappingURL=IsNotNull.js.map