coderifts 1.8.3 → 1.8.4

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/cli.js CHANGED
@@ -3007,7 +3007,7 @@ var require_package = __commonJS({
3007
3007
  "package.json"(exports2, module2) {
3008
3008
  module2.exports = {
3009
3009
  name: "coderifts",
3010
- version: "1.8.3",
3010
+ version: "1.8.4",
3011
3011
  description: "Detect breaking API changes from the command line. Works locally or with the CodeRifts cloud API.",
3012
3012
  author: "CodeRifts <hello@coderifts.com>",
3013
3013
  license: "MIT",
@@ -3061,7 +3061,8 @@ var require_package = __commonJS({
3061
3061
  overrides: {
3062
3062
  "z-schema": "^7.2.0",
3063
3063
  "json-schema-ref-parser": "npm:@apidevtools/json-schema-ref-parser@^11.7.3",
3064
- "form-data": "^4.0.6"
3064
+ "form-data": "^4.0.6",
3065
+ axios: ">=1.18.0"
3065
3066
  },
3066
3067
  devDependencies: {
3067
3068
  esbuild: "^0.28.1"
@@ -30018,6 +30019,7 @@ var require_fast_uri = __commonJS({
30018
30019
  return uriTokens.join("");
30019
30020
  }
30020
30021
  var URI_PARSE = /^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;
30022
+ var AUTHORITY_PREFIX = /^(?:[^#/:?]+:)?\/\/([^/?#]*)/;
30021
30023
  function getParseError(parsed, matches) {
30022
30024
  if (matches[2] !== void 0 && parsed.path && parsed.path[0] !== "/") {
30023
30025
  return 'URI path must start with "/" when authority is present.';
@@ -30047,6 +30049,11 @@ var require_fast_uri = __commonJS({
30047
30049
  uri = "//" + uri;
30048
30050
  }
30049
30051
  }
30052
+ const authorityMatch = uri.match(AUTHORITY_PREFIX);
30053
+ if (authorityMatch !== null && authorityMatch[1].indexOf("\\") !== -1) {
30054
+ parsed.error = "URI authority must not contain a literal backslash.";
30055
+ malformedAuthorityOrPort = true;
30056
+ }
30050
30057
  const matches = uri.match(URI_PARSE);
30051
30058
  if (matches) {
30052
30059
  parsed.scheme = matches[1];
@@ -30090,7 +30097,7 @@ var require_fast_uri = __commonJS({
30090
30097
  if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {
30091
30098
  if (parsed.host && (options.domainHost || schemeHandler && schemeHandler.domainHost) && isIP === false && nonSimpleDomain(parsed.host)) {
30092
30099
  try {
30093
- parsed.host = URL.domainToASCII(parsed.host.toLowerCase());
30100
+ parsed.host = new URL("http://" + parsed.host).hostname;
30094
30101
  } catch (e) {
30095
30102
  parsed.error = parsed.error || "Host's domain name can not be converted to ASCII: " + e;
30096
30103
  }
@@ -60563,6 +60570,25 @@ var require_axios = __commonJS({
60563
60570
  iterator,
60564
60571
  toStringTag
60565
60572
  } = Symbol;
60573
+ var hasOwnProperty = (({
60574
+ hasOwnProperty: hasOwnProperty2
60575
+ }) => (obj, prop) => hasOwnProperty2.call(obj, prop))(Object.prototype);
60576
+ var hasOwnInPrototypeChain = (thing, prop) => {
60577
+ let obj = thing;
60578
+ const seen = [];
60579
+ while (obj != null && obj !== Object.prototype) {
60580
+ if (seen.indexOf(obj) !== -1) {
60581
+ return false;
60582
+ }
60583
+ seen.push(obj);
60584
+ if (hasOwnProperty(obj, prop)) {
60585
+ return true;
60586
+ }
60587
+ obj = getPrototypeOf(obj);
60588
+ }
60589
+ return false;
60590
+ };
60591
+ var getSafeProp = (obj, prop) => obj != null && hasOwnInPrototypeChain(obj, prop) ? obj[prop] : void 0;
60566
60592
  var kindOf = /* @__PURE__ */ ((cache) => (thing) => {
60567
60593
  const str = toString.call(thing);
60568
60594
  return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());
@@ -60595,11 +60621,14 @@ var require_axios = __commonJS({
60595
60621
  var isObject = (thing) => thing !== null && typeof thing === "object";
60596
60622
  var isBoolean = (thing) => thing === true || thing === false;
60597
60623
  var isPlainObject = (val) => {
60598
- if (kindOf(val) !== "object") {
60624
+ if (!isObject(val)) {
60599
60625
  return false;
60600
60626
  }
60601
60627
  const prototype2 = getPrototypeOf(val);
60602
- return (prototype2 === null || prototype2 === Object.prototype || Object.getPrototypeOf(prototype2) === null) && !(toStringTag in val) && !(iterator in val);
60628
+ return (prototype2 === null || prototype2 === Object.prototype || getPrototypeOf(prototype2) === null) && // Treat any genuine (non-Object.prototype-polluted) Symbol.toStringTag or
60629
+ // Symbol.iterator as evidence the value is a tagged/iterable type rather
60630
+ // than a plain object, while ignoring keys injected onto Object.prototype.
60631
+ !hasOwnInPrototypeChain(val, toStringTag) && !hasOwnInPrototypeChain(val, iterator);
60603
60632
  };
60604
60633
  var isEmptyObject = (val) => {
60605
60634
  if (!isObject(val) || isBuffer(val)) {
@@ -60852,9 +60881,6 @@ var require_axios = __commonJS({
60852
60881
  return p1.toUpperCase() + p2;
60853
60882
  });
60854
60883
  };
60855
- var hasOwnProperty = (({
60856
- hasOwnProperty: hasOwnProperty2
60857
- }) => (obj, prop) => hasOwnProperty2.call(obj, prop))(Object.prototype);
60858
60884
  var {
60859
60885
  propertyIsEnumerable
60860
60886
  } = Object.prototype;
@@ -60955,6 +60981,7 @@ var require_axios = __commonJS({
60955
60981
  })(typeof setImmediate === "function", isFunction$1(_global.postMessage));
60956
60982
  var asap = typeof queueMicrotask !== "undefined" ? queueMicrotask.bind(_global) : typeof process !== "undefined" && process.nextTick || _setImmediate;
60957
60983
  var isIterable = (thing) => thing != null && isFunction$1(thing[iterator]);
60984
+ var isSafeIterable = (thing) => thing != null && hasOwnInPrototypeChain(thing, iterator) && isIterable(thing);
60958
60985
  var utils$1 = {
60959
60986
  isArray,
60960
60987
  isArrayBuffer,
@@ -61000,6 +61027,8 @@ var require_axios = __commonJS({
61000
61027
  hasOwnProperty,
61001
61028
  hasOwnProp: hasOwnProperty,
61002
61029
  // an alias to avoid ESLint no-prototype-builtins detection
61030
+ hasOwnInPrototypeChain,
61031
+ getSafeProp,
61003
61032
  reduceDescriptors,
61004
61033
  freezeMethods,
61005
61034
  toObjectSet,
@@ -61015,7 +61044,8 @@ var require_axios = __commonJS({
61015
61044
  isThenable,
61016
61045
  setImmediate: _setImmediate,
61017
61046
  asap,
61018
- isIterable
61047
+ isIterable,
61048
+ isSafeIterable
61019
61049
  };
61020
61050
  var ignoreDuplicateOf = utils$1.toObjectSet(["age", "authorization", "content-length", "content-type", "etag", "expires", "from", "host", "if-modified-since", "if-unmodified-since", "last-modified", "location", "max-forwards", "proxy-authorization", "referer", "retry-after", "user-agent"]);
61021
61051
  var parseHeaders = (rawHeaders) => {
@@ -61153,13 +61183,19 @@ var require_axios = __commonJS({
61153
61183
  setHeaders(header, valueOrRewrite);
61154
61184
  } else if (utils$1.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {
61155
61185
  setHeaders(parseHeaders(header), valueOrRewrite);
61156
- } else if (utils$1.isObject(header) && utils$1.isIterable(header)) {
61157
- let obj = {}, dest, key;
61186
+ } else if (utils$1.isObject(header) && utils$1.isSafeIterable(header)) {
61187
+ let obj = /* @__PURE__ */ Object.create(null), dest, key;
61158
61188
  for (const entry of header) {
61159
61189
  if (!utils$1.isArray(entry)) {
61160
61190
  throw new TypeError("Object iterator must return a key-value pair");
61161
61191
  }
61162
- obj[key = entry[0]] = (dest = obj[key]) ? utils$1.isArray(dest) ? [...dest, entry[1]] : [dest, entry[1]] : entry[1];
61192
+ key = entry[0];
61193
+ if (utils$1.hasOwnProp(obj, key)) {
61194
+ dest = obj[key];
61195
+ obj[key] = utils$1.isArray(dest) ? [...dest, entry[1]] : [dest, entry[1]];
61196
+ } else {
61197
+ obj[key] = entry[1];
61198
+ }
61163
61199
  }
61164
61200
  setHeaders(obj, valueOrRewrite);
61165
61201
  } else {
@@ -61364,7 +61400,13 @@ var require_axios = __commonJS({
61364
61400
  var AxiosError = class _AxiosError extends Error {
61365
61401
  static from(error, code, config, request, response, customProps) {
61366
61402
  const axiosError = new _AxiosError(error.message, code || error.code, config, request, response);
61367
- axiosError.cause = error;
61403
+ Object.defineProperty(axiosError, "cause", {
61404
+ __proto__: null,
61405
+ value: error,
61406
+ writable: true,
61407
+ enumerable: false,
61408
+ configurable: true
61409
+ });
61368
61410
  axiosError.name = error.name;
61369
61411
  if (error.status != null && axiosError.status == null) {
61370
61412
  axiosError.status = error.status;
@@ -61441,6 +61483,7 @@ var require_axios = __commonJS({
61441
61483
  AxiosError.ERR_NOT_SUPPORT = "ERR_NOT_SUPPORT";
61442
61484
  AxiosError.ERR_INVALID_URL = "ERR_INVALID_URL";
61443
61485
  AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED = "ERR_FORM_DATA_DEPTH_EXCEEDED";
61486
+ var DEFAULT_FORM_DATA_MAX_DEPTH = 100;
61444
61487
  function isVisitable(thing) {
61445
61488
  return utils$1.isPlainObject(thing) || utils$1.isArray(thing);
61446
61489
  }
@@ -61477,8 +61520,9 @@ var require_axios = __commonJS({
61477
61520
  const dots = options.dots;
61478
61521
  const indexes = options.indexes;
61479
61522
  const _Blob = options.Blob || typeof Blob !== "undefined" && Blob;
61480
- const maxDepth = options.maxDepth === void 0 ? 100 : options.maxDepth;
61523
+ const maxDepth = options.maxDepth === void 0 ? DEFAULT_FORM_DATA_MAX_DEPTH : options.maxDepth;
61481
61524
  const useBlob = _Blob && utils$1.isSpecCompliantForm(formData);
61525
+ const stack = [];
61482
61526
  if (!utils$1.isFunction(visitor)) {
61483
61527
  throw new TypeError("visitor must be a function");
61484
61528
  }
@@ -61494,10 +61538,38 @@ var require_axios = __commonJS({
61494
61538
  throw new AxiosError("Blob is not supported. Use a Buffer instead.");
61495
61539
  }
61496
61540
  if (utils$1.isArrayBuffer(value) || utils$1.isTypedArray(value)) {
61497
- return useBlob && typeof Blob === "function" ? new Blob([value]) : Buffer.from(value);
61541
+ if (useBlob && typeof _Blob === "function") {
61542
+ return new _Blob([value]);
61543
+ }
61544
+ if (typeof Buffer !== "undefined") {
61545
+ return Buffer.from(value);
61546
+ }
61547
+ throw new AxiosError("Blob is not supported. Use a Buffer instead.", AxiosError.ERR_NOT_SUPPORT);
61498
61548
  }
61499
61549
  return value;
61500
61550
  }
61551
+ function throwIfMaxDepthExceeded(depth) {
61552
+ if (depth > maxDepth) {
61553
+ throw new AxiosError("Object is too deeply nested (" + depth + " levels). Max depth: " + maxDepth, AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED);
61554
+ }
61555
+ }
61556
+ function stringifyWithDepthLimit(value, depth) {
61557
+ if (maxDepth === Infinity) {
61558
+ return JSON.stringify(value);
61559
+ }
61560
+ const ancestors = [];
61561
+ return JSON.stringify(value, function limitDepth(_key, currentValue) {
61562
+ if (!utils$1.isObject(currentValue)) {
61563
+ return currentValue;
61564
+ }
61565
+ while (ancestors.length && ancestors[ancestors.length - 1] !== this) {
61566
+ ancestors.pop();
61567
+ }
61568
+ ancestors.push(currentValue);
61569
+ throwIfMaxDepthExceeded(depth + ancestors.length - 1);
61570
+ return currentValue;
61571
+ });
61572
+ }
61501
61573
  function defaultVisitor(value, key, path2) {
61502
61574
  let arr = value;
61503
61575
  if (utils$1.isReactNative(formData) && utils$1.isReactNativeBlob(value)) {
@@ -61507,7 +61579,7 @@ var require_axios = __commonJS({
61507
61579
  if (value && !path2 && typeof value === "object") {
61508
61580
  if (utils$1.endsWith(key, "{}")) {
61509
61581
  key = metaTokens ? key : key.slice(0, -2);
61510
- value = JSON.stringify(value);
61582
+ value = stringifyWithDepthLimit(value, 1);
61511
61583
  } else if (utils$1.isArray(value) && isFlatArray(value) || (utils$1.isFileList(value) || utils$1.endsWith(key, "[]")) && (arr = utils$1.toArray(value))) {
61512
61584
  key = removeBrackets(key);
61513
61585
  arr.forEach(function each(el, index) {
@@ -61526,7 +61598,6 @@ var require_axios = __commonJS({
61526
61598
  formData.append(renderKey(path2, key, dots), convertValue(value));
61527
61599
  return false;
61528
61600
  }
61529
- const stack = [];
61530
61601
  const exposedHelpers = Object.assign(predicates, {
61531
61602
  defaultVisitor,
61532
61603
  convertValue,
@@ -61534,9 +61605,7 @@ var require_axios = __commonJS({
61534
61605
  });
61535
61606
  function build(value, path2, depth = 0) {
61536
61607
  if (utils$1.isUndefined(value)) return;
61537
- if (depth > maxDepth) {
61538
- throw new AxiosError("Object is too deeply nested (" + depth + " levels). Max depth: " + maxDepth, AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED);
61539
- }
61608
+ throwIfMaxDepthExceeded(depth);
61540
61609
  if (stack.indexOf(value) !== -1) {
61541
61610
  throw new Error("Circular reference detected in " + path2.join("."));
61542
61611
  }
@@ -61577,9 +61646,7 @@ var require_axios = __commonJS({
61577
61646
  this._pairs.push([name, value]);
61578
61647
  };
61579
61648
  prototype.toString = function toString2(encoder) {
61580
- const _encode = encoder ? function(value) {
61581
- return encoder.call(this, value, encode$1);
61582
- } : encode$1;
61649
+ const _encode = encoder ? (value) => encoder.call(this, value, encode$1) : encode$1;
61583
61650
  return this._pairs.map(function each(pair) {
61584
61651
  return _encode(pair[0]) + "=" + _encode(pair[1]);
61585
61652
  }, "").join("&");
@@ -61591,11 +61658,12 @@ var require_axios = __commonJS({
61591
61658
  if (!params) {
61592
61659
  return url2;
61593
61660
  }
61594
- const _encode = options && options.encode || encode;
61661
+ url2 = url2 || "";
61595
61662
  const _options = utils$1.isFunction(options) ? {
61596
61663
  serialize: options
61597
61664
  } : options;
61598
- const serializeFn = _options && _options.serialize;
61665
+ const _encode = utils$1.getSafeProp(_options, "encode") || encode;
61666
+ const serializeFn = utils$1.getSafeProp(_options, "serialize");
61599
61667
  let serializedParams;
61600
61668
  if (serializeFn) {
61601
61669
  serializedParams = serializeFn(params, _options);
@@ -61678,7 +61746,8 @@ var require_axios = __commonJS({
61678
61746
  forcedJSONParsing: true,
61679
61747
  clarifyTimeoutError: false,
61680
61748
  legacyInterceptorReqResOrdering: true,
61681
- advertiseZstdAcceptEncoding: false
61749
+ advertiseZstdAcceptEncoding: false,
61750
+ validateStatusUndefinedResolves: true
61682
61751
  };
61683
61752
  var URLSearchParams = url.URLSearchParams;
61684
61753
  var ALPHA = "abcdefghijklmnopqrstuvwxyz";
@@ -61743,10 +61812,21 @@ var require_axios = __commonJS({
61743
61812
  ...options
61744
61813
  });
61745
61814
  }
61815
+ var MAX_DEPTH = DEFAULT_FORM_DATA_MAX_DEPTH;
61816
+ function throwIfDepthExceeded(index) {
61817
+ if (index > MAX_DEPTH) {
61818
+ throw new AxiosError("FormData field is too deeply nested (" + index + " levels). Max depth: " + MAX_DEPTH, AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED);
61819
+ }
61820
+ }
61746
61821
  function parsePropPath(name) {
61747
- return utils$1.matchAll(/\w+|\[(\w*)]/g, name).map((match) => {
61748
- return match[0] === "[]" ? "" : match[1] || match[0];
61749
- });
61822
+ const path2 = [];
61823
+ const pattern = /\w+|\[(\w*)]/g;
61824
+ let match;
61825
+ while ((match = pattern.exec(name)) !== null) {
61826
+ throwIfDepthExceeded(path2.length);
61827
+ path2.push(match[0] === "[]" ? "" : match[1] || match[0]);
61828
+ }
61829
+ return path2;
61750
61830
  }
61751
61831
  function arrayToObject(arr) {
61752
61832
  const obj = {};
@@ -61762,6 +61842,7 @@ var require_axios = __commonJS({
61762
61842
  }
61763
61843
  function formDataToJSON(formData) {
61764
61844
  function buildPath(path2, value, target, index) {
61845
+ throwIfDepthExceeded(index);
61765
61846
  let name = path2[index++];
61766
61847
  if (name === "__proto__") return true;
61767
61848
  const isNumericKey = Number.isFinite(+name);
@@ -61948,9 +62029,28 @@ var require_axios = __commonJS({
61948
62029
  function combineURLs(baseURL, relativeURL) {
61949
62030
  return relativeURL ? baseURL.replace(/\/?\/$/, "") + "/" + relativeURL.replace(/^\/+/, "") : baseURL;
61950
62031
  }
61951
- function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {
62032
+ var malformedHttpProtocol = /^https?:(?!\/\/)/i;
62033
+ var httpProtocolControlCharacters = /[\t\n\r]/g;
62034
+ function stripLeadingC0ControlOrSpace(url2) {
62035
+ let i = 0;
62036
+ while (i < url2.length && url2.charCodeAt(i) <= 32) {
62037
+ i++;
62038
+ }
62039
+ return url2.slice(i);
62040
+ }
62041
+ function normalizeURLForProtocolCheck(url2) {
62042
+ return stripLeadingC0ControlOrSpace(url2).replace(httpProtocolControlCharacters, "");
62043
+ }
62044
+ function assertValidHttpProtocolURL(url2, config) {
62045
+ if (typeof url2 === "string" && malformedHttpProtocol.test(normalizeURLForProtocolCheck(url2))) {
62046
+ throw new AxiosError('Invalid URL: missing "//" after protocol', AxiosError.ERR_INVALID_URL, config);
62047
+ }
62048
+ }
62049
+ function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls, config) {
62050
+ assertValidHttpProtocolURL(requestedURL, config);
61952
62051
  let isRelativeUrl = !isAbsoluteURL(requestedURL);
61953
62052
  if (baseURL && (isRelativeUrl || allowAbsoluteUrls === false)) {
62053
+ assertValidHttpProtocolURL(baseURL, config);
61954
62054
  return combineURLs(baseURL, requestedURL);
61955
62055
  }
61956
62056
  return requestedURL;
@@ -62020,7 +62120,7 @@ var require_axios = __commonJS({
62020
62120
  function getEnv(key) {
62021
62121
  return process.env[key.toLowerCase()] || process.env[key.toUpperCase()] || "";
62022
62122
  }
62023
- var VERSION = "1.17.0";
62123
+ var VERSION = "1.18.1";
62024
62124
  function parseProtocol(url2) {
62025
62125
  const match = /^([-+\w]{1,25}):(?:\/\/)?/.exec(url2);
62026
62126
  return match && match[1] || "";
@@ -62042,13 +62142,13 @@ var require_axios = __commonJS({
62042
62142
  const params = match[2];
62043
62143
  const encoding = match[3] ? "base64" : "utf8";
62044
62144
  const body = match[4];
62045
- let mime;
62145
+ let mime = "";
62046
62146
  if (type) {
62047
62147
  mime = params ? type + params : type;
62048
62148
  } else if (params) {
62049
62149
  mime = "text/plain" + params;
62050
62150
  }
62051
- const buffer = Buffer.from(decodeURIComponent(body), encoding);
62151
+ const buffer = encoding === "base64" ? Buffer.from(body, "base64") : Buffer.from(decodeURIComponent(body), encoding);
62052
62152
  if (asBlob) {
62053
62153
  if (!_Blob) {
62054
62154
  throw new AxiosError("Blob is not supported", AxiosError.ERR_NOT_SUPPORT);
@@ -62372,13 +62472,29 @@ var require_axios = __commonJS({
62372
62472
  }, cb);
62373
62473
  } : fn;
62374
62474
  };
62375
- var LOOPBACK_HOSTNAMES = /* @__PURE__ */ new Set(["localhost"]);
62475
+ var LOOPBACK_HOSTNAMES = /* @__PURE__ */ new Set(["localhost", "0.0.0.0"]);
62376
62476
  var isIPv4Loopback = (host) => {
62377
62477
  const parts = host.split(".");
62378
62478
  if (parts.length !== 4) return false;
62379
62479
  if (parts[0] !== "127") return false;
62380
62480
  return parts.every((p) => /^\d+$/.test(p) && Number(p) >= 0 && Number(p) <= 255);
62381
62481
  };
62482
+ var isIPv6ZeroGroup = (group) => /^0{1,4}$/.test(group);
62483
+ var isIPv6Unspecified = (host) => {
62484
+ if (host === "::") return true;
62485
+ const compressionIndex = host.indexOf("::");
62486
+ if (compressionIndex !== -1) {
62487
+ if (compressionIndex !== host.lastIndexOf("::")) return false;
62488
+ const left = host.slice(0, compressionIndex);
62489
+ const right = host.slice(compressionIndex + 2);
62490
+ const leftGroups = left ? left.split(":") : [];
62491
+ const rightGroups = right ? right.split(":") : [];
62492
+ const explicitGroups = leftGroups.length + rightGroups.length;
62493
+ return explicitGroups < 8 && leftGroups.every(isIPv6ZeroGroup) && rightGroups.every(isIPv6ZeroGroup);
62494
+ }
62495
+ const groups = host.split(":");
62496
+ return groups.length === 8 && groups.every(isIPv6ZeroGroup);
62497
+ };
62382
62498
  var isIPv6Loopback = (host) => {
62383
62499
  if (host === "::1") return true;
62384
62500
  const v4MappedDotted = host.match(/^::ffff:(\d+\.\d+\.\d+\.\d+)$/i);
@@ -62401,6 +62517,7 @@ var require_axios = __commonJS({
62401
62517
  if (!host) return false;
62402
62518
  if (LOOPBACK_HOSTNAMES.has(host)) return true;
62403
62519
  if (isIPv4Loopback(host)) return true;
62520
+ if (isIPv6Unspecified(host)) return true;
62404
62521
  return isIPv6Loopback(host);
62405
62522
  };
62406
62523
  var DEFAULT_PORTS = {
@@ -62593,6 +62710,8 @@ var require_axios = __commonJS({
62593
62710
  }), throttled[1]];
62594
62711
  };
62595
62712
  var asyncDecorator = (fn) => (...args) => utils$1.asap(() => fn(...args));
62713
+ var isHexDigit = (charCode) => charCode >= 48 && charCode <= 57 || charCode >= 65 && charCode <= 70 || charCode >= 97 && charCode <= 102;
62714
+ var isPercentEncodedByte = (str, i, len) => i + 2 < len && isHexDigit(str.charCodeAt(i + 1)) && isHexDigit(str.charCodeAt(i + 2));
62596
62715
  function estimateDataURLDecodedBytes(url2) {
62597
62716
  if (!url2 || typeof url2 !== "string") return 0;
62598
62717
  if (!url2.startsWith("data:")) return 0;
@@ -62608,7 +62727,7 @@ var require_axios = __commonJS({
62608
62727
  if (body.charCodeAt(i) === 37 && i + 2 < len) {
62609
62728
  const a = body.charCodeAt(i + 1);
62610
62729
  const b = body.charCodeAt(i + 2);
62611
- const isHex = (a >= 48 && a <= 57 || a >= 65 && a <= 70 || a >= 97 && a <= 102) && (b >= 48 && b <= 57 || b >= 65 && b <= 70 || b >= 97 && b <= 102);
62730
+ const isHex = isHexDigit(a) && isHexDigit(b);
62612
62731
  if (isHex) {
62613
62732
  effectiveLen -= 2;
62614
62733
  i += 2;
@@ -62640,13 +62759,13 @@ var require_axios = __commonJS({
62640
62759
  const bytes2 = groups * 3 - (pad || 0);
62641
62760
  return bytes2 > 0 ? bytes2 : 0;
62642
62761
  }
62643
- if (typeof Buffer !== "undefined" && typeof Buffer.byteLength === "function") {
62644
- return Buffer.byteLength(body, "utf8");
62645
- }
62646
62762
  let bytes = 0;
62647
62763
  for (let i = 0, len = body.length; i < len; i++) {
62648
62764
  const c = body.charCodeAt(i);
62649
- if (c < 128) {
62765
+ if (c === 37 && isPercentEncodedByte(body, i, len)) {
62766
+ bytes += 1;
62767
+ i += 2;
62768
+ } else if (c < 128) {
62650
62769
  bytes += 1;
62651
62770
  } else if (c < 2048) {
62652
62771
  bytes += 2;
@@ -62702,6 +62821,33 @@ var require_axios = __commonJS({
62702
62821
  var kAxiosInstalledTunnel = /* @__PURE__ */ Symbol("axios.http.installedTunnel");
62703
62822
  var tunnelingAgentCache = /* @__PURE__ */ new Map();
62704
62823
  var tunnelingAgentCacheUser = /* @__PURE__ */ new WeakMap();
62824
+ var NODE_NATIVE_ENV_PROXY_SUPPORT = {
62825
+ 22: 21,
62826
+ 24: 5
62827
+ };
62828
+ function isNodeNativeEnvProxySupported(nodeVersion = process.versions && process.versions.node) {
62829
+ if (!nodeVersion) {
62830
+ return false;
62831
+ }
62832
+ const [major, minor] = nodeVersion.split(".").map((part) => Number(part));
62833
+ if (!Number.isInteger(major) || !Number.isInteger(minor)) {
62834
+ return false;
62835
+ }
62836
+ if (major > 24) {
62837
+ return true;
62838
+ }
62839
+ return NODE_NATIVE_ENV_PROXY_SUPPORT[major] != null && minor >= NODE_NATIVE_ENV_PROXY_SUPPORT[major];
62840
+ }
62841
+ function isNodeEnvProxyEnabled(agent, nodeVersion = process.versions && process.versions.node) {
62842
+ if (!isNodeNativeEnvProxySupported(nodeVersion)) {
62843
+ return false;
62844
+ }
62845
+ const agentOptions = agent && agent.options;
62846
+ return Boolean(agentOptions && utils$1.hasOwnProp(agentOptions, "proxyEnv") && agentOptions.proxyEnv != null);
62847
+ }
62848
+ function getProxyEnvAgent(options, configHttpAgent, configHttpsAgent) {
62849
+ return isHttps.test(options.protocol) ? configHttpsAgent || https.globalAgent : configHttpAgent || http.globalAgent;
62850
+ }
62705
62851
  function getTunnelingAgent(agentOptions, userHttpsAgent) {
62706
62852
  const key = agentOptions.protocol + "//" + agentOptions.hostname + ":" + (agentOptions.port || "") + "#" + (agentOptions.auth || "");
62707
62853
  const cache = userHttpsAgent ? tunnelingAgentCacheUser.get(userHttpsAgent) || tunnelingAgentCacheUser.set(userHttpsAgent, /* @__PURE__ */ new Map()).get(userHttpsAgent) : tunnelingAgentCache;
@@ -62753,13 +62899,37 @@ var require_axios = __commonJS({
62753
62899
  if (options.beforeRedirects.auth) {
62754
62900
  options.beforeRedirects.auth(options);
62755
62901
  }
62902
+ if (options.beforeRedirects.sensitiveHeaders) {
62903
+ options.beforeRedirects.sensitiveHeaders(options, requestDetails);
62904
+ }
62756
62905
  if (options.beforeRedirects.config) {
62757
62906
  options.beforeRedirects.config(options, responseDetails, requestDetails);
62758
62907
  }
62759
62908
  }
62760
- function setProxy(options, configProxy, location2, isRedirect, configHttpsAgent) {
62909
+ function stripMatchingHeaders(headers, sensitiveSet) {
62910
+ if (!headers) {
62911
+ return;
62912
+ }
62913
+ Object.keys(headers).forEach((header) => {
62914
+ if (sensitiveSet.has(header.toLowerCase())) {
62915
+ delete headers[header];
62916
+ }
62917
+ });
62918
+ }
62919
+ function isSameOriginRedirect(redirectOptions, requestDetails) {
62920
+ if (!requestDetails) {
62921
+ return false;
62922
+ }
62923
+ try {
62924
+ return new URL(requestDetails.url).origin === new URL(redirectOptions.href).origin;
62925
+ } catch (e) {
62926
+ return false;
62927
+ }
62928
+ }
62929
+ function setProxy(options, configProxy, location2, isRedirect, configHttpsAgent, configHttpAgent) {
62761
62930
  let proxy = configProxy;
62762
- if (!proxy && proxy !== false) {
62931
+ const proxyEnvAgent = getProxyEnvAgent(options, configHttpAgent, configHttpsAgent);
62932
+ if (!proxy && proxy !== false && !isNodeEnvProxyEnabled(proxyEnvAgent)) {
62763
62933
  const proxyUrl = getProxyForUrl(location2);
62764
62934
  if (proxyUrl) {
62765
62935
  if (!shouldBypassProxy(location2)) {
@@ -62850,7 +63020,7 @@ var require_axios = __commonJS({
62850
63020
  }
62851
63021
  }
62852
63022
  options.beforeRedirects.proxy = function beforeRedirect(redirectOptions) {
62853
- setProxy(redirectOptions, configProxy, redirectOptions.href, true, configHttpsAgent);
63023
+ setProxy(redirectOptions, configProxy, redirectOptions.href, true, configHttpsAgent, configHttpAgent);
62854
63024
  };
62855
63025
  }
62856
63026
  var isHttpAdapterSupported = typeof process !== "undefined" && utils$1.kindOf(process) === "process";
@@ -62927,7 +63097,7 @@ var require_axios = __commonJS({
62927
63097
  };
62928
63098
  var httpAdapter = isHttpAdapterSupported && function httpAdapter2(config) {
62929
63099
  return wrapAsync(async function dispatchHttpRequest(resolve, reject, onDone) {
62930
- const own2 = (key) => utils$1.hasOwnProp(config, key) ? config[key] : void 0;
63100
+ const own2 = (key) => utils$1.getSafeProp(config, key);
62931
63101
  const transitional = own2("transitional") || transitionalDefaults;
62932
63102
  let data = own2("data");
62933
63103
  let lookup = own2("lookup");
@@ -62935,9 +63105,17 @@ var require_axios = __commonJS({
62935
63105
  let httpVersion = own2("httpVersion");
62936
63106
  if (httpVersion === void 0) httpVersion = 1;
62937
63107
  let http2Options = own2("http2Options");
63108
+ const httpAgent = own2("httpAgent");
63109
+ const httpsAgent = own2("httpsAgent");
63110
+ const configProxy = own2("proxy");
62938
63111
  const responseType = own2("responseType");
62939
63112
  const responseEncoding = own2("responseEncoding");
62940
- const method = config.method.toUpperCase();
63113
+ const socketPath = own2("socketPath");
63114
+ const method = own2("method").toUpperCase();
63115
+ const maxRedirects = own2("maxRedirects");
63116
+ const maxBodyLength = own2("maxBodyLength");
63117
+ const maxContentLength = own2("maxContentLength");
63118
+ const decompress = own2("decompress");
62941
63119
  let isDone;
62942
63120
  let rejected = false;
62943
63121
  let req;
@@ -62976,9 +63154,11 @@ var require_axios = __commonJS({
62976
63154
  }
62977
63155
  }
62978
63156
  function createTimeoutError() {
62979
- let timeoutErrorMessage = config.timeout ? "timeout of " + config.timeout + "ms exceeded" : "timeout exceeded";
62980
- if (config.timeoutErrorMessage) {
62981
- timeoutErrorMessage = config.timeoutErrorMessage;
63157
+ const configTimeout = own2("timeout");
63158
+ let timeoutErrorMessage = configTimeout ? "timeout of " + configTimeout + "ms exceeded" : "timeout exceeded";
63159
+ const configTimeoutErrorMessage = own2("timeoutErrorMessage");
63160
+ if (configTimeoutErrorMessage) {
63161
+ timeoutErrorMessage = configTimeoutErrorMessage;
62982
63162
  }
62983
63163
  return new AxiosError(timeoutErrorMessage, transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED, config, req);
62984
63164
  }
@@ -63019,15 +63199,16 @@ var require_axios = __commonJS({
63019
63199
  onFinished();
63020
63200
  }
63021
63201
  });
63022
- const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);
63023
- const parsed = new URL(fullPath, platform.hasBrowserEnv ? platform.origin : void 0);
63202
+ const fullPath = buildFullPath(own2("baseURL"), own2("url"), own2("allowAbsoluteUrls"), config);
63203
+ const urlBase = socketPath ? "http://localhost" : platform.hasBrowserEnv ? platform.origin : void 0;
63204
+ const parsed = new URL(fullPath, urlBase);
63024
63205
  const protocol = parsed.protocol || supportedProtocols[0];
63025
63206
  if (protocol === "data:") {
63026
- if (config.maxContentLength > -1) {
63027
- const dataUrl = String(config.url || fullPath || "");
63207
+ if (maxContentLength > -1) {
63208
+ const dataUrl = String(own2("url") || fullPath || "");
63028
63209
  const estimated = estimateDataURLDecodedBytes(dataUrl);
63029
- if (estimated > config.maxContentLength) {
63030
- return reject(new AxiosError("maxContentLength size of " + config.maxContentLength + " exceeded", AxiosError.ERR_BAD_RESPONSE, config));
63210
+ if (estimated > maxContentLength) {
63211
+ return reject(new AxiosError("maxContentLength size of " + maxContentLength + " exceeded", AxiosError.ERR_BAD_RESPONSE, config));
63031
63212
  }
63032
63213
  }
63033
63214
  let convertedData;
@@ -63040,7 +63221,7 @@ var require_axios = __commonJS({
63040
63221
  });
63041
63222
  }
63042
63223
  try {
63043
- convertedData = fromDataURI(config.url, responseType === "blob", {
63224
+ convertedData = fromDataURI(own2("url"), responseType === "blob", {
63044
63225
  Blob: config.env && config.env.Blob
63045
63226
  });
63046
63227
  } catch (err) {
@@ -63105,7 +63286,7 @@ var require_axios = __commonJS({
63105
63286
  return reject(new AxiosError("Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream", AxiosError.ERR_BAD_REQUEST, config));
63106
63287
  }
63107
63288
  headers.setContentLength(data.length, false);
63108
- if (config.maxBodyLength > -1 && data.length > config.maxBodyLength) {
63289
+ if (maxBodyLength > -1 && data.length > maxBodyLength) {
63109
63290
  return reject(new AxiosError("Request body larger than maxBodyLength limit", AxiosError.ERR_BAD_REQUEST, config));
63110
63291
  }
63111
63292
  }
@@ -63130,8 +63311,8 @@ var require_axios = __commonJS({
63130
63311
  let auth = void 0;
63131
63312
  const configAuth = own2("auth");
63132
63313
  if (configAuth) {
63133
- const username = configAuth.username || "";
63134
- const password = configAuth.password || "";
63314
+ const username = utils$1.getSafeProp(configAuth, "username") || "";
63315
+ const password = utils$1.getSafeProp(configAuth, "password") || "";
63135
63316
  auth = username + ":" + password;
63136
63317
  }
63137
63318
  if (!auth && (parsed.username || parsed.password)) {
@@ -63142,13 +63323,12 @@ var require_axios = __commonJS({
63142
63323
  auth && headers.delete("authorization");
63143
63324
  let path$1;
63144
63325
  try {
63145
- path$1 = buildURL(parsed.pathname + parsed.search, config.params, config.paramsSerializer).replace(/^\?/, "");
63326
+ path$1 = buildURL(parsed.pathname + parsed.search, own2("params"), own2("paramsSerializer")).replace(/^\?/, "");
63146
63327
  } catch (err) {
63147
- const customErr = new Error(err.message);
63148
- customErr.config = config;
63149
- customErr.url = config.url;
63150
- customErr.exists = true;
63151
- return reject(customErr);
63328
+ return reject(AxiosError.from(err, AxiosError.ERR_BAD_REQUEST, config, null, null, {
63329
+ url: own2("url"),
63330
+ exists: true
63331
+ }));
63152
63332
  }
63153
63333
  headers.set("Accept-Encoding", utils$1.hasOwnProp(transitional, "advertiseZstdAcceptEncoding") && transitional.advertiseZstdAcceptEncoding === true ? ACCEPT_ENCODING_WITH_ZSTD : ACCEPT_ENCODING, false);
63154
63334
  const options = Object.assign(/* @__PURE__ */ Object.create(null), {
@@ -63156,8 +63336,8 @@ var require_axios = __commonJS({
63156
63336
  method,
63157
63337
  headers: toByteStringHeaderObject(headers),
63158
63338
  agents: {
63159
- http: config.httpAgent,
63160
- https: config.httpsAgent
63339
+ http: httpAgent,
63340
+ https: httpsAgent
63161
63341
  },
63162
63342
  auth,
63163
63343
  protocol,
@@ -63167,7 +63347,6 @@ var require_axios = __commonJS({
63167
63347
  http2Options
63168
63348
  });
63169
63349
  !utils$1.isUndefined(lookup) && (options.lookup = lookup);
63170
- const socketPath = own2("socketPath");
63171
63350
  if (socketPath) {
63172
63351
  if (typeof socketPath !== "string") {
63173
63352
  return reject(new AxiosError("socketPath must be a string", AxiosError.ERR_BAD_OPTION_VALUE, config));
@@ -63185,13 +63364,14 @@ var require_axios = __commonJS({
63185
63364
  } else {
63186
63365
  options.hostname = parsed.hostname.startsWith("[") ? parsed.hostname.slice(1, -1) : parsed.hostname;
63187
63366
  options.port = parsed.port;
63188
- setProxy(options, config.proxy, protocol + "//" + parsed.hostname + (parsed.port ? ":" + parsed.port : "") + options.path, false, config.httpsAgent);
63367
+ setProxy(options, configProxy, protocol + "//" + parsed.hostname + (parsed.port ? ":" + parsed.port : "") + options.path, false, httpsAgent, httpAgent);
63189
63368
  }
63190
63369
  let transport;
63191
63370
  let isNativeTransport = false;
63371
+ let transportEnforcesMaxBodyLength = false;
63192
63372
  const isHttpsRequest = isHttps.test(options.protocol);
63193
63373
  if (options.agent == null) {
63194
- options.agent = isHttpsRequest ? config.httpsAgent : config.httpAgent;
63374
+ options.agent = isHttpsRequest ? httpsAgent : httpAgent;
63195
63375
  }
63196
63376
  if (isHttp2) {
63197
63377
  transport = http2Transport;
@@ -63199,12 +63379,14 @@ var require_axios = __commonJS({
63199
63379
  const configTransport = own2("transport");
63200
63380
  if (configTransport) {
63201
63381
  transport = configTransport;
63202
- } else if (config.maxRedirects === 0) {
63382
+ } else if (maxRedirects === 0) {
63203
63383
  transport = isHttpsRequest ? https : http;
63204
63384
  isNativeTransport = true;
63205
63385
  } else {
63206
- if (config.maxRedirects) {
63207
- options.maxRedirects = config.maxRedirects;
63386
+ transportEnforcesMaxBodyLength = true;
63387
+ options.sensitiveHeaders = [];
63388
+ if (maxRedirects) {
63389
+ options.maxRedirects = maxRedirects;
63208
63390
  }
63209
63391
  const configBeforeRedirect = own2("beforeRedirect");
63210
63392
  if (configBeforeRedirect) {
@@ -63222,11 +63404,32 @@ var require_axios = __commonJS({
63222
63404
  }
63223
63405
  };
63224
63406
  }
63407
+ const sensitiveHeaders = own2("sensitiveHeaders");
63408
+ if (sensitiveHeaders != null) {
63409
+ if (!utils$1.isArray(sensitiveHeaders)) {
63410
+ return reject(new AxiosError("sensitiveHeaders must be an array of strings", AxiosError.ERR_BAD_OPTION_VALUE, config));
63411
+ }
63412
+ const sensitiveSet = /* @__PURE__ */ new Set();
63413
+ for (const header of sensitiveHeaders) {
63414
+ if (!utils$1.isString(header)) {
63415
+ return reject(new AxiosError("sensitiveHeaders must be an array of strings", AxiosError.ERR_BAD_OPTION_VALUE, config));
63416
+ }
63417
+ sensitiveSet.add(header.toLowerCase());
63418
+ }
63419
+ if (sensitiveSet.size) {
63420
+ options.sensitiveHeaders = Array.from(sensitiveSet);
63421
+ options.beforeRedirects.sensitiveHeaders = function beforeRedirectSensitiveHeaders(redirectOptions, requestDetails) {
63422
+ if (!isSameOriginRedirect(redirectOptions, requestDetails)) {
63423
+ stripMatchingHeaders(redirectOptions.headers, sensitiveSet);
63424
+ }
63425
+ };
63426
+ }
63427
+ }
63225
63428
  transport = isHttpsRequest ? httpsFollow : httpFollow;
63226
63429
  }
63227
63430
  }
63228
- if (config.maxBodyLength > -1) {
63229
- options.maxBodyLength = config.maxBodyLength;
63431
+ if (maxBodyLength > -1) {
63432
+ options.maxBodyLength = maxBodyLength;
63230
63433
  } else {
63231
63434
  options.maxBodyLength = Infinity;
63232
63435
  }
@@ -63245,7 +63448,7 @@ var require_axios = __commonJS({
63245
63448
  }
63246
63449
  let responseStream = res;
63247
63450
  const lastRequest = res.req || req;
63248
- if (config.decompress !== false && res.headers["content-encoding"]) {
63451
+ if (decompress !== false && res.headers["content-encoding"]) {
63249
63452
  if (method === "HEAD" || res.statusCode === 204) {
63250
63453
  delete res.headers["content-encoding"];
63251
63454
  }
@@ -63286,8 +63489,8 @@ var require_axios = __commonJS({
63286
63489
  request: lastRequest
63287
63490
  };
63288
63491
  if (responseType === "stream") {
63289
- if (config.maxContentLength > -1) {
63290
- const limit = config.maxContentLength;
63492
+ if (maxContentLength > -1) {
63493
+ const limit = maxContentLength;
63291
63494
  const source = responseStream;
63292
63495
  async function* enforceMaxContentLength() {
63293
63496
  let totalResponseBytes = 0;
@@ -63311,10 +63514,10 @@ var require_axios = __commonJS({
63311
63514
  responseStream.on("data", function handleStreamData(chunk) {
63312
63515
  responseBuffer.push(chunk);
63313
63516
  totalResponseBytes += chunk.length;
63314
- if (config.maxContentLength > -1 && totalResponseBytes > config.maxContentLength) {
63517
+ if (maxContentLength > -1 && totalResponseBytes > maxContentLength) {
63315
63518
  rejected = true;
63316
63519
  responseStream.destroy();
63317
- abort(new AxiosError("maxContentLength size of " + config.maxContentLength + " exceeded", AxiosError.ERR_BAD_RESPONSE, config, lastRequest));
63520
+ abort(new AxiosError("maxContentLength size of " + maxContentLength + " exceeded", AxiosError.ERR_BAD_RESPONSE, config, lastRequest));
63318
63521
  }
63319
63522
  });
63320
63523
  responseStream.on("aborted", function handlerStreamAborted() {
@@ -63364,7 +63567,9 @@ var require_axios = __commonJS({
63364
63567
  });
63365
63568
  const boundSockets = /* @__PURE__ */ new Set();
63366
63569
  req.on("socket", function handleRequestSocket(socket) {
63367
- socket.setKeepAlive(true, 1e3 * 60);
63570
+ if (typeof socket.setKeepAlive === "function") {
63571
+ socket.setKeepAlive(true, 1e3 * 60);
63572
+ }
63368
63573
  if (!socket[kAxiosSocketListener]) {
63369
63574
  socket.on("error", function handleSocketError(err) {
63370
63575
  const current = socket[kAxiosCurrentReq];
@@ -63386,8 +63591,8 @@ var require_axios = __commonJS({
63386
63591
  }
63387
63592
  boundSockets.clear();
63388
63593
  });
63389
- if (config.timeout) {
63390
- const timeout = parseInt(config.timeout, 10);
63594
+ if (own2("timeout")) {
63595
+ const timeout = parseInt(own2("timeout"), 10);
63391
63596
  if (Number.isNaN(timeout)) {
63392
63597
  abort(new AxiosError("error trying to parse `config.timeout` to int", AxiosError.ERR_BAD_OPTION_VALUE, config, req));
63393
63598
  return;
@@ -63419,8 +63624,8 @@ var require_axios = __commonJS({
63419
63624
  }
63420
63625
  });
63421
63626
  let uploadStream = data;
63422
- if (config.maxBodyLength > -1 && config.maxRedirects === 0) {
63423
- const limit = config.maxBodyLength;
63627
+ if (maxBodyLength > -1 && !transportEnforcesMaxBodyLength) {
63628
+ const limit = maxBodyLength;
63424
63629
  let bytesSent = 0;
63425
63630
  uploadStream = stream.pipeline([data, new stream.Transform({
63426
63631
  transform(chunk, _enc, cb) {
@@ -63476,7 +63681,11 @@ var require_axios = __commonJS({
63476
63681
  const cookie = cookies2[i].replace(/^\s+/, "");
63477
63682
  const eq = cookie.indexOf("=");
63478
63683
  if (eq !== -1 && cookie.slice(0, eq) === name) {
63479
- return decodeURIComponent(cookie.slice(eq + 1));
63684
+ try {
63685
+ return decodeURIComponent(cookie.slice(eq + 1));
63686
+ } catch (e) {
63687
+ return cookie.slice(eq + 1);
63688
+ }
63480
63689
  }
63481
63690
  }
63482
63691
  return null;
@@ -63501,6 +63710,7 @@ var require_axios = __commonJS({
63501
63710
  ...thing
63502
63711
  } : thing;
63503
63712
  function mergeConfig(config1, config2) {
63713
+ config1 = config1 || {};
63504
63714
  config2 = config2 || {};
63505
63715
  const config = /* @__PURE__ */ Object.create(null);
63506
63716
  Object.defineProperty(config, "hasOwnProperty", {
@@ -63543,6 +63753,23 @@ var require_axios = __commonJS({
63543
63753
  return getMergedValue(void 0, a);
63544
63754
  }
63545
63755
  }
63756
+ function getMergedTransitionalOption(prop) {
63757
+ const transitional2 = utils$1.hasOwnProp(config2, "transitional") ? config2.transitional : void 0;
63758
+ if (!utils$1.isUndefined(transitional2)) {
63759
+ if (utils$1.isPlainObject(transitional2)) {
63760
+ if (utils$1.hasOwnProp(transitional2, prop)) {
63761
+ return transitional2[prop];
63762
+ }
63763
+ } else {
63764
+ return void 0;
63765
+ }
63766
+ }
63767
+ const transitional1 = utils$1.hasOwnProp(config1, "transitional") ? config1.transitional : void 0;
63768
+ if (utils$1.isPlainObject(transitional1) && utils$1.hasOwnProp(transitional1, prop)) {
63769
+ return transitional1[prop];
63770
+ }
63771
+ return void 0;
63772
+ }
63546
63773
  function mergeDirectKeys(a, b, prop) {
63547
63774
  if (utils$1.hasOwnProp(config2, prop)) {
63548
63775
  return getMergedValue(a, b);
@@ -63593,6 +63820,13 @@ var require_axios = __commonJS({
63593
63820
  const configValue = merge2(a, b, prop);
63594
63821
  utils$1.isUndefined(configValue) && merge2 !== mergeDirectKeys || (config[prop] = configValue);
63595
63822
  });
63823
+ if (utils$1.hasOwnProp(config2, "validateStatus") && utils$1.isUndefined(config2.validateStatus) && getMergedTransitionalOption("validateStatusUndefinedResolves") === false) {
63824
+ if (utils$1.hasOwnProp(config1, "validateStatus")) {
63825
+ config.validateStatus = getMergedValue(void 0, config1.validateStatus);
63826
+ } else {
63827
+ delete config.validateStatus;
63828
+ }
63829
+ }
63596
63830
  return config;
63597
63831
  }
63598
63832
  var FORM_DATA_CONTENT_HEADERS = ["content-type", "content-length"];
@@ -63601,7 +63835,7 @@ var require_axios = __commonJS({
63601
63835
  headers.set(formHeaders);
63602
63836
  return;
63603
63837
  }
63604
- Object.entries(formHeaders).forEach(([key, val]) => {
63838
+ Object.entries(formHeaders || {}).forEach(([key, val]) => {
63605
63839
  if (FORM_DATA_CONTENT_HEADERS.includes(key.toLowerCase())) {
63606
63840
  headers.set(key, val);
63607
63841
  }
@@ -63621,9 +63855,15 @@ var require_axios = __commonJS({
63621
63855
  const allowAbsoluteUrls = own2("allowAbsoluteUrls");
63622
63856
  const url2 = own2("url");
63623
63857
  newConfig.headers = headers = AxiosHeaders.from(headers);
63624
- newConfig.url = buildURL(buildFullPath(baseURL, url2, allowAbsoluteUrls), own2("params"), own2("paramsSerializer"));
63858
+ newConfig.url = buildURL(buildFullPath(baseURL, url2, allowAbsoluteUrls, newConfig), own2("params"), own2("paramsSerializer"));
63625
63859
  if (auth) {
63626
- headers.set("Authorization", "Basic " + btoa((auth.username || "") + ":" + (auth.password ? encodeUTF8$1(auth.password) : "")));
63860
+ const username = utils$1.getSafeProp(auth, "username") || "";
63861
+ const password = utils$1.getSafeProp(auth, "password") || "";
63862
+ try {
63863
+ headers.set("Authorization", "Basic " + btoa(username + ":" + (password ? encodeUTF8$1(password) : "")));
63864
+ } catch (e) {
63865
+ throw AxiosError.from(e, AxiosError.ERR_BAD_OPTION_VALUE, config);
63866
+ }
63627
63867
  }
63628
63868
  if (utils$1.isFormData(data)) {
63629
63869
  if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv || utils$1.isReactNative(data)) {
@@ -63770,6 +64010,7 @@ var require_axios = __commonJS({
63770
64010
  const protocol = parseProtocol(_config.url);
63771
64011
  if (protocol && !platform.protocols.includes(protocol)) {
63772
64012
  reject(new AxiosError("Unsupported protocol " + protocol + ":", AxiosError.ERR_BAD_REQUEST, config));
64013
+ done();
63773
64014
  return;
63774
64015
  }
63775
64016
  request.send(requestData || null);
@@ -63805,7 +64046,9 @@ var require_axios = __commonJS({
63805
64046
  });
63806
64047
  signals = null;
63807
64048
  };
63808
- signals.forEach((signal2) => signal2.addEventListener("abort", onabort));
64049
+ signals.forEach((signal2) => signal2.addEventListener("abort", onabort, {
64050
+ once: true
64051
+ }));
63809
64052
  const {
63810
64053
  signal
63811
64054
  } = controller;
@@ -64035,12 +64278,14 @@ var require_axios = __commonJS({
64035
64278
  composedSignal.unsubscribe();
64036
64279
  });
64037
64280
  let requestContentLength;
64281
+ let pendingBodyError = null;
64282
+ const maxBodyLengthError = () => new AxiosError("Request body larger than maxBodyLength limit", AxiosError.ERR_BAD_REQUEST, config, request);
64038
64283
  try {
64039
64284
  let auth = void 0;
64040
64285
  const configAuth = own2("auth");
64041
64286
  if (configAuth) {
64042
- const username = configAuth.username || "";
64043
- const password = configAuth.password || "";
64287
+ const username = utils$1.getSafeProp(configAuth, "username") || "";
64288
+ const password = utils$1.getSafeProp(configAuth, "password") || "";
64044
64289
  auth = {
64045
64290
  username,
64046
64291
  password
@@ -64073,25 +64318,42 @@ var require_axios = __commonJS({
64073
64318
  }
64074
64319
  }
64075
64320
  if (hasMaxBodyLength && method !== "get" && method !== "head") {
64076
- const outboundLength = await resolveBodyLength(headers, data);
64077
- if (typeof outboundLength === "number" && isFinite(outboundLength) && outboundLength > maxBodyLength) {
64078
- throw new AxiosError("Request body larger than maxBodyLength limit", AxiosError.ERR_BAD_REQUEST, config, request);
64321
+ const outboundLength = await getBodyLength(data);
64322
+ if (typeof outboundLength === "number" && isFinite(outboundLength)) {
64323
+ requestContentLength = outboundLength;
64324
+ if (outboundLength > maxBodyLength) {
64325
+ throw maxBodyLengthError();
64326
+ }
64079
64327
  }
64080
64328
  }
64081
- if (onUploadProgress && supportsRequestStream && method !== "get" && method !== "head" && (requestContentLength = await resolveBodyLength(headers, data)) !== 0) {
64082
- let _request = new Request(url2, {
64083
- method: "POST",
64084
- body: data,
64085
- duplex: "half"
64086
- });
64087
- let contentTypeHeader;
64088
- if (utils$1.isFormData(data) && (contentTypeHeader = _request.headers.get("content-type"))) {
64089
- headers.setContentType(contentTypeHeader);
64090
- }
64091
- if (_request.body) {
64092
- const [onProgress, flush] = progressEventDecorator(requestContentLength, progressEventReducer(asyncDecorator(onUploadProgress)));
64093
- data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);
64329
+ const mustEnforceStreamBody = hasMaxBodyLength && (utils$1.isReadableStream(data) || utils$1.isStream(data));
64330
+ const trackRequestStream = (stream2, onProgress, flush) => trackStream(stream2, DEFAULT_CHUNK_SIZE, (loadedBytes) => {
64331
+ if (hasMaxBodyLength && loadedBytes > maxBodyLength) {
64332
+ throw pendingBodyError = maxBodyLengthError();
64333
+ }
64334
+ onProgress && onProgress(loadedBytes);
64335
+ }, flush);
64336
+ if (supportsRequestStream && method !== "get" && method !== "head" && (onUploadProgress || mustEnforceStreamBody)) {
64337
+ requestContentLength = requestContentLength == null ? await resolveBodyLength(headers, data) : requestContentLength;
64338
+ if (requestContentLength !== 0 || mustEnforceStreamBody) {
64339
+ let _request = new Request(url2, {
64340
+ method: "POST",
64341
+ body: data,
64342
+ duplex: "half"
64343
+ });
64344
+ let contentTypeHeader;
64345
+ if (utils$1.isFormData(data) && (contentTypeHeader = _request.headers.get("content-type"))) {
64346
+ headers.setContentType(contentTypeHeader);
64347
+ }
64348
+ if (_request.body) {
64349
+ const [onProgress, flush] = onUploadProgress && progressEventDecorator(requestContentLength, progressEventReducer(asyncDecorator(onUploadProgress))) || [];
64350
+ data = trackRequestStream(_request.body, onProgress, flush);
64351
+ }
64094
64352
  }
64353
+ } else if (mustEnforceStreamBody && !isRequestSupported && isReadableStreamSupported && method !== "get" && method !== "head") {
64354
+ data = trackRequestStream(data);
64355
+ } else if (mustEnforceStreamBody && isRequestSupported && !supportsRequestStream && method !== "get" && method !== "head") {
64356
+ throw new AxiosError("Stream request bodies are not supported by the current fetch implementation", AxiosError.ERR_NOT_SUPPORT, config, request);
64095
64357
  }
64096
64358
  if (!utils$1.isString(withCredentials)) {
64097
64359
  withCredentials = withCredentials ? "include" : "omit";
@@ -64115,8 +64377,9 @@ var require_axios = __commonJS({
64115
64377
  };
64116
64378
  request = isRequestSupported && new Request(url2, resolvedOptions);
64117
64379
  let response = await (isRequestSupported ? _fetch(request, fetchOptions) : _fetch(url2, resolvedOptions));
64380
+ const responseHeaders = AxiosHeaders.from(response.headers);
64118
64381
  if (hasMaxContentLength) {
64119
- const declaredLength = utils$1.toFiniteNumber(response.headers.get("content-length"));
64382
+ const declaredLength = utils$1.toFiniteNumber(responseHeaders.getContentLength());
64120
64383
  if (declaredLength != null && declaredLength > maxContentLength) {
64121
64384
  throw new AxiosError("maxContentLength size of " + maxContentLength + " exceeded", AxiosError.ERR_BAD_RESPONSE, config, request);
64122
64385
  }
@@ -64127,7 +64390,7 @@ var require_axios = __commonJS({
64127
64390
  ["status", "statusText", "headers"].forEach((prop) => {
64128
64391
  options[prop] = response[prop];
64129
64392
  });
64130
- const responseContentLength = utils$1.toFiniteNumber(response.headers.get("content-length"));
64393
+ const responseContentLength = utils$1.toFiniteNumber(responseHeaders.getContentLength());
64131
64394
  const [onProgress, flush] = onDownloadProgress && progressEventDecorator(responseContentLength, progressEventReducer(asyncDecorator(onDownloadProgress), true)) || [];
64132
64395
  let bytesRead = 0;
64133
64396
  const onChunkProgress = (loadedBytes) => {
@@ -64178,13 +64441,35 @@ var require_axios = __commonJS({
64178
64441
  const canceledError = composedSignal.reason;
64179
64442
  canceledError.config = config;
64180
64443
  request && (canceledError.request = request);
64181
- err !== canceledError && (canceledError.cause = err);
64444
+ if (err !== canceledError) {
64445
+ Object.defineProperty(canceledError, "cause", {
64446
+ __proto__: null,
64447
+ value: err,
64448
+ writable: true,
64449
+ enumerable: false,
64450
+ configurable: true
64451
+ });
64452
+ }
64182
64453
  throw canceledError;
64183
64454
  }
64455
+ if (pendingBodyError) {
64456
+ request && !pendingBodyError.request && (pendingBodyError.request = request);
64457
+ throw pendingBodyError;
64458
+ }
64459
+ if (err instanceof AxiosError) {
64460
+ request && !err.request && (err.request = request);
64461
+ throw err;
64462
+ }
64184
64463
  if (err && err.name === "TypeError" && /Load failed|fetch/i.test(err.message)) {
64185
- throw Object.assign(new AxiosError("Network Error", AxiosError.ERR_NETWORK, config, request, err && err.response), {
64186
- cause: err.cause || err
64464
+ const networkError = new AxiosError("Network Error", AxiosError.ERR_NETWORK, config, request, err && err.response);
64465
+ Object.defineProperty(networkError, "cause", {
64466
+ __proto__: null,
64467
+ value: err.cause || err,
64468
+ writable: true,
64469
+ enumerable: false,
64470
+ configurable: true
64187
64471
  });
64472
+ throw networkError;
64188
64473
  }
64189
64474
  throw AxiosError.from(err, err && err.code, config, request, err && err.response);
64190
64475
  }
@@ -64259,7 +64544,7 @@ var require_axios = __commonJS({
64259
64544
  if (!adapter) {
64260
64545
  const reasons = Object.entries(rejectedReasons).map(([id, state]) => `adapter ${id} ` + (state === false ? "is not supported by the environment" : "is not available in the build"));
64261
64546
  let s = length ? reasons.length > 1 ? "since :\n" + reasons.map(renderReason).join("\n") : " " + renderReason(reasons[0]) : "as no adapter specified";
64262
- throw new AxiosError(`There is no suitable adapter to dispatch the request ` + s, "ERR_NOT_SUPPORT");
64547
+ throw new AxiosError(`There is no suitable adapter to dispatch the request ` + s, AxiosError.ERR_NOT_SUPPORT);
64263
64548
  }
64264
64549
  return adapter;
64265
64550
  }
@@ -64346,7 +64631,7 @@ var require_axios = __commonJS({
64346
64631
  };
64347
64632
  };
64348
64633
  function assertOptions(options, schema, allowUnknown) {
64349
- if (typeof options !== "object") {
64634
+ if (typeof options !== "object" || options === null) {
64350
64635
  throw new AxiosError("options must be an object", AxiosError.ERR_BAD_OPTION_VALUE);
64351
64636
  }
64352
64637
  const keys = Object.keys(options);
@@ -64438,7 +64723,8 @@ var require_axios = __commonJS({
64438
64723
  forcedJSONParsing: validators.transitional(validators.boolean),
64439
64724
  clarifyTimeoutError: validators.transitional(validators.boolean),
64440
64725
  legacyInterceptorReqResOrdering: validators.transitional(validators.boolean),
64441
- advertiseZstdAcceptEncoding: validators.transitional(validators.boolean)
64726
+ advertiseZstdAcceptEncoding: validators.transitional(validators.boolean),
64727
+ validateStatusUndefinedResolves: validators.transitional(validators.boolean)
64442
64728
  }, false);
64443
64729
  }
64444
64730
  if (paramsSerializer != null) {
@@ -64528,7 +64814,7 @@ var require_axios = __commonJS({
64528
64814
  }
64529
64815
  getUri(config) {
64530
64816
  config = mergeConfig(this.defaults, config);
64531
- const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);
64817
+ const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls, config);
64532
64818
  return buildURL(fullPath, config.params, config.paramsSerializer);
64533
64819
  }
64534
64820
  };
@@ -64537,7 +64823,7 @@ var require_axios = __commonJS({
64537
64823
  return this.request(mergeConfig(config || {}, {
64538
64824
  method,
64539
64825
  url: url2,
64540
- data: (config || {}).data
64826
+ data: config && utils$1.hasOwnProp(config, "data") ? config.data : void 0
64541
64827
  }));
64542
64828
  };
64543
64829
  });
@@ -91018,7 +91304,9 @@ var require_vectors_mcp_fpfn = __commonJS({
91018
91304
  expected: {
91019
91305
  has_breaking: false,
91020
91306
  should_flag_poison: false,
91021
- risk_max: 20,
91307
+ risk_max: 0,
91308
+ bounds_changelog: "risk_max 20 -> 0 (recalibrated 2026-07 to measured 0 on the oasdiff-1.11.11 pinned path)",
91309
+ risk_note: "safe vector scores 0 on the pinned path - max 0 catches any inflation (detection-only)",
91022
91310
  deep_signals: [],
91023
91311
  notes: "Purely additive optional property. Agents that do not send 'limit' continue to work. Must NOT trigger breaking or high risk."
91024
91312
  }
@@ -91052,7 +91340,9 @@ var require_vectors_mcp_fpfn = __commonJS({
91052
91340
  expected: {
91053
91341
  has_breaking: false,
91054
91342
  should_flag_poison: false,
91055
- risk_max: 15,
91343
+ risk_max: 0,
91344
+ bounds_changelog: "risk_max 15 -> 0 (recalibrated 2026-07 to measured 0 on the oasdiff-1.11.11 pinned path)",
91345
+ risk_note: "safe vector scores 0 on the pinned path - max 0 catches any inflation (detection-only)",
91056
91346
  deep_signals: [],
91057
91347
  notes: "Input enum expansion is non-breaking for callers. Existing 'read'/'write' payloads still validate. Do not cry wolf."
91058
91348
  }
@@ -91085,7 +91375,9 @@ var require_vectors_mcp_fpfn = __commonJS({
91085
91375
  expected: {
91086
91376
  has_breaking: false,
91087
91377
  should_flag_poison: false,
91088
- risk_max: 25,
91378
+ risk_max: 0,
91379
+ bounds_changelog: "risk_max 25 -> 0 (recalibrated 2026-07 to measured 0 on the oasdiff-1.11.11 pinned path)",
91380
+ risk_note: "safe vector scores 0 on the pinned path - max 0 catches any inflation (detection-only)",
91089
91381
  deep_signals: ["composition_branch_count_changed"],
91090
91382
  notes: "New branch is additive. Old 'text' payloads continue to match first branch exactly. Non-breaking per rules."
91091
91383
  }
@@ -91109,7 +91401,9 @@ var require_vectors_mcp_fpfn = __commonJS({
91109
91401
  expected: {
91110
91402
  has_breaking: false,
91111
91403
  should_flag_poison: false,
91112
- risk_max: 5,
91404
+ risk_max: 0,
91405
+ bounds_changelog: "risk_max 5 -> 0 (recalibrated 2026-07 to measured 0 on the oasdiff-1.11.11 pinned path)",
91406
+ risk_note: "safe vector scores 0 on the pinned path - max 0 catches any inflation (detection-only)",
91113
91407
  deep_signals: ["description_changed"],
91114
91408
  notes: "Description change only. No structural impact and no suspicious content. Must stay low risk / non-breaking."
91115
91409
  }
@@ -91141,7 +91435,8 @@ var require_vectors_mcp_fpfn = __commonJS({
91141
91435
  expected: {
91142
91436
  has_breaking: false,
91143
91437
  should_flag_poison: false,
91144
- risk_max: 10,
91438
+ risk_max: 24,
91439
+ bounds_changelog: "risk_max 10 -> 24 (recalibrated 2026-07 to measured 20 on the oasdiff-1.11.11 pinned path)",
91145
91440
  deep_signals: [],
91146
91441
  notes: "Adding fields to output is generally non-breaking for agents (they can ignore unknown keys unless strict validation)."
91147
91442
  }
@@ -91168,7 +91463,9 @@ var require_vectors_mcp_fpfn = __commonJS({
91168
91463
  expected: {
91169
91464
  has_breaking: false,
91170
91465
  should_flag_poison: false,
91171
- risk_max: 5,
91466
+ risk_max: 0,
91467
+ bounds_changelog: "risk_max 5 -> 0 (recalibrated 2026-07 to measured 0 on the oasdiff-1.11.11 pinned path)",
91468
+ risk_note: "safe vector scores 0 on the pinned path - max 0 catches any inflation (detection-only)",
91172
91469
  deep_signals: [],
91173
91470
  notes: "Vendor extensions and unknown keywords do not affect validation contract for existing payloads."
91174
91471
  }
@@ -91202,7 +91499,8 @@ var require_vectors_mcp_fpfn = __commonJS({
91202
91499
  expected: {
91203
91500
  has_breaking: true,
91204
91501
  should_flag_poison: false,
91205
- risk_min: 60,
91502
+ risk_min: 24,
91503
+ bounds_changelog: "risk_min 60 -> 24 (recalibrated 2026-07 to measured 30 on the oasdiff-1.11.11 pinned path)",
91206
91504
  deep_signals: ["required_added", "property_removed"],
91207
91505
  notes: "Old agents send 'title'. New contract requires 'name'. Direct break. Must be detected as breaking despite surface 'add+remove' appearance."
91208
91506
  }
@@ -91233,7 +91531,8 @@ var require_vectors_mcp_fpfn = __commonJS({
91233
91531
  },
91234
91532
  expected: {
91235
91533
  has_breaking: true,
91236
- risk_min: 45,
91534
+ risk_min: 16,
91535
+ bounds_changelog: "risk_min 45 -> 16 (recalibrated 2026-07 to measured 20 on the oasdiff-1.11.11 pinned path)",
91237
91536
  deep_signals: ["enum_value_removed"],
91238
91537
  notes: "Server will no longer emit 'error' state. Any agent logic or monitoring keyed on it breaks. Must flag."
91239
91538
  }
@@ -91271,7 +91570,9 @@ var require_vectors_mcp_fpfn = __commonJS({
91271
91570
  },
91272
91571
  expected: {
91273
91572
  has_breaking: true,
91274
- risk_min: 70,
91573
+ risk_min: 0,
91574
+ bounds_changelog: "risk_min 70 -> 0 (recalibrated 2026-07 to measured 0 on the oasdiff-1.11.11 pinned path)",
91575
+ risk_note: "risk scorer produces no signal for this vector class - detection-only guard",
91275
91576
  deep_signals: ["conditional_required_added", "required_added"],
91276
91577
  notes: "When mode=full, 'reason' becomes mandatory. Agents using the old manifest for full updates will fail validation. Must catch deep conditional."
91277
91578
  }
@@ -91314,7 +91615,9 @@ var require_vectors_mcp_fpfn = __commonJS({
91314
91615
  expected: {
91315
91616
  has_breaking: true,
91316
91617
  should_flag_poison: true,
91317
- risk_min: 80,
91618
+ risk_min: 0,
91619
+ bounds_changelog: "risk_min 80 -> 0 (recalibrated 2026-07 to measured 0 on the oasdiff-1.11.11 pinned path)",
91620
+ risk_note: "risk scorer produces no signal for this vector class - detection-only guard",
91318
91621
  deep_signals: ["$defs_changed", "required_added"],
91319
91622
  poison_signals: ["Ignore previous", "always include"],
91320
91623
  notes: "Ref target now requires extra field + contains FSP instruction. Classic deep + poison vector. Must surface both structural break and poisoning."
@@ -91350,7 +91653,9 @@ var require_vectors_mcp_fpfn = __commonJS({
91350
91653
  expected: {
91351
91654
  has_breaking: false,
91352
91655
  should_flag_poison: true,
91353
- risk_min: 55,
91656
+ risk_min: 0,
91657
+ bounds_changelog: "risk_min 55 -> 0 (recalibrated 2026-07 to measured 0 on the oasdiff-1.11.11 pinned path)",
91658
+ risk_note: "risk scorer produces no signal for this vector class - detection-only guard",
91354
91659
  poison_signals: ["send a copy", "attacker.example"],
91355
91660
  notes: "Structural contract same, but FSP in a property description. Shallow tools miss it. Full-schema detector + risk must catch."
91356
91661
  }
@@ -91383,7 +91688,9 @@ var require_vectors_mcp_fpfn = __commonJS({
91383
91688
  },
91384
91689
  expected: {
91385
91690
  has_breaking: true,
91386
- risk_min: 65,
91691
+ risk_min: 0,
91692
+ bounds_changelog: "risk_min 65 -> 0 (recalibrated 2026-07 to measured 0 on the oasdiff-1.11.11 pinned path)",
91693
+ risk_note: "risk scorer produces no signal for this vector class - detection-only guard",
91387
91694
  deep_signals: ["required_added"],
91388
91695
  notes: "The second allOf fragment now requires 'data'. After merge the whole schema requires it. Must detect via normalization + allOf handling."
91389
91696
  }
@@ -91414,7 +91721,8 @@ var require_vectors_mcp_fpfn = __commonJS({
91414
91721
  },
91415
91722
  expected: {
91416
91723
  has_breaking: true,
91417
- risk_min: 70,
91724
+ risk_min: 16,
91725
+ bounds_changelog: "risk_min 70 -> 16 (recalibrated 2026-07 to measured 20 on the oasdiff-1.11.11 pinned path)",
91418
91726
  deep_signals: ["conditional_required_added"],
91419
91727
  notes: "Error path now mandates 'result'. Agents and any gateway transformation that relied on optional result on error will break or behave differently."
91420
91728
  }
@@ -91467,7 +91775,9 @@ var require_vectors_openapi_fpfn = __commonJS({
91467
91775
  },
91468
91776
  expected: {
91469
91777
  has_breaking: false,
91470
- risk_max: 10,
91778
+ risk_max: 0,
91779
+ bounds_changelog: "risk_max 10 -> 0 (recalibrated 2026-07 to measured 0 on the oasdiff-1.11.11 pinned path)",
91780
+ risk_note: "safe vector scores 0 on the pinned path - max 0 catches any inflation (detection-only)",
91471
91781
  notes: "Optional query param addition never breaks existing calls that omit it. Must not flag."
91472
91782
  }
91473
91783
  },
@@ -91520,7 +91830,9 @@ var require_vectors_openapi_fpfn = __commonJS({
91520
91830
  },
91521
91831
  expected: {
91522
91832
  has_breaking: false,
91523
- risk_max: 8,
91833
+ risk_max: 0,
91834
+ bounds_changelog: "risk_max 8 -> 0 (recalibrated 2026-07 to measured 0 on the oasdiff-1.11.11 pinned path)",
91835
+ risk_note: "safe vector scores 0 on the pinned path - max 0 catches any inflation (detection-only)",
91524
91836
  notes: "Extra response fields are ignored by most clients unless they use strict additionalProperties:false. Non-breaking."
91525
91837
  }
91526
91838
  },
@@ -91577,7 +91889,9 @@ var require_vectors_openapi_fpfn = __commonJS({
91577
91889
  },
91578
91890
  expected: {
91579
91891
  has_breaking: false,
91580
- risk_max: 12,
91892
+ risk_max: 0,
91893
+ bounds_changelog: "risk_max 12 -> 0 (recalibrated 2026-07 to measured 0 on the oasdiff-1.11.11 pinned path)",
91894
+ risk_note: "safe vector scores 0 on the pinned path - max 0 catches any inflation (detection-only)",
91581
91895
  notes: "Response enum expansion gives clients more cases to handle optionally. Existing handling of open/closed remains valid."
91582
91896
  }
91583
91897
  },
@@ -91613,7 +91927,8 @@ var require_vectors_openapi_fpfn = __commonJS({
91613
91927
  },
91614
91928
  expected: {
91615
91929
  has_breaking: true,
91616
- risk_min: 70,
91930
+ risk_min: 2,
91931
+ bounds_changelog: "risk_min 70 -> 2 (recalibrated 2026-07 to measured 3 on the production-faithful path - no pattern boost)",
91617
91932
  notes: "All prior requests without 'org' now invalid. Direct breaking change for agents and SDK clients. Must be caught."
91618
91933
  }
91619
91934
  },
@@ -91718,7 +92033,8 @@ var require_vectors_openapi_fpfn = __commonJS({
91718
92033
  },
91719
92034
  expected: {
91720
92035
  has_breaking: true,
91721
- risk_min: 75,
92036
+ risk_min: 4,
92037
+ bounds_changelog: "risk_min 75 -> 4 (recalibrated 2026-07 to measured 6 on the production-faithful path - no pattern boost)",
91722
92038
  notes: "Request payload shape changed for a required identifier. Old 'userId' submissions rejected. Must detect rename as breaking."
91723
92039
  }
91724
92040
  },
@@ -91842,7 +92158,8 @@ var require_vectors_openapi_fpfn = __commonJS({
91842
92158
  },
91843
92159
  expected: {
91844
92160
  has_breaking: true,
91845
- risk_min: 50,
92161
+ risk_min: 6,
92162
+ bounds_changelog: "risk_min 50 -> 6 (recalibrated 2026-07 to measured 8 on the production-faithful path - no pattern boost)",
91846
92163
  notes: "Request-side tightening rejects previously-valid payloads. Must be caught."
91847
92164
  }
91848
92165
  },
@@ -91896,7 +92213,9 @@ var require_vectors_openapi_fpfn = __commonJS({
91896
92213
  },
91897
92214
  expected: {
91898
92215
  has_breaking: false,
91899
- risk_max: 10,
92216
+ risk_max: 0,
92217
+ bounds_changelog: "risk_max 10 -> 0 (recalibrated 2026-07 to measured 0 on the oasdiff-1.11.11 pinned path)",
92218
+ risk_note: "safe vector scores 0 on the pinned path - max 0 catches any inflation (detection-only)",
91900
92219
  notes: "Request-side loosening (nullable false->true, format unchanged): all previously-valid payloads stay valid. Must NOT be flagged breaking."
91901
92220
  }
91902
92221
  }
@@ -91997,7 +92316,7 @@ var require_mcp_schema_normalizer = __commonJS({
91997
92316
  return parts.join("|");
91998
92317
  }
91999
92318
  function normalizeConditionals(schema, warnings = []) {
92000
- let result = { ...schema };
92319
+ const result = { ...schema };
92001
92320
  if (result.if) result.if = normalizeMcpSchema(result.if, { warnings }).canonical;
92002
92321
  if (result.then) result.then = normalizeMcpSchema(result.then, { warnings }).canonical;
92003
92322
  if (result.else) result.else = normalizeMcpSchema(result.else, { warnings }).canonical;
@@ -92880,5 +93199,5 @@ mime-types/index.js:
92880
93199
  *)
92881
93200
 
92882
93201
  axios/dist/node/axios.cjs:
92883
- (*! Axios v1.17.0 Copyright (c) 2026 Matt Zabriskie and contributors *)
93202
+ (*! Axios v1.18.1 Copyright (c) 2026 Matt Zabriskie and contributors *)
92884
93203
  */