swagger-client 3.25.4 → 3.26.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.
@@ -655,21 +655,22 @@ function path({
655
655
  explode,
656
656
  content
657
657
  } = parameter;
658
+ if (value === undefined) return;
658
659
  if (content) {
659
660
  const effectiveMediaType = Object.keys(content)[0];
660
661
  req.url = req.url.split(`{${name}}`).join((0,_style_serializer_js__WEBPACK_IMPORTED_MODULE_0__.encodeDisallowedCharacters)((0,_content_serializer_js__WEBPACK_IMPORTED_MODULE_1__["default"])(value, effectiveMediaType), {
661
662
  escape: true
662
663
  }));
663
- return;
664
+ } else {
665
+ const styledValue = (0,_style_serializer_js__WEBPACK_IMPORTED_MODULE_0__["default"])({
666
+ key: parameter.name,
667
+ value,
668
+ style: style || 'simple',
669
+ explode: explode || false,
670
+ escape: true
671
+ });
672
+ req.url = req.url.replace(new RegExp(`{${name}}`, 'g'), styledValue);
664
673
  }
665
- const styledValue = (0,_style_serializer_js__WEBPACK_IMPORTED_MODULE_0__["default"])({
666
- key: parameter.name,
667
- value,
668
- style: style || 'simple',
669
- explode: explode || false,
670
- escape: true
671
- });
672
- req.url = req.url.split(`{${name}}`).join(styledValue);
673
674
  }
674
675
  function query({
675
676
  req,
@@ -677,12 +678,12 @@ function query({
677
678
  parameter
678
679
  }) {
679
680
  req.query = req.query || {};
680
- if (parameter.content) {
681
+ if (value !== undefined && parameter.content) {
681
682
  const effectiveMediaType = Object.keys(parameter.content)[0];
682
683
  const serializedValue = (0,_content_serializer_js__WEBPACK_IMPORTED_MODULE_1__["default"])(value, effectiveMediaType);
683
684
  if (serializedValue) {
684
685
  req.query[parameter.name] = serializedValue;
685
- } else if (parameter.allowEmptyValue && value !== undefined) {
686
+ } else if (parameter.allowEmptyValue) {
686
687
  const paramName = parameter.name;
687
688
  req.query[paramName] = req.query[paramName] || {};
688
689
  req.query[paramName].allowEmptyValue = true;
@@ -725,7 +726,7 @@ function header({
725
726
  if (PARAMETER_HEADER_BLACKLIST.indexOf(parameter.name.toLowerCase()) > -1) {
726
727
  return;
727
728
  }
728
- if (parameter.content) {
729
+ if (value !== undefined && parameter.content) {
729
730
  const effectiveMediaType = Object.keys(parameter.content)[0];
730
731
  req.headers[parameter.name] = (0,_content_serializer_js__WEBPACK_IMPORTED_MODULE_1__["default"])(value, effectiveMediaType);
731
732
  return;
@@ -747,7 +748,7 @@ function cookie({
747
748
  }) {
748
749
  req.headers = req.headers || {};
749
750
  const type = typeof value;
750
- if (parameter.content) {
751
+ if (value !== undefined && parameter.content) {
751
752
  const effectiveMediaType = Object.keys(parameter.content)[0];
752
753
  req.headers.Cookie = `${parameter.name}=${(0,_content_serializer_js__WEBPACK_IMPORTED_MODULE_1__["default"])(value, effectiveMediaType)}`;
753
754
  return;
@@ -1538,11 +1539,11 @@ __webpack_require__.r(__webpack_exports__);
1538
1539
  /* harmony export */ serializeRes: () => (/* binding */ serializeRes),
1539
1540
  /* harmony export */ shouldDownloadAsText: () => (/* binding */ shouldDownloadAsText)
1540
1541
  /* harmony export */ });
1541
- /* harmony import */ var qs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(55373);
1542
- /* harmony import */ var qs__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(qs__WEBPACK_IMPORTED_MODULE_0__);
1543
- /* harmony import */ var js_yaml__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20382);
1544
- /* harmony import */ var _helpers_fetch_polyfill_node_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(29641);
1545
- /* harmony import */ var _execute_oas3_style_serializer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(33838);
1542
+ /* harmony import */ var qs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(55373);
1543
+ /* harmony import */ var qs__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(qs__WEBPACK_IMPORTED_MODULE_3__);
1544
+ /* harmony import */ var js_yaml__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20382);
1545
+ /* harmony import */ var _helpers_fetch_polyfill_node_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(29641);
1546
+ /* harmony import */ var _execute_oas3_style_serializer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(33838);
1546
1547
 
1547
1548
 
1548
1549
 
@@ -1633,7 +1634,7 @@ function parseBody(body, contentType) {
1633
1634
  if (contentType && (contentType.indexOf('application/json') === 0 || contentType.indexOf('+json') > 0)) {
1634
1635
  return JSON.parse(body);
1635
1636
  }
1636
- return js_yaml__WEBPACK_IMPORTED_MODULE_1__["default"].load(body);
1637
+ return js_yaml__WEBPACK_IMPORTED_MODULE_0__["default"].load(body);
1637
1638
  }
1638
1639
 
1639
1640
  // Serialize the response, returns a promise with headers and the body part of the hash
@@ -1842,10 +1843,10 @@ function formatKeyValueBySerializationOption(key, value, skipEncoding, serializa
1842
1843
  const explode = typeof serializationOption.explode === 'undefined' ? style === 'form' : serializationOption.explode;
1843
1844
  // eslint-disable-next-line no-nested-ternary
1844
1845
  const escape = skipEncoding ? false : serializationOption && serializationOption.allowReserved ? 'unsafe' : 'reserved';
1845
- const encodeFn = v => (0,_execute_oas3_style_serializer_js__WEBPACK_IMPORTED_MODULE_3__.encodeDisallowedCharacters)(v, {
1846
+ const encodeFn = v => (0,_execute_oas3_style_serializer_js__WEBPACK_IMPORTED_MODULE_2__.encodeDisallowedCharacters)(v, {
1846
1847
  escape
1847
1848
  });
1848
- const encodeKeyFn = skipEncoding ? k => k : k => (0,_execute_oas3_style_serializer_js__WEBPACK_IMPORTED_MODULE_3__.encodeDisallowedCharacters)(k, {
1849
+ const encodeKeyFn = skipEncoding ? k => k : k => (0,_execute_oas3_style_serializer_js__WEBPACK_IMPORTED_MODULE_2__.encodeDisallowedCharacters)(k, {
1849
1850
  escape
1850
1851
  });
1851
1852
 
@@ -1929,7 +1930,7 @@ function encodeFormOrQuery(data) {
1929
1930
  }
1930
1931
  return result;
1931
1932
  }, {});
1932
- return qs__WEBPACK_IMPORTED_MODULE_0___default().stringify(encodedQuery, {
1933
+ return qs__WEBPACK_IMPORTED_MODULE_3___default().stringify(encodedQuery, {
1933
1934
  encode: false,
1934
1935
  indices: false
1935
1936
  }) || '';
@@ -1968,10 +1969,10 @@ function mergeInQueryOrForm(req = {}) {
1968
1969
  const [baseUrl, oriSearch] = url.split('?');
1969
1970
  let newStr = '';
1970
1971
  if (oriSearch) {
1971
- const oriQuery = qs__WEBPACK_IMPORTED_MODULE_0___default().parse(oriSearch);
1972
+ const oriQuery = qs__WEBPACK_IMPORTED_MODULE_3___default().parse(oriSearch);
1972
1973
  const keysToRemove = Object.keys(query);
1973
1974
  keysToRemove.forEach(key => delete oriQuery[key]);
1974
- newStr = qs__WEBPACK_IMPORTED_MODULE_0___default().stringify(oriQuery, {
1975
+ newStr = qs__WEBPACK_IMPORTED_MODULE_3___default().stringify(oriQuery, {
1975
1976
  encode: true
1976
1977
  });
1977
1978
  }
@@ -2495,24 +2496,24 @@ __webpack_require__.r(__webpack_exports__);
2495
2496
  /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(42209);
2496
2497
  /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(9999);
2497
2498
  /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(33501);
2498
- /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(87024);
2499
- /* harmony import */ var _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(98219);
2500
- /* harmony import */ var _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(70281);
2501
- /* harmony import */ var _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(85013);
2502
- /* harmony import */ var _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(3117);
2503
- /* harmony import */ var _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(66648);
2504
- /* harmony import */ var _swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(85270);
2505
- /* harmony import */ var _swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(18316);
2506
- /* harmony import */ var _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(83748);
2507
- /* harmony import */ var _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(60503);
2508
- /* harmony import */ var _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(15767);
2499
+ /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(87024);
2500
+ /* harmony import */ var _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(98219);
2501
+ /* harmony import */ var _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(85013);
2502
+ /* harmony import */ var _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(3117);
2503
+ /* harmony import */ var _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(66648);
2504
+ /* harmony import */ var _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(70281);
2505
+ /* harmony import */ var _swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(85270);
2506
+ /* harmony import */ var _swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(18316);
2507
+ /* harmony import */ var _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(83748);
2508
+ /* harmony import */ var _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(60503);
2509
+ /* harmony import */ var _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(15767);
2509
2510
  /* harmony import */ var _swagger_api_apidom_reference_dereference_strategies_openapi_3_1__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(32346);
2510
- /* harmony import */ var _swagger_api_apidom_reference_dereference_strategies_openapi_3_1__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(11612);
2511
- /* harmony import */ var _swagger_api_apidom_reference_dereference_strategies_openapi_3_1_selectors_$anchor__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(46432);
2512
- /* harmony import */ var _swagger_api_apidom_reference_dereference_strategies_openapi_3_1_selectors_uri__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(16129);
2513
- /* harmony import */ var _swagger_api_apidom_reference_dereference_strategies_openapi_3_1_selectors_uri__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(78311);
2514
- /* harmony import */ var _utils_to_path_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(12201);
2515
- /* harmony import */ var _utils_get_root_cause_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(17381);
2511
+ /* harmony import */ var _swagger_api_apidom_reference_dereference_strategies_openapi_3_1__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(51776);
2512
+ /* harmony import */ var _swagger_api_apidom_reference_dereference_strategies_openapi_3_1_selectors_$anchor__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(46432);
2513
+ /* harmony import */ var _swagger_api_apidom_reference_dereference_strategies_openapi_3_1_selectors_uri__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(16129);
2514
+ /* harmony import */ var _swagger_api_apidom_reference_dereference_strategies_openapi_3_1_selectors_uri__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(78311);
2515
+ /* harmony import */ var _utils_to_path_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(12201);
2516
+ /* harmony import */ var _utils_get_root_cause_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(17381);
2516
2517
  /* harmony import */ var _specmap_lib_refs_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7247);
2517
2518
  /* harmony import */ var _errors_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(21806);
2518
2519
  /* eslint-disable camelcase */
@@ -2570,53 +2571,62 @@ const OpenApi3_1SwaggerClientDereferenceVisitor = _swagger_api_apidom_reference_
2570
2571
  if (ancestorsLineage.includesCycle(referencingElement)) {
2571
2572
  return false;
2572
2573
  }
2574
+ const retrievalURI = this.toBaseURI((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__["default"])(referencingElement.$ref));
2575
+ const isInternalReference = _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_7__.stripHash(this.reference.uri) === retrievalURI;
2576
+ const isExternalReference = !isInternalReference;
2573
2577
 
2578
+ // ignore resolving internal Reference Objects
2579
+ if (!this.options.resolve.internal && isInternalReference) {
2580
+ return false;
2581
+ }
2574
2582
  // ignore resolving external Reference Objects
2575
- if (!this.options.resolve.external && (0,_swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_7__.isReferenceElementExternal)(referencingElement)) {
2583
+ if (!this.options.resolve.external && isExternalReference) {
2576
2584
  return false;
2577
2585
  }
2578
2586
  const reference = await this.toReference((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__["default"])(referencingElement.$ref));
2579
- const {
2580
- uri: retrievalURI
2581
- } = reference;
2582
- const $refBaseURI = _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_8__.resolve(retrievalURI, (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__["default"])(referencingElement.$ref));
2587
+ const $refBaseURI = _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_7__.resolve(retrievalURI, (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__["default"])(referencingElement.$ref));
2583
2588
  this.indirections.push(referencingElement);
2584
- const jsonPointer = (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_9__.uriToPointer)($refBaseURI);
2589
+ const jsonPointer = (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_8__.uriToPointer)($refBaseURI);
2585
2590
 
2586
2591
  // possibly non-semantic fragment
2587
- let referencedElement = (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_10__["default"])(jsonPointer, reference.value.result);
2592
+ let referencedElement = (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_9__["default"])(jsonPointer, reference.value.result);
2588
2593
 
2589
2594
  // applying semantics to a fragment
2590
2595
  if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_6__.isPrimitiveElement)(referencedElement)) {
2591
2596
  const referencedElementType = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__["default"])(referencingElement.meta.get('referenced-element'));
2592
- if ((0,_swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_11__.isReferenceLikeElement)(referencedElement)) {
2597
+ const cacheKey = `${referencedElementType}-${(0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__["default"])(identityManager.identify(referencedElement))}`;
2598
+ if (this.refractCache.has(cacheKey)) {
2599
+ referencedElement = this.refractCache.get(cacheKey);
2600
+ } else if ((0,_swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_10__.isReferenceLikeElement)(referencedElement)) {
2593
2601
  // handling indirect references
2594
- referencedElement = _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_12__.ReferenceElement.refract(referencedElement);
2602
+ referencedElement = _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_11__.ReferenceElement.refract(referencedElement);
2595
2603
  referencedElement.setMetaProperty('referenced-element', referencedElementType);
2604
+ this.refractCache.set(cacheKey, referencedElement);
2596
2605
  } else {
2597
2606
  // handling direct references
2598
2607
  const ElementClass = this.namespace.getElementClass(referencedElementType);
2599
2608
  referencedElement = ElementClass.refract(referencedElement);
2609
+ this.refractCache.set(cacheKey, referencedElement);
2600
2610
  }
2601
2611
  }
2602
2612
 
2603
2613
  // detect direct or indirect reference
2604
2614
  if (this.indirections.includes(referencedElement)) {
2605
- throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_13__["default"]('Recursive JSON Pointer detected');
2615
+ throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_12__["default"]('Recursive JSON Pointer detected');
2606
2616
  }
2607
2617
 
2608
2618
  // detect maximum depth of dereferencing
2609
2619
  if (this.indirections.length > this.options.dereference.maxDepth) {
2610
- throw new _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_14__["default"](`Maximum dereference depth of "${this.options.dereference.maxDepth}" has been exceeded in file "${this.reference.uri}"`);
2620
+ throw new _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_13__["default"](`Maximum dereference depth of "${this.options.dereference.maxDepth}" has been exceeded in file "${this.reference.uri}"`);
2611
2621
  }
2612
2622
  if (!this.useCircularStructures) {
2613
2623
  const hasCycles = ancestorsLineage.includes(referencedElement);
2614
2624
  if (hasCycles) {
2615
- if (_swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_8__.isHttpUrl(retrievalURI) || _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_8__.isFileSystemPath(retrievalURI)) {
2625
+ if (_swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_7__.isHttpUrl(retrievalURI) || _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_7__.isFileSystemPath(retrievalURI)) {
2616
2626
  // make the referencing URL or file system path absolute
2617
- const cycledReferenceElement = new _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_12__.ReferenceElement({
2627
+ const cycledReferenceElement = new _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_11__.ReferenceElement({
2618
2628
  $ref: $refBaseURI
2619
- }, (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_15__.cloneDeep)(referencingElement.meta), (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_15__.cloneDeep)(referencingElement.attributes));
2629
+ }, (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_14__.cloneDeep)(referencingElement.meta), (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_14__.cloneDeep)(referencingElement.attributes));
2620
2630
  cycledReferenceElement.get('$ref').classes.push('cycle');
2621
2631
  return cycledReferenceElement;
2622
2632
  }
@@ -2637,18 +2647,18 @@ const OpenApi3_1SwaggerClientDereferenceVisitor = _swagger_api_apidom_reference_
2637
2647
  ancestors: ancestorsLineage,
2638
2648
  allowMetaPatches: this.allowMetaPatches,
2639
2649
  useCircularStructures: this.useCircularStructures,
2640
- basePath: this.basePath ?? [...(0,_utils_to_path_js__WEBPACK_IMPORTED_MODULE_16__["default"])([...ancestors, parent, referencingElement]), '$ref']
2650
+ basePath: this.basePath ?? [...(0,_utils_to_path_js__WEBPACK_IMPORTED_MODULE_15__["default"])([...ancestors, parent, referencingElement]), '$ref']
2641
2651
  });
2642
2652
  referencedElement = await visitAsync(referencedElement, visitor, {
2643
- keyMap: _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_17__.keyMap,
2644
- nodeTypeGetter: _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_17__.getNodeType
2653
+ keyMap: _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_16__.keyMap,
2654
+ nodeTypeGetter: _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_16__.getNodeType
2645
2655
  });
2646
2656
 
2647
2657
  // remove referencing schema from ancestors lineage
2648
2658
  directAncestors.delete(referencingElement);
2649
2659
  this.indirections.pop();
2650
2660
  const mergeAndAnnotateReferencedElement = refedElement => {
2651
- const copy = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_15__.cloneShallow)(refedElement);
2661
+ const copy = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_14__.cloneShallow)(refedElement);
2652
2662
 
2653
2663
  // annotate fragment with info about original Reference element
2654
2664
  copy.setMetaProperty('ref-fields', {
@@ -2659,7 +2669,7 @@ const OpenApi3_1SwaggerClientDereferenceVisitor = _swagger_api_apidom_reference_
2659
2669
  // annotate fragment with info about origin
2660
2670
  copy.setMetaProperty('ref-origin', reference.uri);
2661
2671
  // annotate fragment with info about referencing element
2662
- copy.setMetaProperty('ref-referencing-element-id', (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_15__.cloneDeep)(identityManager.identify(referencingElement)));
2672
+ copy.setMetaProperty('ref-referencing-element-id', (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_14__.cloneDeep)(identityManager.identify(referencingElement)));
2663
2673
 
2664
2674
  // override description and summary (outer has higher priority then inner)
2665
2675
  if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_6__.isObjectElement)(refedElement)) {
@@ -2677,7 +2687,7 @@ const OpenApi3_1SwaggerClientDereferenceVisitor = _swagger_api_apidom_reference_
2677
2687
  if (this.allowMetaPatches && (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_6__.isObjectElement)(copy)) {
2678
2688
  // apply meta patch only when not already applied
2679
2689
  if (!copy.hasKey('$$ref')) {
2680
- const baseURI = _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_8__.resolve(retrievalURI, $refBaseURI);
2690
+ const baseURI = _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_7__.resolve(retrievalURI, $refBaseURI);
2681
2691
  copy.set('$$ref', baseURI);
2682
2692
  }
2683
2693
  }
@@ -2698,12 +2708,12 @@ const OpenApi3_1SwaggerClientDereferenceVisitor = _swagger_api_apidom_reference_
2698
2708
  // transclude the element for a fragment
2699
2709
  return mergeAndAnnotateReferencedElement(referencedElement);
2700
2710
  } catch (error) {
2701
- const rootCause = (0,_utils_get_root_cause_js__WEBPACK_IMPORTED_MODULE_18__["default"])(error);
2711
+ const rootCause = (0,_utils_get_root_cause_js__WEBPACK_IMPORTED_MODULE_17__["default"])(error);
2702
2712
  const wrappedError = wrapError(rootCause, {
2703
2713
  baseDoc: this.reference.uri,
2704
2714
  $ref: (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__["default"])(referencingElement.$ref),
2705
- pointer: (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_9__.uriToPointer)((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__["default"])(referencingElement.$ref)),
2706
- fullPath: this.basePath ?? [...(0,_utils_to_path_js__WEBPACK_IMPORTED_MODULE_16__["default"])([...ancestors, parent, referencingElement]), '$ref']
2715
+ pointer: (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_8__.uriToPointer)((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__["default"])(referencingElement.$ref)),
2716
+ fullPath: this.basePath ?? [...(0,_utils_to_path_js__WEBPACK_IMPORTED_MODULE_15__["default"])([...ancestors, parent, referencingElement]), '$ref']
2707
2717
  });
2708
2718
  this.options.dereference.dereferenceOpts?.errors?.push?.(wrappedError);
2709
2719
  return undefined;
@@ -2727,44 +2737,54 @@ const OpenApi3_1SwaggerClientDereferenceVisitor = _swagger_api_apidom_reference_
2727
2737
  if (ancestorsLineage.includesCycle(pathItemElement)) {
2728
2738
  return false;
2729
2739
  }
2740
+ const retrievalURI = this.toBaseURI((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__["default"])(pathItemElement.$ref));
2741
+ const isInternalReference = _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_7__.stripHash(this.reference.uri) === retrievalURI;
2742
+ const isExternalReference = !isInternalReference;
2730
2743
 
2744
+ // ignore resolving internal Path Item Elements
2745
+ if (!this.options.resolve.internal && isInternalReference) {
2746
+ return undefined;
2747
+ }
2731
2748
  // ignore resolving external Path Item Elements
2732
- if (!this.options.resolve.external && (0,_swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_7__.isPathItemElementExternal)(pathItemElement)) {
2749
+ if (!this.options.resolve.external && isExternalReference) {
2733
2750
  return undefined;
2734
2751
  }
2735
2752
  const reference = await this.toReference((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__["default"])(pathItemElement.$ref));
2736
- const {
2737
- uri: retrievalURI
2738
- } = reference;
2739
- const $refBaseURI = _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_8__.resolve(retrievalURI, (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__["default"])(pathItemElement.$ref));
2753
+ const $refBaseURI = _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_7__.resolve(retrievalURI, (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__["default"])(pathItemElement.$ref));
2740
2754
  this.indirections.push(pathItemElement);
2741
- const jsonPointer = (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_9__.uriToPointer)($refBaseURI);
2755
+ const jsonPointer = (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_8__.uriToPointer)($refBaseURI);
2742
2756
 
2743
2757
  // possibly non-semantic referenced element
2744
- let referencedElement = (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_10__["default"])(jsonPointer, reference.value.result);
2758
+ let referencedElement = (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_9__["default"])(jsonPointer, reference.value.result);
2745
2759
 
2746
2760
  // applying semantics to a referenced element
2747
2761
  if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_6__.isPrimitiveElement)(referencedElement)) {
2748
- referencedElement = _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_12__.PathItemElement.refract(referencedElement);
2762
+ const cacheKey = `pathItem-${(0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__["default"])(identityManager.identify(referencedElement))}`;
2763
+ if (this.refractCache.has(cacheKey)) {
2764
+ referencedElement = this.refractCache.get(cacheKey);
2765
+ } else {
2766
+ referencedElement = _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_11__.PathItemElement.refract(referencedElement);
2767
+ this.refractCache.set(cacheKey, referencedElement);
2768
+ }
2749
2769
  }
2750
2770
 
2751
2771
  // detect direct or indirect reference
2752
2772
  if (this.indirections.includes(referencedElement)) {
2753
- throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_13__["default"]('Recursive JSON Pointer detected');
2773
+ throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_12__["default"]('Recursive JSON Pointer detected');
2754
2774
  }
2755
2775
 
2756
2776
  // detect maximum depth of dereferencing
2757
2777
  if (this.indirections.length > this.options.dereference.maxDepth) {
2758
- throw new _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_14__["default"](`Maximum dereference depth of "${this.options.dereference.maxDepth}" has been exceeded in file "${this.reference.uri}"`);
2778
+ throw new _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_13__["default"](`Maximum dereference depth of "${this.options.dereference.maxDepth}" has been exceeded in file "${this.reference.uri}"`);
2759
2779
  }
2760
2780
  if (!this.useCircularStructures) {
2761
2781
  const hasCycles = ancestorsLineage.includes(referencedElement);
2762
2782
  if (hasCycles) {
2763
- if (_swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_8__.isHttpUrl(retrievalURI) || _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_8__.isFileSystemPath(retrievalURI)) {
2783
+ if (_swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_7__.isHttpUrl(retrievalURI) || _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_7__.isFileSystemPath(retrievalURI)) {
2764
2784
  // make the referencing URL or file system path absolute
2765
- const cycledPathItemElement = new _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_12__.PathItemElement({
2785
+ const cycledPathItemElement = new _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_11__.PathItemElement({
2766
2786
  $ref: $refBaseURI
2767
- }, (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_15__.cloneDeep)(pathItemElement.meta), (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_15__.cloneDeep)(pathItemElement.attributes));
2787
+ }, (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_14__.cloneDeep)(pathItemElement.meta), (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_14__.cloneDeep)(pathItemElement.attributes));
2768
2788
  cycledPathItemElement.get('$ref').classes.push('cycle');
2769
2789
  return cycledPathItemElement;
2770
2790
  }
@@ -2785,11 +2805,11 @@ const OpenApi3_1SwaggerClientDereferenceVisitor = _swagger_api_apidom_reference_
2785
2805
  ancestors: ancestorsLineage,
2786
2806
  allowMetaPatches: this.allowMetaPatches,
2787
2807
  useCircularStructures: this.useCircularStructures,
2788
- basePath: this.basePath ?? [...(0,_utils_to_path_js__WEBPACK_IMPORTED_MODULE_16__["default"])([...ancestors, parent, pathItemElement]), '$ref']
2808
+ basePath: this.basePath ?? [...(0,_utils_to_path_js__WEBPACK_IMPORTED_MODULE_15__["default"])([...ancestors, parent, pathItemElement]), '$ref']
2789
2809
  });
2790
2810
  referencedElement = await visitAsync(referencedElement, visitor, {
2791
- keyMap: _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_17__.keyMap,
2792
- nodeTypeGetter: _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_17__.getNodeType
2811
+ keyMap: _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_16__.keyMap,
2812
+ nodeTypeGetter: _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_16__.getNodeType
2793
2813
  });
2794
2814
 
2795
2815
  // remove referencing schema from ancestors lineage
@@ -2797,7 +2817,7 @@ const OpenApi3_1SwaggerClientDereferenceVisitor = _swagger_api_apidom_reference_
2797
2817
  this.indirections.pop();
2798
2818
  const mergeAndAnnotateReferencedElement = refedElement => {
2799
2819
  // merge fields from referenced Path Item with referencing one
2800
- const mergedElement = new _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_12__.PathItemElement([...refedElement.content], (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_15__.cloneDeep)(refedElement.meta), (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_15__.cloneDeep)(refedElement.attributes));
2820
+ const mergedElement = new _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_11__.PathItemElement([...refedElement.content], (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_14__.cloneDeep)(refedElement.meta), (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_14__.cloneDeep)(refedElement.attributes));
2801
2821
  // existing keywords from referencing PathItemElement overrides ones from referenced element
2802
2822
  pathItemElement.forEach((value, keyElement, item) => {
2803
2823
  mergedElement.remove((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__["default"])(keyElement));
@@ -2812,13 +2832,13 @@ const OpenApi3_1SwaggerClientDereferenceVisitor = _swagger_api_apidom_reference_
2812
2832
  // annotate referenced element with info about origin
2813
2833
  mergedElement.setMetaProperty('ref-origin', reference.uri);
2814
2834
  // annotate fragment with info about referencing element
2815
- mergedElement.setMetaProperty('ref-referencing-element-id', (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_15__.cloneDeep)(identityManager.identify(pathItemElement)));
2835
+ mergedElement.setMetaProperty('ref-referencing-element-id', (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_14__.cloneDeep)(identityManager.identify(pathItemElement)));
2816
2836
 
2817
2837
  // apply meta patches
2818
2838
  if (this.allowMetaPatches) {
2819
2839
  // apply meta patch only when not already applied
2820
2840
  if (typeof mergedElement.get('$$ref') === 'undefined') {
2821
- const baseURI = _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_8__.resolve(retrievalURI, $refBaseURI);
2841
+ const baseURI = _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_7__.resolve(retrievalURI, $refBaseURI);
2822
2842
  mergedElement.set('$$ref', baseURI);
2823
2843
  }
2824
2844
  }
@@ -2839,12 +2859,12 @@ const OpenApi3_1SwaggerClientDereferenceVisitor = _swagger_api_apidom_reference_
2839
2859
  // transclude referencing element with merged referenced element
2840
2860
  return mergeAndAnnotateReferencedElement(referencedElement);
2841
2861
  } catch (error) {
2842
- const rootCause = (0,_utils_get_root_cause_js__WEBPACK_IMPORTED_MODULE_18__["default"])(error);
2862
+ const rootCause = (0,_utils_get_root_cause_js__WEBPACK_IMPORTED_MODULE_17__["default"])(error);
2843
2863
  const wrappedError = wrapError(rootCause, {
2844
2864
  baseDoc: this.reference.uri,
2845
2865
  $ref: (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__["default"])(pathItemElement.$ref),
2846
- pointer: (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_9__.uriToPointer)((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__["default"])(pathItemElement.$ref)),
2847
- fullPath: this.basePath ?? [...(0,_utils_to_path_js__WEBPACK_IMPORTED_MODULE_16__["default"])([...ancestors, parent, pathItemElement]), '$ref']
2866
+ pointer: (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_8__.uriToPointer)((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__["default"])(pathItemElement.$ref)),
2867
+ fullPath: this.basePath ?? [...(0,_utils_to_path_js__WEBPACK_IMPORTED_MODULE_15__["default"])([...ancestors, parent, pathItemElement]), '$ref']
2848
2868
  });
2849
2869
  this.options.dereference.dereferenceOpts?.errors?.push?.(wrappedError);
2850
2870
  return undefined;
@@ -2871,24 +2891,19 @@ const OpenApi3_1SwaggerClientDereferenceVisitor = _swagger_api_apidom_reference_
2871
2891
  }
2872
2892
 
2873
2893
  // compute baseURI using rules around $id and $ref keywords
2874
- let reference = await this.toReference(_swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_8__.unsanitize(this.reference.uri));
2894
+ let reference = await this.toReference(_swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_7__.unsanitize(this.reference.uri));
2875
2895
  let {
2876
2896
  uri: retrievalURI
2877
2897
  } = reference;
2878
- const $refBaseURI = (0,_swagger_api_apidom_reference_dereference_strategies_openapi_3_1__WEBPACK_IMPORTED_MODULE_19__.resolveSchema$refField)(retrievalURI, referencingElement);
2879
- const $refBaseURIStrippedHash = _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_8__.stripHash($refBaseURI);
2880
- const file = (0,_swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_20__["default"])({
2898
+ const $refBaseURI = (0,_swagger_api_apidom_reference_dereference_strategies_openapi_3_1__WEBPACK_IMPORTED_MODULE_18__.resolveSchema$refField)(retrievalURI, referencingElement);
2899
+ const $refBaseURIStrippedHash = _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_7__.stripHash($refBaseURI);
2900
+ const file = (0,_swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_19__["default"])({
2881
2901
  uri: $refBaseURIStrippedHash
2882
2902
  });
2883
2903
  const isUnknownURI = !this.options.resolve.resolvers.some(r => r.canRead(file));
2884
2904
  const isURL = !isUnknownURI;
2885
- const isExternal = isURL && retrievalURI !== $refBaseURIStrippedHash;
2886
-
2887
- // ignore resolving external Schema Objects
2888
- if (!this.options.resolve.external && isExternal) {
2889
- // skip traversing this schema but traverse all it's child schemas
2890
- return undefined;
2891
- }
2905
+ const isInternalReference = uri => _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_7__.stripHash(this.reference.uri) === uri;
2906
+ const isExternalReference = uri => !isInternalReference(uri);
2892
2907
  this.indirections.push(referencingElement);
2893
2908
 
2894
2909
  // determining reference, proper evaluation and selection mechanism
@@ -2897,32 +2912,65 @@ const OpenApi3_1SwaggerClientDereferenceVisitor = _swagger_api_apidom_reference_
2897
2912
  if (isUnknownURI || isURL) {
2898
2913
  // we're dealing with canonical URI or URL with possible fragment
2899
2914
  const selector = $refBaseURI;
2900
- referencedElement = (0,_swagger_api_apidom_reference_dereference_strategies_openapi_3_1_selectors_uri__WEBPACK_IMPORTED_MODULE_21__.evaluate)(selector, (0,_swagger_api_apidom_reference_dereference_strategies_openapi_3_1__WEBPACK_IMPORTED_MODULE_19__.maybeRefractToSchemaElement)(reference.value.result));
2915
+ referencedElement = (0,_swagger_api_apidom_reference_dereference_strategies_openapi_3_1_selectors_uri__WEBPACK_IMPORTED_MODULE_20__.evaluate)(selector, (0,_swagger_api_apidom_reference_dereference_strategies_openapi_3_1__WEBPACK_IMPORTED_MODULE_18__.maybeRefractToSchemaElement)(reference.value.result));
2901
2916
  } else {
2902
2917
  // we're assuming here that we're dealing with JSON Pointer here
2903
- reference = await this.toReference(_swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_8__.unsanitize($refBaseURI));
2904
- retrievalURI = reference.uri;
2905
- const selector = (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_9__.uriToPointer)($refBaseURI);
2906
- referencedElement = (0,_swagger_api_apidom_reference_dereference_strategies_openapi_3_1__WEBPACK_IMPORTED_MODULE_19__.maybeRefractToSchemaElement)((0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_10__["default"])(selector, reference.value.result));
2918
+ retrievalURI = this.toBaseURI((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__["default"])($refBaseURI));
2919
+
2920
+ // ignore resolving internal Schema Objects
2921
+ if (!this.options.resolve.internal && isInternalReference(retrievalURI)) {
2922
+ // skip traversing this schema element but traverse all it's child elements
2923
+ return undefined;
2924
+ }
2925
+ // ignore resolving external Schema Objects
2926
+ if (!this.options.resolve.external && isExternalReference(retrievalURI)) {
2927
+ // skip traversing this schema element but traverse all it's child elements
2928
+ return undefined;
2929
+ }
2930
+ reference = await this.toReference(_swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_7__.unsanitize($refBaseURI));
2931
+ const selector = (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_8__.uriToPointer)($refBaseURI);
2932
+ referencedElement = (0,_swagger_api_apidom_reference_dereference_strategies_openapi_3_1__WEBPACK_IMPORTED_MODULE_18__.maybeRefractToSchemaElement)((0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_9__["default"])(selector, reference.value.result));
2907
2933
  }
2908
2934
  } catch (error) {
2909
2935
  /**
2910
2936
  * No SchemaElement($id=URL) was not found, so we're going to try to resolve
2911
2937
  * the URL and assume the returned response is a JSON Schema.
2912
2938
  */
2913
- if (isURL && error instanceof _swagger_api_apidom_reference_dereference_strategies_openapi_3_1_selectors_uri__WEBPACK_IMPORTED_MODULE_22__["default"]) {
2914
- if ((0,_swagger_api_apidom_reference_dereference_strategies_openapi_3_1_selectors_$anchor__WEBPACK_IMPORTED_MODULE_23__.isAnchor)((0,_swagger_api_apidom_reference_dereference_strategies_openapi_3_1_selectors_$anchor__WEBPACK_IMPORTED_MODULE_23__.uriToAnchor)($refBaseURI))) {
2939
+ if (isURL && error instanceof _swagger_api_apidom_reference_dereference_strategies_openapi_3_1_selectors_uri__WEBPACK_IMPORTED_MODULE_21__["default"]) {
2940
+ if ((0,_swagger_api_apidom_reference_dereference_strategies_openapi_3_1_selectors_$anchor__WEBPACK_IMPORTED_MODULE_22__.isAnchor)((0,_swagger_api_apidom_reference_dereference_strategies_openapi_3_1_selectors_$anchor__WEBPACK_IMPORTED_MODULE_22__.uriToAnchor)($refBaseURI))) {
2915
2941
  // we're dealing with JSON Schema $anchor here
2916
- reference = await this.toReference(_swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_8__.unsanitize($refBaseURI));
2917
- retrievalURI = reference.uri;
2918
- const selector = (0,_swagger_api_apidom_reference_dereference_strategies_openapi_3_1_selectors_$anchor__WEBPACK_IMPORTED_MODULE_23__.uriToAnchor)($refBaseURI);
2919
- referencedElement = (0,_swagger_api_apidom_reference_dereference_strategies_openapi_3_1_selectors_$anchor__WEBPACK_IMPORTED_MODULE_23__.evaluate)(selector, (0,_swagger_api_apidom_reference_dereference_strategies_openapi_3_1__WEBPACK_IMPORTED_MODULE_19__.maybeRefractToSchemaElement)(reference.value.result));
2942
+ retrievalURI = this.toBaseURI((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__["default"])($refBaseURI));
2943
+
2944
+ // ignore resolving internal Schema Objects
2945
+ if (!this.options.resolve.internal && isInternalReference(retrievalURI)) {
2946
+ // skip traversing this schema element but traverse all it's child elements
2947
+ return undefined;
2948
+ }
2949
+ // ignore resolving external Schema Objects
2950
+ if (!this.options.resolve.external && isExternalReference(retrievalURI)) {
2951
+ // skip traversing this schema element but traverse all it's child elements
2952
+ return undefined;
2953
+ }
2954
+ reference = await this.toReference(_swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_7__.unsanitize($refBaseURI));
2955
+ const selector = (0,_swagger_api_apidom_reference_dereference_strategies_openapi_3_1_selectors_$anchor__WEBPACK_IMPORTED_MODULE_22__.uriToAnchor)($refBaseURI);
2956
+ referencedElement = (0,_swagger_api_apidom_reference_dereference_strategies_openapi_3_1_selectors_$anchor__WEBPACK_IMPORTED_MODULE_22__.evaluate)(selector, (0,_swagger_api_apidom_reference_dereference_strategies_openapi_3_1__WEBPACK_IMPORTED_MODULE_18__.maybeRefractToSchemaElement)(reference.value.result));
2920
2957
  } else {
2921
2958
  // we're assuming here that we're dealing with JSON Pointer here
2922
- reference = await this.toReference(_swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_8__.unsanitize($refBaseURI));
2923
- retrievalURI = reference.uri;
2924
- const selector = (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_9__.uriToPointer)($refBaseURI);
2925
- referencedElement = (0,_swagger_api_apidom_reference_dereference_strategies_openapi_3_1__WEBPACK_IMPORTED_MODULE_19__.maybeRefractToSchemaElement)((0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_10__["default"])(selector, reference.value.result));
2959
+ retrievalURI = this.toBaseURI((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__["default"])($refBaseURI));
2960
+
2961
+ // ignore resolving internal Schema Objects
2962
+ if (!this.options.resolve.internal && isInternalReference(retrievalURI)) {
2963
+ // skip traversing this schema element but traverse all it's child elements
2964
+ return undefined;
2965
+ }
2966
+ // ignore resolving external Schema Objects
2967
+ if (!this.options.resolve.external && isExternalReference(retrievalURI)) {
2968
+ // skip traversing this schema element but traverse all it's child elements
2969
+ return undefined;
2970
+ }
2971
+ reference = await this.toReference(_swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_7__.unsanitize($refBaseURI));
2972
+ const selector = (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_8__.uriToPointer)($refBaseURI);
2973
+ referencedElement = (0,_swagger_api_apidom_reference_dereference_strategies_openapi_3_1__WEBPACK_IMPORTED_MODULE_18__.maybeRefractToSchemaElement)((0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_9__["default"])(selector, reference.value.result));
2926
2974
  }
2927
2975
  } else {
2928
2976
  throw error;
@@ -2931,24 +2979,24 @@ const OpenApi3_1SwaggerClientDereferenceVisitor = _swagger_api_apidom_reference_
2931
2979
 
2932
2980
  // detect direct or indirect reference
2933
2981
  if (this.indirections.includes(referencedElement)) {
2934
- throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_13__["default"]('Recursive Schema Object reference detected');
2982
+ throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_12__["default"]('Recursive Schema Object reference detected');
2935
2983
  }
2936
2984
 
2937
2985
  // detect maximum depth of dereferencing
2938
2986
  if (this.indirections.length > this.options.dereference.maxDepth) {
2939
- throw new _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_14__["default"](`Maximum dereference depth of "${this.options.dereference.maxDepth}" has been exceeded in file "${this.reference.uri}"`);
2987
+ throw new _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_13__["default"](`Maximum dereference depth of "${this.options.dereference.maxDepth}" has been exceeded in file "${this.reference.uri}"`);
2940
2988
  }
2941
2989
 
2942
2990
  // useCircularStructures option processing
2943
2991
  if (!this.useCircularStructures) {
2944
2992
  const hasCycles = ancestorsLineage.includes(referencedElement);
2945
2993
  if (hasCycles) {
2946
- if (_swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_8__.isHttpUrl(retrievalURI) || _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_8__.isFileSystemPath(retrievalURI)) {
2994
+ if (_swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_7__.isHttpUrl(retrievalURI) || _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_7__.isFileSystemPath(retrievalURI)) {
2947
2995
  // make the referencing URL or file system path absolute
2948
- const baseURI = _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_8__.resolve(retrievalURI, $refBaseURI);
2949
- const cycledSchemaElement = new _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_12__.SchemaElement({
2996
+ const baseURI = _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_7__.resolve(retrievalURI, $refBaseURI);
2997
+ const cycledSchemaElement = new _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_11__.SchemaElement({
2950
2998
  $ref: baseURI
2951
- }, (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_15__.cloneDeep)(referencingElement.meta), (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_15__.cloneDeep)(referencingElement.attributes));
2999
+ }, (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_14__.cloneDeep)(referencingElement.meta), (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_14__.cloneDeep)(referencingElement.attributes));
2952
3000
  cycledSchemaElement.get('$ref').classes.push('cycle');
2953
3001
  return cycledSchemaElement;
2954
3002
  }
@@ -2969,18 +3017,18 @@ const OpenApi3_1SwaggerClientDereferenceVisitor = _swagger_api_apidom_reference_
2969
3017
  useCircularStructures: this.useCircularStructures,
2970
3018
  allowMetaPatches: this.allowMetaPatches,
2971
3019
  ancestors: ancestorsLineage,
2972
- basePath: this.basePath ?? [...(0,_utils_to_path_js__WEBPACK_IMPORTED_MODULE_16__["default"])([...ancestors, parent, referencingElement]), '$ref']
3020
+ basePath: this.basePath ?? [...(0,_utils_to_path_js__WEBPACK_IMPORTED_MODULE_15__["default"])([...ancestors, parent, referencingElement]), '$ref']
2973
3021
  });
2974
3022
  referencedElement = await visitAsync(referencedElement, mergeVisitor, {
2975
- keyMap: _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_17__.keyMap,
2976
- nodeTypeGetter: _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_17__.getNodeType
3023
+ keyMap: _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_16__.keyMap,
3024
+ nodeTypeGetter: _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_16__.getNodeType
2977
3025
  });
2978
3026
 
2979
3027
  // remove referencing schema from ancestors lineage
2980
3028
  directAncestors.delete(referencingElement);
2981
3029
  this.indirections.pop();
2982
- if ((0,_swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_7__.isBooleanJsonSchemaElement)(referencedElement)) {
2983
- const booleanJsonSchemaElement = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_15__.cloneDeep)(referencedElement);
3030
+ if ((0,_swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_23__.isBooleanJsonSchemaElement)(referencedElement)) {
3031
+ const booleanJsonSchemaElement = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_14__.cloneDeep)(referencedElement);
2984
3032
  // annotate referenced element with info about original referencing element
2985
3033
  booleanJsonSchemaElement.setMetaProperty('ref-fields', {
2986
3034
  $ref: (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__["default"])(referencingElement.$ref)
@@ -2988,12 +3036,12 @@ const OpenApi3_1SwaggerClientDereferenceVisitor = _swagger_api_apidom_reference_
2988
3036
  // annotate referenced element with info about origin
2989
3037
  booleanJsonSchemaElement.setMetaProperty('ref-origin', reference.uri);
2990
3038
  // annotate fragment with info about referencing element
2991
- booleanJsonSchemaElement.setMetaProperty('ref-referencing-element-id', (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_15__.cloneDeep)(identityManager.identify(referencingElement)));
3039
+ booleanJsonSchemaElement.setMetaProperty('ref-referencing-element-id', (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_14__.cloneDeep)(identityManager.identify(referencingElement)));
2992
3040
  return booleanJsonSchemaElement;
2993
3041
  }
2994
3042
  const mergeAndAnnotateReferencedElement = refedElement => {
2995
3043
  // Schema Object - merge keywords from referenced schema with referencing schema
2996
- const mergedElement = new _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_12__.SchemaElement([...refedElement.content], (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_15__.cloneDeep)(refedElement.meta), (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_15__.cloneDeep)(refedElement.attributes));
3044
+ const mergedElement = new _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_11__.SchemaElement([...refedElement.content], (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_14__.cloneDeep)(refedElement.meta), (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_14__.cloneDeep)(refedElement.attributes));
2997
3045
  // existing keywords from referencing schema overrides ones from referenced schema
2998
3046
  referencingElement.forEach((value, keyElement, item) => {
2999
3047
  mergedElement.remove((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__["default"])(keyElement));
@@ -3007,13 +3055,13 @@ const OpenApi3_1SwaggerClientDereferenceVisitor = _swagger_api_apidom_reference_
3007
3055
  // annotate fragment with info about origin
3008
3056
  mergedElement.setMetaProperty('ref-origin', reference.uri);
3009
3057
  // annotate fragment with info about referencing element
3010
- mergedElement.setMetaProperty('ref-referencing-element-id', (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_15__.cloneDeep)(identityManager.identify(referencingElement)));
3058
+ mergedElement.setMetaProperty('ref-referencing-element-id', (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_14__.cloneDeep)(identityManager.identify(referencingElement)));
3011
3059
 
3012
3060
  // allowMetaPatches option processing
3013
3061
  if (this.allowMetaPatches) {
3014
3062
  // apply meta patch only when not already applied
3015
3063
  if (typeof mergedElement.get('$$ref') === 'undefined') {
3016
- const baseURI = _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_8__.resolve(retrievalURI, $refBaseURI);
3064
+ const baseURI = _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_7__.resolve(retrievalURI, $refBaseURI);
3017
3065
  mergedElement.set('$$ref', baseURI);
3018
3066
  }
3019
3067
  }
@@ -3034,11 +3082,11 @@ const OpenApi3_1SwaggerClientDereferenceVisitor = _swagger_api_apidom_reference_
3034
3082
  // transclude referencing element with merged referenced element
3035
3083
  return mergeAndAnnotateReferencedElement(referencedElement);
3036
3084
  } catch (error) {
3037
- const rootCause = (0,_utils_get_root_cause_js__WEBPACK_IMPORTED_MODULE_18__["default"])(error);
3085
+ const rootCause = (0,_utils_get_root_cause_js__WEBPACK_IMPORTED_MODULE_17__["default"])(error);
3038
3086
  const wrappedError = new _errors_index_js__WEBPACK_IMPORTED_MODULE_1__.SchemaRefError(`Could not resolve reference: ${rootCause.message}`, {
3039
3087
  baseDoc: this.reference.uri,
3040
3088
  $ref: (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__["default"])(referencingElement.$ref),
3041
- fullPath: this.basePath ?? [...(0,_utils_to_path_js__WEBPACK_IMPORTED_MODULE_16__["default"])([...ancestors, parent, referencingElement]), '$ref']
3089
+ fullPath: this.basePath ?? [...(0,_utils_to_path_js__WEBPACK_IMPORTED_MODULE_15__["default"])([...ancestors, parent, referencingElement]), '$ref']
3042
3090
  }, rootCause);
3043
3091
  this.options.dereference.dereferenceOpts?.errors?.push?.(wrappedError);
3044
3092
  return undefined;
@@ -3056,11 +3104,11 @@ const OpenApi3_1SwaggerClientDereferenceVisitor = _swagger_api_apidom_reference_
3056
3104
  try {
3057
3105
  return await _swagger_api_apidom_reference_dereference_strategies_openapi_3_1__WEBPACK_IMPORTED_MODULE_5__["default"].compose.methods.ExampleElement.call(this, exampleElement, key, parent, path, ancestors);
3058
3106
  } catch (error) {
3059
- const rootCause = (0,_utils_get_root_cause_js__WEBPACK_IMPORTED_MODULE_18__["default"])(error);
3107
+ const rootCause = (0,_utils_get_root_cause_js__WEBPACK_IMPORTED_MODULE_17__["default"])(error);
3060
3108
  const wrappedError = wrapError(rootCause, {
3061
3109
  baseDoc: this.reference.uri,
3062
3110
  externalValue: (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__["default"])(exampleElement.externalValue),
3063
- fullPath: this.basePath ?? [...(0,_utils_to_path_js__WEBPACK_IMPORTED_MODULE_16__["default"])([...ancestors, parent, exampleElement]), 'externalValue']
3111
+ fullPath: this.basePath ?? [...(0,_utils_to_path_js__WEBPACK_IMPORTED_MODULE_15__["default"])([...ancestors, parent, exampleElement]), 'externalValue']
3064
3112
  });
3065
3113
  this.options.dereference.dereferenceOpts?.errors?.push?.(wrappedError);
3066
3114
  return undefined;
@@ -4185,7 +4233,8 @@ const resolveOpenAPI31Strategy = async options => {
4185
4233
  refSet,
4186
4234
  dereferenceOpts: {
4187
4235
  errors
4188
- }
4236
+ },
4237
+ immutable: false
4189
4238
  }
4190
4239
  });
4191
4240
  const transcluded = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_20__.transclude)(fragmentElement, dereferenced, openApiElement);
@@ -5959,38 +6008,26 @@ module.exports = function callBoundIntrinsic(name, allowMissing) {
5959
6008
 
5960
6009
  var bind = __webpack_require__(66743);
5961
6010
  var GetIntrinsic = __webpack_require__(70453);
6011
+ var setFunctionLength = __webpack_require__(96897);
5962
6012
 
6013
+ var $TypeError = __webpack_require__(69675);
5963
6014
  var $apply = GetIntrinsic('%Function.prototype.apply%');
5964
6015
  var $call = GetIntrinsic('%Function.prototype.call%');
5965
6016
  var $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);
5966
6017
 
5967
- var $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);
5968
- var $defineProperty = GetIntrinsic('%Object.defineProperty%', true);
6018
+ var $defineProperty = __webpack_require__(30655);
5969
6019
  var $max = GetIntrinsic('%Math.max%');
5970
6020
 
5971
- if ($defineProperty) {
5972
- try {
5973
- $defineProperty({}, 'a', { value: 1 });
5974
- } catch (e) {
5975
- // IE 8 has a broken defineProperty
5976
- $defineProperty = null;
5977
- }
5978
- }
5979
-
5980
6021
  module.exports = function callBind(originalFunction) {
5981
- var func = $reflectApply(bind, $call, arguments);
5982
- if ($gOPD && $defineProperty) {
5983
- var desc = $gOPD(func, 'length');
5984
- if (desc.configurable) {
5985
- // original length, plus the receiver, minus any additional arguments (after the receiver)
5986
- $defineProperty(
5987
- func,
5988
- 'length',
5989
- { value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) }
5990
- );
5991
- }
6022
+ if (typeof originalFunction !== 'function') {
6023
+ throw new $TypeError('a function is required');
5992
6024
  }
5993
- return func;
6025
+ var func = $reflectApply(bind, $call, arguments);
6026
+ return setFunctionLength(
6027
+ func,
6028
+ 1 + $max(0, originalFunction.length - (arguments.length - 1)),
6029
+ true
6030
+ );
5994
6031
  };
5995
6032
 
5996
6033
  var applyBind = function applyBind() {
@@ -9434,6 +9471,178 @@ var deepmerge_1 = deepmerge;
9434
9471
  module.exports = deepmerge_1;
9435
9472
 
9436
9473
 
9474
+ /***/ }),
9475
+
9476
+ /***/ 30041:
9477
+ /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
9478
+
9479
+ "use strict";
9480
+
9481
+
9482
+ var $defineProperty = __webpack_require__(30655);
9483
+
9484
+ var $SyntaxError = __webpack_require__(58068);
9485
+ var $TypeError = __webpack_require__(69675);
9486
+
9487
+ var gopd = __webpack_require__(75795);
9488
+
9489
+ /** @type {import('.')} */
9490
+ module.exports = function defineDataProperty(
9491
+ obj,
9492
+ property,
9493
+ value
9494
+ ) {
9495
+ if (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {
9496
+ throw new $TypeError('`obj` must be an object or a function`');
9497
+ }
9498
+ if (typeof property !== 'string' && typeof property !== 'symbol') {
9499
+ throw new $TypeError('`property` must be a string or a symbol`');
9500
+ }
9501
+ if (arguments.length > 3 && typeof arguments[3] !== 'boolean' && arguments[3] !== null) {
9502
+ throw new $TypeError('`nonEnumerable`, if provided, must be a boolean or null');
9503
+ }
9504
+ if (arguments.length > 4 && typeof arguments[4] !== 'boolean' && arguments[4] !== null) {
9505
+ throw new $TypeError('`nonWritable`, if provided, must be a boolean or null');
9506
+ }
9507
+ if (arguments.length > 5 && typeof arguments[5] !== 'boolean' && arguments[5] !== null) {
9508
+ throw new $TypeError('`nonConfigurable`, if provided, must be a boolean or null');
9509
+ }
9510
+ if (arguments.length > 6 && typeof arguments[6] !== 'boolean') {
9511
+ throw new $TypeError('`loose`, if provided, must be a boolean');
9512
+ }
9513
+
9514
+ var nonEnumerable = arguments.length > 3 ? arguments[3] : null;
9515
+ var nonWritable = arguments.length > 4 ? arguments[4] : null;
9516
+ var nonConfigurable = arguments.length > 5 ? arguments[5] : null;
9517
+ var loose = arguments.length > 6 ? arguments[6] : false;
9518
+
9519
+ /* @type {false | TypedPropertyDescriptor<unknown>} */
9520
+ var desc = !!gopd && gopd(obj, property);
9521
+
9522
+ if ($defineProperty) {
9523
+ $defineProperty(obj, property, {
9524
+ configurable: nonConfigurable === null && desc ? desc.configurable : !nonConfigurable,
9525
+ enumerable: nonEnumerable === null && desc ? desc.enumerable : !nonEnumerable,
9526
+ value: value,
9527
+ writable: nonWritable === null && desc ? desc.writable : !nonWritable
9528
+ });
9529
+ } else if (loose || (!nonEnumerable && !nonWritable && !nonConfigurable)) {
9530
+ // must fall back to [[Set]], and was not explicitly asked to make non-enumerable, non-writable, or non-configurable
9531
+ obj[property] = value; // eslint-disable-line no-param-reassign
9532
+ } else {
9533
+ throw new $SyntaxError('This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.');
9534
+ }
9535
+ };
9536
+
9537
+
9538
+ /***/ }),
9539
+
9540
+ /***/ 30655:
9541
+ /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
9542
+
9543
+ "use strict";
9544
+
9545
+
9546
+ var GetIntrinsic = __webpack_require__(70453);
9547
+
9548
+ /** @type {import('.')} */
9549
+ var $defineProperty = GetIntrinsic('%Object.defineProperty%', true) || false;
9550
+ if ($defineProperty) {
9551
+ try {
9552
+ $defineProperty({}, 'a', { value: 1 });
9553
+ } catch (e) {
9554
+ // IE 8 has a broken defineProperty
9555
+ $defineProperty = false;
9556
+ }
9557
+ }
9558
+
9559
+ module.exports = $defineProperty;
9560
+
9561
+
9562
+ /***/ }),
9563
+
9564
+ /***/ 41237:
9565
+ /***/ ((module) => {
9566
+
9567
+ "use strict";
9568
+
9569
+
9570
+ /** @type {import('./eval')} */
9571
+ module.exports = EvalError;
9572
+
9573
+
9574
+ /***/ }),
9575
+
9576
+ /***/ 69383:
9577
+ /***/ ((module) => {
9578
+
9579
+ "use strict";
9580
+
9581
+
9582
+ /** @type {import('.')} */
9583
+ module.exports = Error;
9584
+
9585
+
9586
+ /***/ }),
9587
+
9588
+ /***/ 79290:
9589
+ /***/ ((module) => {
9590
+
9591
+ "use strict";
9592
+
9593
+
9594
+ /** @type {import('./range')} */
9595
+ module.exports = RangeError;
9596
+
9597
+
9598
+ /***/ }),
9599
+
9600
+ /***/ 79538:
9601
+ /***/ ((module) => {
9602
+
9603
+ "use strict";
9604
+
9605
+
9606
+ /** @type {import('./ref')} */
9607
+ module.exports = ReferenceError;
9608
+
9609
+
9610
+ /***/ }),
9611
+
9612
+ /***/ 58068:
9613
+ /***/ ((module) => {
9614
+
9615
+ "use strict";
9616
+
9617
+
9618
+ /** @type {import('./syntax')} */
9619
+ module.exports = SyntaxError;
9620
+
9621
+
9622
+ /***/ }),
9623
+
9624
+ /***/ 69675:
9625
+ /***/ ((module) => {
9626
+
9627
+ "use strict";
9628
+
9629
+
9630
+ /** @type {import('./type')} */
9631
+ module.exports = TypeError;
9632
+
9633
+
9634
+ /***/ }),
9635
+
9636
+ /***/ 35345:
9637
+ /***/ ((module) => {
9638
+
9639
+ "use strict";
9640
+
9641
+
9642
+ /** @type {import('./uri')} */
9643
+ module.exports = URIError;
9644
+
9645
+
9437
9646
  /***/ }),
9438
9647
 
9439
9648
  /***/ 89353:
@@ -9549,9 +9758,15 @@ module.exports = Function.prototype.bind || implementation;
9549
9758
 
9550
9759
  var undefined;
9551
9760
 
9552
- var $SyntaxError = SyntaxError;
9761
+ var $Error = __webpack_require__(69383);
9762
+ var $EvalError = __webpack_require__(41237);
9763
+ var $RangeError = __webpack_require__(79290);
9764
+ var $ReferenceError = __webpack_require__(79538);
9765
+ var $SyntaxError = __webpack_require__(58068);
9766
+ var $TypeError = __webpack_require__(69675);
9767
+ var $URIError = __webpack_require__(35345);
9768
+
9553
9769
  var $Function = Function;
9554
- var $TypeError = TypeError;
9555
9770
 
9556
9771
  // eslint-disable-next-line consistent-return
9557
9772
  var getEvalledConstructor = function (expressionSyntax) {
@@ -9603,6 +9818,7 @@ var needsEval = {};
9603
9818
  var TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array);
9604
9819
 
9605
9820
  var INTRINSICS = {
9821
+ __proto__: null,
9606
9822
  '%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,
9607
9823
  '%Array%': Array,
9608
9824
  '%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,
@@ -9623,9 +9839,9 @@ var INTRINSICS = {
9623
9839
  '%decodeURIComponent%': decodeURIComponent,
9624
9840
  '%encodeURI%': encodeURI,
9625
9841
  '%encodeURIComponent%': encodeURIComponent,
9626
- '%Error%': Error,
9842
+ '%Error%': $Error,
9627
9843
  '%eval%': eval, // eslint-disable-line no-eval
9628
- '%EvalError%': EvalError,
9844
+ '%EvalError%': $EvalError,
9629
9845
  '%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,
9630
9846
  '%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,
9631
9847
  '%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,
@@ -9647,8 +9863,8 @@ var INTRINSICS = {
9647
9863
  '%parseInt%': parseInt,
9648
9864
  '%Promise%': typeof Promise === 'undefined' ? undefined : Promise,
9649
9865
  '%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,
9650
- '%RangeError%': RangeError,
9651
- '%ReferenceError%': ReferenceError,
9866
+ '%RangeError%': $RangeError,
9867
+ '%ReferenceError%': $ReferenceError,
9652
9868
  '%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,
9653
9869
  '%RegExp%': RegExp,
9654
9870
  '%Set%': typeof Set === 'undefined' ? undefined : Set,
@@ -9665,7 +9881,7 @@ var INTRINSICS = {
9665
9881
  '%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,
9666
9882
  '%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,
9667
9883
  '%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,
9668
- '%URIError%': URIError,
9884
+ '%URIError%': $URIError,
9669
9885
  '%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,
9670
9886
  '%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,
9671
9887
  '%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet
@@ -9707,6 +9923,7 @@ var doEval = function doEval(name) {
9707
9923
  };
9708
9924
 
9709
9925
  var LEGACY_ALIASES = {
9926
+ __proto__: null,
9710
9927
  '%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],
9711
9928
  '%ArrayPrototype%': ['Array', 'prototype'],
9712
9929
  '%ArrayProto_entries%': ['Array', 'prototype', 'entries'],
@@ -9761,7 +9978,7 @@ var LEGACY_ALIASES = {
9761
9978
  };
9762
9979
 
9763
9980
  var bind = __webpack_require__(66743);
9764
- var hasOwn = __webpack_require__(19030);
9981
+ var hasOwn = __webpack_require__(9957);
9765
9982
  var $concat = bind.call(Function.call, Array.prototype.concat);
9766
9983
  var $spliceApply = bind.call(Function.apply, Array.prototype.splice);
9767
9984
  var $replace = bind.call(Function.call, String.prototype.replace);
@@ -9898,6 +10115,60 @@ module.exports = function GetIntrinsic(name, allowMissing) {
9898
10115
  };
9899
10116
 
9900
10117
 
10118
+ /***/ }),
10119
+
10120
+ /***/ 75795:
10121
+ /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10122
+
10123
+ "use strict";
10124
+
10125
+
10126
+ var GetIntrinsic = __webpack_require__(70453);
10127
+
10128
+ var $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);
10129
+
10130
+ if ($gOPD) {
10131
+ try {
10132
+ $gOPD([], 'length');
10133
+ } catch (e) {
10134
+ // IE 8 has a broken gOPD
10135
+ $gOPD = null;
10136
+ }
10137
+ }
10138
+
10139
+ module.exports = $gOPD;
10140
+
10141
+
10142
+ /***/ }),
10143
+
10144
+ /***/ 30592:
10145
+ /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10146
+
10147
+ "use strict";
10148
+
10149
+
10150
+ var $defineProperty = __webpack_require__(30655);
10151
+
10152
+ var hasPropertyDescriptors = function hasPropertyDescriptors() {
10153
+ return !!$defineProperty;
10154
+ };
10155
+
10156
+ hasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {
10157
+ // node v0.6 has a bug where array lengths can be Set but not Defined
10158
+ if (!$defineProperty) {
10159
+ return null;
10160
+ }
10161
+ try {
10162
+ return $defineProperty([], 'length', { value: 1 }).length !== 1;
10163
+ } catch (e) {
10164
+ // In Firefox 4-22, defining length on an array throws an exception.
10165
+ return true;
10166
+ }
10167
+ };
10168
+
10169
+ module.exports = hasPropertyDescriptors;
10170
+
10171
+
9901
10172
  /***/ }),
9902
10173
 
9903
10174
  /***/ 80024:
@@ -9990,15 +10261,18 @@ module.exports = function hasSymbols() {
9990
10261
 
9991
10262
  /***/ }),
9992
10263
 
9993
- /***/ 19030:
10264
+ /***/ 9957:
9994
10265
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
9995
10266
 
9996
10267
  "use strict";
9997
10268
 
9998
10269
 
10270
+ var call = Function.prototype.call;
10271
+ var $hasOwn = Object.prototype.hasOwnProperty;
9999
10272
  var bind = __webpack_require__(66743);
10000
10273
 
10001
- module.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);
10274
+ /** @type {(o: {}, p: PropertyKey) => p is keyof o} */
10275
+ module.exports = bind.call(call, $hasOwn);
10002
10276
 
10003
10277
 
10004
10278
  /***/ }),
@@ -15953,6 +16227,14 @@ module.exports = function inspect_(obj, options, depth, seen) {
15953
16227
  if (isString(obj)) {
15954
16228
  return markBoxed(inspect(String(obj)));
15955
16229
  }
16230
+ // note: in IE 8, sometimes `global !== window` but both are the prototypes of each other
16231
+ /* eslint-env browser */
16232
+ if (typeof window !== 'undefined' && obj === window) {
16233
+ return '{ [object Window] }';
16234
+ }
16235
+ if (obj === __webpack_require__.g) {
16236
+ return '{ [object globalThis] }';
16237
+ }
15956
16238
  if (!isDate(obj) && !isRegExp(obj)) {
15957
16239
  var ys = arrObjKeys(obj, inspect);
15958
16240
  var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;
@@ -16486,15 +16768,18 @@ var isArray = Array.isArray;
16486
16768
 
16487
16769
  var defaults = {
16488
16770
  allowDots: false,
16771
+ allowEmptyArrays: false,
16489
16772
  allowPrototypes: false,
16490
16773
  allowSparse: false,
16491
16774
  arrayLimit: 20,
16492
16775
  charset: 'utf-8',
16493
16776
  charsetSentinel: false,
16494
16777
  comma: false,
16778
+ decodeDotInKeys: true,
16495
16779
  decoder: utils.decode,
16496
16780
  delimiter: '&',
16497
16781
  depth: 5,
16782
+ duplicates: 'combine',
16498
16783
  ignoreQueryPrefix: false,
16499
16784
  interpretNumericEntities: false,
16500
16785
  parameterLimit: 1000,
@@ -16582,9 +16867,10 @@ var parseValues = function parseQueryStringValues(str, options) {
16582
16867
  val = isArray(val) ? [val] : val;
16583
16868
  }
16584
16869
 
16585
- if (has.call(obj, key)) {
16870
+ var existing = has.call(obj, key);
16871
+ if (existing && options.duplicates === 'combine') {
16586
16872
  obj[key] = utils.combine(obj[key], val);
16587
- } else {
16873
+ } else if (!existing || options.duplicates === 'last') {
16588
16874
  obj[key] = val;
16589
16875
  }
16590
16876
  }
@@ -16600,24 +16886,25 @@ var parseObject = function (chain, val, options, valuesParsed) {
16600
16886
  var root = chain[i];
16601
16887
 
16602
16888
  if (root === '[]' && options.parseArrays) {
16603
- obj = [].concat(leaf);
16889
+ obj = options.allowEmptyArrays && leaf === '' ? [] : [].concat(leaf);
16604
16890
  } else {
16605
16891
  obj = options.plainObjects ? Object.create(null) : {};
16606
16892
  var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;
16607
- var index = parseInt(cleanRoot, 10);
16608
- if (!options.parseArrays && cleanRoot === '') {
16893
+ var decodedRoot = options.decodeDotInKeys ? cleanRoot.replace(/%2E/g, '.') : cleanRoot;
16894
+ var index = parseInt(decodedRoot, 10);
16895
+ if (!options.parseArrays && decodedRoot === '') {
16609
16896
  obj = { 0: leaf };
16610
16897
  } else if (
16611
16898
  !isNaN(index)
16612
- && root !== cleanRoot
16613
- && String(index) === cleanRoot
16899
+ && root !== decodedRoot
16900
+ && String(index) === decodedRoot
16614
16901
  && index >= 0
16615
16902
  && (options.parseArrays && index <= options.arrayLimit)
16616
16903
  ) {
16617
16904
  obj = [];
16618
16905
  obj[index] = leaf;
16619
- } else if (cleanRoot !== '__proto__') {
16620
- obj[cleanRoot] = leaf;
16906
+ } else if (decodedRoot !== '__proto__') {
16907
+ obj[decodedRoot] = leaf;
16621
16908
  }
16622
16909
  }
16623
16910
 
@@ -16686,7 +16973,15 @@ var normalizeParseOptions = function normalizeParseOptions(opts) {
16686
16973
  return defaults;
16687
16974
  }
16688
16975
 
16689
- if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') {
16976
+ if (typeof opts.allowEmptyArrays !== 'undefined' && typeof opts.allowEmptyArrays !== 'boolean') {
16977
+ throw new TypeError('`allowEmptyArrays` option can only be `true` or `false`, when provided');
16978
+ }
16979
+
16980
+ if (typeof opts.decodeDotInKeys !== 'undefined' && typeof opts.decodeDotInKeys !== 'boolean') {
16981
+ throw new TypeError('`decodeDotInKeys` option can only be `true` or `false`, when provided');
16982
+ }
16983
+
16984
+ if (opts.decoder !== null && typeof opts.decoder !== 'undefined' && typeof opts.decoder !== 'function') {
16690
16985
  throw new TypeError('Decoder has to be a function.');
16691
16986
  }
16692
16987
 
@@ -16695,18 +16990,29 @@ var normalizeParseOptions = function normalizeParseOptions(opts) {
16695
16990
  }
16696
16991
  var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;
16697
16992
 
16993
+ var duplicates = typeof opts.duplicates === 'undefined' ? defaults.duplicates : opts.duplicates;
16994
+
16995
+ if (duplicates !== 'combine' && duplicates !== 'first' && duplicates !== 'last') {
16996
+ throw new TypeError('The duplicates option must be either combine, first, or last');
16997
+ }
16998
+
16999
+ var allowDots = typeof opts.allowDots === 'undefined' ? opts.decodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots;
17000
+
16698
17001
  return {
16699
- allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,
17002
+ allowDots: allowDots,
17003
+ allowEmptyArrays: typeof opts.allowEmptyArrays === 'boolean' ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,
16700
17004
  allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,
16701
17005
  allowSparse: typeof opts.allowSparse === 'boolean' ? opts.allowSparse : defaults.allowSparse,
16702
17006
  arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,
16703
17007
  charset: charset,
16704
17008
  charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,
16705
17009
  comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,
17010
+ decodeDotInKeys: typeof opts.decodeDotInKeys === 'boolean' ? opts.decodeDotInKeys : defaults.decodeDotInKeys,
16706
17011
  decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,
16707
17012
  delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,
16708
17013
  // eslint-disable-next-line no-implicit-coercion, no-extra-parens
16709
17014
  depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,
17015
+ duplicates: duplicates,
16710
17016
  ignoreQueryPrefix: opts.ignoreQueryPrefix === true,
16711
17017
  interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,
16712
17018
  parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,
@@ -16781,10 +17087,13 @@ var defaultFormat = formats['default'];
16781
17087
  var defaults = {
16782
17088
  addQueryPrefix: false,
16783
17089
  allowDots: false,
17090
+ allowEmptyArrays: false,
17091
+ arrayFormat: 'indices',
16784
17092
  charset: 'utf-8',
16785
17093
  charsetSentinel: false,
16786
17094
  delimiter: '&',
16787
17095
  encode: true,
17096
+ encodeDotInKeys: false,
16788
17097
  encoder: utils.encode,
16789
17098
  encodeValuesOnly: false,
16790
17099
  format: defaultFormat,
@@ -16813,8 +17122,10 @@ var stringify = function stringify(
16813
17122
  prefix,
16814
17123
  generateArrayPrefix,
16815
17124
  commaRoundTrip,
17125
+ allowEmptyArrays,
16816
17126
  strictNullHandling,
16817
17127
  skipNulls,
17128
+ encodeDotInKeys,
16818
17129
  encoder,
16819
17130
  filter,
16820
17131
  sort,
@@ -16896,7 +17207,13 @@ var stringify = function stringify(
16896
17207
  objKeys = sort ? keys.sort(sort) : keys;
16897
17208
  }
16898
17209
 
16899
- var adjustedPrefix = commaRoundTrip && isArray(obj) && obj.length === 1 ? prefix + '[]' : prefix;
17210
+ var encodedPrefix = encodeDotInKeys ? prefix.replace(/\./g, '%2E') : prefix;
17211
+
17212
+ var adjustedPrefix = commaRoundTrip && isArray(obj) && obj.length === 1 ? encodedPrefix + '[]' : encodedPrefix;
17213
+
17214
+ if (allowEmptyArrays && isArray(obj) && obj.length === 0) {
17215
+ return adjustedPrefix + '[]';
17216
+ }
16900
17217
 
16901
17218
  for (var j = 0; j < objKeys.length; ++j) {
16902
17219
  var key = objKeys[j];
@@ -16906,9 +17223,10 @@ var stringify = function stringify(
16906
17223
  continue;
16907
17224
  }
16908
17225
 
17226
+ var encodedKey = allowDots && encodeDotInKeys ? key.replace(/\./g, '%2E') : key;
16909
17227
  var keyPrefix = isArray(obj)
16910
- ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(adjustedPrefix, key) : adjustedPrefix
16911
- : adjustedPrefix + (allowDots ? '.' + key : '[' + key + ']');
17228
+ ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(adjustedPrefix, encodedKey) : adjustedPrefix
17229
+ : adjustedPrefix + (allowDots ? '.' + encodedKey : '[' + encodedKey + ']');
16912
17230
 
16913
17231
  sideChannel.set(object, step);
16914
17232
  var valueSideChannel = getSideChannel();
@@ -16918,8 +17236,10 @@ var stringify = function stringify(
16918
17236
  keyPrefix,
16919
17237
  generateArrayPrefix,
16920
17238
  commaRoundTrip,
17239
+ allowEmptyArrays,
16921
17240
  strictNullHandling,
16922
17241
  skipNulls,
17242
+ encodeDotInKeys,
16923
17243
  generateArrayPrefix === 'comma' && encodeValuesOnly && isArray(obj) ? null : encoder,
16924
17244
  filter,
16925
17245
  sort,
@@ -16941,6 +17261,14 @@ var normalizeStringifyOptions = function normalizeStringifyOptions(opts) {
16941
17261
  return defaults;
16942
17262
  }
16943
17263
 
17264
+ if (typeof opts.allowEmptyArrays !== 'undefined' && typeof opts.allowEmptyArrays !== 'boolean') {
17265
+ throw new TypeError('`allowEmptyArrays` option can only be `true` or `false`, when provided');
17266
+ }
17267
+
17268
+ if (typeof opts.encodeDotInKeys !== 'undefined' && typeof opts.encodeDotInKeys !== 'boolean') {
17269
+ throw new TypeError('`encodeDotInKeys` option can only be `true` or `false`, when provided');
17270
+ }
17271
+
16944
17272
  if (opts.encoder !== null && typeof opts.encoder !== 'undefined' && typeof opts.encoder !== 'function') {
16945
17273
  throw new TypeError('Encoder has to be a function.');
16946
17274
  }
@@ -16964,13 +17292,32 @@ var normalizeStringifyOptions = function normalizeStringifyOptions(opts) {
16964
17292
  filter = opts.filter;
16965
17293
  }
16966
17294
 
17295
+ var arrayFormat;
17296
+ if (opts.arrayFormat in arrayPrefixGenerators) {
17297
+ arrayFormat = opts.arrayFormat;
17298
+ } else if ('indices' in opts) {
17299
+ arrayFormat = opts.indices ? 'indices' : 'repeat';
17300
+ } else {
17301
+ arrayFormat = defaults.arrayFormat;
17302
+ }
17303
+
17304
+ if ('commaRoundTrip' in opts && typeof opts.commaRoundTrip !== 'boolean') {
17305
+ throw new TypeError('`commaRoundTrip` must be a boolean, or absent');
17306
+ }
17307
+
17308
+ var allowDots = typeof opts.allowDots === 'undefined' ? opts.encodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots;
17309
+
16967
17310
  return {
16968
17311
  addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,
16969
- allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,
17312
+ allowDots: allowDots,
17313
+ allowEmptyArrays: typeof opts.allowEmptyArrays === 'boolean' ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,
17314
+ arrayFormat: arrayFormat,
16970
17315
  charset: charset,
16971
17316
  charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,
17317
+ commaRoundTrip: opts.commaRoundTrip,
16972
17318
  delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,
16973
17319
  encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,
17320
+ encodeDotInKeys: typeof opts.encodeDotInKeys === 'boolean' ? opts.encodeDotInKeys : defaults.encodeDotInKeys,
16974
17321
  encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,
16975
17322
  encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,
16976
17323
  filter: filter,
@@ -17004,20 +17351,8 @@ module.exports = function (object, opts) {
17004
17351
  return '';
17005
17352
  }
17006
17353
 
17007
- var arrayFormat;
17008
- if (opts && opts.arrayFormat in arrayPrefixGenerators) {
17009
- arrayFormat = opts.arrayFormat;
17010
- } else if (opts && 'indices' in opts) {
17011
- arrayFormat = opts.indices ? 'indices' : 'repeat';
17012
- } else {
17013
- arrayFormat = 'indices';
17014
- }
17015
-
17016
- var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];
17017
- if (opts && 'commaRoundTrip' in opts && typeof opts.commaRoundTrip !== 'boolean') {
17018
- throw new TypeError('`commaRoundTrip` must be a boolean, or absent');
17019
- }
17020
- var commaRoundTrip = generateArrayPrefix === 'comma' && opts && opts.commaRoundTrip;
17354
+ var generateArrayPrefix = arrayPrefixGenerators[options.arrayFormat];
17355
+ var commaRoundTrip = generateArrayPrefix === 'comma' && options.commaRoundTrip;
17021
17356
 
17022
17357
  if (!objKeys) {
17023
17358
  objKeys = Object.keys(obj);
@@ -17039,8 +17374,10 @@ module.exports = function (object, opts) {
17039
17374
  key,
17040
17375
  generateArrayPrefix,
17041
17376
  commaRoundTrip,
17377
+ options.allowEmptyArrays,
17042
17378
  options.strictNullHandling,
17043
17379
  options.skipNulls,
17380
+ options.encodeDotInKeys,
17044
17381
  options.encode ? options.encoder : null,
17045
17382
  options.filter,
17046
17383
  options.sort,
@@ -17331,45 +17668,6 @@ module.exports = {
17331
17668
  };
17332
17669
 
17333
17670
 
17334
- /***/ }),
17335
-
17336
- /***/ 7408:
17337
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
17338
-
17339
- "use strict";
17340
- __webpack_require__.r(__webpack_exports__);
17341
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
17342
- /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
17343
- /* harmony export */ });
17344
- /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(25845);
17345
- /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(29461);
17346
-
17347
-
17348
- /**
17349
- * Composable shortcut for `Promise.all`.
17350
- *
17351
- * The `allP` method returns a single Promise that resolves when all of the promises
17352
- * in the iterable argument have resolved or when the iterable argument contains no promises.
17353
- * It rejects with the reason of the first promise that rejects.
17354
- *
17355
- * @func allP
17356
- * @memberOf RA
17357
- * @since {@link https://char0n.github.io/ramda-adjunct/2.3.0|v2.3.0}
17358
- * @category Function
17359
- * @sig [Promise a] -> Promise [a]
17360
- * @param {Iterable.<*>} iterable An iterable object such as an Array or String
17361
- * @return {Promise} An already resolved Promise if the iterable passed is empty. An asynchronously resolved Promise if the iterable passed contains no promises. Note, Google Chrome 58 returns an already resolved promise in this case. A pending Promise in all other cases. This returned promise is then resolved/rejected asynchronously (as soon as the stack is empty) when all the promises in the given iterable have resolved, or if any of the promises reject. See the example about "Asynchronicity or synchronicity of allP" below.
17362
- * @see {@link RA.resolveP|resolveP}, {@link RA.rejectP|rejectP}
17363
- * @example
17364
- *
17365
- * RA.allP([1, 2]); //=> Promise([1, 2])
17366
- * RA.allP([1, Promise.resolve(2)]); //=> Promise([1, 2])
17367
- * RA.allP([Promise.resolve(1), Promise.resolve(2)]); //=> Promise([1, 2])
17368
- * RA.allP([1, Promise.reject(2)]); //=> Promise(2)
17369
- */
17370
- var allP = (0,ramda__WEBPACK_IMPORTED_MODULE_0__["default"])(1, (0,ramda__WEBPACK_IMPORTED_MODULE_1__["default"])(Promise.all, Promise));
17371
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (allP);
17372
-
17373
17671
  /***/ }),
17374
17672
 
17375
17673
  /***/ 88931:
@@ -18847,6 +19145,58 @@ var trimCharsStart = (0,ramda__WEBPACK_IMPORTED_MODULE_0__["default"])(function
18847
19145
  });
18848
19146
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (trimCharsStart);
18849
19147
 
19148
+ /***/ }),
19149
+
19150
+ /***/ 96897:
19151
+ /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
19152
+
19153
+ "use strict";
19154
+
19155
+
19156
+ var GetIntrinsic = __webpack_require__(70453);
19157
+ var define = __webpack_require__(30041);
19158
+ var hasDescriptors = __webpack_require__(30592)();
19159
+ var gOPD = __webpack_require__(75795);
19160
+
19161
+ var $TypeError = __webpack_require__(69675);
19162
+ var $floor = GetIntrinsic('%Math.floor%');
19163
+
19164
+ /** @typedef {(...args: unknown[]) => unknown} Func */
19165
+
19166
+ /** @type {<T extends Func = Func>(fn: T, length: number, loose?: boolean) => T} */
19167
+ module.exports = function setFunctionLength(fn, length) {
19168
+ if (typeof fn !== 'function') {
19169
+ throw new $TypeError('`fn` is not a function');
19170
+ }
19171
+ if (typeof length !== 'number' || length < 0 || length > 0xFFFFFFFF || $floor(length) !== length) {
19172
+ throw new $TypeError('`length` must be a positive 32-bit integer');
19173
+ }
19174
+
19175
+ var loose = arguments.length > 2 && !!arguments[2];
19176
+
19177
+ var functionLengthIsConfigurable = true;
19178
+ var functionLengthIsWritable = true;
19179
+ if ('length' in fn && gOPD) {
19180
+ var desc = gOPD(fn, 'length');
19181
+ if (desc && !desc.configurable) {
19182
+ functionLengthIsConfigurable = false;
19183
+ }
19184
+ if (desc && !desc.writable) {
19185
+ functionLengthIsWritable = false;
19186
+ }
19187
+ }
19188
+
19189
+ if (functionLengthIsConfigurable || functionLengthIsWritable || !loose) {
19190
+ if (hasDescriptors) {
19191
+ define(/** @type {Parameters<define>[0]} */ (fn), 'length', length, true, true);
19192
+ } else {
19193
+ define(/** @type {Parameters<define>[0]} */ (fn), 'length', length);
19194
+ }
19195
+ }
19196
+ return fn;
19197
+ };
19198
+
19199
+
18850
19200
  /***/ }),
18851
19201
 
18852
19202
  /***/ 8068:
@@ -19333,7 +19683,7 @@ var GetIntrinsic = __webpack_require__(70453);
19333
19683
  var callBound = __webpack_require__(38075);
19334
19684
  var inspect = __webpack_require__(58859);
19335
19685
 
19336
- var $TypeError = GetIntrinsic('%TypeError%');
19686
+ var $TypeError = __webpack_require__(69675);
19337
19687
  var $WeakMap = GetIntrinsic('%WeakMap%', true);
19338
19688
  var $Map = GetIntrinsic('%Map%', true);
19339
19689
 
@@ -19345,49 +19695,58 @@ var $mapSet = callBound('Map.prototype.set', true);
19345
19695
  var $mapHas = callBound('Map.prototype.has', true);
19346
19696
 
19347
19697
  /*
19348
- * This function traverses the list returning the node corresponding to the
19349
- * given key.
19350
- *
19351
- * That node is also moved to the head of the list, so that if it's accessed
19352
- * again we don't need to traverse the whole list. By doing so, all the recently
19353
- * used nodes can be accessed relatively quickly.
19354
- */
19698
+ * This function traverses the list returning the node corresponding to the given key.
19699
+ *
19700
+ * That node is also moved to the head of the list, so that if it's accessed again we don't need to traverse the whole list. By doing so, all the recently used nodes can be accessed relatively quickly.
19701
+ */
19702
+ /** @type {import('.').listGetNode} */
19355
19703
  var listGetNode = function (list, key) { // eslint-disable-line consistent-return
19356
- for (var prev = list, curr; (curr = prev.next) !== null; prev = curr) {
19704
+ /** @type {typeof list | NonNullable<(typeof list)['next']>} */
19705
+ var prev = list;
19706
+ /** @type {(typeof list)['next']} */
19707
+ var curr;
19708
+ for (; (curr = prev.next) !== null; prev = curr) {
19357
19709
  if (curr.key === key) {
19358
19710
  prev.next = curr.next;
19359
- curr.next = list.next;
19711
+ // eslint-disable-next-line no-extra-parens
19712
+ curr.next = /** @type {NonNullable<typeof list.next>} */ (list.next);
19360
19713
  list.next = curr; // eslint-disable-line no-param-reassign
19361
19714
  return curr;
19362
19715
  }
19363
19716
  }
19364
19717
  };
19365
19718
 
19719
+ /** @type {import('.').listGet} */
19366
19720
  var listGet = function (objects, key) {
19367
19721
  var node = listGetNode(objects, key);
19368
19722
  return node && node.value;
19369
19723
  };
19724
+ /** @type {import('.').listSet} */
19370
19725
  var listSet = function (objects, key, value) {
19371
19726
  var node = listGetNode(objects, key);
19372
19727
  if (node) {
19373
19728
  node.value = value;
19374
19729
  } else {
19375
19730
  // Prepend the new node to the beginning of the list
19376
- objects.next = { // eslint-disable-line no-param-reassign
19731
+ objects.next = /** @type {import('.').ListNode<typeof value>} */ ({ // eslint-disable-line no-param-reassign, no-extra-parens
19377
19732
  key: key,
19378
19733
  next: objects.next,
19379
19734
  value: value
19380
- };
19735
+ });
19381
19736
  }
19382
19737
  };
19738
+ /** @type {import('.').listHas} */
19383
19739
  var listHas = function (objects, key) {
19384
19740
  return !!listGetNode(objects, key);
19385
19741
  };
19386
19742
 
19743
+ /** @type {import('.')} */
19387
19744
  module.exports = function getSideChannel() {
19388
- var $wm;
19389
- var $m;
19390
- var $o;
19745
+ /** @type {WeakMap<object, unknown>} */ var $wm;
19746
+ /** @type {Map<object, unknown>} */ var $m;
19747
+ /** @type {import('.').RootNode<unknown>} */ var $o;
19748
+
19749
+ /** @type {import('.').Channel} */
19391
19750
  var channel = {
19392
19751
  assert: function (key) {
19393
19752
  if (!channel.has(key)) {
@@ -19438,11 +19797,7 @@ module.exports = function getSideChannel() {
19438
19797
  $mapSet($m, key, value);
19439
19798
  } else {
19440
19799
  if (!$o) {
19441
- /*
19442
- * Initialize the linked list as an empty node, so that we don't have
19443
- * to special-case handling of the first node: we can always refer to
19444
- * it as (previous node).next, instead of something like (list).head
19445
- */
19800
+ // Initialize the linked list as an empty node, so that we don't have to special-case handling of the first node: we can always refer to it as (previous node).next, instead of something like (list).head
19446
19801
  $o = { key: {}, next: null };
19447
19802
  }
19448
19803
  listSet($o, key, value);
@@ -22043,6 +22398,20 @@ class Visitor {
22043
22398
  NullElement() {
22044
22399
  return null;
22045
22400
  }
22401
+ RefElement(element, ...rest) {
22402
+ var _ancestors;
22403
+ const ancestors = rest[3];
22404
+ if (((_ancestors = ancestors[ancestors.length - 1]) === null || _ancestors === void 0 ? void 0 : _ancestors.type) === 'EphemeralObject') {
22405
+ return Symbol.for('delete-node');
22406
+ }
22407
+ return String(element.toValue());
22408
+ }
22409
+ LinkElement(element) {
22410
+ if ((0,_predicates_index_mjs__WEBPACK_IMPORTED_MODULE_2__.isStringElement)(element.href)) {
22411
+ return element.href.toValue();
22412
+ }
22413
+ return '';
22414
+ }
22046
22415
  }
22047
22416
  const serializer = element => {
22048
22417
  if (!(0,_predicates_index_mjs__WEBPACK_IMPORTED_MODULE_2__.isElement)(element)) return element;
@@ -37337,9 +37706,9 @@ const ReferenceSet = stampit__WEBPACK_IMPORTED_MODULE_0__({
37337
37706
  },
37338
37707
  clean() {
37339
37708
  this.refs.forEach(ref => {
37340
- // eslint-disable-next-line no-param-reassign
37341
- ref.refSet = null;
37709
+ ref.refSet = null; // eslint-disable-line no-param-reassign
37342
37710
  });
37711
+ this.rootRef = null;
37343
37712
  this.refs = [];
37344
37713
  }
37345
37714
  }
@@ -37402,7 +37771,7 @@ const bundle = async (uri, options) => {
37402
37771
  parseResult,
37403
37772
  mediaType: mergedOptions.parse.mediaType
37404
37773
  });
37405
- const bundleStrategies = await _util_plugins_mjs__WEBPACK_IMPORTED_MODULE_5__.filter('canBundle', file, mergedOptions.bundle.strategies);
37774
+ const bundleStrategies = await _util_plugins_mjs__WEBPACK_IMPORTED_MODULE_5__.filter('canBundle', [file, mergedOptions], mergedOptions.bundle.strategies);
37406
37775
 
37407
37776
  // we couldn't find any bundle strategy for this File
37408
37777
  if ((0,ramda__WEBPACK_IMPORTED_MODULE_6__["default"])(bundleStrategies)) {
@@ -37502,7 +37871,7 @@ const dereferenceApiDOM = async (element, options) => {
37502
37871
  parseResult,
37503
37872
  mediaType: options.parse.mediaType
37504
37873
  });
37505
- const dereferenceStrategies = await _util_plugins_mjs__WEBPACK_IMPORTED_MODULE_4__.filter('canDereference', file, options.dereference.strategies);
37874
+ const dereferenceStrategies = await _util_plugins_mjs__WEBPACK_IMPORTED_MODULE_4__.filter('canDereference', [file, options], options.dereference.strategies);
37506
37875
 
37507
37876
  // we couldn't find any dereference strategy for this File
37508
37877
  if ((0,ramda__WEBPACK_IMPORTED_MODULE_5__["default"])(dereferenceStrategies)) {
@@ -37543,6 +37912,10 @@ const dereference = async (uri, options) => {
37543
37912
  const mergedOptions = (0,_options_util_mjs__WEBPACK_IMPORTED_MODULE_11__.merge)(options, {
37544
37913
  resolve: {
37545
37914
  baseURI: sanitizedURI
37915
+ },
37916
+ dereference: {
37917
+ // if refSet was not provided, then we can work in mutable mode
37918
+ immutable: options.dereference.immutable && refSet !== null
37546
37919
  }
37547
37920
  });
37548
37921
  return dereferenceApiDOM(parseResult, mergedOptions);
@@ -37588,23 +37961,24 @@ __webpack_require__.r(__webpack_exports__);
37588
37961
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
37589
37962
  /* harmony export */ OpenApi3_1DereferenceVisitor: () => (/* reexport safe */ _visitor_mjs__WEBPACK_IMPORTED_MODULE_11__["default"]),
37590
37963
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
37591
- /* harmony export */ maybeRefractToSchemaElement: () => (/* reexport safe */ _resolve_strategies_openapi_3_1_util_mjs__WEBPACK_IMPORTED_MODULE_13__.maybeRefractToSchemaElement),
37592
- /* harmony export */ resolveSchema$refField: () => (/* reexport safe */ _resolve_strategies_openapi_3_1_util_mjs__WEBPACK_IMPORTED_MODULE_13__.resolveSchema$refField)
37964
+ /* harmony export */ maybeRefractToSchemaElement: () => (/* reexport safe */ _util_mjs__WEBPACK_IMPORTED_MODULE_13__.maybeRefractToSchemaElement),
37965
+ /* harmony export */ resolveSchema$idField: () => (/* reexport safe */ _util_mjs__WEBPACK_IMPORTED_MODULE_13__.resolveSchema$idField),
37966
+ /* harmony export */ resolveSchema$refField: () => (/* reexport safe */ _util_mjs__WEBPACK_IMPORTED_MODULE_13__.resolveSchema$refField)
37593
37967
  /* harmony export */ });
37594
37968
  /* harmony import */ var stampit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12646);
37595
- /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(37012);
37596
- /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(95201);
37969
+ /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(95201);
37597
37970
  /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(46571);
37598
37971
  /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(1667);
37972
+ /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(87024);
37599
37973
  /* harmony import */ var _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(94145);
37600
37974
  /* harmony import */ var _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(70281);
37601
37975
  /* harmony import */ var _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(41544);
37602
37976
  /* harmony import */ var _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(66648);
37603
37977
  /* harmony import */ var _DereferenceStrategy_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(29708);
37604
- /* harmony import */ var _Reference_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(12349);
37605
- /* harmony import */ var _ReferenceSet_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(31387);
37978
+ /* harmony import */ var _Reference_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(12349);
37979
+ /* harmony import */ var _ReferenceSet_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(31387);
37606
37980
  /* harmony import */ var _visitor_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(32346);
37607
- /* harmony import */ var _resolve_strategies_openapi_3_1_util_mjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(11612);
37981
+ /* harmony import */ var _util_mjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(51776);
37608
37982
 
37609
37983
 
37610
37984
 
@@ -37632,18 +38006,34 @@ const OpenApi3_1DereferenceStrategy = stampit__WEBPACK_IMPORTED_MODULE_0__(_Dere
37632
38006
  return (0,_swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_4__.isOpenApi3_1Element)((_file$parseResult = file.parseResult) === null || _file$parseResult === void 0 ? void 0 : _file$parseResult.result);
37633
38007
  },
37634
38008
  async dereference(file, options) {
38009
+ var _options$dereference$;
37635
38010
  const namespace = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__.createNamespace)(_swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_6__["default"]);
37636
- const refSet = (0,ramda__WEBPACK_IMPORTED_MODULE_7__["default"])((0,_ReferenceSet_mjs__WEBPACK_IMPORTED_MODULE_8__["default"])(), options.dereference.refSet);
38011
+ const immutableRefSet = (_options$dereference$ = options.dereference.refSet) !== null && _options$dereference$ !== void 0 ? _options$dereference$ : (0,_ReferenceSet_mjs__WEBPACK_IMPORTED_MODULE_7__["default"])();
38012
+ const mutableRefsSet = (0,_ReferenceSet_mjs__WEBPACK_IMPORTED_MODULE_7__["default"])();
38013
+ let refSet = immutableRefSet;
37637
38014
  let reference;
37638
- if (!refSet.has(file.uri)) {
37639
- reference = (0,_Reference_mjs__WEBPACK_IMPORTED_MODULE_9__["default"])({
38015
+ if (!immutableRefSet.has(file.uri)) {
38016
+ reference = (0,_Reference_mjs__WEBPACK_IMPORTED_MODULE_8__["default"])({
37640
38017
  uri: file.uri,
37641
38018
  value: file.parseResult
37642
38019
  });
37643
- refSet.add(reference);
38020
+ immutableRefSet.add(reference);
37644
38021
  } else {
37645
38022
  // pre-computed refSet was provided as configuration option
37646
- reference = refSet.find((0,ramda__WEBPACK_IMPORTED_MODULE_10__["default"])(file.uri, 'uri'));
38023
+ reference = immutableRefSet.find((0,ramda__WEBPACK_IMPORTED_MODULE_9__["default"])(file.uri, 'uri'));
38024
+ }
38025
+
38026
+ /**
38027
+ * Clone refSet due the dereferencing process being mutable.
38028
+ * We don't want to mutate the original refSet and the references.
38029
+ */
38030
+ if (options.dereference.immutable) {
38031
+ immutableRefSet.refs.map(ref => (0,_Reference_mjs__WEBPACK_IMPORTED_MODULE_8__["default"])({
38032
+ ...ref,
38033
+ value: (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__.cloneDeep)(ref.value)
38034
+ })).forEach(ref => mutableRefsSet.add(ref));
38035
+ reference = mutableRefsSet.find(ref => ref.uri === file.uri);
38036
+ refSet = mutableRefsSet;
37647
38037
  }
37648
38038
  const visitor = (0,_visitor_mjs__WEBPACK_IMPORTED_MODULE_11__["default"])({
37649
38039
  reference,
@@ -37655,13 +38045,26 @@ const OpenApi3_1DereferenceStrategy = stampit__WEBPACK_IMPORTED_MODULE_0__(_Dere
37655
38045
  nodeTypeGetter: _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_12__.getNodeType
37656
38046
  });
37657
38047
 
38048
+ /**
38049
+ * If immutable option is set, replay refs from the refSet.
38050
+ */
38051
+ if (options.dereference.immutable) {
38052
+ mutableRefsSet.refs.filter(ref => ref.uri.startsWith('immutable://')).map(ref => (0,_Reference_mjs__WEBPACK_IMPORTED_MODULE_8__["default"])({
38053
+ ...ref,
38054
+ uri: ref.uri.replace(/^immutable:\/\//, '')
38055
+ })).forEach(ref => immutableRefSet.add(ref));
38056
+ reference = immutableRefSet.find(ref => ref.uri === file.uri);
38057
+ refSet = immutableRefSet;
38058
+ }
38059
+
37658
38060
  /**
37659
38061
  * Release all memory if this refSet was not provided as an configuration option.
37660
38062
  * If provided as configuration option, then provider is responsible for cleanup.
37661
38063
  */
37662
38064
  if (options.dereference.refSet === null) {
37663
- refSet.clean();
38065
+ immutableRefSet.clean();
37664
38066
  }
38067
+ mutableRefsSet.clean();
37665
38068
  return dereferencedElement;
37666
38069
  }
37667
38070
  }
@@ -37761,7 +38164,7 @@ __webpack_require__.r(__webpack_exports__);
37761
38164
  /* harmony import */ var _util_url_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(83748);
37762
38165
  /* harmony import */ var _errors_EvaluationJsonSchemaUriError_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(78311);
37763
38166
  /* harmony import */ var _$anchor_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(46432);
37764
- /* harmony import */ var _resolve_strategies_openapi_3_1_util_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(11612);
38167
+ /* harmony import */ var _util_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(51776);
37765
38168
  /* harmony import */ var _errors_JsonSchemaUriError_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(64937);
37766
38169
 
37767
38170
 
@@ -37789,7 +38192,7 @@ const evaluate = (uri, element) => {
37789
38192
 
37790
38193
  // search for the matching schema
37791
38194
  const result = cache.get(element).find(e => {
37792
- const $idBaseURI = (0,_resolve_strategies_openapi_3_1_util_mjs__WEBPACK_IMPORTED_MODULE_3__.resolveSchema$idField)(uriStrippedHash, e);
38195
+ const $idBaseURI = (0,_util_mjs__WEBPACK_IMPORTED_MODULE_3__.resolveSchema$idField)(uriStrippedHash, e);
37793
38196
  return $idBaseURI === uriStrippedHash;
37794
38197
  });
37795
38198
  if ((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_4__["default"])(result)) {
@@ -37814,6 +38217,72 @@ evaluate.cache = new WeakMap();
37814
38217
 
37815
38218
 
37816
38219
 
38220
+ /***/ }),
38221
+
38222
+ /***/ 51776:
38223
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
38224
+
38225
+ "use strict";
38226
+ __webpack_require__.r(__webpack_exports__);
38227
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
38228
+ /* harmony export */ maybeRefractToSchemaElement: () => (/* binding */ maybeRefractToSchemaElement),
38229
+ /* harmony export */ refractToSchemaElement: () => (/* binding */ refractToSchemaElement),
38230
+ /* harmony export */ resolveSchema$idField: () => (/* binding */ resolveSchema$idField),
38231
+ /* harmony export */ resolveSchema$refField: () => (/* binding */ resolveSchema$refField)
38232
+ /* harmony export */ });
38233
+ /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5920);
38234
+ /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9999);
38235
+ /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(33501);
38236
+ /* harmony import */ var _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3117);
38237
+ /* harmony import */ var _util_url_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(83748);
38238
+
38239
+
38240
+
38241
+
38242
+ const resolveSchema$refField = (retrievalURI, schemaElement) => {
38243
+ if (typeof schemaElement.$ref === 'undefined') {
38244
+ return undefined;
38245
+ }
38246
+ const hash = _util_url_mjs__WEBPACK_IMPORTED_MODULE_0__.getHash((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_1__["default"])(schemaElement.$ref));
38247
+ const inherited$id = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_1__["default"])(schemaElement.meta.get('inherited$id'));
38248
+ const $refBaseURI = (0,ramda__WEBPACK_IMPORTED_MODULE_2__["default"])((acc, uri) => {
38249
+ return _util_url_mjs__WEBPACK_IMPORTED_MODULE_0__.resolve(acc, _util_url_mjs__WEBPACK_IMPORTED_MODULE_0__.sanitize(_util_url_mjs__WEBPACK_IMPORTED_MODULE_0__.stripHash(uri)));
38250
+ }, retrievalURI, [...inherited$id, (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_1__["default"])(schemaElement.$ref)]);
38251
+ return `${$refBaseURI}${hash === '#' ? '' : hash}`;
38252
+ };
38253
+ const resolveSchema$idField = (retrievalURI, schemaElement) => {
38254
+ if (typeof schemaElement.$id === 'undefined') {
38255
+ return undefined;
38256
+ }
38257
+ const inherited$id = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_1__["default"])(schemaElement.meta.get('inherited$id'));
38258
+ return (0,ramda__WEBPACK_IMPORTED_MODULE_2__["default"])((acc, $id) => {
38259
+ return _util_url_mjs__WEBPACK_IMPORTED_MODULE_0__.resolve(acc, _util_url_mjs__WEBPACK_IMPORTED_MODULE_0__.sanitize(_util_url_mjs__WEBPACK_IMPORTED_MODULE_0__.stripHash($id)));
38260
+ }, retrievalURI, [...inherited$id, (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_1__["default"])(schemaElement.$id)]);
38261
+ };
38262
+
38263
+ /**
38264
+ * Cached version of SchemaElement.refract.
38265
+ */
38266
+ const refractToSchemaElement = element => {
38267
+ if (refractToSchemaElement.cache.has(element)) {
38268
+ return refractToSchemaElement.cache.get(element);
38269
+ }
38270
+ const refracted = _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_3__.SchemaElement.refract(element);
38271
+ refractToSchemaElement.cache.set(element, refracted);
38272
+ return refracted;
38273
+ };
38274
+ refractToSchemaElement.cache = new WeakMap();
38275
+ const maybeRefractToSchemaElement = element => {
38276
+ /**
38277
+ * Conditional version of refractToSchemaElement, that acts as an identity
38278
+ * function for all non-primitive Element instances.
38279
+ */
38280
+ if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__.isPrimitiveElement)(element)) {
38281
+ return refractToSchemaElement(element);
38282
+ }
38283
+ return element;
38284
+ };
38285
+
37817
38286
  /***/ }),
37818
38287
 
37819
38288
  /***/ 32346:
@@ -37825,33 +38294,34 @@ __webpack_require__.r(__webpack_exports__);
37825
38294
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
37826
38295
  /* harmony export */ });
37827
38296
  /* harmony import */ var stampit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12646);
37828
- /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(95201);
37829
- /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(10796);
37830
- /* harmony import */ var ramda_adjunct__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(18461);
38297
+ /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(95201);
38298
+ /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(10796);
38299
+ /* harmony import */ var ramda_adjunct__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(18461);
37831
38300
  /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(46571);
37832
38301
  /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(42209);
37833
- /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9999);
38302
+ /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(87024);
37834
38303
  /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(33501);
37835
- /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(87024);
37836
- /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(82570);
37837
- /* harmony import */ var _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(98219);
37838
- /* harmony import */ var _swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(85270);
37839
- /* harmony import */ var _swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(18316);
37840
- /* harmony import */ var _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(85013);
37841
- /* harmony import */ var _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(3117);
37842
- /* harmony import */ var _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(66648);
37843
- /* harmony import */ var _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(70281);
37844
- /* harmony import */ var _selectors_$anchor_mjs__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(46432);
37845
- /* harmony import */ var _selectors_uri_mjs__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(16129);
37846
- /* harmony import */ var _errors_MaximumDereferenceDepthError_mjs__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(60503);
37847
- /* harmony import */ var _errors_MaximumResolveDepthError_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(57823);
37848
- /* harmony import */ var _util_url_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(83748);
37849
- /* harmony import */ var _parse_index_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(7998);
37850
- /* harmony import */ var _Reference_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(12349);
37851
- /* harmony import */ var _util_File_mjs__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(15767);
37852
- /* harmony import */ var _resolve_strategies_openapi_3_1_util_mjs__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(11612);
37853
- /* harmony import */ var _util_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(87649);
37854
- /* harmony import */ var _errors_EvaluationJsonSchemaUriError_mjs__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(78311);
38304
+ /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(9999);
38305
+ /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(44824);
38306
+ /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(82570);
38307
+ /* harmony import */ var _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(98219);
38308
+ /* harmony import */ var _swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(85270);
38309
+ /* harmony import */ var _swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(18316);
38310
+ /* harmony import */ var _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(85013);
38311
+ /* harmony import */ var _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(3117);
38312
+ /* harmony import */ var _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(70281);
38313
+ /* harmony import */ var _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(66648);
38314
+ /* harmony import */ var _selectors_$anchor_mjs__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(46432);
38315
+ /* harmony import */ var _selectors_uri_mjs__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(16129);
38316
+ /* harmony import */ var _errors_MaximumDereferenceDepthError_mjs__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(60503);
38317
+ /* harmony import */ var _errors_MaximumResolveDepthError_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(57823);
38318
+ /* harmony import */ var _util_url_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(83748);
38319
+ /* harmony import */ var _parse_index_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(7998);
38320
+ /* harmony import */ var _Reference_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(12349);
38321
+ /* harmony import */ var _util_File_mjs__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(15767);
38322
+ /* harmony import */ var _util_mjs__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(51776);
38323
+ /* harmony import */ var _util_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(87649);
38324
+ /* harmony import */ var _errors_EvaluationJsonSchemaUriError_mjs__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(78311);
37855
38325
 
37856
38326
 
37857
38327
 
@@ -37875,12 +38345,6 @@ const visitAsync = _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_1__.visit[S
37875
38345
  // initialize element identity manager
37876
38346
  const identityManager = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_2__.IdentityManager)();
37877
38347
 
37878
- /**
37879
- * Predicate for detecting if element was created by merging referencing
37880
- * element with particular element identity with a referenced element.
37881
- */
37882
- const wasReferencedBy = referencingElement => element => element.meta.hasKey('ref-referencing-element-id') && element.meta.get('ref-referencing-element-id').equals((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_3__["default"])(identityManager.identify(referencingElement)));
37883
-
37884
38348
  // eslint-disable-next-line @typescript-eslint/naming-convention
37885
38349
  const OpenApi3_1DereferenceVisitor = stampit__WEBPACK_IMPORTED_MODULE_0__({
37886
38350
  props: {
@@ -37896,24 +38360,24 @@ const OpenApi3_1DereferenceVisitor = stampit__WEBPACK_IMPORTED_MODULE_0__({
37896
38360
  reference,
37897
38361
  namespace,
37898
38362
  options,
37899
- ancestors = new _util_mjs__WEBPACK_IMPORTED_MODULE_4__.AncestorLineage(),
38363
+ ancestors = new _util_mjs__WEBPACK_IMPORTED_MODULE_3__.AncestorLineage(),
37900
38364
  refractCache = new Map()
37901
38365
  }) {
37902
38366
  this.indirections = indirections;
37903
38367
  this.namespace = namespace;
37904
38368
  this.reference = reference;
37905
38369
  this.options = options;
37906
- this.ancestors = new _util_mjs__WEBPACK_IMPORTED_MODULE_4__.AncestorLineage(...ancestors);
38370
+ this.ancestors = new _util_mjs__WEBPACK_IMPORTED_MODULE_3__.AncestorLineage(...ancestors);
37907
38371
  this.refractCache = refractCache;
37908
38372
  },
37909
38373
  methods: {
37910
38374
  toBaseURI(uri) {
37911
- return _util_url_mjs__WEBPACK_IMPORTED_MODULE_5__.resolve(this.reference.uri, _util_url_mjs__WEBPACK_IMPORTED_MODULE_5__.sanitize(_util_url_mjs__WEBPACK_IMPORTED_MODULE_5__.stripHash(uri)));
38375
+ return _util_url_mjs__WEBPACK_IMPORTED_MODULE_4__.resolve(this.reference.uri, _util_url_mjs__WEBPACK_IMPORTED_MODULE_4__.sanitize(_util_url_mjs__WEBPACK_IMPORTED_MODULE_4__.stripHash(uri)));
37912
38376
  },
37913
38377
  async toReference(uri) {
37914
38378
  // detect maximum depth of resolution
37915
38379
  if (this.reference.depth >= this.options.resolve.maxDepth) {
37916
- throw new _errors_MaximumResolveDepthError_mjs__WEBPACK_IMPORTED_MODULE_6__["default"](`Maximum resolution depth of ${this.options.resolve.maxDepth} has been exceeded by file "${this.reference.uri}"`);
38380
+ throw new _errors_MaximumResolveDepthError_mjs__WEBPACK_IMPORTED_MODULE_5__["default"](`Maximum resolution depth of ${this.options.resolve.maxDepth} has been exceeded by file "${this.reference.uri}"`);
37917
38381
  }
37918
38382
  const baseURI = this.toBaseURI(uri);
37919
38383
  const {
@@ -37922,9 +38386,9 @@ const OpenApi3_1DereferenceVisitor = stampit__WEBPACK_IMPORTED_MODULE_0__({
37922
38386
 
37923
38387
  // we've already processed this Reference in past
37924
38388
  if (refSet.has(baseURI)) {
37925
- return refSet.find((0,ramda__WEBPACK_IMPORTED_MODULE_7__["default"])(baseURI, 'uri'));
38389
+ return refSet.find((0,ramda__WEBPACK_IMPORTED_MODULE_6__["default"])(baseURI, 'uri'));
37926
38390
  }
37927
- const parseResult = await (0,_parse_index_mjs__WEBPACK_IMPORTED_MODULE_8__["default"])(_util_url_mjs__WEBPACK_IMPORTED_MODULE_5__.unsanitize(baseURI), {
38391
+ const parseResult = await (0,_parse_index_mjs__WEBPACK_IMPORTED_MODULE_7__["default"])(_util_url_mjs__WEBPACK_IMPORTED_MODULE_4__.unsanitize(baseURI), {
37928
38392
  ...this.options,
37929
38393
  parse: {
37930
38394
  ...this.options.parse,
@@ -37932,14 +38396,23 @@ const OpenApi3_1DereferenceVisitor = stampit__WEBPACK_IMPORTED_MODULE_0__({
37932
38396
  }
37933
38397
  });
37934
38398
 
37935
- // register new Reference with ReferenceSet
37936
- const reference = (0,_Reference_mjs__WEBPACK_IMPORTED_MODULE_9__["default"])({
38399
+ // register new mutable reference with a refSet
38400
+ const mutableReference = (0,_Reference_mjs__WEBPACK_IMPORTED_MODULE_8__["default"])({
37937
38401
  uri: baseURI,
37938
- value: parseResult,
38402
+ value: (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__.cloneDeep)(parseResult),
37939
38403
  depth: this.reference.depth + 1
37940
38404
  });
37941
- refSet.add(reference);
37942
- return reference;
38405
+ refSet.add(mutableReference);
38406
+ if (this.options.dereference.immutable) {
38407
+ // register new immutable reference with a refSet
38408
+ const immutableReference = (0,_Reference_mjs__WEBPACK_IMPORTED_MODULE_8__["default"])({
38409
+ uri: `immutable://${baseURI}`,
38410
+ value: parseResult,
38411
+ depth: this.reference.depth + 1
38412
+ });
38413
+ refSet.add(immutableReference);
38414
+ }
38415
+ return mutableReference;
37943
38416
  },
37944
38417
  toAncestorLineage(ancestors) {
37945
38418
  /**
@@ -37947,40 +38420,47 @@ const OpenApi3_1DereferenceVisitor = stampit__WEBPACK_IMPORTED_MODULE_0__({
37947
38420
  * Ancestors are flatten to unwrap all Element instances.
37948
38421
  */
37949
38422
  const directAncestors = new Set(ancestors.filter(_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__.isElement));
37950
- const ancestorsLineage = new _util_mjs__WEBPACK_IMPORTED_MODULE_4__.AncestorLineage(...this.ancestors, directAncestors);
38423
+ const ancestorsLineage = new _util_mjs__WEBPACK_IMPORTED_MODULE_3__.AncestorLineage(...this.ancestors, directAncestors);
37951
38424
  return [ancestorsLineage, directAncestors];
37952
38425
  },
37953
38426
  async ReferenceElement(referencingElement, key, parent, path, ancestors) {
38427
+ // skip current referencing element as it's already been access
38428
+ if (this.indirections.includes(referencingElement)) {
38429
+ return false;
38430
+ }
37954
38431
  const [ancestorsLineage, directAncestors] = this.toAncestorLineage([...ancestors, parent]);
38432
+ const retrievalURI = this.toBaseURI((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_11__["default"])(referencingElement.$ref));
38433
+ const isInternalReference = _util_url_mjs__WEBPACK_IMPORTED_MODULE_4__.stripHash(this.reference.uri) === retrievalURI;
38434
+ const isExternalReference = !isInternalReference;
37955
38435
 
37956
- // detect possible cycle in traversal and avoid it
37957
- if (ancestorsLineage.includesCycle(referencingElement)) {
38436
+ // ignore resolving internal Reference Objects
38437
+ if (!this.options.resolve.internal && isInternalReference) {
38438
+ // skip traversing this reference element and all it's child elements
37958
38439
  return false;
37959
38440
  }
37960
- const retrievalURI = this.toBaseURI((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_3__["default"])(referencingElement.$ref));
37961
-
37962
38441
  // ignore resolving external Reference Objects
37963
- if (!this.options.resolve.external && _util_url_mjs__WEBPACK_IMPORTED_MODULE_5__.stripHash(this.reference.uri) !== retrievalURI) {
38442
+ if (!this.options.resolve.external && isExternalReference) {
37964
38443
  // skip traversing this reference element and all it's child elements
37965
38444
  return false;
37966
38445
  }
37967
- const reference = await this.toReference((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_3__["default"])(referencingElement.$ref));
37968
- const $refBaseURI = _util_url_mjs__WEBPACK_IMPORTED_MODULE_5__.resolve(retrievalURI, (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_3__["default"])(referencingElement.$ref));
38446
+ const reference = await this.toReference((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_11__["default"])(referencingElement.$ref));
38447
+ const $refBaseURI = _util_url_mjs__WEBPACK_IMPORTED_MODULE_4__.resolve(retrievalURI, (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_11__["default"])(referencingElement.$ref));
37969
38448
  this.indirections.push(referencingElement);
37970
- const jsonPointer = (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_11__.uriToPointer)($refBaseURI);
38449
+ const jsonPointer = (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_12__.uriToPointer)($refBaseURI);
37971
38450
 
37972
38451
  // possibly non-semantic fragment
37973
- let referencedElement = (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_12__["default"])(jsonPointer, reference.value.result);
38452
+ let referencedElement = (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_13__["default"])(jsonPointer, reference.value.result);
38453
+ referencedElement.id = identityManager.identify(referencedElement);
37974
38454
 
37975
38455
  // applying semantics to a fragment
37976
38456
  if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__.isPrimitiveElement)(referencedElement)) {
37977
- const referencedElementType = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_3__["default"])(referencingElement.meta.get('referenced-element'));
37978
- const cacheKey = `${referencedElementType}-${(0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_3__["default"])(identityManager.identify(referencedElement))}`;
38457
+ const referencedElementType = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_11__["default"])(referencingElement.meta.get('referenced-element'));
38458
+ const cacheKey = `${referencedElementType}-${(0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_11__["default"])(identityManager.identify(referencedElement))}`;
37979
38459
  if (this.refractCache.has(cacheKey)) {
37980
38460
  referencedElement = this.refractCache.get(cacheKey);
37981
- } else if ((0,_swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_13__.isReferenceLikeElement)(referencedElement)) {
38461
+ } else if ((0,_swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_14__.isReferenceLikeElement)(referencedElement)) {
37982
38462
  // handling indirect references
37983
- referencedElement = _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_14__.ReferenceElement.refract(referencedElement);
38463
+ referencedElement = _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_15__.ReferenceElement.refract(referencedElement);
37984
38464
  referencedElement.setMetaProperty('referenced-element', referencedElementType);
37985
38465
  this.refractCache.set(cacheKey, referencedElement);
37986
38466
  } else {
@@ -37992,189 +38472,261 @@ const OpenApi3_1DereferenceVisitor = stampit__WEBPACK_IMPORTED_MODULE_0__({
37992
38472
  }
37993
38473
 
37994
38474
  // detect direct or indirect reference
37995
- if (this.indirections.includes(referencedElement)) {
37996
- throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_15__["default"]('Recursive Reference Object detected');
38475
+ if (referencingElement === referencedElement) {
38476
+ throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_16__["default"]('Recursive Reference Object detected');
37997
38477
  }
37998
38478
 
37999
38479
  // detect maximum depth of dereferencing
38000
38480
  if (this.indirections.length > this.options.dereference.maxDepth) {
38001
- throw new _errors_MaximumDereferenceDepthError_mjs__WEBPACK_IMPORTED_MODULE_16__["default"](`Maximum dereference depth of "${this.options.dereference.maxDepth}" has been exceeded in file "${this.reference.uri}"`);
38481
+ throw new _errors_MaximumDereferenceDepthError_mjs__WEBPACK_IMPORTED_MODULE_17__["default"](`Maximum dereference depth of "${this.options.dereference.maxDepth}" has been exceeded in file "${this.reference.uri}"`);
38482
+ }
38483
+
38484
+ // detect second deep dive into the same fragment and avoid it
38485
+ if (ancestorsLineage.includes(referencedElement)) {
38486
+ reference.refSet.circular = true;
38487
+ if (this.options.dereference.circular === 'error') {
38488
+ throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_16__["default"]('Circular reference detected');
38489
+ } else if (this.options.dereference.circular === 'replace') {
38490
+ var _this$options$derefer, _this$options$derefer2;
38491
+ const refElement = new _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_18__.RefElement(referencedElement.id, {
38492
+ type: 'reference',
38493
+ uri: reference.uri,
38494
+ $ref: (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_11__["default"])(referencingElement.$ref)
38495
+ });
38496
+ const replacer = (_this$options$derefer = (_this$options$derefer2 = this.options.dereference.strategyOpts['openapi-3-1']) === null || _this$options$derefer2 === void 0 ? void 0 : _this$options$derefer2.circularReplacer) !== null && _this$options$derefer !== void 0 ? _this$options$derefer : this.options.dereference.circularReplacer;
38497
+ const replacement = replacer(refElement);
38498
+ if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__.isMemberElement)(parent)) {
38499
+ parent.value = replacement; // eslint-disable-line no-param-reassign
38500
+ } else if (Array.isArray(parent)) {
38501
+ parent[key] = replacement; // eslint-disable-line no-param-reassign
38502
+ }
38503
+ return !parent ? replacement : false;
38504
+ }
38002
38505
  }
38003
38506
 
38004
- // append referencing reference to ancestors lineage
38005
- directAncestors.add(referencingElement);
38006
-
38007
- // dive deep into the fragment
38008
- const visitor = OpenApi3_1DereferenceVisitor({
38009
- reference,
38010
- namespace: this.namespace,
38011
- indirections: [...this.indirections],
38012
- options: this.options,
38013
- ancestors: ancestorsLineage,
38014
- refractCache: this.refractCache
38015
- });
38016
- referencedElement = await visitAsync(referencedElement, visitor, {
38017
- keyMap: _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_17__.keyMap,
38018
- nodeTypeGetter: _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_17__.getNodeType
38019
- });
38507
+ /**
38508
+ * Dive deep into the fragment.
38509
+ *
38510
+ * Cases to consider:
38511
+ * 1. We're crossing document boundary
38512
+ * 2. Fragment is a Reference Object. We need to follow it to get the eventual value
38513
+ * 3. We are dereferencing the fragment lazily/eagerly depending on circular mode
38514
+ */
38515
+ if ((isExternalReference || (0,_swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_19__.isReferenceElement)(referencedElement) || ['error', 'replace'].includes(this.options.dereference.circular)) && !ancestorsLineage.includesCycle(referencedElement)) {
38516
+ // append referencing reference to ancestors lineage
38517
+ directAncestors.add(referencingElement);
38518
+ const visitor = OpenApi3_1DereferenceVisitor({
38519
+ reference,
38520
+ namespace: this.namespace,
38521
+ indirections: [...this.indirections],
38522
+ options: this.options,
38523
+ refractCache: this.refractCache,
38524
+ ancestors: ancestorsLineage
38525
+ });
38526
+ referencedElement = await visitAsync(referencedElement, visitor, {
38527
+ keyMap: _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_20__.keyMap,
38528
+ nodeTypeGetter: _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_20__.getNodeType
38529
+ });
38020
38530
 
38021
- // remove referencing reference from ancestors lineage
38022
- directAncestors.delete(referencingElement);
38531
+ // remove referencing reference from ancestors lineage
38532
+ directAncestors.delete(referencingElement);
38533
+ }
38023
38534
  this.indirections.pop();
38024
- const mergeAndAnnotateReferencedElement = refedElement => {
38025
- const copy = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_18__.cloneShallow)(refedElement);
38026
38535
 
38027
- // annotate fragment with info about original Reference element
38028
- copy.setMetaProperty('ref-fields', {
38029
- $ref: (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_3__["default"])(referencingElement.$ref),
38030
- // @ts-ignore
38031
- description: (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_3__["default"])(referencingElement.description),
38032
- // @ts-ignore
38033
- summary: (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_3__["default"])(referencingElement.summary)
38034
- });
38035
- // annotate fragment with info about origin
38036
- copy.setMetaProperty('ref-origin', reference.uri);
38037
- // annotate fragment with info about referencing element
38038
- copy.setMetaProperty('ref-referencing-element-id', (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_18__.cloneDeep)(identityManager.identify(referencingElement)));
38536
+ /**
38537
+ * Creating a new version of referenced element to avoid modifying the original one.
38538
+ */
38539
+ const mergedElement = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__.cloneShallow)(referencedElement);
38540
+ // assign unique id to merged element
38541
+ mergedElement.setMetaProperty('id', identityManager.generateId());
38542
+ // annotate fragment with info about original Reference element
38543
+ mergedElement.setMetaProperty('ref-fields', {
38544
+ $ref: (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_11__["default"])(referencingElement.$ref),
38545
+ // @ts-ignore
38546
+ description: (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_11__["default"])(referencingElement.description),
38547
+ // @ts-ignore
38548
+ summary: (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_11__["default"])(referencingElement.summary)
38549
+ });
38550
+ // annotate fragment with info about origin
38551
+ mergedElement.setMetaProperty('ref-origin', reference.uri);
38552
+ // annotate fragment with info about referencing element
38553
+ mergedElement.setMetaProperty('ref-referencing-element-id', (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__.cloneDeep)(identityManager.identify(referencingElement)));
38039
38554
 
38040
- // override description and summary (outer has higher priority then inner)
38041
- if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__.isObjectElement)(refedElement)) {
38042
- if (referencingElement.hasKey('description') && 'description' in refedElement) {
38043
- // @ts-ignore
38044
- copy.remove('description');
38045
- // @ts-ignore
38046
- copy.set('description', referencingElement.get('description'));
38047
- }
38048
- if (referencingElement.hasKey('summary') && 'summary' in refedElement) {
38049
- // @ts-ignore
38050
- copy.remove('summary');
38051
- // @ts-ignore
38052
- copy.set('summary', referencingElement.get('summary'));
38053
- }
38555
+ // override description and summary (outer has higher priority then inner)
38556
+ if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__.isObjectElement)(referencedElement) && (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__.isObjectElement)(mergedElement)) {
38557
+ if (referencingElement.hasKey('description') && 'description' in referencedElement) {
38558
+ mergedElement.remove('description');
38559
+ mergedElement.set('description', referencingElement.get('description'));
38054
38560
  }
38055
- return copy;
38056
- };
38057
-
38058
- // attempting to create cycle
38059
- if (ancestorsLineage.includes(referencingElement) || ancestorsLineage.includes(referencedElement)) {
38060
- var _ancestorsLineage$fin;
38061
- const replaceWith = (_ancestorsLineage$fin = ancestorsLineage.findItem(wasReferencedBy(referencingElement))) !== null && _ancestorsLineage$fin !== void 0 ? _ancestorsLineage$fin : mergeAndAnnotateReferencedElement(referencedElement);
38062
- if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__.isMemberElement)(parent)) {
38063
- parent.value = replaceWith; // eslint-disable-line no-param-reassign
38064
- } else if (Array.isArray(parent)) {
38065
- parent[key] = replaceWith; // eslint-disable-line no-param-reassign
38561
+ if (referencingElement.hasKey('summary') && 'summary' in referencedElement) {
38562
+ mergedElement.remove('summary');
38563
+ mergedElement.set('summary', referencingElement.get('summary'));
38066
38564
  }
38067
- return false;
38068
38565
  }
38069
38566
 
38070
- // transclude the element for a fragment
38071
- return mergeAndAnnotateReferencedElement(referencedElement);
38567
+ /**
38568
+ * Transclude referencing element with merged referenced element.
38569
+ */
38570
+ if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__.isMemberElement)(parent)) {
38571
+ parent.value = mergedElement; // eslint-disable-line no-param-reassign
38572
+ } else if (Array.isArray(parent)) {
38573
+ parent[key] = mergedElement; // eslint-disable-line no-param-reassign
38574
+ }
38575
+
38576
+ /**
38577
+ * We're at the root of the tree, so we're just replacing the entire tree.
38578
+ */
38579
+ return !parent ? mergedElement : false;
38072
38580
  },
38073
38581
  async PathItemElement(referencingElement, key, parent, path, ancestors) {
38074
- const [ancestorsLineage, directAncestors] = this.toAncestorLineage([...ancestors, parent]);
38075
-
38076
38582
  // ignore PathItemElement without $ref field
38077
38583
  if (!(0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__.isStringElement)(referencingElement.$ref)) {
38078
38584
  return undefined;
38079
38585
  }
38080
38586
 
38081
- // detect possible cycle in traversal and avoid it
38082
- if (ancestorsLineage.includesCycle(referencingElement)) {
38587
+ // skip current referencing element as it's already been access
38588
+ if (this.indirections.includes(referencingElement)) {
38083
38589
  return false;
38084
38590
  }
38085
- const retrievalURI = this.toBaseURI((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_3__["default"])(referencingElement.$ref));
38591
+ const [ancestorsLineage, directAncestors] = this.toAncestorLineage([...ancestors, parent]);
38592
+ const retrievalURI = this.toBaseURI((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_11__["default"])(referencingElement.$ref));
38593
+ const isInternalReference = _util_url_mjs__WEBPACK_IMPORTED_MODULE_4__.stripHash(this.reference.uri) === retrievalURI;
38594
+ const isExternalReference = !isInternalReference;
38086
38595
 
38087
38596
  // ignore resolving external Path Item Objects
38088
- if (!this.options.resolve.external && _util_url_mjs__WEBPACK_IMPORTED_MODULE_5__.stripHash(this.reference.uri) !== retrievalURI) {
38597
+ if (!this.options.resolve.internal && isInternalReference) {
38598
+ // skip traversing this Path Item element but traverse all it's child elements
38599
+ return undefined;
38600
+ }
38601
+ // ignore resolving external Path Item Objects
38602
+ if (!this.options.resolve.external && isExternalReference) {
38089
38603
  // skip traversing this Path Item element but traverse all it's child elements
38090
38604
  return undefined;
38091
38605
  }
38092
- const reference = await this.toReference((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_3__["default"])(referencingElement.$ref));
38093
- const $refBaseURI = _util_url_mjs__WEBPACK_IMPORTED_MODULE_5__.resolve(retrievalURI, (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_3__["default"])(referencingElement.$ref));
38606
+ const reference = await this.toReference((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_11__["default"])(referencingElement.$ref));
38607
+ const $refBaseURI = _util_url_mjs__WEBPACK_IMPORTED_MODULE_4__.resolve(retrievalURI, (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_11__["default"])(referencingElement.$ref));
38094
38608
  this.indirections.push(referencingElement);
38095
- const jsonPointer = (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_11__.uriToPointer)($refBaseURI);
38609
+ const jsonPointer = (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_12__.uriToPointer)($refBaseURI);
38096
38610
 
38097
38611
  // possibly non-semantic referenced element
38098
- let referencedElement = (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_12__["default"])(jsonPointer, reference.value.result);
38612
+ let referencedElement = (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_13__["default"])(jsonPointer, reference.value.result);
38613
+ referencedElement.id = identityManager.identify(referencedElement);
38099
38614
 
38100
- // applying semantics to a referenced element
38615
+ /**
38616
+ * Applying semantics to a referenced element if semantics are missing.
38617
+ */
38101
38618
  if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__.isPrimitiveElement)(referencedElement)) {
38102
- const cacheKey = `pathItem-${(0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_3__["default"])(identityManager.identify(referencedElement))}`;
38619
+ const cacheKey = `path-item-${(0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_11__["default"])(identityManager.identify(referencedElement))}`;
38103
38620
  if (this.refractCache.has(cacheKey)) {
38104
38621
  referencedElement = this.refractCache.get(cacheKey);
38105
38622
  } else {
38106
- referencedElement = _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_14__.PathItemElement.refract(referencedElement);
38623
+ referencedElement = _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_15__.PathItemElement.refract(referencedElement);
38107
38624
  this.refractCache.set(cacheKey, referencedElement);
38108
38625
  }
38109
38626
  }
38110
38627
 
38111
38628
  // detect direct or indirect reference
38112
- if (this.indirections.includes(referencedElement)) {
38113
- throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_15__["default"]('Recursive Path Item Object reference detected');
38629
+ if (referencingElement === referencedElement) {
38630
+ throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_16__["default"]('Recursive Path Item Object reference detected');
38114
38631
  }
38115
38632
 
38116
38633
  // detect maximum depth of dereferencing
38117
38634
  if (this.indirections.length > this.options.dereference.maxDepth) {
38118
- throw new _errors_MaximumDereferenceDepthError_mjs__WEBPACK_IMPORTED_MODULE_16__["default"](`Maximum dereference depth of "${this.options.dereference.maxDepth}" has been exceeded in file "${this.reference.uri}"`);
38635
+ throw new _errors_MaximumDereferenceDepthError_mjs__WEBPACK_IMPORTED_MODULE_17__["default"](`Maximum dereference depth of "${this.options.dereference.maxDepth}" has been exceeded in file "${this.reference.uri}"`);
38636
+ }
38637
+
38638
+ // detect second deep dive into the same fragment and avoid it
38639
+ if (ancestorsLineage.includes(referencedElement)) {
38640
+ reference.refSet.circular = true;
38641
+ if (this.options.dereference.circular === 'error') {
38642
+ throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_16__["default"]('Circular reference detected');
38643
+ } else if (this.options.dereference.circular === 'replace') {
38644
+ var _this$options$derefer3, _this$options$derefer4;
38645
+ const refElement = new _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_18__.RefElement(referencedElement.id, {
38646
+ type: 'path-item',
38647
+ uri: reference.uri,
38648
+ $ref: (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_11__["default"])(referencingElement.$ref)
38649
+ });
38650
+ const replacer = (_this$options$derefer3 = (_this$options$derefer4 = this.options.dereference.strategyOpts['openapi-3-1']) === null || _this$options$derefer4 === void 0 ? void 0 : _this$options$derefer4.circularReplacer) !== null && _this$options$derefer3 !== void 0 ? _this$options$derefer3 : this.options.dereference.circularReplacer;
38651
+ const replacement = replacer(refElement);
38652
+ if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__.isMemberElement)(parent)) {
38653
+ parent.value = replacement; // eslint-disable-line no-param-reassign
38654
+ } else if (Array.isArray(parent)) {
38655
+ parent[key] = replacement; // eslint-disable-line no-param-reassign
38656
+ }
38657
+ return !parent ? replacement : false;
38658
+ }
38119
38659
  }
38120
38660
 
38121
- // append referencing path item to ancestors lineage
38122
- directAncestors.add(referencingElement);
38123
-
38124
- // dive deep into the referenced element
38125
- const visitor = OpenApi3_1DereferenceVisitor({
38126
- reference,
38127
- namespace: this.namespace,
38128
- indirections: [...this.indirections],
38129
- options: this.options,
38130
- ancestors: ancestorsLineage,
38131
- refractCache: this.refractCache
38132
- });
38133
- referencedElement = await visitAsync(referencedElement, visitor, {
38134
- keyMap: _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_17__.keyMap,
38135
- nodeTypeGetter: _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_17__.getNodeType
38136
- });
38661
+ /**
38662
+ * Dive deep into the fragment.
38663
+ *
38664
+ * Cases to consider:
38665
+ * 1. We're crossing document boundary
38666
+ * 2. Fragment is a Path Item Object with $ref field. We need to follow it to get the eventual value
38667
+ * 3. We are dereferencing the fragment lazily/eagerly depending on circular mode
38668
+ */
38669
+ if ((isExternalReference || (0,_swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_19__.isPathItemElement)(referencedElement) && (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__.isStringElement)(referencedElement.$ref) || ['error', 'replace'].includes(this.options.dereference.circular)) && !ancestorsLineage.includesCycle(referencedElement)) {
38670
+ // append referencing reference to ancestors lineage
38671
+ directAncestors.add(referencingElement);
38672
+ const visitor = OpenApi3_1DereferenceVisitor({
38673
+ reference,
38674
+ namespace: this.namespace,
38675
+ indirections: [...this.indirections],
38676
+ options: this.options,
38677
+ refractCache: this.refractCache,
38678
+ ancestors: ancestorsLineage
38679
+ });
38680
+ referencedElement = await visitAsync(referencedElement, visitor, {
38681
+ keyMap: _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_20__.keyMap,
38682
+ nodeTypeGetter: _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_20__.getNodeType
38683
+ });
38137
38684
 
38138
- // remove referencing path item from ancestors lineage
38139
- directAncestors.delete(referencingElement);
38685
+ // remove referencing reference from ancestors lineage
38686
+ directAncestors.delete(referencingElement);
38687
+ }
38140
38688
  this.indirections.pop();
38141
- const mergeAndAnnotateReferencedElement = refedElement => {
38142
- // merge fields from referenced Path Item with referencing one
38143
- const mergedElement = new _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_14__.PathItemElement([...refedElement.content], (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_18__.cloneDeep)(refedElement.meta), (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_18__.cloneDeep)(refedElement.attributes));
38689
+
38690
+ /**
38691
+ * Creating a new version of Path Item by merging fields from referenced Path Item with referencing one.
38692
+ */
38693
+ if ((0,_swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_19__.isPathItemElement)(referencedElement)) {
38694
+ const mergedElement = new _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_15__.PathItemElement([...referencedElement.content], (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__.cloneDeep)(referencedElement.meta), (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__.cloneDeep)(referencedElement.attributes));
38695
+ // assign unique id to merged element
38696
+ mergedElement.setMetaProperty('id', identityManager.generateId());
38144
38697
  // existing keywords from referencing PathItemElement overrides ones from referenced element
38145
38698
  referencingElement.forEach((value, keyElement, item) => {
38146
- mergedElement.remove((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_3__["default"])(keyElement));
38699
+ mergedElement.remove((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_11__["default"])(keyElement));
38147
38700
  mergedElement.content.push(item);
38148
38701
  });
38149
38702
  mergedElement.remove('$ref');
38150
38703
 
38151
38704
  // annotate referenced element with info about original referencing element
38152
38705
  mergedElement.setMetaProperty('ref-fields', {
38153
- $ref: (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_3__["default"])(referencingElement.$ref)
38706
+ $ref: (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_11__["default"])(referencingElement.$ref)
38154
38707
  });
38155
38708
  // annotate referenced element with info about origin
38156
38709
  mergedElement.setMetaProperty('ref-origin', reference.uri);
38157
38710
  // annotate fragment with info about referencing element
38158
- mergedElement.setMetaProperty('ref-referencing-element-id', (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_18__.cloneDeep)(identityManager.identify(referencingElement)));
38159
- return mergedElement;
38160
- };
38711
+ mergedElement.setMetaProperty('ref-referencing-element-id', (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__.cloneDeep)(identityManager.identify(referencingElement)));
38712
+ referencedElement = mergedElement;
38713
+ }
38161
38714
 
38162
- // attempting to create cycle
38163
- if (ancestorsLineage.includes(referencingElement) || ancestorsLineage.includes(referencedElement)) {
38164
- var _ancestorsLineage$fin2;
38165
- const replaceWith = (_ancestorsLineage$fin2 = ancestorsLineage.findItem(wasReferencedBy(referencingElement))) !== null && _ancestorsLineage$fin2 !== void 0 ? _ancestorsLineage$fin2 : mergeAndAnnotateReferencedElement(referencedElement);
38166
- if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__.isMemberElement)(parent)) {
38167
- parent.value = replaceWith; // eslint-disable-line no-param-reassign
38168
- } else if (Array.isArray(parent)) {
38169
- parent[key] = replaceWith; // eslint-disable-line no-param-reassign
38170
- }
38171
- return false;
38715
+ /**
38716
+ * Transclude referencing element with merged referenced element.
38717
+ */
38718
+ if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__.isMemberElement)(parent)) {
38719
+ parent.value = referencedElement; // eslint-disable-line no-param-reassign
38720
+ } else if (Array.isArray(parent)) {
38721
+ parent[key] = referencedElement; // eslint-disable-line no-param-reassign
38172
38722
  }
38173
38723
 
38174
- // transclude referencing element with merged referenced element
38175
- return mergeAndAnnotateReferencedElement(referencedElement);
38724
+ /**
38725
+ * We're at the root of the tree, so we're just replacing the entire tree.
38726
+ */
38727
+ return !parent ? referencedElement : undefined;
38176
38728
  },
38177
- async LinkElement(linkElement) {
38729
+ async LinkElement(linkElement, key, parent) {
38178
38730
  // ignore LinkElement without operationRef or operationId field
38179
38731
  if (!(0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__.isStringElement)(linkElement.operationRef) && !(0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__.isStringElement)(linkElement.operationId)) {
38180
38732
  return undefined;
@@ -38182,116 +38734,161 @@ const OpenApi3_1DereferenceVisitor = stampit__WEBPACK_IMPORTED_MODULE_0__({
38182
38734
 
38183
38735
  // operationRef and operationId fields are mutually exclusive
38184
38736
  if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__.isStringElement)(linkElement.operationRef) && (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__.isStringElement)(linkElement.operationId)) {
38185
- throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_15__["default"]('LinkElement operationRef and operationId fields are mutually exclusive.');
38737
+ throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_16__["default"]('LinkElement operationRef and operationId fields are mutually exclusive.');
38186
38738
  }
38187
38739
  let operationElement;
38188
38740
  if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__.isStringElement)(linkElement.operationRef)) {
38189
38741
  var _linkElementCopy$oper;
38190
38742
  // possibly non-semantic referenced element
38191
- const jsonPointer = (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_11__.uriToPointer)((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_3__["default"])(linkElement.operationRef));
38192
- const retrievalURI = this.toBaseURI((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_3__["default"])(linkElement.operationRef));
38743
+ const jsonPointer = (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_12__.uriToPointer)((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_11__["default"])(linkElement.operationRef));
38744
+ const retrievalURI = this.toBaseURI((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_11__["default"])(linkElement.operationRef));
38745
+ const isInternalReference = _util_url_mjs__WEBPACK_IMPORTED_MODULE_4__.stripHash(this.reference.uri) === retrievalURI;
38746
+ const isExternalReference = !isInternalReference;
38193
38747
 
38748
+ // ignore resolving internal Operation Object reference
38749
+ if (!this.options.resolve.internal && isInternalReference) {
38750
+ // skip traversing this Link element but traverse all it's child elements
38751
+ return undefined;
38752
+ }
38194
38753
  // ignore resolving external Operation Object reference
38195
- if (!this.options.resolve.external && _util_url_mjs__WEBPACK_IMPORTED_MODULE_5__.stripHash(this.reference.uri) !== retrievalURI) {
38754
+ if (!this.options.resolve.external && isExternalReference) {
38196
38755
  // skip traversing this Link element but traverse all it's child elements
38197
38756
  return undefined;
38198
38757
  }
38199
- const reference = await this.toReference((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_3__["default"])(linkElement.operationRef));
38200
- operationElement = (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_12__["default"])(jsonPointer, reference.value.result);
38758
+ const reference = await this.toReference((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_11__["default"])(linkElement.operationRef));
38759
+ operationElement = (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_13__["default"])(jsonPointer, reference.value.result);
38201
38760
  // applying semantics to a referenced element
38202
38761
  if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__.isPrimitiveElement)(operationElement)) {
38203
- const cacheKey = `operation-${(0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_3__["default"])(identityManager.identify(operationElement))}`;
38762
+ const cacheKey = `operation-${(0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_11__["default"])(identityManager.identify(operationElement))}`;
38204
38763
  if (this.refractCache.has(cacheKey)) {
38205
38764
  operationElement = this.refractCache.get(cacheKey);
38206
38765
  } else {
38207
- operationElement = _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_14__.OperationElement.refract(operationElement);
38766
+ operationElement = _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_15__.OperationElement.refract(operationElement);
38208
38767
  this.refractCache.set(cacheKey, operationElement);
38209
38768
  }
38210
38769
  }
38211
38770
  // create shallow clone to be able to annotate with metadata
38212
- operationElement = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_18__.cloneShallow)(operationElement);
38771
+ operationElement = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__.cloneShallow)(operationElement);
38213
38772
  // annotate operation element with info about origin
38214
38773
  operationElement.setMetaProperty('ref-origin', reference.uri);
38215
- const linkElementCopy = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_18__.cloneShallow)(linkElement);
38774
+ const linkElementCopy = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__.cloneShallow)(linkElement);
38216
38775
  (_linkElementCopy$oper = linkElementCopy.operationRef) === null || _linkElementCopy$oper === void 0 || _linkElementCopy$oper.meta.set('operation', operationElement);
38217
- return linkElementCopy;
38776
+
38777
+ /**
38778
+ * Transclude Link Object containing Operation Object in its meta.
38779
+ */
38780
+ if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__.isMemberElement)(parent)) {
38781
+ parent.value = linkElementCopy; // eslint-disable-line no-param-reassign
38782
+ } else if (Array.isArray(parent)) {
38783
+ parent[key] = linkElementCopy; // eslint-disable-line no-param-reassign
38784
+ }
38785
+
38786
+ /**
38787
+ * We're at the root of the tree, so we're just replacing the entire tree.
38788
+ */
38789
+ return !parent ? linkElementCopy : undefined;
38218
38790
  }
38219
38791
  if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__.isStringElement)(linkElement.operationId)) {
38220
38792
  var _linkElementCopy$oper2;
38221
- const operationId = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_3__["default"])(linkElement.operationId);
38222
- const reference = await this.toReference(_util_url_mjs__WEBPACK_IMPORTED_MODULE_5__.unsanitize(this.reference.uri));
38223
- operationElement = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_19__["default"])(e => (0,_swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_20__.isOperationElement)(e) && (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__.isElement)(e.operationId) && e.operationId.equals(operationId), reference.value.result);
38793
+ const operationId = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_11__["default"])(linkElement.operationId);
38794
+ const reference = await this.toReference(_util_url_mjs__WEBPACK_IMPORTED_MODULE_4__.unsanitize(this.reference.uri));
38795
+ operationElement = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_21__["default"])(e => (0,_swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_19__.isOperationElement)(e) && (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__.isElement)(e.operationId) && e.operationId.equals(operationId), reference.value.result);
38224
38796
  // OperationElement not found by its operationId
38225
- if ((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_21__["default"])(operationElement)) {
38226
- throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_15__["default"](`OperationElement(operationId=${operationId}) not found.`);
38797
+ if ((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_22__["default"])(operationElement)) {
38798
+ throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_16__["default"](`OperationElement(operationId=${operationId}) not found.`);
38227
38799
  }
38228
- const linkElementCopy = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_18__.cloneShallow)(linkElement);
38800
+ const linkElementCopy = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__.cloneShallow)(linkElement);
38229
38801
  (_linkElementCopy$oper2 = linkElementCopy.operationId) === null || _linkElementCopy$oper2 === void 0 || _linkElementCopy$oper2.meta.set('operation', operationElement);
38230
- return linkElementCopy;
38802
+
38803
+ /**
38804
+ * Transclude Link Object containing Operation Object in its meta.
38805
+ */
38806
+ if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__.isMemberElement)(parent)) {
38807
+ parent.value = linkElementCopy; // eslint-disable-line no-param-reassign
38808
+ } else if (Array.isArray(parent)) {
38809
+ parent[key] = linkElementCopy; // eslint-disable-line no-param-reassign
38810
+ }
38811
+
38812
+ /**
38813
+ * We're at the root of the tree, so we're just replacing the entire tree.
38814
+ */
38815
+ return !parent ? linkElementCopy : undefined;
38231
38816
  }
38232
38817
  return undefined;
38233
38818
  },
38234
- async ExampleElement(exampleElement, key, parent, path, ancestors) {
38235
- const [ancestorsLineage] = this.toAncestorLineage([...ancestors, parent]);
38236
-
38819
+ async ExampleElement(exampleElement, key, parent) {
38237
38820
  // ignore ExampleElement without externalValue field
38238
38821
  if (!(0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__.isStringElement)(exampleElement.externalValue)) {
38239
38822
  return undefined;
38240
38823
  }
38241
38824
 
38242
- // detect possible cycle in traversal and avoid it
38243
- if (ancestorsLineage.includesCycle(exampleElement)) {
38244
- return false;
38245
- }
38246
-
38247
38825
  // value and externalValue fields are mutually exclusive
38248
38826
  if (exampleElement.hasKey('value') && (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__.isStringElement)(exampleElement.externalValue)) {
38249
- throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_15__["default"]('ExampleElement value and externalValue fields are mutually exclusive.');
38827
+ throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_16__["default"]('ExampleElement value and externalValue fields are mutually exclusive.');
38250
38828
  }
38251
- const retrievalURI = this.toBaseURI((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_3__["default"])(exampleElement.externalValue));
38829
+ const retrievalURI = this.toBaseURI((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_11__["default"])(exampleElement.externalValue));
38830
+ const isInternalReference = _util_url_mjs__WEBPACK_IMPORTED_MODULE_4__.stripHash(this.reference.uri) === retrievalURI;
38831
+ const isExternalReference = !isInternalReference;
38252
38832
 
38833
+ // ignore resolving internal Example Objects
38834
+ if (!this.options.resolve.internal && isInternalReference) {
38835
+ // skip traversing this Example element but traverse all it's child elements
38836
+ return undefined;
38837
+ }
38253
38838
  // ignore resolving external Example Objects
38254
- if (!this.options.resolve.external && _util_url_mjs__WEBPACK_IMPORTED_MODULE_5__.stripHash(this.reference.uri) !== retrievalURI) {
38839
+ if (!this.options.resolve.external && isExternalReference) {
38255
38840
  // skip traversing this Example element but traverse all it's child elements
38256
38841
  return undefined;
38257
38842
  }
38258
- const reference = await this.toReference((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_3__["default"])(exampleElement.externalValue));
38843
+ const reference = await this.toReference((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_11__["default"])(exampleElement.externalValue));
38259
38844
 
38260
38845
  // shallow clone of the referenced element
38261
- const valueElement = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_18__.cloneShallow)(reference.value.result);
38846
+ const valueElement = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__.cloneShallow)(reference.value.result);
38262
38847
  // annotate operation element with info about origin
38263
38848
  valueElement.setMetaProperty('ref-origin', reference.uri);
38264
- const exampleElementCopy = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_18__.cloneShallow)(exampleElement);
38849
+ const exampleElementCopy = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__.cloneShallow)(exampleElement);
38265
38850
  exampleElementCopy.value = valueElement;
38266
- return exampleElementCopy;
38851
+
38852
+ /**
38853
+ * Transclude Example Object containing external value.
38854
+ */
38855
+ if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__.isMemberElement)(parent)) {
38856
+ parent.value = exampleElementCopy; // eslint-disable-line no-param-reassign
38857
+ } else if (Array.isArray(parent)) {
38858
+ parent[key] = exampleElementCopy; // eslint-disable-line no-param-reassign
38859
+ }
38860
+
38861
+ /**
38862
+ * We're at the root of the tree, so we're just replacing the entire tree.
38863
+ */
38864
+ return !parent ? exampleElementCopy : undefined;
38267
38865
  },
38268
38866
  async SchemaElement(referencingElement, key, parent, path, ancestors) {
38269
- const [ancestorsLineage, directAncestors] = this.toAncestorLineage([...ancestors, parent]);
38270
-
38271
38867
  // skip current referencing schema as $ref keyword was not defined
38272
38868
  if (!(0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__.isStringElement)(referencingElement.$ref)) {
38273
- // skip traversing this schema but traverse all it's child schemas
38274
38869
  return undefined;
38275
38870
  }
38276
38871
 
38277
- // detect possible cycle in traversal and avoid it
38278
- if (ancestorsLineage.includesCycle(referencingElement)) {
38872
+ // skip current referencing element as it's already been access
38873
+ if (this.indirections.includes(referencingElement)) {
38279
38874
  return false;
38280
38875
  }
38876
+ const [ancestorsLineage, directAncestors] = this.toAncestorLineage([...ancestors, parent]);
38281
38877
 
38282
38878
  // compute baseURI using rules around $id and $ref keywords
38283
- let reference = await this.toReference(_util_url_mjs__WEBPACK_IMPORTED_MODULE_5__.unsanitize(this.reference.uri));
38879
+ let reference = await this.toReference(_util_url_mjs__WEBPACK_IMPORTED_MODULE_4__.unsanitize(this.reference.uri));
38284
38880
  let {
38285
38881
  uri: retrievalURI
38286
38882
  } = reference;
38287
- const $refBaseURI = (0,_resolve_strategies_openapi_3_1_util_mjs__WEBPACK_IMPORTED_MODULE_22__.resolveSchema$refField)(retrievalURI, referencingElement);
38288
- const $refBaseURIStrippedHash = _util_url_mjs__WEBPACK_IMPORTED_MODULE_5__.stripHash($refBaseURI);
38289
- const file = (0,_util_File_mjs__WEBPACK_IMPORTED_MODULE_23__["default"])({
38883
+ const $refBaseURI = (0,_util_mjs__WEBPACK_IMPORTED_MODULE_23__.resolveSchema$refField)(retrievalURI, referencingElement);
38884
+ const $refBaseURIStrippedHash = _util_url_mjs__WEBPACK_IMPORTED_MODULE_4__.stripHash($refBaseURI);
38885
+ const file = (0,_util_File_mjs__WEBPACK_IMPORTED_MODULE_24__["default"])({
38290
38886
  uri: $refBaseURIStrippedHash
38291
38887
  });
38292
- const isUnknownURI = (0,ramda__WEBPACK_IMPORTED_MODULE_24__["default"])(r => r.canRead(file), this.options.resolve.resolvers);
38888
+ const isUnknownURI = (0,ramda__WEBPACK_IMPORTED_MODULE_25__["default"])(r => r.canRead(file), this.options.resolve.resolvers);
38293
38889
  const isURL = !isUnknownURI;
38294
- const isExternalURL = uri => _util_url_mjs__WEBPACK_IMPORTED_MODULE_5__.stripHash(this.reference.uri) !== uri;
38890
+ let isInternalReference = _util_url_mjs__WEBPACK_IMPORTED_MODULE_4__.stripHash(this.reference.uri) === $refBaseURI;
38891
+ let isExternalReference = !isInternalReference;
38295
38892
  this.indirections.push(referencingElement);
38296
38893
 
38297
38894
  // determining reference, proper evaluation and selection mechanism
@@ -38299,59 +38896,95 @@ const OpenApi3_1DereferenceVisitor = stampit__WEBPACK_IMPORTED_MODULE_0__({
38299
38896
  try {
38300
38897
  if (isUnknownURI || isURL) {
38301
38898
  // we're dealing with canonical URI or URL with possible fragment
38899
+ retrievalURI = this.toBaseURI($refBaseURI);
38302
38900
  const selector = $refBaseURI;
38303
- referencedElement = (0,_selectors_uri_mjs__WEBPACK_IMPORTED_MODULE_25__.evaluate)(selector,
38304
- // @ts-ignore
38305
- (0,_resolve_strategies_openapi_3_1_util_mjs__WEBPACK_IMPORTED_MODULE_22__.maybeRefractToSchemaElement)(reference.value.result));
38901
+ const referenceAsSchema = (0,_util_mjs__WEBPACK_IMPORTED_MODULE_23__.maybeRefractToSchemaElement)(reference.value.result);
38902
+ referencedElement = (0,_selectors_uri_mjs__WEBPACK_IMPORTED_MODULE_26__.evaluate)(selector, referenceAsSchema);
38903
+ referencedElement = (0,_util_mjs__WEBPACK_IMPORTED_MODULE_23__.maybeRefractToSchemaElement)(referencedElement);
38904
+ referencedElement.id = identityManager.identify(referencedElement);
38905
+
38906
+ // ignore resolving internal Schema Objects
38907
+ if (!this.options.resolve.internal && isInternalReference) {
38908
+ // skip traversing this schema element but traverse all it's child elements
38909
+ return undefined;
38910
+ }
38911
+ // ignore resolving external Schema Objects
38912
+ if (!this.options.resolve.external && isExternalReference) {
38913
+ // skip traversing this schema element but traverse all it's child elements
38914
+ return undefined;
38915
+ }
38306
38916
  } else {
38307
38917
  // we're assuming here that we're dealing with JSON Pointer here
38308
- retrievalURI = this.toBaseURI((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_3__["default"])($refBaseURI));
38918
+ retrievalURI = this.toBaseURI($refBaseURI);
38919
+ isInternalReference = _util_url_mjs__WEBPACK_IMPORTED_MODULE_4__.stripHash(this.reference.uri) === retrievalURI;
38920
+ isExternalReference = !isInternalReference;
38309
38921
 
38922
+ // ignore resolving internal Schema Objects
38923
+ if (!this.options.resolve.internal && isInternalReference) {
38924
+ // skip traversing this schema element but traverse all it's child elements
38925
+ return undefined;
38926
+ }
38310
38927
  // ignore resolving external Schema Objects
38311
- if (!this.options.resolve.external && isExternalURL(retrievalURI)) {
38928
+ if (!this.options.resolve.external && isExternalReference) {
38312
38929
  // skip traversing this schema element but traverse all it's child elements
38313
38930
  return undefined;
38314
38931
  }
38315
- reference = await this.toReference(_util_url_mjs__WEBPACK_IMPORTED_MODULE_5__.unsanitize($refBaseURI));
38316
- const selector = (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_11__.uriToPointer)($refBaseURI);
38317
- referencedElement = (0,_resolve_strategies_openapi_3_1_util_mjs__WEBPACK_IMPORTED_MODULE_22__.maybeRefractToSchemaElement)(
38318
- // @ts-ignore
38319
- (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_12__["default"])(selector, reference.value.result));
38932
+ reference = await this.toReference(_util_url_mjs__WEBPACK_IMPORTED_MODULE_4__.unsanitize($refBaseURI));
38933
+ const selector = (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_12__.uriToPointer)($refBaseURI);
38934
+ const referenceAsSchema = (0,_util_mjs__WEBPACK_IMPORTED_MODULE_23__.maybeRefractToSchemaElement)(reference.value.result);
38935
+ referencedElement = (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_13__["default"])(selector, referenceAsSchema);
38936
+ referencedElement = (0,_util_mjs__WEBPACK_IMPORTED_MODULE_23__.maybeRefractToSchemaElement)(referencedElement);
38937
+ referencedElement.id = identityManager.identify(referencedElement);
38320
38938
  }
38321
38939
  } catch (error) {
38322
38940
  /**
38323
38941
  * No SchemaElement($id=URL) was not found, so we're going to try to resolve
38324
38942
  * the URL and assume the returned response is a JSON Schema.
38325
38943
  */
38326
- if (isURL && error instanceof _errors_EvaluationJsonSchemaUriError_mjs__WEBPACK_IMPORTED_MODULE_26__["default"]) {
38327
- if ((0,_selectors_$anchor_mjs__WEBPACK_IMPORTED_MODULE_27__.isAnchor)((0,_selectors_$anchor_mjs__WEBPACK_IMPORTED_MODULE_27__.uriToAnchor)($refBaseURI))) {
38944
+ if (isURL && error instanceof _errors_EvaluationJsonSchemaUriError_mjs__WEBPACK_IMPORTED_MODULE_27__["default"]) {
38945
+ if ((0,_selectors_$anchor_mjs__WEBPACK_IMPORTED_MODULE_28__.isAnchor)((0,_selectors_$anchor_mjs__WEBPACK_IMPORTED_MODULE_28__.uriToAnchor)($refBaseURI))) {
38328
38946
  // we're dealing with JSON Schema $anchor here
38329
- retrievalURI = this.toBaseURI((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_3__["default"])($refBaseURI));
38947
+ isInternalReference = _util_url_mjs__WEBPACK_IMPORTED_MODULE_4__.stripHash(this.reference.uri) === retrievalURI;
38948
+ isExternalReference = !isInternalReference;
38330
38949
 
38950
+ // ignore resolving internal Schema Objects
38951
+ if (!this.options.resolve.internal && isInternalReference) {
38952
+ // skip traversing this schema element but traverse all it's child elements
38953
+ return undefined;
38954
+ }
38331
38955
  // ignore resolving external Schema Objects
38332
- if (!this.options.resolve.external && isExternalURL(retrievalURI)) {
38956
+ if (!this.options.resolve.external && isExternalReference) {
38333
38957
  // skip traversing this schema element but traverse all it's child elements
38334
38958
  return undefined;
38335
38959
  }
38336
- reference = await this.toReference(_util_url_mjs__WEBPACK_IMPORTED_MODULE_5__.unsanitize($refBaseURI));
38337
- const selector = (0,_selectors_$anchor_mjs__WEBPACK_IMPORTED_MODULE_27__.uriToAnchor)($refBaseURI);
38338
- referencedElement = (0,_selectors_$anchor_mjs__WEBPACK_IMPORTED_MODULE_27__.evaluate)(selector,
38339
- // @ts-ignore
38340
- (0,_resolve_strategies_openapi_3_1_util_mjs__WEBPACK_IMPORTED_MODULE_22__.maybeRefractToSchemaElement)(reference.value.result));
38960
+ reference = await this.toReference(_util_url_mjs__WEBPACK_IMPORTED_MODULE_4__.unsanitize($refBaseURI));
38961
+ const selector = (0,_selectors_$anchor_mjs__WEBPACK_IMPORTED_MODULE_28__.uriToAnchor)($refBaseURI);
38962
+ const referenceAsSchema = (0,_util_mjs__WEBPACK_IMPORTED_MODULE_23__.maybeRefractToSchemaElement)(reference.value.result);
38963
+ referencedElement = (0,_selectors_$anchor_mjs__WEBPACK_IMPORTED_MODULE_28__.evaluate)(selector, referenceAsSchema);
38964
+ referencedElement = (0,_util_mjs__WEBPACK_IMPORTED_MODULE_23__.maybeRefractToSchemaElement)(referencedElement);
38965
+ referencedElement.id = identityManager.identify(referencedElement);
38341
38966
  } else {
38342
38967
  // we're assuming here that we're dealing with JSON Pointer here
38343
- retrievalURI = this.toBaseURI((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_3__["default"])($refBaseURI));
38968
+ retrievalURI = this.toBaseURI($refBaseURI);
38969
+ isInternalReference = _util_url_mjs__WEBPACK_IMPORTED_MODULE_4__.stripHash(this.reference.uri) === retrievalURI;
38970
+ isExternalReference = !isInternalReference;
38344
38971
 
38972
+ // ignore resolving internal Schema Objects
38973
+ if (!this.options.resolve.internal && isInternalReference) {
38974
+ // skip traversing this schema element but traverse all it's child elements
38975
+ return undefined;
38976
+ }
38345
38977
  // ignore resolving external Schema Objects
38346
- if (!this.options.resolve.external && isExternalURL(retrievalURI)) {
38978
+ if (!this.options.resolve.external && isExternalReference) {
38347
38979
  // skip traversing this schema element but traverse all it's child elements
38348
38980
  return undefined;
38349
38981
  }
38350
- reference = await this.toReference(_util_url_mjs__WEBPACK_IMPORTED_MODULE_5__.unsanitize($refBaseURI));
38351
- const selector = (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_11__.uriToPointer)($refBaseURI);
38352
- referencedElement = (0,_resolve_strategies_openapi_3_1_util_mjs__WEBPACK_IMPORTED_MODULE_22__.maybeRefractToSchemaElement)(
38353
- // @ts-ignore
38354
- (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_12__["default"])(selector, reference.value.result));
38982
+ reference = await this.toReference(_util_url_mjs__WEBPACK_IMPORTED_MODULE_4__.unsanitize($refBaseURI));
38983
+ const selector = (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_12__.uriToPointer)($refBaseURI);
38984
+ const referenceAsSchema = (0,_util_mjs__WEBPACK_IMPORTED_MODULE_23__.maybeRefractToSchemaElement)(reference.value.result);
38985
+ referencedElement = (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_13__["default"])(selector, referenceAsSchema);
38986
+ referencedElement = (0,_util_mjs__WEBPACK_IMPORTED_MODULE_23__.maybeRefractToSchemaElement)(referencedElement);
38987
+ referencedElement.id = identityManager.identify(referencedElement);
38355
38988
  }
38356
38989
  } else {
38357
38990
  throw error;
@@ -38359,80 +38992,124 @@ const OpenApi3_1DereferenceVisitor = stampit__WEBPACK_IMPORTED_MODULE_0__({
38359
38992
  }
38360
38993
 
38361
38994
  // detect direct or indirect reference
38362
- if (this.indirections.includes(referencedElement)) {
38363
- throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_15__["default"]('Recursive Schema Object reference detected');
38995
+ if (referencingElement === referencedElement) {
38996
+ throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_16__["default"]('Recursive Schema Object reference detected');
38364
38997
  }
38365
38998
 
38366
38999
  // detect maximum depth of dereferencing
38367
39000
  if (this.indirections.length > this.options.dereference.maxDepth) {
38368
- throw new _errors_MaximumDereferenceDepthError_mjs__WEBPACK_IMPORTED_MODULE_16__["default"](`Maximum dereference depth of "${this.options.dereference.maxDepth}" has been exceeded in file "${this.reference.uri}"`);
39001
+ throw new _errors_MaximumDereferenceDepthError_mjs__WEBPACK_IMPORTED_MODULE_17__["default"](`Maximum dereference depth of "${this.options.dereference.maxDepth}" has been exceeded in file "${this.reference.uri}"`);
39002
+ }
39003
+
39004
+ // detect second deep dive into the same fragment and avoid it
39005
+ if (ancestorsLineage.includes(referencedElement)) {
39006
+ reference.refSet.circular = true;
39007
+ if (this.options.dereference.circular === 'error') {
39008
+ throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_16__["default"]('Circular reference detected');
39009
+ } else if (this.options.dereference.circular === 'replace') {
39010
+ var _this$options$derefer5, _this$options$derefer6;
39011
+ const refElement = new _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_18__.RefElement(referencedElement.id, {
39012
+ type: 'json-schema',
39013
+ uri: reference.uri,
39014
+ $ref: (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_11__["default"])(referencingElement.$ref)
39015
+ });
39016
+ const replacer = (_this$options$derefer5 = (_this$options$derefer6 = this.options.dereference.strategyOpts['openapi-3-1']) === null || _this$options$derefer6 === void 0 ? void 0 : _this$options$derefer6.circularReplacer) !== null && _this$options$derefer5 !== void 0 ? _this$options$derefer5 : this.options.dereference.circularReplacer;
39017
+ const replacement = replacer(refElement);
39018
+ if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__.isMemberElement)(parent)) {
39019
+ parent.value = replacement; // eslint-disable-line no-param-reassign
39020
+ } else if (Array.isArray(parent)) {
39021
+ parent[key] = replacement; // eslint-disable-line no-param-reassign
39022
+ }
39023
+ return !parent ? replacement : false;
39024
+ }
38369
39025
  }
38370
39026
 
38371
- // append referencing schema to ancestors lineage
38372
- directAncestors.add(referencingElement);
38373
-
38374
- // dive deep into the fragment
38375
- const visitor = OpenApi3_1DereferenceVisitor({
38376
- reference,
38377
- namespace: this.namespace,
38378
- indirections: [...this.indirections],
38379
- options: this.options,
38380
- ancestors: ancestorsLineage
38381
- });
38382
- referencedElement = await visitAsync(referencedElement, visitor, {
38383
- keyMap: _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_17__.keyMap,
38384
- nodeTypeGetter: _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_17__.getNodeType
38385
- });
39027
+ /**
39028
+ * Dive deep into the fragment.
39029
+ *
39030
+ * Cases to consider:
39031
+ * 1. We're crossing document boundary
39032
+ * 2. Fragment is a Schema Object with $ref field. We need to follow it to get the eventual value
39033
+ * 3. We are dereferencing the fragment lazily/eagerly depending on circular mode
39034
+ */
39035
+ if ((isExternalReference || (0,_swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_19__.isSchemaElement)(referencedElement) && (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__.isStringElement)(referencedElement.$ref) || ['error', 'replace'].includes(this.options.dereference.circular)) && !ancestorsLineage.includesCycle(referencedElement)) {
39036
+ // append referencing reference to ancestors lineage
39037
+ directAncestors.add(referencingElement);
39038
+ const visitor = OpenApi3_1DereferenceVisitor({
39039
+ reference,
39040
+ namespace: this.namespace,
39041
+ indirections: [...this.indirections],
39042
+ options: this.options,
39043
+ refractCache: this.refractCache,
39044
+ ancestors: ancestorsLineage
39045
+ });
39046
+ referencedElement = await visitAsync(referencedElement, visitor, {
39047
+ keyMap: _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_20__.keyMap,
39048
+ nodeTypeGetter: _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_20__.getNodeType
39049
+ });
38386
39050
 
38387
- // remove referencing schema from ancestors lineage
38388
- directAncestors.delete(referencingElement);
39051
+ // remove referencing reference from ancestors lineage
39052
+ directAncestors.delete(referencingElement);
39053
+ }
38389
39054
  this.indirections.pop();
38390
39055
 
38391
39056
  // Boolean JSON Schemas
38392
- if ((0,_swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_20__.isBooleanJsonSchemaElement)(referencedElement)) {
38393
- const booleanJsonSchemaElement = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_18__.cloneDeep)(referencedElement);
39057
+ if ((0,_swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_19__.isBooleanJsonSchemaElement)(referencedElement)) {
39058
+ const booleanJsonSchemaElement = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__.cloneDeep)(referencedElement);
39059
+ // assign unique id to merged element
39060
+ booleanJsonSchemaElement.setMetaProperty('id', identityManager.generateId());
38394
39061
  // annotate referenced element with info about original referencing element
38395
39062
  booleanJsonSchemaElement.setMetaProperty('ref-fields', {
38396
- $ref: (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_3__["default"])(referencingElement.$ref)
39063
+ $ref: (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_11__["default"])(referencingElement.$ref)
38397
39064
  });
38398
39065
  // annotate referenced element with info about origin
38399
39066
  booleanJsonSchemaElement.setMetaProperty('ref-origin', reference.uri);
38400
39067
  // annotate fragment with info about referencing element
38401
- booleanJsonSchemaElement.setMetaProperty('ref-referencing-element-id', (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_18__.cloneDeep)(identityManager.identify(referencingElement)));
38402
- return booleanJsonSchemaElement;
39068
+ booleanJsonSchemaElement.setMetaProperty('ref-referencing-element-id', (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__.cloneDeep)(identityManager.identify(referencingElement)));
39069
+ if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__.isMemberElement)(parent)) {
39070
+ parent.value = booleanJsonSchemaElement; // eslint-disable-line no-param-reassign
39071
+ } else if (Array.isArray(parent)) {
39072
+ parent[key] = booleanJsonSchemaElement; // eslint-disable-line no-param-reassign
39073
+ }
39074
+ return !parent ? booleanJsonSchemaElement : false;
38403
39075
  }
38404
- const mergeAndAnnotateReferencedElement = refedElement => {
38405
- // Schema Object - merge keywords from referenced schema with referencing schema
38406
- const mergedElement = new _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_14__.SchemaElement([...refedElement.content], (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_18__.cloneDeep)(refedElement.meta), (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_18__.cloneDeep)(refedElement.attributes));
39076
+
39077
+ /**
39078
+ * Creating a new version of Schema Object by merging fields from referenced Schema Object with referencing one.
39079
+ */
39080
+ if ((0,_swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_19__.isSchemaElement)(referencedElement)) {
39081
+ const mergedElement = new _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_15__.SchemaElement([...referencedElement.content], (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__.cloneDeep)(referencedElement.meta), (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__.cloneDeep)(referencedElement.attributes));
39082
+ // assign unique id to merged element
39083
+ mergedElement.setMetaProperty('id', identityManager.generateId());
38407
39084
  // existing keywords from referencing schema overrides ones from referenced schema
38408
39085
  referencingElement.forEach((value, keyElement, item) => {
38409
- mergedElement.remove((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_3__["default"])(keyElement));
39086
+ mergedElement.remove((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_11__["default"])(keyElement));
38410
39087
  mergedElement.content.push(item);
38411
39088
  });
38412
39089
  mergedElement.remove('$ref');
38413
39090
  // annotate referenced element with info about original referencing element
38414
39091
  mergedElement.setMetaProperty('ref-fields', {
38415
- $ref: (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_3__["default"])(referencingElement.$ref)
39092
+ $ref: (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_11__["default"])(referencingElement.$ref)
38416
39093
  });
38417
39094
  // annotate fragment with info about origin
38418
39095
  mergedElement.setMetaProperty('ref-origin', reference.uri);
38419
39096
  // annotate fragment with info about referencing element
38420
- mergedElement.setMetaProperty('ref-referencing-element-id', (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_18__.cloneDeep)(identityManager.identify(referencingElement)));
38421
- return mergedElement;
38422
- };
38423
-
38424
- // attempting to create cycle
38425
- if (ancestorsLineage.includes(referencingElement) || ancestorsLineage.includes(referencedElement)) {
38426
- var _ancestorsLineage$fin3;
38427
- const replaceWith = (_ancestorsLineage$fin3 = ancestorsLineage.findItem(wasReferencedBy(referencingElement))) !== null && _ancestorsLineage$fin3 !== void 0 ? _ancestorsLineage$fin3 : mergeAndAnnotateReferencedElement(referencedElement);
38428
- if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__.isMemberElement)(parent)) {
38429
- parent.value = replaceWith; // eslint-disable-line no-param-reassign
38430
- } else if (Array.isArray(parent)) {
38431
- parent[key] = replaceWith; // eslint-disable-line no-param-reassign
38432
- }
38433
- return false;
39097
+ mergedElement.setMetaProperty('ref-referencing-element-id', (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__.cloneDeep)(identityManager.identify(referencingElement)));
39098
+ referencedElement = mergedElement;
39099
+ }
39100
+ /**
39101
+ * Transclude referencing element with merged referenced element.
39102
+ */
39103
+ if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__.isMemberElement)(parent)) {
39104
+ parent.value = referencedElement; // eslint-disable-line no-param-reassign
39105
+ } else if (Array.isArray(parent)) {
39106
+ parent[key] = referencedElement; // eslint-disable-line no-param-reassign
38434
39107
  }
38435
- return mergeAndAnnotateReferencedElement(referencedElement);
39108
+
39109
+ /**
39110
+ * We're at the root of the tree, so we're just replacing the entire tree.
39111
+ */
39112
+ return !parent ? referencedElement : undefined;
38436
39113
  }
38437
39114
  }
38438
39115
  });
@@ -38506,6 +39183,21 @@ class DereferenceError extends _swagger_api_apidom_error__WEBPACK_IMPORTED_MODUL
38506
39183
 
38507
39184
  /***/ }),
38508
39185
 
39186
+ /***/ 82679:
39187
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
39188
+
39189
+ "use strict";
39190
+ __webpack_require__.r(__webpack_exports__);
39191
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
39192
+ /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
39193
+ /* harmony export */ });
39194
+ /* harmony import */ var _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(98219);
39195
+
39196
+ class EvaluationElementIdError extends _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_0__["default"] {}
39197
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (EvaluationElementIdError);
39198
+
39199
+ /***/ }),
39200
+
38509
39201
  /***/ 42384:
38510
39202
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
38511
39203
 
@@ -38784,30 +39476,31 @@ __webpack_require__.r(__webpack_exports__);
38784
39476
  /* harmony export */ DereferenceAncestorLineage: () => (/* reexport safe */ _dereference_util_mjs__WEBPACK_IMPORTED_MODULE_7__.AncestorLineage),
38785
39477
  /* harmony export */ DereferenceError: () => (/* reexport safe */ _errors_DereferenceError_mjs__WEBPACK_IMPORTED_MODULE_16__["default"]),
38786
39478
  /* harmony export */ DereferenceStrategy: () => (/* reexport safe */ _dereference_strategies_DereferenceStrategy_mjs__WEBPACK_IMPORTED_MODULE_6__["default"]),
38787
- /* harmony export */ EvaluationJsonSchema$anchorError: () => (/* reexport safe */ _errors_EvaluationJsonSchema$anchorError_mjs__WEBPACK_IMPORTED_MODULE_17__["default"]),
38788
- /* harmony export */ EvaluationJsonSchemaUriError: () => (/* reexport safe */ _errors_EvaluationJsonSchemaUriError_mjs__WEBPACK_IMPORTED_MODULE_18__["default"]),
39479
+ /* harmony export */ EvaluationElementIdError: () => (/* reexport safe */ _errors_EvaluationElementIdError_mjs__WEBPACK_IMPORTED_MODULE_17__["default"]),
39480
+ /* harmony export */ EvaluationJsonSchema$anchorError: () => (/* reexport safe */ _errors_EvaluationJsonSchema$anchorError_mjs__WEBPACK_IMPORTED_MODULE_18__["default"]),
39481
+ /* harmony export */ EvaluationJsonSchemaUriError: () => (/* reexport safe */ _errors_EvaluationJsonSchemaUriError_mjs__WEBPACK_IMPORTED_MODULE_19__["default"]),
38789
39482
  /* harmony export */ File: () => (/* reexport safe */ _util_File_mjs__WEBPACK_IMPORTED_MODULE_1__["default"]),
38790
39483
  /* harmony export */ HttpResolver: () => (/* reexport safe */ _resolve_resolvers_HttpResolver_mjs__WEBPACK_IMPORTED_MODULE_4__["default"]),
38791
- /* harmony export */ InvalidJsonSchema$anchorError: () => (/* reexport safe */ _errors_InvalidJsonSchema$anchorError_mjs__WEBPACK_IMPORTED_MODULE_19__["default"]),
38792
- /* harmony export */ JsonSchema$anchorError: () => (/* reexport safe */ _errors_JsonSchema$anchorError_mjs__WEBPACK_IMPORTED_MODULE_20__["default"]),
38793
- /* harmony export */ JsonSchemaURIError: () => (/* reexport safe */ _errors_JsonSchemaUriError_mjs__WEBPACK_IMPORTED_MODULE_21__["default"]),
39484
+ /* harmony export */ InvalidJsonSchema$anchorError: () => (/* reexport safe */ _errors_InvalidJsonSchema$anchorError_mjs__WEBPACK_IMPORTED_MODULE_20__["default"]),
39485
+ /* harmony export */ JsonSchema$anchorError: () => (/* reexport safe */ _errors_JsonSchema$anchorError_mjs__WEBPACK_IMPORTED_MODULE_21__["default"]),
39486
+ /* harmony export */ JsonSchemaURIError: () => (/* reexport safe */ _errors_JsonSchemaUriError_mjs__WEBPACK_IMPORTED_MODULE_22__["default"]),
38794
39487
  /* harmony export */ MaximumBundleDepthError: () => (/* reexport safe */ _errors_MaximumBundleDepthError_mjs__WEBPACK_IMPORTED_MODULE_14__["default"]),
38795
- /* harmony export */ MaximumDereferenceDepthError: () => (/* reexport safe */ _errors_MaximumDereferenceDepthError_mjs__WEBPACK_IMPORTED_MODULE_22__["default"]),
38796
- /* harmony export */ MaximumResolveDepthError: () => (/* reexport safe */ _errors_MaximumResolveDepthError_mjs__WEBPACK_IMPORTED_MODULE_23__["default"]),
38797
- /* harmony export */ ParseError: () => (/* reexport safe */ _errors_ParseError_mjs__WEBPACK_IMPORTED_MODULE_24__["default"]),
39488
+ /* harmony export */ MaximumDereferenceDepthError: () => (/* reexport safe */ _errors_MaximumDereferenceDepthError_mjs__WEBPACK_IMPORTED_MODULE_23__["default"]),
39489
+ /* harmony export */ MaximumResolveDepthError: () => (/* reexport safe */ _errors_MaximumResolveDepthError_mjs__WEBPACK_IMPORTED_MODULE_24__["default"]),
39490
+ /* harmony export */ ParseError: () => (/* reexport safe */ _errors_ParseError_mjs__WEBPACK_IMPORTED_MODULE_25__["default"]),
38798
39491
  /* harmony export */ Parser: () => (/* reexport safe */ _parse_parsers_Parser_mjs__WEBPACK_IMPORTED_MODULE_2__["default"]),
38799
- /* harmony export */ ParserError: () => (/* reexport safe */ _errors_ParserError_mjs__WEBPACK_IMPORTED_MODULE_25__["default"]),
38800
- /* harmony export */ PluginError: () => (/* reexport safe */ _errors_PluginError_mjs__WEBPACK_IMPORTED_MODULE_26__["default"]),
39492
+ /* harmony export */ ParserError: () => (/* reexport safe */ _errors_ParserError_mjs__WEBPACK_IMPORTED_MODULE_26__["default"]),
39493
+ /* harmony export */ PluginError: () => (/* reexport safe */ _errors_PluginError_mjs__WEBPACK_IMPORTED_MODULE_27__["default"]),
38801
39494
  /* harmony export */ Reference: () => (/* reexport safe */ _Reference_mjs__WEBPACK_IMPORTED_MODULE_11__["default"]),
38802
39495
  /* harmony export */ ReferenceSet: () => (/* reexport safe */ _ReferenceSet_mjs__WEBPACK_IMPORTED_MODULE_12__["default"]),
38803
- /* harmony export */ ResolveError: () => (/* reexport safe */ _errors_ResolveError_mjs__WEBPACK_IMPORTED_MODULE_27__["default"]),
39496
+ /* harmony export */ ResolveError: () => (/* reexport safe */ _errors_ResolveError_mjs__WEBPACK_IMPORTED_MODULE_28__["default"]),
38804
39497
  /* harmony export */ ResolveStrategy: () => (/* reexport safe */ _resolve_strategies_ResolveStrategy_mjs__WEBPACK_IMPORTED_MODULE_5__["default"]),
38805
39498
  /* harmony export */ Resolver: () => (/* reexport safe */ _resolve_resolvers_Resolver_mjs__WEBPACK_IMPORTED_MODULE_3__["default"]),
38806
- /* harmony export */ ResolverError: () => (/* reexport safe */ _errors_ResolverError_mjs__WEBPACK_IMPORTED_MODULE_28__["default"]),
39499
+ /* harmony export */ ResolverError: () => (/* reexport safe */ _errors_ResolverError_mjs__WEBPACK_IMPORTED_MODULE_29__["default"]),
38807
39500
  /* harmony export */ UnmatchedBundleStrategyError: () => (/* reexport safe */ _errors_UnmatchedBundleStrategyError_mjs__WEBPACK_IMPORTED_MODULE_15__["default"]),
38808
- /* harmony export */ UnmatchedDereferenceStrategyError: () => (/* reexport safe */ _errors_UnmatchedDereferenceStrategyError_mjs__WEBPACK_IMPORTED_MODULE_29__["default"]),
38809
- /* harmony export */ UnmatchedResolveStrategyError: () => (/* reexport safe */ _errors_UnmatchedResolveStrategyError_mjs__WEBPACK_IMPORTED_MODULE_30__["default"]),
38810
- /* harmony export */ UnmatchedResolverError: () => (/* reexport safe */ _errors_UnmatchedResolverError_mjs__WEBPACK_IMPORTED_MODULE_31__["default"]),
39501
+ /* harmony export */ UnmatchedDereferenceStrategyError: () => (/* reexport safe */ _errors_UnmatchedDereferenceStrategyError_mjs__WEBPACK_IMPORTED_MODULE_30__["default"]),
39502
+ /* harmony export */ UnmatchedResolveStrategyError: () => (/* reexport safe */ _errors_UnmatchedResolveStrategyError_mjs__WEBPACK_IMPORTED_MODULE_31__["default"]),
39503
+ /* harmony export */ UnmatchedResolverError: () => (/* reexport safe */ _errors_UnmatchedResolverError_mjs__WEBPACK_IMPORTED_MODULE_32__["default"]),
38811
39504
  /* harmony export */ bundle: () => (/* binding */ bundle),
38812
39505
  /* harmony export */ dereference: () => (/* binding */ dereference),
38813
39506
  /* harmony export */ dereferenceApiDOM: () => (/* binding */ dereferenceApiDOM),
@@ -38823,11 +39516,11 @@ __webpack_require__.r(__webpack_exports__);
38823
39516
  /* harmony import */ var _util_url_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(83748);
38824
39517
  /* harmony import */ var _options_index_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(48097);
38825
39518
  /* harmony import */ var _options_util_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(40927);
38826
- /* harmony import */ var _parse_index_mjs__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(7998);
38827
- /* harmony import */ var _resolve_index_mjs__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(66407);
38828
- /* harmony import */ var _resolve_util_mjs__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(75253);
38829
- /* harmony import */ var _dereference_index_mjs__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(68987);
38830
- /* harmony import */ var _bundle_index_mjs__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(73136);
39519
+ /* harmony import */ var _parse_index_mjs__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(7998);
39520
+ /* harmony import */ var _resolve_index_mjs__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(66407);
39521
+ /* harmony import */ var _resolve_util_mjs__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(75253);
39522
+ /* harmony import */ var _dereference_index_mjs__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(68987);
39523
+ /* harmony import */ var _bundle_index_mjs__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(73136);
38831
39524
  /* harmony import */ var _parse_parsers_Parser_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(10048);
38832
39525
  /* harmony import */ var _resolve_resolvers_Resolver_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(46071);
38833
39526
  /* harmony import */ var _resolve_resolvers_HttpResolver_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(10167);
@@ -38841,21 +39534,23 @@ __webpack_require__.r(__webpack_exports__);
38841
39534
  /* harmony import */ var _errors_MaximumBundleDepthError_mjs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(97959);
38842
39535
  /* harmony import */ var _errors_UnmatchedBundleStrategyError_mjs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(3636);
38843
39536
  /* harmony import */ var _errors_DereferenceError_mjs__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(82440);
38844
- /* harmony import */ var _errors_EvaluationJsonSchema$anchorError_mjs__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(42384);
38845
- /* harmony import */ var _errors_EvaluationJsonSchemaUriError_mjs__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(78311);
38846
- /* harmony import */ var _errors_InvalidJsonSchema$anchorError_mjs__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(76787);
38847
- /* harmony import */ var _errors_JsonSchema$anchorError_mjs__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(34798);
38848
- /* harmony import */ var _errors_JsonSchemaUriError_mjs__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(64937);
38849
- /* harmony import */ var _errors_MaximumDereferenceDepthError_mjs__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(60503);
38850
- /* harmony import */ var _errors_MaximumResolveDepthError_mjs__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(57823);
38851
- /* harmony import */ var _errors_ParseError_mjs__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(63151);
38852
- /* harmony import */ var _errors_ParserError_mjs__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(57295);
38853
- /* harmony import */ var _errors_PluginError_mjs__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(53747);
38854
- /* harmony import */ var _errors_ResolveError_mjs__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(96460);
38855
- /* harmony import */ var _errors_ResolverError_mjs__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(27998);
38856
- /* harmony import */ var _errors_UnmatchedDereferenceStrategyError_mjs__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(83126);
38857
- /* harmony import */ var _errors_UnmatchedResolveStrategyError_mjs__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(11850);
38858
- /* harmony import */ var _errors_UnmatchedResolverError_mjs__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(72963);
39537
+ /* harmony import */ var _errors_EvaluationElementIdError_mjs__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(82679);
39538
+ /* harmony import */ var _errors_EvaluationJsonSchema$anchorError_mjs__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(42384);
39539
+ /* harmony import */ var _errors_EvaluationJsonSchemaUriError_mjs__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(78311);
39540
+ /* harmony import */ var _errors_InvalidJsonSchema$anchorError_mjs__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(76787);
39541
+ /* harmony import */ var _errors_JsonSchema$anchorError_mjs__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(34798);
39542
+ /* harmony import */ var _errors_JsonSchemaUriError_mjs__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(64937);
39543
+ /* harmony import */ var _errors_MaximumDereferenceDepthError_mjs__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(60503);
39544
+ /* harmony import */ var _errors_MaximumResolveDepthError_mjs__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(57823);
39545
+ /* harmony import */ var _errors_ParseError_mjs__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(63151);
39546
+ /* harmony import */ var _errors_ParserError_mjs__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(57295);
39547
+ /* harmony import */ var _errors_PluginError_mjs__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(53747);
39548
+ /* harmony import */ var _errors_ResolveError_mjs__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(96460);
39549
+ /* harmony import */ var _errors_ResolverError_mjs__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(27998);
39550
+ /* harmony import */ var _errors_UnmatchedDereferenceStrategyError_mjs__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(83126);
39551
+ /* harmony import */ var _errors_UnmatchedResolveStrategyError_mjs__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(11850);
39552
+ /* harmony import */ var _errors_UnmatchedResolverError_mjs__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(72963);
39553
+
38859
39554
 
38860
39555
 
38861
39556
 
@@ -38901,31 +39596,31 @@ const readFile = async (uri, options = {}) => {
38901
39596
  const file = (0,_util_File_mjs__WEBPACK_IMPORTED_MODULE_1__["default"])({
38902
39597
  uri: _util_url_mjs__WEBPACK_IMPORTED_MODULE_0__.sanitize(uri)
38903
39598
  });
38904
- return (0,_resolve_util_mjs__WEBPACK_IMPORTED_MODULE_32__.readFile)(file, mergedOptions);
39599
+ return (0,_resolve_util_mjs__WEBPACK_IMPORTED_MODULE_33__.readFile)(file, mergedOptions);
38905
39600
  };
38906
39601
  const parse = async (uri, options = {}) => {
38907
39602
  const mergedOptions = (0,_options_util_mjs__WEBPACK_IMPORTED_MODULE_10__.merge)(_options_index_mjs__WEBPACK_IMPORTED_MODULE_9__["default"], options);
38908
- return (0,_parse_index_mjs__WEBPACK_IMPORTED_MODULE_33__["default"])(uri, mergedOptions);
39603
+ return (0,_parse_index_mjs__WEBPACK_IMPORTED_MODULE_34__["default"])(uri, mergedOptions);
38909
39604
  };
38910
39605
  const resolve = async (uri, options = {}) => {
38911
39606
  const mergedOptions = (0,_options_util_mjs__WEBPACK_IMPORTED_MODULE_10__.merge)(_options_index_mjs__WEBPACK_IMPORTED_MODULE_9__["default"], options);
38912
- return (0,_resolve_index_mjs__WEBPACK_IMPORTED_MODULE_34__["default"])(uri, mergedOptions);
39607
+ return (0,_resolve_index_mjs__WEBPACK_IMPORTED_MODULE_35__["default"])(uri, mergedOptions);
38913
39608
  };
38914
39609
  const resolveApiDOM = async (element, options = {}) => {
38915
39610
  const mergedOptions = (0,_options_util_mjs__WEBPACK_IMPORTED_MODULE_10__.merge)(_options_index_mjs__WEBPACK_IMPORTED_MODULE_9__["default"], options);
38916
- return (0,_resolve_index_mjs__WEBPACK_IMPORTED_MODULE_34__.resolveApiDOM)(element, mergedOptions);
39611
+ return (0,_resolve_index_mjs__WEBPACK_IMPORTED_MODULE_35__.resolveApiDOM)(element, mergedOptions);
38917
39612
  };
38918
39613
  const dereference = async (uri, options = {}) => {
38919
39614
  const mergedOptions = (0,_options_util_mjs__WEBPACK_IMPORTED_MODULE_10__.merge)(_options_index_mjs__WEBPACK_IMPORTED_MODULE_9__["default"], options);
38920
- return (0,_dereference_index_mjs__WEBPACK_IMPORTED_MODULE_35__["default"])(uri, mergedOptions);
39615
+ return (0,_dereference_index_mjs__WEBPACK_IMPORTED_MODULE_36__["default"])(uri, mergedOptions);
38921
39616
  };
38922
39617
  const dereferenceApiDOM = async (element, options = {}) => {
38923
39618
  const mergedOptions = (0,_options_util_mjs__WEBPACK_IMPORTED_MODULE_10__.merge)(_options_index_mjs__WEBPACK_IMPORTED_MODULE_9__["default"], options);
38924
- return (0,_dereference_index_mjs__WEBPACK_IMPORTED_MODULE_35__.dereferenceApiDOM)(element, mergedOptions);
39619
+ return (0,_dereference_index_mjs__WEBPACK_IMPORTED_MODULE_36__.dereferenceApiDOM)(element, mergedOptions);
38925
39620
  };
38926
39621
  const bundle = async (uri, options = {}) => {
38927
39622
  const mergedOptions = (0,_options_util_mjs__WEBPACK_IMPORTED_MODULE_10__.merge)(_options_index_mjs__WEBPACK_IMPORTED_MODULE_9__["default"], options);
38928
- return (0,_bundle_index_mjs__WEBPACK_IMPORTED_MODULE_36__["default"])(uri, mergedOptions);
39623
+ return (0,_bundle_index_mjs__WEBPACK_IMPORTED_MODULE_37__["default"])(uri, mergedOptions);
38929
39624
  };
38930
39625
 
38931
39626
  /***/ }),
@@ -38938,6 +39633,8 @@ __webpack_require__.r(__webpack_exports__);
38938
39633
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
38939
39634
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
38940
39635
  /* harmony export */ });
39636
+ /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(43628);
39637
+
38941
39638
  const defaultOptions = {
38942
39639
  parse: {
38943
39640
  /**
@@ -38981,6 +39678,15 @@ const defaultOptions = {
38981
39678
  * your own implementation, or remove any resolve strategy by removing it from the list.
38982
39679
  */
38983
39680
  strategies: [],
39681
+ /**
39682
+ * These options are available in resolver strategy `canResolve` and `resolve` methods.
39683
+ */
39684
+ strategyOpts: {},
39685
+ /**
39686
+ * Determines whether internal references will be resolved.
39687
+ * Internal references will simply be ignored.
39688
+ */
39689
+ internal: true,
38984
39690
  /**
38985
39691
  * Determines whether external references will be resolved.
38986
39692
  * If this option is disabled, then none of above resolvers will be called.
@@ -39009,6 +39715,10 @@ const defaultOptions = {
39009
39715
  * your own implementation, or remove any dereference strategy by removing it from the list.
39010
39716
  */
39011
39717
  strategies: [],
39718
+ /**
39719
+ * These options are available in dereference strategy `canDereference` and `dereference` methods.
39720
+ */
39721
+ strategyOpts: {},
39012
39722
  /**
39013
39723
  * This option accepts an instance of pre-computed ReferenceSet.
39014
39724
  * If provided it will speed up the dereferencing significantly as the external
@@ -39027,7 +39737,29 @@ const defaultOptions = {
39027
39737
  * The dereferencing should throw MaximumDereferenceDepthError if dereferencing depth
39028
39738
  * is exceeded by this option.
39029
39739
  */
39030
- maxDepth: +Infinity
39740
+ maxDepth: +Infinity,
39741
+ /**
39742
+ * Determines how circular references are handled.
39743
+ *
39744
+ * "ignore" - circular reference are allowed
39745
+ * "replace" - circular references are not allowed and are translated to RefElement
39746
+ * "error" - circular references are not allowed and will throw an error
39747
+ */
39748
+ circular: 'ignore',
39749
+ /**
39750
+ * This function is used to replace circular references when `circular` option is set to "replace".
39751
+ * By default, it's an identity function. It means that circular references are replaced with RefElement.
39752
+ */
39753
+ circularReplacer: ramda__WEBPACK_IMPORTED_MODULE_0__["default"],
39754
+ /**
39755
+ * Determines whether the dereferencing process will be immutable.
39756
+ * By default, the dereferencing process is immutable, which means that the original
39757
+ * ApiDOM passed to the dereference process is NOT modified.
39758
+ *
39759
+ * true - the dereferencing process will be immutable (deep cloning of ApiDOM is involved)
39760
+ * false - the dereferencing process will be mutable
39761
+ */
39762
+ immutable: true
39031
39763
  },
39032
39764
  bundle: {
39033
39765
  /**
@@ -39126,7 +39858,7 @@ const parseFile = async (file, options) => {
39126
39858
  const clonedParser = Object.create(parser);
39127
39859
  return Object.assign(clonedParser, options.parse.parserOpts);
39128
39860
  });
39129
- const parsers = await _util_plugins_mjs__WEBPACK_IMPORTED_MODULE_0__.filter('canParse', file, optsBoundParsers);
39861
+ const parsers = await _util_plugins_mjs__WEBPACK_IMPORTED_MODULE_0__.filter('canParse', [file, options], optsBoundParsers);
39130
39862
 
39131
39863
  // we couldn't find any parser for this File
39132
39864
  if ((0,ramda__WEBPACK_IMPORTED_MODULE_1__["default"])(parsers)) {
@@ -39136,7 +39868,7 @@ const parseFile = async (file, options) => {
39136
39868
  const {
39137
39869
  plugin,
39138
39870
  result
39139
- } = await _util_plugins_mjs__WEBPACK_IMPORTED_MODULE_0__.run('parse', [file], parsers);
39871
+ } = await _util_plugins_mjs__WEBPACK_IMPORTED_MODULE_0__.run('parse', [file, options], parsers);
39140
39872
 
39141
39873
  // empty files handling
39142
39874
  if (!plugin.allowEmpty && result.isEmpty) {
@@ -39344,7 +40076,7 @@ const resolveApiDOM = async (element, options) => {
39344
40076
  parseResult,
39345
40077
  mediaType: options.parse.mediaType
39346
40078
  });
39347
- const resolveStrategies = await _util_plugins_mjs__WEBPACK_IMPORTED_MODULE_5__.filter('canResolve', file, options.resolve.strategies);
40079
+ const resolveStrategies = await _util_plugins_mjs__WEBPACK_IMPORTED_MODULE_5__.filter('canResolve', [file, options], options.resolve.strategies);
39348
40080
 
39349
40081
  // we couldn't find any resolver for this File
39350
40082
  if ((0,ramda__WEBPACK_IMPORTED_MODULE_6__["default"])(resolveStrategies)) {
@@ -39492,59 +40224,42 @@ __webpack_require__.r(__webpack_exports__);
39492
40224
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
39493
40225
  /* harmony export */ });
39494
40226
  /* harmony import */ var stampit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12646);
39495
- /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(46571);
39496
- /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(1667);
39497
- /* harmony import */ var _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(94145);
39498
- /* harmony import */ var _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(70281);
39499
- /* harmony import */ var _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(41544);
39500
- /* harmony import */ var _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(66648);
39501
- /* harmony import */ var _ResolveStrategy_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(97836);
39502
- /* harmony import */ var _ReferenceSet_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(31387);
39503
- /* harmony import */ var _Reference_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(12349);
39504
- /* harmony import */ var _visitor_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(20622);
39505
-
40227
+ /* harmony import */ var _ResolveStrategy_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(97836);
40228
+ /* harmony import */ var _ReferenceSet_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(31387);
40229
+ /* harmony import */ var _options_util_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(40927);
40230
+ /* harmony import */ var _errors_UnmatchedDereferenceStrategyError_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(83126);
39506
40231
 
39507
40232
 
39508
40233
 
39509
40234
 
39510
-
39511
- // @ts-ignore
39512
- const visitAsync = _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_1__.visit[Symbol.for('nodejs.util.promisify.custom')];
39513
-
39514
- // eslint-disable-next-line @typescript-eslint/naming-convention
39515
- const OpenApi3_1ResolveStrategy = stampit__WEBPACK_IMPORTED_MODULE_0__(_ResolveStrategy_mjs__WEBPACK_IMPORTED_MODULE_2__["default"], {
40235
+ // eslint-disable-next-line @typescript-eslint/naming-convention
40236
+ const OpenApi3_1ResolveStrategy = stampit__WEBPACK_IMPORTED_MODULE_0__(_ResolveStrategy_mjs__WEBPACK_IMPORTED_MODULE_1__["default"], {
39516
40237
  init() {
39517
40238
  this.name = 'openapi-3-1';
39518
40239
  },
39519
40240
  methods: {
39520
- canResolve(file) {
39521
- var _file$parseResult;
39522
- // assert by media type
39523
- if (file.mediaType !== 'text/plain') {
39524
- return _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_3__["default"].includes(file.mediaType);
40241
+ canResolve(file, options) {
40242
+ const dereferenceStrategy = options.dereference.strategies.find(strategy => strategy.name === 'openapi-3-1');
40243
+ if (dereferenceStrategy === undefined) {
40244
+ return false;
39525
40245
  }
39526
-
39527
- // assert by inspecting ApiDOM
39528
- return (0,_swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_4__.isOpenApi3_1Element)((_file$parseResult = file.parseResult) === null || _file$parseResult === void 0 ? void 0 : _file$parseResult.result);
40246
+ return dereferenceStrategy.canDereference(file, options);
39529
40247
  },
39530
40248
  async resolve(file, options) {
39531
- const namespace = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__.createNamespace)(_swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_6__["default"]);
39532
- const reference = (0,_Reference_mjs__WEBPACK_IMPORTED_MODULE_7__["default"])({
39533
- uri: file.uri,
39534
- value: file.parseResult
39535
- });
39536
- const visitor = (0,_visitor_mjs__WEBPACK_IMPORTED_MODULE_8__["default"])({
39537
- reference,
39538
- namespace,
39539
- options
39540
- });
39541
- const refSet = (0,_ReferenceSet_mjs__WEBPACK_IMPORTED_MODULE_9__["default"])();
39542
- refSet.add(reference);
39543
- await visitAsync(refSet.rootRef.value, visitor, {
39544
- keyMap: _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_10__.keyMap,
39545
- nodeTypeGetter: _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_10__.getNodeType
40249
+ const dereferenceStrategy = options.dereference.strategies.find(strategy => strategy.name === 'openapi-3-1');
40250
+ if (dereferenceStrategy === undefined) {
40251
+ throw new _errors_UnmatchedDereferenceStrategyError_mjs__WEBPACK_IMPORTED_MODULE_2__["default"]('"openapi-3-1" dereference strategy is not available.');
40252
+ }
40253
+ const refSet = (0,_ReferenceSet_mjs__WEBPACK_IMPORTED_MODULE_3__["default"])();
40254
+ const mergedOptions = (0,_options_util_mjs__WEBPACK_IMPORTED_MODULE_4__.merge)(options, {
40255
+ resolve: {
40256
+ internal: false
40257
+ },
40258
+ dereference: {
40259
+ refSet
40260
+ }
39546
40261
  });
39547
- await visitor.crawl();
40262
+ await dereferenceStrategy.dereference(file, mergedOptions);
39548
40263
  return refSet;
39549
40264
  }
39550
40265
  }
@@ -39553,553 +40268,6 @@ const OpenApi3_1ResolveStrategy = stampit__WEBPACK_IMPORTED_MODULE_0__(_ResolveS
39553
40268
 
39554
40269
  /***/ }),
39555
40270
 
39556
- /***/ 11612:
39557
- /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
39558
-
39559
- "use strict";
39560
- __webpack_require__.r(__webpack_exports__);
39561
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
39562
- /* harmony export */ maybeRefractToSchemaElement: () => (/* binding */ maybeRefractToSchemaElement),
39563
- /* harmony export */ refractToSchemaElement: () => (/* binding */ refractToSchemaElement),
39564
- /* harmony export */ resolveSchema$idField: () => (/* binding */ resolveSchema$idField),
39565
- /* harmony export */ resolveSchema$refField: () => (/* binding */ resolveSchema$refField)
39566
- /* harmony export */ });
39567
- /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5920);
39568
- /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9999);
39569
- /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(33501);
39570
- /* harmony import */ var _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3117);
39571
- /* harmony import */ var _util_url_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(83748);
39572
-
39573
-
39574
-
39575
-
39576
- const resolveSchema$refField = (retrievalURI, schemaElement) => {
39577
- if (typeof schemaElement.$ref === 'undefined') {
39578
- return undefined;
39579
- }
39580
- const hash = _util_url_mjs__WEBPACK_IMPORTED_MODULE_0__.getHash((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_1__["default"])(schemaElement.$ref));
39581
- const inherited$id = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_1__["default"])(schemaElement.meta.get('inherited$id'));
39582
- const $refBaseURI = (0,ramda__WEBPACK_IMPORTED_MODULE_2__["default"])((acc, uri) => {
39583
- return _util_url_mjs__WEBPACK_IMPORTED_MODULE_0__.resolve(acc, _util_url_mjs__WEBPACK_IMPORTED_MODULE_0__.sanitize(_util_url_mjs__WEBPACK_IMPORTED_MODULE_0__.stripHash(uri)));
39584
- }, retrievalURI, [...inherited$id, (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_1__["default"])(schemaElement.$ref)]);
39585
- return `${$refBaseURI}${hash === '#' ? '' : hash}`;
39586
- };
39587
- const resolveSchema$idField = (retrievalURI, schemaElement) => {
39588
- if (typeof schemaElement.$id === 'undefined') {
39589
- return undefined;
39590
- }
39591
- const inherited$id = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_1__["default"])(schemaElement.meta.get('inherited$id'));
39592
- return (0,ramda__WEBPACK_IMPORTED_MODULE_2__["default"])((acc, $id) => {
39593
- return _util_url_mjs__WEBPACK_IMPORTED_MODULE_0__.resolve(acc, _util_url_mjs__WEBPACK_IMPORTED_MODULE_0__.sanitize(_util_url_mjs__WEBPACK_IMPORTED_MODULE_0__.stripHash($id)));
39594
- }, retrievalURI, [...inherited$id, (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_1__["default"])(schemaElement.$id)]);
39595
- };
39596
-
39597
- /**
39598
- * Cached version of SchemaElement.refract.
39599
- */
39600
- const refractToSchemaElement = element => {
39601
- if (refractToSchemaElement.cache.has(element)) {
39602
- return refractToSchemaElement.cache.get(element);
39603
- }
39604
- const refracted = _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_3__.SchemaElement.refract(element);
39605
- refractToSchemaElement.cache.set(element, refracted);
39606
- return refracted;
39607
- };
39608
- refractToSchemaElement.cache = new WeakMap();
39609
- const maybeRefractToSchemaElement = element => {
39610
- /**
39611
- * Conditional version of refractToSchemaElement, that acts as an identity
39612
- * function for all non-primitive Element instances.
39613
- */
39614
- if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__.isPrimitiveElement)(element)) {
39615
- return refractToSchemaElement(element);
39616
- }
39617
- return element;
39618
- };
39619
-
39620
- /***/ }),
39621
-
39622
- /***/ 20622:
39623
- /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
39624
-
39625
- "use strict";
39626
- __webpack_require__.r(__webpack_exports__);
39627
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
39628
- /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
39629
- /* harmony export */ });
39630
- /* harmony import */ var stampit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12646);
39631
- /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(95201);
39632
- /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(73236);
39633
- /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(10796);
39634
- /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(11182);
39635
- /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(22060);
39636
- /* harmony import */ var ramda_adjunct__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(7408);
39637
- /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(46571);
39638
- /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(9999);
39639
- /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(33501);
39640
- /* harmony import */ var _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(98219);
39641
- /* harmony import */ var _swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(85270);
39642
- /* harmony import */ var _swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(18316);
39643
- /* harmony import */ var _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(85013);
39644
- /* harmony import */ var _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(3117);
39645
- /* harmony import */ var _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(66648);
39646
- /* harmony import */ var _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(70281);
39647
- /* harmony import */ var _errors_MaximumDereferenceDepthError_mjs__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(60503);
39648
- /* harmony import */ var _errors_MaximumResolveDepthError_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(57823);
39649
- /* harmony import */ var _errors_EvaluationJsonSchemaUriError_mjs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(78311);
39650
- /* harmony import */ var _util_url_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(83748);
39651
- /* harmony import */ var _parse_index_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(7998);
39652
- /* harmony import */ var _Reference_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(12349);
39653
- /* harmony import */ var _util_File_mjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(15767);
39654
- /* harmony import */ var _dereference_strategies_openapi_3_1_selectors_uri_mjs__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(16129);
39655
- /* harmony import */ var _util_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(11612);
39656
- /* harmony import */ var _dereference_strategies_openapi_3_1_selectors_$anchor_mjs__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(46432);
39657
-
39658
-
39659
-
39660
-
39661
-
39662
-
39663
-
39664
-
39665
-
39666
-
39667
-
39668
-
39669
-
39670
-
39671
-
39672
-
39673
- // @ts-ignore
39674
- const visitAsync = _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_1__.visit[Symbol.for('nodejs.util.promisify.custom')];
39675
-
39676
- // eslint-disable-next-line @typescript-eslint/naming-convention
39677
- const OpenApi3_1ResolveVisitor = stampit__WEBPACK_IMPORTED_MODULE_0__({
39678
- props: {
39679
- indirections: [],
39680
- namespace: null,
39681
- reference: null,
39682
- crawledElements: null,
39683
- crawlingMap: null,
39684
- visited: null,
39685
- options: null
39686
- },
39687
- init({
39688
- reference,
39689
- namespace,
39690
- indirections = [],
39691
- visited = new WeakSet(),
39692
- options
39693
- }) {
39694
- this.indirections = indirections;
39695
- this.namespace = namespace;
39696
- this.reference = reference;
39697
- this.crawledElements = [];
39698
- this.crawlingMap = {};
39699
- this.visited = visited;
39700
- this.options = options;
39701
- },
39702
- methods: {
39703
- toBaseURI(uri) {
39704
- return _util_url_mjs__WEBPACK_IMPORTED_MODULE_2__.resolve(this.reference.uri, _util_url_mjs__WEBPACK_IMPORTED_MODULE_2__.sanitize(_util_url_mjs__WEBPACK_IMPORTED_MODULE_2__.stripHash(uri)));
39705
- },
39706
- async toReference(uri) {
39707
- // detect maximum depth of resolution
39708
- if (this.reference.depth >= this.options.resolve.maxDepth) {
39709
- throw new _errors_MaximumResolveDepthError_mjs__WEBPACK_IMPORTED_MODULE_3__["default"](`Maximum resolution depth of ${this.options.resolve.maxDepth} has been exceeded by file "${this.reference.uri}"`);
39710
- }
39711
- const baseURI = this.toBaseURI(uri);
39712
- const {
39713
- refSet
39714
- } = this.reference;
39715
-
39716
- // we've already processed this Reference in past
39717
- if (refSet.has(baseURI)) {
39718
- return refSet.find((0,ramda__WEBPACK_IMPORTED_MODULE_4__["default"])(baseURI, 'uri'));
39719
- }
39720
- const parseResult = await (0,_parse_index_mjs__WEBPACK_IMPORTED_MODULE_5__["default"])(_util_url_mjs__WEBPACK_IMPORTED_MODULE_2__.unsanitize(baseURI), {
39721
- ...this.options,
39722
- parse: {
39723
- ...this.options.parse,
39724
- mediaType: 'text/plain'
39725
- }
39726
- });
39727
-
39728
- // register new Reference with ReferenceSet
39729
- const reference = (0,_Reference_mjs__WEBPACK_IMPORTED_MODULE_6__["default"])({
39730
- uri: baseURI,
39731
- value: parseResult,
39732
- depth: this.reference.depth + 1
39733
- });
39734
- refSet.add(reference);
39735
- return reference;
39736
- },
39737
- ReferenceElement(referenceElement) {
39738
- const uri = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])(referenceElement.$ref);
39739
- const retrievalURI = this.toBaseURI(uri);
39740
-
39741
- // ignore resolving external Reference Objects
39742
- if (!this.options.resolve.external && _util_url_mjs__WEBPACK_IMPORTED_MODULE_2__.stripHash(this.reference.uri) !== retrievalURI) {
39743
- // skip traversing this reference element and all it's child elements
39744
- return false;
39745
- }
39746
- if (!(0,ramda__WEBPACK_IMPORTED_MODULE_8__["default"])(retrievalURI, this.crawlingMap)) {
39747
- this.crawlingMap[retrievalURI] = this.toReference(uri);
39748
- }
39749
- this.crawledElements.push(referenceElement);
39750
- return undefined;
39751
- },
39752
- PathItemElement(pathItemElement) {
39753
- // ignore PathItemElement without $ref field
39754
- if (!(0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__.isStringElement)(pathItemElement.$ref)) {
39755
- return undefined;
39756
- }
39757
- const uri = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])(pathItemElement.$ref);
39758
- const retrievalURI = this.toBaseURI(uri);
39759
-
39760
- // ignore resolving external Path Item Objects
39761
- if (!this.options.resolve.external && _util_url_mjs__WEBPACK_IMPORTED_MODULE_2__.stripHash(this.reference.uri) !== retrievalURI) {
39762
- // skip traversing this Path Item element but traverse all it's child elements
39763
- return undefined;
39764
- }
39765
- if (!(0,ramda__WEBPACK_IMPORTED_MODULE_8__["default"])(retrievalURI, this.crawlingMap)) {
39766
- this.crawlingMap[retrievalURI] = this.toReference(uri);
39767
- }
39768
- this.crawledElements.push(pathItemElement);
39769
- return undefined;
39770
- },
39771
- LinkElement(linkElement) {
39772
- // ignore LinkElement without operationRef or operationId field
39773
- if (!(0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__.isStringElement)(linkElement.operationRef) && !(0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__.isStringElement)(linkElement.operationId)) {
39774
- return undefined;
39775
- }
39776
- const uri = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])(linkElement.operationRef);
39777
- const retrievalURI = this.toBaseURI(uri);
39778
-
39779
- // ignore resolving external Path Item Elements
39780
- const isExternal = _util_url_mjs__WEBPACK_IMPORTED_MODULE_2__.stripHash(this.reference.uri) !== retrievalURI;
39781
- if (!this.options.resolve.external && isExternal) {
39782
- return undefined;
39783
- }
39784
-
39785
- // operationRef and operationId are mutually exclusive
39786
- if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__.isStringElement)(linkElement.operationRef) && (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__.isStringElement)(linkElement.operationId)) {
39787
- throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_10__["default"]('LinkElement operationRef and operationId are mutually exclusive.');
39788
- }
39789
- if (isExternal) {
39790
- if (!(0,ramda__WEBPACK_IMPORTED_MODULE_8__["default"])(retrievalURI, this.crawlingMap)) {
39791
- this.crawlingMap[retrievalURI] = this.toReference(uri);
39792
- }
39793
- }
39794
- return undefined;
39795
- },
39796
- ExampleElement(exampleElement) {
39797
- // ignore ExampleElement without externalValue field
39798
- if (!(0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__.isStringElement)(exampleElement.externalValue)) {
39799
- return undefined;
39800
- }
39801
-
39802
- // value and externalValue fields are mutually exclusive
39803
- if (exampleElement.hasKey('value') && (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__.isStringElement)(exampleElement.externalValue)) {
39804
- throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_10__["default"]('ExampleElement value and externalValue fields are mutually exclusive.');
39805
- }
39806
- const uri = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])(exampleElement.externalValue);
39807
- const retrievalURI = this.toBaseURI(uri);
39808
-
39809
- // ignore resolving external Example Objects
39810
- if (!this.options.resolve.external && _util_url_mjs__WEBPACK_IMPORTED_MODULE_2__.stripHash(this.reference.uri) !== retrievalURI) {
39811
- // skip traversing this Example element but traverse all it's child elements
39812
- return undefined;
39813
- }
39814
- if (!(0,ramda__WEBPACK_IMPORTED_MODULE_8__["default"])(retrievalURI, this.crawlingMap)) {
39815
- this.crawlingMap[retrievalURI] = this.toReference(uri);
39816
- }
39817
- return undefined;
39818
- },
39819
- async SchemaElement(schemaElement) {
39820
- /**
39821
- * Skip traversal for already visited schemas and all their child schemas.
39822
- * visit function detects cycles in path automatically.
39823
- */
39824
- if (this.visited.has(schemaElement)) {
39825
- return false;
39826
- }
39827
- // skip current referencing schema as $ref keyword was not defined
39828
- if (!(0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__.isStringElement)(schemaElement.$ref)) {
39829
- // mark current referencing schema as visited
39830
- this.visited.add(schemaElement);
39831
- // skip traversing this schema but traverse all it's child schemas
39832
- return undefined;
39833
- }
39834
-
39835
- // compute baseURI using rules around $id and $ref keywords
39836
- const reference = await this.toReference(_util_url_mjs__WEBPACK_IMPORTED_MODULE_2__.unsanitize(this.reference.uri));
39837
- let {
39838
- uri: retrievalURI
39839
- } = reference;
39840
- const $refBaseURI = (0,_util_mjs__WEBPACK_IMPORTED_MODULE_11__.resolveSchema$refField)(retrievalURI, schemaElement);
39841
- const $refBaseURIStrippedHash = _util_url_mjs__WEBPACK_IMPORTED_MODULE_2__.stripHash($refBaseURI);
39842
- const file = (0,_util_File_mjs__WEBPACK_IMPORTED_MODULE_12__["default"])({
39843
- uri: $refBaseURIStrippedHash
39844
- });
39845
- const isUnknownURI = (0,ramda__WEBPACK_IMPORTED_MODULE_13__["default"])(r => r.canRead(file), this.options.resolve.resolvers);
39846
- const isURL = !isUnknownURI;
39847
- const isExternalURL = uri => _util_url_mjs__WEBPACK_IMPORTED_MODULE_2__.stripHash(this.reference.uri) !== uri;
39848
- if (!(0,ramda__WEBPACK_IMPORTED_MODULE_8__["default"])($refBaseURIStrippedHash, this.crawlingMap)) {
39849
- try {
39850
- if (isUnknownURI || isURL) {
39851
- this.crawlingMap[$refBaseURIStrippedHash] = reference;
39852
- } else {
39853
- retrievalURI = this.toBaseURI((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])($refBaseURI));
39854
-
39855
- // ignore resolving external Schema Objects
39856
- if (!this.options.resolve.external && isExternalURL(retrievalURI)) {
39857
- // skip traversing this schema element but traverse all it's child elements
39858
- this.visited.add(schemaElement);
39859
- return undefined;
39860
- }
39861
- this.crawlingMap[$refBaseURIStrippedHash] = this.toReference(_util_url_mjs__WEBPACK_IMPORTED_MODULE_2__.unsanitize($refBaseURI));
39862
- }
39863
- } catch (error) {
39864
- if (isURL && error instanceof _errors_EvaluationJsonSchemaUriError_mjs__WEBPACK_IMPORTED_MODULE_14__["default"]) {
39865
- retrievalURI = this.toBaseURI(_util_url_mjs__WEBPACK_IMPORTED_MODULE_2__.unsanitize($refBaseURI));
39866
-
39867
- // ignore resolving external Schema Objects
39868
- if (!this.options.resolve.external && isExternalURL(retrievalURI)) {
39869
- // skip traversing this schema element but traverse all it's child elements
39870
- this.visited.add(schemaElement);
39871
- return undefined;
39872
- }
39873
- this.crawlingMap[$refBaseURIStrippedHash] = this.toReference(_util_url_mjs__WEBPACK_IMPORTED_MODULE_2__.unsanitize($refBaseURI));
39874
- } else {
39875
- throw error;
39876
- }
39877
- }
39878
- }
39879
- this.crawledElements.push(schemaElement);
39880
- return undefined;
39881
- },
39882
- async crawlReferenceElement(referenceElement) {
39883
- // @ts-ignore
39884
- const reference = await this.toReference((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])(referenceElement.$ref));
39885
- this.indirections.push(referenceElement);
39886
- const jsonPointer = (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_15__.uriToPointer)((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])(referenceElement.$ref));
39887
-
39888
- // possibly non-semantic fragment
39889
- let fragment = (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_16__["default"])(jsonPointer, reference.value.result);
39890
-
39891
- // applying semantics to a fragment
39892
- if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__.isPrimitiveElement)(fragment)) {
39893
- const referencedElementType = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])(referenceElement.meta.get('referenced-element'));
39894
- if ((0,_swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_17__.isReferenceLikeElement)(fragment)) {
39895
- // handling indirect references
39896
- fragment = _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_18__.ReferenceElement.refract(fragment);
39897
- fragment.setMetaProperty('referenced-element', referencedElementType);
39898
- } else {
39899
- // handling direct references
39900
- const ElementClass = this.namespace.getElementClass(referencedElementType);
39901
- fragment = ElementClass.refract(fragment);
39902
- }
39903
- }
39904
-
39905
- // detect direct or circular reference
39906
- if (this.indirections.includes(fragment)) {
39907
- throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_10__["default"]('Recursive Reference Object detected');
39908
- }
39909
-
39910
- // detect maximum depth of dereferencing
39911
- if (this.indirections.length > this.options.dereference.maxDepth) {
39912
- throw new _errors_MaximumDereferenceDepthError_mjs__WEBPACK_IMPORTED_MODULE_19__["default"](`Maximum dereference depth of "${this.options.dereference.maxDepth}" has been exceeded in file "${this.reference.uri}"`);
39913
- }
39914
-
39915
- // dive deep into the fragment
39916
- const visitor = OpenApi3_1ResolveVisitor({
39917
- reference,
39918
- namespace: this.namespace,
39919
- indirections: [...this.indirections],
39920
- options: this.options
39921
- });
39922
- await visitAsync(fragment, visitor, {
39923
- keyMap: _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_20__.keyMap,
39924
- nodeTypeGetter: _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_20__.getNodeType
39925
- });
39926
- await visitor.crawl();
39927
- this.indirections.pop();
39928
- },
39929
- async crawlPathItemElement(pathItemElement) {
39930
- // @ts-ignore
39931
- const reference = await this.toReference((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])(pathItemElement.$ref));
39932
- this.indirections.push(pathItemElement);
39933
- const jsonPointer = (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_15__.uriToPointer)((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])(pathItemElement.$ref));
39934
-
39935
- // possibly non-semantic fragment
39936
- let referencedElement = (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_16__["default"])(jsonPointer, reference.value.result);
39937
-
39938
- // applying semantics to a fragment
39939
- if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__.isPrimitiveElement)(referencedElement)) {
39940
- referencedElement = _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_18__.PathItemElement.refract(referencedElement);
39941
- }
39942
-
39943
- // detect direct or indirect reference
39944
- if (this.indirections.includes(referencedElement)) {
39945
- throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_10__["default"]('Recursive Path Item Object reference detected');
39946
- }
39947
-
39948
- // detect maximum depth of dereferencing
39949
- if (this.indirections.length > this.options.dereference.maxDepth) {
39950
- throw new _errors_MaximumDereferenceDepthError_mjs__WEBPACK_IMPORTED_MODULE_19__["default"](`Maximum dereference depth of "${this.options.dereference.maxDepth}" has been exceeded in file "${this.reference.uri}"`);
39951
- }
39952
-
39953
- // dive deep into the fragment
39954
- const visitor = OpenApi3_1ResolveVisitor({
39955
- reference,
39956
- namespace: this.namespace,
39957
- indirections: [...this.indirections],
39958
- options: this.options
39959
- });
39960
- await visitAsync(referencedElement, visitor, {
39961
- keyMap: _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_20__.keyMap,
39962
- nodeTypeGetter: _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_20__.getNodeType
39963
- });
39964
- await visitor.crawl();
39965
- this.indirections.pop();
39966
- },
39967
- async crawlSchemaElement(referencingElement) {
39968
- // compute baseURI using rules around $id and $ref keywords
39969
- let reference = await this.toReference(_util_url_mjs__WEBPACK_IMPORTED_MODULE_2__.unsanitize(this.reference.uri));
39970
- let {
39971
- uri: retrievalURI
39972
- } = reference;
39973
- const $refBaseURI = (0,_util_mjs__WEBPACK_IMPORTED_MODULE_11__.resolveSchema$refField)(retrievalURI, referencingElement);
39974
- const $refBaseURIStrippedHash = _util_url_mjs__WEBPACK_IMPORTED_MODULE_2__.stripHash($refBaseURI);
39975
- const file = (0,_util_File_mjs__WEBPACK_IMPORTED_MODULE_12__["default"])({
39976
- uri: $refBaseURIStrippedHash
39977
- });
39978
- const isUnknownURI = (0,ramda__WEBPACK_IMPORTED_MODULE_13__["default"])(r => r.canRead(file), this.options.resolve.resolvers);
39979
- const isURL = !isUnknownURI;
39980
- const isExternalURL = uri => _util_url_mjs__WEBPACK_IMPORTED_MODULE_2__.stripHash(this.reference.uri) !== uri;
39981
- this.indirections.push(referencingElement);
39982
-
39983
- // determining reference, proper evaluation and selection mechanism
39984
- let referencedElement;
39985
- try {
39986
- if (isUnknownURI || isURL) {
39987
- // we're dealing with canonical URI or URL with possible fragment
39988
- const selector = $refBaseURI;
39989
- referencedElement = (0,_dereference_strategies_openapi_3_1_selectors_uri_mjs__WEBPACK_IMPORTED_MODULE_21__.evaluate)(selector,
39990
- // @ts-ignore
39991
- (0,_util_mjs__WEBPACK_IMPORTED_MODULE_11__.maybeRefractToSchemaElement)(reference.value.result));
39992
- } else {
39993
- // we're assuming here that we're dealing with JSON Pointer here
39994
- retrievalURI = this.toBaseURI((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])($refBaseURI));
39995
-
39996
- // ignore resolving external Schema Objects
39997
- if (!this.options.resolve.external && isExternalURL(retrievalURI)) {
39998
- // skip traversing this schema element but traverse all it's child elements
39999
- return undefined;
40000
- }
40001
- reference = await this.toReference(_util_url_mjs__WEBPACK_IMPORTED_MODULE_2__.unsanitize($refBaseURI));
40002
- const selector = (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_15__.uriToPointer)($refBaseURI);
40003
- referencedElement = (0,_util_mjs__WEBPACK_IMPORTED_MODULE_11__.maybeRefractToSchemaElement)(
40004
- // @ts-ignore
40005
- (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_16__["default"])(selector, reference.value.result));
40006
- }
40007
- } catch (error) {
40008
- /**
40009
- * No SchemaElement($id=URL) was not found, so we're going to try to resolve
40010
- * the URL and assume the returned response is a JSON Schema.
40011
- */
40012
- if (isURL && error instanceof _errors_EvaluationJsonSchemaUriError_mjs__WEBPACK_IMPORTED_MODULE_14__["default"]) {
40013
- if ((0,_dereference_strategies_openapi_3_1_selectors_$anchor_mjs__WEBPACK_IMPORTED_MODULE_22__.isAnchor)((0,_dereference_strategies_openapi_3_1_selectors_$anchor_mjs__WEBPACK_IMPORTED_MODULE_22__.uriToAnchor)($refBaseURI))) {
40014
- // we're dealing with JSON Schema $anchor here
40015
- retrievalURI = this.toBaseURI((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])($refBaseURI));
40016
-
40017
- // ignore resolving external Schema Objects
40018
- if (!this.options.resolve.external && isExternalURL(retrievalURI)) {
40019
- // skip traversing this schema element but traverse all it's child elements
40020
- return undefined;
40021
- }
40022
- reference = await this.toReference(_util_url_mjs__WEBPACK_IMPORTED_MODULE_2__.unsanitize($refBaseURI));
40023
- const selector = (0,_dereference_strategies_openapi_3_1_selectors_$anchor_mjs__WEBPACK_IMPORTED_MODULE_22__.uriToAnchor)($refBaseURI);
40024
- referencedElement = (0,_dereference_strategies_openapi_3_1_selectors_$anchor_mjs__WEBPACK_IMPORTED_MODULE_22__.evaluate)(selector,
40025
- // @ts-ignore
40026
- (0,_util_mjs__WEBPACK_IMPORTED_MODULE_11__.maybeRefractToSchemaElement)(reference.value.result));
40027
- } else {
40028
- // we're assuming here that we're dealing with JSON Pointer here
40029
- retrievalURI = this.toBaseURI((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])($refBaseURI));
40030
-
40031
- // ignore resolving external Schema Objects
40032
- if (!this.options.resolve.external && isExternalURL(retrievalURI)) {
40033
- // skip traversing this schema element but traverse all it's child elements
40034
- return undefined;
40035
- }
40036
- reference = await this.toReference(_util_url_mjs__WEBPACK_IMPORTED_MODULE_2__.unsanitize($refBaseURI));
40037
- const selector = (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_15__.uriToPointer)($refBaseURI);
40038
- referencedElement = (0,_util_mjs__WEBPACK_IMPORTED_MODULE_11__.maybeRefractToSchemaElement)(
40039
- // @ts-ignore
40040
- (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_16__["default"])(selector, reference.value.result));
40041
- }
40042
- } else {
40043
- throw error;
40044
- }
40045
- }
40046
-
40047
- // mark current referencing schema as visited
40048
- this.visited.add(referencingElement);
40049
-
40050
- // detect direct or indirect reference
40051
- if (this.indirections.includes(referencedElement)) {
40052
- throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_10__["default"]('Recursive Schema Object reference detected');
40053
- }
40054
-
40055
- // detect maximum depth of dereferencing
40056
- if (this.indirections.length > this.options.dereference.maxDepth) {
40057
- throw new _errors_MaximumDereferenceDepthError_mjs__WEBPACK_IMPORTED_MODULE_19__["default"](`Maximum dereference depth of "${this.options.dereference.maxDepth}" has been exceeded in file "${this.reference.uri}"`);
40058
- }
40059
-
40060
- // dive deep into the fragment
40061
- const visitor = OpenApi3_1ResolveVisitor({
40062
- reference,
40063
- namespace: this.namespace,
40064
- indirections: [...this.indirections],
40065
- options: this.options,
40066
- visited: this.visited
40067
- });
40068
- await visitAsync(referencedElement, visitor, {
40069
- keyMap: _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_20__.keyMap,
40070
- nodeTypeGetter: _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_20__.getNodeType
40071
- });
40072
- await visitor.crawl();
40073
- this.indirections.pop();
40074
- return undefined;
40075
- },
40076
- async crawl() {
40077
- /**
40078
- * Synchronize all parallel resolutions in this place.
40079
- * After synchronization happened we can be sure that refSet
40080
- * contains resolved Reference objects.
40081
- */
40082
- await (0,ramda__WEBPACK_IMPORTED_MODULE_23__["default"])(ramda__WEBPACK_IMPORTED_MODULE_24__["default"], ramda_adjunct__WEBPACK_IMPORTED_MODULE_25__["default"])(this.crawlingMap);
40083
- this.crawlingMap = null;
40084
-
40085
- /* eslint-disable no-await-in-loop */
40086
- for (const element of this.crawledElements) {
40087
- if ((0,_swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_26__.isReferenceElement)(element)) {
40088
- await this.crawlReferenceElement(element);
40089
- } else if ((0,_swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_26__.isSchemaElement)(element)) {
40090
- await this.crawlSchemaElement(element);
40091
- } else if ((0,_swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_26__.isPathItemElement)(element)) {
40092
- await this.crawlPathItemElement(element);
40093
- }
40094
- }
40095
- /* eslint-enable */
40096
- }
40097
- }
40098
- });
40099
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (OpenApi3_1ResolveVisitor);
40100
-
40101
- /***/ }),
40102
-
40103
40271
  /***/ 75253:
40104
40272
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
40105
40273
 
@@ -40125,7 +40293,7 @@ const readFile = async (file, options) => {
40125
40293
  const clonedResolver = Object.create(resolver);
40126
40294
  return Object.assign(clonedResolver, options.resolve.resolverOpts);
40127
40295
  });
40128
- const resolvers = await _util_plugins_mjs__WEBPACK_IMPORTED_MODULE_0__.filter('canRead', file, optsBoundResolvers);
40296
+ const resolvers = await _util_plugins_mjs__WEBPACK_IMPORTED_MODULE_0__.filter('canRead', [file, options], optsBoundResolvers);
40129
40297
 
40130
40298
  // we couldn't find any resolver for this File
40131
40299
  if ((0,ramda__WEBPACK_IMPORTED_MODULE_1__["default"])(resolvers)) {
@@ -40222,8 +40390,8 @@ __webpack_require__.r(__webpack_exports__);
40222
40390
  /**
40223
40391
  * Filters the given plugins, returning only the ones return `true` for the given method.
40224
40392
  */
40225
- const filter = async (method, file, plugins) => {
40226
- const pluginResults = await Promise.all(plugins.map((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_0__["default"])([method], [file])));
40393
+ const filter = async (method, parameters, plugins) => {
40394
+ const pluginResults = await Promise.all(plugins.map((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_0__["default"])([method], parameters)));
40227
40395
  return plugins.filter((plugin, index) => pluginResults[index]);
40228
40396
  };
40229
40397
 
@@ -40240,7 +40408,6 @@ const run = async (method, parameters, plugins) => {
40240
40408
  let lastError;
40241
40409
  for (const plugin of plugins) {
40242
40410
  try {
40243
- // @ts-ignore
40244
40411
  const result = await plugin[method].call(plugin, ...parameters); // eslint-disable-line no-await-in-loop
40245
40412
  return {
40246
40413
  plugin,
@@ -52113,56 +52280,6 @@ var uniqWith =
52113
52280
 
52114
52281
  /***/ }),
52115
52282
 
52116
- /***/ 22060:
52117
- /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
52118
-
52119
- "use strict";
52120
- __webpack_require__.r(__webpack_exports__);
52121
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
52122
- /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
52123
- /* harmony export */ });
52124
- /* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3579);
52125
- /* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(82506);
52126
-
52127
-
52128
- /**
52129
- * Returns a list of all the enumerable own properties of the supplied object.
52130
- * Note that the order of the output array is not guaranteed across different
52131
- * JS platforms.
52132
- *
52133
- * @func
52134
- * @memberOf R
52135
- * @since v0.1.0
52136
- * @category Object
52137
- * @sig {k: v} -> [v]
52138
- * @param {Object} obj The object to extract values from
52139
- * @return {Array} An array of the values of the object's own properties.
52140
- * @see R.valuesIn, R.keys, R.toPairs
52141
- * @example
52142
- *
52143
- * R.values({a: 1, b: 2, c: 3}); //=> [1, 2, 3]
52144
- */
52145
-
52146
- var values =
52147
- /*#__PURE__*/
52148
- (0,_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function values(obj) {
52149
- var props = (0,_keys_js__WEBPACK_IMPORTED_MODULE_1__["default"])(obj);
52150
- var len = props.length;
52151
- var vals = [];
52152
- var idx = 0;
52153
-
52154
- while (idx < len) {
52155
- vals[idx] = obj[props[idx]];
52156
- idx += 1;
52157
- }
52158
-
52159
- return vals;
52160
- });
52161
-
52162
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (values);
52163
-
52164
- /***/ }),
52165
-
52166
52283
  /***/ 32366:
52167
52284
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
52168
52285