swagger-client 3.25.2 → 3.25.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2401,7 +2401,7 @@ __webpack_require__.r(__webpack_exports__);
2401
2401
  /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(33501);
2402
2402
  /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(9999);
2403
2403
  /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(87024);
2404
- /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(75356);
2404
+ /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(15461);
2405
2405
  /* harmony import */ var _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3117);
2406
2406
  /* harmony import */ var _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(70281);
2407
2407
  /* harmony import */ var _utils_compose_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79170);
@@ -4388,7 +4388,8 @@ __webpack_require__.r(__webpack_exports__);
4388
4388
 
4389
4389
 
4390
4390
 
4391
- const HARD_LIMIT = 100;
4391
+ const PLUGIN_DISPATCH_LIMIT = 100;
4392
+ const TRAVERSE_LIMIT = 3000;
4392
4393
  const noop = () => {};
4393
4394
  class SpecMap {
4394
4395
  static getPluginName(plugin) {
@@ -4476,8 +4477,12 @@ class SpecMap {
4476
4477
  const refCache = {};
4477
4478
 
4478
4479
  // eslint-disable-next-line no-restricted-syntax
4479
- for (const patch of patches.filter(_lib_index_js__WEBPACK_IMPORTED_MODULE_0__["default"].isAdditiveMutation)) {
4480
- yield* traverse(patch.value, patch.path, patch);
4480
+ for (const [i, patch] of patches.filter(_lib_index_js__WEBPACK_IMPORTED_MODULE_0__["default"].isAdditiveMutation).entries()) {
4481
+ if (i < TRAVERSE_LIMIT) {
4482
+ yield* traverse(patch.value, patch.path, patch);
4483
+ } else {
4484
+ return;
4485
+ }
4481
4486
  }
4482
4487
  function* traverse(obj, path, patch) {
4483
4488
  if (!_lib_index_js__WEBPACK_IMPORTED_MODULE_0__["default"].isObject(obj)) {
@@ -4679,12 +4684,12 @@ class SpecMap {
4679
4684
  }
4680
4685
 
4681
4686
  // Makes sure plugin isn't running an endless loop
4682
- that.pluginCount = that.pluginCount || {};
4683
- that.pluginCount[plugin] = (that.pluginCount[plugin] || 0) + 1;
4684
- if (that.pluginCount[plugin] > HARD_LIMIT) {
4687
+ that.pluginCount = that.pluginCount || new WeakMap();
4688
+ that.pluginCount.set(plugin, (that.pluginCount.get(plugin) || 0) + 1);
4689
+ if (that.pluginCount[plugin] > PLUGIN_DISPATCH_LIMIT) {
4685
4690
  return Promise.resolve({
4686
4691
  spec: that.state,
4687
- errors: that.errors.concat(new Error(`We've reached a hard limit of ${HARD_LIMIT} plugin runs`))
4692
+ errors: that.errors.concat(new Error(`We've reached a hard limit of ${PLUGIN_DISPATCH_LIMIT} plugin runs`))
4688
4693
  });
4689
4694
  }
4690
4695
 
@@ -20917,106 +20922,6 @@ cloneShallow.safe = value => {
20917
20922
 
20918
20923
  /***/ }),
20919
20924
 
20920
- /***/ 75356:
20921
- /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
20922
-
20923
- "use strict";
20924
- __webpack_require__.r(__webpack_exports__);
20925
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
20926
- /* harmony export */ "default": () => (/* binding */ deepmerge)
20927
- /* harmony export */ });
20928
- /* harmony import */ var minim__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(34035);
20929
- /* harmony import */ var _predicates_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(33501);
20930
- /* harmony import */ var _clone_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(87024);
20931
- /* harmony import */ var _transformers_serializers_value_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9999);
20932
-
20933
-
20934
-
20935
-
20936
- /* eslint-disable @typescript-eslint/no-use-before-define */
20937
- const emptyElement = element => {
20938
- const meta = (0,_clone_index_mjs__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(element.meta);
20939
- const attributes = (0,_clone_index_mjs__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(element.attributes);
20940
-
20941
- // @ts-ignore
20942
- return new element.constructor(undefined, meta, attributes);
20943
- };
20944
- const cloneUnlessOtherwiseSpecified = (element, options) => options.clone && options.isMergeableElement(element) ? deepmerge(emptyElement(element), element, options) : element;
20945
- const getMergeFunction = (keyElement, options) => {
20946
- if (typeof options.customMerge !== 'function') {
20947
- return deepmerge;
20948
- }
20949
- const customMerge = options.customMerge(keyElement, options);
20950
- return typeof customMerge === 'function' ? customMerge : deepmerge;
20951
- };
20952
- const mergeArrayElement = (targetElement, sourceElement, options) => targetElement.concat(sourceElement)['fantasy-land/map'](item => cloneUnlessOtherwiseSpecified(item, options));
20953
- const mergeObjectElement = (targetElement, sourceElement, options) => {
20954
- const destination = (0,_predicates_index_mjs__WEBPACK_IMPORTED_MODULE_2__.isObjectElement)(targetElement) ? emptyElement(targetElement) : emptyElement(sourceElement);
20955
- if ((0,_predicates_index_mjs__WEBPACK_IMPORTED_MODULE_2__.isObjectElement)(targetElement)) {
20956
- targetElement.forEach((value, key, member) => {
20957
- const clonedMember = (0,_clone_index_mjs__WEBPACK_IMPORTED_MODULE_1__.cloneShallow)(member);
20958
- clonedMember.value = cloneUnlessOtherwiseSpecified(value, options);
20959
- destination.content.push(clonedMember);
20960
- });
20961
- }
20962
- sourceElement.forEach((value, key, member) => {
20963
- const keyValue = (0,_transformers_serializers_value_index_mjs__WEBPACK_IMPORTED_MODULE_3__["default"])(key);
20964
- let clonedMember;
20965
- if ((0,_predicates_index_mjs__WEBPACK_IMPORTED_MODULE_2__.isObjectElement)(targetElement) && targetElement.hasKey(keyValue) && options.isMergeableElement(value)) {
20966
- const targetValue = targetElement.get(keyValue);
20967
- clonedMember = (0,_clone_index_mjs__WEBPACK_IMPORTED_MODULE_1__.cloneShallow)(member);
20968
- clonedMember.value = getMergeFunction(key, options)(targetValue, value);
20969
- } else {
20970
- clonedMember = (0,_clone_index_mjs__WEBPACK_IMPORTED_MODULE_1__.cloneShallow)(member);
20971
- clonedMember.value = cloneUnlessOtherwiseSpecified(value, options);
20972
- }
20973
- destination.remove(keyValue);
20974
- destination.content.push(clonedMember);
20975
- });
20976
- return destination;
20977
- };
20978
- function deepmerge(targetElement, sourceElement, options) {
20979
- var _mergedOptions$isMerg, _mergedOptions$arrayE, _mergedOptions$object;
20980
- const defaultOptions = {
20981
- clone: true,
20982
- isMergeableElement: element => (0,_predicates_index_mjs__WEBPACK_IMPORTED_MODULE_2__.isObjectElement)(element) || (0,_predicates_index_mjs__WEBPACK_IMPORTED_MODULE_2__.isArrayElement)(element),
20983
- arrayElementMerge: mergeArrayElement,
20984
- objectElementMerge: mergeObjectElement,
20985
- customMerge: undefined
20986
- };
20987
- const mergedOptions = {
20988
- ...defaultOptions,
20989
- ...options
20990
- };
20991
- mergedOptions.isMergeableElement = (_mergedOptions$isMerg = mergedOptions.isMergeableElement) !== null && _mergedOptions$isMerg !== void 0 ? _mergedOptions$isMerg : defaultOptions.isMergeableElement;
20992
- mergedOptions.arrayElementMerge = (_mergedOptions$arrayE = mergedOptions.arrayElementMerge) !== null && _mergedOptions$arrayE !== void 0 ? _mergedOptions$arrayE : defaultOptions.arrayElementMerge;
20993
- mergedOptions.objectElementMerge = (_mergedOptions$object = mergedOptions.objectElementMerge) !== null && _mergedOptions$object !== void 0 ? _mergedOptions$object : defaultOptions.objectElementMerge;
20994
- const sourceIsArrayElement = (0,_predicates_index_mjs__WEBPACK_IMPORTED_MODULE_2__.isArrayElement)(sourceElement);
20995
- const targetIsArrayElement = (0,_predicates_index_mjs__WEBPACK_IMPORTED_MODULE_2__.isArrayElement)(targetElement);
20996
- const sourceAndTargetTypesMatch = sourceIsArrayElement === targetIsArrayElement;
20997
- if (!sourceAndTargetTypesMatch) {
20998
- return cloneUnlessOtherwiseSpecified(sourceElement, mergedOptions);
20999
- }
21000
- if (sourceIsArrayElement && typeof mergedOptions.arrayElementMerge === 'function') {
21001
- return mergedOptions.arrayElementMerge(targetElement, sourceElement, mergedOptions);
21002
- }
21003
- return mergedOptions.objectElementMerge(targetElement, sourceElement, mergedOptions);
21004
- }
21005
- deepmerge.all = (list, options) => {
21006
- if (!Array.isArray(list)) {
21007
- throw new TypeError('First argument of deepmerge should be an array.');
21008
- }
21009
- if (list.length === 0) {
21010
- return new minim__WEBPACK_IMPORTED_MODULE_0__.ObjectElement();
21011
- }
21012
- return list.reduce((target, source) => {
21013
- return deepmerge(target, source, options);
21014
- }, emptyElement(list[0]));
21015
- };
21016
- /* eslint-enable @typescript-eslint/no-use-before-define */
21017
-
21018
- /***/ }),
21019
-
21020
20925
  /***/ 82063:
21021
20926
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21022
20927
 
@@ -21227,7 +21132,7 @@ const IdentityManager = stampit__WEBPACK_IMPORTED_MODULE_1__({
21227
21132
  }
21228
21133
 
21229
21134
  // use already assigned identity
21230
- if (element.meta.hasKey('id') && (0,_predicates_index_mjs__WEBPACK_IMPORTED_MODULE_3__.isStringElement)(element.meta.id) && !element.meta.id.equals('')) {
21135
+ if (element.meta.hasKey('id') && (0,_predicates_index_mjs__WEBPACK_IMPORTED_MODULE_3__.isStringElement)(element.meta.get('id')) && !element.meta.get('id').equals('')) {
21231
21136
  return element.id;
21232
21137
  }
21233
21138
 
@@ -21291,6 +21196,126 @@ class MediaTypes extends Array {
21291
21196
 
21292
21197
  /***/ }),
21293
21198
 
21199
+ /***/ 15461:
21200
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21201
+
21202
+ "use strict";
21203
+ __webpack_require__.r(__webpack_exports__);
21204
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21205
+ /* harmony export */ "default": () => (/* binding */ deepmerge),
21206
+ /* harmony export */ defaultOptions: () => (/* binding */ defaultOptions),
21207
+ /* harmony export */ emptyElement: () => (/* binding */ emptyElement)
21208
+ /* harmony export */ });
21209
+ /* harmony import */ var minim__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(34035);
21210
+ /* harmony import */ var _predicates_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(33501);
21211
+ /* harmony import */ var _clone_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(87024);
21212
+ /* harmony import */ var _transformers_serializers_value_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9999);
21213
+
21214
+
21215
+
21216
+
21217
+ /* eslint-disable @typescript-eslint/no-use-before-define */
21218
+ const emptyElement = element => {
21219
+ const meta = element.meta.length > 0 ? (0,_clone_index_mjs__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(element.meta) : undefined;
21220
+ const attributes = element.attributes.length > 0 ? (0,_clone_index_mjs__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(element.attributes) : undefined;
21221
+
21222
+ // @ts-ignore
21223
+ return new element.constructor(undefined, meta, attributes);
21224
+ };
21225
+ const cloneUnlessOtherwiseSpecified = (element, options) => options.clone && options.isMergeableElement(element) ? deepmerge(emptyElement(element), element, options) : element;
21226
+ const getMergeFunction = (keyElement, options) => {
21227
+ if (typeof options.customMerge !== 'function') {
21228
+ return deepmerge;
21229
+ }
21230
+ const customMerge = options.customMerge(keyElement, options);
21231
+ return typeof customMerge === 'function' ? customMerge : deepmerge;
21232
+ };
21233
+ const getMetaMergeFunction = options => {
21234
+ if (typeof options.customMetaMerge !== 'function') {
21235
+ return targetMeta => (0,_clone_index_mjs__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(targetMeta);
21236
+ }
21237
+ return options.customMetaMerge;
21238
+ };
21239
+ const getAttributesMergeFunction = options => {
21240
+ if (typeof options.customAttributesMerge !== 'function') {
21241
+ return targetAttributes => (0,_clone_index_mjs__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(targetAttributes);
21242
+ }
21243
+ return options.customAttributesMerge;
21244
+ };
21245
+ const mergeArrayElement = (targetElement, sourceElement, options) => targetElement.concat(sourceElement)['fantasy-land/map'](item => cloneUnlessOtherwiseSpecified(item, options));
21246
+ const mergeObjectElement = (targetElement, sourceElement, options) => {
21247
+ const destination = (0,_predicates_index_mjs__WEBPACK_IMPORTED_MODULE_2__.isObjectElement)(targetElement) ? emptyElement(targetElement) : emptyElement(sourceElement);
21248
+ if ((0,_predicates_index_mjs__WEBPACK_IMPORTED_MODULE_2__.isObjectElement)(targetElement)) {
21249
+ targetElement.forEach((value, key, member) => {
21250
+ const clonedMember = (0,_clone_index_mjs__WEBPACK_IMPORTED_MODULE_1__.cloneShallow)(member);
21251
+ clonedMember.value = cloneUnlessOtherwiseSpecified(value, options);
21252
+ destination.content.push(clonedMember);
21253
+ });
21254
+ }
21255
+ sourceElement.forEach((value, key, member) => {
21256
+ const keyValue = (0,_transformers_serializers_value_index_mjs__WEBPACK_IMPORTED_MODULE_3__["default"])(key);
21257
+ let clonedMember;
21258
+ if ((0,_predicates_index_mjs__WEBPACK_IMPORTED_MODULE_2__.isObjectElement)(targetElement) && targetElement.hasKey(keyValue) && options.isMergeableElement(value)) {
21259
+ const targetValue = targetElement.get(keyValue);
21260
+ clonedMember = (0,_clone_index_mjs__WEBPACK_IMPORTED_MODULE_1__.cloneShallow)(member);
21261
+ clonedMember.value = getMergeFunction(key, options)(targetValue, value);
21262
+ } else {
21263
+ clonedMember = (0,_clone_index_mjs__WEBPACK_IMPORTED_MODULE_1__.cloneShallow)(member);
21264
+ clonedMember.value = cloneUnlessOtherwiseSpecified(value, options);
21265
+ }
21266
+ destination.remove(keyValue);
21267
+ destination.content.push(clonedMember);
21268
+ });
21269
+ return destination;
21270
+ };
21271
+ const defaultOptions = {
21272
+ clone: true,
21273
+ isMergeableElement: element => (0,_predicates_index_mjs__WEBPACK_IMPORTED_MODULE_2__.isObjectElement)(element) || (0,_predicates_index_mjs__WEBPACK_IMPORTED_MODULE_2__.isArrayElement)(element),
21274
+ arrayElementMerge: mergeArrayElement,
21275
+ objectElementMerge: mergeObjectElement,
21276
+ customMerge: undefined,
21277
+ customMetaMerge: undefined,
21278
+ customAttributesMerge: undefined
21279
+ };
21280
+ function deepmerge(targetElement, sourceElement, options) {
21281
+ var _mergedOptions$isMerg, _mergedOptions$arrayE, _mergedOptions$object;
21282
+ const mergedOptions = {
21283
+ ...defaultOptions,
21284
+ ...options
21285
+ };
21286
+ mergedOptions.isMergeableElement = (_mergedOptions$isMerg = mergedOptions.isMergeableElement) !== null && _mergedOptions$isMerg !== void 0 ? _mergedOptions$isMerg : defaultOptions.isMergeableElement;
21287
+ mergedOptions.arrayElementMerge = (_mergedOptions$arrayE = mergedOptions.arrayElementMerge) !== null && _mergedOptions$arrayE !== void 0 ? _mergedOptions$arrayE : defaultOptions.arrayElementMerge;
21288
+ mergedOptions.objectElementMerge = (_mergedOptions$object = mergedOptions.objectElementMerge) !== null && _mergedOptions$object !== void 0 ? _mergedOptions$object : defaultOptions.objectElementMerge;
21289
+ const sourceIsArrayElement = (0,_predicates_index_mjs__WEBPACK_IMPORTED_MODULE_2__.isArrayElement)(sourceElement);
21290
+ const targetIsArrayElement = (0,_predicates_index_mjs__WEBPACK_IMPORTED_MODULE_2__.isArrayElement)(targetElement);
21291
+ const sourceAndTargetTypesMatch = sourceIsArrayElement === targetIsArrayElement;
21292
+ if (!sourceAndTargetTypesMatch) {
21293
+ return cloneUnlessOtherwiseSpecified(sourceElement, mergedOptions);
21294
+ }
21295
+
21296
+ // merging two elements
21297
+ const mergedElement = sourceIsArrayElement && typeof mergedOptions.arrayElementMerge === 'function' ? mergedOptions.arrayElementMerge(targetElement, sourceElement, mergedOptions) : mergedOptions.objectElementMerge(targetElement, sourceElement, mergedOptions);
21298
+
21299
+ // merging meta & attributes
21300
+ mergedElement.meta = getMetaMergeFunction(mergedOptions)(targetElement.meta, sourceElement.meta);
21301
+ mergedElement.attributes = getAttributesMergeFunction(mergedOptions)(targetElement.attributes, sourceElement.attributes);
21302
+ return mergedElement;
21303
+ }
21304
+ deepmerge.all = (list, options) => {
21305
+ if (!Array.isArray(list)) {
21306
+ throw new TypeError('First argument of deepmerge should be an array.');
21307
+ }
21308
+ if (list.length === 0) {
21309
+ return new minim__WEBPACK_IMPORTED_MODULE_0__.ObjectElement();
21310
+ }
21311
+ return list.reduce((target, source) => {
21312
+ return deepmerge(target, source, options);
21313
+ }, emptyElement(list[0]));
21314
+ };
21315
+ /* eslint-enable @typescript-eslint/no-use-before-define */
21316
+
21317
+ /***/ }),
21318
+
21294
21319
  /***/ 1667:
21295
21320
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21296
21321
 
@@ -21542,9 +21567,13 @@ __webpack_require__.r(__webpack_exports__);
21542
21567
  /* harmony export */ createRefractor: () => (/* binding */ createRefractor),
21543
21568
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
21544
21569
  /* harmony export */ });
21545
- /* harmony import */ var _plugins_utils_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36838);
21546
- /* harmony import */ var _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(46571);
21547
- /* harmony import */ var _toolbox_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(55132);
21570
+ /* harmony import */ var _plugins_utils_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(36838);
21571
+ /* harmony import */ var _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(46571);
21572
+ /* harmony import */ var _clone_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(87024);
21573
+ /* harmony import */ var _predicates_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(33501);
21574
+ /* harmony import */ var _toolbox_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(55132);
21575
+
21576
+
21548
21577
 
21549
21578
 
21550
21579
 
@@ -21558,15 +21587,23 @@ const refract = (value, {
21558
21587
  * Though we allow consumers to define their onw plugins on already transformed ApiDOM.
21559
21588
  */
21560
21589
  const element = new Type(value);
21590
+ if ((0,_predicates_index_mjs__WEBPACK_IMPORTED_MODULE_0__.isElement)(value)) {
21591
+ if (value.meta.length > 0) {
21592
+ element.meta = (0,_clone_index_mjs__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(value.meta);
21593
+ }
21594
+ if (value.attributes.length > 0) {
21595
+ element.attributes = (0,_clone_index_mjs__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(value.attributes);
21596
+ }
21597
+ }
21561
21598
 
21562
21599
  /**
21563
21600
  * Run plugins only when necessary.
21564
21601
  * Running plugins visitors means extra single traversal === performance hit.
21565
21602
  */
21566
- return (0,_plugins_utils_index_mjs__WEBPACK_IMPORTED_MODULE_0__.dispatchPlugins)(element, plugins, {
21567
- toolboxCreator: _toolbox_mjs__WEBPACK_IMPORTED_MODULE_1__["default"],
21603
+ return (0,_plugins_utils_index_mjs__WEBPACK_IMPORTED_MODULE_2__.dispatchPlugins)(element, plugins, {
21604
+ toolboxCreator: _toolbox_mjs__WEBPACK_IMPORTED_MODULE_3__["default"],
21568
21605
  visitorOptions: {
21569
- nodeTypeGetter: _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_2__.getNodeType
21606
+ nodeTypeGetter: _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_4__.getNodeType
21570
21607
  }
21571
21608
  });
21572
21609
  };
@@ -23756,7 +23793,8 @@ __webpack_require__.r(__webpack_exports__);
23756
23793
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
23757
23794
  /* harmony export */ });
23758
23795
  /* harmony import */ var stampit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12646);
23759
- /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(33501);
23796
+ /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15461);
23797
+ /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(33501);
23760
23798
 
23761
23799
 
23762
23800
  const Visitor = stampit__WEBPACK_IMPORTED_MODULE_0__({
@@ -23765,12 +23803,20 @@ const Visitor = stampit__WEBPACK_IMPORTED_MODULE_0__({
23765
23803
  },
23766
23804
  // @ts-ignore
23767
23805
  methods: {
23806
+ /* eslint-disable class-methods-use-this, no-param-reassign */
23768
23807
  copyMetaAndAttributes(from, to) {
23769
- // copy sourcemaps
23770
- if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_1__.hasElementSourceMap)(from)) {
23771
- to.meta.set('sourceMap', from.meta.get('sourceMap'));
23808
+ if (from.meta.length > 0 || to.meta.length > 0) {
23809
+ to.meta = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_1__["default"])(to.meta, from.meta);
23810
+ if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_2__.hasElementSourceMap)(from)) {
23811
+ // avoid deep merging of source maps
23812
+ to.meta.set('sourceMap', from.meta.get('sourceMap'));
23813
+ }
23814
+ }
23815
+ if (from.attributes.length > 0 || from.meta.length > 0) {
23816
+ to.attributes = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_1__["default"])(to.attributes, from.attributes); // eslint-disable-line no-param-reassign
23772
23817
  }
23773
23818
  }
23819
+ /* eslint-enable class-methods-use-this, no-param-reassign */
23774
23820
  }
23775
23821
  });
23776
23822
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Visitor);
@@ -27602,6 +27648,7 @@ __webpack_require__.r(__webpack_exports__);
27602
27648
  /* harmony export */ isResponsesElement: () => (/* binding */ isResponsesElement),
27603
27649
  /* harmony export */ isSchemaElement: () => (/* binding */ isSchemaElement),
27604
27650
  /* harmony export */ isSecurityRequirementElement: () => (/* binding */ isSecurityRequirementElement),
27651
+ /* harmony export */ isSecuritySchemeElement: () => (/* binding */ isSecuritySchemeElement),
27605
27652
  /* harmony export */ isServerElement: () => (/* binding */ isServerElement),
27606
27653
  /* harmony export */ isServerVariableElement: () => (/* binding */ isServerVariableElement),
27607
27654
  /* harmony export */ isServersElement: () => (/* binding */ isServersElement)
@@ -27629,10 +27676,12 @@ __webpack_require__.r(__webpack_exports__);
27629
27676
  /* harmony import */ var _elements_Responses_mjs__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(62604);
27630
27677
  /* harmony import */ var _elements_Schema_mjs__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(19117);
27631
27678
  /* harmony import */ var _elements_SecurityRequirement_mjs__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(94063);
27632
- /* harmony import */ var _elements_Server_mjs__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(2829);
27633
- /* harmony import */ var _elements_ServerVariable_mjs__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(44213);
27634
- /* harmony import */ var _elements_MediaType_mjs__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(22452);
27635
- /* harmony import */ var _elements_nces_Servers_mjs__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(87204);
27679
+ /* harmony import */ var _elements_SecurityScheme_mjs__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(89779);
27680
+ /* harmony import */ var _elements_Server_mjs__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(2829);
27681
+ /* harmony import */ var _elements_ServerVariable_mjs__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(44213);
27682
+ /* harmony import */ var _elements_MediaType_mjs__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(22452);
27683
+ /* harmony import */ var _elements_nces_Servers_mjs__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(87204);
27684
+
27636
27685
 
27637
27686
 
27638
27687
 
@@ -27812,26 +27861,33 @@ const isSecurityRequirementElement = (0,_swagger_api_apidom_core__WEBPACK_IMPORT
27812
27861
  }) => {
27813
27862
  return element => element instanceof _elements_SecurityRequirement_mjs__WEBPACK_IMPORTED_MODULE_22__["default"] || hasBasicElementProps(element) && isElementType('securityRequirement', element) && primitiveEq('object', element);
27814
27863
  });
27864
+ const isSecuritySchemeElement = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_0__["default"])(({
27865
+ hasBasicElementProps,
27866
+ isElementType,
27867
+ primitiveEq
27868
+ }) => {
27869
+ return element => element instanceof _elements_SecurityScheme_mjs__WEBPACK_IMPORTED_MODULE_23__["default"] || hasBasicElementProps(element) && isElementType('securityScheme', element) && primitiveEq('object', element);
27870
+ });
27815
27871
  const isServerElement = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_0__["default"])(({
27816
27872
  hasBasicElementProps,
27817
27873
  isElementType,
27818
27874
  primitiveEq
27819
27875
  }) => {
27820
- return element => element instanceof _elements_Server_mjs__WEBPACK_IMPORTED_MODULE_23__["default"] || hasBasicElementProps(element) && isElementType('server', element) && primitiveEq('object', element);
27876
+ return element => element instanceof _elements_Server_mjs__WEBPACK_IMPORTED_MODULE_24__["default"] || hasBasicElementProps(element) && isElementType('server', element) && primitiveEq('object', element);
27821
27877
  });
27822
27878
  const isServerVariableElement = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_0__["default"])(({
27823
27879
  hasBasicElementProps,
27824
27880
  isElementType,
27825
27881
  primitiveEq
27826
27882
  }) => {
27827
- return element => element instanceof _elements_ServerVariable_mjs__WEBPACK_IMPORTED_MODULE_24__["default"] || hasBasicElementProps(element) && isElementType('serverVariable', element) && primitiveEq('object', element);
27883
+ return element => element instanceof _elements_ServerVariable_mjs__WEBPACK_IMPORTED_MODULE_25__["default"] || hasBasicElementProps(element) && isElementType('serverVariable', element) && primitiveEq('object', element);
27828
27884
  });
27829
27885
  const isMediaTypeElement = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_0__["default"])(({
27830
27886
  hasBasicElementProps,
27831
27887
  isElementType,
27832
27888
  primitiveEq
27833
27889
  }) => {
27834
- return element => element instanceof _elements_MediaType_mjs__WEBPACK_IMPORTED_MODULE_25__["default"] || hasBasicElementProps(element) && isElementType('mediaType', element) && primitiveEq('object', element);
27890
+ return element => element instanceof _elements_MediaType_mjs__WEBPACK_IMPORTED_MODULE_26__["default"] || hasBasicElementProps(element) && isElementType('mediaType', element) && primitiveEq('object', element);
27835
27891
  });
27836
27892
  const isServersElement = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_0__["default"])(({
27837
27893
  hasBasicElementProps,
@@ -27839,7 +27895,7 @@ const isServersElement = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_0_
27839
27895
  primitiveEq,
27840
27896
  hasClass
27841
27897
  }) => {
27842
- return element => element instanceof _elements_nces_Servers_mjs__WEBPACK_IMPORTED_MODULE_26__["default"] || hasBasicElementProps(element) && isElementType('array', element) && primitiveEq('array', element) && hasClass('servers', element);
27898
+ return element => element instanceof _elements_nces_Servers_mjs__WEBPACK_IMPORTED_MODULE_27__["default"] || hasBasicElementProps(element) && isElementType('array', element) && primitiveEq('array', element) && hasClass('servers', element);
27843
27899
  });
27844
27900
 
27845
27901
  /***/ }),
@@ -27878,8 +27934,8 @@ const refract = (value, {
27878
27934
  * We don't allow consumers to hook into this translation.
27879
27935
  * Though we allow consumers to define their onw plugins on already transformed ApiDOM.
27880
27936
  */
27881
- const RootVistorClass = (0,ramda__WEBPACK_IMPORTED_MODULE_3__["default"])(specPath, resolvedSpec);
27882
- const rootVisitor = new RootVistorClass({
27937
+ const RootVisitorClass = (0,ramda__WEBPACK_IMPORTED_MODULE_3__["default"])(specPath, resolvedSpec);
27938
+ const rootVisitor = new RootVisitorClass({
27883
27939
  specObj: resolvedSpec
27884
27940
  });
27885
27941
  (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__.visit)(element, rootVisitor);
@@ -28810,20 +28866,23 @@ __webpack_require__.r(__webpack_exports__);
28810
28866
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
28811
28867
  /* harmony export */ });
28812
28868
  /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1667);
28813
- /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(33501);
28814
- /* harmony import */ var _predicates_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(85536);
28815
- /* harmony import */ var _predicates_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(85013);
28869
+ /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(33501);
28870
+ /* harmony import */ var _predicates_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(85536);
28816
28871
  /* harmony import */ var _namespace_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(31015);
28817
28872
 
28818
28873
 
28819
28874
 
28820
-
28821
28875
  const createToolbox = () => {
28822
28876
  const namespace = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_0__.createNamespace)(_namespace_mjs__WEBPACK_IMPORTED_MODULE_1__["default"]);
28823
28877
  const predicates = {
28824
28878
  ..._predicates_mjs__WEBPACK_IMPORTED_MODULE_2__,
28825
- ..._predicates_mjs__WEBPACK_IMPORTED_MODULE_3__,
28826
- isStringElement: _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__.isStringElement
28879
+ isElement: _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_3__.isElement,
28880
+ isStringElement: _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_3__.isStringElement,
28881
+ isArrayElement: _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_3__.isArrayElement,
28882
+ isObjectElement: _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_3__.isObjectElement,
28883
+ isMemberElement: _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_3__.isMemberElement,
28884
+ includesClasses: _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_3__.includesClasses,
28885
+ hasElementSourceMap: _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_3__.hasElementSourceMap
28827
28886
  };
28828
28887
  return {
28829
28888
  predicates,
@@ -28988,7 +29047,8 @@ __webpack_require__.r(__webpack_exports__);
28988
29047
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
28989
29048
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
28990
29049
  /* harmony export */ });
28991
- /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(33501);
29050
+ /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15461);
29051
+ /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(33501);
28992
29052
 
28993
29053
  class Visitor {
28994
29054
  element;
@@ -28996,13 +29056,20 @@ class Visitor {
28996
29056
  Object.assign(this, options);
28997
29057
  }
28998
29058
 
28999
- // eslint-disable-next-line class-methods-use-this
29059
+ /* eslint-disable class-methods-use-this, no-param-reassign */
29000
29060
  copyMetaAndAttributes(from, to) {
29001
- // copy sourcemaps
29002
- if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_0__.hasElementSourceMap)(from)) {
29003
- to.meta.set('sourceMap', from.meta.get('sourceMap'));
29061
+ if (from.meta.length > 0 || to.meta.length > 0) {
29062
+ to.meta = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_0__["default"])(to.meta, from.meta);
29063
+ if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_1__.hasElementSourceMap)(from)) {
29064
+ // avoid deep merging of source maps
29065
+ to.meta.set('sourceMap', from.meta.get('sourceMap'));
29066
+ }
29067
+ }
29068
+ if (from.attributes.length > 0 || from.meta.length > 0) {
29069
+ to.attributes = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_0__["default"])(to.attributes, from.attributes); // eslint-disable-line no-param-reassign
29004
29070
  }
29005
29071
  }
29072
+ /* eslint-enable class-methods-use-this, no-param-reassign */
29006
29073
  }
29007
29074
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Visitor);
29008
29075
 
@@ -33673,6 +33740,7 @@ __webpack_require__.r(__webpack_exports__);
33673
33740
  /* harmony export */ isResponsesElement: () => (/* binding */ isResponsesElement),
33674
33741
  /* harmony export */ isSchemaElement: () => (/* binding */ isSchemaElement),
33675
33742
  /* harmony export */ isSecurityRequirementElement: () => (/* binding */ isSecurityRequirementElement),
33743
+ /* harmony export */ isSecuritySchemeElement: () => (/* binding */ isSecuritySchemeElement),
33676
33744
  /* harmony export */ isServerElement: () => (/* binding */ isServerElement),
33677
33745
  /* harmony export */ isServerVariableElement: () => (/* binding */ isServerVariableElement)
33678
33746
  /* harmony export */ });
@@ -33701,9 +33769,11 @@ __webpack_require__.r(__webpack_exports__);
33701
33769
  /* harmony import */ var _elements_Responses_mjs__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(86461);
33702
33770
  /* harmony import */ var _elements_Schema_mjs__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(30090);
33703
33771
  /* harmony import */ var _elements_SecurityRequirement_mjs__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(91750);
33704
- /* harmony import */ var _elements_Server_mjs__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(90846);
33705
- /* harmony import */ var _elements_ServerVariable_mjs__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(2558);
33706
- /* harmony import */ var _elements_MediaType_mjs__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(32425);
33772
+ /* harmony import */ var _elements_SecurityScheme_mjs__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(65664);
33773
+ /* harmony import */ var _elements_Server_mjs__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(90846);
33774
+ /* harmony import */ var _elements_ServerVariable_mjs__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(2558);
33775
+ /* harmony import */ var _elements_MediaType_mjs__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(32425);
33776
+
33707
33777
 
33708
33778
 
33709
33779
 
@@ -33924,26 +33994,33 @@ const isSecurityRequirementElement = (0,_swagger_api_apidom_core__WEBPACK_IMPORT
33924
33994
  }) => {
33925
33995
  return element => element instanceof _elements_SecurityRequirement_mjs__WEBPACK_IMPORTED_MODULE_24__["default"] || hasBasicElementProps(element) && isElementType('securityRequirement', element) && primitiveEq('object', element);
33926
33996
  });
33997
+ const isSecuritySchemeElement = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_0__["default"])(({
33998
+ hasBasicElementProps,
33999
+ isElementType,
34000
+ primitiveEq
34001
+ }) => {
34002
+ return element => element instanceof _elements_SecurityScheme_mjs__WEBPACK_IMPORTED_MODULE_25__["default"] || hasBasicElementProps(element) && isElementType('securityScheme', element) && primitiveEq('object', element);
34003
+ });
33927
34004
  const isServerElement = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_0__["default"])(({
33928
34005
  hasBasicElementProps,
33929
34006
  isElementType,
33930
34007
  primitiveEq
33931
34008
  }) => {
33932
- return element => element instanceof _elements_Server_mjs__WEBPACK_IMPORTED_MODULE_25__["default"] || hasBasicElementProps(element) && isElementType('server', element) && primitiveEq('object', element);
34009
+ return element => element instanceof _elements_Server_mjs__WEBPACK_IMPORTED_MODULE_26__["default"] || hasBasicElementProps(element) && isElementType('server', element) && primitiveEq('object', element);
33933
34010
  });
33934
34011
  const isServerVariableElement = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_0__["default"])(({
33935
34012
  hasBasicElementProps,
33936
34013
  isElementType,
33937
34014
  primitiveEq
33938
34015
  }) => {
33939
- return element => element instanceof _elements_ServerVariable_mjs__WEBPACK_IMPORTED_MODULE_26__["default"] || hasBasicElementProps(element) && isElementType('serverVariable', element) && primitiveEq('object', element);
34016
+ return element => element instanceof _elements_ServerVariable_mjs__WEBPACK_IMPORTED_MODULE_27__["default"] || hasBasicElementProps(element) && isElementType('serverVariable', element) && primitiveEq('object', element);
33940
34017
  });
33941
34018
  const isMediaTypeElement = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_0__["default"])(({
33942
34019
  hasBasicElementProps,
33943
34020
  isElementType,
33944
34021
  primitiveEq
33945
34022
  }) => {
33946
- return element => element instanceof _elements_MediaType_mjs__WEBPACK_IMPORTED_MODULE_27__["default"] || hasBasicElementProps(element) && isElementType('mediaType', element) && primitiveEq('object', element);
34023
+ return element => element instanceof _elements_MediaType_mjs__WEBPACK_IMPORTED_MODULE_28__["default"] || hasBasicElementProps(element) && isElementType('mediaType', element) && primitiveEq('object', element);
33947
34024
  });
33948
34025
 
33949
34026
  /***/ }),
@@ -35397,7 +35474,8 @@ const createToolbox = () => {
35397
35474
  isObjectElement: _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_3__.isObjectElement,
35398
35475
  isMemberElement: _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_3__.isMemberElement,
35399
35476
  isServersElement: _swagger_api_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_4__.isServersElement,
35400
- includesClasses: _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_3__.includesClasses
35477
+ includesClasses: _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_3__.includesClasses,
35478
+ hasElementSourceMap: _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_3__.hasElementSourceMap
35401
35479
  };
35402
35480
  return {
35403
35481
  predicates,
@@ -37810,20 +37888,23 @@ const OpenApi3_1DereferenceVisitor = stampit__WEBPACK_IMPORTED_MODULE_0__({
37810
37888
  namespace: null,
37811
37889
  reference: null,
37812
37890
  options: null,
37813
- ancestors: null
37891
+ ancestors: null,
37892
+ refractCache: null
37814
37893
  },
37815
37894
  init({
37816
37895
  indirections = [],
37817
37896
  reference,
37818
37897
  namespace,
37819
37898
  options,
37820
- ancestors = new _util_mjs__WEBPACK_IMPORTED_MODULE_4__.AncestorLineage()
37899
+ ancestors = new _util_mjs__WEBPACK_IMPORTED_MODULE_4__.AncestorLineage(),
37900
+ refractCache = new Map()
37821
37901
  }) {
37822
37902
  this.indirections = indirections;
37823
37903
  this.namespace = namespace;
37824
37904
  this.reference = reference;
37825
37905
  this.options = options;
37826
37906
  this.ancestors = new _util_mjs__WEBPACK_IMPORTED_MODULE_4__.AncestorLineage(...ancestors);
37907
+ this.refractCache = refractCache;
37827
37908
  },
37828
37909
  methods: {
37829
37910
  toBaseURI(uri) {
@@ -37894,14 +37975,19 @@ const OpenApi3_1DereferenceVisitor = stampit__WEBPACK_IMPORTED_MODULE_0__({
37894
37975
  // applying semantics to a fragment
37895
37976
  if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__.isPrimitiveElement)(referencedElement)) {
37896
37977
  const referencedElementType = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_3__["default"])(referencingElement.meta.get('referenced-element'));
37897
- if ((0,_swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_13__.isReferenceLikeElement)(referencedElement)) {
37978
+ const cacheKey = `${referencedElementType}-${(0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_3__["default"])(identityManager.identify(referencedElement))}`;
37979
+ if (this.refractCache.has(cacheKey)) {
37980
+ referencedElement = this.refractCache.get(cacheKey);
37981
+ } else if ((0,_swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_13__.isReferenceLikeElement)(referencedElement)) {
37898
37982
  // handling indirect references
37899
37983
  referencedElement = _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_14__.ReferenceElement.refract(referencedElement);
37900
37984
  referencedElement.setMetaProperty('referenced-element', referencedElementType);
37985
+ this.refractCache.set(cacheKey, referencedElement);
37901
37986
  } else {
37902
37987
  // handling direct references
37903
37988
  const ElementClass = this.namespace.getElementClass(referencedElementType);
37904
37989
  referencedElement = ElementClass.refract(referencedElement);
37990
+ this.refractCache.set(cacheKey, referencedElement);
37905
37991
  }
37906
37992
  }
37907
37993
 
@@ -37924,7 +38010,8 @@ const OpenApi3_1DereferenceVisitor = stampit__WEBPACK_IMPORTED_MODULE_0__({
37924
38010
  namespace: this.namespace,
37925
38011
  indirections: [...this.indirections],
37926
38012
  options: this.options,
37927
- ancestors: ancestorsLineage
38013
+ ancestors: ancestorsLineage,
38014
+ refractCache: this.refractCache
37928
38015
  });
37929
38016
  referencedElement = await visitAsync(referencedElement, visitor, {
37930
38017
  keyMap: _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_17__.keyMap,
@@ -38012,7 +38099,13 @@ const OpenApi3_1DereferenceVisitor = stampit__WEBPACK_IMPORTED_MODULE_0__({
38012
38099
 
38013
38100
  // applying semantics to a referenced element
38014
38101
  if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__.isPrimitiveElement)(referencedElement)) {
38015
- referencedElement = _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_14__.PathItemElement.refract(referencedElement);
38102
+ const cacheKey = `pathItem-${(0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_3__["default"])(identityManager.identify(referencedElement))}`;
38103
+ if (this.refractCache.has(cacheKey)) {
38104
+ referencedElement = this.refractCache.get(cacheKey);
38105
+ } else {
38106
+ referencedElement = _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_14__.PathItemElement.refract(referencedElement);
38107
+ this.refractCache.set(cacheKey, referencedElement);
38108
+ }
38016
38109
  }
38017
38110
 
38018
38111
  // detect direct or indirect reference
@@ -38034,7 +38127,8 @@ const OpenApi3_1DereferenceVisitor = stampit__WEBPACK_IMPORTED_MODULE_0__({
38034
38127
  namespace: this.namespace,
38035
38128
  indirections: [...this.indirections],
38036
38129
  options: this.options,
38037
- ancestors: ancestorsLineage
38130
+ ancestors: ancestorsLineage,
38131
+ refractCache: this.refractCache
38038
38132
  });
38039
38133
  referencedElement = await visitAsync(referencedElement, visitor, {
38040
38134
  keyMap: _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_17__.keyMap,
@@ -38106,7 +38200,13 @@ const OpenApi3_1DereferenceVisitor = stampit__WEBPACK_IMPORTED_MODULE_0__({
38106
38200
  operationElement = (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_12__["default"])(jsonPointer, reference.value.result);
38107
38201
  // applying semantics to a referenced element
38108
38202
  if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__.isPrimitiveElement)(operationElement)) {
38109
- operationElement = _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_14__.OperationElement.refract(operationElement);
38203
+ const cacheKey = `operation-${(0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_3__["default"])(identityManager.identify(operationElement))}`;
38204
+ if (this.refractCache.has(cacheKey)) {
38205
+ operationElement = this.refractCache.get(cacheKey);
38206
+ } else {
38207
+ operationElement = _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_14__.OperationElement.refract(operationElement);
38208
+ this.refractCache.set(cacheKey, operationElement);
38209
+ }
38110
38210
  }
38111
38211
  // create shallow clone to be able to annotate with metadata
38112
38212
  operationElement = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_18__.cloneShallow)(operationElement);