@bhushanpawar/sqldb 1.0.0 → 1.0.2

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 (65) hide show
  1. package/README.md +1403 -93
  2. package/dist/cache/cache-manager.d.ts.map +1 -1
  3. package/dist/cache/cache-manager.js +2 -1
  4. package/dist/cache/cache-manager.js.map +1 -1
  5. package/dist/cli/index.d.ts +3 -0
  6. package/dist/cli/index.d.ts.map +1 -0
  7. package/dist/cli/index.js +225 -0
  8. package/dist/cli/index.js.map +1 -0
  9. package/dist/cli/schema-generator.d.ts +28 -0
  10. package/dist/cli/schema-generator.d.ts.map +1 -0
  11. package/dist/cli/schema-generator.js +159 -0
  12. package/dist/cli/schema-generator.js.map +1 -0
  13. package/dist/client.d.ts +32 -0
  14. package/dist/client.d.ts.map +1 -1
  15. package/dist/client.js +56 -14
  16. package/dist/client.js.map +1 -1
  17. package/dist/connection/mariadb.d.ts +21 -0
  18. package/dist/connection/mariadb.d.ts.map +1 -1
  19. package/dist/connection/mariadb.js +121 -3
  20. package/dist/connection/mariadb.js.map +1 -1
  21. package/dist/db-schema.d.ts +413 -0
  22. package/dist/db-schema.d.ts.map +1 -0
  23. package/dist/db-schema.js +1149 -0
  24. package/dist/db-schema.js.map +1 -0
  25. package/dist/discovery/dependency-graph.d.ts +3 -0
  26. package/dist/discovery/dependency-graph.d.ts.map +1 -1
  27. package/dist/discovery/dependency-graph.js +11 -0
  28. package/dist/discovery/dependency-graph.js.map +1 -1
  29. package/dist/discovery/schema-reader.d.ts +1 -1
  30. package/dist/discovery/schema-reader.d.ts.map +1 -1
  31. package/dist/discovery/schema-reader.js +48 -19
  32. package/dist/discovery/schema-reader.js.map +1 -1
  33. package/dist/index.d.ts +9 -1
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +63 -3
  36. package/dist/index.js.map +1 -1
  37. package/dist/query/operations.d.ts +7 -0
  38. package/dist/query/operations.d.ts.map +1 -1
  39. package/dist/query/operations.js +204 -22
  40. package/dist/query/operations.js.map +1 -1
  41. package/dist/types/client.d.ts +32 -0
  42. package/dist/types/client.d.ts.map +1 -0
  43. package/dist/types/client.js +3 -0
  44. package/dist/types/client.js.map +1 -0
  45. package/dist/types/config.d.ts +3 -0
  46. package/dist/types/config.d.ts.map +1 -1
  47. package/dist/types/config.js +14 -1
  48. package/dist/types/config.js.map +1 -1
  49. package/dist/types/query.d.ts +12 -0
  50. package/dist/types/query.d.ts.map +1 -1
  51. package/dist/types/schema.d.ts +6 -0
  52. package/dist/types/schema.d.ts.map +1 -1
  53. package/dist/types/warming.d.ts +47 -0
  54. package/dist/types/warming.d.ts.map +1 -0
  55. package/dist/types/warming.js +3 -0
  56. package/dist/types/warming.js.map +1 -0
  57. package/dist/warming/auto-warming-manager.d.ts +65 -0
  58. package/dist/warming/auto-warming-manager.d.ts.map +1 -0
  59. package/dist/warming/auto-warming-manager.js +256 -0
  60. package/dist/warming/auto-warming-manager.js.map +1 -0
  61. package/dist/warming/query-stats-tracker.d.ts +53 -0
  62. package/dist/warming/query-stats-tracker.d.ts.map +1 -0
  63. package/dist/warming/query-stats-tracker.js +273 -0
  64. package/dist/warming/query-stats-tracker.js.map +1 -0
  65. package/package.json +4 -1
@@ -18,14 +18,20 @@ class TableOperationsImpl {
18
18
  async findMany(where, options) {
19
19
  const skipCache = options?.skipCache || false;
20
20
  const correlationId = options?.correlationId;
21
- // Build cache key
21
+ const withRelations = options?.withRelations;
22
+ // Build cache key (exclude correlationId, skipCache, and withRelations from key as they don't affect the base query result)
23
+ const { correlationId: _, skipCache: __, withRelations: ___, ...cacheableOptions } = options || {};
22
24
  const cacheKey = this.cacheManager
23
25
  .getKeyBuilder()
24
- .buildKey(this.tableName, 'findMany', { where, options });
26
+ .buildKey(this.tableName, 'findMany', { where, options: cacheableOptions });
25
27
  // Try cache first
26
28
  if (!skipCache && this.cacheManager.isEnabled()) {
27
29
  const cached = await this.cacheManager.get(cacheKey);
28
30
  if (cached !== null) {
31
+ // If withRelations is requested, fetch and attach related data
32
+ if (withRelations) {
33
+ return await this.attachRelations(cached, withRelations, correlationId);
34
+ }
29
35
  return cached;
30
36
  }
31
37
  }
@@ -36,6 +42,10 @@ class TableOperationsImpl {
36
42
  if (!skipCache && this.cacheManager.isEnabled()) {
37
43
  await this.cacheManager.set(cacheKey, results);
38
44
  }
45
+ // If withRelations is requested, fetch and attach related data
46
+ if (withRelations) {
47
+ return await this.attachRelations(results, withRelations, correlationId);
48
+ }
39
49
  return results;
40
50
  }
41
51
  async findById(id, correlationId) {
@@ -84,9 +94,9 @@ class TableOperationsImpl {
84
94
  async insertOne(data, correlationId) {
85
95
  const { sql, params } = this.queryBuilder.buildInsert(this.tableName, data);
86
96
  const result = await this.dbManager.query(sql, params, correlationId);
87
- // Invalidate cache
97
+ // Invalidate cache (non-blocking fire-and-forget)
88
98
  if (this.cacheConfig.invalidateOnWrite) {
89
- await this.invalidationManager.invalidateTable(this.tableName, { cascade: this.cacheConfig.cascadeInvalidation });
99
+ this.invalidationManager.invalidateTable(this.tableName, { cascade: this.cacheConfig.cascadeInvalidation }).catch(err => console.error('[InsertOne] Cache invalidation error:', err));
90
100
  }
91
101
  // Return the inserted record with ID
92
102
  const insertedId = result.insertId;
@@ -98,9 +108,9 @@ class TableOperationsImpl {
98
108
  }
99
109
  const { sql, params } = this.queryBuilder.buildInsertMany(this.tableName, dataArray);
100
110
  const result = await this.dbManager.query(sql, params, correlationId);
101
- // Invalidate cache
111
+ // Invalidate cache (non-blocking fire-and-forget)
102
112
  if (this.cacheConfig.invalidateOnWrite) {
103
- await this.invalidationManager.invalidateTable(this.tableName, { cascade: this.cacheConfig.cascadeInvalidation });
113
+ this.invalidationManager.invalidateTable(this.tableName, { cascade: this.cacheConfig.cascadeInvalidation }).catch(err => console.error('[InsertMany] Cache invalidation error:', err));
104
114
  }
105
115
  // Return inserted records with IDs
106
116
  const firstId = result.insertId;
@@ -112,62 +122,68 @@ class TableOperationsImpl {
112
122
  async updateOne(where, data, correlationId) {
113
123
  const { sql, params } = this.queryBuilder.buildUpdate(this.tableName, where, data);
114
124
  const result = await this.dbManager.query(sql, params, correlationId);
115
- // Invalidate cache
125
+ // Invalidate cache (non-blocking fire-and-forget)
116
126
  if (this.cacheConfig.invalidateOnWrite) {
117
- await this.invalidationManager.invalidateTable(this.tableName, { cascade: this.cacheConfig.cascadeInvalidation });
127
+ this.invalidationManager.invalidateTable(this.tableName, { cascade: this.cacheConfig.cascadeInvalidation }).catch(err => console.error('[UpdateOne] Cache invalidation error:', err));
118
128
  }
119
- // Fetch and return the updated record
129
+ // Return a lightweight object with just the updated fields
130
+ // This avoids a second SELECT query while still providing useful data
120
131
  if (result.affectedRows > 0) {
121
- return await this.findOne(where, { correlationId });
132
+ return data;
122
133
  }
123
134
  return null;
124
135
  }
125
136
  async updateMany(where, data, correlationId) {
126
137
  const { sql, params } = this.queryBuilder.buildUpdate(this.tableName, where, data);
127
138
  const result = await this.dbManager.query(sql, params, correlationId);
128
- // Invalidate cache
139
+ // Invalidate cache (non-blocking fire-and-forget)
129
140
  if (this.cacheConfig.invalidateOnWrite) {
130
- await this.invalidationManager.invalidateTable(this.tableName, { cascade: this.cacheConfig.cascadeInvalidation });
141
+ this.invalidationManager.invalidateTable(this.tableName, { cascade: this.cacheConfig.cascadeInvalidation }).catch(err => console.error('[UpdateMany] Cache invalidation error:', err));
131
142
  }
132
143
  return result.affectedRows || 0;
133
144
  }
134
145
  async updateById(id, data, correlationId) {
146
+ // First fetch the existing record before update
147
+ const existing = await this.findById(id, correlationId);
148
+ if (!existing) {
149
+ return null;
150
+ }
135
151
  const { sql, params } = this.queryBuilder.buildUpdateById(this.tableName, id, data);
136
152
  const result = await this.dbManager.query(sql, params, correlationId);
137
- // Invalidate cache
153
+ // Invalidate cache (non-blocking fire-and-forget)
138
154
  if (this.cacheConfig.invalidateOnWrite) {
139
- await this.invalidationManager.invalidateTable(this.tableName, { cascade: this.cacheConfig.cascadeInvalidation });
155
+ this.invalidationManager.invalidateTable(this.tableName, { cascade: this.cacheConfig.cascadeInvalidation }).catch(err => console.error('[UpdateById] Cache invalidation error:', err));
140
156
  }
141
- // Fetch and return the updated record
157
+ // Return merged record (existing data + updates)
142
158
  if (result.affectedRows > 0) {
143
- return await this.findById(id, correlationId);
159
+ return { ...existing, ...data };
144
160
  }
145
161
  return null;
146
162
  }
147
163
  async deleteOne(where, correlationId) {
148
164
  const { sql, params } = this.queryBuilder.buildDelete(this.tableName, where);
149
165
  const result = await this.dbManager.query(sql, params, correlationId);
150
- // Invalidate cache
166
+ // Invalidate cache (non-blocking fire-and-forget)
151
167
  if (this.cacheConfig.invalidateOnWrite) {
152
- await this.invalidationManager.invalidateTable(this.tableName, { cascade: this.cacheConfig.cascadeInvalidation });
168
+ this.invalidationManager.invalidateTable(this.tableName, { cascade: this.cacheConfig.cascadeInvalidation }).catch(err => console.error('[DeleteOne] Cache invalidation error:', err));
153
169
  }
154
170
  return (result.affectedRows || 0) > 0;
155
171
  }
156
172
  async deleteMany(where, correlationId) {
157
173
  const { sql, params } = this.queryBuilder.buildDelete(this.tableName, where);
158
174
  const result = await this.dbManager.query(sql, params, correlationId);
159
- // Invalidate cache
175
+ // Invalidate cache (non-blocking fire-and-forget)
160
176
  if (this.cacheConfig.invalidateOnWrite) {
161
- await this.invalidationManager.invalidateTable(this.tableName, { cascade: this.cacheConfig.cascadeInvalidation });
177
+ this.invalidationManager.invalidateTable(this.tableName, { cascade: this.cacheConfig.cascadeInvalidation }).catch(err => console.error('[DeleteMany] Cache invalidation error:', err));
162
178
  }
163
179
  return result.affectedRows || 0;
164
180
  }
165
181
  async deleteById(id, correlationId) {
166
182
  const { sql, params } = this.queryBuilder.buildDeleteById(this.tableName, id);
167
183
  const result = await this.dbManager.query(sql, params, correlationId);
168
- // Invalidate cache
184
+ // Invalidate cache (non-blocking fire-and-forget)
169
185
  if (this.cacheConfig.invalidateOnWrite) {
170
- await this.invalidationManager.invalidateTable(this.tableName, { cascade: this.cacheConfig.cascadeInvalidation });
186
+ this.invalidationManager.invalidateTable(this.tableName, { cascade: this.cacheConfig.cascadeInvalidation }).catch(err => console.error('[DeleteById] Cache invalidation error:', err));
171
187
  }
172
188
  return (result.affectedRows || 0) > 0;
173
189
  }
@@ -190,6 +206,111 @@ class TableOperationsImpl {
190
206
  }
191
207
  return result;
192
208
  }
209
+ async attachRelations(records, withRelations, correlationId) {
210
+ if (records.length === 0) {
211
+ return records;
212
+ }
213
+ const dependencyGraph = this.invalidationManager['dependencyGraph'];
214
+ // Parse relation config
215
+ let fetchDependents = false;
216
+ let fetchDependencies = false;
217
+ let dependentsList;
218
+ let dependenciesList;
219
+ if (typeof withRelations === 'boolean') {
220
+ // If true, fetch all relations
221
+ fetchDependents = withRelations;
222
+ fetchDependencies = withRelations;
223
+ }
224
+ else {
225
+ // Parse the config object
226
+ if (withRelations.dependents === true) {
227
+ fetchDependents = true;
228
+ }
229
+ else if (Array.isArray(withRelations.dependents)) {
230
+ fetchDependents = true;
231
+ dependentsList = withRelations.dependents;
232
+ }
233
+ if (withRelations.dependencies === true) {
234
+ fetchDependencies = true;
235
+ }
236
+ else if (Array.isArray(withRelations.dependencies)) {
237
+ fetchDependencies = true;
238
+ dependenciesList = withRelations.dependencies;
239
+ }
240
+ }
241
+ // Clone records to avoid mutating the cached objects
242
+ const enrichedRecords = records.map(r => ({ ...r }));
243
+ // Fetch dependent tables (tables that reference this table)
244
+ if (fetchDependents) {
245
+ const relationshipsToThisTable = dependencyGraph.getRelationshipsTo(this.tableName);
246
+ for (const rel of relationshipsToThisTable) {
247
+ // If specific tables are requested, filter
248
+ if (dependentsList && !dependentsList.includes(rel.fromTable)) {
249
+ continue;
250
+ }
251
+ try {
252
+ const relatedOps = new TableOperationsImpl(rel.fromTable, this.dbManager, this.cacheManager, this.invalidationManager, this.queryBuilder, this.cacheConfig);
253
+ // Group records by their PK value and fetch related data for each
254
+ for (const record of enrichedRecords) {
255
+ const pkValue = record[rel.toColumn];
256
+ if (pkValue !== undefined && pkValue !== null) {
257
+ const whereClause = { [rel.fromColumn]: pkValue };
258
+ const relatedData = await relatedOps.findMany(whereClause, { correlationId, limit: 100 });
259
+ // Attach related data to the record
260
+ record[rel.fromTable] = relatedData;
261
+ }
262
+ }
263
+ }
264
+ catch (error) {
265
+ console.warn(`Failed to fetch dependent table ${rel.fromTable}:`, error);
266
+ }
267
+ }
268
+ }
269
+ // Fetch dependency tables (tables that this table references)
270
+ if (fetchDependencies) {
271
+ const relationshipsFromThisTable = dependencyGraph.getRelationshipsFrom(this.tableName);
272
+ for (const rel of relationshipsFromThisTable) {
273
+ // If specific tables are requested, filter
274
+ if (dependenciesList && !dependenciesList.includes(rel.toTable)) {
275
+ continue;
276
+ }
277
+ try {
278
+ const relatedOps = new TableOperationsImpl(rel.toTable, this.dbManager, this.cacheManager, this.invalidationManager, this.queryBuilder, this.cacheConfig);
279
+ // Collect all unique FK values
280
+ const fkValues = new Set();
281
+ for (const record of enrichedRecords) {
282
+ const fkValue = record[rel.fromColumn];
283
+ if (fkValue !== undefined && fkValue !== null) {
284
+ fkValues.add(fkValue);
285
+ }
286
+ }
287
+ // Fetch all related records in batch
288
+ const relatedDataMap = new Map();
289
+ for (const fkValue of fkValues) {
290
+ const whereClause = { [rel.toColumn]: fkValue };
291
+ const relatedData = await relatedOps.findMany(whereClause, { correlationId, limit: 100 });
292
+ if (relatedData.length > 0) {
293
+ relatedDataMap.set(fkValue, relatedData[0]); // Use first match for 1-to-1 relations
294
+ }
295
+ }
296
+ // Attach related data to records
297
+ for (const record of enrichedRecords) {
298
+ const fkValue = record[rel.fromColumn];
299
+ if (fkValue !== undefined && fkValue !== null) {
300
+ const relatedRecord = relatedDataMap.get(fkValue);
301
+ if (relatedRecord) {
302
+ record[rel.toTable] = relatedRecord;
303
+ }
304
+ }
305
+ }
306
+ }
307
+ catch (error) {
308
+ console.warn(`Failed to fetch dependency table ${rel.toTable}:`, error);
309
+ }
310
+ }
311
+ }
312
+ return enrichedRecords;
313
+ }
193
314
  async invalidateCache() {
194
315
  await this.invalidationManager.invalidateTable(this.tableName, {
195
316
  cascade: false,
@@ -199,6 +320,67 @@ class TableOperationsImpl {
199
320
  // Pre-fetch and cache common queries
200
321
  await this.findMany(where, { correlationId });
201
322
  }
323
+ async warmCacheWithRelations(where, options) {
324
+ const { correlationId, depth = 1, warmDependents = true, warmDependencies = true, } = options || {};
325
+ // Warm cache for current table
326
+ const currentTableData = await this.findMany(where, { correlationId });
327
+ if (depth <= 0) {
328
+ return;
329
+ }
330
+ const dependencyGraph = this.invalidationManager['dependencyGraph'];
331
+ // Warm dependent tables (tables that reference this table with FK)
332
+ if (warmDependents) {
333
+ const relationshipsToThisTable = dependencyGraph.getRelationshipsTo(this.tableName);
334
+ for (const rel of relationshipsToThisTable) {
335
+ try {
336
+ const relatedOps = new TableOperationsImpl(rel.fromTable, this.dbManager, this.cacheManager, this.invalidationManager, this.queryBuilder, this.cacheConfig);
337
+ // Warm general query first
338
+ await relatedOps.findMany({}, { correlationId, limit: 100 });
339
+ // Then warm specific queries for each record in current table
340
+ // This ensures queries like "SELECT * FROM orders WHERE provider_id = ?" will hit cache
341
+ for (const record of currentTableData.slice(0, 10)) { // Limit to first 10 to avoid excessive queries
342
+ const pkValue = record[rel.toColumn];
343
+ if (pkValue !== undefined && pkValue !== null) {
344
+ const whereClause = { [rel.fromColumn]: pkValue };
345
+ await relatedOps.findMany(whereClause, { correlationId, limit: 100 });
346
+ }
347
+ }
348
+ }
349
+ catch (error) {
350
+ // Log but don't throw - warming is best effort
351
+ console.warn(`Failed to warm cache for dependent table ${rel.fromTable}:`, error);
352
+ }
353
+ }
354
+ }
355
+ // Warm dependency tables (tables that this table references with FK)
356
+ if (warmDependencies) {
357
+ const relationshipsFromThisTable = dependencyGraph.getRelationshipsFrom(this.tableName);
358
+ for (const rel of relationshipsFromThisTable) {
359
+ try {
360
+ const relatedOps = new TableOperationsImpl(rel.toTable, this.dbManager, this.cacheManager, this.invalidationManager, this.queryBuilder, this.cacheConfig);
361
+ // Warm general query
362
+ await relatedOps.findMany({}, { correlationId, limit: 100 });
363
+ // Warm specific records that are referenced
364
+ const referencedIds = new Set();
365
+ for (const record of currentTableData) {
366
+ const fkValue = record[rel.fromColumn];
367
+ if (fkValue !== undefined && fkValue !== null) {
368
+ referencedIds.add(fkValue);
369
+ }
370
+ }
371
+ // Warm each referenced record
372
+ for (const refId of Array.from(referencedIds).slice(0, 10)) { // Limit to first 10
373
+ const whereClause = { [rel.toColumn]: refId };
374
+ await relatedOps.findMany(whereClause, { correlationId, limit: 100 });
375
+ }
376
+ }
377
+ catch (error) {
378
+ // Log but don't throw - warming is best effort
379
+ console.warn(`Failed to warm cache for dependency table ${rel.toTable}:`, error);
380
+ }
381
+ }
382
+ }
383
+ }
202
384
  }
203
385
  exports.TableOperationsImpl = TableOperationsImpl;
204
386
  //# sourceMappingURL=operations.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"operations.js","sourceRoot":"","sources":["../../src/query/operations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"operations.js","sourceRoot":"","sources":["../../src/query/operations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import { SmartDBClient } from '../client';
2
+ import { TableOperations } from './query';
3
+ /**
4
+ * Helper type to add dynamic table access to SmartDBClient
5
+ *
6
+ * Usage:
7
+ * ```typescript
8
+ * interface MySchema {
9
+ * users: { id: number; name: string; email: string };
10
+ * orders: { id: number; user_id: number; total: number };
11
+ * products: { id: number; name: string; price: number };
12
+ * }
13
+ *
14
+ * type MyDB = SmartDBWithTables<MySchema>;
15
+ * const db = await createSmartDB(config) as MyDB;
16
+ *
17
+ * // Now you have full type safety:
18
+ * const users = await db.users.findMany(); // users: { id: number; name: string; email: string }[]
19
+ * const order = await db.orders.findById(1); // order: { id: number; user_id: number; total: number } | null
20
+ * ```
21
+ */
22
+ export type SmartDBWithTables<TSchema extends Record<string, any>> = SmartDBClient & {
23
+ [K in keyof TSchema]: TableOperations<TSchema[K]>;
24
+ };
25
+ /**
26
+ * For cases where you don't have a schema defined,
27
+ * you can use this type to get basic dynamic table access
28
+ */
29
+ export type SmartDBWithDynamicTables = SmartDBClient & {
30
+ [tableName: string]: TableOperations<any>;
31
+ };
32
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/types/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,iBAAiB,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,aAAa,GAAG;KAClF,CAAC,IAAI,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;CAClD,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GAAG,aAAa,GAAG;IACrD,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;CAC3C,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/types/client.ts"],"names":[],"mappings":""}
@@ -1,4 +1,5 @@
1
1
  import { RedisOptions } from 'ioredis';
2
+ import { WarmingConfig } from './warming';
2
3
  export interface MariaDBConfig {
3
4
  host: string;
4
5
  port?: number;
@@ -40,8 +41,10 @@ export interface SmartDBConfig {
40
41
  cache?: CacheConfig;
41
42
  discovery?: DiscoveryConfig;
42
43
  logging?: LoggingConfig;
44
+ warming?: WarmingConfig;
43
45
  }
44
46
  export declare const DEFAULT_CACHE_CONFIG: Required<CacheConfig>;
45
47
  export declare const DEFAULT_DISCOVERY_CONFIG: Required<DiscoveryConfig>;
46
48
  export declare const DEFAULT_LOGGING_CONFIG: Required<LoggingConfig>;
49
+ export declare const DEFAULT_WARMING_CONFIG: Required<WarmingConfig>;
47
50
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,eAAe;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IACrD,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;CAC/D;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,aAAa,CAAC;IACvB,KAAK,EAAE,WAAW,CAAC;IACnB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAGD,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,WAAW,CAMtD,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAAC,eAAe,CAM9D,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,aAAa,CAO1D,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,eAAe;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IACrD,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;CAC/D;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,aAAa,CAAC;IACvB,KAAK,EAAE,WAAW,CAAC;IACnB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAGD,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,WAAW,CAMtD,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAAC,eAAe,CAM9D,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,aAAa,CAO1D,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,aAAa,CAY1D,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DEFAULT_LOGGING_CONFIG = exports.DEFAULT_DISCOVERY_CONFIG = exports.DEFAULT_CACHE_CONFIG = void 0;
3
+ exports.DEFAULT_WARMING_CONFIG = exports.DEFAULT_LOGGING_CONFIG = exports.DEFAULT_DISCOVERY_CONFIG = exports.DEFAULT_CACHE_CONFIG = void 0;
4
4
  // Default configurations
5
5
  exports.DEFAULT_CACHE_CONFIG = {
6
6
  enabled: true,
@@ -24,4 +24,17 @@ exports.DEFAULT_LOGGING_CONFIG = {
24
24
  console.log(`[${timestamp}] [${level.toUpperCase()}] ${message}${metaStr}`);
25
25
  },
26
26
  };
27
+ exports.DEFAULT_WARMING_CONFIG = {
28
+ enabled: false,
29
+ intervalMs: 60000, // 1 minute
30
+ topQueriesPerTable: 10,
31
+ minAccessCount: 5,
32
+ maxStatsAge: 3600000, // 1 hour
33
+ useSeperatePool: true,
34
+ warmingPoolSize: 2,
35
+ trackInDatabase: true,
36
+ statsTableName: '__sqldb_query_stats',
37
+ onWarmingComplete: undefined,
38
+ onWarmingError: undefined,
39
+ };
27
40
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":";;;AAmDA,yBAAyB;AACZ,QAAA,oBAAoB,GAA0B;IACzD,OAAO,EAAE,IAAI;IACb,UAAU,EAAE,EAAE,EAAE,aAAa;IAC7B,OAAO,EAAE,KAAK;IACd,iBAAiB,EAAE,IAAI;IACvB,mBAAmB,EAAE,IAAI;CAC1B,CAAC;AAEW,QAAA,wBAAwB,GAA8B;IACjE,YAAY,EAAE,IAAI;IAClB,eAAe,EAAE,CAAC,EAAE,yBAAyB;IAC7C,aAAa,EAAE,EAAE;IACjB,aAAa,EAAE,EAAE;IACjB,aAAa,EAAE,CAAC;CACjB,CAAC;AAEW,QAAA,sBAAsB,GAA4B;IAC7D,KAAK,EAAE,MAAM;IACb,MAAM,EAAE,CAAC,KAAa,EAAE,OAAe,EAAE,IAAU,EAAE,EAAE;QACrD,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,IAAI,SAAS,MAAM,KAAK,CAAC,WAAW,EAAE,KAAK,OAAO,GAAG,OAAO,EAAE,CAAC,CAAC;IAC9E,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":";;;AAqDA,yBAAyB;AACZ,QAAA,oBAAoB,GAA0B;IACzD,OAAO,EAAE,IAAI;IACb,UAAU,EAAE,EAAE,EAAE,aAAa;IAC7B,OAAO,EAAE,KAAK;IACd,iBAAiB,EAAE,IAAI;IACvB,mBAAmB,EAAE,IAAI;CAC1B,CAAC;AAEW,QAAA,wBAAwB,GAA8B;IACjE,YAAY,EAAE,IAAI;IAClB,eAAe,EAAE,CAAC,EAAE,yBAAyB;IAC7C,aAAa,EAAE,EAAE;IACjB,aAAa,EAAE,EAAE;IACjB,aAAa,EAAE,CAAC;CACjB,CAAC;AAEW,QAAA,sBAAsB,GAA4B;IAC7D,KAAK,EAAE,MAAM;IACb,MAAM,EAAE,CAAC,KAAa,EAAE,OAAe,EAAE,IAAU,EAAE,EAAE;QACrD,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,IAAI,SAAS,MAAM,KAAK,CAAC,WAAW,EAAE,KAAK,OAAO,GAAG,OAAO,EAAE,CAAC,CAAC;IAC9E,CAAC;CACF,CAAC;AAEW,QAAA,sBAAsB,GAA4B;IAC7D,OAAO,EAAE,KAAK;IACd,UAAU,EAAE,KAAK,EAAE,WAAW;IAC9B,kBAAkB,EAAE,EAAE;IACtB,cAAc,EAAE,CAAC;IACjB,WAAW,EAAE,OAAO,EAAE,SAAS;IAC/B,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,CAAC;IAClB,eAAe,EAAE,IAAI;IACrB,cAAc,EAAE,qBAAqB;IACrC,iBAAiB,EAAE,SAAgB;IACnC,cAAc,EAAE,SAAgB;CACjC,CAAC"}
@@ -5,6 +5,11 @@ export interface OrderByOption {
5
5
  column: string;
6
6
  direction: 'ASC' | 'DESC';
7
7
  }
8
+ export interface RelationConfig {
9
+ dependents?: boolean | string[];
10
+ dependencies?: boolean | string[];
11
+ depth?: number;
12
+ }
8
13
  export interface FindOptions {
9
14
  limit?: number;
10
15
  offset?: number;
@@ -12,6 +17,7 @@ export interface FindOptions {
12
17
  select?: string[];
13
18
  skipCache?: boolean;
14
19
  correlationId?: string;
20
+ withRelations?: boolean | RelationConfig;
15
21
  }
16
22
  export interface TableOperations<T = any> {
17
23
  findOne(where: WhereClause<T>, options?: FindOptions): Promise<T | null>;
@@ -29,6 +35,12 @@ export interface TableOperations<T = any> {
29
35
  raw<R = any>(sql: string, params?: any[], correlationId?: string): Promise<R>;
30
36
  invalidateCache(): Promise<void>;
31
37
  warmCache(where?: WhereClause<T>, correlationId?: string): Promise<void>;
38
+ warmCacheWithRelations(where?: WhereClause<T>, options?: {
39
+ correlationId?: string;
40
+ depth?: number;
41
+ warmDependents?: boolean;
42
+ warmDependencies?: boolean;
43
+ }): Promise<void>;
32
44
  }
33
45
  export interface QueryResult {
34
46
  sql: string;
@@ -1 +1 @@
1
- {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/types/query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/types/query.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,16 @@
1
1
  export interface ColumnInfo {
2
2
  columnName: string;
3
3
  dataType: string;
4
+ columnType: string;
4
5
  isNullable: boolean;
5
6
  columnKey: string;
6
7
  columnDefault: string | null;
7
8
  extra: string;
9
+ characterMaximumLength?: number | null;
10
+ numericPrecision?: number | null;
11
+ numericScale?: number | null;
12
+ characterSetName?: string | null;
13
+ collationName?: string | null;
8
14
  }
9
15
  export interface TableSchema {
10
16
  tableName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/types/schema.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,aAAa,EAAE,iBAAiB,EAAE,CAAC;CACpC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/types/schema.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,aAAa,EAAE,iBAAiB,EAAE,CAAC;CACpC"}
@@ -0,0 +1,47 @@
1
+ export interface QueryStats {
2
+ queryId: string;
3
+ tableName: string;
4
+ queryType: 'findMany' | 'findOne' | 'findById' | 'count';
5
+ filters: string;
6
+ accessCount: number;
7
+ lastAccessedAt: Date;
8
+ avgExecutionTime: number;
9
+ lastWarmingTime?: Date;
10
+ }
11
+ export interface WarmingConfig {
12
+ enabled: boolean;
13
+ intervalMs?: number;
14
+ topQueriesPerTable?: number;
15
+ minAccessCount?: number;
16
+ maxStatsAge?: number;
17
+ useSeperatePool?: boolean;
18
+ warmingPoolSize?: number;
19
+ trackInDatabase?: boolean;
20
+ statsTableName?: string;
21
+ onWarmingComplete?: (stats: WarmingStats) => void;
22
+ onWarmingError?: (error: Error) => void;
23
+ }
24
+ export interface WarmingStats {
25
+ timestamp: Date;
26
+ queriesWarmed: number;
27
+ queriesFailed: number;
28
+ totalTimeMs: number;
29
+ cacheHitRateBefore: number;
30
+ cacheHitRateAfter: number;
31
+ tables: {
32
+ [tableName: string]: {
33
+ queriesWarmed: number;
34
+ avgExecutionTime: number;
35
+ };
36
+ };
37
+ }
38
+ export interface QueryAccessLog {
39
+ queryId: string;
40
+ tableName: string;
41
+ queryType: string;
42
+ filters: string;
43
+ executionTimeMs: number;
44
+ cacheHit: boolean;
45
+ timestamp: Date;
46
+ }
47
+ //# sourceMappingURL=warming.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"warming.d.ts","sourceRoot":"","sources":["../../src/types/warming.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,IAAI,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAE5B,OAAO,EAAE,OAAO,CAAC;IAGjB,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAG5B,cAAc,CAAC,EAAE,MAAM,CAAC;IAGxB,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,eAAe,CAAC,EAAE,OAAO,CAAC;IAG1B,eAAe,CAAC,EAAE,MAAM,CAAC;IAGzB,eAAe,CAAC,EAAE,OAAO,CAAC;IAG1B,cAAc,CAAC,EAAE,MAAM,CAAC;IAGxB,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IAGlD,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACzC;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,IAAI,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE;QACN,CAAC,SAAS,EAAE,MAAM,GAAG;YACnB,aAAa,EAAE,MAAM,CAAC;YACtB,gBAAgB,EAAE,MAAM,CAAC;SAC1B,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;CACjB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=warming.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"warming.js","sourceRoot":"","sources":["../../src/types/warming.ts"],"names":[],"mappings":""}