@speclynx/apidom-reference 4.9.1 → 4.10.1

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.
@@ -34525,8 +34525,10 @@ class Composer {
34525
34525
  }
34526
34526
  }
34527
34527
  if (afterDoc) {
34528
- Array.prototype.push.apply(doc.errors, this.errors);
34529
- Array.prototype.push.apply(doc.warnings, this.warnings);
34528
+ for (let i = 0; i < this.errors.length; ++i)
34529
+ doc.errors.push(this.errors[i]);
34530
+ for (let i = 0; i < this.warnings.length; ++i)
34531
+ doc.warnings.push(this.warnings[i]);
34530
34532
  }
34531
34533
  else {
34532
34534
  doc.errors = this.errors;
@@ -35488,7 +35490,7 @@ function doubleQuotedValue(source, onError) {
35488
35490
  next = source[++i + 1];
35489
35491
  }
35490
35492
  else if (next === 'x' || next === 'u' || next === 'U') {
35491
- const length = { x: 2, u: 4, U: 8 }[next];
35493
+ const length = next === 'x' ? 2 : next === 'u' ? 4 : 8;
35492
35494
  res += parseCharCode(source, i + 1, length, onError);
35493
35495
  i += length;
35494
35496
  }
@@ -35558,12 +35560,14 @@ function parseCharCode(source, offset, length, onError) {
35558
35560
  const cc = source.substr(offset, length);
35559
35561
  const ok = cc.length === length && /^[0-9a-fA-F]+$/.test(cc);
35560
35562
  const code = ok ? parseInt(cc, 16) : NaN;
35561
- if (isNaN(code)) {
35563
+ try {
35564
+ return String.fromCodePoint(code);
35565
+ }
35566
+ catch {
35562
35567
  const raw = source.substr(offset - 2, length + 2);
35563
35568
  onError(offset - 2, 'BAD_DQ_ESCAPE', `Invalid escape sequence ${raw}`);
35564
35569
  return raw;
35565
35570
  }
35566
- return String.fromCodePoint(code);
35567
35571
  }
35568
35572
 
35569
35573
 
@@ -36876,6 +36880,8 @@ class Alias extends _Node_js__WEBPACK_IMPORTED_MODULE_3__.NodeBase {
36876
36880
  * instance of the `source` anchor before this node.
36877
36881
  */
36878
36882
  resolve(doc, ctx) {
36883
+ if (ctx?.maxAliasCount === 0)
36884
+ throw new ReferenceError('Alias resolution is disabled');
36879
36885
  let nodes;
36880
36886
  if (ctx?.aliasResolveCache) {
36881
36887
  nodes = ctx.aliasResolveCache;
@@ -38630,7 +38636,7 @@ class Lexer {
38630
38636
  const n = (yield* this.pushCount(1)) + (yield* this.pushSpaces(true));
38631
38637
  this.indentNext = this.indentValue + 1;
38632
38638
  this.indentValue += n;
38633
- return yield* this.parseBlockStart();
38639
+ return 'block-start';
38634
38640
  }
38635
38641
  return 'doc';
38636
38642
  }
@@ -38951,32 +38957,36 @@ class Lexer {
38951
38957
  return 0;
38952
38958
  }
38953
38959
  *pushIndicators() {
38954
- switch (this.charAt(0)) {
38955
- case '!':
38956
- return ((yield* this.pushTag()) +
38957
- (yield* this.pushSpaces(true)) +
38958
- (yield* this.pushIndicators()));
38959
- case '&':
38960
- return ((yield* this.pushUntil(isNotAnchorChar)) +
38961
- (yield* this.pushSpaces(true)) +
38962
- (yield* this.pushIndicators()));
38963
- case '-': // this is an error
38964
- case '?': // this is an error outside flow collections
38965
- case ':': {
38966
- const inFlow = this.flowLevel > 0;
38967
- const ch1 = this.charAt(1);
38968
- if (isEmpty(ch1) || (inFlow && flowIndicatorChars.has(ch1))) {
38969
- if (!inFlow)
38970
- this.indentNext = this.indentValue + 1;
38971
- else if (this.flowKey)
38972
- this.flowKey = false;
38973
- return ((yield* this.pushCount(1)) +
38974
- (yield* this.pushSpaces(true)) +
38975
- (yield* this.pushIndicators()));
38960
+ let n = 0;
38961
+ loop: while (true) {
38962
+ switch (this.charAt(0)) {
38963
+ case '!':
38964
+ n += yield* this.pushTag();
38965
+ n += yield* this.pushSpaces(true);
38966
+ continue loop;
38967
+ case '&':
38968
+ n += yield* this.pushUntil(isNotAnchorChar);
38969
+ n += yield* this.pushSpaces(true);
38970
+ continue loop;
38971
+ case '-': // this is an error
38972
+ case '?': // this is an error outside flow collections
38973
+ case ':': {
38974
+ const inFlow = this.flowLevel > 0;
38975
+ const ch1 = this.charAt(1);
38976
+ if (isEmpty(ch1) || (inFlow && flowIndicatorChars.has(ch1))) {
38977
+ if (!inFlow)
38978
+ this.indentNext = this.indentValue + 1;
38979
+ else if (this.flowKey)
38980
+ this.flowKey = false;
38981
+ n += yield* this.pushCount(1);
38982
+ n += yield* this.pushSpaces(true);
38983
+ continue loop;
38984
+ }
38976
38985
  }
38977
38986
  }
38987
+ break loop;
38978
38988
  }
38979
- return 0;
38989
+ return n;
38980
38990
  }
38981
38991
  *pushTag() {
38982
38992
  if (this.charAt(1) === '<') {
@@ -39169,6 +39179,14 @@ function getFirstKeyStartProps(prev) {
39169
39179
  }
39170
39180
  return prev.splice(i, prev.length);
39171
39181
  }
39182
+ function arrayPushArray(target, source) {
39183
+ // May exhaust call stack with large `source` array
39184
+ if (source.length < 1e5)
39185
+ Array.prototype.push.apply(target, source);
39186
+ else
39187
+ for (let i = 0; i < source.length; ++i)
39188
+ target.push(source[i]);
39189
+ }
39172
39190
  function fixFlowSeqItems(fc) {
39173
39191
  if (fc.start.type === 'flow-seq-start') {
39174
39192
  for (const it of fc.items) {
@@ -39181,12 +39199,12 @@ function fixFlowSeqItems(fc) {
39181
39199
  delete it.key;
39182
39200
  if (isFlowToken(it.value)) {
39183
39201
  if (it.value.end)
39184
- Array.prototype.push.apply(it.value.end, it.sep);
39202
+ arrayPushArray(it.value.end, it.sep);
39185
39203
  else
39186
39204
  it.value.end = it.sep;
39187
39205
  }
39188
39206
  else
39189
- Array.prototype.push.apply(it.start, it.sep);
39207
+ arrayPushArray(it.start, it.sep);
39190
39208
  delete it.sep;
39191
39209
  }
39192
39210
  }
@@ -39604,7 +39622,7 @@ class Parser {
39604
39622
  const prev = map.items[map.items.length - 2];
39605
39623
  const end = prev?.value?.end;
39606
39624
  if (Array.isArray(end)) {
39607
- Array.prototype.push.apply(end, it.start);
39625
+ arrayPushArray(end, it.start);
39608
39626
  end.push(this.sourceToken);
39609
39627
  map.items.pop();
39610
39628
  return;
@@ -39819,7 +39837,7 @@ class Parser {
39819
39837
  const prev = seq.items[seq.items.length - 2];
39820
39838
  const end = prev?.value?.end;
39821
39839
  if (Array.isArray(end)) {
39822
- Array.prototype.push.apply(end, it.start);
39840
+ arrayPushArray(end, it.start);
39823
39841
  end.push(this.sourceToken);
39824
39842
  seq.items.pop();
39825
39843
  return;
@@ -41055,18 +41073,18 @@ const isMergeKey = (ctx, key) => (merge.identify(key) ||
41055
41073
  merge.identify(key.value))) &&
41056
41074
  ctx?.doc.schema.tags.some(tag => tag.tag === merge.tag && tag.default);
41057
41075
  function addMergeToJSMap(ctx, map, value) {
41058
- value = ctx && (0,_nodes_identity_js__WEBPACK_IMPORTED_MODULE_0__.isAlias)(value) ? value.resolve(ctx.doc) : value;
41059
- if ((0,_nodes_identity_js__WEBPACK_IMPORTED_MODULE_0__.isSeq)(value))
41060
- for (const it of value.items)
41076
+ const source = resolveAliasValue(ctx, value);
41077
+ if ((0,_nodes_identity_js__WEBPACK_IMPORTED_MODULE_0__.isSeq)(source))
41078
+ for (const it of source.items)
41061
41079
  mergeValue(ctx, map, it);
41062
- else if (Array.isArray(value))
41063
- for (const it of value)
41080
+ else if (Array.isArray(source))
41081
+ for (const it of source)
41064
41082
  mergeValue(ctx, map, it);
41065
41083
  else
41066
- mergeValue(ctx, map, value);
41084
+ mergeValue(ctx, map, source);
41067
41085
  }
41068
41086
  function mergeValue(ctx, map, value) {
41069
- const source = ctx && (0,_nodes_identity_js__WEBPACK_IMPORTED_MODULE_0__.isAlias)(value) ? value.resolve(ctx.doc) : value;
41087
+ const source = resolveAliasValue(ctx, value);
41070
41088
  if (!(0,_nodes_identity_js__WEBPACK_IMPORTED_MODULE_0__.isMap)(source))
41071
41089
  throw new Error('Merge sources must be maps or map aliases');
41072
41090
  const srcMap = source.toJSON(null, ctx, Map);
@@ -41089,6 +41107,9 @@ function mergeValue(ctx, map, value) {
41089
41107
  }
41090
41108
  return map;
41091
41109
  }
41110
+ function resolveAliasValue(ctx, value) {
41111
+ return ctx && (0,_nodes_identity_js__WEBPACK_IMPORTED_MODULE_0__.isAlias)(value) ? value.resolve(ctx.doc, ctx) : value;
41112
+ }
41092
41113
 
41093
41114
 
41094
41115
 
@@ -42199,7 +42220,8 @@ function stringifyNumber({ format, minFractionDigits, tag, value }) {
42199
42220
  if (!format &&
42200
42221
  minFractionDigits &&
42201
42222
  (!tag || tag === 'tag:yaml.org,2002:float') &&
42202
- /^\d/.test(n)) {
42223
+ /^-?\d/.test(n) &&
42224
+ !n.includes('e')) {
42203
42225
  let i = n.indexOf('.');
42204
42226
  if (i < 0) {
42205
42227
  i = n.length;
@@ -94954,11 +94976,13 @@ const knownAdapters = {
94954
94976
  _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(knownAdapters, (fn, value) => {
94955
94977
  if (fn) {
94956
94978
  try {
94957
- Object.defineProperty(fn, 'name', { value });
94979
+ // Null-proto descriptors so a polluted Object.prototype.get cannot turn
94980
+ // these data descriptors into accessor descriptors on the way in.
94981
+ Object.defineProperty(fn, 'name', { __proto__: null, value });
94958
94982
  } catch (e) {
94959
94983
  // eslint-disable-next-line no-empty
94960
94984
  }
94961
- Object.defineProperty(fn, 'adapterName', { value });
94985
+ Object.defineProperty(fn, 'adapterName', { __proto__: null, value });
94962
94986
  }
94963
94987
  });
94964
94988
 
@@ -95079,6 +95103,9 @@ __webpack_require__.r(__webpack_exports__);
95079
95103
  /* harmony import */ var _helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(77837);
95080
95104
  /* harmony import */ var _helpers_resolveConfig_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(88382);
95081
95105
  /* harmony import */ var _core_settle_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(63853);
95106
+ /* harmony import */ var _helpers_estimateDataURLDecodedBytes_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(41526);
95107
+ /* harmony import */ var _env_data_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(89888);
95108
+ /* harmony import */ var _helpers_sanitizeHeaderValue_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(68267);
95082
95109
 
95083
95110
 
95084
95111
 
@@ -95089,16 +95116,12 @@ __webpack_require__.r(__webpack_exports__);
95089
95116
 
95090
95117
 
95091
95118
 
95092
- const DEFAULT_CHUNK_SIZE = 64 * 1024;
95093
95119
 
95094
- const { isFunction } = _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"];
95095
95120
 
95096
- const globalFetchAPI = (({ Request, Response }) => ({
95097
- Request,
95098
- Response,
95099
- }))(_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].global);
95100
95121
 
95101
- const { ReadableStream, TextEncoder } = _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].global;
95122
+ const DEFAULT_CHUNK_SIZE = 64 * 1024;
95123
+
95124
+ const { isFunction } = _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"];
95102
95125
 
95103
95126
  const test = (fn, ...args) => {
95104
95127
  try {
@@ -95109,11 +95132,20 @@ const test = (fn, ...args) => {
95109
95132
  };
95110
95133
 
95111
95134
  const factory = (env) => {
95135
+ const globalObject =
95136
+ _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].global !== undefined && _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].global !== null
95137
+ ? _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].global
95138
+ : globalThis;
95139
+ const { ReadableStream, TextEncoder } = globalObject;
95140
+
95112
95141
  env = _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].merge.call(
95113
95142
  {
95114
95143
  skipUndefined: true,
95115
95144
  },
95116
- globalFetchAPI,
95145
+ {
95146
+ Request: globalObject.Request,
95147
+ Response: globalObject.Response,
95148
+ },
95117
95149
  env
95118
95150
  );
95119
95151
 
@@ -95240,8 +95272,13 @@ const factory = (env) => {
95240
95272
  headers,
95241
95273
  withCredentials = 'same-origin',
95242
95274
  fetchOptions,
95275
+ maxContentLength,
95276
+ maxBodyLength,
95243
95277
  } = (0,_helpers_resolveConfig_js__WEBPACK_IMPORTED_MODULE_7__["default"])(config);
95244
95278
 
95279
+ const hasMaxContentLength = _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isNumber(maxContentLength) && maxContentLength > -1;
95280
+ const hasMaxBodyLength = _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isNumber(maxBodyLength) && maxBodyLength > -1;
95281
+
95245
95282
  let _fetch = envFetch || fetch;
95246
95283
 
95247
95284
  responseType = responseType ? (responseType + '').toLowerCase() : 'text';
@@ -95263,6 +95300,41 @@ const factory = (env) => {
95263
95300
  let requestContentLength;
95264
95301
 
95265
95302
  try {
95303
+ // Enforce maxContentLength for data: URLs up-front so we never materialize
95304
+ // an oversized payload. The HTTP adapter applies the same check (see http.js
95305
+ // "if (protocol === 'data:')" branch).
95306
+ if (hasMaxContentLength && typeof url === 'string' && url.startsWith('data:')) {
95307
+ const estimated = (0,_helpers_estimateDataURLDecodedBytes_js__WEBPACK_IMPORTED_MODULE_9__["default"])(url);
95308
+ if (estimated > maxContentLength) {
95309
+ throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__["default"](
95310
+ 'maxContentLength size of ' + maxContentLength + ' exceeded',
95311
+ _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__["default"].ERR_BAD_RESPONSE,
95312
+ config,
95313
+ request
95314
+ );
95315
+ }
95316
+ }
95317
+
95318
+ // Enforce maxBodyLength against the outbound request body before dispatch.
95319
+ // Mirrors http.js behavior (ERR_BAD_REQUEST / 'Request body larger than
95320
+ // maxBodyLength limit'). Skip when the body length cannot be determined
95321
+ // (e.g. a live ReadableStream supplied by the caller).
95322
+ if (hasMaxBodyLength && method !== 'get' && method !== 'head') {
95323
+ const outboundLength = await resolveBodyLength(headers, data);
95324
+ if (
95325
+ typeof outboundLength === 'number' &&
95326
+ isFinite(outboundLength) &&
95327
+ outboundLength > maxBodyLength
95328
+ ) {
95329
+ throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__["default"](
95330
+ 'Request body larger than maxBodyLength limit',
95331
+ _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__["default"].ERR_BAD_REQUEST,
95332
+ config,
95333
+ request
95334
+ );
95335
+ }
95336
+ }
95337
+
95266
95338
  if (
95267
95339
  onUploadProgress &&
95268
95340
  supportsRequestStream &&
@@ -95313,11 +95385,14 @@ const factory = (env) => {
95313
95385
  }
95314
95386
  }
95315
95387
 
95388
+ // Set User-Agent header if not already set (fetch defaults to 'node' in Node.js)
95389
+ headers.set('User-Agent', 'axios/' + _env_data_js__WEBPACK_IMPORTED_MODULE_10__.VERSION, false);
95390
+
95316
95391
  const resolvedOptions = {
95317
95392
  ...fetchOptions,
95318
95393
  signal: composedSignal,
95319
95394
  method: method.toUpperCase(),
95320
- headers: headers.normalize().toJSON(),
95395
+ headers: (0,_helpers_sanitizeHeaderValue_js__WEBPACK_IMPORTED_MODULE_11__.toByteStringHeaderObject)(headers.normalize()),
95321
95396
  body: data,
95322
95397
  duplex: 'half',
95323
95398
  credentials: isCredentialsSupported ? withCredentials : undefined,
@@ -95329,10 +95404,28 @@ const factory = (env) => {
95329
95404
  ? _fetch(request, fetchOptions)
95330
95405
  : _fetch(url, resolvedOptions));
95331
95406
 
95407
+ // Cheap pre-check: if the server honestly declares a content-length that
95408
+ // already exceeds the cap, reject before we start streaming.
95409
+ if (hasMaxContentLength) {
95410
+ const declaredLength = _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].toFiniteNumber(response.headers.get('content-length'));
95411
+ if (declaredLength != null && declaredLength > maxContentLength) {
95412
+ throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__["default"](
95413
+ 'maxContentLength size of ' + maxContentLength + ' exceeded',
95414
+ _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__["default"].ERR_BAD_RESPONSE,
95415
+ config,
95416
+ request
95417
+ );
95418
+ }
95419
+ }
95420
+
95332
95421
  const isStreamResponse =
95333
95422
  supportsResponseStream && (responseType === 'stream' || responseType === 'response');
95334
95423
 
95335
- if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {
95424
+ if (
95425
+ supportsResponseStream &&
95426
+ response.body &&
95427
+ (onDownloadProgress || hasMaxContentLength || (isStreamResponse && unsubscribe))
95428
+ ) {
95336
95429
  const options = {};
95337
95430
 
95338
95431
  ['status', 'statusText', 'headers'].forEach((prop) => {
@@ -95349,8 +95442,24 @@ const factory = (env) => {
95349
95442
  )) ||
95350
95443
  [];
95351
95444
 
95445
+ let bytesRead = 0;
95446
+ const onChunkProgress = (loadedBytes) => {
95447
+ if (hasMaxContentLength) {
95448
+ bytesRead = loadedBytes;
95449
+ if (bytesRead > maxContentLength) {
95450
+ throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__["default"](
95451
+ 'maxContentLength size of ' + maxContentLength + ' exceeded',
95452
+ _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__["default"].ERR_BAD_RESPONSE,
95453
+ config,
95454
+ request
95455
+ );
95456
+ }
95457
+ }
95458
+ onProgress && onProgress(loadedBytes);
95459
+ };
95460
+
95352
95461
  response = new Response(
95353
- (0,_helpers_trackStream_js__WEBPACK_IMPORTED_MODULE_4__.trackStream)(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {
95462
+ (0,_helpers_trackStream_js__WEBPACK_IMPORTED_MODULE_4__.trackStream)(response.body, DEFAULT_CHUNK_SIZE, onChunkProgress, () => {
95354
95463
  flush && flush();
95355
95464
  unsubscribe && unsubscribe();
95356
95465
  }),
@@ -95365,6 +95474,33 @@ const factory = (env) => {
95365
95474
  config
95366
95475
  );
95367
95476
 
95477
+ // Fallback enforcement for environments without ReadableStream support
95478
+ // (legacy runtimes). Detect materialized size from typed output; skip
95479
+ // streams/Response passthrough since the user will read those themselves.
95480
+ if (hasMaxContentLength && !supportsResponseStream && !isStreamResponse) {
95481
+ let materializedSize;
95482
+ if (responseData != null) {
95483
+ if (typeof responseData.byteLength === 'number') {
95484
+ materializedSize = responseData.byteLength;
95485
+ } else if (typeof responseData.size === 'number') {
95486
+ materializedSize = responseData.size;
95487
+ } else if (typeof responseData === 'string') {
95488
+ materializedSize =
95489
+ typeof TextEncoder === 'function'
95490
+ ? new TextEncoder().encode(responseData).byteLength
95491
+ : responseData.length;
95492
+ }
95493
+ }
95494
+ if (typeof materializedSize === 'number' && materializedSize > maxContentLength) {
95495
+ throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__["default"](
95496
+ 'maxContentLength size of ' + maxContentLength + ' exceeded',
95497
+ _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__["default"].ERR_BAD_RESPONSE,
95498
+ config,
95499
+ request
95500
+ );
95501
+ }
95502
+ }
95503
+
95368
95504
  !isStreamResponse && unsubscribe && unsubscribe();
95369
95505
 
95370
95506
  return await new Promise((resolve, reject) => {
@@ -95380,6 +95516,17 @@ const factory = (env) => {
95380
95516
  } catch (err) {
95381
95517
  unsubscribe && unsubscribe();
95382
95518
 
95519
+ // Safari can surface fetch aborts as a DOMException-like object whose
95520
+ // branded getters throw. Prefer our composed signal reason before reading
95521
+ // the caught error, preserving timeout vs cancellation semantics.
95522
+ if (composedSignal && composedSignal.aborted && composedSignal.reason instanceof _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__["default"]) {
95523
+ const canceledError = composedSignal.reason;
95524
+ canceledError.config = config;
95525
+ request && (canceledError.request = request);
95526
+ err !== canceledError && (canceledError.cause = err);
95527
+ throw canceledError;
95528
+ }
95529
+
95383
95530
  if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) {
95384
95531
  throw Object.assign(
95385
95532
  new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__["default"](
@@ -95450,6 +95597,8 @@ __webpack_require__.r(__webpack_exports__);
95450
95597
  /* harmony import */ var _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(84729);
95451
95598
  /* harmony import */ var _helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(77837);
95452
95599
  /* harmony import */ var _helpers_resolveConfig_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(88382);
95600
+ /* harmony import */ var _helpers_sanitizeHeaderValue_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(68267);
95601
+
95453
95602
 
95454
95603
 
95455
95604
 
@@ -95543,7 +95692,7 @@ const isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';
95543
95692
  // will return status as 0 even though it's a successful request
95544
95693
  if (
95545
95694
  request.status === 0 &&
95546
- !(request.responseURL && request.responseURL.indexOf('file:') === 0)
95695
+ !(request.responseURL && request.responseURL.startsWith('file:'))
95547
95696
  ) {
95548
95697
  return;
95549
95698
  }
@@ -95560,6 +95709,7 @@ const isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';
95560
95709
  }
95561
95710
 
95562
95711
  reject(new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__["default"]('Request aborted', _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__["default"].ECONNABORTED, config, request));
95712
+ done();
95563
95713
 
95564
95714
  // Clean up request
95565
95715
  request = null;
@@ -95575,6 +95725,7 @@ const isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';
95575
95725
  // attach the underlying event for consumers who want details
95576
95726
  err.event = event || null;
95577
95727
  reject(err);
95728
+ done();
95578
95729
  request = null;
95579
95730
  };
95580
95731
 
@@ -95595,6 +95746,7 @@ const isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';
95595
95746
  request
95596
95747
  )
95597
95748
  );
95749
+ done();
95598
95750
 
95599
95751
  // Clean up request
95600
95752
  request = null;
@@ -95605,7 +95757,7 @@ const isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';
95605
95757
 
95606
95758
  // Add headers to the request
95607
95759
  if ('setRequestHeader' in request) {
95608
- _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {
95760
+ _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach((0,_helpers_sanitizeHeaderValue_js__WEBPACK_IMPORTED_MODULE_10__.toByteStringHeaderObject)(requestHeaders), function setRequestHeader(val, key) {
95609
95761
  request.setRequestHeader(key, val);
95610
95762
  });
95611
95763
  }
@@ -95644,6 +95796,7 @@ const isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';
95644
95796
  }
95645
95797
  reject(!cancel || cancel.type ? new _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_4__["default"](null, config, request) : cancel);
95646
95798
  request.abort();
95799
+ done();
95647
95800
  request = null;
95648
95801
  };
95649
95802
 
@@ -95657,7 +95810,7 @@ const isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';
95657
95810
 
95658
95811
  const protocol = (0,_helpers_parseProtocol_js__WEBPACK_IMPORTED_MODULE_5__["default"])(_config.url);
95659
95812
 
95660
- if (protocol && _platform_index_js__WEBPACK_IMPORTED_MODULE_6__["default"].protocols.indexOf(protocol) === -1) {
95813
+ if (protocol && !_platform_index_js__WEBPACK_IMPORTED_MODULE_6__["default"].protocols.includes(protocol)) {
95661
95814
  reject(
95662
95815
  new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__["default"](
95663
95816
  'Unsupported protocol ' + protocol + ':',
@@ -96161,7 +96314,7 @@ class Axios {
96161
96314
  let contextHeaders = headers && _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].merge(headers.common, headers[config.method]);
96162
96315
 
96163
96316
  headers &&
96164
- _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], (method) => {
96317
+ _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'query', 'common'], (method) => {
96165
96318
  delete headers[method];
96166
96319
  });
96167
96320
 
@@ -96264,7 +96417,7 @@ _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(['delete', 'get', 'hea
96264
96417
  };
96265
96418
  });
96266
96419
 
96267
- _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {
96420
+ _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(['post', 'put', 'patch', 'query'], function forEachMethodWithData(method) {
96268
96421
  function generateHTTPMethod(isForm) {
96269
96422
  return function httpMethod(url, data, config) {
96270
96423
  return this.request(
@@ -96284,7 +96437,11 @@ _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(['post', 'put', 'patch
96284
96437
 
96285
96438
  Axios.prototype[method] = generateHTTPMethod();
96286
96439
 
96287
- Axios.prototype[method + 'Form'] = generateHTTPMethod(true);
96440
+ // QUERY is a safe/idempotent read method; multipart form bodies don't fit
96441
+ // its semantics, so no queryForm shorthand is generated.
96442
+ if (method !== 'query') {
96443
+ Axios.prototype[method + 'Form'] = generateHTTPMethod(true);
96444
+ }
96288
96445
  });
96289
96446
 
96290
96447
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Axios);
@@ -96301,9 +96458,80 @@ __webpack_require__.r(__webpack_exports__);
96301
96458
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
96302
96459
  /* harmony export */ });
96303
96460
  /* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17275);
96461
+ /* harmony import */ var _AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(84729);
96462
+
96463
+
96464
+
96465
+
96466
+
96467
+ const REDACTED = '[REDACTED ****]';
96468
+
96469
+ function hasOwnOrPrototypeToJSON(source) {
96470
+ if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].hasOwnProp(source, 'toJSON')) {
96471
+ return true;
96472
+ }
96473
+
96474
+ let prototype = Object.getPrototypeOf(source);
96475
+
96476
+ while (prototype && prototype !== Object.prototype) {
96477
+ if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].hasOwnProp(prototype, 'toJSON')) {
96478
+ return true;
96479
+ }
96304
96480
 
96481
+ prototype = Object.getPrototypeOf(prototype);
96482
+ }
96483
+
96484
+ return false;
96485
+ }
96486
+
96487
+ // Build a plain-object snapshot of `config` and replace the value of any key
96488
+ // (case-insensitive) listed in `redactKeys` with REDACTED. Walks through arrays
96489
+ // and AxiosHeaders, and short-circuits on circular references.
96490
+ function redactConfig(config, redactKeys) {
96491
+ const lowerKeys = new Set(redactKeys.map((k) => String(k).toLowerCase()));
96492
+ const seen = [];
96493
+
96494
+ const visit = (source) => {
96495
+ if (source === null || typeof source !== 'object') return source;
96496
+ if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isBuffer(source)) return source;
96497
+ if (seen.indexOf(source) !== -1) return undefined;
96498
+
96499
+ if (source instanceof _AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__["default"]) {
96500
+ source = source.toJSON();
96501
+ }
96502
+
96503
+ seen.push(source);
96504
+
96505
+ let result;
96506
+ if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArray(source)) {
96507
+ result = [];
96508
+ source.forEach((v, i) => {
96509
+ const reducedValue = visit(v);
96510
+ if (!_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isUndefined(reducedValue)) {
96511
+ result[i] = reducedValue;
96512
+ }
96513
+ });
96514
+ } else {
96515
+ if (!_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isPlainObject(source) && hasOwnOrPrototypeToJSON(source)) {
96516
+ seen.pop();
96517
+ return source;
96518
+ }
96519
+
96520
+ result = Object.create(null);
96521
+ for (const [key, value] of Object.entries(source)) {
96522
+ const reducedValue = lowerKeys.has(key.toLowerCase()) ? REDACTED : visit(value);
96523
+ if (!_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isUndefined(reducedValue)) {
96524
+ result[key] = reducedValue;
96525
+ }
96526
+ }
96527
+ }
96305
96528
 
96529
+ seen.pop();
96530
+ return result;
96531
+ };
96306
96532
 
96533
+ return visit(config);
96534
+ }
96307
96535
 
96308
96536
  class AxiosError extends Error {
96309
96537
  static from(error, code, config, request, response, customProps) {
@@ -96338,6 +96566,9 @@ class AxiosError extends Error {
96338
96566
  // The native Error constructor sets message as non-enumerable,
96339
96567
  // but axios < v1.13.3 had it as enumerable
96340
96568
  Object.defineProperty(this, 'message', {
96569
+ // Null-proto descriptor so a polluted Object.prototype.get cannot turn
96570
+ // this data descriptor into an accessor descriptor on the way in.
96571
+ __proto__: null,
96341
96572
  value: message,
96342
96573
  enumerable: true,
96343
96574
  writable: true,
@@ -96356,6 +96587,17 @@ class AxiosError extends Error {
96356
96587
  }
96357
96588
 
96358
96589
  toJSON() {
96590
+ // Opt-in redaction: when the request config carries a `redact` array, the
96591
+ // value of any matching key (case-insensitive, at any depth) is replaced
96592
+ // with REDACTED in the serialized snapshot. Undefined or empty leaves the
96593
+ // existing serialization behavior unchanged.
96594
+ const config = this.config;
96595
+ const redactKeys = config && _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].hasOwnProp(config, 'redact') ? config.redact : undefined;
96596
+ const serializedConfig =
96597
+ _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArray(redactKeys) && redactKeys.length > 0
96598
+ ? redactConfig(config, redactKeys)
96599
+ : _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].toJSONObject(config);
96600
+
96359
96601
  return {
96360
96602
  // Standard
96361
96603
  message: this.message,
@@ -96369,7 +96611,7 @@ class AxiosError extends Error {
96369
96611
  columnNumber: this.columnNumber,
96370
96612
  stack: this.stack,
96371
96613
  // Axios
96372
- config: _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].toJSONObject(this.config),
96614
+ config: serializedConfig,
96373
96615
  code: this.code,
96374
96616
  status: this.status,
96375
96617
  };
@@ -96381,6 +96623,7 @@ AxiosError.ERR_BAD_OPTION_VALUE = 'ERR_BAD_OPTION_VALUE';
96381
96623
  AxiosError.ERR_BAD_OPTION = 'ERR_BAD_OPTION';
96382
96624
  AxiosError.ECONNABORTED = 'ECONNABORTED';
96383
96625
  AxiosError.ETIMEDOUT = 'ETIMEDOUT';
96626
+ AxiosError.ECONNREFUSED = 'ECONNREFUSED';
96384
96627
  AxiosError.ERR_NETWORK = 'ERR_NETWORK';
96385
96628
  AxiosError.ERR_FR_TOO_MANY_REDIRECTS = 'ERR_FR_TOO_MANY_REDIRECTS';
96386
96629
  AxiosError.ERR_DEPRECATED = 'ERR_DEPRECATED';
@@ -96406,56 +96649,25 @@ __webpack_require__.r(__webpack_exports__);
96406
96649
  /* harmony export */ });
96407
96650
  /* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17275);
96408
96651
  /* harmony import */ var _helpers_parseHeaders_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(43325);
96652
+ /* harmony import */ var _helpers_sanitizeHeaderValue_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(68267);
96409
96653
 
96410
96654
 
96411
96655
 
96412
96656
 
96413
96657
 
96414
- const $internals = Symbol('internals');
96415
-
96416
- const INVALID_HEADER_VALUE_CHARS_RE = /[^\x09\x20-\x7E\x80-\xFF]/g;
96417
-
96418
- function trimSPorHTAB(str) {
96419
- let start = 0;
96420
- let end = str.length;
96421
-
96422
- while (start < end) {
96423
- const code = str.charCodeAt(start);
96424
-
96425
- if (code !== 0x09 && code !== 0x20) {
96426
- break;
96427
- }
96428
-
96429
- start += 1;
96430
- }
96431
-
96432
- while (end > start) {
96433
- const code = str.charCodeAt(end - 1);
96434
-
96435
- if (code !== 0x09 && code !== 0x20) {
96436
- break;
96437
- }
96438
-
96439
- end -= 1;
96440
- }
96441
96658
 
96442
- return start === 0 && end === str.length ? str : str.slice(start, end);
96443
- }
96659
+ const $internals = Symbol('internals');
96444
96660
 
96445
96661
  function normalizeHeader(header) {
96446
96662
  return header && String(header).trim().toLowerCase();
96447
96663
  }
96448
96664
 
96449
- function sanitizeHeaderValue(str) {
96450
- return trimSPorHTAB(str.replace(INVALID_HEADER_VALUE_CHARS_RE, ''));
96451
- }
96452
-
96453
96665
  function normalizeValue(value) {
96454
96666
  if (value === false || value == null) {
96455
96667
  return value;
96456
96668
  }
96457
96669
 
96458
- return _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArray(value) ? value.map(normalizeValue) : sanitizeHeaderValue(String(value));
96670
+ return _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArray(value) ? value.map(normalizeValue) : (0,_helpers_sanitizeHeaderValue_js__WEBPACK_IMPORTED_MODULE_2__.sanitizeHeaderValue)(String(value));
96459
96671
  }
96460
96672
 
96461
96673
  function parseTokens(str) {
@@ -96506,6 +96718,9 @@ function buildAccessors(obj, header) {
96506
96718
 
96507
96719
  ['get', 'set', 'has'].forEach((methodName) => {
96508
96720
  Object.defineProperty(obj, methodName + accessorName, {
96721
+ // Null-proto descriptor so a polluted Object.prototype.get cannot turn
96722
+ // this data descriptor into an accessor descriptor on the way in.
96723
+ __proto__: null,
96509
96724
  value: function (arg1, arg2, arg3) {
96510
96725
  return this[methodName].call(this, header, arg1, arg2, arg3);
96511
96726
  },
@@ -96973,8 +97188,15 @@ function dispatchRequest(config) {
96973
97188
  function onAdapterResolution(response) {
96974
97189
  throwIfCancellationRequested(config);
96975
97190
 
96976
- // Transform response data
96977
- response.data = _transformData_js__WEBPACK_IMPORTED_MODULE_0__["default"].call(config, config.transformResponse, response);
97191
+ // Expose the current response on config so that transformResponse can
97192
+ // attach it to any AxiosError it throws (e.g. on JSON parse failure).
97193
+ // We clean it up afterwards to avoid polluting the config object.
97194
+ config.response = response;
97195
+ try {
97196
+ response.data = _transformData_js__WEBPACK_IMPORTED_MODULE_0__["default"].call(config, config.transformResponse, response);
97197
+ } finally {
97198
+ delete config.response;
97199
+ }
96978
97200
 
96979
97201
  response.headers = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_4__["default"].from(response.headers);
96980
97202
 
@@ -96986,11 +97208,16 @@ function dispatchRequest(config) {
96986
97208
 
96987
97209
  // Transform response data
96988
97210
  if (reason && reason.response) {
96989
- reason.response.data = _transformData_js__WEBPACK_IMPORTED_MODULE_0__["default"].call(
96990
- config,
96991
- config.transformResponse,
96992
- reason.response
96993
- );
97211
+ config.response = reason.response;
97212
+ try {
97213
+ reason.response.data = _transformData_js__WEBPACK_IMPORTED_MODULE_0__["default"].call(
97214
+ config,
97215
+ config.transformResponse,
97216
+ reason.response
97217
+ );
97218
+ } finally {
97219
+ delete config.response;
97220
+ }
96994
97221
  reason.response.headers = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_4__["default"].from(reason.response.headers);
96995
97222
  }
96996
97223
  }
@@ -97032,7 +97259,21 @@ const headersToObject = (thing) => (thing instanceof _AxiosHeaders_js__WEBPACK_I
97032
97259
  function mergeConfig(config1, config2) {
97033
97260
  // eslint-disable-next-line no-param-reassign
97034
97261
  config2 = config2 || {};
97035
- const config = {};
97262
+
97263
+ // Use a null-prototype object so that downstream reads such as `config.auth`
97264
+ // or `config.baseURL` cannot inherit polluted values from Object.prototype.
97265
+ // `hasOwnProperty` is restored as a non-enumerable own slot to preserve
97266
+ // ergonomics for user code that relies on it.
97267
+ const config = Object.create(null);
97268
+ Object.defineProperty(config, 'hasOwnProperty', {
97269
+ // Null-proto descriptor so a polluted Object.prototype.get cannot turn
97270
+ // this data descriptor into an accessor descriptor on the way in.
97271
+ __proto__: null,
97272
+ value: Object.prototype.hasOwnProperty,
97273
+ enumerable: false,
97274
+ writable: true,
97275
+ configurable: true,
97276
+ });
97036
97277
 
97037
97278
  function getMergedValue(target, source, prop, caseless) {
97038
97279
  if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isPlainObject(target) && _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isPlainObject(source)) {
@@ -97105,6 +97346,7 @@ function mergeConfig(config1, config2) {
97105
97346
  httpsAgent: defaultToConfig2,
97106
97347
  cancelToken: defaultToConfig2,
97107
97348
  socketPath: defaultToConfig2,
97349
+ allowedSocketPaths: defaultToConfig2,
97108
97350
  responseEncoding: defaultToConfig2,
97109
97351
  validateStatus: mergeDirectKeys,
97110
97352
  headers: (a, b, prop) =>
@@ -97153,17 +97395,13 @@ function settle(resolve, reject, response) {
97153
97395
  if (!response.status || !validateStatus || validateStatus(response.status)) {
97154
97396
  resolve(response);
97155
97397
  } else {
97156
- reject(
97157
- new _AxiosError_js__WEBPACK_IMPORTED_MODULE_0__["default"](
97158
- 'Request failed with status code ' + response.status,
97159
- [_AxiosError_js__WEBPACK_IMPORTED_MODULE_0__["default"].ERR_BAD_REQUEST, _AxiosError_js__WEBPACK_IMPORTED_MODULE_0__["default"].ERR_BAD_RESPONSE][
97160
- Math.floor(response.status / 100) - 4
97161
- ],
97162
- response.config,
97163
- response.request,
97164
- response
97165
- )
97166
- );
97398
+ reject(new _AxiosError_js__WEBPACK_IMPORTED_MODULE_0__["default"](
97399
+ 'Request failed with status code ' + response.status,
97400
+ response.status >= 400 && response.status < 500 ? _AxiosError_js__WEBPACK_IMPORTED_MODULE_0__["default"].ERR_BAD_REQUEST : _AxiosError_js__WEBPACK_IMPORTED_MODULE_0__["default"].ERR_BAD_RESPONSE,
97401
+ response.config,
97402
+ response.request,
97403
+ response
97404
+ ));
97167
97405
  }
97168
97406
  }
97169
97407
 
@@ -97400,7 +97638,7 @@ const defaults = {
97400
97638
  },
97401
97639
  };
97402
97640
 
97403
- _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {
97641
+ _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'query'], (method) => {
97404
97642
  defaults.headers[method] = {};
97405
97643
  });
97406
97644
 
@@ -97437,7 +97675,7 @@ __webpack_require__.r(__webpack_exports__);
97437
97675
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
97438
97676
  /* harmony export */ VERSION: () => (/* binding */ VERSION)
97439
97677
  /* harmony export */ });
97440
- const VERSION = "1.15.1";
97678
+ const VERSION = "1.16.1";
97441
97679
 
97442
97680
  /***/ },
97443
97681
 
@@ -97636,7 +97874,8 @@ function bind(fn, thisArg) {
97636
97874
  "use strict";
97637
97875
  __webpack_require__.r(__webpack_exports__);
97638
97876
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
97639
- /* harmony export */ "default": () => (/* binding */ buildURL)
97877
+ /* harmony export */ "default": () => (/* binding */ buildURL),
97878
+ /* harmony export */ encode: () => (/* binding */ encode)
97640
97879
  /* harmony export */ });
97641
97880
  /* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17275);
97642
97881
  /* harmony import */ var _helpers_AxiosURLSearchParams_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(95267);
@@ -97753,54 +97992,55 @@ __webpack_require__.r(__webpack_exports__);
97753
97992
 
97754
97993
 
97755
97994
  const composeSignals = (signals, timeout) => {
97756
- const { length } = (signals = signals ? signals.filter(Boolean) : []);
97757
-
97758
- if (timeout || length) {
97759
- let controller = new AbortController();
97760
-
97761
- let aborted;
97762
-
97763
- const onabort = function (reason) {
97764
- if (!aborted) {
97765
- aborted = true;
97766
- unsubscribe();
97767
- const err = reason instanceof Error ? reason : this.reason;
97768
- controller.abort(
97769
- err instanceof _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__["default"]
97770
- ? err
97771
- : new _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_0__["default"](err instanceof Error ? err.message : err)
97772
- );
97773
- }
97774
- };
97995
+ signals = signals ? signals.filter(Boolean) : [];
97775
97996
 
97776
- let timer =
97777
- timeout &&
97778
- setTimeout(() => {
97779
- timer = null;
97780
- onabort(new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__["default"](`timeout of ${timeout}ms exceeded`, _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__["default"].ETIMEDOUT));
97781
- }, timeout);
97782
-
97783
- const unsubscribe = () => {
97784
- if (signals) {
97785
- timer && clearTimeout(timer);
97786
- timer = null;
97787
- signals.forEach((signal) => {
97788
- signal.unsubscribe
97789
- ? signal.unsubscribe(onabort)
97790
- : signal.removeEventListener('abort', onabort);
97791
- });
97792
- signals = null;
97793
- }
97794
- };
97997
+ if (!timeout && !signals.length) {
97998
+ return;
97999
+ }
97795
98000
 
97796
- signals.forEach((signal) => signal.addEventListener('abort', onabort));
98001
+ const controller = new AbortController();
97797
98002
 
97798
- const { signal } = controller;
98003
+ let aborted = false;
97799
98004
 
97800
- signal.unsubscribe = () => _utils_js__WEBPACK_IMPORTED_MODULE_2__["default"].asap(unsubscribe);
98005
+ const onabort = function (reason) {
98006
+ if (!aborted) {
98007
+ aborted = true;
98008
+ unsubscribe();
98009
+ const err = reason instanceof Error ? reason : this.reason;
98010
+ controller.abort(
98011
+ err instanceof _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__["default"]
98012
+ ? err
98013
+ : new _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_0__["default"](err instanceof Error ? err.message : err)
98014
+ );
98015
+ }
98016
+ };
97801
98017
 
97802
- return signal;
97803
- }
98018
+ let timer =
98019
+ timeout &&
98020
+ setTimeout(() => {
98021
+ timer = null;
98022
+ onabort(new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__["default"](`timeout of ${timeout}ms exceeded`, _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__["default"].ETIMEDOUT));
98023
+ }, timeout);
98024
+
98025
+ const unsubscribe = () => {
98026
+ if (!signals) { return; }
98027
+ timer && clearTimeout(timer);
98028
+ timer = null;
98029
+ signals.forEach((signal) => {
98030
+ signal.unsubscribe
98031
+ ? signal.unsubscribe(onabort)
98032
+ : signal.removeEventListener('abort', onabort);
98033
+ });
98034
+ signals = null;
98035
+ };
98036
+
98037
+ signals.forEach((signal) => signal.addEventListener('abort', onabort));
98038
+
98039
+ const { signal } = controller;
98040
+
98041
+ signal.unsubscribe = () => _utils_js__WEBPACK_IMPORTED_MODULE_2__["default"].asap(unsubscribe);
98042
+
98043
+ return signal;
97804
98044
  };
97805
98045
 
97806
98046
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (composeSignals);
@@ -97850,8 +98090,20 @@ __webpack_require__.r(__webpack_exports__);
97850
98090
 
97851
98091
  read(name) {
97852
98092
  if (typeof document === 'undefined') return null;
97853
- const match = document.cookie.match(new RegExp('(?:^|; )' + name + '=([^;]*)'));
97854
- return match ? decodeURIComponent(match[1]) : null;
98093
+ // Match name=value by splitting on the semicolon separator instead of building a
98094
+ // RegExp from `name` — interpolating an unescaped string into a RegExp would let
98095
+ // metacharacters (e.g. `.+?` in an attacker-influenced cookie name) cause ReDoS or
98096
+ // match the wrong cookie. Browsers may serialize cookie pairs as either ";" or
98097
+ // "; ", so ignore optional whitespace before each cookie name.
98098
+ const cookies = document.cookie.split(';');
98099
+ for (let i = 0; i < cookies.length; i++) {
98100
+ const cookie = cookies[i].replace(/^\s+/, '');
98101
+ const eq = cookie.indexOf('=');
98102
+ if (eq !== -1 && cookie.slice(0, eq) === name) {
98103
+ return decodeURIComponent(cookie.slice(eq + 1));
98104
+ }
98105
+ }
98106
+ return null;
97855
98107
  },
97856
98108
 
97857
98109
  remove(name) {
@@ -97868,6 +98120,118 @@ __webpack_require__.r(__webpack_exports__);
97868
98120
  });
97869
98121
 
97870
98122
 
98123
+ /***/ },
98124
+
98125
+ /***/ 41526
98126
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
98127
+
98128
+ "use strict";
98129
+ __webpack_require__.r(__webpack_exports__);
98130
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
98131
+ /* harmony export */ "default": () => (/* binding */ estimateDataURLDecodedBytes)
98132
+ /* harmony export */ });
98133
+ /**
98134
+ * Estimate decoded byte length of a data:// URL *without* allocating large buffers.
98135
+ * - For base64: compute exact decoded size using length and padding;
98136
+ * handle %XX at the character-count level (no string allocation).
98137
+ * - For non-base64: use UTF-8 byteLength of the encoded body as a safe upper bound.
98138
+ *
98139
+ * @param {string} url
98140
+ * @returns {number}
98141
+ */
98142
+ function estimateDataURLDecodedBytes(url) {
98143
+ if (!url || typeof url !== 'string') return 0;
98144
+ if (!url.startsWith('data:')) return 0;
98145
+
98146
+ const comma = url.indexOf(',');
98147
+ if (comma < 0) return 0;
98148
+
98149
+ const meta = url.slice(5, comma);
98150
+ const body = url.slice(comma + 1);
98151
+ const isBase64 = /;base64/i.test(meta);
98152
+
98153
+ if (isBase64) {
98154
+ let effectiveLen = body.length;
98155
+ const len = body.length; // cache length
98156
+
98157
+ for (let i = 0; i < len; i++) {
98158
+ if (body.charCodeAt(i) === 37 /* '%' */ && i + 2 < len) {
98159
+ const a = body.charCodeAt(i + 1);
98160
+ const b = body.charCodeAt(i + 2);
98161
+ const isHex =
98162
+ ((a >= 48 && a <= 57) || (a >= 65 && a <= 70) || (a >= 97 && a <= 102)) &&
98163
+ ((b >= 48 && b <= 57) || (b >= 65 && b <= 70) || (b >= 97 && b <= 102));
98164
+
98165
+ if (isHex) {
98166
+ effectiveLen -= 2;
98167
+ i += 2;
98168
+ }
98169
+ }
98170
+ }
98171
+
98172
+ let pad = 0;
98173
+ let idx = len - 1;
98174
+
98175
+ const tailIsPct3D = (j) =>
98176
+ j >= 2 &&
98177
+ body.charCodeAt(j - 2) === 37 && // '%'
98178
+ body.charCodeAt(j - 1) === 51 && // '3'
98179
+ (body.charCodeAt(j) === 68 || body.charCodeAt(j) === 100); // 'D' or 'd'
98180
+
98181
+ if (idx >= 0) {
98182
+ if (body.charCodeAt(idx) === 61 /* '=' */) {
98183
+ pad++;
98184
+ idx--;
98185
+ } else if (tailIsPct3D(idx)) {
98186
+ pad++;
98187
+ idx -= 3;
98188
+ }
98189
+ }
98190
+
98191
+ if (pad === 1 && idx >= 0) {
98192
+ if (body.charCodeAt(idx) === 61 /* '=' */) {
98193
+ pad++;
98194
+ } else if (tailIsPct3D(idx)) {
98195
+ pad++;
98196
+ }
98197
+ }
98198
+
98199
+ const groups = Math.floor(effectiveLen / 4);
98200
+ const bytes = groups * 3 - (pad || 0);
98201
+ return bytes > 0 ? bytes : 0;
98202
+ }
98203
+
98204
+ if (typeof Buffer !== 'undefined' && typeof Buffer.byteLength === 'function') {
98205
+ return Buffer.byteLength(body, 'utf8');
98206
+ }
98207
+
98208
+ // Compute UTF-8 byte length directly from UTF-16 code units without allocating
98209
+ // a byte buffer (TextEncoder.encode would defeat the DoS guard on large bodies).
98210
+ // Using body.length here would undercount non-ASCII (e.g. '€' is 1 code unit
98211
+ // but 3 UTF-8 bytes).
98212
+ let bytes = 0;
98213
+ for (let i = 0, len = body.length; i < len; i++) {
98214
+ const c = body.charCodeAt(i);
98215
+ if (c < 0x80) {
98216
+ bytes += 1;
98217
+ } else if (c < 0x800) {
98218
+ bytes += 2;
98219
+ } else if (c >= 0xd800 && c <= 0xdbff && i + 1 < len) {
98220
+ const next = body.charCodeAt(i + 1);
98221
+ if (next >= 0xdc00 && next <= 0xdfff) {
98222
+ bytes += 4;
98223
+ i++;
98224
+ } else {
98225
+ bytes += 3;
98226
+ }
98227
+ } else {
98228
+ bytes += 3;
98229
+ }
98230
+ }
98231
+ return bytes;
98232
+ }
98233
+
98234
+
97871
98235
  /***/ },
97872
98236
 
97873
98237
  /***/ 77887
@@ -97949,7 +98313,7 @@ function formDataToJSON(formData) {
97949
98313
  return !isNumericKey;
97950
98314
  }
97951
98315
 
97952
- if (!target[name] || !_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isObject(target[name])) {
98316
+ if (!_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].hasOwnProp(target, name) || !_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isObject(target[name])) {
97953
98317
  target[name] = [];
97954
98318
  }
97955
98319
 
@@ -98175,7 +98539,7 @@ __webpack_require__.r(__webpack_exports__);
98175
98539
 
98176
98540
 
98177
98541
  function parseProtocol(url) {
98178
- const match = /^([-+\w]{1,25})(:?\/\/|:)/.exec(url);
98542
+ const match = /^([-+\w]{1,25}):(?:\/\/)?/.exec(url);
98179
98543
  return (match && match[1]) || '';
98180
98544
  }
98181
98545
 
@@ -98204,6 +98568,9 @@ const progressEventReducer = (listener, isDownloadStream, freq = 3) => {
98204
98568
  const _speedometer = (0,_speedometer_js__WEBPACK_IMPORTED_MODULE_0__["default"])(50, 250);
98205
98569
 
98206
98570
  return (0,_throttle_js__WEBPACK_IMPORTED_MODULE_1__["default"])((e) => {
98571
+ if (!e || typeof e.loaded !== 'number') {
98572
+ return;
98573
+ }
98207
98574
  const rawLoaded = e.loaded;
98208
98575
  const total = e.lengthComputable ? e.total : undefined;
98209
98576
  const loaded = total != null ? Math.min(rawLoaded, total) : rawLoaded;
@@ -98275,15 +98642,55 @@ __webpack_require__.r(__webpack_exports__);
98275
98642
 
98276
98643
 
98277
98644
 
98645
+ const FORM_DATA_CONTENT_HEADERS = ['content-type', 'content-length'];
98646
+
98647
+ function setFormDataHeaders(headers, formHeaders, policy) {
98648
+ if (policy !== 'content-only') {
98649
+ headers.set(formHeaders);
98650
+ return;
98651
+ }
98652
+
98653
+ Object.entries(formHeaders).forEach(([key, val]) => {
98654
+ if (FORM_DATA_CONTENT_HEADERS.includes(key.toLowerCase())) {
98655
+ headers.set(key, val);
98656
+ }
98657
+ });
98658
+ }
98659
+
98660
+ /**
98661
+ * Encode a UTF-8 string to a Latin-1 byte string for use with btoa().
98662
+ * This is a modern replacement for the deprecated unescape(encodeURIComponent(str)) pattern.
98663
+ *
98664
+ * @param {string} str The string to encode
98665
+ *
98666
+ * @returns {string} UTF-8 bytes as a Latin-1 string
98667
+ */
98668
+ const encodeUTF8 = (str) =>
98669
+ encodeURIComponent(str).replace(/%([0-9A-F]{2})/gi, (_, hex) =>
98670
+ String.fromCharCode(parseInt(hex, 16))
98671
+ );
98672
+
98278
98673
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((config) => {
98279
98674
  const newConfig = (0,_core_mergeConfig_js__WEBPACK_IMPORTED_MODULE_5__["default"])({}, config);
98280
98675
 
98281
- let { data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth } = newConfig;
98676
+ // Read only own properties to prevent prototype pollution gadgets
98677
+ // (e.g. Object.prototype.baseURL = 'https://evil.com').
98678
+ const own = (key) => (_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].hasOwnProp(newConfig, key) ? newConfig[key] : undefined);
98679
+
98680
+ const data = own('data');
98681
+ let withXSRFToken = own('withXSRFToken');
98682
+ const xsrfHeaderName = own('xsrfHeaderName');
98683
+ const xsrfCookieName = own('xsrfCookieName');
98684
+ let headers = own('headers');
98685
+ const auth = own('auth');
98686
+ const baseURL = own('baseURL');
98687
+ const allowAbsoluteUrls = own('allowAbsoluteUrls');
98688
+ const url = own('url');
98282
98689
 
98283
98690
  newConfig.headers = headers = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_6__["default"].from(headers);
98284
98691
 
98285
98692
  newConfig.url = (0,_buildURL_js__WEBPACK_IMPORTED_MODULE_7__["default"])(
98286
- (0,_core_buildFullPath_js__WEBPACK_IMPORTED_MODULE_4__["default"])(newConfig.baseURL, newConfig.url, newConfig.allowAbsoluteUrls),
98693
+ (0,_core_buildFullPath_js__WEBPACK_IMPORTED_MODULE_4__["default"])(baseURL, url, allowAbsoluteUrls),
98287
98694
  config.params,
98288
98695
  config.paramsSerializer
98289
98696
  );
@@ -98293,11 +98700,7 @@ __webpack_require__.r(__webpack_exports__);
98293
98700
  headers.set(
98294
98701
  'Authorization',
98295
98702
  'Basic ' +
98296
- btoa(
98297
- (auth.username || '') +
98298
- ':' +
98299
- (auth.password ? unescape(encodeURIComponent(auth.password)) : '')
98300
- )
98703
+ btoa((auth.username || '') + ':' + (auth.password ? encodeUTF8(auth.password) : ''))
98301
98704
  );
98302
98705
  }
98303
98706
 
@@ -98306,14 +98709,7 @@ __webpack_require__.r(__webpack_exports__);
98306
98709
  headers.setContentType(undefined); // browser handles it
98307
98710
  } else if (_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isFunction(data.getHeaders)) {
98308
98711
  // Node.js FormData (like form-data package)
98309
- const formHeaders = data.getHeaders();
98310
- // Only set safe headers to avoid overwriting security headers
98311
- const allowedHeaders = ['content-type', 'content-length'];
98312
- Object.entries(formHeaders).forEach(([key, val]) => {
98313
- if (allowedHeaders.includes(key.toLowerCase())) {
98314
- headers.set(key, val);
98315
- }
98316
- });
98712
+ setFormDataHeaders(headers, data.getHeaders(), own('formDataHeaderPolicy'));
98317
98713
  }
98318
98714
  }
98319
98715
 
@@ -98328,10 +98724,9 @@ __webpack_require__.r(__webpack_exports__);
98328
98724
 
98329
98725
  // Strict boolean check — prevents proto-pollution gadgets (e.g. Object.prototype.withXSRFToken = 1)
98330
98726
  // and misconfigurations (e.g. "false") from short-circuiting the same-origin check and leaking
98331
- // the XSRF token cross-origin. See GHSA-xx6v-rp6x-q39c.
98727
+ // the XSRF token cross-origin.
98332
98728
  const shouldSendXSRF =
98333
- withXSRFToken === true ||
98334
- (withXSRFToken == null && (0,_isURLSameOrigin_js__WEBPACK_IMPORTED_MODULE_2__["default"])(newConfig.url));
98729
+ withXSRFToken === true || (withXSRFToken == null && (0,_isURLSameOrigin_js__WEBPACK_IMPORTED_MODULE_2__["default"])(newConfig.url));
98335
98730
 
98336
98731
  if (shouldSendXSRF) {
98337
98732
  const xsrfValue = xsrfHeaderName && xsrfCookieName && _cookies_js__WEBPACK_IMPORTED_MODULE_3__["default"].read(xsrfCookieName);
@@ -98347,6 +98742,81 @@ __webpack_require__.r(__webpack_exports__);
98347
98742
  (Object.getOwnPropertyDescriptor(__WEBPACK_DEFAULT_EXPORT__, "name") || {}).writable || Object.defineProperty(__WEBPACK_DEFAULT_EXPORT__, "name", { value: "default", configurable: true });
98348
98743
 
98349
98744
 
98745
+ /***/ },
98746
+
98747
+ /***/ 68267
98748
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
98749
+
98750
+ "use strict";
98751
+ __webpack_require__.r(__webpack_exports__);
98752
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
98753
+ /* harmony export */ sanitizeByteStringHeaderValue: () => (/* binding */ sanitizeByteStringHeaderValue),
98754
+ /* harmony export */ sanitizeHeaderValue: () => (/* binding */ sanitizeHeaderValue),
98755
+ /* harmony export */ toByteStringHeaderObject: () => (/* binding */ toByteStringHeaderObject)
98756
+ /* harmony export */ });
98757
+ /* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17275);
98758
+
98759
+
98760
+
98761
+
98762
+ function trimSPorHTAB(str) {
98763
+ let start = 0;
98764
+ let end = str.length;
98765
+
98766
+ while (start < end) {
98767
+ const code = str.charCodeAt(start);
98768
+
98769
+ if (code !== 0x09 && code !== 0x20) {
98770
+ break;
98771
+ }
98772
+
98773
+ start += 1;
98774
+ }
98775
+
98776
+ while (end > start) {
98777
+ const code = str.charCodeAt(end - 1);
98778
+
98779
+ if (code !== 0x09 && code !== 0x20) {
98780
+ break;
98781
+ }
98782
+
98783
+ end -= 1;
98784
+ }
98785
+
98786
+ return start === 0 && end === str.length ? str : str.slice(start, end);
98787
+ }
98788
+
98789
+ // The control-code ranges are intentional: header sanitization strips C0/DEL bytes.
98790
+ // eslint-disable-next-line no-control-regex
98791
+ const INVALID_UNICODE_HEADER_VALUE_CHARS = new RegExp('[\\u0000-\\u0008\\u000a-\\u001f\\u007f]+', 'g');
98792
+ // eslint-disable-next-line no-control-regex
98793
+ const INVALID_BYTE_STRING_HEADER_VALUE_CHARS = new RegExp('[^\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+', 'g');
98794
+
98795
+ function sanitizeValue(value, invalidChars) {
98796
+ if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArray(value)) {
98797
+ return value.map((item) => sanitizeValue(item, invalidChars));
98798
+ }
98799
+
98800
+ return trimSPorHTAB(String(value).replace(invalidChars, ''));
98801
+ }
98802
+
98803
+ const sanitizeHeaderValue = (value) =>
98804
+ sanitizeValue(value, INVALID_UNICODE_HEADER_VALUE_CHARS);
98805
+
98806
+ const sanitizeByteStringHeaderValue = (value) =>
98807
+ sanitizeValue(value, INVALID_BYTE_STRING_HEADER_VALUE_CHARS);
98808
+
98809
+ function toByteStringHeaderObject(headers) {
98810
+ const byteStringHeaders = Object.create(null);
98811
+
98812
+ _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(headers.toJSON(), (value, header) => {
98813
+ byteStringHeaders[header] = sanitizeByteStringHeaderValue(value);
98814
+ });
98815
+
98816
+ return byteStringHeaders;
98817
+ }
98818
+
98819
+
98350
98820
  /***/ },
98351
98821
 
98352
98822
  /***/ 93873
@@ -99011,7 +99481,9 @@ function assertOptions(options, schema, allowUnknown) {
99011
99481
  let i = keys.length;
99012
99482
  while (i-- > 0) {
99013
99483
  const opt = keys[i];
99014
- const validator = schema[opt];
99484
+ // Use hasOwnProperty so a polluted Object.prototype.<opt> cannot supply
99485
+ // a non-function validator and cause a TypeError.
99486
+ const validator = Object.prototype.hasOwnProperty.call(schema, opt) ? schema[opt] : undefined;
99015
99487
  if (validator) {
99016
99488
  const value = options[opt];
99017
99489
  const result = value === undefined || validator(value, opt, options);
@@ -99398,21 +99870,21 @@ const isFile = kindOfTest('File');
99398
99870
  * also have a `name` and `type` attribute to specify filename and content type
99399
99871
  *
99400
99872
  * @see https://github.com/facebook/react-native/blob/26684cf3adf4094eb6c405d345a75bf8c7c0bf88/Libraries/Network/FormData.js#L68-L71
99401
- *
99873
+ *
99402
99874
  * @param {*} value The value to test
99403
- *
99875
+ *
99404
99876
  * @returns {boolean} True if value is a React Native Blob, otherwise false
99405
99877
  */
99406
99878
  const isReactNativeBlob = (value) => {
99407
99879
  return !!(value && typeof value.uri !== 'undefined');
99408
- }
99880
+ };
99409
99881
 
99410
99882
  /**
99411
99883
  * Determine if environment is React Native
99412
99884
  * ReactNative `FormData` has a non-standard `getParts()` method
99413
- *
99885
+ *
99414
99886
  * @param {*} formData The formData to test
99415
- *
99887
+ *
99416
99888
  * @returns {boolean} True if environment is React Native, otherwise false
99417
99889
  */
99418
99890
  const isReactNative = (formData) => formData && typeof formData.getParts !== 'undefined';
@@ -99431,7 +99903,7 @@ const isBlob = kindOfTest('Blob');
99431
99903
  *
99432
99904
  * @param {*} val The value to test
99433
99905
  *
99434
- * @returns {boolean} True if value is a File, otherwise false
99906
+ * @returns {boolean} True if value is a FileList, otherwise false
99435
99907
  */
99436
99908
  const isFileList = kindOfTest('FileList');
99437
99909
 
@@ -99465,14 +99937,16 @@ const FormDataCtor = typeof G.FormData !== 'undefined' ? G.FormData : undefined;
99465
99937
  const isFormData = (thing) => {
99466
99938
  if (!thing) return false;
99467
99939
  if (FormDataCtor && thing instanceof FormDataCtor) return true;
99468
- // Reject plain objects inheriting directly from Object.prototype so prototype-pollution gadgets can't spoof FormData (GHSA-6chq-wfr3-2hj9).
99940
+ // Reject plain objects inheriting directly from Object.prototype so prototype-pollution gadgets can't spoof FormData.
99469
99941
  const proto = getPrototypeOf(thing);
99470
99942
  if (!proto || proto === Object.prototype) return false;
99471
99943
  if (!isFunction(thing.append)) return false;
99472
99944
  const kind = kindOf(thing);
99473
- return kind === 'formdata' ||
99945
+ return (
99946
+ kind === 'formdata' ||
99474
99947
  // detect form-data instance
99475
- (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]');
99948
+ (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')
99949
+ );
99476
99950
  };
99477
99951
 
99478
99952
  /**
@@ -99607,7 +100081,7 @@ const isContextDefined = (context) => !isUndefined(context) && context !== _glob
99607
100081
  *
99608
100082
  * @returns {Object} Result of all merge properties
99609
100083
  */
99610
- function merge(/* obj1, obj2, obj3, ... */) {
100084
+ function merge(...objs) {
99611
100085
  const { caseless, skipUndefined } = (isContextDefined(this) && this) || {};
99612
100086
  const result = {};
99613
100087
  const assignValue = (val, key) => {
@@ -99617,8 +100091,12 @@ function merge(/* obj1, obj2, obj3, ... */) {
99617
100091
  }
99618
100092
 
99619
100093
  const targetKey = (caseless && findKey(result, key)) || key;
99620
- if (isPlainObject(result[targetKey]) && isPlainObject(val)) {
99621
- result[targetKey] = merge(result[targetKey], val);
100094
+ // Read via own-prop only — a bare `result[targetKey]` walks the prototype
100095
+ // chain, so a polluted Object.prototype value could surface here and get
100096
+ // copied into the merged result.
100097
+ const existing = hasOwnProperty(result, targetKey) ? result[targetKey] : undefined;
100098
+ if (isPlainObject(existing) && isPlainObject(val)) {
100099
+ result[targetKey] = merge(existing, val);
99622
100100
  } else if (isPlainObject(val)) {
99623
100101
  result[targetKey] = merge({}, val);
99624
100102
  } else if (isArray(val)) {
@@ -99628,8 +100106,8 @@ function merge(/* obj1, obj2, obj3, ... */) {
99628
100106
  }
99629
100107
  };
99630
100108
 
99631
- for (let i = 0, l = arguments.length; i < l; i++) {
99632
- arguments[i] && forEach(arguments[i], assignValue);
100109
+ for (let i = 0, l = objs.length; i < l; i++) {
100110
+ objs[i] && forEach(objs[i], assignValue);
99633
100111
  }
99634
100112
  return result;
99635
100113
  }
@@ -99651,6 +100129,9 @@ const extend = (a, b, thisArg, { allOwnKeys } = {}) => {
99651
100129
  (val, key) => {
99652
100130
  if (thisArg && isFunction(val)) {
99653
100131
  Object.defineProperty(a, key, {
100132
+ // Null-proto descriptor so a polluted Object.prototype.get cannot
100133
+ // hijack defineProperty's accessor-vs-data resolution.
100134
+ __proto__: null,
99654
100135
  value: (0,_helpers_bind_js__WEBPACK_IMPORTED_MODULE_0__["default"])(val, thisArg),
99655
100136
  writable: true,
99656
100137
  enumerable: true,
@@ -99658,6 +100139,7 @@ const extend = (a, b, thisArg, { allOwnKeys } = {}) => {
99658
100139
  });
99659
100140
  } else {
99660
100141
  Object.defineProperty(a, key, {
100142
+ __proto__: null,
99661
100143
  value: val,
99662
100144
  writable: true,
99663
100145
  enumerable: true,
@@ -99696,12 +100178,14 @@ const stripBOM = (content) => {
99696
100178
  const inherits = (constructor, superConstructor, props, descriptors) => {
99697
100179
  constructor.prototype = Object.create(superConstructor.prototype, descriptors);
99698
100180
  Object.defineProperty(constructor.prototype, 'constructor', {
100181
+ __proto__: null,
99699
100182
  value: constructor,
99700
100183
  writable: true,
99701
100184
  enumerable: false,
99702
100185
  configurable: true,
99703
100186
  });
99704
100187
  Object.defineProperty(constructor, 'super', {
100188
+ __proto__: null,
99705
100189
  value: superConstructor.prototype,
99706
100190
  });
99707
100191
  props && Object.assign(constructor.prototype, props);
@@ -99883,7 +100367,7 @@ const reduceDescriptors = (obj, reducer) => {
99883
100367
  const freezeMethods = (obj) => {
99884
100368
  reduceDescriptors(obj, (descriptor, name) => {
99885
100369
  // skip restricted props in strict mode
99886
- if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {
100370
+ if (isFunction(obj) && ['arguments', 'caller', 'callee'].includes(name)) {
99887
100371
  return false;
99888
100372
  }
99889
100373
 
@@ -99957,11 +100441,11 @@ function isSpecCompliantForm(thing) {
99957
100441
  * @returns {Object} The JSON-compatible object.
99958
100442
  */
99959
100443
  const toJSONObject = (obj) => {
99960
- const stack = new Array(10);
100444
+ const visited = new WeakSet();
99961
100445
 
99962
- const visit = (source, i) => {
100446
+ const visit = (source) => {
99963
100447
  if (isObject(source)) {
99964
- if (stack.indexOf(source) >= 0) {
100448
+ if (visited.has(source)) {
99965
100449
  return;
99966
100450
  }
99967
100451
 
@@ -99971,15 +100455,16 @@ const toJSONObject = (obj) => {
99971
100455
  }
99972
100456
 
99973
100457
  if (!('toJSON' in source)) {
99974
- stack[i] = source;
100458
+ // add-on descent / delete-on-ascent: preserves path semantics, so DAG nodes serialise at every occurrence (see #7230).
100459
+ visited.add(source);
99975
100460
  const target = isArray(source) ? [] : {};
99976
100461
 
99977
100462
  forEach(source, (value, key) => {
99978
- const reducedValue = visit(value, i + 1);
100463
+ const reducedValue = visit(value);
99979
100464
  !isUndefined(reducedValue) && (target[key] = reducedValue);
99980
100465
  });
99981
100466
 
99982
- stack[i] = undefined;
100467
+ visited.delete(source);
99983
100468
 
99984
100469
  return target;
99985
100470
  }
@@ -99988,7 +100473,7 @@ const toJSONObject = (obj) => {
99988
100473
  return source;
99989
100474
  };
99990
100475
 
99991
- return visit(obj, 0);
100476
+ return visit(obj);
99992
100477
  };
99993
100478
 
99994
100479
  /**