@memberjunction/global 5.0.0 → 5.2.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.
- package/README.md +19 -3
- package/dist/DynamicPackageLoader.d.ts +61 -0
- package/dist/DynamicPackageLoader.d.ts.map +1 -0
- package/dist/DynamicPackageLoader.js +56 -0
- package/dist/DynamicPackageLoader.js.map +1 -0
- package/dist/SQLExpressionValidator.d.ts +31 -4
- package/dist/SQLExpressionValidator.d.ts.map +1 -1
- package/dist/SQLExpressionValidator.js +107 -22
- package/dist/SQLExpressionValidator.js.map +1 -1
- package/dist/__tests__/SQLExpressionValidator.security.test.d.ts +2 -0
- package/dist/__tests__/SQLExpressionValidator.security.test.d.ts.map +1 -0
- package/dist/__tests__/SQLExpressionValidator.security.test.js +328 -0
- package/dist/__tests__/SQLExpressionValidator.security.test.js.map +1 -0
- package/dist/__tests__/SQLExpressionValidator.test.d.ts +2 -0
- package/dist/__tests__/SQLExpressionValidator.test.d.ts.map +1 -0
- package/dist/__tests__/SQLExpressionValidator.test.js +350 -0
- package/dist/__tests__/SQLExpressionValidator.test.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/Core.d.ts +0 -29
- package/dist/Core.d.ts.map +0 -1
- package/dist/Core.js +0 -58
- package/dist/Core.js.map +0 -1
- package/dist/generic/QueryCache.d.ts +0 -85
- package/dist/generic/QueryCache.d.ts.map +0 -1
- package/dist/generic/QueryCache.js +0 -198
- package/dist/generic/QueryCache.js.map +0 -1
- package/dist/generic/QueryCacheConfig.d.ts +0 -72
- package/dist/generic/QueryCacheConfig.d.ts.map +0 -1
- package/dist/generic/QueryCacheConfig.js +0 -3
- package/dist/generic/QueryCacheConfig.js.map +0 -1
- package/dist/generic/applicationInfo.d.ts +0 -138
- package/dist/generic/applicationInfo.d.ts.map +0 -1
- package/dist/generic/applicationInfo.js +0 -177
- package/dist/generic/applicationInfo.js.map +0 -1
- package/dist/generic/authEvaluator.d.ts +0 -25
- package/dist/generic/authEvaluator.d.ts.map +0 -1
- package/dist/generic/authEvaluator.js +0 -49
- package/dist/generic/authEvaluator.js.map +0 -1
- package/dist/generic/authTypes.d.ts +0 -193
- package/dist/generic/authTypes.d.ts.map +0 -1
- package/dist/generic/authTypes.js +0 -19
- package/dist/generic/authTypes.js.map +0 -1
- package/dist/generic/baseEngine.d.ts +0 -260
- package/dist/generic/baseEngine.d.ts.map +0 -1
- package/dist/generic/baseEngine.js +0 -510
- package/dist/generic/baseEngine.js.map +0 -1
- package/dist/generic/baseEntity.d.ts +0 -691
- package/dist/generic/baseEntity.d.ts.map +0 -1
- package/dist/generic/baseEntity.js +0 -1688
- package/dist/generic/baseEntity.js.map +0 -1
- package/dist/generic/baseInfo.d.ts +0 -24
- package/dist/generic/baseInfo.d.ts.map +0 -1
- package/dist/generic/baseInfo.js +0 -53
- package/dist/generic/baseInfo.js.map +0 -1
- package/dist/generic/compositeKey.d.ts +0 -206
- package/dist/generic/compositeKey.d.ts.map +0 -1
- package/dist/generic/compositeKey.js +0 -412
- package/dist/generic/compositeKey.js.map +0 -1
- package/dist/generic/databaseProviderBase.d.ts +0 -46
- package/dist/generic/databaseProviderBase.d.ts.map +0 -1
- package/dist/generic/databaseProviderBase.js +0 -14
- package/dist/generic/databaseProviderBase.js.map +0 -1
- package/dist/generic/entityInfo.d.ts +0 -983
- package/dist/generic/entityInfo.d.ts.map +0 -1
- package/dist/generic/entityInfo.js +0 -1401
- package/dist/generic/entityInfo.js.map +0 -1
- package/dist/generic/explorerNavigationItem.d.ts +0 -20
- package/dist/generic/explorerNavigationItem.d.ts.map +0 -1
- package/dist/generic/explorerNavigationItem.js +0 -29
- package/dist/generic/explorerNavigationItem.js.map +0 -1
- package/dist/generic/interfaces.d.ts +0 -610
- package/dist/generic/interfaces.d.ts.map +0 -1
- package/dist/generic/interfaces.js +0 -211
- package/dist/generic/interfaces.js.map +0 -1
- package/dist/generic/libraryInfo.d.ts +0 -40
- package/dist/generic/libraryInfo.d.ts.map +0 -1
- package/dist/generic/libraryInfo.js +0 -56
- package/dist/generic/libraryInfo.js.map +0 -1
- package/dist/generic/logging.d.ts +0 -179
- package/dist/generic/logging.d.ts.map +0 -1
- package/dist/generic/logging.js +0 -382
- package/dist/generic/logging.js.map +0 -1
- package/dist/generic/metadata.d.ts +0 -305
- package/dist/generic/metadata.d.ts.map +0 -1
- package/dist/generic/metadata.js +0 -454
- package/dist/generic/metadata.js.map +0 -1
- package/dist/generic/metadataUtil.d.ts +0 -8
- package/dist/generic/metadataUtil.d.ts.map +0 -1
- package/dist/generic/metadataUtil.js +0 -36
- package/dist/generic/metadataUtil.js.map +0 -1
- package/dist/generic/providerBase.d.ts +0 -546
- package/dist/generic/providerBase.d.ts.map +0 -1
- package/dist/generic/providerBase.js +0 -999
- package/dist/generic/providerBase.js.map +0 -1
- package/dist/generic/queryInfo.d.ts +0 -460
- package/dist/generic/queryInfo.d.ts.map +0 -1
- package/dist/generic/queryInfo.js +0 -633
- package/dist/generic/queryInfo.js.map +0 -1
- package/dist/generic/querySQLFilters.d.ts +0 -54
- package/dist/generic/querySQLFilters.d.ts.map +0 -1
- package/dist/generic/querySQLFilters.js +0 -84
- package/dist/generic/querySQLFilters.js.map +0 -1
- package/dist/generic/runQuery.d.ts +0 -96
- package/dist/generic/runQuery.d.ts.map +0 -1
- package/dist/generic/runQuery.js +0 -66
- package/dist/generic/runQuery.js.map +0 -1
- package/dist/generic/runQuerySQLFilterImplementations.d.ts +0 -51
- package/dist/generic/runQuerySQLFilterImplementations.d.ts.map +0 -1
- package/dist/generic/runQuerySQLFilterImplementations.js +0 -238
- package/dist/generic/runQuerySQLFilterImplementations.js.map +0 -1
- package/dist/generic/runReport.d.ts +0 -25
- package/dist/generic/runReport.d.ts.map +0 -1
- package/dist/generic/runReport.js +0 -42
- package/dist/generic/runReport.js.map +0 -1
- package/dist/generic/securityInfo.d.ts +0 -355
- package/dist/generic/securityInfo.d.ts.map +0 -1
- package/dist/generic/securityInfo.js +0 -425
- package/dist/generic/securityInfo.js.map +0 -1
- package/dist/generic/transactionGroup.d.ts +0 -184
- package/dist/generic/transactionGroup.d.ts.map +0 -1
- package/dist/generic/transactionGroup.js +0 -357
- package/dist/generic/transactionGroup.js.map +0 -1
- package/dist/generic/util.d.ts +0 -81
- package/dist/generic/util.d.ts.map +0 -1
- package/dist/generic/util.js +0 -301
- package/dist/generic/util.js.map +0 -1
- package/dist/views/runView.d.ts +0 -150
- package/dist/views/runView.d.ts.map +0 -1
- package/dist/views/runView.js +0 -100
- package/dist/views/runView.js.map +0 -1
- package/dist/views/viewInfo.d.ts +0 -121
- package/dist/views/viewInfo.d.ts.map +0 -1
- package/dist/views/viewInfo.js +0 -182
- package/dist/views/viewInfo.js.map +0 -1
|
@@ -0,0 +1,350 @@
|
|
|
1
|
+
import { describe, it, expect, beforeEach } from 'vitest';
|
|
2
|
+
import { SQLExpressionValidator, DANGEROUS_SQL_KEYWORDS, FULL_QUERY_ALLOWED_KEYWORDS, ALLOWED_SQL_FUNCTIONS, } from '../SQLExpressionValidator.js';
|
|
3
|
+
describe('SQLExpressionValidator', () => {
|
|
4
|
+
let validator;
|
|
5
|
+
beforeEach(() => {
|
|
6
|
+
validator = SQLExpressionValidator.Instance;
|
|
7
|
+
});
|
|
8
|
+
describe('singleton', () => {
|
|
9
|
+
it('should return the same instance', () => {
|
|
10
|
+
const a = SQLExpressionValidator.Instance;
|
|
11
|
+
const b = SQLExpressionValidator.Instance;
|
|
12
|
+
expect(a).toBe(b);
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
// ---------------------------------------------------------------
|
|
16
|
+
// full_query context
|
|
17
|
+
// ---------------------------------------------------------------
|
|
18
|
+
describe('full_query context', () => {
|
|
19
|
+
const ctx = { context: 'full_query' };
|
|
20
|
+
describe('valid queries', () => {
|
|
21
|
+
it('should accept a simple SELECT', () => {
|
|
22
|
+
const r = validator.validate('SELECT TOP 10 * FROM Users', ctx);
|
|
23
|
+
expect(r.valid).toBe(true);
|
|
24
|
+
});
|
|
25
|
+
it('should accept SELECT with JOINs, WHERE, GROUP BY, ORDER BY', () => {
|
|
26
|
+
const sql = `
|
|
27
|
+
SELECT a.Name, COUNT(r.ID) AS TotalRuns
|
|
28
|
+
FROM __mj.vwAIAgents a
|
|
29
|
+
INNER JOIN __mj.vwAIAgentRuns r ON r.AgentID = a.ID
|
|
30
|
+
WHERE r.StartedAt >= DATEADD(DAY, -30, GETDATE())
|
|
31
|
+
GROUP BY a.Name
|
|
32
|
+
ORDER BY TotalRuns DESC
|
|
33
|
+
`;
|
|
34
|
+
const r = validator.validate(sql, ctx);
|
|
35
|
+
expect(r.valid).toBe(true);
|
|
36
|
+
});
|
|
37
|
+
it('should accept WITH (CTE) statement', () => {
|
|
38
|
+
const sql = `
|
|
39
|
+
WITH ActiveAgents AS (
|
|
40
|
+
SELECT AgentID, COUNT(*) AS RunCount
|
|
41
|
+
FROM __mj.vwAIAgentRuns
|
|
42
|
+
GROUP BY AgentID
|
|
43
|
+
)
|
|
44
|
+
SELECT a.Name, aa.RunCount
|
|
45
|
+
FROM __mj.vwAIAgents a
|
|
46
|
+
INNER JOIN ActiveAgents aa ON aa.AgentID = a.ID
|
|
47
|
+
`;
|
|
48
|
+
const r = validator.validate(sql, ctx);
|
|
49
|
+
expect(r.valid).toBe(true);
|
|
50
|
+
});
|
|
51
|
+
it('should accept SELECT with EXISTS subquery', () => {
|
|
52
|
+
const sql = `
|
|
53
|
+
SELECT * FROM __mj.vwUsers u
|
|
54
|
+
WHERE EXISTS (SELECT 1 FROM __mj.vwUserRoles ur WHERE ur.UserID = u.ID)
|
|
55
|
+
`;
|
|
56
|
+
const r = validator.validate(sql, ctx);
|
|
57
|
+
expect(r.valid).toBe(true);
|
|
58
|
+
});
|
|
59
|
+
it('should accept UNION queries', () => {
|
|
60
|
+
const sql = `
|
|
61
|
+
SELECT Name, 'Agent' AS Type FROM __mj.vwAIAgents
|
|
62
|
+
UNION ALL
|
|
63
|
+
SELECT Name, 'Model' AS Type FROM __mj.vwAIModels
|
|
64
|
+
`;
|
|
65
|
+
const r = validator.validate(sql, ctx);
|
|
66
|
+
expect(r.valid).toBe(true);
|
|
67
|
+
});
|
|
68
|
+
it('should accept INTERSECT queries', () => {
|
|
69
|
+
const sql = `
|
|
70
|
+
SELECT UserID FROM __mj.vwUserRoles WHERE RoleID = 'abc'
|
|
71
|
+
INTERSECT
|
|
72
|
+
SELECT UserID FROM __mj.vwUserRoles WHERE RoleID = 'def'
|
|
73
|
+
`;
|
|
74
|
+
const r = validator.validate(sql, ctx);
|
|
75
|
+
expect(r.valid).toBe(true);
|
|
76
|
+
});
|
|
77
|
+
it('should accept EXCEPT queries', () => {
|
|
78
|
+
const sql = `
|
|
79
|
+
SELECT UserID FROM __mj.vwUsers
|
|
80
|
+
EXCEPT
|
|
81
|
+
SELECT UserID FROM __mj.vwUserRoles
|
|
82
|
+
`;
|
|
83
|
+
const r = validator.validate(sql, ctx);
|
|
84
|
+
expect(r.valid).toBe(true);
|
|
85
|
+
});
|
|
86
|
+
it('should accept SQL with single-line comments (stripped, not rejected)', () => {
|
|
87
|
+
const sql = `
|
|
88
|
+
-- ============================================================
|
|
89
|
+
-- Member Event Attendance Summary
|
|
90
|
+
-- ============================================================
|
|
91
|
+
SELECT TOP 100 m.FirstName, m.LastName
|
|
92
|
+
FROM __mj.vwMembers m
|
|
93
|
+
`;
|
|
94
|
+
const r = validator.validate(sql, ctx);
|
|
95
|
+
expect(r.valid).toBe(true);
|
|
96
|
+
});
|
|
97
|
+
it('should accept SQL with block comments', () => {
|
|
98
|
+
const sql = `
|
|
99
|
+
/* Agent performance query */
|
|
100
|
+
SELECT a.Name FROM __mj.vwAIAgents a
|
|
101
|
+
`;
|
|
102
|
+
const r = validator.validate(sql, ctx);
|
|
103
|
+
expect(r.valid).toBe(true);
|
|
104
|
+
});
|
|
105
|
+
it('should accept WHERE x > ANY(...)', () => {
|
|
106
|
+
const sql = `
|
|
107
|
+
SELECT * FROM __mj.vwOrders
|
|
108
|
+
WHERE Total > ANY (SELECT AVG(Total) FROM __mj.vwOrders GROUP BY CustomerID)
|
|
109
|
+
`;
|
|
110
|
+
const r = validator.validate(sql, ctx);
|
|
111
|
+
expect(r.valid).toBe(true);
|
|
112
|
+
});
|
|
113
|
+
it('should accept WHERE x = ALL(...)', () => {
|
|
114
|
+
const sql = `
|
|
115
|
+
SELECT * FROM __mj.vwProducts
|
|
116
|
+
WHERE Price >= ALL (SELECT MIN(Price) FROM __mj.vwProducts GROUP BY CategoryID)
|
|
117
|
+
`;
|
|
118
|
+
const r = validator.validate(sql, ctx);
|
|
119
|
+
expect(r.valid).toBe(true);
|
|
120
|
+
});
|
|
121
|
+
it('should accept IIF function (uses IF keyword internally)', () => {
|
|
122
|
+
const sql = `SELECT IIF(Status = 'Active', 1, 0) AS IsActive FROM __mj.vwUsers`;
|
|
123
|
+
const r = validator.validate(sql, ctx);
|
|
124
|
+
expect(r.valid).toBe(true);
|
|
125
|
+
});
|
|
126
|
+
it('should accept queries with NULLIF, COALESCE, ISNULL', () => {
|
|
127
|
+
const sql = `SELECT COALESCE(FirstName, 'Unknown'), ISNULL(LastName, ''), NULLIF(Status, '') FROM __mj.vwUsers`;
|
|
128
|
+
const r = validator.validate(sql, ctx);
|
|
129
|
+
expect(r.valid).toBe(true);
|
|
130
|
+
});
|
|
131
|
+
it('should accept CASE WHEN expressions', () => {
|
|
132
|
+
const sql = `
|
|
133
|
+
SELECT Name,
|
|
134
|
+
CASE WHEN Status = 'Active' THEN 'Yes' ELSE 'No' END AS IsActive
|
|
135
|
+
FROM __mj.vwUsers
|
|
136
|
+
`;
|
|
137
|
+
const r = validator.validate(sql, ctx);
|
|
138
|
+
expect(r.valid).toBe(true);
|
|
139
|
+
});
|
|
140
|
+
});
|
|
141
|
+
describe('rejected queries', () => {
|
|
142
|
+
it('should reject INSERT statement', () => {
|
|
143
|
+
const r = validator.validate("INSERT INTO Users (Name) VALUES ('test')", ctx);
|
|
144
|
+
expect(r.valid).toBe(false);
|
|
145
|
+
expect(r.trigger).toBe('INSERT');
|
|
146
|
+
});
|
|
147
|
+
it('should reject UPDATE statement', () => {
|
|
148
|
+
const r = validator.validate("UPDATE Users SET Name = 'test'", ctx);
|
|
149
|
+
expect(r.valid).toBe(false);
|
|
150
|
+
expect(r.trigger).toBe('UPDATE');
|
|
151
|
+
});
|
|
152
|
+
it('should reject DELETE statement', () => {
|
|
153
|
+
const r = validator.validate('DELETE FROM Users WHERE ID = 1', ctx);
|
|
154
|
+
expect(r.valid).toBe(false);
|
|
155
|
+
expect(r.trigger).toBe('DELETE');
|
|
156
|
+
});
|
|
157
|
+
it('should reject DROP TABLE', () => {
|
|
158
|
+
const r = validator.validate('DROP TABLE Users', ctx);
|
|
159
|
+
expect(r.valid).toBe(false);
|
|
160
|
+
expect(r.trigger).toBe('DROP');
|
|
161
|
+
});
|
|
162
|
+
it('should reject TRUNCATE', () => {
|
|
163
|
+
const r = validator.validate('TRUNCATE TABLE Users', ctx);
|
|
164
|
+
expect(r.valid).toBe(false);
|
|
165
|
+
expect(r.trigger).toBe('TRUNCATE');
|
|
166
|
+
});
|
|
167
|
+
it('should reject EXEC', () => {
|
|
168
|
+
const r = validator.validate('EXEC sp_help', ctx);
|
|
169
|
+
expect(r.valid).toBe(false);
|
|
170
|
+
expect(r.trigger).toBe('EXEC');
|
|
171
|
+
});
|
|
172
|
+
it('should reject EXECUTE', () => {
|
|
173
|
+
const r = validator.validate("EXECUTE sp_executesql N'SELECT 1'", ctx);
|
|
174
|
+
expect(r.valid).toBe(false);
|
|
175
|
+
expect(r.trigger).toBe('EXECUTE');
|
|
176
|
+
});
|
|
177
|
+
it('should reject statements with semicolons', () => {
|
|
178
|
+
const r = validator.validate('SELECT 1; DROP TABLE Users', ctx);
|
|
179
|
+
expect(r.valid).toBe(false);
|
|
180
|
+
// DROP is detected before semicolon in the keyword scan
|
|
181
|
+
expect(r.trigger).toBe('DROP');
|
|
182
|
+
});
|
|
183
|
+
it('should reject query not starting with SELECT or WITH', () => {
|
|
184
|
+
const r = validator.validate('CREATE TABLE Foo (ID INT)', ctx);
|
|
185
|
+
expect(r.valid).toBe(false);
|
|
186
|
+
});
|
|
187
|
+
it('should reject WAITFOR DELAY', () => {
|
|
188
|
+
const r = validator.validate("WAITFOR DELAY '00:00:05'", ctx);
|
|
189
|
+
expect(r.valid).toBe(false);
|
|
190
|
+
expect(r.trigger).toBe('WAITFOR');
|
|
191
|
+
});
|
|
192
|
+
it('should reject OPENROWSET', () => {
|
|
193
|
+
const r = validator.validate("SELECT * FROM OPENROWSET('SQLNCLI', 'Server=hack;')", ctx);
|
|
194
|
+
expect(r.valid).toBe(false);
|
|
195
|
+
expect(r.trigger).toBe('OPENROWSET');
|
|
196
|
+
});
|
|
197
|
+
it('should reject GRANT', () => {
|
|
198
|
+
const r = validator.validate('GRANT SELECT ON Users TO public', ctx);
|
|
199
|
+
expect(r.valid).toBe(false);
|
|
200
|
+
expect(r.trigger).toBe('GRANT');
|
|
201
|
+
});
|
|
202
|
+
it('should reject SHUTDOWN', () => {
|
|
203
|
+
const r = validator.validate('SHUTDOWN', ctx);
|
|
204
|
+
expect(r.valid).toBe(false);
|
|
205
|
+
expect(r.trigger).toBe('SHUTDOWN');
|
|
206
|
+
});
|
|
207
|
+
});
|
|
208
|
+
});
|
|
209
|
+
// ---------------------------------------------------------------
|
|
210
|
+
// validateFullQuery convenience method
|
|
211
|
+
// ---------------------------------------------------------------
|
|
212
|
+
describe('validateFullQuery', () => {
|
|
213
|
+
it('should pass valid SELECT', () => {
|
|
214
|
+
const r = validator.validateFullQuery('SELECT 1 AS One');
|
|
215
|
+
expect(r.valid).toBe(true);
|
|
216
|
+
});
|
|
217
|
+
it('should pass valid CTE', () => {
|
|
218
|
+
const r = validator.validateFullQuery('WITH cte AS (SELECT 1) SELECT * FROM cte');
|
|
219
|
+
expect(r.valid).toBe(true);
|
|
220
|
+
});
|
|
221
|
+
it('should fail on mutation', () => {
|
|
222
|
+
const r = validator.validateFullQuery("DELETE FROM Users");
|
|
223
|
+
expect(r.valid).toBe(false);
|
|
224
|
+
});
|
|
225
|
+
it('should fail on empty string', () => {
|
|
226
|
+
const r = validator.validateFullQuery('');
|
|
227
|
+
expect(r.valid).toBe(false);
|
|
228
|
+
});
|
|
229
|
+
it('should normalize literal \\n sequences and pass SQL with comment header', () => {
|
|
230
|
+
// Agent-generated SQL arrives with literal \n instead of real newlines
|
|
231
|
+
const sql = '-- Header Comment\\nSELECT TOP 10 * FROM Users\\nWHERE Status = \'Active\'';
|
|
232
|
+
const r = validator.validateFullQuery(sql);
|
|
233
|
+
expect(r.valid).toBe(true);
|
|
234
|
+
});
|
|
235
|
+
it('should normalize literal \\r\\n sequences', () => {
|
|
236
|
+
const sql = '-- Header\\r\\nSELECT 1 AS One';
|
|
237
|
+
const r = validator.validateFullQuery(sql);
|
|
238
|
+
expect(r.valid).toBe(true);
|
|
239
|
+
});
|
|
240
|
+
it('should still reject dangerous queries after normalization', () => {
|
|
241
|
+
const sql = '-- Innocent header\\nDELETE FROM Users';
|
|
242
|
+
const r = validator.validateFullQuery(sql);
|
|
243
|
+
expect(r.valid).toBe(false);
|
|
244
|
+
});
|
|
245
|
+
});
|
|
246
|
+
// ---------------------------------------------------------------
|
|
247
|
+
// Existing contexts (where_clause, aggregate, etc.)
|
|
248
|
+
// ---------------------------------------------------------------
|
|
249
|
+
describe('where_clause context', () => {
|
|
250
|
+
it('should accept simple field comparison', () => {
|
|
251
|
+
const r = validator.validate("Status = 'Active'", { context: 'where_clause' });
|
|
252
|
+
expect(r.valid).toBe(true);
|
|
253
|
+
});
|
|
254
|
+
it('should accept LIKE expression', () => {
|
|
255
|
+
const r = validator.validate("Name LIKE '%test%'", { context: 'where_clause' });
|
|
256
|
+
expect(r.valid).toBe(true);
|
|
257
|
+
});
|
|
258
|
+
it('should accept BETWEEN', () => {
|
|
259
|
+
const r = validator.validate("Age BETWEEN 18 AND 65", { context: 'where_clause' });
|
|
260
|
+
expect(r.valid).toBe(true);
|
|
261
|
+
});
|
|
262
|
+
it('should reject SELECT (subquery) by default', () => {
|
|
263
|
+
const r = validator.validate("ID IN (SELECT ID FROM Users)", { context: 'where_clause' });
|
|
264
|
+
expect(r.valid).toBe(false);
|
|
265
|
+
expect(r.trigger).toBe('SELECT');
|
|
266
|
+
});
|
|
267
|
+
it('should allow SELECT when allowSubqueries is true', () => {
|
|
268
|
+
const r = validator.validate("ID IN (SELECT ID FROM Users)", { context: 'where_clause', allowSubqueries: true });
|
|
269
|
+
expect(r.valid).toBe(true);
|
|
270
|
+
});
|
|
271
|
+
it('should reject comments', () => {
|
|
272
|
+
const r = validator.validate("Status = 'Active' -- comment", { context: 'where_clause' });
|
|
273
|
+
expect(r.valid).toBe(false);
|
|
274
|
+
expect(r.trigger).toBe('comment');
|
|
275
|
+
});
|
|
276
|
+
it('should reject semicolons', () => {
|
|
277
|
+
const r = validator.validate("1=1; DROP TABLE Users", { context: 'where_clause' });
|
|
278
|
+
expect(r.valid).toBe(false);
|
|
279
|
+
// DROP is detected before semicolon in the keyword scan
|
|
280
|
+
expect(r.trigger).toBe('DROP');
|
|
281
|
+
});
|
|
282
|
+
});
|
|
283
|
+
describe('aggregate context', () => {
|
|
284
|
+
it('should accept COUNT expression', () => {
|
|
285
|
+
const r = validator.validate('COUNT(ID)', { context: 'aggregate' });
|
|
286
|
+
expect(r.valid).toBe(true);
|
|
287
|
+
});
|
|
288
|
+
it('should accept SUM expression', () => {
|
|
289
|
+
const r = validator.validate('SUM(OrderTotal)', { context: 'aggregate' });
|
|
290
|
+
expect(r.valid).toBe(true);
|
|
291
|
+
});
|
|
292
|
+
it('should reject non-aggregate expression', () => {
|
|
293
|
+
const r = validator.validate('FieldName', { context: 'aggregate' });
|
|
294
|
+
expect(r.valid).toBe(false);
|
|
295
|
+
expect(r.error).toContain('aggregate function');
|
|
296
|
+
});
|
|
297
|
+
it('should allow non-aggregate when requireAggregate is false', () => {
|
|
298
|
+
const r = validator.validate('FieldName', { context: 'aggregate', requireAggregate: false });
|
|
299
|
+
expect(r.valid).toBe(true);
|
|
300
|
+
});
|
|
301
|
+
});
|
|
302
|
+
describe('order_by context', () => {
|
|
303
|
+
it('should accept simple field name', () => {
|
|
304
|
+
const r = validator.validate('Name ASC', { context: 'order_by' });
|
|
305
|
+
expect(r.valid).toBe(true);
|
|
306
|
+
});
|
|
307
|
+
it('should accept DESC ordering', () => {
|
|
308
|
+
const r = validator.validate('CreatedAt DESC', { context: 'order_by' });
|
|
309
|
+
expect(r.valid).toBe(true);
|
|
310
|
+
});
|
|
311
|
+
});
|
|
312
|
+
// ---------------------------------------------------------------
|
|
313
|
+
// String literal handling (false positive prevention)
|
|
314
|
+
// ---------------------------------------------------------------
|
|
315
|
+
describe('string literal handling', () => {
|
|
316
|
+
it('should not flag keywords inside string literals', () => {
|
|
317
|
+
const r = validator.validate("SELECT * FROM __mj.vwUsers WHERE Description = 'This will DROP the ball'", { context: 'full_query' });
|
|
318
|
+
// The word DROP is inside a string literal, so it should be stripped before checking
|
|
319
|
+
expect(r.valid).toBe(true);
|
|
320
|
+
});
|
|
321
|
+
it('should not flag INSERT inside a string literal', () => {
|
|
322
|
+
const r = validator.validate("SELECT * FROM __mj.vwLogs WHERE Message = 'INSERT completed successfully'", { context: 'full_query' });
|
|
323
|
+
expect(r.valid).toBe(true);
|
|
324
|
+
});
|
|
325
|
+
});
|
|
326
|
+
// ---------------------------------------------------------------
|
|
327
|
+
// Constants exports
|
|
328
|
+
// ---------------------------------------------------------------
|
|
329
|
+
describe('exported constants', () => {
|
|
330
|
+
it('DANGEROUS_SQL_KEYWORDS should include key mutation keywords', () => {
|
|
331
|
+
expect(DANGEROUS_SQL_KEYWORDS).toContain('INSERT');
|
|
332
|
+
expect(DANGEROUS_SQL_KEYWORDS).toContain('UPDATE');
|
|
333
|
+
expect(DANGEROUS_SQL_KEYWORDS).toContain('DELETE');
|
|
334
|
+
expect(DANGEROUS_SQL_KEYWORDS).toContain('DROP');
|
|
335
|
+
expect(DANGEROUS_SQL_KEYWORDS).toContain('EXEC');
|
|
336
|
+
});
|
|
337
|
+
it('FULL_QUERY_ALLOWED_KEYWORDS should include set operations', () => {
|
|
338
|
+
expect(FULL_QUERY_ALLOWED_KEYWORDS).toContain('UNION');
|
|
339
|
+
expect(FULL_QUERY_ALLOWED_KEYWORDS).toContain('EXISTS');
|
|
340
|
+
expect(FULL_QUERY_ALLOWED_KEYWORDS).toContain('ANY');
|
|
341
|
+
expect(FULL_QUERY_ALLOWED_KEYWORDS).toContain('ALL');
|
|
342
|
+
});
|
|
343
|
+
it('ALLOWED_SQL_FUNCTIONS should include aggregate functions', () => {
|
|
344
|
+
expect(ALLOWED_SQL_FUNCTIONS.aggregates).toContain('COUNT');
|
|
345
|
+
expect(ALLOWED_SQL_FUNCTIONS.aggregates).toContain('SUM');
|
|
346
|
+
expect(ALLOWED_SQL_FUNCTIONS.aggregates).toContain('AVG');
|
|
347
|
+
});
|
|
348
|
+
});
|
|
349
|
+
});
|
|
350
|
+
//# sourceMappingURL=SQLExpressionValidator.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SQLExpressionValidator.test.js","sourceRoot":"","sources":["../../src/__tests__/SQLExpressionValidator.test.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAChE,cAAc,aAAa,CAAA;AAC3B,cAAc,QAAQ,CAAA;AACtB,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,2BAA2B,CAAA;AACzC,cAAc,0BAA0B,CAAA;AACxC,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AAMjC,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAChE,cAAc,aAAa,CAAA;AAC3B,cAAc,QAAQ,CAAA;AACtB,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,2BAA2B,CAAA;AACzC,cAAc,0BAA0B,CAAA;AACxC,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AAMjC,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,wBAAwB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -18,6 +18,7 @@ export * from './EncryptionUtils.js';
|
|
|
18
18
|
// Export the main classes
|
|
19
19
|
export * from './Global.js';
|
|
20
20
|
export * from './RegisterClass.js';
|
|
21
|
+
export * from './DynamicPackageLoader.js';
|
|
21
22
|
// NOTE: RegisterForStartup has moved to @memberjunction/core
|
|
22
23
|
// Import from there instead of here
|
|
23
24
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAChE,cAAc,aAAa,CAAA;AAC3B,cAAc,QAAQ,CAAA;AACtB,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,2BAA2B,CAAA;AACzC,cAAc,0BAA0B,CAAA;AACxC,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AAEjC,2DAA2D;AAC3D,oCAAoC;AAEpC,0BAA0B;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAChE,cAAc,aAAa,CAAA;AAC3B,cAAc,QAAQ,CAAA;AACtB,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,2BAA2B,CAAA;AACzC,cAAc,0BAA0B,CAAA;AACxC,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AAEjC,2DAA2D;AAC3D,oCAAoC;AAEpC,0BAA0B;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,wBAAwB,CAAA;AAEtC,6DAA6D;AAC7D,oCAAoC"}
|
package/package.json
CHANGED
package/dist/Core.d.ts
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
export * from './generic/metadata.js';
|
|
2
|
-
export * from './generic/baseInfo.js';
|
|
3
|
-
export * from './generic/baseEngine.js';
|
|
4
|
-
export * from './views/runView.js';
|
|
5
|
-
export * from './generic/runReport.js';
|
|
6
|
-
export * from './generic/runQuery.js';
|
|
7
|
-
export * from './generic/interfaces.js';
|
|
8
|
-
export * from './generic/baseEntity.js';
|
|
9
|
-
export * from './generic/applicationInfo.js';
|
|
10
|
-
export * from './generic/providerBase.js';
|
|
11
|
-
export * from './generic/entityInfo.js';
|
|
12
|
-
export * from './generic/securityInfo.js';
|
|
13
|
-
export * from './generic/transactionGroup.js';
|
|
14
|
-
export * from './generic/util.js';
|
|
15
|
-
export * from './generic/logging.js';
|
|
16
|
-
export * from './generic/queryInfo.js';
|
|
17
|
-
export * from './generic/querySQLFilters.js';
|
|
18
|
-
export * from './generic/runQuerySQLFilterImplementations.js';
|
|
19
|
-
export * from './generic/libraryInfo.js';
|
|
20
|
-
export * from './generic/QueryCacheConfig.js';
|
|
21
|
-
export * from './generic/QueryCache.js';
|
|
22
|
-
export * from './generic/explorerNavigationItem.js';
|
|
23
|
-
export * from './generic/compositeKey.js';
|
|
24
|
-
export * from './generic/authEvaluator.js';
|
|
25
|
-
export * from './generic/metadataUtil.js';
|
|
26
|
-
export * from './generic/authTypes.js';
|
|
27
|
-
export * from './generic/databaseProviderBase.js';
|
|
28
|
-
export declare function SetProvider(provider: any): void;
|
|
29
|
-
//# sourceMappingURL=Core.d.ts.map
|
package/dist/Core.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Core.d.ts","sourceRoot":"","sources":["../src/Core.ts"],"names":[],"mappings":"AAMA,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4CAA4C,CAAC;AAC3D,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,kCAAkC,CAAC;AACjD,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,gCAAgC,CAAC;AAE/C,wBAAgB,WAAW,CAAC,QAAQ,KAAA,QAMnC"}
|
package/dist/Core.js
DELETED
|
@@ -1,58 +0,0 @@
|
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.SetProvider = void 0;
|
|
18
|
-
const baseEntity_1 = require("./generic/baseEntity.js");
|
|
19
|
-
const metadata_1 = require("./generic/metadata.js");
|
|
20
|
-
const runQuery_1 = require("./generic/runQuery.js");
|
|
21
|
-
const runReport_1 = require("./generic/runReport.js");
|
|
22
|
-
const runView_1 = require("./views/runView.js");
|
|
23
|
-
__exportStar(require("./generic/metadata.js"), exports);
|
|
24
|
-
__exportStar(require("./generic/baseInfo.js"), exports);
|
|
25
|
-
__exportStar(require("./generic/baseEngine.js"), exports);
|
|
26
|
-
__exportStar(require("./views/runView.js"), exports);
|
|
27
|
-
__exportStar(require("./generic/runReport.js"), exports);
|
|
28
|
-
__exportStar(require("./generic/runQuery.js"), exports);
|
|
29
|
-
__exportStar(require("./generic/interfaces.js"), exports);
|
|
30
|
-
__exportStar(require("./generic/baseEntity.js"), exports);
|
|
31
|
-
__exportStar(require("./generic/applicationInfo.js"), exports);
|
|
32
|
-
__exportStar(require("./generic/providerBase.js"), exports);
|
|
33
|
-
__exportStar(require("./generic/entityInfo.js"), exports);
|
|
34
|
-
__exportStar(require("./generic/securityInfo.js"), exports);
|
|
35
|
-
__exportStar(require("./generic/transactionGroup.js"), exports);
|
|
36
|
-
__exportStar(require("./generic/util.js"), exports);
|
|
37
|
-
__exportStar(require("./generic/logging.js"), exports);
|
|
38
|
-
__exportStar(require("./generic/queryInfo.js"), exports);
|
|
39
|
-
__exportStar(require("./generic/querySQLFilters.js"), exports);
|
|
40
|
-
__exportStar(require("./generic/runQuerySQLFilterImplementations.js"), exports);
|
|
41
|
-
__exportStar(require("./generic/libraryInfo.js"), exports);
|
|
42
|
-
__exportStar(require("./generic/QueryCacheConfig.js"), exports);
|
|
43
|
-
__exportStar(require("./generic/QueryCache.js"), exports);
|
|
44
|
-
__exportStar(require("./generic/explorerNavigationItem.js"), exports);
|
|
45
|
-
__exportStar(require("./generic/compositeKey.js"), exports);
|
|
46
|
-
__exportStar(require("./generic/authEvaluator.js"), exports);
|
|
47
|
-
__exportStar(require("./generic/metadataUtil.js"), exports);
|
|
48
|
-
__exportStar(require("./generic/authTypes.js"), exports);
|
|
49
|
-
__exportStar(require("./generic/databaseProviderBase.js"), exports);
|
|
50
|
-
function SetProvider(provider) {
|
|
51
|
-
metadata_1.Metadata.Provider = provider;
|
|
52
|
-
baseEntity_1.BaseEntity.Provider = provider;
|
|
53
|
-
runView_1.RunView.Provider = provider;
|
|
54
|
-
runReport_1.RunReport.Provider = provider;
|
|
55
|
-
runQuery_1.RunQuery.Provider = provider;
|
|
56
|
-
}
|
|
57
|
-
exports.SetProvider = SetProvider;
|
|
58
|
-
//# sourceMappingURL=Core.js.map
|
package/dist/Core.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Core.js","sourceRoot":"","sources":["../src/Core.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,qDAAkD;AAClD,iDAA8C;AAC9C,iDAA8C;AAC9C,mDAAgD;AAChD,6CAA0C;AAE1C,qDAAmC;AACnC,qDAAmC;AACnC,uDAAqC;AACrC,kDAAgC;AAChC,sDAAoC;AACpC,qDAAmC;AACnC,uDAAqC;AACrC,uDAAqC;AACrC,4DAA0C;AAC1C,yDAAuC;AACvC,uDAAqC;AACrC,yDAAuC;AACvC,6DAA2C;AAC3C,iDAA+B;AAC/B,oDAAkC;AAClC,sDAAoC;AACpC,4DAA0C;AAC1C,6EAA2D;AAC3D,wDAAsC;AACtC,6DAA2C;AAC3C,uDAAqC;AACrC,mEAAiD;AACjD,yDAAuC;AACvC,0DAAwC;AACxC,yDAAuC;AACvC,sDAAoC;AAEpC,iEAA+C;AAE/C,SAAgB,WAAW,CAAC,QAAQ;IAClC,mBAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,uBAAU,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC/B,iBAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC5B,qBAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC9B,mBAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC/B,CAAC;AAND,kCAMC"}
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import { QueryCacheConfig, QueryCacheEntry } from './QueryCacheConfig.js';
|
|
2
|
-
/**
|
|
3
|
-
* LRU (Least Recently Used) cache implementation for query results with TTL support.
|
|
4
|
-
* This cache provides efficient storage and retrieval of query results with automatic
|
|
5
|
-
* expiration based on time-to-live settings and size limits.
|
|
6
|
-
*/
|
|
7
|
-
export declare class QueryCache {
|
|
8
|
-
private cache;
|
|
9
|
-
private accessOrder;
|
|
10
|
-
private readonly DEFAULT_MAX_SIZE;
|
|
11
|
-
private readonly DEFAULT_TTL_MINUTES;
|
|
12
|
-
/**
|
|
13
|
-
* Performance statistics for cache monitoring
|
|
14
|
-
*/
|
|
15
|
-
private stats;
|
|
16
|
-
/**
|
|
17
|
-
* Generate a deterministic cache key from query ID and parameters.
|
|
18
|
-
* The key is created by sorting parameter keys and creating a stable JSON representation.
|
|
19
|
-
*
|
|
20
|
-
* @param queryId - The unique query identifier
|
|
21
|
-
* @param params - The query parameters
|
|
22
|
-
* @returns A stable cache key string
|
|
23
|
-
*/
|
|
24
|
-
private getCacheKey;
|
|
25
|
-
/**
|
|
26
|
-
* Get cached results if available and not expired.
|
|
27
|
-
* Updates access order for LRU tracking and increments hit counter.
|
|
28
|
-
*
|
|
29
|
-
* @param queryId - The query identifier
|
|
30
|
-
* @param params - The query parameters
|
|
31
|
-
* @param config - Cache configuration settings
|
|
32
|
-
* @returns The cached entry if valid, null otherwise
|
|
33
|
-
*/
|
|
34
|
-
get(queryId: string, params: Record<string, any>, config: QueryCacheConfig): QueryCacheEntry | null;
|
|
35
|
-
/**
|
|
36
|
-
* Cache query results with TTL and LRU eviction.
|
|
37
|
-
* Evicts least recently used entries when at capacity.
|
|
38
|
-
*
|
|
39
|
-
* @param queryId - The query identifier
|
|
40
|
-
* @param params - The query parameters
|
|
41
|
-
* @param results - The query results to cache
|
|
42
|
-
* @param config - Cache configuration settings
|
|
43
|
-
*/
|
|
44
|
-
set(queryId: string, params: Record<string, any>, results: any[], config: QueryCacheConfig): void;
|
|
45
|
-
/**
|
|
46
|
-
* Clear cache for specific query or all queries.
|
|
47
|
-
*
|
|
48
|
-
* @param queryId - Optional query ID to clear specific query cache
|
|
49
|
-
*/
|
|
50
|
-
clear(queryId?: string): void;
|
|
51
|
-
/**
|
|
52
|
-
* Update the access order for LRU tracking.
|
|
53
|
-
* Moves the accessed key to the end of the array (most recently used).
|
|
54
|
-
*
|
|
55
|
-
* @param key - The cache key that was accessed
|
|
56
|
-
*/
|
|
57
|
-
private updateAccessOrder;
|
|
58
|
-
/**
|
|
59
|
-
* Remove a key from the access order tracking.
|
|
60
|
-
*
|
|
61
|
-
* @param key - The cache key to remove
|
|
62
|
-
*/
|
|
63
|
-
private removeFromAccessOrder;
|
|
64
|
-
/**
|
|
65
|
-
* Get cache statistics for monitoring and debugging.
|
|
66
|
-
*
|
|
67
|
-
* @returns Object containing cache performance metrics
|
|
68
|
-
*/
|
|
69
|
-
getStats(): {
|
|
70
|
-
size: number;
|
|
71
|
-
hits: number;
|
|
72
|
-
misses: number;
|
|
73
|
-
hitRate: number;
|
|
74
|
-
evictions: number;
|
|
75
|
-
expirations: number;
|
|
76
|
-
};
|
|
77
|
-
/**
|
|
78
|
-
* Clean up expired entries from the cache.
|
|
79
|
-
* This can be called periodically to free up memory.
|
|
80
|
-
*
|
|
81
|
-
* @returns Number of expired entries removed
|
|
82
|
-
*/
|
|
83
|
-
cleanupExpired(): number;
|
|
84
|
-
}
|
|
85
|
-
//# sourceMappingURL=QueryCache.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"QueryCache.d.ts","sourceRoot":"","sources":["../../src/generic/QueryCache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGvE;;;;GAIG;AACH,qBAAa,UAAU;IACnB,OAAO,CAAC,KAAK,CAAsC;IACnD,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAQ;IACzC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAM;IAE1C;;OAEG;IACH,OAAO,CAAC,KAAK,CAKX;IAEF;;;;;;;OAOG;IACH,OAAO,CAAC,WAAW;IAQnB;;;;;;;;OAQG;IACH,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,gBAAgB,GAAG,eAAe,GAAG,IAAI;IA+BnG;;;;;;;;OAQG;IACH,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,gBAAgB,GAAG,IAAI;IA6BjG;;;;OAIG;IACH,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAmB7B;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IAQzB;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAO7B;;;;OAIG;IACH,QAAQ,IAAI;QACR,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;KACvB;IAcD;;;;;OAKG;IACH,cAAc,IAAI,MAAM;CAmB3B"}
|