@orchestr-sh/orchestr 1.0.1 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/dist/Database/Adapters/DrizzleAdapter.d.ts +119 -0
  2. package/dist/Database/Adapters/DrizzleAdapter.d.ts.map +1 -0
  3. package/dist/Database/Adapters/DrizzleAdapter.js +384 -0
  4. package/dist/Database/Adapters/DrizzleAdapter.js.map +1 -0
  5. package/dist/Database/Connection.d.ts +103 -0
  6. package/dist/Database/Connection.d.ts.map +1 -0
  7. package/dist/Database/Connection.js +164 -0
  8. package/dist/Database/Connection.js.map +1 -0
  9. package/dist/Database/Contracts/DatabaseAdapter.d.ts +85 -0
  10. package/dist/Database/Contracts/DatabaseAdapter.d.ts.map +1 -0
  11. package/dist/Database/Contracts/DatabaseAdapter.js +9 -0
  12. package/dist/Database/Contracts/DatabaseAdapter.js.map +1 -0
  13. package/dist/Database/Contracts/QueryBuilderInterface.d.ts +196 -0
  14. package/dist/Database/Contracts/QueryBuilderInterface.d.ts.map +1 -0
  15. package/dist/Database/Contracts/QueryBuilderInterface.js +8 -0
  16. package/dist/Database/Contracts/QueryBuilderInterface.js.map +1 -0
  17. package/dist/Database/Contracts/Schema.d.ts +234 -0
  18. package/dist/Database/Contracts/Schema.d.ts.map +1 -0
  19. package/dist/Database/Contracts/Schema.js +8 -0
  20. package/dist/Database/Contracts/Schema.js.map +1 -0
  21. package/dist/Database/DatabaseManager.d.ts +61 -0
  22. package/dist/Database/DatabaseManager.d.ts.map +1 -0
  23. package/dist/Database/DatabaseManager.js +102 -0
  24. package/dist/Database/DatabaseManager.js.map +1 -0
  25. package/dist/Database/DatabaseServiceProvider.d.ts +17 -0
  26. package/dist/Database/DatabaseServiceProvider.d.ts.map +1 -0
  27. package/dist/Database/DatabaseServiceProvider.js +44 -0
  28. package/dist/Database/DatabaseServiceProvider.js.map +1 -0
  29. package/dist/Database/Eloquent/Builder.d.ts +76 -0
  30. package/dist/Database/Eloquent/Builder.d.ts.map +1 -0
  31. package/dist/Database/Eloquent/Builder.js +154 -0
  32. package/dist/Database/Eloquent/Builder.js.map +1 -0
  33. package/dist/Database/Eloquent/Collection.d.ts +137 -0
  34. package/dist/Database/Eloquent/Collection.d.ts.map +1 -0
  35. package/dist/Database/Eloquent/Collection.js +284 -0
  36. package/dist/Database/Eloquent/Collection.js.map +1 -0
  37. package/dist/Database/Eloquent/Concerns/HasAttributes.d.ts +44 -0
  38. package/dist/Database/Eloquent/Concerns/HasAttributes.d.ts.map +1 -0
  39. package/dist/Database/Eloquent/Concerns/HasAttributes.js +8 -0
  40. package/dist/Database/Eloquent/Concerns/HasAttributes.js.map +1 -0
  41. package/dist/Database/Eloquent/Concerns/HasTimestamps.d.ts +41 -0
  42. package/dist/Database/Eloquent/Concerns/HasTimestamps.d.ts.map +1 -0
  43. package/dist/Database/Eloquent/Concerns/HasTimestamps.js +14 -0
  44. package/dist/Database/Eloquent/Concerns/HasTimestamps.js.map +1 -0
  45. package/dist/Database/Eloquent/Model.d.ts +265 -0
  46. package/dist/Database/Eloquent/Model.d.ts.map +1 -0
  47. package/dist/Database/Eloquent/Model.js +523 -0
  48. package/dist/Database/Eloquent/Model.js.map +1 -0
  49. package/dist/Database/Eloquent/SoftDeletes.d.ts +41 -0
  50. package/dist/Database/Eloquent/SoftDeletes.d.ts.map +1 -0
  51. package/dist/Database/Eloquent/SoftDeletes.js +22 -0
  52. package/dist/Database/Eloquent/SoftDeletes.js.map +1 -0
  53. package/dist/Database/Ensemble/Concerns/HasAttributes.d.ts +44 -0
  54. package/dist/Database/Ensemble/Concerns/HasAttributes.d.ts.map +1 -0
  55. package/dist/Database/Ensemble/Concerns/HasAttributes.js +8 -0
  56. package/dist/Database/Ensemble/Concerns/HasAttributes.js.map +1 -0
  57. package/dist/Database/Ensemble/Concerns/HasTimestamps.d.ts +41 -0
  58. package/dist/Database/Ensemble/Concerns/HasTimestamps.d.ts.map +1 -0
  59. package/dist/Database/Ensemble/Concerns/HasTimestamps.js +14 -0
  60. package/dist/Database/Ensemble/Concerns/HasTimestamps.js.map +1 -0
  61. package/dist/Database/Ensemble/Ensemble.d.ts +266 -0
  62. package/dist/Database/Ensemble/Ensemble.d.ts.map +1 -0
  63. package/dist/Database/Ensemble/Ensemble.js +524 -0
  64. package/dist/Database/Ensemble/Ensemble.js.map +1 -0
  65. package/dist/Database/Ensemble/EnsembleBuilder.d.ts +76 -0
  66. package/dist/Database/Ensemble/EnsembleBuilder.d.ts.map +1 -0
  67. package/dist/Database/Ensemble/EnsembleBuilder.js +154 -0
  68. package/dist/Database/Ensemble/EnsembleBuilder.js.map +1 -0
  69. package/dist/Database/Ensemble/EnsembleCollection.d.ts +137 -0
  70. package/dist/Database/Ensemble/EnsembleCollection.d.ts.map +1 -0
  71. package/dist/Database/Ensemble/EnsembleCollection.js +284 -0
  72. package/dist/Database/Ensemble/EnsembleCollection.js.map +1 -0
  73. package/dist/Database/Ensemble/SoftDeletes.d.ts +41 -0
  74. package/dist/Database/Ensemble/SoftDeletes.d.ts.map +1 -0
  75. package/dist/Database/Ensemble/SoftDeletes.js +22 -0
  76. package/dist/Database/Ensemble/SoftDeletes.js.map +1 -0
  77. package/dist/Database/Query/Builder.d.ts +219 -0
  78. package/dist/Database/Query/Builder.d.ts.map +1 -0
  79. package/dist/Database/Query/Builder.js +554 -0
  80. package/dist/Database/Query/Builder.js.map +1 -0
  81. package/dist/Database/Query/Expression.d.ts +22 -0
  82. package/dist/Database/Query/Expression.d.ts.map +1 -0
  83. package/dist/Database/Query/Expression.js +35 -0
  84. package/dist/Database/Query/Expression.js.map +1 -0
  85. package/dist/Facades/DB.d.ts +7 -0
  86. package/dist/Facades/DB.d.ts.map +1 -0
  87. package/dist/Facades/DB.js +42 -0
  88. package/dist/Facades/DB.js.map +1 -0
  89. package/dist/Facades/Route.d.ts +1 -1
  90. package/dist/Facades/Route.d.ts.map +1 -1
  91. package/dist/Facades/Route.js.map +1 -1
  92. package/dist/index.d.ts +18 -0
  93. package/dist/index.d.ts.map +1 -1
  94. package/dist/index.js +27 -1
  95. package/dist/index.js.map +1 -1
  96. package/package.json +13 -5
@@ -0,0 +1,119 @@
1
+ /**
2
+ * DrizzleAdapter
3
+ *
4
+ * Database adapter implementation using Drizzle ORM
5
+ */
6
+ import { DatabaseAdapter, DatabaseConfig, QueryResult } from '../Contracts/DatabaseAdapter';
7
+ export declare class DrizzleAdapter implements DatabaseAdapter {
8
+ protected config: DatabaseConfig;
9
+ protected client: any;
10
+ protected connected: boolean;
11
+ protected inTransaction: boolean;
12
+ protected transactionClient: any;
13
+ constructor(config: DatabaseConfig);
14
+ /**
15
+ * Connect to the database
16
+ */
17
+ connect(): Promise<void>;
18
+ /**
19
+ * Connect to PostgreSQL
20
+ */
21
+ protected connectPostgres(): Promise<void>;
22
+ /**
23
+ * Connect to MySQL
24
+ */
25
+ protected connectMySQL(): Promise<void>;
26
+ /**
27
+ * Connect to SQLite
28
+ */
29
+ protected connectSQLite(): Promise<void>;
30
+ /**
31
+ * Disconnect from the database
32
+ */
33
+ disconnect(): Promise<void>;
34
+ /**
35
+ * Execute a raw SQL query
36
+ */
37
+ query<T = any>(sql: string, bindings?: any[]): Promise<QueryResult<T>>;
38
+ /**
39
+ * Execute a SELECT query
40
+ */
41
+ select<T = any>(sql: string, bindings?: any[]): Promise<T[]>;
42
+ /**
43
+ * Execute an INSERT query
44
+ */
45
+ insert(sql: string, bindings?: any[]): Promise<any>;
46
+ /**
47
+ * Execute an UPDATE query
48
+ */
49
+ update(sql: string, bindings?: any[]): Promise<number>;
50
+ /**
51
+ * Execute a DELETE query
52
+ */
53
+ delete(sql: string, bindings?: any[]): Promise<number>;
54
+ /**
55
+ * Begin a transaction
56
+ */
57
+ beginTransaction(): Promise<void>;
58
+ /**
59
+ * Commit a transaction
60
+ */
61
+ commit(): Promise<void>;
62
+ /**
63
+ * Rollback a transaction
64
+ */
65
+ rollback(): Promise<void>;
66
+ /**
67
+ * Execute a callback within a transaction
68
+ */
69
+ transaction<T>(callback: (adapter: DatabaseAdapter) => Promise<T>): Promise<T>;
70
+ /**
71
+ * Check if adapter is connected
72
+ */
73
+ isConnected(): boolean;
74
+ /**
75
+ * Get the underlying driver instance
76
+ */
77
+ getDriver(): any;
78
+ /**
79
+ * Get table information
80
+ */
81
+ getTableInfo(tableName: string): Promise<any>;
82
+ /**
83
+ * Get PostgreSQL table info
84
+ */
85
+ protected getPostgresTableInfo(tableName: string): Promise<any>;
86
+ /**
87
+ * Get MySQL table info
88
+ */
89
+ protected getMySQLTableInfo(tableName: string): Promise<any>;
90
+ /**
91
+ * Get SQLite table info
92
+ */
93
+ protected getSQLiteTableInfo(tableName: string): Promise<any>;
94
+ /**
95
+ * Get all table names
96
+ */
97
+ getTables(): Promise<string[]>;
98
+ /**
99
+ * Get PostgreSQL tables
100
+ */
101
+ protected getPostgresTables(): Promise<string[]>;
102
+ /**
103
+ * Get MySQL tables
104
+ */
105
+ protected getMySQLTables(): Promise<string[]>;
106
+ /**
107
+ * Get SQLite tables
108
+ */
109
+ protected getSQLiteTables(): Promise<string[]>;
110
+ /**
111
+ * Bind parameters to SQL query
112
+ */
113
+ protected bindParameters(sql: string, bindings?: any[]): string;
114
+ /**
115
+ * Ensure the adapter is connected
116
+ */
117
+ protected ensureConnected(): void;
118
+ }
119
+ //# sourceMappingURL=DrizzleAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DrizzleAdapter.d.ts","sourceRoot":"","sources":["../../../src/Database/Adapters/DrizzleAdapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,384 @@
1
+ "use strict";
2
+ /**
3
+ * DrizzleAdapter
4
+ *
5
+ * Database adapter implementation using Drizzle ORM
6
+ */
7
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
+ if (k2 === undefined) k2 = k;
9
+ var desc = Object.getOwnPropertyDescriptor(m, k);
10
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
+ desc = { enumerable: true, get: function() { return m[k]; } };
12
+ }
13
+ Object.defineProperty(o, k2, desc);
14
+ }) : (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ o[k2] = m[k];
17
+ }));
18
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
19
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
20
+ }) : function(o, v) {
21
+ o["default"] = v;
22
+ });
23
+ var __importStar = (this && this.__importStar) || (function () {
24
+ var ownKeys = function(o) {
25
+ ownKeys = Object.getOwnPropertyNames || function (o) {
26
+ var ar = [];
27
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
28
+ return ar;
29
+ };
30
+ return ownKeys(o);
31
+ };
32
+ return function (mod) {
33
+ if (mod && mod.__esModule) return mod;
34
+ var result = {};
35
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
36
+ __setModuleDefault(result, mod);
37
+ return result;
38
+ };
39
+ })();
40
+ Object.defineProperty(exports, "__esModule", { value: true });
41
+ exports.DrizzleAdapter = void 0;
42
+ class DrizzleAdapter {
43
+ config;
44
+ client;
45
+ connected = false;
46
+ inTransaction = false;
47
+ transactionClient;
48
+ constructor(config) {
49
+ this.config = config;
50
+ }
51
+ /**
52
+ * Connect to the database
53
+ */
54
+ async connect() {
55
+ if (this.connected) {
56
+ return;
57
+ }
58
+ try {
59
+ // Dynamically import the appropriate Drizzle driver
60
+ switch (this.config.driver) {
61
+ case 'postgres':
62
+ await this.connectPostgres();
63
+ break;
64
+ case 'mysql':
65
+ case 'mysql2':
66
+ await this.connectMySQL();
67
+ break;
68
+ case 'better-sqlite3':
69
+ case 'sqlite':
70
+ await this.connectSQLite();
71
+ break;
72
+ default:
73
+ throw new Error(`Unsupported database driver: ${this.config.driver}`);
74
+ }
75
+ this.connected = true;
76
+ }
77
+ catch (error) {
78
+ throw new Error(`Failed to connect to database: ${error?.message || error}`);
79
+ }
80
+ }
81
+ /**
82
+ * Connect to PostgreSQL
83
+ */
84
+ async connectPostgres() {
85
+ const { drizzle } = await Promise.resolve().then(() => __importStar(require('drizzle-orm/postgres-js')));
86
+ const postgres = await Promise.resolve().then(() => __importStar(require('postgres')));
87
+ const client = postgres.default({
88
+ host: this.config.host,
89
+ port: this.config.port,
90
+ database: this.config.database,
91
+ username: this.config.username,
92
+ password: this.config.password,
93
+ max: this.config.poolMax || 10,
94
+ });
95
+ this.client = drizzle(client);
96
+ }
97
+ /**
98
+ * Connect to MySQL
99
+ */
100
+ async connectMySQL() {
101
+ const { drizzle } = await Promise.resolve().then(() => __importStar(require('drizzle-orm/mysql2')));
102
+ const mysql = await Promise.resolve().then(() => __importStar(require('mysql2/promise')));
103
+ const connection = await mysql.createPool({
104
+ host: this.config.host,
105
+ port: this.config.port,
106
+ database: this.config.database,
107
+ user: this.config.username,
108
+ password: this.config.password,
109
+ connectionLimit: this.config.poolMax || 10,
110
+ });
111
+ this.client = drizzle(connection);
112
+ }
113
+ /**
114
+ * Connect to SQLite
115
+ */
116
+ async connectSQLite() {
117
+ const { drizzle } = await Promise.resolve().then(() => __importStar(require('drizzle-orm/better-sqlite3')));
118
+ const Database = await Promise.resolve().then(() => __importStar(require('better-sqlite3')));
119
+ const client = new Database.default(this.config.database);
120
+ this.client = drizzle(client);
121
+ }
122
+ /**
123
+ * Disconnect from the database
124
+ */
125
+ async disconnect() {
126
+ if (!this.connected) {
127
+ return;
128
+ }
129
+ // Drizzle doesn't require explicit disconnection
130
+ // But we'll mark as disconnected
131
+ this.connected = false;
132
+ this.client = null;
133
+ }
134
+ /**
135
+ * Execute a raw SQL query
136
+ */
137
+ async query(sql, bindings = []) {
138
+ this.ensureConnected();
139
+ try {
140
+ const client = this.inTransaction ? this.transactionClient : this.client;
141
+ // Use the underlying SQL query capability
142
+ const result = await client.execute(this.bindParameters(sql, bindings));
143
+ return {
144
+ rows: Array.isArray(result) ? result : result.rows || [],
145
+ rowCount: Array.isArray(result) ? result.length : result.rowCount || 0,
146
+ };
147
+ }
148
+ catch (error) {
149
+ throw new Error(`Query failed: ${error?.message || error}\nSQL: ${sql}`);
150
+ }
151
+ }
152
+ /**
153
+ * Execute a SELECT query
154
+ */
155
+ async select(sql, bindings = []) {
156
+ const result = await this.query(sql, bindings);
157
+ return result.rows;
158
+ }
159
+ /**
160
+ * Execute an INSERT query
161
+ */
162
+ async insert(sql, bindings = []) {
163
+ this.ensureConnected();
164
+ try {
165
+ const client = this.inTransaction ? this.transactionClient : this.client;
166
+ const result = await client.execute(this.bindParameters(sql, bindings));
167
+ // Return the inserted ID
168
+ return result.insertId || result.lastInsertRowid || result.rows?.[0]?.id;
169
+ }
170
+ catch (error) {
171
+ throw new Error(`Insert failed: ${error?.message || error}\nSQL: ${sql}`);
172
+ }
173
+ }
174
+ /**
175
+ * Execute an UPDATE query
176
+ */
177
+ async update(sql, bindings = []) {
178
+ const result = await this.query(sql, bindings);
179
+ return result.rowCount;
180
+ }
181
+ /**
182
+ * Execute a DELETE query
183
+ */
184
+ async delete(sql, bindings = []) {
185
+ const result = await this.query(sql, bindings);
186
+ return result.rowCount;
187
+ }
188
+ /**
189
+ * Begin a transaction
190
+ */
191
+ async beginTransaction() {
192
+ this.ensureConnected();
193
+ if (this.inTransaction) {
194
+ throw new Error('Transaction already in progress');
195
+ }
196
+ this.inTransaction = true;
197
+ // For now, we'll use simple BEGIN/COMMIT/ROLLBACK
198
+ // In a more sophisticated implementation, we'd use Drizzle's transaction API
199
+ await this.query('BEGIN');
200
+ }
201
+ /**
202
+ * Commit a transaction
203
+ */
204
+ async commit() {
205
+ if (!this.inTransaction) {
206
+ throw new Error('No transaction in progress');
207
+ }
208
+ await this.query('COMMIT');
209
+ this.inTransaction = false;
210
+ this.transactionClient = null;
211
+ }
212
+ /**
213
+ * Rollback a transaction
214
+ */
215
+ async rollback() {
216
+ if (!this.inTransaction) {
217
+ throw new Error('No transaction in progress');
218
+ }
219
+ await this.query('ROLLBACK');
220
+ this.inTransaction = false;
221
+ this.transactionClient = null;
222
+ }
223
+ /**
224
+ * Execute a callback within a transaction
225
+ */
226
+ async transaction(callback) {
227
+ await this.beginTransaction();
228
+ try {
229
+ const result = await callback(this);
230
+ await this.commit();
231
+ return result;
232
+ }
233
+ catch (error) {
234
+ await this.rollback();
235
+ throw error;
236
+ }
237
+ }
238
+ /**
239
+ * Check if adapter is connected
240
+ */
241
+ isConnected() {
242
+ return this.connected;
243
+ }
244
+ /**
245
+ * Get the underlying driver instance
246
+ */
247
+ getDriver() {
248
+ return this.client;
249
+ }
250
+ /**
251
+ * Get table information
252
+ */
253
+ async getTableInfo(tableName) {
254
+ this.ensureConnected();
255
+ // Implementation varies by driver
256
+ switch (this.config.driver) {
257
+ case 'postgres':
258
+ return this.getPostgresTableInfo(tableName);
259
+ case 'mysql':
260
+ case 'mysql2':
261
+ return this.getMySQLTableInfo(tableName);
262
+ case 'better-sqlite3':
263
+ case 'sqlite':
264
+ return this.getSQLiteTableInfo(tableName);
265
+ default:
266
+ throw new Error('Table info not supported for this driver');
267
+ }
268
+ }
269
+ /**
270
+ * Get PostgreSQL table info
271
+ */
272
+ async getPostgresTableInfo(tableName) {
273
+ const sql = `
274
+ SELECT column_name, data_type, is_nullable, column_default
275
+ FROM information_schema.columns
276
+ WHERE table_name = ?
277
+ ORDER BY ordinal_position
278
+ `;
279
+ return this.select(sql, [tableName]);
280
+ }
281
+ /**
282
+ * Get MySQL table info
283
+ */
284
+ async getMySQLTableInfo(tableName) {
285
+ const sql = `DESCRIBE ${tableName}`;
286
+ return this.select(sql);
287
+ }
288
+ /**
289
+ * Get SQLite table info
290
+ */
291
+ async getSQLiteTableInfo(tableName) {
292
+ const sql = `PRAGMA table_info(${tableName})`;
293
+ return this.select(sql);
294
+ }
295
+ /**
296
+ * Get all table names
297
+ */
298
+ async getTables() {
299
+ this.ensureConnected();
300
+ switch (this.config.driver) {
301
+ case 'postgres':
302
+ return this.getPostgresTables();
303
+ case 'mysql':
304
+ case 'mysql2':
305
+ return this.getMySQLTables();
306
+ case 'better-sqlite3':
307
+ case 'sqlite':
308
+ return this.getSQLiteTables();
309
+ default:
310
+ throw new Error('Get tables not supported for this driver');
311
+ }
312
+ }
313
+ /**
314
+ * Get PostgreSQL tables
315
+ */
316
+ async getPostgresTables() {
317
+ const sql = `
318
+ SELECT table_name
319
+ FROM information_schema.tables
320
+ WHERE table_schema = 'public'
321
+ AND table_type = 'BASE TABLE'
322
+ `;
323
+ const result = await this.select(sql);
324
+ return result.map((row) => row.table_name);
325
+ }
326
+ /**
327
+ * Get MySQL tables
328
+ */
329
+ async getMySQLTables() {
330
+ const sql = 'SHOW TABLES';
331
+ const result = await this.select(sql);
332
+ return result.map((row) => Object.values(row)[0]);
333
+ }
334
+ /**
335
+ * Get SQLite tables
336
+ */
337
+ async getSQLiteTables() {
338
+ const sql = `
339
+ SELECT name
340
+ FROM sqlite_master
341
+ WHERE type = 'table'
342
+ AND name NOT LIKE 'sqlite_%'
343
+ `;
344
+ const result = await this.select(sql);
345
+ return result.map((row) => row.name);
346
+ }
347
+ /**
348
+ * Bind parameters to SQL query
349
+ */
350
+ bindParameters(sql, bindings = []) {
351
+ if (bindings.length === 0) {
352
+ return sql;
353
+ }
354
+ // Replace ? placeholders with actual values
355
+ // Note: This is a simple implementation. In production, use parameterized queries
356
+ let index = 0;
357
+ return sql.replace(/\?/g, () => {
358
+ const value = bindings[index++];
359
+ if (value === null || value === undefined) {
360
+ return 'NULL';
361
+ }
362
+ if (typeof value === 'string') {
363
+ return `'${value.replace(/'/g, "''")}'`;
364
+ }
365
+ if (typeof value === 'boolean') {
366
+ return value ? '1' : '0';
367
+ }
368
+ if (value instanceof Date) {
369
+ return `'${value.toISOString()}'`;
370
+ }
371
+ return String(value);
372
+ });
373
+ }
374
+ /**
375
+ * Ensure the adapter is connected
376
+ */
377
+ ensureConnected() {
378
+ if (!this.connected) {
379
+ throw new Error('Database not connected. Call connect() first.');
380
+ }
381
+ }
382
+ }
383
+ exports.DrizzleAdapter = DrizzleAdapter;
384
+ //# sourceMappingURL=DrizzleAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DrizzleAdapter.js","sourceRoot":"","sources":["../../../src/Database/Adapters/DrizzleAdapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,103 @@
1
+ /**
2
+ * Connection Class
3
+ *
4
+ * Represents a database connection
5
+ */
6
+ import { DatabaseAdapter, DatabaseConfig } from './Contracts/DatabaseAdapter';
7
+ import { Builder } from './Query/Builder';
8
+ export declare class Connection {
9
+ protected adapter: DatabaseAdapter;
10
+ protected config: DatabaseConfig;
11
+ protected queryLog: Array<{
12
+ query: string;
13
+ bindings: any[];
14
+ time: number;
15
+ }>;
16
+ protected loggingEnabled: boolean;
17
+ constructor(adapter: DatabaseAdapter, config: DatabaseConfig);
18
+ /**
19
+ * Get a query builder instance
20
+ */
21
+ table(tableName: string): Builder;
22
+ /**
23
+ * Execute a raw SQL query
24
+ */
25
+ query(sql: string, bindings?: any[]): Promise<any>;
26
+ /**
27
+ * Execute a SELECT query
28
+ */
29
+ select(sql: string, bindings?: any[]): Promise<any[]>;
30
+ /**
31
+ * Execute an INSERT query
32
+ */
33
+ insert(sql: string, bindings?: any[]): Promise<any>;
34
+ /**
35
+ * Execute an UPDATE query
36
+ */
37
+ update(sql: string, bindings?: any[]): Promise<number>;
38
+ /**
39
+ * Execute a DELETE query
40
+ */
41
+ delete(sql: string, bindings?: any[]): Promise<number>;
42
+ /**
43
+ * Begin a transaction
44
+ */
45
+ beginTransaction(): Promise<void>;
46
+ /**
47
+ * Commit a transaction
48
+ */
49
+ commit(): Promise<void>;
50
+ /**
51
+ * Rollback a transaction
52
+ */
53
+ rollback(): Promise<void>;
54
+ /**
55
+ * Execute a callback within a transaction
56
+ */
57
+ transaction<T>(callback: (connection: Connection) => Promise<T>): Promise<T>;
58
+ /**
59
+ * Connect to the database
60
+ */
61
+ connect(): Promise<void>;
62
+ /**
63
+ * Disconnect from the database
64
+ */
65
+ disconnect(): Promise<void>;
66
+ /**
67
+ * Check if connected
68
+ */
69
+ isConnected(): boolean;
70
+ /**
71
+ * Get the underlying adapter
72
+ */
73
+ getAdapter(): DatabaseAdapter;
74
+ /**
75
+ * Get the configuration
76
+ */
77
+ getConfig(): DatabaseConfig;
78
+ /**
79
+ * Enable query logging
80
+ */
81
+ enableQueryLog(): void;
82
+ /**
83
+ * Disable query logging
84
+ */
85
+ disableQueryLog(): void;
86
+ /**
87
+ * Get the query log
88
+ */
89
+ getQueryLog(): Array<{
90
+ query: string;
91
+ bindings: any[];
92
+ time: number;
93
+ }>;
94
+ /**
95
+ * Clear the query log
96
+ */
97
+ flushQueryLog(): void;
98
+ /**
99
+ * Run a query with logging
100
+ */
101
+ protected runQueryWithLogging<T>(query: string, bindings: any[], callback: () => Promise<T>): Promise<T>;
102
+ }
103
+ //# sourceMappingURL=Connection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Connection.d.ts","sourceRoot":"","sources":["../../src/Database/Connection.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,qBAAa,UAAU;IAKnB,SAAS,CAAC,OAAO,EAAE,eAAe;IAClC,SAAS,CAAC,MAAM,EAAE,cAAc;IALlC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,GAAG,EAAE,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAM;IACjF,SAAS,CAAC,cAAc,EAAE,OAAO,CAAS;gBAG9B,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,cAAc;IAGlC;;OAEG;IACH,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIjC;;OAEG;IACG,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,GAAE,GAAG,EAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAI5D;;OAEG;IACG,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,GAAE,GAAG,EAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAI/D;;OAEG;IACG,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,GAAE,GAAG,EAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAI7D;;OAEG;IACG,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,GAAE,GAAG,EAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAIhE;;OAEG;IACG,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,GAAE,GAAG,EAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAIhE;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvC;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAI7B;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B;;OAEG;IACG,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAalF;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAI9B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACH,UAAU,IAAI,eAAe;IAI7B;;OAEG;IACH,SAAS,IAAI,cAAc;IAI3B;;OAEG;IACH,cAAc,IAAI,IAAI;IAItB;;OAEG;IACH,eAAe,IAAI,IAAI;IAIvB;;OAEG;IACH,WAAW,IAAI,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,GAAG,EAAE,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAItE;;OAEG;IACH,aAAa,IAAI,IAAI;IAIrB;;OAEG;cACa,mBAAmB,CAAC,CAAC,EACnC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,GAAG,EAAE,EACf,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACzB,OAAO,CAAC,CAAC,CAAC;CAoBd"}