@loancrate/json-selector 2.1.0 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,7 +1,10 @@
1
1
  # LoanCrate JSON Selectors
2
2
 
3
3
  LoanCrate JSON Selectors are based on a subset of [JMESPath](https://jmespath.org)
4
- with a shorthand/extension for selecting an object from an array based on ID.
4
+ with the following additions:
5
+
6
+ - A shorthand/extension for selecting an object from an array based on ID.
7
+ - A root-node expression, as added in the [JMESPath Community Edition](https://jmespath.site/main/#spec-root-node).
5
8
 
6
9
  Currently, the subset includes everything except [functions](https://jmespath.org/specification.html#functions-expressions),
7
10
  object projections ([`*` wildcard](https://jmespath.org/specification.html#wildcard-expressions) not within brackets),
@@ -15,9 +18,9 @@ of the desired object from an array of objects.
15
18
  Formally, `x['y']` would be equivalent to `x[?id == 'y'] | [0]` in JMESPath.
16
19
  This should be unambiguous relative to the existing grammar and semantics.
17
20
 
18
- In addition to the extension above, this library offers the following features compared to [jmespath.js](https://github.com/jmespath/jmespath.js):
21
+ In addition to the extensions above, this library offers the following features compared to [jmespath.js](https://github.com/jmespath/jmespath.js):
19
22
 
20
- - Written using Typescript and [PEG.js](https://pegjs.org/) for clarity and correctness
23
+ - Written using TypeScript with a hand-written Pratt parser
21
24
  - Type definitions for the abstract syntax tree (AST) produced by the parser
22
25
  - Typed visitor pattern for accessing AST nodes
23
26
  - Formatting of an AST back into an expression string
@@ -76,31 +79,51 @@ and the [binding power
76
79
  table](https://github.com/jmespath/jmespath.js/blob/master/jmespath.js#L474-L501)
77
80
  from the source, we can reverse-engineer the operator precedence of JMESPath.
78
81
 
79
- Essentially, the expression grammar is structured as a left-hand side (LHS)
80
- expression followed by zero or more right-hand side (RHS) expressions (which are
81
- often projections on the result of the LHS). RHS expressions are consumed by the
82
- parser and projected onto the LHS as long as they have the same or higher
83
- binding power as the LHS. RHS expressions with lower binding power are projected
84
- onto the result of the overall expression to the left, as opposed to the nearest
85
- subexpression. For example, since dot (40) has a higher binding power than left
86
- bracket (55), `a.b.c['id'].d.e` is parsed and evaluated like
87
- `((a.b.c)['id']).d.e`. Binding power and precedence can be summarized as
88
- follows, in increasing order:
82
+ The expression grammar has three categories of operators:
83
+
84
+ **Logical and comparison operators** follow traditional precedence rules (from
85
+ lowest to highest):
89
86
 
90
87
  - pipe: `|`
91
88
  - or: `||`
92
89
  - and: `&&`
93
90
  - compare: `<=`, `>=`, `<`, `>`, `==`, `!=`
94
- - not: `!`
95
- - flatten projection: `[]`
96
- - filter projection: `[?`
97
- - star/slice projection: `[*`, `[<number?>:`
98
- - index/ID access: `[<number>`, `['`
99
- - member access: `.`
100
-
101
- However, as a [special
102
- case](https://github.com/jmespath/jmespath.js/blob/master/jmespath.js#L803-L805),
103
- member access can directly follow (act as RHS) for any projection.
91
+ - not: `!` (prefix)
92
+
93
+ Higher-precedence operators bind more tightly. For example, `a || b && c`
94
+ parses as `a || (b && c)`, and `a || b.c` parses as `a || (b.c)` because
95
+ access operators have higher precedence than `||`.
96
+
97
+ **Access operators** chain left-to-right as postfix operators:
98
+
99
+ - member access: `.field`
100
+ - index access: `[0]`, `[n:m]` (slices)
101
+ - ID access: `['id']` (shorthand for `[?id == 'id'] | [0]`)
102
+
103
+ For example, `a[0].b.c['id'].d.e` parses as `(((((a[0]).b).c)['id']).d).e` -
104
+ each operator applies to the complete expression on its left, building up the
105
+ chain step by step.
106
+
107
+ **Projection operators** create projections that map over collections:
108
+
109
+ - flatten: `[]` (flatten arrays)
110
+ - filter: `[?condition]` (filter by condition)
111
+ - star: `[*]` (map over array values)
112
+
113
+ Projections terminate before logical, comparison, and pipe operators, but
114
+ continue with access operators and can chain with other projections. For
115
+ example:
116
+
117
+ - `items[*].name` - projects over items, accessing name from each
118
+ - `items[*].tags[]` - projects over items, then flattens tags arrays
119
+ - `items[*] || []` - projection completes before the `||`, result is `(items[*]) || []`
120
+
121
+ **Note on chained flattens**: Multiple flattens compound to flatten deeper
122
+ levels. For example, on data `[[[1,2]], [[3,4]]]`:
123
+
124
+ - `[]` gives `[[1,2], [3,4]]` (one level)
125
+ - `[][]` gives `[1,2,3,4]` (two levels)
126
+ - `[*][]` gives `[[1,2], [3,4]]` (projects then flattens once - not the same as `[][]`)
104
127
 
105
128
  ## License
106
129
 
package/dist/access.d.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  import { JsonSelector } from "./ast";
2
2
  export interface UnboundAccessor {
3
3
  readonly selector: JsonSelector;
4
- isValidContext(context: unknown): boolean;
5
- get(context: unknown): unknown;
6
- set(context: unknown, value: unknown): void;
7
- delete(context: unknown): void;
4
+ isValidContext(context: unknown, rootContext?: unknown): boolean;
5
+ get(context: unknown, rootContext?: unknown): unknown;
6
+ set(value: unknown, context: unknown, rootContext?: unknown): void;
7
+ delete(context: unknown, rootContext?: unknown): void;
8
8
  }
9
9
  export declare function makeJsonSelectorAccessor(selector: JsonSelector): UnboundAccessor;
10
10
  export interface Accessor<T> {
@@ -15,7 +15,7 @@ export interface Accessor<T> {
15
15
  set(value: T): void;
16
16
  delete(): void;
17
17
  }
18
- export declare function bindJsonSelectorAccessor(unbound: UnboundAccessor, context: unknown): Accessor<unknown>;
19
- export declare function accessWithJsonSelector(selector: JsonSelector, context: unknown): Accessor<unknown>;
18
+ export declare function bindJsonSelectorAccessor(unbound: UnboundAccessor, context: unknown, rootContext?: unknown): Accessor<unknown>;
19
+ export declare function accessWithJsonSelector(selector: JsonSelector, context: unknown, rootContext?: unknown): Accessor<unknown>;
20
20
  export declare function invertedSlice(value: unknown[], start: number | undefined, end?: number, step?: number): unknown[];
21
21
  //# sourceMappingURL=access.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"access.d.ts","sourceRoot":"","sources":["../src/access.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAuBrC,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC;IAC1C,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC;IAC/B,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IAC5C,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;CAChC;AAgDD,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,YAAY,GACrB,eAAe,CAqVjB;AAED,MAAM,WAAW,QAAQ,CAAC,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,GAAG,IAAI,CAAC,CAAC;IACT,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IACpB,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,OAAO,GACf,QAAQ,CAAC,OAAO,CAAC,CAiBnB;AAED,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,OAAO,GACf,QAAQ,CAAC,OAAO,CAAC,CAEnB;AAiBD,wBAAgB,aAAa,CAC3B,KAAK,EAAE,OAAO,EAAE,EAChB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,GAAG,CAAC,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,EAAE,CA6BX"}
1
+ {"version":3,"file":"access.d.ts","sourceRoot":"","sources":["../src/access.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAuBrC,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IACjE,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IACtD,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACnE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CACvD;AAyDD,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,YAAY,GACrB,eAAe,CA0VjB;AAED,MAAM,WAAW,QAAQ,CAAC,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,GAAG,IAAI,CAAC,CAAC;IACT,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IACpB,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,OAAO,EAChB,WAAW,UAAU,GACpB,QAAQ,CAAC,OAAO,CAAC,CAiBnB;AAED,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,OAAO,EAChB,WAAW,UAAU,GACpB,QAAQ,CAAC,OAAO,CAAC,CAMnB;AAqBD,wBAAgB,aAAa,CAC3B,KAAK,EAAE,OAAO,EAAE,EAChB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,GAAG,CAAC,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,EAAE,CA6BX"}
package/dist/ast.d.ts CHANGED
@@ -3,6 +3,9 @@ export type JsonSelectorNodeType = JsonSelector["type"];
3
3
  export interface JsonSelectorCurrent {
4
4
  type: "current";
5
5
  }
6
+ export interface JsonSelectorRoot {
7
+ type: "root";
8
+ }
6
9
  export interface JsonSelectorLiteral {
7
10
  type: "literal";
8
11
  value: JsonValue;
@@ -73,5 +76,5 @@ export interface JsonSelectorPipe {
73
76
  lhs: JsonSelector;
74
77
  rhs: JsonSelector;
75
78
  }
76
- export type JsonSelector = JsonSelectorCurrent | JsonSelectorLiteral | JsonSelectorIdentifier | JsonSelectorFieldAccess | JsonSelectorIndexAccess | JsonSelectorIdAccess | JsonSelectorProject | JsonSelectorFilter | JsonSelectorSlice | JsonSelectorFlatten | JsonSelectorNot | JsonSelectorCompare | JsonSelectorAnd | JsonSelectorOr | JsonSelectorPipe;
79
+ export type JsonSelector = JsonSelectorCurrent | JsonSelectorRoot | JsonSelectorLiteral | JsonSelectorIdentifier | JsonSelectorFieldAccess | JsonSelectorIndexAccess | JsonSelectorIdAccess | JsonSelectorProject | JsonSelectorFilter | JsonSelectorSlice | JsonSelectorFlatten | JsonSelectorNot | JsonSelectorCompare | JsonSelectorAnd | JsonSelectorOr | JsonSelectorPipe;
77
80
  //# sourceMappingURL=ast.d.ts.map
package/dist/ast.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../src/ast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,MAAM,oBAAoB,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;AAExD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,YAAY,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,aAAa,CAAC;IACpB,UAAU,EAAE,YAAY,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,aAAa,CAAC;IACpB,UAAU,EAAE,YAAY,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,UAAU,CAAC;IACjB,UAAU,EAAE,YAAY,CAAC;IACzB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,EAAE,YAAY,CAAC;IACzB,UAAU,CAAC,EAAE,YAAY,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,EAAE,YAAY,CAAC;IACzB,SAAS,EAAE,YAAY,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,YAAY,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,EAAE,YAAY,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,KAAK,CAAC;IACZ,UAAU,EAAE,YAAY,CAAC;CAC1B;AAED,MAAM,MAAM,2BAA2B,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC;AAEhF,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,2BAA2B,CAAC;IACtC,GAAG,EAAE,YAAY,CAAC;IAClB,GAAG,EAAE,YAAY,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,KAAK,CAAC;IACZ,GAAG,EAAE,YAAY,CAAC;IAClB,GAAG,EAAE,YAAY,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,IAAI,CAAC;IACX,GAAG,EAAE,YAAY,CAAC;IAClB,GAAG,EAAE,YAAY,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,YAAY,CAAC;IAClB,GAAG,EAAE,YAAY,CAAC;CACnB;AAED,MAAM,MAAM,YAAY,GACpB,mBAAmB,GACnB,mBAAmB,GACnB,sBAAsB,GACtB,uBAAuB,GACvB,uBAAuB,GACvB,oBAAoB,GACpB,mBAAmB,GACnB,kBAAkB,GAClB,iBAAiB,GACjB,mBAAmB,GACnB,eAAe,GACf,mBAAmB,GACnB,eAAe,GACf,cAAc,GACd,gBAAgB,CAAC"}
1
+ {"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../src/ast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,MAAM,oBAAoB,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;AAExD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,YAAY,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,aAAa,CAAC;IACpB,UAAU,EAAE,YAAY,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,aAAa,CAAC;IACpB,UAAU,EAAE,YAAY,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,UAAU,CAAC;IACjB,UAAU,EAAE,YAAY,CAAC;IACzB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,EAAE,YAAY,CAAC;IACzB,UAAU,CAAC,EAAE,YAAY,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,EAAE,YAAY,CAAC;IACzB,SAAS,EAAE,YAAY,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,YAAY,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,EAAE,YAAY,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,KAAK,CAAC;IACZ,UAAU,EAAE,YAAY,CAAC;CAC1B;AAED,MAAM,MAAM,2BAA2B,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC;AAEhF,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,2BAA2B,CAAC;IACtC,GAAG,EAAE,YAAY,CAAC;IAClB,GAAG,EAAE,YAAY,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,KAAK,CAAC;IACZ,GAAG,EAAE,YAAY,CAAC;IAClB,GAAG,EAAE,YAAY,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,IAAI,CAAC;IACX,GAAG,EAAE,YAAY,CAAC;IAClB,GAAG,EAAE,YAAY,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,YAAY,CAAC;IAClB,GAAG,EAAE,YAAY,CAAC;CACnB;AAED,MAAM,MAAM,YAAY,GACpB,mBAAmB,GACnB,gBAAgB,GAChB,mBAAmB,GACnB,sBAAsB,GACtB,uBAAuB,GACvB,uBAAuB,GACvB,oBAAoB,GACpB,mBAAmB,GACnB,kBAAkB,GAClB,iBAAiB,GACjB,mBAAmB,GACnB,eAAe,GACf,mBAAmB,GACnB,eAAe,GACf,cAAc,GACd,gBAAgB,CAAC"}
@@ -1,9 +1,9 @@
1
1
  import { JsonSelector, JsonSelectorCompareOperator } from "./ast";
2
- export declare function evaluateJsonSelector(selector: JsonSelector, context: unknown): unknown;
3
- export declare function project(value: unknown[], projection: JsonSelector | undefined): unknown[];
4
- export declare function project(value: unknown, projection: JsonSelector | undefined): unknown[] | null;
5
- export declare function filter(value: unknown[], condition: JsonSelector): unknown[];
6
- export declare function filter(value: unknown, condition: JsonSelector): unknown[] | null;
2
+ export declare function evaluateJsonSelector(selector: JsonSelector, context: unknown, rootContext?: unknown): unknown;
3
+ export declare function project(value: unknown[], projection: JsonSelector | undefined, rootContext: unknown): unknown[];
4
+ export declare function project(value: unknown, projection: JsonSelector | undefined, rootContext: unknown): unknown[] | null;
5
+ export declare function filter(value: unknown[], condition: JsonSelector, rootContext: unknown): unknown[];
6
+ export declare function filter(value: unknown, condition: JsonSelector, rootContext: unknown): unknown[] | null;
7
7
  export declare function slice(value: unknown[], start: number | undefined, end?: number, step?: number): unknown[];
8
8
  export declare function slice(value: unknown, start: number | undefined, end?: number, step?: number): unknown[] | null;
9
9
  export declare function normalizeSlice(length: number, start?: number, end?: number, step?: number): {
@@ -1 +1 @@
1
- {"version":3,"file":"evaluate.d.ts","sourceRoot":"","sources":["../src/evaluate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,2BAA2B,EAAE,MAAM,OAAO,CAAC;AAIlE,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,OAAO,GACf,OAAO,CA6DT;AAED,wBAAgB,OAAO,CACrB,KAAK,EAAE,OAAO,EAAE,EAChB,UAAU,EAAE,YAAY,GAAG,SAAS,GACnC,OAAO,EAAE,CAAC;AACb,wBAAgB,OAAO,CACrB,KAAK,EAAE,OAAO,EACd,UAAU,EAAE,YAAY,GAAG,SAAS,GACnC,OAAO,EAAE,GAAG,IAAI,CAAC;AAiBpB,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,YAAY,GAAG,OAAO,EAAE,CAAC;AAC7E,wBAAgB,MAAM,CACpB,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,YAAY,GACtB,OAAO,EAAE,GAAG,IAAI,CAAC;AAcpB,wBAAgB,KAAK,CACnB,KAAK,EAAE,OAAO,EAAE,EAChB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,GAAG,CAAC,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,EAAE,CAAC;AACb,wBAAgB,KAAK,CACnB,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,GAAG,CAAC,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,EAAE,GAAG,IAAI,CAAC;AAwBpB,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,MAAM,EACd,GAAG,CAAC,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,MAAM,GACZ;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAiB9C;AAcD,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;AACrD,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,EAAE,GAAG,IAAI,CAAC;AAK1D,wBAAgB,OAAO,CACrB,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,2BAA2B,GACpC,OAAO,CAAC;AACX,wBAAgB,OAAO,CACrB,EAAE,EAAE,OAAO,EACX,EAAE,EAAE,OAAO,EACX,QAAQ,EAAE,2BAA2B,GACpC,OAAO,GAAG,IAAI,CAAC"}
1
+ {"version":3,"file":"evaluate.d.ts","sourceRoot":"","sources":["../src/evaluate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,2BAA2B,EAAE,MAAM,OAAO,CAAC;AAIlE,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,OAAO,EAChB,WAAW,UAAU,GACpB,OAAO,CA2FT;AAED,wBAAgB,OAAO,CACrB,KAAK,EAAE,OAAO,EAAE,EAChB,UAAU,EAAE,YAAY,GAAG,SAAS,EACpC,WAAW,EAAE,OAAO,GACnB,OAAO,EAAE,CAAC;AACb,wBAAgB,OAAO,CACrB,KAAK,EAAE,OAAO,EACd,UAAU,EAAE,YAAY,GAAG,SAAS,EACpC,WAAW,EAAE,OAAO,GACnB,OAAO,EAAE,GAAG,IAAI,CAAC;AAkBpB,wBAAgB,MAAM,CACpB,KAAK,EAAE,OAAO,EAAE,EAChB,SAAS,EAAE,YAAY,EACvB,WAAW,EAAE,OAAO,GACnB,OAAO,EAAE,CAAC;AACb,wBAAgB,MAAM,CACpB,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,YAAY,EACvB,WAAW,EAAE,OAAO,GACnB,OAAO,EAAE,GAAG,IAAI,CAAC;AAepB,wBAAgB,KAAK,CACnB,KAAK,EAAE,OAAO,EAAE,EAChB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,GAAG,CAAC,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,EAAE,CAAC;AACb,wBAAgB,KAAK,CACnB,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,GAAG,CAAC,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,EAAE,GAAG,IAAI,CAAC;AAwBpB,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,MAAM,EACd,GAAG,CAAC,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,MAAM,GACZ;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAiB9C;AAcD,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;AACrD,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,EAAE,GAAG,IAAI,CAAC;AAK1D,wBAAgB,OAAO,CACrB,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,2BAA2B,GACpC,OAAO,CAAC;AACX,wBAAgB,OAAO,CACrB,EAAE,EAAE,OAAO,EACX,EAAE,EAAE,OAAO,EACX,QAAQ,EAAE,2BAA2B,GACpC,OAAO,GAAG,IAAI,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAwB,MAAM,OAAO,CAAC;AAmD3D,MAAM,WAAW,yBAAyB;IACxC,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,YAAY,EACtB,OAAO,GAAE,OAAO,CAAC,yBAAyB,CAAM,GAC/C,MAAM,CAkFR"}
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAwB,MAAM,OAAO,CAAC;AAmD3D,MAAM,WAAW,yBAAyB;IACxC,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,YAAY,EACtB,OAAO,GAAE,OAAO,CAAC,yBAAyB,CAAM,GAC/C,MAAM,CAqFR"}