@arikajs/database 0.0.4 → 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 (92) hide show
  1. package/README.md +392 -25
  2. package/dist/Connections/MongoDBConnection.d.ts +81 -0
  3. package/dist/Connections/MongoDBConnection.d.ts.map +1 -0
  4. package/dist/Connections/MongoDBConnection.js +203 -0
  5. package/dist/Connections/MongoDBConnection.js.map +1 -0
  6. package/dist/Connections/MySQLConnection.d.ts +1 -0
  7. package/dist/Connections/MySQLConnection.d.ts.map +1 -1
  8. package/dist/Connections/MySQLConnection.js +47 -10
  9. package/dist/Connections/MySQLConnection.js.map +1 -1
  10. package/dist/Connections/PostgreSQLConnection.d.ts +1 -0
  11. package/dist/Connections/PostgreSQLConnection.d.ts.map +1 -1
  12. package/dist/Connections/PostgreSQLConnection.js +43 -9
  13. package/dist/Connections/PostgreSQLConnection.js.map +1 -1
  14. package/dist/Connections/SQLiteConnection.d.ts +1 -0
  15. package/dist/Connections/SQLiteConnection.d.ts.map +1 -1
  16. package/dist/Connections/SQLiteConnection.js +38 -7
  17. package/dist/Connections/SQLiteConnection.js.map +1 -1
  18. package/dist/Contracts/Database.d.ts +71 -4
  19. package/dist/Contracts/Database.d.ts.map +1 -1
  20. package/dist/Contracts/Schema.d.ts +4 -0
  21. package/dist/Contracts/Schema.d.ts.map +1 -1
  22. package/dist/Database.d.ts +30 -3
  23. package/dist/Database.d.ts.map +1 -1
  24. package/dist/Database.js +39 -1
  25. package/dist/Database.js.map +1 -1
  26. package/dist/DatabaseManager.d.ts +17 -3
  27. package/dist/DatabaseManager.d.ts.map +1 -1
  28. package/dist/DatabaseManager.js +27 -11
  29. package/dist/DatabaseManager.js.map +1 -1
  30. package/dist/Migrations/Migrator.d.ts.map +1 -1
  31. package/dist/Migrations/Migrator.js +35 -3
  32. package/dist/Migrations/Migrator.js.map +1 -1
  33. package/dist/Model/GlobalScope.d.ts +44 -0
  34. package/dist/Model/GlobalScope.d.ts.map +1 -0
  35. package/dist/Model/GlobalScope.js +64 -0
  36. package/dist/Model/GlobalScope.js.map +1 -0
  37. package/dist/Model/Model.d.ts +168 -4
  38. package/dist/Model/Model.d.ts.map +1 -1
  39. package/dist/Model/Model.js +476 -16
  40. package/dist/Model/Model.js.map +1 -1
  41. package/dist/Model/Observer.d.ts +39 -0
  42. package/dist/Model/Observer.d.ts.map +1 -0
  43. package/dist/Model/Observer.js +48 -0
  44. package/dist/Model/Observer.js.map +1 -0
  45. package/dist/Model/Relations.d.ts +201 -10
  46. package/dist/Model/Relations.d.ts.map +1 -1
  47. package/dist/Model/Relations.js +472 -27
  48. package/dist/Model/Relations.js.map +1 -1
  49. package/dist/Query/Expression.d.ts +16 -0
  50. package/dist/Query/Expression.d.ts.map +1 -0
  51. package/dist/Query/Expression.js +25 -0
  52. package/dist/Query/Expression.js.map +1 -0
  53. package/dist/Query/QueryBuilder.d.ts +64 -6
  54. package/dist/Query/QueryBuilder.d.ts.map +1 -1
  55. package/dist/Query/QueryBuilder.js +234 -15
  56. package/dist/Query/QueryBuilder.js.map +1 -1
  57. package/dist/Query/QueryLogger.d.ts +55 -0
  58. package/dist/Query/QueryLogger.d.ts.map +1 -0
  59. package/dist/Query/QueryLogger.js +82 -0
  60. package/dist/Query/QueryLogger.js.map +1 -0
  61. package/dist/Schema/Grammars/Grammar.d.ts +5 -0
  62. package/dist/Schema/Grammars/Grammar.d.ts.map +1 -1
  63. package/dist/Schema/Grammars/Grammar.js.map +1 -1
  64. package/dist/Schema/Grammars/MySQLGrammar.d.ts +1 -0
  65. package/dist/Schema/Grammars/MySQLGrammar.d.ts.map +1 -1
  66. package/dist/Schema/Grammars/MySQLGrammar.js +42 -0
  67. package/dist/Schema/Grammars/MySQLGrammar.js.map +1 -1
  68. package/dist/Schema/Grammars/PostgreSQLGrammar.d.ts +1 -0
  69. package/dist/Schema/Grammars/PostgreSQLGrammar.d.ts.map +1 -1
  70. package/dist/Schema/Grammars/PostgreSQLGrammar.js +46 -0
  71. package/dist/Schema/Grammars/PostgreSQLGrammar.js.map +1 -1
  72. package/dist/Schema/Grammars/SQLiteGrammar.d.ts +1 -0
  73. package/dist/Schema/Grammars/SQLiteGrammar.d.ts.map +1 -1
  74. package/dist/Schema/Grammars/SQLiteGrammar.js +31 -0
  75. package/dist/Schema/Grammars/SQLiteGrammar.js.map +1 -1
  76. package/dist/Schema/Schema.d.ts +6 -0
  77. package/dist/Schema/Schema.d.ts.map +1 -1
  78. package/dist/Schema/Schema.js +10 -0
  79. package/dist/Schema/Schema.js.map +1 -1
  80. package/dist/Schema/SchemaBuilder.d.ts +4 -0
  81. package/dist/Schema/SchemaBuilder.d.ts.map +1 -1
  82. package/dist/Schema/SchemaBuilder.js +15 -0
  83. package/dist/Schema/SchemaBuilder.js.map +1 -1
  84. package/dist/Transactions/TransactionManager.d.ts +28 -0
  85. package/dist/Transactions/TransactionManager.d.ts.map +1 -0
  86. package/dist/Transactions/TransactionManager.js +68 -0
  87. package/dist/Transactions/TransactionManager.js.map +1 -0
  88. package/dist/index.d.ts +11 -1
  89. package/dist/index.d.ts.map +1 -1
  90. package/dist/index.js +21 -1
  91. package/dist/index.js.map +1 -1
  92. package/package.json +10 -6
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Expression.js","sourceRoot":"","sources":["../../src/Query/Expression.ts"],"names":[],"mappings":";;;AACA;;GAEG;AACH,MAAa,UAAU;IACnB,YAAsB,KAAsB;QAAtB,UAAK,GAAL,KAAK,CAAiB;IAAI,CAAC;IAEjD;;OAEG;IACH,QAAQ;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,QAAQ;QACJ,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IACnC,CAAC;CACJ;AAhBD,gCAgBC"}
@@ -1,13 +1,16 @@
1
- import { Connection } from '../Contracts/Database';
2
- import { QueryBuilder as QueryBuilderInterface } from '../Contracts/Database';
1
+ import { Connection, QueryBuilder as QueryBuilderInterface } from '../Contracts/Database';
2
+ import { Expression } from './Expression';
3
3
  export declare class QueryBuilder implements QueryBuilderInterface {
4
4
  private connection;
5
5
  private tableName?;
6
6
  private selectColumns;
7
+ private selectRawExpressions;
7
8
  private whereClauses;
8
9
  private orderByColumns;
9
10
  private limitValue?;
10
11
  private offsetValue?;
12
+ private cacheTtl?;
13
+ private cacheKey?;
11
14
  private resolvedConnection;
12
15
  constructor(connection: Connection | Promise<Connection>);
13
16
  /**
@@ -21,7 +24,11 @@ export declare class QueryBuilder implements QueryBuilderInterface {
21
24
  /**
22
25
  * Add a select clause
23
26
  */
24
- select(...columns: string[]): this;
27
+ select(...columns: (string | Expression)[]): this;
28
+ /**
29
+ * Add a raw select clause with optional bindings
30
+ */
31
+ selectRaw(sql: string, bindings?: any[]): this;
25
32
  /**
26
33
  * Add a where clause
27
34
  */
@@ -46,6 +53,22 @@ export declare class QueryBuilder implements QueryBuilderInterface {
46
53
  * Add a where not null clause
47
54
  */
48
55
  whereNotNull(column: string): this;
56
+ /**
57
+ * Add a raw where clause
58
+ */
59
+ whereRaw(sql: string, bindings?: any[]): this;
60
+ /**
61
+ * Add a raw OR where clause
62
+ */
63
+ orWhereRaw(sql: string, bindings?: any[]): this;
64
+ /**
65
+ * Add an exists clause
66
+ */
67
+ whereExists(callback: (query: QueryBuilder) => void, boolean?: 'and' | 'or', not?: boolean): this;
68
+ /**
69
+ * Add a not exists clause
70
+ */
71
+ whereNotExists(callback: (query: QueryBuilder) => void, boolean?: 'and' | 'or'): this;
49
72
  /**
50
73
  * Add an order by clause
51
74
  */
@@ -58,6 +81,10 @@ export declare class QueryBuilder implements QueryBuilderInterface {
58
81
  * Add an offset clause
59
82
  */
60
83
  offset(offset: number): this;
84
+ /**
85
+ * Cache the query results
86
+ */
87
+ cache(ttl: number, key?: string): this;
61
88
  /**
62
89
  * Execute the query and get all results
63
90
  */
@@ -67,9 +94,37 @@ export declare class QueryBuilder implements QueryBuilderInterface {
67
94
  */
68
95
  first(): Promise<any | null>;
69
96
  /**
70
- * Insert a record
97
+ * Paginate the query results
98
+ */
99
+ paginate(page?: number, perPage?: number, path?: string): Promise<{
100
+ data: any[];
101
+ meta: any;
102
+ links: any;
103
+ }>;
104
+ /**
105
+ * Paginate without counting total pages
106
+ */
107
+ simplePaginate(page?: number, perPage?: number, path?: string): Promise<{
108
+ data: any[];
109
+ meta: any;
110
+ links: any;
111
+ }>;
112
+ /**
113
+ * Cursor paginate for high performance
114
+ */
115
+ cursorPaginate(cursor?: string | null, perPage?: number, cursorColumn?: string, path?: string): Promise<{
116
+ data: any[];
117
+ meta: any;
118
+ links: any;
119
+ }>;
120
+ /**
121
+ * Chunk the query results
122
+ */
123
+ chunk(count: number, callback: (results: any[], page: number) => Promise<boolean | void>): Promise<boolean>;
124
+ /**
125
+ * Insert a record or multiple records
71
126
  */
72
- insert(data: Record<string, any>): Promise<any>;
127
+ insert(data: Record<string, any> | Record<string, any>[]): Promise<any>;
73
128
  /**
74
129
  * Update records
75
130
  */
@@ -85,7 +140,10 @@ export declare class QueryBuilder implements QueryBuilderInterface {
85
140
  /**
86
141
  * Build the SELECT query
87
142
  */
88
- private buildSelectQuery;
143
+ buildSelectQuery(): {
144
+ sql: string;
145
+ bindings: any[];
146
+ };
89
147
  /**
90
148
  * Build the WHERE clause
91
149
  */
@@ -1 +1 @@
1
- {"version":3,"file":"QueryBuilder.d.ts","sourceRoot":"","sources":["../../src/Query/QueryBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,YAAY,IAAI,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAa9E,qBAAa,YAAa,YAAW,qBAAqB;IAS1C,OAAO,CAAC,UAAU;IAR9B,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,aAAa,CAAmB;IACxC,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,cAAc,CAA4D;IAClF,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,kBAAkB,CAA2B;gBAEjC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAEhE;;OAEG;YACW,qBAAqB;IAOnC;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK1B;;OAEG;IACH,MAAM,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI;IAKlC;;OAEG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,IAAI;IAkBvD;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,IAAI;IAkBzD;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI;IAW5C;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI;IAW/C;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAU/B;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAUlC;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,GAAE,KAAK,GAAG,MAAc,GAAG,IAAI;IAKhE;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK1B;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAK5B;;OAEG;IACG,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAM3B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;IAMlC;;OAEG;IACG,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAcrD;;OAEG;IACG,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAiBxD;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IAa/B;;OAEG;IACG,KAAK,CAAC,MAAM,GAAE,MAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAalD;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA6BxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;CA4C3B"}
1
+ {"version":3,"file":"QueryBuilder.d.ts","sourceRoot":"","sources":["../../src/Query/QueryBuilder.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.QueryBuilder = void 0;
4
+ const Database_1 = require("../Database");
5
+ const Expression_1 = require("./Expression");
6
+ const QueryLogger_1 = require("./QueryLogger");
4
7
  class QueryBuilder {
5
8
  constructor(connection) {
6
9
  this.connection = connection;
7
10
  this.selectColumns = ['*'];
11
+ this.selectRawExpressions = [];
8
12
  this.whereClauses = [];
9
13
  this.orderByColumns = [];
10
14
  this.resolvedConnection = null;
@@ -29,7 +33,14 @@ class QueryBuilder {
29
33
  * Add a select clause
30
34
  */
31
35
  select(...columns) {
32
- this.selectColumns = columns;
36
+ this.selectColumns = columns.map(c => c instanceof Expression_1.Expression ? String(c.getValue()) : c);
37
+ return this;
38
+ }
39
+ /**
40
+ * Add a raw select clause with optional bindings
41
+ */
42
+ selectRaw(sql, bindings = []) {
43
+ this.selectRawExpressions.push({ sql, bindings });
33
44
  return this;
34
45
  }
35
46
  /**
@@ -114,6 +125,50 @@ class QueryBuilder {
114
125
  });
115
126
  return this;
116
127
  }
128
+ /**
129
+ * Add a raw where clause
130
+ */
131
+ whereRaw(sql, bindings = []) {
132
+ this.whereClauses.push({
133
+ type: 'raw',
134
+ column: sql,
135
+ value: bindings,
136
+ boolean: 'and',
137
+ });
138
+ return this;
139
+ }
140
+ /**
141
+ * Add a raw OR where clause
142
+ */
143
+ orWhereRaw(sql, bindings = []) {
144
+ this.whereClauses.push({
145
+ type: 'raw',
146
+ column: sql,
147
+ value: bindings,
148
+ boolean: 'or',
149
+ });
150
+ return this;
151
+ }
152
+ /**
153
+ * Add an exists clause
154
+ */
155
+ whereExists(callback, boolean = 'and', not = false) {
156
+ const query = new QueryBuilder(this.connection);
157
+ callback(query);
158
+ this.whereClauses.push({
159
+ type: not ? 'notExists' : 'exists',
160
+ column: '',
161
+ query,
162
+ boolean,
163
+ });
164
+ return this;
165
+ }
166
+ /**
167
+ * Add a not exists clause
168
+ */
169
+ whereNotExists(callback, boolean = 'and') {
170
+ return this.whereExists(callback, boolean, true);
171
+ }
117
172
  /**
118
173
  * Add an order by clause
119
174
  */
@@ -135,13 +190,35 @@ class QueryBuilder {
135
190
  this.offsetValue = offset;
136
191
  return this;
137
192
  }
193
+ /**
194
+ * Cache the query results
195
+ */
196
+ cache(ttl, key) {
197
+ this.cacheTtl = ttl;
198
+ this.cacheKey = key;
199
+ return this;
200
+ }
138
201
  /**
139
202
  * Execute the query and get all results
140
203
  */
141
204
  async get() {
142
205
  const { sql, bindings } = this.buildSelectQuery();
206
+ if (this.cacheTtl !== undefined) {
207
+ const cacheStore = Database_1.Database.getManager().getCache();
208
+ if (cacheStore) {
209
+ // Generate a key based on SQL and bindings if not provided
210
+ const key = this.cacheKey || `db:${Buffer.from(sql + JSON.stringify(bindings)).toString('base64')}`;
211
+ return cacheStore.remember(key, this.cacheTtl, async () => {
212
+ const connection = await this.getResolvedConnection();
213
+ return await connection.query(sql, bindings);
214
+ });
215
+ }
216
+ }
143
217
  const connection = await this.getResolvedConnection();
144
- return await connection.query(sql, bindings);
218
+ const start = Date.now();
219
+ const rows = await connection.query(sql, bindings);
220
+ QueryLogger_1.QueryLogger.log(sql, bindings, Date.now() - start);
221
+ return rows;
145
222
  }
146
223
  /**
147
224
  * Execute the query and get the first result
@@ -152,18 +229,135 @@ class QueryBuilder {
152
229
  return results.length > 0 ? results[0] : null;
153
230
  }
154
231
  /**
155
- * Insert a record
232
+ * Paginate the query results
233
+ */
234
+ async paginate(page = 1, perPage = 15, path = '/') {
235
+ const total = await this.count();
236
+ const offset = (page - 1) * perPage;
237
+ this.limit(perPage).offset(offset);
238
+ const data = await this.get();
239
+ const lastPage = Math.ceil(total / perPage);
240
+ return {
241
+ data,
242
+ meta: {
243
+ total,
244
+ per_page: perPage,
245
+ current_page: page,
246
+ last_page: lastPage,
247
+ first_page: 1,
248
+ from: total > 0 ? offset + 1 : null,
249
+ to: total > 0 ? Math.min(offset + perPage, total) : null,
250
+ },
251
+ links: {
252
+ prev_page_url: page > 1 ? `${path}?page=${page - 1}` : null,
253
+ next_page_url: page < lastPage ? `${path}?page=${page + 1}` : null,
254
+ }
255
+ };
256
+ }
257
+ /**
258
+ * Paginate without counting total pages
259
+ */
260
+ async simplePaginate(page = 1, perPage = 15, path = '/') {
261
+ const offset = (page - 1) * perPage;
262
+ // Fetch perPage + 1 records to check if there are more records
263
+ this.limit(perPage + 1).offset(offset);
264
+ let data = await this.get();
265
+ const hasMore = data.length > perPage;
266
+ if (hasMore) {
267
+ data.pop(); // Remove the extra record
268
+ }
269
+ return {
270
+ data,
271
+ meta: {
272
+ per_page: perPage,
273
+ current_page: page,
274
+ first_page: 1,
275
+ from: data.length > 0 ? offset + 1 : null,
276
+ to: data.length > 0 ? offset + data.length : null,
277
+ },
278
+ links: {
279
+ prev_page_url: page > 1 ? `${path}?page=${page - 1}` : null,
280
+ next_page_url: hasMore ? `${path}?page=${page + 1}` : null,
281
+ }
282
+ };
283
+ }
284
+ /**
285
+ * Cursor paginate for high performance
286
+ */
287
+ async cursorPaginate(cursor = null, perPage = 15, cursorColumn = 'id', path = '/') {
288
+ if (cursor) {
289
+ this.where(cursorColumn, '>', cursor);
290
+ }
291
+ this.orderBy(cursorColumn, 'asc').limit(perPage + 1);
292
+ let data = await this.get();
293
+ const hasMore = data.length > perPage;
294
+ if (hasMore) {
295
+ data.pop();
296
+ }
297
+ const nextCursor = hasMore && data.length > 0 ? data[data.length - 1][cursorColumn] : null;
298
+ return {
299
+ data,
300
+ meta: {
301
+ per_page: perPage,
302
+ has_more: hasMore,
303
+ },
304
+ links: {
305
+ next_page_url: nextCursor ? `${path}?cursor=${nextCursor}` : null,
306
+ }
307
+ };
308
+ }
309
+ /**
310
+ * Chunk the query results
311
+ */
312
+ async chunk(count, callback) {
313
+ let page = 1;
314
+ while (true) {
315
+ // Clone the query builder without offset/limit so we can set them clean
316
+ const chunkQuery = new QueryBuilder(this.connection);
317
+ Object.assign(chunkQuery, this);
318
+ chunkQuery.limit(count).offset((page - 1) * count);
319
+ const results = await chunkQuery.get();
320
+ if (results.length === 0) {
321
+ break;
322
+ }
323
+ const result = await callback(results, page);
324
+ if (result === false) {
325
+ return false;
326
+ }
327
+ if (results.length < count) {
328
+ break;
329
+ }
330
+ page++;
331
+ }
332
+ return true;
333
+ }
334
+ /**
335
+ * Insert a record or multiple records
156
336
  */
157
337
  async insert(data) {
158
338
  if (!this.tableName) {
159
339
  throw new Error('Table name is required');
160
340
  }
161
- const columns = Object.keys(data);
162
- const values = Object.values(data);
163
- const placeholders = values.map((_, i) => `?`).join(', ');
164
- const sql = `INSERT INTO ${this.tableName} (${columns.join(', ')}) VALUES (${placeholders})`;
341
+ const dataArray = Array.isArray(data) ? data : [data];
342
+ if (dataArray.length === 0) {
343
+ return null;
344
+ }
345
+ const columns = Object.keys(dataArray[0]);
346
+ // Build placeholders for all rows
347
+ const placeholders = dataArray.map(() => `(${columns.map(() => '?').join(', ')})`).join(', ');
348
+ // Extract plain values for all rows
349
+ const values = [];
350
+ for (const row of dataArray) {
351
+ for (const col of columns) {
352
+ values.push(row[col] !== undefined ? row[col] : null);
353
+ }
354
+ }
355
+ const sql = `INSERT INTO ${this.tableName} (${columns.join(', ')}) VALUES ${placeholders}`;
165
356
  const connection = await this.getResolvedConnection();
166
- return await connection.query(sql, values);
357
+ const startI = Date.now();
358
+ const resultI = await connection.query(sql, values);
359
+ QueryLogger_1.QueryLogger.log(sql, values, Date.now() - startI);
360
+ return resultI;
167
361
  }
168
362
  /**
169
363
  * Update records
@@ -178,8 +372,10 @@ class QueryBuilder {
178
372
  const { whereClause, bindings: whereBindings } = this.buildWhereClause();
179
373
  const sql = `UPDATE ${this.tableName} SET ${setClause}${whereClause}`;
180
374
  const connection = await this.getResolvedConnection();
181
- const result = await connection.query(sql, [...values, ...whereBindings]);
182
- return result.affectedRows || result.rowCount || 0;
375
+ const startU = Date.now();
376
+ const resultU = await connection.query(sql, [...values, ...whereBindings]);
377
+ QueryLogger_1.QueryLogger.log(sql, [...values, ...whereBindings], Date.now() - startU);
378
+ return resultU.affectedRows || resultU.rowCount || 0;
183
379
  }
184
380
  /**
185
381
  * Delete records
@@ -191,8 +387,10 @@ class QueryBuilder {
191
387
  const { whereClause, bindings } = this.buildWhereClause();
192
388
  const sql = `DELETE FROM ${this.tableName}${whereClause}`;
193
389
  const connection = await this.getResolvedConnection();
194
- const result = await connection.query(sql, bindings);
195
- return result.affectedRows || result.rowCount || 0;
390
+ const startD = Date.now();
391
+ const resultD = await connection.query(sql, bindings);
392
+ QueryLogger_1.QueryLogger.log(sql, bindings, Date.now() - startD);
393
+ return resultD.affectedRows || resultD.rowCount || 0;
196
394
  }
197
395
  /**
198
396
  * Get the count of records
@@ -214,10 +412,16 @@ class QueryBuilder {
214
412
  if (!this.tableName) {
215
413
  throw new Error('Table name is required');
216
414
  }
217
- const columns = this.selectColumns.join(', ');
218
- let sql = `SELECT ${columns} FROM ${this.tableName}`;
219
- const { whereClause, bindings } = this.buildWhereClause();
415
+ const rawSelectSql = this.selectRawExpressions.map(r => r.sql);
416
+ const selectBindings = this.selectRawExpressions.flatMap(r => r.bindings);
417
+ let columnsList = [...this.selectColumns, ...rawSelectSql].join(', ');
418
+ if (!columnsList)
419
+ columnsList = '*';
420
+ let sql = `SELECT ${columnsList} FROM ${this.tableName}`;
421
+ const { whereClause, bindings: whereBindings } = this.buildWhereClause();
220
422
  sql += whereClause;
423
+ // Select bindings must come BEFORE where bindings
424
+ const bindings = [...selectBindings, ...whereBindings];
221
425
  if (this.orderByColumns.length > 0) {
222
426
  const orderBy = this.orderByColumns
223
427
  .map(({ column, direction }) => `${column} ${direction.toUpperCase()}`)
@@ -264,6 +468,21 @@ class QueryBuilder {
264
468
  case 'notNull':
265
469
  clauses.push(`${boolean}${where.column} IS NOT NULL`);
266
470
  break;
471
+ case 'raw':
472
+ clauses.push(`${boolean}${where.column}`);
473
+ if (where.value && Array.isArray(where.value)) {
474
+ bindings.push(...where.value);
475
+ }
476
+ break;
477
+ case 'exists':
478
+ case 'notExists':
479
+ if (where.query) {
480
+ const { sql: subSql, bindings: subBindings } = where.query.buildSelectQuery();
481
+ const existsOperator = where.type === 'notExists' ? 'NOT EXISTS' : 'EXISTS';
482
+ clauses.push(`${boolean}${existsOperator} (${subSql})`);
483
+ bindings.push(...subBindings);
484
+ }
485
+ break;
267
486
  }
268
487
  });
269
488
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"QueryBuilder.js","sourceRoot":"","sources":["../../src/Query/QueryBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"QueryBuilder.js","sourceRoot":"","sources":["../../src/Query/QueryBuilder.ts"],"names":[],"mappings":";;;AACA,0CAAuC;AACvC,6CAA0C;AAC1C,+CAA4C;AAc5C,MAAa,YAAY;IAYrB,YAAoB,UAA4C;QAA5C,eAAU,GAAV,UAAU,CAAkC;QAVxD,kBAAa,GAAa,CAAC,GAAG,CAAC,CAAC;QAChC,yBAAoB,GAA4C,EAAE,CAAC;QACnE,iBAAY,GAAkB,EAAE,CAAC;QACjC,mBAAc,GAAyD,EAAE,CAAC;QAK1E,uBAAkB,GAAsB,IAAI,CAAC;IAEe,CAAC;IAErE;;OAEG;IACK,KAAK,CAAC,qBAAqB;QAC/B,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC3B,IAAI,CAAC,kBAAkB,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC;QACpD,CAAC;QACD,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAa;QACf,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,GAAG,OAAgC;QACtC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,YAAY,uBAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1F,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,GAAW,EAAE,WAAkB,EAAE;QACvC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAc,EAAE,QAAa,EAAE,KAAW;QAC5C,qCAAqC;QACrC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,KAAK,GAAG,QAAQ,CAAC;YACjB,QAAQ,GAAG,GAAG,CAAC;QACnB,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;YACnB,IAAI,EAAE,OAAO;YACb,MAAM;YACN,QAAQ;YACR,KAAK;YACL,OAAO,EAAE,KAAK;SACjB,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,MAAc,EAAE,QAAa,EAAE,KAAW;QAC9C,uCAAuC;QACvC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,KAAK,GAAG,QAAQ,CAAC;YACjB,QAAQ,GAAG,GAAG,CAAC;QACnB,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;YACnB,IAAI,EAAE,OAAO;YACb,MAAM;YACN,QAAQ;YACR,KAAK;YACL,OAAO,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,MAAc,EAAE,MAAa;QACjC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;YACnB,IAAI,EAAE,IAAI;YACV,MAAM;YACN,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,KAAK;SACjB,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,MAAc,EAAE,MAAa;QACpC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;YACnB,IAAI,EAAE,OAAO;YACb,MAAM;YACN,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,KAAK;SACjB,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,MAAc;QACpB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;YACnB,IAAI,EAAE,MAAM;YACZ,MAAM;YACN,OAAO,EAAE,KAAK;SACjB,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,MAAc;QACvB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;YACnB,IAAI,EAAE,SAAS;YACf,MAAM;YACN,OAAO,EAAE,KAAK;SACjB,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,GAAW,EAAE,WAAkB,EAAE;QACtC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;YACnB,IAAI,EAAE,KAAK;YACX,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,QAAQ;YACf,OAAO,EAAE,KAAK;SACjB,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,GAAW,EAAE,WAAkB,EAAE;QACxC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;YACnB,IAAI,EAAE,KAAK;YACX,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,QAAQ;YACf,OAAO,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,QAAuC,EAAE,UAAwB,KAAK,EAAE,MAAe,KAAK;QACpG,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChD,QAAQ,CAAC,KAAK,CAAC,CAAC;QAEhB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;YACnB,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ;YAClC,MAAM,EAAE,EAAE;YACV,KAAK;YACL,OAAO;SACV,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,QAAuC,EAAE,UAAwB,KAAK;QACjF,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACrD,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,MAAc,EAAE,YAA4B,KAAK;QACrD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAa;QACf,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,MAAc;QACjB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC1B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAW,EAAE,GAAY;QAC3B,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;QACpB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;QACpB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG;QACL,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAElD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,UAAU,GAAG,mBAAQ,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,CAAC;YACpD,IAAI,UAAU,EAAE,CAAC;gBACb,2DAA2D;gBAC3D,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACpG,OAAO,UAAU,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;oBACtD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;oBACtD,OAAO,MAAM,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;gBACjD,CAAC,CAAC,CAAC;YACP,CAAC;QACL,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACtD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACnD,yBAAW,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACP,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACd,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;QACjC,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,OAAe,CAAC,EAAE,UAAkB,EAAE,EAAE,OAAe,GAAG;QACrE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;QAEpC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC;QAE5C,OAAO;YACH,IAAI;YACJ,IAAI,EAAE;gBACF,KAAK;gBACL,QAAQ,EAAE,OAAO;gBACjB,YAAY,EAAE,IAAI;gBAClB,SAAS,EAAE,QAAQ;gBACnB,UAAU,EAAE,CAAC;gBACb,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI;gBACnC,EAAE,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;aAC3D;YACD,KAAK,EAAE;gBACH,aAAa,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,SAAS,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;gBAC3D,aAAa,EAAE,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,SAAS,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;aACrE;SACJ,CAAC;IACN,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,OAAe,CAAC,EAAE,UAAkB,EAAE,EAAE,OAAe,GAAG;QAC3E,MAAM,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;QAEpC,+DAA+D;QAC/D,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;QAE5B,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;QACtC,IAAI,OAAO,EAAE,CAAC;YACV,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,0BAA0B;QAC1C,CAAC;QAED,OAAO;YACH,IAAI;YACJ,IAAI,EAAE;gBACF,QAAQ,EAAE,OAAO;gBACjB,YAAY,EAAE,IAAI;gBAClB,UAAU,EAAE,CAAC;gBACb,IAAI,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI;gBACzC,EAAE,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;aACpD;YACD,KAAK,EAAE;gBACH,aAAa,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,SAAS,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;gBAC3D,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,SAAS,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;aAC7D;SACJ,CAAC;IACN,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,SAAwB,IAAI,EAAE,UAAkB,EAAE,EAAE,eAAuB,IAAI,EAAE,OAAe,GAAG;QACpH,IAAI,MAAM,EAAE,CAAC;YACT,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;QACrD,IAAI,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;QAE5B,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;QACtC,IAAI,OAAO,EAAE,CAAC;YACV,IAAI,CAAC,GAAG,EAAE,CAAC;QACf,CAAC;QAED,MAAM,UAAU,GAAG,OAAO,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAE3F,OAAO;YACH,IAAI;YACJ,IAAI,EAAE;gBACF,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE,OAAO;aACpB;YACD,KAAK,EAAE;gBACH,aAAa,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,WAAW,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI;aACpE;SACJ,CAAC;IACN,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,CAAC,KAAa,EAAE,QAAmE;QAC1F,IAAI,IAAI,GAAG,CAAC,CAAC;QAEb,OAAO,IAAI,EAAE,CAAC;YACV,wEAAwE;YACxE,MAAM,UAAU,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACrD,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YAChC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;YAEnD,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,GAAG,EAAE,CAAC;YAEvC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,MAAM;YACV,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAE7C,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;gBACnB,OAAO,KAAK,CAAC;YACjB,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC;gBACzB,MAAM;YACV,CAAC;YAED,IAAI,EAAE,CAAC;QACX,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,IAAiD;QAC1D,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAEtD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAE1C,kCAAkC;QAClC,MAAM,YAAY,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE9F,oCAAoC;QACpC,MAAM,MAAM,GAAU,EAAE,CAAC;QACzB,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC1B,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;gBACxB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC1D,CAAC;QACL,CAAC;QAED,MAAM,GAAG,GAAG,eAAe,IAAI,CAAC,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,YAAY,EAAE,CAAC;QAC3F,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACtD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACpD,yBAAW,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC;QAClD,OAAO,OAAO,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,IAAyB;QAClC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE9D,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACzE,MAAM,GAAG,GAAG,UAAU,IAAI,CAAC,SAAS,QAAQ,SAAS,GAAG,WAAW,EAAE,CAAC;QAEtE,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACtD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,MAAM,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC;QAC3E,yBAAW,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,MAAM,EAAE,GAAG,aAAa,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC;QACzE,OAAO,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM;QACR,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1D,MAAM,GAAG,GAAG,eAAe,IAAI,CAAC,SAAS,GAAG,WAAW,EAAE,CAAC;QAE1D,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACtD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACtD,yBAAW,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC;QACpD,OAAO,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,CAAC,SAAiB,GAAG;QAC5B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1D,MAAM,GAAG,GAAG,gBAAgB,MAAM,mBAAmB,IAAI,CAAC,SAAS,GAAG,WAAW,EAAE,CAAC;QAEpF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACtD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACrD,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,gBAAgB;QACZ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC/D,MAAM,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAE1E,IAAI,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtE,IAAI,CAAC,WAAW;YAAE,WAAW,GAAG,GAAG,CAAC;QAEpC,IAAI,GAAG,GAAG,UAAU,WAAW,SAAS,IAAI,CAAC,SAAS,EAAE,CAAC;QAEzD,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACzE,GAAG,IAAI,WAAW,CAAC;QAEnB,kDAAkD;QAClD,MAAM,QAAQ,GAAG,CAAC,GAAG,cAAc,EAAE,GAAG,aAAa,CAAC,CAAC;QAEvD,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc;iBAC9B,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,GAAG,MAAM,IAAI,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC;iBACtE,IAAI,CAAC,IAAI,CAAC,CAAC;YAChB,GAAG,IAAI,aAAa,OAAO,EAAE,CAAC;QAClC,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YAChC,GAAG,IAAI,UAAU,IAAI,CAAC,UAAU,EAAE,CAAC;QACvC,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACjC,GAAG,IAAI,WAAW,IAAI,CAAC,WAAW,EAAE,CAAC;QACzC,CAAC;QAED,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IACK,gBAAgB;QACpB,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QAC7C,CAAC;QAED,MAAM,QAAQ,GAAU,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAa,EAAE,CAAC;QAE7B,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACvC,MAAM,OAAO,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC;YAEtE,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;gBACjB,KAAK,OAAO;oBACR,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;oBAC9D,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBAC3B,MAAM;gBAEV,KAAK,IAAI;oBACL,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC7D,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,GAAG,KAAK,CAAC,MAAM,QAAQ,cAAc,GAAG,CAAC,CAAC;oBACjE,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;oBAC9B,MAAM;gBAEV,KAAK,OAAO;oBACR,MAAM,iBAAiB,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAChE,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,GAAG,KAAK,CAAC,MAAM,YAAY,iBAAiB,GAAG,CAAC,CAAC;oBACxE,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;oBAC9B,MAAM;gBAEV,KAAK,MAAM;oBACP,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,GAAG,KAAK,CAAC,MAAM,UAAU,CAAC,CAAC;oBAClD,MAAM;gBAEV,KAAK,SAAS;oBACV,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,GAAG,KAAK,CAAC,MAAM,cAAc,CAAC,CAAC;oBACtD,MAAM;gBAEV,KAAK,KAAK;oBACN,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;oBAC1C,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;wBAC5C,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;oBAClC,CAAC;oBACD,MAAM;gBAEV,KAAK,QAAQ,CAAC;gBACd,KAAK,WAAW;oBACZ,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;wBACd,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;wBAC9E,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC;wBAC5E,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,GAAG,cAAc,KAAK,MAAM,GAAG,CAAC,CAAC;wBACxD,QAAQ,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;oBAClC,CAAC;oBACD,MAAM;YACd,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO;YACH,WAAW,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACzC,QAAQ;SACX,CAAC;IACN,CAAC;CACJ;AAtkBD,oCAskBC"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * A single logged query entry
3
+ */
4
+ export interface QueryLog {
5
+ sql: string;
6
+ bindings: any[];
7
+ time: number;
8
+ connection: string;
9
+ timestamp: Date;
10
+ }
11
+ /**
12
+ * Query Logger — records all executed queries for debugging
13
+ */
14
+ export declare class QueryLogger {
15
+ private static logs;
16
+ private static enabled;
17
+ private static listeners;
18
+ /**
19
+ * Enable query logging
20
+ */
21
+ static enable(): void;
22
+ /**
23
+ * Disable query logging
24
+ */
25
+ static disable(): void;
26
+ /**
27
+ * Check if logging is active
28
+ */
29
+ static isEnabled(): boolean;
30
+ /**
31
+ * Log a query
32
+ */
33
+ static log(sql: string, bindings: any[], time: number, connection?: string): void;
34
+ /**
35
+ * Register a real-time listener on each query
36
+ */
37
+ static listen(callback: (log: QueryLog) => void): void;
38
+ /**
39
+ * Get all logged queries
40
+ */
41
+ static getLog(): QueryLog[];
42
+ /**
43
+ * Get the last executed query
44
+ */
45
+ static getLastQuery(): QueryLog | undefined;
46
+ /**
47
+ * Clear the query log
48
+ */
49
+ static flush(): void;
50
+ /**
51
+ * Print all queries to console for debugging
52
+ */
53
+ static dump(): void;
54
+ }
55
+ //# sourceMappingURL=QueryLogger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryLogger.d.ts","sourceRoot":"","sources":["../../src/Query/QueryLogger.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,QAAQ;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,GAAG,EAAE,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,IAAI,CAAC;CACnB;AAED;;GAEG;AACH,qBAAa,WAAW;IACpB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAkB;IACrC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAkB;IACxC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAsC;IAE9D;;OAEG;IACH,MAAM,CAAC,MAAM,IAAI,IAAI;IAIrB;;OAEG;IACH,MAAM,CAAC,OAAO,IAAI,IAAI;IAItB;;OAEG;IACH,MAAM,CAAC,SAAS,IAAI,OAAO;IAI3B;;OAEG;IACH,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,GAAE,MAAkB,GAAG,IAAI;IAmB5F;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,QAAQ,KAAK,IAAI,GAAG,IAAI;IAItD;;OAEG;IACH,MAAM,CAAC,MAAM,IAAI,QAAQ,EAAE;IAI3B;;OAEG;IACH,MAAM,CAAC,YAAY,IAAI,QAAQ,GAAG,SAAS;IAI3C;;OAEG;IACH,MAAM,CAAC,KAAK,IAAI,IAAI;IAIpB;;OAEG;IACH,MAAM,CAAC,IAAI,IAAI,IAAI;CAStB"}
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.QueryLogger = void 0;
4
+ /**
5
+ * Query Logger — records all executed queries for debugging
6
+ */
7
+ class QueryLogger {
8
+ /**
9
+ * Enable query logging
10
+ */
11
+ static enable() {
12
+ this.enabled = true;
13
+ }
14
+ /**
15
+ * Disable query logging
16
+ */
17
+ static disable() {
18
+ this.enabled = false;
19
+ }
20
+ /**
21
+ * Check if logging is active
22
+ */
23
+ static isEnabled() {
24
+ return this.enabled;
25
+ }
26
+ /**
27
+ * Log a query
28
+ */
29
+ static log(sql, bindings, time, connection = 'default') {
30
+ if (!this.enabled)
31
+ return;
32
+ const entry = {
33
+ sql,
34
+ bindings,
35
+ time,
36
+ connection,
37
+ timestamp: new Date(),
38
+ };
39
+ this.logs.push(entry);
40
+ // Notify live listeners (e.g. debug console output)
41
+ for (const listener of this.listeners) {
42
+ listener(entry);
43
+ }
44
+ }
45
+ /**
46
+ * Register a real-time listener on each query
47
+ */
48
+ static listen(callback) {
49
+ this.listeners.push(callback);
50
+ }
51
+ /**
52
+ * Get all logged queries
53
+ */
54
+ static getLog() {
55
+ return [...this.logs];
56
+ }
57
+ /**
58
+ * Get the last executed query
59
+ */
60
+ static getLastQuery() {
61
+ return this.logs[this.logs.length - 1];
62
+ }
63
+ /**
64
+ * Clear the query log
65
+ */
66
+ static flush() {
67
+ this.logs = [];
68
+ }
69
+ /**
70
+ * Print all queries to console for debugging
71
+ */
72
+ static dump() {
73
+ for (const entry of this.logs) {
74
+ console.log(`[${entry.connection}] ${entry.sql}`, entry.bindings.length ? `-- bindings: ${JSON.stringify(entry.bindings)}` : '', `(${entry.time.toFixed(2)}ms)`);
75
+ }
76
+ }
77
+ }
78
+ exports.QueryLogger = QueryLogger;
79
+ QueryLogger.logs = [];
80
+ QueryLogger.enabled = false;
81
+ QueryLogger.listeners = [];
82
+ //# sourceMappingURL=QueryLogger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryLogger.js","sourceRoot":"","sources":["../../src/Query/QueryLogger.ts"],"names":[],"mappings":";;;AAWA;;GAEG;AACH,MAAa,WAAW;IAKpB;;OAEG;IACH,MAAM,CAAC,MAAM;QACT,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,OAAO;QACV,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,SAAS;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,GAAG,CAAC,GAAW,EAAE,QAAe,EAAE,IAAY,EAAE,aAAqB,SAAS;QACjF,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAE1B,MAAM,KAAK,GAAa;YACpB,GAAG;YACH,QAAQ;YACR,IAAI;YACJ,UAAU;YACV,SAAS,EAAE,IAAI,IAAI,EAAE;SACxB,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEtB,oDAAoD;QACpD,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;IACL,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,QAAiC;QAC3C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,MAAM;QACT,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,YAAY;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK;QACR,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,IAAI;QACP,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CACP,IAAI,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,GAAG,EAAE,EACpC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAC7E,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CACjC,CAAC;QACN,CAAC;IACL,CAAC;;AAvFL,kCAwFC;AAvFkB,gBAAI,GAAe,EAAE,CAAC;AACtB,mBAAO,GAAY,KAAK,CAAC;AACzB,qBAAS,GAAmC,EAAE,CAAC"}
@@ -7,6 +7,11 @@ export declare abstract class Grammar {
7
7
  * Compile the create table SQL
8
8
  */
9
9
  abstract compileCreate(blueprint: TableBlueprint): string;
10
+ /**
11
+ * Compile the alter table SQL (adding/dropping/modifying columns and indexes)
12
+ * Returns an array of SQL statements since some engines require multiple statements for altering.
13
+ */
14
+ abstract compileAlter(blueprint: TableBlueprint): string[];
10
15
  /**
11
16
  * Compile the drop table SQL
12
17
  */