@shaxpir/squilt 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +133 -0
- package/dist/ast/Abstractions.d.ts +14 -0
- package/dist/ast/Abstractions.js +11 -0
- package/dist/ast/Alias.d.ts +11 -0
- package/dist/ast/Alias.js +23 -0
- package/dist/ast/BinaryExpression.d.ts +13 -0
- package/dist/ast/BinaryExpression.js +26 -0
- package/dist/ast/CaseExpression.d.ts +14 -0
- package/dist/ast/CaseExpression.js +22 -0
- package/dist/ast/Column.d.ts +17 -0
- package/dist/ast/Column.js +38 -0
- package/dist/ast/Concat.d.ts +8 -0
- package/dist/ast/Concat.js +19 -0
- package/dist/ast/ExistsExpression.d.ts +9 -0
- package/dist/ast/ExistsExpression.js +18 -0
- package/dist/ast/From.d.ts +33 -0
- package/dist/ast/From.js +60 -0
- package/dist/ast/FunctionExpression.d.ts +13 -0
- package/dist/ast/FunctionExpression.js +27 -0
- package/dist/ast/FunctionName.d.ts +1 -0
- package/dist/ast/FunctionName.js +3 -0
- package/dist/ast/InExpression.d.ts +13 -0
- package/dist/ast/InExpression.js +35 -0
- package/dist/ast/InsertQuery.d.ts +17 -0
- package/dist/ast/InsertQuery.js +42 -0
- package/dist/ast/Join.d.ts +21 -0
- package/dist/ast/Join.js +37 -0
- package/dist/ast/Literals.d.ts +31 -0
- package/dist/ast/Literals.js +65 -0
- package/dist/ast/Operator.d.ts +18 -0
- package/dist/ast/Operator.js +23 -0
- package/dist/ast/OrderBy.d.ts +14 -0
- package/dist/ast/OrderBy.js +25 -0
- package/dist/ast/SelectQuery.d.ts +39 -0
- package/dist/ast/SelectQuery.js +109 -0
- package/dist/ast/UnaryExpression.d.ts +11 -0
- package/dist/ast/UnaryExpression.js +22 -0
- package/dist/ast/With.d.ts +11 -0
- package/dist/ast/With.js +21 -0
- package/dist/builder/QueryBuilder.d.ts +8 -0
- package/dist/builder/QueryBuilder.js +20 -0
- package/dist/builder/Shorthand.d.ts +77 -0
- package/dist/builder/Shorthand.js +375 -0
- package/dist/index.d.ts +32 -0
- package/dist/index.js +133 -0
- package/dist/renderer/CompactQueryRenderer.d.ts +45 -0
- package/dist/renderer/CompactQueryRenderer.js +192 -0
- package/dist/renderer/IndentedQueryRenderer.d.ts +51 -0
- package/dist/renderer/IndentedQueryRenderer.js +230 -0
- package/dist/renderer/QueryRenderer.d.ts +8 -0
- package/dist/renderer/QueryRenderer.js +77 -0
- package/dist/validate/CommonQueryValidator.d.ts +50 -0
- package/dist/validate/CommonQueryValidator.js +262 -0
- package/dist/validate/QueryValidator.d.ts +6 -0
- package/dist/validate/QueryValidator.js +3 -0
- package/dist/validate/SQLiteQueryValidator.d.ts +27 -0
- package/dist/validate/SQLiteQueryValidator.js +96 -0
- package/dist/visitor/ParamCollector.d.ts +46 -0
- package/dist/visitor/ParamCollector.js +129 -0
- package/dist/visitor/QueryIdentityTransformer.d.ts +45 -0
- package/dist/visitor/QueryIdentityTransformer.js +173 -0
- package/dist/visitor/QueryParamRewriteTransformer.d.ts +11 -0
- package/dist/visitor/QueryParamRewriteTransformer.js +26 -0
- package/dist/visitor/SqlTreeNodeTransformer.d.ts +5 -0
- package/dist/visitor/SqlTreeNodeTransformer.js +3 -0
- package/dist/visitor/SqlTreeNodeVisitor.d.ts +45 -0
- package/dist/visitor/SqlTreeNodeVisitor.js +47 -0
- package/package.json +36 -0
package/dist/ast/From.js
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.JsonEachFrom = exports.SubqueryFrom = exports.TableFrom = exports.From = void 0;
|
|
4
|
+
const Alias_1 = require("./Alias");
|
|
5
|
+
class From {
|
|
6
|
+
as(alias) {
|
|
7
|
+
return new Alias_1.Alias(this, alias);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
exports.From = From;
|
|
11
|
+
// Represents a table in the FROM clause, typically used for simple queries
|
|
12
|
+
class TableFrom extends From {
|
|
13
|
+
constructor(tableName) {
|
|
14
|
+
super();
|
|
15
|
+
this._tableName = tableName;
|
|
16
|
+
}
|
|
17
|
+
get tableName() {
|
|
18
|
+
return this._tableName;
|
|
19
|
+
}
|
|
20
|
+
accept(visitor) {
|
|
21
|
+
return visitor.visitTableFrom(this);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.TableFrom = TableFrom;
|
|
25
|
+
// Represents a subquery in the FROM clause, allowing for complex queries to be used as tables
|
|
26
|
+
class SubqueryFrom extends From {
|
|
27
|
+
constructor(subquery) {
|
|
28
|
+
super();
|
|
29
|
+
this._subquery = subquery;
|
|
30
|
+
}
|
|
31
|
+
get subquery() {
|
|
32
|
+
return this._subquery;
|
|
33
|
+
}
|
|
34
|
+
accept(visitor) {
|
|
35
|
+
return visitor.visitSubqueryFrom(this);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.SubqueryFrom = SubqueryFrom;
|
|
39
|
+
// Represents a `json_each` table-valued function in the FROM clause, iterating over a JSON array or object
|
|
40
|
+
class JsonEachFrom extends From {
|
|
41
|
+
constructor(jsonExpression, jsonPath) {
|
|
42
|
+
super();
|
|
43
|
+
this._jsonExpression = jsonExpression;
|
|
44
|
+
this._jsonPath = jsonPath;
|
|
45
|
+
}
|
|
46
|
+
as(alias) {
|
|
47
|
+
return new Alias_1.Alias(this, alias);
|
|
48
|
+
}
|
|
49
|
+
get jsonExpression() {
|
|
50
|
+
return this._jsonExpression;
|
|
51
|
+
}
|
|
52
|
+
get jsonPath() {
|
|
53
|
+
return this._jsonPath;
|
|
54
|
+
}
|
|
55
|
+
accept(visitor) {
|
|
56
|
+
return visitor.visitJsonEachFrom(this);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
exports.JsonEachFrom = JsonEachFrom;
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRnJvbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hc3QvRnJvbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxtQ0FBZ0M7QUFLaEMsTUFBc0IsSUFBSTtJQUVqQixFQUFFLENBQUMsS0FBYTtRQUNyQixPQUFPLElBQUksYUFBSyxDQUFPLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN0QyxDQUFDO0NBQ0Y7QUFMRCxvQkFLQztBQUVELDJFQUEyRTtBQUMzRSxNQUFhLFNBQVUsU0FBUSxJQUFJO0lBSWpDLFlBQVksU0FBaUI7UUFDM0IsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBRU0sTUFBTSxDQUFJLE9BQThCO1FBQzdDLE9BQU8sT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDO0NBQ0Y7QUFoQkQsOEJBZ0JDO0FBRUQsOEZBQThGO0FBQzlGLE1BQWEsWUFBYSxTQUFRLElBQUk7SUFJcEMsWUFBWSxRQUFxQjtRQUMvQixLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFXLFFBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFTSxNQUFNLENBQUksT0FBOEI7UUFDN0MsT0FBTyxPQUFPLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekMsQ0FBQztDQUNGO0FBaEJELG9DQWdCQztBQUdELDJHQUEyRztBQUMzRyxNQUFhLFlBQWEsU0FBUSxJQUFJO0lBS3BDLFlBQVksY0FBMEIsRUFBRSxRQUFxQjtRQUMzRCxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxlQUFlLEdBQUcsY0FBYyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO0lBQzVCLENBQUM7SUFFTSxFQUFFLENBQUMsS0FBYTtRQUNyQixPQUFPLElBQUksYUFBSyxDQUFPLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRU0sTUFBTSxDQUFJLE9BQThCO1FBQzdDLE9BQU8sT0FBTyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pDLENBQUM7Q0FDRjtBQTFCRCxvQ0EwQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTcWxUcmVlTm9kZVZpc2l0b3IgfSBmcm9tIFwiLi4vdmlzaXRvci9TcWxUcmVlTm9kZVZpc2l0b3JcIjtcbmltcG9ydCB7IEFsaWFzYWJsZSwgRXhwcmVzc2lvbiB9IGZyb20gXCIuL0Fic3RyYWN0aW9uc1wiO1xuaW1wb3J0IHsgQWxpYXMgfSBmcm9tIFwiLi9BbGlhc1wiO1xuaW1wb3J0IHsgU2VsZWN0UXVlcnkgfSBmcm9tIFwiLi9TZWxlY3RRdWVyeVwiO1xuXG5leHBvcnQgdHlwZSBGcm9tTGlrZSA9IEZyb20gfCB7IHJlZmVyZW50OiBGcm9tOyBhbGlhczogc3RyaW5nIH07XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBGcm9tIGltcGxlbWVudHMgQWxpYXNhYmxlIHtcbiAgYWJzdHJhY3QgYWNjZXB0PFQ+KHZpc2l0b3I6IFNxbFRyZWVOb2RlVmlzaXRvcjxUPik6IFQ7XG4gIHB1YmxpYyBhcyhhbGlhczogc3RyaW5nKTogQWxpYXM8dGhpcz4ge1xuICAgIHJldHVybiBuZXcgQWxpYXM8dGhpcz4odGhpcywgYWxpYXMpO1xuICB9XG59XG5cbi8vIFJlcHJlc2VudHMgYSB0YWJsZSBpbiB0aGUgRlJPTSBjbGF1c2UsIHR5cGljYWxseSB1c2VkIGZvciBzaW1wbGUgcXVlcmllc1xuZXhwb3J0IGNsYXNzIFRhYmxlRnJvbSBleHRlbmRzIEZyb20ge1xuXG4gIHByaXZhdGUgX3RhYmxlTmFtZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHRhYmxlTmFtZTogc3RyaW5nKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLl90YWJsZU5hbWUgPSB0YWJsZU5hbWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHRhYmxlTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl90YWJsZU5hbWU7XG4gIH1cblxuICBwdWJsaWMgYWNjZXB0PFQ+KHZpc2l0b3I6IFNxbFRyZWVOb2RlVmlzaXRvcjxUPik6IFQge1xuICAgIHJldHVybiB2aXNpdG9yLnZpc2l0VGFibGVGcm9tKHRoaXMpO1xuICB9XG59XG5cbi8vIFJlcHJlc2VudHMgYSBzdWJxdWVyeSBpbiB0aGUgRlJPTSBjbGF1c2UsIGFsbG93aW5nIGZvciBjb21wbGV4IHF1ZXJpZXMgdG8gYmUgdXNlZCBhcyB0YWJsZXNcbmV4cG9ydCBjbGFzcyBTdWJxdWVyeUZyb20gZXh0ZW5kcyBGcm9tIHtcblxuICBwcml2YXRlIF9zdWJxdWVyeTogU2VsZWN0UXVlcnk7XG5cbiAgY29uc3RydWN0b3Ioc3VicXVlcnk6IFNlbGVjdFF1ZXJ5KSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLl9zdWJxdWVyeSA9IHN1YnF1ZXJ5O1xuICB9XG5cbiAgcHVibGljIGdldCBzdWJxdWVyeSgpOiBTZWxlY3RRdWVyeSB7XG4gICAgcmV0dXJuIHRoaXMuX3N1YnF1ZXJ5O1xuICB9XG5cbiAgcHVibGljIGFjY2VwdDxUPih2aXNpdG9yOiBTcWxUcmVlTm9kZVZpc2l0b3I8VD4pOiBUIHtcbiAgICByZXR1cm4gdmlzaXRvci52aXNpdFN1YnF1ZXJ5RnJvbSh0aGlzKTtcbiAgfVxufVxuXG5cbi8vIFJlcHJlc2VudHMgYSBganNvbl9lYWNoYCB0YWJsZS12YWx1ZWQgZnVuY3Rpb24gaW4gdGhlIEZST00gY2xhdXNlLCBpdGVyYXRpbmcgb3ZlciBhIEpTT04gYXJyYXkgb3Igb2JqZWN0XG5leHBvcnQgY2xhc3MgSnNvbkVhY2hGcm9tIGV4dGVuZHMgRnJvbSB7XG5cbiAgcHJpdmF0ZSBfanNvbkV4cHJlc3Npb246IEV4cHJlc3Npb247XG4gIHByaXZhdGUgX2pzb25QYXRoPzogRXhwcmVzc2lvbjtcblxuICBjb25zdHJ1Y3Rvcihqc29uRXhwcmVzc2lvbjogRXhwcmVzc2lvbiwganNvblBhdGg/OiBFeHByZXNzaW9uKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLl9qc29uRXhwcmVzc2lvbiA9IGpzb25FeHByZXNzaW9uO1xuICAgIHRoaXMuX2pzb25QYXRoID0ganNvblBhdGg7XG4gIH1cblxuICBwdWJsaWMgYXMoYWxpYXM6IHN0cmluZyk6IEFsaWFzPHRoaXM+IHtcbiAgICByZXR1cm4gbmV3IEFsaWFzPHRoaXM+KHRoaXMsIGFsaWFzKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQganNvbkV4cHJlc3Npb24oKTogRXhwcmVzc2lvbiB7XG4gICAgcmV0dXJuIHRoaXMuX2pzb25FeHByZXNzaW9uO1xuICB9XG5cbiAgcHVibGljIGdldCBqc29uUGF0aCgpOiBFeHByZXNzaW9uIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fanNvblBhdGg7XG4gIH1cblxuICBwdWJsaWMgYWNjZXB0PFQ+KHZpc2l0b3I6IFNxbFRyZWVOb2RlVmlzaXRvcjxUPik6IFQge1xuICAgIHJldHVybiB2aXNpdG9yLnZpc2l0SnNvbkVhY2hGcm9tKHRoaXMpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { SqlTreeNodeVisitor } from "../visitor/SqlTreeNodeVisitor";
|
|
2
|
+
import { AliasableExpression, Expression } from "./Abstractions";
|
|
3
|
+
import { FunctionName } from "./FunctionName";
|
|
4
|
+
export declare class FunctionExpression extends AliasableExpression {
|
|
5
|
+
private _name;
|
|
6
|
+
private _args;
|
|
7
|
+
private _distinct;
|
|
8
|
+
constructor(name: FunctionName, args: Expression[], distinct?: boolean);
|
|
9
|
+
get name(): FunctionName;
|
|
10
|
+
get args(): Expression[];
|
|
11
|
+
get distinct(): boolean;
|
|
12
|
+
accept<T>(visitor: SqlTreeNodeVisitor<T>): T;
|
|
13
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FunctionExpression = void 0;
|
|
4
|
+
const Abstractions_1 = require("./Abstractions");
|
|
5
|
+
// Represents a function call (e.g., COUNT(id)) with SQLite-supported functions
|
|
6
|
+
class FunctionExpression extends Abstractions_1.AliasableExpression {
|
|
7
|
+
constructor(name, args, distinct = false) {
|
|
8
|
+
super();
|
|
9
|
+
this._name = name;
|
|
10
|
+
this._args = args;
|
|
11
|
+
this._distinct = distinct;
|
|
12
|
+
}
|
|
13
|
+
get name() {
|
|
14
|
+
return this._name;
|
|
15
|
+
}
|
|
16
|
+
get args() {
|
|
17
|
+
return this._args;
|
|
18
|
+
}
|
|
19
|
+
get distinct() {
|
|
20
|
+
return this._distinct;
|
|
21
|
+
}
|
|
22
|
+
accept(visitor) {
|
|
23
|
+
return visitor.visitFunctionExpression(this);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.FunctionExpression = FunctionExpression;
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRnVuY3Rpb25FeHByZXNzaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FzdC9GdW5jdGlvbkV4cHJlc3Npb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsaURBQWlFO0FBR2pFLCtFQUErRTtBQUMvRSxNQUFhLGtCQUFtQixTQUFRLGtDQUFtQjtJQU16RCxZQUFZLElBQWtCLEVBQUUsSUFBa0IsRUFBRSxXQUFvQixLQUFLO1FBQzNFLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQVcsSUFBSTtRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQsSUFBVyxJQUFJO1FBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLFFBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFTSxNQUFNLENBQUksT0FBOEI7UUFDN0MsT0FBTyxPQUFPLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0MsQ0FBQztDQUNGO0FBNUJELGdEQTRCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNxbFRyZWVOb2RlVmlzaXRvciB9IGZyb20gXCIuLi92aXNpdG9yL1NxbFRyZWVOb2RlVmlzaXRvclwiO1xuaW1wb3J0IHsgQWxpYXNhYmxlRXhwcmVzc2lvbiwgRXhwcmVzc2lvbiB9IGZyb20gXCIuL0Fic3RyYWN0aW9uc1wiO1xuaW1wb3J0IHsgRnVuY3Rpb25OYW1lIH0gZnJvbSBcIi4vRnVuY3Rpb25OYW1lXCI7XG5cbi8vIFJlcHJlc2VudHMgYSBmdW5jdGlvbiBjYWxsIChlLmcuLCBDT1VOVChpZCkpIHdpdGggU1FMaXRlLXN1cHBvcnRlZCBmdW5jdGlvbnNcbmV4cG9ydCBjbGFzcyBGdW5jdGlvbkV4cHJlc3Npb24gZXh0ZW5kcyBBbGlhc2FibGVFeHByZXNzaW9uIHtcblxuICBwcml2YXRlIF9uYW1lOiBGdW5jdGlvbk5hbWU7XG4gIHByaXZhdGUgX2FyZ3M6IEV4cHJlc3Npb25bXTtcbiAgcHJpdmF0ZSBfZGlzdGluY3Q6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IobmFtZTogRnVuY3Rpb25OYW1lLCBhcmdzOiBFeHByZXNzaW9uW10sIGRpc3RpbmN0OiBib29sZWFuID0gZmFsc2UpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuX25hbWUgPSBuYW1lO1xuICAgIHRoaXMuX2FyZ3MgPSBhcmdzO1xuICAgIHRoaXMuX2Rpc3RpbmN0ID0gZGlzdGluY3Q7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG5hbWUoKTogRnVuY3Rpb25OYW1lIHtcbiAgICByZXR1cm4gdGhpcy5fbmFtZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYXJncygpOiBFeHByZXNzaW9uW10ge1xuICAgIHJldHVybiB0aGlzLl9hcmdzO1xuICB9XG5cbiAgcHVibGljIGdldCBkaXN0aW5jdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZGlzdGluY3Q7XG4gIH1cblxuICBwdWJsaWMgYWNjZXB0PFQ+KHZpc2l0b3I6IFNxbFRyZWVOb2RlVmlzaXRvcjxUPik6IFQge1xuICAgIHJldHVybiB2aXNpdG9yLnZpc2l0RnVuY3Rpb25FeHByZXNzaW9uKHRoaXMpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type FunctionName = 'ABS' | 'AVG' | 'CEIL' | 'CHANGES' | 'CHAR' | 'COALESCE' | 'CONCAT' | 'COUNT' | 'DATE' | 'DATETIME' | 'FLOOR' | 'GROUP_CONCAT' | 'HEX' | 'IFNULL' | 'INSTR' | 'JULIANDAY' | 'LAST_INSERT_ROWID' | 'LENGTH' | 'LOWER' | 'LTRIM' | 'MAX' | 'MIN' | 'NULLIF' | 'QUOTE' | 'RANDOM' | 'RANDOMBLOB' | 'REPLACE' | 'ROUND' | 'RTRIM' | 'STRFTIME' | 'SUBSTR' | 'SUM' | 'TIME' | 'TOTAL' | 'TOTAL_CHANGES' | 'TRIM' | 'TRUNC' | 'TYPEOF' | 'UNICODE' | 'UPPER' | 'ZEROBLOB' | 'json' | 'json_array' | 'json_array_length' | 'json_each' | 'json_extract' | 'json_group_array' | 'json_group_object' | 'json_insert' | 'json_object' | 'json_patch' | 'json_quote' | 'json_remove' | 'json_replace' | 'json_set' | 'json_tree' | 'json_type' | 'json_valid';
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRnVuY3Rpb25OYW1lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FzdC9GdW5jdGlvbk5hbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEZ1bmN0aW9uTmFtZSA9XG4gICAgJ0FCUydcbiAgfCAnQVZHJ1xuICB8ICdDRUlMJ1xuICB8ICdDSEFOR0VTJ1xuICB8ICdDSEFSJ1xuICB8ICdDT0FMRVNDRSdcbiAgfCAnQ09OQ0FUJ1xuICB8ICdDT1VOVCdcbiAgfCAnREFURSdcbiAgfCAnREFURVRJTUUnXG4gIHwgJ0ZMT09SJ1xuICB8ICdHUk9VUF9DT05DQVQnXG4gIHwgJ0hFWCdcbiAgfCAnSUZOVUxMJ1xuICB8ICdJTlNUUidcbiAgfCAnSlVMSUFOREFZJ1xuICB8ICdMQVNUX0lOU0VSVF9ST1dJRCdcbiAgfCAnTEVOR1RIJ1xuICB8ICdMT1dFUidcbiAgfCAnTFRSSU0nXG4gIHwgJ01BWCdcbiAgfCAnTUlOJ1xuICB8ICdOVUxMSUYnXG4gIHwgJ1FVT1RFJ1xuICB8ICdSQU5ET00nXG4gIHwgJ1JBTkRPTUJMT0InXG4gIHwgJ1JFUExBQ0UnXG4gIHwgJ1JPVU5EJ1xuICB8ICdSVFJJTSdcbiAgfCAnU1RSRlRJTUUnXG4gIHwgJ1NVQlNUUidcbiAgfCAnU1VNJ1xuICB8ICdUSU1FJ1xuICB8ICdUT1RBTCdcbiAgfCAnVE9UQUxfQ0hBTkdFUydcbiAgfCAnVFJJTSdcbiAgfCAnVFJVTkMnXG4gIHwgJ1RZUEVPRidcbiAgfCAnVU5JQ09ERSdcbiAgfCAnVVBQRVInXG4gIHwgJ1pFUk9CTE9CJ1xuICB8ICdqc29uJ1xuICB8ICdqc29uX2FycmF5J1xuICB8ICdqc29uX2FycmF5X2xlbmd0aCdcbiAgfCAnanNvbl9lYWNoJ1xuICB8ICdqc29uX2V4dHJhY3QnXG4gIHwgJ2pzb25fZ3JvdXBfYXJyYXknXG4gIHwgJ2pzb25fZ3JvdXBfb2JqZWN0J1xuICB8ICdqc29uX2luc2VydCdcbiAgfCAnanNvbl9vYmplY3QnXG4gIHwgJ2pzb25fcGF0Y2gnXG4gIHwgJ2pzb25fcXVvdGUnXG4gIHwgJ2pzb25fcmVtb3ZlJ1xuICB8ICdqc29uX3JlcGxhY2UnXG4gIHwgJ2pzb25fc2V0J1xuICB8ICdqc29uX3RyZWUnXG4gIHwgJ2pzb25fdHlwZSdcbiAgfCAnanNvbl92YWxpZCc7XG4iXX0=
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { SqlTreeNodeVisitor } from "../visitor/SqlTreeNodeVisitor";
|
|
2
|
+
import { AliasableExpression, Expression } from "./Abstractions";
|
|
3
|
+
import { SelectQuery } from "./SelectQuery";
|
|
4
|
+
export declare class InExpression extends AliasableExpression {
|
|
5
|
+
private _left;
|
|
6
|
+
private _values;
|
|
7
|
+
private _not;
|
|
8
|
+
constructor(left: Expression | Expression[], values: Expression[] | Expression[][] | SelectQuery, not?: boolean);
|
|
9
|
+
get left(): Expression[];
|
|
10
|
+
get values(): Expression[][] | SelectQuery;
|
|
11
|
+
get not(): boolean;
|
|
12
|
+
accept<T>(visitor: SqlTreeNodeVisitor<T>): T;
|
|
13
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InExpression = void 0;
|
|
4
|
+
const Abstractions_1 = require("./Abstractions");
|
|
5
|
+
const SelectQuery_1 = require("./SelectQuery");
|
|
6
|
+
class InExpression extends Abstractions_1.AliasableExpression {
|
|
7
|
+
constructor(left, values, not = false) {
|
|
8
|
+
super();
|
|
9
|
+
this._not = false;
|
|
10
|
+
this._left = Array.isArray(left) ? left : [left];
|
|
11
|
+
if (values instanceof SelectQuery_1.SelectQuery) {
|
|
12
|
+
this._values = values;
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
// Type assertion needed for strict mode
|
|
16
|
+
const valuesArray = values;
|
|
17
|
+
this._values = Array.isArray(valuesArray[0]) ? valuesArray : valuesArray.map(v => [v]);
|
|
18
|
+
}
|
|
19
|
+
this._not = not;
|
|
20
|
+
}
|
|
21
|
+
get left() {
|
|
22
|
+
return this._left;
|
|
23
|
+
}
|
|
24
|
+
get values() {
|
|
25
|
+
return this._values;
|
|
26
|
+
}
|
|
27
|
+
get not() {
|
|
28
|
+
return this._not;
|
|
29
|
+
}
|
|
30
|
+
accept(visitor) {
|
|
31
|
+
return visitor.visitInExpression(this);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.InExpression = InExpression;
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5FeHByZXNzaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FzdC9JbkV4cHJlc3Npb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsaURBQWlFO0FBQ2pFLCtDQUE0QztBQUU1QyxNQUFhLFlBQWEsU0FBUSxrQ0FBbUI7SUFLbkQsWUFDRSxJQUErQixFQUMvQixNQUFtRCxFQUNuRCxNQUFlLEtBQUs7UUFFcEIsS0FBSyxFQUFFLENBQUM7UUFQRixTQUFJLEdBQVksS0FBSyxDQUFDO1FBUTVCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pELElBQUksTUFBTSxZQUFZLHlCQUFXLEVBQUUsQ0FBQztZQUNsQyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN4QixDQUFDO2FBQU0sQ0FBQztZQUNOLHdDQUF3QztZQUN4QyxNQUFNLFdBQVcsR0FBRyxNQUF1QyxDQUFDO1lBQzVELElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBNkIsQ0FBQyxDQUFDLENBQUUsV0FBNEIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0gsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxJQUFXLElBQUk7UUFDYixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQVcsTUFBTTtRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBVyxHQUFHO1FBQ1osT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFFTSxNQUFNLENBQUksT0FBOEI7UUFDN0MsT0FBTyxPQUFPLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekMsQ0FBQztDQUNGO0FBckNELG9DQXFDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNxbFRyZWVOb2RlVmlzaXRvciB9IGZyb20gXCIuLi92aXNpdG9yL1NxbFRyZWVOb2RlVmlzaXRvclwiO1xuaW1wb3J0IHsgQWxpYXNhYmxlRXhwcmVzc2lvbiwgRXhwcmVzc2lvbiB9IGZyb20gXCIuL0Fic3RyYWN0aW9uc1wiO1xuaW1wb3J0IHsgU2VsZWN0UXVlcnkgfSBmcm9tIFwiLi9TZWxlY3RRdWVyeVwiO1xuXG5leHBvcnQgY2xhc3MgSW5FeHByZXNzaW9uIGV4dGVuZHMgQWxpYXNhYmxlRXhwcmVzc2lvbiB7XG4gIHByaXZhdGUgX2xlZnQ6IEV4cHJlc3Npb25bXTtcbiAgcHJpdmF0ZSBfdmFsdWVzOiBFeHByZXNzaW9uW11bXSB8IFNlbGVjdFF1ZXJ5O1xuICBwcml2YXRlIF9ub3Q6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBsZWZ0OiBFeHByZXNzaW9uIHwgRXhwcmVzc2lvbltdLFxuICAgIHZhbHVlczogRXhwcmVzc2lvbltdIHwgRXhwcmVzc2lvbltdW10gfCBTZWxlY3RRdWVyeSxcbiAgICBub3Q6IGJvb2xlYW4gPSBmYWxzZVxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuX2xlZnQgPSBBcnJheS5pc0FycmF5KGxlZnQpID8gbGVmdCA6IFtsZWZ0XTtcbiAgICBpZiAodmFsdWVzIGluc3RhbmNlb2YgU2VsZWN0UXVlcnkpIHtcbiAgICAgIHRoaXMuX3ZhbHVlcyA9IHZhbHVlcztcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVHlwZSBhc3NlcnRpb24gbmVlZGVkIGZvciBzdHJpY3QgbW9kZVxuICAgICAgY29uc3QgdmFsdWVzQXJyYXkgPSB2YWx1ZXMgYXMgRXhwcmVzc2lvbltdIHwgRXhwcmVzc2lvbltdW107XG4gICAgICB0aGlzLl92YWx1ZXMgPSBBcnJheS5pc0FycmF5KHZhbHVlc0FycmF5WzBdKSA/IHZhbHVlc0FycmF5IGFzIEV4cHJlc3Npb25bXVtdIDogKHZhbHVlc0FycmF5IGFzIEV4cHJlc3Npb25bXSkubWFwKHYgPT4gW3ZdKTtcbiAgICB9XG4gICAgdGhpcy5fbm90ID0gbm90O1xuICB9XG5cbiAgcHVibGljIGdldCBsZWZ0KCk6IEV4cHJlc3Npb25bXSB7XG4gICAgcmV0dXJuIHRoaXMuX2xlZnQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHZhbHVlcygpOiBFeHByZXNzaW9uW11bXSB8IFNlbGVjdFF1ZXJ5IHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWVzO1xuICB9XG5cbiAgcHVibGljIGdldCBub3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX25vdDtcbiAgfVxuXG4gIHB1YmxpYyBhY2NlcHQ8VD4odmlzaXRvcjogU3FsVHJlZU5vZGVWaXNpdG9yPFQ+KTogVCB7XG4gICAgcmV0dXJuIHZpc2l0b3IudmlzaXRJbkV4cHJlc3Npb24odGhpcyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { QueryRenderer } from "../renderer/QueryRenderer";
|
|
2
|
+
import { SqlTreeNodeVisitor } from "../visitor/SqlTreeNodeVisitor";
|
|
3
|
+
import { Expression, SqlTreeNode } from "./Abstractions";
|
|
4
|
+
export declare class InsertQuery implements SqlTreeNode {
|
|
5
|
+
private _tableName;
|
|
6
|
+
private _columns;
|
|
7
|
+
private _values;
|
|
8
|
+
private _orReplace;
|
|
9
|
+
constructor(tableName: string);
|
|
10
|
+
static create(tableName: string): InsertQuery;
|
|
11
|
+
orReplace(): InsertQuery;
|
|
12
|
+
columns(...columns: string[]): InsertQuery;
|
|
13
|
+
values(...values: Expression[]): InsertQuery;
|
|
14
|
+
isOrReplace(): boolean;
|
|
15
|
+
toSQL(renderer?: QueryRenderer): string;
|
|
16
|
+
accept<T>(visitor: SqlTreeNodeVisitor<T>): T;
|
|
17
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InsertQuery = void 0;
|
|
4
|
+
const IndentedQueryRenderer_1 = require("../renderer/IndentedQueryRenderer");
|
|
5
|
+
// Represents an INSERT OR REPLACE statement with a table, columns, and values
|
|
6
|
+
class InsertQuery {
|
|
7
|
+
constructor(tableName) {
|
|
8
|
+
this._columns = [];
|
|
9
|
+
this._values = [];
|
|
10
|
+
this._orReplace = false;
|
|
11
|
+
this._tableName = tableName;
|
|
12
|
+
}
|
|
13
|
+
static create(tableName) {
|
|
14
|
+
return new InsertQuery(tableName);
|
|
15
|
+
}
|
|
16
|
+
orReplace() {
|
|
17
|
+
this._orReplace = true;
|
|
18
|
+
return this;
|
|
19
|
+
}
|
|
20
|
+
columns(...columns) {
|
|
21
|
+
this._columns = columns;
|
|
22
|
+
return this;
|
|
23
|
+
}
|
|
24
|
+
values(...values) {
|
|
25
|
+
this._values = values;
|
|
26
|
+
return this;
|
|
27
|
+
}
|
|
28
|
+
isOrReplace() {
|
|
29
|
+
return this._orReplace;
|
|
30
|
+
}
|
|
31
|
+
toSQL(renderer) {
|
|
32
|
+
if (!renderer) {
|
|
33
|
+
renderer = new IndentedQueryRenderer_1.IndentedQueryRenderer(2);
|
|
34
|
+
}
|
|
35
|
+
return this.accept(renderer);
|
|
36
|
+
}
|
|
37
|
+
accept(visitor) {
|
|
38
|
+
return visitor.visitInsertQuery(this);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
exports.InsertQuery = InsertQuery;
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5zZXJ0UXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXN0L0luc2VydFF1ZXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZFQUEwRTtBQUsxRSw4RUFBOEU7QUFDOUUsTUFBYSxXQUFXO0lBT3RCLFlBQVksU0FBaUI7UUFKckIsYUFBUSxHQUFhLEVBQUUsQ0FBQztRQUN4QixZQUFPLEdBQWlCLEVBQUUsQ0FBQztRQUMzQixlQUFVLEdBQVksS0FBSyxDQUFDO1FBR2xDLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO0lBQzlCLENBQUM7SUFFTSxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQWlCO1FBQ3BDLE9BQU8sSUFBSSxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVNLFNBQVM7UUFDZCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxPQUFPLENBQUMsR0FBRyxPQUFpQjtRQUNqQyxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztRQUN4QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxNQUFNLENBQUMsR0FBRyxNQUFvQjtRQUNuQyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxXQUFXO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBRU0sS0FBSyxDQUFDLFFBQXdCO1FBQ25DLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNkLFFBQVEsR0FBRyxJQUFJLDZDQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVNLE1BQU0sQ0FBSSxPQUE4QjtRQUM3QyxPQUFPLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QyxDQUFDO0NBQ0Y7QUE1Q0Qsa0NBNENDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5kZW50ZWRRdWVyeVJlbmRlcmVyIH0gZnJvbSBcIi4uL3JlbmRlcmVyL0luZGVudGVkUXVlcnlSZW5kZXJlclwiO1xuaW1wb3J0IHsgUXVlcnlSZW5kZXJlciB9IGZyb20gXCIuLi9yZW5kZXJlci9RdWVyeVJlbmRlcmVyXCI7XG5pbXBvcnQgeyBTcWxUcmVlTm9kZVZpc2l0b3IgfSBmcm9tIFwiLi4vdmlzaXRvci9TcWxUcmVlTm9kZVZpc2l0b3JcIjtcbmltcG9ydCB7IEV4cHJlc3Npb24sIFNxbFRyZWVOb2RlIH0gZnJvbSBcIi4vQWJzdHJhY3Rpb25zXCI7XG5cbi8vIFJlcHJlc2VudHMgYW4gSU5TRVJUIE9SIFJFUExBQ0Ugc3RhdGVtZW50IHdpdGggYSB0YWJsZSwgY29sdW1ucywgYW5kIHZhbHVlc1xuZXhwb3J0IGNsYXNzIEluc2VydFF1ZXJ5IGltcGxlbWVudHMgU3FsVHJlZU5vZGUge1xuXG4gIHByaXZhdGUgX3RhYmxlTmFtZTogc3RyaW5nO1xuICBwcml2YXRlIF9jb2x1bW5zOiBzdHJpbmdbXSA9IFtdO1xuICBwcml2YXRlIF92YWx1ZXM6IEV4cHJlc3Npb25bXSA9IFtdO1xuICBwcml2YXRlIF9vclJlcGxhY2U6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcih0YWJsZU5hbWU6IHN0cmluZykge1xuICAgIHRoaXMuX3RhYmxlTmFtZSA9IHRhYmxlTmFtZTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgY3JlYXRlKHRhYmxlTmFtZTogc3RyaW5nKTogSW5zZXJ0UXVlcnkge1xuICAgIHJldHVybiBuZXcgSW5zZXJ0UXVlcnkodGFibGVOYW1lKTtcbiAgfVxuXG4gIHB1YmxpYyBvclJlcGxhY2UoKTogSW5zZXJ0UXVlcnkge1xuICAgIHRoaXMuX29yUmVwbGFjZSA9IHRydWU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgY29sdW1ucyguLi5jb2x1bW5zOiBzdHJpbmdbXSk6IEluc2VydFF1ZXJ5IHtcbiAgICB0aGlzLl9jb2x1bW5zID0gY29sdW1ucztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyB2YWx1ZXMoLi4udmFsdWVzOiBFeHByZXNzaW9uW10pOiBJbnNlcnRRdWVyeSB7XG4gICAgdGhpcy5fdmFsdWVzID0gdmFsdWVzO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIGlzT3JSZXBsYWNlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9vclJlcGxhY2U7XG4gIH1cblxuICBwdWJsaWMgdG9TUUwocmVuZGVyZXI/OiBRdWVyeVJlbmRlcmVyKTogc3RyaW5nIHtcbiAgICBpZiAoIXJlbmRlcmVyKSB7XG4gICAgICByZW5kZXJlciA9IG5ldyBJbmRlbnRlZFF1ZXJ5UmVuZGVyZXIoMik7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmFjY2VwdChyZW5kZXJlcik7XG4gIH1cblxuICBwdWJsaWMgYWNjZXB0PFQ+KHZpc2l0b3I6IFNxbFRyZWVOb2RlVmlzaXRvcjxUPik6IFQge1xuICAgIHJldHVybiB2aXNpdG9yLnZpc2l0SW5zZXJ0UXVlcnkodGhpcyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { SqlTreeNodeVisitor } from "../visitor/SqlTreeNodeVisitor";
|
|
2
|
+
import { Expression, SqlTreeNode } from "./Abstractions";
|
|
3
|
+
export declare enum JoinType {
|
|
4
|
+
INNER = "INNER",
|
|
5
|
+
LEFT = "LEFT",
|
|
6
|
+
CROSS = "CROSS",
|
|
7
|
+
RIGHT = "RIGHT",
|
|
8
|
+
FULL = "FULL"
|
|
9
|
+
}
|
|
10
|
+
export declare class Join implements SqlTreeNode {
|
|
11
|
+
private _type;
|
|
12
|
+
private _tableName;
|
|
13
|
+
private _alias;
|
|
14
|
+
private _on;
|
|
15
|
+
constructor(type: JoinType, tableName: string, alias: string, on: Expression);
|
|
16
|
+
get type(): JoinType;
|
|
17
|
+
get tableName(): string;
|
|
18
|
+
get alias(): string;
|
|
19
|
+
get on(): Expression;
|
|
20
|
+
accept<T>(visitor: SqlTreeNodeVisitor<T>): T;
|
|
21
|
+
}
|
package/dist/ast/Join.js
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Join = exports.JoinType = void 0;
|
|
4
|
+
var JoinType;
|
|
5
|
+
(function (JoinType) {
|
|
6
|
+
JoinType["INNER"] = "INNER";
|
|
7
|
+
JoinType["LEFT"] = "LEFT";
|
|
8
|
+
JoinType["CROSS"] = "CROSS";
|
|
9
|
+
JoinType["RIGHT"] = "RIGHT";
|
|
10
|
+
JoinType["FULL"] = "FULL";
|
|
11
|
+
})(JoinType || (exports.JoinType = JoinType = {}));
|
|
12
|
+
// Represents a JOIN clause with type, table, alias, and ON condition
|
|
13
|
+
class Join {
|
|
14
|
+
constructor(type, tableName, alias, on) {
|
|
15
|
+
this._type = type;
|
|
16
|
+
this._tableName = tableName;
|
|
17
|
+
this._alias = alias;
|
|
18
|
+
this._on = on;
|
|
19
|
+
}
|
|
20
|
+
get type() {
|
|
21
|
+
return this._type;
|
|
22
|
+
}
|
|
23
|
+
get tableName() {
|
|
24
|
+
return this._tableName;
|
|
25
|
+
}
|
|
26
|
+
get alias() {
|
|
27
|
+
return this._alias;
|
|
28
|
+
}
|
|
29
|
+
get on() {
|
|
30
|
+
return this._on;
|
|
31
|
+
}
|
|
32
|
+
accept(visitor) {
|
|
33
|
+
return visitor.visitJoinClause(this);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
exports.Join = Join;
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSm9pbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hc3QvSm9pbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHQSxJQUFZLFFBTVg7QUFORCxXQUFZLFFBQVE7SUFDbEIsMkJBQWUsQ0FBQTtJQUNmLHlCQUFhLENBQUE7SUFDYiwyQkFBZSxDQUFBO0lBQ2YsMkJBQWUsQ0FBQTtJQUNmLHlCQUFhLENBQUE7QUFDZixDQUFDLEVBTlcsUUFBUSx3QkFBUixRQUFRLFFBTW5CO0FBRUQscUVBQXFFO0FBQ3JFLE1BQWEsSUFBSTtJQU9mLFlBQVksSUFBYyxFQUFFLFNBQWlCLEVBQUUsS0FBYSxFQUFFLEVBQWM7UUFDMUUsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFDNUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUVELElBQVcsSUFBSTtRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBVyxLQUFLO1FBQ2QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFXLEVBQUU7UUFDWCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDbEIsQ0FBQztJQUVNLE1BQU0sQ0FBSSxPQUE4QjtRQUM3QyxPQUFPLE9BQU8sQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQztDQUNGO0FBakNELG9CQWlDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNxbFRyZWVOb2RlVmlzaXRvciB9IGZyb20gXCIuLi92aXNpdG9yL1NxbFRyZWVOb2RlVmlzaXRvclwiO1xuaW1wb3J0IHsgRXhwcmVzc2lvbiwgU3FsVHJlZU5vZGUgfSBmcm9tIFwiLi9BYnN0cmFjdGlvbnNcIjtcblxuZXhwb3J0IGVudW0gSm9pblR5cGUge1xuICBJTk5FUiA9ICdJTk5FUicsXG4gIExFRlQgPSAnTEVGVCcsXG4gIENST1NTID0gJ0NST1NTJyxcbiAgUklHSFQgPSAnUklHSFQnLFxuICBGVUxMID0gJ0ZVTEwnLFxufVxuXG4vLyBSZXByZXNlbnRzIGEgSk9JTiBjbGF1c2Ugd2l0aCB0eXBlLCB0YWJsZSwgYWxpYXMsIGFuZCBPTiBjb25kaXRpb25cbmV4cG9ydCBjbGFzcyBKb2luIGltcGxlbWVudHMgU3FsVHJlZU5vZGUge1xuXG4gIHByaXZhdGUgX3R5cGU6IEpvaW5UeXBlO1xuICBwcml2YXRlIF90YWJsZU5hbWU6IHN0cmluZztcbiAgcHJpdmF0ZSBfYWxpYXM6IHN0cmluZztcbiAgcHJpdmF0ZSBfb246IEV4cHJlc3Npb247XG5cbiAgY29uc3RydWN0b3IodHlwZTogSm9pblR5cGUsIHRhYmxlTmFtZTogc3RyaW5nLCBhbGlhczogc3RyaW5nLCBvbjogRXhwcmVzc2lvbikge1xuICAgIHRoaXMuX3R5cGUgPSB0eXBlO1xuICAgIHRoaXMuX3RhYmxlTmFtZSA9IHRhYmxlTmFtZTtcbiAgICB0aGlzLl9hbGlhcyA9IGFsaWFzO1xuICAgIHRoaXMuX29uID0gb247XG4gIH1cblxuICBwdWJsaWMgZ2V0IHR5cGUoKTogSm9pblR5cGUge1xuICAgIHJldHVybiB0aGlzLl90eXBlO1xuICB9XG5cbiAgcHVibGljIGdldCB0YWJsZU5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fdGFibGVOYW1lO1xuICB9XG5cbiAgcHVibGljIGdldCBhbGlhcygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9hbGlhcztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgb24oKTogRXhwcmVzc2lvbiB7XG4gICAgcmV0dXJuIHRoaXMuX29uO1xuICB9XG5cbiAgcHVibGljIGFjY2VwdDxUPih2aXNpdG9yOiBTcWxUcmVlTm9kZVZpc2l0b3I8VD4pOiBUIHtcbiAgICByZXR1cm4gdmlzaXRvci52aXNpdEpvaW5DbGF1c2UodGhpcyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { SqlTreeNodeVisitor } from "../visitor/SqlTreeNodeVisitor";
|
|
2
|
+
import { AliasableExpression } from "./Abstractions";
|
|
3
|
+
export declare abstract class LiteralExpression extends AliasableExpression {
|
|
4
|
+
abstract get value(): any;
|
|
5
|
+
abstract accept<T>(visitor: SqlTreeNodeVisitor<T>): T;
|
|
6
|
+
}
|
|
7
|
+
export declare class NumberLiteral extends LiteralExpression {
|
|
8
|
+
private _value;
|
|
9
|
+
constructor(value: number);
|
|
10
|
+
get value(): number;
|
|
11
|
+
accept<T>(visitor: SqlTreeNodeVisitor<T>): T;
|
|
12
|
+
}
|
|
13
|
+
export declare class StringLiteral extends LiteralExpression {
|
|
14
|
+
private _value;
|
|
15
|
+
constructor(value: string);
|
|
16
|
+
get value(): string;
|
|
17
|
+
accept<T>(visitor: SqlTreeNodeVisitor<T>): T;
|
|
18
|
+
}
|
|
19
|
+
export declare class NullLiteral extends LiteralExpression {
|
|
20
|
+
static readonly INSTANCE: NullLiteral;
|
|
21
|
+
private constructor();
|
|
22
|
+
get value(): null;
|
|
23
|
+
accept<T>(visitor: SqlTreeNodeVisitor<T>): T;
|
|
24
|
+
}
|
|
25
|
+
export declare class Param extends LiteralExpression {
|
|
26
|
+
private _paramName?;
|
|
27
|
+
constructor(paramName?: string);
|
|
28
|
+
get value(): any;
|
|
29
|
+
get paramName(): string | undefined;
|
|
30
|
+
accept<T>(visitor: SqlTreeNodeVisitor<T>): T;
|
|
31
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Param = exports.NullLiteral = exports.StringLiteral = exports.NumberLiteral = exports.LiteralExpression = void 0;
|
|
4
|
+
const Abstractions_1 = require("./Abstractions");
|
|
5
|
+
class LiteralExpression extends Abstractions_1.AliasableExpression {
|
|
6
|
+
}
|
|
7
|
+
exports.LiteralExpression = LiteralExpression;
|
|
8
|
+
class NumberLiteral extends LiteralExpression {
|
|
9
|
+
constructor(value) {
|
|
10
|
+
super();
|
|
11
|
+
this._value = value;
|
|
12
|
+
}
|
|
13
|
+
get value() {
|
|
14
|
+
return this._value;
|
|
15
|
+
}
|
|
16
|
+
accept(visitor) {
|
|
17
|
+
return visitor.visitNumberLiteral(this);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.NumberLiteral = NumberLiteral;
|
|
21
|
+
class StringLiteral extends LiteralExpression {
|
|
22
|
+
constructor(value) {
|
|
23
|
+
super();
|
|
24
|
+
this._value = value;
|
|
25
|
+
}
|
|
26
|
+
get value() {
|
|
27
|
+
return this._value;
|
|
28
|
+
}
|
|
29
|
+
accept(visitor) {
|
|
30
|
+
return visitor.visitStringLiteral(this);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
exports.StringLiteral = StringLiteral;
|
|
34
|
+
class NullLiteral extends LiteralExpression {
|
|
35
|
+
constructor() {
|
|
36
|
+
super();
|
|
37
|
+
}
|
|
38
|
+
get value() {
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
accept(visitor) {
|
|
42
|
+
return visitor.visitNullLiteral(this);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
exports.NullLiteral = NullLiteral;
|
|
46
|
+
NullLiteral.INSTANCE = new NullLiteral();
|
|
47
|
+
// Represents a prepared statement parameter, with optional name for mapping values
|
|
48
|
+
// Example: new Param('minPrice') maps to a value in ParamCollectingVisitor
|
|
49
|
+
class Param extends LiteralExpression {
|
|
50
|
+
constructor(paramName) {
|
|
51
|
+
super();
|
|
52
|
+
this._paramName = paramName;
|
|
53
|
+
}
|
|
54
|
+
get value() {
|
|
55
|
+
return undefined;
|
|
56
|
+
}
|
|
57
|
+
get paramName() {
|
|
58
|
+
return this._paramName;
|
|
59
|
+
}
|
|
60
|
+
accept(visitor) {
|
|
61
|
+
return visitor.visitParamExpression(this);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
exports.Param = Param;
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGl0ZXJhbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXN0L0xpdGVyYWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLGlEQUFxRDtBQUVyRCxNQUFzQixpQkFBa0IsU0FBUSxrQ0FBbUI7Q0FHbEU7QUFIRCw4Q0FHQztBQUVELE1BQWEsYUFBYyxTQUFRLGlCQUFpQjtJQUVsRCxZQUFZLEtBQWE7UUFDdkIsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBVyxLQUFLO1FBQ2QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFFTSxNQUFNLENBQUksT0FBOEI7UUFDN0MsT0FBTyxPQUFPLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUMsQ0FBQztDQUNGO0FBZEQsc0NBY0M7QUFFRCxNQUFhLGFBQWMsU0FBUSxpQkFBaUI7SUFFbEQsWUFBWSxLQUFhO1FBQ3ZCLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQVcsS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRU0sTUFBTSxDQUFJLE9BQThCO1FBQzdDLE9BQU8sT0FBTyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFDLENBQUM7Q0FDRjtBQWRELHNDQWNDO0FBRUQsTUFBYSxXQUFZLFNBQVEsaUJBQWlCO0lBSWhEO1FBQ0UsS0FBSyxFQUFFLENBQUM7SUFDVixDQUFDO0lBRUQsSUFBVyxLQUFLO1FBQ2QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU0sTUFBTSxDQUFJLE9BQThCO1FBQzdDLE9BQU8sT0FBTyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7O0FBZEgsa0NBZUM7QUFid0Isb0JBQVEsR0FBZ0IsSUFBSSxXQUFXLEVBQUUsQ0FBQztBQWVuRSxtRkFBbUY7QUFDbkYsMkVBQTJFO0FBQzNFLE1BQWEsS0FBTSxTQUFRLGlCQUFpQjtJQUkxQyxZQUFZLFNBQWtCO1FBQzVCLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQVcsS0FBSztRQUNkLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxJQUFXLFNBQVM7UUFDbEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFTSxNQUFNLENBQUksT0FBOEI7UUFDN0MsT0FBTyxPQUFPLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUMsQ0FBQztDQUNGO0FBcEJELHNCQW9CQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNxbFRyZWVOb2RlVmlzaXRvciB9IGZyb20gXCIuLi92aXNpdG9yL1NxbFRyZWVOb2RlVmlzaXRvclwiO1xuaW1wb3J0IHsgQWxpYXNhYmxlRXhwcmVzc2lvbiB9IGZyb20gXCIuL0Fic3RyYWN0aW9uc1wiO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTGl0ZXJhbEV4cHJlc3Npb24gZXh0ZW5kcyBBbGlhc2FibGVFeHByZXNzaW9uIHtcbiAgcHVibGljIGFic3RyYWN0IGdldCB2YWx1ZSgpOiBhbnk7XG4gIHB1YmxpYyBhYnN0cmFjdCBhY2NlcHQ8VD4odmlzaXRvcjogU3FsVHJlZU5vZGVWaXNpdG9yPFQ+KTpUO1xufVxuXG5leHBvcnQgY2xhc3MgTnVtYmVyTGl0ZXJhbCBleHRlbmRzIExpdGVyYWxFeHByZXNzaW9uIHtcbiAgcHJpdmF0ZSBfdmFsdWU6IG51bWJlcjtcbiAgY29uc3RydWN0b3IodmFsdWU6IG51bWJlcikge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgYWNjZXB0PFQ+KHZpc2l0b3I6IFNxbFRyZWVOb2RlVmlzaXRvcjxUPik6IFQge1xuICAgIHJldHVybiB2aXNpdG9yLnZpc2l0TnVtYmVyTGl0ZXJhbCh0aGlzKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU3RyaW5nTGl0ZXJhbCBleHRlbmRzIExpdGVyYWxFeHByZXNzaW9uIHtcbiAgcHJpdmF0ZSBfdmFsdWU6IHN0cmluZztcbiAgY29uc3RydWN0b3IodmFsdWU6IHN0cmluZykge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgYWNjZXB0PFQ+KHZpc2l0b3I6IFNxbFRyZWVOb2RlVmlzaXRvcjxUPik6IFQge1xuICAgIHJldHVybiB2aXNpdG9yLnZpc2l0U3RyaW5nTGl0ZXJhbCh0aGlzKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgTnVsbExpdGVyYWwgZXh0ZW5kcyBMaXRlcmFsRXhwcmVzc2lvbiB7XG5cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBJTlNUQU5DRTogTnVsbExpdGVyYWwgPSBuZXcgTnVsbExpdGVyYWwoKTtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IG51bGwge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHVibGljIGFjY2VwdDxUPih2aXNpdG9yOiBTcWxUcmVlTm9kZVZpc2l0b3I8VD4pOiBUIHtcbiAgICByZXR1cm4gdmlzaXRvci52aXNpdE51bGxMaXRlcmFsKHRoaXMpO1xuICB9XG59XG5cbi8vIFJlcHJlc2VudHMgYSBwcmVwYXJlZCBzdGF0ZW1lbnQgcGFyYW1ldGVyLCB3aXRoIG9wdGlvbmFsIG5hbWUgZm9yIG1hcHBpbmcgdmFsdWVzXG4vLyBFeGFtcGxlOiBuZXcgUGFyYW0oJ21pblByaWNlJykgbWFwcyB0byBhIHZhbHVlIGluIFBhcmFtQ29sbGVjdGluZ1Zpc2l0b3JcbmV4cG9ydCBjbGFzcyBQYXJhbSBleHRlbmRzIExpdGVyYWxFeHByZXNzaW9uIHtcblxuICBwcml2YXRlIF9wYXJhbU5hbWU/OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocGFyYW1OYW1lPzogc3RyaW5nKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLl9wYXJhbU5hbWUgPSBwYXJhbU5hbWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcGFyYW1OYW1lKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX3BhcmFtTmFtZTtcbiAgfVxuXG4gIHB1YmxpYyBhY2NlcHQ8VD4odmlzaXRvcjogU3FsVHJlZU5vZGVWaXNpdG9yPFQ+KTogVCB7XG4gICAgcmV0dXJuIHZpc2l0b3IudmlzaXRQYXJhbUV4cHJlc3Npb24odGhpcyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare enum Operator {
|
|
2
|
+
AND = "AND",
|
|
3
|
+
OR = "OR",
|
|
4
|
+
NOT = "NOT",
|
|
5
|
+
EQUALS = "=",
|
|
6
|
+
NOT_EQUALS = "!=",
|
|
7
|
+
GREATER_THAN = ">",
|
|
8
|
+
LESS_THAN = "<",
|
|
9
|
+
GREATER_THAN_OR_EQUAL = ">=",
|
|
10
|
+
LESS_THAN_OR_EQUAL = "<=",
|
|
11
|
+
LIKE = "LIKE",
|
|
12
|
+
MINUS = "-",
|
|
13
|
+
PLUS = "+",
|
|
14
|
+
MULTIPLY = "*",
|
|
15
|
+
DIVIDE = "/",
|
|
16
|
+
IS_NULL = "IS NULL",
|
|
17
|
+
IS_NOT_NULL = "IS NOT NULL"
|
|
18
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Operator = void 0;
|
|
4
|
+
var Operator;
|
|
5
|
+
(function (Operator) {
|
|
6
|
+
Operator["AND"] = "AND";
|
|
7
|
+
Operator["OR"] = "OR";
|
|
8
|
+
Operator["NOT"] = "NOT";
|
|
9
|
+
Operator["EQUALS"] = "=";
|
|
10
|
+
Operator["NOT_EQUALS"] = "!=";
|
|
11
|
+
Operator["GREATER_THAN"] = ">";
|
|
12
|
+
Operator["LESS_THAN"] = "<";
|
|
13
|
+
Operator["GREATER_THAN_OR_EQUAL"] = ">=";
|
|
14
|
+
Operator["LESS_THAN_OR_EQUAL"] = "<=";
|
|
15
|
+
Operator["LIKE"] = "LIKE";
|
|
16
|
+
Operator["MINUS"] = "-";
|
|
17
|
+
Operator["PLUS"] = "+";
|
|
18
|
+
Operator["MULTIPLY"] = "*";
|
|
19
|
+
Operator["DIVIDE"] = "/";
|
|
20
|
+
Operator["IS_NULL"] = "IS NULL";
|
|
21
|
+
Operator["IS_NOT_NULL"] = "IS NOT NULL";
|
|
22
|
+
})(Operator || (exports.Operator = Operator = {}));
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3BlcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXN0L09wZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLElBQVksUUFpQlg7QUFqQkQsV0FBWSxRQUFRO0lBQ2xCLHVCQUFXLENBQUE7SUFDWCxxQkFBUyxDQUFBO0lBQ1QsdUJBQVcsQ0FBQTtJQUNYLHdCQUFZLENBQUE7SUFDWiw2QkFBaUIsQ0FBQTtJQUNqQiw4QkFBa0IsQ0FBQTtJQUNsQiwyQkFBZSxDQUFBO0lBQ2Ysd0NBQTRCLENBQUE7SUFDNUIscUNBQXlCLENBQUE7SUFDekIseUJBQWEsQ0FBQTtJQUNiLHVCQUFXLENBQUE7SUFDWCxzQkFBVSxDQUFBO0lBQ1YsMEJBQWMsQ0FBQTtJQUNkLHdCQUFZLENBQUE7SUFDWiwrQkFBbUIsQ0FBQTtJQUNuQix1Q0FBMkIsQ0FBQTtBQUM3QixDQUFDLEVBakJXLFFBQVEsd0JBQVIsUUFBUSxRQWlCbkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBPcGVyYXRvciB7XG4gIEFORCA9ICdBTkQnLFxuICBPUiA9ICdPUicsXG4gIE5PVCA9ICdOT1QnLFxuICBFUVVBTFMgPSAnPScsXG4gIE5PVF9FUVVBTFMgPSAnIT0nLFxuICBHUkVBVEVSX1RIQU4gPSAnPicsXG4gIExFU1NfVEhBTiA9ICc8JyxcbiAgR1JFQVRFUl9USEFOX09SX0VRVUFMID0gJz49JyxcbiAgTEVTU19USEFOX09SX0VRVUFMID0gJzw9JyxcbiAgTElLRSA9ICdMSUtFJyxcbiAgTUlOVVMgPSAnLScsXG4gIFBMVVMgPSAnKycsXG4gIE1VTFRJUExZID0gJyonLFxuICBESVZJREUgPSAnLycsXG4gIElTX05VTEwgPSAnSVMgTlVMTCcsXG4gIElTX05PVF9OVUxMID0gJ0lTIE5PVCBOVUxMJyxcbn1cbiJdfQ==
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { SqlTreeNodeVisitor } from "../visitor/SqlTreeNodeVisitor";
|
|
2
|
+
import { Expression, SqlTreeNode } from "./Abstractions";
|
|
3
|
+
export declare enum OrderByDirection {
|
|
4
|
+
ASC = "ASC",
|
|
5
|
+
DESC = "DESC"
|
|
6
|
+
}
|
|
7
|
+
export declare class OrderBy implements SqlTreeNode {
|
|
8
|
+
private _column;
|
|
9
|
+
private _direction;
|
|
10
|
+
constructor(column: Expression, direction: OrderByDirection);
|
|
11
|
+
get column(): Expression;
|
|
12
|
+
get direction(): OrderByDirection;
|
|
13
|
+
accept<T>(visitor: SqlTreeNodeVisitor<T>): T;
|
|
14
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OrderBy = exports.OrderByDirection = void 0;
|
|
4
|
+
var OrderByDirection;
|
|
5
|
+
(function (OrderByDirection) {
|
|
6
|
+
OrderByDirection["ASC"] = "ASC";
|
|
7
|
+
OrderByDirection["DESC"] = "DESC";
|
|
8
|
+
})(OrderByDirection || (exports.OrderByDirection = OrderByDirection = {}));
|
|
9
|
+
class OrderBy {
|
|
10
|
+
constructor(column, direction) {
|
|
11
|
+
this._column = column;
|
|
12
|
+
this._direction = direction;
|
|
13
|
+
}
|
|
14
|
+
get column() {
|
|
15
|
+
return this._column;
|
|
16
|
+
}
|
|
17
|
+
get direction() {
|
|
18
|
+
return this._direction;
|
|
19
|
+
}
|
|
20
|
+
accept(visitor) {
|
|
21
|
+
return visitor.visitOrderBy(this);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.OrderBy = OrderBy;
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3JkZXJCeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hc3QvT3JkZXJCeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHQSxJQUFZLGdCQUdYO0FBSEQsV0FBWSxnQkFBZ0I7SUFDMUIsK0JBQVcsQ0FBQTtJQUNYLGlDQUFhLENBQUE7QUFDZixDQUFDLEVBSFcsZ0JBQWdCLGdDQUFoQixnQkFBZ0IsUUFHM0I7QUFFRCxNQUFhLE9BQU87SUFLbEIsWUFBWSxNQUFrQixFQUFFLFNBQTJCO1FBQ3pELElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFXLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQVcsU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUVNLE1BQU0sQ0FBSSxPQUE4QjtRQUM3QyxPQUFPLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEMsQ0FBQztDQUNGO0FBckJELDBCQXFCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNxbFRyZWVOb2RlVmlzaXRvciB9IGZyb20gXCIuLi92aXNpdG9yL1NxbFRyZWVOb2RlVmlzaXRvclwiO1xuaW1wb3J0IHsgRXhwcmVzc2lvbiwgU3FsVHJlZU5vZGUgfSBmcm9tIFwiLi9BYnN0cmFjdGlvbnNcIjtcblxuZXhwb3J0IGVudW0gT3JkZXJCeURpcmVjdGlvbiB7XG4gIEFTQyA9ICdBU0MnLFxuICBERVNDID0gJ0RFU0MnLFxufVxuXG5leHBvcnQgY2xhc3MgT3JkZXJCeSBpbXBsZW1lbnRzIFNxbFRyZWVOb2RlIHtcblxuICBwcml2YXRlIF9jb2x1bW46IEV4cHJlc3Npb247XG4gIHByaXZhdGUgX2RpcmVjdGlvbjogT3JkZXJCeURpcmVjdGlvbjtcblxuICBjb25zdHJ1Y3Rvcihjb2x1bW46IEV4cHJlc3Npb24sIGRpcmVjdGlvbjogT3JkZXJCeURpcmVjdGlvbikge1xuICAgIHRoaXMuX2NvbHVtbiA9IGNvbHVtbjtcbiAgICB0aGlzLl9kaXJlY3Rpb24gPSBkaXJlY3Rpb247XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNvbHVtbigpOiBFeHByZXNzaW9uIHtcbiAgICByZXR1cm4gdGhpcy5fY29sdW1uO1xuICB9XG5cbiAgcHVibGljIGdldCBkaXJlY3Rpb24oKTogT3JkZXJCeURpcmVjdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuX2RpcmVjdGlvbjtcbiAgfVxuXG4gIHB1YmxpYyBhY2NlcHQ8VD4odmlzaXRvcjogU3FsVHJlZU5vZGVWaXNpdG9yPFQ+KTogVCB7XG4gICAgcmV0dXJuIHZpc2l0b3IudmlzaXRPcmRlckJ5KHRoaXMpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { QueryRenderer } from "../renderer/QueryRenderer";
|
|
2
|
+
import { SqlTreeNodeVisitor } from "../visitor/SqlTreeNodeVisitor";
|
|
3
|
+
import { Expression, SqlTreeNode } from "./Abstractions";
|
|
4
|
+
import { Column, ColumnLike } from "./Column";
|
|
5
|
+
import { FromLike } from "./From";
|
|
6
|
+
import { Join, JoinType } from "./Join";
|
|
7
|
+
import { OrderByDirection } from "./OrderBy";
|
|
8
|
+
import { With } from "./With";
|
|
9
|
+
export declare class SelectQuery implements SqlTreeNode {
|
|
10
|
+
private _fromsAndJoins;
|
|
11
|
+
private _columns;
|
|
12
|
+
private _where;
|
|
13
|
+
private _groupBy;
|
|
14
|
+
private _having;
|
|
15
|
+
private _with;
|
|
16
|
+
private _union;
|
|
17
|
+
private _orderBy;
|
|
18
|
+
private _offset?;
|
|
19
|
+
private _limit?;
|
|
20
|
+
private _distinct;
|
|
21
|
+
static create(): SelectQuery;
|
|
22
|
+
distinct(): SelectQuery;
|
|
23
|
+
with(clause: With): SelectQuery;
|
|
24
|
+
with(name: string, query: SelectQuery): SelectQuery;
|
|
25
|
+
from(fromClause: FromLike): SelectQuery;
|
|
26
|
+
column(column: ColumnLike): SelectQuery;
|
|
27
|
+
join(join: Join): SelectQuery;
|
|
28
|
+
join(type: JoinType, tableName: string, alias: string, on: Expression): SelectQuery;
|
|
29
|
+
where(whereClause: Expression): SelectQuery;
|
|
30
|
+
groupBy(...columns: (string | Column)[]): SelectQuery;
|
|
31
|
+
having(havingClause: Expression): SelectQuery;
|
|
32
|
+
union(query: SelectQuery): SelectQuery;
|
|
33
|
+
orderBy(column: string | Expression, direction: OrderByDirection): SelectQuery;
|
|
34
|
+
offset(offset: number): SelectQuery;
|
|
35
|
+
limit(limit: number): SelectQuery;
|
|
36
|
+
toSQL(renderer?: QueryRenderer): string;
|
|
37
|
+
accept<T>(visitor: SqlTreeNodeVisitor<T>): T;
|
|
38
|
+
isDistinct(): boolean;
|
|
39
|
+
}
|