@speclynx/apidom-overlay 4.9.0 → 4.10.0

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.
@@ -519,6 +519,300 @@ class TraceBuilder {
519
519
 
520
520
  /***/ },
521
521
 
522
+ /***/ 15145
523
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
524
+
525
+ "use strict";
526
+ __webpack_require__.r(__webpack_exports__);
527
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
528
+ /* harmony export */ diff: () => (/* binding */ diff)
529
+ /* harmony export */ });
530
+ /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(25162);
531
+ /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(28121);
532
+ /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(52560);
533
+ /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(97601);
534
+ /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(97071);
535
+ /* harmony import */ var _speclynx_apidom_json_path__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(84637);
536
+ /* harmony import */ var _speclynx_apidom_ns_overlay_1__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(35937);
537
+ /* harmony import */ var _speclynx_apidom_ns_overlay_1__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(39505);
538
+ /* harmony import */ var _errors_OverlayError_ts__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(18436);
539
+
540
+
541
+
542
+
543
+
544
+ /**
545
+ * @public
546
+ */
547
+
548
+ const defaultDiffOptions = {
549
+ overlay: '1.1.0',
550
+ info: {
551
+ title: 'API diff',
552
+ version: '0.0.0'
553
+ }
554
+ };
555
+ const createUpdateAction = (segments, value) => {
556
+ const action = new _speclynx_apidom_ns_overlay_1__WEBPACK_IMPORTED_MODULE_6__.ActionElement();
557
+ action.target = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__["default"](_speclynx_apidom_json_path__WEBPACK_IMPORTED_MODULE_5__.NormalizedPath.from(segments));
558
+ action.update = value;
559
+ return action;
560
+ };
561
+ const createRemoveAction = segments => {
562
+ const action = new _speclynx_apidom_ns_overlay_1__WEBPACK_IMPORTED_MODULE_6__.ActionElement();
563
+ action.target = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__["default"](_speclynx_apidom_json_path__WEBPACK_IMPORTED_MODULE_5__.NormalizedPath.from(segments));
564
+ action.removeField = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"](true);
565
+ return action;
566
+ };
567
+ const diffElements = (left, right, segments, actions) => {
568
+ if (left.equals(right)) return;
569
+ const leftKind = left.primitive();
570
+ const rightKind = right.primitive();
571
+ if (leftKind !== rightKind) {
572
+ if (segments.length === 0) {
573
+ throw new _errors_OverlayError_ts__WEBPACK_IMPORTED_MODULE_8__["default"]('Cannot diff documents with incompatible root types');
574
+ }
575
+ // structural type change: remove old, re-add new via parent update.
576
+ // only reachable from diffObjects — segments tail is always a string key
577
+ actions.push(createRemoveAction(segments));
578
+ const key = segments[segments.length - 1];
579
+ const wrapper = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_4__["default"]();
580
+ wrapper.set(key, right);
581
+ actions.push(createUpdateAction(segments.slice(0, -1), wrapper));
582
+ return;
583
+ }
584
+ if ((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.isObjectElement)(left) && (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.isObjectElement)(right)) {
585
+ diffObjects(left, right, segments, actions);
586
+ return;
587
+ }
588
+ if ((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.isArrayElement)(left) && (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.isArrayElement)(right)) {
589
+ diffArrays(left, right, segments, actions);
590
+ return;
591
+ }
592
+
593
+ // primitive value changed
594
+ actions.push(createUpdateAction(segments, right));
595
+ };
596
+ const diffObjects = (left, right, segments, actions) => {
597
+ const leftKeys = new Set(left.keys());
598
+ const rightKeys = new Set(right.keys());
599
+
600
+ // removed keys
601
+ for (const key of leftKeys) {
602
+ if (!rightKeys.has(key)) {
603
+ actions.push(createRemoveAction([...segments, key]));
604
+ }
605
+ }
606
+
607
+ // added keys — batched into a single parent update to minimize action count
608
+ const added = [];
609
+ for (const key of rightKeys) {
610
+ if (!leftKeys.has(key)) added.push(key);
611
+ }
612
+ if (added.length > 0) {
613
+ const patch = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_4__["default"]();
614
+ for (const key of added) {
615
+ patch.set(key, right.get(key));
616
+ }
617
+ actions.push(createUpdateAction(segments, patch));
618
+ }
619
+
620
+ // common keys — recurse into changed values
621
+ for (const key of leftKeys) {
622
+ if (!rightKeys.has(key)) continue;
623
+ diffElements(left.get(key), right.get(key), [...segments, key], actions);
624
+ }
625
+ };
626
+ const diffArrays = (left, right, segments, actions) => {
627
+ const leftLen = left.length;
628
+ const rightLen = right.length;
629
+ const minLen = Math.min(leftLen, rightLen);
630
+ for (let i = 0; i < minLen; i++) {
631
+ const leftItem = left.get(i);
632
+ const rightItem = right.get(i);
633
+ if (leftItem.equals(rightItem)) continue;
634
+ if (leftItem.primitive() !== rightItem.primitive()) {
635
+ // structural type change at index i — reconstruct tail:
636
+ // remove from end down to i (reverse order preserves index stability),
637
+ // then batch-append right[i..] as a single ArrayElement (Overlay concat semantics)
638
+ for (let j = leftLen - 1; j >= i; j--) {
639
+ actions.push(createRemoveAction([...segments, j]));
640
+ }
641
+ const tail = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__["default"]();
642
+ for (let j = i; j < rightLen; j++) {
643
+ tail.push(right.get(j));
644
+ }
645
+ actions.push(createUpdateAction(segments, tail));
646
+ return;
647
+ }
648
+ diffElements(leftItem, rightItem, [...segments, i], actions);
649
+ }
650
+
651
+ // right is longer — batch all new items into a single ArrayElement update.
652
+ // wrapping is required: applyUpdateAction uses deepmerge(array, array) for array targets,
653
+ // so the update value must be an ArrayElement to trigger concat semantics.
654
+ if (leftLen < rightLen) {
655
+ const tail = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__["default"]();
656
+ for (let i = leftLen; i < rightLen; i++) {
657
+ tail.push(right.get(i));
658
+ }
659
+ actions.push(createUpdateAction(segments, tail));
660
+ }
661
+
662
+ // left is longer — remove trailing items in reverse order for index stability
663
+ for (let i = leftLen - 1; i >= rightLen; i--) {
664
+ actions.push(createRemoveAction([...segments, i]));
665
+ }
666
+ };
667
+
668
+ /**
669
+ * Produces an {@link Overlay1Element} that, when applied to `leftElement`, yields `rightElement`.
670
+ *
671
+ * Known limitations:
672
+ * - Identical documents produce an overlay with an empty `actions` array. Overlay 1.1.0 §3
673
+ * requires `actions` to be non-empty; callers should guard against the no-diff case.
674
+ * - Root-level structural type change (e.g. object root → array root) throws {@link OverlayError}
675
+ * because Overlay has no mechanism to replace the root node.
676
+ * - Array insert-at-position is not supported by Overlay 1.x; positional diffing cascades
677
+ * replaces and appends, which is always correct but may be verbose for large reorderings.
678
+ * - Array items with a structural type change are handled via tail-reconstruct
679
+ * (remove tail + re-append from right), producing more actions than a minimal diff.
680
+ * - The overlay carries no "before" value, so it cannot be reversed without the original document.
681
+ * - Action `update` values reference elements from `rightElement` directly. Mutating `rightElement`
682
+ * after calling `diff` will affect the returned overlay.
683
+ *
684
+ * @public
685
+ */
686
+ const diff = (leftElement, rightElement, options = {}) => {
687
+ const overlayVersion = options.overlay ?? defaultDiffOptions.overlay;
688
+ const infoTitle = options.info?.title ?? defaultDiffOptions.info.title;
689
+ const infoVersion = options.info?.version ?? defaultDiffOptions.info.version;
690
+ const infoDescription = options.info?.description;
691
+ const actions = [];
692
+ diffElements(leftElement, rightElement, [], actions);
693
+ if (actions.length === 0 && options.onEmptyDiff === 'throw') {
694
+ throw new _errors_OverlayError_ts__WEBPACK_IMPORTED_MODULE_8__["default"]('Diff produced no actions: documents are identical');
695
+ }
696
+ const overlay = new _speclynx_apidom_ns_overlay_1__WEBPACK_IMPORTED_MODULE_6__.Overlay1Element();
697
+ overlay.overlay = new _speclynx_apidom_ns_overlay_1__WEBPACK_IMPORTED_MODULE_6__.OverlayElement(overlayVersion);
698
+ const info = new _speclynx_apidom_ns_overlay_1__WEBPACK_IMPORTED_MODULE_6__.InfoElement();
699
+ info.title = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__["default"](infoTitle);
700
+ info.version = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__["default"](infoVersion);
701
+ if (infoDescription !== undefined) {
702
+ info.description = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__["default"](infoDescription);
703
+ }
704
+ overlay.info = info;
705
+ if (options.extends !== undefined) {
706
+ overlay.extends = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__["default"](options.extends);
707
+ }
708
+ overlay.actions = new _speclynx_apidom_ns_overlay_1__WEBPACK_IMPORTED_MODULE_7__["default"](actions);
709
+ return overlay;
710
+ };
711
+
712
+ /***/ },
713
+
714
+ /***/ 72587
715
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
716
+
717
+ "use strict";
718
+ __webpack_require__.r(__webpack_exports__);
719
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
720
+ /* harmony export */ diff: () => (/* binding */ diff)
721
+ /* harmony export */ });
722
+ /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(10404);
723
+ /* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(44673);
724
+ /* harmony import */ var _apidom_ts__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(15145);
725
+
726
+
727
+
728
+
729
+ /**
730
+ * Computes the diff between two plain JavaScript objects and returns an Overlay document
731
+ * as a plain JavaScript object.
732
+ *
733
+ * @public
734
+ */
735
+ const diff = (left, right, options) => (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_1__["default"])((0,_apidom_ts__WEBPACK_IMPORTED_MODULE_2__.diff)((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.refract)(left), (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.refract)(right), options));
736
+
737
+ /***/ },
738
+
739
+ /***/ 8423
740
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
741
+
742
+ "use strict";
743
+ __webpack_require__.r(__webpack_exports__);
744
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
745
+ /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
746
+ /* harmony export */ defaultOptions: () => (/* binding */ defaultOptions)
747
+ /* harmony export */ });
748
+ /* harmony import */ var _speclynx_apidom_reference__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(29807);
749
+ /* harmony import */ var _apidom_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15145);
750
+ /* harmony import */ var _errors_OverlayError_ts__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(18436);
751
+
752
+
753
+
754
+
755
+ /**
756
+ * @public
757
+ */
758
+
759
+ // intentionally omits overlay-json-1/overlay-yaml-1 parser opts present in apply/realms/uri.ts
760
+ // because diff inputs are regular API documents, not overlay documents
761
+ const defaultReferenceOptions = {
762
+ parse: {
763
+ parserOpts: {
764
+ strict: false
765
+ }
766
+ },
767
+ resolve: {
768
+ resolverOpts: {
769
+ fileAllowList: ['*']
770
+ }
771
+ }
772
+ };
773
+
774
+ /**
775
+ * @public
776
+ */
777
+ const defaultOptions = {
778
+ reference: defaultReferenceOptions
779
+ };
780
+
781
+ /**
782
+ * Computes the diff between two API documents identified by URIs and returns
783
+ * an {@link Overlay1Element} that, when applied to the left document, yields the right.
784
+ *
785
+ * When `options.extends` is not provided, it is automatically set to `leftURI`
786
+ * so the generated overlay can be applied back to the original document.
787
+ *
788
+ * @param leftURI - URI to the base (source) document
789
+ * @param rightURI - URI to the target (changed) document
790
+ * @param options - diff options; reference options live under `options.reference`
791
+ * @returns Overlay1Element representing the diff
792
+ *
793
+ * @public
794
+ */
795
+ const diff = async (leftURI, rightURI, options = defaultOptions) => {
796
+ const mergedRefOptions = (0,_speclynx_apidom_reference__WEBPACK_IMPORTED_MODULE_0__.mergeOptions)(defaultReferenceOptions, options.reference ?? {});
797
+ const [leftParseResult, rightParseResult] = await Promise.all([(0,_speclynx_apidom_reference__WEBPACK_IMPORTED_MODULE_0__.parse)(leftURI, mergedRefOptions), (0,_speclynx_apidom_reference__WEBPACK_IMPORTED_MODULE_0__.parse)(rightURI, mergedRefOptions)]);
798
+ const leftElement = leftParseResult.api;
799
+ const rightElement = rightParseResult.api;
800
+ if (leftElement == null) {
801
+ throw new _errors_OverlayError_ts__WEBPACK_IMPORTED_MODULE_2__["default"](`Failed to parse document "${leftURI}"`);
802
+ }
803
+ if (rightElement == null) {
804
+ throw new _errors_OverlayError_ts__WEBPACK_IMPORTED_MODULE_2__["default"](`Failed to parse document "${rightURI}"`);
805
+ }
806
+ const diffOptions = {
807
+ ...options,
808
+ extends: options.extends ?? leftURI
809
+ };
810
+ return (0,_apidom_ts__WEBPACK_IMPORTED_MODULE_1__.diff)(leftElement, rightElement, diffOptions);
811
+ };
812
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (diff);
813
+
814
+ /***/ },
815
+
522
816
  /***/ 18436
523
817
  (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
524
818
 
@@ -12774,11 +13068,13 @@ const knownAdapters = {
12774
13068
  _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(knownAdapters, (fn, value) => {
12775
13069
  if (fn) {
12776
13070
  try {
12777
- Object.defineProperty(fn, 'name', { value });
13071
+ // Null-proto descriptors so a polluted Object.prototype.get cannot turn
13072
+ // these data descriptors into accessor descriptors on the way in.
13073
+ Object.defineProperty(fn, 'name', { __proto__: null, value });
12778
13074
  } catch (e) {
12779
13075
  // eslint-disable-next-line no-empty
12780
13076
  }
12781
- Object.defineProperty(fn, 'adapterName', { value });
13077
+ Object.defineProperty(fn, 'adapterName', { __proto__: null, value });
12782
13078
  }
12783
13079
  });
12784
13080
 
@@ -12899,6 +13195,8 @@ __webpack_require__.r(__webpack_exports__);
12899
13195
  /* harmony import */ var _helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(79194);
12900
13196
  /* harmony import */ var _helpers_resolveConfig_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(28451);
12901
13197
  /* harmony import */ var _core_settle_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(40788);
13198
+ /* harmony import */ var _helpers_estimateDataURLDecodedBytes_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(879);
13199
+ /* harmony import */ var _env_data_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(18679);
12902
13200
 
12903
13201
 
12904
13202
 
@@ -12909,16 +13207,11 @@ __webpack_require__.r(__webpack_exports__);
12909
13207
 
12910
13208
 
12911
13209
 
12912
- const DEFAULT_CHUNK_SIZE = 64 * 1024;
12913
13210
 
12914
- const { isFunction } = _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"];
12915
13211
 
12916
- const globalFetchAPI = (({ Request, Response }) => ({
12917
- Request,
12918
- Response,
12919
- }))(_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].global);
13212
+ const DEFAULT_CHUNK_SIZE = 64 * 1024;
12920
13213
 
12921
- const { ReadableStream, TextEncoder } = _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].global;
13214
+ const { isFunction } = _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"];
12922
13215
 
12923
13216
  const test = (fn, ...args) => {
12924
13217
  try {
@@ -12929,11 +13222,17 @@ const test = (fn, ...args) => {
12929
13222
  };
12930
13223
 
12931
13224
  const factory = (env) => {
13225
+ const globalObject = _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].global ?? globalThis;
13226
+ const { ReadableStream, TextEncoder } = globalObject;
13227
+
12932
13228
  env = _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].merge.call(
12933
13229
  {
12934
13230
  skipUndefined: true,
12935
13231
  },
12936
- globalFetchAPI,
13232
+ {
13233
+ Request: globalObject.Request,
13234
+ Response: globalObject.Response,
13235
+ },
12937
13236
  env
12938
13237
  );
12939
13238
 
@@ -12963,18 +13262,20 @@ const factory = (env) => {
12963
13262
  test(() => {
12964
13263
  let duplexAccessed = false;
12965
13264
 
12966
- const body = new ReadableStream();
12967
-
12968
- const hasContentType = new Request(_platform_index_js__WEBPACK_IMPORTED_MODULE_0__["default"].origin, {
12969
- body,
13265
+ const request = new Request(_platform_index_js__WEBPACK_IMPORTED_MODULE_0__["default"].origin, {
13266
+ body: new ReadableStream(),
12970
13267
  method: 'POST',
12971
13268
  get duplex() {
12972
13269
  duplexAccessed = true;
12973
13270
  return 'half';
12974
13271
  },
12975
- }).headers.has('Content-Type');
13272
+ });
12976
13273
 
12977
- body.cancel();
13274
+ const hasContentType = request.headers.has('Content-Type');
13275
+
13276
+ if (request.body != null) {
13277
+ request.body.cancel();
13278
+ }
12978
13279
 
12979
13280
  return duplexAccessed && !hasContentType;
12980
13281
  });
@@ -13058,8 +13359,13 @@ const factory = (env) => {
13058
13359
  headers,
13059
13360
  withCredentials = 'same-origin',
13060
13361
  fetchOptions,
13362
+ maxContentLength,
13363
+ maxBodyLength,
13061
13364
  } = (0,_helpers_resolveConfig_js__WEBPACK_IMPORTED_MODULE_7__["default"])(config);
13062
13365
 
13366
+ const hasMaxContentLength = _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isNumber(maxContentLength) && maxContentLength > -1;
13367
+ const hasMaxBodyLength = _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isNumber(maxBodyLength) && maxBodyLength > -1;
13368
+
13063
13369
  let _fetch = envFetch || fetch;
13064
13370
 
13065
13371
  responseType = responseType ? (responseType + '').toLowerCase() : 'text';
@@ -13081,6 +13387,41 @@ const factory = (env) => {
13081
13387
  let requestContentLength;
13082
13388
 
13083
13389
  try {
13390
+ // Enforce maxContentLength for data: URLs up-front so we never materialize
13391
+ // an oversized payload. The HTTP adapter applies the same check (see http.js
13392
+ // "if (protocol === 'data:')" branch).
13393
+ if (hasMaxContentLength && typeof url === 'string' && url.startsWith('data:')) {
13394
+ const estimated = (0,_helpers_estimateDataURLDecodedBytes_js__WEBPACK_IMPORTED_MODULE_9__["default"])(url);
13395
+ if (estimated > maxContentLength) {
13396
+ throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__["default"](
13397
+ 'maxContentLength size of ' + maxContentLength + ' exceeded',
13398
+ _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__["default"].ERR_BAD_RESPONSE,
13399
+ config,
13400
+ request
13401
+ );
13402
+ }
13403
+ }
13404
+
13405
+ // Enforce maxBodyLength against the outbound request body before dispatch.
13406
+ // Mirrors http.js behavior (ERR_BAD_REQUEST / 'Request body larger than
13407
+ // maxBodyLength limit'). Skip when the body length cannot be determined
13408
+ // (e.g. a live ReadableStream supplied by the caller).
13409
+ if (hasMaxBodyLength && method !== 'get' && method !== 'head') {
13410
+ const outboundLength = await resolveBodyLength(headers, data);
13411
+ if (
13412
+ typeof outboundLength === 'number' &&
13413
+ isFinite(outboundLength) &&
13414
+ outboundLength > maxBodyLength
13415
+ ) {
13416
+ throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__["default"](
13417
+ 'Request body larger than maxBodyLength limit',
13418
+ _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__["default"].ERR_BAD_REQUEST,
13419
+ config,
13420
+ request
13421
+ );
13422
+ }
13423
+ }
13424
+
13084
13425
  if (
13085
13426
  onUploadProgress &&
13086
13427
  supportsRequestStream &&
@@ -13118,6 +13459,22 @@ const factory = (env) => {
13118
13459
  // see https://github.com/cloudflare/workerd/issues/902
13119
13460
  const isCredentialsSupported = isRequestSupported && 'credentials' in Request.prototype;
13120
13461
 
13462
+ // If data is FormData and Content-Type is multipart/form-data without boundary,
13463
+ // delete it so fetch can set it correctly with the boundary
13464
+ if (_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isFormData(data)) {
13465
+ const contentType = headers.getContentType();
13466
+ if (
13467
+ contentType &&
13468
+ /^multipart\/form-data/i.test(contentType) &&
13469
+ !/boundary=/i.test(contentType)
13470
+ ) {
13471
+ headers.delete('content-type');
13472
+ }
13473
+ }
13474
+
13475
+ // Set User-Agent header if not already set (fetch defaults to 'node' in Node.js)
13476
+ headers.set('User-Agent', 'axios/' + _env_data_js__WEBPACK_IMPORTED_MODULE_10__.VERSION, false);
13477
+
13121
13478
  const resolvedOptions = {
13122
13479
  ...fetchOptions,
13123
13480
  signal: composedSignal,
@@ -13134,10 +13491,28 @@ const factory = (env) => {
13134
13491
  ? _fetch(request, fetchOptions)
13135
13492
  : _fetch(url, resolvedOptions));
13136
13493
 
13494
+ // Cheap pre-check: if the server honestly declares a content-length that
13495
+ // already exceeds the cap, reject before we start streaming.
13496
+ if (hasMaxContentLength) {
13497
+ const declaredLength = _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].toFiniteNumber(response.headers.get('content-length'));
13498
+ if (declaredLength != null && declaredLength > maxContentLength) {
13499
+ throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__["default"](
13500
+ 'maxContentLength size of ' + maxContentLength + ' exceeded',
13501
+ _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__["default"].ERR_BAD_RESPONSE,
13502
+ config,
13503
+ request
13504
+ );
13505
+ }
13506
+ }
13507
+
13137
13508
  const isStreamResponse =
13138
13509
  supportsResponseStream && (responseType === 'stream' || responseType === 'response');
13139
13510
 
13140
- if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {
13511
+ if (
13512
+ supportsResponseStream &&
13513
+ response.body &&
13514
+ (onDownloadProgress || hasMaxContentLength || (isStreamResponse && unsubscribe))
13515
+ ) {
13141
13516
  const options = {};
13142
13517
 
13143
13518
  ['status', 'statusText', 'headers'].forEach((prop) => {
@@ -13154,8 +13529,24 @@ const factory = (env) => {
13154
13529
  )) ||
13155
13530
  [];
13156
13531
 
13532
+ let bytesRead = 0;
13533
+ const onChunkProgress = (loadedBytes) => {
13534
+ if (hasMaxContentLength) {
13535
+ bytesRead = loadedBytes;
13536
+ if (bytesRead > maxContentLength) {
13537
+ throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__["default"](
13538
+ 'maxContentLength size of ' + maxContentLength + ' exceeded',
13539
+ _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__["default"].ERR_BAD_RESPONSE,
13540
+ config,
13541
+ request
13542
+ );
13543
+ }
13544
+ }
13545
+ onProgress && onProgress(loadedBytes);
13546
+ };
13547
+
13157
13548
  response = new Response(
13158
- (0,_helpers_trackStream_js__WEBPACK_IMPORTED_MODULE_4__.trackStream)(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {
13549
+ (0,_helpers_trackStream_js__WEBPACK_IMPORTED_MODULE_4__.trackStream)(response.body, DEFAULT_CHUNK_SIZE, onChunkProgress, () => {
13159
13550
  flush && flush();
13160
13551
  unsubscribe && unsubscribe();
13161
13552
  }),
@@ -13170,6 +13561,33 @@ const factory = (env) => {
13170
13561
  config
13171
13562
  );
13172
13563
 
13564
+ // Fallback enforcement for environments without ReadableStream support
13565
+ // (legacy runtimes). Detect materialized size from typed output; skip
13566
+ // streams/Response passthrough since the user will read those themselves.
13567
+ if (hasMaxContentLength && !supportsResponseStream && !isStreamResponse) {
13568
+ let materializedSize;
13569
+ if (responseData != null) {
13570
+ if (typeof responseData.byteLength === 'number') {
13571
+ materializedSize = responseData.byteLength;
13572
+ } else if (typeof responseData.size === 'number') {
13573
+ materializedSize = responseData.size;
13574
+ } else if (typeof responseData === 'string') {
13575
+ materializedSize =
13576
+ typeof TextEncoder === 'function'
13577
+ ? new TextEncoder().encode(responseData).byteLength
13578
+ : responseData.length;
13579
+ }
13580
+ }
13581
+ if (typeof materializedSize === 'number' && materializedSize > maxContentLength) {
13582
+ throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__["default"](
13583
+ 'maxContentLength size of ' + maxContentLength + ' exceeded',
13584
+ _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__["default"].ERR_BAD_RESPONSE,
13585
+ config,
13586
+ request
13587
+ );
13588
+ }
13589
+ }
13590
+
13173
13591
  !isStreamResponse && unsubscribe && unsubscribe();
13174
13592
 
13175
13593
  return await new Promise((resolve, reject) => {
@@ -13185,6 +13603,17 @@ const factory = (env) => {
13185
13603
  } catch (err) {
13186
13604
  unsubscribe && unsubscribe();
13187
13605
 
13606
+ // Safari can surface fetch aborts as a DOMException-like object whose
13607
+ // branded getters throw. Prefer our composed signal reason before reading
13608
+ // the caught error, preserving timeout vs cancellation semantics.
13609
+ if (composedSignal && composedSignal.aborted && composedSignal.reason instanceof _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__["default"]) {
13610
+ const canceledError = composedSignal.reason;
13611
+ canceledError.config = config;
13612
+ request && (canceledError.request = request);
13613
+ err !== canceledError && (canceledError.cause = err);
13614
+ throw canceledError;
13615
+ }
13616
+
13188
13617
  if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) {
13189
13618
  throw Object.assign(
13190
13619
  new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__["default"](
@@ -13348,7 +13777,7 @@ const isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';
13348
13777
  // will return status as 0 even though it's a successful request
13349
13778
  if (
13350
13779
  request.status === 0 &&
13351
- !(request.responseURL && request.responseURL.indexOf('file:') === 0)
13780
+ !(request.responseURL && request.responseURL.startsWith('file:'))
13352
13781
  ) {
13353
13782
  return;
13354
13783
  }
@@ -13365,6 +13794,7 @@ const isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';
13365
13794
  }
13366
13795
 
13367
13796
  reject(new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__["default"]('Request aborted', _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__["default"].ECONNABORTED, config, request));
13797
+ done();
13368
13798
 
13369
13799
  // Clean up request
13370
13800
  request = null;
@@ -13380,6 +13810,7 @@ const isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';
13380
13810
  // attach the underlying event for consumers who want details
13381
13811
  err.event = event || null;
13382
13812
  reject(err);
13813
+ done();
13383
13814
  request = null;
13384
13815
  };
13385
13816
 
@@ -13400,6 +13831,7 @@ const isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';
13400
13831
  request
13401
13832
  )
13402
13833
  );
13834
+ done();
13403
13835
 
13404
13836
  // Clean up request
13405
13837
  request = null;
@@ -13449,6 +13881,7 @@ const isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';
13449
13881
  }
13450
13882
  reject(!cancel || cancel.type ? new _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_4__["default"](null, config, request) : cancel);
13451
13883
  request.abort();
13884
+ done();
13452
13885
  request = null;
13453
13886
  };
13454
13887
 
@@ -13462,7 +13895,7 @@ const isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';
13462
13895
 
13463
13896
  const protocol = (0,_helpers_parseProtocol_js__WEBPACK_IMPORTED_MODULE_5__["default"])(_config.url);
13464
13897
 
13465
- if (protocol && _platform_index_js__WEBPACK_IMPORTED_MODULE_6__["default"].protocols.indexOf(protocol) === -1) {
13898
+ if (protocol && !_platform_index_js__WEBPACK_IMPORTED_MODULE_6__["default"].protocols.includes(protocol)) {
13466
13899
  reject(
13467
13900
  new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__["default"](
13468
13901
  'Unsupported protocol ' + protocol + ':',
@@ -13966,7 +14399,7 @@ class Axios {
13966
14399
  let contextHeaders = headers && _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].merge(headers.common, headers[config.method]);
13967
14400
 
13968
14401
  headers &&
13969
- _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], (method) => {
14402
+ _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'query', 'common'], (method) => {
13970
14403
  delete headers[method];
13971
14404
  });
13972
14405
 
@@ -14069,7 +14502,7 @@ _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(['delete', 'get', 'hea
14069
14502
  };
14070
14503
  });
14071
14504
 
14072
- _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {
14505
+ _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(['post', 'put', 'patch', 'query'], function forEachMethodWithData(method) {
14073
14506
  function generateHTTPMethod(isForm) {
14074
14507
  return function httpMethod(url, data, config) {
14075
14508
  return this.request(
@@ -14089,7 +14522,11 @@ _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(['post', 'put', 'patch
14089
14522
 
14090
14523
  Axios.prototype[method] = generateHTTPMethod();
14091
14524
 
14092
- Axios.prototype[method + 'Form'] = generateHTTPMethod(true);
14525
+ // QUERY is a safe/idempotent read method; multipart form bodies don't fit
14526
+ // its semantics, so no queryForm shorthand is generated.
14527
+ if (method !== 'query') {
14528
+ Axios.prototype[method + 'Form'] = generateHTTPMethod(true);
14529
+ }
14093
14530
  });
14094
14531
 
14095
14532
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Axios);
@@ -14106,9 +14543,80 @@ __webpack_require__.r(__webpack_exports__);
14106
14543
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
14107
14544
  /* harmony export */ });
14108
14545
  /* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(68750);
14546
+ /* harmony import */ var _AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(76487);
14547
+
14548
+
14549
+
14550
+
14109
14551
 
14552
+ const REDACTED = '[REDACTED ****]';
14553
+
14554
+ function hasOwnOrPrototypeToJSON(source) {
14555
+ if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].hasOwnProp(source, 'toJSON')) {
14556
+ return true;
14557
+ }
14558
+
14559
+ let prototype = Object.getPrototypeOf(source);
14560
+
14561
+ while (prototype && prototype !== Object.prototype) {
14562
+ if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].hasOwnProp(prototype, 'toJSON')) {
14563
+ return true;
14564
+ }
14565
+
14566
+ prototype = Object.getPrototypeOf(prototype);
14567
+ }
14568
+
14569
+ return false;
14570
+ }
14110
14571
 
14572
+ // Build a plain-object snapshot of `config` and replace the value of any key
14573
+ // (case-insensitive) listed in `redactKeys` with REDACTED. Walks through arrays
14574
+ // and AxiosHeaders, and short-circuits on circular references.
14575
+ function redactConfig(config, redactKeys) {
14576
+ const lowerKeys = new Set(redactKeys.map((k) => String(k).toLowerCase()));
14577
+ const seen = [];
14111
14578
 
14579
+ const visit = (source) => {
14580
+ if (source === null || typeof source !== 'object') return source;
14581
+ if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isBuffer(source)) return source;
14582
+ if (seen.indexOf(source) !== -1) return undefined;
14583
+
14584
+ if (source instanceof _AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__["default"]) {
14585
+ source = source.toJSON();
14586
+ }
14587
+
14588
+ seen.push(source);
14589
+
14590
+ let result;
14591
+ if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArray(source)) {
14592
+ result = [];
14593
+ source.forEach((v, i) => {
14594
+ const reducedValue = visit(v);
14595
+ if (!_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isUndefined(reducedValue)) {
14596
+ result[i] = reducedValue;
14597
+ }
14598
+ });
14599
+ } else {
14600
+ if (!_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isPlainObject(source) && hasOwnOrPrototypeToJSON(source)) {
14601
+ seen.pop();
14602
+ return source;
14603
+ }
14604
+
14605
+ result = Object.create(null);
14606
+ for (const [key, value] of Object.entries(source)) {
14607
+ const reducedValue = lowerKeys.has(key.toLowerCase()) ? REDACTED : visit(value);
14608
+ if (!_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isUndefined(reducedValue)) {
14609
+ result[key] = reducedValue;
14610
+ }
14611
+ }
14612
+ }
14613
+
14614
+ seen.pop();
14615
+ return result;
14616
+ };
14617
+
14618
+ return visit(config);
14619
+ }
14112
14620
 
14113
14621
  class AxiosError extends Error {
14114
14622
  static from(error, code, config, request, response, customProps) {
@@ -14125,42 +14633,56 @@ class AxiosError extends Error {
14125
14633
  return axiosError;
14126
14634
  }
14127
14635
 
14128
- /**
14129
- * Create an Error with the specified message, config, error code, request and response.
14130
- *
14131
- * @param {string} message The error message.
14132
- * @param {string} [code] The error code (for example, 'ECONNABORTED').
14133
- * @param {Object} [config] The config.
14134
- * @param {Object} [request] The request.
14135
- * @param {Object} [response] The response.
14136
- *
14137
- * @returns {Error} The created error.
14138
- */
14139
- constructor(message, code, config, request, response) {
14140
- super(message);
14141
-
14142
- // Make message enumerable to maintain backward compatibility
14143
- // The native Error constructor sets message as non-enumerable,
14144
- // but axios < v1.13.3 had it as enumerable
14145
- Object.defineProperty(this, 'message', {
14146
- value: message,
14147
- enumerable: true,
14148
- writable: true,
14149
- configurable: true
14150
- });
14151
-
14152
- this.name = 'AxiosError';
14153
- this.isAxiosError = true;
14154
- code && (this.code = code);
14155
- config && (this.config = config);
14156
- request && (this.request = request);
14157
- if (response) {
14158
- this.response = response;
14159
- this.status = response.status;
14160
- }
14636
+ /**
14637
+ * Create an Error with the specified message, config, error code, request and response.
14638
+ *
14639
+ * @param {string} message The error message.
14640
+ * @param {string} [code] The error code (for example, 'ECONNABORTED').
14641
+ * @param {Object} [config] The config.
14642
+ * @param {Object} [request] The request.
14643
+ * @param {Object} [response] The response.
14644
+ *
14645
+ * @returns {Error} The created error.
14646
+ */
14647
+ constructor(message, code, config, request, response) {
14648
+ super(message);
14649
+
14650
+ // Make message enumerable to maintain backward compatibility
14651
+ // The native Error constructor sets message as non-enumerable,
14652
+ // but axios < v1.13.3 had it as enumerable
14653
+ Object.defineProperty(this, 'message', {
14654
+ // Null-proto descriptor so a polluted Object.prototype.get cannot turn
14655
+ // this data descriptor into an accessor descriptor on the way in.
14656
+ __proto__: null,
14657
+ value: message,
14658
+ enumerable: true,
14659
+ writable: true,
14660
+ configurable: true,
14661
+ });
14662
+
14663
+ this.name = 'AxiosError';
14664
+ this.isAxiosError = true;
14665
+ code && (this.code = code);
14666
+ config && (this.config = config);
14667
+ request && (this.request = request);
14668
+ if (response) {
14669
+ this.response = response;
14670
+ this.status = response.status;
14161
14671
  }
14672
+ }
14162
14673
 
14163
14674
  toJSON() {
14675
+ // Opt-in redaction: when the request config carries a `redact` array, the
14676
+ // value of any matching key (case-insensitive, at any depth) is replaced
14677
+ // with REDACTED in the serialized snapshot. Undefined or empty leaves the
14678
+ // existing serialization behavior unchanged.
14679
+ const config = this.config;
14680
+ const redactKeys = config && _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].hasOwnProp(config, 'redact') ? config.redact : undefined;
14681
+ const serializedConfig =
14682
+ _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArray(redactKeys) && redactKeys.length > 0
14683
+ ? redactConfig(config, redactKeys)
14684
+ : _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].toJSONObject(config);
14685
+
14164
14686
  return {
14165
14687
  // Standard
14166
14688
  message: this.message,
@@ -14174,7 +14696,7 @@ class AxiosError extends Error {
14174
14696
  columnNumber: this.columnNumber,
14175
14697
  stack: this.stack,
14176
14698
  // Axios
14177
- config: _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].toJSONObject(this.config),
14699
+ config: serializedConfig,
14178
14700
  code: this.code,
14179
14701
  status: this.status,
14180
14702
  };
@@ -14186,6 +14708,7 @@ AxiosError.ERR_BAD_OPTION_VALUE = 'ERR_BAD_OPTION_VALUE';
14186
14708
  AxiosError.ERR_BAD_OPTION = 'ERR_BAD_OPTION';
14187
14709
  AxiosError.ECONNABORTED = 'ECONNABORTED';
14188
14710
  AxiosError.ETIMEDOUT = 'ETIMEDOUT';
14711
+ AxiosError.ECONNREFUSED = 'ECONNREFUSED';
14189
14712
  AxiosError.ERR_NETWORK = 'ERR_NETWORK';
14190
14713
  AxiosError.ERR_FR_TOO_MANY_REDIRECTS = 'ERR_FR_TOO_MANY_REDIRECTS';
14191
14714
  AxiosError.ERR_DEPRECATED = 'ERR_DEPRECATED';
@@ -14194,6 +14717,7 @@ AxiosError.ERR_BAD_REQUEST = 'ERR_BAD_REQUEST';
14194
14717
  AxiosError.ERR_CANCELED = 'ERR_CANCELED';
14195
14718
  AxiosError.ERR_NOT_SUPPORT = 'ERR_NOT_SUPPORT';
14196
14719
  AxiosError.ERR_INVALID_URL = 'ERR_INVALID_URL';
14720
+ AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED = 'ERR_FORM_DATA_DEPTH_EXCEEDED';
14197
14721
 
14198
14722
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (AxiosError);
14199
14723
 
@@ -14217,41 +14741,41 @@ __webpack_require__.r(__webpack_exports__);
14217
14741
 
14218
14742
  const $internals = Symbol('internals');
14219
14743
 
14220
- const isValidHeaderValue = (value) => !/[\r\n]/.test(value);
14744
+ const INVALID_HEADER_VALUE_CHARS_RE = /[^\x09\x20-\x7E\x80-\xFF]/g;
14221
14745
 
14222
- function assertValidHeaderValue(value, header) {
14223
- if (value === false || value == null) {
14224
- return;
14225
- }
14226
-
14227
- if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArray(value)) {
14228
- value.forEach((v) => assertValidHeaderValue(v, header));
14229
- return;
14230
- }
14746
+ function trimSPorHTAB(str) {
14747
+ let start = 0;
14748
+ let end = str.length;
14231
14749
 
14232
- if (!isValidHeaderValue(String(value))) {
14233
- throw new Error(`Invalid character in header content ["${header}"]`);
14234
- }
14235
- }
14750
+ while (start < end) {
14751
+ const code = str.charCodeAt(start);
14236
14752
 
14237
- function normalizeHeader(header) {
14238
- return header && String(header).trim().toLowerCase();
14239
- }
14753
+ if (code !== 0x09 && code !== 0x20) {
14754
+ break;
14755
+ }
14240
14756
 
14241
- function stripTrailingCRLF(str) {
14242
- let end = str.length;
14757
+ start += 1;
14758
+ }
14243
14759
 
14244
- while (end > 0) {
14245
- const charCode = str.charCodeAt(end - 1);
14760
+ while (end > start) {
14761
+ const code = str.charCodeAt(end - 1);
14246
14762
 
14247
- if (charCode !== 10 && charCode !== 13) {
14763
+ if (code !== 0x09 && code !== 0x20) {
14248
14764
  break;
14249
14765
  }
14250
14766
 
14251
14767
  end -= 1;
14252
14768
  }
14253
14769
 
14254
- return end === str.length ? str : str.slice(0, end);
14770
+ return start === 0 && end === str.length ? str : str.slice(start, end);
14771
+ }
14772
+
14773
+ function normalizeHeader(header) {
14774
+ return header && String(header).trim().toLowerCase();
14775
+ }
14776
+
14777
+ function sanitizeHeaderValue(str) {
14778
+ return trimSPorHTAB(str.replace(INVALID_HEADER_VALUE_CHARS_RE, ''));
14255
14779
  }
14256
14780
 
14257
14781
  function normalizeValue(value) {
@@ -14259,7 +14783,7 @@ function normalizeValue(value) {
14259
14783
  return value;
14260
14784
  }
14261
14785
 
14262
- return _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArray(value) ? value.map(normalizeValue) : stripTrailingCRLF(String(value));
14786
+ return _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArray(value) ? value.map(normalizeValue) : sanitizeHeaderValue(String(value));
14263
14787
  }
14264
14788
 
14265
14789
  function parseTokens(str) {
@@ -14310,6 +14834,9 @@ function buildAccessors(obj, header) {
14310
14834
 
14311
14835
  ['get', 'set', 'has'].forEach((methodName) => {
14312
14836
  Object.defineProperty(obj, methodName + accessorName, {
14837
+ // Null-proto descriptor so a polluted Object.prototype.get cannot turn
14838
+ // this data descriptor into an accessor descriptor on the way in.
14839
+ __proto__: null,
14313
14840
  value: function (arg1, arg2, arg3) {
14314
14841
  return this[methodName].call(this, header, arg1, arg2, arg3);
14315
14842
  },
@@ -14341,7 +14868,6 @@ class AxiosHeaders {
14341
14868
  _rewrite === true ||
14342
14869
  (_rewrite === undefined && self[key] !== false)
14343
14870
  ) {
14344
- assertValidHeaderValue(_value, _header);
14345
14871
  self[key || _header] = normalizeValue(_value);
14346
14872
  }
14347
14873
  }
@@ -14704,7 +15230,7 @@ __webpack_require__.r(__webpack_exports__);
14704
15230
  */
14705
15231
  function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {
14706
15232
  let isRelativeUrl = !(0,_helpers_isAbsoluteURL_js__WEBPACK_IMPORTED_MODULE_0__["default"])(requestedURL);
14707
- if (baseURL && (isRelativeUrl || allowAbsoluteUrls == false)) {
15233
+ if (baseURL && (isRelativeUrl || allowAbsoluteUrls === false)) {
14708
15234
  return (0,_helpers_combineURLs_js__WEBPACK_IMPORTED_MODULE_1__["default"])(baseURL, requestedURL);
14709
15235
  }
14710
15236
  return requestedURL;
@@ -14778,8 +15304,15 @@ function dispatchRequest(config) {
14778
15304
  function onAdapterResolution(response) {
14779
15305
  throwIfCancellationRequested(config);
14780
15306
 
14781
- // Transform response data
14782
- response.data = _transformData_js__WEBPACK_IMPORTED_MODULE_0__["default"].call(config, config.transformResponse, response);
15307
+ // Expose the current response on config so that transformResponse can
15308
+ // attach it to any AxiosError it throws (e.g. on JSON parse failure).
15309
+ // We clean it up afterwards to avoid polluting the config object.
15310
+ config.response = response;
15311
+ try {
15312
+ response.data = _transformData_js__WEBPACK_IMPORTED_MODULE_0__["default"].call(config, config.transformResponse, response);
15313
+ } finally {
15314
+ delete config.response;
15315
+ }
14783
15316
 
14784
15317
  response.headers = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_4__["default"].from(response.headers);
14785
15318
 
@@ -14791,11 +15324,16 @@ function dispatchRequest(config) {
14791
15324
 
14792
15325
  // Transform response data
14793
15326
  if (reason && reason.response) {
14794
- reason.response.data = _transformData_js__WEBPACK_IMPORTED_MODULE_0__["default"].call(
14795
- config,
14796
- config.transformResponse,
14797
- reason.response
14798
- );
15327
+ config.response = reason.response;
15328
+ try {
15329
+ reason.response.data = _transformData_js__WEBPACK_IMPORTED_MODULE_0__["default"].call(
15330
+ config,
15331
+ config.transformResponse,
15332
+ reason.response
15333
+ );
15334
+ } finally {
15335
+ delete config.response;
15336
+ }
14799
15337
  reason.response.headers = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_4__["default"].from(reason.response.headers);
14800
15338
  }
14801
15339
  }
@@ -14837,7 +15375,21 @@ const headersToObject = (thing) => (thing instanceof _AxiosHeaders_js__WEBPACK_I
14837
15375
  function mergeConfig(config1, config2) {
14838
15376
  // eslint-disable-next-line no-param-reassign
14839
15377
  config2 = config2 || {};
14840
- const config = {};
15378
+
15379
+ // Use a null-prototype object so that downstream reads such as `config.auth`
15380
+ // or `config.baseURL` cannot inherit polluted values from Object.prototype.
15381
+ // `hasOwnProperty` is restored as a non-enumerable own slot to preserve
15382
+ // ergonomics for user code that relies on it.
15383
+ const config = Object.create(null);
15384
+ Object.defineProperty(config, 'hasOwnProperty', {
15385
+ // Null-proto descriptor so a polluted Object.prototype.get cannot turn
15386
+ // this data descriptor into an accessor descriptor on the way in.
15387
+ __proto__: null,
15388
+ value: Object.prototype.hasOwnProperty,
15389
+ enumerable: false,
15390
+ writable: true,
15391
+ configurable: true,
15392
+ });
14841
15393
 
14842
15394
  function getMergedValue(target, source, prop, caseless) {
14843
15395
  if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isPlainObject(target) && _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isPlainObject(source)) {
@@ -14876,9 +15428,9 @@ function mergeConfig(config1, config2) {
14876
15428
 
14877
15429
  // eslint-disable-next-line consistent-return
14878
15430
  function mergeDirectKeys(a, b, prop) {
14879
- if (prop in config2) {
15431
+ if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].hasOwnProp(config2, prop)) {
14880
15432
  return getMergedValue(a, b);
14881
- } else if (prop in config1) {
15433
+ } else if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].hasOwnProp(config1, prop)) {
14882
15434
  return getMergedValue(undefined, a);
14883
15435
  }
14884
15436
  }
@@ -14910,6 +15462,7 @@ function mergeConfig(config1, config2) {
14910
15462
  httpsAgent: defaultToConfig2,
14911
15463
  cancelToken: defaultToConfig2,
14912
15464
  socketPath: defaultToConfig2,
15465
+ allowedSocketPaths: defaultToConfig2,
14913
15466
  responseEncoding: defaultToConfig2,
14914
15467
  validateStatus: mergeDirectKeys,
14915
15468
  headers: (a, b, prop) =>
@@ -14919,7 +15472,9 @@ function mergeConfig(config1, config2) {
14919
15472
  _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(Object.keys({ ...config1, ...config2 }), function computeConfigValue(prop) {
14920
15473
  if (prop === '__proto__' || prop === 'constructor' || prop === 'prototype') return;
14921
15474
  const merge = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].hasOwnProp(mergeMap, prop) ? mergeMap[prop] : mergeDeepProperties;
14922
- const configValue = merge(config1[prop], config2[prop], prop);
15475
+ const a = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].hasOwnProp(config1, prop) ? config1[prop] : undefined;
15476
+ const b = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].hasOwnProp(config2, prop) ? config2[prop] : undefined;
15477
+ const configValue = merge(a, b, prop);
14923
15478
  (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);
14924
15479
  });
14925
15480
 
@@ -14956,17 +15511,13 @@ function settle(resolve, reject, response) {
14956
15511
  if (!response.status || !validateStatus || validateStatus(response.status)) {
14957
15512
  resolve(response);
14958
15513
  } else {
14959
- reject(
14960
- new _AxiosError_js__WEBPACK_IMPORTED_MODULE_0__["default"](
14961
- 'Request failed with status code ' + response.status,
14962
- [_AxiosError_js__WEBPACK_IMPORTED_MODULE_0__["default"].ERR_BAD_REQUEST, _AxiosError_js__WEBPACK_IMPORTED_MODULE_0__["default"].ERR_BAD_RESPONSE][
14963
- Math.floor(response.status / 100) - 4
14964
- ],
14965
- response.config,
14966
- response.request,
14967
- response
14968
- )
14969
- );
15514
+ reject(new _AxiosError_js__WEBPACK_IMPORTED_MODULE_0__["default"](
15515
+ 'Request failed with status code ' + response.status,
15516
+ 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,
15517
+ response.config,
15518
+ response.request,
15519
+ response
15520
+ ));
14970
15521
  }
14971
15522
  }
14972
15523
 
@@ -15041,6 +15592,8 @@ __webpack_require__.r(__webpack_exports__);
15041
15592
 
15042
15593
 
15043
15594
 
15595
+ const own = (obj, key) => (obj != null && _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].hasOwnProp(obj, key) ? obj[key] : undefined);
15596
+
15044
15597
  /**
15045
15598
  * It takes a string, tries to parse it, and if it fails, it returns the stringified version
15046
15599
  * of the input
@@ -15108,20 +15661,22 @@ const defaults = {
15108
15661
  let isFileList;
15109
15662
 
15110
15663
  if (isObjectPayload) {
15664
+ const formSerializer = own(this, 'formSerializer');
15111
15665
  if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {
15112
- return (0,_helpers_toURLEncodedForm_js__WEBPACK_IMPORTED_MODULE_4__["default"])(data, this.formSerializer).toString();
15666
+ return (0,_helpers_toURLEncodedForm_js__WEBPACK_IMPORTED_MODULE_4__["default"])(data, formSerializer).toString();
15113
15667
  }
15114
15668
 
15115
15669
  if (
15116
15670
  (isFileList = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isFileList(data)) ||
15117
15671
  contentType.indexOf('multipart/form-data') > -1
15118
15672
  ) {
15119
- const _FormData = this.env && this.env.FormData;
15673
+ const env = own(this, 'env');
15674
+ const _FormData = env && env.FormData;
15120
15675
 
15121
15676
  return (0,_helpers_toFormData_js__WEBPACK_IMPORTED_MODULE_3__["default"])(
15122
15677
  isFileList ? { 'files[]': data } : data,
15123
15678
  _FormData && new _FormData(),
15124
- this.formSerializer
15679
+ formSerializer
15125
15680
  );
15126
15681
  }
15127
15682
  }
@@ -15137,9 +15692,10 @@ const defaults = {
15137
15692
 
15138
15693
  transformResponse: [
15139
15694
  function transformResponse(data) {
15140
- const transitional = this.transitional || defaults.transitional;
15695
+ const transitional = own(this, 'transitional') || defaults.transitional;
15141
15696
  const forcedJSONParsing = transitional && transitional.forcedJSONParsing;
15142
- const JSONRequested = this.responseType === 'json';
15697
+ const responseType = own(this, 'responseType');
15698
+ const JSONRequested = responseType === 'json';
15143
15699
 
15144
15700
  if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isResponse(data) || _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isReadableStream(data)) {
15145
15701
  return data;
@@ -15148,17 +15704,17 @@ const defaults = {
15148
15704
  if (
15149
15705
  data &&
15150
15706
  _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isString(data) &&
15151
- ((forcedJSONParsing && !this.responseType) || JSONRequested)
15707
+ ((forcedJSONParsing && !responseType) || JSONRequested)
15152
15708
  ) {
15153
15709
  const silentJSONParsing = transitional && transitional.silentJSONParsing;
15154
15710
  const strictJSONParsing = !silentJSONParsing && JSONRequested;
15155
15711
 
15156
15712
  try {
15157
- return JSON.parse(data, this.parseReviver);
15713
+ return JSON.parse(data, own(this, 'parseReviver'));
15158
15714
  } catch (e) {
15159
15715
  if (strictJSONParsing) {
15160
15716
  if (e.name === 'SyntaxError') {
15161
- throw _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__["default"].from(e, _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__["default"].ERR_BAD_RESPONSE, this, null, this.response);
15717
+ throw _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__["default"].from(e, _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__["default"].ERR_BAD_RESPONSE, this, null, own(this, 'response'));
15162
15718
  }
15163
15719
  throw e;
15164
15720
  }
@@ -15198,7 +15754,7 @@ const defaults = {
15198
15754
  },
15199
15755
  };
15200
15756
 
15201
- _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {
15757
+ _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'query'], (method) => {
15202
15758
  defaults.headers[method] = {};
15203
15759
  });
15204
15760
 
@@ -15235,7 +15791,7 @@ __webpack_require__.r(__webpack_exports__);
15235
15791
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
15236
15792
  /* harmony export */ VERSION: () => (/* binding */ VERSION)
15237
15793
  /* harmony export */ });
15238
- const VERSION = "1.15.0";
15794
+ const VERSION = "1.16.0";
15239
15795
 
15240
15796
  /***/ },
15241
15797
 
@@ -15268,9 +15824,8 @@ function encode(str) {
15268
15824
  ')': '%29',
15269
15825
  '~': '%7E',
15270
15826
  '%20': '+',
15271
- '%00': '\x00',
15272
15827
  };
15273
- return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {
15828
+ return encodeURIComponent(str).replace(/[!'()~]|%20/g, function replacer(match) {
15274
15829
  return charMap[match];
15275
15830
  });
15276
15831
  }
@@ -15435,7 +15990,8 @@ function bind(fn, thisArg) {
15435
15990
  "use strict";
15436
15991
  __webpack_require__.r(__webpack_exports__);
15437
15992
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
15438
- /* harmony export */ "default": () => (/* binding */ buildURL)
15993
+ /* harmony export */ "default": () => (/* binding */ buildURL),
15994
+ /* harmony export */ encode: () => (/* binding */ encode)
15439
15995
  /* harmony export */ });
15440
15996
  /* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(68750);
15441
15997
  /* harmony import */ var _helpers_AxiosURLSearchParams_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15720);
@@ -15649,8 +16205,20 @@ __webpack_require__.r(__webpack_exports__);
15649
16205
 
15650
16206
  read(name) {
15651
16207
  if (typeof document === 'undefined') return null;
15652
- const match = document.cookie.match(new RegExp('(?:^|; )' + name + '=([^;]*)'));
15653
- return match ? decodeURIComponent(match[1]) : null;
16208
+ // Match name=value by splitting on the semicolon separator instead of building a
16209
+ // RegExp from `name` — interpolating an unescaped string into a RegExp would let
16210
+ // metacharacters (e.g. `.+?` in an attacker-influenced cookie name) cause ReDoS or
16211
+ // match the wrong cookie. Browsers may serialize cookie pairs as either ";" or
16212
+ // "; ", so ignore optional whitespace before each cookie name.
16213
+ const cookies = document.cookie.split(';');
16214
+ for (let i = 0; i < cookies.length; i++) {
16215
+ const cookie = cookies[i].replace(/^\s+/, '');
16216
+ const eq = cookie.indexOf('=');
16217
+ if (eq !== -1 && cookie.slice(0, eq) === name) {
16218
+ return decodeURIComponent(cookie.slice(eq + 1));
16219
+ }
16220
+ }
16221
+ return null;
15654
16222
  },
15655
16223
 
15656
16224
  remove(name) {
@@ -15667,6 +16235,118 @@ __webpack_require__.r(__webpack_exports__);
15667
16235
  });
15668
16236
 
15669
16237
 
16238
+ /***/ },
16239
+
16240
+ /***/ 879
16241
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
16242
+
16243
+ "use strict";
16244
+ __webpack_require__.r(__webpack_exports__);
16245
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
16246
+ /* harmony export */ "default": () => (/* binding */ estimateDataURLDecodedBytes)
16247
+ /* harmony export */ });
16248
+ /**
16249
+ * Estimate decoded byte length of a data:// URL *without* allocating large buffers.
16250
+ * - For base64: compute exact decoded size using length and padding;
16251
+ * handle %XX at the character-count level (no string allocation).
16252
+ * - For non-base64: use UTF-8 byteLength of the encoded body as a safe upper bound.
16253
+ *
16254
+ * @param {string} url
16255
+ * @returns {number}
16256
+ */
16257
+ function estimateDataURLDecodedBytes(url) {
16258
+ if (!url || typeof url !== 'string') return 0;
16259
+ if (!url.startsWith('data:')) return 0;
16260
+
16261
+ const comma = url.indexOf(',');
16262
+ if (comma < 0) return 0;
16263
+
16264
+ const meta = url.slice(5, comma);
16265
+ const body = url.slice(comma + 1);
16266
+ const isBase64 = /;base64/i.test(meta);
16267
+
16268
+ if (isBase64) {
16269
+ let effectiveLen = body.length;
16270
+ const len = body.length; // cache length
16271
+
16272
+ for (let i = 0; i < len; i++) {
16273
+ if (body.charCodeAt(i) === 37 /* '%' */ && i + 2 < len) {
16274
+ const a = body.charCodeAt(i + 1);
16275
+ const b = body.charCodeAt(i + 2);
16276
+ const isHex =
16277
+ ((a >= 48 && a <= 57) || (a >= 65 && a <= 70) || (a >= 97 && a <= 102)) &&
16278
+ ((b >= 48 && b <= 57) || (b >= 65 && b <= 70) || (b >= 97 && b <= 102));
16279
+
16280
+ if (isHex) {
16281
+ effectiveLen -= 2;
16282
+ i += 2;
16283
+ }
16284
+ }
16285
+ }
16286
+
16287
+ let pad = 0;
16288
+ let idx = len - 1;
16289
+
16290
+ const tailIsPct3D = (j) =>
16291
+ j >= 2 &&
16292
+ body.charCodeAt(j - 2) === 37 && // '%'
16293
+ body.charCodeAt(j - 1) === 51 && // '3'
16294
+ (body.charCodeAt(j) === 68 || body.charCodeAt(j) === 100); // 'D' or 'd'
16295
+
16296
+ if (idx >= 0) {
16297
+ if (body.charCodeAt(idx) === 61 /* '=' */) {
16298
+ pad++;
16299
+ idx--;
16300
+ } else if (tailIsPct3D(idx)) {
16301
+ pad++;
16302
+ idx -= 3;
16303
+ }
16304
+ }
16305
+
16306
+ if (pad === 1 && idx >= 0) {
16307
+ if (body.charCodeAt(idx) === 61 /* '=' */) {
16308
+ pad++;
16309
+ } else if (tailIsPct3D(idx)) {
16310
+ pad++;
16311
+ }
16312
+ }
16313
+
16314
+ const groups = Math.floor(effectiveLen / 4);
16315
+ const bytes = groups * 3 - (pad || 0);
16316
+ return bytes > 0 ? bytes : 0;
16317
+ }
16318
+
16319
+ if (typeof Buffer !== 'undefined' && typeof Buffer.byteLength === 'function') {
16320
+ return Buffer.byteLength(body, 'utf8');
16321
+ }
16322
+
16323
+ // Compute UTF-8 byte length directly from UTF-16 code units without allocating
16324
+ // a byte buffer (TextEncoder.encode would defeat the DoS guard on large bodies).
16325
+ // Using body.length here would undercount non-ASCII (e.g. '€' is 1 code unit
16326
+ // but 3 UTF-8 bytes).
16327
+ let bytes = 0;
16328
+ for (let i = 0, len = body.length; i < len; i++) {
16329
+ const c = body.charCodeAt(i);
16330
+ if (c < 0x80) {
16331
+ bytes += 1;
16332
+ } else if (c < 0x800) {
16333
+ bytes += 2;
16334
+ } else if (c >= 0xd800 && c <= 0xdbff && i + 1 < len) {
16335
+ const next = body.charCodeAt(i + 1);
16336
+ if (next >= 0xdc00 && next <= 0xdfff) {
16337
+ bytes += 4;
16338
+ i++;
16339
+ } else {
16340
+ bytes += 3;
16341
+ }
16342
+ } else {
16343
+ bytes += 3;
16344
+ }
16345
+ }
16346
+ return bytes;
16347
+ }
16348
+
16349
+
15670
16350
  /***/ },
15671
16351
 
15672
16352
  /***/ 66256
@@ -15738,7 +16418,9 @@ function formDataToJSON(formData) {
15738
16418
 
15739
16419
  if (isLast) {
15740
16420
  if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].hasOwnProp(target, name)) {
15741
- target[name] = [target[name], value];
16421
+ target[name] = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArray(target[name])
16422
+ ? target[name].concat(value)
16423
+ : [target[name], value];
15742
16424
  } else {
15743
16425
  target[name] = value;
15744
16426
  }
@@ -15972,7 +16654,7 @@ __webpack_require__.r(__webpack_exports__);
15972
16654
 
15973
16655
 
15974
16656
  function parseProtocol(url) {
15975
- const match = /^([-+\w]{1,25})(:?\/\/|:)/.exec(url);
16657
+ const match = /^([-+\w]{1,25}):(?:\/\/)?/.exec(url);
15976
16658
  return (match && match[1]) || '';
15977
16659
  }
15978
16660
 
@@ -16001,13 +16683,13 @@ const progressEventReducer = (listener, isDownloadStream, freq = 3) => {
16001
16683
  const _speedometer = (0,_speedometer_js__WEBPACK_IMPORTED_MODULE_0__["default"])(50, 250);
16002
16684
 
16003
16685
  return (0,_throttle_js__WEBPACK_IMPORTED_MODULE_1__["default"])((e) => {
16004
- const loaded = e.loaded;
16686
+ const rawLoaded = e.loaded;
16005
16687
  const total = e.lengthComputable ? e.total : undefined;
16006
- const progressBytes = loaded - bytesNotified;
16688
+ const loaded = total != null ? Math.min(rawLoaded, total) : rawLoaded;
16689
+ const progressBytes = Math.max(0, loaded - bytesNotified);
16007
16690
  const rate = _speedometer(progressBytes);
16008
- const inRange = loaded <= total;
16009
16691
 
16010
- bytesNotified = loaded;
16692
+ bytesNotified = Math.max(bytesNotified, loaded);
16011
16693
 
16012
16694
  const data = {
16013
16695
  loaded,
@@ -16015,7 +16697,7 @@ const progressEventReducer = (listener, isDownloadStream, freq = 3) => {
16015
16697
  progress: total ? loaded / total : undefined,
16016
16698
  bytes: progressBytes,
16017
16699
  rate: rate ? rate : undefined,
16018
- estimated: rate && total && inRange ? (total - loaded) / rate : undefined,
16700
+ estimated: rate && total ? (total - loaded) / rate : undefined,
16019
16701
  event: e,
16020
16702
  lengthComputable: total != null,
16021
16703
  [isDownloadStream ? 'download' : 'upload']: true,
@@ -16072,15 +16754,55 @@ __webpack_require__.r(__webpack_exports__);
16072
16754
 
16073
16755
 
16074
16756
 
16757
+ const FORM_DATA_CONTENT_HEADERS = ['content-type', 'content-length'];
16758
+
16759
+ function setFormDataHeaders(headers, formHeaders, policy) {
16760
+ if (policy !== 'content-only') {
16761
+ headers.set(formHeaders);
16762
+ return;
16763
+ }
16764
+
16765
+ Object.entries(formHeaders).forEach(([key, val]) => {
16766
+ if (FORM_DATA_CONTENT_HEADERS.includes(key.toLowerCase())) {
16767
+ headers.set(key, val);
16768
+ }
16769
+ });
16770
+ }
16771
+
16772
+ /**
16773
+ * Encode a UTF-8 string to a Latin-1 byte string for use with btoa().
16774
+ * This is a modern replacement for the deprecated unescape(encodeURIComponent(str)) pattern.
16775
+ *
16776
+ * @param {string} str The string to encode
16777
+ *
16778
+ * @returns {string} UTF-8 bytes as a Latin-1 string
16779
+ */
16780
+ const encodeUTF8 = (str) =>
16781
+ encodeURIComponent(str).replace(/%([0-9A-F]{2})/gi, (_, hex) =>
16782
+ String.fromCharCode(parseInt(hex, 16))
16783
+ );
16784
+
16075
16785
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((config) => {
16076
16786
  const newConfig = (0,_core_mergeConfig_js__WEBPACK_IMPORTED_MODULE_5__["default"])({}, config);
16077
16787
 
16078
- let { data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth } = newConfig;
16788
+ // Read only own properties to prevent prototype pollution gadgets
16789
+ // (e.g. Object.prototype.baseURL = 'https://evil.com').
16790
+ const own = (key) => (_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].hasOwnProp(newConfig, key) ? newConfig[key] : undefined);
16791
+
16792
+ const data = own('data');
16793
+ let withXSRFToken = own('withXSRFToken');
16794
+ const xsrfHeaderName = own('xsrfHeaderName');
16795
+ const xsrfCookieName = own('xsrfCookieName');
16796
+ let headers = own('headers');
16797
+ const auth = own('auth');
16798
+ const baseURL = own('baseURL');
16799
+ const allowAbsoluteUrls = own('allowAbsoluteUrls');
16800
+ const url = own('url');
16079
16801
 
16080
16802
  newConfig.headers = headers = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_6__["default"].from(headers);
16081
16803
 
16082
16804
  newConfig.url = (0,_buildURL_js__WEBPACK_IMPORTED_MODULE_7__["default"])(
16083
- (0,_core_buildFullPath_js__WEBPACK_IMPORTED_MODULE_4__["default"])(newConfig.baseURL, newConfig.url, newConfig.allowAbsoluteUrls),
16805
+ (0,_core_buildFullPath_js__WEBPACK_IMPORTED_MODULE_4__["default"])(baseURL, url, allowAbsoluteUrls),
16084
16806
  config.params,
16085
16807
  config.paramsSerializer
16086
16808
  );
@@ -16090,11 +16812,7 @@ __webpack_require__.r(__webpack_exports__);
16090
16812
  headers.set(
16091
16813
  'Authorization',
16092
16814
  'Basic ' +
16093
- btoa(
16094
- (auth.username || '') +
16095
- ':' +
16096
- (auth.password ? unescape(encodeURIComponent(auth.password)) : '')
16097
- )
16815
+ btoa((auth.username || '') + ':' + (auth.password ? encodeUTF8(auth.password) : ''))
16098
16816
  );
16099
16817
  }
16100
16818
 
@@ -16103,14 +16821,7 @@ __webpack_require__.r(__webpack_exports__);
16103
16821
  headers.setContentType(undefined); // browser handles it
16104
16822
  } else if (_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isFunction(data.getHeaders)) {
16105
16823
  // Node.js FormData (like form-data package)
16106
- const formHeaders = data.getHeaders();
16107
- // Only set safe headers to avoid overwriting security headers
16108
- const allowedHeaders = ['content-type', 'content-length'];
16109
- Object.entries(formHeaders).forEach(([key, val]) => {
16110
- if (allowedHeaders.includes(key.toLowerCase())) {
16111
- headers.set(key, val);
16112
- }
16113
- });
16824
+ setFormDataHeaders(headers, data.getHeaders(), own('formDataHeaderPolicy'));
16114
16825
  }
16115
16826
  }
16116
16827
 
@@ -16119,10 +16830,17 @@ __webpack_require__.r(__webpack_exports__);
16119
16830
  // Specifically not if we're in a web worker, or react-native.
16120
16831
 
16121
16832
  if (_platform_index_js__WEBPACK_IMPORTED_MODULE_0__["default"].hasStandardBrowserEnv) {
16122
- withXSRFToken && _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));
16833
+ if (_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isFunction(withXSRFToken)) {
16834
+ withXSRFToken = withXSRFToken(newConfig);
16835
+ }
16836
+
16837
+ // Strict boolean check — prevents proto-pollution gadgets (e.g. Object.prototype.withXSRFToken = 1)
16838
+ // and misconfigurations (e.g. "false") from short-circuiting the same-origin check and leaking
16839
+ // the XSRF token cross-origin.
16840
+ const shouldSendXSRF =
16841
+ withXSRFToken === true || (withXSRFToken == null && (0,_isURLSameOrigin_js__WEBPACK_IMPORTED_MODULE_2__["default"])(newConfig.url));
16123
16842
 
16124
- if (withXSRFToken || (withXSRFToken !== false && (0,_isURLSameOrigin_js__WEBPACK_IMPORTED_MODULE_2__["default"])(newConfig.url))) {
16125
- // Add xsrf header
16843
+ if (shouldSendXSRF) {
16126
16844
  const xsrfValue = xsrfHeaderName && xsrfCookieName && _cookies_js__WEBPACK_IMPORTED_MODULE_3__["default"].read(xsrfCookieName);
16127
16845
 
16128
16846
  if (xsrfValue) {
@@ -16429,6 +17147,7 @@ function toFormData(obj, formData, options) {
16429
17147
  const dots = options.dots;
16430
17148
  const indexes = options.indexes;
16431
17149
  const _Blob = options.Blob || (typeof Blob !== 'undefined' && Blob);
17150
+ const maxDepth = options.maxDepth === undefined ? 100 : options.maxDepth;
16432
17151
  const useBlob = _Blob && _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isSpecCompliantForm(formData);
16433
17152
 
16434
17153
  if (!_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isFunction(visitor)) {
@@ -16521,9 +17240,16 @@ function toFormData(obj, formData, options) {
16521
17240
  isVisitable,
16522
17241
  });
16523
17242
 
16524
- function build(value, path) {
17243
+ function build(value, path, depth = 0) {
16525
17244
  if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isUndefined(value)) return;
16526
17245
 
17246
+ if (depth > maxDepth) {
17247
+ throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__["default"](
17248
+ 'Object is too deeply nested (' + depth + ' levels). Max depth: ' + maxDepth,
17249
+ _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__["default"].ERR_FORM_DATA_DEPTH_EXCEEDED
17250
+ );
17251
+ }
17252
+
16527
17253
  if (stack.indexOf(value) !== -1) {
16528
17254
  throw Error('Circular reference detected in ' + path.join('.'));
16529
17255
  }
@@ -16536,7 +17262,7 @@ function toFormData(obj, formData, options) {
16536
17262
  visitor.call(formData, el, _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isString(key) ? key.trim() : key, path, exposedHelpers);
16537
17263
 
16538
17264
  if (result === true) {
16539
- build(el, path ? path.concat(key) : [key]);
17265
+ build(el, path ? path.concat(key) : [key], depth + 1);
16540
17266
  }
16541
17267
  });
16542
17268
 
@@ -16792,7 +17518,9 @@ function assertOptions(options, schema, allowUnknown) {
16792
17518
  let i = keys.length;
16793
17519
  while (i-- > 0) {
16794
17520
  const opt = keys[i];
16795
- const validator = schema[opt];
17521
+ // Use hasOwnProperty so a polluted Object.prototype.<opt> cannot supply
17522
+ // a non-function validator and cause a TypeError.
17523
+ const validator = Object.prototype.hasOwnProperty.call(schema, opt) ? schema[opt] : undefined;
16796
17524
  if (validator) {
16797
17525
  const value = options[opt];
16798
17526
  const result = value === undefined || validator(value, opt, options);
@@ -17179,21 +17907,21 @@ const isFile = kindOfTest('File');
17179
17907
  * also have a `name` and `type` attribute to specify filename and content type
17180
17908
  *
17181
17909
  * @see https://github.com/facebook/react-native/blob/26684cf3adf4094eb6c405d345a75bf8c7c0bf88/Libraries/Network/FormData.js#L68-L71
17182
- *
17910
+ *
17183
17911
  * @param {*} value The value to test
17184
- *
17912
+ *
17185
17913
  * @returns {boolean} True if value is a React Native Blob, otherwise false
17186
17914
  */
17187
17915
  const isReactNativeBlob = (value) => {
17188
17916
  return !!(value && typeof value.uri !== 'undefined');
17189
- }
17917
+ };
17190
17918
 
17191
17919
  /**
17192
17920
  * Determine if environment is React Native
17193
17921
  * ReactNative `FormData` has a non-standard `getParts()` method
17194
- *
17922
+ *
17195
17923
  * @param {*} formData The formData to test
17196
- *
17924
+ *
17197
17925
  * @returns {boolean} True if environment is React Native, otherwise false
17198
17926
  */
17199
17927
  const isReactNative = (formData) => formData && typeof formData.getParts !== 'undefined';
@@ -17212,7 +17940,7 @@ const isBlob = kindOfTest('Blob');
17212
17940
  *
17213
17941
  * @param {*} val The value to test
17214
17942
  *
17215
- * @returns {boolean} True if value is a File, otherwise false
17943
+ * @returns {boolean} True if value is a FileList, otherwise false
17216
17944
  */
17217
17945
  const isFileList = kindOfTest('FileList');
17218
17946
 
@@ -17244,15 +17972,17 @@ const G = getGlobal();
17244
17972
  const FormDataCtor = typeof G.FormData !== 'undefined' ? G.FormData : undefined;
17245
17973
 
17246
17974
  const isFormData = (thing) => {
17247
- let kind;
17248
- return thing && (
17249
- (FormDataCtor && thing instanceof FormDataCtor) || (
17250
- isFunction(thing.append) && (
17251
- (kind = kindOf(thing)) === 'formdata' ||
17252
- // detect form-data instance
17253
- (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')
17254
- )
17255
- )
17975
+ if (!thing) return false;
17976
+ if (FormDataCtor && thing instanceof FormDataCtor) return true;
17977
+ // Reject plain objects inheriting directly from Object.prototype so prototype-pollution gadgets can't spoof FormData.
17978
+ const proto = getPrototypeOf(thing);
17979
+ if (!proto || proto === Object.prototype) return false;
17980
+ if (!isFunction(thing.append)) return false;
17981
+ const kind = kindOf(thing);
17982
+ return (
17983
+ kind === 'formdata' ||
17984
+ // detect form-data instance
17985
+ (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')
17256
17986
  );
17257
17987
  };
17258
17988
 
@@ -17388,7 +18118,7 @@ const isContextDefined = (context) => !isUndefined(context) && context !== _glob
17388
18118
  *
17389
18119
  * @returns {Object} Result of all merge properties
17390
18120
  */
17391
- function merge(/* obj1, obj2, obj3, ... */) {
18121
+ function merge(...objs) {
17392
18122
  const { caseless, skipUndefined } = (isContextDefined(this) && this) || {};
17393
18123
  const result = {};
17394
18124
  const assignValue = (val, key) => {
@@ -17398,8 +18128,12 @@ function merge(/* obj1, obj2, obj3, ... */) {
17398
18128
  }
17399
18129
 
17400
18130
  const targetKey = (caseless && findKey(result, key)) || key;
17401
- if (isPlainObject(result[targetKey]) && isPlainObject(val)) {
17402
- result[targetKey] = merge(result[targetKey], val);
18131
+ // Read via own-prop only — a bare `result[targetKey]` walks the prototype
18132
+ // chain, so a polluted Object.prototype value could surface here and get
18133
+ // copied into the merged result.
18134
+ const existing = hasOwnProperty(result, targetKey) ? result[targetKey] : undefined;
18135
+ if (isPlainObject(existing) && isPlainObject(val)) {
18136
+ result[targetKey] = merge(existing, val);
17403
18137
  } else if (isPlainObject(val)) {
17404
18138
  result[targetKey] = merge({}, val);
17405
18139
  } else if (isArray(val)) {
@@ -17409,8 +18143,8 @@ function merge(/* obj1, obj2, obj3, ... */) {
17409
18143
  }
17410
18144
  };
17411
18145
 
17412
- for (let i = 0, l = arguments.length; i < l; i++) {
17413
- arguments[i] && forEach(arguments[i], assignValue);
18146
+ for (let i = 0, l = objs.length; i < l; i++) {
18147
+ objs[i] && forEach(objs[i], assignValue);
17414
18148
  }
17415
18149
  return result;
17416
18150
  }
@@ -17432,6 +18166,9 @@ const extend = (a, b, thisArg, { allOwnKeys } = {}) => {
17432
18166
  (val, key) => {
17433
18167
  if (thisArg && isFunction(val)) {
17434
18168
  Object.defineProperty(a, key, {
18169
+ // Null-proto descriptor so a polluted Object.prototype.get cannot
18170
+ // hijack defineProperty's accessor-vs-data resolution.
18171
+ __proto__: null,
17435
18172
  value: (0,_helpers_bind_js__WEBPACK_IMPORTED_MODULE_0__["default"])(val, thisArg),
17436
18173
  writable: true,
17437
18174
  enumerable: true,
@@ -17439,6 +18176,7 @@ const extend = (a, b, thisArg, { allOwnKeys } = {}) => {
17439
18176
  });
17440
18177
  } else {
17441
18178
  Object.defineProperty(a, key, {
18179
+ __proto__: null,
17442
18180
  value: val,
17443
18181
  writable: true,
17444
18182
  enumerable: true,
@@ -17477,12 +18215,14 @@ const stripBOM = (content) => {
17477
18215
  const inherits = (constructor, superConstructor, props, descriptors) => {
17478
18216
  constructor.prototype = Object.create(superConstructor.prototype, descriptors);
17479
18217
  Object.defineProperty(constructor.prototype, 'constructor', {
18218
+ __proto__: null,
17480
18219
  value: constructor,
17481
18220
  writable: true,
17482
18221
  enumerable: false,
17483
18222
  configurable: true,
17484
18223
  });
17485
18224
  Object.defineProperty(constructor, 'super', {
18225
+ __proto__: null,
17486
18226
  value: superConstructor.prototype,
17487
18227
  });
17488
18228
  props && Object.assign(constructor.prototype, props);
@@ -17664,7 +18404,7 @@ const reduceDescriptors = (obj, reducer) => {
17664
18404
  const freezeMethods = (obj) => {
17665
18405
  reduceDescriptors(obj, (descriptor, name) => {
17666
18406
  // skip restricted props in strict mode
17667
- if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {
18407
+ if (isFunction(obj) && ['arguments', 'caller', 'callee'].includes(name)) {
17668
18408
  return false;
17669
18409
  }
17670
18410
 
@@ -31907,7 +32647,7 @@ function doubleQuotedValue(source, onError) {
31907
32647
  next = source[++i + 1];
31908
32648
  }
31909
32649
  else if (next === 'x' || next === 'u' || next === 'U') {
31910
- const length = { x: 2, u: 4, U: 8 }[next];
32650
+ const length = next === 'x' ? 2 : next === 'u' ? 4 : 8;
31911
32651
  res += parseCharCode(source, i + 1, length, onError);
31912
32652
  i += length;
31913
32653
  }
@@ -31977,12 +32717,14 @@ function parseCharCode(source, offset, length, onError) {
31977
32717
  const cc = source.substr(offset, length);
31978
32718
  const ok = cc.length === length && /^[0-9a-fA-F]+$/.test(cc);
31979
32719
  const code = ok ? parseInt(cc, 16) : NaN;
31980
- if (isNaN(code)) {
32720
+ try {
32721
+ return String.fromCodePoint(code);
32722
+ }
32723
+ catch {
31981
32724
  const raw = source.substr(offset - 2, length + 2);
31982
32725
  onError(offset - 2, 'BAD_DQ_ESCAPE', `Invalid escape sequence ${raw}`);
31983
32726
  return raw;
31984
32727
  }
31985
- return String.fromCodePoint(code);
31986
32728
  }
31987
32729
 
31988
32730
 
@@ -33295,6 +34037,8 @@ class Alias extends _Node_js__WEBPACK_IMPORTED_MODULE_3__.NodeBase {
33295
34037
  * instance of the `source` anchor before this node.
33296
34038
  */
33297
34039
  resolve(doc, ctx) {
34040
+ if (ctx?.maxAliasCount === 0)
34041
+ throw new ReferenceError('Alias resolution is disabled');
33298
34042
  let nodes;
33299
34043
  if (ctx?.aliasResolveCache) {
33300
34044
  nodes = ctx.aliasResolveCache;
@@ -37474,18 +38218,18 @@ const isMergeKey = (ctx, key) => (merge.identify(key) ||
37474
38218
  merge.identify(key.value))) &&
37475
38219
  ctx?.doc.schema.tags.some(tag => tag.tag === merge.tag && tag.default);
37476
38220
  function addMergeToJSMap(ctx, map, value) {
37477
- value = ctx && (0,_nodes_identity_js__WEBPACK_IMPORTED_MODULE_0__.isAlias)(value) ? value.resolve(ctx.doc) : value;
37478
- if ((0,_nodes_identity_js__WEBPACK_IMPORTED_MODULE_0__.isSeq)(value))
37479
- for (const it of value.items)
38221
+ const source = resolveAliasValue(ctx, value);
38222
+ if ((0,_nodes_identity_js__WEBPACK_IMPORTED_MODULE_0__.isSeq)(source))
38223
+ for (const it of source.items)
37480
38224
  mergeValue(ctx, map, it);
37481
- else if (Array.isArray(value))
37482
- for (const it of value)
38225
+ else if (Array.isArray(source))
38226
+ for (const it of source)
37483
38227
  mergeValue(ctx, map, it);
37484
38228
  else
37485
- mergeValue(ctx, map, value);
38229
+ mergeValue(ctx, map, source);
37486
38230
  }
37487
38231
  function mergeValue(ctx, map, value) {
37488
- const source = ctx && (0,_nodes_identity_js__WEBPACK_IMPORTED_MODULE_0__.isAlias)(value) ? value.resolve(ctx.doc) : value;
38232
+ const source = resolveAliasValue(ctx, value);
37489
38233
  if (!(0,_nodes_identity_js__WEBPACK_IMPORTED_MODULE_0__.isMap)(source))
37490
38234
  throw new Error('Merge sources must be maps or map aliases');
37491
38235
  const srcMap = source.toJSON(null, ctx, Map);
@@ -37508,6 +38252,9 @@ function mergeValue(ctx, map, value) {
37508
38252
  }
37509
38253
  return map;
37510
38254
  }
38255
+ function resolveAliasValue(ctx, value) {
38256
+ return ctx && (0,_nodes_identity_js__WEBPACK_IMPORTED_MODULE_0__.isAlias)(value) ? value.resolve(ctx.doc, ctx) : value;
38257
+ }
37511
38258
 
37512
38259
 
37513
38260
 
@@ -38618,7 +39365,8 @@ function stringifyNumber({ format, minFractionDigits, tag, value }) {
38618
39365
  if (!format &&
38619
39366
  minFractionDigits &&
38620
39367
  (!tag || tag === 'tag:yaml.org,2002:float') &&
38621
- /^\d/.test(n)) {
39368
+ /^-?\d/.test(n) &&
39369
+ !n.includes('e')) {
38622
39370
  let i = n.indexOf('.');
38623
39371
  if (i < 0) {
38624
39372
  i = n.length;
@@ -84909,6 +85657,65 @@ const refractAction = (value, options = {}) => refract(value, {
84909
85657
  });
84910
85658
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (refract);
84911
85659
 
85660
+ /***/ },
85661
+
85662
+ /***/ 35937
85663
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
85664
+
85665
+ "use strict";
85666
+ __webpack_require__.r(__webpack_exports__);
85667
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
85668
+ /* harmony export */ ActionElement: () => (/* reexport safe */ _elements_Action_mjs__WEBPACK_IMPORTED_MODULE_5__["default"]),
85669
+ /* harmony export */ InfoElement: () => (/* reexport safe */ _elements_Info_mjs__WEBPACK_IMPORTED_MODULE_4__["default"]),
85670
+ /* harmony export */ Overlay1Element: () => (/* reexport safe */ _elements_Overlay1_mjs__WEBPACK_IMPORTED_MODULE_3__["default"]),
85671
+ /* harmony export */ OverlayElement: () => (/* reexport safe */ _elements_Overlay_mjs__WEBPACK_IMPORTED_MODULE_2__["default"])
85672
+ /* harmony export */ });
85673
+ /* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(60572);
85674
+ /* harmony import */ var ramda_adjunct__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(34606);
85675
+ /* harmony import */ var _elements_Overlay_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(79100);
85676
+ /* harmony import */ var _elements_Overlay1_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(68913);
85677
+ /* harmony import */ var _elements_Info_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(41012);
85678
+ /* harmony import */ var _elements_Action_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(19642);
85679
+ /* harmony import */ var _specification_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(18730);
85680
+
85681
+
85682
+
85683
+
85684
+
85685
+
85686
+
85687
+ /**
85688
+ * @public
85689
+ */
85690
+ const resolvedSpec = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_0__.resolveSpecification)(_specification_mjs__WEBPACK_IMPORTED_MODULE_6__["default"]);
85691
+ const getFixedFields = fixedFieldsSpec => {
85692
+ return Object.entries(fixedFieldsSpec).map(([name, fieldSpec]) => {
85693
+ if ((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_1__["default"])(fieldSpec)) {
85694
+ return {
85695
+ name,
85696
+ ...fieldSpec
85697
+ };
85698
+ }
85699
+ return {
85700
+ name,
85701
+ $visitor: fieldSpec
85702
+ };
85703
+ });
85704
+ };
85705
+ Object.defineProperty(_elements_Overlay1_mjs__WEBPACK_IMPORTED_MODULE_3__["default"], 'fixedFields', {
85706
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Overlay.fixedFields),
85707
+ enumerable: true
85708
+ });
85709
+ Object.defineProperty(_elements_Info_mjs__WEBPACK_IMPORTED_MODULE_4__["default"], 'fixedFields', {
85710
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Info.fixedFields),
85711
+ enumerable: true
85712
+ });
85713
+ Object.defineProperty(_elements_Action_mjs__WEBPACK_IMPORTED_MODULE_5__["default"], 'fixedFields', {
85714
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Action.fixedFields),
85715
+ enumerable: true
85716
+ });
85717
+
85718
+
84912
85719
  /***/ },
84913
85720
 
84914
85721
  /***/ 21461
@@ -101151,20 +101958,28 @@ var __webpack_exports__ = {};
101151
101958
  "use strict";
101152
101959
  __webpack_require__.r(__webpack_exports__);
101153
101960
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
101154
- /* harmony export */ OverlayError: () => (/* reexport safe */ _errors_OverlayError_ts__WEBPACK_IMPORTED_MODULE_4__["default"]),
101961
+ /* harmony export */ OverlayError: () => (/* reexport safe */ _errors_OverlayError_ts__WEBPACK_IMPORTED_MODULE_7__["default"]),
101155
101962
  /* harmony export */ applyActionApiDOM: () => (/* reexport safe */ _apply_realms_apidom_ts__WEBPACK_IMPORTED_MODULE_0__.applyAction),
101156
101963
  /* harmony export */ applyActionPOJO: () => (/* reexport safe */ _apply_realms_pojo_ts__WEBPACK_IMPORTED_MODULE_2__.applyAction),
101157
101964
  /* harmony export */ applyOverlay: () => (/* reexport safe */ _apply_realms_uri_ts__WEBPACK_IMPORTED_MODULE_1__["default"]),
101158
101965
  /* harmony export */ applyOverlayApiDOM: () => (/* reexport safe */ _apply_realms_apidom_ts__WEBPACK_IMPORTED_MODULE_0__.applyOverlay),
101159
101966
  /* harmony export */ applyOverlayPOJO: () => (/* reexport safe */ _apply_realms_pojo_ts__WEBPACK_IMPORTED_MODULE_2__.applyOverlay),
101160
101967
  /* harmony export */ defaultApplyOverlayOptions: () => (/* reexport safe */ _apply_realms_uri_ts__WEBPACK_IMPORTED_MODULE_1__.defaultOptions),
101161
- /* harmony export */ validateAction: () => (/* reexport safe */ _validate_ts__WEBPACK_IMPORTED_MODULE_3__.validateAction)
101968
+ /* harmony export */ defaultDiffOverlayOptions: () => (/* reexport safe */ _diff_index_ts__WEBPACK_IMPORTED_MODULE_5__.defaultOptions),
101969
+ /* harmony export */ diffApiDOM: () => (/* reexport safe */ _diff_index_ts__WEBPACK_IMPORTED_MODULE_3__.diff),
101970
+ /* harmony export */ diffOverlay: () => (/* reexport safe */ _diff_index_ts__WEBPACK_IMPORTED_MODULE_5__["default"]),
101971
+ /* harmony export */ diffPOJO: () => (/* reexport safe */ _diff_index_ts__WEBPACK_IMPORTED_MODULE_4__.diff),
101972
+ /* harmony export */ validateAction: () => (/* reexport safe */ _validate_ts__WEBPACK_IMPORTED_MODULE_6__.validateAction)
101162
101973
  /* harmony export */ });
101163
101974
  /* harmony import */ var _apply_realms_apidom_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(28216);
101164
101975
  /* harmony import */ var _apply_realms_uri_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(42768);
101165
101976
  /* harmony import */ var _apply_realms_pojo_ts__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(83942);
101166
- /* harmony import */ var _validate_ts__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(24338);
101167
- /* harmony import */ var _errors_OverlayError_ts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(18436);
101977
+ /* harmony import */ var _diff_index_ts__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(15145);
101978
+ /* harmony import */ var _diff_index_ts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(72587);
101979
+ /* harmony import */ var _diff_index_ts__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(8423);
101980
+ /* harmony import */ var _validate_ts__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(24338);
101981
+ /* harmony import */ var _errors_OverlayError_ts__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(18436);
101982
+
101168
101983
 
101169
101984
 
101170
101985