callman-core 1.15.0 → 1.16.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/dist/host/connections.d.ts +3 -0
- package/dist/host/connections.d.ts.map +1 -1
- package/dist/host/connections.js +3 -0
- package/dist/host/connections.js.map +1 -1
- package/dist/host/db/connectionMapping.d.ts +3 -1
- package/dist/host/db/connectionMapping.d.ts.map +1 -1
- package/dist/host/db/connectionMapping.js +3 -0
- package/dist/host/db/connectionMapping.js.map +1 -1
- package/dist/host/db/db-query-reference.d.ts.map +1 -1
- package/dist/host/db/db-query-reference.js +12 -1
- package/dist/host/db/db-query-reference.js.map +1 -1
- package/dist/host/db/mssqlAdapter.d.ts +8 -0
- package/dist/host/db/mssqlAdapter.d.ts.map +1 -0
- package/dist/host/db/mssqlAdapter.js +118 -0
- package/dist/host/db/mssqlAdapter.js.map +1 -0
- package/dist/host/db/queryExecutor.d.ts.map +1 -1
- package/dist/host/db/queryExecutor.js +8 -0
- package/dist/host/db/queryExecutor.js.map +1 -1
- package/dist/host/db/sqlNormalize.d.ts +1 -1
- package/dist/host/db/sqlNormalize.d.ts.map +1 -1
- package/dist/host/db/types.d.ts +5 -1
- package/dist/host/db/types.d.ts.map +1 -1
- package/dist/host/index.d.ts +2 -1
- package/dist/host/index.d.ts.map +1 -1
- package/dist/host/index.js +2 -1
- package/dist/host/index.js.map +1 -1
- package/dist/host/redis/redisService.d.ts +17 -0
- package/dist/host/redis/redisService.d.ts.map +1 -1
- package/dist/host/redis/redisService.js +233 -40
- package/dist/host/redis/redisService.js.map +1 -1
- package/dist/host/redis/types.d.ts +4 -0
- package/dist/host/redis/types.d.ts.map +1 -1
- package/dist/scenario-runner/adapters/helpers/request-helpers.d.ts.map +1 -1
- package/dist/scenario-runner/adapters/helpers/request-helpers.js +28 -2
- package/dist/scenario-runner/adapters/helpers/request-helpers.js.map +1 -1
- package/dist/scenario-runner/condition.d.ts +4 -0
- package/dist/scenario-runner/condition.d.ts.map +1 -1
- package/dist/scenario-runner/condition.js +66 -7
- package/dist/scenario-runner/condition.js.map +1 -1
- package/dist/scenario-runner/conditionTypes.d.ts +14 -0
- package/dist/scenario-runner/conditionTypes.d.ts.map +1 -1
- package/dist/scenario-runner/extraction.d.ts +10 -0
- package/dist/scenario-runner/extraction.d.ts.map +1 -0
- package/dist/scenario-runner/extraction.js +147 -0
- package/dist/scenario-runner/extraction.js.map +1 -0
- package/dist/scenario-runner/index.d.ts +1 -0
- package/dist/scenario-runner/index.d.ts.map +1 -1
- package/dist/scenario-runner/index.js +2 -0
- package/dist/scenario-runner/index.js.map +1 -1
- package/dist/scenario-runner/runScenario.d.ts.map +1 -1
- package/dist/scenario-runner/runScenario.js +113 -6
- package/dist/scenario-runner/runScenario.js.map +1 -1
- package/dist/scenario-runner/types.d.ts +23 -1
- package/dist/scenario-runner/types.d.ts.map +1 -1
- package/dist-cjs/host/connections.js +3 -0
- package/dist-cjs/host/connections.js.map +1 -1
- package/dist-cjs/host/db/connectionMapping.js +3 -0
- package/dist-cjs/host/db/connectionMapping.js.map +1 -1
- package/dist-cjs/host/db/db-query-reference.js +12 -1
- package/dist-cjs/host/db/db-query-reference.js.map +1 -1
- package/dist-cjs/host/db/mssqlAdapter.js +124 -0
- package/dist-cjs/host/db/mssqlAdapter.js.map +1 -0
- package/dist-cjs/host/db/queryExecutor.js +8 -0
- package/dist-cjs/host/db/queryExecutor.js.map +1 -1
- package/dist-cjs/host/index.js +8 -1
- package/dist-cjs/host/index.js.map +1 -1
- package/dist-cjs/host/redis/redisService.js +237 -42
- package/dist-cjs/host/redis/redisService.js.map +1 -1
- package/dist-cjs/scenario-runner/adapters/helpers/request-helpers.js +28 -2
- package/dist-cjs/scenario-runner/adapters/helpers/request-helpers.js.map +1 -1
- package/dist-cjs/scenario-runner/condition.js +68 -8
- package/dist-cjs/scenario-runner/condition.js.map +1 -1
- package/dist-cjs/scenario-runner/extraction.js +151 -0
- package/dist-cjs/scenario-runner/extraction.js.map +1 -0
- package/dist-cjs/scenario-runner/index.js +2 -0
- package/dist-cjs/scenario-runner/index.js.map +1 -1
- package/dist-cjs/scenario-runner/runScenario.js +112 -5
- package/dist-cjs/scenario-runner/runScenario.js.map +1 -1
- package/package.json +3 -1
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// SQL Server adapter (`mssql` package — pure-JS tedious under the hood, no
|
|
3
|
+
// native build, safe for Electron). Lazy-loaded via `loadOptionalModule` like
|
|
4
|
+
// the other drivers.
|
|
5
|
+
//
|
|
6
|
+
// Positional params bind as @p1..@pN: the node's `params[i]` becomes named
|
|
7
|
+
// input `p{i+1}` — T-SQL has no `?` placeholders, and rewriting them inside
|
|
8
|
+
// the SQL text would risk corrupting string literals.
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.executeMssqlQuery = exports.testMssqlConnection = exports.__setMssqlDriverForTests = void 0;
|
|
11
|
+
const lazy_js_1 = require("../lazy.js");
|
|
12
|
+
const sqlNormalize_js_1 = require("./sqlNormalize.js");
|
|
13
|
+
const unwrap = (mod) => mod && mod.default && typeof mod.ConnectionPool !== "function" ? mod.default : mod;
|
|
14
|
+
// Test-only seam (see mongoAdapter).
|
|
15
|
+
let mssqlDriverOverride = null;
|
|
16
|
+
const __setMssqlDriverForTests = (driver) => {
|
|
17
|
+
mssqlDriverOverride = driver;
|
|
18
|
+
};
|
|
19
|
+
exports.__setMssqlDriverForTests = __setMssqlDriverForTests;
|
|
20
|
+
const loadMssqlDriver = async () => {
|
|
21
|
+
if (mssqlDriverOverride) {
|
|
22
|
+
return mssqlDriverOverride;
|
|
23
|
+
}
|
|
24
|
+
try {
|
|
25
|
+
return unwrap(await (0, lazy_js_1.loadOptionalModule)("mssql"));
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
throw new Error("SQL Server driver (`mssql`) is not installed. Install `mssql` to use SQL Server connections.");
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
// `GO` is a client-tool batch separator, not T-SQL — the driver would error
|
|
32
|
+
// cryptically mid-batch. Reject it up front with an actionable message.
|
|
33
|
+
const GO_SEPARATOR = /^\s*GO(\s*;)?\s*$/im;
|
|
34
|
+
const buildPoolConfig = (connection) => {
|
|
35
|
+
if (connection.connectionString?.trim()) {
|
|
36
|
+
// ADO-style connection strings are parsed natively by the driver.
|
|
37
|
+
return connection.connectionString.trim();
|
|
38
|
+
}
|
|
39
|
+
const instanceName = connection.instanceName?.trim() || undefined;
|
|
40
|
+
return {
|
|
41
|
+
server: connection.host,
|
|
42
|
+
// A named instance resolves its port via SQL Browser (UDP 1434) — a fixed
|
|
43
|
+
// port would override and usually break it, so it is dropped then.
|
|
44
|
+
...(instanceName ? {} : { port: connection.port }),
|
|
45
|
+
database: connection.database,
|
|
46
|
+
user: connection.username || undefined,
|
|
47
|
+
password: connection.password || undefined,
|
|
48
|
+
connectionTimeout: 8000,
|
|
49
|
+
options: {
|
|
50
|
+
instanceName,
|
|
51
|
+
// Pinned explicitly — the driver's default flipped between majors.
|
|
52
|
+
encrypt: Boolean(connection.ssl),
|
|
53
|
+
trustServerCertificate: Boolean(connection.trustServerCertificate),
|
|
54
|
+
},
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
// Explicit recursion (NOT a JSON.stringify replacer): Buffer/Date define
|
|
58
|
+
// toJSON, which JSON.stringify applies BEFORE the replacer sees the value —
|
|
59
|
+
// a replacer-based normalize would emit `{type:"Buffer",data:[…]}`.
|
|
60
|
+
const normalizeMssqlValue = (value) => {
|
|
61
|
+
if (value === null || typeof value === "undefined") {
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
if (typeof value === "bigint") {
|
|
65
|
+
return value.toString();
|
|
66
|
+
}
|
|
67
|
+
if (value instanceof Date) {
|
|
68
|
+
return value.toISOString();
|
|
69
|
+
}
|
|
70
|
+
if (Buffer.isBuffer(value) || value instanceof Uint8Array) {
|
|
71
|
+
return Buffer.from(value).toString("hex");
|
|
72
|
+
}
|
|
73
|
+
if (Array.isArray(value)) {
|
|
74
|
+
return value.map(normalizeMssqlValue);
|
|
75
|
+
}
|
|
76
|
+
if (typeof value === "object") {
|
|
77
|
+
return Object.fromEntries(Object.entries(value).map(([key, entry]) => [
|
|
78
|
+
key,
|
|
79
|
+
normalizeMssqlValue(entry),
|
|
80
|
+
]));
|
|
81
|
+
}
|
|
82
|
+
return value;
|
|
83
|
+
};
|
|
84
|
+
const withPool = async (connection, fn) => {
|
|
85
|
+
const sql = await loadMssqlDriver();
|
|
86
|
+
const pool = new sql.ConnectionPool(buildPoolConfig(connection));
|
|
87
|
+
try {
|
|
88
|
+
await pool.connect();
|
|
89
|
+
return await fn(pool);
|
|
90
|
+
}
|
|
91
|
+
finally {
|
|
92
|
+
await pool.close();
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
const testMssqlConnection = async (connection) => {
|
|
96
|
+
await withPool(connection, async (pool) => {
|
|
97
|
+
await pool.request().query("SELECT 1 AS ok");
|
|
98
|
+
});
|
|
99
|
+
};
|
|
100
|
+
exports.testMssqlConnection = testMssqlConnection;
|
|
101
|
+
const executeMssqlQuery = async (connection, query, params = []) => {
|
|
102
|
+
if (GO_SEPARATOR.test(query)) {
|
|
103
|
+
throw new Error('T-SQL "GO" batch separators are not supported — send one statement per query.');
|
|
104
|
+
}
|
|
105
|
+
return withPool(connection, async (pool) => {
|
|
106
|
+
const request = pool.request();
|
|
107
|
+
params.forEach((value, index) => {
|
|
108
|
+
request.input(`p${index + 1}`, value);
|
|
109
|
+
});
|
|
110
|
+
const finalQuery = (0, sqlNormalize_js_1.stripTrailingSqlTerminator)(query, "mssql");
|
|
111
|
+
const result = await request.query(finalQuery);
|
|
112
|
+
const recordset = Array.isArray(result?.recordset) ? result.recordset : [];
|
|
113
|
+
if (recordset.length > 0 || result?.recordset) {
|
|
114
|
+
const rows = recordset.map(normalizeMssqlValue);
|
|
115
|
+
return { rows, rowCount: rows.length };
|
|
116
|
+
}
|
|
117
|
+
const affected = Array.isArray(result?.rowsAffected)
|
|
118
|
+
? result.rowsAffected.reduce((sum, count) => sum + count, 0)
|
|
119
|
+
: 0;
|
|
120
|
+
return { rows: [], rowCount: affected };
|
|
121
|
+
});
|
|
122
|
+
};
|
|
123
|
+
exports.executeMssqlQuery = executeMssqlQuery;
|
|
124
|
+
//# sourceMappingURL=mssqlAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mssqlAdapter.js","sourceRoot":"","sources":["../../../src/host/db/mssqlAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,7 @@ const mysqlAdapter_js_1 = require("./mysqlAdapter.js");
|
|
|
11
11
|
const oracleAdapter_js_1 = require("./oracleAdapter.js");
|
|
12
12
|
const postgresAdapter_js_1 = require("./postgresAdapter.js");
|
|
13
13
|
const templateResolver_js_1 = require("./templateResolver.js");
|
|
14
|
+
const mssqlAdapter_js_1 = require("./mssqlAdapter.js");
|
|
14
15
|
const executeAgainstConnection = async (connection, resolvedQuery, params = []) => {
|
|
15
16
|
switch (connection.type) {
|
|
16
17
|
case "mongo":
|
|
@@ -19,6 +20,8 @@ const executeAgainstConnection = async (connection, resolvedQuery, params = [])
|
|
|
19
20
|
return (0, postgresAdapter_js_1.executePostgresQuery)(connection, resolvedQuery, params);
|
|
20
21
|
case "mysql":
|
|
21
22
|
return (0, mysqlAdapter_js_1.executeMysqlQuery)(connection, resolvedQuery, params);
|
|
23
|
+
case "mssql":
|
|
24
|
+
return (0, mssqlAdapter_js_1.executeMssqlQuery)(connection, resolvedQuery, params);
|
|
22
25
|
default:
|
|
23
26
|
return (0, oracleAdapter_js_1.executeOracleQuery)(connection, resolvedQuery);
|
|
24
27
|
}
|
|
@@ -42,9 +45,11 @@ const normalizeConnectionInput = (connectionInput) => ({
|
|
|
42
45
|
port: Number(connectionInput.port),
|
|
43
46
|
database: connectionInput.database?.trim() || undefined,
|
|
44
47
|
serviceName: connectionInput.serviceName?.trim() || undefined,
|
|
48
|
+
instanceName: connectionInput.instanceName?.trim() || undefined,
|
|
45
49
|
username: connectionInput.username.trim(),
|
|
46
50
|
password: connectionInput.password,
|
|
47
51
|
ssl: connectionInput.ssl,
|
|
52
|
+
trustServerCertificate: connectionInput.trustServerCertificate,
|
|
48
53
|
});
|
|
49
54
|
// Connectivity check for a draft/saved connection. Ported from the desktop
|
|
50
55
|
// host so consumers (Electron `db:test-connection`) don't reimplement it.
|
|
@@ -64,6 +69,9 @@ const testDbConnection = async (connectionInput) => {
|
|
|
64
69
|
else if (connection.type === "mysql") {
|
|
65
70
|
await (0, mysqlAdapter_js_1.testMysqlConnection)(connection);
|
|
66
71
|
}
|
|
72
|
+
else if (connection.type === "mssql") {
|
|
73
|
+
await (0, mssqlAdapter_js_1.testMssqlConnection)(connection);
|
|
74
|
+
}
|
|
67
75
|
else {
|
|
68
76
|
await (0, oracleAdapter_js_1.testOracleConnection)(connection);
|
|
69
77
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queryExecutor.js","sourceRoot":"","sources":["../../../src/host/db/queryExecutor.ts"],"names":[],"mappings":";AAAA,2CAA2C;AAC3C,+EAA+E;AAC/E,gFAAgF;AAChF,wEAAwE;;;AAExE,qDAA8C;AAE9C,uDAA2E;AAC3E,uDAA2E;AAC3E,yDAA8E;AAC9E,6DAAoF;AACpF,+DAAwD;
|
|
1
|
+
{"version":3,"file":"queryExecutor.js","sourceRoot":"","sources":["../../../src/host/db/queryExecutor.ts"],"names":[],"mappings":"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"}
|
package/dist-cjs/host/index.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// resolved connection runtimes into script capabilities. Lets the collection
|
|
4
4
|
// runner execute `pm.db.*` and `pm.redis` without an external host process.
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.executeRedisCommands = exports.databaseConfigToDbConnection = exports.OracleConnectStringError = exports.normalizeOracleConnectString = exports.renderDbQueryReference = exports.stripTrailingSqlTerminator = exports.__setOracleDriverForTests = exports.testOracleConnection = exports.executeOracleQuery = exports.__setMysqlDriverForTests = exports.testMysqlConnection = exports.executeMysqlQuery = exports.__setPostgresDriverForTests = exports.testPostgresConnection = exports.executePostgresQuery = exports.__setMongoDriverForTests = exports.testMongoConnection = exports.executeMongoQuery = exports.testDbConnection = exports.executeResolvedDbQuery = exports.executeQuery = exports.buildRedisCapability = exports.buildRedisValueCache = exports.runRedisCommandsForPhase = exports.runConfiguredDbQuery = exports.buildDbExecuteCapability = void 0;
|
|
6
|
+
exports.__setRedisDriverForTests = exports.REDIS_COMMAND_SPECS = exports.parseRedisCommand = exports.executeRedisCommands = exports.databaseConfigToDbConnection = exports.OracleConnectStringError = exports.normalizeOracleConnectString = exports.renderDbQueryReference = exports.stripTrailingSqlTerminator = exports.__setMssqlDriverForTests = exports.testMssqlConnection = exports.executeMssqlQuery = exports.__setOracleDriverForTests = exports.testOracleConnection = exports.executeOracleQuery = exports.__setMysqlDriverForTests = exports.testMysqlConnection = exports.executeMysqlQuery = exports.__setPostgresDriverForTests = exports.testPostgresConnection = exports.executePostgresQuery = exports.__setMongoDriverForTests = exports.testMongoConnection = exports.executeMongoQuery = exports.testDbConnection = exports.executeResolvedDbQuery = exports.executeQuery = exports.buildRedisCapability = exports.buildRedisValueCache = exports.runRedisCommandsForPhase = exports.runConfiguredDbQuery = exports.buildDbExecuteCapability = void 0;
|
|
7
7
|
var connections_js_1 = require("./connections.js");
|
|
8
8
|
Object.defineProperty(exports, "buildDbExecuteCapability", { enumerable: true, get: function () { return connections_js_1.buildDbExecuteCapability; } });
|
|
9
9
|
Object.defineProperty(exports, "runConfiguredDbQuery", { enumerable: true, get: function () { return connections_js_1.runConfiguredDbQuery; } });
|
|
@@ -32,6 +32,10 @@ var oracleAdapter_js_1 = require("./db/oracleAdapter.js");
|
|
|
32
32
|
Object.defineProperty(exports, "executeOracleQuery", { enumerable: true, get: function () { return oracleAdapter_js_1.executeOracleQuery; } });
|
|
33
33
|
Object.defineProperty(exports, "testOracleConnection", { enumerable: true, get: function () { return oracleAdapter_js_1.testOracleConnection; } });
|
|
34
34
|
Object.defineProperty(exports, "__setOracleDriverForTests", { enumerable: true, get: function () { return oracleAdapter_js_1.__setOracleDriverForTests; } });
|
|
35
|
+
var mssqlAdapter_js_1 = require("./db/mssqlAdapter.js");
|
|
36
|
+
Object.defineProperty(exports, "executeMssqlQuery", { enumerable: true, get: function () { return mssqlAdapter_js_1.executeMssqlQuery; } });
|
|
37
|
+
Object.defineProperty(exports, "testMssqlConnection", { enumerable: true, get: function () { return mssqlAdapter_js_1.testMssqlConnection; } });
|
|
38
|
+
Object.defineProperty(exports, "__setMssqlDriverForTests", { enumerable: true, get: function () { return mssqlAdapter_js_1.__setMssqlDriverForTests; } });
|
|
35
39
|
var sqlNormalize_js_1 = require("./db/sqlNormalize.js");
|
|
36
40
|
Object.defineProperty(exports, "stripTrailingSqlTerminator", { enumerable: true, get: function () { return sqlNormalize_js_1.stripTrailingSqlTerminator; } });
|
|
37
41
|
var db_query_reference_js_1 = require("./db/db-query-reference.js");
|
|
@@ -43,4 +47,7 @@ var connectionMapping_js_1 = require("./db/connectionMapping.js");
|
|
|
43
47
|
Object.defineProperty(exports, "databaseConfigToDbConnection", { enumerable: true, get: function () { return connectionMapping_js_1.databaseConfigToDbConnection; } });
|
|
44
48
|
var redisService_js_1 = require("./redis/redisService.js");
|
|
45
49
|
Object.defineProperty(exports, "executeRedisCommands", { enumerable: true, get: function () { return redisService_js_1.executeRedisCommands; } });
|
|
50
|
+
Object.defineProperty(exports, "parseRedisCommand", { enumerable: true, get: function () { return redisService_js_1.parseRedisCommand; } });
|
|
51
|
+
Object.defineProperty(exports, "REDIS_COMMAND_SPECS", { enumerable: true, get: function () { return redisService_js_1.REDIS_COMMAND_SPECS; } });
|
|
52
|
+
Object.defineProperty(exports, "__setRedisDriverForTests", { enumerable: true, get: function () { return redisService_js_1.__setRedisDriverForTests; } });
|
|
46
53
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/host/index.ts"],"names":[],"mappings":";AAAA,wEAAwE;AACxE,6EAA6E;AAC7E,4EAA4E;;;AAE5E,mDAc0B;AAbxB,0HAAA,wBAAwB,OAAA;AACxB,sHAAA,oBAAoB,OAAA;AACpB,0HAAA,wBAAwB,OAAA;AACxB,sHAAA,oBAAoB,OAAA;AACpB,sHAAA,oBAAoB,OAAA;AAWtB,0DAI+B;AAH7B,gHAAA,YAAY,OAAA;AACZ,0HAAA,sBAAsB,OAAA;AACtB,oHAAA,gBAAgB,OAAA;AAElB,+EAA+E;AAC/E,wEAAwE;AACxE,wDAI8B;AAH5B,oHAAA,iBAAiB,OAAA;AACjB,sHAAA,mBAAmB,OAAA;AACnB,2HAAA,wBAAwB,OAAA;AAE1B,8DAIiC;AAH/B,0HAAA,oBAAoB,OAAA;AACpB,4HAAA,sBAAsB,OAAA;AACtB,iIAAA,2BAA2B,OAAA;AAE7B,wDAI8B;AAH5B,oHAAA,iBAAiB,OAAA;AACjB,sHAAA,mBAAmB,OAAA;AACnB,2HAAA,wBAAwB,OAAA;AAE1B,0DAI+B;AAH7B,sHAAA,kBAAkB,OAAA;AAClB,wHAAA,oBAAoB,OAAA;AACpB,6HAAA,yBAAyB,OAAA;AAE3B,wDAAkE;AAAzD,6HAAA,0BAA0B,OAAA;AACnC,oEAAoE;AAA3D,+HAAA,sBAAsB,OAAA;AAC/B,sEAGqC;AAFnC,sIAAA,4BAA4B,OAAA;AAC5B,kIAAA,wBAAwB,OAAA;AAE1B,kEAImC;AAHjC,oIAAA,4BAA4B,OAAA;AAgB9B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/host/index.ts"],"names":[],"mappings":";AAAA,wEAAwE;AACxE,6EAA6E;AAC7E,4EAA4E;;;AAE5E,mDAc0B;AAbxB,0HAAA,wBAAwB,OAAA;AACxB,sHAAA,oBAAoB,OAAA;AACpB,0HAAA,wBAAwB,OAAA;AACxB,sHAAA,oBAAoB,OAAA;AACpB,sHAAA,oBAAoB,OAAA;AAWtB,0DAI+B;AAH7B,gHAAA,YAAY,OAAA;AACZ,0HAAA,sBAAsB,OAAA;AACtB,oHAAA,gBAAgB,OAAA;AAElB,+EAA+E;AAC/E,wEAAwE;AACxE,wDAI8B;AAH5B,oHAAA,iBAAiB,OAAA;AACjB,sHAAA,mBAAmB,OAAA;AACnB,2HAAA,wBAAwB,OAAA;AAE1B,8DAIiC;AAH/B,0HAAA,oBAAoB,OAAA;AACpB,4HAAA,sBAAsB,OAAA;AACtB,iIAAA,2BAA2B,OAAA;AAE7B,wDAI8B;AAH5B,oHAAA,iBAAiB,OAAA;AACjB,sHAAA,mBAAmB,OAAA;AACnB,2HAAA,wBAAwB,OAAA;AAE1B,0DAI+B;AAH7B,sHAAA,kBAAkB,OAAA;AAClB,wHAAA,oBAAoB,OAAA;AACpB,6HAAA,yBAAyB,OAAA;AAE3B,wDAI8B;AAH5B,oHAAA,iBAAiB,OAAA;AACjB,sHAAA,mBAAmB,OAAA;AACnB,2HAAA,wBAAwB,OAAA;AAE1B,wDAAkE;AAAzD,6HAAA,0BAA0B,OAAA;AACnC,oEAAoE;AAA3D,+HAAA,sBAAsB,OAAA;AAC/B,sEAGqC;AAFnC,sIAAA,4BAA4B,OAAA;AAC5B,kIAAA,wBAAwB,OAAA;AAE1B,kEAImC;AAHjC,oIAAA,4BAA4B,OAAA;AAgB9B,2DAQiC;AAP/B,uHAAA,oBAAoB,OAAA;AACpB,oHAAA,iBAAiB,OAAA;AACjB,sHAAA,mBAAmB,OAAA;AACnB,2HAAA,wBAAwB,OAAA"}
|
|
@@ -5,12 +5,20 @@
|
|
|
5
5
|
// the caller MUST provide the resolved `connection`. `ioredis` is loaded lazily
|
|
6
6
|
// via `loadOptionalModule`.
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.executeRedisCommands = void 0;
|
|
8
|
+
exports.executeRedisCommands = exports.parseRedisCommand = exports.REDIS_COMMAND_SPECS = exports.__setRedisDriverForTests = void 0;
|
|
9
9
|
const node_perf_hooks_1 = require("node:perf_hooks");
|
|
10
10
|
const lazy_js_1 = require("../lazy.js");
|
|
11
11
|
const templateResolver_js_1 = require("../db/templateResolver.js");
|
|
12
12
|
const unwrap = (mod) => (mod && mod.default ? mod.default : mod);
|
|
13
|
+
let redisDriverOverride = null;
|
|
14
|
+
const __setRedisDriverForTests = (driver) => {
|
|
15
|
+
redisDriverOverride = driver;
|
|
16
|
+
};
|
|
17
|
+
exports.__setRedisDriverForTests = __setRedisDriverForTests;
|
|
13
18
|
const loadRedisDriver = async () => {
|
|
19
|
+
if (redisDriverOverride) {
|
|
20
|
+
return redisDriverOverride;
|
|
21
|
+
}
|
|
14
22
|
try {
|
|
15
23
|
const mod = await (0, lazy_js_1.loadOptionalModule)("ioredis");
|
|
16
24
|
// ioredis exports both `default` and a named `Redis`. Prefer the named
|
|
@@ -35,49 +43,248 @@ const tokenizeRedisCommand = (input) => {
|
|
|
35
43
|
}
|
|
36
44
|
return tokens;
|
|
37
45
|
};
|
|
46
|
+
const integerArgError = (values, message) => values.every((value) => Number.isInteger(Number(value)) && value.trim() !== "")
|
|
47
|
+
? null
|
|
48
|
+
: message;
|
|
49
|
+
// SCAN is Callman-managed: the cursor loop runs internally with hard caps so
|
|
50
|
+
// a broad pattern on a shared bank Redis cannot walk the whole keyspace.
|
|
51
|
+
const SCAN_MAX_ITERATIONS = 100;
|
|
52
|
+
const SCAN_MAX_KEYS = 1000;
|
|
53
|
+
const runScanLoop = async (client, args) => {
|
|
54
|
+
const pattern = args[0] ?? "*";
|
|
55
|
+
const pageSize = args.length === 2 ? Math.min(Math.max(Math.trunc(Number(args[1])), 1), SCAN_MAX_KEYS) : 100;
|
|
56
|
+
const keys = [];
|
|
57
|
+
let cursor = "0";
|
|
58
|
+
let iterations = 0;
|
|
59
|
+
let truncated = false;
|
|
60
|
+
do {
|
|
61
|
+
const [nextCursor, batch] = (await client.scan(cursor, "MATCH", pattern, "COUNT", pageSize));
|
|
62
|
+
cursor = nextCursor;
|
|
63
|
+
for (const key of batch) {
|
|
64
|
+
if (keys.length >= SCAN_MAX_KEYS) {
|
|
65
|
+
truncated = true;
|
|
66
|
+
break;
|
|
67
|
+
}
|
|
68
|
+
keys.push(key);
|
|
69
|
+
}
|
|
70
|
+
iterations += 1;
|
|
71
|
+
if (truncated) {
|
|
72
|
+
break;
|
|
73
|
+
}
|
|
74
|
+
if (iterations >= SCAN_MAX_ITERATIONS && cursor !== "0") {
|
|
75
|
+
truncated = true;
|
|
76
|
+
break;
|
|
77
|
+
}
|
|
78
|
+
} while (cursor !== "0");
|
|
79
|
+
return { keys, count: keys.length, truncated };
|
|
80
|
+
};
|
|
81
|
+
// One spec per supported command: arity + shape validation and a typed
|
|
82
|
+
// ioredis call, so structured replies (HGETALL → object, LRANGE → array)
|
|
83
|
+
// land in `result` as real values. Args always travel as protocol frames —
|
|
84
|
+
// never re-parsed — so template values cannot inject extra commands.
|
|
85
|
+
exports.REDIS_COMMAND_SPECS = {
|
|
86
|
+
GET: { minArgs: 1, maxArgs: 1, usage: "GET key", execute: (c, [key]) => c.get(key) },
|
|
87
|
+
SET: {
|
|
88
|
+
minArgs: 2,
|
|
89
|
+
maxArgs: null,
|
|
90
|
+
usage: "SET key value",
|
|
91
|
+
// Legacy quirk kept for existing scenarios: everything after the key is
|
|
92
|
+
// joined into ONE value, so `SET k v with spaces` writes "v with spaces".
|
|
93
|
+
execute: async (c, args) => {
|
|
94
|
+
const value = args.slice(1).join(" ");
|
|
95
|
+
await c.set(args[0], value);
|
|
96
|
+
return value;
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
DEL: {
|
|
100
|
+
minArgs: 1,
|
|
101
|
+
maxArgs: null,
|
|
102
|
+
usage: "DEL key [key ...]",
|
|
103
|
+
execute: (c, args) => c.del(...args),
|
|
104
|
+
},
|
|
105
|
+
EXISTS: {
|
|
106
|
+
minArgs: 1,
|
|
107
|
+
maxArgs: 1,
|
|
108
|
+
usage: "EXISTS key",
|
|
109
|
+
execute: async (c, [key]) => (await c.exists(key)) > 0,
|
|
110
|
+
},
|
|
111
|
+
TTL: { minArgs: 1, maxArgs: 1, usage: "TTL key", execute: (c, [key]) => c.ttl(key) },
|
|
112
|
+
HGET: {
|
|
113
|
+
minArgs: 2,
|
|
114
|
+
maxArgs: 2,
|
|
115
|
+
usage: "HGET key field",
|
|
116
|
+
execute: (c, [key, field]) => c.hget(key, field),
|
|
117
|
+
},
|
|
118
|
+
HSET: {
|
|
119
|
+
minArgs: 3,
|
|
120
|
+
maxArgs: null,
|
|
121
|
+
usage: "HSET key field value [field value ...]",
|
|
122
|
+
validate: (args) => (args.length - 1) % 2 === 0 ? null : "HSET requires a key followed by field/value pairs",
|
|
123
|
+
execute: (c, args) => c.hset(args[0], ...args.slice(1)),
|
|
124
|
+
},
|
|
125
|
+
HGETALL: {
|
|
126
|
+
minArgs: 1,
|
|
127
|
+
maxArgs: 1,
|
|
128
|
+
usage: "HGETALL key",
|
|
129
|
+
execute: (c, [key]) => c.hgetall(key),
|
|
130
|
+
},
|
|
131
|
+
HDEL: {
|
|
132
|
+
minArgs: 2,
|
|
133
|
+
maxArgs: null,
|
|
134
|
+
usage: "HDEL key field [field ...]",
|
|
135
|
+
execute: (c, args) => c.hdel(args[0], ...args.slice(1)),
|
|
136
|
+
},
|
|
137
|
+
LPUSH: {
|
|
138
|
+
minArgs: 2,
|
|
139
|
+
maxArgs: null,
|
|
140
|
+
usage: "LPUSH key value [value ...]",
|
|
141
|
+
execute: (c, args) => c.lpush(args[0], ...args.slice(1)),
|
|
142
|
+
},
|
|
143
|
+
RPUSH: {
|
|
144
|
+
minArgs: 2,
|
|
145
|
+
maxArgs: null,
|
|
146
|
+
usage: "RPUSH key value [value ...]",
|
|
147
|
+
execute: (c, args) => c.rpush(args[0], ...args.slice(1)),
|
|
148
|
+
},
|
|
149
|
+
LRANGE: {
|
|
150
|
+
minArgs: 3,
|
|
151
|
+
maxArgs: 3,
|
|
152
|
+
usage: "LRANGE key start stop",
|
|
153
|
+
validate: (args) => integerArgError(args.slice(1), "LRANGE start/stop must be integers"),
|
|
154
|
+
execute: (c, [key, start, stop]) => c.lrange(key, Number(start), Number(stop)),
|
|
155
|
+
},
|
|
156
|
+
LLEN: { minArgs: 1, maxArgs: 1, usage: "LLEN key", execute: (c, [key]) => c.llen(key) },
|
|
157
|
+
SADD: {
|
|
158
|
+
minArgs: 2,
|
|
159
|
+
maxArgs: null,
|
|
160
|
+
usage: "SADD key member [member ...]",
|
|
161
|
+
execute: (c, args) => c.sadd(args[0], ...args.slice(1)),
|
|
162
|
+
},
|
|
163
|
+
SMEMBERS: {
|
|
164
|
+
minArgs: 1,
|
|
165
|
+
maxArgs: 1,
|
|
166
|
+
usage: "SMEMBERS key",
|
|
167
|
+
execute: (c, [key]) => c.smembers(key),
|
|
168
|
+
},
|
|
169
|
+
SISMEMBER: {
|
|
170
|
+
minArgs: 2,
|
|
171
|
+
maxArgs: 2,
|
|
172
|
+
usage: "SISMEMBER key member",
|
|
173
|
+
execute: async (c, [key, member]) => (await c.sismember(key, member)) > 0,
|
|
174
|
+
},
|
|
175
|
+
INCR: { minArgs: 1, maxArgs: 1, usage: "INCR key", execute: (c, [key]) => c.incr(key) },
|
|
176
|
+
DECR: { minArgs: 1, maxArgs: 1, usage: "DECR key", execute: (c, [key]) => c.decr(key) },
|
|
177
|
+
INCRBY: {
|
|
178
|
+
minArgs: 2,
|
|
179
|
+
maxArgs: 2,
|
|
180
|
+
usage: "INCRBY key increment",
|
|
181
|
+
validate: (args) => integerArgError([args[1] ?? ""], "INCRBY increment must be an integer"),
|
|
182
|
+
execute: (c, [key, by]) => c.incrby(key, Number(by)),
|
|
183
|
+
},
|
|
184
|
+
EXPIRE: {
|
|
185
|
+
minArgs: 2,
|
|
186
|
+
maxArgs: 2,
|
|
187
|
+
usage: "EXPIRE key seconds",
|
|
188
|
+
validate: (args) => integerArgError([args[1] ?? ""], "EXPIRE seconds must be an integer"),
|
|
189
|
+
execute: async (c, [key, seconds]) => (await c.expire(key, Number(seconds))) === 1,
|
|
190
|
+
},
|
|
191
|
+
PERSIST: {
|
|
192
|
+
minArgs: 1,
|
|
193
|
+
maxArgs: 1,
|
|
194
|
+
usage: "PERSIST key",
|
|
195
|
+
execute: async (c, [key]) => (await c.persist(key)) === 1,
|
|
196
|
+
},
|
|
197
|
+
TYPE: { minArgs: 1, maxArgs: 1, usage: "TYPE key", execute: (c, [key]) => c.type(key) },
|
|
198
|
+
ZADD: {
|
|
199
|
+
minArgs: 3,
|
|
200
|
+
maxArgs: null,
|
|
201
|
+
usage: "ZADD key score member [score member ...]",
|
|
202
|
+
validate: (args) => {
|
|
203
|
+
if ((args.length - 1) % 2 !== 0) {
|
|
204
|
+
return "ZADD requires a key followed by score/member pairs";
|
|
205
|
+
}
|
|
206
|
+
for (let index = 1; index < args.length; index += 2) {
|
|
207
|
+
if (!Number.isFinite(Number(args[index])) || args[index]?.trim() === "") {
|
|
208
|
+
return `ZADD score "${args[index]}" is not a number`;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
return null;
|
|
212
|
+
},
|
|
213
|
+
execute: (c, args) => c.zadd(args[0], ...args.slice(1)),
|
|
214
|
+
},
|
|
215
|
+
ZRANGE: {
|
|
216
|
+
minArgs: 3,
|
|
217
|
+
maxArgs: 4,
|
|
218
|
+
usage: "ZRANGE key start stop [WITHSCORES]",
|
|
219
|
+
validate: (args) => {
|
|
220
|
+
const rangeError = integerArgError([args[1] ?? "", args[2] ?? ""], "ZRANGE start/stop must be integers");
|
|
221
|
+
if (rangeError) {
|
|
222
|
+
return rangeError;
|
|
223
|
+
}
|
|
224
|
+
if (args.length === 4 && args[3]?.toUpperCase() !== "WITHSCORES") {
|
|
225
|
+
return "ZRANGE only supports the WITHSCORES modifier";
|
|
226
|
+
}
|
|
227
|
+
return null;
|
|
228
|
+
},
|
|
229
|
+
execute: (c, args) => args.length === 4
|
|
230
|
+
? c.zrange(args[0], Number(args[1]), Number(args[2]), "WITHSCORES")
|
|
231
|
+
: c.zrange(args[0], Number(args[1]), Number(args[2])),
|
|
232
|
+
},
|
|
233
|
+
ZSCORE: {
|
|
234
|
+
minArgs: 2,
|
|
235
|
+
maxArgs: 2,
|
|
236
|
+
usage: "ZSCORE key member",
|
|
237
|
+
execute: (c, [key, member]) => c.zscore(key, member),
|
|
238
|
+
},
|
|
239
|
+
SCAN: {
|
|
240
|
+
minArgs: 1,
|
|
241
|
+
maxArgs: 2,
|
|
242
|
+
usage: "SCAN pattern [count]",
|
|
243
|
+
keyless: true,
|
|
244
|
+
validate: (args) => args.length === 2
|
|
245
|
+
? integerArgError([args[1] ?? ""], "SCAN count must be a positive integer")
|
|
246
|
+
: null,
|
|
247
|
+
execute: runScanLoop,
|
|
248
|
+
},
|
|
249
|
+
};
|
|
250
|
+
const SUPPORTED_COMMAND_LIST = Object.keys(exports.REDIS_COMMAND_SPECS).join(", ");
|
|
38
251
|
const parseRedisCommand = (command) => {
|
|
39
252
|
const tokens = tokenizeRedisCommand(command.trim());
|
|
40
253
|
if (tokens.length === 0) {
|
|
41
254
|
throw new Error("Redis command cannot be empty");
|
|
42
255
|
}
|
|
43
|
-
const
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
commandName !== "TTL") {
|
|
49
|
-
throw new Error("Supported Redis commands are GET, SET, DEL, EXISTS, and TTL");
|
|
256
|
+
const rawName = tokens[0] ?? "";
|
|
257
|
+
const commandName = rawName.toUpperCase();
|
|
258
|
+
const spec = exports.REDIS_COMMAND_SPECS[commandName];
|
|
259
|
+
if (!spec) {
|
|
260
|
+
throw new Error(`Unsupported Redis command "${rawName}". Supported commands: ${SUPPORTED_COMMAND_LIST}`);
|
|
50
261
|
}
|
|
51
|
-
const
|
|
52
|
-
if (
|
|
53
|
-
throw new Error(
|
|
262
|
+
const args = tokens.slice(1);
|
|
263
|
+
if (args.length < spec.minArgs || (spec.maxArgs !== null && args.length > spec.maxArgs)) {
|
|
264
|
+
throw new Error(`Usage: ${spec.usage}`);
|
|
54
265
|
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
}
|
|
59
|
-
return {
|
|
60
|
-
commandName,
|
|
61
|
-
key,
|
|
62
|
-
args: [tokens.slice(2).join(" ")],
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
|
-
if (tokens.length > 2) {
|
|
66
|
-
throw new Error(`${commandName} accepts only a single key`);
|
|
266
|
+
const validationError = spec.validate?.(args) ?? null;
|
|
267
|
+
if (validationError) {
|
|
268
|
+
throw new Error(validationError);
|
|
67
269
|
}
|
|
68
270
|
return {
|
|
69
271
|
commandName,
|
|
70
|
-
key,
|
|
71
|
-
args
|
|
272
|
+
key: spec.keyless ? null : (args[0] ?? null),
|
|
273
|
+
args,
|
|
72
274
|
};
|
|
73
275
|
};
|
|
276
|
+
exports.parseRedisCommand = parseRedisCommand;
|
|
74
277
|
const createRedisClient = async (connection) => {
|
|
75
278
|
const IORedis = await loadRedisDriver();
|
|
76
279
|
return new IORedis({
|
|
77
280
|
host: connection.host,
|
|
78
281
|
port: connection.port,
|
|
282
|
+
username: connection.username,
|
|
79
283
|
password: connection.password,
|
|
80
284
|
db: connection.dbIndex,
|
|
285
|
+
// `ssl` must reach the socket — a TLS-only Redis otherwise accepts the
|
|
286
|
+
// validator's probe (which honors tls) but fails at scenario runtime.
|
|
287
|
+
tls: connection.ssl ? {} : undefined,
|
|
81
288
|
lazyConnect: true,
|
|
82
289
|
enableOfflineQueue: false,
|
|
83
290
|
maxRetriesPerRequest: 1,
|
|
@@ -116,21 +323,7 @@ const normalizeRedisResultValue = (value) => {
|
|
|
116
323
|
}
|
|
117
324
|
return String(value);
|
|
118
325
|
};
|
|
119
|
-
const executeParsedCommand = async (client, parsedCommand) =>
|
|
120
|
-
switch (parsedCommand.commandName) {
|
|
121
|
-
case "GET":
|
|
122
|
-
return await client.get(parsedCommand.key);
|
|
123
|
-
case "SET":
|
|
124
|
-
await client.set(parsedCommand.key, parsedCommand.args[0] ?? "");
|
|
125
|
-
return parsedCommand.args[0] ?? "";
|
|
126
|
-
case "DEL":
|
|
127
|
-
return await client.del(parsedCommand.key);
|
|
128
|
-
case "EXISTS":
|
|
129
|
-
return (await client.exists(parsedCommand.key)) > 0;
|
|
130
|
-
case "TTL":
|
|
131
|
-
return await client.ttl(parsedCommand.key);
|
|
132
|
-
}
|
|
133
|
-
};
|
|
326
|
+
const executeParsedCommand = async (client, parsedCommand) => exports.REDIS_COMMAND_SPECS[parsedCommand.commandName].execute(client, parsedCommand.args);
|
|
134
327
|
const buildFailureResult = ({ connectionId, connectionName, command, resolvedCommand, phase, error, startedAt, commandName = "", key = null, }) => ({
|
|
135
328
|
success: false,
|
|
136
329
|
phase,
|
|
@@ -149,7 +342,7 @@ const buildFailureResult = ({ connectionId, connectionName, command, resolvedCom
|
|
|
149
342
|
const executeResolvedCommand = async ({ client, connection, command, resolvedCommand, phase, }) => {
|
|
150
343
|
const startedAt = node_perf_hooks_1.performance.now();
|
|
151
344
|
try {
|
|
152
|
-
const parsedCommand = parseRedisCommand(resolvedCommand);
|
|
345
|
+
const parsedCommand = (0, exports.parseRedisCommand)(resolvedCommand);
|
|
153
346
|
const rawResult = await executeParsedCommand(client, parsedCommand);
|
|
154
347
|
const normalizedResult = normalizeRedisResultValue(rawResult);
|
|
155
348
|
return {
|
|
@@ -171,7 +364,7 @@ const executeResolvedCommand = async ({ client, connection, command, resolvedCom
|
|
|
171
364
|
let commandName = "";
|
|
172
365
|
let key = null;
|
|
173
366
|
try {
|
|
174
|
-
const parsedCommand = parseRedisCommand(resolvedCommand);
|
|
367
|
+
const parsedCommand = (0, exports.parseRedisCommand)(resolvedCommand);
|
|
175
368
|
commandName = parsedCommand.commandName;
|
|
176
369
|
key = parsedCommand.key;
|
|
177
370
|
}
|
|
@@ -222,10 +415,12 @@ const normalizeConnectionInput = (input) => ({
|
|
|
222
415
|
type: "redis",
|
|
223
416
|
host: input.host.trim(),
|
|
224
417
|
port: Number(input.port),
|
|
418
|
+
username: input.username?.trim() ? input.username.trim() : undefined,
|
|
225
419
|
password: input.password?.trim() ? input.password : undefined,
|
|
226
420
|
dbIndex: typeof input.dbIndex === "number" && Number.isFinite(input.dbIndex) && input.dbIndex >= 0
|
|
227
421
|
? Math.trunc(input.dbIndex)
|
|
228
422
|
: undefined,
|
|
423
|
+
ssl: input.ssl === true ? true : undefined,
|
|
229
424
|
});
|
|
230
425
|
const executeRedisCommands = async ({ connectionId, connection: connectionInput, commands, phase, context, }) => {
|
|
231
426
|
const normalizedCommands = commands.map((command) => command.trim()).filter(Boolean);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redisService.js","sourceRoot":"","sources":["../../../src/host/redis/redisService.ts"],"names":[],"mappings":";AAAA,gDAAgD;AAChD,+EAA+E;AAC/E,6EAA6E;AAC7E,gFAAgF;AAChF,4BAA4B;;;AAE5B,qDAA8C;AAE9C,wCAAgD;AAChD,mEAA4D;AAS5D,MAAM,MAAM,GAAG,CAAC,GAAQ,EAAO,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAE3E,MAAM,eAAe,GAAG,KAAK,IAAkB,EAAE;IAC/C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,IAAA,4BAAkB,EAAC,SAAS,CAAC,CAAC;QAChD,uEAAuE;QACvE,+BAA+B;QAC/B,OAAO,GAAG,CAAC,KAAK,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,wFAAwF,CACzF,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AAUF,MAAM,mBAAmB,GAAG,gDAAgD,CAAC;AAE7E,MAAM,YAAY,GAAG,CAAC,KAAa,EAAU,EAAE,CAC7C,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;AAErC,MAAM,oBAAoB,GAAG,CAAC,KAAa,EAAY,EAAE;IACvD,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACxD,MAAM,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC;QACnD,MAAM,KAAK,GAAG,YAAY,IAAI,YAAY,IAAI,IAAI,IAAI,EAAE,CAAC;QAEzD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,SAAS;QACX,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,OAAe,EAAsB,EAAE;IAChE,MAAM,MAAM,GAAG,oBAAoB,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAEpD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,EAA2B,CAAC;IAEtE,IACE,WAAW,KAAK,KAAK;QACrB,WAAW,KAAK,KAAK;QACrB,WAAW,KAAK,KAAK;QACrB,WAAW,KAAK,QAAQ;QACxB,WAAW,KAAK,KAAK,EACrB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;IACjF,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAEpC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,GAAG,WAAW,iBAAiB,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC;QAC1B,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QAED,OAAO;YACL,WAAW;YACX,GAAG;YACH,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAClC,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,GAAG,WAAW,4BAA4B,CAAC,CAAC;IAC9D,CAAC;IAED,OAAO;QACL,WAAW;QACX,GAAG;QACH,IAAI,EAAE,EAAE;KACT,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,KAAK,EAAE,UAA2B,EAAgB,EAAE;IAC5E,MAAM,OAAO,GAAG,MAAM,eAAe,EAAE,CAAC;IACxC,OAAO,IAAI,OAAO,CAAC;QACjB,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,QAAQ,EAAE,UAAU,CAAC,QAAQ;QAC7B,EAAE,EAAE,UAAU,CAAC,OAAO;QACtB,WAAW,EAAE,IAAI;QACjB,kBAAkB,EAAE,KAAK;QACzB,oBAAoB,EAAE,CAAC;KACxB,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,KAAc,EAAU,EAAE;IACtD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAC5D,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAED,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC,CAAC;AAEF,MAAM,yBAAyB,GAAG,CAAC,KAAc,EAAW,EAAE;IAC5D,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QACzF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;YACrE,GAAG;YACH,yBAAyB,CAAC,KAAK,CAAC;SACjC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,KAAK,EAChC,MAAW,EACX,aAAiC,EACf,EAAE;IACpB,QAAQ,aAAa,CAAC,WAAW,EAAE,CAAC;QAClC,KAAK,KAAK;YACR,OAAO,MAAM,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAC7C,KAAK,KAAK;YACR,MAAM,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACjE,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACrC,KAAK,KAAK;YACR,OAAO,MAAM,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAC7C,KAAK,QAAQ;YACX,OAAO,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACtD,KAAK,KAAK;YACR,OAAO,MAAM,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,EAC1B,YAAY,EACZ,cAAc,EACd,OAAO,EACP,eAAe,EACf,KAAK,EACL,KAAK,EACL,SAAS,EACT,WAAW,GAAG,EAAE,EAChB,GAAG,GAAG,IAAI,GAWX,EAA+B,EAAE,CAAC,CAAC;IAClC,OAAO,EAAE,KAAK;IACd,KAAK;IACL,YAAY;IACZ,cAAc;IACd,OAAO;IACP,eAAe;IACf,WAAW;IACX,GAAG;IACH,MAAM,EAAE,IAAI;IACZ,UAAU,EAAE,EAAE;IACd,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,6BAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IACrD,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;IACpC,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;CAC9D,CAAC,CAAC;AAEH,MAAM,sBAAsB,GAAG,KAAK,EAAE,EACpC,MAAM,EACN,UAAU,EACV,OAAO,EACP,eAAe,EACf,KAAK,GAON,EAAwC,EAAE;IACzC,MAAM,SAAS,GAAG,6BAAW,CAAC,GAAG,EAAE,CAAC;IAEpC,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,iBAAiB,CAAC,eAAe,CAAC,CAAC;QACzD,MAAM,SAAS,GAAG,MAAM,oBAAoB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QACpE,MAAM,gBAAgB,GAAG,yBAAyB,CAAC,SAAS,CAAC,CAAC;QAE9D,OAAO;YACL,OAAO,EAAE,IAAI;YACb,KAAK;YACL,YAAY,EAAE,UAAU,CAAC,EAAE;YAC3B,cAAc,EAAE,UAAU,CAAC,IAAI;YAC/B,OAAO;YACP,eAAe;YACf,WAAW,EAAE,aAAa,CAAC,WAAW;YACtC,GAAG,EAAE,aAAa,CAAC,GAAG;YACtB,MAAM,EAAE,gBAAgB;YACxB,UAAU,EAAE,oBAAoB,CAAC,gBAAgB,CAAC;YAClD,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,6BAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YACrD,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACrC,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,IAAI,GAAG,GAAkB,IAAI,CAAC;QAE9B,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,iBAAiB,CAAC,eAAe,CAAC,CAAC;YACzD,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC;YACxC,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,gCAAgC;QAClC,CAAC;QAED,OAAO,kBAAkB,CAAC;YACxB,YAAY,EAAE,UAAU,CAAC,EAAE;YAC3B,cAAc,EAAE,UAAU,CAAC,IAAI;YAC/B,OAAO;YACP,eAAe;YACf,KAAK;YACL,KAAK;YACL,SAAS;YACT,WAAW;YACX,GAAG;SACJ,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,KAAK,EAAE,EACnC,UAAU,EACV,QAAQ,EACR,KAAK,EACL,OAAO,GAMR,EAA0C,EAAE;IAC3C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAEnD,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;QACvB,MAAM,OAAO,GAAkC,EAAE,CAAC;QAElD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,eAAe,GAAG,IAAA,qCAAe,EAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;YAChE,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC;gBAC1C,MAAM;gBACN,UAAU;gBACV,OAAO;gBACP,eAAe;gBACf,KAAK;aACN,CAAC,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,wBAAwB,GAAG,CAAC,KAA2B,EAAmB,EAAE,CAAC,CAAC;IAClF,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,oBAAoB;IAC5C,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;IACvB,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;IACvB,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;IACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;IAC7D,OAAO,EACL,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC;QACvF,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;QAC3B,CAAC,CAAC,SAAS;CAChB,CAAC,CAAC;AAEI,MAAM,oBAAoB,GAAG,KAAK,EAAE,EACzC,YAAY,EACZ,UAAU,EAAE,eAAe,EAC3B,QAAQ,EACR,KAAK,EACL,OAAO,GASR,EAA0C,EAAE;IAC3C,MAAM,kBAAkB,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAErF,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,UAAU,GAAG,eAAe,CAAC,CAAC,CAAC,wBAAwB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAEtF,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CACxC,kBAAkB,CAAC;YACjB,YAAY;YACZ,cAAc,EAAE,EAAE;YAClB,OAAO;YACP,eAAe,EAAE,OAAO;YACxB,KAAK;YACL,KAAK,EAAE,4BAA4B;YACnC,SAAS,EAAE,6BAAW,CAAC,GAAG,EAAE;SAC7B,CAAC,CACH,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,OAAO,MAAM,qBAAqB,CAAC;YACjC,UAAU;YACV,QAAQ,EAAE,kBAAkB;YAC5B,KAAK;YACL,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CACxC,kBAAkB,CAAC;YACjB,YAAY,EAAE,UAAU,CAAC,EAAE;YAC3B,cAAc,EAAE,UAAU,CAAC,IAAI;YAC/B,OAAO;YACP,eAAe,EAAE,IAAA,qCAAe,EAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC;YACxD,KAAK;YACL,KAAK;YACL,SAAS,EAAE,6BAAW,CAAC,GAAG,EAAE;SAC7B,CAAC,CACH,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AAzDW,QAAA,oBAAoB,wBAyD/B"}
|
|
1
|
+
{"version":3,"file":"redisService.js","sourceRoot":"","sources":["../../../src/host/redis/redisService.ts"],"names":[],"mappings":"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"}
|