@grest-ts/sql 0.0.5

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 (146) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +498 -0
  3. package/dist/src/MysqlTable.d.ts +35 -0
  4. package/dist/src/MysqlTable.d.ts.map +1 -0
  5. package/dist/src/MysqlTable.js +70 -0
  6. package/dist/src/MysqlTable.js.map +1 -0
  7. package/dist/src/MysqlTableStructureParser.d.ts +106 -0
  8. package/dist/src/MysqlTableStructureParser.d.ts.map +1 -0
  9. package/dist/src/MysqlTableStructureParser.js +189 -0
  10. package/dist/src/MysqlTableStructureParser.js.map +1 -0
  11. package/dist/src/SQL.d.ts +72 -0
  12. package/dist/src/SQL.d.ts.map +1 -0
  13. package/dist/src/SQL.js +94 -0
  14. package/dist/src/SQL.js.map +1 -0
  15. package/dist/src/SqlExpression.d.ts +49 -0
  16. package/dist/src/SqlExpression.d.ts.map +1 -0
  17. package/dist/src/SqlExpression.js +117 -0
  18. package/dist/src/SqlExpression.js.map +1 -0
  19. package/dist/src/SqlFunctions.d.ts +118 -0
  20. package/dist/src/SqlFunctions.d.ts.map +1 -0
  21. package/dist/src/SqlFunctions.js +331 -0
  22. package/dist/src/SqlFunctions.js.map +1 -0
  23. package/dist/src/Symbols.d.ts +11 -0
  24. package/dist/src/Symbols.d.ts.map +1 -0
  25. package/dist/src/Symbols.js +11 -0
  26. package/dist/src/Symbols.js.map +1 -0
  27. package/dist/src/Types.d.ts +110 -0
  28. package/dist/src/Types.d.ts.map +1 -0
  29. package/dist/src/Types.js +34 -0
  30. package/dist/src/Types.js.map +1 -0
  31. package/dist/src/delete/DeleteBuilder.d.ts +19 -0
  32. package/dist/src/delete/DeleteBuilder.d.ts.map +1 -0
  33. package/dist/src/delete/DeleteBuilder.js +50 -0
  34. package/dist/src/delete/DeleteBuilder.js.map +1 -0
  35. package/dist/src/delete/DeleteInterfaces.d.ts +27 -0
  36. package/dist/src/delete/DeleteInterfaces.d.ts.map +1 -0
  37. package/dist/src/delete/DeleteInterfaces.js +2 -0
  38. package/dist/src/delete/DeleteInterfaces.js.map +1 -0
  39. package/dist/src/escape.d.ts +4 -0
  40. package/dist/src/escape.d.ts.map +1 -0
  41. package/dist/src/escape.js +50 -0
  42. package/dist/src/escape.js.map +1 -0
  43. package/dist/src/index.d.ts +7 -0
  44. package/dist/src/index.d.ts.map +1 -0
  45. package/dist/src/index.js +7 -0
  46. package/dist/src/index.js.map +1 -0
  47. package/dist/src/insert/InsertBuilder.d.ts +19 -0
  48. package/dist/src/insert/InsertBuilder.d.ts.map +1 -0
  49. package/dist/src/insert/InsertBuilder.js +62 -0
  50. package/dist/src/insert/InsertBuilder.js.map +1 -0
  51. package/dist/src/insert/InsertInterfaces.d.ts +11 -0
  52. package/dist/src/insert/InsertInterfaces.d.ts.map +1 -0
  53. package/dist/src/insert/InsertInterfaces.js +2 -0
  54. package/dist/src/insert/InsertInterfaces.js.map +1 -0
  55. package/dist/src/select/SelectBuilder.d.ts +72 -0
  56. package/dist/src/select/SelectBuilder.d.ts.map +1 -0
  57. package/dist/src/select/SelectBuilder.js +315 -0
  58. package/dist/src/select/SelectBuilder.js.map +1 -0
  59. package/dist/src/select/parts/GatewayWhere.d.ts +17 -0
  60. package/dist/src/select/parts/GatewayWhere.d.ts.map +1 -0
  61. package/dist/src/select/parts/GatewayWhere.js +2 -0
  62. package/dist/src/select/parts/GatewayWhere.js.map +1 -0
  63. package/dist/src/select/parts/S0Union.d.ts +20 -0
  64. package/dist/src/select/parts/S0Union.d.ts.map +1 -0
  65. package/dist/src/select/parts/S0Union.js +2 -0
  66. package/dist/src/select/parts/S0Union.js.map +1 -0
  67. package/dist/src/select/parts/S0Uses.d.ts +6 -0
  68. package/dist/src/select/parts/S0Uses.d.ts.map +1 -0
  69. package/dist/src/select/parts/S0Uses.js +2 -0
  70. package/dist/src/select/parts/S0Uses.js.map +1 -0
  71. package/dist/src/select/parts/S0With.d.ts +6 -0
  72. package/dist/src/select/parts/S0With.d.ts.map +1 -0
  73. package/dist/src/select/parts/S0With.js +2 -0
  74. package/dist/src/select/parts/S0With.js.map +1 -0
  75. package/dist/src/select/parts/S1Join.d.ts +12 -0
  76. package/dist/src/select/parts/S1Join.d.ts.map +1 -0
  77. package/dist/src/select/parts/S1Join.js +2 -0
  78. package/dist/src/select/parts/S1Join.js.map +1 -0
  79. package/dist/src/select/parts/S2Columns.d.ts +35 -0
  80. package/dist/src/select/parts/S2Columns.d.ts.map +1 -0
  81. package/dist/src/select/parts/S2Columns.js +3 -0
  82. package/dist/src/select/parts/S2Columns.js.map +1 -0
  83. package/dist/src/select/parts/S2Where.d.ts +13 -0
  84. package/dist/src/select/parts/S2Where.d.ts.map +1 -0
  85. package/dist/src/select/parts/S2Where.js +2 -0
  86. package/dist/src/select/parts/S2Where.js.map +1 -0
  87. package/dist/src/select/parts/S3GroupBy.d.ts +10 -0
  88. package/dist/src/select/parts/S3GroupBy.d.ts.map +1 -0
  89. package/dist/src/select/parts/S3GroupBy.js +2 -0
  90. package/dist/src/select/parts/S3GroupBy.js.map +1 -0
  91. package/dist/src/select/parts/S4Having.d.ts +10 -0
  92. package/dist/src/select/parts/S4Having.d.ts.map +1 -0
  93. package/dist/src/select/parts/S4Having.js +2 -0
  94. package/dist/src/select/parts/S4Having.js.map +1 -0
  95. package/dist/src/select/parts/S5OrderBy.d.ts +9 -0
  96. package/dist/src/select/parts/S5OrderBy.d.ts.map +1 -0
  97. package/dist/src/select/parts/S5OrderBy.js +2 -0
  98. package/dist/src/select/parts/S5OrderBy.js.map +1 -0
  99. package/dist/src/select/parts/S6Limit.d.ts +7 -0
  100. package/dist/src/select/parts/S6Limit.d.ts.map +1 -0
  101. package/dist/src/select/parts/S6Limit.js +2 -0
  102. package/dist/src/select/parts/S6Limit.js.map +1 -0
  103. package/dist/src/select/parts/S7Exec.d.ts +26 -0
  104. package/dist/src/select/parts/S7Exec.d.ts.map +1 -0
  105. package/dist/src/select/parts/S7Exec.js +2 -0
  106. package/dist/src/select/parts/S7Exec.js.map +1 -0
  107. package/dist/src/tsconfig.json +16 -0
  108. package/dist/src/update/UpdateBuilder.d.ts +28 -0
  109. package/dist/src/update/UpdateBuilder.d.ts.map +1 -0
  110. package/dist/src/update/UpdateBuilder.js +77 -0
  111. package/dist/src/update/UpdateBuilder.js.map +1 -0
  112. package/dist/src/update/UpdateInterfaces.d.ts +34 -0
  113. package/dist/src/update/UpdateInterfaces.d.ts.map +1 -0
  114. package/dist/src/update/UpdateInterfaces.js +2 -0
  115. package/dist/src/update/UpdateInterfaces.js.map +1 -0
  116. package/dist/tsconfig.publish.tsbuildinfo +1 -0
  117. package/package.json +54 -0
  118. package/src/MysqlTable.ts +102 -0
  119. package/src/MysqlTableStructureParser.ts +283 -0
  120. package/src/SQL.ts +244 -0
  121. package/src/SqlExpression.ts +172 -0
  122. package/src/SqlFunctions.ts +471 -0
  123. package/src/Symbols.ts +11 -0
  124. package/src/Types.ts +244 -0
  125. package/src/delete/DeleteBuilder.ts +65 -0
  126. package/src/delete/DeleteInterfaces.ts +70 -0
  127. package/src/escape.ts +52 -0
  128. package/src/index.ts +6 -0
  129. package/src/insert/InsertBuilder.ts +76 -0
  130. package/src/insert/InsertInterfaces.ts +16 -0
  131. package/src/select/SelectBuilder.ts +372 -0
  132. package/src/select/parts/GatewayWhere.ts +31 -0
  133. package/src/select/parts/S0Union.ts +43 -0
  134. package/src/select/parts/S0Uses.ts +21 -0
  135. package/src/select/parts/S0With.ts +21 -0
  136. package/src/select/parts/S1Join.ts +39 -0
  137. package/src/select/parts/S2Columns.ts +68 -0
  138. package/src/select/parts/S2Where.ts +51 -0
  139. package/src/select/parts/S3GroupBy.ts +23 -0
  140. package/src/select/parts/S4Having.ts +24 -0
  141. package/src/select/parts/S5OrderBy.ts +21 -0
  142. package/src/select/parts/S6Limit.ts +9 -0
  143. package/src/select/parts/S7Exec.ts +41 -0
  144. package/src/tsconfig.json +16 -0
  145. package/src/update/UpdateBuilder.ts +96 -0
  146. package/src/update/UpdateInterfaces.ts +87 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectBuilder.d.ts","sourceRoot":"","sources":["../../../src/select/SelectBuilder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,315 @@
1
+ import { Over, SqlExpression } from "../SqlExpression.js";
2
+ import { MysqlTable } from "../MysqlTable.js";
3
+ import { SQL_ALIAS, SQL_ENTITY, SQL_EXPRESSION } from "../Symbols.js";
4
+ import { escape, escapeId } from "../escape.js";
5
+ import { ONE, orderByStructureToSqlString } from "../SqlFunctions.js";
6
+ const TAB = " ";
7
+ export class SelectBuilder {
8
+ [SQL_ENTITY]; // never used
9
+ _withQueries = new Map();
10
+ _from;
11
+ _columns = [];
12
+ _columnStruct = {};
13
+ _joins = [];
14
+ _windows = [];
15
+ _where = [];
16
+ _having = [];
17
+ _groupBy = [];
18
+ _orderBy = [];
19
+ _limit = undefined;
20
+ unions = [];
21
+ _unionColumnOrder = [];
22
+ _distinct = false;
23
+ _forUpdate = false;
24
+ transformers = [];
25
+ union(table) {
26
+ return this._union(table, "DISTINCT");
27
+ }
28
+ unionAll(table) {
29
+ return this._union(table, "ALL");
30
+ }
31
+ _union(table, type = "DISTINCT") {
32
+ if (this.unions.length === 0) {
33
+ const builder = new SelectBuilder();
34
+ builder.unions.push("(\n" + this.toString(1) + ") ");
35
+ builder._columnStruct = this._columnStruct;
36
+ for (const k in this._columnStruct) {
37
+ builder._unionColumnOrder.push(k);
38
+ }
39
+ builder._union(table, type);
40
+ return builder;
41
+ }
42
+ else {
43
+ const struct = table._columnStruct;
44
+ let i = 0;
45
+ for (const k in struct) {
46
+ if (this._unionColumnOrder[i] !== k) {
47
+ const order = [];
48
+ for (const k in struct) {
49
+ order.push(k);
50
+ }
51
+ throw new Error("Union columns from pos " + i + " do not match! \nFirst call columns: '" + this._unionColumnOrder.join(", ") + "'. \nCurrent call columns: '" + order.join(", ") + "'");
52
+ }
53
+ i++;
54
+ }
55
+ if (i !== this._unionColumnOrder.length) {
56
+ throw new Error("Union columns count do not match! " + this._unionColumnOrder.length + " != " + i + " (Why didn't compiler warn you about this?)");
57
+ }
58
+ this.unions.push("UNION " + (type === "DISTINCT" ? "DISTINCT " : "ALL ") + "(\n" + table.toString(1) + ") ");
59
+ return this;
60
+ }
61
+ }
62
+ with(...tables) {
63
+ console.log(tables);
64
+ for (let i = 0; i < tables.length; i++) {
65
+ const table = tables[i];
66
+ const alias = table[SQL_ALIAS];
67
+ this._withQueries.set(alias, escapeId(alias) + " AS " + table[SQL_EXPRESSION]);
68
+ }
69
+ return this;
70
+ }
71
+ uses(table) {
72
+ return this;
73
+ }
74
+ selectFrom(table) {
75
+ if (typeof table === "string") {
76
+ this._from = escapeId(table);
77
+ }
78
+ else {
79
+ this._from = table[SQL_EXPRESSION] + " as " + escapeId(table[SQL_ALIAS]);
80
+ }
81
+ return this;
82
+ }
83
+ join(table, condition) {
84
+ return this._join(table, condition, "JOIN");
85
+ }
86
+ leftJoin(table, condition) {
87
+ return this._join(table, condition, "LEFT JOIN");
88
+ }
89
+ _join(table, condition, type = "JOIN") {
90
+ const sql = this._withQueries.has(table[SQL_ALIAS]) ? escapeId(table[SQL_ALIAS]) : table[SQL_EXPRESSION] + " as " + escapeId(table[SQL_ALIAS]);
91
+ this._joins.push(type + " " + sql + " ON (" + condition.expression + ")");
92
+ return this;
93
+ }
94
+ window(name, func) {
95
+ const builder2 = new Over();
96
+ func(builder2);
97
+ this._windows.push(name + " AS (" + builder2.toString() + ")");
98
+ return this;
99
+ }
100
+ distinct() {
101
+ this._distinct = true;
102
+ return this;
103
+ }
104
+ columns(...cols) {
105
+ for (let i = 0; i < cols.length; i++) {
106
+ const col = cols[i];
107
+ if (col instanceof SqlExpression) {
108
+ this._columns.push(col.expression + (col.nameAs ? " as " + escapeId(col.nameAs) : ""));
109
+ this._columnStruct[col.nameAs] = true;
110
+ if (col.transformer) {
111
+ this.transformers.push({ property: col.nameAs, transformer: col.transformer });
112
+ }
113
+ }
114
+ else if (typeof col === "string") {
115
+ this._columns.push(escapeId(col));
116
+ this._columnStruct[col] = true;
117
+ }
118
+ }
119
+ return this;
120
+ }
121
+ one() {
122
+ this.columns(ONE());
123
+ return this;
124
+ }
125
+ allColumnsFrom(table) {
126
+ for (const k in table) {
127
+ this.columns(table[k]);
128
+ }
129
+ return this;
130
+ }
131
+ noWhere() {
132
+ return this;
133
+ }
134
+ where(...cols) {
135
+ for (let i = 0; i < cols.length; i++) {
136
+ const col = cols[i];
137
+ if (col instanceof SqlExpression) {
138
+ this._where.push(col.expression);
139
+ }
140
+ else if (typeof col === "object") {
141
+ for (const prop in col) {
142
+ this._where.push(escapeId(prop) + " = " + escape(col[prop]));
143
+ }
144
+ }
145
+ else if (col === undefined || col === null || col === "" || col === false) {
146
+ // skip
147
+ }
148
+ else {
149
+ throw new Error("Invalid argument to where! Type: '" + (typeof col) + "' String: '" + String(col) + "'");
150
+ }
151
+ }
152
+ return this;
153
+ }
154
+ groupBy(...items) {
155
+ for (let i = 0; i < items.length; i++) {
156
+ const item = items[i];
157
+ if (item instanceof SqlExpression) {
158
+ this._groupBy.push(item.expression);
159
+ }
160
+ else if (typeof item === "string") {
161
+ this._groupBy.push(escapeId(item));
162
+ }
163
+ else if (item === undefined || item === null || item === "") {
164
+ // skip
165
+ }
166
+ else {
167
+ throw new Error("Invalid argument to groupBy! Type: '" + (typeof item) + "' String: '" + String(item) + "'");
168
+ }
169
+ }
170
+ return this;
171
+ }
172
+ groupByF(func) {
173
+ const proxy = new Proxy({}, {
174
+ get(target, p, receiver) {
175
+ if (p === "" || p === "undefined") {
176
+ return undefined;
177
+ }
178
+ return new SqlExpression(p, p);
179
+ }
180
+ });
181
+ this.groupBy(...func(proxy));
182
+ return this;
183
+ }
184
+ having(...items) {
185
+ for (let i = 0; i < items.length; i++) {
186
+ const item = items[i];
187
+ if (item instanceof SqlExpression) {
188
+ this._having.push(item.expression);
189
+ }
190
+ else if (typeof item === "string") {
191
+ this._having.push(escapeId(item));
192
+ }
193
+ else if (item === undefined || item === null || item === "") {
194
+ // skip
195
+ }
196
+ else {
197
+ throw new Error("Invalid argument to having! Type: '" + (typeof item) + "' String: '" + String(item) + "'");
198
+ }
199
+ }
200
+ return this;
201
+ }
202
+ havingF(func) {
203
+ const proxy = new Proxy({}, {
204
+ get(target, p, receiver) {
205
+ if (p === "" || p === "undefined") {
206
+ return undefined;
207
+ }
208
+ return new SqlExpression(p, p);
209
+ }
210
+ });
211
+ this.having(...func(proxy));
212
+ return this;
213
+ }
214
+ orderBy(...items) {
215
+ this._orderBy = orderByStructureToSqlString(items);
216
+ return this;
217
+ }
218
+ orderByF(func) {
219
+ const proxy = new Proxy({}, {
220
+ get(target, p, receiver) {
221
+ if (p === "" || p === "undefined") {
222
+ return undefined;
223
+ }
224
+ return new SqlExpression(p, p);
225
+ }
226
+ });
227
+ this.orderBy(...func(proxy));
228
+ return this;
229
+ }
230
+ noLimit() {
231
+ return this;
232
+ }
233
+ limit(limit) {
234
+ if (Array.isArray(limit)) {
235
+ this._limit = Number(limit[0]) + "," + Number(limit[1]);
236
+ }
237
+ else if (limit !== undefined && limit !== null && String(limit) !== "") {
238
+ this._limit = String(Number(limit));
239
+ }
240
+ return this;
241
+ }
242
+ limit1() {
243
+ return this.limit(1);
244
+ }
245
+ forUpdate() {
246
+ this._forUpdate = true;
247
+ return this;
248
+ }
249
+ asScalar(alias) {
250
+ return SqlExpression.create("(\n" + this.toString(2) + TAB + ")", alias);
251
+ }
252
+ as(alias) {
253
+ return MysqlTable.defineDbTable("(\n" + this.toString(2) + ")", alias, this._columnStruct);
254
+ }
255
+ async transformResult(rows) {
256
+ for (let r = 0; r < rows.length; r++) {
257
+ const row = rows[r];
258
+ for (let i = 0; i < this.transformers.length; i++) {
259
+ const parser = this.transformers[i];
260
+ const res = parser.transformer(row[parser.property]);
261
+ if (res instanceof Promise) {
262
+ row[parser.property] = await res;
263
+ }
264
+ else {
265
+ row[parser.property] = res;
266
+ }
267
+ }
268
+ }
269
+ return rows;
270
+ }
271
+ toString(lvl = 0) {
272
+ if (this.transformers.length > 0) {
273
+ throw new Error("Select.toString() call might be accidental! This query uses transforms and it may cause errors in the application! " +
274
+ "This is safety measure to avoid executing queries that have transforms that would not get executed! " +
275
+ "You can call toSqlQuery() method to still get a sql string!");
276
+ }
277
+ return this._toString(lvl);
278
+ }
279
+ toSqlString() {
280
+ return this._toString();
281
+ }
282
+ _toString(lvl = 0) {
283
+ const tabs = TAB.repeat(lvl);
284
+ let base;
285
+ if (this.unions.length > 0) {
286
+ base = this.unions.join("") + "\n";
287
+ }
288
+ else {
289
+ base = (this._withQueries.size > 0 ? tabs + "WITH\n" + TAB + Array.from(this._withQueries.values()).join(",\n\n" + TAB) + "\n\n" : "") +
290
+ tabs + "SELECT " + (this._distinct ? "DISTINCT " : "") + "\n" +
291
+ tabs + TAB + this._columns.join(",\n" + tabs + TAB) + "\n" +
292
+ tabs + "FROM " + this._from + "\n" +
293
+ (this._joins.length > 0 ? tabs + this._joins.join("\n") + "\n" : "") +
294
+ (this._where.length > 0 ? tabs + "WHERE " + this._where.join("\n" + TAB + " AND ") + "\n" : "");
295
+ }
296
+ return base +
297
+ (this._groupBy.length > 0 ? tabs + "GROUP BY " + this._groupBy.join(", ") + "\n" : "") +
298
+ (this._having.length > 0 ? tabs + "HAVING " + this._having.join("\n" + TAB + " AND ") + "\n" : "") +
299
+ (this._windows.length > 0 ? tabs + "WINDOW " + this._windows.join(",\n" + TAB) + "\n" : "") +
300
+ (this._orderBy.length > 0 ? tabs + "ORDER BY " + this._orderBy.join(", ") + "\n" : "") +
301
+ (this._limit ? tabs + "LIMIT " + this._limit + "\n" : "") +
302
+ (this._forUpdate && this.unions.length === 0 ? tabs + "FOR UPDATE\n" : "");
303
+ }
304
+ async exec(executor, ...args) {
305
+ const res = await executor(this.toSqlString(), ...args);
306
+ if (res && res.length > 0 && this.transformers.length > 0) {
307
+ await this.transformResult(res);
308
+ }
309
+ return res;
310
+ }
311
+ async execOne(executor, ...args) {
312
+ return (await this.exec(executor, ...args))?.[0];
313
+ }
314
+ }
315
+ //# sourceMappingURL=SelectBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectBuilder.js","sourceRoot":"","sources":["../../../src/select/SelectBuilder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { ExecMethods } from "./S7Exec";
2
+ import { OrderByStructure } from "../../Types";
3
+ export interface GatewayWhereMethods<Entity, Result> {
4
+ where(where: Partial<Entity>): GatewaySelectGroupByMethods<Entity, Result> & GatewaySelectOrderByMethods<Entity, Result> & GatewaySelectLimitMethods<Result> & ExecMethods<Result>;
5
+ }
6
+ export interface GatewaySelectGroupByMethods<Entity, Result> extends GatewaySelectLimitMethods<Result> {
7
+ groupBy(...fields: (keyof Entity)[]): GatewaySelectOrderByMethods<Entity, Result> & GatewaySelectLimitMethods<Result> & ExecMethods<Result>;
8
+ }
9
+ export interface GatewaySelectOrderByMethods<Entity, Result> extends GatewaySelectLimitMethods<Result> {
10
+ orderBy(...fields: OrderByStructure<keyof Entity>): GatewaySelectLimitMethods<Result> & ExecMethods<Result>;
11
+ }
12
+ export interface GatewaySelectLimitMethods<Result> {
13
+ noLimit(): ExecMethods<Result>;
14
+ limit(limit: number | [number, number]): ExecMethods<Result>;
15
+ limit1(): ExecMethods<Result>;
16
+ }
17
+ //# sourceMappingURL=GatewayWhere.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GatewayWhere.d.ts","sourceRoot":"","sources":["../../../../src/select/parts/GatewayWhere.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,UAAU,CAAC;AACrC,OAAO,EAAC,gBAAgB,EAAC,MAAM,aAAa,CAAC;AAG7C,MAAM,WAAW,mBAAmB,CAAC,MAAM,EAAE,MAAM;IAE/C,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,2BAA2B,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,2BAA2B,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,yBAAyB,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;CAErL;AAED,MAAM,WAAW,2BAA2B,CAAC,MAAM,EAAE,MAAM,CAAE,SAAQ,yBAAyB,CAAC,MAAM,CAAC;IAElG,OAAO,CAAC,GAAG,MAAM,EAAE,CAAC,MAAM,MAAM,CAAC,EAAE,GAAG,2BAA2B,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,yBAAyB,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;CAE9I;AAED,MAAM,WAAW,2BAA2B,CAAC,MAAM,EAAE,MAAM,CAAE,SAAQ,yBAAyB,CAAC,MAAM,CAAC;IAElG,OAAO,CAAC,GAAG,MAAM,EAAE,gBAAgB,CAAC,MAAM,MAAM,CAAC,GAAG,yBAAyB,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;CAE9G;AAED,MAAM,WAAW,yBAAyB,CAAC,MAAM;IAE7C,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,CAAA;IAE9B,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;IAE5D,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,CAAA;CAEhC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=GatewayWhere.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GatewayWhere.js","sourceRoot":"","sources":["../../../../src/select/parts/GatewayWhere.ts"],"names":[],"mappings":""}
@@ -0,0 +1,20 @@
1
+ import { ExecMethods } from "./S7Exec";
2
+ import { GroupByMethods } from "./S3GroupBy";
3
+ export interface UnionMethods<Result> {
4
+ union<Exec, MergedResult = Merge<Result, Exec>>(table: Check<Result, Exec> & Exec): UnionMethods<MergedResult> & GroupByMethods<MergedResult, {}>;
5
+ unionAll<Exec, MergedResult = Merge<Result, Exec>>(table: Check<Result, Exec> & Exec): UnionMethods<MergedResult> & GroupByMethods<MergedResult, {}>;
6
+ }
7
+ type Check<Result1, Exec> = Exec extends ExecMethods<infer Result2> ? Key1Checker<Result1, Result2> extends never ? Key2Checker<Result1, Result2> extends never ? Exec : Key2Checker<Result1, Result2> : Key1Checker<Result1, Result2> : never;
8
+ type Key1Checker<Result1, Result2> = {
9
+ [K in keyof Result1]: K extends keyof Result2 ? never : `Missing column '${K extends string ? K : "???"}' on added union table! (...,${K extends string ? K : "???"}) UNION (..., ${K extends string ? K : "???"} <- Missing!)
10
+ `;
11
+ }[keyof Result1];
12
+ type Key2Checker<Result1, Result2> = {
13
+ [K in keyof Result2]: K extends keyof Result1 ? never : `Column '${K extends string ? K : "???"}' does not exist in previous queries! (...) UNION (...,'${K extends string ? K : "???"}' <--- is a mistake (or add it to previous queries)!)
14
+ `;
15
+ }[keyof Result2];
16
+ type Merge<Result, Exec> = Exec extends ExecMethods<infer Result2> ? {
17
+ [K in keyof Result]: K extends keyof Result2 ? Result[K] | Result2[K] : never;
18
+ } : never;
19
+ export {};
20
+ //# sourceMappingURL=S0Union.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"S0Union.d.ts","sourceRoot":"","sources":["../../../../src/select/parts/S0Union.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,UAAU,CAAC;AACrC,OAAO,EAAC,cAAc,EAAC,MAAM,aAAa,CAAC;AAE3C,MAAM,WAAW,YAAY,CAAC,MAAM;IAEhC,KAAK,CAAC,IAAI,EAAE,YAAY,GAAG,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,EAC1C,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI,GAClC,YAAY,CAAC,YAAY,CAAC,GAAG,cAAc,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;IAGhE,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,EAC7C,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI,GAClC,YAAY,CAAC,YAAY,CAAC,GAAG,cAAc,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;CACnE;AAED,KAAK,KAAK,CAAC,OAAO,EAAE,IAAI,IAAI,IAAI,SAAS,WAAW,CAAC,MAAM,OAAO,CAAC,GAC7D,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,KAAK,GACvC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,KAAK,GACvC,IAAI,GACJ,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,GACjC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,GACjC,KAAK,CAAA;AAEX,KAAK,WAAW,CAAC,OAAO,EAAE,OAAO,IAAI;KAChC,CAAC,IAAI,MAAM,OAAO,GAAG,CAAC,SAAS,MAAM,OAAO,GACvC,KAAK,GACL,mBAAmB,CAAC,SAAS,MAAM,GAAG,CAAC,GAAG,KAAK,gCAAgC,CAAC,SAAS,MAAM,GAAG,CAAC,GAAG,KAAK,iBAAiB,CAAC,SAAS,MAAM,GAAG,CAAC,GAAG,KAAK;0RACwH;CAEzR,CAAC,MAAM,OAAO,CAAC,CAAA;AAEhB,KAAK,WAAW,CAAC,OAAO,EAAE,OAAO,IAAI;KAChC,CAAC,IAAI,MAAM,OAAO,GAAG,CAAC,SAAS,MAAM,OAAO,GACvC,KAAK,GACL,WAAW,CAAC,SAAS,MAAM,GAAG,CAAC,GAAG,KAAK,2DAA2D,CAAC,SAAS,MAAM,GAAG,CAAC,GAAG,KAAK;0RACkJ;CAEzR,CAAC,MAAM,OAAO,CAAC,CAAA;AAGhB,KAAK,KAAK,CAAC,MAAM,EAAE,IAAI,IAAI,IAAI,SAAS,WAAW,CAAC,MAAM,OAAO,CAAC,GAAG;KAChE,CAAC,IAAI,MAAM,MAAM,GAAG,CAAC,SAAS,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK;CAChF,GAAG,KAAK,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=S0Union.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"S0Union.js","sourceRoot":"","sources":["../../../../src/select/parts/S0Union.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import { AliasedTable, Key, NotUsingWithPart } from "../../Types";
2
+ import { JoinMethods } from "./S1Join";
3
+ export interface UsesMethods<Aliases, Tables> {
4
+ selectFrom<Alias extends string, TableRef extends `${string} as ${Alias}`>(table: AliasedTable<Alias, TableRef, object, object, string | NotUsingWithPart>): JoinMethods<Aliases & Key<Alias>, {}, Tables & Key<TableRef>>;
5
+ }
6
+ //# sourceMappingURL=S0Uses.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"S0Uses.d.ts","sourceRoot":"","sources":["../../../../src/select/parts/S0Uses.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAE,GAAG,EAAE,gBAAgB,EAAC,MAAM,aAAa,CAAC;AAChE,OAAO,EAAC,WAAW,EAAC,MAAM,UAAU,CAAC;AAErC,MAAM,WAAW,WAAW,CAAC,OAAO,EAAE,MAAM;IAUxC,UAAU,CACN,KAAK,SAAS,MAAM,EACpB,QAAQ,SAAS,GAAG,MAAM,OAAO,KAAK,EAAE,EAExC,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAAC,GAChF,WAAW,CAAC,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAA;CAEnE"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=S0Uses.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"S0Uses.js","sourceRoot":"","sources":["../../../../src/select/parts/S0Uses.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import { AliasedTable, Key, NotUsingWithPart } from "../../Types";
2
+ import { JoinMethods } from "./S1Join";
3
+ export interface WithMethods<AliasesFromWith> {
4
+ selectFrom<Alias extends string, TableRef extends `${string} as ${Alias}`>(table: AliasedTable<Alias, TableRef, object, object, string | NotUsingWithPart>): JoinMethods<Key<Alias>, AliasesFromWith, Key<TableRef>>;
5
+ }
6
+ //# sourceMappingURL=S0With.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"S0With.d.ts","sourceRoot":"","sources":["../../../../src/select/parts/S0With.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAE,GAAG,EAAE,gBAAgB,EAAC,MAAM,aAAa,CAAC;AAChE,OAAO,EAAC,WAAW,EAAC,MAAM,UAAU,CAAC;AAErC,MAAM,WAAW,WAAW,CAAC,eAAe;IASxC,UAAU,CACN,KAAK,SAAS,MAAM,EACpB,QAAQ,SAAS,GAAG,MAAM,OAAO,KAAK,EAAE,EAExC,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAAC,GAChF,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,eAAe,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAA;CAE7D"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=S0With.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"S0With.js","sourceRoot":"","sources":["../../../../src/select/parts/S0With.ts"],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ import { AliasedTable, isAliasAlreadyUsed, isTableReferenced, Key, NotUsingWithPart, SQL_BOOL } from "../../Types";
2
+ import { Expr, Over } from "../../SqlExpression";
3
+ import { ColumnsMethods } from "./S2Columns";
4
+ export interface JoinMethods<Aliases, AliasesFromWith, Tables> extends ColumnsMethods<{}, Tables> {
5
+ join<Alias extends string, TableRef extends `${string} as ${Alias}`, RefAlias extends NotUsingWithPart | string, ColTableRef extends string>(table: isRefAliasInAliasesFromWith<AliasesFromWith, RefAlias, isAliasAlreadyUsed<Aliases & AliasesFromWith, Alias, AliasedTable<Alias, TableRef, object, object, RefAlias>>>, condition: isConditionUsingJoinedTable<TableRef, ColTableRef, isTableReferenced<Tables & Key<TableRef>, Key<ColTableRef>, Expr<ColTableRef, unknown, SQL_BOOL>>>): JoinMethods<Aliases & Key<Alias>, AliasesFromWith, Tables & Key<TableRef>>;
6
+ leftJoin<Alias extends string, TableRef extends `${string} as ${Alias}`, RefAlias extends NotUsingWithPart | string, ColTableRef extends string>(table: isRefAliasInAliasesFromWith<AliasesFromWith, RefAlias, isAliasAlreadyUsed<Aliases & AliasesFromWith, Alias, AliasedTable<Alias, TableRef, object, object, RefAlias>>>, condition: isConditionUsingJoinedTable<TableRef, ColTableRef, isTableReferenced<Tables & Key<TableRef>, Key<ColTableRef>, Expr<ColTableRef, unknown, SQL_BOOL>>>): JoinMethods<Aliases & Key<Alias>, AliasesFromWith, Tables & Key<TableRef>>;
7
+ window<WindowName extends string, UsedTablesRef extends string>(name: isAliasAlreadyUsed<Aliases & AliasesFromWith, WindowName, WindowName>, func: (builder: Over<never>) => Over<UsedTablesRef>): JoinMethods<Aliases & Key<WindowName>, AliasesFromWith, Tables & Key<`(window) as ${WindowName}`>>;
8
+ }
9
+ type isConditionUsingJoinedTable<TableRef, ColTableRef, OUT> = TableRef extends ColTableRef ? OUT : "Join condition should use columns from the joined table!";
10
+ type isRefAliasInAliasesFromWith<AliasesFromWith, RefAlias, OUT> = RefAlias extends NotUsingWithPart | string & keyof AliasesFromWith ? OUT : `Alias '${RefAlias extends string ? RefAlias : RefAlias extends NotUsingWithPart ? "NOT_REFERENCED" : "???"}' is not defined by any of the with queries!`;
11
+ export {};
12
+ //# sourceMappingURL=S1Join.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"S1Join.d.ts","sourceRoot":"","sources":["../../../../src/select/parts/S1Join.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,GAAG,EAAE,gBAAgB,EAAE,QAAQ,EAAC,MAAM,aAAa,CAAC;AACjH,OAAO,EAAC,IAAI,EAAE,IAAI,EAAC,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAC,cAAc,EAAC,MAAM,aAAa,CAAC;AAE3C,MAAM,WAAW,WAAW,CAAC,OAAO,EAAE,eAAe,EAAE,MAAM,CAAE,SAAQ,cAAc,CAAC,EAAE,EAAE,MAAM,CAAC;IAE7F,IAAI,CACA,KAAK,SAAS,MAAM,EACpB,QAAQ,SAAS,GAAG,MAAM,OAAO,KAAK,EAAE,EACxC,QAAQ,SAAS,gBAAgB,GAAG,MAAM,EAC1C,WAAW,SAAS,MAAM,EAE1B,KAAK,EAAE,2BAA2B,CAAC,eAAe,EAAE,QAAQ,EAAE,kBAAkB,CAAC,OAAO,GAAG,eAAe,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,EAC5K,SAAS,EAAE,2BAA2B,CAAC,QAAQ,EAAE,WAAW,EAAE,iBAAiB,CAAC,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GACjK,WAAW,CAAC,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,eAAe,EAAE,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAA;IAE7E,QAAQ,CACJ,KAAK,SAAS,MAAM,EACpB,QAAQ,SAAS,GAAG,MAAM,OAAO,KAAK,EAAE,EACxC,QAAQ,SAAS,gBAAgB,GAAG,MAAM,EAC1C,WAAW,SAAS,MAAM,EAE1B,KAAK,EAAE,2BAA2B,CAAC,eAAe,EAAE,QAAQ,EAAE,kBAAkB,CAAC,OAAO,GAAG,eAAe,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,EAC5K,SAAS,EAAE,2BAA2B,CAAC,QAAQ,EAAE,WAAW,EAAE,iBAAiB,CAAC,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GACjK,WAAW,CAAC,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,eAAe,EAAE,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAA;IAE7E,MAAM,CACF,UAAU,SAAS,MAAM,EACzB,aAAa,SAAS,MAAM,EAE5B,IAAI,EAAE,kBAAkB,CAAC,OAAO,GAAG,eAAe,EAAE,UAAU,EAAE,UAAU,CAAC,EAC3E,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC,GACpD,WAAW,CAAC,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC,EAAE,eAAe,EAAE,MAAM,GAAG,GAAG,CAAC,eAAe,UAAU,EAAE,CAAC,CAAC,CAAA;CAExG;AAED,KAAK,2BAA2B,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,QAAQ,SAAS,WAAW,GAAG,GAAG,GAAG,0DAA0D,CAAA;AAE9J,KAAK,2BAA2B,CAAC,eAAe,EAAE,QAAQ,EAAE,GAAG,IAAI,QAAQ,SAAS,gBAAgB,GAAG,MAAM,GAAG,MAAM,eAAe,GAAG,GAAG,GAAG,UAAU,QAAQ,SAAS,MAAM,GAAG,QAAQ,GAAG,QAAQ,SAAS,gBAAgB,GAAG,gBAAgB,GAAG,KAAK,8CAA8C,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=S1Join.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"S1Join.js","sourceRoot":"","sources":["../../../../src/select/parts/S1Join.ts"],"names":[],"mappings":""}
@@ -0,0 +1,35 @@
1
+ import { WhereMethods } from "./S2Where";
2
+ import { Expr } from "../../SqlExpression";
3
+ import { AliasedTable, NotUsingWithPart } from "../../Types";
4
+ export interface ColumnsMethods<Result, Tables> {
5
+ distinct(): ColumnsMethods<Result, Tables>;
6
+ allColumnsFrom<TableRef, Entity, Result2 = Result & Entity>(table: AliasedTable<string, TableRef, Entity, any, NotUsingWithPart>): ColumnsMethods<Result2, Tables> & WhereMethods<Result2, Tables>;
7
+ one(): WhereMethods<Result & {
8
+ one: 1;
9
+ }, Tables>;
10
+ columns<TableRef, Columns extends Expr<TableRef, string, any>[]>(...columns: isColumnOkToAdd<Result, Tables, Columns>): WhereMethods<Result & ExtractObj<Columns>, Tables>;
11
+ }
12
+ /**
13
+ * Take array of Col-s and convert to Record<key, value> & ... object.
14
+ */
15
+ export type ExtractObj<Columns extends Expr<any, string, any>[]> = {
16
+ [K in Columns[number]['nameAs']]: Extract<Columns[number], {
17
+ nameAs: K;
18
+ }>['type'];
19
+ };
20
+ type _checkIfExistsInOtherFields<Rest extends any[], Expr> = Rest extends [] ? Expr : Expr extends {
21
+ nameAs: string;
22
+ } ? Expr["nameAs"] extends (Rest extends {
23
+ nameAs: infer A;
24
+ }[] ? A : never) ? `'${Expr["nameAs"]}' already exists in columns!` : Expr : Expr extends {
25
+ nameAs: unknown;
26
+ } ? `Is missing column name. Add .as('name')` : Expr;
27
+ type _checkIfExistsInResult<Result, Expr> = Expr extends {
28
+ nameAs: string;
29
+ } ? Expr["nameAs"] extends keyof Result ? `'${Expr["nameAs"]}' already exists in result columns!` : Expr : Expr;
30
+ type _checkThatTableIsReferenced<Tables, Expr> = Expr extends {
31
+ tableRef: string;
32
+ } ? Expr["tableRef"] extends keyof Tables ? Expr : `'${Expr["tableRef"]}' is not used in this query!` : Expr;
33
+ type isColumnOkToAdd<Result, Tables, ColumnExpressions> = ColumnExpressions extends [] ? ColumnExpressions : ColumnExpressions extends [...(infer Rest), infer A] ? [...isColumnOkToAdd<Result, Tables, Rest>, _checkIfExistsInOtherFields<Rest, _checkIfExistsInResult<Result, _checkThatTableIsReferenced<Tables, A>>>] : ColumnExpressions;
34
+ export {};
35
+ //# sourceMappingURL=S2Columns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"S2Columns.d.ts","sourceRoot":"","sources":["../../../../src/select/parts/S2Columns.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export {};
2
+ // --------------------------------------------------------------------
3
+ //# sourceMappingURL=S2Columns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"S2Columns.js","sourceRoot":"","sources":["../../../../src/select/parts/S2Columns.ts"],"names":[],"mappings":";AAmEA,uEAAuE"}
@@ -0,0 +1,13 @@
1
+ import { isTableReferenced, Key, SQL_BOOL } from "../../Types";
2
+ import { GroupByMethods } from "./S3GroupBy";
3
+ import { Expr } from "../../SqlExpression";
4
+ import { OrderByMethods } from "./S5OrderBy";
5
+ import { LimitMethods } from "./S6Limit";
6
+ import { ExecMethods } from "./S7Exec";
7
+ export interface WhereMethods<Result, Tables> {
8
+ noWhere(): GroupByMethods<Result, Tables> & OrderByMethods<Result, Tables> & LimitMethods<Result> & ExecMethods<Result>;
9
+ where<T1 extends string, T2 extends string = never, T3 extends string = never, T4 extends string = never, T5 extends string = never, T6 extends string = never, T7 extends string = never, T8 extends string = never, T9 extends string = never, T10 extends string = never, T11 extends string = never, T12 extends string = never, T13 extends string = never, T14 extends string = never, T15 extends string = never, T = Tables>(c1: C<T, T1>, c2?: C<T, T2>, c3?: C<T, T3>, c4?: C<T, T4>, c5?: C<T, T5>, c6?: C<T, T6>, c7?: C<T, T7>, c8?: C<T, T8>, c9?: C<T, T9>, c10?: C<T, T10>, c11?: C<T, T11>, c12?: C<T, T12>, c13?: C<T, T13>, c14?: C<T, T14>, c15?: C<T, T15>): GroupByMethods<Result, Tables> & OrderByMethods<Result, Tables> & LimitMethods<Result> & ExecMethods<Result>;
10
+ }
11
+ type C<Tables, T extends string> = isTableReferenced<Tables, Key<T>, Expr<T, unknown, SQL_BOOL>>;
12
+ export {};
13
+ //# sourceMappingURL=S2Where.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"S2Where.d.ts","sourceRoot":"","sources":["../../../../src/select/parts/S2Where.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAE,GAAG,EAAE,QAAQ,EAAC,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAC,cAAc,EAAC,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAC,IAAI,EAAC,MAAM,qBAAqB,CAAC;AACzC,OAAO,EAAC,cAAc,EAAC,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAC,YAAY,EAAC,MAAM,WAAW,CAAC;AACvC,OAAO,EAAC,WAAW,EAAC,MAAM,UAAU,CAAC;AAErC,MAAM,WAAW,YAAY,CAAC,MAAM,EAAE,MAAM;IAExC,OAAO,IAAI,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;IAEvH,KAAK,CACD,EAAE,SAAS,MAAM,EACjB,EAAE,SAAS,MAAM,GAAG,KAAK,EACzB,EAAE,SAAS,MAAM,GAAG,KAAK,EACzB,EAAE,SAAS,MAAM,GAAG,KAAK,EACzB,EAAE,SAAS,MAAM,GAAG,KAAK,EACzB,EAAE,SAAS,MAAM,GAAG,KAAK,EACzB,EAAE,SAAS,MAAM,GAAG,KAAK,EACzB,EAAE,SAAS,MAAM,GAAG,KAAK,EACzB,EAAE,SAAS,MAAM,GAAG,KAAK,EACzB,GAAG,SAAS,MAAM,GAAG,KAAK,EAC1B,GAAG,SAAS,MAAM,GAAG,KAAK,EAC1B,GAAG,SAAS,MAAM,GAAG,KAAK,EAC1B,GAAG,SAAS,MAAM,GAAG,KAAK,EAC1B,GAAG,SAAS,MAAM,GAAG,KAAK,EAC1B,GAAG,SAAS,MAAM,GAAG,KAAK,EAC1B,CAAC,GAAG,MAAM,EAEV,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EACZ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EACb,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EACb,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EACb,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EACb,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EACb,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EACb,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EACb,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EACb,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EACf,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EACf,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EACf,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EACf,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EACf,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,GAChB,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;CAElH;AAED,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,SAAS,MAAM,IAAI,iBAAiB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=S2Where.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"S2Where.js","sourceRoot":"","sources":["../../../../src/select/parts/S2Where.ts"],"names":[],"mappings":""}
@@ -0,0 +1,10 @@
1
+ import { AliasedTable, isColumnOkToUse, Key, NotUsingWithPart } from "../../Types";
2
+ import { HavingMethods } from "./S4Having";
3
+ import { Expr } from "../../SqlExpression";
4
+ import { OrderByMethods } from "./S5OrderBy";
5
+ import { LimitMethods } from "./S6Limit";
6
+ export interface GroupByMethods<Result, Tables> extends OrderByMethods<Result, Tables>, LimitMethods<Result> {
7
+ groupBy<TableRef, Columns extends Expr<TableRef, string | unknown, any>[]>(...items: isColumnOkToUse<Tables, Columns>): HavingMethods<Result, Tables>;
8
+ groupByF<TableRef, Columns extends Expr<TableRef, string | unknown, any>[]>(func: (columnsTable: AliasedTable<"(columns)", "(columns)", Result, object, NotUsingWithPart>) => isColumnOkToUse<Tables & Key<"(columns)">, Columns>): HavingMethods<Result, Tables>;
9
+ }
10
+ //# sourceMappingURL=S3GroupBy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"S3GroupBy.d.ts","sourceRoot":"","sources":["../../../../src/select/parts/S3GroupBy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAE,eAAe,EAAE,GAAG,EAAE,gBAAgB,EAAC,MAAM,aAAa,CAAC;AACjF,OAAO,EAAC,aAAa,EAAC,MAAM,YAAY,CAAC;AACzC,OAAO,EAAC,IAAI,EAAC,MAAM,qBAAqB,CAAC;AACzC,OAAO,EAAC,cAAc,EAAC,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAC,YAAY,EAAC,MAAM,WAAW,CAAC;AAEvC,MAAM,WAAW,cAAc,CAAC,MAAM,EAAE,MAAM,CAAE,SAAQ,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC;IACxG,OAAO,CACH,QAAQ,EACR,OAAO,SAAS,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,EAAE,GAAG,CAAC,EAAE,EAEvD,GAAG,KAAK,EAAE,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3C,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAEhC,QAAQ,CACJ,QAAQ,EACR,OAAO,SAAS,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,EAAE,GAAG,CAAC,EAAE,EAEvD,IAAI,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,CAAC,KAAK,eAAe,CAAC,MAAM,GAAG,GAAG,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,GACtJ,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACnC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=S3GroupBy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"S3GroupBy.js","sourceRoot":"","sources":["../../../../src/select/parts/S3GroupBy.ts"],"names":[],"mappings":""}
@@ -0,0 +1,10 @@
1
+ import { AliasedTable, isColumnOkToUse, Key, NotUsingWithPart, SQL_BOOL } from "../../Types";
2
+ import { Expr } from "../../SqlExpression";
3
+ import { OrderByMethods } from "./S5OrderBy";
4
+ import { LimitMethods } from "./S6Limit";
5
+ import { ExecMethods } from "./S7Exec";
6
+ export interface HavingMethods<Result, Tables> extends OrderByMethods<Result, Tables>, LimitMethods<Result>, ExecMethods<Result> {
7
+ having<TableRef, Columns extends (Expr<TableRef, string | unknown, SQL_BOOL>)[]>(...col: isColumnOkToUse<Tables, Columns>): OrderByMethods<Result, Tables>;
8
+ havingF<TableRef, Columns extends Expr<TableRef, string | unknown, SQL_BOOL>[]>(func: (columnsTable: AliasedTable<"(columns)", "(columns)", Result, object, NotUsingWithPart>) => isColumnOkToUse<Tables & Key<"(columns)">, Columns>): OrderByMethods<Result, Tables> & LimitMethods<Result>;
9
+ }
10
+ //# sourceMappingURL=S4Having.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"S4Having.d.ts","sourceRoot":"","sources":["../../../../src/select/parts/S4Having.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAE,eAAe,EAAE,GAAG,EAAE,gBAAgB,EAAE,QAAQ,EAAC,MAAM,aAAa,CAAC;AAC3F,OAAO,EAAC,IAAI,EAAC,MAAM,qBAAqB,CAAC;AACzC,OAAO,EAAC,cAAc,EAAC,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAC,YAAY,EAAC,MAAM,WAAW,CAAC;AACvC,OAAO,EAAC,WAAW,EAAC,MAAM,UAAU,CAAC;AAErC,MAAM,WAAW,aAAa,CAAC,MAAM,EAAE,MAAM,CAAE,SAAQ,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC;IAC5H,MAAM,CACF,QAAQ,EACR,OAAO,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,EAAE,QAAQ,CAAC,CAAC,EAAE,EAE9D,GAAG,GAAG,EAAE,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,GACzC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAEjC,OAAO,CACH,QAAQ,EACR,OAAO,SAAS,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,EAAE,QAAQ,CAAC,EAAE,EAE5D,IAAI,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,CAAC,KAAK,eAAe,CAAC,MAAM,GAAG,GAAG,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,GACtJ,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;CAC3D"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=S4Having.js.map