@witchcraft/expressit 0.2.2 → 0.3.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/README.md +1 -2
- package/dist/Lexer.d.ts +99 -94
- package/dist/Lexer.d.ts.map +1 -1
- package/dist/Lexer.js +221 -574
- package/dist/Parser.d.ts +26 -26
- package/dist/Parser.d.ts.map +1 -1
- package/dist/Parser.js +106 -116
- package/dist/ast/builders/array.js +7 -8
- package/dist/ast/builders/condition.d.ts +1 -1
- package/dist/ast/builders/condition.d.ts.map +1 -1
- package/dist/ast/builders/condition.js +2 -1
- package/dist/ast/builders/delim.d.ts +2 -2
- package/dist/ast/builders/delim.d.ts.map +1 -1
- package/dist/ast/builders/error.d.ts +2 -2
- package/dist/ast/builders/error.d.ts.map +1 -1
- package/dist/ast/builders/expression.d.ts +2 -2
- package/dist/ast/builders/expression.d.ts.map +1 -1
- package/dist/ast/builders/expression.js +4 -8
- package/dist/ast/builders/group.d.ts +1 -1
- package/dist/ast/builders/group.d.ts.map +1 -1
- package/dist/ast/builders/group.js +8 -11
- package/dist/ast/builders/pos.d.ts +2 -2
- package/dist/ast/builders/pos.d.ts.map +1 -1
- package/dist/ast/builders/token.d.ts +2 -2
- package/dist/ast/builders/token.d.ts.map +1 -1
- package/dist/ast/builders/token.js +1 -1
- package/dist/ast/builders/type.d.ts +2 -2
- package/dist/ast/builders/type.d.ts.map +1 -1
- package/dist/ast/builders/variable.d.ts +3 -3
- package/dist/ast/builders/variable.d.ts.map +1 -1
- package/dist/ast/builders/variable.js +5 -6
- package/dist/ast/createConditionNode.d.ts +1 -1
- package/dist/ast/createConditionNode.d.ts.map +1 -1
- package/dist/ast/createConditionNode.js +1 -2
- package/dist/ast/createGroupNode.d.ts +1 -1
- package/dist/ast/createGroupNode.d.ts.map +1 -1
- package/dist/ast/createToken.d.ts +2 -2
- package/dist/ast/createToken.d.ts.map +1 -1
- package/dist/ast/createToken.js +2 -2
- package/dist/ast/error.d.ts +2 -2
- package/dist/ast/error.d.ts.map +1 -1
- package/dist/ast/error.js +1 -0
- package/dist/ast/handlers.d.ts +23 -23
- package/dist/ast/handlers.d.ts.map +1 -1
- package/dist/ast/handlers.js +23 -26
- package/dist/examples/ParserWithSqlSupport.d.ts +5 -5
- package/dist/examples/ParserWithSqlSupport.d.ts.map +1 -1
- package/dist/examples/ParserWithSqlSupport.js +22 -28
- package/dist/examples/ShortcutContextParser.js +2 -5
- package/dist/index.js +2 -2
- package/dist/internal/ExpressitError.d.ts +2 -2
- package/dist/internal/ExpressitError.d.ts.map +1 -1
- package/dist/internal/ExpressitError.js +7 -10
- package/dist/internal/checkParserOpts.js +21 -22
- package/dist/internal/escapeVariableOrPrefix.js +1 -1
- package/dist/internal/parseParserOptions.js +3 -4
- package/dist/package.json.js +2 -60
- package/dist/types/ast.d.ts +60 -58
- package/dist/types/ast.d.ts.map +1 -1
- package/dist/types/ast.js +26 -27
- package/dist/types/autocomplete.d.ts +23 -21
- package/dist/types/autocomplete.d.ts.map +1 -1
- package/dist/types/autocomplete.js +24 -21
- package/dist/types/errors.d.ts +12 -10
- package/dist/types/errors.d.ts.map +1 -1
- package/dist/types/errors.js +8 -7
- package/dist/types/index.js +2 -2
- package/dist/types/parser.d.ts +3 -3
- package/dist/types/parser.d.ts.map +1 -1
- package/dist/utils/extractTokens.js +4 -5
- package/dist/utils/generateParentsMap.js +7 -8
- package/dist/utils/getCursorInfo.js +5 -3
- package/dist/utils/getOppositeDelimiter.d.ts +2 -2
- package/dist/utils/getOppositeDelimiter.d.ts.map +1 -1
- package/dist/utils/getOppositeDelimiter.js +1 -1
- package/dist/utils/getSurroundingErrors.js +2 -3
- package/dist/utils/isBracket.js +1 -1
- package/dist/utils/isDelimiter.d.ts +2 -2
- package/dist/utils/isDelimiter.d.ts.map +1 -1
- package/dist/utils/isDelimiter.js +1 -1
- package/dist/utils/isNode.js +1 -1
- package/dist/utils/isParen.d.ts +2 -2
- package/dist/utils/isParen.d.ts.map +1 -1
- package/dist/utils/isParen.js +1 -1
- package/dist/utils/isQuote.d.ts +2 -2
- package/dist/utils/isQuote.d.ts.map +1 -1
- package/dist/utils/isQuote.js +1 -1
- package/dist/utils/isToken.js +1 -1
- package/dist/utils/prettyAst.js +10 -11
- package/package.json +19 -20
- package/src/Lexer.ts +100 -90
- package/src/Parser.ts +68 -68
- package/src/ast/builders/condition.ts +3 -3
- package/src/ast/builders/delim.ts +4 -4
- package/src/ast/builders/error.ts +3 -3
- package/src/ast/builders/expression.ts +4 -8
- package/src/ast/builders/group.ts +2 -4
- package/src/ast/builders/pos.ts +3 -3
- package/src/ast/builders/token.ts +3 -3
- package/src/ast/builders/type.ts +2 -2
- package/src/ast/builders/variable.ts +5 -5
- package/src/ast/createConditionNode.ts +2 -2
- package/src/ast/createGroupNode.ts +4 -4
- package/src/ast/createToken.ts +6 -6
- package/src/ast/error.ts +2 -2
- package/src/ast/handlers.ts +20 -20
- package/src/examples/ParserWithSqlSupport.ts +12 -6
- package/src/internal/ExpressitError.ts +6 -6
- package/src/internal/checkParserOpts.ts +13 -13
- package/src/internal/escapeVariableOrPrefix.ts +1 -1
- package/src/types/ast.ts +101 -96
- package/src/types/autocomplete.ts +26 -22
- package/src/types/errors.ts +18 -13
- package/src/types/parser.ts +3 -3
- package/src/utils/extractTokens.ts +1 -1
- package/src/utils/getCursorInfo.ts +2 -2
- package/src/utils/getOppositeDelimiter.ts +3 -3
- package/src/utils/getSurroundingErrors.ts +4 -4
- package/src/utils/isDelimiter.ts +3 -3
- package/src/utils/isParen.ts +2 -2
- package/src/utils/isQuote.ts +2 -2
- package/src/utils/prettyAst.ts +3 -3
package/dist/types/ast.d.ts
CHANGED
|
@@ -1,48 +1,50 @@
|
|
|
1
|
-
import type { AnyFunction } from "@alanscodelog/utils/types";
|
|
1
|
+
import type { AnyFunction, EnumLike } from "@alanscodelog/utils/types";
|
|
2
2
|
export type AddParameters<T extends AnyFunction, TExtra extends any[] = [boolean]> = (...args: [...Parameters<T>, ...TExtra]) => ReturnType<T>;
|
|
3
|
-
export declare
|
|
4
|
-
VALUE
|
|
5
|
-
AND
|
|
6
|
-
OR
|
|
7
|
-
NOT
|
|
8
|
-
BACKTICK
|
|
9
|
-
SINGLEQUOTE
|
|
10
|
-
DOUBLEQUOTE
|
|
11
|
-
PARENL
|
|
12
|
-
PARENR
|
|
13
|
-
BRACKETL
|
|
14
|
-
BRACKETR
|
|
15
|
-
OP_EXPANDED_SEP
|
|
16
|
-
OP_CUSTOM
|
|
17
|
-
REGEX
|
|
18
|
-
}
|
|
3
|
+
export declare const TOKEN_TYPE: {
|
|
4
|
+
VALUE: "VALUE";
|
|
5
|
+
AND: "AND";
|
|
6
|
+
OR: "OR";
|
|
7
|
+
NOT: "NOT";
|
|
8
|
+
BACKTICK: "BACKTICK";
|
|
9
|
+
SINGLEQUOTE: "SINGLEQUOTE";
|
|
10
|
+
DOUBLEQUOTE: "DOUBLEQUOTE";
|
|
11
|
+
PARENL: "PARENL";
|
|
12
|
+
PARENR: "PARENR";
|
|
13
|
+
BRACKETL: "BRACKETL";
|
|
14
|
+
BRACKETR: "BRACKETR";
|
|
15
|
+
OP_EXPANDED_SEP: "OP_EXPANDED_SEP";
|
|
16
|
+
OP_CUSTOM: "OP_CUSTOM";
|
|
17
|
+
REGEX: "REGEX";
|
|
18
|
+
};
|
|
19
|
+
export type TokenType = EnumLike<typeof TOKEN_TYPE>;
|
|
19
20
|
/**
|
|
20
21
|
* @internal
|
|
21
22
|
* Note if the negation operator, `!`, is used as a propertyOperator, this will return the wrong type.
|
|
22
23
|
*/
|
|
23
|
-
export type
|
|
24
|
-
export type
|
|
25
|
-
export type TokenBracketTypes = TOKEN_TYPE.BRACKETL | TOKEN_TYPE.BRACKETR;
|
|
26
|
-
export type
|
|
27
|
-
export type
|
|
28
|
-
export type
|
|
29
|
-
export type
|
|
30
|
-
export type
|
|
24
|
+
export type ExtractToken<T extends string> = T extends "`" ? typeof TOKEN_TYPE.BACKTICK : T extends `'` ? typeof TOKEN_TYPE.SINGLEQUOTE : T extends `"` ? typeof TOKEN_TYPE.DOUBLEQUOTE : T extends `/` ? typeof TOKEN_TYPE.REGEX : T extends `(` ? typeof TOKEN_TYPE.PARENL : T extends `)` ? typeof TOKEN_TYPE.PARENR : T extends `[` ? typeof TOKEN_TYPE.BRACKETL : T extends `]` ? typeof TOKEN_TYPE.BRACKETR : T extends `and` ? typeof TOKEN_TYPE.AND : T extends `&&` ? typeof TOKEN_TYPE.AND : T extends `&` ? typeof TOKEN_TYPE.AND : T extends `or` ? typeof TOKEN_TYPE.OR : T extends `||` ? typeof TOKEN_TYPE.OR : T extends `|` ? typeof TOKEN_TYPE.OR : T extends `not` ? typeof TOKEN_TYPE.NOT : T extends `!` ? typeof TOKEN_TYPE.NOT : typeof TOKEN_TYPE.VALUE;
|
|
25
|
+
export type TokenParen = typeof TOKEN_TYPE.PARENL | typeof TOKEN_TYPE.PARENR;
|
|
26
|
+
export type TokenBracketTypes = typeof TOKEN_TYPE.BRACKETL | typeof TOKEN_TYPE.BRACKETR;
|
|
27
|
+
export type TokenDelimiter = TokenParen | TokenQuote | TokenBracketTypes | typeof TOKEN_TYPE.OP_EXPANDED_SEP;
|
|
28
|
+
export type TokenQuote = typeof TOKEN_TYPE.BACKTICK | typeof TOKEN_TYPE.SINGLEQUOTE | typeof TOKEN_TYPE.DOUBLEQUOTE | typeof TOKEN_TYPE.REGEX;
|
|
29
|
+
export type TokenBoolean = typeof TOKEN_TYPE.AND | typeof TOKEN_TYPE.OR;
|
|
30
|
+
export type TokenOperator = TokenBoolean | typeof TOKEN_TYPE.NOT;
|
|
31
|
+
export type TokenPropertyOperator = typeof TOKEN_TYPE.OP_CUSTOM | typeof TOKEN_TYPE.OP_EXPANDED_SEP;
|
|
31
32
|
export type EmptyObj = Record<any, never>;
|
|
32
33
|
export type FirstParam<T extends AnyFunction> = Parameters<T>["0"];
|
|
33
34
|
export type Position = {
|
|
34
35
|
start: number;
|
|
35
36
|
end: number;
|
|
36
37
|
};
|
|
37
|
-
export declare
|
|
38
|
-
EXPRESSION
|
|
39
|
-
NORMALIZED_EXPRESSION
|
|
40
|
-
GROUP
|
|
41
|
-
ARRAY
|
|
42
|
-
CONDITION
|
|
43
|
-
NORMALIZED_CONDITION
|
|
44
|
-
VARIABLE
|
|
45
|
-
}
|
|
38
|
+
export declare const AST_TYPE: {
|
|
39
|
+
EXPRESSION: "EXPRESSION";
|
|
40
|
+
NORMALIZED_EXPRESSION: "NORMALIZED_EXPRESSION";
|
|
41
|
+
GROUP: "GROUP";
|
|
42
|
+
ARRAY: "ARRAY";
|
|
43
|
+
CONDITION: "CONDITION";
|
|
44
|
+
NORMALIZED_CONDITION: "NORMALIZED_CONDITION";
|
|
45
|
+
VARIABLE: "VARIABLE";
|
|
46
|
+
};
|
|
47
|
+
export type AstType = EnumLike<typeof AST_TYPE>;
|
|
46
48
|
export type RawNode<T extends Node> = Omit<T, "valid" | "type" | "isNode">;
|
|
47
49
|
/**
|
|
48
50
|
* The base type from which {@link ValidToken} and {@link ErrorToken} extend.
|
|
@@ -58,7 +60,7 @@ export interface BaseToken {
|
|
|
58
60
|
/**
|
|
59
61
|
* Valid tokens always have a value, even if it might be an empty string.
|
|
60
62
|
*/
|
|
61
|
-
export interface ValidToken<TType extends
|
|
63
|
+
export interface ValidToken<TType extends TokenType = TokenType> extends BaseToken {
|
|
62
64
|
valid: true;
|
|
63
65
|
type: TType;
|
|
64
66
|
value: string;
|
|
@@ -78,20 +80,20 @@ export interface ErrorToken extends BaseToken {
|
|
|
78
80
|
type?: undefined;
|
|
79
81
|
value?: undefined;
|
|
80
82
|
valid: false;
|
|
81
|
-
expected:
|
|
83
|
+
expected: TokenType[];
|
|
82
84
|
}
|
|
83
85
|
/**
|
|
84
86
|
* For more easily typing tokens that might or might not be valid.
|
|
85
87
|
*
|
|
86
88
|
* Using {@link Token} does not work well in certain situations and is also more complex because it has so many generics.
|
|
87
89
|
*/
|
|
88
|
-
export type AnyToken<TType extends
|
|
90
|
+
export type AnyToken<TType extends TokenType = TokenType> = ValidToken<TType> | ErrorToken;
|
|
89
91
|
export type RawToken<T extends AnyToken> = Omit<T, "isToken" | "valid">;
|
|
90
92
|
export type ParserResults = ExpressionNode | ConditionNode | GroupNode | ErrorToken;
|
|
91
93
|
/**
|
|
92
94
|
* The base AST type all node types extend from.
|
|
93
95
|
*/
|
|
94
|
-
export interface Node<TType extends
|
|
96
|
+
export interface Node<TType extends AstType = AstType, TValid extends boolean = boolean> {
|
|
95
97
|
isNode: true;
|
|
96
98
|
type: TType;
|
|
97
99
|
start: number;
|
|
@@ -128,7 +130,7 @@ export interface Node<TType extends AST_TYPE = AST_TYPE, TValid extends boolean
|
|
|
128
130
|
* ^ prefix: STILL a "not" Token
|
|
129
131
|
* ```
|
|
130
132
|
*/
|
|
131
|
-
export interface GroupNode<TValid extends boolean = boolean, TPrefixable extends boolean = true, TPrefix extends TPrefixable extends true ? ConditionNode<TValid> | ValidToken<TOKEN_TYPE.NOT> | undefined : ValidToken<TOKEN_TYPE.NOT> | undefined = TPrefixable extends true ? ConditionNode<TValid> | ValidToken<TOKEN_TYPE.NOT> | undefined : ValidToken<TOKEN_TYPE.NOT>> extends Node<AST_TYPE.GROUP> {
|
|
133
|
+
export interface GroupNode<TValid extends boolean = boolean, TPrefixable extends boolean = true, TPrefix extends TPrefixable extends true ? ConditionNode<TValid> | ValidToken<typeof TOKEN_TYPE.NOT> | undefined : ValidToken<typeof TOKEN_TYPE.NOT> | undefined = TPrefixable extends true ? ConditionNode<TValid> | ValidToken<typeof TOKEN_TYPE.NOT> | undefined : ValidToken<typeof TOKEN_TYPE.NOT>> extends Node<typeof AST_TYPE.GROUP> {
|
|
132
134
|
/**
|
|
133
135
|
* If the condition is negated this will contain a "not" **token**, {@link ValidToken} .
|
|
134
136
|
*
|
|
@@ -143,7 +145,7 @@ export interface GroupNode<TValid extends boolean = boolean, TPrefixable extends
|
|
|
143
145
|
/**
|
|
144
146
|
* The parenthesis tokens, {@link ValidToken} . These will always be defined (although not necessarily with valid tokens).
|
|
145
147
|
*/
|
|
146
|
-
paren: NodeDelimiters<TOKEN_TYPE.PARENL, TOKEN_TYPE.PARENR>;
|
|
148
|
+
paren: NodeDelimiters<typeof TOKEN_TYPE.PARENL, typeof TOKEN_TYPE.PARENR>;
|
|
147
149
|
}
|
|
148
150
|
/**
|
|
149
151
|
* A variable represents **just** a string value (NOT it's boolean value).
|
|
@@ -156,13 +158,13 @@ export interface GroupNode<TValid extends boolean = boolean, TPrefixable extends
|
|
|
156
158
|
*
|
|
157
159
|
* If `prefixableStrings` is true, the `prefix` property might contain a value token.
|
|
158
160
|
*/
|
|
159
|
-
export interface VariableNode<TValid extends boolean = boolean> extends Node<AST_TYPE.VARIABLE, TValid> {
|
|
160
|
-
value: TValid extends boolean ? AnyToken<TOKEN_TYPE.VALUE> : TValid extends true ? ValidToken<TOKEN_TYPE.VALUE> : ErrorToken;
|
|
161
|
-
prefix?: ValidToken<TOKEN_TYPE.VALUE>;
|
|
162
|
-
quote?: NodeDelimiters<
|
|
161
|
+
export interface VariableNode<TValid extends boolean = boolean> extends Node<typeof AST_TYPE.VARIABLE, TValid> {
|
|
162
|
+
value: TValid extends boolean ? AnyToken<typeof TOKEN_TYPE.VALUE> : TValid extends true ? ValidToken<typeof TOKEN_TYPE.VALUE> : ErrorToken;
|
|
163
|
+
prefix?: ValidToken<typeof TOKEN_TYPE.VALUE>;
|
|
164
|
+
quote?: NodeDelimiters<TokenQuote, TokenQuote>;
|
|
163
165
|
}
|
|
164
|
-
export interface ExpressionNode<TValid extends boolean = boolean> extends Node<AST_TYPE.EXPRESSION> {
|
|
165
|
-
operator: AnyToken<
|
|
166
|
+
export interface ExpressionNode<TValid extends boolean = boolean> extends Node<typeof AST_TYPE.EXPRESSION> {
|
|
167
|
+
operator: AnyToken<TokenBoolean>;
|
|
166
168
|
left: ExpressionNode<TValid> | ConditionNode<TValid> | GroupNode<TValid> | (TValid extends false ? ErrorToken : never);
|
|
167
169
|
right: ExpressionNode<TValid> | ConditionNode<TValid> | GroupNode<TValid> | (TValid extends false ? ErrorToken : never);
|
|
168
170
|
}
|
|
@@ -172,15 +174,15 @@ export type Nodes = ExpressionNode | ConditionNode | GroupNode | VariableNode |
|
|
|
172
174
|
*
|
|
173
175
|
* These are usually not important for evaluating an expression but are useful for syntax highlighting.
|
|
174
176
|
*/
|
|
175
|
-
export type NodeDelimiters<TLEFT extends
|
|
177
|
+
export type NodeDelimiters<TLEFT extends TokenType, TRIGHT extends TokenType = TLEFT> = {
|
|
176
178
|
left: AnyToken<TLEFT>;
|
|
177
179
|
right: AnyToken<TRIGHT>;
|
|
178
180
|
/** Only exists if regexes are enabled and this is a regex value. */
|
|
179
|
-
flags?: ValidToken<TOKEN_TYPE.VALUE>;
|
|
181
|
+
flags?: ValidToken<typeof TOKEN_TYPE.VALUE>;
|
|
180
182
|
};
|
|
181
|
-
export interface ArrayNode<TValid extends boolean = boolean> extends Node<AST_TYPE.ARRAY> {
|
|
183
|
+
export interface ArrayNode<TValid extends boolean = boolean> extends Node<typeof AST_TYPE.ARRAY> {
|
|
182
184
|
values: VariableNode[];
|
|
183
|
-
bracket: NodeDelimiters<TOKEN_TYPE.BRACKETL, TOKEN_TYPE.BRACKETR>;
|
|
185
|
+
bracket: NodeDelimiters<typeof TOKEN_TYPE.BRACKETL, typeof TOKEN_TYPE.BRACKETR>;
|
|
184
186
|
valid: TValid;
|
|
185
187
|
}
|
|
186
188
|
/**
|
|
@@ -189,7 +191,7 @@ export interface ArrayNode<TValid extends boolean = boolean> extends Node<AST_TY
|
|
|
189
191
|
* The `value` property refers to the boolean value of the condition (not to the string value of the variable). See the `operator` property.
|
|
190
192
|
*
|
|
191
193
|
*/
|
|
192
|
-
export interface ConditionNode<TValid extends boolean = boolean> extends Node<AST_TYPE.CONDITION> {
|
|
194
|
+
export interface ConditionNode<TValid extends boolean = boolean> extends Node<typeof AST_TYPE.CONDITION> {
|
|
193
195
|
/**
|
|
194
196
|
* Contains a value node which could be a variable, an array node (if enabled), or a group.
|
|
195
197
|
*
|
|
@@ -201,7 +203,7 @@ export interface ConditionNode<TValid extends boolean = boolean> extends Node<AS
|
|
|
201
203
|
/**
|
|
202
204
|
* If the condition was negated, contains the "not" token, {@link ValidToken} , the condition was negated with.
|
|
203
205
|
*/
|
|
204
|
-
operator?: ValidToken<TOKEN_TYPE.NOT>;
|
|
206
|
+
operator?: ValidToken<typeof TOKEN_TYPE.NOT>;
|
|
205
207
|
/**
|
|
206
208
|
* If condition property operators are used, this will contain the property (as a variable), or an error token if it was missing (but some separator or operator was passed).
|
|
207
209
|
*
|
|
@@ -219,7 +221,7 @@ export interface ConditionNode<TValid extends boolean = boolean> extends Node<AS
|
|
|
219
221
|
*
|
|
220
222
|
* See the corresponding {@link ParserOptions} for more details.
|
|
221
223
|
*/
|
|
222
|
-
propertyOperator?: AnyToken<TOKEN_TYPE.OP_CUSTOM | TOKEN_TYPE.VALUE>;
|
|
224
|
+
propertyOperator?: AnyToken<typeof TOKEN_TYPE.OP_CUSTOM | typeof TOKEN_TYPE.VALUE>;
|
|
223
225
|
/**
|
|
224
226
|
* If "long/expanded" form condition property operators are used, this will contain the separators, otherwise it is undefined.
|
|
225
227
|
*
|
|
@@ -232,22 +234,22 @@ export interface ConditionNode<TValid extends boolean = boolean> extends Node<AS
|
|
|
232
234
|
* See the corresponding {@link ParserOptions} for more details.
|
|
233
235
|
*/
|
|
234
236
|
sep?: {
|
|
235
|
-
left?: AnyToken<TOKEN_TYPE.OP_EXPANDED_SEP>;
|
|
236
|
-
right?: AnyToken<TOKEN_TYPE.OP_EXPANDED_SEP>;
|
|
237
|
+
left?: AnyToken<typeof TOKEN_TYPE.OP_EXPANDED_SEP>;
|
|
238
|
+
right?: AnyToken<typeof TOKEN_TYPE.OP_EXPANDED_SEP>;
|
|
237
239
|
};
|
|
238
240
|
}
|
|
239
241
|
export interface NormalizedCondition<TOp extends string = string, TValue = any> {
|
|
240
|
-
type: AST_TYPE.NORMALIZED_CONDITION;
|
|
242
|
+
type: typeof AST_TYPE.NORMALIZED_CONDITION;
|
|
241
243
|
value: TValue;
|
|
242
244
|
operator?: TOp;
|
|
243
245
|
property: string[];
|
|
244
246
|
negate: boolean;
|
|
245
247
|
}
|
|
246
248
|
export interface NormalizedExpression<TType extends string = string, TValue = any> {
|
|
247
|
-
type: AST_TYPE.NORMALIZED_EXPRESSION;
|
|
249
|
+
type: typeof AST_TYPE.NORMALIZED_EXPRESSION;
|
|
248
250
|
left: NormalizedExpression<TType, TValue> | NormalizedCondition<TType, TValue>;
|
|
249
251
|
right: NormalizedExpression<TType, TValue> | NormalizedCondition<TType, TValue>;
|
|
250
|
-
operator:
|
|
252
|
+
operator: TokenBoolean;
|
|
251
253
|
}
|
|
252
254
|
export type ParentTypes<T extends Node | BaseToken | undefined> = T extends ValidToken ? VariableNode | GroupNode | ExpressionNode | ArrayNode | ConditionNode : T extends ErrorToken ? VariableNode | GroupNode | ExpressionNode | ArrayNode | ConditionNode : T extends GroupNode ? ExpressionNode | GroupNode | undefined : T extends VariableNode ? ConditionNode | ArrayNode | undefined : T extends ExpressionNode ? GroupNode | ExpressionNode | undefined : T extends ArrayNode ? ConditionNode | undefined : T extends ConditionNode | ExpressionNode ? GroupNode | undefined : T extends undefined ? undefined : never;
|
|
253
255
|
//# sourceMappingURL=ast.d.ts.map
|
package/dist/types/ast.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../src/types/ast.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../src/types/ast.ts"],"names":[],"mappings":"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"}
|
package/dist/types/ast.js
CHANGED
|
@@ -1,30 +1,29 @@
|
|
|
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
|
-
})(AST_TYPE || {});
|
|
1
|
+
import { enumFromArray } from "@alanscodelog/utils/enumFromArray";
|
|
2
|
+
const TOKEN_TYPE = enumFromArray([
|
|
3
|
+
"VALUE",
|
|
4
|
+
"AND",
|
|
5
|
+
"OR",
|
|
6
|
+
"NOT",
|
|
7
|
+
"BACKTICK",
|
|
8
|
+
"SINGLEQUOTE",
|
|
9
|
+
"DOUBLEQUOTE",
|
|
10
|
+
"PARENL",
|
|
11
|
+
"PARENR",
|
|
12
|
+
"BRACKETL",
|
|
13
|
+
"BRACKETR",
|
|
14
|
+
"OP_EXPANDED_SEP",
|
|
15
|
+
"OP_CUSTOM",
|
|
16
|
+
"REGEX"
|
|
17
|
+
]);
|
|
18
|
+
const AST_TYPE = enumFromArray([
|
|
19
|
+
"EXPRESSION",
|
|
20
|
+
"NORMALIZED_EXPRESSION",
|
|
21
|
+
"GROUP",
|
|
22
|
+
"ARRAY",
|
|
23
|
+
"CONDITION",
|
|
24
|
+
"NORMALIZED_CONDITION",
|
|
25
|
+
"VARIABLE"
|
|
26
|
+
]);
|
|
28
27
|
export {
|
|
29
28
|
AST_TYPE,
|
|
30
29
|
TOKEN_TYPE
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type EnumLike } from "@alanscodelog/utils";
|
|
1
2
|
import type { AnyToken, Position, ValidToken } from "./ast.js";
|
|
2
3
|
/**
|
|
3
4
|
* Contains information regarding the tokens around a cursor position. Mostly for internally use by {@link autosuggest}.
|
|
@@ -79,31 +80,32 @@ export type CursorInfo = {
|
|
|
79
80
|
prev: boolean;
|
|
80
81
|
};
|
|
81
82
|
};
|
|
82
|
-
export declare
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
REGEX_FLAGS
|
|
101
|
-
}
|
|
83
|
+
export declare const SUGGESTION_TYPE: {
|
|
84
|
+
VALUE: "VALUE";
|
|
85
|
+
BACKTICK: "BACKTICK";
|
|
86
|
+
SINGLEQUOTE: "SINGLEQUOTE";
|
|
87
|
+
DOUBLEQUOTE: "DOUBLEQUOTE";
|
|
88
|
+
PARENL: "PARENL";
|
|
89
|
+
PARENR: "PARENR";
|
|
90
|
+
REGEX: "REGEX";
|
|
91
|
+
VARIABLE: "VARIABLE";
|
|
92
|
+
ARRAY_VALUE: "ARRAY_VALUE";
|
|
93
|
+
PREFIX: "PREFIX";
|
|
94
|
+
BOOLEAN_WORD_OP: "BOOLEAN_WORD_OP";
|
|
95
|
+
BOOLEAN_SYMBOL_OP: "BOOLEAN_SYMBOL_OP";
|
|
96
|
+
PROPERTY: "PROPERTY";
|
|
97
|
+
EXPANDED_PROPERTY_OPERATOR: "EXPANDED_PROPERTY_OPERATOR";
|
|
98
|
+
CUSTOM_PROPERTY_OPERATOR: "CUSTOM_PROPERTY_OPERATOR";
|
|
99
|
+
PROPERTY_SEP: "PROPERTY_SEP";
|
|
100
|
+
BRAKCETR: "BRAKCETR";
|
|
101
|
+
REGEX_FLAGS: "REGEX_FLAGS";
|
|
102
|
+
};
|
|
103
|
+
export type SuggestionType = EnumLike<typeof SUGGESTION_TYPE>;
|
|
102
104
|
/**
|
|
103
105
|
* A suggestion entry that describes a type of suggestion.
|
|
104
106
|
*/
|
|
105
107
|
export type Suggestion = {
|
|
106
|
-
type:
|
|
108
|
+
type: SuggestionType;
|
|
107
109
|
/** The range the suggestion should replace / be inserted at. */
|
|
108
110
|
range: Position;
|
|
109
111
|
/** {@link CursorInfo} */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autocomplete.d.ts","sourceRoot":"","sources":["../../src/types/autocomplete.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAG9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AACH,MAAM,MAAM,UAAU,GAAG;IACxB,KAAK,EAAE,MAAM,CAAA;IACb;;;;OAIG;IACH,EAAE,CAAC,EAAE,UAAU,CAAA;IACf,qFAAqF;IACrF,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf,sGAAsG;IACtG,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf,4BAA4B;IAC5B,KAAK,EAAE;QACN,gCAAgC;QAChC,IAAI,CAAC,EAAE,UAAU,CAAA;QACjB,gCAAgC;QAChC,IAAI,CAAC,EAAE,UAAU,CAAA;KACjB,CAAA;IACD,+GAA+G;IAC/G,UAAU,EAAE;QACX,uGAAuG;QACvG,IAAI,EAAE,OAAO,CAAA;QACb,yGAAyG;QACzG,IAAI,EAAE,OAAO,CAAA;KACb,CAAA;CACD,CAAA;AAED,
|
|
1
|
+
{"version":3,"file":"autocomplete.d.ts","sourceRoot":"","sources":["../../src/types/autocomplete.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAGnD,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAG9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AACH,MAAM,MAAM,UAAU,GAAG;IACxB,KAAK,EAAE,MAAM,CAAA;IACb;;;;OAIG;IACH,EAAE,CAAC,EAAE,UAAU,CAAA;IACf,qFAAqF;IACrF,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf,sGAAsG;IACtG,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf,4BAA4B;IAC5B,KAAK,EAAE;QACN,gCAAgC;QAChC,IAAI,CAAC,EAAE,UAAU,CAAA;QACjB,gCAAgC;QAChC,IAAI,CAAC,EAAE,UAAU,CAAA;KACjB,CAAA;IACD,+GAA+G;IAC/G,UAAU,EAAE;QACX,uGAAuG;QACvG,IAAI,EAAE,OAAO,CAAA;QACb,yGAAyG;QACzG,IAAI,EAAE,OAAO,CAAA;KACb,CAAA;CACD,CAAA;AAED,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;CAqB1B,CAAA;AAEF,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,eAAe,CAAC,CAAA;AAE7D;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG;IACxB,IAAI,EAAE,cAAc,CAAA;IACpB,gEAAgE;IAChE,KAAK,EAAE,QAAQ,CAAA;IACf,yBAAyB;IACzB,UAAU,EAAE,UAAU,CAAA;IACtB,yEAAyE;IACzE,QAAQ,EAAE;QACT;;;;WAIG;QACH,UAAU,EAAE;YACX,KAAK,EAAE,OAAO,CAAA;YACd,MAAM,EAAE,OAAO,CAAA;SACf,CAAA;QACD;;;;;;WAMG;QACH,KAAK,EAAE,OAAO,CAAA;QACd,6OAA6O;QAC7O,MAAM,EAAE,MAAM,GAAG,KAAK,CAAA;KACtB,CAAA;IACD;;OAEG;IACH,OAAO,EAAE,OAAO,CAAA;CAChB,CAAA;AAGD,MAAM,MAAM,UAAU,GAAG;IACxB,UAAU,EAAE,UAAU,CAAA;IACtB,KAAK,EAAE,MAAM,CAAA;CACb,CAAA"}
|
|
@@ -1,24 +1,27 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
1
|
+
import "@alanscodelog/utils";
|
|
2
|
+
import { enumFromArray } from "@alanscodelog/utils/enumFromArray";
|
|
3
|
+
const SUGGESTION_TYPE = enumFromArray([
|
|
4
|
+
"VARIABLE",
|
|
5
|
+
"ARRAY_VALUE",
|
|
6
|
+
"VALUE",
|
|
7
|
+
"PREFIX",
|
|
8
|
+
"BOOLEAN_WORD_OP",
|
|
9
|
+
"BOOLEAN_SYMBOL_OP",
|
|
10
|
+
"BACKTICK",
|
|
11
|
+
"DOUBLEQUOTE",
|
|
12
|
+
"SINGLEQUOTE",
|
|
13
|
+
"PARENL",
|
|
14
|
+
"PARENR",
|
|
15
|
+
"PROPERTY",
|
|
16
|
+
"EXPANDED_PROPERTY_OPERATOR",
|
|
17
|
+
"CUSTOM_PROPERTY_OPERATOR",
|
|
18
|
+
"PROPERTY_SEP",
|
|
19
|
+
"BRAKCETR",
|
|
20
|
+
"REGEX",
|
|
21
|
+
"REGEX_FLAGS"
|
|
22
|
+
/** This is not an oversight, I haven't figured out a fast way to detect left bracket errors. */
|
|
23
|
+
// BRAKCETL = "BRAKCETL",
|
|
24
|
+
]);
|
|
22
25
|
export {
|
|
23
26
|
SUGGESTION_TYPE
|
|
24
27
|
};
|
package/dist/types/errors.d.ts
CHANGED
|
@@ -1,20 +1,22 @@
|
|
|
1
|
+
import { type EnumLike } from "@alanscodelog/utils";
|
|
1
2
|
import type { ParserOptions } from "./parser.js";
|
|
2
|
-
export declare
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
}
|
|
7
|
-
export type
|
|
8
|
-
export type
|
|
9
|
-
|
|
3
|
+
export declare const PARSER_ERROR: {
|
|
4
|
+
POSITION_ERROR: "PARSER.POSITION_ERROR";
|
|
5
|
+
CONFLICTING_OPTIONS_ERROR: "PARSER.CONFLICTING_OPTIONS_ERROR";
|
|
6
|
+
OPTION_REQUIRED_ERROR: "PARSER.OPTION_REQUIRED_ERROR";
|
|
7
|
+
};
|
|
8
|
+
export type ParserError = EnumLike<typeof PARSER_ERROR>;
|
|
9
|
+
export type ErrorInfo<T extends ParserError> = T extends ParserError ? ErrorCodesInfo[T] : never;
|
|
10
|
+
export type ErrorCodesInfo = {
|
|
11
|
+
[PARSER_ERROR.POSITION_ERROR]: {
|
|
10
12
|
start?: number;
|
|
11
13
|
end?: number;
|
|
12
14
|
};
|
|
13
|
-
[
|
|
15
|
+
[PARSER_ERROR.CONFLICTING_OPTIONS_ERROR]: {
|
|
14
16
|
prohibited: string[];
|
|
15
17
|
invalid: string;
|
|
16
18
|
};
|
|
17
|
-
[
|
|
19
|
+
[PARSER_ERROR.OPTION_REQUIRED_ERROR]: {
|
|
18
20
|
options?: (keyof ParserOptions)[];
|
|
19
21
|
requires: keyof ParserOptions;
|
|
20
22
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/types/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAGhD,
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/types/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAGnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAGhD,eAAO,MAAM,YAAY;;;;CAIZ,CAAA;AAEb,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,YAAY,CAAC,CAAA;AAGvD,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,WAAW,IAC1C,CAAC,SAAS,WAAW,GACnB,cAAc,CAAC,CAAC,CAAC,GACjB,KAAK,CAAA;AAGR,MAAM,MAAM,cAAc,GAAG;IAC5B,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE;QAC9B,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,GAAG,CAAC,EAAE,MAAM,CAAA;KACZ,CAAA;IACD,CAAC,YAAY,CAAC,yBAAyB,CAAC,EAAE;QACzC,UAAU,EAAE,MAAM,EAAE,CAAA;QACpB,OAAO,EAAE,MAAM,CAAA;KACf,CAAA;IACD,CAAC,YAAY,CAAC,qBAAqB,CAAC,EAAE;QACrC,OAAO,CAAC,EAAE,CAAC,MAAM,aAAa,CAAC,EAAE,CAAA;QACjC,QAAQ,EAAE,MAAM,aAAa,CAAA;KAC7B,CAAA;CACD,CAAA"}
|
package/dist/types/errors.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import "@alanscodelog/utils";
|
|
2
|
+
import { enumFromArray } from "@alanscodelog/utils/enumFromArray";
|
|
3
|
+
const PARSER_ERROR = enumFromArray([
|
|
4
|
+
"POSITION_ERROR",
|
|
5
|
+
"CONFLICTING_OPTIONS_ERROR",
|
|
6
|
+
"OPTION_REQUIRED_ERROR"
|
|
7
|
+
], "PARSER.");
|
|
7
8
|
export {
|
|
8
|
-
|
|
9
|
+
PARSER_ERROR
|
|
9
10
|
};
|
package/dist/types/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { AST_TYPE, TOKEN_TYPE } from "./ast.js";
|
|
2
2
|
import { SUGGESTION_TYPE } from "./autocomplete.js";
|
|
3
|
-
import {
|
|
3
|
+
import { PARSER_ERROR } from "./errors.js";
|
|
4
4
|
export {
|
|
5
5
|
AST_TYPE,
|
|
6
|
-
|
|
6
|
+
PARSER_ERROR,
|
|
7
7
|
SUGGESTION_TYPE,
|
|
8
8
|
TOKEN_TYPE
|
|
9
9
|
};
|
package/dist/types/parser.d.ts
CHANGED
|
@@ -415,9 +415,9 @@ export type ValueQuery = {
|
|
|
415
415
|
/** {@link ParserOptions}["valueValidator"] */
|
|
416
416
|
export type ValidationQuery = Omit<ValueQuery, "value" | "operator" | "prefix" | "regexFlags" | "property"> & {
|
|
417
417
|
value?: VariableNode | ArrayNode;
|
|
418
|
-
operator?: ValidToken<TOKEN_TYPE.VALUE | TOKEN_TYPE.OP_CUSTOM>;
|
|
419
|
-
prefix?: ValidToken<TOKEN_TYPE.VALUE>;
|
|
420
|
-
regexFlags?: ValidToken<TOKEN_TYPE.VALUE>;
|
|
418
|
+
operator?: ValidToken<typeof TOKEN_TYPE.VALUE | typeof TOKEN_TYPE.OP_CUSTOM>;
|
|
419
|
+
prefix?: ValidToken<typeof TOKEN_TYPE.VALUE>;
|
|
420
|
+
regexFlags?: ValidToken<typeof TOKEN_TYPE.VALUE>;
|
|
421
421
|
property: VariableNode[];
|
|
422
422
|
/** The property as would be passed to the {@link ParserOptions}["valueComparer"] function (i.e. joined as a string using the {@link ParseOptions}["prefixApplier"] ) */
|
|
423
423
|
propertyName?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/types/parser.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/types/parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { unreachable } from "@alanscodelog/utils/unreachable
|
|
1
|
+
import { unreachable } from "@alanscodelog/utils/unreachable";
|
|
2
2
|
import { isNode } from "./isNode.js";
|
|
3
3
|
import { isToken } from "./isToken.js";
|
|
4
4
|
import { AST_TYPE } from "../types/ast.js";
|
|
5
5
|
function extractTokens(ast) {
|
|
6
|
-
var _a, _b, _c;
|
|
7
6
|
if (isToken(ast) && !ast.valid) {
|
|
8
7
|
return [ast];
|
|
9
8
|
}
|
|
@@ -11,7 +10,7 @@ function extractTokens(ast) {
|
|
|
11
10
|
const prefix = ast.prefix ? [ast.prefix] : [];
|
|
12
11
|
const quoteR = ast.quote ? [ast.quote.right] : [];
|
|
13
12
|
const quoteL = ast.quote ? [ast.quote.left] : [];
|
|
14
|
-
const quoteFlags =
|
|
13
|
+
const quoteFlags = ast.quote?.flags ? [ast.quote.flags] : [];
|
|
15
14
|
return [...prefix, ...quoteL, ast.value, ...quoteR, ...quoteFlags];
|
|
16
15
|
}
|
|
17
16
|
if (ast.type === AST_TYPE.CONDITION) {
|
|
@@ -19,8 +18,8 @@ function extractTokens(ast) {
|
|
|
19
18
|
const operator = ast.operator ? [ast.operator] : [];
|
|
20
19
|
const property = ast.property ? extractTokens(ast.property) : [];
|
|
21
20
|
const propertyOperator = ast.propertyOperator ? [ast.propertyOperator] : [];
|
|
22
|
-
const sepL =
|
|
23
|
-
const sepR =
|
|
21
|
+
const sepL = ast.sep?.left ? [ast.sep.left] : [];
|
|
22
|
+
const sepR = ast.sep?.right ? [ast.sep.right] : [];
|
|
24
23
|
return [...operator, ...property, ...sepL, ...propertyOperator, ...sepR, ...value];
|
|
25
24
|
}
|
|
26
25
|
if (ast.type === AST_TYPE.GROUP) {
|