@allgemein/mango-expressions 1.3.1 → 1.4.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.
- package/AExpr.d.ts +11 -0
- package/AExpr.js +37 -0
- package/AExpr.js.map +1 -0
- package/Constants.d.ts +3 -0
- package/Constants.js +2 -5
- package/Constants.js.map +1 -1
- package/IWalker.d.ts +19 -0
- package/IWalker.js +2 -0
- package/IWalker.js.map +1 -0
- package/README.md +69 -1
- package/_Expr.d.ts +1 -0
- package/_Expr.js +52 -0
- package/_Expr.js.map +1 -0
- package/ast/AbstractValue.d.ts +7 -0
- package/ast/AbstractValue.js +27 -0
- package/ast/AbstractValue.js.map +1 -0
- package/ast/Bindings.d.ts +1 -2
- package/ast/Bindings.js +1 -5
- package/ast/Bindings.js.map +1 -1
- package/ast/Constan.d.ts +11 -0
- package/ast/Constan.js +2 -0
- package/ast/Constan.js.map +1 -0
- package/ast/Context.js +8 -12
- package/ast/Context.js.map +1 -1
- package/ast/Expr.d.ts +23 -0
- package/ast/Expr.js +90 -0
- package/ast/Expr.js.map +1 -0
- package/ast/IExpr.d.ts +16 -0
- package/ast/IExpr.js +2 -0
- package/ast/IExpr.js.map +1 -0
- package/ast/IParser.d.ts +14 -0
- package/ast/IParser.js +2 -0
- package/ast/IParser.js.map +1 -0
- package/ast/IStackEntry.d.ts +13 -0
- package/ast/IStackEntry.js +2 -0
- package/ast/IStackEntry.js.map +1 -0
- package/ast/JsonParser.d.ts +25 -0
- package/ast/JsonParser.js +60 -0
- package/ast/JsonParser.js.map +1 -0
- package/ast/KeyDesc.d.ts +2 -4
- package/ast/KeyDesc.js +4 -9
- package/ast/KeyDesc.js.map +1 -1
- package/ast/MultiArgs.js +1 -5
- package/ast/MultiArgs.js.map +1 -1
- package/ast/PArray.d.ts +1 -10
- package/ast/PArray.js +67 -53
- package/ast/PArray.js.map +1 -1
- package/ast/PObject.d.ts +1 -17
- package/ast/PObject.js +130 -108
- package/ast/PObject.js.map +1 -1
- package/ast/RefDesc.d.ts +5 -0
- package/ast/RefDesc.js +12 -0
- package/ast/RefDesc.js.map +1 -0
- package/ast/Selector.d.ts +19 -5
- package/ast/Selector.js +31 -9
- package/ast/Selector.js.map +1 -1
- package/ast/StackEntry.d.ts +24 -0
- package/ast/StackEntry.js +121 -0
- package/ast/StackEntry.js.map +1 -0
- package/ast/StringParser.d.ts +16 -0
- package/ast/StringParser.js +303 -0
- package/ast/StringParser.js.map +1 -0
- package/ast/Unset.d.ts +2 -2
- package/ast/Unset.js +2 -6
- package/ast/Unset.js.map +1 -1
- package/ast/ValueDesc.d.ts +4 -0
- package/ast/ValueDesc.js +9 -0
- package/ast/ValueDesc.js.map +1 -0
- package/ast/functions.d.ts +1 -0
- package/ast/functions.js +8 -0
- package/ast/functions.js.map +1 -0
- package/browser.d.ts +52 -55
- package/browser.js +53 -116
- package/browser.js.map +1 -1
- package/errors/InvalidValueError.d.ts +4 -0
- package/errors/InvalidValueError.js +6 -0
- package/errors/InvalidValueError.js.map +1 -0
- package/errors/NotYetImplementedError.d.ts +3 -0
- package/errors/NotYetImplementedError.js +6 -0
- package/errors/NotYetImplementedError.js.map +1 -0
- package/errors/UnsupportedInputError.d.ts +3 -0
- package/errors/UnsupportedInputError.js +6 -0
- package/errors/UnsupportedInputError.js.map +1 -0
- package/functions.d.ts +9 -0
- package/functions.js +107 -0
- package/functions.js.map +1 -0
- package/index.d.ts +1 -1
- package/index.js +5 -60
- package/index.js.map +1 -1
- package/operators/AbstractCompare.d.ts +23 -0
- package/operators/AbstractCompare.js +100 -0
- package/operators/AbstractCompare.js.map +1 -0
- package/operators/AbstractFunction.d.ts +6 -0
- package/operators/AbstractFunction.js +10 -0
- package/operators/AbstractFunction.js.map +1 -0
- package/operators/AbstractJunctor.d.ts +13 -0
- package/operators/AbstractJunctor.js +31 -0
- package/operators/AbstractJunctor.js.map +1 -0
- package/operators/AbstractJunctorArray.d.ts +18 -0
- package/operators/AbstractJunctorArray.js +63 -0
- package/operators/AbstractJunctorArray.js.map +1 -0
- package/operators/AbstractOperator.d.ts +6 -6
- package/operators/AbstractOperator.js +12 -31
- package/operators/AbstractOperator.js.map +1 -1
- package/operators/Components.d.ts +30 -0
- package/operators/Components.js +140 -0
- package/operators/Components.js.map +1 -0
- package/operators/arithmetic/Avg.d.ts +2 -2
- package/operators/arithmetic/Avg.js +2 -6
- package/operators/arithmetic/Avg.js.map +1 -1
- package/operators/arithmetic/Count.d.ts +2 -2
- package/operators/arithmetic/Count.js +2 -6
- package/operators/arithmetic/Count.js.map +1 -1
- package/operators/arithmetic/Max.d.ts +2 -2
- package/operators/arithmetic/Max.js +2 -6
- package/operators/arithmetic/Max.js.map +1 -1
- package/operators/arithmetic/Min.d.ts +2 -2
- package/operators/arithmetic/Min.js +2 -6
- package/operators/arithmetic/Min.js.map +1 -1
- package/operators/arithmetic/Multiply.d.ts +2 -2
- package/operators/arithmetic/Multiply.js +2 -6
- package/operators/arithmetic/Multiply.js.map +1 -1
- package/operators/arithmetic/Sum.d.ts +2 -2
- package/operators/arithmetic/Sum.js +2 -6
- package/operators/arithmetic/Sum.js.map +1 -1
- package/operators/array/First.d.ts +2 -4
- package/operators/array/First.js +9 -15
- package/operators/array/First.js.map +1 -1
- package/operators/array/Last.d.ts +2 -4
- package/operators/array/Last.js +9 -15
- package/operators/array/Last.js.map +1 -1
- package/operators/array/Map.d.ts +5 -6
- package/operators/array/Map.js +14 -20
- package/operators/array/Map.js.map +1 -1
- package/operators/compare/EqualDesc.d.ts +6 -7
- package/operators/compare/EqualDesc.js +13 -11
- package/operators/compare/EqualDesc.js.map +1 -1
- package/operators/compare/EqualDescLookup.d.ts +2 -2
- package/operators/compare/EqualDescLookup.js +24 -31
- package/operators/compare/EqualDescLookup.js.map +1 -1
- package/operators/compare/GreaterThen.d.ts +3 -4
- package/operators/compare/GreaterThen.js +3 -7
- package/operators/compare/GreaterThen.js.map +1 -1
- package/operators/compare/GreaterThenEqual.d.ts +3 -4
- package/operators/compare/GreaterThenEqual.js +3 -7
- package/operators/compare/GreaterThenEqual.js.map +1 -1
- package/operators/compare/In.d.ts +3 -4
- package/operators/compare/In.js +3 -7
- package/operators/compare/In.js.map +1 -1
- package/operators/compare/IsNotNull.d.ts +3 -3
- package/operators/compare/IsNotNull.js +3 -7
- package/operators/compare/IsNotNull.js.map +1 -1
- package/operators/compare/IsNull.d.ts +3 -3
- package/operators/compare/IsNull.js +3 -7
- package/operators/compare/IsNull.js.map +1 -1
- package/operators/compare/LessThen.d.ts +3 -3
- package/operators/compare/LessThen.js +3 -6
- package/operators/compare/LessThen.js.map +1 -1
- package/operators/compare/LessThenEqual.d.ts +3 -4
- package/operators/compare/LessThenEqual.js +3 -7
- package/operators/compare/LessThenEqual.js.map +1 -1
- package/operators/compare/Like.d.ts +3 -4
- package/operators/compare/Like.js +3 -7
- package/operators/compare/Like.js.map +1 -1
- package/operators/compare/NotEqual.d.ts +3 -4
- package/operators/compare/NotEqual.js +3 -7
- package/operators/compare/NotEqual.js.map +1 -1
- package/operators/compare/NotIn.d.ts +3 -4
- package/operators/compare/NotIn.js +3 -7
- package/operators/compare/NotIn.js.map +1 -1
- package/operators/compare/Regex.d.ts +2 -6
- package/operators/compare/Regex.js +28 -33
- package/operators/compare/Regex.js.map +1 -1
- package/operators/date/Date.d.ts +2 -2
- package/operators/date/Date.js +3 -6
- package/operators/date/Date.js.map +1 -1
- package/operators/date/DateToString.d.ts +4 -5
- package/operators/date/DateToString.js +15 -20
- package/operators/date/DateToString.js.map +1 -1
- package/operators/date/Day.d.ts +2 -2
- package/operators/date/Day.js +2 -6
- package/operators/date/Day.js.map +1 -1
- package/operators/date/Month.d.ts +2 -2
- package/operators/date/Month.js +2 -6
- package/operators/date/Month.js.map +1 -1
- package/operators/date/Year.d.ts +2 -2
- package/operators/date/Year.js +2 -6
- package/operators/date/Year.js.map +1 -1
- package/operators/logic/AndDesc.d.ts +5 -7
- package/operators/logic/AndDesc.js +16 -21
- package/operators/logic/AndDesc.js.map +1 -1
- package/operators/logic/AndDescLookup.d.ts +2 -2
- package/operators/logic/AndDescLookup.js +1 -5
- package/operators/logic/AndDescLookup.js.map +1 -1
- package/operators/logic/NotDesc.d.ts +8 -0
- package/operators/logic/NotDesc.js +21 -0
- package/operators/logic/NotDesc.js.map +1 -0
- package/operators/logic/OrDesc.d.ts +5 -7
- package/operators/logic/OrDesc.js +5 -21
- package/operators/logic/OrDesc.js.map +1 -1
- package/operators/stage/AbstractSection.d.ts +7 -0
- package/operators/stage/AbstractSection.js +11 -0
- package/operators/stage/AbstractSection.js.map +1 -0
- package/operators/stage/Group.d.ts +4 -10
- package/operators/stage/Group.js +33 -39
- package/operators/stage/Group.js.map +1 -1
- package/operators/stage/Limit.d.ts +2 -2
- package/operators/stage/Limit.js +2 -6
- package/operators/stage/Limit.js.map +1 -1
- package/operators/stage/Match.d.ts +2 -8
- package/operators/stage/Match.js +2 -20
- package/operators/stage/Match.js.map +1 -1
- package/operators/stage/Project.d.ts +2 -8
- package/operators/stage/Project.js +17 -21
- package/operators/stage/Project.js.map +1 -1
- package/operators/stage/Query..d.ts +1 -0
- package/operators/stage/Query..js +3 -0
- package/operators/stage/Query..js.map +1 -0
- package/operators/stage/Skip.d.ts +2 -6
- package/operators/stage/Skip.js +6 -11
- package/operators/stage/Skip.js.map +1 -1
- package/operators/stage/Sort.d.ts +2 -6
- package/operators/stage/Sort.js +6 -11
- package/operators/stage/Sort.js.map +1 -1
- package/operators/string/Substr.d.ts +2 -4
- package/operators/string/Substr.js +19 -22
- package/operators/string/Substr.js.map +1 -1
- package/operators/string/ToFloat.d.ts +2 -3
- package/operators/string/ToFloat.js +9 -15
- package/operators/string/ToFloat.js.map +1 -1
- package/operators/string/ToInt.d.ts +2 -3
- package/operators/string/ToInt.js +9 -15
- package/operators/string/ToInt.js.map +1 -1
- package/operators/string/ToLower.d.ts +2 -3
- package/operators/string/ToLower.js +9 -15
- package/operators/string/ToLower.js.map +1 -1
- package/operators/string/ToUpper.d.ts +2 -4
- package/operators/string/ToUpper.js +9 -15
- package/operators/string/ToUpper.js.map +1 -1
- package/package.json +2 -1
- package/walker/lookup/ILookupFn.d.ts +2 -2
- package/walker/lookup/ILookupFn.js +1 -2
- package/walker/lookup/LookupWalker.d.ts +11 -11
- package/walker/lookup/LookupWalker.js +19 -23
- package/walker/lookup/LookupWalker.js.map +1 -1
- package/IMangoWalker.d.ts +0 -19
- package/IMangoWalker.js +0 -3
- package/IMangoWalker.js.map +0 -1
- package/MangoExpression.d.ts +0 -15
- package/MangoExpression.js +0 -88
- package/MangoExpression.js.map +0 -1
- package/ast/PAst.d.ts +0 -42
- package/ast/PAst.js +0 -158
- package/ast/PAst.js.map +0 -1
- package/ast/PValue.d.ts +0 -10
- package/ast/PValue.js +0 -22
- package/ast/PValue.js.map +0 -1
- package/ast/Value.d.ts +0 -3
- package/ast/Value.js +0 -8
- package/ast/Value.js.map +0 -1
- package/ast/ValueRef.d.ts +0 -4
- package/ast/ValueRef.js +0 -11
- package/ast/ValueRef.js.map +0 -1
- package/operators/Operators.d.ts +0 -35
- package/operators/Operators.js +0 -149
- package/operators/Operators.js.map +0 -1
- package/operators/compare/AbstractCompare.d.ts +0 -5
- package/operators/compare/AbstractCompare.js +0 -14
- package/operators/compare/AbstractCompare.js.map +0 -1
- package/operators/logic/AbstractLogic.d.ts +0 -3
- package/operators/logic/AbstractLogic.js +0 -8
- package/operators/logic/AbstractLogic.js.map +0 -1
- package/operators/logic/Not.d.ts +0 -8
- package/operators/logic/Not.js +0 -22
- 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,CAAA;QAMxB,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,IAAI,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAC9D,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,CAAA;IACd,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,CAAA;QACjB,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
package/ast/KeyDesc.js
CHANGED
|
@@ -1,18 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
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
|
|
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;
|
package/ast/KeyDesc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeyDesc.js","sourceRoot":"","sources":["../../../src/ast/KeyDesc.ts"],"names":[],"mappings":"
|
|
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
|
-
|
|
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
|
package/ast/MultiArgs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiArgs.js","sourceRoot":"","sources":["../../../src/ast/MultiArgs.ts"],"names":[],"mappings":"
|
|
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
|
-
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
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":"
|
|
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
|
-
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
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
|
package/ast/PObject.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PObject.js","sourceRoot":"","sources":["../../../src/ast/PObject.ts"],"names":[],"mappings":"
|
|
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"}
|
package/ast/RefDesc.d.ts
ADDED
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 {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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
|
}
|