@ductape/sdk 0.0.4-v42 → 0.0.4-v44

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 (85) hide show
  1. package/dist/apps/services/app.service.d.ts +10 -0
  2. package/dist/apps/services/app.service.js +38 -69
  3. package/dist/apps/services/app.service.js.map +1 -1
  4. package/dist/apps/validators/joi-validators/create.appWebhook.validator.d.ts +1 -2
  5. package/dist/apps/validators/joi-validators/create.appWebhook.validator.js +2 -15
  6. package/dist/apps/validators/joi-validators/create.appWebhook.validator.js.map +1 -1
  7. package/dist/apps/validators/joi-validators/update.appWebhook.validator.d.ts +1 -2
  8. package/dist/apps/validators/joi-validators/update.appWebhook.validator.js +2 -14
  9. package/dist/apps/validators/joi-validators/update.appWebhook.validator.js.map +1 -1
  10. package/dist/database/adapters/base.adapter.d.ts +176 -0
  11. package/dist/database/adapters/base.adapter.js +31 -0
  12. package/dist/database/adapters/base.adapter.js.map +1 -0
  13. package/dist/database/adapters/dynamodb.adapter.d.ts +91 -0
  14. package/dist/database/adapters/dynamodb.adapter.js +1469 -0
  15. package/dist/database/adapters/dynamodb.adapter.js.map +1 -0
  16. package/dist/database/adapters/mongodb.adapter.d.ts +71 -0
  17. package/dist/database/adapters/mongodb.adapter.js +882 -0
  18. package/dist/database/adapters/mongodb.adapter.js.map +1 -0
  19. package/dist/database/adapters/mysql.adapter.d.ts +146 -0
  20. package/dist/database/adapters/mysql.adapter.js +1417 -0
  21. package/dist/database/adapters/mysql.adapter.js.map +1 -0
  22. package/dist/database/adapters/postgresql.adapter.d.ts +147 -0
  23. package/dist/database/adapters/postgresql.adapter.js +1472 -0
  24. package/dist/database/adapters/postgresql.adapter.js.map +1 -0
  25. package/dist/database/database.service.d.ts +195 -0
  26. package/dist/database/database.service.js +502 -0
  27. package/dist/database/database.service.js.map +1 -0
  28. package/dist/database/index.d.ts +18 -0
  29. package/dist/database/index.js +98 -0
  30. package/dist/database/index.js.map +1 -0
  31. package/dist/database/types/aggregation.types.d.ts +202 -0
  32. package/dist/database/types/aggregation.types.js +21 -0
  33. package/dist/database/types/aggregation.types.js.map +1 -0
  34. package/dist/database/types/connection.types.d.ts +132 -0
  35. package/dist/database/types/connection.types.js +6 -0
  36. package/dist/database/types/connection.types.js.map +1 -0
  37. package/dist/database/types/database.types.d.ts +174 -0
  38. package/dist/database/types/database.types.js +74 -0
  39. package/dist/database/types/database.types.js.map +1 -0
  40. package/dist/database/types/index.d.ts +12 -0
  41. package/dist/database/types/index.js +37 -0
  42. package/dist/database/types/index.js.map +1 -0
  43. package/dist/database/types/index.types.d.ts +220 -0
  44. package/dist/database/types/index.types.js +27 -0
  45. package/dist/database/types/index.types.js.map +1 -0
  46. package/dist/database/types/migration.types.d.ts +205 -0
  47. package/dist/database/types/migration.types.js +44 -0
  48. package/dist/database/types/migration.types.js.map +1 -0
  49. package/dist/database/types/query.types.d.ts +305 -0
  50. package/dist/database/types/query.types.js +57 -0
  51. package/dist/database/types/query.types.js.map +1 -0
  52. package/dist/database/types/result.types.d.ts +218 -0
  53. package/dist/database/types/result.types.js +6 -0
  54. package/dist/database/types/result.types.js.map +1 -0
  55. package/dist/database/types/schema.types.d.ts +190 -0
  56. package/dist/database/types/schema.types.js +69 -0
  57. package/dist/database/types/schema.types.js.map +1 -0
  58. package/dist/database/utils/helpers.d.ts +66 -0
  59. package/dist/database/utils/helpers.js +501 -0
  60. package/dist/database/utils/helpers.js.map +1 -0
  61. package/dist/database/utils/migration.utils.d.ts +151 -0
  62. package/dist/database/utils/migration.utils.js +476 -0
  63. package/dist/database/utils/migration.utils.js.map +1 -0
  64. package/dist/database/utils/transaction.d.ts +64 -0
  65. package/dist/database/utils/transaction.js +130 -0
  66. package/dist/database/utils/transaction.js.map +1 -0
  67. package/dist/database/validators/connection.validator.d.ts +20 -0
  68. package/dist/database/validators/connection.validator.js +267 -0
  69. package/dist/database/validators/connection.validator.js.map +1 -0
  70. package/dist/database/validators/query.validator.d.ts +31 -0
  71. package/dist/database/validators/query.validator.js +305 -0
  72. package/dist/database/validators/query.validator.js.map +1 -0
  73. package/dist/database/validators/schema.validator.d.ts +31 -0
  74. package/dist/database/validators/schema.validator.js +334 -0
  75. package/dist/database/validators/schema.validator.js.map +1 -0
  76. package/dist/index.d.ts +194 -146
  77. package/dist/index.js +232 -173
  78. package/dist/index.js.map +1 -1
  79. package/dist/processor/services/processor.service.js +61 -43
  80. package/dist/processor/services/processor.service.js.map +1 -1
  81. package/dist/test/test.processor.js +1 -3
  82. package/dist/test/test.processor.js.map +1 -1
  83. package/dist/types/appBuilder.types.d.ts +1 -1
  84. package/dist/types/processor.types.d.ts +2 -2
  85. package/package.json +3 -1
@@ -0,0 +1,502 @@
1
+ "use strict";
2
+ /**
3
+ * Main Database Service
4
+ * Entry point for all database operations
5
+ */
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.DatabaseService = void 0;
11
+ const database_types_1 = require("./types/database.types");
12
+ const postgresql_adapter_1 = require("./adapters/postgresql.adapter");
13
+ const mongodb_adapter_1 = require("./adapters/mongodb.adapter");
14
+ const mysql_adapter_1 = require("./adapters/mysql.adapter");
15
+ const dynamodb_adapter_1 = require("./adapters/dynamodb.adapter");
16
+ const products_service_1 = __importDefault(require("../products/services/products.service"));
17
+ const index_types_1 = require("../types/index.types");
18
+ /**
19
+ * Main Database Service Class
20
+ */
21
+ class DatabaseService {
22
+ constructor(config) {
23
+ this.connections = new Map();
24
+ this.adapters = new Map();
25
+ this.activeConnection = null;
26
+ this.config = config;
27
+ this.environment = config.env_type || index_types_1.EnvType.PRODUCTION;
28
+ this.initializeAdapters();
29
+ }
30
+ /**
31
+ * Initialize database adapters
32
+ */
33
+ initializeAdapters() {
34
+ // Register PostgreSQL adapter
35
+ this.adapters.set(database_types_1.DatabaseType.POSTGRESQL, new postgresql_adapter_1.PostgreSQLAdapter());
36
+ // Register MongoDB adapter
37
+ this.adapters.set(database_types_1.DatabaseType.MONGODB, new mongodb_adapter_1.MongoDBAdapter());
38
+ // Register MySQL adapter
39
+ this.adapters.set(database_types_1.DatabaseType.MYSQL, new mysql_adapter_1.MySQLAdapter());
40
+ // Register DynamoDB adapter
41
+ this.adapters.set(database_types_1.DatabaseType.DYNAMODB, new dynamodb_adapter_1.DynamoDBAdapter());
42
+ }
43
+ /**
44
+ * Get adapter for database type
45
+ */
46
+ getAdapter(type) {
47
+ const adapter = this.adapters.get(type);
48
+ if (!adapter) {
49
+ throw new database_types_1.DatabaseError(database_types_1.DatabaseErrorType.CONNECTION_ERROR, `No adapter registered for database type: ${type}`);
50
+ }
51
+ return adapter;
52
+ }
53
+ /**
54
+ * Resolve connection configuration from product database
55
+ */
56
+ async resolveProductConnection(config) {
57
+ var _a;
58
+ try {
59
+ // Create ProductBuilder instance
60
+ const productBuilder = new products_service_1.default({
61
+ workspace_id: this.config.workspace_id,
62
+ user_id: this.config.user_id,
63
+ public_key: this.config.public_key,
64
+ token: this.config.token,
65
+ env_type: this.environment,
66
+ });
67
+ // Initialize the product by tag
68
+ await productBuilder.initializeProductByTag(config.product);
69
+ // Fetch the database configuration
70
+ const database = await productBuilder.fetchDatabase(config.database);
71
+ if (!database) {
72
+ throw new database_types_1.DatabaseError(database_types_1.DatabaseErrorType.CONNECTION_ERROR, `Database '${config.database}' not found in product '${config.product}'`);
73
+ }
74
+ // Find the environment configuration
75
+ const envConfig = (_a = database.envs) === null || _a === void 0 ? void 0 : _a.find((env) => env.slug === config.env);
76
+ if (!envConfig) {
77
+ throw new database_types_1.DatabaseError(database_types_1.DatabaseErrorType.CONNECTION_ERROR, `Environment '${config.env}' not found for database '${config.database}'`);
78
+ }
79
+ if (!envConfig.connection_url) {
80
+ throw new database_types_1.DatabaseError(database_types_1.DatabaseErrorType.CONNECTION_ERROR, `No connection URL configured for database '${config.database}' in environment '${config.env}'`);
81
+ }
82
+ // Parse the connection URL to create a database config
83
+ const dbConfig = this.parseConnectionUrl(envConfig.connection_url, database.type, config.env, config.database);
84
+ // Get the adapter for the database type
85
+ const adapter = this.getAdapter(dbConfig.type);
86
+ // Create connection using the parsed config
87
+ const connectionKey = `${config.product}-${config.database}-${config.env}`;
88
+ let connection = this.connections.get(connectionKey);
89
+ if (connection && connection.isConnected()) {
90
+ return { connection, adapter };
91
+ }
92
+ connection = await adapter.connect(dbConfig);
93
+ this.connections.set(connectionKey, connection);
94
+ return { connection, adapter };
95
+ }
96
+ catch (error) {
97
+ if (error instanceof database_types_1.DatabaseError) {
98
+ throw error;
99
+ }
100
+ throw new database_types_1.DatabaseError(database_types_1.DatabaseErrorType.CONNECTION_ERROR, `Failed to resolve product connection: ${error.message}`);
101
+ }
102
+ }
103
+ /**
104
+ * Parse connection URL into database config
105
+ */
106
+ parseConnectionUrl(connectionUrl, dbType, env, databaseName) {
107
+ try {
108
+ // Map product database types to DatabaseType enum
109
+ const typeMapping = {
110
+ postgresql: database_types_1.DatabaseType.POSTGRESQL,
111
+ postgres: database_types_1.DatabaseType.POSTGRESQL,
112
+ mysql: database_types_1.DatabaseType.MYSQL,
113
+ mongodb: database_types_1.DatabaseType.MONGODB,
114
+ mongo: database_types_1.DatabaseType.MONGODB,
115
+ dynamodb: database_types_1.DatabaseType.DYNAMODB,
116
+ };
117
+ const mappedType = typeMapping[dbType.toLowerCase()];
118
+ if (!mappedType) {
119
+ throw new Error(`Unsupported database type: ${dbType}`);
120
+ }
121
+ // Parse the connection URL based on database type
122
+ if (mappedType === database_types_1.DatabaseType.MONGODB) {
123
+ // MongoDB connection string format: mongodb://[username:password@]host[:port][/database][?options]
124
+ return {
125
+ type: database_types_1.DatabaseType.MONGODB,
126
+ env,
127
+ database: databaseName,
128
+ options: {
129
+ connectionString: connectionUrl,
130
+ uri: connectionUrl,
131
+ },
132
+ };
133
+ }
134
+ else if (mappedType === database_types_1.DatabaseType.DYNAMODB) {
135
+ // DynamoDB uses region/credentials rather than connection URL
136
+ // Connection URL format: dynamodb://region?accessKeyId=xxx&secretAccessKey=xxx
137
+ const url = new URL(connectionUrl);
138
+ const region = url.hostname;
139
+ const accessKeyId = url.searchParams.get('accessKeyId') || undefined;
140
+ const secretAccessKey = url.searchParams.get('secretAccessKey') || undefined;
141
+ const sessionToken = url.searchParams.get('sessionToken') || undefined;
142
+ return {
143
+ type: database_types_1.DatabaseType.DYNAMODB,
144
+ env,
145
+ database: databaseName,
146
+ options: {
147
+ region,
148
+ accessKeyId,
149
+ secretAccessKey,
150
+ sessionToken,
151
+ },
152
+ };
153
+ }
154
+ else {
155
+ // PostgreSQL/MySQL connection string format: protocol://[user:password@]host[:port]/database[?options]
156
+ const url = new URL(connectionUrl);
157
+ const urlOptions = this.parseUrlOptions(url.searchParams);
158
+ return {
159
+ type: mappedType,
160
+ env,
161
+ database: url.pathname.slice(1) || databaseName,
162
+ options: Object.assign({ host: url.hostname, port: url.port ? parseInt(url.port) : mappedType === database_types_1.DatabaseType.POSTGRESQL ? 5432 : 3306, user: url.username || undefined, username: url.username || undefined, password: url.password || undefined }, urlOptions),
163
+ };
164
+ }
165
+ }
166
+ catch (error) {
167
+ throw new database_types_1.DatabaseError(database_types_1.DatabaseErrorType.CONNECTION_ERROR, `Failed to parse connection URL: ${error.message}`);
168
+ }
169
+ }
170
+ /**
171
+ * Parse URL search parameters into options object
172
+ */
173
+ parseUrlOptions(params) {
174
+ const options = {};
175
+ params.forEach((value, key) => {
176
+ // Try to parse as number or boolean
177
+ if (value === 'true') {
178
+ options[key] = true;
179
+ }
180
+ else if (value === 'false') {
181
+ options[key] = false;
182
+ }
183
+ else if (!isNaN(Number(value))) {
184
+ options[key] = Number(value);
185
+ }
186
+ else {
187
+ options[key] = value;
188
+ }
189
+ });
190
+ return options;
191
+ }
192
+ /**
193
+ * Resolve connection config using active connection context
194
+ */
195
+ resolveConnectionConfig(options) {
196
+ // If all parameters are provided, use them
197
+ if (options.env && options.product && options.database) {
198
+ return {
199
+ env: options.env,
200
+ product: options.product,
201
+ database: options.database,
202
+ };
203
+ }
204
+ // If no active connection, throw error
205
+ if (!this.activeConnection) {
206
+ throw new database_types_1.DatabaseError(database_types_1.DatabaseErrorType.CONNECTION_ERROR, 'No active connection. Call connect() first or provide env, product, and database parameters.');
207
+ }
208
+ // Use active connection with any overrides
209
+ return {
210
+ env: options.env || this.activeConnection.env,
211
+ product: options.product || this.activeConnection.product,
212
+ database: options.database || this.activeConnection.database,
213
+ };
214
+ }
215
+ /**
216
+ * Get or create a connection
217
+ */
218
+ async getConnection(config) {
219
+ // Check if it's a product-based connection
220
+ if ('product' in config) {
221
+ return this.resolveProductConnection(config);
222
+ }
223
+ // Direct connection configuration
224
+ const adapter = this.getAdapter(config.type);
225
+ const connectionKey = `${config.type}-${config.env}-${config.database}`;
226
+ // Check if connection already exists
227
+ let connection = this.connections.get(connectionKey);
228
+ if (connection && connection.isConnected()) {
229
+ return { connection, adapter };
230
+ }
231
+ // Create new connection
232
+ connection = await adapter.connect(config);
233
+ this.connections.set(connectionKey, connection);
234
+ return { connection, adapter };
235
+ }
236
+ // ==================== Connection Methods ====================
237
+ /**
238
+ * Connect to a database
239
+ */
240
+ async connect(config) {
241
+ const { connection, adapter } = await this.getConnection(config);
242
+ // Store the active connection context
243
+ this.activeConnection = config;
244
+ return adapter.testConnection(connection);
245
+ }
246
+ /**
247
+ * Disconnect from a database
248
+ */
249
+ async disconnect(config) {
250
+ // TODO: Find and close the connection
251
+ throw new Error('Not implemented');
252
+ }
253
+ /**
254
+ * Test database connection
255
+ */
256
+ async testConnection(config) {
257
+ const { connection, adapter } = await this.getConnection(config);
258
+ return adapter.testConnection(connection);
259
+ }
260
+ // ==================== Transaction Methods ====================
261
+ /**
262
+ * Begin a new transaction
263
+ */
264
+ async beginTransaction(config, options) {
265
+ const { connection, adapter } = await this.getConnection(config);
266
+ return adapter.beginTransaction(connection, options);
267
+ }
268
+ /**
269
+ * Execute operations within a transaction (callback-based)
270
+ */
271
+ async transaction(config, callback) {
272
+ const { connection, adapter } = await this.getConnection(config);
273
+ return adapter.executeTransaction(connection, callback, config);
274
+ }
275
+ // ==================== Query Methods ====================
276
+ /**
277
+ * Execute a SELECT query
278
+ */
279
+ async query(options) {
280
+ const config = this.resolveConnectionConfig(options);
281
+ const { connection, adapter } = await this.getConnection(config);
282
+ return adapter.query(connection, options);
283
+ }
284
+ /**
285
+ * Insert records
286
+ */
287
+ async insert(options) {
288
+ const config = this.resolveConnectionConfig(options);
289
+ const { connection, adapter } = await this.getConnection(config);
290
+ return adapter.insert(connection, options);
291
+ }
292
+ /**
293
+ * Update records
294
+ */
295
+ async update(options) {
296
+ const config = this.resolveConnectionConfig(options);
297
+ const { connection, adapter } = await this.getConnection(config);
298
+ return adapter.update(connection, options);
299
+ }
300
+ /**
301
+ * Delete records
302
+ */
303
+ async delete(options) {
304
+ const config = this.resolveConnectionConfig(options);
305
+ const { connection, adapter } = await this.getConnection(config);
306
+ return adapter.delete(connection, options);
307
+ }
308
+ /**
309
+ * Upsert records
310
+ */
311
+ async upsert(options) {
312
+ const config = this.resolveConnectionConfig(options);
313
+ const { connection, adapter } = await this.getConnection(config);
314
+ return adapter.upsert(connection, options);
315
+ }
316
+ /**
317
+ * Execute raw SQL/query
318
+ */
319
+ async raw(options) {
320
+ const config = this.resolveConnectionConfig(options);
321
+ const { connection, adapter } = await this.getConnection(config);
322
+ return adapter.executeRaw(connection, options);
323
+ }
324
+ // ==================== Aggregation Methods ====================
325
+ /**
326
+ * Count records
327
+ */
328
+ async count(options) {
329
+ const config = this.resolveConnectionConfig(options);
330
+ const { connection, adapter } = await this.getConnection(config);
331
+ return adapter.count(connection, options);
332
+ }
333
+ /**
334
+ * Sum column values
335
+ */
336
+ async sum(options) {
337
+ const config = this.resolveConnectionConfig(options);
338
+ const { connection, adapter } = await this.getConnection(config);
339
+ return adapter.sum(connection, options);
340
+ }
341
+ /**
342
+ * Get average value
343
+ */
344
+ async avg(options) {
345
+ const config = this.resolveConnectionConfig(options);
346
+ const { connection, adapter } = await this.getConnection(config);
347
+ return adapter.avg(connection, options);
348
+ }
349
+ /**
350
+ * Get minimum value
351
+ */
352
+ async min(options) {
353
+ const config = this.resolveConnectionConfig(options);
354
+ const { connection, adapter } = await this.getConnection(config);
355
+ return adapter.min(connection, options);
356
+ }
357
+ /**
358
+ * Get maximum value
359
+ */
360
+ async max(options) {
361
+ const config = this.resolveConnectionConfig(options);
362
+ const { connection, adapter } = await this.getConnection(config);
363
+ return adapter.max(connection, options);
364
+ }
365
+ /**
366
+ * Group by and aggregate
367
+ */
368
+ async groupBy(options) {
369
+ const config = this.resolveConnectionConfig(options);
370
+ const { connection, adapter } = await this.getConnection(config);
371
+ return adapter.groupBy(connection, options);
372
+ }
373
+ /**
374
+ * Multiple aggregations
375
+ */
376
+ async aggregate(options) {
377
+ const config = this.resolveConnectionConfig(options);
378
+ const { connection, adapter } = await this.getConnection(config);
379
+ return adapter.aggregate(connection, options);
380
+ }
381
+ // ==================== Schema Methods ====================
382
+ /**
383
+ * Create a table
384
+ */
385
+ async createTable(config, schema, options) {
386
+ const { connection, adapter } = await this.getConnection(config);
387
+ return adapter.createTable(connection, schema, options);
388
+ }
389
+ /**
390
+ * Drop a table
391
+ */
392
+ async dropTable(config, tableName) {
393
+ const { connection, adapter } = await this.getConnection(config);
394
+ return adapter.dropTable(connection, tableName);
395
+ }
396
+ /**
397
+ * Alter a table
398
+ */
399
+ async alterTable(config, tableName, alterations, options) {
400
+ const { connection, adapter } = await this.getConnection(config);
401
+ return adapter.alterTable(connection, tableName, alterations, options);
402
+ }
403
+ /**
404
+ * Get table schema
405
+ */
406
+ async getTableSchema(config, tableName) {
407
+ const { connection, adapter } = await this.getConnection(config);
408
+ return adapter.getTableSchema(connection, tableName);
409
+ }
410
+ /**
411
+ * List all tables
412
+ */
413
+ async listTables(config) {
414
+ const { connection, adapter } = await this.getConnection(config);
415
+ return adapter.listTables(connection);
416
+ }
417
+ /**
418
+ * Check if table exists
419
+ */
420
+ async tableExists(config, tableName) {
421
+ const { connection, adapter } = await this.getConnection(config);
422
+ return adapter.tableExists(connection, tableName);
423
+ }
424
+ // ==================== Index Methods ====================
425
+ /**
426
+ * Create an index
427
+ */
428
+ async createIndex(options) {
429
+ const config = this.resolveConnectionConfig(options);
430
+ const { connection, adapter } = await this.getConnection(config);
431
+ return adapter.createIndex(connection, options);
432
+ }
433
+ /**
434
+ * Drop an index
435
+ */
436
+ async dropIndex(options) {
437
+ const config = this.resolveConnectionConfig(options);
438
+ const { connection, adapter } = await this.getConnection(config);
439
+ return adapter.dropIndex(connection, options);
440
+ }
441
+ /**
442
+ * List indexes
443
+ */
444
+ async listIndexes(options) {
445
+ const config = this.resolveConnectionConfig(options);
446
+ const { connection, adapter } = await this.getConnection(config);
447
+ return adapter.listIndexes(connection, options);
448
+ }
449
+ /**
450
+ * Get index statistics
451
+ */
452
+ async getIndexStatistics(config, tableName, indexName) {
453
+ const { connection, adapter } = await this.getConnection(config);
454
+ return adapter.getIndexStatistics(connection, tableName, indexName);
455
+ }
456
+ // ==================== Migration Methods ====================
457
+ /**
458
+ * Run migrations
459
+ */
460
+ async runMigration(migration, options) {
461
+ const config = this.resolveConnectionConfig(options);
462
+ const { connection, adapter } = await this.getConnection(config);
463
+ return adapter.runMigration(connection, migration, options);
464
+ }
465
+ /**
466
+ * Rollback migration
467
+ */
468
+ async rollbackMigration(migration, options) {
469
+ const config = this.resolveConnectionConfig(options);
470
+ const { connection, adapter } = await this.getConnection(config);
471
+ return adapter.rollbackMigration(connection, migration, options);
472
+ }
473
+ /**
474
+ * Get migration history
475
+ */
476
+ async getMigrationHistory(options) {
477
+ const config = this.resolveConnectionConfig(options);
478
+ const { connection, adapter } = await this.getConnection(config);
479
+ return adapter.getMigrationHistory(connection, options);
480
+ }
481
+ /**
482
+ * Get migration status
483
+ */
484
+ async getMigrationStatus(options) {
485
+ // TODO: Implement migration status logic
486
+ // - Fetch all defined migrations
487
+ // - Fetch migration history
488
+ // - Compare and return status
489
+ throw new Error('Not implemented');
490
+ }
491
+ // ==================== Utility Methods ====================
492
+ /**
493
+ * Close all connections
494
+ */
495
+ async closeAll() {
496
+ const closePromises = Array.from(this.connections.values()).map((connection) => connection.disconnect());
497
+ await Promise.all(closePromises);
498
+ this.connections.clear();
499
+ }
500
+ }
501
+ exports.DatabaseService = DatabaseService;
502
+ //# sourceMappingURL=database.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.service.js","sourceRoot":"","sources":["../../src/database/database.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Database module index
3
+ * Exports the main database service and all types
4
+ */
5
+ export { DatabaseService } from './database.service';
6
+ export * from './types';
7
+ export { BaseDatabaseAdapter } from './adapters/base.adapter';
8
+ export { PostgreSQLAdapter } from './adapters/postgresql.adapter';
9
+ export { MongoDBAdapter } from './adapters/mongodb.adapter';
10
+ export { MySQLAdapter } from './adapters/mysql.adapter';
11
+ export { DynamoDBAdapter } from './adapters/dynamodb.adapter';
12
+ export { Transaction, Savepoint, TransactionFactory } from './utils/transaction';
13
+ export { generateMigrationTag, generateMigrationTimestamp, createMigration, createTable, dropTable, addColumn, dropColumn, modifyColumn, renameColumn, addIndex, dropIndex, addConstraint, dropConstraint, rawSql, createTableMigration, addColumnMigration, addIndexMigration, SchemaHelpers, generateMigrationFileContent, generateMigrationTemplate, } from './utils/migration.utils';
14
+ export { mapColumnTypeToNative, buildWhereClause, buildMongoQuery, escapeIdentifier, escapeValue, formatDatabaseError, isConnectionError, isDuplicateKeyError, isForeignKeyError, retryOperation, sanitizeTableName, camelToSnake, snakeToCamel, deepClone, } from './utils/helpers';
15
+ export { validateConnection, assertValidConnection } from './validators/connection.validator';
16
+ export type { IValidationResult } from './validators/connection.validator';
17
+ export { validateTableSchema, validateColumnDefinition, validateIndexDefinition, assertValidTableSchema, assertValidColumn, assertValidIndex, } from './validators/schema.validator';
18
+ export { validateQueryOptions, validateInsertData, validateUpdateData, assertValidQueryOptions, assertValidInsertData, assertValidUpdateData, } from './validators/query.validator';
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ /**
3
+ * Database module index
4
+ * Exports the main database service and all types
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
18
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
19
+ };
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.assertValidColumn = exports.assertValidTableSchema = exports.validateIndexDefinition = exports.validateColumnDefinition = exports.validateTableSchema = exports.assertValidConnection = exports.validateConnection = exports.deepClone = exports.snakeToCamel = exports.camelToSnake = exports.sanitizeTableName = exports.retryOperation = exports.isForeignKeyError = exports.isDuplicateKeyError = exports.isConnectionError = exports.formatDatabaseError = exports.escapeValue = exports.escapeIdentifier = exports.buildMongoQuery = exports.buildWhereClause = exports.mapColumnTypeToNative = exports.generateMigrationTemplate = exports.generateMigrationFileContent = exports.SchemaHelpers = exports.addIndexMigration = exports.addColumnMigration = exports.createTableMigration = exports.rawSql = exports.dropConstraint = exports.addConstraint = exports.dropIndex = exports.addIndex = exports.renameColumn = exports.modifyColumn = exports.dropColumn = exports.addColumn = exports.dropTable = exports.createTable = exports.createMigration = exports.generateMigrationTimestamp = exports.generateMigrationTag = exports.TransactionFactory = exports.Savepoint = exports.Transaction = exports.DynamoDBAdapter = exports.MySQLAdapter = exports.MongoDBAdapter = exports.PostgreSQLAdapter = exports.BaseDatabaseAdapter = exports.DatabaseService = void 0;
22
+ exports.assertValidUpdateData = exports.assertValidInsertData = exports.assertValidQueryOptions = exports.validateUpdateData = exports.validateInsertData = exports.validateQueryOptions = exports.assertValidIndex = void 0;
23
+ // Export main service
24
+ var database_service_1 = require("./database.service");
25
+ Object.defineProperty(exports, "DatabaseService", { enumerable: true, get: function () { return database_service_1.DatabaseService; } });
26
+ // Export all types
27
+ __exportStar(require("./types"), exports);
28
+ // Export adapters (for advanced usage)
29
+ var base_adapter_1 = require("./adapters/base.adapter");
30
+ Object.defineProperty(exports, "BaseDatabaseAdapter", { enumerable: true, get: function () { return base_adapter_1.BaseDatabaseAdapter; } });
31
+ var postgresql_adapter_1 = require("./adapters/postgresql.adapter");
32
+ Object.defineProperty(exports, "PostgreSQLAdapter", { enumerable: true, get: function () { return postgresql_adapter_1.PostgreSQLAdapter; } });
33
+ var mongodb_adapter_1 = require("./adapters/mongodb.adapter");
34
+ Object.defineProperty(exports, "MongoDBAdapter", { enumerable: true, get: function () { return mongodb_adapter_1.MongoDBAdapter; } });
35
+ var mysql_adapter_1 = require("./adapters/mysql.adapter");
36
+ Object.defineProperty(exports, "MySQLAdapter", { enumerable: true, get: function () { return mysql_adapter_1.MySQLAdapter; } });
37
+ var dynamodb_adapter_1 = require("./adapters/dynamodb.adapter");
38
+ Object.defineProperty(exports, "DynamoDBAdapter", { enumerable: true, get: function () { return dynamodb_adapter_1.DynamoDBAdapter; } });
39
+ // Export utilities
40
+ var transaction_1 = require("./utils/transaction");
41
+ Object.defineProperty(exports, "Transaction", { enumerable: true, get: function () { return transaction_1.Transaction; } });
42
+ Object.defineProperty(exports, "Savepoint", { enumerable: true, get: function () { return transaction_1.Savepoint; } });
43
+ Object.defineProperty(exports, "TransactionFactory", { enumerable: true, get: function () { return transaction_1.TransactionFactory; } });
44
+ var migration_utils_1 = require("./utils/migration.utils");
45
+ Object.defineProperty(exports, "generateMigrationTag", { enumerable: true, get: function () { return migration_utils_1.generateMigrationTag; } });
46
+ Object.defineProperty(exports, "generateMigrationTimestamp", { enumerable: true, get: function () { return migration_utils_1.generateMigrationTimestamp; } });
47
+ Object.defineProperty(exports, "createMigration", { enumerable: true, get: function () { return migration_utils_1.createMigration; } });
48
+ Object.defineProperty(exports, "createTable", { enumerable: true, get: function () { return migration_utils_1.createTable; } });
49
+ Object.defineProperty(exports, "dropTable", { enumerable: true, get: function () { return migration_utils_1.dropTable; } });
50
+ Object.defineProperty(exports, "addColumn", { enumerable: true, get: function () { return migration_utils_1.addColumn; } });
51
+ Object.defineProperty(exports, "dropColumn", { enumerable: true, get: function () { return migration_utils_1.dropColumn; } });
52
+ Object.defineProperty(exports, "modifyColumn", { enumerable: true, get: function () { return migration_utils_1.modifyColumn; } });
53
+ Object.defineProperty(exports, "renameColumn", { enumerable: true, get: function () { return migration_utils_1.renameColumn; } });
54
+ Object.defineProperty(exports, "addIndex", { enumerable: true, get: function () { return migration_utils_1.addIndex; } });
55
+ Object.defineProperty(exports, "dropIndex", { enumerable: true, get: function () { return migration_utils_1.dropIndex; } });
56
+ Object.defineProperty(exports, "addConstraint", { enumerable: true, get: function () { return migration_utils_1.addConstraint; } });
57
+ Object.defineProperty(exports, "dropConstraint", { enumerable: true, get: function () { return migration_utils_1.dropConstraint; } });
58
+ Object.defineProperty(exports, "rawSql", { enumerable: true, get: function () { return migration_utils_1.rawSql; } });
59
+ Object.defineProperty(exports, "createTableMigration", { enumerable: true, get: function () { return migration_utils_1.createTableMigration; } });
60
+ Object.defineProperty(exports, "addColumnMigration", { enumerable: true, get: function () { return migration_utils_1.addColumnMigration; } });
61
+ Object.defineProperty(exports, "addIndexMigration", { enumerable: true, get: function () { return migration_utils_1.addIndexMigration; } });
62
+ Object.defineProperty(exports, "SchemaHelpers", { enumerable: true, get: function () { return migration_utils_1.SchemaHelpers; } });
63
+ Object.defineProperty(exports, "generateMigrationFileContent", { enumerable: true, get: function () { return migration_utils_1.generateMigrationFileContent; } });
64
+ Object.defineProperty(exports, "generateMigrationTemplate", { enumerable: true, get: function () { return migration_utils_1.generateMigrationTemplate; } });
65
+ var helpers_1 = require("./utils/helpers");
66
+ Object.defineProperty(exports, "mapColumnTypeToNative", { enumerable: true, get: function () { return helpers_1.mapColumnTypeToNative; } });
67
+ Object.defineProperty(exports, "buildWhereClause", { enumerable: true, get: function () { return helpers_1.buildWhereClause; } });
68
+ Object.defineProperty(exports, "buildMongoQuery", { enumerable: true, get: function () { return helpers_1.buildMongoQuery; } });
69
+ Object.defineProperty(exports, "escapeIdentifier", { enumerable: true, get: function () { return helpers_1.escapeIdentifier; } });
70
+ Object.defineProperty(exports, "escapeValue", { enumerable: true, get: function () { return helpers_1.escapeValue; } });
71
+ Object.defineProperty(exports, "formatDatabaseError", { enumerable: true, get: function () { return helpers_1.formatDatabaseError; } });
72
+ Object.defineProperty(exports, "isConnectionError", { enumerable: true, get: function () { return helpers_1.isConnectionError; } });
73
+ Object.defineProperty(exports, "isDuplicateKeyError", { enumerable: true, get: function () { return helpers_1.isDuplicateKeyError; } });
74
+ Object.defineProperty(exports, "isForeignKeyError", { enumerable: true, get: function () { return helpers_1.isForeignKeyError; } });
75
+ Object.defineProperty(exports, "retryOperation", { enumerable: true, get: function () { return helpers_1.retryOperation; } });
76
+ Object.defineProperty(exports, "sanitizeTableName", { enumerable: true, get: function () { return helpers_1.sanitizeTableName; } });
77
+ Object.defineProperty(exports, "camelToSnake", { enumerable: true, get: function () { return helpers_1.camelToSnake; } });
78
+ Object.defineProperty(exports, "snakeToCamel", { enumerable: true, get: function () { return helpers_1.snakeToCamel; } });
79
+ Object.defineProperty(exports, "deepClone", { enumerable: true, get: function () { return helpers_1.deepClone; } });
80
+ // Export validators
81
+ var connection_validator_1 = require("./validators/connection.validator");
82
+ Object.defineProperty(exports, "validateConnection", { enumerable: true, get: function () { return connection_validator_1.validateConnection; } });
83
+ Object.defineProperty(exports, "assertValidConnection", { enumerable: true, get: function () { return connection_validator_1.assertValidConnection; } });
84
+ var schema_validator_1 = require("./validators/schema.validator");
85
+ Object.defineProperty(exports, "validateTableSchema", { enumerable: true, get: function () { return schema_validator_1.validateTableSchema; } });
86
+ Object.defineProperty(exports, "validateColumnDefinition", { enumerable: true, get: function () { return schema_validator_1.validateColumnDefinition; } });
87
+ Object.defineProperty(exports, "validateIndexDefinition", { enumerable: true, get: function () { return schema_validator_1.validateIndexDefinition; } });
88
+ Object.defineProperty(exports, "assertValidTableSchema", { enumerable: true, get: function () { return schema_validator_1.assertValidTableSchema; } });
89
+ Object.defineProperty(exports, "assertValidColumn", { enumerable: true, get: function () { return schema_validator_1.assertValidColumn; } });
90
+ Object.defineProperty(exports, "assertValidIndex", { enumerable: true, get: function () { return schema_validator_1.assertValidIndex; } });
91
+ var query_validator_1 = require("./validators/query.validator");
92
+ Object.defineProperty(exports, "validateQueryOptions", { enumerable: true, get: function () { return query_validator_1.validateQueryOptions; } });
93
+ Object.defineProperty(exports, "validateInsertData", { enumerable: true, get: function () { return query_validator_1.validateInsertData; } });
94
+ Object.defineProperty(exports, "validateUpdateData", { enumerable: true, get: function () { return query_validator_1.validateUpdateData; } });
95
+ Object.defineProperty(exports, "assertValidQueryOptions", { enumerable: true, get: function () { return query_validator_1.assertValidQueryOptions; } });
96
+ Object.defineProperty(exports, "assertValidInsertData", { enumerable: true, get: function () { return query_validator_1.assertValidInsertData; } });
97
+ Object.defineProperty(exports, "assertValidUpdateData", { enumerable: true, get: function () { return query_validator_1.assertValidUpdateData; } });
98
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/database/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;AAEH,sBAAsB;AACtB,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AAExB,mBAAmB;AACnB,0CAAwB;AAExB,uCAAuC;AACvC,wDAA8D;AAArD,mHAAA,mBAAmB,OAAA;AAC5B,oEAAkE;AAAzD,uHAAA,iBAAiB,OAAA;AAC1B,8DAA4D;AAAnD,iHAAA,cAAc,OAAA;AACvB,0DAAwD;AAA/C,6GAAA,YAAY,OAAA;AACrB,gEAA8D;AAArD,mHAAA,eAAe,OAAA;AAExB,mBAAmB;AACnB,mDAAiF;AAAxE,0GAAA,WAAW,OAAA;AAAE,wGAAA,SAAS,OAAA;AAAE,iHAAA,kBAAkB,OAAA;AACnD,2DAqBiC;AApB/B,uHAAA,oBAAoB,OAAA;AACpB,6HAAA,0BAA0B,OAAA;AAC1B,kHAAA,eAAe,OAAA;AACf,8GAAA,WAAW,OAAA;AACX,4GAAA,SAAS,OAAA;AACT,4GAAA,SAAS,OAAA;AACT,6GAAA,UAAU,OAAA;AACV,+GAAA,YAAY,OAAA;AACZ,+GAAA,YAAY,OAAA;AACZ,2GAAA,QAAQ,OAAA;AACR,4GAAA,SAAS,OAAA;AACT,gHAAA,aAAa,OAAA;AACb,iHAAA,cAAc,OAAA;AACd,yGAAA,MAAM,OAAA;AACN,uHAAA,oBAAoB,OAAA;AACpB,qHAAA,kBAAkB,OAAA;AAClB,oHAAA,iBAAiB,OAAA;AACjB,gHAAA,aAAa,OAAA;AACb,+HAAA,4BAA4B,OAAA;AAC5B,4HAAA,yBAAyB,OAAA;AAE3B,2CAeyB;AAdvB,gHAAA,qBAAqB,OAAA;AACrB,2GAAA,gBAAgB,OAAA;AAChB,0GAAA,eAAe,OAAA;AACf,2GAAA,gBAAgB,OAAA;AAChB,sGAAA,WAAW,OAAA;AACX,8GAAA,mBAAmB,OAAA;AACnB,4GAAA,iBAAiB,OAAA;AACjB,8GAAA,mBAAmB,OAAA;AACnB,4GAAA,iBAAiB,OAAA;AACjB,yGAAA,cAAc,OAAA;AACd,4GAAA,iBAAiB,OAAA;AACjB,uGAAA,YAAY,OAAA;AACZ,uGAAA,YAAY,OAAA;AACZ,oGAAA,SAAS,OAAA;AAGX,oBAAoB;AACpB,0EAA8F;AAArF,0HAAA,kBAAkB,OAAA;AAAE,6HAAA,qBAAqB,OAAA;AAElD,kEAOuC;AANrC,uHAAA,mBAAmB,OAAA;AACnB,4HAAA,wBAAwB,OAAA;AACxB,2HAAA,uBAAuB,OAAA;AACvB,0HAAA,sBAAsB,OAAA;AACtB,qHAAA,iBAAiB,OAAA;AACjB,oHAAA,gBAAgB,OAAA;AAElB,gEAOsC;AANpC,uHAAA,oBAAoB,OAAA;AACpB,qHAAA,kBAAkB,OAAA;AAClB,qHAAA,kBAAkB,OAAA;AAClB,0HAAA,uBAAuB,OAAA;AACvB,wHAAA,qBAAqB,OAAA;AACrB,wHAAA,qBAAqB,OAAA"}