rawsql-ts 0.4.0-beta → 0.6.0-beta
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 +74 -9
- package/dist/esm/models/BinarySelectQuery.js +10 -0
- package/dist/esm/models/BinarySelectQuery.js.map +1 -1
- package/dist/esm/models/Clause.js +104 -6
- package/dist/esm/models/Clause.js.map +1 -1
- package/dist/esm/models/CreateTableQuery.js +1 -1
- package/dist/esm/models/CreateTableQuery.js.map +1 -1
- package/dist/esm/models/InsertQuery.js +2 -9
- package/dist/esm/models/InsertQuery.js.map +1 -1
- package/dist/esm/models/SelectQuery.js.map +1 -1
- package/dist/esm/models/SimpleSelectQuery.js +10 -0
- package/dist/esm/models/SimpleSelectQuery.js.map +1 -1
- package/dist/esm/models/UpdateQuery.js +25 -0
- package/dist/esm/models/UpdateQuery.js.map +1 -0
- package/dist/esm/models/ValueComponent.js +34 -15
- package/dist/esm/models/ValueComponent.js.map +1 -1
- package/dist/esm/models/ValuesQuery.js +10 -0
- package/dist/esm/models/ValuesQuery.js.map +1 -1
- package/dist/esm/parsers/FullNameParser.js +89 -0
- package/dist/esm/parsers/FullNameParser.js.map +1 -0
- package/dist/esm/parsers/FunctionExpressionParser.js +33 -32
- package/dist/esm/parsers/FunctionExpressionParser.js.map +1 -1
- package/dist/esm/parsers/IdentifierParser.js +5 -30
- package/dist/esm/parsers/IdentifierParser.js.map +1 -1
- package/dist/esm/parsers/InsertQueryParser.js +6 -27
- package/dist/esm/parsers/InsertQueryParser.js.map +1 -1
- package/dist/esm/parsers/ReturningClauseParser.js +31 -0
- package/dist/esm/parsers/ReturningClauseParser.js.map +1 -0
- package/dist/esm/parsers/SetClauseParser.js +39 -0
- package/dist/esm/parsers/SetClauseParser.js.map +1 -0
- package/dist/esm/parsers/SourceExpressionParser.js +19 -0
- package/dist/esm/parsers/SourceExpressionParser.js.map +1 -1
- package/dist/esm/parsers/SourceParser.js +16 -8
- package/dist/esm/parsers/SourceParser.js.map +1 -1
- package/dist/esm/parsers/UpdateClauseParser.js +17 -0
- package/dist/esm/parsers/UpdateClauseParser.js.map +1 -0
- package/dist/esm/parsers/UpdateQueryParser.js +84 -0
- package/dist/esm/parsers/UpdateQueryParser.js.map +1 -0
- package/dist/esm/parsers/ValueParser.js +13 -11
- package/dist/esm/parsers/ValueParser.js.map +1 -1
- package/dist/esm/transformers/CTEDisabler.js +2 -2
- package/dist/esm/transformers/CTEDisabler.js.map +1 -1
- package/dist/esm/transformers/Formatter.js +152 -25
- package/dist/esm/transformers/Formatter.js.map +1 -1
- package/dist/esm/transformers/ParameterCollector.js +33 -0
- package/dist/esm/transformers/ParameterCollector.js.map +1 -0
- package/dist/esm/transformers/QueryBuilder.js +54 -6
- package/dist/esm/transformers/QueryBuilder.js.map +1 -1
- package/dist/esm/transformers/SelectValueCollector.js +4 -4
- package/dist/esm/transformers/UpstreamSelectQueryFinder.js +1 -1
- package/dist/esm/types/models/BinarySelectQuery.d.ts +7 -1
- package/dist/esm/types/models/Clause.d.ts +58 -4
- package/dist/esm/types/models/InsertQuery.d.ts +4 -9
- package/dist/esm/types/models/SelectQuery.d.ts +4 -1
- package/dist/esm/types/models/SimpleSelectQuery.d.ts +7 -1
- package/dist/esm/types/models/UpdateQuery.d.ts +31 -0
- package/dist/esm/types/models/ValueComponent.d.ts +14 -5
- package/dist/esm/types/models/ValuesQuery.d.ts +8 -1
- package/dist/esm/types/parsers/FullNameParser.d.ts +26 -0
- package/dist/esm/types/parsers/InsertQueryParser.d.ts +0 -1
- package/dist/esm/types/parsers/ReturningClauseParser.d.ts +12 -0
- package/dist/esm/types/parsers/SetClauseParser.d.ts +11 -0
- package/dist/esm/types/parsers/SourceExpressionParser.d.ts +8 -0
- package/dist/esm/types/parsers/SourceParser.d.ts +14 -0
- package/dist/esm/types/parsers/UpdateClauseParser.d.ts +15 -0
- package/dist/esm/types/parsers/UpdateQueryParser.d.ts +16 -0
- package/dist/esm/types/transformers/Formatter.d.ts +18 -3
- package/dist/esm/types/transformers/ParameterCollector.d.ts +12 -0
- package/dist/esm/types/transformers/QueryBuilder.d.ts +9 -0
- package/dist/esm/types/utils/ParameterHelper.d.ts +14 -0
- package/dist/esm/utils/ParameterHelper.js +27 -0
- package/dist/esm/utils/ParameterHelper.js.map +1 -0
- package/dist/models/BinarySelectQuery.d.ts +7 -1
- package/dist/models/BinarySelectQuery.js +10 -0
- package/dist/models/BinarySelectQuery.js.map +1 -1
- package/dist/models/Clause.d.ts +58 -4
- package/dist/models/Clause.js +110 -7
- package/dist/models/Clause.js.map +1 -1
- package/dist/models/CreateTableQuery.js +1 -1
- package/dist/models/CreateTableQuery.js.map +1 -1
- package/dist/models/InsertQuery.d.ts +4 -9
- package/dist/models/InsertQuery.js +2 -9
- package/dist/models/InsertQuery.js.map +1 -1
- package/dist/models/SelectQuery.d.ts +4 -1
- package/dist/models/SelectQuery.js.map +1 -1
- package/dist/models/SimpleSelectQuery.d.ts +7 -1
- package/dist/models/SimpleSelectQuery.js +10 -0
- package/dist/models/SimpleSelectQuery.js.map +1 -1
- package/dist/models/UpdateQuery.d.ts +31 -0
- package/dist/models/UpdateQuery.js +29 -0
- package/dist/models/UpdateQuery.js.map +1 -0
- package/dist/models/ValueComponent.d.ts +14 -5
- package/dist/models/ValueComponent.js +34 -15
- package/dist/models/ValueComponent.js.map +1 -1
- package/dist/models/ValuesQuery.d.ts +8 -1
- package/dist/models/ValuesQuery.js +10 -0
- package/dist/models/ValuesQuery.js.map +1 -1
- package/dist/parsers/FullNameParser.d.ts +26 -0
- package/dist/parsers/FullNameParser.js +93 -0
- package/dist/parsers/FullNameParser.js.map +1 -0
- package/dist/parsers/FunctionExpressionParser.js +32 -31
- package/dist/parsers/FunctionExpressionParser.js.map +1 -1
- package/dist/parsers/IdentifierParser.js +5 -30
- package/dist/parsers/IdentifierParser.js.map +1 -1
- package/dist/parsers/InsertQueryParser.d.ts +0 -1
- package/dist/parsers/InsertQueryParser.js +6 -27
- package/dist/parsers/InsertQueryParser.js.map +1 -1
- package/dist/parsers/ReturningClauseParser.d.ts +12 -0
- package/dist/parsers/ReturningClauseParser.js +35 -0
- package/dist/parsers/ReturningClauseParser.js.map +1 -0
- package/dist/parsers/SetClauseParser.d.ts +11 -0
- package/dist/parsers/SetClauseParser.js +43 -0
- package/dist/parsers/SetClauseParser.js.map +1 -0
- package/dist/parsers/SourceExpressionParser.d.ts +8 -0
- package/dist/parsers/SourceExpressionParser.js +19 -0
- package/dist/parsers/SourceExpressionParser.js.map +1 -1
- package/dist/parsers/SourceParser.d.ts +14 -0
- package/dist/parsers/SourceParser.js +16 -8
- package/dist/parsers/SourceParser.js.map +1 -1
- package/dist/parsers/UpdateClauseParser.d.ts +15 -0
- package/dist/parsers/UpdateClauseParser.js +21 -0
- package/dist/parsers/UpdateClauseParser.js.map +1 -0
- package/dist/parsers/UpdateQueryParser.d.ts +16 -0
- package/dist/parsers/UpdateQueryParser.js +88 -0
- package/dist/parsers/UpdateQueryParser.js.map +1 -0
- package/dist/parsers/ValueParser.js +13 -11
- package/dist/parsers/ValueParser.js.map +1 -1
- package/dist/transformers/CTEDisabler.js +2 -2
- package/dist/transformers/CTEDisabler.js.map +1 -1
- package/dist/transformers/Formatter.d.ts +18 -3
- package/dist/transformers/Formatter.js +152 -25
- package/dist/transformers/Formatter.js.map +1 -1
- package/dist/transformers/ParameterCollector.d.ts +12 -0
- package/dist/transformers/ParameterCollector.js +37 -0
- package/dist/transformers/ParameterCollector.js.map +1 -0
- package/dist/transformers/QueryBuilder.d.ts +9 -0
- package/dist/transformers/QueryBuilder.js +53 -5
- package/dist/transformers/QueryBuilder.js.map +1 -1
- package/dist/transformers/SelectValueCollector.js +4 -4
- package/dist/transformers/UpstreamSelectQueryFinder.js +1 -1
- package/dist/utils/ParameterHelper.d.ts +14 -0
- package/dist/utils/ParameterHelper.js +31 -0
- package/dist/utils/ParameterHelper.js.map +1 -0
- package/package.json +2 -2
- package/dist/esm/types/utils/extractNamespacesAndName.d.ts +0 -5
- package/dist/esm/types/utils/parseEscapedOrDotSeparatedIdentifiers.d.ts +0 -9
- package/dist/esm/utils/extractNamespacesAndName.js +0 -16
- package/dist/esm/utils/extractNamespacesAndName.js.map +0 -1
- package/dist/esm/utils/parseEscapedOrDotSeparatedIdentifiers.js +0 -39
- package/dist/esm/utils/parseEscapedOrDotSeparatedIdentifiers.js.map +0 -1
- package/dist/utils/extractNamespacesAndName.d.ts +0 -5
- package/dist/utils/extractNamespacesAndName.js +0 -18
- package/dist/utils/extractNamespacesAndName.js.map +0 -1
- package/dist/utils/parseEscapedOrDotSeparatedIdentifiers.d.ts +0 -9
- package/dist/utils/parseEscapedOrDotSeparatedIdentifiers.js +0 -42
- package/dist/utils/parseEscapedOrDotSeparatedIdentifiers.js.map +0 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ValueComponent.js","sourceRoot":"","sources":["../../../src/models/ValueComponent.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAuB9C,MAAM,OAAO,WAAY,SAAQ,YAAY;IAGzC,YAAY,WAAwB;QAChC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACnC,CAAC;;AALM,gBAAI,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;AAQxC,MAAM,OAAO,SAAU,SAAQ,YAAY;IAGvC,YAAY,MAAwB;QAChC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;;AALM,cAAI,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AAQtC,MAAM,OAAO,eAAgB,SAAQ,YAAY;IAM7C,YAAY,
|
1
|
+
{"version":3,"file":"ValueComponent.js","sourceRoot":"","sources":["../../../src/models/ValueComponent.ts"],"names":[],"mappings":"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"}
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import { ParameterHelper } from "../utils/ParameterHelper";
|
1
2
|
import { QueryBuilder } from "../transformers/QueryBuilder";
|
2
3
|
import { SqlComponent } from "./SqlComponent";
|
3
4
|
/**
|
@@ -12,6 +13,15 @@ export class ValuesQuery extends SqlComponent {
|
|
12
13
|
toSimpleSelectQuery() {
|
13
14
|
return QueryBuilder.buildSimpleQuery(this);
|
14
15
|
}
|
16
|
+
/**
|
17
|
+
* Sets the value of a parameter by name in this query.
|
18
|
+
* @param name Parameter name
|
19
|
+
* @param value Value to set
|
20
|
+
*/
|
21
|
+
setParameter(name, value) {
|
22
|
+
ParameterHelper.set(this, name, value);
|
23
|
+
return this;
|
24
|
+
}
|
15
25
|
}
|
16
26
|
ValuesQuery.kind = Symbol("ValuesQuery");
|
17
27
|
//# sourceMappingURL=ValuesQuery.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ValuesQuery.js","sourceRoot":"","sources":["../../../src/models/ValuesQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;
|
1
|
+
{"version":3,"file":"ValuesQuery.js","sourceRoot":"","sources":["../../../src/models/ValuesQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAG5D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C;;GAEG;AACH,MAAM,OAAO,WAAY,SAAQ,YAAY;IAUzC,YAAY,MAAyB,EAAE,gBAAiC,IAAI;QACxE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACvC,CAAC;IAEM,mBAAmB;QACtB,OAAO,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED;;;;SAIK;IACE,YAAY,CAAC,IAAY,EAAE,KAAU;QACxC,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC;IAChB,CAAC;;AA3BM,gBAAI,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC"}
|
@@ -0,0 +1,89 @@
|
|
1
|
+
import { TokenType } from "../models/Lexeme";
|
2
|
+
import { IdentifierString } from "../models/ValueComponent";
|
3
|
+
import { SqlTokenizer } from "./SqlTokenizer";
|
4
|
+
/**
|
5
|
+
* Utility class for parsing fully qualified names (e.g. db.schema.table or db.schema.table.column_name)
|
6
|
+
* This can be used for both table and column references.
|
7
|
+
*/
|
8
|
+
export class FullNameParser {
|
9
|
+
/**
|
10
|
+
* Parses a fully qualified name from lexemes, returning namespaces, table, and new index.
|
11
|
+
*/
|
12
|
+
static parseFromLexeme(lexemes, index) {
|
13
|
+
const { identifiers, newIndex } = FullNameParser.parseEscapedOrDotSeparatedIdentifiers(lexemes, index);
|
14
|
+
const { namespaces, name } = FullNameParser.extractNamespacesAndName(identifiers);
|
15
|
+
return { namespaces, name: new IdentifierString(name), newIndex };
|
16
|
+
}
|
17
|
+
/**
|
18
|
+
* Parses a fully qualified name from a string (e.g. 'db.schema.table')
|
19
|
+
* Returns { namespaces, name }
|
20
|
+
*/
|
21
|
+
static parse(str) {
|
22
|
+
const tokenizer = new SqlTokenizer(str);
|
23
|
+
const lexemes = tokenizer.readLexmes();
|
24
|
+
const result = this.parseFromLexeme(lexemes, 0);
|
25
|
+
if (result.newIndex < lexemes.length) {
|
26
|
+
// Use a context-agnostic error message since FullNameParser is used in multiple query types
|
27
|
+
throw new Error(`Syntax error: Unexpected token "${lexemes[result.newIndex].value}" at position ${result.newIndex}. The name is complete but additional tokens were found.`);
|
28
|
+
}
|
29
|
+
return { namespaces: result.namespaces, name: result.name };
|
30
|
+
}
|
31
|
+
// Parses SQL Server-style escaped identifiers ([table]) and dot-separated identifiers, including namespaced wildcards (e.g., db.schema.*, [db].[schema].*)
|
32
|
+
static parseEscapedOrDotSeparatedIdentifiers(lexemes, index) {
|
33
|
+
let idx = index;
|
34
|
+
const identifiers = [];
|
35
|
+
while (idx < lexemes.length) {
|
36
|
+
if (lexemes[idx].type & TokenType.OpenBracket) {
|
37
|
+
idx++; // skip [
|
38
|
+
if (idx >= lexemes.length || !((lexemes[idx].type & TokenType.Identifier) || (lexemes[idx].type & TokenType.Command))) {
|
39
|
+
throw new Error(`Expected identifier after '[' at position ${idx}`);
|
40
|
+
}
|
41
|
+
identifiers.push(lexemes[idx].value);
|
42
|
+
idx++;
|
43
|
+
if (idx >= lexemes.length || lexemes[idx].value !== "]") {
|
44
|
+
throw new Error(`Expected closing ']' after identifier at position ${idx}`);
|
45
|
+
}
|
46
|
+
idx++; // skip ]
|
47
|
+
}
|
48
|
+
else if (lexemes[idx].type & TokenType.Identifier) {
|
49
|
+
identifiers.push(lexemes[idx].value);
|
50
|
+
idx++;
|
51
|
+
}
|
52
|
+
else if (lexemes[idx].type & TokenType.Function) {
|
53
|
+
identifiers.push(lexemes[idx].value);
|
54
|
+
idx++;
|
55
|
+
}
|
56
|
+
else if (lexemes[idx].type & TokenType.Type) {
|
57
|
+
identifiers.push(lexemes[idx].value);
|
58
|
+
idx++;
|
59
|
+
}
|
60
|
+
else if (lexemes[idx].value === "*") {
|
61
|
+
// The wildcard '*' is always treated as the terminal part of a qualified name in SQL (e.g., db.schema.* or [db].[schema].*).
|
62
|
+
// No valid SQL syntax allows a wildcard in the middle of a multi-part name.
|
63
|
+
identifiers.push(lexemes[idx].value);
|
64
|
+
idx++;
|
65
|
+
break;
|
66
|
+
}
|
67
|
+
// Handle dot for schema.table or db.schema.table
|
68
|
+
if (idx < lexemes.length && (lexemes[idx].type & TokenType.Dot)) {
|
69
|
+
idx++; // skip dot
|
70
|
+
}
|
71
|
+
else {
|
72
|
+
break;
|
73
|
+
}
|
74
|
+
}
|
75
|
+
return { identifiers, newIndex: idx };
|
76
|
+
}
|
77
|
+
// Utility to extract namespaces and the final name from an array of identifiers
|
78
|
+
// Example: ["db", "schema", "users"] => { namespaces: ["db", "schema"], name: "users" }
|
79
|
+
static extractNamespacesAndName(identifiers) {
|
80
|
+
if (!identifiers || identifiers.length === 0) {
|
81
|
+
throw new Error("Identifier list is empty");
|
82
|
+
}
|
83
|
+
if (identifiers.length === 1) {
|
84
|
+
return { namespaces: null, name: identifiers[0] };
|
85
|
+
}
|
86
|
+
return { namespaces: identifiers.slice(0, -1), name: identifiers[identifiers.length - 1] };
|
87
|
+
}
|
88
|
+
}
|
89
|
+
//# sourceMappingURL=FullNameParser.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"FullNameParser.js","sourceRoot":"","sources":["../../../src/parsers/FullNameParser.ts"],"names":[],"mappings":"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"}
|
@@ -1,7 +1,8 @@
|
|
1
1
|
import { TokenType } from "../models/Lexeme";
|
2
|
-
import { FunctionCall, BinaryExpression, TypeValue, CastExpression, BetweenExpression } from "../models/ValueComponent";
|
2
|
+
import { FunctionCall, BinaryExpression, TypeValue, CastExpression, BetweenExpression, RawString } from "../models/ValueComponent";
|
3
3
|
import { OverExpressionParser } from "./OverExpressionParser";
|
4
4
|
import { ValueParser } from "./ValueParser";
|
5
|
+
import { FullNameParser } from "./FullNameParser";
|
5
6
|
export class FunctionExpressionParser {
|
6
7
|
static parseFromLexeme(lexemes, index) {
|
7
8
|
let idx = index;
|
@@ -72,10 +73,12 @@ export class FunctionExpressionParser {
|
|
72
73
|
}
|
73
74
|
static parseFunctionCall(lexemes, index) {
|
74
75
|
let idx = index;
|
75
|
-
//
|
76
|
-
|
77
|
-
const
|
78
|
-
|
76
|
+
// Parse namespaced function name (e.g., myschema.myfunc, dbo.util.myfunc)
|
77
|
+
// Use FullNameParser to get namespaces and function name
|
78
|
+
const fullNameResult = FullNameParser.parseFromLexeme(lexemes, idx);
|
79
|
+
const namespaces = fullNameResult.namespaces;
|
80
|
+
const name = fullNameResult.name;
|
81
|
+
idx = fullNameResult.newIndex;
|
79
82
|
if (idx < lexemes.length && (lexemes[idx].type & TokenType.OpenParen)) {
|
80
83
|
// General argument parsing
|
81
84
|
const arg = ValueParser.parseArgument(TokenType.OpenParen, TokenType.CloseParen, lexemes, idx);
|
@@ -83,22 +86,25 @@ export class FunctionExpressionParser {
|
|
83
86
|
if (idx < lexemes.length && lexemes[idx].value === "over") {
|
84
87
|
const over = OverExpressionParser.parseFromLexeme(lexemes, idx);
|
85
88
|
idx = over.newIndex;
|
86
|
-
const value = new FunctionCall(
|
89
|
+
const value = new FunctionCall(namespaces, name.name, arg.value, over.value);
|
87
90
|
return { value, newIndex: idx };
|
88
91
|
}
|
89
92
|
else {
|
90
|
-
const value = new FunctionCall(
|
93
|
+
const value = new FunctionCall(namespaces, name.name, arg.value, null);
|
91
94
|
return { value, newIndex: idx };
|
92
95
|
}
|
93
96
|
}
|
94
97
|
else {
|
95
|
-
throw new Error(`Expected opening parenthesis after function name '${
|
98
|
+
throw new Error(`Expected opening parenthesis after function name '${name.name}' at index ${idx}`);
|
96
99
|
}
|
97
100
|
}
|
98
101
|
static parseKeywordFunction(lexemes, index, keywords) {
|
99
102
|
let idx = index;
|
100
|
-
|
101
|
-
idx
|
103
|
+
// Parse function name and namespaces at the beginning for consistent usage
|
104
|
+
const fullNameResult = FullNameParser.parseFromLexeme(lexemes, idx);
|
105
|
+
const namespaces = fullNameResult.namespaces;
|
106
|
+
const name = fullNameResult.name;
|
107
|
+
idx = fullNameResult.newIndex;
|
102
108
|
if (idx < lexemes.length && (lexemes[idx].type & TokenType.OpenParen)) {
|
103
109
|
idx++;
|
104
110
|
const input = ValueParser.parseFromLexeme(lexemes, idx);
|
@@ -108,7 +114,7 @@ export class FunctionExpressionParser {
|
|
108
114
|
if (idx < lexemes.length && (lexemes[idx].type & TokenType.Comma)) {
|
109
115
|
return this.parseFunctionCall(lexemes, index);
|
110
116
|
}
|
111
|
-
// Check keywords
|
117
|
+
// Check for required/optional keywords in function arguments
|
112
118
|
for (const { key, required } of keywords) {
|
113
119
|
if (idx < lexemes.length && (lexemes[idx].type & TokenType.Command) && lexemes[idx].value === key) {
|
114
120
|
idx++;
|
@@ -129,46 +135,41 @@ export class FunctionExpressionParser {
|
|
129
135
|
}
|
130
136
|
if (idx < lexemes.length && (lexemes[idx].type & TokenType.CloseParen)) {
|
131
137
|
idx++;
|
138
|
+
// Use the previously parsed namespaces and function name for consistency
|
132
139
|
if (idx < lexemes.length && lexemes[idx].value === "over") {
|
133
140
|
idx++;
|
134
141
|
const over = OverExpressionParser.parseFromLexeme(lexemes, idx);
|
135
142
|
idx = over.newIndex;
|
136
|
-
const value = new FunctionCall(
|
143
|
+
const value = new FunctionCall(namespaces, name.name, arg, over.value);
|
137
144
|
return { value, newIndex: idx };
|
138
145
|
}
|
139
146
|
else {
|
140
|
-
const value = new FunctionCall(
|
147
|
+
const value = new FunctionCall(namespaces, name.name, arg, null);
|
141
148
|
return { value, newIndex: idx };
|
142
149
|
}
|
143
150
|
}
|
144
151
|
else {
|
145
|
-
throw new Error(`Missing closing parenthesis for function '${
|
152
|
+
throw new Error(`Missing closing parenthesis for function '${name.name}' at index ${idx}`);
|
146
153
|
}
|
147
154
|
}
|
148
155
|
else {
|
149
|
-
throw new Error(`Missing opening parenthesis for function '${
|
156
|
+
throw new Error(`Missing opening parenthesis for function '${name.name}' at index ${idx}`);
|
150
157
|
}
|
151
158
|
}
|
152
159
|
static parseTypeValue(lexemes, index) {
|
153
160
|
let idx = index;
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
idx
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
}
|
165
|
-
else {
|
166
|
-
// Create TypeValue
|
167
|
-
const value = new TypeValue(typeName);
|
168
|
-
return { value, newIndex: idx };
|
169
|
-
}
|
161
|
+
const { namespaces, name, newIndex } = FullNameParser.parseFromLexeme(lexemes, idx);
|
162
|
+
idx = newIndex;
|
163
|
+
if (idx < lexemes.length && (lexemes[idx].type & TokenType.OpenParen)) {
|
164
|
+
const arg = ValueParser.parseArgument(TokenType.OpenParen, TokenType.CloseParen, lexemes, idx);
|
165
|
+
idx = arg.newIndex;
|
166
|
+
const value = new TypeValue(namespaces, new RawString(name.name), arg.value);
|
167
|
+
return { value, newIndex: idx };
|
168
|
+
}
|
169
|
+
else {
|
170
|
+
const value = new TypeValue(namespaces, new RawString(name.name));
|
171
|
+
return { value, newIndex: idx };
|
170
172
|
}
|
171
|
-
throw new Error(`Expected type value at index ${idx}`);
|
172
173
|
}
|
173
174
|
}
|
174
175
|
//# sourceMappingURL=FunctionExpressionParser.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"FunctionExpressionParser.js","sourceRoot":"","sources":["../../../src/parsers/FunctionExpressionParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAkB,gBAAgB,EAAE,SAAS,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;
|
1
|
+
{"version":3,"file":"FunctionExpressionParser.js","sourceRoot":"","sources":["../../../src/parsers/FunctionExpressionParser.ts"],"names":[],"mappings":"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"}
|
@@ -1,36 +1,11 @@
|
|
1
|
-
import {
|
2
|
-
import { TokenType } from "../models/Lexeme";
|
1
|
+
import { FullNameParser } from "./FullNameParser";
|
3
2
|
import { ColumnReference } from "../models/ValueComponent";
|
4
3
|
export class IdentifierParser {
|
5
4
|
static parseFromLexeme(lexemes, index) {
|
6
|
-
//
|
7
|
-
|
8
|
-
const
|
9
|
-
|
10
|
-
identifiers.push(lexemes[idx].value);
|
11
|
-
idx++;
|
12
|
-
// Look for dot and identifier pattern
|
13
|
-
// support wildcard '*' as identifier (e.g. select t.* from t)
|
14
|
-
while (idx < lexemes.length &&
|
15
|
-
idx + 1 < lexemes.length &&
|
16
|
-
(lexemes[idx].type & TokenType.Dot) &&
|
17
|
-
((lexemes[idx + 1].type & TokenType.Identifier) || lexemes[idx + 1].value === "*")) {
|
18
|
-
// Skip the dot and add the next identifier
|
19
|
-
idx++;
|
20
|
-
identifiers.push(lexemes[idx].value);
|
21
|
-
idx++;
|
22
|
-
}
|
23
|
-
if (identifiers.length > 1) {
|
24
|
-
// If there are multiple identifiers, treat it as a column reference
|
25
|
-
const { namespaces, name } = extractNamespacesAndName(identifiers);
|
26
|
-
const value = new ColumnReference(namespaces, name);
|
27
|
-
return { value, newIndex: idx };
|
28
|
-
}
|
29
|
-
else {
|
30
|
-
// If there is a single identifier, treat it as a simple identifier
|
31
|
-
const value = new ColumnReference(null, identifiers[0]);
|
32
|
-
return { value, newIndex: idx };
|
33
|
-
}
|
5
|
+
// Use FullNameParser to robustly parse qualified identifiers, including wildcards and escaped names.
|
6
|
+
const { namespaces, name, newIndex } = FullNameParser.parseFromLexeme(lexemes, index);
|
7
|
+
const value = new ColumnReference(namespaces, name);
|
8
|
+
return { value, newIndex };
|
34
9
|
}
|
35
10
|
}
|
36
11
|
//# sourceMappingURL=IdentifierParser.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"IdentifierParser.js","sourceRoot":"","sources":["../../../src/parsers/IdentifierParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
1
|
+
{"version":3,"file":"IdentifierParser.js","sourceRoot":"","sources":["../../../src/parsers/IdentifierParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,eAAe,EAAkB,MAAM,0BAA0B,CAAC;AAE3E,MAAM,OAAO,gBAAgB;IAClB,MAAM,CAAC,eAAe,CAAC,OAAiB,EAAE,KAAa;QAC1D,qGAAqG;QACrG,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACtF,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QACpD,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAC/B,CAAC;CACJ"}
|
@@ -5,9 +5,9 @@ import { TokenType } from "../models/Lexeme";
|
|
5
5
|
import { SqlTokenizer } from "./SqlTokenizer";
|
6
6
|
import { SelectQueryParser } from "./SelectQueryParser";
|
7
7
|
import { WithClauseParser } from "./WithClauseParser";
|
8
|
-
import { IdentifierString } from "../models/ValueComponent";
|
9
8
|
import { SimpleSelectQuery } from "../models/SimpleSelectQuery";
|
10
|
-
import {
|
9
|
+
import { SourceExpressionParser } from "./SourceExpressionParser";
|
10
|
+
import { InsertClause } from "../models/Clause";
|
11
11
|
export class InsertQueryParser {
|
12
12
|
/**
|
13
13
|
* Parse SQL string to InsertQuery AST.
|
@@ -39,9 +39,9 @@ export class InsertQueryParser {
|
|
39
39
|
throw new Error(`Syntax error at position ${idx}: Expected 'INSERT INTO' but found '${lexemes[idx].value}'.`);
|
40
40
|
}
|
41
41
|
idx++;
|
42
|
-
//
|
43
|
-
const
|
44
|
-
idx =
|
42
|
+
// Parse table and optional alias/schema using SourceExpressionParser
|
43
|
+
const sourceResult = SourceExpressionParser.parseTableSourceFromLexemes(lexemes, idx);
|
44
|
+
idx = sourceResult.newIndex;
|
45
45
|
// Optional columns
|
46
46
|
let columns = [];
|
47
47
|
if (((_a = lexemes[idx]) === null || _a === void 0 ? void 0 : _a.type) === TokenType.OpenParen) {
|
@@ -73,32 +73,11 @@ export class InsertQueryParser {
|
|
73
73
|
idx = selectResult.newIndex;
|
74
74
|
return {
|
75
75
|
value: new InsertQuery({
|
76
|
-
|
77
|
-
table,
|
78
|
-
columns,
|
76
|
+
insertClause: new InsertClause(sourceResult.value, columns),
|
79
77
|
selectQuery: selectResult.value
|
80
78
|
}),
|
81
79
|
newIndex: idx
|
82
80
|
};
|
83
81
|
}
|
84
|
-
// Get fully qualified name and split into namespaces/table
|
85
|
-
static parseFullQualifiedName(lexemes, index) {
|
86
|
-
let idx = index;
|
87
|
-
const fullname = [];
|
88
|
-
fullname.push(lexemes[index].value);
|
89
|
-
idx++;
|
90
|
-
while (idx < lexemes.length && lexemes[idx].type === TokenType.Dot) {
|
91
|
-
idx++; // Skip dot
|
92
|
-
if (idx < lexemes.length) {
|
93
|
-
fullname.push(lexemes[idx].value);
|
94
|
-
idx++;
|
95
|
-
}
|
96
|
-
else {
|
97
|
-
throw new Error(`Syntax error at position ${idx}: Expected identifier after '.' but found end of input.`);
|
98
|
-
}
|
99
|
-
}
|
100
|
-
const { namespaces, name } = extractNamespacesAndName(fullname);
|
101
|
-
return { namespaces, table: new IdentifierString(name), newIndex: idx };
|
102
|
-
}
|
103
82
|
}
|
104
83
|
//# sourceMappingURL=InsertQueryParser.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"InsertQueryParser.js","sourceRoot":"","sources":["../../../src/parsers/InsertQueryParser.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AACrG,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAU,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,
|
1
|
+
{"version":3,"file":"InsertQueryParser.js","sourceRoot":"","sources":["../../../src/parsers/InsertQueryParser.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,31 @@
|
|
1
|
+
// Provides parsing for RETURNING clauses in SQL (used in UPDATE, INSERT, DELETE, etc.)
|
2
|
+
import { TokenType } from "../models/Lexeme";
|
3
|
+
import { IdentifierString } from "../models/ValueComponent";
|
4
|
+
import { ReturningClause } from "../models/Clause";
|
5
|
+
export class ReturningClauseParser {
|
6
|
+
/**
|
7
|
+
* Parse RETURNING clause from lexemes, starting at the given index.
|
8
|
+
* Returns a ReturningClause instance and the new index after parsing.
|
9
|
+
*/
|
10
|
+
static parseFromLexeme(lexemes, index) {
|
11
|
+
var _a, _b, _c;
|
12
|
+
let idx = index;
|
13
|
+
if (((_a = lexemes[idx]) === null || _a === void 0 ? void 0 : _a.value) !== "returning") {
|
14
|
+
throw new Error(`Syntax error at position ${idx}: Expected 'RETURNING' but found '${(_b = lexemes[idx]) === null || _b === void 0 ? void 0 : _b.value}'.`);
|
15
|
+
}
|
16
|
+
idx++;
|
17
|
+
const columns = [];
|
18
|
+
while (idx < lexemes.length && lexemes[idx].type === TokenType.Identifier) {
|
19
|
+
columns.push(new IdentifierString(lexemes[idx].value));
|
20
|
+
idx++;
|
21
|
+
if (((_c = lexemes[idx]) === null || _c === void 0 ? void 0 : _c.type) === TokenType.Comma) {
|
22
|
+
idx++;
|
23
|
+
}
|
24
|
+
else {
|
25
|
+
break;
|
26
|
+
}
|
27
|
+
}
|
28
|
+
return { value: new ReturningClause(columns), newIndex: idx };
|
29
|
+
}
|
30
|
+
}
|
31
|
+
//# sourceMappingURL=ReturningClauseParser.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ReturningClauseParser.js","sourceRoot":"","sources":["../../../src/parsers/ReturningClauseParser.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,OAAO,EAAU,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,OAAO,qBAAqB;IAC9B;;;OAGG;IACI,MAAM,CAAC,eAAe,CAAC,OAAiB,EAAE,KAAa;;QAC1D,IAAI,GAAG,GAAG,KAAK,CAAC;QAChB,IAAI,CAAA,MAAA,OAAO,CAAC,GAAG,CAAC,0CAAE,KAAK,MAAK,WAAW,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,qCAAqC,MAAA,OAAO,CAAC,GAAG,CAAC,0CAAE,KAAK,IAAI,CAAC,CAAC;QACjH,CAAC;QACD,GAAG,EAAE,CAAC;QACN,MAAM,OAAO,GAAuB,EAAE,CAAC;QACvC,OAAO,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,UAAU,EAAE,CAAC;YACxE,OAAO,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACvD,GAAG,EAAE,CAAC;YACN,IAAI,CAAA,MAAA,OAAO,CAAC,GAAG,CAAC,0CAAE,IAAI,MAAK,SAAS,CAAC,KAAK,EAAE,CAAC;gBACzC,GAAG,EAAE,CAAC;YACV,CAAC;iBAAM,CAAC;gBACJ,MAAM;YACV,CAAC;QACL,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,eAAe,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;IAClE,CAAC;CACJ"}
|
@@ -0,0 +1,39 @@
|
|
1
|
+
// Provides parsing for SET clauses in UPDATE queries.
|
2
|
+
import { TokenType } from "../models/Lexeme";
|
3
|
+
import { SetClause, SetClauseItem } from "../models/Clause";
|
4
|
+
import { ValueParser } from "./ValueParser";
|
5
|
+
import { FullNameParser } from "./FullNameParser";
|
6
|
+
/**
|
7
|
+
* Parse SET clause from lexemes (including 'SET' keyword check).
|
8
|
+
*/
|
9
|
+
export class SetClauseParser {
|
10
|
+
static parseFromLexeme(lexemes, idx) {
|
11
|
+
var _a, _b;
|
12
|
+
if (lexemes[idx].value !== "set") {
|
13
|
+
throw new Error(`Syntax error at position ${idx}: Expected 'SET' but found '${lexemes[idx].value}'.`);
|
14
|
+
}
|
15
|
+
idx++;
|
16
|
+
let setClauseItems = [];
|
17
|
+
while (idx < lexemes.length && lexemes[idx].type === TokenType.Identifier) {
|
18
|
+
// Parse fully qualified column name (e.g. table.column, schema.table.column)
|
19
|
+
const { namespaces, name, newIndex } = FullNameParser.parseFromLexeme(lexemes, idx);
|
20
|
+
idx = newIndex;
|
21
|
+
if (((_a = lexemes[idx]) === null || _a === void 0 ? void 0 : _a.type) !== TokenType.Operator || lexemes[idx].value !== "=") {
|
22
|
+
throw new Error(`Syntax error at position ${idx}: Expected '=' after column name in SET clause.`);
|
23
|
+
}
|
24
|
+
idx++;
|
25
|
+
// Parse value expression
|
26
|
+
const value = ValueParser.parseFromLexeme(lexemes, idx);
|
27
|
+
setClauseItems.push(new SetClauseItem({ namespaces, column: name }, value.value));
|
28
|
+
idx = value.newIndex;
|
29
|
+
if (((_b = lexemes[idx]) === null || _b === void 0 ? void 0 : _b.type) === TokenType.Comma) {
|
30
|
+
idx++;
|
31
|
+
}
|
32
|
+
else {
|
33
|
+
break;
|
34
|
+
}
|
35
|
+
}
|
36
|
+
return { setClause: new SetClause(setClauseItems), newIndex: idx };
|
37
|
+
}
|
38
|
+
}
|
39
|
+
//# sourceMappingURL=SetClauseParser.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"SetClauseParser.js","sourceRoot":"","sources":["../../../src/parsers/SetClauseParser.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,OAAO,EAAU,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD;;GAEG;AACH,MAAM,OAAO,eAAe;IACjB,MAAM,CAAC,eAAe,CAAC,OAAiB,EAAE,GAAW;;QACxD,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,+BAA+B,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;QAC1G,CAAC;QAED,GAAG,EAAE,CAAC;QACN,IAAI,cAAc,GAAoB,EAAE,CAAC;QACzC,OAAO,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,UAAU,EAAE,CAAC;YACxE,6EAA6E;YAC7E,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACpF,GAAG,GAAG,QAAQ,CAAC;YAEf,IAAI,CAAA,MAAA,OAAO,CAAC,GAAG,CAAC,0CAAE,IAAI,MAAK,SAAS,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,GAAG,EAAE,CAAC;gBAC1E,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,iDAAiD,CAAC,CAAC;YACtG,CAAC;YACD,GAAG,EAAE,CAAC;YAEN,yBAAyB;YACzB,MAAM,KAAK,GAAG,WAAW,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACxD,cAAc,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;YAClF,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC;YAErB,IAAI,CAAA,MAAA,OAAO,CAAC,GAAG,CAAC,0CAAE,IAAI,MAAK,SAAS,CAAC,KAAK,EAAE,CAAC;gBACzC,GAAG,EAAE,CAAC;YACV,CAAC;iBAAM,CAAC;gBACJ,MAAM;YACV,CAAC;QACL,CAAC;QAED,OAAO,EAAE,SAAS,EAAE,IAAI,SAAS,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;IACvE,CAAC;CACJ"}
|
@@ -1,8 +1,27 @@
|
|
1
1
|
import { SourceExpression } from "../models/Clause";
|
2
|
+
import { SqlTokenizer } from "./SqlTokenizer";
|
2
3
|
import { TokenType } from "../models/Lexeme";
|
3
4
|
import { SourceParser } from "./SourceParser";
|
4
5
|
import { SourceAliasExpressionParser } from "./SourceAliasExpressionParser";
|
5
6
|
export class SourceExpressionParser {
|
7
|
+
/**
|
8
|
+
* Parse SQL string to SourceExpression (e.g. "table", "table as t", "schema.table t")
|
9
|
+
*/
|
10
|
+
static parse(query) {
|
11
|
+
const tokenizer = new SqlTokenizer(query);
|
12
|
+
const lexemes = tokenizer.readLexmes();
|
13
|
+
const result = this.parseFromLexeme(lexemes, 0);
|
14
|
+
if (result.newIndex < lexemes.length) {
|
15
|
+
throw new Error(`Syntax error: Unexpected token "${lexemes[result.newIndex].value}" at position ${result.newIndex}. The source expression is complete but there are additional tokens.`);
|
16
|
+
}
|
17
|
+
return result.value;
|
18
|
+
}
|
19
|
+
static parseTableSourceFromLexemes(lexemes, index) {
|
20
|
+
const result = SourceParser.parseTableSourceFromLexemes(lexemes, index);
|
21
|
+
// No alias for table source
|
22
|
+
const sourceExpr = new SourceExpression(result.value, null);
|
23
|
+
return { value: sourceExpr, newIndex: result.newIndex };
|
24
|
+
}
|
6
25
|
// Parse from lexeme array (was: parse)
|
7
26
|
static parseFromLexeme(lexemes, index) {
|
8
27
|
let idx = index;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"SourceExpressionParser.js","sourceRoot":"","sources":["../../../src/parsers/SourceExpressionParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,gBAAgB,EAAe,MAAM,kBAAkB,CAAC;AACxF,OAAO,EAAU,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAE5E,MAAM,OAAO,sBAAsB;IAC/B,uCAAuC;IAChC,MAAM,CAAC,eAAe,CAAC,OAAiB,EAAE,KAAa;QAC1D,IAAI,GAAG,GAAG,KAAK,CAAC;QAEhB,MAAM,YAAY,GAAG,YAAY,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAChE,GAAG,GAAG,YAAY,CAAC,QAAQ,CAAC;QAE5B,IAAI,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YACvB,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;gBAC9B,GAAG,EAAE,CAAC;gBACN,MAAM,WAAW,GAAG,2BAA2B,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBAC9E,GAAG,GAAG,WAAW,CAAC,QAAQ,CAAC;gBAC3B,MAAM,UAAU,GAAG,IAAI,gBAAgB,CAAC,YAAY,CAAC,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;gBAC/E,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;YAChD,CAAC;YAED,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,UAAU,EAAE,CAAC;gBAC3C,MAAM,WAAW,GAAG,2BAA2B,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBAC9E,GAAG,GAAG,WAAW,CAAC,QAAQ,CAAC;gBAC3B,MAAM,UAAU,GAAG,IAAI,gBAAgB,CAAC,YAAY,CAAC,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;gBAC/E,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;YAChD,CAAC;QACL,CAAC;QAED,WAAW;QACX,MAAM,IAAI,GAAG,IAAI,gBAAgB,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC5D,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;IAC1C,CAAC;CACJ"}
|
1
|
+
{"version":3,"file":"SourceExpressionParser.js","sourceRoot":"","sources":["../../../src/parsers/SourceExpressionParser.ts"],"names":[],"mappings":"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"}
|