@elastic/esql 0.0.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.
- package/LICENCE.txt +93 -0
- package/NOTICE.txt +5 -0
- package/README.md +167 -0
- package/lib/__tests__/fixtures.d.ts +4 -0
- package/lib/__tests__/fixtures.d.ts.map +1 -0
- package/lib/ast/builder/builder.d.ts +87 -0
- package/lib/ast/builder/builder.d.ts.map +1 -0
- package/lib/ast/builder/index.d.ts +3 -0
- package/lib/ast/builder/index.d.ts.map +1 -0
- package/lib/ast/builder/types.d.ts +18 -0
- package/lib/ast/builder/types.d.ts.map +1 -0
- package/lib/ast/grouping.d.ts +70 -0
- package/lib/ast/grouping.d.ts.map +1 -0
- package/lib/ast/index.d.ts +9 -0
- package/lib/ast/index.d.ts.map +1 -0
- package/lib/ast/is.d.ts +49 -0
- package/lib/ast/is.d.ts.map +1 -0
- package/lib/ast/location.d.ts +7 -0
- package/lib/ast/location.d.ts.map +1 -0
- package/lib/ast/mutate/commands/from/index.d.ts +4 -0
- package/lib/ast/mutate/commands/from/index.d.ts.map +1 -0
- package/lib/ast/mutate/commands/from/metadata.d.ts +63 -0
- package/lib/ast/mutate/commands/from/metadata.d.ts.map +1 -0
- package/lib/ast/mutate/commands/from/sources.d.ts +9 -0
- package/lib/ast/mutate/commands/from/sources.d.ts.map +1 -0
- package/lib/ast/mutate/commands/index.d.ts +9 -0
- package/lib/ast/mutate/commands/index.d.ts.map +1 -0
- package/lib/ast/mutate/commands/join/index.d.ts +17 -0
- package/lib/ast/mutate/commands/join/index.d.ts.map +1 -0
- package/lib/ast/mutate/commands/limit/index.d.ts +56 -0
- package/lib/ast/mutate/commands/limit/index.d.ts.map +1 -0
- package/lib/ast/mutate/commands/rerank/index.d.ts +41 -0
- package/lib/ast/mutate/commands/rerank/index.d.ts.map +1 -0
- package/lib/ast/mutate/commands/sort/index.d.ts +117 -0
- package/lib/ast/mutate/commands/sort/index.d.ts.map +1 -0
- package/lib/ast/mutate/commands/stats/index.d.ts +17 -0
- package/lib/ast/mutate/commands/stats/index.d.ts.map +1 -0
- package/lib/ast/mutate/commands/where/index.d.ts +48 -0
- package/lib/ast/mutate/commands/where/index.d.ts.map +1 -0
- package/lib/ast/mutate/generic/commands/args/index.d.ts +14 -0
- package/lib/ast/mutate/generic/commands/args/index.d.ts.map +1 -0
- package/lib/ast/mutate/generic/commands/index.d.ts +54 -0
- package/lib/ast/mutate/generic/commands/index.d.ts.map +1 -0
- package/lib/ast/mutate/generic/commands/options/index.d.ts +38 -0
- package/lib/ast/mutate/generic/commands/options/index.d.ts.map +1 -0
- package/lib/ast/mutate/generic/index.d.ts +2 -0
- package/lib/ast/mutate/generic/index.d.ts.map +1 -0
- package/lib/ast/mutate/index.d.ts +5 -0
- package/lib/ast/mutate/index.d.ts.map +1 -0
- package/lib/ast/mutate/types.d.ts +2 -0
- package/lib/ast/mutate/types.d.ts.map +1 -0
- package/lib/ast/mutate/util.d.ts +20 -0
- package/lib/ast/mutate/util.d.ts.map +1 -0
- package/lib/ast/visitor/contexts.d.ts +176 -0
- package/lib/ast/visitor/contexts.d.ts.map +1 -0
- package/lib/ast/visitor/global_visitor_context.d.ts +77 -0
- package/lib/ast/visitor/global_visitor_context.d.ts.map +1 -0
- package/lib/ast/visitor/index.d.ts +5 -0
- package/lib/ast/visitor/index.d.ts.map +1 -0
- package/lib/ast/visitor/types.d.ts +104 -0
- package/lib/ast/visitor/types.d.ts.map +1 -0
- package/lib/ast/visitor/utils.d.ts +26 -0
- package/lib/ast/visitor/utils.d.ts.map +1 -0
- package/lib/ast/visitor/visitor.d.ts +79 -0
- package/lib/ast/visitor/visitor.d.ts.map +1 -0
- package/lib/ast/walker/helpers.d.ts +23 -0
- package/lib/ast/walker/helpers.d.ts.map +1 -0
- package/lib/ast/walker/index.d.ts +2 -0
- package/lib/ast/walker/index.d.ts.map +1 -0
- package/lib/ast/walker/walker.d.ts +266 -0
- package/lib/ast/walker/walker.d.ts.map +1 -0
- package/lib/composer/composer_query.d.ts +684 -0
- package/lib/composer/composer_query.d.ts.map +1 -0
- package/lib/composer/esql.d.ts +25 -0
- package/lib/composer/esql.d.ts.map +1 -0
- package/lib/composer/index.d.ts +8 -0
- package/lib/composer/index.d.ts.map +1 -0
- package/lib/composer/parameter_hole.d.ts +11 -0
- package/lib/composer/parameter_hole.d.ts.map +1 -0
- package/lib/composer/query/index.d.ts +2 -0
- package/lib/composer/query/index.d.ts.map +1 -0
- package/lib/composer/query/query.d.ts +54 -0
- package/lib/composer/query/query.d.ts.map +1 -0
- package/lib/composer/synth/command.d.ts +7 -0
- package/lib/composer/synth/command.d.ts.map +1 -0
- package/lib/composer/synth/expression.d.ts +6 -0
- package/lib/composer/synth/expression.d.ts.map +1 -0
- package/lib/composer/synth/header.d.ts +7 -0
- package/lib/composer/synth/header.d.ts.map +1 -0
- package/lib/composer/synth/holes.d.ts +27 -0
- package/lib/composer/synth/holes.d.ts.map +1 -0
- package/lib/composer/synth/index.d.ts +7 -0
- package/lib/composer/synth/index.d.ts.map +1 -0
- package/lib/composer/synth/nodes.d.ts +104 -0
- package/lib/composer/synth/nodes.d.ts.map +1 -0
- package/lib/composer/synth/query.d.ts +7 -0
- package/lib/composer/synth/query.d.ts.map +1 -0
- package/lib/composer/synth/synth_literal_fragment.d.ts +19 -0
- package/lib/composer/synth/synth_literal_fragment.d.ts.map +1 -0
- package/lib/composer/synth/synth_node.d.ts +19 -0
- package/lib/composer/synth/synth_node.d.ts.map +1 -0
- package/lib/composer/synth/tag.d.ts +4 -0
- package/lib/composer/synth/tag.d.ts.map +1 -0
- package/lib/composer/synth/types.d.ts +65 -0
- package/lib/composer/synth/types.d.ts.map +1 -0
- package/lib/composer/types.d.ts +218 -0
- package/lib/composer/types.d.ts.map +1 -0
- package/lib/composer/util.d.ts +24 -0
- package/lib/composer/util.d.ts.map +1 -0
- package/lib/debug/index.d.ts +2 -0
- package/lib/debug/index.d.ts.map +1 -0
- package/lib/debug/print_ast.d.ts +60 -0
- package/lib/debug/print_ast.d.ts.map +1 -0
- package/lib/embedded_languages/index.d.ts +2 -0
- package/lib/embedded_languages/index.d.ts.map +1 -0
- package/lib/embedded_languages/promql/ast/builder/builder.d.ts +52 -0
- package/lib/embedded_languages/promql/ast/builder/builder.d.ts.map +1 -0
- package/lib/embedded_languages/promql/ast/builder/index.d.ts +3 -0
- package/lib/embedded_languages/promql/ast/builder/index.d.ts.map +1 -0
- package/lib/embedded_languages/promql/ast/builder/types.d.ts +12 -0
- package/lib/embedded_languages/promql/ast/builder/types.d.ts.map +1 -0
- package/lib/embedded_languages/promql/ast/is.d.ts +3 -0
- package/lib/embedded_languages/promql/ast/is.d.ts.map +1 -0
- package/lib/embedded_languages/promql/ast/traversal.d.ts +3 -0
- package/lib/embedded_languages/promql/ast/traversal.d.ts.map +1 -0
- package/lib/embedded_languages/promql/ast/walker/index.d.ts +3 -0
- package/lib/embedded_languages/promql/ast/walker/index.d.ts.map +1 -0
- package/lib/embedded_languages/promql/ast/walker/types.d.ts +93 -0
- package/lib/embedded_languages/promql/ast/walker/types.d.ts.map +1 -0
- package/lib/embedded_languages/promql/ast/walker/walker.d.ts +43 -0
- package/lib/embedded_languages/promql/ast/walker/walker.d.ts.map +1 -0
- package/lib/embedded_languages/promql/index.d.ts +8 -0
- package/lib/embedded_languages/promql/index.d.ts.map +1 -0
- package/lib/embedded_languages/promql/parser/cst_to_ast_converter.d.ts +48 -0
- package/lib/embedded_languages/promql/parser/cst_to_ast_converter.d.ts.map +1 -0
- package/lib/embedded_languages/promql/parser/index.d.ts +4 -0
- package/lib/embedded_languages/promql/parser/index.d.ts.map +1 -0
- package/lib/embedded_languages/promql/parser/parser.d.ts +65 -0
- package/lib/embedded_languages/promql/parser/parser.d.ts.map +1 -0
- package/lib/embedded_languages/promql/parser/promql_error_listener.d.ts +11 -0
- package/lib/embedded_languages/promql/parser/promql_error_listener.d.ts.map +1 -0
- package/lib/embedded_languages/promql/pretty_print/basic_pretty_printer.d.ts +65 -0
- package/lib/embedded_languages/promql/pretty_print/basic_pretty_printer.d.ts.map +1 -0
- package/lib/embedded_languages/promql/pretty_print/helpers.d.ts +34 -0
- package/lib/embedded_languages/promql/pretty_print/helpers.d.ts.map +1 -0
- package/lib/embedded_languages/promql/pretty_print/index.d.ts +2 -0
- package/lib/embedded_languages/promql/pretty_print/index.d.ts.map +1 -0
- package/lib/embedded_languages/promql/types.d.ts +355 -0
- package/lib/embedded_languages/promql/types.d.ts.map +1 -0
- package/lib/index.d.ts +7 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +63055 -0
- package/lib/index.js.map +1 -0
- package/lib/index.mjs +62941 -0
- package/lib/index.mjs.map +1 -0
- package/lib/parser/antlr/esql_lexer.d.ts +223 -0
- package/lib/parser/antlr/esql_lexer.d.ts.map +1 -0
- package/lib/parser/antlr/esql_parser.d.ts +1847 -0
- package/lib/parser/antlr/esql_parser.d.ts.map +1 -0
- package/lib/parser/antlr/esql_parser_listener.d.ts +1634 -0
- package/lib/parser/antlr/esql_parser_listener.d.ts.map +1 -0
- package/lib/parser/antlr/lexer_config.d.ts +13 -0
- package/lib/parser/antlr/lexer_config.d.ts.map +1 -0
- package/lib/parser/antlr/parser_config.d.ts +7 -0
- package/lib/parser/antlr/parser_config.d.ts.map +1 -0
- package/lib/parser/antlr/promql_lexer.d.ts +71 -0
- package/lib/parser/antlr/promql_lexer.d.ts.map +1 -0
- package/lib/parser/antlr/promql_parser.d.ts +441 -0
- package/lib/parser/antlr/promql_parser.d.ts.map +1 -0
- package/lib/parser/antlr/promql_parser_listener.d.ts +354 -0
- package/lib/parser/antlr/promql_parser_listener.d.ts.map +1 -0
- package/lib/parser/core/constants.d.ts +8 -0
- package/lib/parser/core/constants.d.ts.map +1 -0
- package/lib/parser/core/cst_to_ast_converter.d.ts +262 -0
- package/lib/parser/core/cst_to_ast_converter.d.ts.map +1 -0
- package/lib/parser/core/decorations.d.ts +29 -0
- package/lib/parser/core/decorations.d.ts.map +1 -0
- package/lib/parser/core/esql_error_listener.d.ts +8 -0
- package/lib/parser/core/esql_error_listener.d.ts.map +1 -0
- package/lib/parser/core/helpers.d.ts +9 -0
- package/lib/parser/core/helpers.d.ts.map +1 -0
- package/lib/parser/core/parser.d.ts +136 -0
- package/lib/parser/core/parser.d.ts.map +1 -0
- package/lib/parser/core/tokens.d.ts +45 -0
- package/lib/parser/core/tokens.d.ts.map +1 -0
- package/lib/parser/core/types.d.ts +69 -0
- package/lib/parser/core/types.d.ts.map +1 -0
- package/lib/parser/index.d.ts +4 -0
- package/lib/parser/index.d.ts.map +1 -0
- package/lib/pretty_print/__tests__/fixtures.d.ts +5 -0
- package/lib/pretty_print/__tests__/fixtures.d.ts.map +1 -0
- package/lib/pretty_print/basic_pretty_printer.d.ts +87 -0
- package/lib/pretty_print/basic_pretty_printer.d.ts.map +1 -0
- package/lib/pretty_print/constants.d.ts +47 -0
- package/lib/pretty_print/constants.d.ts.map +1 -0
- package/lib/pretty_print/helpers.d.ts +22 -0
- package/lib/pretty_print/helpers.d.ts.map +1 -0
- package/lib/pretty_print/index.d.ts +4 -0
- package/lib/pretty_print/index.d.ts.map +1 -0
- package/lib/pretty_print/leaf_printer.d.ts +19 -0
- package/lib/pretty_print/leaf_printer.d.ts.map +1 -0
- package/lib/pretty_print/utils.d.ts +7 -0
- package/lib/pretty_print/utils.d.ts.map +1 -0
- package/lib/pretty_print/wrapping_pretty_printer.d.ts +113 -0
- package/lib/pretty_print/wrapping_pretty_printer.d.ts.map +1 -0
- package/lib/types.d.ts +523 -0
- package/lib/types.d.ts.map +1 -0
- package/lib/types.js +19 -0
- package/lib/types.js.map +1 -0
- package/lib/types.mjs +1 -0
- package/lib/types.mjs.map +1 -0
- package/package.json +98 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/ast/walker/helpers.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,KAAK,EACV,cAAc,EACd,sBAAsB,EACtB,UAAU,EACV,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,cAAc,EACd,QAAQ,EACR,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,UAAU,EACV,eAAe,EAChB,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,aAAa,GACrB,MAAM,cAAc,GACpB,MAAM,sBAAsB,GAC5B,MAAM,YAAY,GAClB,MAAM,iBAAiB,GACvB,MAAM,UAAU,GAChB,MAAM,UAAU,GAChB,MAAM,QAAQ,GACd,MAAM,WAAW,GACjB,MAAM,cAAc,GACpB,MAAM,cAAc,GACpB,MAAM,mBAAmB,GACzB,MAAM,eAAe,CAAC;AAE1B,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC;AAEvD,MAAM,MAAM,iBAAiB,GAAG;KAC7B,CAAC,IAAI,aAAa,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,cAAc,GACjD,oBAAoB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GACvC,oBAAoB,CAAC,OAAO,CAAC;CAClC,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,mBAAmB,GAC9B,UAAU,iBAAiB,KAC1B,CAAC,CAAC,IAAI,EAAE,cAAc,KAAK,OAAO,CAsBpC,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,KAAK,MAAM,EAAE,aAAa,MAAM,SAMjE,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,MAAM,OAAO,KAAG,IAAI,IAAI,aAOpD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ast/walker/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,IAAI,EAAE,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
import { type PromqlWalkerOptions } from '../../embedded_languages/promql/ast/walker';
|
|
2
|
+
import type * as types from '../../types';
|
|
3
|
+
import type * as promql from '../../embedded_languages/promql/types';
|
|
4
|
+
import type { NodeMatchTemplate } from './helpers';
|
|
5
|
+
type Node = types.ESQLAstNode | types.ESQLAstNode[];
|
|
6
|
+
export interface WalkerOptions {
|
|
7
|
+
promql?: PromqlWalkerOptions;
|
|
8
|
+
visitCommand?: (node: types.ESQLCommand, parent: types.ESQLAstQueryExpression | undefined, walker: WalkerVisitorApi) => void;
|
|
9
|
+
visitHeaderCommand?: (node: types.ESQLAstHeaderCommand, parent: types.ESQLAstQueryExpression | undefined, walker: WalkerVisitorApi) => void;
|
|
10
|
+
visitCommandOption?: (node: types.ESQLCommandOption, parent: types.ESQLCommand | undefined, walker: WalkerVisitorApi) => void;
|
|
11
|
+
visitQuery?: (node: types.ESQLAstQueryExpression, parent: types.ESQLProperNode | undefined, walker: WalkerVisitorApi) => void;
|
|
12
|
+
visitFunction?: (node: types.ESQLFunction, parent: types.ESQLProperNode | undefined, walker: WalkerVisitorApi) => void;
|
|
13
|
+
visitSource?: (node: types.ESQLSource, parent: types.ESQLProperNode | undefined, walker: WalkerVisitorApi) => void;
|
|
14
|
+
visitColumn?: (node: types.ESQLColumn, parent: types.ESQLProperNode | undefined, walker: WalkerVisitorApi) => void;
|
|
15
|
+
visitOrder?: (node: types.ESQLOrderExpression, parent: types.ESQLProperNode | undefined, walker: WalkerVisitorApi) => void;
|
|
16
|
+
visitLiteral?: (node: types.ESQLLiteral, parent: types.ESQLProperNode | undefined, walker: WalkerVisitorApi) => void;
|
|
17
|
+
visitListLiteral?: (node: types.ESQLList, parent: types.ESQLProperNode | undefined, walker: WalkerVisitorApi) => void;
|
|
18
|
+
visitInlineCast?: (node: types.ESQLInlineCast, parent: types.ESQLProperNode | undefined, walker: WalkerVisitorApi) => void;
|
|
19
|
+
visitUnknown?: (node: types.ESQLUnknownItem, parents: types.ESQLProperNode | undefined, walker: WalkerVisitorApi) => void;
|
|
20
|
+
visitIdentifier?: (node: types.ESQLIdentifier, parent: types.ESQLProperNode | undefined, walker: WalkerVisitorApi) => void;
|
|
21
|
+
visitMap?: (node: types.ESQLMap, parent: types.ESQLProperNode | undefined, walker: WalkerVisitorApi) => void;
|
|
22
|
+
visitMapEntry?: (node: types.ESQLMapEntry, parent: types.ESQLProperNode | undefined, walker: WalkerVisitorApi) => void;
|
|
23
|
+
visitParens?: (node: types.ESQLParens, parent: types.ESQLProperNode | undefined, walker: WalkerVisitorApi) => void;
|
|
24
|
+
/**
|
|
25
|
+
* Called on every expression node.
|
|
26
|
+
*
|
|
27
|
+
* @todo Rename to `visitExpression`.
|
|
28
|
+
*/
|
|
29
|
+
visitSingleAstItem?: (node: types.ESQLAstExpression, parent: types.ESQLProperNode | undefined, walker: WalkerVisitorApi) => void;
|
|
30
|
+
/**
|
|
31
|
+
* Called for any node type that does not have a specific visitor.
|
|
32
|
+
*
|
|
33
|
+
* @param node Any valid AST node.
|
|
34
|
+
*/
|
|
35
|
+
visitAny?: (node: types.ESQLProperNode, parent: types.ESQLProperNode | undefined, walker: WalkerVisitorApi) => void;
|
|
36
|
+
/**
|
|
37
|
+
* Order in which to traverse child nodes. If set to 'forward', child nodes
|
|
38
|
+
* are traversed in the order they appear in the AST. If set to 'backward',
|
|
39
|
+
* child nodes are traversed in reverse order.
|
|
40
|
+
*
|
|
41
|
+
* @default 'forward'
|
|
42
|
+
*/
|
|
43
|
+
order?: 'forward' | 'backward';
|
|
44
|
+
/**
|
|
45
|
+
* If true, skip traversal of header commands (e.g., SET statements).
|
|
46
|
+
* This allows processing only the main query commands without the header.
|
|
47
|
+
*
|
|
48
|
+
* @default false
|
|
49
|
+
*/
|
|
50
|
+
skipHeader?: boolean;
|
|
51
|
+
}
|
|
52
|
+
export type WalkerAstNode = types.ESQLAstNode | types.ESQLAstNode[];
|
|
53
|
+
export type WalkerVisitorApi = Pick<Walker, 'abort'>;
|
|
54
|
+
/**
|
|
55
|
+
* Iterates over all nodes in the AST and calls the appropriate visitor
|
|
56
|
+
* functions.
|
|
57
|
+
*/
|
|
58
|
+
export declare class Walker {
|
|
59
|
+
protected readonly options: WalkerOptions;
|
|
60
|
+
/**
|
|
61
|
+
* Walks the AST and calls the appropriate visitor functions.
|
|
62
|
+
*/
|
|
63
|
+
static readonly walk: (tree: WalkerAstNode, options: WalkerOptions) => Walker;
|
|
64
|
+
/**
|
|
65
|
+
* Finds and returns the first node that matches the search criteria.
|
|
66
|
+
*
|
|
67
|
+
* @param tree AST node to start the search from.
|
|
68
|
+
* @param predicate A function that returns true if the node matches the search criteria.
|
|
69
|
+
* @returns The first node that matches the search criteria.
|
|
70
|
+
*/
|
|
71
|
+
static readonly find: (tree: WalkerAstNode, predicate: (node: types.ESQLProperNode) => boolean, options?: WalkerOptions) => types.ESQLProperNode | undefined;
|
|
72
|
+
/**
|
|
73
|
+
* Finds and returns all nodes that match the search criteria.
|
|
74
|
+
*
|
|
75
|
+
* @param tree AST node to start the search from.
|
|
76
|
+
* @param predicate A function that returns true if the node matches the search criteria.
|
|
77
|
+
* @returns All nodes that match the search criteria.
|
|
78
|
+
*/
|
|
79
|
+
static readonly findAll: (tree: WalkerAstNode, predicate: (node: types.ESQLProperNode) => boolean, options?: WalkerOptions) => types.ESQLProperNode[];
|
|
80
|
+
/**
|
|
81
|
+
* Matches a single node against a template object. Returns the first node
|
|
82
|
+
* that matches the template. The *template* object is a sparse representation
|
|
83
|
+
* of the node structure, where each property corresponds to a node type or
|
|
84
|
+
* property to match against.
|
|
85
|
+
*
|
|
86
|
+
* - An array matches if the node key is in the array.
|
|
87
|
+
* - A RegExp matches if the node key matches the RegExp.
|
|
88
|
+
* - Any other value matches if the node key is triple-equal to the value.
|
|
89
|
+
*
|
|
90
|
+
* For example, match the first `literal`:
|
|
91
|
+
*
|
|
92
|
+
* ```typescript
|
|
93
|
+
* const literal = Walker.match(ast, { type: 'literal' });
|
|
94
|
+
* ```
|
|
95
|
+
*
|
|
96
|
+
* Find the first `literal` with a specific value:
|
|
97
|
+
*
|
|
98
|
+
* ```typescript
|
|
99
|
+
* const number42 = Walker.match(ast, { type: 'literal', value: 42 });
|
|
100
|
+
* ```
|
|
101
|
+
*
|
|
102
|
+
* Find the first literal of type `integer` or `decimal`:
|
|
103
|
+
*
|
|
104
|
+
* ```typescript
|
|
105
|
+
* const number = Walker.match(ast, {
|
|
106
|
+
* type: 'literal',
|
|
107
|
+
* literalType: [ 'integer', 'decimal' ],
|
|
108
|
+
* });
|
|
109
|
+
* ```
|
|
110
|
+
*
|
|
111
|
+
* Finally, you can also match any field by regular expression. Find
|
|
112
|
+
* the first `source` AST node, which has "log" in its name:
|
|
113
|
+
*
|
|
114
|
+
* ```typescript
|
|
115
|
+
* const logSource = Walker.match(ast, { type: 'source', name: /.+log.+/ });
|
|
116
|
+
* ```
|
|
117
|
+
*
|
|
118
|
+
* @param tree AST node to match against the template.
|
|
119
|
+
* @param template Template object to match against the node.
|
|
120
|
+
* @returns The first node that matches the template
|
|
121
|
+
*/
|
|
122
|
+
static readonly match: (tree: WalkerAstNode, template: NodeMatchTemplate, options?: WalkerOptions) => types.ESQLProperNode | undefined;
|
|
123
|
+
/**
|
|
124
|
+
* Matches all nodes against a template object. Returns all nodes that match
|
|
125
|
+
* the template.
|
|
126
|
+
*
|
|
127
|
+
* @param tree AST node to match against the template.
|
|
128
|
+
* @param template Template object to match against the node.
|
|
129
|
+
* @returns All nodes that match the template
|
|
130
|
+
*/
|
|
131
|
+
static readonly matchAll: (tree: WalkerAstNode, template: NodeMatchTemplate, options?: WalkerOptions) => types.ESQLProperNode[];
|
|
132
|
+
/**
|
|
133
|
+
* Replaces a single node in the AST with a new value. Replaces the first
|
|
134
|
+
* node that matches the template with the new value. Replacement happens
|
|
135
|
+
* in-place, so the original AST is modified.
|
|
136
|
+
*
|
|
137
|
+
* For example, replace "?my_param" parameter with an inlined string literal:
|
|
138
|
+
*
|
|
139
|
+
* ```typescript
|
|
140
|
+
* Walker.replace(ast,
|
|
141
|
+
* { type: 'literal', literalType: 'param', paramType: 'named',
|
|
142
|
+
* value: 'my_param' },
|
|
143
|
+
* Builder.expression.literal.string('This is my string'));
|
|
144
|
+
* ```
|
|
145
|
+
*
|
|
146
|
+
* @param tree AST node to search in.
|
|
147
|
+
* @param matcher A function or template object to match against the node.
|
|
148
|
+
* @param newValue The new value to replace the matched node.
|
|
149
|
+
* @returns The updated node, if a match was found and replaced.
|
|
150
|
+
*/
|
|
151
|
+
static readonly replace: (tree: WalkerAstNode, matcher: NodeMatchTemplate | ((node: types.ESQLProperNode) => boolean), newValue: types.ESQLProperNode | ((node: types.ESQLProperNode) => types.ESQLProperNode)) => types.ESQLProperNode | undefined;
|
|
152
|
+
/**
|
|
153
|
+
* Replaces all nodes in the AST that match the given template with the new
|
|
154
|
+
* value. Works same as {@link Walker.replace}, but replaces all matching nodes.
|
|
155
|
+
*
|
|
156
|
+
* @param tree AST node to search in.
|
|
157
|
+
* @param matcher A function or template object to match against the node.
|
|
158
|
+
* @param newValue The new value to replace the matched nodes.
|
|
159
|
+
* @returns The updated nodes, if any matches were found and replaced.
|
|
160
|
+
*/
|
|
161
|
+
static readonly replaceAll: (tree: WalkerAstNode, matcher: NodeMatchTemplate | ((node: types.ESQLProperNode) => boolean), newValue: types.ESQLProperNode | ((node: types.ESQLProperNode) => types.ESQLProperNode)) => types.ESQLProperNode[];
|
|
162
|
+
/**
|
|
163
|
+
* Walks the AST and extracts all command statements.
|
|
164
|
+
*
|
|
165
|
+
* @param tree AST node to extract parameters from.
|
|
166
|
+
*/
|
|
167
|
+
static readonly commands: (tree: Node, options?: WalkerOptions) => types.ESQLCommand[];
|
|
168
|
+
/**
|
|
169
|
+
* Walks the AST and extracts all parameter literals.
|
|
170
|
+
*
|
|
171
|
+
* @param tree AST node to extract parameters from.
|
|
172
|
+
*/
|
|
173
|
+
static readonly params: (tree: WalkerAstNode, options?: WalkerOptions) => types.ESQLParamLiteral[];
|
|
174
|
+
/**
|
|
175
|
+
* Finds the first function that matches the predicate.
|
|
176
|
+
*
|
|
177
|
+
* @param tree AST node from which to search for a function
|
|
178
|
+
* @param predicateOrName Callback to determine if the function is found or
|
|
179
|
+
* a string with the function name.
|
|
180
|
+
* @returns The first function that matches the predicate
|
|
181
|
+
*/
|
|
182
|
+
static readonly findFunction: (tree: WalkerAstNode, predicateOrName: ((node: types.ESQLFunction) => boolean) | string) => types.ESQLFunction | undefined;
|
|
183
|
+
/**
|
|
184
|
+
* Searches for at least one occurrence of a function by name.
|
|
185
|
+
*
|
|
186
|
+
* @param tree AST subtree to search in.
|
|
187
|
+
* @param name Function or expression name to search for.
|
|
188
|
+
* @returns True if the function or expression is found in the AST.
|
|
189
|
+
*/
|
|
190
|
+
static readonly hasFunction: (tree: WalkerAstNode, name: string) => boolean;
|
|
191
|
+
/**
|
|
192
|
+
* Returns the parent node of the given child node.
|
|
193
|
+
*
|
|
194
|
+
* For example, if the child node is a source node, this method will return
|
|
195
|
+
* the `FROM` command that contains the source:
|
|
196
|
+
*
|
|
197
|
+
* ```typescript
|
|
198
|
+
* const { ast } = EsqlQuery.fromSrc('FROM index');
|
|
199
|
+
* const child = Walker.match(ast, { type: 'source' });
|
|
200
|
+
* const parent = Walker.parent(ast, child); // FROM
|
|
201
|
+
* const grandParent = Walker.parent(ast, parent); // query expression
|
|
202
|
+
* ```
|
|
203
|
+
*
|
|
204
|
+
* @param child The child node for which to find the parent.
|
|
205
|
+
* @returns The parent node of the child, if found.
|
|
206
|
+
*/
|
|
207
|
+
static readonly parent: (tree: WalkerAstNode, child: types.ESQLProperNode) => types.ESQLProperNode | undefined;
|
|
208
|
+
/**
|
|
209
|
+
* Returns an array of parent nodes for the given child node.
|
|
210
|
+
* This method traverses the AST upwards from the child node
|
|
211
|
+
* and collects all parent nodes until it reaches the root. The
|
|
212
|
+
* most immediate parent is the first element in the array,
|
|
213
|
+
* and the root node is the last element.
|
|
214
|
+
*
|
|
215
|
+
* @param tree AST node to search in.
|
|
216
|
+
* @param child The child node for which to find the parents.
|
|
217
|
+
* @returns An array of parent nodes for the child, if found.
|
|
218
|
+
*/
|
|
219
|
+
static readonly parents: (tree: WalkerAstNode, child: types.ESQLProperNode) => types.ESQLProperNode[];
|
|
220
|
+
/**
|
|
221
|
+
* Visits all comment nodes in the AST. Comments are part of the *hidden*
|
|
222
|
+
* channel and normally not part of the AST. To parse the comments, you
|
|
223
|
+
* need to run the parser with `withFormatting` option set to `true`.
|
|
224
|
+
*
|
|
225
|
+
* @param tree AST node to search in.
|
|
226
|
+
* @param callback Callback function that is called for each comment node.
|
|
227
|
+
* The callback receives the comment node, the node it is attached to,
|
|
228
|
+
* and the attachment type (top, left, right, rightSingleLine, bottom).
|
|
229
|
+
*/
|
|
230
|
+
static readonly visitComments: (tree: WalkerAstNode, callback: (comment: types.ESQLAstComment, node: types.ESQLProperNode, attachment: keyof types.ESQLAstNodeFormatting) => void) => void;
|
|
231
|
+
/**
|
|
232
|
+
* Visits all nodes in the AST.
|
|
233
|
+
*
|
|
234
|
+
* @param tree AST node to walk.
|
|
235
|
+
* @param visitAny Callback function to call for each node.
|
|
236
|
+
* @param options Additional options for the walker.
|
|
237
|
+
*/
|
|
238
|
+
static visitAny: (tree: WalkerAstNode, visitAny: WalkerOptions["visitAny"], options?: WalkerOptions) => void;
|
|
239
|
+
protected aborted: boolean;
|
|
240
|
+
constructor(options: WalkerOptions);
|
|
241
|
+
abort(): void;
|
|
242
|
+
walk(tree: WalkerAstNode | undefined, parent?: types.ESQLProperNode | undefined): void;
|
|
243
|
+
protected walkList(list: types.ESQLAstNode[], parent: types.ESQLProperNode | undefined): void;
|
|
244
|
+
walkCommand(node: types.ESQLAstCommand, parent: types.ESQLAstQueryExpression | undefined): void;
|
|
245
|
+
walkHeaderCommand(node: types.ESQLAstHeaderCommand, parent: types.ESQLAstQueryExpression | undefined): void;
|
|
246
|
+
walkOption(node: types.ESQLCommandOption, parent: types.ESQLCommand | undefined): void;
|
|
247
|
+
walkExpression(node: types.ESQLAstItem | types.ESQLAstExpression, parent?: types.ESQLProperNode | undefined): void;
|
|
248
|
+
walkListLiteral(node: types.ESQLList, parent: types.ESQLProperNode | undefined): void;
|
|
249
|
+
walkSource(node: types.ESQLSource, parent: types.ESQLProperNode | undefined): void;
|
|
250
|
+
walkColumn(node: types.ESQLColumn, parent: types.ESQLProperNode | undefined): void;
|
|
251
|
+
walkOrder(node: types.ESQLOrderExpression, parent: types.ESQLProperNode | undefined): void;
|
|
252
|
+
walkInlineCast(node: types.ESQLInlineCast, parent: types.ESQLProperNode | undefined): void;
|
|
253
|
+
walkFunction(node: types.ESQLFunction, parent?: types.ESQLProperNode | undefined): void;
|
|
254
|
+
walkMap(node: types.ESQLMap, parent: types.ESQLProperNode | undefined): void;
|
|
255
|
+
walkMapEntry(node: types.ESQLMapEntry, parent: types.ESQLProperNode | undefined): void;
|
|
256
|
+
walkParens(node: types.ESQLParens, parent: types.ESQLProperNode | undefined): void;
|
|
257
|
+
walkQuery(node: types.ESQLAstQueryExpression, parent: types.ESQLProperNode | undefined): void;
|
|
258
|
+
/**
|
|
259
|
+
* Walk a PromQL AST node and dispatch to the appropriate walk method.
|
|
260
|
+
*/
|
|
261
|
+
walkPromqlNode(node: promql.PromQLAstNode, parent: types.ESQLProperNode | undefined): void;
|
|
262
|
+
walkSingleAstItem(node: types.ESQLAstExpression, parent: types.ESQLProperNode | undefined): void;
|
|
263
|
+
}
|
|
264
|
+
export declare const walk: (tree: WalkerAstNode, options: WalkerOptions) => Walker;
|
|
265
|
+
export {};
|
|
266
|
+
//# sourceMappingURL=walker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"walker.d.ts","sourceRoot":"","sources":["../../../src/ast/walker/walker.ts"],"names":[],"mappings":"AASA,OAAO,EAAgB,KAAK,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AACpG,OAAO,KAAK,KAAK,KAAK,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,KAAK,MAAM,MAAM,uCAAuC,CAAC;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAEnD,KAAK,IAAI,GAAG,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;AAEpD,MAAM,WAAW,aAAa;IAG5B,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAI7B,YAAY,CAAC,EAAE,CACb,IAAI,EAAE,KAAK,CAAC,WAAW,EACvB,MAAM,EAAE,KAAK,CAAC,sBAAsB,GAAG,SAAS,EAChD,MAAM,EAAE,gBAAgB,KACrB,IAAI,CAAC;IACV,kBAAkB,CAAC,EAAE,CACnB,IAAI,EAAE,KAAK,CAAC,oBAAoB,EAChC,MAAM,EAAE,KAAK,CAAC,sBAAsB,GAAG,SAAS,EAChD,MAAM,EAAE,gBAAgB,KACrB,IAAI,CAAC;IACV,kBAAkB,CAAC,EAAE,CACnB,IAAI,EAAE,KAAK,CAAC,iBAAiB,EAC7B,MAAM,EAAE,KAAK,CAAC,WAAW,GAAG,SAAS,EACrC,MAAM,EAAE,gBAAgB,KACrB,IAAI,CAAC;IACV,UAAU,CAAC,EAAE,CACX,IAAI,EAAE,KAAK,CAAC,sBAAsB,EAClC,MAAM,EAAE,KAAK,CAAC,cAAc,GAAG,SAAS,EACxC,MAAM,EAAE,gBAAgB,KACrB,IAAI,CAAC;IACV,aAAa,CAAC,EAAE,CACd,IAAI,EAAE,KAAK,CAAC,YAAY,EACxB,MAAM,EAAE,KAAK,CAAC,cAAc,GAAG,SAAS,EACxC,MAAM,EAAE,gBAAgB,KACrB,IAAI,CAAC;IACV,WAAW,CAAC,EAAE,CACZ,IAAI,EAAE,KAAK,CAAC,UAAU,EACtB,MAAM,EAAE,KAAK,CAAC,cAAc,GAAG,SAAS,EACxC,MAAM,EAAE,gBAAgB,KACrB,IAAI,CAAC;IACV,WAAW,CAAC,EAAE,CACZ,IAAI,EAAE,KAAK,CAAC,UAAU,EACtB,MAAM,EAAE,KAAK,CAAC,cAAc,GAAG,SAAS,EACxC,MAAM,EAAE,gBAAgB,KACrB,IAAI,CAAC;IACV,UAAU,CAAC,EAAE,CACX,IAAI,EAAE,KAAK,CAAC,mBAAmB,EAC/B,MAAM,EAAE,KAAK,CAAC,cAAc,GAAG,SAAS,EACxC,MAAM,EAAE,gBAAgB,KACrB,IAAI,CAAC;IACV,YAAY,CAAC,EAAE,CACb,IAAI,EAAE,KAAK,CAAC,WAAW,EACvB,MAAM,EAAE,KAAK,CAAC,cAAc,GAAG,SAAS,EACxC,MAAM,EAAE,gBAAgB,KACrB,IAAI,CAAC;IACV,gBAAgB,CAAC,EAAE,CACjB,IAAI,EAAE,KAAK,CAAC,QAAQ,EACpB,MAAM,EAAE,KAAK,CAAC,cAAc,GAAG,SAAS,EACxC,MAAM,EAAE,gBAAgB,KACrB,IAAI,CAAC;IACV,eAAe,CAAC,EAAE,CAChB,IAAI,EAAE,KAAK,CAAC,cAAc,EAC1B,MAAM,EAAE,KAAK,CAAC,cAAc,GAAG,SAAS,EACxC,MAAM,EAAE,gBAAgB,KACrB,IAAI,CAAC;IACV,YAAY,CAAC,EAAE,CACb,IAAI,EAAE,KAAK,CAAC,eAAe,EAC3B,OAAO,EAAE,KAAK,CAAC,cAAc,GAAG,SAAS,EACzC,MAAM,EAAE,gBAAgB,KACrB,IAAI,CAAC;IACV,eAAe,CAAC,EAAE,CAChB,IAAI,EAAE,KAAK,CAAC,cAAc,EAC1B,MAAM,EAAE,KAAK,CAAC,cAAc,GAAG,SAAS,EACxC,MAAM,EAAE,gBAAgB,KACrB,IAAI,CAAC;IACV,QAAQ,CAAC,EAAE,CACT,IAAI,EAAE,KAAK,CAAC,OAAO,EACnB,MAAM,EAAE,KAAK,CAAC,cAAc,GAAG,SAAS,EACxC,MAAM,EAAE,gBAAgB,KACrB,IAAI,CAAC;IACV,aAAa,CAAC,EAAE,CACd,IAAI,EAAE,KAAK,CAAC,YAAY,EACxB,MAAM,EAAE,KAAK,CAAC,cAAc,GAAG,SAAS,EACxC,MAAM,EAAE,gBAAgB,KACrB,IAAI,CAAC;IACV,WAAW,CAAC,EAAE,CACZ,IAAI,EAAE,KAAK,CAAC,UAAU,EACtB,MAAM,EAAE,KAAK,CAAC,cAAc,GAAG,SAAS,EACxC,MAAM,EAAE,gBAAgB,KACrB,IAAI,CAAC;IAIV;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,CACnB,IAAI,EAAE,KAAK,CAAC,iBAAiB,EAC7B,MAAM,EAAE,KAAK,CAAC,cAAc,GAAG,SAAS,EACxC,MAAM,EAAE,gBAAgB,KACrB,IAAI,CAAC;IAEV;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CACT,IAAI,EAAE,KAAK,CAAC,cAAc,EAC1B,MAAM,EAAE,KAAK,CAAC,cAAc,GAAG,SAAS,EACxC,MAAM,EAAE,gBAAgB,KACrB,IAAI,CAAC;IAEV;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;IAE/B;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;AAEpE,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAErD;;;GAGG;AACH,qBAAa,MAAM;IAoYL,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,aAAa;IAnYrD;;OAEG;IACH,gBAAuB,IAAI,GAAI,MAAM,aAAa,EAAE,SAAS,aAAa,KAAG,MAAM,CAIjF;IAEF;;;;;;OAMG;IACH,gBAAuB,IAAI,GACzB,MAAM,aAAa,EACnB,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,cAAc,KAAK,OAAO,EAClD,UAAU,aAAa,KACtB,KAAK,CAAC,cAAc,GAAG,SAAS,CAYjC;IAEF;;;;;;OAMG;IACH,gBAAuB,OAAO,GAC5B,MAAM,aAAa,EACnB,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,cAAc,KAAK,OAAO,EAClD,UAAU,aAAa,KACtB,KAAK,CAAC,cAAc,EAAE,CAWvB;IAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAyCG;IACH,gBAAuB,KAAK,GAC1B,MAAM,aAAa,EACnB,UAAU,iBAAiB,EAC3B,UAAU,aAAa,KACtB,KAAK,CAAC,cAAc,GAAG,SAAS,CAGjC;IAEF;;;;;;;OAOG;IACH,gBAAuB,QAAQ,GAC7B,MAAM,aAAa,EACnB,UAAU,iBAAiB,EAC3B,UAAU,aAAa,KACtB,KAAK,CAAC,cAAc,EAAE,CAGvB;IAEF;;;;;;;;;;;;;;;;;;OAkBG;IACH,gBAAuB,OAAO,GAC5B,MAAM,aAAa,EACnB,SAAS,iBAAiB,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,cAAc,KAAK,OAAO,CAAC,EACtE,UAAU,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,cAAc,KAAK,KAAK,CAAC,cAAc,CAAC,KACtF,KAAK,CAAC,cAAc,GAAG,SAAS,CAOjC;IAEF;;;;;;;;OAQG;IACH,gBAAuB,UAAU,GAC/B,MAAM,aAAa,EACnB,SAAS,iBAAiB,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,cAAc,KAAK,OAAO,CAAC,EACtE,UAAU,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,cAAc,KAAK,KAAK,CAAC,cAAc,CAAC,KACtF,KAAK,CAAC,cAAc,EAAE,CAWvB;IAEF;;;;OAIG;IACH,gBAAuB,QAAQ,GAAI,MAAM,IAAI,EAAE,UAAU,aAAa,KAAG,KAAK,CAAC,WAAW,EAAE,CAE1F;IAEF;;;;OAIG;IACH,gBAAuB,MAAM,GAC3B,MAAM,aAAa,EACnB,UAAU,aAAa,KACtB,KAAK,CAAC,gBAAgB,EAAE,CASzB;IAEF;;;;;;;OAOG;IACH,gBAAuB,YAAY,GACjC,MAAM,aAAa,EACnB,iBAAiB,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,YAAY,KAAK,OAAO,CAAC,GAAG,MAAM,KAChE,KAAK,CAAC,YAAY,GAAG,SAAS,CAe/B;IAEF;;;;;;OAMG;IACH,gBAAuB,WAAW,GAAI,MAAM,aAAa,EAAE,MAAM,MAAM,KAAG,OAAO,CAE/E;IAEF;;;;;;;;;;;;;;;OAeG;IACH,gBAAuB,MAAM,GAC3B,MAAM,aAAa,EACnB,OAAO,KAAK,CAAC,cAAc,KAC1B,KAAK,CAAC,cAAc,GAAG,SAAS,CAWjC;IAEF;;;;;;;;;;OAUG;IACH,gBAAuB,OAAO,GAC5B,MAAM,aAAa,EACnB,OAAO,KAAK,CAAC,cAAc,KAC1B,KAAK,CAAC,cAAc,EAAE,CASvB;IAEF;;;;;;;;;OASG;IACH,gBAAuB,aAAa,GAClC,MAAM,aAAa,EACnB,UAAU,CACR,OAAO,EAAE,KAAK,CAAC,cAAc,EAC7B,IAAI,EAAE,KAAK,CAAC,cAAc,EAC1B,UAAU,EAAE,MAAM,KAAK,CAAC,qBAAqB,KAC1C,IAAI,KACR,IAAI,CA2CL;IAEF;;;;;;OAMG;IACH,OAAc,QAAQ,GACpB,MAAM,aAAa,EACnB,UAAU,aAAa,CAAC,UAAU,CAAC,EACnC,UAAU,aAAa,KACtB,IAAI,CAEL;IAEF,SAAS,CAAC,OAAO,EAAE,OAAO,CAAS;gBAEJ,OAAO,EAAE,aAAa;IAE9C,KAAK,IAAI,IAAI;IAIb,IAAI,CACT,IAAI,EAAE,aAAa,GAAG,SAAS,EAC/B,MAAM,GAAE,KAAK,CAAC,cAAc,GAAG,SAAqB,GACnD,IAAI;IAoBP,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,cAAc,GAAG,SAAS,GAAG,IAAI;IAiBtF,WAAW,CAChB,IAAI,EAAE,KAAK,CAAC,cAAc,EAC1B,MAAM,EAAE,KAAK,CAAC,sBAAsB,GAAG,SAAS,GAC/C,IAAI;IAQA,iBAAiB,CACtB,IAAI,EAAE,KAAK,CAAC,oBAAoB,EAChC,MAAM,EAAE,KAAK,CAAC,sBAAsB,GAAG,SAAS,GAC/C,IAAI;IAQA,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,iBAAiB,EAAE,MAAM,EAAE,KAAK,CAAC,WAAW,GAAG,SAAS,GAAG,IAAI;IAMtF,cAAc,CACnB,IAAI,EAAE,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,iBAAiB,EACjD,MAAM,GAAE,KAAK,CAAC,cAAc,GAAG,SAAqB,GACnD,IAAI;IAUA,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,cAAc,GAAG,SAAS,GAAG,IAAI;IAMrF,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,cAAc,GAAG,SAAS,GAAG,IAAI;IAoBlF,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,cAAc,GAAG,SAAS,GAAG,IAAI;IAWlF,SAAS,CACd,IAAI,EAAE,KAAK,CAAC,mBAAmB,EAC/B,MAAM,EAAE,KAAK,CAAC,cAAc,GAAG,SAAS,GACvC,IAAI;IAQA,cAAc,CACnB,IAAI,EAAE,KAAK,CAAC,cAAc,EAC1B,MAAM,EAAE,KAAK,CAAC,cAAc,GAAG,SAAS,GACvC,IAAI;IAMA,YAAY,CACjB,IAAI,EAAE,KAAK,CAAC,YAAY,EACxB,MAAM,GAAE,KAAK,CAAC,cAAc,GAAG,SAAqB,GACnD,IAAI;IASA,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,cAAc,GAAG,SAAS,GAAG,IAAI;IAM5E,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC,cAAc,GAAG,SAAS,GAAG,IAAI;IActF,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,cAAc,GAAG,SAAS,GAAG,IAAI;IASlF,SAAS,CACd,IAAI,EAAE,KAAK,CAAC,sBAAsB,EAClC,MAAM,EAAE,KAAK,CAAC,cAAc,GAAG,SAAS,GACvC,IAAI;IAWP;;OAEG;IACI,cAAc,CACnB,IAAI,EAAE,MAAM,CAAC,aAAa,EAC1B,MAAM,EAAE,KAAK,CAAC,cAAc,GAAG,SAAS,GACvC,IAAI;IAkBA,iBAAiB,CACtB,IAAI,EAAE,KAAK,CAAC,iBAAiB,EAC7B,MAAM,EAAE,KAAK,CAAC,cAAc,GAAG,SAAS,GACvC,IAAI;CA0ER;AAED,eAAO,MAAM,IAAI,SA9qBsB,aAAa,WAAW,aAAa,KAAG,MA8qBhD,CAAC"}
|