viberadar 0.3.210 → 0.3.212
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/server/index.d.ts.map +1 -1
- package/dist/server/index.js +39 -16
- package/dist/server/index.js.map +1 -1
- package/dist/ui/dashboard.html +23 -88
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAO7B,OAAO,EAAE,UAAU,EAA4H,MAAM,YAAY,CAAC;AAOlK,UAAU,aAAa;IACrB,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;CACrB;AA0vED,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAO7B,OAAO,EAAE,UAAU,EAA4H,MAAM,YAAY,CAAC;AAOlK,UAAU,aAAa;IACrB,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;CACrB;AA0vED,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAs1G1G"}
|
package/dist/server/index.js
CHANGED
|
@@ -2216,6 +2216,13 @@ function startServer({ data: initialData, port, projectRoot }) {
|
|
|
2216
2216
|
}
|
|
2217
2217
|
return out;
|
|
2218
2218
|
}
|
|
2219
|
+
function sanitizeLoadEnvName(value, fallback) {
|
|
2220
|
+
const raw = typeof value === 'string' && value.trim() ? value.trim() : fallback;
|
|
2221
|
+
return /^[A-Za-z_][A-Za-z0-9_]*$/.test(raw) ? raw : fallback;
|
|
2222
|
+
}
|
|
2223
|
+
function detectK6Scenarios(script) {
|
|
2224
|
+
return /\bscenarios\s*:/.test(script) || /export\s+const\s+options[\s\S]*\bscenarios\b/.test(script);
|
|
2225
|
+
}
|
|
2219
2226
|
function redactLoadEnvVars(envVars) {
|
|
2220
2227
|
const out = {};
|
|
2221
2228
|
for (const key of Object.keys(envVars)) {
|
|
@@ -2268,12 +2275,20 @@ function startServer({ data: initialData, port, projectRoot }) {
|
|
|
2268
2275
|
const baseUrl = typeof cfg.baseUrl === 'string' && cfg.baseUrl.trim() ? cfg.baseUrl.trim() : 'http://localhost:5000';
|
|
2269
2276
|
const dataDir = resolveLoadLocalPath(cfg.dataDir);
|
|
2270
2277
|
const resultDir = resolveLoadLocalPath(cfg.resultDir);
|
|
2278
|
+
const executionMode = cfg.executionMode === 'script' ? 'script' : 'cli';
|
|
2279
|
+
const vusEnvName = sanitizeLoadEnvName(cfg.vusEnvName, 'SMOKE_VUS');
|
|
2280
|
+
const durationEnvName = sanitizeLoadEnvName(cfg.durationEnvName, 'SMOKE_DURATION');
|
|
2281
|
+
const hasVus = cfg.vus !== undefined && cfg.vus !== null && String(cfg.vus).trim() !== '';
|
|
2282
|
+
const hasDuration = cfg.duration !== undefined && cfg.duration !== null && String(cfg.duration).trim() !== '';
|
|
2271
2283
|
envVars.BASE_URL = baseUrl;
|
|
2272
2284
|
const config = {
|
|
2273
|
-
vus: normalizeLoadVus(cfg.vus),
|
|
2274
|
-
duration: normalizeLoadDuration(cfg.duration),
|
|
2285
|
+
vus: hasVus ? normalizeLoadVus(cfg.vus) : undefined,
|
|
2286
|
+
duration: hasDuration ? normalizeLoadDuration(cfg.duration) : undefined,
|
|
2275
2287
|
baseUrl,
|
|
2276
2288
|
scriptName: sanitizeLoadScriptName(cfg.scriptName),
|
|
2289
|
+
executionMode,
|
|
2290
|
+
vusEnvName,
|
|
2291
|
+
durationEnvName,
|
|
2277
2292
|
dataDir,
|
|
2278
2293
|
resultDir,
|
|
2279
2294
|
runDir: paths?.runDir,
|
|
@@ -2282,6 +2297,13 @@ function startServer({ data: initialData, port, projectRoot }) {
|
|
|
2282
2297
|
dataFilesCopied: paths?.dataFilesCopied,
|
|
2283
2298
|
envVars: redactLoadEnvVars(envVars),
|
|
2284
2299
|
};
|
|
2300
|
+
if (executionMode === 'script') {
|
|
2301
|
+
if (hasVus && config.vus != null)
|
|
2302
|
+
envVars[vusEnvName] = String(config.vus);
|
|
2303
|
+
if (hasDuration && config.duration)
|
|
2304
|
+
envVars[durationEnvName] = config.duration;
|
|
2305
|
+
config.envVars = redactLoadEnvVars(envVars);
|
|
2306
|
+
}
|
|
2285
2307
|
return { config, envVars, dataDir, resultDir };
|
|
2286
2308
|
}
|
|
2287
2309
|
function flattenK6Checks(group) {
|
|
@@ -5097,7 +5119,7 @@ a{color:var(--blue)}
|
|
|
5097
5119
|
req.on('data', (d) => { body += d; });
|
|
5098
5120
|
req.on('end', () => {
|
|
5099
5121
|
try {
|
|
5100
|
-
const { name, script, vus, duration, baseUrl, dataDir, resultDir } = JSON.parse(body);
|
|
5122
|
+
const { name, script, vus, duration, baseUrl, dataDir, resultDir, executionMode, vusEnvName, durationEnvName } = JSON.parse(body);
|
|
5101
5123
|
if (!name || !script) {
|
|
5102
5124
|
res.writeHead(400, jsonH);
|
|
5103
5125
|
res.end(JSON.stringify({ error: 'name and script required' }));
|
|
@@ -5112,9 +5134,10 @@ a{color:var(--blue)}
|
|
|
5112
5134
|
date,
|
|
5113
5135
|
script,
|
|
5114
5136
|
fileName,
|
|
5115
|
-
vus: normalizeLoadVus(vus),
|
|
5116
|
-
duration: normalizeLoadDuration(duration),
|
|
5117
5137
|
baseUrl: typeof baseUrl === 'string' && baseUrl.trim() ? baseUrl.trim() : 'http://localhost:5000',
|
|
5138
|
+
executionMode: executionMode === 'script' ? 'script' : 'cli',
|
|
5139
|
+
vusEnvName: sanitizeLoadEnvName(vusEnvName, 'SMOKE_VUS'),
|
|
5140
|
+
durationEnvName: sanitizeLoadEnvName(durationEnvName, 'SMOKE_DURATION'),
|
|
5118
5141
|
dataDir: resolveLoadLocalPath(dataDir),
|
|
5119
5142
|
resultDir: resolveLoadLocalPath(resultDir),
|
|
5120
5143
|
};
|
|
@@ -5278,7 +5301,11 @@ a{color:var(--blue)}
|
|
|
5278
5301
|
const runDir = path.join(loadRunsDir, runId);
|
|
5279
5302
|
const workDir = path.join(runDir, 'work');
|
|
5280
5303
|
const defaultResultDir = path.join(runDir, 'results');
|
|
5281
|
-
const
|
|
5304
|
+
const effectiveCfg = { ...cfg };
|
|
5305
|
+
if (!effectiveCfg.executionMode) {
|
|
5306
|
+
effectiveCfg.executionMode = detectK6Scenarios(script) ? 'script' : 'cli';
|
|
5307
|
+
}
|
|
5308
|
+
const initial = buildLoadConfig(effectiveCfg);
|
|
5282
5309
|
const resultPath = initial.resultDir ? path.join(initial.resultDir, runId) : defaultResultDir;
|
|
5283
5310
|
const scriptPath = path.join(workDir, 'script.js');
|
|
5284
5311
|
const jsonOutPath = path.join(resultPath, 'metrics.ndjson');
|
|
@@ -5295,7 +5322,7 @@ a{color:var(--blue)}
|
|
|
5295
5322
|
res.end(JSON.stringify({ error: e.message }));
|
|
5296
5323
|
return;
|
|
5297
5324
|
}
|
|
5298
|
-
const { config: loadConfig, envVars } = buildLoadConfig(
|
|
5325
|
+
const { config: loadConfig, envVars } = buildLoadConfig(effectiveCfg, {
|
|
5299
5326
|
runDir,
|
|
5300
5327
|
workDir,
|
|
5301
5328
|
resultPath,
|
|
@@ -5314,15 +5341,11 @@ a{color:var(--blue)}
|
|
|
5314
5341
|
if (k && v !== undefined && v !== '')
|
|
5315
5342
|
envFlags.push('--env', `${k}=${v}`);
|
|
5316
5343
|
}
|
|
5317
|
-
const args = [
|
|
5318
|
-
|
|
5319
|
-
'--vus', String(loadConfig.vus),
|
|
5320
|
-
|
|
5321
|
-
|
|
5322
|
-
'--summary-export', summaryPath,
|
|
5323
|
-
'--out', `json=${jsonOutPath}`,
|
|
5324
|
-
scriptPath,
|
|
5325
|
-
];
|
|
5344
|
+
const args = ['run'];
|
|
5345
|
+
if (loadConfig.executionMode !== 'script') {
|
|
5346
|
+
args.push('--vus', String(loadConfig.vus || 10), '--duration', loadConfig.duration || '30s');
|
|
5347
|
+
}
|
|
5348
|
+
args.push(...envFlags, '--summary-export', summaryPath, '--out', `json=${jsonOutPath}`, scriptPath);
|
|
5326
5349
|
loadProc = (0, child_process_1.spawn)('k6', args, {
|
|
5327
5350
|
cwd: workDir, env: { ...process.env }, shell: WIN, stdio: 'pipe',
|
|
5328
5351
|
});
|