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.
@@ -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,CAuzG1G"}
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"}
@@ -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 initial = buildLoadConfig(cfg);
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(cfg, {
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
- 'run',
5319
- '--vus', String(loadConfig.vus),
5320
- '--duration', loadConfig.duration,
5321
- ...envFlags,
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
  });