@bhushanpawar/sqldb 1.0.0

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 (175) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +811 -0
  3. package/dist/best-practice-example.d.ts +35 -0
  4. package/dist/best-practice-example.d.ts.map +1 -0
  5. package/dist/best-practice-example.js +171 -0
  6. package/dist/best-practice-example.js.map +1 -0
  7. package/dist/cache/cache-key-builder.d.ts +17 -0
  8. package/dist/cache/cache-key-builder.d.ts.map +1 -0
  9. package/dist/cache/cache-key-builder.js +100 -0
  10. package/dist/cache/cache-key-builder.js.map +1 -0
  11. package/dist/cache/cache-manager.d.ts +22 -0
  12. package/dist/cache/cache-manager.d.ts.map +1 -0
  13. package/dist/cache/cache-manager.js +124 -0
  14. package/dist/cache/cache-manager.js.map +1 -0
  15. package/dist/cache/invalidation.d.ts +15 -0
  16. package/dist/cache/invalidation.d.ts.map +1 -0
  17. package/dist/cache/invalidation.js +59 -0
  18. package/dist/cache/invalidation.js.map +1 -0
  19. package/dist/client.d.ts +40 -0
  20. package/dist/client.d.ts.map +1 -0
  21. package/dist/client.js +146 -0
  22. package/dist/client.js.map +1 -0
  23. package/dist/connection/mariadb.d.ts +17 -0
  24. package/dist/connection/mariadb.d.ts.map +1 -0
  25. package/dist/connection/mariadb.js +116 -0
  26. package/dist/connection/mariadb.js.map +1 -0
  27. package/dist/connection/redis.d.ts +20 -0
  28. package/dist/connection/redis.d.ts.map +1 -0
  29. package/dist/connection/redis.js +168 -0
  30. package/dist/connection/redis.js.map +1 -0
  31. package/dist/demo-debug.d.ts +2 -0
  32. package/dist/demo-debug.d.ts.map +1 -0
  33. package/dist/demo-debug.js +36 -0
  34. package/dist/demo-debug.js.map +1 -0
  35. package/dist/discovery/dependency-graph.d.ts +20 -0
  36. package/dist/discovery/dependency-graph.d.ts.map +1 -0
  37. package/dist/discovery/dependency-graph.js +89 -0
  38. package/dist/discovery/dependency-graph.js.map +1 -0
  39. package/dist/discovery/relationship-parser.d.ts +10 -0
  40. package/dist/discovery/relationship-parser.d.ts.map +1 -0
  41. package/dist/discovery/relationship-parser.js +40 -0
  42. package/dist/discovery/relationship-parser.js.map +1 -0
  43. package/dist/discovery/schema-reader.d.ts +15 -0
  44. package/dist/discovery/schema-reader.d.ts.map +1 -0
  45. package/dist/discovery/schema-reader.js +82 -0
  46. package/dist/discovery/schema-reader.js.map +1 -0
  47. package/dist/hooks/hooks-manager.d.ts +22 -0
  48. package/dist/hooks/hooks-manager.d.ts.map +1 -0
  49. package/dist/hooks/hooks-manager.js +117 -0
  50. package/dist/hooks/hooks-manager.js.map +1 -0
  51. package/dist/index.d.ts +20 -0
  52. package/dist/index.d.ts.map +1 -0
  53. package/dist/index.js +52 -0
  54. package/dist/index.js.map +1 -0
  55. package/dist/query/operations.d.ts +31 -0
  56. package/dist/query/operations.d.ts.map +1 -0
  57. package/dist/query/operations.js +204 -0
  58. package/dist/query/operations.js.map +1 -0
  59. package/dist/query/query-builder.d.ts +15 -0
  60. package/dist/query/query-builder.d.ts.map +1 -0
  61. package/dist/query/query-builder.js +169 -0
  62. package/dist/query/query-builder.js.map +1 -0
  63. package/dist/query/query-tracker.d.ts +13 -0
  64. package/dist/query/query-tracker.d.ts.map +1 -0
  65. package/dist/query/query-tracker.js +84 -0
  66. package/dist/query/query-tracker.js.map +1 -0
  67. package/dist/query/table-proxy.d.ts +11 -0
  68. package/dist/query/table-proxy.d.ts.map +1 -0
  69. package/dist/query/table-proxy.js +25 -0
  70. package/dist/query/table-proxy.js.map +1 -0
  71. package/dist/smart-cache/cache/cache-key-builder.d.ts +17 -0
  72. package/dist/smart-cache/cache/cache-key-builder.d.ts.map +1 -0
  73. package/dist/smart-cache/cache/cache-key-builder.js +100 -0
  74. package/dist/smart-cache/cache/cache-key-builder.js.map +1 -0
  75. package/dist/smart-cache/cache/cache-manager.d.ts +22 -0
  76. package/dist/smart-cache/cache/cache-manager.d.ts.map +1 -0
  77. package/dist/smart-cache/cache/cache-manager.js +124 -0
  78. package/dist/smart-cache/cache/cache-manager.js.map +1 -0
  79. package/dist/smart-cache/cache/invalidation.d.ts +15 -0
  80. package/dist/smart-cache/cache/invalidation.d.ts.map +1 -0
  81. package/dist/smart-cache/cache/invalidation.js +59 -0
  82. package/dist/smart-cache/cache/invalidation.js.map +1 -0
  83. package/dist/smart-cache/client.d.ts +36 -0
  84. package/dist/smart-cache/client.d.ts.map +1 -0
  85. package/dist/smart-cache/client.js +138 -0
  86. package/dist/smart-cache/client.js.map +1 -0
  87. package/dist/smart-cache/connection/mariadb.d.ts +14 -0
  88. package/dist/smart-cache/connection/mariadb.d.ts.map +1 -0
  89. package/dist/smart-cache/connection/mariadb.js +82 -0
  90. package/dist/smart-cache/connection/mariadb.js.map +1 -0
  91. package/dist/smart-cache/connection/redis.d.ts +20 -0
  92. package/dist/smart-cache/connection/redis.d.ts.map +1 -0
  93. package/dist/smart-cache/connection/redis.js +168 -0
  94. package/dist/smart-cache/connection/redis.js.map +1 -0
  95. package/dist/smart-cache/discovery/dependency-graph.d.ts +20 -0
  96. package/dist/smart-cache/discovery/dependency-graph.d.ts.map +1 -0
  97. package/dist/smart-cache/discovery/dependency-graph.js +89 -0
  98. package/dist/smart-cache/discovery/dependency-graph.js.map +1 -0
  99. package/dist/smart-cache/discovery/relationship-parser.d.ts +10 -0
  100. package/dist/smart-cache/discovery/relationship-parser.d.ts.map +1 -0
  101. package/dist/smart-cache/discovery/relationship-parser.js +40 -0
  102. package/dist/smart-cache/discovery/relationship-parser.js.map +1 -0
  103. package/dist/smart-cache/discovery/schema-reader.d.ts +15 -0
  104. package/dist/smart-cache/discovery/schema-reader.d.ts.map +1 -0
  105. package/dist/smart-cache/discovery/schema-reader.js +82 -0
  106. package/dist/smart-cache/discovery/schema-reader.js.map +1 -0
  107. package/dist/smart-cache/examples/basic-usage.d.ts +3 -0
  108. package/dist/smart-cache/examples/basic-usage.d.ts.map +1 -0
  109. package/dist/smart-cache/examples/basic-usage.js +105 -0
  110. package/dist/smart-cache/examples/basic-usage.js.map +1 -0
  111. package/dist/smart-cache/examples/hooks-example.d.ts +3 -0
  112. package/dist/smart-cache/examples/hooks-example.d.ts.map +1 -0
  113. package/dist/smart-cache/examples/hooks-example.js +133 -0
  114. package/dist/smart-cache/examples/hooks-example.js.map +1 -0
  115. package/dist/smart-cache/examples/relationships-example.d.ts +3 -0
  116. package/dist/smart-cache/examples/relationships-example.d.ts.map +1 -0
  117. package/dist/smart-cache/examples/relationships-example.js +88 -0
  118. package/dist/smart-cache/examples/relationships-example.js.map +1 -0
  119. package/dist/smart-cache/hooks/hooks-manager.d.ts +22 -0
  120. package/dist/smart-cache/hooks/hooks-manager.d.ts.map +1 -0
  121. package/dist/smart-cache/hooks/hooks-manager.js +117 -0
  122. package/dist/smart-cache/hooks/hooks-manager.js.map +1 -0
  123. package/dist/smart-cache/index.d.ts +19 -0
  124. package/dist/smart-cache/index.d.ts.map +1 -0
  125. package/dist/smart-cache/index.js +49 -0
  126. package/dist/smart-cache/index.js.map +1 -0
  127. package/dist/smart-cache/query/operations.d.ts +31 -0
  128. package/dist/smart-cache/query/operations.d.ts.map +1 -0
  129. package/dist/smart-cache/query/operations.js +187 -0
  130. package/dist/smart-cache/query/operations.js.map +1 -0
  131. package/dist/smart-cache/query/query-builder.d.ts +15 -0
  132. package/dist/smart-cache/query/query-builder.d.ts.map +1 -0
  133. package/dist/smart-cache/query/query-builder.js +169 -0
  134. package/dist/smart-cache/query/query-builder.js.map +1 -0
  135. package/dist/smart-cache/query/table-proxy.d.ts +11 -0
  136. package/dist/smart-cache/query/table-proxy.d.ts.map +1 -0
  137. package/dist/smart-cache/query/table-proxy.js +25 -0
  138. package/dist/smart-cache/query/table-proxy.js.map +1 -0
  139. package/dist/smart-cache/types/cache.d.ts +29 -0
  140. package/dist/smart-cache/types/cache.d.ts.map +1 -0
  141. package/dist/smart-cache/types/cache.js +10 -0
  142. package/dist/smart-cache/types/cache.js.map +1 -0
  143. package/dist/smart-cache/types/config.d.ts +47 -0
  144. package/dist/smart-cache/types/config.d.ts.map +1 -0
  145. package/dist/smart-cache/types/config.js +27 -0
  146. package/dist/smart-cache/types/config.js.map +1 -0
  147. package/dist/smart-cache/types/query.d.ts +36 -0
  148. package/dist/smart-cache/types/query.d.ts.map +1 -0
  149. package/dist/smart-cache/types/query.js +3 -0
  150. package/dist/smart-cache/types/query.js.map +1 -0
  151. package/dist/smart-cache/types/schema.d.ts +25 -0
  152. package/dist/smart-cache/types/schema.d.ts.map +1 -0
  153. package/dist/smart-cache/types/schema.js +3 -0
  154. package/dist/smart-cache/types/schema.js.map +1 -0
  155. package/dist/trial.d.ts +7 -0
  156. package/dist/trial.d.ts.map +1 -0
  157. package/dist/trial.js +30 -0
  158. package/dist/trial.js.map +1 -0
  159. package/dist/types/cache.d.ts +29 -0
  160. package/dist/types/cache.d.ts.map +1 -0
  161. package/dist/types/cache.js +10 -0
  162. package/dist/types/cache.js.map +1 -0
  163. package/dist/types/config.d.ts +47 -0
  164. package/dist/types/config.d.ts.map +1 -0
  165. package/dist/types/config.js +27 -0
  166. package/dist/types/config.js.map +1 -0
  167. package/dist/types/query.d.ts +55 -0
  168. package/dist/types/query.d.ts.map +1 -0
  169. package/dist/types/query.js +3 -0
  170. package/dist/types/query.js.map +1 -0
  171. package/dist/types/schema.d.ts +25 -0
  172. package/dist/types/schema.d.ts.map +1 -0
  173. package/dist/types/schema.js +3 -0
  174. package/dist/types/schema.js.map +1 -0
  175. package/package.json +71 -0
@@ -0,0 +1,204 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TableOperationsImpl = void 0;
4
+ class TableOperationsImpl {
5
+ constructor(tableName, dbManager, cacheManager, invalidationManager, queryBuilder, cacheConfig) {
6
+ this.tableName = tableName;
7
+ this.dbManager = dbManager;
8
+ this.cacheManager = cacheManager;
9
+ this.invalidationManager = invalidationManager;
10
+ this.queryBuilder = queryBuilder;
11
+ this.cacheConfig = cacheConfig;
12
+ }
13
+ async findOne(where, options) {
14
+ const mergedOptions = { ...options, limit: 1 };
15
+ const results = await this.findMany(where, mergedOptions);
16
+ return results.length > 0 ? results[0] : null;
17
+ }
18
+ async findMany(where, options) {
19
+ const skipCache = options?.skipCache || false;
20
+ const correlationId = options?.correlationId;
21
+ // Build cache key
22
+ const cacheKey = this.cacheManager
23
+ .getKeyBuilder()
24
+ .buildKey(this.tableName, 'findMany', { where, options });
25
+ // Try cache first
26
+ if (!skipCache && this.cacheManager.isEnabled()) {
27
+ const cached = await this.cacheManager.get(cacheKey);
28
+ if (cached !== null) {
29
+ return cached;
30
+ }
31
+ }
32
+ // Query database
33
+ const { sql, params } = this.queryBuilder.buildSelect(this.tableName, where, options);
34
+ const results = await this.dbManager.query(sql, params, correlationId);
35
+ // Cache results
36
+ if (!skipCache && this.cacheManager.isEnabled()) {
37
+ await this.cacheManager.set(cacheKey, results);
38
+ }
39
+ return results;
40
+ }
41
+ async findById(id, correlationId) {
42
+ const cacheKey = this.cacheManager
43
+ .getKeyBuilder()
44
+ .buildIdKey(this.tableName, id);
45
+ // Try cache first
46
+ if (this.cacheManager.isEnabled()) {
47
+ const cached = await this.cacheManager.get(cacheKey);
48
+ if (cached !== null) {
49
+ return cached;
50
+ }
51
+ }
52
+ // Query database
53
+ const { sql, params } = this.queryBuilder.buildSelectById(this.tableName, id);
54
+ const results = await this.dbManager.query(sql, params, correlationId);
55
+ const result = results.length > 0 ? results[0] : null;
56
+ // Cache result
57
+ if (result && this.cacheManager.isEnabled()) {
58
+ await this.cacheManager.set(cacheKey, result);
59
+ }
60
+ return result;
61
+ }
62
+ async count(where, correlationId) {
63
+ const cacheKey = this.cacheManager
64
+ .getKeyBuilder()
65
+ .buildKey(this.tableName, 'count', { where });
66
+ // Try cache first (with shorter TTL for counts)
67
+ if (this.cacheManager.isEnabled()) {
68
+ const cached = await this.cacheManager.get(cacheKey);
69
+ if (cached !== null) {
70
+ return cached;
71
+ }
72
+ }
73
+ // Query database
74
+ const { sql, params } = this.queryBuilder.buildCount(this.tableName, where);
75
+ const results = await this.dbManager.query(sql, params, correlationId);
76
+ const count = results[0]?.count || 0;
77
+ // Cache with shorter TTL (counts change frequently)
78
+ if (this.cacheManager.isEnabled()) {
79
+ const shortTTL = Math.min(this.cacheConfig.defaultTTL, 30);
80
+ await this.cacheManager.set(cacheKey, count, shortTTL);
81
+ }
82
+ return count;
83
+ }
84
+ async insertOne(data, correlationId) {
85
+ const { sql, params } = this.queryBuilder.buildInsert(this.tableName, data);
86
+ const result = await this.dbManager.query(sql, params, correlationId);
87
+ // Invalidate cache
88
+ if (this.cacheConfig.invalidateOnWrite) {
89
+ await this.invalidationManager.invalidateTable(this.tableName, { cascade: this.cacheConfig.cascadeInvalidation });
90
+ }
91
+ // Return the inserted record with ID
92
+ const insertedId = result.insertId;
93
+ return { ...data, id: insertedId };
94
+ }
95
+ async insertMany(dataArray, correlationId) {
96
+ if (dataArray.length === 0) {
97
+ return [];
98
+ }
99
+ const { sql, params } = this.queryBuilder.buildInsertMany(this.tableName, dataArray);
100
+ const result = await this.dbManager.query(sql, params, correlationId);
101
+ // Invalidate cache
102
+ if (this.cacheConfig.invalidateOnWrite) {
103
+ await this.invalidationManager.invalidateTable(this.tableName, { cascade: this.cacheConfig.cascadeInvalidation });
104
+ }
105
+ // Return inserted records with IDs
106
+ const firstId = result.insertId;
107
+ return dataArray.map((data, index) => ({
108
+ ...data,
109
+ id: firstId + index,
110
+ }));
111
+ }
112
+ async updateOne(where, data, correlationId) {
113
+ const { sql, params } = this.queryBuilder.buildUpdate(this.tableName, where, data);
114
+ const result = await this.dbManager.query(sql, params, correlationId);
115
+ // Invalidate cache
116
+ if (this.cacheConfig.invalidateOnWrite) {
117
+ await this.invalidationManager.invalidateTable(this.tableName, { cascade: this.cacheConfig.cascadeInvalidation });
118
+ }
119
+ // Fetch and return the updated record
120
+ if (result.affectedRows > 0) {
121
+ return await this.findOne(where, { correlationId });
122
+ }
123
+ return null;
124
+ }
125
+ async updateMany(where, data, correlationId) {
126
+ const { sql, params } = this.queryBuilder.buildUpdate(this.tableName, where, data);
127
+ const result = await this.dbManager.query(sql, params, correlationId);
128
+ // Invalidate cache
129
+ if (this.cacheConfig.invalidateOnWrite) {
130
+ await this.invalidationManager.invalidateTable(this.tableName, { cascade: this.cacheConfig.cascadeInvalidation });
131
+ }
132
+ return result.affectedRows || 0;
133
+ }
134
+ async updateById(id, data, correlationId) {
135
+ const { sql, params } = this.queryBuilder.buildUpdateById(this.tableName, id, data);
136
+ const result = await this.dbManager.query(sql, params, correlationId);
137
+ // Invalidate cache
138
+ if (this.cacheConfig.invalidateOnWrite) {
139
+ await this.invalidationManager.invalidateTable(this.tableName, { cascade: this.cacheConfig.cascadeInvalidation });
140
+ }
141
+ // Fetch and return the updated record
142
+ if (result.affectedRows > 0) {
143
+ return await this.findById(id, correlationId);
144
+ }
145
+ return null;
146
+ }
147
+ async deleteOne(where, correlationId) {
148
+ const { sql, params } = this.queryBuilder.buildDelete(this.tableName, where);
149
+ const result = await this.dbManager.query(sql, params, correlationId);
150
+ // Invalidate cache
151
+ if (this.cacheConfig.invalidateOnWrite) {
152
+ await this.invalidationManager.invalidateTable(this.tableName, { cascade: this.cacheConfig.cascadeInvalidation });
153
+ }
154
+ return (result.affectedRows || 0) > 0;
155
+ }
156
+ async deleteMany(where, correlationId) {
157
+ const { sql, params } = this.queryBuilder.buildDelete(this.tableName, where);
158
+ const result = await this.dbManager.query(sql, params, correlationId);
159
+ // Invalidate cache
160
+ if (this.cacheConfig.invalidateOnWrite) {
161
+ await this.invalidationManager.invalidateTable(this.tableName, { cascade: this.cacheConfig.cascadeInvalidation });
162
+ }
163
+ return result.affectedRows || 0;
164
+ }
165
+ async deleteById(id, correlationId) {
166
+ const { sql, params } = this.queryBuilder.buildDeleteById(this.tableName, id);
167
+ const result = await this.dbManager.query(sql, params, correlationId);
168
+ // Invalidate cache
169
+ if (this.cacheConfig.invalidateOnWrite) {
170
+ await this.invalidationManager.invalidateTable(this.tableName, { cascade: this.cacheConfig.cascadeInvalidation });
171
+ }
172
+ return (result.affectedRows || 0) > 0;
173
+ }
174
+ async raw(sql, params, correlationId) {
175
+ const cacheKey = this.cacheManager
176
+ .getKeyBuilder()
177
+ .buildKey(this.tableName, 'raw', { sql, params });
178
+ // Try cache first
179
+ if (this.cacheManager.isEnabled()) {
180
+ const cached = await this.cacheManager.get(cacheKey);
181
+ if (cached !== null) {
182
+ return cached;
183
+ }
184
+ }
185
+ // Query database
186
+ const result = await this.dbManager.query(sql, params, correlationId);
187
+ // Cache with 1-minute TTL
188
+ if (this.cacheManager.isEnabled()) {
189
+ await this.cacheManager.set(cacheKey, result, 60);
190
+ }
191
+ return result;
192
+ }
193
+ async invalidateCache() {
194
+ await this.invalidationManager.invalidateTable(this.tableName, {
195
+ cascade: false,
196
+ });
197
+ }
198
+ async warmCache(where, correlationId) {
199
+ // Pre-fetch and cache common queries
200
+ await this.findMany(where, { correlationId });
201
+ }
202
+ }
203
+ exports.TableOperationsImpl = TableOperationsImpl;
204
+ //# sourceMappingURL=operations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations.js","sourceRoot":"","sources":["../../src/query/operations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { WhereClause, FindOptions, QueryResult } from '../types/query';
2
+ export declare class QueryBuilder {
3
+ buildSelect(table: string, where?: WhereClause, options?: FindOptions): QueryResult;
4
+ buildCount(table: string, where?: WhereClause): QueryResult;
5
+ buildInsert(table: string, data: any): QueryResult;
6
+ buildInsertMany(table: string, dataArray: any[]): QueryResult;
7
+ buildUpdate(table: string, where: WhereClause, data: any): QueryResult;
8
+ buildDelete(table: string, where: WhereClause): QueryResult;
9
+ buildSelectById(table: string, id: string | number, select?: string[]): QueryResult;
10
+ buildUpdateById(table: string, id: string | number, data: any): QueryResult;
11
+ buildDeleteById(table: string, id: string | number): QueryResult;
12
+ private buildWhereClause;
13
+ private buildOrderBy;
14
+ }
15
+ //# sourceMappingURL=query-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-builder.d.ts","sourceRoot":"","sources":["../../src/query/query-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAiB,MAAM,gBAAgB,CAAC;AAEtF,qBAAa,YAAY;IACvB,WAAW,CACT,KAAK,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,WAAW,EACnB,OAAO,CAAC,EAAE,WAAW,GACpB,WAAW;IA6Bd,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,WAAW,GAAG,WAAW;IAc3D,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,WAAW;IAUlD,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,WAAW;IAsB7D,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,GAAG,WAAW;IAetE,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,WAAW;IAY3D,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,WAAW;IAMnF,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,WAAW;IAU3E,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,WAAW;IAKhE,OAAO,CAAC,gBAAgB;IA0DxB,OAAO,CAAC,YAAY;CAcrB"}
@@ -0,0 +1,169 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.QueryBuilder = void 0;
4
+ class QueryBuilder {
5
+ buildSelect(table, where, options) {
6
+ const select = options?.select?.join(', ') || '*';
7
+ let sql = `SELECT ${select} FROM ${table}`;
8
+ const params = [];
9
+ if (where) {
10
+ const whereClause = this.buildWhereClause(where, params);
11
+ if (whereClause) {
12
+ sql += ` WHERE ${whereClause}`;
13
+ }
14
+ }
15
+ if (options?.orderBy) {
16
+ sql += this.buildOrderBy(options.orderBy);
17
+ }
18
+ if (options?.limit) {
19
+ sql += ` LIMIT ?`;
20
+ params.push(options.limit);
21
+ }
22
+ if (options?.offset) {
23
+ sql += ` OFFSET ?`;
24
+ params.push(options.offset);
25
+ }
26
+ return { sql, params };
27
+ }
28
+ buildCount(table, where) {
29
+ let sql = `SELECT COUNT(*) as count FROM ${table}`;
30
+ const params = [];
31
+ if (where) {
32
+ const whereClause = this.buildWhereClause(where, params);
33
+ if (whereClause) {
34
+ sql += ` WHERE ${whereClause}`;
35
+ }
36
+ }
37
+ return { sql, params };
38
+ }
39
+ buildInsert(table, data) {
40
+ const columns = Object.keys(data);
41
+ const placeholders = columns.map(() => '?').join(', ');
42
+ const params = columns.map((col) => data[col]);
43
+ const sql = `INSERT INTO ${table} (${columns.join(', ')}) VALUES (${placeholders})`;
44
+ return { sql, params };
45
+ }
46
+ buildInsertMany(table, dataArray) {
47
+ if (dataArray.length === 0) {
48
+ throw new Error('Cannot insert empty array');
49
+ }
50
+ const columns = Object.keys(dataArray[0]);
51
+ const placeholders = dataArray
52
+ .map(() => `(${columns.map(() => '?').join(', ')})`)
53
+ .join(', ');
54
+ const params = [];
55
+ for (const data of dataArray) {
56
+ for (const col of columns) {
57
+ params.push(data[col]);
58
+ }
59
+ }
60
+ const sql = `INSERT INTO ${table} (${columns.join(', ')}) VALUES ${placeholders}`;
61
+ return { sql, params };
62
+ }
63
+ buildUpdate(table, where, data) {
64
+ const columns = Object.keys(data);
65
+ const setClause = columns.map((col) => `${col} = ?`).join(', ');
66
+ const params = columns.map((col) => data[col]);
67
+ let sql = `UPDATE ${table} SET ${setClause}`;
68
+ const whereClause = this.buildWhereClause(where, params);
69
+ if (whereClause) {
70
+ sql += ` WHERE ${whereClause}`;
71
+ }
72
+ return { sql, params };
73
+ }
74
+ buildDelete(table, where) {
75
+ let sql = `DELETE FROM ${table}`;
76
+ const params = [];
77
+ const whereClause = this.buildWhereClause(where, params);
78
+ if (whereClause) {
79
+ sql += ` WHERE ${whereClause}`;
80
+ }
81
+ return { sql, params };
82
+ }
83
+ buildSelectById(table, id, select) {
84
+ const columns = select?.join(', ') || '*';
85
+ const sql = `SELECT ${columns} FROM ${table} WHERE id = ?`;
86
+ return { sql, params: [id] };
87
+ }
88
+ buildUpdateById(table, id, data) {
89
+ const columns = Object.keys(data);
90
+ const setClause = columns.map((col) => `${col} = ?`).join(', ');
91
+ const params = [...columns.map((col) => data[col]), id];
92
+ const sql = `UPDATE ${table} SET ${setClause} WHERE id = ?`;
93
+ return { sql, params };
94
+ }
95
+ buildDeleteById(table, id) {
96
+ const sql = `DELETE FROM ${table} WHERE id = ?`;
97
+ return { sql, params: [id] };
98
+ }
99
+ buildWhereClause(where, params) {
100
+ const conditions = [];
101
+ for (const [key, value] of Object.entries(where)) {
102
+ if (value === null) {
103
+ conditions.push(`${key} IS NULL`);
104
+ }
105
+ else if (value === undefined) {
106
+ // Skip undefined values
107
+ continue;
108
+ }
109
+ else if (Array.isArray(value)) {
110
+ // IN clause
111
+ const placeholders = value.map(() => '?').join(', ');
112
+ conditions.push(`${key} IN (${placeholders})`);
113
+ params.push(...value);
114
+ }
115
+ else if (typeof value === 'object' && value !== null) {
116
+ // Handle operators like { $gt: 5 }, { $like: '%test%' }
117
+ const operator = Object.keys(value)[0];
118
+ const operatorValue = value[operator];
119
+ switch (operator) {
120
+ case '$gt':
121
+ conditions.push(`${key} > ?`);
122
+ params.push(operatorValue);
123
+ break;
124
+ case '$gte':
125
+ conditions.push(`${key} >= ?`);
126
+ params.push(operatorValue);
127
+ break;
128
+ case '$lt':
129
+ conditions.push(`${key} < ?`);
130
+ params.push(operatorValue);
131
+ break;
132
+ case '$lte':
133
+ conditions.push(`${key} <= ?`);
134
+ params.push(operatorValue);
135
+ break;
136
+ case '$ne':
137
+ conditions.push(`${key} != ?`);
138
+ params.push(operatorValue);
139
+ break;
140
+ case '$like':
141
+ conditions.push(`${key} LIKE ?`);
142
+ params.push(operatorValue);
143
+ break;
144
+ default:
145
+ // Treat as equality
146
+ conditions.push(`${key} = ?`);
147
+ params.push(value);
148
+ }
149
+ }
150
+ else {
151
+ conditions.push(`${key} = ?`);
152
+ params.push(value);
153
+ }
154
+ }
155
+ return conditions.join(' AND ');
156
+ }
157
+ buildOrderBy(orderBy) {
158
+ if (typeof orderBy === 'string') {
159
+ return ` ORDER BY ${orderBy}`;
160
+ }
161
+ if (Array.isArray(orderBy)) {
162
+ const clauses = orderBy.map((opt) => `${opt.column} ${opt.direction}`);
163
+ return ` ORDER BY ${clauses.join(', ')}`;
164
+ }
165
+ return ` ORDER BY ${orderBy.column} ${orderBy.direction}`;
166
+ }
167
+ }
168
+ exports.QueryBuilder = QueryBuilder;
169
+ //# sourceMappingURL=query-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-builder.js","sourceRoot":"","sources":["../../src/query/query-builder.ts"],"names":[],"mappings":";;;AAEA,MAAa,YAAY;IACvB,WAAW,CACT,KAAa,EACb,KAAmB,EACnB,OAAqB;QAErB,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;QAClD,IAAI,GAAG,GAAG,UAAU,MAAM,SAAS,KAAK,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAU,EAAE,CAAC;QAEzB,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACzD,IAAI,WAAW,EAAE,CAAC;gBAChB,GAAG,IAAI,UAAU,WAAW,EAAE,CAAC;YACjC,CAAC;QACH,CAAC;QAED,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;YACrB,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC5C,CAAC;QAED,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;YACnB,GAAG,IAAI,UAAU,CAAC;YAClB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QAED,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;YACpB,GAAG,IAAI,WAAW,CAAC;YACnB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;QAED,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;IACzB,CAAC;IAED,UAAU,CAAC,KAAa,EAAE,KAAmB;QAC3C,IAAI,GAAG,GAAG,iCAAiC,KAAK,EAAE,CAAC;QACnD,MAAM,MAAM,GAAU,EAAE,CAAC;QAEzB,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACzD,IAAI,WAAW,EAAE,CAAC;gBAChB,GAAG,IAAI,UAAU,WAAW,EAAE,CAAC;YACjC,CAAC;QACH,CAAC;QAED,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;IACzB,CAAC;IAED,WAAW,CAAC,KAAa,EAAE,IAAS;QAClC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAE/C,MAAM,GAAG,GAAG,eAAe,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,YAAY,GAAG,CAAC;QAEpF,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;IACzB,CAAC;IAED,eAAe,CAAC,KAAa,EAAE,SAAgB;QAC7C,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,YAAY,GAAG,SAAS;aAC3B,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;aACnD,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,MAAM,MAAM,GAAU,EAAE,CAAC;QACzB,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;gBAC1B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAED,MAAM,GAAG,GAAG,eAAe,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,YAAY,EAAE,CAAC;QAElF,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;IACzB,CAAC;IAED,WAAW,CAAC,KAAa,EAAE,KAAkB,EAAE,IAAS;QACtD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAE/C,IAAI,GAAG,GAAG,UAAU,KAAK,QAAQ,SAAS,EAAE,CAAC;QAE7C,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACzD,IAAI,WAAW,EAAE,CAAC;YAChB,GAAG,IAAI,UAAU,WAAW,EAAE,CAAC;QACjC,CAAC;QAED,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;IACzB,CAAC;IAED,WAAW,CAAC,KAAa,EAAE,KAAkB;QAC3C,IAAI,GAAG,GAAG,eAAe,KAAK,EAAE,CAAC;QACjC,MAAM,MAAM,GAAU,EAAE,CAAC;QAEzB,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACzD,IAAI,WAAW,EAAE,CAAC;YAChB,GAAG,IAAI,UAAU,WAAW,EAAE,CAAC;QACjC,CAAC;QAED,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;IACzB,CAAC;IAED,eAAe,CAAC,KAAa,EAAE,EAAmB,EAAE,MAAiB;QACnE,MAAM,OAAO,GAAG,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;QAC1C,MAAM,GAAG,GAAG,UAAU,OAAO,SAAS,KAAK,eAAe,CAAC;QAC3D,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IAC/B,CAAC;IAED,eAAe,CAAC,KAAa,EAAE,EAAmB,EAAE,IAAS;QAC3D,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAExD,MAAM,GAAG,GAAG,UAAU,KAAK,QAAQ,SAAS,eAAe,CAAC;QAE5D,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;IACzB,CAAC;IAED,eAAe,CAAC,KAAa,EAAE,EAAmB;QAChD,MAAM,GAAG,GAAG,eAAe,KAAK,eAAe,CAAC;QAChD,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IAC/B,CAAC;IAEO,gBAAgB,CAAC,KAAkB,EAAE,MAAa;QACxD,MAAM,UAAU,GAAa,EAAE,CAAC;QAEhC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACnB,UAAU,CAAC,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,CAAC;YACpC,CAAC;iBAAM,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC/B,wBAAwB;gBACxB,SAAS;YACX,CAAC;iBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChC,YAAY;gBACZ,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACrD,UAAU,CAAC,IAAI,CAAC,GAAG,GAAG,QAAQ,YAAY,GAAG,CAAC,CAAC;gBAC/C,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;YACxB,CAAC;iBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACvD,wDAAwD;gBACxD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvC,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAEtC,QAAQ,QAAQ,EAAE,CAAC;oBACjB,KAAK,KAAK;wBACR,UAAU,CAAC,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC;wBAC9B,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;wBAC3B,MAAM;oBACR,KAAK,MAAM;wBACT,UAAU,CAAC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC;wBAC/B,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;wBAC3B,MAAM;oBACR,KAAK,KAAK;wBACR,UAAU,CAAC,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC;wBAC9B,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;wBAC3B,MAAM;oBACR,KAAK,MAAM;wBACT,UAAU,CAAC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC;wBAC/B,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;wBAC3B,MAAM;oBACR,KAAK,KAAK;wBACR,UAAU,CAAC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC;wBAC/B,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;wBAC3B,MAAM;oBACR,KAAK,OAAO;wBACV,UAAU,CAAC,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC;wBACjC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;wBAC3B,MAAM;oBACR;wBACE,oBAAoB;wBACpB,UAAU,CAAC,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC;wBAC9B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACvB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,UAAU,CAAC,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC;gBAC9B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;QAED,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAEO,YAAY,CAAC,OAAiD;QACpE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,OAAO,aAAa,OAAO,EAAE,CAAC;QAChC,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CACzB,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,SAAS,EAAE,CAC1C,CAAC;YACF,OAAO,aAAa,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3C,CAAC;QAED,OAAO,aAAa,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAC5D,CAAC;CACF;AAxMD,oCAwMC"}
@@ -0,0 +1,13 @@
1
+ import { QueryMetadata, QueryTracker } from '../types/query';
2
+ export declare class InMemoryQueryTracker implements QueryTracker {
3
+ private queries;
4
+ private allQueries;
5
+ trackQuery(metadata: QueryMetadata): void;
6
+ getQueries(correlationId?: string): QueryMetadata[];
7
+ clearQueries(correlationId?: string): void;
8
+ }
9
+ /**
10
+ * Generates a unique ID using crypto.randomUUID (Node 14.17+) or fallback
11
+ */
12
+ export declare function generateQueryId(): string;
13
+ //# sourceMappingURL=query-tracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-tracker.d.ts","sourceRoot":"","sources":["../../src/query/query-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG7D,qBAAa,oBAAqB,YAAW,YAAY;IACvD,OAAO,CAAC,OAAO,CAA2C;IAC1D,OAAO,CAAC,UAAU,CAAuB;IAEzC,UAAU,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;IAUzC,UAAU,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,aAAa,EAAE;IAOnD,YAAY,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI;CAW3C;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAUxC"}
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.InMemoryQueryTracker = void 0;
37
+ exports.generateQueryId = generateQueryId;
38
+ const crypto = __importStar(require("crypto"));
39
+ class InMemoryQueryTracker {
40
+ constructor() {
41
+ this.queries = new Map();
42
+ this.allQueries = [];
43
+ }
44
+ trackQuery(metadata) {
45
+ this.allQueries.push(metadata);
46
+ if (metadata.correlationId) {
47
+ const existing = this.queries.get(metadata.correlationId) || [];
48
+ existing.push(metadata);
49
+ this.queries.set(metadata.correlationId, existing);
50
+ }
51
+ }
52
+ getQueries(correlationId) {
53
+ if (correlationId) {
54
+ return this.queries.get(correlationId) || [];
55
+ }
56
+ return [...this.allQueries];
57
+ }
58
+ clearQueries(correlationId) {
59
+ if (correlationId) {
60
+ this.queries.delete(correlationId);
61
+ this.allQueries = this.allQueries.filter((q) => q.correlationId !== correlationId);
62
+ }
63
+ else {
64
+ this.queries.clear();
65
+ this.allQueries = [];
66
+ }
67
+ }
68
+ }
69
+ exports.InMemoryQueryTracker = InMemoryQueryTracker;
70
+ /**
71
+ * Generates a unique ID using crypto.randomUUID (Node 14.17+) or fallback
72
+ */
73
+ function generateQueryId() {
74
+ if (crypto.randomUUID) {
75
+ return crypto.randomUUID();
76
+ }
77
+ // Fallback for older Node versions
78
+ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {
79
+ const r = (Math.random() * 16) | 0;
80
+ const v = c === 'x' ? r : (r & 0x3) | 0x8;
81
+ return v.toString(16);
82
+ });
83
+ }
84
+ //# sourceMappingURL=query-tracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-tracker.js","sourceRoot":"","sources":["../../src/query/query-tracker.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCA,0CAUC;AAjDD,+CAAiC;AAEjC,MAAa,oBAAoB;IAAjC;QACU,YAAO,GAAiC,IAAI,GAAG,EAAE,CAAC;QAClD,eAAU,GAAoB,EAAE,CAAC;IA8B3C,CAAC;IA5BC,UAAU,CAAC,QAAuB;QAChC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE/B,IAAI,QAAQ,CAAC,aAAa,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;YAChE,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACxB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,UAAU,CAAC,aAAsB;QAC/B,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QAC/C,CAAC;QACD,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;IAED,YAAY,CAAC,aAAsB;QACjC,IAAI,aAAa,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YACnC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CACtC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,aAAa,CACzC,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACrB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;CACF;AAhCD,oDAgCC;AAED;;GAEG;AACH,SAAgB,eAAe;IAC7B,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,OAAO,MAAM,CAAC,UAAU,EAAE,CAAC;IAC7B,CAAC;IACD,mCAAmC;IACnC,OAAO,sCAAsC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;QACnE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;QAC1C,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { TableOperations } from '../types/query';
2
+ import { SmartDBClient } from '../client';
3
+ export declare function createTableProxy(client: SmartDBClient, tableName: string): TableOperations<any>;
4
+ export declare class TableProxyFactory {
5
+ private client;
6
+ private cache;
7
+ constructor(client: SmartDBClient);
8
+ getProxy(tableName: string): TableOperations<any>;
9
+ clearCache(): void;
10
+ }
11
+ //# sourceMappingURL=table-proxy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-proxy.d.ts","sourceRoot":"","sources":["../../src/query/table-proxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,MAAM,GAChB,eAAe,CAAC,GAAG,CAAC,CAEtB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,KAAK,CAAgD;gBAEjD,MAAM,EAAE,aAAa;IAIjC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC;IASjD,UAAU,IAAI,IAAI;CAGnB"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TableProxyFactory = void 0;
4
+ exports.createTableProxy = createTableProxy;
5
+ function createTableProxy(client, tableName) {
6
+ return client.getTableOperations(tableName);
7
+ }
8
+ class TableProxyFactory {
9
+ constructor(client) {
10
+ this.cache = new Map();
11
+ this.client = client;
12
+ }
13
+ getProxy(tableName) {
14
+ if (!this.cache.has(tableName)) {
15
+ const operations = this.client.getTableOperations(tableName);
16
+ this.cache.set(tableName, operations);
17
+ }
18
+ return this.cache.get(tableName);
19
+ }
20
+ clearCache() {
21
+ this.cache.clear();
22
+ }
23
+ }
24
+ exports.TableProxyFactory = TableProxyFactory;
25
+ //# sourceMappingURL=table-proxy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-proxy.js","sourceRoot":"","sources":["../../src/query/table-proxy.ts"],"names":[],"mappings":";;;AAGA,4CAKC;AALD,SAAgB,gBAAgB,CAC9B,MAAqB,EACrB,SAAiB;IAEjB,OAAO,MAAM,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;AAC9C,CAAC;AAED,MAAa,iBAAiB;IAI5B,YAAY,MAAqB;QAFzB,UAAK,GAAsC,IAAI,GAAG,EAAE,CAAC;QAG3D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,QAAQ,CAAC,SAAiB;QACxB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;YAC7D,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACxC,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC;IACpC,CAAC;IAED,UAAU;QACR,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;CACF;AApBD,8CAoBC"}
@@ -0,0 +1,17 @@
1
+ export declare class CacheKeyBuilder {
2
+ private prefix;
3
+ constructor(prefix?: string);
4
+ buildKey(table: string, operation: string, params: any): string;
5
+ buildIdKey(table: string, id: string | number): string;
6
+ buildTablePattern(table: string): string;
7
+ buildOperationPattern(table: string, operation: string): string;
8
+ private generateHash;
9
+ private normalizeParams;
10
+ parseKey(key: string): {
11
+ table: string;
12
+ operation: string;
13
+ hash: string;
14
+ } | null;
15
+ matchesPattern(key: string, pattern: string): boolean;
16
+ }
17
+ //# sourceMappingURL=cache-key-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache-key-builder.d.ts","sourceRoot":"","sources":["../../../src/smart-cache/cache/cache-key-builder.ts"],"names":[],"mappings":"AAEA,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,GAAE,MAAc;IAIlC,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,MAAM;IAK/D,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM;IAItD,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAIxC,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;IAI/D,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,eAAe;IAuBvB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAchF,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;CAItD"}