@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.
Files changed (69) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +133 -0
  3. package/dist/ast/Abstractions.d.ts +14 -0
  4. package/dist/ast/Abstractions.js +11 -0
  5. package/dist/ast/Alias.d.ts +11 -0
  6. package/dist/ast/Alias.js +23 -0
  7. package/dist/ast/BinaryExpression.d.ts +13 -0
  8. package/dist/ast/BinaryExpression.js +26 -0
  9. package/dist/ast/CaseExpression.d.ts +14 -0
  10. package/dist/ast/CaseExpression.js +22 -0
  11. package/dist/ast/Column.d.ts +17 -0
  12. package/dist/ast/Column.js +38 -0
  13. package/dist/ast/Concat.d.ts +8 -0
  14. package/dist/ast/Concat.js +19 -0
  15. package/dist/ast/ExistsExpression.d.ts +9 -0
  16. package/dist/ast/ExistsExpression.js +18 -0
  17. package/dist/ast/From.d.ts +33 -0
  18. package/dist/ast/From.js +60 -0
  19. package/dist/ast/FunctionExpression.d.ts +13 -0
  20. package/dist/ast/FunctionExpression.js +27 -0
  21. package/dist/ast/FunctionName.d.ts +1 -0
  22. package/dist/ast/FunctionName.js +3 -0
  23. package/dist/ast/InExpression.d.ts +13 -0
  24. package/dist/ast/InExpression.js +35 -0
  25. package/dist/ast/InsertQuery.d.ts +17 -0
  26. package/dist/ast/InsertQuery.js +42 -0
  27. package/dist/ast/Join.d.ts +21 -0
  28. package/dist/ast/Join.js +37 -0
  29. package/dist/ast/Literals.d.ts +31 -0
  30. package/dist/ast/Literals.js +65 -0
  31. package/dist/ast/Operator.d.ts +18 -0
  32. package/dist/ast/Operator.js +23 -0
  33. package/dist/ast/OrderBy.d.ts +14 -0
  34. package/dist/ast/OrderBy.js +25 -0
  35. package/dist/ast/SelectQuery.d.ts +39 -0
  36. package/dist/ast/SelectQuery.js +109 -0
  37. package/dist/ast/UnaryExpression.d.ts +11 -0
  38. package/dist/ast/UnaryExpression.js +22 -0
  39. package/dist/ast/With.d.ts +11 -0
  40. package/dist/ast/With.js +21 -0
  41. package/dist/builder/QueryBuilder.d.ts +8 -0
  42. package/dist/builder/QueryBuilder.js +20 -0
  43. package/dist/builder/Shorthand.d.ts +77 -0
  44. package/dist/builder/Shorthand.js +375 -0
  45. package/dist/index.d.ts +32 -0
  46. package/dist/index.js +133 -0
  47. package/dist/renderer/CompactQueryRenderer.d.ts +45 -0
  48. package/dist/renderer/CompactQueryRenderer.js +192 -0
  49. package/dist/renderer/IndentedQueryRenderer.d.ts +51 -0
  50. package/dist/renderer/IndentedQueryRenderer.js +230 -0
  51. package/dist/renderer/QueryRenderer.d.ts +8 -0
  52. package/dist/renderer/QueryRenderer.js +77 -0
  53. package/dist/validate/CommonQueryValidator.d.ts +50 -0
  54. package/dist/validate/CommonQueryValidator.js +262 -0
  55. package/dist/validate/QueryValidator.d.ts +6 -0
  56. package/dist/validate/QueryValidator.js +3 -0
  57. package/dist/validate/SQLiteQueryValidator.d.ts +27 -0
  58. package/dist/validate/SQLiteQueryValidator.js +96 -0
  59. package/dist/visitor/ParamCollector.d.ts +46 -0
  60. package/dist/visitor/ParamCollector.js +129 -0
  61. package/dist/visitor/QueryIdentityTransformer.d.ts +45 -0
  62. package/dist/visitor/QueryIdentityTransformer.js +173 -0
  63. package/dist/visitor/QueryParamRewriteTransformer.d.ts +11 -0
  64. package/dist/visitor/QueryParamRewriteTransformer.js +26 -0
  65. package/dist/visitor/SqlTreeNodeTransformer.d.ts +5 -0
  66. package/dist/visitor/SqlTreeNodeTransformer.js +3 -0
  67. package/dist/visitor/SqlTreeNodeVisitor.d.ts +45 -0
  68. package/dist/visitor/SqlTreeNodeVisitor.js +47 -0
  69. package/package.json +36 -0
@@ -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
+ }
@@ -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
+ }