@redocly/cli 2.41.1 → 2.41.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -649,13 +649,13 @@ Packages:
649
649
  @redocly/cli-otel@0.3.4 — Copyright 2025 Redocly Inc, all rights reserved.
650
650
  @redocly/config@0.22.0 — Copyright 2024 Redocly Inc.
651
651
  @redocly/config@0.52.0 — Copyright 2024 Redocly Inc.
652
- @redocly/openapi-core@1.34.17
652
+ @redocly/openapi-core@1.34.18
653
653
  agent-base@7.1.4 — Copyright (c) 2013 Nathan Rajlich <nathan@tootallnate.net>
654
654
  ajv-formats@3.0.1 — Copyright (c) 2020 Evgeny Poberezkin
655
655
  ajv@8.20.0 — Copyright (c) 2015-2021 Evgeny Poberezkin
656
656
  ansi-styles@4.3.0
657
657
  balanced-match@1.0.2 — Copyright (c) 2013 Julian Gruber &lt;julian@juliangruber.com&gt;
658
- brace-expansion@2.1.2 — Copyright (c) 2013 Julian Gruber <julian@juliangruber.com>
658
+ brace-expansion@2.1.3 — Copyright (c) 2013 Julian Gruber <julian@juliangruber.com>
659
659
  call-me-maybe@1.0.2 — Copyright (c) 2015 Eric McCarthy
660
660
  chalk@4.1.2
661
661
  classnames@2.5.1 — Copyright (c) 2018 Jed Watson
@@ -677,8 +677,8 @@ Packages:
677
677
  https-proxy-agent@7.0.6 — Copyright (c) 2013 Nathan Rajlich <nathan@tootallnate.net>
678
678
  js-levenshtein@1.1.6 — Copyright (c) 2017 Gustaf Andersson
679
679
  js-tokens@4.0.0 — Copyright (c) 2014, 2015, 2016, 2017, 2018 Simon Lydell
680
- js-yaml@4.2.0 — Copyright (C) 2011-2015 by Vitaly Puzrin
681
- js-yaml@5.2.1 — Copyright (C) 2011-2015 by Vitaly Puzrin
680
+ js-yaml@4.3.0 — Copyright (C) 2011-2015 by Vitaly Puzrin
681
+ js-yaml@5.2.2 — Copyright (C) 2011-2015 by Vitaly Puzrin
682
682
  json-pointer@0.6.2 — Copyright (c) 2016 Manuel Stofer
683
683
  json-schema-traverse@1.0.0 — Copyright (c) 2017 Evgeny Poberezkin
684
684
  jsonpointer@5.0.1 — Copyright (c) 2011-2015 Jan Lehnardt <jan@apache.org> & Marc Bachmann <https://github.com/marcbachmann>
@@ -2,7 +2,7 @@ import { createRequire as __createRequire } from 'node:module';
2
2
  const require = __createRequire(import.meta.url);
3
3
  import {
4
4
  isPlainObject
5
- } from "./Z3EJWJEX.js";
5
+ } from "./Z2664VV5.js";
6
6
 
7
7
  // src/commands/drift/utils/files.ts
8
8
  import { open, readdir, stat } from "node:fs/promises";
@@ -3,7 +3,7 @@ const require = __createRequire(import.meta.url);
3
3
  import {
4
4
  AbortFlowError,
5
5
  exitWithError
6
- } from "./CUWLBJXP.js";
6
+ } from "./T6UZU3XM.js";
7
7
  import {
8
8
  ConfigValidationError,
9
9
  HandledError,
@@ -27,7 +27,7 @@ import {
27
27
  red,
28
28
  stringifyYaml,
29
29
  yellow
30
- } from "./Z3EJWJEX.js";
30
+ } from "./Z2664VV5.js";
31
31
 
32
32
  // src/commands/lint.ts
33
33
  import { performance as performance3 } from "perf_hooks";
@@ -2,7 +2,7 @@ import { createRequire as __createRequire } from 'node:module';
2
2
  const require = __createRequire(import.meta.url);
3
3
  import {
4
4
  selectTrafficParser
5
- } from "./Y7LKQTQ4.js";
5
+ } from "./P6UGG7F6.js";
6
6
  import {
7
7
  getPathWithoutTrailingSlash,
8
8
  isJsonMime,
@@ -12,14 +12,14 @@ import {
12
12
  normalizeFsPath,
13
13
  normalizeServerPrefix,
14
14
  resolvePathForServer
15
- } from "./PU67EGEM.js";
15
+ } from "./3CX2Z7JI.js";
16
16
  import {
17
17
  OPENAPI3_METHOD_NAMES,
18
18
  Spinner
19
- } from "./64PJUTGH.js";
19
+ } from "./KPMZLKQG.js";
20
20
  import {
21
21
  exitWithError
22
- } from "./CUWLBJXP.js";
22
+ } from "./T6UZU3XM.js";
23
23
  import {
24
24
  createConfig,
25
25
  isPlainObject,
@@ -28,7 +28,7 @@ import {
28
28
  parseYaml,
29
29
  pluralize,
30
30
  stringifyYaml
31
- } from "./Z3EJWJEX.js";
31
+ } from "./Z2664VV5.js";
32
32
  import "./Z2I5YXYN.js";
33
33
  import "./5ILQMFXK.js";
34
34
 
@@ -2,13 +2,13 @@ import { createRequire as __createRequire } from 'node:module';
2
2
  const require = __createRequire(import.meta.url);
3
3
  import {
4
4
  RedoclyOAuthClient
5
- } from "./GCAYTKJY.js";
5
+ } from "./ASYQPOQY.js";
6
6
  import "./Y6DTFCLS.js";
7
7
  import "./4FB5ZIPP.js";
8
- import "./YPFS42IW.js";
8
+ import "./GFU5KGSW.js";
9
9
  import "./XB6C62FW.js";
10
10
  import "./UUU33DK3.js";
11
- import "./Z3EJWJEX.js";
11
+ import "./Z2664VV5.js";
12
12
  import "./Z2I5YXYN.js";
13
13
  import "./5ILQMFXK.js";
14
14
  export {
@@ -3,17 +3,17 @@ const require = __createRequire(import.meta.url);
3
3
  import {
4
4
  getExecutionTime,
5
5
  getFallbackApisOrExit
6
- } from "./UQJWXLNC.js";
6
+ } from "./3UUTQVCJ.js";
7
7
  import {
8
8
  exitWithError
9
- } from "./CUWLBJXP.js";
9
+ } from "./T6UZU3XM.js";
10
10
  import {
11
11
  require_dist
12
12
  } from "./4FB5ZIPP.js";
13
13
  import {
14
14
  redocStandaloneSri,
15
15
  redocVersion
16
- } from "./YPFS42IW.js";
16
+ } from "./GFU5KGSW.js";
17
17
  import {
18
18
  require_json_pointer,
19
19
  require_openapi_sampler
@@ -25,7 +25,7 @@ import {
25
25
  require_fast_deep_equal,
26
26
  require_json_schema_traverse,
27
27
  require_pluralize
28
- } from "./Z3EJWJEX.js";
28
+ } from "./Z2664VV5.js";
29
29
  import "./Z2I5YXYN.js";
30
30
  import {
31
31
  __commonJS,
@@ -23126,6 +23126,8 @@ var require_brace_expansion = __commonJS({
23126
23126
  var escClose = "\0CLOSE" + Math.random() + "\0";
23127
23127
  var escComma = "\0COMMA" + Math.random() + "\0";
23128
23128
  var escPeriod = "\0PERIOD" + Math.random() + "\0";
23129
+ var EXPANSION_MAX = 1e5;
23130
+ var EXPANSION_MAX_LENGTH = 4e6;
23129
23131
  function numeric(str) {
23130
23132
  return parseInt(str, 10) == str ? parseInt(str, 10) : str.charCodeAt(0);
23131
23133
  }
@@ -23159,11 +23161,12 @@ var require_brace_expansion = __commonJS({
23159
23161
  if (!str)
23160
23162
  return [];
23161
23163
  options = options || {};
23162
- var max = options.max == null ? Infinity : options.max;
23164
+ var max = options.max == null ? EXPANSION_MAX : options.max;
23165
+ var maxLength = options.maxLength == null ? EXPANSION_MAX_LENGTH : options.maxLength;
23163
23166
  if (str.substr(0, 2) === "{}") {
23164
23167
  str = "\\{\\}" + str.substr(2);
23165
23168
  }
23166
- return expand(escapeBraces(str), max, true).map(unescapeBraces);
23169
+ return expand(escapeBraces(str), max, maxLength, true).map(unescapeBraces);
23167
23170
  }
23168
23171
  function embrace(str) {
23169
23172
  return "{" + str + "}";
@@ -23177,19 +23180,86 @@ var require_brace_expansion = __commonJS({
23177
23180
  function gte(i, y) {
23178
23181
  return i >= y;
23179
23182
  }
23180
- function expand(str, max, isTop) {
23181
- var expansions = [];
23183
+ function combine(acc, pre, values, max, maxLength, dropEmpties) {
23184
+ var out = [];
23185
+ var length = 0;
23186
+ for (var a = 0; a < acc.length; a++) {
23187
+ for (var v = 0; v < values.length; v++) {
23188
+ if (out.length >= max) return out;
23189
+ var expansion = acc[a] + pre + values[v];
23190
+ if (dropEmpties && !expansion) continue;
23191
+ if (length + expansion.length > maxLength) return out;
23192
+ out.push(expansion);
23193
+ length += expansion.length;
23194
+ }
23195
+ }
23196
+ return out;
23197
+ }
23198
+ function expandSequence(body, isAlphaSequence, max) {
23199
+ var n = body.split(/\.\./);
23200
+ var N = [];
23201
+ if (n[0] === void 0 || n[1] === void 0) {
23202
+ return N;
23203
+ }
23204
+ var x = numeric(n[0]);
23205
+ var y = numeric(n[1]);
23206
+ var width = Math.max(n[0].length, n[1].length);
23207
+ var incr = n.length === 3 && n[2] !== void 0 ? Math.max(Math.abs(numeric(n[2])), 1) : 1;
23208
+ var test = lte;
23209
+ var reverse = y < x;
23210
+ if (reverse) {
23211
+ incr *= -1;
23212
+ test = gte;
23213
+ }
23214
+ var pad = n.some(isPadded);
23215
+ for (var i = x; test(i, y) && N.length < max; i += incr) {
23216
+ var c;
23217
+ if (isAlphaSequence) {
23218
+ c = String.fromCharCode(i);
23219
+ if (c === "\\") {
23220
+ c = "";
23221
+ }
23222
+ } else {
23223
+ c = String(i);
23224
+ if (pad) {
23225
+ var need = width - c.length;
23226
+ if (need > 0) {
23227
+ var z = new Array(need + 1).join("0");
23228
+ if (i < 0) {
23229
+ c = "-" + z + c.slice(1);
23230
+ } else {
23231
+ c = z + c;
23232
+ }
23233
+ }
23234
+ }
23235
+ }
23236
+ N.push(c);
23237
+ }
23238
+ return N;
23239
+ }
23240
+ function expand(str, max, maxLength, isTop) {
23241
+ var acc = [""];
23242
+ var dropEmpties = false;
23243
+ var firstGroup = true;
23182
23244
  for (; ; ) {
23183
23245
  const m = balanced("{", "}", str);
23184
- if (!m) return [str];
23246
+ if (!m) {
23247
+ return combine(acc, str, [""], max, maxLength, dropEmpties);
23248
+ }
23185
23249
  const pre = m.pre;
23186
- if (/\$$/.test(m.pre)) {
23187
- const post2 = m.post.length ? expand(m.post, max, false) : [""];
23188
- for (let k2 = 0; k2 < post2.length && k2 < max; k2++) {
23189
- const expansion2 = pre + "{" + m.body + "}" + post2[k2];
23190
- expansions.push(expansion2);
23191
- }
23192
- return expansions;
23250
+ if (/\$$/.test(pre)) {
23251
+ acc = combine(
23252
+ acc,
23253
+ pre + "{" + m.body + "}",
23254
+ [""],
23255
+ max,
23256
+ maxLength,
23257
+ dropEmpties && !m.post.length
23258
+ );
23259
+ firstGroup = false;
23260
+ if (!m.post.length) break;
23261
+ str = m.post;
23262
+ continue;
23193
23263
  }
23194
23264
  var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body);
23195
23265
  var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body);
@@ -23201,73 +23271,50 @@ var require_brace_expansion = __commonJS({
23201
23271
  isTop = true;
23202
23272
  continue;
23203
23273
  }
23204
- return [str];
23274
+ return combine(
23275
+ acc,
23276
+ pre + "{" + m.body + "}" + m.post,
23277
+ [""],
23278
+ max,
23279
+ maxLength,
23280
+ dropEmpties
23281
+ );
23205
23282
  }
23206
- const post = m.post.length ? expand(m.post, max, false) : [""];
23207
- var n;
23283
+ if (firstGroup) {
23284
+ dropEmpties = isTop && !isSequence;
23285
+ firstGroup = false;
23286
+ }
23287
+ var values;
23208
23288
  if (isSequence) {
23209
- n = m.body.split(/\.\./);
23289
+ values = expandSequence(m.body, isAlphaSequence, max);
23210
23290
  } else {
23211
- n = parseCommaParts(m.body);
23212
- if (n.length === 1) {
23213
- n = expand(n[0], max, false).map(embrace);
23291
+ var n = parseCommaParts(m.body);
23292
+ if (n.length === 1 && n[0] !== void 0) {
23293
+ n = expand(n[0], max, maxLength, false).map(embrace);
23214
23294
  if (n.length === 1) {
23215
- return post.map(function(p) {
23216
- return m.pre + n[0] + p;
23217
- });
23218
- }
23219
- }
23220
- }
23221
- var N;
23222
- if (isSequence) {
23223
- var x = numeric(n[0]);
23224
- var y = numeric(n[1]);
23225
- var width = Math.max(n[0].length, n[1].length);
23226
- var incr = n.length == 3 ? Math.max(Math.abs(numeric(n[2])), 1) : 1;
23227
- var test = lte;
23228
- var reverse = y < x;
23229
- if (reverse) {
23230
- incr *= -1;
23231
- test = gte;
23232
- }
23233
- var pad = n.some(isPadded);
23234
- N = [];
23235
- for (var i = x; test(i, y) && N.length < max; i += incr) {
23236
- var c;
23237
- if (isAlphaSequence) {
23238
- c = String.fromCharCode(i);
23239
- if (c === "\\")
23240
- c = "";
23241
- } else {
23242
- c = String(i);
23243
- if (pad) {
23244
- var need = width - c.length;
23245
- if (need > 0) {
23246
- var z = new Array(need + 1).join("0");
23247
- if (i < 0)
23248
- c = "-" + z + c.slice(1);
23249
- else
23250
- c = z + c;
23251
- }
23252
- }
23295
+ acc = combine(
23296
+ acc,
23297
+ pre + n[0],
23298
+ [""],
23299
+ max,
23300
+ maxLength,
23301
+ dropEmpties && !m.post.length
23302
+ );
23303
+ if (!m.post.length) break;
23304
+ str = m.post;
23305
+ continue;
23253
23306
  }
23254
- N.push(c);
23255
23307
  }
23256
- } else {
23257
- N = [];
23308
+ values = [];
23258
23309
  for (var j = 0; j < n.length; j++) {
23259
- N.push.apply(N, expand(n[j], max, false));
23310
+ values.push.apply(values, expand(n[j], max, maxLength, false));
23260
23311
  }
23261
23312
  }
23262
- for (var j = 0; j < N.length; j++) {
23263
- for (var k = 0; k < post.length && expansions.length < max; k++) {
23264
- var expansion = pre + N[j] + post[k];
23265
- if (!isTop || isSequence || expansion)
23266
- expansions.push(expansion);
23267
- }
23268
- }
23269
- return expansions;
23313
+ acc = combine(acc, pre, values, max, maxLength, dropEmpties && !m.post.length);
23314
+ if (!m.post.length) break;
23315
+ str = m.post;
23270
23316
  }
23317
+ return acc;
23271
23318
  }
23272
23319
  }
23273
23320
  });
@@ -24412,7 +24459,7 @@ var require_int3 = __commonJS({
24412
24459
  if (ch !== "0" && ch !== "1") return false;
24413
24460
  hasDigits = true;
24414
24461
  }
24415
- return hasDigits && Number.isFinite(parseYamlInteger(data));
24462
+ return hasDigits && isFinite(parseYamlInteger(data));
24416
24463
  }
24417
24464
  if (ch === "x") {
24418
24465
  index++;
@@ -24420,7 +24467,7 @@ var require_int3 = __commonJS({
24420
24467
  if (!isHexCode(data.charCodeAt(index))) return false;
24421
24468
  hasDigits = true;
24422
24469
  }
24423
- return hasDigits && Number.isFinite(parseYamlInteger(data));
24470
+ return hasDigits && isFinite(parseYamlInteger(data));
24424
24471
  }
24425
24472
  if (ch === "o") {
24426
24473
  index++;
@@ -24428,7 +24475,7 @@ var require_int3 = __commonJS({
24428
24475
  if (!isOctCode(data.charCodeAt(index))) return false;
24429
24476
  hasDigits = true;
24430
24477
  }
24431
- return hasDigits && Number.isFinite(parseYamlInteger(data));
24478
+ return hasDigits && isFinite(parseYamlInteger(data));
24432
24479
  }
24433
24480
  }
24434
24481
  for (; index < max; index++) {
@@ -24438,7 +24485,7 @@ var require_int3 = __commonJS({
24438
24485
  hasDigits = true;
24439
24486
  }
24440
24487
  if (!hasDigits) return false;
24441
- return Number.isFinite(parseYamlInteger(data));
24488
+ return isFinite(parseYamlInteger(data));
24442
24489
  }
24443
24490
  function parseYamlInteger(data) {
24444
24491
  let value = data;
@@ -24511,7 +24558,7 @@ var require_float3 = __commonJS({
24511
24558
  if (!YAML_FLOAT_PATTERN.test(data)) {
24512
24559
  return false;
24513
24560
  }
24514
- if (Number.isFinite(parseFloat(data, 10))) {
24561
+ if (isFinite(parseFloat(data, 10))) {
24515
24562
  return true;
24516
24563
  }
24517
24564
  return YAML_FLOAT_SPECIAL_PATTERN.test(data);
@@ -25035,7 +25082,7 @@ var require_loader = __commonJS({
25035
25082
  this.json = options["json"] || false;
25036
25083
  this.listener = options["listener"] || null;
25037
25084
  this.maxDepth = typeof options["maxDepth"] === "number" ? options["maxDepth"] : 100;
25038
- this.maxMergeSeqLength = typeof options["maxMergeSeqLength"] === "number" ? options["maxMergeSeqLength"] : 20;
25085
+ this.maxTotalMergeKeys = typeof options["maxTotalMergeKeys"] === "number" ? options["maxTotalMergeKeys"] : 1e4;
25039
25086
  this.implicitTypes = this.schema.compiledImplicit;
25040
25087
  this.typeMap = this.schema.compiledTypeMap;
25041
25088
  this.length = input.length;
@@ -25044,6 +25091,7 @@ var require_loader = __commonJS({
25044
25091
  this.lineStart = 0;
25045
25092
  this.lineIndent = 0;
25046
25093
  this.depth = 0;
25094
+ this.totalMergeKeys = 0;
25047
25095
  this.firstTabInLine = -1;
25048
25096
  this.documents = [];
25049
25097
  this.anchorMapTransactions = [];
@@ -25203,6 +25251,9 @@ var require_loader = __commonJS({
25203
25251
  const sourceKeys = Object.keys(source);
25204
25252
  for (let index = 0, quantity = sourceKeys.length; index < quantity; index += 1) {
25205
25253
  const key2 = sourceKeys[index];
25254
+ if (state.maxTotalMergeKeys !== -1 && ++state.totalMergeKeys > state.maxTotalMergeKeys) {
25255
+ throwError(state, "merge keys exceeded maxTotalMergeKeys (" + state.maxTotalMergeKeys + ")");
25256
+ }
25206
25257
  if (!_hasOwnProperty.call(destination, key2)) {
25207
25258
  setProperty(destination, key2, source[key2]);
25208
25259
  overridableKeys[key2] = true;
@@ -25230,15 +25281,8 @@ var require_loader = __commonJS({
25230
25281
  }
25231
25282
  if (keyTag === "tag:yaml.org,2002:merge") {
25232
25283
  if (Array.isArray(valueNode)) {
25233
- if (valueNode.length > state.maxMergeSeqLength) {
25234
- throwError(state, "merge sequence length exceeded maxMergeSeqLength (" + state.maxMergeSeqLength + ")");
25235
- }
25236
- const seen = /* @__PURE__ */ new Set();
25237
25284
  for (let index = 0, quantity = valueNode.length; index < quantity; index += 1) {
25238
- const src = valueNode[index];
25239
- if (seen.has(src)) continue;
25240
- seen.add(src);
25241
- mergeMappings(state, _result, src, overridableKeys);
25285
+ mergeMappings(state, _result, valueNode[index], overridableKeys);
25242
25286
  }
25243
25287
  } else {
25244
25288
  mergeMappings(state, _result, valueNode, overridableKeys);
@@ -8,10 +8,10 @@ import {
8
8
  maskSecrets,
9
9
  parseRuntimeExpression,
10
10
  run
11
- } from "./JR2DXWZO.js";
11
+ } from "./KRMBH6JF.js";
12
12
  import "./VXIQEZPR.js";
13
13
  import "./UUU33DK3.js";
14
- import "./Z3EJWJEX.js";
14
+ import "./Z2664VV5.js";
15
15
  import "./Z2I5YXYN.js";
16
16
  import "./5ILQMFXK.js";
17
17
  export {
@@ -8,7 +8,7 @@ import {
8
8
  } from "./4FB5ZIPP.js";
9
9
  import {
10
10
  version
11
- } from "./YPFS42IW.js";
11
+ } from "./GFU5KGSW.js";
12
12
  import {
13
13
  require_undici
14
14
  } from "./XB6C62FW.js";
@@ -16,7 +16,7 @@ import {
16
16
  blue,
17
17
  green,
18
18
  logger
19
- } from "./Z3EJWJEX.js";
19
+ } from "./Z2664VV5.js";
20
20
  import {
21
21
  __toESM
22
22
  } from "./5ILQMFXK.js";
@@ -10,7 +10,7 @@ import {
10
10
  } from "./Y6DTFCLS.js";
11
11
  import {
12
12
  version
13
- } from "./YPFS42IW.js";
13
+ } from "./GFU5KGSW.js";
14
14
  import {
15
15
  diag,
16
16
  esm_exports,
@@ -4,7 +4,7 @@ const require = __createRequire(import.meta.url);
4
4
  // package.json
5
5
  var package_default = {
6
6
  name: "@redocly/cli",
7
- version: "2.41.1",
7
+ version: "2.41.2",
8
8
  description: "",
9
9
  license: "MIT",
10
10
  bin: {
@@ -49,8 +49,8 @@ var package_default = {
49
49
  "@opentelemetry/sdk-trace-node": "2.8.0",
50
50
  "@opentelemetry/semantic-conventions": "1.41.1",
51
51
  "@redocly/cli-otel": "0.3.4",
52
- "@redocly/openapi-core": "2.41.1",
53
- "@redocly/respect-core": "2.41.1",
52
+ "@redocly/openapi-core": "2.41.2",
53
+ "@redocly/respect-core": "2.41.2",
54
54
  "@types/cookie": "0.6.0",
55
55
  "@types/har-format": "^1.2.16",
56
56
  "@types/react": "^17.0.0 || ^18.2.21 || ^19.2.16",
@@ -2,7 +2,7 @@ import { createRequire as __createRequire } from 'node:module';
2
2
  const require = __createRequire(import.meta.url);
3
3
  import {
4
4
  logger
5
- } from "./Z3EJWJEX.js";
5
+ } from "./Z2664VV5.js";
6
6
 
7
7
  // src/commands/split/oas/constants.ts
8
8
  var OPENAPI3_METHOD_NAMES = [
@@ -17,7 +17,7 @@ import {
17
17
  lint,
18
18
  pluralize,
19
19
  require__
20
- } from "./Z3EJWJEX.js";
20
+ } from "./Z2664VV5.js";
21
21
  import {
22
22
  __commonJS,
23
23
  __toESM
@@ -3070,6 +3070,35 @@ var {
3070
3070
  bgWhiteBright
3071
3071
  } = createColors();
3072
3072
 
3073
+ // ../respect-core/lib/modules/context-parser/resolve-workflow-reference.js
3074
+ function parseSourceDescriptionWorkflowRef(ref) {
3075
+ if (!ref.startsWith("$sourceDescriptions.")) {
3076
+ return void 0;
3077
+ }
3078
+ const parts = ref.split(".");
3079
+ if (parts.length === 3 && parts[1] && parts[2]) {
3080
+ return { sourceDescriptionName: parts[1], workflowId: parts[2], isLegacyForm: false };
3081
+ }
3082
+ if (parts.length === 4 && parts[2] === "workflows" && parts[1] && parts[3]) {
3083
+ return { sourceDescriptionName: parts[1], workflowId: parts[3], isLegacyForm: true };
3084
+ }
3085
+ return void 0;
3086
+ }
3087
+ function resolveWorkflowReference({ ref, ctx }) {
3088
+ if (!ref) {
3089
+ return void 0;
3090
+ }
3091
+ if (!ref.startsWith("$")) {
3092
+ return "workflows" in ctx ? ctx.workflows?.find((workflow) => workflow.workflowId === ref) : void 0;
3093
+ }
3094
+ const parsedRef = parseSourceDescriptionWorkflowRef(ref);
3095
+ if (!parsedRef) {
3096
+ return void 0;
3097
+ }
3098
+ const workflows = ctx.$sourceDescriptions?.[parsedRef.sourceDescriptionName]?.workflows;
3099
+ return Array.isArray(workflows) ? workflows.find((workflow) => workflow.workflowId === parsedRef.workflowId) : void 0;
3100
+ }
3101
+
3073
3102
  // ../respect-core/lib/modules/context-parser/get-value-from-context.js
3074
3103
  var hasCurlyBraces = (input) => {
3075
3104
  return /\{.*?\}/.test(input);
@@ -3302,18 +3331,35 @@ var resolveValue = (value2, ctx, logger) => {
3302
3331
  if (path5.startsWith("$file(") && path5.endsWith(")")) {
3303
3332
  return path5.slice(7, -2);
3304
3333
  }
3305
- if (path5.startsWith("$sourceDescriptions.") && path5.includes(".workflows.")) {
3306
- const parts = path5.split(".");
3307
- const sourceDescriptionName = parts[1];
3308
- const workflowId = parts[3];
3309
- if (!sourceDescriptionName || !workflowId) {
3310
- return void 0;
3334
+ if (path5.startsWith("$sourceDescriptions.")) {
3335
+ const parsedRef = parseSourceDescriptionWorkflowRef(path5);
3336
+ if (parsedRef) {
3337
+ const { sourceDescriptionName, workflowId: reference, isLegacyForm } = parsedRef;
3338
+ const sourceDescriptions = getFrom(ctx)("$sourceDescriptions");
3339
+ const sourceDescriptionDocument = sourceDescriptions?.[sourceDescriptionName];
3340
+ if (!sourceDescriptionDocument) {
3341
+ throw new Error(`Can't resolve ${red(path5)}: source description ${red(sourceDescriptionName)} is not found. Available source descriptions: ${Object.keys(sourceDescriptions ?? {}).join(", ")}.`);
3342
+ }
3343
+ const workflow = resolveWorkflowReference({ ref: path5, ctx });
3344
+ if (workflow) {
3345
+ return workflow;
3346
+ }
3347
+ if (!isLegacyForm) {
3348
+ const sourceDescriptionObject = ("sourceDescriptions" in ctx ? ctx.sourceDescriptions : void 0)?.find(({ name }) => name === sourceDescriptionName);
3349
+ if (sourceDescriptionObject && Object.prototype.hasOwnProperty.call(sourceDescriptionObject, reference)) {
3350
+ return sourceDescriptionObject[reference];
3351
+ }
3352
+ if (Object.prototype.hasOwnProperty.call(sourceDescriptionDocument, reference)) {
3353
+ return sourceDescriptionDocument[reference];
3354
+ }
3355
+ }
3356
+ const availableWorkflows = (Array.isArray(sourceDescriptionDocument.workflows) ? sourceDescriptionDocument.workflows : []).map((workflow2) => workflow2.workflowId).join(", ");
3357
+ const availableWorkflowsHint = availableWorkflows ? ` Available workflows: ${availableWorkflows}.` : "";
3358
+ throw new Error(isLegacyForm ? `Can't resolve ${red(path5)}: workflow ${red(reference)} is not found in source description ${red(sourceDescriptionName)}.${availableWorkflowsHint}` : `Can't resolve ${red(path5)}: ${red(reference)} does not match a workflow or a field of source description ${red(sourceDescriptionName)}.${availableWorkflowsHint}`);
3311
3359
  }
3312
- const sourceDescriptions = getFrom(ctx)("$sourceDescriptions");
3313
- if (!sourceDescriptions[sourceDescriptionName]) {
3314
- return void 0;
3360
+ if (path5.split(".")[2] === "workflows") {
3361
+ throw new Error(`Can't resolve ${red(path5)}: invalid workflow reference format. Use $sourceDescriptions.<name>.<workflowId> or $sourceDescriptions.<name>.workflows.<workflowId>.`);
3315
3362
  }
3316
- return sourceDescriptions[sourceDescriptionName].workflows.find((workflow) => workflow.workflowId === workflowId);
3317
3363
  }
3318
3364
  if (path5 && path5.trim().startsWith("faker.")) {
3319
3365
  return getFakeData({ pointer: path5, ctx, logger });
@@ -17236,7 +17282,7 @@ async function runStep({ step, ctx, workflowId, retriesLeft, executedStepsCount
17236
17282
  const successActionsToRun = (onSuccess || workflow?.successActions || []).map((action) => resolveReusableComponentItem(action, ctx));
17237
17283
  const resolvedParameters = parameters?.map((parameter) => resolveReusableComponentItem(parameter, ctx));
17238
17284
  if (targetWorkflowRef) {
17239
- const targetWorkflow = ctx.workflows.find((w32) => w32.workflowId === targetWorkflowRef) || getValueFromContext({ value: targetWorkflowRef, ctx, logger: ctx.options.logger });
17285
+ const targetWorkflow = resolveWorkflowReference({ ref: targetWorkflowRef, ctx });
17240
17286
  if (!targetWorkflow) {
17241
17287
  const failedCall = {
17242
17288
  name: CHECKS.UNEXPECTED_ERROR,
@@ -17245,7 +17291,9 @@ async function runStep({ step, ctx, workflowId, retriesLeft, executedStepsCount
17245
17291
  severity: ctx.severity["UNEXPECTED_ERROR"]
17246
17292
  };
17247
17293
  step.checks.push(failedCall);
17248
- return;
17294
+ ctx.executedSteps.push(step);
17295
+ printUnknownStep(step, ctx.options.logger);
17296
+ return { shouldEnd: true };
17249
17297
  }
17250
17298
  const workflowCtx = await resolveWorkflowContext(targetWorkflowRef, targetWorkflow, ctx, ctx.options.config);
17251
17299
  if (resolvedParameters && resolvedParameters.length > 0) {
@@ -17299,6 +17347,8 @@ async function runStep({ step, ctx, workflowId, retriesLeft, executedStepsCount
17299
17347
  severity: ctx.severity["UNEXPECTED_ERROR"]
17300
17348
  };
17301
17349
  step.checks.push(failedCall);
17350
+ ctx.executedSteps.push(step);
17351
+ printUnknownStep(step, ctx.options.logger);
17302
17352
  }
17303
17353
  ctx.$steps[stepId] = {
17304
17354
  outputs
@@ -17412,10 +17462,26 @@ async function runStep({ step, ctx, workflowId, retriesLeft, executedStepsCount
17412
17462
  }
17413
17463
  }
17414
17464
  async function runActions(actions = [], kind, executedStepsCount2) {
17465
+ function failStepWithActionError(message) {
17466
+ const failedCheck = {
17467
+ name: CHECKS.UNEXPECTED_ERROR,
17468
+ message,
17469
+ passed: false,
17470
+ severity: ctx.severity["UNEXPECTED_ERROR"]
17471
+ };
17472
+ step.checks.push(failedCheck);
17473
+ if (!ctx.executedSteps.includes(step)) {
17474
+ ctx.executedSteps.push(step);
17475
+ printUnknownStep(step, ctx.options.logger);
17476
+ } else {
17477
+ printUnknownStep({ ...step, checks: [failedCheck] }, ctx.options.logger);
17478
+ }
17479
+ return { shouldEnd: true };
17480
+ }
17415
17481
  for (const action of actions) {
17416
17482
  const { type, criteria } = action;
17417
17483
  if (action.workflowId && action.stepId) {
17418
- throw new Error(`Cannot use both workflowId: ${action.workflowId} and stepId: ${action.stepId} in ${action.type} action`);
17484
+ return failStepWithActionError(`Cannot use both workflowId: ${action.workflowId} and stepId: ${action.stepId} in ${action.type} action`);
17419
17485
  }
17420
17486
  const matchesCriteria = checkCriteria({
17421
17487
  workflowId,
@@ -17424,11 +17490,10 @@ async function runStep({ step, ctx, workflowId, retriesLeft, executedStepsCount
17424
17490
  ctx
17425
17491
  }).every((check) => check.passed);
17426
17492
  if (matchesCriteria) {
17427
- const targetWorkflow = action.workflowId ? getValueFromContext({
17428
- value: action.workflowId,
17429
- ctx,
17430
- logger: ctx.options.logger
17431
- }) : void 0;
17493
+ const targetWorkflow = action.workflowId ? resolveWorkflowReference({ ref: action.workflowId, ctx }) : void 0;
17494
+ if (action.workflowId && !targetWorkflow) {
17495
+ return failStepWithActionError(`Workflow ${red(action.workflowId)} referenced in the ${type} action of step ${red(stepId)} is not found.`);
17496
+ }
17432
17497
  const targetCtx = action.workflowId && targetWorkflow ? await resolveWorkflowContext(action.workflowId, targetWorkflow, ctx, ctx.options.config) : { ...ctx, executedSteps: [] };
17433
17498
  const targetStep = action.stepId ? action.stepId : void 0;
17434
17499
  if (type === "retry") {
@@ -17462,7 +17527,7 @@ async function runStep({ step, ctx, workflowId, retriesLeft, executedStepsCount
17462
17527
  } else if (targetStep) {
17463
17528
  const stepToRun = workflow?.steps.find((s55) => s55.stepId === targetStep);
17464
17529
  if (!stepToRun) {
17465
- throw new Error(`Step ${targetStep} not found in workflow ${workflowId}`);
17530
+ return failStepWithActionError(`Step ${targetStep} not found in workflow ${workflowId}`);
17466
17531
  }
17467
17532
  await runStep({
17468
17533
  step: stepToRun,
@@ -17488,7 +17553,7 @@ async function runStep({ step, ctx, workflowId, retriesLeft, executedStepsCount
17488
17553
  return { shouldEnd: true };
17489
17554
  } else if (type === "goto") {
17490
17555
  if (!targetWorkflow && !targetStep) {
17491
- throw new Error("Either workflowId or stepId must be provided in goto action");
17556
+ return failStepWithActionError("Either workflowId or stepId must be provided in goto action");
17492
17557
  }
17493
17558
  if (targetWorkflow || targetStep) {
17494
17559
  printActionsSeparator({
@@ -17556,7 +17621,42 @@ async function runWorkflows({ testDescription, options, executedStepsCount }) {
17556
17621
  for (const workflow of workflows) {
17557
17622
  ctx.executedSteps = [];
17558
17623
  if (workflow.dependsOn?.length) {
17559
- await handleDependsOn({ workflow, ctx, config: options.config, executedStepsCount });
17624
+ try {
17625
+ await handleDependsOn({ workflow, ctx, config: options.config, executedStepsCount });
17626
+ } catch (error) {
17627
+ if (!(error instanceof WorkflowDependencyError)) {
17628
+ throw error;
17629
+ }
17630
+ const failureTime = performance.now();
17631
+ const failedStep = {
17632
+ stepId: "dependsOn",
17633
+ checks: [
17634
+ {
17635
+ name: CHECKS.UNEXPECTED_ERROR,
17636
+ message: error.message,
17637
+ passed: false,
17638
+ severity: ctx.severity["UNEXPECTED_ERROR"]
17639
+ }
17640
+ ]
17641
+ };
17642
+ printWorkflowSeparator({
17643
+ fileName: basename3(ctx.options.filePath),
17644
+ workflowName: workflow.workflowId,
17645
+ logger: options.logger
17646
+ });
17647
+ printUnknownStep(failedStep, options.logger);
17648
+ executedWorkflows.push({
17649
+ type: "workflow",
17650
+ workflowId: workflow.workflowId,
17651
+ startTime: failureTime,
17652
+ endTime: failureTime,
17653
+ totalTimeMs: 0,
17654
+ executedSteps: [failedStep],
17655
+ ctx,
17656
+ globalTimeoutError: false
17657
+ });
17658
+ continue;
17659
+ }
17560
17660
  }
17561
17661
  const workflowExecutionResult = await runWorkflow({
17562
17662
  workflowInput: workflow.workflowId,
@@ -17670,15 +17770,19 @@ async function runWorkflow({ workflowInput, ctx, fromStepId, skipLineSeparator,
17670
17770
  globalTimeoutError: hasFailedTimeoutSteps
17671
17771
  };
17672
17772
  }
17773
+ var WorkflowDependencyError = class extends Error {
17774
+ };
17673
17775
  async function handleDependsOn({ workflow, ctx, config, executedStepsCount }) {
17674
17776
  if (!workflow.dependsOn?.length)
17675
17777
  return;
17676
- const dependenciesWorkflows = await Promise.all(workflow.dependsOn.map(async (workflowId) => {
17677
- const resolvedWorkflow = getValueFromContext({
17678
- value: workflowId,
17679
- ctx,
17680
- logger: ctx.options.logger
17681
- });
17778
+ const resolvedDependencies = workflow.dependsOn.map((workflowId) => {
17779
+ const resolvedWorkflow = resolveWorkflowReference({ ref: workflowId, ctx });
17780
+ if (!resolvedWorkflow) {
17781
+ throw new WorkflowDependencyError(`Workflow ${red(workflowId)} from dependsOn of workflow ${red(workflow.workflowId)} is not found.`);
17782
+ }
17783
+ return { workflowId, resolvedWorkflow };
17784
+ });
17785
+ const dependenciesWorkflows = await Promise.all(resolvedDependencies.map(async ({ workflowId, resolvedWorkflow }) => {
17682
17786
  const workflowCtx = await resolveWorkflowContext(workflowId, resolvedWorkflow, ctx, config);
17683
17787
  printRequiredWorkflowSeparator(workflow.workflowId, ctx.options.logger);
17684
17788
  return runWorkflow({
@@ -17688,10 +17792,9 @@ async function handleDependsOn({ workflow, ctx, config, executedStepsCount }) {
17688
17792
  executedStepsCount
17689
17793
  });
17690
17794
  }));
17691
- const totals = calculateTotals(dependenciesWorkflows);
17692
- const hasProblems = totals.steps.failed > 0;
17693
- if (hasProblems) {
17694
- throw new Error("Dependent workflows has failed steps");
17795
+ const failedDependencies = dependenciesWorkflows.filter((dependencyWorkflow) => calculateTotals([dependencyWorkflow]).steps.failed > 0).map((dependencyWorkflow) => dependencyWorkflow.workflowId);
17796
+ if (failedDependencies.length) {
17797
+ throw new WorkflowDependencyError(`Dependent workflows of workflow ${red(workflow.workflowId)} have failed steps: ${red(failedDependencies.join(", "))}.`);
17695
17798
  }
17696
17799
  }
17697
17800
  async function resolveWorkflowContext(workflowId, resolvedWorkflow, ctx, config) {
@@ -5,23 +5,23 @@ import {
5
5
  loadOpenApiIndex,
6
6
  parseCsv,
7
7
  renderReport
8
- } from "./LZNQHR3A.js";
8
+ } from "./RRC5IDC3.js";
9
9
  import {
10
10
  createNormalizedExchange,
11
11
  isJsonMime,
12
12
  normalizeFsPath
13
- } from "./PU67EGEM.js";
13
+ } from "./3CX2Z7JI.js";
14
14
  import {
15
15
  AbortFlowError,
16
16
  exitWithError
17
- } from "./CUWLBJXP.js";
17
+ } from "./T6UZU3XM.js";
18
18
  import {
19
19
  require_undici
20
20
  } from "./XB6C62FW.js";
21
21
  import {
22
22
  isPlainObject,
23
23
  logger
24
- } from "./Z3EJWJEX.js";
24
+ } from "./Z2664VV5.js";
25
25
  import "./Z2I5YXYN.js";
26
26
  import {
27
27
  __toESM
@@ -2,24 +2,24 @@ import { createRequire as __createRequire } from 'node:module';
2
2
  const require = __createRequire(import.meta.url);
3
3
  import {
4
4
  selectTrafficParser
5
- } from "./Y7LKQTQ4.js";
5
+ } from "./P6UGG7F6.js";
6
6
  import {
7
7
  ValidationSession,
8
8
  loadOpenApiIndex,
9
9
  parseCsv,
10
10
  renderReport
11
- } from "./LZNQHR3A.js";
11
+ } from "./RRC5IDC3.js";
12
12
  import {
13
13
  listFilesRecursively,
14
14
  normalizeFsPath
15
- } from "./PU67EGEM.js";
15
+ } from "./3CX2Z7JI.js";
16
16
  import {
17
17
  AbortFlowError,
18
18
  exitWithError
19
- } from "./CUWLBJXP.js";
19
+ } from "./T6UZU3XM.js";
20
20
  import {
21
21
  logger
22
- } from "./Z3EJWJEX.js";
22
+ } from "./Z2664VV5.js";
23
23
  import "./Z2I5YXYN.js";
24
24
  import "./5ILQMFXK.js";
25
25
 
@@ -10,10 +10,10 @@ import {
10
10
  pickHeaderContentType,
11
11
  readProbe,
12
12
  streamNdjsonObjects
13
- } from "./PU67EGEM.js";
13
+ } from "./3CX2Z7JI.js";
14
14
  import {
15
15
  isPlainObject
16
- } from "./Z3EJWJEX.js";
16
+ } from "./Z2664VV5.js";
17
17
 
18
18
  // src/commands/drift/log-formats/har.ts
19
19
  import path from "node:path";
@@ -13,7 +13,7 @@ import {
13
13
  resolvePathForServer,
14
14
  shouldIgnoreHeaderAsUndocumented,
15
15
  splitSetCookieHeader
16
- } from "./PU67EGEM.js";
16
+ } from "./3CX2Z7JI.js";
17
17
  import {
18
18
  BaseResolver,
19
19
  blue,
@@ -35,7 +35,7 @@ import {
35
35
  require_dist,
36
36
  walkDocument,
37
37
  yellow
38
- } from "./Z3EJWJEX.js";
38
+ } from "./Z2664VV5.js";
39
39
  import {
40
40
  __toESM
41
41
  } from "./5ILQMFXK.js";
@@ -2,7 +2,7 @@ import { createRequire as __createRequire } from 'node:module';
2
2
  const require = __createRequire(import.meta.url);
3
3
  import {
4
4
  HandledError
5
- } from "./Z3EJWJEX.js";
5
+ } from "./Z2664VV5.js";
6
6
 
7
7
  // src/utils/error.ts
8
8
  var AbortFlowError = class extends Error {
@@ -20538,6 +20538,17 @@ function addMappingEvent(state, start, anchorStart, anchorEnd, tagStart, tagEnd,
20538
20538
  style
20539
20539
  });
20540
20540
  }
20541
+ function insertFlowPairMappingEvent(state, snapshot) {
20542
+ state.events.splice(snapshot.eventsLength, 0, {
20543
+ type: 3,
20544
+ start: snapshot.position,
20545
+ anchorStart: NO_RANGE$1,
20546
+ anchorEnd: NO_RANGE$1,
20547
+ tagStart: NO_RANGE$1,
20548
+ tagEnd: NO_RANGE$1,
20549
+ style: 2
20550
+ });
20551
+ }
20541
20552
  function addScalarEvent(state, valueStart, valueEnd, anchorStart, anchorEnd, tagStart, tagEnd, style, chomping = 1, indent = -1, fast = false) {
20542
20553
  state.events.push({
20543
20554
  type: 4,
@@ -20981,12 +20992,8 @@ function readFlowCollection(state, nodeIndent, props) {
20981
20992
  state.position++;
20982
20993
  skipFlowSeparationSpace(state, nodeIndent);
20983
20994
  if (!isMapping) {
20984
- restoreState(state, entryStart);
20985
- addMappingEvent(state, entryStart.position, NO_RANGE$1, NO_RANGE$1, NO_RANGE$1, NO_RANGE$1, 2);
20986
- if (!parseNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true)) addEmptyScalarEvent(state);
20987
- skipFlowSeparationSpace(state, nodeIndent);
20988
- state.position++;
20989
- skipFlowSeparationSpace(state, nodeIndent);
20995
+ insertFlowPairMappingEvent(state, entryStart);
20996
+ if (!keyWasRead) addEmptyScalarEvent(state);
20990
20997
  } else if (!keyWasRead) addEmptyScalarEvent(state);
20991
20998
  if (!parseNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true)) addEmptyScalarEvent(state);
20992
20999
  skipFlowSeparationSpace(state, nodeIndent);
@@ -20996,9 +21003,8 @@ function readFlowCollection(state, nodeIndent, props) {
20996
21003
  addEmptyScalarEvent(state);
20997
21004
  } else if (isMapping) addEmptyScalarEvent(state);
20998
21005
  else if (isPair) {
20999
- restoreState(state, entryStart);
21000
- addMappingEvent(state, entryStart.position, NO_RANGE$1, NO_RANGE$1, NO_RANGE$1, NO_RANGE$1, 2);
21001
- parseNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);
21006
+ insertFlowPairMappingEvent(state, entryStart);
21007
+ if (!keyWasRead) addEmptyScalarEvent(state);
21002
21008
  addEmptyScalarEvent(state);
21003
21009
  addPopEvent(state);
21004
21010
  }
@@ -21637,7 +21643,7 @@ function isNsCharOrWhitespace(c2) {
21637
21643
  function isPlainSafe(c2, prev, inblock) {
21638
21644
  const cIsNsCharOrWhitespace = isNsCharOrWhitespace(c2);
21639
21645
  const cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace(c2);
21640
- return (inblock ? cIsNsCharOrWhitespace : cIsNsCharOrWhitespace && c2 !== CHAR_COMMA && c2 !== CHAR_LEFT_SQUARE_BRACKET && c2 !== CHAR_RIGHT_SQUARE_BRACKET && c2 !== CHAR_LEFT_CURLY_BRACKET && c2 !== CHAR_RIGHT_CURLY_BRACKET) && c2 !== CHAR_SHARP && !(prev === CHAR_COLON && !cIsNsChar) || isNsCharOrWhitespace(prev) && !isWhitespace(prev) && c2 === CHAR_SHARP || prev === CHAR_COLON && cIsNsChar;
21646
+ return (inblock ? cIsNsCharOrWhitespace : cIsNsCharOrWhitespace && c2 !== CHAR_COMMA && c2 !== CHAR_LEFT_SQUARE_BRACKET && c2 !== CHAR_RIGHT_SQUARE_BRACKET && c2 !== CHAR_LEFT_CURLY_BRACKET && c2 !== CHAR_RIGHT_CURLY_BRACKET) && c2 !== CHAR_SHARP && !(prev === CHAR_COLON && !cIsNsChar) || isNsCharOrWhitespace(prev) && !isWhitespace(prev) && c2 === CHAR_SHARP || prev === CHAR_COLON && cIsNsChar && (inblock || c2 !== CHAR_COMMA && c2 !== CHAR_LEFT_SQUARE_BRACKET && c2 !== CHAR_RIGHT_SQUARE_BRACKET && c2 !== CHAR_LEFT_CURLY_BRACKET && c2 !== CHAR_RIGHT_CURLY_BRACKET);
21641
21647
  }
21642
21648
  function isPlainSafeFirst(c2) {
21643
21649
  return isPrintable(c2) && c2 !== CHAR_BOM && !isWhitespace(c2) && c2 !== CHAR_MINUS && c2 !== CHAR_QUESTION && c2 !== CHAR_COLON && c2 !== CHAR_COMMA && c2 !== CHAR_LEFT_SQUARE_BRACKET && c2 !== CHAR_RIGHT_SQUARE_BRACKET && c2 !== CHAR_LEFT_CURLY_BRACKET && c2 !== CHAR_RIGHT_CURLY_BRACKET && c2 !== CHAR_SHARP && c2 !== CHAR_AMPERSAND && c2 !== CHAR_ASTERISK && c2 !== CHAR_EXCLAMATION && c2 !== CHAR_VERTICAL_LINE && c2 !== CHAR_EQUALS && c2 !== CHAR_GREATER_THAN && c2 !== CHAR_SINGLE_QUOTE && c2 !== CHAR_DOUBLE_QUOTE && c2 !== CHAR_PERCENT && c2 !== CHAR_COMMERCIAL_AT && c2 !== CHAR_GRAVE_ACCENT;
@@ -39321,5 +39327,5 @@ export {
39321
39327
  /*! Bundled license information:
39322
39328
 
39323
39329
  js-yaml/dist/js-yaml.mjs:
39324
- (*! js-yaml 5.2.1 https://github.com/nodeca/js-yaml @license MIT *)
39330
+ (*! js-yaml 5.2.2 https://github.com/nodeca/js-yaml @license MIT *)
39325
39331
  */
package/lib/index.js CHANGED
@@ -28,16 +28,16 @@ import {
28
28
  saveBundle,
29
29
  sortTopLevelKeys,
30
30
  writeToFileByExtension
31
- } from "./chunks/UQJWXLNC.js";
31
+ } from "./chunks/3UUTQVCJ.js";
32
32
  import {
33
33
  OPENAPI3_COMPONENT_NAMES,
34
34
  OPENAPI3_METHOD_NAMES,
35
35
  Spinner
36
- } from "./chunks/64PJUTGH.js";
36
+ } from "./chunks/KPMZLKQG.js";
37
37
  import {
38
38
  AbortFlowError,
39
39
  exitWithError
40
- } from "./chunks/CUWLBJXP.js";
40
+ } from "./chunks/T6UZU3XM.js";
41
41
  import {
42
42
  RedoclyOAuthClient,
43
43
  ReuniteApi,
@@ -47,7 +47,7 @@ import {
47
47
  getProxyUrl,
48
48
  getReuniteUrl,
49
49
  shouldBypassProxy
50
- } from "./chunks/GCAYTKJY.js";
50
+ } from "./chunks/ASYQPOQY.js";
51
51
  import {
52
52
  ANONYMOUS_ID_CACHE_FILE,
53
53
  DEFAULT_FETCH_TIMEOUT,
@@ -58,7 +58,7 @@ import {
58
58
  engines,
59
59
  name,
60
60
  version
61
- } from "./chunks/YPFS42IW.js";
61
+ } from "./chunks/GFU5KGSW.js";
62
62
  import {
63
63
  require_undici
64
64
  } from "./chunks/XB6C62FW.js";
@@ -66,7 +66,7 @@ import {
66
66
  RESET_ESCAPE_CODE,
67
67
  calculateTotals,
68
68
  conditionallyMaskSecrets
69
- } from "./chunks/JR2DXWZO.js";
69
+ } from "./chunks/KRMBH6JF.js";
70
70
  import "./chunks/VXIQEZPR.js";
71
71
  import "./chunks/UUU33DK3.js";
72
72
  import {
@@ -120,7 +120,7 @@ import {
120
120
  white,
121
121
  xmlEscape,
122
122
  yellow
123
- } from "./chunks/Z3EJWJEX.js";
123
+ } from "./chunks/Z2664VV5.js";
124
124
  import "./chunks/Z2I5YXYN.js";
125
125
  import {
126
126
  __commonJS,
@@ -7715,7 +7715,7 @@ async function handleGenerateArazzo({
7715
7715
  config: config3
7716
7716
  };
7717
7717
  try {
7718
- const { generate } = await import("./chunks/UV3RHVRI.js");
7718
+ const { generate } = await import("./chunks/A3VFVVHD.js");
7719
7719
  logger.info(gray("\n Generating Arazzo description... \n"));
7720
7720
  const generatedArazzo = await generate(options);
7721
7721
  writeFileSync2(outputFile, stringifyYaml(generatedArazzo));
@@ -9072,14 +9072,14 @@ function mapJsonStep(step, workflowId, ctx) {
9072
9072
  stepId: step.stepId,
9073
9073
  workflowId,
9074
9074
  request: {
9075
- method: publicStep.request?.method || "",
9075
+ method: publicStep?.request?.method || "",
9076
9076
  url: step.response?.requestUrl || "",
9077
- headers: publicStep.request?.header || {},
9078
- body: publicStep.request?.body
9077
+ headers: publicStep?.request?.header || {},
9078
+ body: publicStep?.request?.body
9079
9079
  },
9080
9080
  response: {
9081
9081
  statusCode: step.response?.statusCode || 0,
9082
- body: publicStep.response?.body,
9082
+ body: publicStep?.response?.body,
9083
9083
  headers: step.response?.header || {},
9084
9084
  time: step.response?.time || 0,
9085
9085
  size: step.response?.responseSize
@@ -9088,7 +9088,7 @@ function mapJsonStep(step, workflowId, ctx) {
9088
9088
  ...check,
9089
9089
  status: calculateCheckStatus(check)
9090
9090
  })),
9091
- totalTimeMs: publicStep.response?.time || 0,
9091
+ totalTimeMs: publicStep?.response?.time || 0,
9092
9092
  retriesLeft: step.retriesLeft,
9093
9093
  status: calculateStepStatus(step.checks)
9094
9094
  };
@@ -9167,7 +9167,7 @@ async function handleRespect({
9167
9167
  let mtlsCerts;
9168
9168
  let harLogs;
9169
9169
  try {
9170
- const { run, conditionallyMaskSecrets: conditionallyMaskSecrets2 } = await import("./chunks/UV3RHVRI.js");
9170
+ const { run, conditionallyMaskSecrets: conditionallyMaskSecrets2 } = await import("./chunks/A3VFVVHD.js");
9171
9171
  const workingDir = config3.configPath ? dirname4(config3.configPath) : process.cwd();
9172
9172
  if (argv.mtls) {
9173
9173
  mtlsCerts = resolveMtlsCertificates(argv.mtls, workingDir);
@@ -12643,7 +12643,7 @@ async function sendTelemetry({
12643
12643
  $0: _,
12644
12644
  ...args
12645
12645
  } = argv;
12646
- const { RedoclyOAuthClient: RedoclyOAuthClient2 } = await import("./chunks/KWQEC5JF.js");
12646
+ const { RedoclyOAuthClient: RedoclyOAuthClient2 } = await import("./chunks/7IX44JLO.js");
12647
12647
  const oauthClient = new RedoclyOAuthClient2();
12648
12648
  const reuniteUrl = getReuniteUrl(config3, args.residency);
12649
12649
  const logged_in = await oauthClient.isAuthorized(reuniteUrl);
@@ -12682,6 +12682,8 @@ async function sendTelemetry({
12682
12682
  type: "com.redocly.command.ran",
12683
12683
  source: "urn:redocly:cli",
12684
12684
  origin: "redocly-cli",
12685
+ env: "production",
12686
+ // should become "production" ab build time
12685
12687
  osPlatform: os.platform(),
12686
12688
  actor: {
12687
12689
  id: anonymous_id,
@@ -12691,7 +12693,7 @@ async function sendTelemetry({
12691
12693
  category: "product",
12692
12694
  data: eventData
12693
12695
  });
12694
- const { otelTelemetry } = await import("./chunks/OYU4O47C.js");
12696
+ const { otelTelemetry } = await import("./chunks/BVP23YP7.js");
12695
12697
  otelTelemetry.send(cloudEvent);
12696
12698
  } catch (err) {
12697
12699
  }
@@ -13525,7 +13527,7 @@ yargs_default(hideBin(process.argv)).version("version", "Show version number.",
13525
13527
  return true;
13526
13528
  }),
13527
13529
  async (argv) => {
13528
- const { handlerBuildCommand } = await import("./chunks/RLUKQFWZ.js");
13530
+ const { handlerBuildCommand } = await import("./chunks/7MOL2QVN.js");
13529
13531
  commandWrapper(handlerBuildCommand)(argv);
13530
13532
  }
13531
13533
  ).command(
@@ -13746,7 +13748,7 @@ yargs_default(hideBin(process.argv)).version("version", "Show version number.",
13746
13748
  config: { describe: "Path to the config file.", type: "string" }
13747
13749
  }),
13748
13750
  async (argv) => {
13749
- const { handleGenerateSpec } = await import("./chunks/OFNDHNJR.js");
13751
+ const { handleGenerateSpec } = await import("./chunks/7F5O43EU.js");
13750
13752
  commandWrapper(handleGenerateSpec)(argv);
13751
13753
  }
13752
13754
  ).command(
@@ -13861,7 +13863,7 @@ yargs_default(hideBin(process.argv)).version("version", "Show version number.",
13861
13863
  }
13862
13864
  }),
13863
13865
  async (argv) => {
13864
- const { handleDrift } = await import("./chunks/HFIKZEXG.js");
13866
+ const { handleDrift } = await import("./chunks/NW3XJZXQ.js");
13865
13867
  commandWrapper(handleDrift)(argv);
13866
13868
  }
13867
13869
  ).command(
@@ -13929,7 +13931,7 @@ yargs_default(hideBin(process.argv)).version("version", "Show version number.",
13929
13931
  }
13930
13932
  }),
13931
13933
  async (argv) => {
13932
- const { handleProxy } = await import("./chunks/Q7LC24EZ.js");
13934
+ const { handleProxy } = await import("./chunks/NLIKC7UP.js");
13933
13935
  commandWrapper(handleProxy)(argv);
13934
13936
  }
13935
13937
  ).completion("completion", "Generate autocomplete script for `redocly` command.").demandCommand(1).middleware([notifyUpdateCliVersion]).strict().argv;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redocly/cli",
3
- "version": "2.41.1",
3
+ "version": "2.41.2",
4
4
  "description": "",
5
5
  "license": "MIT",
6
6
  "type": "module",