@jmespath-community/jmespath 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/LICENSE +373 -0
  2. package/README.md +176 -0
  3. package/dist/jmespath.esm.js +2267 -0
  4. package/dist/jmespath.esm.min.js +2 -0
  5. package/dist/jmespath.esm.min.js.map +1 -0
  6. package/dist/jmespath.umd.js +2296 -0
  7. package/dist/jmespath.umd.min.js +2 -0
  8. package/dist/jmespath.umd.min.js.map +1 -0
  9. package/dist/lib/AST.type.js +3 -0
  10. package/dist/lib/AST.type.js.map +1 -0
  11. package/dist/lib/JSON.type.js +3 -0
  12. package/dist/lib/JSON.type.js.map +1 -0
  13. package/dist/lib/Lexer.js +306 -0
  14. package/dist/lib/Lexer.js.map +1 -0
  15. package/dist/lib/Lexer.type.js +43 -0
  16. package/dist/lib/Lexer.type.js.map +1 -0
  17. package/dist/lib/Parser.js +406 -0
  18. package/dist/lib/Parser.js.map +1 -0
  19. package/dist/lib/Parser.type.js +3 -0
  20. package/dist/lib/Parser.type.js.map +1 -0
  21. package/dist/lib/Runtime.js +934 -0
  22. package/dist/lib/Runtime.js.map +1 -0
  23. package/dist/lib/Scope.js +29 -0
  24. package/dist/lib/Scope.js.map +1 -0
  25. package/dist/lib/TreeInterpreter.js +291 -0
  26. package/dist/lib/TreeInterpreter.js.map +1 -0
  27. package/dist/lib/index.js +67 -0
  28. package/dist/lib/index.js.map +1 -0
  29. package/dist/lib/utils/index.js +144 -0
  30. package/dist/lib/utils/index.js.map +1 -0
  31. package/dist/lib/utils/strings.js +95 -0
  32. package/dist/lib/utils/strings.js.map +1 -0
  33. package/dist/lib/utils/text.js +43 -0
  34. package/dist/lib/utils/text.js.map +1 -0
  35. package/dist/types/AST.type.d.ts +85 -0
  36. package/dist/types/JSON.type.d.ts +10 -0
  37. package/dist/types/Lexer.d.ts +19 -0
  38. package/dist/types/Lexer.type.d.ts +48 -0
  39. package/dist/types/Parser.d.ts +28 -0
  40. package/dist/types/Parser.type.d.ts +2 -0
  41. package/dist/types/Runtime.d.ts +87 -0
  42. package/dist/types/Scope.d.ts +7 -0
  43. package/dist/types/TreeInterpreter.d.ts +21 -0
  44. package/dist/types/index.d.ts +44 -0
  45. package/dist/types/utils/index.d.ts +16 -0
  46. package/dist/types/utils/strings.d.ts +11 -0
  47. package/dist/types/utils/text.d.ts +11 -0
  48. package/package.json +38 -0
@@ -0,0 +1,406 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Parser = void 0;
7
+ const Lexer_1 = __importDefault(require("./Lexer"));
8
+ const Lexer_type_1 = require("./Lexer.type");
9
+ const bindingPower = {
10
+ [Lexer_type_1.Token.TOK_EOF]: 0,
11
+ [Lexer_type_1.Token.TOK_UNQUOTEDIDENTIFIER]: 0,
12
+ [Lexer_type_1.Token.TOK_QUOTEDIDENTIFIER]: 0,
13
+ [Lexer_type_1.Token.TOK_RBRACKET]: 0,
14
+ [Lexer_type_1.Token.TOK_RPAREN]: 0,
15
+ [Lexer_type_1.Token.TOK_COMMA]: 0,
16
+ [Lexer_type_1.Token.TOK_RBRACE]: 0,
17
+ [Lexer_type_1.Token.TOK_NUMBER]: 0,
18
+ [Lexer_type_1.Token.TOK_CURRENT]: 0,
19
+ [Lexer_type_1.Token.TOK_EXPREF]: 0,
20
+ [Lexer_type_1.Token.TOK_ROOT]: 0,
21
+ [Lexer_type_1.Token.TOK_PIPE]: 1,
22
+ [Lexer_type_1.Token.TOK_OR]: 2,
23
+ [Lexer_type_1.Token.TOK_AND]: 3,
24
+ [Lexer_type_1.Token.TOK_EQ]: 5,
25
+ [Lexer_type_1.Token.TOK_GT]: 5,
26
+ [Lexer_type_1.Token.TOK_LT]: 5,
27
+ [Lexer_type_1.Token.TOK_GTE]: 5,
28
+ [Lexer_type_1.Token.TOK_LTE]: 5,
29
+ [Lexer_type_1.Token.TOK_NE]: 5,
30
+ [Lexer_type_1.Token.TOK_MINUS]: 6,
31
+ [Lexer_type_1.Token.TOK_PLUS]: 6,
32
+ [Lexer_type_1.Token.TOK_DIV]: 7,
33
+ [Lexer_type_1.Token.TOK_DIVIDE]: 7,
34
+ [Lexer_type_1.Token.TOK_MODULO]: 7,
35
+ [Lexer_type_1.Token.TOK_MULTIPLY]: 7,
36
+ [Lexer_type_1.Token.TOK_FLATTEN]: 9,
37
+ [Lexer_type_1.Token.TOK_STAR]: 20,
38
+ [Lexer_type_1.Token.TOK_FILTER]: 21,
39
+ [Lexer_type_1.Token.TOK_DOT]: 40,
40
+ [Lexer_type_1.Token.TOK_NOT]: 45,
41
+ [Lexer_type_1.Token.TOK_LBRACE]: 50,
42
+ [Lexer_type_1.Token.TOK_LBRACKET]: 55,
43
+ [Lexer_type_1.Token.TOK_LPAREN]: 60,
44
+ };
45
+ class TokenParser {
46
+ constructor() {
47
+ this.index = 0;
48
+ this.tokens = [];
49
+ }
50
+ parse(expression, options) {
51
+ this.loadTokens(expression, options || { enable_legacy_literals: false, });
52
+ this.index = 0;
53
+ const ast = this.expression(0);
54
+ if (this.lookahead(0) !== Lexer_type_1.Token.TOK_EOF) {
55
+ const token = this.lookaheadToken(0);
56
+ this.errorToken(token, `Syntax error: unexpected token type: ${token.type}, value: ${token.value}`);
57
+ }
58
+ return ast;
59
+ }
60
+ loadTokens(expression, options) {
61
+ this.tokens = [...Lexer_1.default.tokenize(expression, options), { type: Lexer_type_1.Token.TOK_EOF, value: '', start: expression.length }];
62
+ }
63
+ expression(rbp) {
64
+ const leftToken = this.lookaheadToken(0);
65
+ this.advance();
66
+ let left = this.nud(leftToken);
67
+ let currentTokenType = this.lookahead(0);
68
+ while (rbp < bindingPower[currentTokenType]) {
69
+ this.advance();
70
+ left = this.led(currentTokenType, left);
71
+ currentTokenType = this.lookahead(0);
72
+ }
73
+ return left;
74
+ }
75
+ lookahead(offset) {
76
+ return this.tokens[this.index + offset].type;
77
+ }
78
+ lookaheadToken(offset) {
79
+ return this.tokens[this.index + offset];
80
+ }
81
+ advance() {
82
+ this.index += 1;
83
+ }
84
+ nud(token) {
85
+ switch (token.type) {
86
+ case Lexer_type_1.Token.TOK_LITERAL:
87
+ return { type: 'Literal', value: token.value };
88
+ case Lexer_type_1.Token.TOK_UNQUOTEDIDENTIFIER:
89
+ return { type: 'Field', name: token.value };
90
+ case Lexer_type_1.Token.TOK_QUOTEDIDENTIFIER:
91
+ if (this.lookahead(0) === Lexer_type_1.Token.TOK_LPAREN) {
92
+ throw new Error('Syntax error: quoted identifier not allowed for function names.');
93
+ }
94
+ else {
95
+ return { type: 'Field', name: token.value };
96
+ }
97
+ case Lexer_type_1.Token.TOK_NOT: {
98
+ const child = this.expression(bindingPower.Not);
99
+ return { type: 'NotExpression', child };
100
+ }
101
+ case Lexer_type_1.Token.TOK_MINUS: {
102
+ const child = this.expression(bindingPower.Minus);
103
+ return { type: 'Unary', operator: token.type, operand: child };
104
+ }
105
+ case Lexer_type_1.Token.TOK_PLUS: {
106
+ const child = this.expression(bindingPower.Plus);
107
+ return { type: 'Unary', operator: token.type, operand: child };
108
+ }
109
+ case Lexer_type_1.Token.TOK_STAR: {
110
+ const left = { type: 'Identity' };
111
+ const right = this.lookahead(0) === Lexer_type_1.Token.TOK_RBRACKET ? left : this.parseProjectionRHS(bindingPower.Star);
112
+ return { type: 'ValueProjection', left, right };
113
+ }
114
+ case Lexer_type_1.Token.TOK_FILTER:
115
+ return this.led(token.type, { type: 'Identity' });
116
+ case Lexer_type_1.Token.TOK_LBRACE:
117
+ return this.parseMultiselectHash();
118
+ case Lexer_type_1.Token.TOK_FLATTEN: {
119
+ const left = { type: 'Flatten', child: { type: 'Identity' } };
120
+ const right = this.parseProjectionRHS(bindingPower.Flatten);
121
+ return { type: 'Projection', left, right };
122
+ }
123
+ case Lexer_type_1.Token.TOK_LBRACKET: {
124
+ if (this.lookahead(0) === Lexer_type_1.Token.TOK_NUMBER || this.lookahead(0) === Lexer_type_1.Token.TOK_COLON) {
125
+ const right = this.parseIndexExpression();
126
+ return this.projectIfSlice({ type: 'Identity' }, right);
127
+ }
128
+ if (this.lookahead(0) === Lexer_type_1.Token.TOK_STAR && this.lookahead(1) === Lexer_type_1.Token.TOK_RBRACKET) {
129
+ this.advance();
130
+ this.advance();
131
+ const right = this.parseProjectionRHS(bindingPower.Star);
132
+ return {
133
+ left: { type: 'Identity' },
134
+ right,
135
+ type: 'Projection',
136
+ };
137
+ }
138
+ return this.parseMultiselectList();
139
+ }
140
+ case Lexer_type_1.Token.TOK_CURRENT:
141
+ return { type: Lexer_type_1.Token.TOK_CURRENT };
142
+ case Lexer_type_1.Token.TOK_ROOT:
143
+ return { type: Lexer_type_1.Token.TOK_ROOT };
144
+ case Lexer_type_1.Token.TOK_EXPREF: {
145
+ const child = this.expression(bindingPower.Expref);
146
+ return { type: 'ExpressionReference', child };
147
+ }
148
+ case Lexer_type_1.Token.TOK_LPAREN: {
149
+ const args = [];
150
+ while (this.lookahead(0) !== Lexer_type_1.Token.TOK_RPAREN) {
151
+ let expression;
152
+ if (this.lookahead(0) === Lexer_type_1.Token.TOK_CURRENT) {
153
+ expression = { type: Lexer_type_1.Token.TOK_CURRENT };
154
+ this.advance();
155
+ }
156
+ else {
157
+ expression = this.expression(0);
158
+ }
159
+ args.push(expression);
160
+ }
161
+ this.match(Lexer_type_1.Token.TOK_RPAREN);
162
+ return args[0];
163
+ }
164
+ default:
165
+ this.errorToken(token);
166
+ }
167
+ }
168
+ led(tokenName, left) {
169
+ switch (tokenName) {
170
+ case Lexer_type_1.Token.TOK_DOT: {
171
+ const rbp = bindingPower.Dot;
172
+ if (this.lookahead(0) !== Lexer_type_1.Token.TOK_STAR) {
173
+ const right = this.parseDotRHS(rbp);
174
+ return { type: 'Subexpression', left, right };
175
+ }
176
+ this.advance();
177
+ const right = this.parseProjectionRHS(rbp);
178
+ return { type: 'ValueProjection', left, right };
179
+ }
180
+ case Lexer_type_1.Token.TOK_PIPE: {
181
+ const right = this.expression(bindingPower.Pipe);
182
+ return { type: 'Pipe', left, right };
183
+ }
184
+ case Lexer_type_1.Token.TOK_OR: {
185
+ const right = this.expression(bindingPower.Or);
186
+ return { type: 'OrExpression', left, right };
187
+ }
188
+ case Lexer_type_1.Token.TOK_AND: {
189
+ const right = this.expression(bindingPower.And);
190
+ return { type: 'AndExpression', left, right };
191
+ }
192
+ case Lexer_type_1.Token.TOK_LPAREN: {
193
+ if (left.type !== 'Field') {
194
+ throw new Error('Syntax error: expected a Field node');
195
+ }
196
+ const name = left.name;
197
+ const args = [];
198
+ let expression;
199
+ while (this.lookahead(0) !== Lexer_type_1.Token.TOK_RPAREN) {
200
+ if (this.lookahead(0) === Lexer_type_1.Token.TOK_CURRENT) {
201
+ expression = { type: Lexer_type_1.Token.TOK_CURRENT };
202
+ this.advance();
203
+ }
204
+ else {
205
+ expression = this.expression(0);
206
+ }
207
+ if (this.lookahead(0) === Lexer_type_1.Token.TOK_COMMA) {
208
+ this.match(Lexer_type_1.Token.TOK_COMMA);
209
+ }
210
+ args.push(expression);
211
+ }
212
+ this.match(Lexer_type_1.Token.TOK_RPAREN);
213
+ const node = { name, type: 'Function', children: args };
214
+ return node;
215
+ }
216
+ case Lexer_type_1.Token.TOK_FILTER: {
217
+ const condition = this.expression(0);
218
+ this.match(Lexer_type_1.Token.TOK_RBRACKET);
219
+ const right = this.lookahead(0) === Lexer_type_1.Token.TOK_FLATTEN ? { type: 'Identity' } : this.parseProjectionRHS(bindingPower.Filter);
220
+ return { type: 'FilterProjection', left, right, condition };
221
+ }
222
+ case Lexer_type_1.Token.TOK_FLATTEN: {
223
+ const leftNode = { type: 'Flatten', child: left };
224
+ const right = this.parseProjectionRHS(bindingPower.Flatten);
225
+ return { type: 'Projection', left: leftNode, right };
226
+ }
227
+ case Lexer_type_1.Token.TOK_EQ:
228
+ case Lexer_type_1.Token.TOK_NE:
229
+ case Lexer_type_1.Token.TOK_GT:
230
+ case Lexer_type_1.Token.TOK_GTE:
231
+ case Lexer_type_1.Token.TOK_LT:
232
+ case Lexer_type_1.Token.TOK_LTE:
233
+ return this.parseComparator(left, tokenName);
234
+ case Lexer_type_1.Token.TOK_PLUS:
235
+ case Lexer_type_1.Token.TOK_MINUS:
236
+ case Lexer_type_1.Token.TOK_MULTIPLY:
237
+ case Lexer_type_1.Token.TOK_STAR:
238
+ case Lexer_type_1.Token.TOK_DIVIDE:
239
+ case Lexer_type_1.Token.TOK_MODULO:
240
+ case Lexer_type_1.Token.TOK_DIV:
241
+ return this.parseArithmetic(left, tokenName);
242
+ case Lexer_type_1.Token.TOK_LBRACKET: {
243
+ const token = this.lookaheadToken(0);
244
+ if (token.type === Lexer_type_1.Token.TOK_NUMBER || token.type === Lexer_type_1.Token.TOK_COLON) {
245
+ const right = this.parseIndexExpression();
246
+ return this.projectIfSlice(left, right);
247
+ }
248
+ this.match(Lexer_type_1.Token.TOK_STAR);
249
+ this.match(Lexer_type_1.Token.TOK_RBRACKET);
250
+ const right = this.parseProjectionRHS(bindingPower.Star);
251
+ return { type: 'Projection', left, right };
252
+ }
253
+ default:
254
+ return this.errorToken(this.lookaheadToken(0));
255
+ }
256
+ }
257
+ match(tokenType) {
258
+ if (this.lookahead(0) === tokenType) {
259
+ this.advance();
260
+ return;
261
+ }
262
+ else {
263
+ const token = this.lookaheadToken(0);
264
+ this.errorToken(token, `Syntax error: expected ${tokenType}, got: ${token.type}`);
265
+ }
266
+ }
267
+ errorToken(token, message = '') {
268
+ const error = new Error(message || `Syntax error: invalid token (${token.type}): "${token.value}"`);
269
+ error.name = 'ParserError';
270
+ throw error;
271
+ }
272
+ parseIndexExpression() {
273
+ if (this.lookahead(0) === Lexer_type_1.Token.TOK_COLON || this.lookahead(1) === Lexer_type_1.Token.TOK_COLON) {
274
+ return this.parseSliceExpression();
275
+ }
276
+ const value = Number(this.lookaheadToken(0).value);
277
+ this.advance();
278
+ this.match(Lexer_type_1.Token.TOK_RBRACKET);
279
+ return { type: 'Index', value };
280
+ }
281
+ projectIfSlice(left, right) {
282
+ const indexExpr = { type: 'IndexExpression', left, right };
283
+ if (right.type === 'Slice') {
284
+ return {
285
+ left: indexExpr,
286
+ right: this.parseProjectionRHS(bindingPower.Star),
287
+ type: 'Projection',
288
+ };
289
+ }
290
+ return indexExpr;
291
+ }
292
+ parseSliceExpression() {
293
+ const parts = [null, null, null];
294
+ let index = 0;
295
+ let current = this.lookaheadToken(0);
296
+ while (current.type != Lexer_type_1.Token.TOK_RBRACKET && index < 3) {
297
+ if (current.type === Lexer_type_1.Token.TOK_COLON) {
298
+ index++;
299
+ if (index === 3) {
300
+ this.errorToken(this.lookaheadToken(0), 'Syntax error, too many colons in slice expression');
301
+ }
302
+ this.advance();
303
+ }
304
+ else if (current.type === Lexer_type_1.Token.TOK_NUMBER) {
305
+ const part = this.lookaheadToken(0).value;
306
+ parts[index] = part;
307
+ this.advance();
308
+ }
309
+ else {
310
+ const next = this.lookaheadToken(0);
311
+ this.errorToken(next, `Syntax error, unexpected token: ${next.value}(${next.type})`);
312
+ }
313
+ current = this.lookaheadToken(0);
314
+ }
315
+ this.match(Lexer_type_1.Token.TOK_RBRACKET);
316
+ const [start = null, stop = null, step = null] = parts;
317
+ return { type: 'Slice', start, stop, step };
318
+ }
319
+ parseComparator(left, comparator) {
320
+ const right = this.expression(bindingPower[comparator]);
321
+ return { type: 'Comparator', name: comparator, left, right };
322
+ }
323
+ parseArithmetic(left, operator) {
324
+ const right = this.expression(bindingPower[operator]);
325
+ return { type: 'Arithmetic', operator: operator, left, right };
326
+ }
327
+ parseDotRHS(rbp) {
328
+ const lookahead = this.lookahead(0);
329
+ const exprTokens = [Lexer_type_1.Token.TOK_UNQUOTEDIDENTIFIER, Lexer_type_1.Token.TOK_QUOTEDIDENTIFIER, Lexer_type_1.Token.TOK_STAR];
330
+ if (exprTokens.includes(lookahead)) {
331
+ return this.expression(rbp);
332
+ }
333
+ if (lookahead === Lexer_type_1.Token.TOK_LBRACKET) {
334
+ this.match(Lexer_type_1.Token.TOK_LBRACKET);
335
+ return this.parseMultiselectList();
336
+ }
337
+ if (lookahead === Lexer_type_1.Token.TOK_LBRACE) {
338
+ this.match(Lexer_type_1.Token.TOK_LBRACE);
339
+ return this.parseMultiselectHash();
340
+ }
341
+ const token = this.lookaheadToken(0);
342
+ this.errorToken(token, `Syntax error, unexpected token: ${token.value}(${token.type})`);
343
+ }
344
+ parseProjectionRHS(rbp) {
345
+ if (bindingPower[this.lookahead(0)] < 10) {
346
+ return { type: 'Identity' };
347
+ }
348
+ if (this.lookahead(0) === Lexer_type_1.Token.TOK_LBRACKET) {
349
+ return this.expression(rbp);
350
+ }
351
+ if (this.lookahead(0) === Lexer_type_1.Token.TOK_FILTER) {
352
+ return this.expression(rbp);
353
+ }
354
+ if (this.lookahead(0) === Lexer_type_1.Token.TOK_DOT) {
355
+ this.match(Lexer_type_1.Token.TOK_DOT);
356
+ return this.parseDotRHS(rbp);
357
+ }
358
+ const token = this.lookaheadToken(0);
359
+ this.errorToken(token, `Syntax error, unexpected token: ${token.value}(${token.type})`);
360
+ }
361
+ parseMultiselectList() {
362
+ const expressions = [];
363
+ while (this.lookahead(0) !== Lexer_type_1.Token.TOK_RBRACKET) {
364
+ const expression = this.expression(0);
365
+ expressions.push(expression);
366
+ if (this.lookahead(0) === Lexer_type_1.Token.TOK_COMMA) {
367
+ this.match(Lexer_type_1.Token.TOK_COMMA);
368
+ if (this.lookahead(0) === Lexer_type_1.Token.TOK_RBRACKET) {
369
+ throw new Error('Syntax error: unexpected token Rbracket');
370
+ }
371
+ }
372
+ }
373
+ this.match(Lexer_type_1.Token.TOK_RBRACKET);
374
+ return { type: 'MultiSelectList', children: expressions };
375
+ }
376
+ parseMultiselectHash() {
377
+ const pairs = [];
378
+ const identifierTypes = [Lexer_type_1.Token.TOK_UNQUOTEDIDENTIFIER, Lexer_type_1.Token.TOK_QUOTEDIDENTIFIER];
379
+ let keyToken;
380
+ let keyName;
381
+ let value;
382
+ // tslint:disable-next-line: prettier
383
+ for (;;) {
384
+ keyToken = this.lookaheadToken(0);
385
+ if (!identifierTypes.includes(keyToken.type)) {
386
+ throw new Error(`Syntax error: expecting an identifier token, got: ${keyToken.type}`);
387
+ }
388
+ keyName = keyToken.value;
389
+ this.advance();
390
+ this.match(Lexer_type_1.Token.TOK_COLON);
391
+ value = this.expression(0);
392
+ pairs.push({ value, type: 'KeyValuePair', name: keyName });
393
+ if (this.lookahead(0) === Lexer_type_1.Token.TOK_COMMA) {
394
+ this.match(Lexer_type_1.Token.TOK_COMMA);
395
+ }
396
+ else if (this.lookahead(0) === Lexer_type_1.Token.TOK_RBRACE) {
397
+ this.match(Lexer_type_1.Token.TOK_RBRACE);
398
+ break;
399
+ }
400
+ }
401
+ return { type: 'MultiSelectHash', children: pairs };
402
+ }
403
+ }
404
+ exports.Parser = new TokenParser();
405
+ exports.default = exports.Parser;
406
+ //# sourceMappingURL=Parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Parser.js","sourceRoot":"","sources":["../../src/Parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=Parser.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Parser.type.js","sourceRoot":"","sources":["../../src/Parser.type.ts"],"names":[],"mappings":""}