@speclynx/apidom-ns-openapi-3-1 4.0.5 → 4.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (24) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +25 -24
  3. package/dist/apidom-ns-openapi-3-1.browser.js +221 -258
  4. package/dist/apidom-ns-openapi-3-1.browser.min.js +1 -1
  5. package/package.json +8 -8
  6. package/src/index.cjs +35 -35
  7. package/src/index.mjs +1 -1
  8. package/src/refractor/plugins/{normalize-header-examples/index.cjs → normalize-header-examples.cjs} +5 -6
  9. package/src/refractor/plugins/{normalize-header-examples/index.mjs → normalize-header-examples.mjs} +4 -5
  10. package/src/refractor/plugins/normalize-operation-ids.cjs +3 -5
  11. package/src/refractor/plugins/normalize-operation-ids.mjs +2 -4
  12. package/src/refractor/plugins/normalize-parameter-examples.cjs +5 -6
  13. package/src/refractor/plugins/normalize-parameter-examples.mjs +4 -5
  14. package/src/refractor/plugins/normalize-parameters.cjs +48 -50
  15. package/src/refractor/plugins/normalize-parameters.mjs +48 -50
  16. package/src/refractor/plugins/normalize-security-requirements.cjs +21 -7
  17. package/src/refractor/plugins/normalize-security-requirements.mjs +20 -6
  18. package/src/refractor/plugins/normalize-servers.cjs +72 -49
  19. package/src/refractor/plugins/normalize-servers.mjs +70 -47
  20. package/src/refractor/plugins/{normalize-header-examples/NormalizeStorage.cjs → normalize-storage/index.cjs} +1 -1
  21. package/src/refractor/plugins/{normalize-header-examples/NormalizeStorage.mjs → normalize-storage/index.mjs} +1 -1
  22. package/src/refractor/toolbox.cjs +1 -29
  23. package/src/refractor/toolbox.mjs +1 -28
  24. package/types/apidom-ns-openapi-3-1.d.ts +34 -39
@@ -1668,54 +1668,7 @@ const refractJsonSchemaDialect = (value, options = {}) => refract(value, {
1668
1668
 
1669
1669
  /***/ },
1670
1670
 
1671
- /***/ 36891
1672
- (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1673
-
1674
- __webpack_require__.r(__webpack_exports__);
1675
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1676
- /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
1677
- /* harmony export */ });
1678
- /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(25162);
1679
- /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(97601);
1680
- /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(97071);
1681
-
1682
- class NormalizeStorage {
1683
- internalStore;
1684
- constructor(storageElement, storageField, storageSubField) {
1685
- this.storageElement = storageElement;
1686
- this.storageField = storageField;
1687
- this.storageSubField = storageSubField;
1688
- }
1689
- get store() {
1690
- if (!this.internalStore) {
1691
- let rootStore = this.storageElement.get(this.storageField);
1692
- if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.isObjectElement)(rootStore)) {
1693
- rootStore = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"]();
1694
- this.storageElement.set(this.storageField, rootStore);
1695
- }
1696
- let store = rootStore.get(this.storageSubField);
1697
- if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.isArrayElement)(store)) {
1698
- store = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__["default"]();
1699
- rootStore.set(this.storageSubField, store);
1700
- }
1701
- this.internalStore = store;
1702
- }
1703
- return this.internalStore;
1704
- }
1705
- append(pointer) {
1706
- if (!this.includes(pointer)) {
1707
- this.store.push(pointer);
1708
- }
1709
- }
1710
- includes(pointer) {
1711
- return this.store.includes(pointer);
1712
- }
1713
- }
1714
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NormalizeStorage);
1715
-
1716
- /***/ },
1717
-
1718
- /***/ 26031
1671
+ /***/ 40048
1719
1672
  (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1720
1673
 
1721
1674
  __webpack_require__.r(__webpack_exports__);
@@ -1723,7 +1676,7 @@ __webpack_require__.r(__webpack_exports__);
1723
1676
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
1724
1677
  /* harmony export */ });
1725
1678
  /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12111);
1726
- /* harmony import */ var _NormalizeStorage_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(36891);
1679
+ /* harmony import */ var _normalize_storage_index_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(33313);
1727
1680
 
1728
1681
 
1729
1682
 
@@ -1750,8 +1703,7 @@ const plugin = ({
1750
1703
  storageField = 'x-normalized'
1751
1704
  } = {}) => toolbox => {
1752
1705
  const {
1753
- predicates,
1754
- ancestorLineageToJSONPointer
1706
+ predicates
1755
1707
  } = toolbox;
1756
1708
  let storage;
1757
1709
  return {
@@ -1759,7 +1711,7 @@ const plugin = ({
1759
1711
  OpenApi3_1Element: {
1760
1712
  enter(path) {
1761
1713
  const element = path.node;
1762
- storage = new _NormalizeStorage_ts__WEBPACK_IMPORTED_MODULE_1__["default"](element, storageField, 'header-examples');
1714
+ storage = new _normalize_storage_index_ts__WEBPACK_IMPORTED_MODULE_1__["default"](element, storageField, 'header-examples');
1763
1715
  },
1764
1716
  leave() {
1765
1717
  storage = undefined;
@@ -1768,7 +1720,7 @@ const plugin = ({
1768
1720
  HeaderElement: {
1769
1721
  leave(path) {
1770
1722
  const headerElement = path.node;
1771
- const ancestors = path.getAncestorNodes().reverse(); // root to parent order
1723
+ const ancestors = path.getAncestorNodes(); // parent to root order
1772
1724
 
1773
1725
  // skip visiting this Header Object
1774
1726
  if (ancestors.some(predicates.isComponentsElement)) {
@@ -1783,7 +1735,7 @@ const plugin = ({
1783
1735
  if (typeof headerElement.schema?.example === 'undefined' && typeof headerElement.schema?.examples === 'undefined') {
1784
1736
  return;
1785
1737
  }
1786
- const headerJSONPointer = ancestorLineageToJSONPointer([...ancestors, headerElement]);
1738
+ const headerJSONPointer = path.formatPath();
1787
1739
 
1788
1740
  // skip visiting this Header Object if it's already normalized
1789
1741
  if (storage.includes(headerJSONPointer)) {
@@ -1844,7 +1796,7 @@ __webpack_require__.r(__webpack_exports__);
1844
1796
  /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(49451);
1845
1797
  /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12111);
1846
1798
  /* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(44673);
1847
- /* harmony import */ var _normalize_header_examples_NormalizeStorage_ts__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(36891);
1799
+ /* harmony import */ var _normalize_storage_index_ts__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(33313);
1848
1800
 
1849
1801
 
1850
1802
 
@@ -1895,7 +1847,6 @@ const plugin = ({
1895
1847
  } = {}) => toolbox => {
1896
1848
  const {
1897
1849
  predicates,
1898
- ancestorLineageToJSONPointer,
1899
1850
  namespace
1900
1851
  } = toolbox;
1901
1852
  const pathTemplates = [];
@@ -1907,7 +1858,7 @@ const plugin = ({
1907
1858
  OpenApi3_1Element: {
1908
1859
  enter(path) {
1909
1860
  const element = path.node;
1910
- storage = new _normalize_header_examples_NormalizeStorage_ts__WEBPACK_IMPORTED_MODULE_5__["default"](element, storageField, 'operation-ids');
1861
+ storage = new _normalize_storage_index_ts__WEBPACK_IMPORTED_MODULE_5__["default"](element, storageField, 'operation-ids');
1911
1862
  },
1912
1863
  leave() {
1913
1864
  // group normalized operations by normalized operationId
@@ -1962,11 +1913,10 @@ const plugin = ({
1962
1913
  OperationElement: {
1963
1914
  enter(path) {
1964
1915
  const operationElement = path.node;
1965
- const ancestors = path.getAncestorNodes().reverse(); // root to parent order
1966
1916
 
1967
1917
  // operationId field is undefined, needs no normalization
1968
1918
  if (typeof operationElement.operationId === 'undefined') return;
1969
- const operationJSONPointer = ancestorLineageToJSONPointer([...ancestors, operationElement]);
1919
+ const operationJSONPointer = path.formatPath();
1970
1920
 
1971
1921
  // skip visiting this Operation Object if it's already normalized
1972
1922
  if (storage.includes(operationJSONPointer)) {
@@ -2017,7 +1967,7 @@ __webpack_require__.r(__webpack_exports__);
2017
1967
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
2018
1968
  /* harmony export */ });
2019
1969
  /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12111);
2020
- /* harmony import */ var _normalize_header_examples_NormalizeStorage_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(36891);
1970
+ /* harmony import */ var _normalize_storage_index_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(33313);
2021
1971
 
2022
1972
 
2023
1973
 
@@ -2044,8 +1994,7 @@ const plugin = ({
2044
1994
  storageField = 'x-normalized'
2045
1995
  } = {}) => toolbox => {
2046
1996
  const {
2047
- predicates,
2048
- ancestorLineageToJSONPointer
1997
+ predicates
2049
1998
  } = toolbox;
2050
1999
  let storage;
2051
2000
  return {
@@ -2053,7 +2002,7 @@ const plugin = ({
2053
2002
  OpenApi3_1Element: {
2054
2003
  enter(path) {
2055
2004
  const element = path.node;
2056
- storage = new _normalize_header_examples_NormalizeStorage_ts__WEBPACK_IMPORTED_MODULE_1__["default"](element, storageField, 'parameter-examples');
2005
+ storage = new _normalize_storage_index_ts__WEBPACK_IMPORTED_MODULE_1__["default"](element, storageField, 'parameter-examples');
2057
2006
  },
2058
2007
  leave() {
2059
2008
  storage = undefined;
@@ -2062,7 +2011,7 @@ const plugin = ({
2062
2011
  ParameterElement: {
2063
2012
  leave(path) {
2064
2013
  const parameterElement = path.node;
2065
- const ancestors = path.getAncestorNodes().reverse(); // root to parent order
2014
+ const ancestors = path.getAncestorNodes(); // parent to root order
2066
2015
 
2067
2016
  // skip visiting this Parameter Object
2068
2017
  if (ancestors.some(predicates.isComponentsElement)) {
@@ -2077,7 +2026,7 @@ const plugin = ({
2077
2026
  if (typeof parameterElement.schema?.example === 'undefined' && typeof parameterElement.schema?.examples === 'undefined') {
2078
2027
  return;
2079
2028
  }
2080
- const parameterJSONPointer = ancestorLineageToJSONPointer([...ancestors, parameterElement]);
2029
+ const parameterJSONPointer = path.formatPath();
2081
2030
 
2082
2031
  // skip visiting this Parameter Object if it's already normalized
2083
2032
  if (storage.includes(parameterJSONPointer)) {
@@ -2133,12 +2082,14 @@ __webpack_require__.r(__webpack_exports__);
2133
2082
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2134
2083
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
2135
2084
  /* harmony export */ });
2136
- /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(49451);
2137
- /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(44181);
2138
- /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(41942);
2139
- /* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(44673);
2140
- /* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(25926);
2141
- /* harmony import */ var _normalize_header_examples_NormalizeStorage_ts__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(36891);
2085
+ /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41942);
2086
+ /* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(44673);
2087
+ /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(25162);
2088
+ /* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(25926);
2089
+ /* harmony import */ var _normalize_storage_index_ts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(33313);
2090
+ /* harmony import */ var _predicates_ts__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(97269);
2091
+
2092
+
2142
2093
 
2143
2094
 
2144
2095
 
@@ -2157,6 +2108,38 @@ __webpack_require__.r(__webpack_exports__);
2157
2108
  * @public
2158
2109
  */
2159
2110
 
2111
+ /**
2112
+ * Establishes identity between two Parameter Objects.
2113
+ * A unique parameter is defined by a combination of a name and location.
2114
+ *
2115
+ * {@link https://spec.openapis.org/oas/v3.1.2.html#operation-parameters}
2116
+ */
2117
+ const parameterEquals = (parameter1, parameter2) => {
2118
+ if (!(0,_predicates_ts__WEBPACK_IMPORTED_MODULE_5__.isParameterElement)(parameter1)) return false;
2119
+ if (!(0,_predicates_ts__WEBPACK_IMPORTED_MODULE_5__.isParameterElement)(parameter2)) return false;
2120
+ if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.isStringElement)(parameter1.name)) return false;
2121
+ if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.isStringElement)(parameter1.in)) return false;
2122
+ if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.isStringElement)(parameter2.name)) return false;
2123
+ if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.isStringElement)(parameter2.in)) return false;
2124
+ return (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_1__["default"])(parameter1.name) === (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_1__["default"])(parameter2.name) && (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_1__["default"])(parameter1.in) === (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_1__["default"])(parameter2.in);
2125
+ };
2126
+
2127
+ /**
2128
+ * Inherits parameters from a PathItem into an Operation element.
2129
+ * Operation parameters take precedence; PathItem parameters are merged in
2130
+ * for any (name, in) combination not already defined at the Operation level.
2131
+ * @public
2132
+ */
2133
+ const inheritParametersToOperation = (operationElement, pathItemElement) => {
2134
+ const pathItemParams = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.isArrayElement)(pathItemElement.parameters) ? [...pathItemElement.parameters] : [];
2135
+ if (pathItemParams.length === 0) return;
2136
+ const operationParams = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.isArrayElement)(operationElement.parameters) ? [...operationElement.parameters] : [];
2137
+
2138
+ // prefers the first item if two items compare equal based on the predicate
2139
+ const mergedParameters = (0,ramda__WEBPACK_IMPORTED_MODULE_0__["default"])(parameterEquals, [...operationParams, ...pathItemParams]);
2140
+ operationElement.parameters = new _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_3__["default"](mergedParameters);
2141
+ };
2142
+
2160
2143
  /**
2161
2144
  * @public
2162
2145
  */
@@ -2164,85 +2147,49 @@ const plugin = ({
2164
2147
  storageField = 'x-normalized'
2165
2148
  } = {}) => toolbox => {
2166
2149
  const {
2167
- predicates,
2168
- ancestorLineageToJSONPointer
2150
+ predicates
2169
2151
  } = toolbox;
2170
- /**
2171
- * Establishes identity between two Parameter Objects.
2172
- *
2173
- * {@link https://spec.openapis.org/oas/v3.1.2.html#operation-parameters}
2174
- */
2175
- const parameterEquals = (parameter1, parameter2) => {
2176
- if (!predicates.isParameterElement(parameter1)) return false;
2177
- if (!predicates.isParameterElement(parameter2)) return false;
2178
- if (!predicates.isStringElement(parameter1.name)) return false;
2179
- if (!predicates.isStringElement(parameter1.in)) return false;
2180
- if (!predicates.isStringElement(parameter2.name)) return false;
2181
- if (!predicates.isStringElement(parameter2.in)) return false;
2182
- return (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_3__["default"])(parameter1.name) === (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_3__["default"])(parameter2.name) && (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_3__["default"])(parameter1.in) === (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_3__["default"])(parameter2.in);
2183
- };
2184
- const pathItemParameters = [];
2185
2152
  let storage;
2186
2153
  return {
2187
2154
  visitor: {
2188
2155
  OpenApi3_1Element: {
2189
2156
  enter(path) {
2190
2157
  const element = path.node;
2191
- storage = new _normalize_header_examples_NormalizeStorage_ts__WEBPACK_IMPORTED_MODULE_5__["default"](element, storageField, 'parameters');
2158
+ storage = new _normalize_storage_index_ts__WEBPACK_IMPORTED_MODULE_4__["default"](element, storageField, 'parameters');
2192
2159
  },
2193
2160
  leave() {
2194
2161
  storage = undefined;
2195
2162
  }
2196
2163
  },
2197
- PathItemElement: {
2198
- enter(path) {
2199
- const pathItemElement = path.node;
2200
- const ancestors = path.getAncestorNodes().reverse(); // root to parent order
2164
+ OperationElement: {
2165
+ leave(path) {
2166
+ const operationElement = path.node;
2167
+ const ancestors = path.getAncestorNodes(); // parent to root order
2201
2168
 
2202
- // skip visiting this Path Item
2169
+ // skip visiting this Operation
2203
2170
  if (ancestors.some(predicates.isComponentsElement)) {
2204
2171
  return;
2205
2172
  }
2206
- const {
2207
- parameters
2208
- } = pathItemElement;
2209
- if (predicates.isArrayElement(parameters)) {
2210
- pathItemParameters.push([...(parameters.content ?? [])]);
2211
- } else {
2212
- pathItemParameters.push([]);
2213
- }
2214
- },
2215
- leave() {
2216
- pathItemParameters.pop();
2217
- }
2218
- },
2219
- OperationElement: {
2220
- leave(path) {
2221
- const operationElement = path.node;
2222
- const ancestors = path.getAncestorNodes().reverse(); // root to parent order
2223
- const parentPathItemParameters = (0,ramda__WEBPACK_IMPORTED_MODULE_0__["default"])(pathItemParameters);
2173
+ const parentPathItemElement = ancestors.find(predicates.isPathItemElement);
2224
2174
 
2225
- // no Path Item Object parameters to inherit from
2226
- if (!Array.isArray(parentPathItemParameters) || parentPathItemParameters.length === 0) {
2175
+ // no parent Path Item to inherit from
2176
+ if (!predicates.isPathItemElement(parentPathItemElement)) {
2227
2177
  return;
2228
2178
  }
2229
- const operationJSONPointer = ancestorLineageToJSONPointer([...ancestors, operationElement]);
2179
+ const operationJSONPointer = path.formatPath();
2230
2180
 
2231
2181
  // skip visiting this Operation Object if it's already normalized
2232
2182
  if (storage.includes(operationJSONPointer)) {
2233
2183
  return;
2234
2184
  }
2235
- const operationParameters = (0,ramda__WEBPACK_IMPORTED_MODULE_1__["default"])([], ['parameters', 'content'], operationElement);
2236
-
2237
- // prefers the first item if two items compare equal based on the predicate
2238
- const mergedParameters = (0,ramda__WEBPACK_IMPORTED_MODULE_2__["default"])(parameterEquals, [...operationParameters, ...parentPathItemParameters]);
2239
- operationElement.parameters = new _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_4__["default"](mergedParameters);
2185
+ inheritParametersToOperation(operationElement, parentPathItemElement);
2240
2186
  storage.append(operationJSONPointer);
2241
2187
  }
2242
2188
  }
2243
2189
  }
2244
2190
  };
2245
2191
  };
2192
+ plugin.inheritParametersToOperation = inheritParametersToOperation;
2246
2193
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (plugin);
2247
2194
 
2248
2195
  /***/ },
@@ -2254,8 +2201,10 @@ __webpack_require__.r(__webpack_exports__);
2254
2201
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2255
2202
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
2256
2203
  /* harmony export */ });
2257
- /* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(63072);
2258
- /* harmony import */ var _normalize_header_examples_NormalizeStorage_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(36891);
2204
+ /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(25162);
2205
+ /* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(63072);
2206
+ /* harmony import */ var _normalize_storage_index_ts__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(33313);
2207
+
2259
2208
 
2260
2209
 
2261
2210
  /**
@@ -2272,6 +2221,19 @@ __webpack_require__.r(__webpack_exports__);
2272
2221
  * @public
2273
2222
  */
2274
2223
 
2224
+ /**
2225
+ * Inherits top-level security requirements into an Operation element.
2226
+ * If Operation.security is missing and OpenAPI.security is defined, copies it down.
2227
+ * @public
2228
+ */
2229
+ const inheritSecurityToOperation = (operationElement, openapiElement) => {
2230
+ const missingOperationLevelSecurity = typeof operationElement.security === 'undefined';
2231
+ const hasTopLevelSecurity = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.isArrayElement)(openapiElement.security);
2232
+ if (missingOperationLevelSecurity && hasTopLevelSecurity) {
2233
+ operationElement.security = new _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_1__["default"]([...openapiElement.security]);
2234
+ }
2235
+ };
2236
+
2275
2237
  /**
2276
2238
  * @public
2277
2239
  */
@@ -2279,8 +2241,7 @@ const plugin = ({
2279
2241
  storageField = 'x-normalized'
2280
2242
  } = {}) => toolbox => {
2281
2243
  const {
2282
- predicates,
2283
- ancestorLineageToJSONPointer
2244
+ predicates
2284
2245
  } = toolbox;
2285
2246
  let topLevelSecurity;
2286
2247
  let storage;
@@ -2289,7 +2250,7 @@ const plugin = ({
2289
2250
  OpenApi3_1Element: {
2290
2251
  enter(path) {
2291
2252
  const openapiElement = path.node;
2292
- storage = new _normalize_header_examples_NormalizeStorage_ts__WEBPACK_IMPORTED_MODULE_1__["default"](openapiElement, storageField, 'security-requirements');
2253
+ storage = new _normalize_storage_index_ts__WEBPACK_IMPORTED_MODULE_2__["default"](openapiElement, storageField, 'security-requirements');
2293
2254
  if (predicates.isArrayElement(openapiElement.security)) {
2294
2255
  topLevelSecurity = openapiElement.security;
2295
2256
  }
@@ -2302,13 +2263,13 @@ const plugin = ({
2302
2263
  OperationElement: {
2303
2264
  leave(path) {
2304
2265
  const operationElement = path.node;
2305
- const ancestors = path.getAncestorNodes().reverse(); // root to parent order
2266
+ const ancestors = path.getAncestorNodes(); // parent to root order
2306
2267
 
2307
2268
  // skip visiting this Operation
2308
2269
  if (ancestors.some(predicates.isComponentsElement)) {
2309
2270
  return;
2310
2271
  }
2311
- const operationJSONPointer = ancestorLineageToJSONPointer([...ancestors, operationElement]);
2272
+ const operationJSONPointer = path.formatPath();
2312
2273
 
2313
2274
  // skip visiting this Operation Object if it's already normalized
2314
2275
  if (storage.includes(operationJSONPointer)) {
@@ -2317,7 +2278,7 @@ const plugin = ({
2317
2278
  const missingOperationLevelSecurity = typeof operationElement.security === 'undefined';
2318
2279
  const hasTopLevelSecurity = typeof topLevelSecurity !== 'undefined';
2319
2280
  if (missingOperationLevelSecurity && hasTopLevelSecurity) {
2320
- operationElement.security = new _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_0__["default"](topLevelSecurity?.content ?? undefined);
2281
+ operationElement.security = new _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_1__["default"]([...topLevelSecurity]);
2321
2282
  storage.append(operationJSONPointer);
2322
2283
  }
2323
2284
  }
@@ -2325,6 +2286,7 @@ const plugin = ({
2325
2286
  }
2326
2287
  };
2327
2288
  };
2289
+ plugin.inheritSecurityToOperation = inheritSecurityToOperation;
2328
2290
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (plugin);
2329
2291
 
2330
2292
  /***/ },
@@ -2336,11 +2298,13 @@ __webpack_require__.r(__webpack_exports__);
2336
2298
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2337
2299
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
2338
2300
  /* harmony export */ });
2339
- /* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36882);
2340
- /* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(94689);
2341
- /* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(51865);
2342
- /* harmony import */ var _normalize_header_examples_NormalizeStorage_ts__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(36891);
2343
- /* harmony import */ var _index_ts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(14074);
2301
+ /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(25162);
2302
+ /* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(36882);
2303
+ /* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(94689);
2304
+ /* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(51865);
2305
+ /* harmony import */ var _normalize_storage_index_ts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(33313);
2306
+ /* harmony import */ var _index_ts__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(14074);
2307
+
2344
2308
 
2345
2309
 
2346
2310
 
@@ -2359,6 +2323,63 @@ __webpack_require__.r(__webpack_exports__);
2359
2323
  * @public
2360
2324
  */
2361
2325
 
2326
+ /**
2327
+ * Ensures the OpenAPI document has at least one server defined.
2328
+ * If `servers` is missing or empty, adds a default server with `url: "/"`.
2329
+ * @public
2330
+ */
2331
+ const ensureDefaultServer = openapiElement => {
2332
+ const isServersUndefined = typeof openapiElement.servers === 'undefined';
2333
+ const isServersArray = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.isArrayElement)(openapiElement.servers);
2334
+ const isServersEmpty = isServersArray && openapiElement.servers.length === 0;
2335
+ const defaultServer = (0,_index_ts__WEBPACK_IMPORTED_MODULE_5__.refractServer)({
2336
+ url: '/'
2337
+ });
2338
+ if (isServersUndefined || !isServersArray) {
2339
+ openapiElement.servers = new _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_3__["default"]([defaultServer]);
2340
+ } else if (isServersArray && isServersEmpty) {
2341
+ openapiElement.servers.push(defaultServer);
2342
+ }
2343
+ };
2344
+
2345
+ /**
2346
+ * Inherits servers from the OpenAPI root into a PathItem element.
2347
+ * If PathItem.servers is missing or empty, copies from OpenAPI.servers.
2348
+ * @public
2349
+ */
2350
+ const inheritServersToPathItem = (pathItemElement, openapiElement) => {
2351
+ const isServersUndefined = typeof pathItemElement.servers === 'undefined';
2352
+ const isServersArray = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.isArrayElement)(pathItemElement.servers);
2353
+ const isServersEmpty = isServersArray && pathItemElement.servers.length === 0;
2354
+ const openapiServers = [...(openapiElement.servers ?? [])];
2355
+ if (isServersUndefined || !isServersArray) {
2356
+ pathItemElement.servers = new _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_2__["default"](openapiServers);
2357
+ } else if (isServersArray && isServersEmpty) {
2358
+ openapiServers.forEach(server => {
2359
+ pathItemElement.servers.push(server);
2360
+ });
2361
+ }
2362
+ };
2363
+
2364
+ /**
2365
+ * Inherits servers from a PathItem into an Operation element.
2366
+ * If Operation.servers is missing or empty, copies from PathItem.servers.
2367
+ * @public
2368
+ */
2369
+ const inheritServersToOperation = (operationElement, pathItemElement) => {
2370
+ const isServersUndefined = typeof operationElement.servers === 'undefined';
2371
+ const isServersArray = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.isArrayElement)(operationElement.servers);
2372
+ const isServersEmpty = isServersArray && operationElement.servers.length === 0;
2373
+ const pathItemServers = [...(pathItemElement.servers ?? [])];
2374
+ if (isServersUndefined || !isServersArray) {
2375
+ operationElement.servers = new _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_1__["default"](pathItemServers);
2376
+ } else if (isServersArray && isServersEmpty) {
2377
+ pathItemServers.forEach(server => {
2378
+ operationElement.servers.push(server);
2379
+ });
2380
+ }
2381
+ };
2382
+
2362
2383
  /**
2363
2384
  * @public
2364
2385
  */
@@ -2366,7 +2387,6 @@ const plugin = ({
2366
2387
  storageField = 'x-normalized'
2367
2388
  } = {}) => toolbox => {
2368
2389
  const {
2369
- ancestorLineageToJSONPointer,
2370
2390
  predicates
2371
2391
  } = toolbox;
2372
2392
  let storage;
@@ -2375,18 +2395,8 @@ const plugin = ({
2375
2395
  OpenApi3_1Element: {
2376
2396
  enter(path) {
2377
2397
  const openapiElement = path.node;
2378
- const isServersUndefined = typeof openapiElement.servers === 'undefined';
2379
- const isServersArrayElement = predicates.isArrayElement(openapiElement.servers);
2380
- const isServersEmpty = isServersArrayElement && openapiElement.servers.length === 0;
2381
- const defaultServer = (0,_index_ts__WEBPACK_IMPORTED_MODULE_4__.refractServer)({
2382
- url: '/'
2383
- });
2384
- if (isServersUndefined || !isServersArrayElement) {
2385
- openapiElement.servers = new _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_2__["default"]([defaultServer]);
2386
- } else if (isServersArrayElement && isServersEmpty) {
2387
- openapiElement.servers.push(defaultServer);
2388
- }
2389
- storage = new _normalize_header_examples_NormalizeStorage_ts__WEBPACK_IMPORTED_MODULE_3__["default"](openapiElement, storageField, 'servers');
2398
+ ensureDefaultServer(openapiElement);
2399
+ storage = new _normalize_storage_index_ts__WEBPACK_IMPORTED_MODULE_4__["default"](openapiElement, storageField, 'servers');
2390
2400
  },
2391
2401
  leave() {
2392
2402
  storage = undefined;
@@ -2394,76 +2404,99 @@ const plugin = ({
2394
2404
  },
2395
2405
  PathItemElement(path) {
2396
2406
  const pathItemElement = path.node;
2397
- const ancestors = path.getAncestorNodes().reverse(); // root to parent order
2407
+ const ancestors = path.getAncestorNodes(); // parent to root order
2398
2408
 
2399
2409
  // skip visiting this Path Item
2400
2410
  if (ancestors.some(predicates.isComponentsElement)) return;
2401
2411
  if (!ancestors.some(predicates.isOpenApi3_1Element)) return;
2402
- const pathItemJSONPointer = ancestorLineageToJSONPointer([...ancestors, pathItemElement]);
2412
+ const pathItemJSONPointer = path.formatPath();
2403
2413
 
2404
2414
  // skip visiting this Path Item Object if it's already normalized
2405
2415
  if (storage.includes(pathItemJSONPointer)) {
2406
2416
  return;
2407
2417
  }
2408
2418
  const parentOpenapiElement = ancestors.find(predicates.isOpenApi3_1Element);
2409
- const isServersUndefined = typeof pathItemElement.servers === 'undefined';
2410
- const isServersArrayElement = predicates.isArrayElement(pathItemElement.servers);
2411
- const isServersEmpty = isServersArrayElement && pathItemElement.servers.length === 0;
2412
-
2413
- // duplicate OpenAPI.servers into this Path Item object
2414
2419
  if (predicates.isOpenApi3_1Element(parentOpenapiElement)) {
2415
- const openapiServersContent = parentOpenapiElement.servers?.content;
2416
- const openapiServers = openapiServersContent ?? [];
2417
- if (isServersUndefined || !isServersArrayElement) {
2418
- pathItemElement.servers = new _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_1__["default"](openapiServers);
2419
- } else if (isServersArrayElement && isServersEmpty) {
2420
- openapiServers.forEach(server => {
2421
- pathItemElement.servers.push(server);
2422
- });
2423
- }
2420
+ inheritServersToPathItem(pathItemElement, parentOpenapiElement);
2424
2421
  storage.append(pathItemJSONPointer);
2425
2422
  }
2426
2423
  },
2427
2424
  OperationElement(path) {
2428
2425
  const operationElement = path.node;
2429
- const ancestors = path.getAncestorNodes().reverse(); // root to parent order
2426
+ const ancestors = path.getAncestorNodes(); // parent to root order
2430
2427
 
2431
2428
  // skip visiting this Operation
2432
2429
  if (ancestors.some(predicates.isComponentsElement)) return;
2433
2430
  if (!ancestors.some(predicates.isOpenApi3_1Element)) return;
2434
- const operationJSONPointer = ancestorLineageToJSONPointer([...ancestors, operationElement]);
2431
+ const operationJSONPointer = path.formatPath();
2435
2432
 
2436
2433
  // skip visiting this Operation Object if it's already normalized
2437
2434
  if (storage.includes(operationJSONPointer)) {
2438
2435
  return;
2439
2436
  }
2440
-
2441
- // @TODO(vladimir.gorej@gmail.com): can be replaced by Array.prototype.findLast in future
2442
- const parentPathItemElement = ancestors.findLast(predicates.isPathItemElement);
2443
- const isServersUndefined = typeof operationElement.servers === 'undefined';
2444
- const isServersArrayElement = predicates.isArrayElement(operationElement.servers);
2445
- const isServersEmpty = isServersArrayElement && operationElement.servers.length === 0;
2437
+ const parentPathItemElement = ancestors.find(predicates.isPathItemElement);
2446
2438
  if (predicates.isPathItemElement(parentPathItemElement)) {
2447
- const pathItemServersContent = parentPathItemElement.servers?.content;
2448
- const pathItemServers = pathItemServersContent ?? [];
2449
- if (isServersUndefined || !isServersArrayElement) {
2450
- // duplicate parent PathItem.servers into this Operation object
2451
- operationElement.servers = new _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_0__["default"](pathItemServers);
2452
- } else if (isServersArrayElement && isServersEmpty) {
2453
- pathItemServers.forEach(server => {
2454
- operationElement.servers.push(server);
2455
- });
2456
- }
2439
+ inheritServersToOperation(operationElement, parentPathItemElement);
2457
2440
  storage.append(operationJSONPointer);
2458
2441
  }
2459
2442
  }
2460
2443
  }
2461
2444
  };
2462
2445
  };
2446
+ plugin.ensureDefaultServer = ensureDefaultServer;
2447
+ plugin.inheritServersToPathItem = inheritServersToPathItem;
2448
+ plugin.inheritServersToOperation = inheritServersToOperation;
2463
2449
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (plugin);
2464
2450
 
2465
2451
  /***/ },
2466
2452
 
2453
+ /***/ 33313
2454
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
2455
+
2456
+ __webpack_require__.r(__webpack_exports__);
2457
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2458
+ /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
2459
+ /* harmony export */ });
2460
+ /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(25162);
2461
+ /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(97601);
2462
+ /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(97071);
2463
+
2464
+ class NormalizeStorage {
2465
+ internalStore;
2466
+ constructor(storageElement, storageField, storageSubField) {
2467
+ this.storageElement = storageElement;
2468
+ this.storageField = storageField;
2469
+ this.storageSubField = storageSubField;
2470
+ }
2471
+ get store() {
2472
+ if (this.internalStore === undefined) {
2473
+ let rootStore = this.storageElement.get(this.storageField);
2474
+ if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.isObjectElement)(rootStore)) {
2475
+ rootStore = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"]();
2476
+ this.storageElement.set(this.storageField, rootStore);
2477
+ }
2478
+ let store = rootStore.get(this.storageSubField);
2479
+ if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.isArrayElement)(store)) {
2480
+ store = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__["default"]();
2481
+ rootStore.set(this.storageSubField, store);
2482
+ }
2483
+ this.internalStore = store;
2484
+ }
2485
+ return this.internalStore;
2486
+ }
2487
+ append(pointer) {
2488
+ if (!this.includes(pointer)) {
2489
+ this.store.push(pointer);
2490
+ }
2491
+ }
2492
+ includes(pointer) {
2493
+ return this.store.includes(pointer);
2494
+ }
2495
+ }
2496
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NormalizeStorage);
2497
+
2498
+ /***/ },
2499
+
2467
2500
  /***/ 74000
2468
2501
  (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
2469
2502
 
@@ -3843,18 +3876,13 @@ const specification = {
3843
3876
 
3844
3877
  __webpack_require__.r(__webpack_exports__);
3845
3878
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
3846
- /* harmony export */ ancestorLineageToJSONPointer: () => (/* binding */ ancestorLineageToJSONPointer),
3847
3879
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
3848
3880
  /* harmony export */ });
3849
3881
  /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(55156);
3850
3882
  /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(25162);
3851
- /* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(44673);
3852
- /* harmony import */ var _speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(61198);
3853
- /* harmony import */ var _predicates_ts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(97269);
3854
- /* harmony import */ var _predicates_ts__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(83990);
3855
- /* harmony import */ var _namespace_ts__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(9936);
3856
-
3857
-
3883
+ /* harmony import */ var _predicates_ts__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(97269);
3884
+ /* harmony import */ var _predicates_ts__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(83990);
3885
+ /* harmony import */ var _namespace_ts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(9936);
3858
3886
 
3859
3887
 
3860
3888
 
@@ -3864,46 +3892,21 @@ __webpack_require__.r(__webpack_exports__);
3864
3892
  * @public
3865
3893
  */
3866
3894
 
3867
- /**
3868
- * Translates visitor ancestor lineage to a JSON Pointer tokens.
3869
- * Ancestor lineage is constructed of following visitor method arguments:
3870
- *
3871
- * - ancestors
3872
- * - parent
3873
- * - element
3874
- * @public
3875
- */
3876
- const ancestorLineageToJSONPointer = elementPath => {
3877
- const jsonPointerTokens = elementPath.reduce((path, element, index) => {
3878
- if ((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isMemberElement)(element)) {
3879
- const token = String((0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_2__["default"])(element.key));
3880
- path.push(token);
3881
- } else if ((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isArrayElement)(elementPath[index - 2])) {
3882
- const arrayElement = elementPath[index - 2];
3883
- const token = String(arrayElement.content?.indexOf(element) ?? -1);
3884
- path.push(token);
3885
- }
3886
- return path;
3887
- }, []);
3888
- return (0,_speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_3__.compile)(jsonPointerTokens);
3889
- };
3890
-
3891
3895
  /**
3892
3896
  * @public
3893
3897
  */
3894
3898
  const createToolbox = () => {
3895
3899
  const namespace = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__["default"]();
3896
3900
  const predicates = {
3897
- ..._predicates_ts__WEBPACK_IMPORTED_MODULE_5__,
3898
- ..._predicates_ts__WEBPACK_IMPORTED_MODULE_4__,
3901
+ ..._predicates_ts__WEBPACK_IMPORTED_MODULE_3__,
3902
+ ..._predicates_ts__WEBPACK_IMPORTED_MODULE_2__,
3899
3903
  isStringElement: _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isStringElement,
3900
3904
  isArrayElement: _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isArrayElement,
3901
3905
  isObjectElement: _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isObjectElement
3902
3906
  };
3903
- namespace.use(_namespace_ts__WEBPACK_IMPORTED_MODULE_6__["default"]);
3907
+ namespace.use(_namespace_ts__WEBPACK_IMPORTED_MODULE_4__["default"]);
3904
3908
  return {
3905
3909
  predicates,
3906
- ancestorLineageToJSONPointer,
3907
3910
  namespace
3908
3911
  };
3909
3912
  };
@@ -20456,46 +20459,6 @@ var path = /*#__PURE__*/(0,_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["def
20456
20459
 
20457
20460
  /***/ },
20458
20461
 
20459
- /***/ 44181
20460
- (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
20461
-
20462
- __webpack_require__.r(__webpack_exports__);
20463
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
20464
- /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
20465
- /* harmony export */ });
20466
- /* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(39088);
20467
- /* harmony import */ var _internal_path_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(68067);
20468
- /* harmony import */ var _defaultTo_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(66719);
20469
-
20470
-
20471
-
20472
-
20473
- /**
20474
- * If the given, non-null object has a value at the given path, returns the
20475
- * value at that path. Otherwise returns the provided default value.
20476
- *
20477
- * @func
20478
- * @memberOf R
20479
- * @since v0.18.0
20480
- * @category Object
20481
- * @typedefn Idx = String | Int | Symbol
20482
- * @sig a -> [Idx] -> {a} -> a
20483
- * @param {*} d The default value.
20484
- * @param {Array} p The path to use.
20485
- * @param {Object} obj The object to retrieve the nested property from.
20486
- * @return {*} The data at `path` of the supplied object or the default value.
20487
- * @example
20488
- *
20489
- * R.pathOr('N/A', ['a', 'b'], {a: {b: 2}}); //=> 2
20490
- * R.pathOr('N/A', ['a', 'b'], {c: {b: 2}}); //=> "N/A"
20491
- */
20492
- var pathOr = /*#__PURE__*/(0,_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function pathOr(d, p, obj) {
20493
- return (0,_defaultTo_js__WEBPACK_IMPORTED_MODULE_2__["default"])(d, (0,_internal_path_js__WEBPACK_IMPORTED_MODULE_1__["default"])(p, obj));
20494
- });
20495
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (pathOr);
20496
-
20497
- /***/ },
20498
-
20499
20462
  /***/ 44787
20500
20463
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
20501
20464
 
@@ -38034,7 +37997,7 @@ __webpack_require__.r(__webpack_exports__);
38034
37997
  /* harmony export */ refractServerVariable: () => (/* reexport safe */ _refractor_index_ts__WEBPACK_IMPORTED_MODULE_11__.refractServerVariable),
38035
37998
  /* harmony export */ refractTag: () => (/* reexport safe */ _refractor_index_ts__WEBPACK_IMPORTED_MODULE_11__.refractTag),
38036
37999
  /* harmony export */ refractXml: () => (/* reexport safe */ _refractor_index_ts__WEBPACK_IMPORTED_MODULE_11__.refractXml),
38037
- /* harmony export */ refractorPluginNormalizeHeaderExamples: () => (/* reexport safe */ _refractor_plugins_normalize_header_examples_index_ts__WEBPACK_IMPORTED_MODULE_8__["default"]),
38000
+ /* harmony export */ refractorPluginNormalizeHeaderExamples: () => (/* reexport safe */ _refractor_plugins_normalize_header_examples_ts__WEBPACK_IMPORTED_MODULE_8__["default"]),
38038
38001
  /* harmony export */ refractorPluginNormalizeOperationIds: () => (/* reexport safe */ _refractor_plugins_normalize_operation_ids_ts__WEBPACK_IMPORTED_MODULE_6__["default"]),
38039
38002
  /* harmony export */ refractorPluginNormalizeParameterExamples: () => (/* reexport safe */ _refractor_plugins_normalize_parameter_examples_ts__WEBPACK_IMPORTED_MODULE_7__["default"]),
38040
38003
  /* harmony export */ refractorPluginNormalizeParameters: () => (/* reexport safe */ _refractor_plugins_normalize_parameters_ts__WEBPACK_IMPORTED_MODULE_3__["default"]),
@@ -38051,7 +38014,7 @@ __webpack_require__.r(__webpack_exports__);
38051
38014
  /* harmony import */ var _refractor_plugins_normalize_servers_ts__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(96255);
38052
38015
  /* harmony import */ var _refractor_plugins_normalize_operation_ids_ts__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(2261);
38053
38016
  /* harmony import */ var _refractor_plugins_normalize_parameter_examples_ts__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(43058);
38054
- /* harmony import */ var _refractor_plugins_normalize_header_examples_index_ts__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(26031);
38017
+ /* harmony import */ var _refractor_plugins_normalize_header_examples_ts__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(40048);
38055
38018
  /* harmony import */ var _refractor_toolbox_ts__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(84225);
38056
38019
  /* harmony import */ var _refractor_specification_ts__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(27715);
38057
38020
  /* harmony import */ var _refractor_index_ts__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(14074);