@allgemein/mango-expressions 1.3.3 → 1.4.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 (275) hide show
  1. package/AExpr.d.ts +11 -0
  2. package/AExpr.js +37 -0
  3. package/AExpr.js.map +1 -0
  4. package/Constants.d.ts +1 -0
  5. package/Constants.js +2 -5
  6. package/Constants.js.map +1 -1
  7. package/IWalker.d.ts +19 -0
  8. package/IWalker.js +2 -0
  9. package/IWalker.js.map +1 -0
  10. package/README.md +69 -1
  11. package/_Expr.d.ts +1 -0
  12. package/_Expr.js +52 -0
  13. package/_Expr.js.map +1 -0
  14. package/ast/AbstractValue.d.ts +7 -0
  15. package/ast/AbstractValue.js +27 -0
  16. package/ast/AbstractValue.js.map +1 -0
  17. package/ast/Bindings.d.ts +1 -2
  18. package/ast/Bindings.js +1 -5
  19. package/ast/Bindings.js.map +1 -1
  20. package/ast/Constan.d.ts +11 -0
  21. package/ast/Constan.js +2 -0
  22. package/ast/Constan.js.map +1 -0
  23. package/ast/Context.js +8 -12
  24. package/ast/Context.js.map +1 -1
  25. package/ast/Expr.d.ts +23 -0
  26. package/ast/Expr.js +90 -0
  27. package/ast/Expr.js.map +1 -0
  28. package/ast/IExpr.d.ts +16 -0
  29. package/ast/IExpr.js +2 -0
  30. package/ast/IExpr.js.map +1 -0
  31. package/ast/IParser.d.ts +14 -0
  32. package/ast/IParser.js +2 -0
  33. package/ast/IParser.js.map +1 -0
  34. package/ast/IStackEntry.d.ts +13 -0
  35. package/ast/IStackEntry.js +2 -0
  36. package/ast/IStackEntry.js.map +1 -0
  37. package/ast/JsonParser.d.ts +25 -0
  38. package/ast/JsonParser.js +60 -0
  39. package/ast/JsonParser.js.map +1 -0
  40. package/ast/KeyDesc.d.ts +2 -4
  41. package/ast/KeyDesc.js +4 -9
  42. package/ast/KeyDesc.js.map +1 -1
  43. package/ast/MultiArgs.js +1 -5
  44. package/ast/MultiArgs.js.map +1 -1
  45. package/ast/PArray.d.ts +1 -10
  46. package/ast/PArray.js +67 -53
  47. package/ast/PArray.js.map +1 -1
  48. package/ast/PObject.d.ts +1 -17
  49. package/ast/PObject.js +130 -108
  50. package/ast/PObject.js.map +1 -1
  51. package/ast/RefDesc.d.ts +5 -0
  52. package/ast/RefDesc.js +12 -0
  53. package/ast/RefDesc.js.map +1 -0
  54. package/ast/Selector.d.ts +19 -5
  55. package/ast/Selector.js +31 -9
  56. package/ast/Selector.js.map +1 -1
  57. package/ast/StackEntry.d.ts +24 -0
  58. package/ast/StackEntry.js +121 -0
  59. package/ast/StackEntry.js.map +1 -0
  60. package/ast/StringParser.d.ts +16 -0
  61. package/ast/StringParser.js +301 -0
  62. package/ast/StringParser.js.map +1 -0
  63. package/ast/Unset.d.ts +2 -2
  64. package/ast/Unset.js +2 -6
  65. package/ast/Unset.js.map +1 -1
  66. package/ast/ValueDesc.d.ts +4 -0
  67. package/ast/ValueDesc.js +9 -0
  68. package/ast/ValueDesc.js.map +1 -0
  69. package/ast/functions.d.ts +1 -0
  70. package/ast/functions.js +8 -0
  71. package/ast/functions.js.map +1 -0
  72. package/browser.d.ts +52 -55
  73. package/browser.js +53 -117
  74. package/browser.js.map +1 -1
  75. package/errors/InvalidValueError.d.ts +4 -0
  76. package/errors/InvalidValueError.js +6 -0
  77. package/errors/InvalidValueError.js.map +1 -0
  78. package/errors/NotYetImplementedError.d.ts +3 -0
  79. package/errors/NotYetImplementedError.js +6 -0
  80. package/errors/NotYetImplementedError.js.map +1 -0
  81. package/errors/UnsupportedInputError.d.ts +3 -0
  82. package/errors/UnsupportedInputError.js +6 -0
  83. package/errors/UnsupportedInputError.js.map +1 -0
  84. package/functions.d.ts +9 -0
  85. package/functions.js +107 -0
  86. package/functions.js.map +1 -0
  87. package/index.d.ts +1 -1
  88. package/index.js +5 -64
  89. package/index.js.map +1 -1
  90. package/operators/AbstractCompare.d.ts +23 -0
  91. package/operators/AbstractCompare.js +100 -0
  92. package/operators/AbstractCompare.js.map +1 -0
  93. package/operators/AbstractFunction.d.ts +6 -0
  94. package/operators/AbstractFunction.js +10 -0
  95. package/operators/AbstractFunction.js.map +1 -0
  96. package/operators/AbstractJunctor.d.ts +13 -0
  97. package/operators/AbstractJunctor.js +31 -0
  98. package/operators/AbstractJunctor.js.map +1 -0
  99. package/operators/AbstractJunctorArray.d.ts +18 -0
  100. package/operators/AbstractJunctorArray.js +63 -0
  101. package/operators/AbstractJunctorArray.js.map +1 -0
  102. package/operators/AbstractOperator.d.ts +6 -6
  103. package/operators/AbstractOperator.js +12 -31
  104. package/operators/AbstractOperator.js.map +1 -1
  105. package/operators/Components.d.ts +30 -0
  106. package/operators/Components.js +140 -0
  107. package/operators/Components.js.map +1 -0
  108. package/operators/arithmetic/Avg.d.ts +2 -2
  109. package/operators/arithmetic/Avg.js +2 -6
  110. package/operators/arithmetic/Avg.js.map +1 -1
  111. package/operators/arithmetic/Count.d.ts +2 -2
  112. package/operators/arithmetic/Count.js +2 -6
  113. package/operators/arithmetic/Count.js.map +1 -1
  114. package/operators/arithmetic/Max.d.ts +2 -2
  115. package/operators/arithmetic/Max.js +2 -6
  116. package/operators/arithmetic/Max.js.map +1 -1
  117. package/operators/arithmetic/Min.d.ts +2 -2
  118. package/operators/arithmetic/Min.js +2 -6
  119. package/operators/arithmetic/Min.js.map +1 -1
  120. package/operators/arithmetic/Multiply.d.ts +2 -2
  121. package/operators/arithmetic/Multiply.js +2 -6
  122. package/operators/arithmetic/Multiply.js.map +1 -1
  123. package/operators/arithmetic/Sum.d.ts +2 -2
  124. package/operators/arithmetic/Sum.js +2 -6
  125. package/operators/arithmetic/Sum.js.map +1 -1
  126. package/operators/array/First.d.ts +2 -4
  127. package/operators/array/First.js +9 -15
  128. package/operators/array/First.js.map +1 -1
  129. package/operators/array/Last.d.ts +2 -4
  130. package/operators/array/Last.js +9 -15
  131. package/operators/array/Last.js.map +1 -1
  132. package/operators/array/Map.d.ts +5 -6
  133. package/operators/array/Map.js +14 -20
  134. package/operators/array/Map.js.map +1 -1
  135. package/operators/compare/EqualDesc.d.ts +6 -7
  136. package/operators/compare/EqualDesc.js +13 -11
  137. package/operators/compare/EqualDesc.js.map +1 -1
  138. package/operators/compare/EqualDescLookup.d.ts +2 -2
  139. package/operators/compare/EqualDescLookup.js +24 -31
  140. package/operators/compare/EqualDescLookup.js.map +1 -1
  141. package/operators/compare/GreaterThen.d.ts +3 -4
  142. package/operators/compare/GreaterThen.js +3 -7
  143. package/operators/compare/GreaterThen.js.map +1 -1
  144. package/operators/compare/GreaterThenEqual.d.ts +3 -4
  145. package/operators/compare/GreaterThenEqual.js +3 -7
  146. package/operators/compare/GreaterThenEqual.js.map +1 -1
  147. package/operators/compare/In.d.ts +3 -4
  148. package/operators/compare/In.js +3 -7
  149. package/operators/compare/In.js.map +1 -1
  150. package/operators/compare/IsNotNull.d.ts +3 -3
  151. package/operators/compare/IsNotNull.js +3 -7
  152. package/operators/compare/IsNotNull.js.map +1 -1
  153. package/operators/compare/IsNull.d.ts +3 -3
  154. package/operators/compare/IsNull.js +3 -7
  155. package/operators/compare/IsNull.js.map +1 -1
  156. package/operators/compare/LessThen.d.ts +3 -3
  157. package/operators/compare/LessThen.js +3 -6
  158. package/operators/compare/LessThen.js.map +1 -1
  159. package/operators/compare/LessThenEqual.d.ts +3 -4
  160. package/operators/compare/LessThenEqual.js +3 -7
  161. package/operators/compare/LessThenEqual.js.map +1 -1
  162. package/operators/compare/Like.d.ts +3 -4
  163. package/operators/compare/Like.js +3 -7
  164. package/operators/compare/Like.js.map +1 -1
  165. package/operators/compare/NotEqual.d.ts +3 -4
  166. package/operators/compare/NotEqual.js +3 -7
  167. package/operators/compare/NotEqual.js.map +1 -1
  168. package/operators/compare/NotIn.d.ts +3 -4
  169. package/operators/compare/NotIn.js +3 -7
  170. package/operators/compare/NotIn.js.map +1 -1
  171. package/operators/compare/Regex.d.ts +2 -6
  172. package/operators/compare/Regex.js +28 -33
  173. package/operators/compare/Regex.js.map +1 -1
  174. package/operators/date/Date.d.ts +2 -2
  175. package/operators/date/Date.js +3 -6
  176. package/operators/date/Date.js.map +1 -1
  177. package/operators/date/DateToString.d.ts +4 -5
  178. package/operators/date/DateToString.js +15 -20
  179. package/operators/date/DateToString.js.map +1 -1
  180. package/operators/date/Day.d.ts +2 -2
  181. package/operators/date/Day.js +2 -6
  182. package/operators/date/Day.js.map +1 -1
  183. package/operators/date/Month.d.ts +2 -2
  184. package/operators/date/Month.js +2 -6
  185. package/operators/date/Month.js.map +1 -1
  186. package/operators/date/Year.d.ts +2 -2
  187. package/operators/date/Year.js +2 -6
  188. package/operators/date/Year.js.map +1 -1
  189. package/operators/logic/AndDesc.d.ts +5 -7
  190. package/operators/logic/AndDesc.js +16 -21
  191. package/operators/logic/AndDesc.js.map +1 -1
  192. package/operators/logic/AndDescLookup.d.ts +2 -2
  193. package/operators/logic/AndDescLookup.js +1 -5
  194. package/operators/logic/AndDescLookup.js.map +1 -1
  195. package/operators/logic/NotDesc.d.ts +8 -0
  196. package/operators/logic/NotDesc.js +21 -0
  197. package/operators/logic/NotDesc.js.map +1 -0
  198. package/operators/logic/OrDesc.d.ts +5 -7
  199. package/operators/logic/OrDesc.js +5 -21
  200. package/operators/logic/OrDesc.js.map +1 -1
  201. package/operators/stage/AbstractSection.d.ts +7 -0
  202. package/operators/stage/AbstractSection.js +11 -0
  203. package/operators/stage/AbstractSection.js.map +1 -0
  204. package/operators/stage/Group.d.ts +4 -10
  205. package/operators/stage/Group.js +33 -39
  206. package/operators/stage/Group.js.map +1 -1
  207. package/operators/stage/Limit.d.ts +2 -2
  208. package/operators/stage/Limit.js +2 -6
  209. package/operators/stage/Limit.js.map +1 -1
  210. package/operators/stage/Match.d.ts +2 -8
  211. package/operators/stage/Match.js +2 -20
  212. package/operators/stage/Match.js.map +1 -1
  213. package/operators/stage/Project.d.ts +2 -8
  214. package/operators/stage/Project.js +17 -21
  215. package/operators/stage/Project.js.map +1 -1
  216. package/operators/stage/Query..d.ts +1 -0
  217. package/operators/stage/Query..js +3 -0
  218. package/operators/stage/Query..js.map +1 -0
  219. package/operators/stage/Skip.d.ts +2 -6
  220. package/operators/stage/Skip.js +6 -11
  221. package/operators/stage/Skip.js.map +1 -1
  222. package/operators/stage/Sort.d.ts +2 -6
  223. package/operators/stage/Sort.js +6 -11
  224. package/operators/stage/Sort.js.map +1 -1
  225. package/operators/string/Substr.d.ts +2 -4
  226. package/operators/string/Substr.js +19 -22
  227. package/operators/string/Substr.js.map +1 -1
  228. package/operators/string/ToFloat.d.ts +2 -3
  229. package/operators/string/ToFloat.js +9 -15
  230. package/operators/string/ToFloat.js.map +1 -1
  231. package/operators/string/ToInt.d.ts +2 -3
  232. package/operators/string/ToInt.js +9 -15
  233. package/operators/string/ToInt.js.map +1 -1
  234. package/operators/string/ToLower.d.ts +2 -3
  235. package/operators/string/ToLower.js +9 -15
  236. package/operators/string/ToLower.js.map +1 -1
  237. package/operators/string/ToUpper.d.ts +2 -4
  238. package/operators/string/ToUpper.js +9 -15
  239. package/operators/string/ToUpper.js.map +1 -1
  240. package/package.json +2 -1
  241. package/walker/lookup/ILookupFn.d.ts +2 -2
  242. package/walker/lookup/ILookupFn.js +1 -2
  243. package/walker/lookup/LookupWalker.d.ts +11 -11
  244. package/walker/lookup/LookupWalker.js +19 -23
  245. package/walker/lookup/LookupWalker.js.map +1 -1
  246. package/IMangoWalker.d.ts +0 -19
  247. package/IMangoWalker.js +0 -3
  248. package/IMangoWalker.js.map +0 -1
  249. package/MangoExpression.d.ts +0 -15
  250. package/MangoExpression.js +0 -88
  251. package/MangoExpression.js.map +0 -1
  252. package/ast/PAst.d.ts +0 -42
  253. package/ast/PAst.js +0 -158
  254. package/ast/PAst.js.map +0 -1
  255. package/ast/PValue.d.ts +0 -10
  256. package/ast/PValue.js +0 -22
  257. package/ast/PValue.js.map +0 -1
  258. package/ast/Value.d.ts +0 -3
  259. package/ast/Value.js +0 -8
  260. package/ast/Value.js.map +0 -1
  261. package/ast/ValueRef.d.ts +0 -4
  262. package/ast/ValueRef.js +0 -11
  263. package/ast/ValueRef.js.map +0 -1
  264. package/operators/Operators.d.ts +0 -35
  265. package/operators/Operators.js +0 -149
  266. package/operators/Operators.js.map +0 -1
  267. package/operators/compare/AbstractCompare.d.ts +0 -5
  268. package/operators/compare/AbstractCompare.js +0 -14
  269. package/operators/compare/AbstractCompare.js.map +0 -1
  270. package/operators/logic/AbstractLogic.d.ts +0 -3
  271. package/operators/logic/AbstractLogic.js +0 -8
  272. package/operators/logic/AbstractLogic.js.map +0 -1
  273. package/operators/logic/Not.d.ts +0 -8
  274. package/operators/logic/Not.js +0 -22
  275. package/operators/logic/Not.js.map +0 -1
@@ -0,0 +1,60 @@
1
+ import { isArray, isNull, isObjectLike, isUndefined } from '@allgemein/base';
2
+ import { UnsupportedInputError } from '../errors/UnsupportedInputError.js';
3
+ import { StackEntry } from './StackEntry.js';
4
+ import { InvalidValueError } from '../errors/InvalidValueError.js';
5
+ /**
6
+ * Parser iterate over mango object and build the AST
7
+ *
8
+ * - Selectors (Key) - referring value
9
+ * - Value - Constant fixed values in value
10
+ * - ValueRef - Reference to a selector
11
+ * - Operators have a leftSide and a rightSide
12
+ * - Functions - Operate on passed values
13
+ *
14
+ * - DFS is used
15
+ *
16
+ */
17
+ export class JsonParser {
18
+ // backward: StackEntry[] = []
19
+ constructor(partial) {
20
+ this.forward = [];
21
+ if ((isNull(partial) || isUndefined(partial))) {
22
+ throw new UnsupportedInputError(partial);
23
+ }
24
+ if (isArray(partial) && partial.length === 0) {
25
+ throw new UnsupportedInputError(partial);
26
+ }
27
+ if (isObjectLike(partial) && Object.keys(partial).length === 0) {
28
+ throw new UnsupportedInputError(partial);
29
+ }
30
+ // Put first entry in stack
31
+ this.root = new StackEntry(this, partial, null);
32
+ this.forward.push(this.root);
33
+ }
34
+ enqueue(partial, path, callback, hint) {
35
+ if (!partial) {
36
+ throw new InvalidValueError(path, partial);
37
+ }
38
+ const entry = new StackEntry(this, partial, path, callback, hint);
39
+ this.forward.push(entry);
40
+ // this.backward.unshift(entry);
41
+ return entry;
42
+ }
43
+ keep(entry) {
44
+ this.forward.push(entry);
45
+ }
46
+ parse() {
47
+ // let result: IExpr = null;
48
+ while (this.forward.length > 0) {
49
+ const entry = this.forward.pop();
50
+ entry.resolve();
51
+ }
52
+ //
53
+ // while (this.backward.length > 0) {
54
+ // const entry = this.backward.pop();
55
+ // entry.bind()
56
+ // }
57
+ return this.root.comp.getRootExpression();
58
+ }
59
+ }
60
+ //# sourceMappingURL=JsonParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JsonParser.js","sourceRoot":"","sources":["../../../src/ast/JsonParser.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,OAAO,EAAqB,MAAM,EAAY,YAAY,EAAY,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAClH,OAAO,EAAC,qBAAqB,EAAC,MAAM,oCAAoC,CAAC;AAGzE,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAG3C,OAAO,EAAC,iBAAiB,EAAC,MAAM,gCAAgC,CAAC;AAIjE;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,UAAU;IAMrB,8BAA8B;IAG9B,YAAY,OAAY;QALxB,YAAO,GAAiB,EAAE,CAAC;QAMzB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YAC9C,MAAM,IAAI,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/D,MAAM,IAAI,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;QAED,2BAA2B;QAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAGD,OAAO,CAAC,OAAY,EAAE,IAAc,EAAE,QAAmB,EAAE,IAAY;QACrE,IAAG,CAAC,OAAO,EAAC,CAAC;YACX,MAAM,IAAI,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QAClE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,gCAAgC;QAChC,OAAO,KAAK,CAAC;IACf,CAAC;IAGD,IAAI,CAAC,KAAiB;QACpB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAGD,KAAK;QACH,4BAA4B;QAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;YACjC,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,CAAC;QACD,EAAE;QACF,qCAAqC;QACrC,uCAAuC;QACvC,iBAAiB;QACjB,IAAI;QACJ,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC5C,CAAC;CAGF"}
package/ast/KeyDesc.d.ts CHANGED
@@ -1,8 +1,6 @@
1
- import { Selector } from "./Selector";
1
+ import { Selector } from './Selector.js';
2
2
  export declare class KeyDesc extends Selector {
3
- toJson(): {
4
- $key: string;
5
- };
3
+ toJson(): any;
6
4
  }
7
5
  /**
8
6
  * Key
package/ast/KeyDesc.js CHANGED
@@ -1,18 +1,13 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.KeyDesc = void 0;
4
- exports.Key = Key;
5
- const Selector_1 = require("./Selector");
6
- class KeyDesc extends Selector_1.Selector {
1
+ import { Selector } from './Selector.js';
2
+ export class KeyDesc extends Selector {
7
3
  toJson() {
8
- return { $key: this.getValue() };
4
+ return this.getValue();
9
5
  }
10
6
  }
11
- exports.KeyDesc = KeyDesc;
12
7
  /**
13
8
  * Key
14
9
  */
15
- function Key(k) {
10
+ export function Key(k) {
16
11
  const desc = new KeyDesc();
17
12
  desc.setValue(k);
18
13
  return desc;
@@ -1 +1 @@
1
- {"version":3,"file":"KeyDesc.js","sourceRoot":"","sources":["../../../src/ast/KeyDesc.ts"],"names":[],"mappings":";;;AAcA,kBAIC;AAlBD,yCAAoC;AAGpC,MAAa,OAAQ,SAAQ,mBAAQ;IAEnC,MAAM;QACJ,OAAO,EAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAC,CAAC;IACjC,CAAC;CAEF;AAND,0BAMC;AAED;;GAEG;AACH,SAAgB,GAAG,CAAC,CAAS;IAC3B,MAAM,IAAI,GAAG,IAAI,OAAO,EAAE,CAAC;IAC3B,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACjB,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"KeyDesc.js","sourceRoot":"","sources":["../../../src/ast/KeyDesc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AAGvC,MAAM,OAAO,OAAQ,SAAQ,QAAQ;IAEnC,MAAM;QACJ,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;CAEF;AAED;;GAEG;AACH,MAAM,UAAU,GAAG,CAAC,CAAS;IAC3B,MAAM,IAAI,GAAG,IAAI,OAAO,EAAE,CAAC;IAC3B,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACjB,OAAO,IAAI,CAAC;AACd,CAAC"}
package/ast/MultiArgs.js CHANGED
@@ -1,10 +1,6 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MultiArgs = void 0;
4
- class MultiArgs {
1
+ export class MultiArgs {
5
2
  constructor(...args) {
6
3
  this.args = args;
7
4
  }
8
5
  }
9
- exports.MultiArgs = MultiArgs;
10
6
  //# sourceMappingURL=MultiArgs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MultiArgs.js","sourceRoot":"","sources":["../../../src/ast/MultiArgs.ts"],"names":[],"mappings":";;;AAAA,MAAa,SAAS;IAGpB,YAAY,GAAG,IAAW;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CAGF;AARD,8BAQC"}
1
+ {"version":3,"file":"MultiArgs.js","sourceRoot":"","sources":["../../../src/ast/MultiArgs.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,SAAS;IAGpB,YAAY,GAAG,IAAW;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CAGF"}
package/ast/PArray.d.ts CHANGED
@@ -1,10 +1 @@
1
- import { PAst } from './PAst';
2
- import { MangoExpression } from '../MangoExpression';
3
- import { IMangoWalker } from '../IMangoWalker';
4
- import { Context } from './Context';
5
- export declare class PArray extends PAst<PAst<any>[]> {
6
- getByKey(key: string): PAst<any>;
7
- keys(): string[];
8
- interprete(e: MangoExpression, kv: any[], p?: PAst<any>, ctxt?: Context): void;
9
- visit(o: IMangoWalker): any;
10
- }
1
+ export {};
package/ast/PArray.js CHANGED
@@ -1,54 +1,68 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PArray = void 0;
4
- const PAst_1 = require("./PAst");
5
- const Context_1 = require("./Context");
6
- class PArray extends PAst_1.PAst {
7
- getByKey(key) {
8
- for (const item of this.getValue()) {
9
- const found = item.getByKey(key);
10
- if (found) {
11
- return found;
12
- }
13
- }
14
- return null;
15
- }
16
- keys() {
17
- const keys = [];
18
- for (const item of this.getValue()) {
19
- const subkey = item.keys();
20
- subkey.forEach((x) => {
21
- keys.push(x);
22
- });
23
- }
24
- return keys;
25
- }
26
- interprete(e, kv, p, ctxt) {
27
- super.enviroment(e, p, ctxt);
28
- this.value = [];
29
- for (let i = 0; i < kv.length; i++) {
30
- const ctxt = new Context_1.Context();
31
- ctxt.key = i;
32
- this.value[i] = this.getRootExpression().interprete(kv[i], this, ctxt);
33
- }
34
- }
35
- visit(o) {
36
- const state = {};
37
- let res = [];
38
- if (o.visitArray) {
39
- res = o.visitArray(this, state);
40
- }
41
- if (state && state.abort) {
42
- return res;
43
- }
44
- for (let i = 0; i < this.getValue().length; i++) {
45
- res.push(this.getValue()[i].visit(o));
46
- }
47
- if (o.leaveArray) {
48
- return o.leaveArray(res, this);
49
- }
50
- return res;
51
- }
52
- }
53
- exports.PArray = PArray;
1
+ export {};
2
+ // import {Expr} from './Expr.js';
3
+ // import {IWalker, IWalkerControl} from '../IWalker.js';
4
+ // import {Context} from './Context.js';
5
+ // import {expr} from "../functions.js";
6
+ //
7
+ // export class PArray extends Expr<Expr[]> {
8
+ //
9
+ //
10
+ // getByKey(key: string): Expr {
11
+ // for (const item of this.getValue()) {
12
+ // const found = item.getByKey(key);
13
+ // if (found) {
14
+ // return found;
15
+ // }
16
+ // }
17
+ // return null;
18
+ // }
19
+ //
20
+ // keys() {
21
+ // const keys: string[] = [];
22
+ // for (const item of this.getValue()) {
23
+ // const subkey = item.keys();
24
+ // subkey.forEach((x: string) => {
25
+ // keys.push(x);
26
+ // });
27
+ // }
28
+ // return keys;
29
+ // }
30
+ //
31
+ // parse(arr: any[], parent?: Expr, rightSide?: Expr, ctxt?: Context) {
32
+ // super.enviroment(parent, ctxt);
33
+ // this.value = [];
34
+ // for (let i = 0; i < arr.length; i++) {
35
+ // const ctxt = new Context(i);
36
+ // this.value[i] = expr(arr[i], this, rightSide, ctxt);
37
+ // }
38
+ // return this;
39
+ // }
40
+ //
41
+ // visit(o: IWalker): any {
42
+ // const state: IWalkerControl = {};
43
+ // let res: any[] = [];
44
+ // if (o.visitArray) {
45
+ // res = o.visitArray(this, state);
46
+ // }
47
+ //
48
+ // if (state && state.abort) {
49
+ // return res;
50
+ // }
51
+ //
52
+ // for (let i = 0; i < this.getValue().length; i++) {
53
+ // res.push(this.getValue()[i].visit(o));
54
+ // }
55
+ //
56
+ // if (o.leaveArray) {
57
+ // return o.leaveArray(res, this);
58
+ // }
59
+ // return res;
60
+ //
61
+ //
62
+ // }
63
+ //
64
+ //
65
+ // }
66
+ //
67
+ //
54
68
  //# sourceMappingURL=PArray.js.map
package/ast/PArray.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"PArray.js","sourceRoot":"","sources":["../../../src/ast/PArray.ts"],"names":[],"mappings":";;;AAAA,iCAA4B;AAG5B,uCAAkC;AAElC,MAAa,MAAO,SAAQ,WAAiB;IAG3C,QAAQ,CAAC,GAAW;QAClB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;YACnC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI;QACF,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAC3B,MAAM,CAAC,OAAO,CAAC,CAAC,CAAS,EAAE,EAAE;gBAC3B,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACf,CAAC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,UAAU,CAAC,CAAkB,EAAE,EAAS,EAAE,CAAa,EAAE,IAAc;QACrE,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACnC,MAAM,IAAI,GAAG,IAAI,iBAAO,EAAE,CAAC;YAC3B,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;YACb,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,CAAe;QACnB,MAAM,KAAK,GAAwB,EAAE,CAAC;QACtC,IAAI,GAAG,GAAU,EAAE,CAAC;QACpB,IAAG,CAAC,CAAC,UAAU,EAAC,CAAC;YACf,GAAG,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAClC,CAAC;QAED,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YACzB,OAAO,GAAG,CAAC;QACb,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,CAAC;QAED,IAAG,CAAC,CAAC,UAAU,EAAC,CAAC;YACf,OAAO,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,GAAG,CAAC;IAGb,CAAC;CAGF;AA1DD,wBA0DC"}
1
+ {"version":3,"file":"PArray.js","sourceRoot":"","sources":["../../../src/ast/PArray.ts"],"names":[],"mappings":";AAAA,kCAAkC;AAClC,yDAAyD;AACzD,wCAAwC;AACxC,wCAAwC;AACxC,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,EAAE;AACF,kCAAkC;AAClC,4CAA4C;AAC5C,0CAA0C;AAC1C,qBAAqB;AACrB,wBAAwB;AACxB,UAAU;AACV,QAAQ;AACR,mBAAmB;AACnB,MAAM;AACN,EAAE;AACF,aAAa;AACb,iCAAiC;AACjC,4CAA4C;AAC5C,oCAAoC;AACpC,wCAAwC;AACxC,wBAAwB;AACxB,YAAY;AACZ,QAAQ;AACR,mBAAmB;AACnB,MAAM;AACN,EAAE;AACF,yEAAyE;AACzE,sCAAsC;AACtC,uBAAuB;AACvB,6CAA6C;AAC7C,qCAAqC;AACrC,6DAA6D;AAC7D,QAAQ;AACR,mBAAmB;AACnB,MAAM;AACN,EAAE;AACF,6BAA6B;AAC7B,wCAAwC;AACxC,2BAA2B;AAC3B,0BAA0B;AAC1B,yCAAyC;AACzC,QAAQ;AACR,EAAE;AACF,kCAAkC;AAClC,oBAAoB;AACpB,QAAQ;AACR,EAAE;AACF,yDAAyD;AACzD,+CAA+C;AAC/C,QAAQ;AACR,EAAE;AACF,0BAA0B;AAC1B,wCAAwC;AACxC,QAAQ;AACR,kBAAkB;AAClB,EAAE;AACF,EAAE;AACF,MAAM;AACN,EAAE;AACF,EAAE;AACF,IAAI;AACJ,EAAE;AACF,EAAE"}
package/ast/PObject.d.ts CHANGED
@@ -1,17 +1 @@
1
- import { PAst } from './PAst';
2
- import { IMangoWalker } from '../IMangoWalker';
3
- import { Context } from './Context';
4
- import { MangoExpression } from '../MangoExpression';
5
- export declare class PObject extends PAst<{
6
- [k: string]: PAst<any>;
7
- }> {
8
- _keys: string[];
9
- getByKey(key: string): PAst<any>;
10
- keys(): string[];
11
- visit(o: IMangoWalker): any;
12
- getValues(): PAst<any>[];
13
- interprete(e: MangoExpression, value: {
14
- [k: string]: any;
15
- }, p?: PAst<any>, ctxt?: Context): void;
16
- toJson(): any;
17
- }
1
+ export {};
package/ast/PObject.js CHANGED
@@ -1,109 +1,131 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PObject = void 0;
4
- const lodash_1 = require("lodash");
5
- const PAst_1 = require("./PAst");
6
- const ValueRef_1 = require("./ValueRef");
7
- const Unset_1 = require("./Unset");
8
- const Context_1 = require("./Context");
9
- const Constants_1 = require("../Constants");
10
- class PObject extends PAst_1.PAst {
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];
21
- }
22
- return null;
23
- // throw new NotYetImplementedError();
24
- }
25
- keys() {
26
- const prefix = (this.getKeyString() && (0, lodash_1.isString)(this.getKeyString()) ? this.getKeyString() + '.' : '');
27
- const keys = [];
28
- for (const k of this._keys) {
29
- // @ts-ignore
30
- const subkey = this.getValues()[k].keys();
31
- subkey.forEach((x) => {
32
- keys.push(prefix + x);
33
- });
34
- }
35
- return keys;
36
- }
37
- visit(o) {
38
- const state = {};
39
- let r = {};
40
- if (o.visitObject) {
41
- r = o.visitObject(this, state);
42
- }
43
- if (state && state.abort) {
44
- return r;
45
- }
46
- for (const k of this._keys) {
47
- r[k] = this.value[k].visit(o);
48
- }
49
- if (o.leaveObject) {
50
- return o.leaveObject(r, this);
51
- }
52
- return r;
53
- }
54
- getValues() {
55
- return (0, lodash_1.values)(this.value);
56
- }
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);
64
- for (const k of this._keys) {
65
- const ctxt = new Context_1.Context(k);
66
- const v = value[k];
67
- if (!autoEqualSupport) {
68
- if (numberProjectSupport && (0, lodash_1.isNumber)(v) && (v === 1 || v === 0)) {
69
- if (v === 1) {
70
- this.value[k] = this.getRootExpression().create(ValueRef_1.ValueRef, k, this, ctxt);
71
- }
72
- else {
73
- this.value[k] = this.getRootExpression().create(Unset_1.Unset, k, this, ctxt);
74
- }
75
- }
76
- else {
77
- this.value[k] = this.getRootExpression().interprete(v, this, ctxt);
78
- }
79
- }
80
- else {
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);
84
- }
85
- else {
86
- const eq = this.getRootExpression().getOperator('$eq', v, value, this, ctxt);
87
- this.value[k] = eq;
88
- // eq.validate(v);
89
- }
90
- }
91
- }
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
- }
107
- }
108
- exports.PObject = PObject;
1
+ export {};
2
+ // import {isArray, isBoolean, isDate, isNull, isNumber, isObjectLike, isString, values, keys} from '@allgemein/base';
3
+ // import {Expr} from './Expr.js';
4
+ // import {ValueRef} from './ValueRef';
5
+ // import {Unset} from './Unset.js';
6
+ // import {IWalker, IWalkerControl} from '../IWalker.js';
7
+ // import {Context} from './Context.js';
8
+ // import {AUTO_EQUAL_CONV_SUPPORT, NUMBER_PROJECT_SUPPORT} from '../Constants.js';
9
+ // import {Components} from "../operators/Components.js";
10
+ // import {create, expr} from "../functions.js";
11
+ //
12
+ // export class PObject extends Expr<{ [k: string]: Expr }> {
13
+ // //
14
+ // // children: { [k: string]: PAst } = {};
15
+ //
16
+ // _keys: string[];
17
+ //
18
+ //
19
+ // // constructor(e: MangoExpression, kv: any, p?: PAst, ctxt?: Context) {
20
+ // // super(e, p, ctxt);
21
+ // // this.interprete(kv);
22
+ // // }
23
+ //
24
+ // // create(){
25
+ // //
26
+ // // }
27
+ //
28
+ // getByKey(key: string): Expr {
29
+ // if (this.getValue()[key]) {
30
+ // return this.getValue()[key];
31
+ // }
32
+ // return null;
33
+ // // throw new NotYetImplementedError();
34
+ // }
35
+ //
36
+ // keys() {
37
+ // const prefix = (this.getKeyString() && isString(this.getKeyString()) ? this.getKeyString() + '.' : '');
38
+ // const keys: string[] = [];
39
+ // for (const k of this._keys) {
40
+ // // @ts-ignore
41
+ // const subkey = this.getValues()[k].keys();
42
+ // subkey.forEach((x: string) => {
43
+ // keys.push(prefix + x);
44
+ // });
45
+ // }
46
+ // return keys;
47
+ // }
48
+ //
49
+ //
50
+ // visit(o: IWalker): any {
51
+ // const state: IWalkerControl = {};
52
+ // let r: any = {};
53
+ //
54
+ // if (o.visitObject) {
55
+ // r = o.visitObject(this, state);
56
+ // }
57
+ //
58
+ // if (state && state.abort) {
59
+ // return r;
60
+ // }
61
+ //
62
+ // for (const k of this._keys) {
63
+ // r[k] = this.value[k].visit(o);
64
+ // }
65
+ //
66
+ // if (o.leaveObject) {
67
+ // return o.leaveObject(r, this);
68
+ // }
69
+ // return r;
70
+ // }
71
+ //
72
+ //
73
+ // getValues() {
74
+ // return values(this.value);
75
+ // }
76
+ //
77
+ //
78
+ // parse(value: { [k: string]: any }, p?: Expr, rightSide?: Expr, ctxt?: Context) {
79
+ // // do not pass and interprete value
80
+ // this.enviroment(p, ctxt);
81
+ // this.value = {};
82
+ // this._keys = keys(value);
83
+ //
84
+ // const autoEqualSupport = !!this.getContext().get(AUTO_EQUAL_CONV_SUPPORT);
85
+ // const numberProjectSupport = !!this.getContext().get(NUMBER_PROJECT_SUPPORT);
86
+ //
87
+ // for (const k of this._keys) {
88
+ // const ctxt = new Context(k);
89
+ // const v = value[k];
90
+ // if (!autoEqualSupport) {
91
+ // if (numberProjectSupport && isNumber(v) && (v === 1 || v === 0)) {
92
+ // if (v === 1) {
93
+ // this.value[k] = create(ValueRef).parse(k, this, null, ctxt);
94
+ // } else {
95
+ // this.value[k] = create(Unset).parse(k, this, null, ctxt);
96
+ // }
97
+ // } else {
98
+ // this.value[k] = expr(v, this, null, ctxt);
99
+ // }
100
+ // } else {
101
+ // const isPrimative = isDate(v) || isNumber(v) || isString(v) || isBoolean() || isNull(v);
102
+ // if (!isPrimative && (isObjectLike(v) || isArray(v))) {
103
+ // this.value[k] = expr(v, this, null, ctxt);
104
+ // } else {
105
+ // const eq = Components.create('$eq').parse(value, this, null, ctxt);
106
+ // this.value[k] = eq;
107
+ // // eq.validate(v);
108
+ // }
109
+ // }
110
+ // }
111
+ // return this;
112
+ // }
113
+ //
114
+ //
115
+ // toJson(): any {
116
+ // let obj = {};
117
+ // for (const k of this._keys) {
118
+ // if (this.value[k] instanceof Expr) {
119
+ // // @ts-ignore
120
+ // obj[k] = this.value[k].toJson();
121
+ // } else {
122
+ // // @ts-ignore
123
+ // obj[k] = this.value[k];
124
+ // }
125
+ // }
126
+ // return obj;
127
+ // }
128
+ //
129
+ //
130
+ // }
109
131
  //# sourceMappingURL=PObject.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PObject.js","sourceRoot":"","sources":["../../../src/ast/PObject.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PObject.js","sourceRoot":"","sources":["../../../src/ast/PObject.ts"],"names":[],"mappings":";AAAA,sHAAsH;AACtH,kCAAkC;AAClC,uCAAuC;AACvC,oCAAoC;AACpC,yDAAyD;AACzD,wCAAwC;AACxC,mFAAmF;AACnF,yDAAyD;AACzD,gDAAgD;AAChD,EAAE;AACF,6DAA6D;AAC7D,OAAO;AACP,6CAA6C;AAC7C,EAAE;AACF,qBAAqB;AACrB,EAAE;AACF,EAAE;AACF,4EAA4E;AAC5E,4BAA4B;AAC5B,8BAA8B;AAC9B,SAAS;AACT,EAAE;AACF,iBAAiB;AACjB,OAAO;AACP,SAAS;AACT,EAAE;AACF,kCAAkC;AAClC,kCAAkC;AAClC,qCAAqC;AACrC,QAAQ;AACR,mBAAmB;AACnB,6CAA6C;AAC7C,MAAM;AACN,EAAE;AACF,aAAa;AACb,8GAA8G;AAC9G,iCAAiC;AACjC,oCAAoC;AACpC,sBAAsB;AACtB,mDAAmD;AACnD,wCAAwC;AACxC,iCAAiC;AACjC,YAAY;AACZ,QAAQ;AACR,mBAAmB;AACnB,MAAM;AACN,EAAE;AACF,EAAE;AACF,6BAA6B;AAC7B,wCAAwC;AACxC,uBAAuB;AACvB,EAAE;AACF,2BAA2B;AAC3B,wCAAwC;AACxC,QAAQ;AACR,EAAE;AACF,kCAAkC;AAClC,kBAAkB;AAClB,QAAQ;AACR,EAAE;AACF,oCAAoC;AACpC,uCAAuC;AACvC,QAAQ;AACR,EAAE;AACF,2BAA2B;AAC3B,uCAAuC;AACvC,QAAQ;AACR,gBAAgB;AAChB,MAAM;AACN,EAAE;AACF,EAAE;AACF,kBAAkB;AAClB,iCAAiC;AACjC,MAAM;AACN,EAAE;AACF,EAAE;AACF,qFAAqF;AACrF,0CAA0C;AAC1C,gCAAgC;AAChC,uBAAuB;AACvB,gCAAgC;AAChC,EAAE;AACF,iFAAiF;AACjF,oFAAoF;AACpF,EAAE;AACF,oCAAoC;AACpC,qCAAqC;AACrC,4BAA4B;AAC5B,iCAAiC;AACjC,6EAA6E;AAC7E,2BAA2B;AAC3B,2EAA2E;AAC3E,qBAAqB;AACrB,wEAAwE;AACxE,cAAc;AACd,mBAAmB;AACnB,uDAAuD;AACvD,YAAY;AACZ,iBAAiB;AACjB,mGAAmG;AACnG,iEAAiE;AACjE,uDAAuD;AACvD,mBAAmB;AACnB,gFAAgF;AAChF,gCAAgC;AAChC,+BAA+B;AAC/B,YAAY;AACZ,UAAU;AACV,QAAQ;AACR,mBAAmB;AACnB,MAAM;AACN,EAAE;AACF,EAAE;AACF,oBAAoB;AACpB,oBAAoB;AACpB,oCAAoC;AACpC,6CAA6C;AAC7C,wBAAwB;AACxB,2CAA2C;AAC3C,iBAAiB;AACjB,wBAAwB;AACxB,kCAAkC;AAClC,UAAU;AACV,QAAQ;AACR,kBAAkB;AAClB,MAAM;AACN,EAAE;AACF,EAAE;AACF,IAAI"}
@@ -0,0 +1,5 @@
1
+ import { AbstractValue } from './AbstractValue.js';
2
+ export declare class RefDesc extends AbstractValue {
3
+ toJson(): any;
4
+ }
5
+ export declare function Ref(k: any): RefDesc;
package/ast/RefDesc.js ADDED
@@ -0,0 +1,12 @@
1
+ import { AbstractValue } from './AbstractValue.js';
2
+ export class RefDesc extends AbstractValue {
3
+ toJson() {
4
+ return '$' + this.value;
5
+ }
6
+ }
7
+ export function Ref(k) {
8
+ const desc = new RefDesc();
9
+ desc.setValue(k);
10
+ return desc;
11
+ }
12
+ //# sourceMappingURL=RefDesc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RefDesc.js","sourceRoot":"","sources":["../../../src/ast/RefDesc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AAEjD,MAAM,OAAO,OAAQ,SAAQ,aAAa;IACxC,MAAM;QACJ,OAAO,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC;IAC1B,CAAC;CAEF;AAGD,MAAM,UAAU,GAAG,CAAC,CAAM;IACxB,MAAM,IAAI,GAAG,IAAI,OAAO,EAAE,CAAC;IAC3B,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACjB,OAAO,IAAI,CAAC;AACd,CAAC"}
package/ast/Selector.d.ts CHANGED
@@ -1,6 +1,20 @@
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;
1
+ import { Expr } from './Expr.js';
2
+ import { IExpr } from './IExpr.js';
3
+ import { IStackEntry } from './IStackEntry.js';
4
+ export declare class Selector extends Expr {
5
+ /**
6
+ * Parse from Selector perspective:
7
+ *
8
+ * Scenarios:
9
+ *
10
+ * - {key: value} - key should be key and we must enqueue partial = value
11
+ * - {key: {$op: value}} - same as above partial = {$op: value}
12
+ * - {$op: [key, value]} - TODO how to handle this one
13
+ *
14
+ * @param entry
15
+ * @param partial
16
+ * @param parent
17
+ */
18
+ parse(entry: IStackEntry, partial: any, key: string | number): IExpr;
19
+ setKey(value: string | number): void;
6
20
  }