rawsql-ts 0.22.0 → 0.23.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/dist/esm/index.min.js +6 -6
- package/dist/esm/index.min.js.map +4 -4
- package/dist/esm/parsers/FullNameParser.js +5 -0
- package/dist/esm/parsers/FullNameParser.js.map +1 -1
- package/dist/esm/parsers/IdentifierDecorator.d.ts +5 -0
- package/dist/esm/parsers/IdentifierDecorator.js +80 -4
- package/dist/esm/parsers/IdentifierDecorator.js.map +1 -1
- package/dist/esm/parsers/SqlPrintTokenParser.d.ts +2 -0
- package/dist/esm/parsers/SqlPrintTokenParser.js +6 -5
- package/dist/esm/parsers/SqlPrintTokenParser.js.map +1 -1
- package/dist/esm/parsers/ValueParser.d.ts +1 -0
- package/dist/esm/parsers/ValueParser.js +12 -0
- package/dist/esm/parsers/ValueParser.js.map +1 -1
- package/dist/esm/tokenReaders/LiteralTokenReader.js +2 -5
- package/dist/esm/tokenReaders/LiteralTokenReader.js.map +1 -1
- package/dist/esm/transformers/DynamicQueryBuilder.js +1 -1
- package/dist/esm/transformers/DynamicQueryBuilder.js.map +1 -1
- package/dist/esm/transformers/FormatOptionResolver.d.ts +9 -5
- package/dist/esm/transformers/FormatOptionResolver.js +7 -3
- package/dist/esm/transformers/FormatOptionResolver.js.map +1 -1
- package/dist/esm/transformers/PruneOptionalConditionBranches.js +40 -8
- package/dist/esm/transformers/PruneOptionalConditionBranches.js.map +1 -1
- package/dist/esm/transformers/SSSQLFilterBuilder.d.ts +2 -0
- package/dist/esm/transformers/SSSQLFilterBuilder.js +85 -10
- package/dist/esm/transformers/SSSQLFilterBuilder.js.map +1 -1
- package/dist/esm/transformers/SqlFormatter.d.ts +3 -1
- package/dist/esm/transformers/SqlFormatter.js +4 -4
- package/dist/esm/transformers/SqlFormatter.js.map +1 -1
- package/dist/esm/utils/OperatorPrecedence.js +1 -0
- package/dist/esm/utils/OperatorPrecedence.js.map +1 -1
- package/dist/esm/utils/SqlSpecialValueKeywords.d.ts +2 -0
- package/dist/esm/utils/SqlSpecialValueKeywords.js +15 -0
- package/dist/esm/utils/SqlSpecialValueKeywords.js.map +1 -0
- package/dist/index.min.js +6 -6
- package/dist/index.min.js.map +4 -4
- package/dist/parsers/FullNameParser.js +5 -0
- package/dist/parsers/FullNameParser.js.map +1 -1
- package/dist/parsers/IdentifierDecorator.js +80 -4
- package/dist/parsers/IdentifierDecorator.js.map +1 -1
- package/dist/parsers/SqlPrintTokenParser.js +6 -5
- package/dist/parsers/SqlPrintTokenParser.js.map +1 -1
- package/dist/parsers/ValueParser.js +12 -0
- package/dist/parsers/ValueParser.js.map +1 -1
- package/dist/src/parsers/IdentifierDecorator.d.ts +5 -0
- package/dist/src/parsers/SqlPrintTokenParser.d.ts +2 -0
- package/dist/src/parsers/ValueParser.d.ts +1 -0
- package/dist/src/transformers/FormatOptionResolver.d.ts +9 -5
- package/dist/src/transformers/SSSQLFilterBuilder.d.ts +2 -0
- package/dist/src/transformers/SqlFormatter.d.ts +3 -1
- package/dist/src/utils/SqlSpecialValueKeywords.d.ts +2 -0
- package/dist/tokenReaders/LiteralTokenReader.js +2 -5
- package/dist/tokenReaders/LiteralTokenReader.js.map +1 -1
- package/dist/transformers/DynamicQueryBuilder.js +1 -1
- package/dist/transformers/DynamicQueryBuilder.js.map +1 -1
- package/dist/transformers/FormatOptionResolver.js +7 -3
- package/dist/transformers/FormatOptionResolver.js.map +1 -1
- package/dist/transformers/PruneOptionalConditionBranches.js +39 -7
- package/dist/transformers/PruneOptionalConditionBranches.js.map +1 -1
- package/dist/transformers/SSSQLFilterBuilder.js +84 -9
- package/dist/transformers/SSSQLFilterBuilder.js.map +1 -1
- package/dist/transformers/SqlFormatter.js +6 -6
- package/dist/transformers/SqlFormatter.js.map +1 -1
- package/dist/tsconfig.browser.tsbuildinfo +1 -1
- package/dist/utils/OperatorPrecedence.js +1 -0
- package/dist/utils/OperatorPrecedence.js.map +1 -1
- package/dist/utils/SqlSpecialValueKeywords.js +18 -0
- package/dist/utils/SqlSpecialValueKeywords.js.map +1 -0
- package/package.json +4 -4
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { TokenType } from "../models/Lexeme";
|
|
2
2
|
import { IdentifierString } from "../models/ValueComponent";
|
|
3
|
+
import { SQL_SPECIAL_VALUE_KEYWORD_SET } from "../utils/SqlSpecialValueKeywords";
|
|
3
4
|
import { SqlTokenizer } from "./SqlTokenizer";
|
|
4
5
|
/**
|
|
5
6
|
* PostgreSQL non-reserved keywords that may appear as Command tokens,
|
|
@@ -99,6 +100,10 @@ export class FullNameParser {
|
|
|
99
100
|
identifiers.push(lexemes[idx].value);
|
|
100
101
|
idx++;
|
|
101
102
|
}
|
|
103
|
+
else if ((lexemes[idx].type & TokenType.Literal) && SQL_SPECIAL_VALUE_KEYWORD_SET.has(lexemes[idx].value.toLowerCase())) {
|
|
104
|
+
identifiers.push(lexemes[idx].value);
|
|
105
|
+
idx++;
|
|
106
|
+
}
|
|
102
107
|
else if ((lexemes[idx].type & TokenType.Command) &&
|
|
103
108
|
POSTGRESQL_COMMAND_KEYWORDS_ALLOWED_AS_IDENTIFIER.has(lexemes[idx].value.toLowerCase())) {
|
|
104
109
|
// Accept selected PostgreSQL non-reserved keywords only when this parser
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FullNameParser.js","sourceRoot":"","sources":["../../../src/parsers/FullNameParser.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FullNameParser.js","sourceRoot":"","sources":["../../../src/parsers/FullNameParser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
export declare class IdentifierDecorator {
|
|
2
2
|
start: string;
|
|
3
3
|
end: string;
|
|
4
|
+
target: 'all' | 'minimal';
|
|
4
5
|
constructor(identifierEscape?: {
|
|
5
6
|
start?: string;
|
|
6
7
|
end?: string;
|
|
8
|
+
target?: 'all' | 'minimal';
|
|
7
9
|
});
|
|
8
10
|
decorate(text: string): string;
|
|
11
|
+
private canRenderBare;
|
|
12
|
+
private isPlainIdentifierToken;
|
|
13
|
+
private escapeIdentifierText;
|
|
9
14
|
}
|
|
@@ -1,13 +1,89 @@
|
|
|
1
|
+
import { SQL_SPECIAL_VALUE_KEYWORDS } from "../utils/SqlSpecialValueKeywords";
|
|
2
|
+
import { TokenType } from "../models/Lexeme";
|
|
3
|
+
import { SqlTokenizer } from "./SqlTokenizer";
|
|
1
4
|
export class IdentifierDecorator {
|
|
2
5
|
constructor(identifierEscape) {
|
|
3
|
-
var _a, _b;
|
|
6
|
+
var _a, _b, _c;
|
|
4
7
|
this.start = (_a = identifierEscape === null || identifierEscape === void 0 ? void 0 : identifierEscape.start) !== null && _a !== void 0 ? _a : '"';
|
|
5
8
|
this.end = (_b = identifierEscape === null || identifierEscape === void 0 ? void 0 : identifierEscape.end) !== null && _b !== void 0 ? _b : '"';
|
|
9
|
+
this.target = (_c = identifierEscape === null || identifierEscape === void 0 ? void 0 : identifierEscape.target) !== null && _c !== void 0 ? _c : 'all';
|
|
6
10
|
}
|
|
7
11
|
decorate(text) {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
12
|
+
if (this.target === 'minimal' && this.canRenderBare(text)) {
|
|
13
|
+
return text;
|
|
14
|
+
}
|
|
15
|
+
return this.start + this.escapeIdentifierText(text) + this.end;
|
|
16
|
+
}
|
|
17
|
+
canRenderBare(text) {
|
|
18
|
+
return /^[a-z_][a-z0-9_]*$/.test(text) &&
|
|
19
|
+
!UNSAFE_BARE_IDENTIFIERS.has(text) &&
|
|
20
|
+
this.isPlainIdentifierToken(text);
|
|
21
|
+
}
|
|
22
|
+
isPlainIdentifierToken(text) {
|
|
23
|
+
const lexemes = new SqlTokenizer(text).readLexmes();
|
|
24
|
+
return lexemes.length === 1 && lexemes[0].type === TokenType.Identifier && lexemes[0].value === text;
|
|
25
|
+
}
|
|
26
|
+
escapeIdentifierText(text) {
|
|
27
|
+
if (!this.end) {
|
|
28
|
+
return text;
|
|
29
|
+
}
|
|
30
|
+
return text.split(this.end).join(this.end + this.end);
|
|
11
31
|
}
|
|
12
32
|
}
|
|
33
|
+
const UNSAFE_BARE_IDENTIFIERS = new Set([
|
|
34
|
+
// Core SQL syntax and literals.
|
|
35
|
+
'all',
|
|
36
|
+
'and',
|
|
37
|
+
'any',
|
|
38
|
+
'as',
|
|
39
|
+
'between',
|
|
40
|
+
'by',
|
|
41
|
+
'case',
|
|
42
|
+
'cross',
|
|
43
|
+
'delete',
|
|
44
|
+
'distinct',
|
|
45
|
+
'else',
|
|
46
|
+
'end',
|
|
47
|
+
'except',
|
|
48
|
+
'exists',
|
|
49
|
+
'false',
|
|
50
|
+
'fetch',
|
|
51
|
+
'for',
|
|
52
|
+
'from',
|
|
53
|
+
'full',
|
|
54
|
+
'group',
|
|
55
|
+
'having',
|
|
56
|
+
'in',
|
|
57
|
+
'inner',
|
|
58
|
+
'insert',
|
|
59
|
+
'intersect',
|
|
60
|
+
'into',
|
|
61
|
+
'is',
|
|
62
|
+
'join',
|
|
63
|
+
'left',
|
|
64
|
+
'like',
|
|
65
|
+
'limit',
|
|
66
|
+
'not',
|
|
67
|
+
'null',
|
|
68
|
+
'offset',
|
|
69
|
+
'on',
|
|
70
|
+
'or',
|
|
71
|
+
'order',
|
|
72
|
+
'outer',
|
|
73
|
+
'right',
|
|
74
|
+
'select',
|
|
75
|
+
'set',
|
|
76
|
+
'table',
|
|
77
|
+
'then',
|
|
78
|
+
'true',
|
|
79
|
+
'union',
|
|
80
|
+
'update',
|
|
81
|
+
'using',
|
|
82
|
+
'values',
|
|
83
|
+
'when',
|
|
84
|
+
'where',
|
|
85
|
+
'with',
|
|
86
|
+
// SQL value keywords / special bare expressions.
|
|
87
|
+
...SQL_SPECIAL_VALUE_KEYWORDS
|
|
88
|
+
]);
|
|
13
89
|
//# sourceMappingURL=IdentifierDecorator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IdentifierDecorator.js","sourceRoot":"","sources":["../../../src/parsers/IdentifierDecorator.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,mBAAmB;
|
|
1
|
+
{"version":3,"file":"IdentifierDecorator.js","sourceRoot":"","sources":["../../../src/parsers/IdentifierDecorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,OAAO,mBAAmB;IAK5B,YAAY,gBAA+E;;QACvF,IAAI,CAAC,KAAK,GAAG,MAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,KAAK,mCAAI,GAAG,CAAC;QAC5C,IAAI,CAAC,GAAG,GAAG,MAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,GAAG,mCAAI,GAAG,CAAC;QACxC,IAAI,CAAC,MAAM,GAAG,MAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,MAAM,mCAAI,KAAK,CAAC;IACpD,CAAC;IAED,QAAQ,CAAC,IAAY;QACjB,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;YACxD,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC;IACnE,CAAC;IAEO,aAAa,CAAC,IAAY;QAC9B,OAAO,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;YAClC,CAAC,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC;YAClC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IAEO,sBAAsB,CAAC,IAAY;QACvC,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;QACpD,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,UAAU,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC;IACzG,CAAC;IAEO,oBAAoB,CAAC,IAAY;QACrC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACZ,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1D,CAAC;CACJ;AAED,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC;IACpC,gCAAgC;IAChC,KAAK;IACL,KAAK;IACL,KAAK;IACL,IAAI;IACJ,SAAS;IACT,IAAI;IACJ,MAAM;IACN,OAAO;IACP,QAAQ;IACR,UAAU;IACV,MAAM;IACN,KAAK;IACL,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,OAAO;IACP,KAAK;IACL,MAAM;IACN,MAAM;IACN,OAAO;IACP,QAAQ;IACR,IAAI;IACJ,OAAO;IACP,QAAQ;IACR,WAAW;IACX,MAAM;IACN,IAAI;IACJ,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,KAAK;IACL,MAAM;IACN,QAAQ;IACR,IAAI;IACJ,IAAI;IACJ,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,KAAK;IACL,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,MAAM;IACN,OAAO;IACP,MAAM;IAEN,iDAAiD;IACjD,GAAG,0BAA0B;CAChC,CAAC,CAAC"}
|
|
@@ -17,6 +17,7 @@ export interface FormatterConfig {
|
|
|
17
17
|
identifierEscape?: {
|
|
18
18
|
start: string;
|
|
19
19
|
end: string;
|
|
20
|
+
target?: 'all' | 'minimal';
|
|
20
21
|
};
|
|
21
22
|
parameterSymbol?: string | {
|
|
22
23
|
start: string;
|
|
@@ -54,6 +55,7 @@ export declare class SqlPrintTokenParser implements SqlComponentVisitor<SqlPrint
|
|
|
54
55
|
identifierEscape?: {
|
|
55
56
|
start: string;
|
|
56
57
|
end: string;
|
|
58
|
+
target?: 'all' | 'minimal';
|
|
57
59
|
};
|
|
58
60
|
parameterSymbol?: string | {
|
|
59
61
|
start: string;
|
|
@@ -154,7 +154,7 @@ export class SqlPrintTokenParser {
|
|
|
154
154
|
return this._selfHandlingComponentTypes;
|
|
155
155
|
}
|
|
156
156
|
constructor(options) {
|
|
157
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
157
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
158
158
|
this.handlers = new Map();
|
|
159
159
|
this.index = 1;
|
|
160
160
|
this.joinConditionContexts = [];
|
|
@@ -169,11 +169,12 @@ export class SqlPrintTokenParser {
|
|
|
169
169
|
});
|
|
170
170
|
this.identifierDecorator = new IdentifierDecorator({
|
|
171
171
|
start: (_e = (_d = options === null || options === void 0 ? void 0 : options.identifierEscape) === null || _d === void 0 ? void 0 : _d.start) !== null && _e !== void 0 ? _e : '"',
|
|
172
|
-
end: (_g = (_f = options === null || options === void 0 ? void 0 : options.identifierEscape) === null || _f === void 0 ? void 0 : _f.end) !== null && _g !== void 0 ? _g : '"'
|
|
172
|
+
end: (_g = (_f = options === null || options === void 0 ? void 0 : options.identifierEscape) === null || _f === void 0 ? void 0 : _f.end) !== null && _g !== void 0 ? _g : '"',
|
|
173
|
+
target: (_h = options === null || options === void 0 ? void 0 : options.identifierEscape) === null || _h === void 0 ? void 0 : _h.target
|
|
173
174
|
});
|
|
174
|
-
this.castStyle = (
|
|
175
|
-
this.constraintStyle = (
|
|
176
|
-
this.normalizeJoinConditionOrder = (
|
|
175
|
+
this.castStyle = (_j = options === null || options === void 0 ? void 0 : options.castStyle) !== null && _j !== void 0 ? _j : 'standard';
|
|
176
|
+
this.constraintStyle = (_k = options === null || options === void 0 ? void 0 : options.constraintStyle) !== null && _k !== void 0 ? _k : 'postgres';
|
|
177
|
+
this.normalizeJoinConditionOrder = (_l = options === null || options === void 0 ? void 0 : options.joinConditionOrderByDeclaration) !== null && _l !== void 0 ? _l : false;
|
|
177
178
|
this.handlers.set(ValueList.kind, (expr) => this.visitValueList(expr));
|
|
178
179
|
this.handlers.set(ColumnReference.kind, (expr) => this.visitColumnReference(expr));
|
|
179
180
|
this.handlers.set(QualifiedName.kind, (expr) => this.visitQualifiedName(expr));
|