@objectql/core 4.2.0 → 4.2.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 (116) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +34 -0
  3. package/README.md +5 -2
  4. package/dist/app.d.ts +61 -52
  5. package/dist/app.js +100 -435
  6. package/dist/app.js.map +1 -1
  7. package/dist/index.d.ts +14 -20
  8. package/dist/index.js +21 -20
  9. package/dist/index.js.map +1 -1
  10. package/dist/kernel-factory.d.ts +38 -0
  11. package/dist/kernel-factory.js +38 -0
  12. package/dist/kernel-factory.js.map +1 -0
  13. package/dist/plugin.d.ts +9 -16
  14. package/dist/plugin.js +71 -48
  15. package/dist/plugin.js.map +1 -1
  16. package/dist/repository.d.ts +4 -31
  17. package/dist/repository.js +7 -283
  18. package/dist/repository.js.map +1 -1
  19. package/dist/util.js +4 -2
  20. package/dist/util.js.map +1 -1
  21. package/package.json +14 -12
  22. package/src/app.ts +156 -539
  23. package/src/index.ts +18 -42
  24. package/src/kernel-factory.ts +47 -0
  25. package/src/plugin.ts +77 -85
  26. package/src/repository.ts +4 -320
  27. package/src/util.ts +5 -3
  28. package/test/__mocks__/@objectstack/core.ts +250 -1
  29. package/test/__mocks__/@objectstack/objectql.ts +273 -0
  30. package/test/__mocks__/@objectstack/runtime.ts +14 -5
  31. package/test/introspection.test.ts +1 -1
  32. package/test/mock-driver.ts +5 -5
  33. package/test/optimizations.test.ts +2 -2
  34. package/test/plugin-integration.test.ts +1 -3
  35. package/test/utils.ts +6 -6
  36. package/tsconfig.json +3 -1
  37. package/tsconfig.tsbuildinfo +1 -1
  38. package/dist/ai/index.d.ts +0 -8
  39. package/dist/ai/index.js +0 -25
  40. package/dist/ai/index.js.map +0 -1
  41. package/dist/ai/registry.d.ts +0 -23
  42. package/dist/ai/registry.js +0 -78
  43. package/dist/ai/registry.js.map +0 -1
  44. package/dist/gateway.d.ts +0 -37
  45. package/dist/gateway.js +0 -93
  46. package/dist/gateway.js.map +0 -1
  47. package/dist/optimizations/CompiledHookManager.d.ts +0 -56
  48. package/dist/optimizations/CompiledHookManager.js +0 -170
  49. package/dist/optimizations/CompiledHookManager.js.map +0 -1
  50. package/dist/optimizations/DependencyGraph.d.ts +0 -82
  51. package/dist/optimizations/DependencyGraph.js +0 -211
  52. package/dist/optimizations/DependencyGraph.js.map +0 -1
  53. package/dist/optimizations/GlobalConnectionPool.d.ts +0 -89
  54. package/dist/optimizations/GlobalConnectionPool.js +0 -193
  55. package/dist/optimizations/GlobalConnectionPool.js.map +0 -1
  56. package/dist/optimizations/LazyMetadataLoader.d.ts +0 -75
  57. package/dist/optimizations/LazyMetadataLoader.js +0 -149
  58. package/dist/optimizations/LazyMetadataLoader.js.map +0 -1
  59. package/dist/optimizations/OptimizedMetadataRegistry.d.ts +0 -26
  60. package/dist/optimizations/OptimizedMetadataRegistry.js +0 -117
  61. package/dist/optimizations/OptimizedMetadataRegistry.js.map +0 -1
  62. package/dist/optimizations/OptimizedValidationEngine.d.ts +0 -73
  63. package/dist/optimizations/OptimizedValidationEngine.js +0 -141
  64. package/dist/optimizations/OptimizedValidationEngine.js.map +0 -1
  65. package/dist/optimizations/QueryCompiler.d.ts +0 -51
  66. package/dist/optimizations/QueryCompiler.js +0 -216
  67. package/dist/optimizations/QueryCompiler.js.map +0 -1
  68. package/dist/optimizations/SQLQueryOptimizer.d.ts +0 -96
  69. package/dist/optimizations/SQLQueryOptimizer.js +0 -265
  70. package/dist/optimizations/SQLQueryOptimizer.js.map +0 -1
  71. package/dist/optimizations/index.d.ts +0 -32
  72. package/dist/optimizations/index.js +0 -44
  73. package/dist/optimizations/index.js.map +0 -1
  74. package/dist/protocol.d.ts +0 -191
  75. package/dist/protocol.js +0 -272
  76. package/dist/protocol.js.map +0 -1
  77. package/dist/query/filter-translator.d.ts +0 -24
  78. package/dist/query/filter-translator.js +0 -38
  79. package/dist/query/filter-translator.js.map +0 -1
  80. package/dist/query/index.d.ts +0 -22
  81. package/dist/query/index.js +0 -39
  82. package/dist/query/index.js.map +0 -1
  83. package/dist/query/query-analyzer.d.ts +0 -186
  84. package/dist/query/query-analyzer.js +0 -348
  85. package/dist/query/query-analyzer.js.map +0 -1
  86. package/dist/query/query-builder.d.ts +0 -27
  87. package/dist/query/query-builder.js +0 -69
  88. package/dist/query/query-builder.js.map +0 -1
  89. package/dist/query/query-service.d.ts +0 -151
  90. package/dist/query/query-service.js +0 -272
  91. package/dist/query/query-service.js.map +0 -1
  92. package/src/ai/index.ts +0 -9
  93. package/src/ai/registry.ts +0 -81
  94. package/src/gateway.ts +0 -105
  95. package/src/optimizations/CompiledHookManager.ts +0 -193
  96. package/src/optimizations/DependencyGraph.ts +0 -255
  97. package/src/optimizations/GlobalConnectionPool.ts +0 -251
  98. package/src/optimizations/LazyMetadataLoader.ts +0 -180
  99. package/src/optimizations/OptimizedMetadataRegistry.ts +0 -132
  100. package/src/optimizations/OptimizedValidationEngine.ts +0 -172
  101. package/src/optimizations/QueryCompiler.ts +0 -242
  102. package/src/optimizations/SQLQueryOptimizer.ts +0 -329
  103. package/src/optimizations/index.ts +0 -34
  104. package/src/protocol.ts +0 -304
  105. package/src/query/filter-translator.ts +0 -41
  106. package/src/query/index.ts +0 -24
  107. package/src/query/query-analyzer.ts +0 -532
  108. package/src/query/query-builder.ts +0 -64
  109. package/src/query/query-service.ts +0 -397
  110. package/test/ai-registry.test.ts +0 -42
  111. package/test/app.test.ts +0 -578
  112. package/test/filter-syntax.test.ts +0 -233
  113. package/test/gateway.test.ts +0 -88
  114. package/test/protocol.test.ts +0 -143
  115. package/test/repository-validation.test.ts +0 -351
  116. package/test/repository.test.ts +0 -151
package/dist/protocol.js DELETED
@@ -1,272 +0,0 @@
1
- "use strict";
2
- /**
3
- * ObjectStack Protocol Implementation
4
- * Copyright (c) 2026-present ObjectStack Inc.
5
- *
6
- * This source code is licensed under the MIT license found in the
7
- * LICENSE file in the root directory of this source tree.
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.ObjectStackProtocolImplementation = void 0;
11
- /**
12
- * Bridges the ObjectStack Protocol (Specification) to the ObjectQL Engine (Implementation)
13
- */
14
- class ObjectStackProtocolImplementation {
15
- constructor(engine) {
16
- this.engine = engine;
17
- }
18
- /**
19
- * Get API Discovery Document
20
- */
21
- async getDiscovery(args) {
22
- return {
23
- name: 'ObjectQL Engine',
24
- version: '4.0.0',
25
- protocols: ['rest', 'graphql', 'json-rpc', 'odata'],
26
- auth: {
27
- type: 'bearer',
28
- url: '/auth/token'
29
- }
30
- };
31
- }
32
- /**
33
- * Get Metadata Types (e.g., ['object', 'action'])
34
- */
35
- async getMetaTypes(args) {
36
- let types = ['object'];
37
- if (this.engine.metadata && typeof this.engine.metadata.getTypes === 'function') {
38
- types = this.engine.metadata.getTypes();
39
- }
40
- return { types };
41
- }
42
- /**
43
- * Get Metadata Items for a Type
44
- */
45
- async getMetaItems(args) {
46
- const { type } = args;
47
- let items = [];
48
- if (this.engine.metadata && typeof this.engine.metadata.list === 'function') {
49
- items = this.engine.metadata.list(type);
50
- }
51
- return { type, items };
52
- }
53
- /**
54
- * Get Metadata Item
55
- */
56
- async getMetaItem(args) {
57
- const { type, name } = args;
58
- if (this.engine.metadata && typeof this.engine.metadata.get === 'function') {
59
- return this.engine.metadata.get(type, name);
60
- }
61
- return null;
62
- }
63
- /**
64
- * Get Cached Metadata Item
65
- */
66
- async getMetaItemCached(args) {
67
- // Fallback to non-cached version for now
68
- return this.getMetaItem(args);
69
- }
70
- /**
71
- * Save Metadata Item
72
- */
73
- async saveMetaItem(args) {
74
- const { type, name, item } = args;
75
- if (this.engine.metadata && typeof this.engine.metadata.register === 'function') {
76
- const data = { ...(item || {}), name }; // Ensure name is in data
77
- this.engine.metadata.register(type, data);
78
- return { success: true };
79
- }
80
- throw new Error('Engine does not support saving metadata');
81
- }
82
- /**
83
- * Get UI View
84
- */
85
- async getUiView(args) {
86
- return null;
87
- }
88
- /**
89
- * Find Data Records
90
- */
91
- async findData(args) {
92
- const { object, query } = args;
93
- // Use direct kernel method if available (preferred)
94
- if (typeof this.engine.find === 'function') {
95
- const result = await this.engine.find(object, query || {});
96
- return result;
97
- }
98
- // Fallback to createContext (if engine is IObjectQL)
99
- if (typeof this.engine.createContext === 'function') {
100
- const ctx = this.engine.createContext({ isSystem: true });
101
- try {
102
- const repo = ctx.object(object);
103
- return await repo.find(query || {});
104
- }
105
- catch (error) {
106
- throw new Error(`Data access failed: ${error.message}`);
107
- }
108
- }
109
- throw new Error('Engine does not support find operation');
110
- }
111
- /**
112
- * Count Data Records
113
- */
114
- async countData(args) {
115
- const { object, query } = args;
116
- // Basic fallback
117
- const result = await this.findData(args);
118
- return Array.isArray(result) ? result.length : (result.value ? result.value.length : 0);
119
- }
120
- /**
121
- * Get Single Data Record
122
- */
123
- async getData(args) {
124
- const { object, id } = args;
125
- if (typeof this.engine.get === 'function') {
126
- return await this.engine.get(object, id);
127
- }
128
- if (typeof this.engine.createContext === 'function') {
129
- const ctx = this.engine.createContext({ isSystem: true });
130
- try {
131
- const repo = ctx.object(object);
132
- return await repo.findOne(id);
133
- }
134
- catch (error) {
135
- throw new Error(`Data retrieval failed: ${error.message}`);
136
- }
137
- }
138
- throw new Error('Engine does not support get operation');
139
- }
140
- /**
141
- * Create Data Record
142
- */
143
- async createData(args) {
144
- const { object, data } = args;
145
- if (typeof this.engine.create === 'function') {
146
- return await this.engine.create(object, data);
147
- }
148
- if (typeof this.engine.createContext === 'function') {
149
- const ctx = this.engine.createContext({ isSystem: true });
150
- try {
151
- const repo = ctx.object(object);
152
- // Protocol expects returned data
153
- return await repo.create(data);
154
- }
155
- catch (error) {
156
- throw new Error(`Data creation failed: ${error.message}`);
157
- }
158
- }
159
- throw new Error('Engine does not support create operation');
160
- }
161
- /**
162
- * Update Data Record
163
- */
164
- async updateData(args) {
165
- const { object, id, data } = args;
166
- if (typeof this.engine.update === 'function') {
167
- return await this.engine.update(object, id, data);
168
- }
169
- if (typeof this.engine.createContext === 'function') {
170
- const ctx = this.engine.createContext({ isSystem: true });
171
- try {
172
- const repo = ctx.object(object);
173
- return await repo.update(id, data);
174
- }
175
- catch (error) {
176
- throw new Error(`Data update failed: ${error.message}`);
177
- }
178
- }
179
- throw new Error('Engine does not support update operation');
180
- }
181
- /**
182
- * Delete Data Record
183
- */
184
- async deleteData(args) {
185
- const { object, id } = args;
186
- if (typeof this.engine.delete === 'function') {
187
- const success = await this.engine.delete(object, id);
188
- return { object, id, success: !!success };
189
- }
190
- if (typeof this.engine.createContext === 'function') {
191
- const ctx = this.engine.createContext({ isSystem: true });
192
- try {
193
- const repo = ctx.object(object);
194
- await repo.delete(id);
195
- return { object, id, success: true };
196
- }
197
- catch (error) {
198
- throw new Error(`Data deletion failed: ${error.message}`);
199
- }
200
- }
201
- throw new Error('Engine does not support delete operation');
202
- }
203
- /**
204
- * Create Many Data Records
205
- */
206
- async createManyData(args) {
207
- throw new Error('createManyData not implemented');
208
- }
209
- /**
210
- * Update Many Data Records
211
- */
212
- async updateManyData(args) {
213
- throw new Error('updateManyData not implemented');
214
- }
215
- /**
216
- * Delete Many Data Records
217
- */
218
- async deleteManyData(args) {
219
- throw new Error('deleteManyData not implemented');
220
- }
221
- /**
222
- * Batch Operations
223
- */
224
- async batchData(args) {
225
- throw new Error('batchData not implemented');
226
- }
227
- /**
228
- * Execute Action/Operation
229
- */
230
- async performAction(args) {
231
- // Not implemented in this shim yet
232
- throw new Error('Action execution not implemented in protocol shim');
233
- }
234
- /**
235
- * Analytics Query - Execute analytics query
236
- */
237
- async analyticsQuery(args) {
238
- throw new Error('analyticsQuery not implemented');
239
- }
240
- /**
241
- * Get Analytics Metadata
242
- */
243
- async getAnalyticsMeta(args) {
244
- throw new Error('getAnalyticsMeta not implemented');
245
- }
246
- /**
247
- * Trigger Automation
248
- */
249
- async triggerAutomation(args) {
250
- throw new Error('triggerAutomation not implemented');
251
- }
252
- /**
253
- * List Spaces (Hub/Workspace Management)
254
- */
255
- async listSpaces(args) {
256
- throw new Error('listSpaces not implemented');
257
- }
258
- /**
259
- * Create Space (Hub/Workspace Management)
260
- */
261
- async createSpace(args) {
262
- throw new Error('createSpace not implemented');
263
- }
264
- /**
265
- * Install Plugin (Hub/Extension Management)
266
- */
267
- async installPlugin(args) {
268
- throw new Error('installPlugin not implemented');
269
- }
270
- }
271
- exports.ObjectStackProtocolImplementation = ObjectStackProtocolImplementation;
272
- //# sourceMappingURL=protocol.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- /**
2
- * ObjectQL
3
- * Copyright (c) 2026-present ObjectStack Inc.
4
- *
5
- * This source code is licensed under the MIT license found in the
6
- * LICENSE file in the root directory of this source tree.
7
- */
8
- import type { Filter } from '@objectql/types';
9
- /**
10
- * Filter Translator
11
- *
12
- * Translates ObjectQL Filter to ObjectStack FilterCondition format.
13
- * Since both now use the same format, this is mostly a pass-through.
14
- *
15
- * @example
16
- * Input: { age: { $gte: 18 }, $or: [{ status: "active" }, { role: "admin" }] }
17
- * Output: { age: { $gte: 18 }, $or: [{ status: "active" }, { role: "admin" }] }
18
- */
19
- export declare class FilterTranslator {
20
- /**
21
- * Translate filters from ObjectQL format to ObjectStack FilterCondition format
22
- */
23
- translate(filters?: Filter): Filter | undefined;
24
- }
@@ -1,38 +0,0 @@
1
- "use strict";
2
- /**
3
- * ObjectQL
4
- * Copyright (c) 2026-present ObjectStack Inc.
5
- *
6
- * This source code is licensed under the MIT license found in the
7
- * LICENSE file in the root directory of this source tree.
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.FilterTranslator = void 0;
11
- /**
12
- * Filter Translator
13
- *
14
- * Translates ObjectQL Filter to ObjectStack FilterCondition format.
15
- * Since both now use the same format, this is mostly a pass-through.
16
- *
17
- * @example
18
- * Input: { age: { $gte: 18 }, $or: [{ status: "active" }, { role: "admin" }] }
19
- * Output: { age: { $gte: 18 }, $or: [{ status: "active" }, { role: "admin" }] }
20
- */
21
- class FilterTranslator {
22
- /**
23
- * Translate filters from ObjectQL format to ObjectStack FilterCondition format
24
- */
25
- translate(filters) {
26
- if (!filters) {
27
- return undefined;
28
- }
29
- // If it's an empty object, return undefined
30
- if (typeof filters === 'object' && Object.keys(filters).length === 0) {
31
- return undefined;
32
- }
33
- // Both ObjectQL Filter and ObjectStack FilterCondition use the same format now
34
- return filters;
35
- }
36
- }
37
- exports.FilterTranslator = FilterTranslator;
38
- //# sourceMappingURL=filter-translator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"filter-translator.js","sourceRoot":"","sources":["../../src/query/filter-translator.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAOH;;;;;;;;;GASG;AACH,MAAa,gBAAgB;IACzB;;OAEG;IACH,SAAS,CAAC,OAAgB;QACtB,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,4CAA4C;QAC5C,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnE,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,+EAA+E;QAC/E,OAAO,OAAO,CAAC;IACnB,CAAC;CACJ;AAjBD,4CAiBC"}
@@ -1,22 +0,0 @@
1
- /**
2
- * ObjectQL
3
- * Copyright (c) 2026-present ObjectStack Inc.
4
- *
5
- * This source code is licensed under the MIT license found in the
6
- * LICENSE file in the root directory of this source tree.
7
- */
8
- /**
9
- * Query Module
10
- *
11
- * This module contains ObjectQL's query-specific functionality:
12
- * - FilterTranslator: Converts ObjectQL filters to ObjectStack FilterNode
13
- * - QueryBuilder: Builds ObjectStack QueryAST from ObjectQL UnifiedQuery
14
- * - QueryService: Executes queries via drivers with profiling support
15
- * - QueryAnalyzer: Provides query performance analysis and optimization suggestions
16
- *
17
- * These are the core components that differentiate ObjectQL from generic runtime systems.
18
- */
19
- export * from './filter-translator';
20
- export * from './query-builder';
21
- export * from './query-service';
22
- export * from './query-analyzer';
@@ -1,39 +0,0 @@
1
- "use strict";
2
- /**
3
- * ObjectQL
4
- * Copyright (c) 2026-present ObjectStack Inc.
5
- *
6
- * This source code is licensed under the MIT license found in the
7
- * LICENSE file in the root directory of this source tree.
8
- */
9
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- var desc = Object.getOwnPropertyDescriptor(m, k);
12
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
13
- desc = { enumerable: true, get: function() { return m[k]; } };
14
- }
15
- Object.defineProperty(o, k2, desc);
16
- }) : (function(o, m, k, k2) {
17
- if (k2 === undefined) k2 = k;
18
- o[k2] = m[k];
19
- }));
20
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
21
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
22
- };
23
- Object.defineProperty(exports, "__esModule", { value: true });
24
- /**
25
- * Query Module
26
- *
27
- * This module contains ObjectQL's query-specific functionality:
28
- * - FilterTranslator: Converts ObjectQL filters to ObjectStack FilterNode
29
- * - QueryBuilder: Builds ObjectStack QueryAST from ObjectQL UnifiedQuery
30
- * - QueryService: Executes queries via drivers with profiling support
31
- * - QueryAnalyzer: Provides query performance analysis and optimization suggestions
32
- *
33
- * These are the core components that differentiate ObjectQL from generic runtime systems.
34
- */
35
- __exportStar(require("./filter-translator"), exports);
36
- __exportStar(require("./query-builder"), exports);
37
- __exportStar(require("./query-service"), exports);
38
- __exportStar(require("./query-analyzer"), exports);
39
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/query/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;AAEH;;;;;;;;;;GAUG;AAEH,sDAAoC;AACpC,kDAAgC;AAChC,kDAAgC;AAChC,mDAAiC"}
@@ -1,186 +0,0 @@
1
- /**
2
- * ObjectQL Query Analyzer
3
- * Copyright (c) 2026-present ObjectStack Inc.
4
- *
5
- * This source code is licensed under the MIT license found in the
6
- * LICENSE file in the root directory of this source tree.
7
- */
8
- import type { UnifiedQuery, MetadataRegistry } from '@objectql/types';
9
- import { QueryAST } from '@objectql/types';
10
- import { QueryService, QueryOptions } from './query-service';
11
- /**
12
- * Query execution plan
13
- */
14
- export interface QueryPlan {
15
- /**
16
- * The compiled QueryAST
17
- */
18
- ast: QueryAST;
19
- /**
20
- * Estimated number of rows to be scanned
21
- */
22
- estimatedRows?: number;
23
- /**
24
- * Indexes that could be used for this query
25
- */
26
- indexes: string[];
27
- /**
28
- * Warnings about potential performance issues
29
- */
30
- warnings: string[];
31
- /**
32
- * Suggestions for optimization
33
- */
34
- suggestions: string[];
35
- /**
36
- * Complexity score (0-100, higher is more complex)
37
- */
38
- complexity: number;
39
- }
40
- /**
41
- * Query profile result with execution statistics
42
- */
43
- export interface ProfileResult {
44
- /**
45
- * Execution time in milliseconds
46
- */
47
- executionTime: number;
48
- /**
49
- * Number of rows scanned by the database
50
- */
51
- rowsScanned: number;
52
- /**
53
- * Number of rows returned
54
- */
55
- rowsReturned: number;
56
- /**
57
- * Whether an index was used
58
- */
59
- indexUsed: boolean;
60
- /**
61
- * The query plan
62
- */
63
- plan: QueryPlan;
64
- /**
65
- * Efficiency ratio (rowsReturned / rowsScanned)
66
- * Higher is better (1.0 is perfect, 0.0 is worst)
67
- */
68
- efficiency: number;
69
- }
70
- /**
71
- * Aggregated query statistics
72
- */
73
- export interface QueryStats {
74
- /**
75
- * Total number of queries executed
76
- */
77
- totalQueries: number;
78
- /**
79
- * Average execution time in milliseconds
80
- */
81
- avgExecutionTime: number;
82
- /**
83
- * Slowest query execution time
84
- */
85
- slowestQuery: number;
86
- /**
87
- * Fastest query execution time
88
- */
89
- fastestQuery: number;
90
- /**
91
- * Queries by object
92
- */
93
- byObject: Record<string, {
94
- count: number;
95
- avgTime: number;
96
- }>;
97
- /**
98
- * Top slow queries
99
- */
100
- slowQueries: Array<{
101
- objectName: string;
102
- executionTime: number;
103
- query: UnifiedQuery;
104
- timestamp: Date;
105
- }>;
106
- }
107
- /**
108
- * Query Analyzer
109
- *
110
- * Provides query performance analysis and profiling capabilities.
111
- * This class helps developers optimize queries by:
112
- * - Analyzing query plans
113
- * - Profiling execution performance
114
- * - Tracking statistics
115
- * - Providing optimization suggestions
116
- */
117
- export declare class QueryAnalyzer {
118
- private queryService;
119
- private metadata;
120
- private stats;
121
- private executionTimes;
122
- private readonly MAX_SLOW_QUERIES;
123
- constructor(queryService: QueryService, metadata: MetadataRegistry);
124
- /**
125
- * Analyze a query and generate an execution plan
126
- *
127
- * @param objectName - The object to query
128
- * @param query - The unified query
129
- * @returns Query plan with optimization suggestions
130
- */
131
- explain(objectName: string, query: UnifiedQuery): Promise<QueryPlan>;
132
- /**
133
- * Profile a query execution
134
- *
135
- * @param objectName - The object to query
136
- * @param query - The unified query
137
- * @param options - Query execution options
138
- * @returns Profile result with execution statistics
139
- */
140
- profile(objectName: string, query: UnifiedQuery, options?: QueryOptions): Promise<ProfileResult>;
141
- /**
142
- * Get aggregated query statistics
143
- *
144
- * @returns Current query statistics
145
- */
146
- getStatistics(): QueryStats;
147
- /**
148
- * Reset statistics
149
- */
150
- resetStatistics(): void;
151
- /**
152
- * Get schema for an object
153
- * @private
154
- */
155
- private getSchema;
156
- /**
157
- * Find indexes that could be used for the query
158
- * @private
159
- */
160
- private findApplicableIndexes;
161
- /**
162
- * Analyze query for potential issues
163
- * @private
164
- */
165
- private analyzeWarnings;
166
- /**
167
- * Generate optimization suggestions
168
- * @private
169
- */
170
- private generateSuggestions;
171
- /**
172
- * Calculate query complexity score (0-100)
173
- * @private
174
- */
175
- private calculateComplexity;
176
- /**
177
- * Estimate number of rows (very rough heuristic)
178
- * @private
179
- */
180
- private estimateRows;
181
- /**
182
- * Record a query execution for statistics
183
- * @private
184
- */
185
- private recordExecution;
186
- }